build: Migrate Linux '.tar.gz' package creation from CPack to linuxdeployqt (#1034)

Unified Linux package creation into single script 'setup/Linux/createPackages.sh' that uses 'linuxdeployqt' for both the '.tar.gz' and '.AppImage' package.
This commit is contained in:
Eberhard Gräther
2020-06-08 15:06:42 +02:00
committed by GitHub
parent 9bac6cc411
commit 9a8fa94905
16 changed files with 83 additions and 317 deletions
-23
View File
@@ -1,23 +0,0 @@
#!/bin/sh
SOURCE_DIR=$1
BUILD_DIR=$2
ICON=$SOURCE_DIR/bin/app/data/gui/icon/logo_1024_1024.png
HICOLOR_DIR=$BUILD_DIR/share/icons/hicolor
echo "sourcedir: $SOURCE_DIR"
echo "builddir : $BUILD_DIR"
echo "hicolor : $HICOLOR_DIR"
echo "icon : $ICON"
createIcon()
{
mkdir -p $HICOLOR_DIR/$1/apps/
convert $ICON -resize $1 $HICOLOR_DIR/$1/apps/sourcetrail.png
}
createIcon 512x512
createIcon 256x256
createIcon 128x128
createIcon 64x64
createIcon 48x48
@@ -1,5 +1,7 @@
#!/bin/sh
# index sample projects
BIN_PATH=build/Release/app/Sourcetrail
PROJECTS_PATH=bin/app/user/projects
@@ -8,6 +10,9 @@ PROJECTS_PATH=bin/app/user/projects
./$BIN_PATH index --full $PROJECTS_PATH/tutorial/tutorial.srctrlprj
./$BIN_PATH index --full $PROJECTS_PATH/javaparser/javaparser.srctrlprj
# create AppDir
rm -rf AppDir
mkdir AppDir
@@ -29,16 +34,14 @@ cd share
mkdir applications
cd applications
cp ../../../../setup/Linux/sourcetrail.desktop .
cp ../../../../setup/Linux/data/sourcetrail.desktop .
cd ..
cp -r ../../../build/Release/share/icons/ .
mkdir mime
cd mime
mkdir packages
cd packages
cp ../../../../../setup/Linux/sourcetrail-mime.xml .
cp ../../../../../setup/Linux/data/sourcetrail-mime.xml .
cd ../..
mkdir data
@@ -57,16 +60,57 @@ cd ..
cd ../../..
# print file structure
# find AppDir | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
export VERSION=$(cat build/Release/version.txt)
# create icons
ICON=AppDir/usr/share/data/gui/icon/logo_1024_1024.png
HICOLOR_DIR=AppDir/usr/share/icons/hicolor
createIcon()
{
mkdir -p $HICOLOR_DIR/$1/apps/
convert $ICON -resize $1 $HICOLOR_DIR/$1/apps/sourcetrail.png
}
createIcon 512x512
createIcon 256x256
createIcon 128x128
createIcon 64x64
createIcon 48x48
# Version for filename
VERSION=$(cat build/Release/version.txt)
VERSION=${VERSION/./_}
VERSION=${VERSION/./_}
export VERSION
# create .AppImage
linuxdeployqt AppDir/usr/bin/sourcetrail_indexer -qmake=$Qt5_DIR/bin/qmake -ignore-glob=*python*
rm -f AppDir/AppRun
linuxdeployqt AppDir/usr/share/applications/sourcetrail.desktop -qmake=$Qt5_DIR/bin/qmake -ignore-glob=*python* -appimage
rename x86_64 Linux_64bit *.AppImage
rename - _ *.AppImage
rename - _ *.AppImage
rename . _ *.AppImage
rename . _ *.AppImage
# create .tar.gz
mv AppDir/usr/ Sourcetrail
cp -R setup/Linux/data/package/* Sourcetrail
tar -czvf Sourcetrail_${VERSION}_Linux_64bit.tar.gz Sourcetrail
# cleanup
rm -rf AppDir
rm -rf Sourcetrail
@@ -14,9 +14,9 @@ SOURCETRAIL_PATH="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
export LD_LIBRARY_PATH="$SOURCETRAIL_PATH/lib:$LD_LIBRARY_PATH"
export QT_XKB_CONFIG_ROOT="/usr/share/X11/xkb:$QT_XKB_CONFIG_ROOT"
export QT_QPA_PLATFORM_PLUGIN_PATH="$SOURCETRAIL_PATH/lib/platforms"
export QT_QPA_PLATFORM_PLUGIN_PATH="$SOURCETRAIL_PATH/plugins/platforms"
export QT_QPA_FONTDIR="$SOURCETRAIL_PATH/data/fonts:$QT_QPA_FONTDIR"
export SOURCETRAIL_VIA_SCRIPT=1
export OPENSSL_CONF=/etc/ssl/
exec "$SOURCETRAIL_PATH/Sourcetrail" $@
exec "$SOURCETRAIL_PATH/bin/sourcetrail" $@
@@ -1,19 +1,23 @@
#!/bin/sh
echo "Installing Sourcetrail in /opt/sourcetrail"
if [ "$(id -u)" -ne 0 ]; then
echo >&2 "Error: Please run script as root or with sudo. Exiting..."
exit 1
fi
echo "Installing Sourcetrail in /opt/sourcetrail"
MY_PATH="$( cd "$( dirname "$0" )" && pwd )"
rm -rf /opt/sourcetrail > /dev/null
cp -rf "$MY_PATH/" /opt/sourcetrail > /dev/null
cp -rf "$MY_PATH/setup/share/" /usr > /dev/null
cp "$MY_PATH/data/gui/icon/logo_1024_1024.png" /usr/share/icons/sourcetrail.png > /dev/null
cp "$MY_PATH/data/gui/icon/project_256_256.png" /usr/share/icons/project-sourcetrail.png > /dev/null
cp -rf "$MY_PATH/share/applications" /usr/share > /dev/null
cp -rf "$MY_PATH/share/icons" /usr/share > /dev/null
cp -rf "$MY_PATH/share/mime" /usr/share > /dev/null
cp "$MY_PATH/share/data/gui/icon/logo_1024_1024.png" /usr/share/icons/sourcetrail.png > /dev/null
cp "$MY_PATH/share/data/gui/icon/project_256_256.png" /usr/share/icons/project-sourcetrail.png > /dev/null
ln -f -s /opt/sourcetrail/Sourcetrail.sh /usr/bin/sourcetrail
@@ -1,12 +1,12 @@
#!/bin/sh
echo "Do you want to uninstall Sourcetrail?"
if [ "$(id -u)" -ne 0 ]; then
echo >&2 "Error: Please run script as root or with sudo. Exiting..."
exit 1
fi
echo "Do you want to uninstall Sourcetrail?"
printf 'enter [y/n] '
read ans
case ${ans:=y} in [yY]*) ;; *) exit ;; esac
-9
View File
@@ -1,9 +0,0 @@
#!/bin/sh
mkdir -p setup/Linux/lib
ldd bin/app/Release/Sourcetrail | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' setup/Linux/lib
# extra files needed and not copied with the lines above
cp /usr/lib/qt/plugins/platforms/libqxcb.so setup/Linux
cp /usr/lib/libQt5XcbQpa.so.5 setup/Linux/lib
cp /usr/lib/libQt5DBus.so.5 setup/Linux/lib