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>