From e86fe3dfd20c424b47e4c5385edaa615dd02bc30 Mon Sep 17 00:00:00 2001 From: dav Date: Sat, 13 Jul 2024 10:21:57 -0700 Subject: [PATCH 1/6] Test appimage multiarch build --- .github/workflows/build-appimage.yml | 17 ++++++++++++++--- burrow-gtk/build-aux/Dockerfile | 4 +++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index bb510fbb..ff712510 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -9,13 +9,24 @@ on: jobs: appimage: name: Build AppImage - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} container: docker + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + platform: Linux + arch: + - x86_64 + - os: ubuntu-latest + arch: + - aarch64 steps: - uses: actions/checkout@v4 - name: Build AppImage run: | - docker build -t appimage-builder . -f burrow-gtk/build-aux/Dockerfile + docker build -t appimage-builder --build-arg="ARCHITECTURE=${{ matrix.arch }}" . -f burrow-gtk/build-aux/Dockerfile docker create --name temp appimage-builder docker cp temp:/app/burrow-gtk/build-appimage/Burrow-x86_64.AppImage . docker rm temp @@ -23,4 +34,4 @@ jobs: name: Upload to GitHub with: name: AppImage - path: Burrow-x86_64.AppImage + path: Burrow-${{ matrix.arch }}.AppImage diff --git a/burrow-gtk/build-aux/Dockerfile b/burrow-gtk/build-aux/Dockerfile index 4e71c059..b9b0763f 100644 --- a/burrow-gtk/build-aux/Dockerfile +++ b/burrow-gtk/build-aux/Dockerfile @@ -1,5 +1,7 @@ FROM fedora:39 +ARG ARCHITECTURE + ENV DEBIAN_FRONTEND=noninteractive RUN set -eux && \ @@ -15,6 +17,6 @@ COPY . /app ENV SQLITE3_STATIC=1 RUN cd /app/burrow-gtk/ && \ - ./build-aux/build_appimage.sh + ARCHITECTURE=$ARCHITECTURE ./build-aux/build_appimage.sh From 02fe1c023a37322b1197b38cec4a21572a719ed1 Mon Sep 17 00:00:00 2001 From: dav Date: Sat, 13 Jul 2024 10:34:55 -0700 Subject: [PATCH 2/6] Test build multiarch --- .github/workflows/build-appimage.yml | 9 +++------ burrow-gtk/build-aux/build_appimage.sh | 15 +++++++++++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index ff712510..4ac3a6f7 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -16,17 +16,14 @@ jobs: matrix: include: - os: ubuntu-latest - platform: Linux - arch: - - x86_64 + arch: x86_64 - os: ubuntu-latest - arch: - - aarch64 + arch: aarch64 steps: - uses: actions/checkout@v4 - name: Build AppImage run: | - docker build -t appimage-builder --build-arg="ARCHITECTURE=${{ matrix.arch }}" . -f burrow-gtk/build-aux/Dockerfile + docker build -t appimage-builder --build-arg="TARGET_ARCHITECTURE=${{ matrix.arch }}" . -f burrow-gtk/build-aux/Dockerfile docker create --name temp appimage-builder docker cp temp:/app/burrow-gtk/build-appimage/Burrow-x86_64.AppImage . docker rm temp diff --git a/burrow-gtk/build-aux/build_appimage.sh b/burrow-gtk/build-aux/build_appimage.sh index f054cd98..6635b79c 100755 --- a/burrow-gtk/build-aux/build_appimage.sh +++ b/burrow-gtk/build-aux/build_appimage.sh @@ -6,27 +6,34 @@ BURROW_GTK_ROOT="$(readlink -f $(dirname -- "$(readlink -f -- "$BASH_SOURCE")")/ BURROW_GTK_BUILD="$BURROW_GTK_ROOT/build-appimage" LINUXDEPLOY_VERSION="${LINUXDEPLOY_VERSION:-"1-alpha-20240109-1"}" BURROW_BUILD_TYPE="${BURROW_BUILD_TYPE:-"release"}" +CARGO_FLAGS="" if [ "$BURROW_GTK_ROOT" != $(pwd) ]; then echo "Make sure to cd into burrow-gtk" exit 1 fi -ARCHITECTURE=$(lscpu | grep Architecture | awk '{print $2}') +HOST_ARCHITECTURE=$(lscpu | grep Architecture | awk '{print $2}') +TARGET_ARCHITECTURE="" -if [ "$ARCHITECTURE" == "x86_64" ]; then +if [ "$HOST_ARCHITECTURE" == "x86_64" ]; then wget "https://github.com/linuxdeploy/linuxdeploy/releases/download/$LINUXDEPLOY_VERSION/linuxdeploy-x86_64.AppImage" -o /dev/null -O /tmp/linuxdeploy chmod a+x /tmp/linuxdeploy -elif [ "$ARCHITECTURE" == "aarch64" ]; then +elif [ "$HOST_ARCHITECTURE" == "aarch64" ]; then wget "https://github.com/linuxdeploy/linuxdeploy/releases/download/$LINUXDEPLOY_VERSION/linuxdeploy-aarch64.AppImage" -o /dev/null -O /tmp/linuxdeploy chmod a+x /tmp/linuxdeploy fi +if [ "$TARGET_ARCHITECTURE" == "x86_64" ]; then + CARGO_FLAGS="--target x86_64-unknown-linux-gnu" +elif [ "$TARGET_ARCHITECTURE" == "aarch64" ]; then + CARGO_FLAGS="--target aarch64-unknown-linux-gnu" +fi CFLAGS="-I/usr/local/include -I/usr/include/$MUSL_TARGET -fPIE" meson setup $BURROW_GTK_BUILD --bindir bin --prefix /usr --buildtype $BURROW_BUILD_TYPE meson compile -C $BURROW_GTK_BUILD DESTDIR=AppDir meson install -C $BURROW_GTK_BUILD -cargo b --$BURROW_BUILD_TYPE --manifest-path=../Cargo.toml +CARGO_FLAGS=$CARGO_FLAGS cargo b --$BURROW_BUILD_TYPE --manifest-path=../Cargo.toml /tmp/linuxdeploy --appimage-extract-and-run --appdir $BURROW_GTK_BUILD/AppDir -e $BURROW_GTK_BUILD/../../target/$BURROW_BUILD_TYPE/burrow --output appimage mv *.AppImage $BURROW_GTK_BUILD From 9abf20e64e8505741f86908004374d6fc5bdf876 Mon Sep 17 00:00:00 2001 From: dav Date: Sat, 13 Jul 2024 10:42:26 -0700 Subject: [PATCH 3/6] Test build multiarch --- burrow-gtk/build-aux/build_appimage.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/burrow-gtk/build-aux/build_appimage.sh b/burrow-gtk/build-aux/build_appimage.sh index 6635b79c..e7cb9bde 100755 --- a/burrow-gtk/build-aux/build_appimage.sh +++ b/burrow-gtk/build-aux/build_appimage.sh @@ -14,7 +14,7 @@ if [ "$BURROW_GTK_ROOT" != $(pwd) ]; then fi HOST_ARCHITECTURE=$(lscpu | grep Architecture | awk '{print $2}') -TARGET_ARCHITECTURE="" +TARGET_ARCHITECTURE="x86_64" if [ "$HOST_ARCHITECTURE" == "x86_64" ]; then wget "https://github.com/linuxdeploy/linuxdeploy/releases/download/$LINUXDEPLOY_VERSION/linuxdeploy-x86_64.AppImage" -o /dev/null -O /tmp/linuxdeploy @@ -36,4 +36,4 @@ meson compile -C $BURROW_GTK_BUILD DESTDIR=AppDir meson install -C $BURROW_GTK_BUILD CARGO_FLAGS=$CARGO_FLAGS cargo b --$BURROW_BUILD_TYPE --manifest-path=../Cargo.toml /tmp/linuxdeploy --appimage-extract-and-run --appdir $BURROW_GTK_BUILD/AppDir -e $BURROW_GTK_BUILD/../../target/$BURROW_BUILD_TYPE/burrow --output appimage -mv *.AppImage $BURROW_GTK_BUILD +mv *.AppImage $BURROW_GTK_BUILD/Burrow_${TARGET_ARCHITECTURE} From 49a2dd2987846449e9f36d0e5d5884c770b2af6d Mon Sep 17 00:00:00 2001 From: dav Date: Sat, 13 Jul 2024 10:46:29 -0700 Subject: [PATCH 4/6] Test appimage multiarch build --- burrow-gtk/build-aux/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/burrow-gtk/build-aux/Dockerfile b/burrow-gtk/build-aux/Dockerfile index b9b0763f..4c2f56a2 100644 --- a/burrow-gtk/build-aux/Dockerfile +++ b/burrow-gtk/build-aux/Dockerfile @@ -1,6 +1,6 @@ FROM fedora:39 -ARG ARCHITECTURE +ARG TARGET_ARCHITECTURE ENV DEBIAN_FRONTEND=noninteractive @@ -17,6 +17,6 @@ COPY . /app ENV SQLITE3_STATIC=1 RUN cd /app/burrow-gtk/ && \ - ARCHITECTURE=$ARCHITECTURE ./build-aux/build_appimage.sh + TARGET_ARCHITECTURE=$TARGET_ARCHITECTURE ./build-aux/build_appimage.sh From 87f12b166c8b9b363d1f29a5f2ba68cf056a74a1 Mon Sep 17 00:00:00 2001 From: dav Date: Wed, 17 Jul 2024 15:14:00 -0700 Subject: [PATCH 5/6] Test appimage multiarch build --- burrow-gtk/build-aux/build_appimage.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/burrow-gtk/build-aux/build_appimage.sh b/burrow-gtk/build-aux/build_appimage.sh index e7cb9bde..64d9f6b7 100755 --- a/burrow-gtk/build-aux/build_appimage.sh +++ b/burrow-gtk/build-aux/build_appimage.sh @@ -6,6 +6,8 @@ BURROW_GTK_ROOT="$(readlink -f $(dirname -- "$(readlink -f -- "$BASH_SOURCE")")/ BURROW_GTK_BUILD="$BURROW_GTK_ROOT/build-appimage" LINUXDEPLOY_VERSION="${LINUXDEPLOY_VERSION:-"1-alpha-20240109-1"}" BURROW_BUILD_TYPE="${BURROW_BUILD_TYPE:-"release"}" +HOST_ARCHITECTURE=$(lscpu | grep Architecture | awk '{print $2}') +TARGET_ARCHITECTURE="${TARGET_ARCHITECTURE:-"x86_64"}" CARGO_FLAGS="" if [ "$BURROW_GTK_ROOT" != $(pwd) ]; then @@ -13,9 +15,6 @@ if [ "$BURROW_GTK_ROOT" != $(pwd) ]; then exit 1 fi -HOST_ARCHITECTURE=$(lscpu | grep Architecture | awk '{print $2}') -TARGET_ARCHITECTURE="x86_64" - if [ "$HOST_ARCHITECTURE" == "x86_64" ]; then wget "https://github.com/linuxdeploy/linuxdeploy/releases/download/$LINUXDEPLOY_VERSION/linuxdeploy-x86_64.AppImage" -o /dev/null -O /tmp/linuxdeploy chmod a+x /tmp/linuxdeploy From 074d642adceaec9d19f14d101d5e08cee9596da9 Mon Sep 17 00:00:00 2001 From: dav Date: Wed, 17 Jul 2024 15:23:15 -0700 Subject: [PATCH 6/6] Test appimage multiarch build --- burrow-gtk/build-aux/build_appimage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/burrow-gtk/build-aux/build_appimage.sh b/burrow-gtk/build-aux/build_appimage.sh index 64d9f6b7..ef149a46 100755 --- a/burrow-gtk/build-aux/build_appimage.sh +++ b/burrow-gtk/build-aux/build_appimage.sh @@ -35,4 +35,4 @@ meson compile -C $BURROW_GTK_BUILD DESTDIR=AppDir meson install -C $BURROW_GTK_BUILD CARGO_FLAGS=$CARGO_FLAGS cargo b --$BURROW_BUILD_TYPE --manifest-path=../Cargo.toml /tmp/linuxdeploy --appimage-extract-and-run --appdir $BURROW_GTK_BUILD/AppDir -e $BURROW_GTK_BUILD/../../target/$BURROW_BUILD_TYPE/burrow --output appimage -mv *.AppImage $BURROW_GTK_BUILD/Burrow_${TARGET_ARCHITECTURE} +mv *.AppImage $BURROW_GTK_BUILD/Burrow-${TARGET_ARCHITECTURE}