Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 26 additions & 15 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,27 +29,25 @@ mkdir -p -- "${TMP_DIR}" "${APP_DIR}/share/metainfo" "${APP_DIR}/shared/lib"
cd "${TMP_DIR}"

if [ $GHOSTTY_VERSION == "tip" ]; then
BUILD_DIR="ghostty-source"
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}')"
mv ghostty-tip.tar.gz ghostty-${GHOSTTY_VERSION}.tar.gz
mv ghostty-tip.tar.gz.minisig ghostty-${GHOSTTY_VERSION}.tar.gz.minisig
else
BUILD_DIR="ghostty-${GHOSTTY_VERSION}"
BUILD_ARGS="${BUILD_ARGS} -Dversion-string=${GHOSTTY_VERSION}"
wget "https://release.files.ghostty.org/${GHOSTTY_VERSION}/ghostty-${GHOSTTY_VERSION}.tar.gz"
wget "https://release.files.ghostty.org/${GHOSTTY_VERSION}/ghostty-${GHOSTTY_VERSION}.tar.gz.minisig"
fi

minisign -V -m "ghostty-${GHOSTTY_VERSION}.tar.gz" -P "${PUB_KEY}" -s "ghostty-${GHOSTTY_VERSION}.tar.gz.minisig"

rm "ghostty-${GHOSTTY_VERSION}.tar.gz.minisig"

tar -xzmf "ghostty-${GHOSTTY_VERSION}.tar.gz"

rm "ghostty-${GHOSTTY_VERSION}.tar.gz"
rm "ghostty-${GHOSTTY_VERSION}.tar.gz" \
"ghostty-${GHOSTTY_VERSION}.tar.gz.minisig"

if [ $GHOSTTY_VERSION == 'tip' ]; then
mv ghostty-* ghostty-source
fi
BUILD_DIR="ghostty-${GHOSTTY_VERSION}"
BUILD_ARGS="${BUILD_ARGS} -Dversion-string=${GHOSTTY_VERSION}"

cd "${TMP_DIR}/${BUILD_DIR}"

Expand All @@ -73,7 +71,7 @@ ln -s "share/applications/com.mitchellh.ghostty.desktop" .
ln -s "share/icons/hicolor/256x256/apps/com.mitchellh.ghostty.png" .

# bundle all libs
xvfb-run -a -- lib4bin -p -v -e -s -k \
xvfb-run -a -- sharun l -p -v -e -s -k \
./bin/ghostty \
/usr/lib/libEGL* \
/usr/lib/gdk-pixbuf-*/*/*/*
Expand All @@ -85,7 +83,6 @@ cp -rv /opt/path-mapping.so ./shared/lib/
cp -rv gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader_svg.so ./shared/lib/

echo 'path-mapping.so' >./.preload

echo 'PATH_MAPPING=/usr/lib/gdk-pixbuf-2.0:${SHARUN_DIR}/gdk-pixbuf-2.0' >>./.env
echo 'GHOSTTY_RESOURCES_DIR=${SHARUN_DIR}/share/ghostty' >>./.env
echo 'unset ARGV0' >>./.env
Expand All @@ -102,7 +99,21 @@ fi
cd "${TMP_DIR}"

# create app image
URUNTIME_PRELOAD=1 appimagetool --comp zstd \
--mksquashfs-opt -Xcompression-level --mksquashfs-opt 22 \
--mksquashfs-opt -b --mksquashfs-opt 1M \
-u "${UPINFO}" "${APP_DIR}"
cp $(which uruntime) ./uruntime

# persist mount for faster launch times
sed -i 's|URUNTIME_MOUNT=[0-9]|URUNTIME_MOUNT=0|' ./uruntime

# update info
./uruntime --appimage-addupdinfo "${UPINFO}"

echo "Generating AppImage"
./uruntime --appimage-mkdwarfs -f \
--set-owner 0 --set-group 0 \
--no-history --no-create-timestamp \
--compression zstd:level=22 -S26 -B32 \
--header uruntime -i "${APP_DIR}" \
-o Ghostty-"${VERSION}"-anylinux-"${ARCH}".AppImage

