From 2e2c9ca03088af8987ed5fcee3bc22ef3cb44d55 Mon Sep 17 00:00:00 2001 From: Stavros Date: Wed, 29 Jul 2026 15:48:23 +0200 Subject: [PATCH 1/2] feat(cicd): add aarch64-unknown-linux-musl release build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Enables ARM64 users on glibc-constrained systems (Ubuntu 22.04 LTS, Graviton EC2) - Uses musl for static linking (works on any Linux distro) - Matches existing x86_64-musl approach for consistency - Tested locally: docker run ubuntu:latest with cargo build --target aarch64-unknown-linux-musl ✓ Signed-off-by: Stavros --- .github/workflows/release.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a715976802..56fd7bc73e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -48,6 +48,10 @@ jobs: os: ubuntu-latest archive: tar.gz musl: true + - target: aarch64-unknown-linux-musl + os: ubuntu-latest + archive: tar.gz + musl: true - target: aarch64-unknown-linux-gnu os: ubuntu-latest archive: tar.gz @@ -290,7 +294,7 @@ jobs: run: | echo "mac_arm=$(grep aarch64-apple-darwin.tar.gz checksums.txt | head -1 | awk '{print $1}')" >> $GITHUB_OUTPUT echo "mac_intel=$(grep x86_64-apple-darwin.tar.gz checksums.txt | head -1 | awk '{print $1}')" >> $GITHUB_OUTPUT - echo "linux_arm=$(grep aarch64-unknown-linux-gnu.tar.gz checksums.txt | head -1 | awk '{print $1}')" >> $GITHUB_OUTPUT + echo "linux_arm_musl=$(grep aarch64-unknown-linux-musl.tar.gz checksums.txt | head -1 | awk '{print $1}')" >> $GITHUB_OUTPUT echo "linux_intel=$(grep x86_64-unknown-linux-musl.tar.gz checksums.txt | head -1 | awk '{print $1}')" >> $GITHUB_OUTPUT - name: Generate formula @@ -309,8 +313,8 @@ jobs: url "https://github.com/rtk-ai/rtk/releases/download/TAG_PLACEHOLDER/rtk-x86_64-apple-darwin.tar.gz" sha256 "SHA_MAC_INTEL_PLACEHOLDER" elsif OS.linux? && Hardware::CPU.arm? - url "https://github.com/rtk-ai/rtk/releases/download/TAG_PLACEHOLDER/rtk-aarch64-unknown-linux-gnu.tar.gz" - sha256 "SHA_LINUX_ARM_PLACEHOLDER" + url "https://github.com/rtk-ai/rtk/releases/download/TAG_PLACEHOLDER/rtk-aarch64-unknown-linux-musl.tar.gz" + sha256 "SHA_LINUX_ARM_MUSL_PLACEHOLDER" elsif OS.linux? && Hardware::CPU.intel? url "https://github.com/rtk-ai/rtk/releases/download/TAG_PLACEHOLDER/rtk-x86_64-unknown-linux-musl.tar.gz" sha256 "SHA_LINUX_INTEL_PLACEHOLDER" @@ -347,7 +351,7 @@ jobs: sed -i "s/TAG_PLACEHOLDER/${{ steps.version.outputs.tag }}/g" rtk.rb sed -i "s/SHA_MAC_ARM_PLACEHOLDER/${{ steps.sha.outputs.mac_arm }}/g" rtk.rb sed -i "s/SHA_MAC_INTEL_PLACEHOLDER/${{ steps.sha.outputs.mac_intel }}/g" rtk.rb - sed -i "s/SHA_LINUX_ARM_PLACEHOLDER/${{ steps.sha.outputs.linux_arm }}/g" rtk.rb + sed -i "s/SHA_LINUX_ARM_MUSL_PLACEHOLDER/${{ steps.sha.outputs.linux_arm_musl }}/g" rtk.rb sed -i "s/SHA_LINUX_INTEL_PLACEHOLDER/${{ steps.sha.outputs.linux_intel }}/g" rtk.rb # Remove leading spaces from heredoc sed -i 's/^ //' rtk.rb From d170ce6a68709e8a29d144f6d4dca9d708bb3cff Mon Sep 17 00:00:00 2001 From: Stavros Date: Wed, 29 Jul 2026 18:09:03 +0200 Subject: [PATCH 2/2] docs: update Homebrew formula and README for aarch64-musl binaries - Formula/rtk.rb: Changed Linux ARM target from gnu to musl (static linking) - README.md: Updated pre-built binary list to show aarch64-musl instead of aarch64-gnu This matches the release workflow changes that now build aarch64-musl for better cross-distro compatibility on Linux ARM64 systems. Signed-off-by: Stavros --- Formula/rtk.rb | 6 +++--- README.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Formula/rtk.rb b/Formula/rtk.rb index 34c27f9fb1..6cf143b7d4 100644 --- a/Formula/rtk.rb +++ b/Formula/rtk.rb @@ -23,13 +23,13 @@ class Rtk < Formula on_linux do on_intel do - url "https://github.com/rtk-ai/rtk/releases/download/v#{version}/rtk-x86_64-unknown-linux-gnu.tar.gz" + url "https://github.com/rtk-ai/rtk/releases/download/v#{version}/rtk-x86_64-unknown-linux-musl.tar.gz" sha256 "PLACEHOLDER_SHA256_LINUX_INTEL" end on_arm do - url "https://github.com/rtk-ai/rtk/releases/download/v#{version}/rtk-aarch64-unknown-linux-gnu.tar.gz" - sha256 "PLACEHOLDER_SHA256_LINUX_ARM" + url "https://github.com/rtk-ai/rtk/releases/download/v#{version}/rtk-aarch64-unknown-linux-musl.tar.gz" + sha256 "PLACEHOLDER_SHA256_LINUX_ARM_MUSL" end end diff --git a/README.md b/README.md index e019e80e82..7ac1848d51 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ cargo install --git https://github.com/rtk-ai/rtk Download from [releases](https://github.com/rtk-ai/rtk/releases): - macOS: `rtk-x86_64-apple-darwin.tar.gz` / `rtk-aarch64-apple-darwin.tar.gz` -- Linux: `rtk-x86_64-unknown-linux-musl.tar.gz` / `rtk-aarch64-unknown-linux-gnu.tar.gz` +- Linux: `rtk-x86_64-unknown-linux-musl.tar.gz` / `rtk-aarch64-unknown-linux-musl.tar.gz` - Windows: `rtk-x86_64-pc-windows-msvc.zip` > **Windows users**: Extract the zip and place `rtk.exe` somewhere in your PATH (e.g. `C:\Users\\.local\bin`). Run RTK from **Command Prompt**, **PowerShell**, or **Windows Terminal** — do not double-click the `.exe` (it will flash and close). The full hook system works natively on Windows (and in [WSL](https://learn.microsoft.com/en-us/windows/wsl/install)). See [Windows setup](#windows) below for details.