Skip to content

Commit 0927dd1

Browse files
authored
Merge pull request darktable-org#19953 from kmilos/patch-2
CI: build nightly AppImage for aarch64
2 parents 5a0e263 + eb7545b commit 0927dd1

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

.github/workflows/nightly.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,18 @@ jobs:
1313
AppImage:
1414
if: github.repository == 'darktable-org/darktable' || github.event_name == 'workflow_dispatch'
1515
name: Nightly darktable AppImage
16-
runs-on: ubuntu-22.04
16+
runs-on: ${{ matrix.os }}
1717
strategy:
1818
fail-fast: false
1919
matrix:
20-
compiler:
21-
- { compiler: GNU12, CC: gcc-12, CXX: g++-12, packages: gcc-12 g++-12 }
20+
os: [ubuntu-22.04, ubuntu-24.04-arm]
2221
branch:
2322
- { code: master, label: gitmaster }
23+
include:
24+
- os: ubuntu-22.04
25+
compiler: { compiler: GNU12, CC: gcc-12, CXX: g++-12, packages: gcc-12 g++-12 }
26+
- os: ubuntu-24.04-arm
27+
compiler: { compiler: GNU14, CC: gcc-14, CXX: g++-14, packages: gcc-14 g++-14 }
2428
env:
2529
CC: ${{ matrix.compiler.CC }}
2630
CXX: ${{ matrix.compiler.CXX }}
@@ -424,7 +428,7 @@ jobs:
424428
425429
Also, new versions can make changes to the database schema, so it's best to run them with a separate library.
426430
427-
The AppImage package is compatible with distribution releases that have glibc version 2.35 or higher. For example, if we consider some popular distributions, Ubuntu 22.04, Debian 12, Fedora 36 and newer releases are compatible.
431+
The `*-x86_64.AppImage` package is compatible with distribution releases that have glibc version 2.35 or higher. For example, if we consider some popular distributions, Ubuntu 22.04, Debian 12, Fedora 36 and newer releases are compatible. The `*-aarch64.AppImage` package requires glibc 2.39 or higher (e.g. Ubuntu 24.04, Debian 13, Fedora 40 and newer).
428432
429433
The `*.AppImage.zsync` file is not intended to be downloaded and used locally. Just ignore it. This file contains technical information required by AppImage auto-updaters such as [AppImageUpdate](https://appimage.github.io/AppImageUpdate/).
430434

tools/appimage-build-script.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,14 @@ cp -a /var/lib/lensfun-updates/* ../AppDir/usr/share/lensfun
5252
# environment variable in AppRun.wrapped accordingly when starting
5353
# AppImage so that libgphoto2 can find these drivers.
5454
mkdir -p ../AppDir/usr/lib/libgphoto2
55-
cp -a /usr/lib/x86_64-linux-gnu/libgphoto2/* ../AppDir/usr/lib/libgphoto2
55+
ARCH=$(uname -m)
56+
cp -a /usr/lib/$ARCH-linux-gnu/libgphoto2/* ../AppDir/usr/lib/libgphoto2
5657

5758
# Include gphoto2 port libraries. We also have to set the IOLIBS
5859
# environment variable in AppRun.wrapped accordingly when starting
5960
# AppImage so that libgphoto2 can find these drivers.
6061
mkdir -p ../AppDir/usr/lib/libgphoto2_port
61-
cp -a /usr/lib/x86_64-linux-gnu/libgphoto2_port/* ../AppDir/usr/lib/libgphoto2_port
62+
cp -a /usr/lib/$ARCH-linux-gnu/libgphoto2_port/* ../AppDir/usr/lib/libgphoto2_port
6263

6364
# Include networking related GIO modules. We also have to set the GIO_EXTRA_MODULES
6465
# environment variable in AppRun.wrapped accordingly when starting AppImage
@@ -67,14 +68,13 @@ cp -a /usr/lib/x86_64-linux-gnu/libgphoto2_port/* ../AppDir/usr/lib/libgphoto2_p
6768
# may be incompatibility issues with different versions of glib in the bundle and
6869
# on the host system, see https://github.com/darktable-org/darktable/issues/19266
6970
mkdir -p ../AppDir/usr/lib/gio
70-
cp -a /usr/lib/x86_64-linux-gnu/gio/* ../AppDir/usr/lib/gio
71+
cp -a /usr/lib/$ARCH-linux-gnu/gio/* ../AppDir/usr/lib/gio
7172

7273
# Since linuxdeploy is itself an AppImage, we don't rely on it being installed
7374
# on the build system, but download it every time we run this script. If that
7475
# doesn't suit you (for example, you want to build an AppImage without an
7576
# Internet connection), you can edit this script accordingly, and call
7677
# linuxdeploy and its plugin from where you put them.
77-
ARCH=$(uname -m)
7878
wget -c --no-verbose "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-$ARCH.AppImage"
7979
wget -c --no-verbose "https://raw.githubusercontent.com/linuxdeploy/linuxdeploy-plugin-gtk/master/linuxdeploy-plugin-gtk.sh"
8080

0 commit comments

Comments
 (0)