From 940ce6a6d7894642296473b41a36da2403705e5e Mon Sep 17 00:00:00 2001 From: Mauro Balades Date: Wed, 31 Jul 2024 08:20:55 +0200 Subject: [PATCH] chore: Update AppImage build process and dependencies --- .github/workflows/alpha.yml | 53 ++++++++++++++++++- AppDir/.DirIcon | 0 AppDir/AppRun | 14 +++++ AppDir/distribution/policies.json | 8 +++ .../share/icons/hicolor/128x128/apps/.gitkeep | 0 AppDir/zen.desktop | 25 +++++++++ 6 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 AppDir/.DirIcon create mode 100644 AppDir/AppRun create mode 100644 AppDir/distribution/policies.json create mode 100644 AppDir/usr/share/icons/hicolor/128x128/apps/.gitkeep create mode 100644 AppDir/zen.desktop diff --git a/.github/workflows/alpha.yml b/.github/workflows/alpha.yml index dc4460b58..0ac9b69a5 100644 --- a/.github/workflows/alpha.yml +++ b/.github/workflows/alpha.yml @@ -228,11 +228,61 @@ jobs: with: build-version: ${{ needs.build-data.outputs.version }} + appimage: + name: AppImage build + permissions: + contents: write + runs-on: ubuntu-latest + needs: [linux] + steps: + - name: Install Node.js + uses: actions/setup-node@v3 + with: + node-version: 20 + + - uses: actions/checkout@v4 + + - name: Install dependencies + run: | + npm install -g pnpm + sudo apt-get update + sudo apt-get -y install libfuse2 + + - name: Download linux build + uses: actions/download-artifact@v4 + with: + name: zen.linux.tar.bz2 + + - name: Execute AppImage build + run: | + set -eux + mv configs/branding/alpha/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png + + APPDIR=AppDir + tar -xvf *.tar.* && rm -rf *.tar.* + mv zen/* $APPDIR/ + wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage + chmod +x *.AppImage + chmod +x ./AppDir/AppRun + echo "AppDir: $APPDIR" + ls -al + find . + ls -al "$APPDIR" + ARCH=x86_64 ./appimagetool-x86_64.AppImage --comp gzip "$APPDIR" zen.AppImage + mkdir dist + mv zen.AppImage* dist/. + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: zen.AppImage + path: ./dist/zen.AppImage + release: if: ${{ github.event.inputs.create_release == 'true' }} permissions: write-all name: Release - needs: [build-data, linux, source, windows-step-3, check-release, mac] + needs: [build-data, linux, source, windows-step-3, check-release, mac, appimage] runs-on: ubuntu-latest steps: @@ -285,3 +335,4 @@ jobs: zen.installer.exe zen.installer.pretty.exe zen.macos.dmg + zen.AppImage diff --git a/AppDir/.DirIcon b/AppDir/.DirIcon new file mode 100644 index 000000000..e69de29bb diff --git a/AppDir/AppRun b/AppDir/AppRun new file mode 100644 index 000000000..dd148faf3 --- /dev/null +++ b/AppDir/AppRun @@ -0,0 +1,14 @@ +#!/bin/sh +SELF=$(readlink -f "$0") +HERE=${SELF%/*} +export PATH="${HERE}:${HERE}/usr/bin/:${HERE}/usr/sbin/:${HERE}/usr/games/:${HERE}/bin/:${HERE}/sbin/${PATH:+:$PATH}" +export LD_LIBRARY_PATH="${HERE}/usr/lib/:${HERE}/usr/lib/i386-linux-gnu/:${HERE}/usr/lib/x86_64-linux-gnu/:${HERE}/usr/lib32/:${HERE}/usr/lib64/:${HERE}/lib/:${HERE}/lib/i386-linux-gnu/:${HERE}/lib/x86_64-linux-gnu/:${HERE}/lib32/:${HERE}/lib64/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" +export PYTHONPATH="${HERE}/usr/share/pyshared/${PYTHONPATH:+:$PYTHONPATH}" +export MOZ_LEGACY_PROFILES=1 # Prevent per installation profiles +DEFAULT_XDG_DATA_DIRS='./share/:/usr/share/gnome:/usr/local/share/:/usr/share/' +export XDG_DATA_DIRS="${HERE}/usr/share/:${XDG_DATA_DIRS:-$DEFAULT_XDG_DATA_DIRS}" +export PERLLIB="${HERE}/usr/share/perl5/:${HERE}/usr/lib/perl5/${PERLLIB:+:$PERLLIB}" +export GSETTINGS_SCHEMA_DIR="${HERE}/usr/share/glib-2.0/schemas/${GSETTINGS_SCHEMA_DIR:+:$GSETTINGS_SCHEMA_DIR}" +export QT_PLUGIN_PATH="${HERE}/usr/lib/qt4/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt4/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt4/plugins/:${HERE}/usr/lib32/qt4/plugins/:${HERE}/usr/lib64/qt4/plugins/:${HERE}/usr/lib/qt5/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt5/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt5/plugins/:${HERE}/usr/lib32/qt5/plugins/:${HERE}/usr/lib64/qt5/plugins/${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH}" +EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2 | cut -d " " -f 1) +exec "${EXEC}" "$@" diff --git a/AppDir/distribution/policies.json b/AppDir/distribution/policies.json new file mode 100644 index 000000000..906d11bad --- /dev/null +++ b/AppDir/distribution/policies.json @@ -0,0 +1,8 @@ +{ + "policies": { + "DisableAppUpdate": true, + "AppAutoUpdate": false, + "ManualAppUpdateOnly": true, + "BackgroundAppUpdate": false + } + } \ No newline at end of file diff --git a/AppDir/usr/share/icons/hicolor/128x128/apps/.gitkeep b/AppDir/usr/share/icons/hicolor/128x128/apps/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/AppDir/zen.desktop b/AppDir/zen.desktop new file mode 100644 index 000000000..81b47b4cf --- /dev/null +++ b/AppDir/zen.desktop @@ -0,0 +1,25 @@ +[Desktop Entry] +Name=Zen Browser +Exec=zen %u +Icon=zen +Type=Application +MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json; +StartupWMClass=LibreWolf +Categories=Network;WebBrowser; +StartupNotify=true +Terminal=false +X-MultipleArgs=false +Keywords=Internet;WWW;Browser;Web;Explorer; +Actions=new-window;new-private-window;profilemanager; + +[Desktop Action new-window] +Name=Open a New Window +Exec=zen %u + +[Desktop Action new-private-window] +Name=Open a New Private Window +Exec=zen --private-window %u + +[Desktop Action profilemanager] +Name=Open the Profile Manager +Exec=zen --ProfileManager %u \ No newline at end of file