From 41cb249a8134e6591eb10ede80495b09cfc72264 Mon Sep 17 00:00:00 2001 From: David Rivera Ruz Date: Tue, 31 Mar 2026 13:43:28 +0200 Subject: [PATCH 1/2] ci: add aarch64-unknown-linux-gnu target to release builds --- .github/workflows/release.yml | 16 +++++++++++++++- cli/Makefile | 13 ++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bc5898c10..3175a8c81 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -194,6 +194,11 @@ jobs: artifact_name: c2patool_linux_intel.tar.gz uploaded_asset_name: ${{ needs.release-plz.outputs.c2patool-release-tag }}-x86_64-unknown-linux-gnu.tar.gz sbom_asset_name: ${{ needs.release-plz.outputs.c2patool-release-tag }}-x86_64-unknown-linux-gnu-sbom.json + - os: ubuntu-latest + artifact_name: c2patool_linux_aarch64.tar.gz + uploaded_asset_name: ${{ needs.release-plz.outputs.c2patool-release-tag }}-aarch64-unknown-linux-gnu.tar.gz + sbom_asset_name: ${{ needs.release-plz.outputs.c2patool-release-tag }}-aarch64-unknown-linux-gnu-sbom.json + target: aarch64-unknown-linux-gnu - os: windows-latest artifact_name: c2patool_win_intel.zip uploaded_asset_name: ${{ needs.release-plz.outputs.c2patool-release-tag }}-x86_64-pc-windows-msvc.zip @@ -222,9 +227,18 @@ jobs: if: ${{ needs.release-plz.outputs.c2patool-release-tag }} uses: Swatinem/rust-cache@v2 + - name: Install ARM64 toolchain (Linux) + if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }} + run: sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu + - name: Run make release if: ${{ needs.release-plz.outputs.c2patool-release-tag }} - run: cd cli && make release + run: | + if [ "${{ matrix.target }}" == "aarch64-unknown-linux-gnu" ]; then + cd cli && make release ARCH=aarch64 + else + cd cli && make release + fi - name: Upload binary to GitHub if: ${{ needs.release-plz.outputs.c2patool-release-tag }} diff --git a/cli/Makefile b/cli/Makefile index 286c8507b..9a62ecf87 100644 --- a/cli/Makefile +++ b/cli/Makefile @@ -40,8 +40,15 @@ c2patool-package: cp CHANGELOG.md ../target/c2patool/CHANGELOG.md # These are for building the c2patool release bin on various platforms -build-release-win: +build-release-linux: +ifeq ($(ARCH), aarch64) + rustup target add aarch64-unknown-linux-gnu + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc cargo build --target=aarch64-unknown-linux-gnu --release + mkdir -p ../target/release + cp ../target/aarch64-unknown-linux-gnu/release/c2patool ../target/release/c2patool +else cargo build --release +endif build-release-mac-arm: rustup target add aarch64-apple-darwin @@ -69,5 +76,9 @@ release: build-release-win c2patool-package endif ifeq ($(PLATFORM), linux) release: build-release-linux c2patool-package +ifeq ($(ARCH), aarch64) + cd ../target && tar -czvf c2patool_linux_aarch64.tar.gz c2patool && cd .. +else cd ../target && tar -czvf c2patool_linux_intel.tar.gz c2patool && cd .. endif +endif From 37d2b142bc1c6b8f05081a8bd06f06122ebd5843 Mon Sep 17 00:00:00 2001 From: David Rivera Ruz Date: Mon, 13 Apr 2026 08:48:02 +0200 Subject: [PATCH 2/2] docs: fix typo in ARM64 target name for Ubuntu --- docs/support-tiers.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/support-tiers.md b/docs/support-tiers.md index 70b832e1e..2a26f9f60 100644 --- a/docs/support-tiers.md +++ b/docs/support-tiers.md @@ -66,21 +66,21 @@ These requirements are enforced in the [Tier 1B workflow](/.github/workflows/tie ### Tier 1B for c2pa-rs * **Ubuntu:** `x86_64-unknown-linux-gnu`, Rust `MSRV`, `all` features, `openssl` | `rust_native_crypto`, `glibc` -* **Ubuntu (ARM):** `aarch-unknown-linux-gnu`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto`, `glibc` +* **Ubuntu (ARM):** `aarch64-unknown-linux-gnu`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto`, `glibc` * **MacOS:** `aarch64-apple-darwin`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto` * **Windows:** `x86_64-pc-windows-msvc`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto` ### Tier 1B for c2pa-c-ffi * **Ubuntu:** `x86_64-unknown-linux-gnu`, Rust `MSRV`, `all` features, `openssl` | `rust_native_crypto`, `glibc` -* **Ubuntu (ARM):** `aarch-unknown-linux-gnu`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto`, `glibc` +* **Ubuntu (ARM):** `aarch64-unknown-linux-gnu`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto`, `glibc` * **MacOS:** `aarch64-apple-darwin`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto` * **Windows:** `x86_64-pc-windows-msvc`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto` ### Tier 1B for c2patool * **Ubuntu:** `x86_64-unknown-linux-gnu`, Rust `MSRV`, `all` features, `openssl` | `rust_native_crypto`, `glibc` -* **Ubuntu (ARM):** `aarch-unknown-linux-gnu`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto`, `glibc` +* **Ubuntu (ARM):** `aarch64-unknown-linux-gnu`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto`, `glibc` * **MacOS:** `aarch64-apple-darwin`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto` * **Windows:** `x86_64-pc-windows-msvc`, Rust `stable` | `MSRV`, `all` features, `openssl` | `rust_native_crypto`