passenger icon indicating copy to clipboard operation
passenger copied to clipboard

nginx module compilation fails on Ubuntu 18.04

Open dkrutsko opened this issue 6 years ago • 1 comments

Issue report

Fill in as much as possible so that we can understand, find and fix the problem.

Are you sure this is a bug in Passenger? Yes

Question 1: What is the problem?

  • What is the expected behavior? The nginx Passenger module should compile successfully

  • What is the actual behavior? Compilation fails with the following error

c++ -o buildout/support-binaries/PassengerAgent buildout/common/libpassenger_common/LoggingKit.o buildout/common/libpassenger_common/Exceptions.o buildout/common/libpassenger_common/FileTools/PathManip.o buildout/common/libpassenger_common/FileTools/FileManip.o buildout/common/libpassenger_common/FileTools/PathSecurityCheck.o buildout/common/libpassenger_common/ProcessManagement/Spawn.o buildout/common/libpassenger_common/ProcessManagement/Utils.o buildout/common/libpassenger_common/SystemTools/UserDatabase.o buildout/common/libpassenger_common/Utils/SystemTime.o buildout/common/libpassenger_common/StrIntTools/StrIntUtils.o buildout/common/libpassenger_common/StrIntTools/StrIntUtilsNoStrictAliasing.o buildout/common/libpassenger_common/IOTools/IOUtils.o buildout/common/libpassenger_common/Algorithms/Hasher.o buildout/common/libpassenger_common/Utils.o buildout/common/libpassenger_common/jsoncpp.o buildout/common/libpassenger_common/vendor-modified/modp_b64.o buildout/common/libpassenger_common/vendor-modified/modp_b64_strict_aliasing.o buildout/common/libpassenger_common/ProcessManagement/Ruby.o buildout/common/libpassenger_common/SecurityKit/Crypto.o buildout/common/libpassenger_common/Utils/CachedFileStat.o buildout/common/libpassenger_common/MemoryKit/mbuf.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/DataStructures/LString.o buildout/common/libpassenger_common/AppTypeDetector/CBindings.o buildout/common/libpassenger_common/WrapperRegistry/CBindings.o buildout/support-binaries/AgentMain.o buildout/support-binaries/AgentFundamentals.o buildout/support-binaries/WatchdogMain.o buildout/support-binaries/CoreMain.o buildout/support-binaries/CoreApplicationPool.o buildout/support-binaries/CoreController.o buildout/support-binaries/SystemMetricsMain.o buildout/support-binaries/TempDirToucherMain.o buildout/support-binaries/SpawnEnvSetupper.o buildout/support-binaries/ExecHelperMain.o buildout/support-binaries/FileReadHelperMain.o buildout/common/libboost_oxt.a  -L/usr/local/openssl/lib -Wl,-rpath=/usr/local/openssl/lib buildout/libev/.libs/libev.a  -lm buildout/libuv/.libs/libuv.a  -lrt -lpthread -lnsl -ldl -lcurl -lz  -lcrypto -std=gnu++11 -lpthread -lrt -ldl -rdynamic
/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_CTX_set_next_proto_select_cb@OPENSSL_1_1_0'
collect2: error: ld returned 1 exit status
rake aborted!
  • How can we reproduce it? Ubuntu 18.04.3 LTS (comes with OpenSSL 1.1.1) Compile OpenSSL 1.1.1c into /usr/local
sudo mkdir -p /usr/local/openssl/src
curl -sS https://www.openssl.org/source/openssl-1.1.1c.tar.gz | sudo tar -xz --strip 1 -C /usr/local/openssl/src
cd /usr/local/openssl/src
sudo ./config --prefix=/usr/local/openssl --openssldir=/usr/local/ssl --libdir=lib enable-ec_nistp_64_gcc_128 no-nextprotoneg no-weak-ssl-ciphers no-ssl3 -Wl,-rpath=/usr/local/openssl/lib
sudo make -j 16 && sudo make install

Compile the Passenger nginx module

sudo mkdir -p /usr/local/phusion
curl -sSL https://github.com/phusion/passenger/archive/release-6.0.2.tar.gz | sudo tar -xz --strip 1 -C /usr/local/phusion
cd /usr/local/phusion
bundle install
rvmsudo rake nginx CACHING=false EXTRA_PRE_CXXFLAGS="-I/usr/local/openssl/include" EXTRA_PRE_CXX_LDFLAGS="-L/usr/local/openssl/lib -Wl,-rpath=/usr/local/openssl/lib"

Question 2: Passenger version and integration mode: open source 6.0.2

Question 3: OS or Linux distro, platform (including version): Ubuntu 18.04.3 LTS

Question 4: Passenger installation method:

[ ] RubyGems + Gemfile [ ] RubyGems, no Gemfile [ ] Phusion APT repo [ ] Phusion YUM repo [ ] OS X Homebrew [X] source tarball [ ] Other, please specify:

Question 5: Your app's programming language (including any version managers) and framework (including versions): Ruby 2.3.8, installed through RVM 1.29.9

Question 6: Are you using a PaaS and/or containerization? If so which one? Amazon EC2

Question 7: Anything else about your setup that we should know? Identical configuration was used on Amazon Linux 2 and it worked fine

dkrutsko avatar Aug 20 '19 15:08 dkrutsko

This doesn't seem to happen for me on a fresh 18.04.3, though I stuck with the system openssl 1.1.1.

CamJN avatar Sep 19 '19 17:09 CamJN