From 64aa4169a394f31412ba33418297b8ead288362a Mon Sep 17 00:00:00 2001 From: psadi Date: Wed, 22 Apr 2026 10:36:06 +0530 Subject: [PATCH 1/4] fix: add commit hash as part of the build closes #138 --- bin/build-ghostty.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build-ghostty.sh b/bin/build-ghostty.sh index d9a3edf..06f8abb 100755 --- a/bin/build-ghostty.sh +++ b/bin/build-ghostty.sh @@ -22,7 +22,7 @@ if [ "${GHOSTTY_VERSION}" = "tip" ]; then export UPINFO="gh-releases-zsync|$(echo "${GITHUB_REPOSITORY}" | tr '/' '|')|tip|Ghostty-*$ARCH.AppImage.zsync" wget "https://github.com/ghostty-org/ghostty/releases/download/tip/ghostty-source.tar.gz" -O "ghostty-${GHOSTTY_VERSION}.tar.gz" wget "https://github.com/ghostty-org/ghostty/releases/download/tip/ghostty-source.tar.gz.minisig" -O "ghostty-${GHOSTTY_VERSION}.tar.gz.minisig" - GHOSTTY_VERSION="$(tar -tf "ghostty-${GHOSTTY_VERSION}.tar.gz" --wildcards "*zig.zon.txt" | awk -F'[-/]' '{print $2"-"$3}')" + GHOSTTY_VERSION="$(tar -tf "ghostty-${GHOSTTY_VERSION}.tar.gz" --wildcards "*zig.zon.txt" | awk '-F[-/]' '{print $2"-"$3"-"$4}')" echo "${GHOSTTY_VERSION}" >VERSION mv ghostty-tip.tar.gz "ghostty-${GHOSTTY_VERSION}.tar.gz" mv ghostty-tip.tar.gz.minisig "ghostty-${GHOSTTY_VERSION}.tar.gz.minisig" From 1a636c3cf1bd52ed1d20d4ed9a875917fe13f469 Mon Sep 17 00:00:00 2001 From: Dino Korah Date: Sun, 10 May 2026 17:32:58 +0100 Subject: [PATCH 2/4] fix: strip .sframe from glibc crt objects to unblock Zig linker on GCC 15+ (#143) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GCC 15+ compiles glibc crt startup objects (crt1.o, Scrt1.o, rcrt1.o) with .sframe sections that use R_X86_64_PC64 relocations. Zig's self-hosted linker doesn't support this relocation type, causing build-time helpers such as ghostty-build-data to fail with: error: fatal linker error: unhandled relocation type R_X86_64_PC64 note: in /usr/lib/crt1.o:.sframe After pacman installs packages in setup-env.sh, use objcopy to strip .sframe and .rela.sframe from the affected objects. This is version-agnostic and requires no changes to the Zig invocation. Also remove URUNTIME_PRELOAD from bundle-appimage.sh — the aarch64 dwarfs-lite uruntime variant does not support the URUNTIME_MOUNT marker patching it requires, causing AppImage packaging to fail on aarch64. Fixes: https://github.com/pkgforge-dev/ghostty-appimage/issues/138 See: https://ziggit.dev/t/linker-error-when-building-zig-from-source/14394 Co-authored-by: Dino Korah <691011+codemedic@users.noreply.github.com> --- bin/build-ghostty.sh | 2 +- bin/bundle-appimage.sh | 1 - bin/setup-env.sh | 8 ++++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/bin/build-ghostty.sh b/bin/build-ghostty.sh index 06f8abb..58a7db5 100755 --- a/bin/build-ghostty.sh +++ b/bin/build-ghostty.sh @@ -42,10 +42,10 @@ BUILD_ARGS="${BUILD_ARGS} -Dversion-string=${GHOSTTY_VERSION}" # Configure Zig: https://ziglang.org ZIG_VERSION="$(cat "ghostty-${GHOSTTY_VERSION}/build.zig.zon" | grep ".minimum_zig_version" | cut -d'"' -f2)" +ZIG_PACKAGE_NAME="zig-${ARCH}-linux-${ZIG_VERSION}" CURRENT_ZIG_VERSION=$(zig version 2>/dev/null || true) if [ "$CURRENT_ZIG_VERSION" != "$ZIG_VERSION" ]; then echo "Installing Zig ${ZIG_VERSION}..." - ZIG_PACKAGE_NAME="zig-${ARCH}-linux-${ZIG_VERSION}" ZIG_URL="https://ziglang.org/download/${ZIG_VERSION}/${ZIG_PACKAGE_NAME}.tar.xz" rm -rf /opt/zig* unlink /usr/local/bin/zig || true diff --git a/bin/bundle-appimage.sh b/bin/bundle-appimage.sh index 082f0c8..57f4d2e 100755 --- a/bin/bundle-appimage.sh +++ b/bin/bundle-appimage.sh @@ -6,7 +6,6 @@ ARCH="$(uname -m)" GHOSTTY_VERSION="$(cat VERSION)" export UPINFO="gh-releases-zsync|$(echo "${GITHUB_REPOSITORY}" | tr '/' '|')|latest|Ghostty-*$ARCH.AppImage.zsync" -export URUNTIME_PRELOAD=1 export DEPLOY_OPENGL=1 export EXEC_WRAPPER=1 export OUTNAME="Ghostty-${GHOSTTY_VERSION}-${ARCH}.AppImage" diff --git a/bin/setup-env.sh b/bin/setup-env.sh index c5afb6e..b909dcc 100755 --- a/bin/setup-env.sh +++ b/bin/setup-env.sh @@ -14,6 +14,14 @@ ghosttyDeps="gtk4 libadwaita gtk4-layer-shell" rm -rf "/usr/share/libalpm/hooks/package-cleanup.hook" pacman -Syuq --needed --noconfirm --noprogressbar ${buildDeps} ${ghosttyDeps} +# GCC 15+ compiles glibc crt startup objects with .sframe sections that use R_X86_64_PC64 +# relocations. Zig's self-hosted linker doesn't support this relocation type, causing +# build-time helpers (e.g. ghostty-build-data) to fail. Strip .sframe and its associated +# relocation section from the affected objects so the linker never encounters them. +for _crt in /usr/lib/crt1.o /usr/lib/Scrt1.o /usr/lib/rcrt1.o; do + [ -f "$_crt" ] && objcopy --remove-section .sframe --remove-section .rela.sframe "$_crt" +done + ARCH="$(uname -m)" MINISIGN_VERSION="$(get_latest_gh_release 'jedisct1/minisign')" From 07842443273a2df75813cf28242ea846535ce347 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 10:27:26 +0530 Subject: [PATCH 3/4] chore(deps): update softprops/action-gh-release action to v3 (#136) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 42a9870..37740d8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -151,7 +151,7 @@ jobs: name: ghostty-appimage-x86_64 - name: Ghostty Tip ("Nightly") - uses: softprops/action-gh-release@v2.6.2 + uses: softprops/action-gh-release@v3.0.0 with: name: '👻 Ghostty Tip ("Nightly")' prerelease: true From dae51744d897844630385b4656c3994ec2622690 Mon Sep 17 00:00:00 2001 From: psadi Date: Sun, 10 May 2026 22:07:22 +0530 Subject: [PATCH 4/4] chore: update debloated args to use common pkgs (nano) --- bin/setup-env.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/setup-env.sh b/bin/setup-env.sh index b909dcc..a26e60d 100755 --- a/bin/setup-env.sh +++ b/bin/setup-env.sh @@ -37,7 +37,7 @@ SHARUN="${GH_USER_CONTENT}/pkgforge-dev/Anylinux-AppImages/refs/heads/main/usefu # Install Debloated Pkgs wget "${DEBLOATED_PKGS}" -O /tmp/get-debloated-pkgs.sh chmod a+x /tmp/get-debloated-pkgs.sh -sh /tmp/get-debloated-pkgs.sh --add-opengl --prefer-nano gtk4-mini libxml2-mini gdk-pixbuf2-mini librsvg-mini +sh /tmp/get-debloated-pkgs.sh --add-common --prefer-nano # minisign: https://github.com/jedisct1/minisign rm -rf /usr/local/bin/minisign