Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[f39] Add: Ghostty and Ghostty Tip (#2760) #2783

Merged
merged 1 commit into from
Dec 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions anda/devs/ghostty/nightly/anda.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
project pkg {
rpm {
spec = "ghostty-nightly.spec"
}
labels {
nightly = 1
}
}
155 changes: 155 additions & 0 deletions anda/devs/ghostty/nightly/ghostty-nightly.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
%global commit 5293fc9c2f19b7e01472de8c2ef08bef603b754a
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%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
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
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)
Requires: %{name}-terminfo = %{version}-%{release}
Requires: %{name}-shell-integration = %{version}-%{release}
Requires: fontconfig
Requires: freetype
Requires: glib2
Requires: gtk4
Requires: harfbuzz
Requires: libpng
Requires: oniguruma
Requires: pixman
Requires: zlib-ng
Suggests: libadwaita
Conflicts: ghostty
Provides: ghostty-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.

%package bash-completion
Summary: Ghostty Bash completion
Requires: %{name}
Requires: bash-completion
Supplements: (%{name} and bash-completion)

%description bash-completion
%summary.

%package fish-completion
Summary: Ghostty Fish completion
Requires: %{name}
Requires: fish
Supplements: (%{name} and fish)

%description fish-completion
%summary.

%package zsh-completion
Summary: Ghostty Zsh completion
Requires: %{name}
Requires: zsh
Supplements: (%{name} and zsh)

%description zsh-completion
%summary.

%package shell-integration
Summary: Ghostty shell integration
Requires: %{name}
Supplements: %{name}

%description shell-integration
%summary.

%package terminfo
Summary: Ghostty terminfo
Requires: %{name}
Supplements: %{name}

%description terminfo
%summary.

%prep
%autosetup -n ghostty-%{commit} -p1

%build

%install
zig build \
--summary all \
-Doptimize=ReleaseFast --release=fast \
--prefix %{buildroot}%{_prefix} --verbose \
-Dpie=true \
-Demit-docs

%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

%files bash-completion
%bash_completions_dir/ghostty.bash

%files fish-completion
%fish_completions_dir/ghostty.fish

%files zsh-completion
%zsh_completions_dir/_ghostty

%files shell-integration
%_datadir/ghostty/shell-integration/bash/bash-preexec.sh
%_datadir/ghostty/shell-integration/bash/ghostty.bash
%_datadir/ghostty/shell-integration/elvish/lib/ghostty-integration.elv
%_datadir/ghostty/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish
%_datadir/ghostty/shell-integration/zsh/.zshenv
%_datadir/ghostty/shell-integration/zsh/ghostty-integration

%files terminfo
%_datadir/terminfo/ghostty.termcap
%_datadir/terminfo/ghostty.terminfo
%_datadir/terminfo/g/ghostty
%_datadir/terminfo/x/xterm-ghostty

%changelog
* Thu Dec 26 2024 ShinyGil <rockgrub@protonmail.com>
- Initial package
17 changes: 17 additions & 0 deletions anda/devs/ghostty/nightly/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
13 changes: 13 additions & 0 deletions anda/devs/ghostty/nightly/pkgconfig-libadwaita-1.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
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");
5 changes: 5 additions & 0 deletions anda/devs/ghostty/nightly/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());
}
12 changes: 12 additions & 0 deletions anda/devs/ghostty/nightly/use-pkg-config.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
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 changes: 5 additions & 0 deletions anda/devs/ghostty/stable/anda.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
project pkg {
rpm {
spec = "ghostty.spec"
}
}
150 changes: 150 additions & 0 deletions anda/devs/ghostty/stable/ghostty.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
Name: ghostty
Version: 1.0.0
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
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)
Requires: %{name}-terminfo = %{version}-%{release}
Requires: %{name}-shell-integration = %{version}-%{release}
Requires: fontconfig
Requires: freetype
Requires: glib2
Requires: gtk4
Requires: harfbuzz
Requires: libpng
Requires: oniguruma
Requires: pixman
Requires: zlib-ng
Suggests: libadwaita
Conflicts: ghostty-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.

%package bash-completion
Summary: Ghostty Bash completion
Requires: %{name}
Requires: bash-completion
Supplements: (%{name} and bash-completion)

%description bash-completion
%summary.

%package fish-completion
Summary: Ghostty Fish completion
Requires: %{name}
Requires: fish
Supplements: (%{name} and fish)

%description fish-completion
%summary.

%package zsh-completion
Summary: Ghostty Zsh completion
Requires: %{name}
Requires: zsh
Supplements: (%{name} and zsh)

%description zsh-completion
%summary.

%package shell-integration
Summary: Ghostty shell integration
Requires: %{name}
Supplements: %{name}

%description shell-integration
%summary.

%package terminfo
Summary: Ghostty terminfo
Requires: %{name}
Supplements: %{name}

%description terminfo
%summary.

%prep
%autosetup -n ghostty-source -p1

%build

%install
zig build \
--summary all \
-Doptimize=ReleaseFast --release=fast \
--prefix %{buildroot}%{_prefix} --verbose \
-Dpie=true \
-Demit-docs

%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

%files bash-completion
%bash_completions_dir/ghostty.bash

%files fish-completion
%fish_completions_dir/ghostty.fish

%files zsh-completion
%zsh_completions_dir/_ghostty

%files shell-integration
%_datadir/ghostty/shell-integration/bash/bash-preexec.sh
%_datadir/ghostty/shell-integration/bash/ghostty.bash
%_datadir/ghostty/shell-integration/elvish/lib/ghostty-integration.elv
%_datadir/ghostty/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish
%_datadir/ghostty/shell-integration/zsh/.zshenv
%_datadir/ghostty/shell-integration/zsh/ghostty-integration

%files terminfo
%_datadir/terminfo/ghostty.termcap
%_datadir/terminfo/ghostty.terminfo
%_datadir/terminfo/g/ghostty
%_datadir/terminfo/x/xterm-ghostty

%changelog
* Thu Dec 26 2024 ShinyGil <rockgrub@protonmail.com>
- Initial package
17 changes: 17 additions & 0 deletions anda/devs/ghostty/stable/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
Loading
Loading