diff --git a/.github/workflows/appimage/Dockerfile b/.github/workflows/appimage/Dockerfile index 65eba24..b74343d 100644 --- a/.github/workflows/appimage/Dockerfile +++ b/.github/workflows/appimage/Dockerfile @@ -1,9 +1,9 @@ -FROM ubuntu:focal +FROM ubuntu:jammy RUN apt-get update -q -y \ # Install appimage-builder and appimagetool dependencies. && DEBIAN_FRONTEND="noninteractive" apt-get install -q -y --no-install-recommends \ - appstream curl desktop-file-utils fakeroot file git gnupg patchelf zsync \ + appstream curl desktop-file-utils fakeroot file git gnupg patchelf squashfs-tools zsync \ python3-pip python3-setuptools python3-wheel \ && \ # Install appimagetool, it has to be extracted because FUSE doesn't work in containers without extra fiddling. @@ -16,7 +16,7 @@ RUN apt-get update -q -y \ rm appimagetool-x86_64.AppImage && \ cd - && \ # Install appimage-builder. - pip3 install git+https://github.com/AppImageCrafters/appimage-builder.git@v0.8.3 && \ + pip3 install git+https://github.com/AppImageCrafters/appimage-builder.git@669213cb730e007d5b316ed19b39691fbdcd41c4 && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* diff --git a/.github/workflows/appimage/entrypoint.sh b/.github/workflows/appimage/entrypoint.sh index e1f7b9e..9c37ff2 100755 --- a/.github/workflows/appimage/entrypoint.sh +++ b/.github/workflows/appimage/entrypoint.sh @@ -1,5 +1,8 @@ #!/bin/bash +# Should be in .gitignore. +export APPIMAGE_BUILD_DIR=build.appimage + # Install dependencies if [ ! -z ${INPUT_APT_DEPENDENCIES+x} ]; then apt-get update -q -y @@ -7,4 +10,4 @@ if [ ! -z ${INPUT_APT_DEPENDENCIES+x} ]; then fi # Run appimage-builder -appimage-builder --skip-test --recipe ${INPUT_RECIPE} +appimage-builder --skip-test --build-dir ${APPIMAGE_BUILD_DIR} --appdir ${APPIMAGE_BUILD_DIR}/AppDir --recipe ${INPUT_RECIPE} diff --git a/assets/freedesktop/org.zealdocs.zeal.appdata.xml.in b/assets/freedesktop/org.zealdocs.zeal.appdata.xml.in index f7f6502..49eb37b 100644 --- a/assets/freedesktop/org.zealdocs.zeal.appdata.xml.in +++ b/assets/freedesktop/org.zealdocs.zeal.appdata.xml.in @@ -15,8 +15,7 @@ https://zealdocs.org/ https://github.com/zealdocs/zeal/issues https://zealdocs.org/usage.html - - + https://go.zealdocs.org/l/contact The main window diff --git a/pkg/appimage/README.md b/pkg/appimage/README.md new file mode 100644 index 0000000..efd9fad --- /dev/null +++ b/pkg/appimage/README.md @@ -0,0 +1,47 @@ +# AppImage Package + +## Local Testing + +Run Docker container: + +```shell +docker run -it --rm -v $(pwd):/src --entrypoint /bin/bash ubuntu:jammy +``` + +Install `appimage-builder` and `appimagetool` dependencies: + +```shell +apt-get update -q -y +DEBIAN_FRONTEND="noninteractive" apt-get install -q -y --no-install-recommends appstream curl desktop-file-utils fakeroot file git gnupg patchelf squashfs-tools zsync python3-pip python3-setuptools python3-wheel +``` + +Install appimagetool, it has to be extracted because FUSE doesn't work in containers without extra fiddling. + +```shell +cd /tmp +curl -sLO https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage +chmod +x appimagetool-x86_64.AppImage +./appimagetool-x86_64.AppImage --appimage-extract +mv squashfs-root/ /opt/appimagetool.AppDir +ln -s /opt/appimagetool.AppDir/AppRun /usr/local/bin/appimagetool +cd - +``` + +Install appimage-builder. + +```shell +pip3 install git+https://github.com/AppImageCrafters/appimage-builder.git@669213cb730e007d5b316ed19b39691fbdcd41c4 +``` + +Install build dependencies: + +```shell +apt-get install -q -y --no-install-recommends build-essential cmake extra-cmake-modules libappindicator-dev libarchive-dev libqt5x11extras5-dev libsqlite3-dev libxcb-keysyms1-dev ninja-build qtbase5-dev qtwebengine5-dev +``` + +Run `appimage-builder`: + +```shell +cd /src +appimage-builder --skip-test --build-dir build.appimage --appdir build.appimage/AppDir --recipe pkg/appimage/appimage-amd64.yml +``` diff --git a/pkg/appimage/appimage-amd64.yml b/pkg/appimage/appimage-amd64.yml index 15c390e..03a69e3 100644 --- a/pkg/appimage/appimage-amd64.yml +++ b/pkg/appimage/appimage-amd64.yml @@ -1,13 +1,11 @@ version: 1 script: - - cmake -B build.appimage -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo - - cmake --build build.appimage - - cmake --install build.appimage --prefix build.appimage/AppDir/usr + - cmake -B $BUILD_DIR/cmake-build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo + - cmake --build $BUILD_DIR/cmake-build + - cmake --install $BUILD_DIR/cmake-build --prefix $TARGET_APPDIR/usr AppDir: - path: build.appimage/AppDir - app_info: id: org.zealdocs.zeal name: zeal @@ -24,10 +22,10 @@ AppDir: apt: arch: amd64 sources: - - sourceline: deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse - - sourceline: deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse - - sourceline: deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse - key_url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32 + - sourceline: deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse + key_url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c + - sourceline: deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse + - sourceline: deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse include: # Required Qt packages. - libqt5concurrent5 @@ -47,7 +45,12 @@ AppDir: - libfreetype6 exclude: - "*dbgsym*" + - adwaita-icon-theme + - dconf-service + - gcc-* - gnupg + - humanity-icon-theme + - libsystemd0 - libwacom* - perl - perl-* @@ -57,19 +60,15 @@ AppDir: files: exclude: - - usr/include - - usr/share/man - - usr/share/doc - - usr/share/doc/*/README.* - - usr/share/doc/*/changelog.* - - usr/share/doc/*/NEWS.* - - usr/share/doc/*/TODO.* - - lib/systemd - etc/systemd - - usr/bin/systemd* - - usr/bin/dpkg* + - lib/systemd - usr/bin/*-linux-gnu-* - #- usr/share/locale + - usr/bin/dpkg* + - usr/bin/systemd* + - usr/include + - usr/lib/x86_64-linux-gnu/gconv + - usr/share/doc + - usr/share/man AppImage: arch: x86_64