Add: GLFW Builds of Ghostty, Changes to Main Specs For Compatibility (#2788) (#2798)

* Add: GLFW builds of Ghostty, edit existing builds for shared deps, add build deps to be explicitly called (just in case), some cleanup

* Add: Add warning about GLFW builds possibly being unstable

* Fix: Removed duplicate text (thanks mouse)

* Update ghostty-nightly.spec

Signed-off-by: Gil <rockgrub@protonmail.com>

* Cleanup: Removed unused build deps, removed unused patches (for now?)

* Fix: New icon size in Tip GTK (will need to be done in stable in 1.0.1), minor changes to summaries

* Resolve: Date conflict

---------

Signed-off-by: Gil <rockgrub@protonmail.com>
(cherry picked from commit d990cae780)

Co-authored-by: Gil <rockgrub@protonmail.com>
This commit is contained in:
Raboneko
2024-12-31 08:41:57 -08:00
committed by GitHub
parent d79cb2a76d
commit 40d741746e
14 changed files with 255 additions and 97 deletions
+8
View File
@@ -0,0 +1,8 @@
project pkg {
rpm {
spec = "ghostty-glfw-nightly.spec"
}
labels {
nightly = 1
}
}
@@ -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 <rockgrub@protonmail.com>
%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 <rockgrub@protonmail.com>
- Initial package
@@ -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
@@ -0,0 +1,5 @@
rpm.global("commit", gh_commit("ghostty-org/ghostty"));
if rpm.changed() {
rpm.release();
rpm.global("commit_date", date());
}
+17 -24
View File
@@ -3,29 +3,19 @@
%global commit_date 20241230
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 <rockgrub@protonmail.com>
@@ -47,43 +39,43 @@ Packager: ShinyGil <rockgrub@protonmail.com>
%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
@@ -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");
@@ -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
+5
View File
@@ -0,0 +1,5 @@
project pkg {
rpm {
spec = "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 <rockgrub@protonmail.com>
%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 <rockgrub@protonmail.com>
- Initial package
@@ -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
@@ -0,0 +1 @@
rpm.version(gh_tag("ghostty-org/ghostty"));
+15 -23
View File
@@ -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 <rockgrub@protonmail.com>
%description
@@ -42,43 +34,43 @@ Packager: ShinyGil <rockgrub@protonmail.com>
%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.
@@ -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");
@@ -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