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 diff --git a/bin/build-ghostty.sh b/bin/build-ghostty.sh index d9a3edf..58a7db5 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" @@ -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..a26e60d 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')" @@ -29,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