echo "Generating Zsync file"
zsyncmake *.AppImage -u *.AppImage
23 changes: 9 additions & 14 deletions setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ get_latest_gh_release() {

# Update & install OS base dependencies
buildDeps="base-devel freetype2 oniguruma wget mesa file zsync appstream xorg-server-xvfb patchelf binutils strace git jq"
ghosttyDeps="gtk4 libadwaita blueprint-compiler gtk4-layer-shell"
ghosttyDeps="gtk4 libadwaita gtk4-layer-shell"
rm -rf "/usr/share/libalpm/hooks/package-cleanup.hook"
pacman -Syuq --needed --noconfirm --noprogressbar ${buildDeps} ${ghosttyDeps}

Expand All @@ -26,11 +26,11 @@ URUNTIME_VERSION="$(get_latest_gh_release 'VHSgunzo/uruntime')"
GITHUB_BASE="https://github.com"
PANDOC_BASE="${GITHUB_BASE}/jgm/pandoc/releases/download/${PANDOC_VERSION}"
MINISIGN_URL="${GITHUB_BASE}/jedisct1/minisign/releases/download/${MINISIGN_VERSION}/minisign-${MINISIGN_VERSION}-linux.tar.gz"
APPIMAGE_URL="${GITHUB_BASE}/pkgforge-dev/appimagetool-uruntime/releases/download/continuous/appimagetool-${ARCH}.AppImage"
URUNTIME_URL="${GITHUB_BASE}/VHSgunzo/uruntime/releases/download/${URUNTIME_VERSION}/uruntime-appimage-dwarfs-${ARCH}"
LLVM_BASE="${GITHUB_BASE}/pkgforge-dev/llvm-libs-debloated/releases/download/continuous"
ZIG_URL="https://ziglang.org/download/${ZIG_VERSION}/zig-linux-${ARCH}-${ZIG_VERSION}.tar.xz"
LIB4BIN_URL="https://raw.githubusercontent.com/VHSgunzo/sharun/refs/heads/main/lib4bin"
SHARUN_URL="${GITHUB_BASE}/VHSgunzo/sharun/releases/download/${SHARUN_VERSION}/sharun-${ARCH}"
LD_PRELOAD_OPEN="${GITHUB_BASE}/fritzw/ld-preload-open.git"

case "${ARCH}" in
"x86_64")
Expand Down Expand Up @@ -62,11 +62,11 @@ wget "${ZIG_URL}" -O /tmp/zig-linux.tar.xz
tar -xJf /tmp/zig-linux.tar.xz -C /opt
ln -s "/opt/zig-linux-${ARCH}-${ZIG_VERSION}/zig" /usr/local/bin/zig

# appimagetool: https://github.com/AppImage/appimagetool
rm -rf /usr/local/bin/appimagetool
wget "${APPIMAGE_URL}" -O /tmp/appimagetool.AppImage
chmod +x /tmp/appimagetool.AppImage
mv /tmp/appimagetool.AppImage /usr/local/bin/appimagetool
# uruntime: https://github.com/VHSgunzo/uruntime
rm -rf /usr/local/bin/uruntime
wget "${URUNTIME_URL}" -O /tmp/uruntime
chmod +x /tmp/uruntime
mv /tmp/uruntime /usr/local/bin/uruntime

# minisign: https://github.com/jedisct1/minisign
rm -rf /usr/local/bin/minisign
Expand All @@ -80,19 +80,14 @@ wget "${PANDOC_URL}" -O /tmp/pandoc-linux.tar.gz
tar -xzf /tmp/pandoc-linux.tar.gz -C /tmp
mv /tmp/"pandoc-${PANDOC_VERSION}"/bin/* /usr/local/bin

# lib4bin: https://github.com/VHSgunzo/sharun/blob/main/lib4bin
rm -rf /usr/local/bin/lib4bin
wget "${LIB4BIN_URL}" -O /usr/local/bin/lib4bin
chmod +x /usr/local/bin/lib4bin

# sharun: https://github.com/VHSgunzo/sharun
rm -rf /usr/local/bin/sharun
wget "${SHARUN_URL}" -O /usr/local/bin/sharun
chmod +x /usr/local/bin/sharun

# ld-preload-open: https://github.com/fritzw/ld-preload-open
rm -rf /opt/path-mapping.so
git clone https://github.com/fritzw/ld-preload-open.git
git clone "${LD_PRELOAD_OPEN}"
(
cd ld-preload-open
make all
Expand Down