From fa091f417225c963be0e09c2cdaa92a10056dd32 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Sun, 3 Jan 2016 11:41:04 -0600 Subject: sed the openssl makefile to change the shlib version We do this to prevent a version collision between the custom one we're installing and whatever the system has. OpenSSL 1.0.0 through 1.0.2 all declare an SHLIB version of 1.0.0, so if Python has been linked against 1.0.1 and cryptography against 1.0.0, but then you try to load Python it will consider either 1.0.1 or 1.0.0 to satisfy the library version. This is, of course, nonsense since 1.0.1 has substantially more symbols than 1.0.0. The result is that if you do a LD_LIBRARY_PATH that points at the "real" 1.0.0 then Python will fail to load because there are missing symbols. We can avoid this entire nonsense by changing the major version. The dynamic linker will happily load both versions and nothing will kerplode. --- .travis/install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis/install.sh b/.travis/install.sh index 0d654253..2f2925cb 100755 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -75,6 +75,10 @@ else tar zxf openssl-$OPENSSL_VERSION_NUMBER.tar.gz cd openssl-$OPENSSL_VERSION_NUMBER ./config shared no-asm no-ssl2 -fPIC --prefix="$HOME/$OPENSSL_DIR" + # modify the shlib version to a unique one to make sure it doesn't load the system one. + sed -i "s/^SHLIB_MAJOR=[0-9]/SHLIB_MAJOR=100/" Makefile + sed -i "s/^SHLIB_MINOR=[0-9].[0-9]/SHLIB_MINOR=0.0/" Makefile + sed -i "s/^SHLIB_VERSION_NUMBER=[0-9].[0-9].[0-9]/SHLIB_VERSION_NUMBER=100.0.0/" Makefile make depend make install fi -- cgit v1.2.3