%global git_commit_sha 1feb39864133b68884bb2e9b8345d67bba894f72 %global git_commit_timestamp 2025-09-08T14:07:58Z %global base_name ghostty %global appid com.mitchellh.%{base_name} Name: ghostty-git Version: 1.1.4 Release: 1+%(date --date='%{git_commit_timestamp}' +'%%Y%%m%%d.%%H%%M%%S').%{git_commit_sha}%{?dist} Summary: Fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration License: MIT URL: https://github.com/ghostty-org/ghostty Source0: https://github.com/ghostty-org/ghostty/archive/%{git_commit_sha}.tar.gz ExclusiveArch: x86_64 aarch64 BuildRequires: coreutils BuildRequires: blueprint-compiler BuildRequires: fontconfig-devel BuildRequires: glib2-devel BuildRequires: glslang-devel BuildRequires: gtk4-devel BuildRequires: harfbuzz-devel BuildRequires: libadwaita-devel BuildRequires: libpng-devel BuildRequires: libxml2-devel %if 0%{?fedora} || 0%{?rhel} >= 10 BuildRequires: pandoc-cli %endif BuildRequires: pixman-devel BuildRequires: pkg-config BuildRequires: simdutf-devel BuildRequires: wayland-protocols-devel BuildRequires: zig BuildRequires: zlib-ng-devel %if 0%{?rhel} == 9 BuildRequires: freetype-devel = 2.13.3-1.el9 BuildRequires: llvm-devel = 19.1.7-2.full.el9 BuildRequires: oniguruma-devel = 6.9.9-1.el9 %else BuildRequires: freetype-devel BuildRequires: oniguruma-devel %endif %if 0%{?rhel} == 10 BuildRequires: llvm-devel = 20.1.4-2.full.el10 %endif Requires: fontconfig Requires: freetype Requires: glib2 Requires: gtk4 Requires: harfbuzz Requires: libadwaita Requires: libpng Requires: oniguruma Requires: pixman Requires: zlib-ng Conflicts: ghostty %description %{summary}. %if 0%{?rhel} == 9 || 0%{?rhel} == 10 %package gtk4-layer-shell Summary: GTK4 Layer-Shell for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Conflicts: gtk4-layer-shell-devel %description gtk4-layer-shell GTK4 Layer-Shell for %{name}. %endif %prep %setup -q -n ghostty-%{git_commit_sha} ZIG_GLOBAL_CACHE_DIR="%{_zig_cache_dir}" ./nix/build-support/fetch-zig-cache.sh %build %install DESTDIR="%{buildroot}" \ zig build \ --summary all \ --prefix "%{_prefix}" --prefix-lib-dir "%{_libdir}" \ --prefix-exe-dir "%{_bindir}" --prefix-include-dir "%{_includedir}" \ -Dversion-string=%{version}-%{release} \ -Doptimize=ReleaseFast \ -Dcpu=baseline \ -Dpie=true \ %if 0%{?rhel} == 9 || 0%{?rhel} == 10 -fno-sys=gtk4-layer-shell \ %endif %if 0%{?fedora} || 0%{?rhel} >= 10 -Demit-docs %else -Demit-docs=false %endif %find_lang %{appid} %files -f %{appid}.lang %license LICENSE %{_bindir}/%{base_name} %{_userunitdir}/app-%{appid}.service %{_datadir}/applications/%{appid}.desktop %{_datadir}/bash-completion/completions/%{base_name}.bash %{_datadir}/bat/syntaxes/%{base_name}.sublime-syntax %{_datadir}/dbus-1/services/%{appid}.service %{_datadir}/fish/vendor_completions.d/%{base_name}.fish %{_datadir}/%{base_name} %{_iconsdir}/hicolor/1024x1024/apps/%{appid}.png %{_iconsdir}/hicolor/128x128/apps/%{appid}.png %{_iconsdir}/hicolor/128x128@2/apps/%{appid}.png %{_iconsdir}/hicolor/16x16/apps/%{appid}.png %{_iconsdir}/hicolor/16x16@2/apps/%{appid}.png %{_iconsdir}/hicolor/256x256/apps/%{appid}.png %{_iconsdir}/hicolor/256x256@2/apps/%{appid}.png %{_iconsdir}/hicolor/32x32/apps/%{appid}.png %{_iconsdir}/hicolor/32x32@2/apps/%{appid}.png %{_iconsdir}/hicolor/512x512/apps/%{appid}.png %{_datadir}/kio/servicemenus/%{appid}.desktop %if 0%{?fedora} || 0%{?rhel} >= 10 %{_mandir}/man1/%{base_name}.1 %{_mandir}/man5/%{base_name}.5 %endif %{_datadir}/metainfo/%{appid}.metainfo.xml %{_datadir}/nautilus-python/extensions/%{base_name}.py %{_datadir}/nvim/site/compiler/%{base_name}.vim %{_datadir}/nvim/site/ftdetect/%{base_name}.vim %{_datadir}/nvim/site/ftplugin/%{base_name}.vim %{_datadir}/nvim/site/syntax/%{base_name}.vim %{_datadir}/terminfo/g/%{base_name} %{_datadir}/terminfo/x/xterm-%{base_name} %{_datadir}/vim/vimfiles/compiler/%{base_name}.vim %{_datadir}/vim/vimfiles/ftdetect/%{base_name}.vim %{_datadir}/vim/vimfiles/ftplugin/%{base_name}.vim %{_datadir}/vim/vimfiles/syntax/%{base_name}.vim %{_datadir}/zsh/site-functions/_ghostty %if 0%{?rhel} == 9 || 0%{?rhel} == 10 %files -f message_catalogs.txt gtk4-layer-shell %{_prefix}/include/gtk4-layer-shell.h %{_prefix}/include/gtk4-session-lock.h %{_prefix}/lib/libgtk4-layer-shell.so %endif %changelog %autochangelog