subsurface/.travis.yml
Dirk Hohndel f24b6d461d Travis AppImage: work around OpenSSL issue
The Qt binaries that we use for the continues build of the AppImage reference
libcrypto.so.1.0.1e, but we bundle libcrypto.so.1.0.0. On distros that have
libcrypto.so.1.0.1e that gets loaded in addition to the one that we bundle
which causes a conflict. More details are explained in the issue below.

Fixes #779

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-11-06 09:42:07 -08:00

93 lines
4.5 KiB
YAML

language: c++
sudo: true # for FUSE
dist: trusty
# cache:
# directories:
# - Qt
addons:
apt:
packages:
- git
- g++
- make
- autoconf
- automake
- libtool
- cmake
- pkg-config
- libxml2-dev
- libxslt1-dev
- libzip-dev
- libsqlite3-dev
- libusb-1.0-0-dev
- libssl-dev
- libssh2-1-dev
- libcurl4-openssl-dev
# Not a subsurface dependency, but a Qt dependency
- mesa-common-dev
# Not a subsurface dependency, but a QtMultimedia/libdeclarative_multimedia.so dependency
- libpulse-mainloop-glib0
# Not a subsurface dependency, but a QtWebKit dependency
- libhyphen-dev
- libicu52
before_install:
- if [ ! -e Qt/5.9.1 ] ; then
rm -rf Qt ; mkdir -p Qt/5.9.1 ;
wget http://subsurface-divelog.org/downloads/Qt-5.9.1.tar.xz ; tar -xJ -C Qt/5.9.1 -f Qt-5.9.1.tar.xz ;
cd Qt/5.9.1 ; ln -s . gcc_64 ; cd .. ; ln -s 5.9.1/* . ; cd .. ;
sed -i -e 's|1.0.1e|1.0.0\x00|g' Qt/lib/libQt5Network.so.5
fi
# TestPreferences uses gui calls, so run a xvfb so it has something to talk to
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
script:
- export QT_ROOT=$PWD/Qt
- export PATH=$QT_ROOT/5.9.1/bin:$PATH # Make sure correct qmake is found on the $PATH for linuxdeployqt
- export CMAKE_PREFIX_PATH=$QT_ROOT/5.9.1/lib/cmake ;
cd .. ;
bash -e ./subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit
- export QT_PLUGIN_PATH=$QT_ROOT/5.9.1/plugins
- export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/5.9.1/plugins
- export QT_DEBUG_PLUGINS=1
- find $QT_ROOT/5.9.1/plugins
- env CTEST_OUTPUT_ON_FAILURE=1 make -C subsurface/build check
- # env CTEST_OUTPUT_ON_FAILURE=1 make -C subsurface/build-mobile check
- mkdir -p appdir/usr/plugins/ ; mv appdir/usr/home/travis/build/*/subsurface/Qt/5.9.1/plugins/* appdir/usr/plugins/
- mv appdir/usr/lib/grantlee/ appdir/usr/plugins/
- sudo mv appdir/usr/lib/* /usr/local/lib/ # Workaround for https://github.com/probonopd/linuxdeployqt/issues/160
- rm -rf appdir/usr/home/ appdir/usr/include/ appdir/usr/share/man/ # No need to ship developer and man files as part of the AppImage
- wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
- chmod a+x linuxdeployqt*.AppImage
- unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
- export LD_LIBRARY_PATH=/usr/local/lib/ # Workaround for https://github.com/probonopd/linuxdeployqt/issues/160
- ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs -qmldir=./subsurface/map-widget/ -verbose=2
- ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -appimage -qmldir=./subsurface/map-widget/ -verbose=2
- find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq
- curl --upload-file ./Subsurface*.AppImage https://transfer.sh/Subsurface-git.$(cd subsurface/ ; git rev-parse --short HEAD)-x86_64.AppImage
- ls -lh ./Subsurface*.AppImage
- export APPIMAGE=Subsurface-$(cd subsurface/ ; git rev-parse --short HEAD)-x86_64.AppImage
- cp ./Subsurface*.AppImage $APPIMAGE
after_success:
- ls -lh $APPIMAGE
- wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
- bash -x ./upload.sh $APPIMAGE
deploy:
provider: releases
api_key:
secure: X/bD9kamMgbQsjdMY+198l/JK5RELLI04z57y0LP8nQyzFm9aa06pByZeIzNHl/u1MZHfE/abyI5CtZRXO29KF300Bx6nlkynhIaNED3JLZwKIN2/EuNavy4RitBIldeyAg0SqeHYGXoiM6BqvqG/dOW6e9UEC2pIr7DmxnKYdHV4P/RgrVYpYkvbcThUQPsAs0sXu6+gTMLibmUrHcOHOXTjdvpn8cYXJ/ctnKYRMqGadwiX3uBJIiKwG/0myHPe8ZncfEDWyWp+ZBcz+H3d/g2Psgn1eo8yJERLH9EpVrMAsCoJGC61cf+X+zJeK8SFiWCoghrzYRvQbRR3H3j1Qne2lS3FZGmxAMDbsacavcqqGK8YcuH1LZtXy1P7WkwprqZfaJi/tFKFD5m8IVygyFRTvKSOQkduzH/iup4+BJ98+BsgEP4Q1sJ5vvTfQQwT2K06uy2yjImPvTqnHKYpIh50nJx7DcZ0/sO1eHANMNFNBJzS7RNjoT87O8NvXjufdZBPGhosR4JZnL4Ji3Rj2JGPlw3xzXCp3UK+EBcYKJdJCYFn+WqQoxkhROdAgOXfRHBrv4VrfJOvgKAWq8UJ8sLTnkhkMVo8Y/Yl77JC2hk7rE9I6SlLtxHIfDFyybHVMUjrsK/SpBqeWithkohnYSnsqQx7xsDFY8+/HSJGZ8=
file: $APPIMAGE
skip_cleanup: true
on:
repo: Subsurface-divelog/subsurface
tags: true
branches:
except:
- # Do not build tags that we create when we upload to GitHub Releases
- /^(?i:continuous)$/