We've been trying (unsuccessfully) to build Passenger 5 beta, via pkgsrc, on SmartOS.
passenger-5.0.0.beta2
passenger-5.0.0.beta3
However, Passenger 4 (passenger-4.0.53) does compile, albeit only after building libgetopt-1.4.6 first. In other words, pkgsrc doesn't seem to first handle this dependency, but it's simple to work around.
It quickly became clear that building Passenger 5 by creating a new package was going to be non-trivial. Instead we decided to use the Passenger 4 directory tree under WIP as our template and pull in version 5, making any necessary edits. This strategy also failed.
I've built a fresh zone to avoid pollution with our previous build attempts and set DISTNAME= passenger-5.0.0.beta3 in Makefile.common. This yields the following:
[root@passenger5-pkgsrc /content/pkgsrc/wip/ruby-passenger]# bmake install 2>&1 | tee /var/tmp/passenger-5.0.0.beta3.log
=> Bootstrap dependency digest>=20010302: found digest-20121220
===> Installing dependencies for ruby200-passenger-5.0.0.beta3
==========================================================================
The following variables will affect the build process of this package,
ruby200-passenger-5.0.0.beta3. Their current value is shown below:
* SSLBASE (defined)
* SSLCERTS = /opt/local/etc/openssl/certs
* SSLDIR = /opt/local/etc/openssl
* SSLKEYS = /opt/local/etc/openssl/private
You may want to abort the process now with CTRL-C and change their value
before continuing. Be sure to run `/opt/local/bin/bmake clean' after
the changes.
==========================================================================
=> Build dependency asciidoc-[0-9]*: found asciidoc-8.6.9nb2
=> Build dependency gcc47>=4.7: found gcc47-4.7.3nb6
=> Full dependency ruby200-daemon_controller>=1.2.0: found ruby200-daemon_controller-1.2.0
=> Full dependency ruby200-rack-[0-9]*: found ruby200-rack-1.5.2
=> Full dependency {gcc47,gcc47-libs}>=4.7: found gcc47-libs-4.7.3nb7
=> Full dependency {gcc47,gcc47-libs}>=4.7.0: found gcc47-libs-4.7.3nb7
=> Full dependency libeio>=1.0pre: found libeio-1.0pre4.18
=> Full dependency libev>=4.11: found libev-4.15
=> Full dependency curl>=7.35.0nb1: found curl-7.38.0
=> Full dependency ruby200-base>=2.0.0: found ruby200-base-2.0.0p598
===> Overriding tools for ruby200-passenger-5.0.0.beta3
===> Extracting for ruby200-passenger-5.0.0.beta3
===> Patching for ruby200-passenger-5.0.0.beta3
=> Applying pkgsrc patches for ruby200-passenger-5.0.0.beta3
=> Fixing installation directories
INFO: [subst.mk:rake] Nothing changed in ./build/common_library.rb.
INFO: [subst.mk:rake] Nothing changed in ./lib/phusion_passenger.rb.
INFO: [subst.mk:rake] Nothing changed in ./lib/phusion_passenger/platform_info/apache.rb.
INFO: [subst.mk:rake] Nothing changed in ./lib/phusion_passenger/platform_info/cxx_portability.rb.
/usr/bin/rm -f /var/tmp/pkgsrc-build/wip/ruby-passenger/work/passenger-5.0.0.beta3/lib/phusion_passenger/packaging.rb.orig /var/tmp/pkgsrc-build/wip/ruby-passenger/work/passenger-5.0.0.beta3/lib/phusion_passenger/platform_info/apache.rb.orig /var/tmp/pkgsrc-build/wip/ruby-passenger/work/passenger-5.0.0.beta3/lib/phusion_passenger/platform_info/cxx_portability.rb.orig
===> Creating toolchain wrappers for ruby200-passenger-5.0.0.beta3
===> Configuring for ruby200-passenger-5.0.0.beta3
=> Replacing ruby200 interpreter in bin/passenger bin/passenger-config bin/passenger-install-apache2-module bin/passenger-install-nginx-module bin/passenger-memory-stats bin/passenger-status helper-scripts/backtrace-sanitizer.rb helper-scripts/classic-rails-loader.rb helper-scripts/classic-rails-preloader.rb helper-scripts/download_binaries/extconf.rb helper-scripts/meteor-loader.rb helper-scripts/prespawn helper-scripts/rack-loader.rb helper-scripts/rack-preloader.rb.
WARNING: [replace-interpreter] Skipping non-existent file "helper-scripts/classic-rails-loader.rb".
WARNING: [replace-interpreter] Skipping non-existent file "helper-scripts/classic-rails-preloader.rb".
===> Building for ruby200-passenger-5.0.0.beta3
cd /var/tmp/pkgsrc-build/wip/ruby-passenger/work/passenger-5.0.0.beta3/build && /usr/bin/env USETOOLS=no EXTRA_LDFLAGS=-Wl,-R/opt/local/lib USE_VENDORED_LIBEIO=no USE_VENDORED_LIBEV=no DL_CFLAGS= DL_LDFLAGS= DL_LIBS= RUBY=/opt/local/bin/ruby200 RUBY_VER=200 RUBY_VERSION_DEFAULT=200 PTHREAD_CFLAGS=\ -pthread\ PTHREAD_LDFLAGS=\ -pthread PTHREAD_LIBS=-lpthread\ -lrt PTHREADBASE=/usr RAKE=/opt/local/bin/rake200 BINARCHSUFFIX= CC=gcc CFLAGS=-O2\ -pthread\ -I/opt/local/include/eio\ -I/opt/local/include/ev\ -I/opt/local/include\ -DLDAP_DEPRECATED\ -I/usr/include CPPFLAGS=-I/opt/local/include/eio\ -I/opt/local/include/ev\ -I/opt/local/include\ -DLDAP_DEPRECATED\ -I/usr/include CXX=g++ CXXFLAGS=-O2\ -pthread\ -I/opt/local/include/eio\ -I/opt/local/include/ev\ -I/opt/local/include\ -DLDAP_DEPRECATED\ -I/usr/include COMPILER_RPATH_FLAG=-Wl,-R F77=gfortran FC=gfortran FFLAGS=-O LANG=C LC_ALL=C LC_COLLATE=C LC_CTYPE=C LC_MESSAGES=C LC_MONETARY=C LC_NUMERIC=C LC_TIME=C LDFLAGS=-L/opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3\ -Wl,-R/opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.3\ -L/opt/local/gcc47/lib/amd64\ -Wl,-R/opt/local/gcc47/lib/amd64\ -L/opt/local/lib/eio\ -Wl,-R/opt/local/lib/eio\ -L/opt/local/lib/ev\ -Wl,-R/opt/local/lib/ev\ -L/opt/local/lib\ -Wl,-R/opt/local/lib\ -L/usr/lib/amd64\ -Wl,-R/usr/lib/amd64\ -pthread LIBARCHSUFFIX= LINKER_RPATH_FLAG=-R PATH=/var/tmp/pkgsrc-build/wip/ruby-passenger/work/.wrapper/bin:/var/tmp/pkgsrc-build/wip/ruby-passenger/work/.buildlink/bin:/var/tmp/pkgsrc-build/wip/ruby-passenger/work/.gcc/bin:/var/tmp/pkgsrc-build/wip/ruby-passenger/work/.tools/bin:/opt/local/bin:/usr/local/sbin:/usr/local/bin:/opt/local/sbin:/opt/local/bin:/usr/sbin:/usr/bin:/sbin:/opt/local/bin:/opt/local/bin PREFIX=/opt/local MAKELEVEL=0 PKG_SYSCONFDIR=/opt/local/etc/passenger HOME=/var/tmp/pkgsrc-build/wip/ruby-passenger/work/.home CPP=cpp LINK_ALL_LIBGCC_HACK= LOCALBASE=/opt/local NO_WHOLE_ARCHIVE_FLAG=-z\ defaultextract WHOLE_ARCHIVE_FLAG=-z\ allextract X11BASE=/opt/local X11PREFIX=/opt/local PKGMANDIR=man PKGINFODIR=info PKGGNUDIR=gnu/ MAKECONF=/dev/null OBJECT_FMT=ELF USETOOLS=no BSD_INSTALL_PROGRAM=/opt/local/bin/bsdinstall\ -c\ -s\ -o\ root\ -g\ root\ -m\ 755 BSD_INSTALL_SCRIPT=/opt/local/bin/bsdinstall\ -c\ -o\ root\ -g\ root\ -m\ 755 BSD_INSTALL_LIB=/opt/local/bin/bsdinstall\ -c\ -o\ root\ -g\ root\ -m\ 755 BSD_INSTALL_DATA=/opt/local/bin/bsdinstall\ -c\ -o\ root\ -g\ root\ -m\ 644 BSD_INSTALL_MAN=/opt/local/bin/bsdinstall\ -c\ -o\ root\ -g\ root\ -m\ 644 BSD_INSTALL=/opt/local/bin/bsdinstall BSD_INSTALL_PROGRAM_DIR=/opt/local/bin/bsdinstall\ -d\ -o\ root\ -g\ root\ -m\ 755 BSD_INSTALL_SCRIPT_DIR=/opt/local/bin/bsdinstall\ -d\ -o\ root\ -g\ root\ -m\ 755 BSD_INSTALL_LIB_DIR=/opt/local/bin/bsdinstall\ -d\ -o\ root\ -g\ root\ -m\ 755 BSD_INSTALL_DATA_DIR=/opt/local/bin/bsdinstall\ -d\ -o\ root\ -g\ root\ -m\ 755 BSD_INSTALL_MAN_DIR=/opt/local/bin/bsdinstall\ -d\ -o\ root\ -g\ root\ -m\ 755 BSD_INSTALL_GAME=/opt/local/bin/bsdinstall\ -c\ -s\ -o\ root\ -g\ root\ -m\ 2555 BSD_INSTALL_GAME_DATA=/opt/local/bin/bsdinstall\ -c\ -o\ root\ -g\ root\ -m\ 664 BSD_INSTALL_GAME_DIR=/opt/local/bin/bsdinstall\ -d\ -o\ root\ -g\ root\ -m\ 775 INSTALL_INFO= MAKEINFO=/var/tmp/pkgsrc-build/wip/ruby-passenger/work/.tools/bin/makeinfo FLEX= BISON= PKG_CONFIG= PKG_CONFIG_LIBDIR=/var/tmp/pkgsrc-build/wip/ruby-passenger/work/.buildlink/lib/pkgconfig:/var/tmp/pkgsrc-build/wip/ruby-passenger/work/.buildlink/share/pkgconfig PKG_CONFIG_LOG=/var/tmp/pkgsrc-build/wip/ruby-passenger/work/.pkg-config.log PKG_CONFIG_PATH= LIBGETOPT=-lgetopt WRAPPER_DEBUG=no WRAPPER_UPDATE_CACHE=yes WRAPPER_REORDER=yes VIEWBASE=/opt/local /opt/local/bin/rake200 common:clean agents
(in /var/tmp/pkgsrc-build/wip/ruby-passenger/work/passenger-5.0.0.beta3)
rm -rf buildout/cache
rm -rf buildout/common/libboost_oxt.a buildout/common/libboost_oxt
rm -f buildout/common/libpassenger_common/Logging.o buildout/common/libpassenger_common/Exceptions.o buildout/common/libpassenger_common/Utils/SystemTime.o buildout/common/libpassenger_common/Utils/StrIntUtils.o buildout/common/libpassenger_common/Utils/StrIntUtilsNoStrictAliasing.o buildout/common/libpassenger_common/Utils/IOUtils.o buildout/common/libpassenger_common/Utils.o
rm -f buildout/common/libpassenger_common/Utils/modp_b64.o buildout/common/libpassenger_common/Utils/CachedFileStat.o buildout/common/libpassenger_common/Utils/LargeFiles.o buildout/common/libpassenger_common/ApplicationPool2/Implementation.o buildout/common/libpassenger_common/ApplicationPool2/AppTypes.o buildout/common/libpassenger_common/AgentsStarter.o buildout/common/libpassenger_common/AgentsBase.o buildout/common/libpassenger_common/MemoryKit/mbuf.o buildout/common/libpassenger_common/MemoryKit/palloc.o buildout/common/libpassenger_common/MemoryKit/palloc.o buildout/common/libpassenger_common/ServerKit/http_parser.o buildout/common/libpassenger_common/ServerKit/Implementation.o buildout/common/libpassenger_common/Utils/MD5.o buildout/common/libpassenger_common/Utils/Hasher.o buildout/common/libpassenger_common/Utils/jsoncpp.o
rm -f buildout/common/libpassenger_common/agents/LoggingAgent/FilterSupport.o
rm -rf buildout/common/libpassenger_common
rm -rf buildout/support-binaries/
rake aborted!
Don't know how to build task 'agents'
(See full trace by running task with --trace)
*** Error code 1
Stop.
bmake: stopped in /content/pkgsrc/wip/ruby-passenger
*** Error code 1
Stop.
bmake: stopped in /content/pkgsrc/wip/ruby-passenger
We are quite new to both SmartOS and pkgsrc, any assistance with the above would be gratefully appreciated.
--
Stephen Bradly, LiveLink Technology Ltd