Skip to content

Commit

Permalink
Add: GLFW Builds of Ghostty, Changes to Main Specs For Compatibility (#…
Browse files Browse the repository at this point in the history
…2788) (#2799)

* 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 d990cae)

Co-authored-by: Gil <rockgrub@protonmail.com>
  • Loading branch information
raboneko and ShinyGil authored Dec 31, 2024
1 parent e17ff0f commit 67e6b1e
Show file tree
Hide file tree
Showing 14 changed files with 255 additions and 97 deletions.
8 changes: 8 additions & 0 deletions anda/devs/ghostty/nightly-glfw/anda.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
project pkg {
rpm {
spec = "ghostty-glfw-nightly.spec"
}
labels {
nightly = 1
}
}
88 changes: 88 additions & 0 deletions anda/devs/ghostty/nightly-glfw/ghostty-glfw-nightly.spec
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions anda/devs/ghostty/nightly-glfw/no-strip.diff
Original file line number Diff line number Diff line change
@@ -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
5 changes: 5 additions & 0 deletions anda/devs/ghostty/nightly-glfw/update.rhai
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rpm.global("commit", gh_commit("ghostty-org/ghostty"));
if rpm.changed() {
rpm.release();
rpm.global("commit_date", date());
}
41 changes: 17 additions & 24 deletions anda/devs/ghostty/nightly/ghostty-nightly.spec
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,19 @@
%global commit_date 20241231

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
Expand All @@ -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>

Expand All @@ -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.
Expand Down Expand Up @@ -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

Expand Down
13 changes: 0 additions & 13 deletions anda/devs/ghostty/nightly/pkgconfig-libadwaita-1.diff

This file was deleted.

12 changes: 0 additions & 12 deletions anda/devs/ghostty/nightly/use-pkg-config.diff

This file was deleted.

5 changes: 5 additions & 0 deletions anda/devs/ghostty/stable-glfw/anda.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
project pkg {
rpm {
spec = "ghostty-glfw.spec"
}
}
82 changes: 82 additions & 0 deletions anda/devs/ghostty/stable-glfw/ghostty-glfw.spec
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions anda/devs/ghostty/stable-glfw/no-strip.diff
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions anda/devs/ghostty/stable-glfw/update.rhai
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rpm.version(gh_tag("ghostty-org/ghostty"));
Loading

0 comments on commit 67e6b1e

Please sign in to comment.