diff --git a/anda/devs/ghostty/nightly-glfw/anda.hcl b/anda/devs/ghostty/nightly-glfw/anda.hcl new file mode 100644 index 0000000000..b9d41cefd6 --- /dev/null +++ b/anda/devs/ghostty/nightly-glfw/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "ghostty-glfw-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/devs/ghostty/nightly-glfw/ghostty-glfw-nightly.spec b/anda/devs/ghostty/nightly-glfw/ghostty-glfw-nightly.spec new file mode 100644 index 0000000000..beee1bade9 --- /dev/null +++ b/anda/devs/ghostty/nightly-glfw/ghostty-glfw-nightly.spec @@ -0,0 +1,88 @@ +%global commit 478fe3917c2882a1c321f9d1eec808b71698974d +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20241231 + +Name: ghostty-glfw-nightly +Version: %{commit_date}.%{shortcommit} +Release: 1%{?dist} +Summary: A fast, native terminal emulator written in Zig; this is the Tip (nightly) build using the GLFW rendering library. +License: MIT +URL: https://ghostty.org/ +Source0: https://github.com/ghostty-org/ghostty/archive/%{commit}/ghostty-%{commit}.tar.gz +Patch0: no-strip.diff +BuildRequires: glfw-devel +BuildRequires: ncurses +BuildRequires: ncurses-devel +BuildRequires: pandoc-cli +BuildRequires: zig +Requires: ghostty-nightly-terminfo = %{version}-%{release} +Requires: ghostty-nightly-shell-integration = %{version}-%{release} +Requires: fontconfig +Requires: freetype +Requires: glib2 +Requires: glfw +Requires: harfbuzz +Requires: libpng +Requires: oniguruma +Requires: pixman +Requires: zlib-ng +Conflicts: ghostty +Conflicts: ghostty-nightly +Conflicts: ghostty-glfw +Provides: ghostty-tip-glfw = %{version}-%{release} +Provides: ghostty-glfw-tip = %{version}-%{release} +Packager: ShinyGil + +%description +👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. + +Please note GLFW builds are intended for developer use, they may be buggy and lack features. Use at your own risk. + +%prep +%autosetup -n ghostty-%{commit} -p1 + +%build + +%install +zig build \ + --summary all \ + -Doptimize=ReleaseFast --release=fast \ + --prefix %{buildroot}%{_prefix} --verbose \ + -Dpie=true \ + -Dapp-runtime=glfw \ + -Demit-docs +rm -rf %{buildroot}%{bash_completions_dir}/ghostty.bash \ + %{buildroot}%{fish_completions_dir}/ghostty.fish \ + %{buildroot}%{zsh_completions_dir}/_ghostty \ + %{buildroot}%{_datadir}/ghostty/shell-integration \ + %{buildroot}%{_datadir}/terminfo/* + +%files +%doc README.md +%license LICENSE +%_bindir/ghostty +%_datadir/applications/com.mitchellh.ghostty.desktop +%_datadir/bat/syntaxes/ghostty.sublime-syntax +%_datadir/ghostty/ +%_datadir/kio/servicemenus/com.mitchellh.ghostty.desktop +%_datadir/nvim/site/ftdetect/ghostty.vim +%_datadir/nvim/site/ftplugin/ghostty.vim +%_datadir/nvim/site/syntax/ghostty.vim +%_datadir/vim/vimfiles/ftdetect/ghostty.vim +%_datadir/vim/vimfiles/ftplugin/ghostty.vim +%_datadir/vim/vimfiles/syntax/ghostty.vim +%_iconsdir/hicolor/16x16/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/16x16@2/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/32x32/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/32x32@2/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/128x128/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/128x128@2/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/256x256/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/256x256@2/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/512x512/apps/com.mitchellh.ghostty.png +%_mandir/man1/ghostty.1.gz +%_mandir/man5/ghostty.5.gz + +%changelog +* Sun Dec 29 2024 ShinyGil +- Initial package diff --git a/anda/devs/ghostty/nightly-glfw/no-strip.diff b/anda/devs/ghostty/nightly-glfw/no-strip.diff new file mode 100644 index 0000000000..80c5534f73 --- /dev/null +++ b/anda/devs/ghostty/nightly-glfw/no-strip.diff @@ -0,0 +1,17 @@ +diff --git a/build.zig b/build.zig +index c3f7302..a0ecf25 100644 +--- a/build.zig ++++ b/build.zig +@@ -295,11 +295,7 @@ pub fn build(b: *std.Build) !void { + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, +- .strip = switch (optimize) { +- .Debug => false, +- .ReleaseSafe => false, +- .ReleaseFast, .ReleaseSmall => true, +- }, ++ .strip = false, + }) else null; + + // Exe diff --git a/anda/devs/ghostty/nightly-glfw/update.rhai b/anda/devs/ghostty/nightly-glfw/update.rhai new file mode 100644 index 0000000000..d41accfda2 --- /dev/null +++ b/anda/devs/ghostty/nightly-glfw/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit", gh_commit("ghostty-org/ghostty")); +if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); +} diff --git a/anda/devs/ghostty/nightly/ghostty-nightly.spec b/anda/devs/ghostty/nightly/ghostty-nightly.spec index d48c489918..c48685f878 100644 --- a/anda/devs/ghostty/nightly/ghostty-nightly.spec +++ b/anda/devs/ghostty/nightly/ghostty-nightly.spec @@ -3,29 +3,19 @@ %global commit_date 20241228 Name: ghostty-nightly -Version: %commit_date.%shortcommit -Release: 1%?dist -Summary: A fast, native terminal emulator written in Zig; this is the Tip (nightly) build +Version: %{commit_date}.%{shortcommit} +Release: 1%{?dist} +Summary: A fast, native terminal emulator written in Zig; this is the Tip (nightly) build. License: MIT URL: https://ghostty.org/ Source0: https://github.com/ghostty-org/ghostty/archive/%{commit}/ghostty-%{commit}.tar.gz -#Patch0: pkgconfig-libadwaita-1.diff -#Patch1: use-pkg-config.diff -Patch2: no-strip.diff -BuildRequires: zig -BuildRequires: gtk4-devel libadwaita-devel +Patch0: no-strip.diff +BuildRequires: gtk4-devel +BuildRequires: libadwaita-devel +BuildRequires: ncurses +BuildRequires: ncurses-devel BuildRequires: pandoc-cli -#BuildRequires: pkg-config -#BuildRequires: pkgconfig(harfbuzz) -#BuildRequires: pkgconfig(fontconfig) -#BuildRequires: pkgconfig(libpng) -#BuildRequires: pkgconfig(zlib) -#BuildRequires: pkgconfig(oniguruma) -#BuildRequires: pkgconfig(glslang) -# Not in Fedora -#BuildRequires: pkgconfig(spirv-cross) -#BuildRequires: pkgconfig(simdutf) -#BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: zig Requires: %{name}-terminfo = %{version}-%{release} Requires: %{name}-shell-integration = %{version}-%{release} Requires: fontconfig @@ -39,6 +29,8 @@ Requires: pixman Requires: zlib-ng Suggests: libadwaita Conflicts: ghostty +Conflicts: ghostty-glfw +Conflicts: ghostty-glfw-nightly Provides: ghostty-tip = %{version}-%{release} Packager: ShinyGil @@ -47,43 +39,43 @@ Packager: ShinyGil %package bash-completion Summary: Ghostty Bash completion -Requires: %{name} Requires: bash-completion Supplements: (%{name} and bash-completion) +Supplements: (ghostty-glfw-nightly and bash-completion) %description bash-completion %summary. %package fish-completion Summary: Ghostty Fish completion -Requires: %{name} Requires: fish Supplements: (%{name} and fish) +Supplements: (ghostty-glfw-nightly and fish) %description fish-completion %summary. %package zsh-completion Summary: Ghostty Zsh completion -Requires: %{name} Requires: zsh Supplements: (%{name} and zsh) +Supplements: (ghostty-glfw-nightly and zsh) %description zsh-completion %summary. %package shell-integration Summary: Ghostty shell integration -Requires: %{name} Supplements: %{name} +Supplements: ghostty-glfw-nightly %description shell-integration %summary. %package terminfo Summary: Ghostty terminfo -Requires: %{name} Supplements: %{name} +Supplements: ghostty-glfw-nightly %description terminfo %summary. @@ -124,6 +116,7 @@ zig build \ %_iconsdir/hicolor/256x256/apps/com.mitchellh.ghostty.png %_iconsdir/hicolor/256x256@2/apps/com.mitchellh.ghostty.png %_iconsdir/hicolor/512x512/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/1024x1024/apps/com.mitchellh.ghostty.png %_mandir/man1/ghostty.1.gz %_mandir/man5/ghostty.5.gz diff --git a/anda/devs/ghostty/nightly/pkgconfig-libadwaita-1.diff b/anda/devs/ghostty/nightly/pkgconfig-libadwaita-1.diff deleted file mode 100644 index 7eee8764cd..0000000000 --- a/anda/devs/ghostty/nightly/pkgconfig-libadwaita-1.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/build.zig b/build.zig -index 0969c64..68e16cd 100644 ---- a/build.zig -+++ b/build.zig -@@ -1374,7 +1374,7 @@ fn addDeps( - - .gtk => { - step.linkSystemLibrary2("gtk4", dynamic_link_opts); -- if (config.adwaita) step.linkSystemLibrary2("adwaita-1", dynamic_link_opts); -+ if (config.adwaita) step.linkSystemLibrary2("libadwaita-1", dynamic_link_opts); - - { - const gresource = @import("src/apprt/gtk/gresource.zig"); diff --git a/anda/devs/ghostty/nightly/use-pkg-config.diff b/anda/devs/ghostty/nightly/use-pkg-config.diff deleted file mode 100644 index 564ac94279..0000000000 --- a/anda/devs/ghostty/nightly/use-pkg-config.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/build.zig b/build.zig -index a0ecf25..0969c64 100644 ---- a/build.zig -+++ b/build.zig -@@ -1047,6 +1047,7 @@ fn addDeps( - const dynamic_link_opts: std.Build.Module.LinkSystemLibraryOptions = .{ - .preferred_link_mode = .dynamic, - .search_strategy = .mode_first, -+ .use_pkg_config = .force, - }; - - // Freetype diff --git a/anda/devs/ghostty/stable-glfw/anda.hcl b/anda/devs/ghostty/stable-glfw/anda.hcl new file mode 100644 index 0000000000..5edcd9833e --- /dev/null +++ b/anda/devs/ghostty/stable-glfw/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "ghostty-glfw.spec" + } +} diff --git a/anda/devs/ghostty/stable-glfw/ghostty-glfw.spec b/anda/devs/ghostty/stable-glfw/ghostty-glfw.spec new file mode 100644 index 0000000000..30331ed289 --- /dev/null +++ b/anda/devs/ghostty/stable-glfw/ghostty-glfw.spec @@ -0,0 +1,82 @@ +Name: ghostty-glfw +Version: 1.0.0 +Release: 1%{?dist} +Summary: A fast, native terminal emulator written in Zig; this version uses the GLFW rendering library. +License: MIT +URL: https://ghostty.org/ +Source0: https://release.files.ghostty.org/%{version}/ghostty-source.tar.gz +Patch0: no-strip.diff +BuildRequires: glfw-devel +BuildRequires: ncurses +BuildRequires: ncurses-devel +BuildRequires: pandoc-cli +BuildRequires: zig +Requires: ghostty-terminfo = %{version}-%{release} +Requires: ghostty-shell-integration = %{version}-%{release} +Requires: fontconfig +Requires: freetype +Requires: glib2 +Requires: glfw +Requires: harfbuzz +Requires: libpng +Requires: oniguruma +Requires: pixman +Requires: zlib-ng +Conflicts: ghostty +Conflicts: ghostty-nightly +Conflicts: ghostty-glfw-nightly +Packager: ShinyGil + +%description +👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. + +Please note GLFW builds are intended for developer use, they may be buggy and lack features. Use at your own risk. + +%prep +%autosetup -n ghostty-source -p1 + +%build + +%install +zig build \ + --summary all \ + -Doptimize=ReleaseFast --release=fast \ + --prefix %{buildroot}%{_prefix} --verbose \ + -Dpie=true \ + -Dapp-runtime=glfw \ + -Demit-docs +rm -rf %{buildroot}%{bash_completions_dir}/ghostty.bash \ + %{buildroot}%{fish_completions_dir}/ghostty.fish \ + %{buildroot}%{zsh_completions_dir}/_ghostty \ + %{buildroot}%{_datadir}/ghostty/shell-integration \ + %{buildroot}%{_datadir}/terminfo/* + +%files +%doc README.md +%license LICENSE +%_bindir/ghostty +%_datadir/applications/com.mitchellh.ghostty.desktop +%_datadir/bat/syntaxes/ghostty.sublime-syntax +%_datadir/ghostty/ +%_datadir/kio/servicemenus/com.mitchellh.ghostty.desktop +%_datadir/nvim/site/ftdetect/ghostty.vim +%_datadir/nvim/site/ftplugin/ghostty.vim +%_datadir/nvim/site/syntax/ghostty.vim +%_datadir/vim/vimfiles/ftdetect/ghostty.vim +%_datadir/vim/vimfiles/ftplugin/ghostty.vim +%_datadir/vim/vimfiles/syntax/ghostty.vim +%_iconsdir/hicolor/16x16/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/16x16@2/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/32x32/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/32x32@2/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/128x128/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/128x128@2/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/256x256/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/256x256@2/apps/com.mitchellh.ghostty.png +%_iconsdir/hicolor/512x512/apps/com.mitchellh.ghostty.png +%_mandir/man1/ghostty.1.gz +%_mandir/man5/ghostty.5.gz + +%changelog +* Sun Dec 29 2024 ShinyGil +- Initial package diff --git a/anda/devs/ghostty/stable-glfw/no-strip.diff b/anda/devs/ghostty/stable-glfw/no-strip.diff new file mode 100644 index 0000000000..c9d9e3ae08 --- /dev/null +++ b/anda/devs/ghostty/stable-glfw/no-strip.diff @@ -0,0 +1,17 @@ +diff --git a/build.zig b/build.zig +index c3f7302..a0ecf25 100644 +--- a/build.zig ++++ b/build.zig +@@ -295,11 +295,7 @@ pub fn build(b: *std.Build) !void { + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, +- .strip = switch (optimize) { +- .Debug => false, +- .ReleaseSafe => false, +- .ReleaseFast, .ReleaseSmall => true, +- }, ++ .strip = false, + }) else null; + + // Exe diff --git a/anda/devs/ghostty/stable-glfw/update.rhai b/anda/devs/ghostty/stable-glfw/update.rhai new file mode 100644 index 0000000000..a3b9cedfae --- /dev/null +++ b/anda/devs/ghostty/stable-glfw/update.rhai @@ -0,0 +1 @@ +rpm.version(gh_tag("ghostty-org/ghostty")); diff --git a/anda/devs/ghostty/stable/ghostty.spec b/anda/devs/ghostty/stable/ghostty.spec index fa60c9a073..896b0cb0b9 100644 --- a/anda/devs/ghostty/stable/ghostty.spec +++ b/anda/devs/ghostty/stable/ghostty.spec @@ -1,27 +1,17 @@ Name: ghostty Version: 1.0.0 -Release: 1%?dist -Summary: A fast, native terminal emulator written in Zig +Release: 1%{?dist} +Summary: A fast, native terminal emulator written in Zig. License: MIT URL: https://ghostty.org/ Source0: https://release.files.ghostty.org/%{version}/ghostty-source.tar.gz -#Patch0: pkgconfig-libadwaita-1.diff -#Patch1: use-pkg-config.diff -Patch2: no-strip.diff -BuildRequires: zig -BuildRequires: gtk4-devel libadwaita-devel +Patch0: no-strip.diff +BuildRequires: gtk4-devel +BuildRequires: libadwaita-devel +BuildRequires: ncurses +BuildRequires: ncurses-devel BuildRequires: pandoc-cli -#BuildRequires: pkg-config -#BuildRequires: pkgconfig(harfbuzz) -#BuildRequires: pkgconfig(fontconfig) -#BuildRequires: pkgconfig(libpng) -#BuildRequires: pkgconfig(zlib) -#BuildRequires: pkgconfig(oniguruma) -#BuildRequires: pkgconfig(glslang) -# Not in Fedora -#BuildRequires: pkgconfig(spirv-cross) -#BuildRequires: pkgconfig(simdutf) -#BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: zig Requires: %{name}-terminfo = %{version}-%{release} Requires: %{name}-shell-integration = %{version}-%{release} Requires: fontconfig @@ -35,6 +25,8 @@ Requires: pixman Requires: zlib-ng Suggests: libadwaita Conflicts: ghostty-nightly +Conflicts: ghostty-glfw +Conflicts: ghostty-glfw-nightly Packager: ShinyGil %description @@ -42,43 +34,43 @@ Packager: ShinyGil %package bash-completion Summary: Ghostty Bash completion -Requires: %{name} Requires: bash-completion Supplements: (%{name} and bash-completion) +Supplements: (%{name}-glfw and bash-completion) %description bash-completion %summary. %package fish-completion Summary: Ghostty Fish completion -Requires: %{name} Requires: fish Supplements: (%{name} and fish) +Supplements: (%{name}-glfw and fish) %description fish-completion %summary. %package zsh-completion Summary: Ghostty Zsh completion -Requires: %{name} Requires: zsh Supplements: (%{name} and zsh) +Supplements: (%{name}-glfw and zsh) %description zsh-completion %summary. %package shell-integration Summary: Ghostty shell integration -Requires: %{name} Supplements: %{name} +Supplements: %{name}-glfw %description shell-integration %summary. %package terminfo Summary: Ghostty terminfo -Requires: %{name} Supplements: %{name} +Supplements: %{name}-glfw %description terminfo %summary. diff --git a/anda/devs/ghostty/stable/pkgconfig-libadwaita-1.diff b/anda/devs/ghostty/stable/pkgconfig-libadwaita-1.diff deleted file mode 100644 index 7eee8764cd..0000000000 --- a/anda/devs/ghostty/stable/pkgconfig-libadwaita-1.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/build.zig b/build.zig -index 0969c64..68e16cd 100644 ---- a/build.zig -+++ b/build.zig -@@ -1374,7 +1374,7 @@ fn addDeps( - - .gtk => { - step.linkSystemLibrary2("gtk4", dynamic_link_opts); -- if (config.adwaita) step.linkSystemLibrary2("adwaita-1", dynamic_link_opts); -+ if (config.adwaita) step.linkSystemLibrary2("libadwaita-1", dynamic_link_opts); - - { - const gresource = @import("src/apprt/gtk/gresource.zig"); diff --git a/anda/devs/ghostty/stable/use-pkg-config.diff b/anda/devs/ghostty/stable/use-pkg-config.diff deleted file mode 100644 index 564ac94279..0000000000 --- a/anda/devs/ghostty/stable/use-pkg-config.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/build.zig b/build.zig -index a0ecf25..0969c64 100644 ---- a/build.zig -+++ b/build.zig -@@ -1047,6 +1047,7 @@ fn addDeps( - const dynamic_link_opts: std.Build.Module.LinkSystemLibraryOptions = .{ - .preferred_link_mode = .dynamic, - .search_strategy = .mode_first, -+ .use_pkg_config = .force, - }; - - // Freetype