@@ -29,22 +29,34 @@ mkdir -p -- "${TMP_DIR}" "${APP_DIR}/share/metainfo" "${APP_DIR}/shared/lib"
2929cd " ${TMP_DIR} "
3030
3131if [ $GHOSTTY_VERSION == " tip" ]; then
32- wget " https://github.com/ghostty-org/ghostty/releases/download/tip/ghostty-source.tar.gz" -O ghostty-${GHOSTTY_VERSION} .tar.gz
33- wget " https://github.com/ghostty-org/ghostty/releases/download/tip/ghostty-source.tar.gz.minisig" -O ghostty-${GHOSTTY_VERSION} .tar.gz.minisig
34- GHOSTTY_VERSION=" $( tar -tf ghostty-${GHOSTTY_VERSION} .tar.gz --wildcards " *zig.zon.txt" | awk -F' [-/]' ' {print $2"-"$3}' ) "
35- mv ghostty-tip.tar.gz ghostty-${GHOSTTY_VERSION} .tar.gz
36- mv ghostty-tip.tar.gz.minisig ghostty-${GHOSTTY_VERSION} .tar.gz.minisig
32+ wget " https://github.com/ghostty-org/ghostty/releases/download/tip/ghostty-source.tar.gz" -O ghostty-${GHOSTTY_VERSION} .tar.gz
33+ wget " https://github.com/ghostty-org/ghostty/releases/download/tip/ghostty-source.tar.gz.minisig" -O ghostty-${GHOSTTY_VERSION} .tar.gz.minisig
34+ GHOSTTY_VERSION=" $( tar -tf ghostty-${GHOSTTY_VERSION} .tar.gz --wildcards " *zig.zon.txt" | awk -F' [-/]' ' {print $2"-"$3}' ) "
35+ mv ghostty-tip.tar.gz ghostty-${GHOSTTY_VERSION} .tar.gz
36+ mv ghostty-tip.tar.gz.minisig ghostty-${GHOSTTY_VERSION} .tar.gz.minisig
3737else
38- wget " https://release.files.ghostty.org/${GHOSTTY_VERSION} /ghostty-${GHOSTTY_VERSION} .tar.gz"
39- wget " https://release.files.ghostty.org/${GHOSTTY_VERSION} /ghostty-${GHOSTTY_VERSION} .tar.gz.minisig"
38+ wget " https://release.files.ghostty.org/${GHOSTTY_VERSION} /ghostty-${GHOSTTY_VERSION} .tar.gz"
39+ wget " https://release.files.ghostty.org/${GHOSTTY_VERSION} /ghostty-${GHOSTTY_VERSION} .tar.gz.minisig"
40+ fi
41+
42+ if [ $EXPERIMENTAL == true ]; then
43+ BUILD_ARGS=" ${BUILD_ARGS} -Dapp-runtime=glfw"
44+ LIBS2BUNDLE="
45+ ./bin/ghostty \
46+ /usr/lib/libEGL*"
47+ else
48+ LIBS2BUNDLE="
49+ ./bin/ghostty \
50+ /usr/lib/libEGL* \
51+ /usr/lib/gdk-pixbuf-*/*/*/*"
4052fi
4153
4254minisign -V -m " ghostty-${GHOSTTY_VERSION} .tar.gz" -P " ${PUB_KEY} " -s " ghostty-${GHOSTTY_VERSION} .tar.gz.minisig"
4355
4456tar -xzmf " ghostty-${GHOSTTY_VERSION} .tar.gz"
4557
4658rm " ghostty-${GHOSTTY_VERSION} .tar.gz" \
47- " ghostty-${GHOSTTY_VERSION} .tar.gz.minisig"
59+ " ghostty-${GHOSTTY_VERSION} .tar.gz.minisig"
4860
4961BUILD_DIR=" ghostty-${GHOSTTY_VERSION} "
5062BUILD_ARGS=" ${BUILD_ARGS} -Dversion-string=${GHOSTTY_VERSION} "
@@ -53,8 +65,8 @@ cd "${TMP_DIR}/${BUILD_DIR}"
5365
5466# Fetch Zig Cache
5567if [ -f ' ./nix/build-support/fetch-zig-cache.sh' ]; then
56- ZIG_GLOBAL_CACHE_DIR=/tmp/offline-cache ./nix/build-support/fetch-zig-cache.sh
57- BUILD_ARGS=" ${BUILD_ARGS} --system /tmp/offline-cache/p"
68+ ZIG_GLOBAL_CACHE_DIR=/tmp/offline-cache ./nix/build-support/fetch-zig-cache.sh
69+ BUILD_ARGS=" ${BUILD_ARGS} --system /tmp/offline-cache/p"
5870fi
5971
6072# Build Ghostty with zig
@@ -72,19 +84,19 @@ ln -s "share/icons/hicolor/256x256/apps/com.mitchellh.ghostty.png" .
7284ln -s " share/icons/hicolor/256x256/apps/com.mitchellh.ghostty.png" .DirIcon
7385
7486# bundle all libs
75- xvfb-run -a -- sharun l -p -v -e -s -k \
76- ./bin/ghostty \
77- /usr/lib/libEGL* \
78- /usr/lib/gdk-pixbuf-* /* /* /*
87+ xvfb-run -a -- sharun l -p -v -e -s -k ${LIBS2BUNDLE}
7988
8089# preload libpixbufloader /w ld-preload-open as svg icons breaks
8190# either on ghostty tab bar or gnome-text-editor while config edit or both :(
82- mv ./shared/lib/gdk-pixbuf-2.0 ./
83- cp -rv /opt/path-mapping.so ./shared/lib/
84- cp -rv gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader_svg.so ./shared/lib/
91+ if [ $EXPERIMENTAL == false ]; then
92+ mv ./shared/lib/gdk-pixbuf-2.0 ./
93+ cp -rv /opt/path-mapping.so ./shared/lib/
94+ cp -rv gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader_svg.so ./shared/lib/
95+
96+ echo ' path-mapping.so' > ./.preload
97+ echo ' PATH_MAPPING=/usr/lib/gdk-pixbuf-2.0:${SHARUN_DIR}/gdk-pixbuf-2.0' >> ./.env
98+ fi
8599
86- echo ' path-mapping.so' > ./.preload
87- echo ' PATH_MAPPING=/usr/lib/gdk-pixbuf-2.0:${SHARUN_DIR}/gdk-pixbuf-2.0' >> ./.env
88100echo ' GHOSTTY_RESOURCES_DIR=${SHARUN_DIR}/share/ghostty' >> ./.env
89101echo ' unset ARGV0' >> ./.env
90102
@@ -93,8 +105,14 @@ ln -s ./bin/ghostty ./AppRun
93105
94106export VERSION=" $( ./AppRun --version | awk ' FNR==1 {print $2}' ) "
95107if [ -z " $VERSION " ]; then
96- echo " ERROR: Could not get version from ghostty binary"
97- exit 1
108+ echo " ERROR: Could not get version from ghostty binary"
109+ exit 1
110+ fi
111+
112+ GHOSTTY_APPIMAGE=" Ghostty-${VERSION} -${ARCH} .AppImage"
113+
114+ if [ $EXPERIMENTAL == true ]; then
115+ GHOSTTY_APPIMAGE=" Ghostty-Experimental-${VERSION} -${ARCH} .AppImage"
98116fi
99117
100118cd " ${TMP_DIR} "
@@ -111,11 +129,11 @@ sed -i 's|URUNTIME_MOUNT=[0-9]|URUNTIME_MOUNT=0|' ./uruntime-lite
111129
112130echo " Generating AppImage"
113131./uruntime --appimage-mkdwarfs -f \
114- --set-owner 0 --set-group 0 \
115- --no-history --no-create-timestamp \
116- --compression zstd:level=22 -S26 -B8 \
117- --header uruntime-lite -i " ${APP_DIR} " \
118- -o Ghostty- " ${VERSION} " - " ${ARCH} " .AppImage
132+ --set-owner 0 --set-group 0 \
133+ --no-history --no-create-timestamp \
134+ --compression zstd:level=22 -S26 -B8 \
135+ --header uruntime-lite -i " ${APP_DIR} " \
136+ -o " ${GHOSTTY_APPIMAGE} "
119137
120138echo " Generating Zsync file"
121139zsyncmake * .AppImage -u * .AppImage
0 commit comments