Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Jun 2013 15:11:22 -0400
From:      Paul Mather <paul@gromit.dlib.vt.edu>
To:        "Steve Wills" <swills@FreeBSD.org>
Cc:        freebsd-ports@FreeBSD.org
Subject:   Re: www/rubygem-passenger now requires bash?
Message-ID:  <FD73121C-3D6B-422E-9B4F-F7D9C0858599@gromit.dlib.vt.edu>
In-Reply-To: <71c953f9ebbd220a72258fb1dbf322f8.squirrel@mouf.net>
References:  <DFDFB371-63D0-430F-8E4E-77119578DDD8@gromit.dlib.vt.edu> <71c953f9ebbd220a72258fb1dbf322f8.squirrel@mouf.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Jun 11, 2013, at 10:04 AM, "Steve Wills" <swills@FreeBSD.org> wrote:

>> I'm running FreeBSD/amd64 8-STABLE (r250276) and, yesterday, updated
>> www/rubygem-passenger from 3.0.19 to 4.0.5 via portmaster.  Although =
the
>> port upgraded without error, the resultant Passenger no longer works: =
it
>> complains it can't find "bash" and Rails apps won't spawn.
>>=20
>> I don't have shells/bash installed, and didn't need to with version =
3.0.19
>> of the www/rubygem-passenger port.  The shells/bash port isn't listed =
as a
>> runtime dependency for www/rubygem-passenger in its Makefile, either.
>>=20
>> If I install shells/bash and also put a symlink from /usr/bin/bash to
>> /usr/local/bin/bash then Passenger will run once again.  I don't like =
this
>> solution, though.  Does anyone know of a way of running the Passenger
>> 4.0.5 port without needing bash?
>>=20
>> I've included at the end a snippet from httpd-error.log showing the
>> behaviour of the new Passenger 4.0.5 prior to the workaround I put in
>> place mentioned in the preceding paragraph.
>=20
> I think it only calls bash like that when it crashes, so that it can
> generate a crash report of some kind and possibly submit it somewhere.


I just found this entry in Appendix D of the Passenger documentation for =
Apache =
(http://www.modrails.com/documentation/Users%20guide%20Apache.html#about_e=
nvironment_variables):

=3D=3D=3D=3D=3D
[[...]]
14.3.5. Phusion Passenger-served apps

You can pass environment variables to Phusion Passenger-served apps =
through various methods:
[[...]]
	=95 Through your bashrc. Starting from version 4.0, Phusion =
Passenger 4.0 spawns applications through bash and inherit all bash =
environment variables. Phusion Passenger Standalone tends to be started =
from the shell and thus inherits all environment variables set by the =
shell.
[[...]]
=3D=3D=3D=3D=3D

So, it seems that Passenger 4.x explicitly assumes bash is the shell =
when spawning Rails apps via the Apache module.

In the installed version of Passenger 4.0.5, under =
/usr/local/lib/ruby/gems/1.9/gems/passenger-4.0.5/ext/common/ApplicationPo=
ol2, there appear to be hardcoded references to "bash" in the code.  Is =
this a creeping Linuxism?

Cheers,

Paul.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FD73121C-3D6B-422E-9B4F-F7D9C0858599>