aboutsummaryrefslogtreecommitdiffstats
path: root/.travis
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2016-01-03 11:41:04 -0600
committerPaul Kehrer <paul.l.kehrer@gmail.com>2016-01-03 12:41:38 -0600
commitfa091f417225c963be0e09c2cdaa92a10056dd32 (patch)
tree3aea6cf380996950474630d77fe6c26095bd8c54 /.travis
parent8dfee5ba73d7526e057fc90732978ca45d54107f (diff)
downloadcryptography-fa091f417225c963be0e09c2cdaa92a10056dd32.tar.gz
cryptography-fa091f417225c963be0e09c2cdaa92a10056dd32.tar.bz2
cryptography-fa091f417225c963be0e09c2cdaa92a10056dd32.zip
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.
Diffstat (limited to '.travis')
-rwxr-xr-x.travis/install.sh4
1 files changed, 4 insertions, 0 deletions
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