[opensuse-ruby] RFC: Have 1.8 and 1.9 gems in one package
Hi, As I have a high interest in getting ruby 1.9 (as default ruby) into factory to replace the soon out of maintenance 1.8, darix invited me to work out a plan how to have gems build for 1.8 and 1.9. So I renamed ruby to ruby18 and added a ruby package that defines the default ruby. With this I rebuilt all gems that I have installed on my workstation as 1.9 version. But that doesn't solve the 1.8 backward problem - and while it doesn't sound _soo_ important, I already found the lack of a way to test the 1.8 stack in comparision when porting quite bothering :) So I changed the gem2rpm template to output always two ruby versions. ruby18-gem-gettext and ruby19-gem-gettext. This _kind_ of works, but both these gems install stuff in %_bindir and they conflict (other files are in ruby version specific dirs). I see several options: 1. Most of the executables are just wrappers for the real stuff happening in ruby modules, so just package the executables for the default ruby version. 2. add a suffix to the non-default ruby versions 3. add a suffix to all executables and provide update-alternative hooks all around 4. even more complex stuff :) The mid term goal is to have it clear from the binary rpm name which ruby version it is for - ruby 1.8 will be around for a while. If you want to see my state, check http://s.kulow.org/4 Greetings, Stephan -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
On Sun, 11 Mar 2012 11:16:20 +0100 Stephan Kulow <coolo@suse.de> wrote:
Hi,
As I have a high interest in getting ruby 1.9 (as default ruby) into factory to replace the soon out of maintenance 1.8, darix invited me to work out a plan how to have gems build for 1.8 and 1.9.
So I renamed ruby to ruby18 and added a ruby package that defines the default ruby. With this I rebuilt all gems that I have installed on my workstation as 1.9 version.
But that doesn't solve the 1.8 backward problem - and while it doesn't sound _soo_ important, I already found the lack of a way to test the 1.8 stack in comparision when porting quite bothering :)
So I changed the gem2rpm template to output always two ruby versions. ruby18-gem-gettext and ruby19-gem-gettext. This _kind_ of works, but both these gems install stuff in %_bindir and they conflict (other files are in ruby version specific dirs).
I see several options: 1. Most of the executables are just wrappers for the real stuff happening in ruby modules, so just package the executables for the default ruby version. 2. add a suffix to the non-default ruby versions 3. add a suffix to all executables and provide update-alternative hooks all around 4. even more complex stuff :)
Well, it looks like deja-vu. I see similar discussion for python3. Well I think that we can inspire. I think that we should use 1. as default as from binary you want to have it working ( I don't care if a use library liba or libb as long as it working ). With exception where it make sense ( e.g. generators of code which could be different for different versions ). Josef
The mid term goal is to have it clear from the binary rpm name which ruby version it is for - ruby 1.8 will be around for a while.
If you want to see my state, check http://s.kulow.org/4
Greetings, Stephan
-- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
On 03/11/2012 11:16 AM, Stephan Kulow wrote:
1. Most of the executables are just wrappers for the real stuff happening in ruby modules, so just package the executables for the default ruby version. 2. add a suffix to the non-default ruby versions 3. add a suffix to all executables and provide update-alternative hooks all around 4. even more complex stuff :)
I think the 3rd solution is the best one. The 1st one sounds like the easiest one, but as you said it doesn't work on all cases. Flavio -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
Am 12.03.2012 10:29, schrieb Flavio Castelli:
On 03/11/2012 11:16 AM, Stephan Kulow wrote:
1. Most of the executables are just wrappers for the real stuff happening in ruby modules, so just package the executables for the default ruby version. 2. add a suffix to the non-default ruby versions 3. add a suffix to all executables and provide update-alternative hooks all around 4. even more complex stuff :)
I think the 3rd solution is the best one. The 1st one sounds like the easiest one, but as you said it doesn't work on all cases.
Option 2 is what I implemented for the moment :) Assuming that most setups will have one ruby only, it appeared to me as the easiest solution. But I'm fine with enhancing this before finalizing. Greetings, Stephan -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
* Flavio Castelli <fcastelli@suse.com> [Mar 12. 2012 10:29]:
On 03/11/2012 11:16 AM, Stephan Kulow wrote:
1. Most of the executables are just wrappers for the real stuff happening in ruby modules, so just package the executables for the default ruby version. 2. add a suffix to the non-default ruby versions 3. add a suffix to all executables and provide update-alternative hooks all around 4. even more complex stuff :)
I think the 3rd solution is the best one. The 1st one sounds like the easiest one, but as you said it doesn't work on all cases.
Ugh. Can we please get over it and accept that Ruby 1.9 is the official version now ? Klaus --- SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg) Maxfeldstraße 5, 90409 Nürnberg, Germany -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
On 03/12/2012 10:38 AM, Klaus Kaempf wrote:
* Flavio Castelli<fcastelli@suse.com> [Mar 12. 2012 10:29]:
On 03/11/2012 11:16 AM, Stephan Kulow wrote:
1. Most of the executables are just wrappers for the real stuff happening in ruby modules, so just package the executables for the default ruby version. 2. add a suffix to the non-default ruby versions 3. add a suffix to all executables and provide update-alternative hooks all around 4. even more complex stuff :)
I think the 3rd solution is the best one. The 1st one sounds like the easiest one, but as you said it doesn't work on all cases.
Ugh.
Can we please get over it and accept that Ruby 1.9 is the official version now ?
We'll see that with Ruby 2.0, 2.1 ... etc. in the future so let's use something that is always applicable to the "current" state whenever it is. +1 for what Klaus has written Bye Lukas -- Lukas Ocilka, Appliances Department SUSE LINUX s.r.o., Praha -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
Am 12.03.2012 10:41, schrieb Lukas Ocilka:
On 03/12/2012 10:38 AM, Klaus Kaempf wrote:
* Flavio Castelli<fcastelli@suse.com> [Mar 12. 2012 10:29]:
On 03/11/2012 11:16 AM, Stephan Kulow wrote:
1. Most of the executables are just wrappers for the real stuff happening in ruby modules, so just package the executables for the default ruby version. 2. add a suffix to the non-default ruby versions 3. add a suffix to all executables and provide update-alternative hooks all around 4. even more complex stuff :)
I think the 3rd solution is the best one. The 1st one sounds like the easiest one, but as you said it doesn't work on all cases.
Ugh.
Can we please get over it and accept that Ruby 1.9 is the official version now ?
We'll see that with Ruby 2.0, 2.1 ... etc. in the future so let's use something that is always applicable to the "current" state whenever it is.
+1 for what Klaus has written
Please note that you need to touch the spec files anyway for another ruby flavor (jruby might become interesting at some point, ree is fortunately dead for 1.9) or ruby version. So we can discuss again at that point what to do :) Greetings, Stephan -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
On 03/12/2012 10:49 AM, Stephan Kulow wrote:
+1 for what Klaus has written
Please note that you need to touch the spec files anyway for another ruby flavor (jruby might become interesting at some point, ree is fortunately dead for 1.9) or ruby version. So we can discuss again at that point what to do :)
Greetings, Stephan
I don't see the need for keeping 1.8 around. Lets go pure 1.9.x. Most deployments happen with rvm or rbenv anyways, so if someone needs an exotic ruby interpreter they can do it in the usual way. This is about the interpreter for the distribution. It is true that you get the same problem again when adding other interpreter flavors. But I think this problem has to be workarounded by sharing all gems across versions an interpreters just like Java does. The only reason to keep them separated by versions is that ruby 1.9 is bin-incompatible incompatible with 1.8. But this is mainly (AFAIK) because 1.8 exposed to much of its guts (structs). Interpreters like JRuby and Rubinius implement the C functons diferently therefore they would not work anyway with an extension that tries to use MRI "guts". IIRC Jruby already dropped the ruby version from the GEM_PATH in one of the latest development versions. -- Duncan Mac-Vicar P. - http://www.suse.com/ SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg) Maxfeldstraße 5, 90409 Nürnberg, Germany -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
Am 12.03.2012 11:59, schrieb Duncan Mac-Vicar P.:
On 03/12/2012 10:49 AM, Stephan Kulow wrote:
+1 for what Klaus has written
Please note that you need to touch the spec files anyway for another ruby flavor (jruby might become interesting at some point, ree is fortunately dead for 1.9) or ruby version. So we can discuss again at that point what to do :)
Greetings, Stephan
I don't see the need for keeping 1.8 around. Lets go pure 1.9.x. That would simplify things a lot actually :)
Greetings, Stephan -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
On 12.03.2012 10:38, Klaus Kaempf wrote:
* Flavio Castelli <fcastelli@suse.com> [Mar 12. 2012 10:29]:
On 03/11/2012 11:16 AM, Stephan Kulow wrote:
1. Most of the executables are just wrappers for the real stuff happening in ruby modules, so just package the executables for the default ruby version. 2. add a suffix to the non-default ruby versions 3. add a suffix to all executables and provide update-alternative hooks all around 4. even more complex stuff :)
I think the 3rd solution is the best one. The 1st one sounds like the easiest one, but as you said it doesn't work on all cases.
Ugh.
Can we please get over it and accept that Ruby 1.9 is the official version now ? Just to put this in the archive too: rails 2.3 has at least one problem with ruby 1.9 that is no longer going to be fixed upstream - so ditching 1.8 also means ditching rails 2.3 (or getting maintenance of it on our own shoulders exclusively).
Fortunately for most things there will be patches around, just as for the problem I encountered with rails: https://github.com/jescalante/rails/commit/6e20c3f895563280e6e8fb14ab9047d50... Greetings, Stephan -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
* Stephan Kulow <coolo@suse.de> [Mar 13. 2012 13:04]:
On 12.03.2012 10:38, Klaus Kaempf wrote:
Can we please get over it and accept that Ruby 1.9 is the official version now ?
Just to put this in the archive too: rails 2.3 has at least one problem with ruby 1.9 that is no longer going to be fixed upstream - so ditching 1.8 also means ditching rails 2.3 (or getting maintenance of it on our own shoulders exclusively).
Sure, as we're talking openSUSE 12.2 (and beyond) here. Rails 2.x is as dead as Ruby 1.8.x is. Klaus --- SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg) Maxfeldstraße 5, 90409 Nürnberg, Germany -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
On 13.03.2012 13:08, Klaus Kaempf wrote:
* Stephan Kulow <coolo@suse.de> [Mar 13. 2012 13:04]:
On 12.03.2012 10:38, Klaus Kaempf wrote:
Can we please get over it and accept that Ruby 1.9 is the official version now ?
Just to put this in the archive too: rails 2.3 has at least one problem with ruby 1.9 that is no longer going to be fixed upstream - so ditching 1.8 also means ditching rails 2.3 (or getting maintenance of it on our own shoulders exclusively).
Sure, as we're talking openSUSE 12.2 (and beyond) here.
Rails 2.x is as dead as Ruby 1.8.x is.
Just as kde3 :) Greetings, Stephan -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
participants (6)
-
Duncan Mac-Vicar P.
-
Flavio Castelli
-
Josef Reidinger
-
Klaus Kaempf
-
Lukas Ocilka
-
Stephan Kulow