Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 348501 - www-servers/nginx and www-apache/passenger file collision
Summary: www-servers/nginx and www-apache/passenger file collision
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Highest major (vote)
Assignee: Benedikt Böhm (RETIRED)
Depends on:
Reported: 2010-12-12 13:39 UTC by Andreis Vinogradovs ( slepnoga )
Modified: 2011-07-25 09:26 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---

fixed ebuild (nginx-1.0.0-r2.ebuild,13.01 KB, text/plain)
2011-04-22 18:33 UTC, Vadim A. Misbakh-Soloviov (mva)

Note You need to log in before you can comment on or make changes to this bug.
Description Andreis Vinogradovs ( slepnoga ) 2010-12-12 13:39:54 UTC
www-servers/nginx build with NGINX_MODULES_HTTP="passenger" and www-apache/passenger produce file collision
* Searching all installed packages for file collisions...
 * Press Ctrl-C to Stop
 * www-apache/passenger-2.2.15
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/abstract_installer.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/abstract_request_handler.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/abstract_server.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/abstract_server_collection.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/admin_tools.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/application.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/console_text_template.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/constants.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/dependencies.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/events.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/exceptions.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/html_template.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/message_channel.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/packaging.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/platform_info.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/simple_benchmarking.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/spawn_manager.rb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/templates/app_exited_during_initialization.html.erb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/templates/framework_init_error.html.erb
 *      /usr/lib64/ruby/site_ruby/1.8/phusion_passenger/utils.rb
 * Package 'www-servers/nginx-0.8.53' NOT merged due to file collisions.
 * If necessary, refer to your elog messages for the whole content of the
 * above message.

P.S please see
Comment 1 Tiziano Müller (RETIRED) gentoo-dev 2010-12-13 10:33:53 UTC
... and a blocker is probably not the right solution.

Would it be possible to have a generic passenger-ebuild which only installs the agents, the ruby-stuff and the helper scripts? 
Comment 2 Tiziano Müller (RETIRED) gentoo-dev 2010-12-13 10:35:49 UTC
Unfortunately nginx does not support dynamic modules, thus we have to build at least the nginx-extension of passenger during the nginx installation.
Comment 3 Benedikt Böhm (RETIRED) gentoo-dev 2010-12-14 07:23:33 UTC
what about dropping passenger-2 completely and only support passenger-3 in standalone mode? this way we could get rid of the horrible build system of passenger in the apache and nginx ebuilds and move the ebuild to dev-ruby where it belongs ...
Comment 4 Hans de Graaff gentoo-dev 2010-12-15 10:31:16 UTC
(In reply to comment #3)
> what about dropping passenger-2 completely and only support passenger-3 in
> standalone mode? this way we could get rid of the horrible build system of
> passenger in the apache and nginx ebuilds and move the ebuild to dev-ruby where
> it belongs ...

Passenger 2.x is the only stable version and passenger 3 is way to new to trust on high-volume websites right now.

Also I seem to remember that standalone mode has less features than the apache integration, but this is something that I would need to look up (hopefully this weekend).

Finally, passenger should never be in dev-ruby. www-servers, maybe, but not dev-ruby, for the same reason that apache itself shouldn't be in dev-c.

Comment 5 Hans de Graaff gentoo-dev 2010-12-15 10:32:08 UTC
I had a quick discussion with Tiziano on IRC and we think that adding an apache USE flag to the current build is our preferred solution, if we can make it work.
Comment 6 Tiziano Müller (RETIRED) gentoo-dev 2010-12-15 13:37:40 UTC
Right, summary is:

* add an apache use flag to passenger to install only the agents (watchdog and logging) as well as the ruby modules
* let the passenger bundled with nginx depend on the passenger package

Only drawback: nginx (probably) has to depend on a specific version of the passenger package.
Comment 7 Benedikt Böhm (RETIRED) gentoo-dev 2011-04-08 08:33:22 UTC
passenger support has been remove from the nginx ebuild
Comment 8 Benedikt Böhm (RETIRED) gentoo-dev 2011-04-08 08:35:05 UTC
leave this one open until 0.9.7 is stable ...
Comment 9 Vadim A. Misbakh-Soloviov (mva) gentoo-dev 2011-04-22 18:33:57 UTC
Created attachment 270899 [details]
fixed ebuild

Hi there!

Can anybody tell me, why somebody should have both www-apache/passenger and NgX[passenger] installed? What reason?

I think, it'll be better to block apache's passenger, as it is unneded in this case.

Fixed ebuild (works fine for me) in attach.

Regards, mva
Comment 10 Chris Beswick 2011-05-02 19:12:00 UTC
I have written an attempt at an ebuild to solve this issue for nginx by moving most of passenger to its own ebuild based off www-apache/passenger.

Basically it patches passenger's fakeroot install to remove the apache support, so it should be possible to make the same ebuild install both the apache and nginx passenger "support" files, removing any chance of a collision. It also removes any need to mess with the ruby eclasses in the www-servers/nginx ebuild.

Please note these are pretty rough, they don't have any of the patches etc from the current portage tree as they were cut-and-pasted together to see if it was workable. But it should illustrate the basic idea.

I can clean them up and make them a bit more workable if both the apache and nginx parties are willing to share an ebuild for passenger support... mine is currently dev-ruby/passenger, but I don't think that's appropriate, perhaps www-servers/passenger given that there is a standalone version of passenger available.
Comment 11 Benedikt Böhm (RETIRED) gentoo-dev 2011-07-25 09:26:43 UTC
affected ebuilds are no longer in cvs, closing ...