%global git_commit_sha 1feb39864133b68884bb2e9b8345d67bba894f72 %global git_commit_timestamp 2025-09-08T14:07:58Z 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} %build export ZIG_GLOBAL_CACHE_DIR="$(mktemp --directory)" ./nix/build-support/fetch-zig-cache.sh zig build \ --summary all \ --prefix "%{buildroot}%{_prefix}" \ --system "${ZIG_GLOBAL_CACHE_DIR}/p" \ -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 -Dapp-runtime=gtk-ng \ -Demit-docs %else -Dgtk-adwaita=false \ -Demit-docs=false %endif find "%{buildroot}/usr/share/locale" -type f -name "com.mitchellh.ghostty.mo" | sed "s|%{buildroot}||" > message_catalogs.txt %files -f message_catalogs.txt %license LICENSE %{_bindir}/ghostty %{_prefix}/lib/systemd/user/app-com.mitchellh.ghostty.service %{_prefix}/share/applications/com.mitchellh.ghostty.desktop %{_prefix}/share/bash-completion/completions/ghostty.bash %{_prefix}/share/bat/syntaxes/ghostty.sublime-syntax %{_prefix}/share/dbus-1/services/com.mitchellh.ghostty.service %{_prefix}/share/fish/vendor_completions.d/ghostty.fish %{_prefix}/share/ghostty %{_prefix}/share/icons/hicolor/1024x1024/apps/com.mitchellh.ghostty.png %{_prefix}/share/icons/hicolor/128x128/apps/com.mitchellh.ghostty.png %{_prefix}/share/icons/hicolor/128x128@2/apps/com.mitchellh.ghostty.png %{_prefix}/share/icons/hicolor/16x16/apps/com.mitchellh.ghostty.png %{_prefix}/share/icons/hicolor/16x16@2/apps/com.mitchellh.ghostty.png %{_prefix}/share/icons/hicolor/256x256/apps/com.mitchellh.ghostty.png %{_prefix}/share/icons/hicolor/256x256@2/apps/com.mitchellh.ghostty.png %{_prefix}/share/icons/hicolor/32x32/apps/com.mitchellh.ghostty.png %{_prefix}/share/icons/hicolor/32x32@2/apps/com.mitchellh.ghostty.png %{_prefix}/share/icons/hicolor/512x512/apps/com.mitchellh.ghostty.png %{_prefix}/share/kio/servicemenus/com.mitchellh.ghostty.desktop %if 0%{?fedora} || 0%{?rhel} >= 10 %{_prefix}/share/man/man1/ghostty.1 %{_prefix}/share/man/man5/ghostty.5 %endif %{_prefix}/share/metainfo/com.mitchellh.ghostty.metainfo.xml %{_prefix}/share/nautilus-python/extensions/ghostty.py %{_prefix}/share/nvim/site/compiler/ghostty.vim %{_prefix}/share/nvim/site/ftdetect/ghostty.vim %{_prefix}/share/nvim/site/ftplugin/ghostty.vim %{_prefix}/share/nvim/site/syntax/ghostty.vim %{_prefix}/share/terminfo/g/ghostty %{_prefix}/share/terminfo/x/xterm-ghostty %{_prefix}/share/vim/vimfiles/compiler/ghostty.vim %{_prefix}/share/vim/vimfiles/ftdetect/ghostty.vim %{_prefix}/share/vim/vimfiles/ftplugin/ghostty.vim %{_prefix}/share/vim/vimfiles/syntax/ghostty.vim %{_prefix}/share/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