build(appimage): update to Ubuntu 22.04 (#1472)

This commit is contained in:
Oleg Shparber 2023-03-18 22:16:48 -04:00 committed by GitHub
parent 74ca9bfef0
commit 08d784d380
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 74 additions and 26 deletions

View File

@ -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/*

View File

@ -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}

View File

@ -15,8 +15,7 @@
<url type="homepage">https://zealdocs.org/</url>
<url type="bugtracker">https://github.com/zealdocs/zeal/issues</url>
<url type="help">https://zealdocs.org/usage.html</url>
<!-- TODO: Reenable after moving AppImage build to Ubuntu 20.04. -->
<!--url type="contact">https://go.zealdocs.org/l/contact</url-->
<url type="contact">https://go.zealdocs.org/l/contact</url>
<screenshots>
<screenshot type="default">
<caption>The main window</caption>

47
pkg/appimage/README.md Normal file
View File

@ -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
```

View File

@ -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