mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
fix(appimage): build sqlcipher form source
Needed since Debian version is broken https://bugs.debian.org/850421
This commit is contained in:
parent
48179b6a19
commit
64a7c24b2b
|
@ -36,6 +36,8 @@ readonly QTOX_APP_DIR="$BUILD_DIR"/appdir
|
||||||
readonly LDQT_BUILD_DIR="$BUILD_DIR"/ldqt
|
readonly LDQT_BUILD_DIR="$BUILD_DIR"/ldqt
|
||||||
# "appimagetool" becomes aitool
|
# "appimagetool" becomes aitool
|
||||||
readonly AITOOL_BUILD_DIR="$BUILD_DIR"/aitool
|
readonly AITOOL_BUILD_DIR="$BUILD_DIR"/aitool
|
||||||
|
# sqlcipher build directory
|
||||||
|
readonly SQLCIPHER_BUILD_DIR="$BUILD_DIR"/sqlcipher
|
||||||
# ldqt binary
|
# ldqt binary
|
||||||
readonly LDQT_BIN="/usr/lib/x86_64-linux-gnu/qt5/bin/linuxdeployqt"
|
readonly LDQT_BIN="/usr/lib/x86_64-linux-gnu/qt5/bin/linuxdeployqt"
|
||||||
readonly APT_FLAGS="-y --no-install-recommends"
|
readonly APT_FLAGS="-y --no-install-recommends"
|
||||||
|
@ -44,30 +46,49 @@ export MAKEFLAGS="-j$(nproc)"
|
||||||
|
|
||||||
# Get packages
|
# Get packages
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install $APT_FLAGS sudo ca-certificates wget fuse xxd git g++ patchelf
|
apt-get install $APT_FLAGS sudo ca-certificates wget build-essential fuse xxd \
|
||||||
|
git g++ patchelf tclsh libssl-dev
|
||||||
|
|
||||||
# get version
|
# get version
|
||||||
cd "$QTOX_SRC_DIR"
|
cd "$QTOX_SRC_DIR"
|
||||||
export VERSION=$(git rev-parse --short HEAD) # linuxdeployqt uses this for naming the file
|
# linuxdeployqt uses this for naming the file
|
||||||
|
export VERSION=$(git rev-parse --short HEAD)
|
||||||
|
|
||||||
|
|
||||||
# create build directory
|
# create build directory
|
||||||
mkdir -p "$BUILD_DIR"
|
mkdir -p "$BUILD_DIR"
|
||||||
cd "$BUILD_DIR"
|
cd "$BUILD_DIR"
|
||||||
|
|
||||||
|
# we need a custom built sqlcipher version because of a Debian bug
|
||||||
|
# https://bugs.debian.org/850421
|
||||||
|
git clone https://github.com/sqlcipher/sqlcipher.git "$SQLCIPHER_BUILD_DIR"
|
||||||
|
cd "$SQLCIPHER_BUILD_DIR"
|
||||||
|
git checkout tags/v3.4.2
|
||||||
|
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
|
||||||
|
LDFLAGS="-lcrypto"
|
||||||
|
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
# copy qtox source
|
# copy qtox source
|
||||||
cp -r "$QTOX_SRC_DIR" "$QTOX_BUILD_DIR"
|
cp -r "$QTOX_SRC_DIR" "$QTOX_BUILD_DIR"
|
||||||
cd "$QTOX_BUILD_DIR"
|
cd "$QTOX_BUILD_DIR"
|
||||||
|
|
||||||
|
# ensure this directory is empty
|
||||||
|
rm -rf ./_build
|
||||||
|
|
||||||
# reuse for our purposes, pass flags to automatically install packages
|
# reuse for our purposes, pass flags to automatically install packages
|
||||||
./simple_make.sh "$APT_FLAGS"
|
# APT_FLAGS for automatic install
|
||||||
|
# True to not install sqlcipher
|
||||||
|
./simple_make.sh "$APT_FLAGS" True
|
||||||
|
|
||||||
# build dir of simple_make
|
# build dir of simple_make
|
||||||
cd _build
|
cd _build
|
||||||
|
|
||||||
make DESTDIR="$QTOX_APP_DIR" install ; find "$QTOX_APP_DIR"
|
make DESTDIR="$QTOX_APP_DIR" install ; find "$QTOX_APP_DIR"
|
||||||
|
|
||||||
LDQT_HASH="9c90a882ac744b5f704598e9588450ddfe487c67" # is master as of 2018-04-25
|
# is master as of 2018-04-25
|
||||||
|
LDQT_HASH="9c90a882ac744b5f704598e9588450ddfe487c67"
|
||||||
# build linuxdeployqt
|
# build linuxdeployqt
|
||||||
git clone https://github.com/probonopd/linuxdeployqt.git "$LDQT_BUILD_DIR"
|
git clone https://github.com/probonopd/linuxdeployqt.git "$LDQT_BUILD_DIR"
|
||||||
cd "$LDQT_BUILD_DIR"
|
cd "$LDQT_BUILD_DIR"
|
||||||
|
@ -76,9 +97,12 @@ qmake
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
|
||||||
AITOOL_HASH="5d93115f279d94a4d23dfd64fb8ccd109e98f039" # is master as of 2018-04-25
|
# is master as of 2018-04-25
|
||||||
|
AITOOL_HASH="5d93115f279d94a4d23dfd64fb8ccd109e98f039"
|
||||||
# build appimagetool
|
# build appimagetool
|
||||||
git clone -b appimagetool/master --single-branch --recursive https://github.com/AppImage/AppImageKit "$AITOOL_BUILD_DIR"
|
git clone -b appimagetool/master --single-branch --recursive \
|
||||||
|
https://github.com/AppImage/AppImageKit "$AITOOL_BUILD_DIR"
|
||||||
|
|
||||||
cd "$AITOOL_BUILD_DIR"
|
cd "$AITOOL_BUILD_DIR"
|
||||||
git checkout "$AITOOL_HASH"
|
git checkout "$AITOOL_HASH"
|
||||||
bash -ex install-build-deps.sh
|
bash -ex install-build-deps.sh
|
||||||
|
@ -92,7 +116,9 @@ cd build
|
||||||
# make sure that deps in separate install tree are found
|
# make sure that deps in separate install tree are found
|
||||||
export PKG_CONFIG_PATH=/deps/lib/pkgconfig/
|
export PKG_CONFIG_PATH=/deps/lib/pkgconfig/
|
||||||
|
|
||||||
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=ON -DAPPIMAGEKIT_PACKAGE_DEBS=ON
|
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=ON \
|
||||||
|
-DAPPIMAGEKIT_PACKAGE_DEBS=ON
|
||||||
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ set -eu -o pipefail
|
||||||
|
|
||||||
# additional flags for apt-get, used for CI
|
# additional flags for apt-get, used for CI
|
||||||
readonly APT_FLAGS=$1
|
readonly APT_FLAGS=$1
|
||||||
|
readonly WITHOUT_SQLCIPHER=$2
|
||||||
|
|
||||||
apt_install() {
|
apt_install() {
|
||||||
local apt_packages=(
|
local apt_packages=(
|
||||||
|
@ -24,7 +25,6 @@ apt_install() {
|
||||||
libqt5opengl5-dev
|
libqt5opengl5-dev
|
||||||
libqt5svg5-dev
|
libqt5svg5-dev
|
||||||
libsodium-dev
|
libsodium-dev
|
||||||
libsqlcipher-dev
|
|
||||||
libtool
|
libtool
|
||||||
libvpx-dev
|
libvpx-dev
|
||||||
libxss-dev
|
libxss-dev
|
||||||
|
@ -34,6 +34,10 @@ apt_install() {
|
||||||
qttools5-dev-tools
|
qttools5-dev-tools
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if [ "$WITHOUT_SQLCIPHER" != "True" ]; then
|
||||||
|
apt_packages+=libsqlcipher-dev
|
||||||
|
fi
|
||||||
|
|
||||||
sudo apt-get install $APT_FLAGS "${apt_packages[@]}"
|
sudo apt-get install $APT_FLAGS "${apt_packages[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user