Gentoo now supports concurrent (major) ruby versions, it would be great if passenger supported those, or at least Ruby Enterprise Edition (as one is more or less developed with the other one in mind). After a short discussion on #gentoo-ruby, there seem to be 1 or 2 files that will be problematic because they aren't in the "gem path" and hence need to be versioned "by hand". The apache module (passenger.so) could be name passenger-RUBY_VERSION.so, the config (/etc/apache/modules.d/30-mod_passenger.conf) would need to be changed to support that, either through a IfDefines (PASSENGER-RUBY18, PASSENGER-REE18 and so on) or through a "#uncomment the next 2 lines to use REE18 instead of RUBY18" thing. Reproducible: Always Steps to Reproduce:
I sincerely have little hope for this to work consistently with Apache, for multiple Ruby versions... I'm sincerely tempted to just make it selectable with RUBY_TARGETS which one of the three to build for... it definitely _won't_ work to load two passengers in the same instance, so it wouldn't make much sense to have multiple of them available. Hans?
(In reply to comment #1) > it definitely _won't_ work > to load two passengers in the same instance, so it wouldn't make much sense to > have multiple of them available. I'm aware of that :-) > I sincerely have little hope for this to work consistently with Apache, for > multiple Ruby versions... I'm sincerely tempted to just make it selectable with > RUBY_TARGETS which one of the three to build for… Fine by me, as long as I can get it to work with REE with emerge ;-)
Yeah my idea for stuff like this (I actually noted it in one of my last two posts, it is "ruby used as interpreted rather than for bindings"), is to provide the usual targets, but only enable it for the first one enabled (the order in USE_RUBY is relevant) and warn if more than one is enabled. So you could then just do echo "www-apache/passenger -ruby_targets_ruby18 -ruby_targets_ruby19 ruby_targets_ree18" >> etc/portage/package.use emerge passenger and it would work. Not this weekend as I'm swamped, maybe I'll work on it next week.
We already discussed this a bit on IRC before Felix filed the bug. I like the configuration solution better, but whether that works as expected is something we should test. Otherwise the USE flag approach will work in any case, once we make passenger use ruby-ng.
It looks like passenger 3.0 has support for multiple ruby implementations using the standalone approach. Let's get that packaged up and see how it works out.
I don't like to sound impatient, but any luck/progress/test version of a "ruby-ng"ified passenger ebuild?
(In reply to comment #6) > I don't like to sound impatient, but any luck/progress/test version of a > "ruby-ng"ified passenger ebuild? passenger-3.0.0 is using the ruby-ng eclass, but as it is it can't support multiple ruby targets yet. It also has a bunch of open bugs atm. I don't intend to backport ruby-ng support to passenger 2.x.
(In reply to comment #7) > passenger-3.0.0 is using the ruby-ng eclass, but as it is it can't support > multiple ruby targets yet. It also has a bunch of open bugs atm. Passenger or the ebuild? Anyway, that's probably enough for me, I suppose that if I make a local copy of the ebuild and change the ruby_target from ruby18 to ree18 it should mostly work as expected? > I don't intend > to backport ruby-ng support to passenger 2.x. I don't think there's any need to.
(In reply to comment #8) > Passenger or the ebuild? The ebuild. Passenger itself seems to run fine on my low-volume test website. > Anyway, that's probably enough for me, I suppose that > if I make a local copy of the ebuild and change the ruby_target from ruby18 to > ree18 it should mostly work as expected? I hope so, yes.
*** Bug 398015 has been marked as a duplicate of this bug. ***
*passenger-3.0.11-r1 (27 Feb 2012) 27 Feb 2012; Diego E. Pettenò <flameeyes@gentoo.org> +passenger-3.0.11-r1.ebuild: Revision bump to try supporting Ruby 1.9 _or_ Ruby 1.8. This adds the possibility to use either ruby18 or ruby19. I guess we could use the same mechanism to also make ree18 an option.
passenger 4.x has support for multiple ruby versions. I've just added 4.0.10 to the tree.