diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2016-01-03 11:41:04 -0600 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2016-01-03 12:41:38 -0600 |
commit | fa091f417225c963be0e09c2cdaa92a10056dd32 (patch) | |
tree | 3aea6cf380996950474630d77fe6c26095bd8c54 /.travis | |
parent | 8dfee5ba73d7526e057fc90732978ca45d54107f (diff) | |
download | cryptography-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.sh | 4 |
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 |