mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-17 10:11:27 +00:00
Merge pull request #2105 from cryptomator/feature/gtk2-launcher
Add additional GTK2 launcher to AppImage, fixes #1432
This commit is contained in:
11
.github/workflows/appimage.yml
vendored
11
.github/workflows/appimage.yml
vendored
@@ -61,10 +61,16 @@ jobs:
|
||||
--output runtime
|
||||
--module-path "${JAVA_HOME}/jmods"
|
||||
--add-modules java.base,java.desktop,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr
|
||||
--strip-native-commands
|
||||
--no-header-files
|
||||
--no-man-pages
|
||||
--strip-debug
|
||||
--compress=1
|
||||
- name: Prepare additional launcher
|
||||
run: envsubst '${SEMVER_STR} ${REVISION_NUM}' < dist/linux/launcher-gtk2.properties > launcher-gtk2.properties
|
||||
env:
|
||||
SEMVER_STR: ${{ steps.versions.outputs.semVerStr }}
|
||||
REVISION_NUM: ${{ steps.versions.outputs.revNum }}
|
||||
- name: Run jpackage
|
||||
run: >
|
||||
${JAVA_HOME}/bin/jpackage
|
||||
@@ -90,12 +96,12 @@ jobs:
|
||||
--java-options "-Dcryptomator.mountPointsDir=\"~/.local/share/Cryptomator/mnt\""
|
||||
--java-options "-Dcryptomator.showTrayIcon=false"
|
||||
--java-options "-Dcryptomator.buildNumber=\"appimage-${{ steps.versions.outputs.revNum }}\""
|
||||
--add-launcher Cryptomator-gtk2=launcher-gtk2.properties
|
||||
--resource-dir dist/linux/resources
|
||||
- name: Patch Cryptomator.AppDir
|
||||
run: |
|
||||
mv appdir/Cryptomator Cryptomator.AppDir
|
||||
cp -r dist/linux/appimage/resources/AppDir/* Cryptomator.AppDir/
|
||||
envsubst '${REVISION_NO} ${SEMVER_STR}' < dist/linux/appimage/resources/AppDir/bin/cryptomator.sh > Cryptomator.AppDir/bin/cryptomator.sh
|
||||
cp dist/linux/common/org.cryptomator.Cryptomator256.png Cryptomator.AppDir/usr/share/icons/hicolor/256x256/apps/org.cryptomator.Cryptomator.png
|
||||
cp dist/linux/common/org.cryptomator.Cryptomator512.png Cryptomator.AppDir/usr/share/icons/hicolor/512x512/apps/org.cryptomator.Cryptomator.png
|
||||
cp dist/linux/common/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg
|
||||
@@ -107,9 +113,6 @@ jobs:
|
||||
ln -s usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/.DirIcon
|
||||
ln -s usr/share/applications/org.cryptomator.Cryptomator.desktop Cryptomator.AppDir/Cryptomator.desktop
|
||||
ln -s bin/cryptomator.sh Cryptomator.AppDir/AppRun
|
||||
env:
|
||||
REVISION_NO: ${{ steps.versions.outputs.revNum }}
|
||||
SEMVER_STR: ${{ steps.versions.outputs.semVerStr }}
|
||||
- name: Extract libjffi.so # workaround for https://github.com/cryptomator/cryptomator-linux/issues/27
|
||||
run: |
|
||||
JFFI_NATIVE_JAR=`ls lib/app/ | grep -e 'jffi-[1-9]\.[0-9]\{1,2\}.[0-9]\{1,2\}-native.jar'`
|
||||
|
||||
3
dist/linux/appimage/build.sh
vendored
3
dist/linux/appimage/build.sh
vendored
@@ -20,12 +20,14 @@ ${JAVA_HOME}/bin/jlink \
|
||||
--output runtime \
|
||||
--module-path "${JAVA_HOME}/jmods" \
|
||||
--add-modules java.base,java.desktop,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr \
|
||||
--strip-native-commands \
|
||||
--no-header-files \
|
||||
--no-man-pages \
|
||||
--strip-debug \
|
||||
--compress=1
|
||||
|
||||
# create app dir
|
||||
envsubst '${SEMVER_STR} ${REVISION_NUM}' < dist/linux/launcher-gtk2.properties > launcher-gtk2.properties
|
||||
${JAVA_HOME}/bin/jpackage \
|
||||
--verbose \
|
||||
--type app-image \
|
||||
@@ -48,6 +50,7 @@ ${JAVA_HOME}/bin/jpackage \
|
||||
--java-options "-Dcryptomator.mountPointsDir=\"~/.local/share/Cryptomator/mnt\"" \
|
||||
--java-options "-Dcryptomator.showTrayIcon=false" \
|
||||
--java-options "-Dcryptomator.buildNumber=\"appimage-${REVISION_NO}\"" \
|
||||
--add-launcher cryptomator-gtk2=launcher-gtk2.properties \
|
||||
--resource-dir ../resources
|
||||
|
||||
# transform AppDir
|
||||
|
||||
@@ -15,26 +15,11 @@ elif command -v pacman &> /dev/null; then # don't forget arch
|
||||
GTK3_PRESENT=`pacman -Qi gtk3 &> /dev/null; echo $?`
|
||||
fi
|
||||
|
||||
if [ "$GTK2_PRESENT" -eq 0 ] && [ "$GTK3_PRESENT" -ne 0 ]; then
|
||||
GTK_FLAG="-Djdk.gtk.version=2"
|
||||
fi
|
||||
|
||||
# workaround for https://github.com/cryptomator/cryptomator-linux/issues/27
|
||||
export LD_PRELOAD=lib/app/libjffi.so
|
||||
|
||||
# start Cryptomator
|
||||
./lib/runtime/bin/java \
|
||||
-p "lib/app/mods" \
|
||||
-cp "lib/app/*" \
|
||||
-Dfile.encoding="utf-8" \
|
||||
-Dcryptomator.logDir="~/.local/share/Cryptomator/logs" \
|
||||
-Dcryptomator.pluginDir="~/.local/share/Cryptomator/plugins" \
|
||||
-Dcryptomator.mountPointsDir="~/.local/share/Cryptomator/mnt" \
|
||||
-Dcryptomator.settingsPath="~/.config/Cryptomator/settings.json:~/.Cryptomator/settings.json" \
|
||||
-Dcryptomator.ipcSocketPath="~/.config/Cryptomator/ipc.socket" \
|
||||
-Dcryptomator.buildNumber="appimage-${REVISION_NO}" \
|
||||
-Dcryptomator.appVersion="${SEMVER_STR}" \
|
||||
$GTK_FLAG \
|
||||
-Xss5m \
|
||||
-Xmx256m \
|
||||
-m org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator
|
||||
if [ "$GTK2_PRESENT" -eq 0 ] && [ "$GTK3_PRESENT" -ne 0 ]; then
|
||||
bin/Cryptomator-gtk2
|
||||
else
|
||||
bin/Cryptomator
|
||||
fi
|
||||
1
dist/linux/debian/rules
vendored
1
dist/linux/debian/rules
vendored
@@ -19,6 +19,7 @@ override_dh_auto_build:
|
||||
jlink \
|
||||
--output runtime \
|
||||
--add-modules java.base,java.desktop,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr \
|
||||
--strip-native-commands \
|
||||
--no-header-files \
|
||||
--no-man-pages \
|
||||
--strip-debug \
|
||||
|
||||
12
dist/linux/launcher-gtk2.properties
vendored
Normal file
12
dist/linux/launcher-gtk2.properties
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
java-options=-Xss5m \
|
||||
-Xmx256m \
|
||||
-Dfile.encoding=\"utf-8\" \
|
||||
-Dcryptomator.appVersion=\"${SEMVER_STR}\" \
|
||||
-Dcryptomator.logDir=\"~/.local/share/Cryptomator/logs\" \
|
||||
-Dcryptomator.pluginDir=\"~/.local/share/Cryptomator/plugins\" \
|
||||
-Dcryptomator.settingsPath=\"~/.config/Cryptomator/settings.json:~/.Cryptomator/settings.json\" \
|
||||
-Dcryptomator.ipcSocketPath=\"~/.config/Cryptomator/ipc.socket\" \
|
||||
-Dcryptomator.mountPointsDir=\"~/.local/share/Cryptomator/mnt\" \
|
||||
-Dcryptomator.showTrayIcon=false \
|
||||
-Dcryptomator.buildNumber=\"appimage-${REVISION_NUM}\" \
|
||||
-Djdk.gtk.version=2
|
||||
1
dist/mac/dmg/build.sh
vendored
1
dist/mac/dmg/build.sh
vendored
@@ -38,6 +38,7 @@ ${JAVA_HOME}/bin/jlink \
|
||||
--output runtime \
|
||||
--module-path "${JAVA_HOME}/jmods" \
|
||||
--add-modules java.base,java.desktop,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr \
|
||||
--strip-native-commands \
|
||||
--no-header-files \
|
||||
--no-man-pages \
|
||||
--strip-debug \
|
||||
|
||||
1
dist/win/build.ps1
vendored
1
dist/win/build.ps1
vendored
@@ -42,6 +42,7 @@ if ($clean -and (Test-Path -Path $runtimeImagePath)) {
|
||||
--output runtime `
|
||||
--module-path "$Env:JAVA_HOME/jmods" `
|
||||
--add-modules java.base,java.desktop,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr `
|
||||
--strip-native-commands `
|
||||
--no-header-files `
|
||||
--no-man-pages `
|
||||
--strip-debug `
|
||||
|
||||
Reference in New Issue
Block a user