Merge pull request #2553 from reaperhulk/098-change

Build our own 0.9.8 on travis
diff --git a/.travis.yml b/.travis.yml
index fb61d3e..4ded04d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,6 +5,7 @@
 cache:
     directories:
         - $HOME/.cache/pip
+        - $HOME/ossl-098l
 
 matrix:
     include:
@@ -22,44 +23,14 @@
           env: TOXENV=pypy
         - python: 2.6
           env: TOXENV=py26 OPENSSL=0.9.8
-          addons:
-              apt:
-                  sources:
-                      - lucid
-                  packages:
-                      - libssl-dev/lucid
         - python: 2.7
           env: TOXENV=py27 OPENSSL=0.9.8
-          addons:
-              apt:
-                  sources:
-                      - lucid
-                  packages:
-                      - libssl-dev/lucid
         - python: 3.3
           env: TOXENV=py33 OPENSSL=0.9.8
-          addons:
-              apt:
-                  sources:
-                      - lucid
-                  packages:
-                      - libssl-dev/lucid
         - python: 3.4
           env: TOXENV=py34 OPENSSL=0.9.8
-          addons:
-              apt:
-                  sources:
-                      - lucid
-                  packages:
-                      - libssl-dev/lucid
         - python: 3.5
           env: TOXENV=py35 OPENSSL=0.9.8
-          addons:
-              apt:
-                  sources:
-                      - lucid
-                  packages:
-                      - libssl-dev/lucid
         - python: pypy
           env: TOXENV=pypy OPENSSL=0.9.8
           addons:
diff --git a/.travis/install.sh b/.travis/install.sh
index 2003dbe..0e5cdb4 100755
--- a/.travis/install.sh
+++ b/.travis/install.sh
@@ -61,6 +61,28 @@
         pyenv install pypy-4.0.1
         pyenv global pypy-4.0.1
     fi
+    if [[ "${OPENSSL}" == "0.9.8" ]]; then
+      # download, compile, and install if it's not already present via travis cache
+      # This is 0.9.8l rather than zh because we have some branches for handling
+      # < 0.9.8m that won't be exercised with a newer OpenSSL. (RHEL5 is 0.9.8e with
+      # patches, but while that's in jenkins we don't get coverage data from it)
+      if [[ ! -f "$HOME/ossl-098l/bin/openssl" ]]; then
+        curl -O https://www.openssl.org/source/openssl-0.9.8l.tar.gz
+        tar zxf openssl-0.9.8l.tar.gz
+        cd openssl-0.9.8l
+        echo "OPENSSL_0.9.8L_CUSTOM {
+            global:
+              *;
+        };" > openssl.ld
+        ./config no-asm no-ssl2 -Wl,--version-script=openssl.ld -Wl,-Bsymbolic-functions -fPIC shared --prefix=$HOME/ossl-098l
+        make depend
+        make install
+      fi
+      export PATH="$HOME/ossl-098l/bin:$PATH"
+      export CFLAGS="-I$HOME/ossl-098l/include"
+      export LDFLAGS="-L$HOME/ossl-098l/lib"
+      export LD_LIBRARY_PATH="$HOME/ossl-098l/lib"
+    fi
     pip install virtualenv
 fi
 
diff --git a/.travis/run.sh b/.travis/run.sh
index 178dfc2..23b9e89 100755
--- a/.travis/run.sh
+++ b/.travis/run.sh
@@ -23,6 +23,12 @@
         PATH="$PYENV_ROOT/bin:$PATH"
         eval "$(pyenv init -)"
     fi
+    if [[ "${OPENSSL}" == "0.9.8" ]]; then
+      export PATH="$HOME/ossl-098l/bin:$PATH"
+      export CFLAGS="-I$HOME/ossl-098l/include"
+      export LDFLAGS="-L$HOME/ossl-098l/lib"
+      export LD_LIBRARY_PATH="$HOME/ossl-098l/lib"
+    fi
 fi
 source ~/.venv/bin/activate
 tox -- $TOX_FLAGS