[MacPorts] #33609: Add variant to nginx for mod_passenger
MacPorts
noreply at macports.org
Tue Mar 13 18:14:24 PDT 2012
#33609: Add variant to nginx for mod_passenger
----------------------------------+-----------------------------------------
Reporter: macports@… | Owner: cal@…
Type: enhancement | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.0.4
Keywords: | Port: nginx
----------------------------------+-----------------------------------------
Comment(by cal@…):
Please remember to Cc or assign to the maintainer.
mod_passenger uses /usr/bin/rake in it's configure phase; does it also
link against (or use at run-time) system ruby? Per MacPorts
wiki:FAQ#ownlibs we do not link against or use system libraries, but
should rather depend on one of the ruby port available in MacPorts to be
self-contained. This patch should probably add a dependency on MacPorts
ruby and set environment variables or patch Makefiles/configure where
necessary to make it use MacPorts ruby.
mod_passenger also seems to ship it's own version of libev:
{{{
cd ext/libev/ && sh
/opt/local/var/macports/build/_opt_dports_www_nginx/nginx/work/passenger-3.0.11/ext/libev/configure
--disable-shared --enable-static
}}}
Is this necessary? Can MacPorts' libev port be used instead? What are the
reasons for mod_passenger shipping it's own libev?
Also actually compiling mod_passenger seems to ignore the CC environment
variable specified at configure time and always use "gcc" instead. We
usually always specify an explicit compiler and want software to use this
compiler in order to get reproducible builds. Maybe this patch needs to
add
{{{
build.args-append CC=${configure.cc} \
CXX=${configure.cxx} \
CPP=${configure.cpp}
}}}
as described in UsingTheRightCompiler?
The error output I see is:
{{{
mkdir -p 'ext/ruby/ruby-1.8.7-universal-macosx/'
cd 'ext/ruby/ruby-1.8.7-universal-macosx/' &&
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
'/opt/local/var/macports/build/_opt_dports_www_nginx/nginx/work/passenger-3.0.11/ext/ruby/extconf.rb'
checking for alloca.h... no
checking for ruby/io.h... no
creating Makefile
cd 'ext/ruby/ruby-1.8.7-universal-macosx/' && make
gcc -I.
-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8
/universal-darwin11.0
-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8
/universal-darwin11.0
-I/opt/local/var/macports/build/_opt_dports_www_nginx/nginx/work/passenger-3.0.11/ext/ruby
-D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -arch i386 -arch x86_64
-g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common
-g -c
/opt/local/var/macports/build/_opt_dports_www_nginx/nginx/work/passenger-3.0.11/ext/ruby/passenger_native_support.c
gcc -I.
-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8
/universal-darwin11.0
-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8
/universal-darwin11.0
-I/opt/local/var/macports/build/_opt_dports_www_nginx/nginx/work/passenger-3.0.11/ext/ruby
-D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -arch i386 -arch x86_64 -g
-Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common -g -c
/opt/local/var/macports/build/_opt_dports_www_nginx/nginx/work/passenger-3.0.11/ext/ruby/passenger_native_support.c
gcc: Error: You should be using ${configure.cc}
See http://trac.macports.org/wiki/UsingTheRightCompiler
make: *** [passenger_native_support.o] Error 1
rake aborted!
Command failed with status (2): [cd 'ext/ruby/ruby-1.8.7-universal-
macosx/'...]
}}}
The last paragraph in using UsingTheRightCompiler describes the test setup
I have on my development system in order to test for ports using the
default compiler (and is what is causing the error message I pasted). You
will not see this without this special setup.
--
Ticket URL: <https://trac.macports.org/ticket/33609#comment:3>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list