Group :: Terminals
RPM: kitty
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
%define _unpackaged_files_terminate_build 1
%def_with check
Name: kitty
Version: 0.29.1
Release: alt1
Summary: Cross-platform, fast, feature-rich, GPU based terminal
License: GPL-3.0
Group: Terminals
VCS: https://github.com/kovidgoyal/kitty
Url: https://sw.kovidgoyal.net/kitty/
Requires: %name-terminfo = %EVR
Requires: %name-shell-integration = %EVR
Source: %name-%version.tar
Patch0: %name-%version-alt.patch
# 0.27.0: unmet /usr/pkg/bin/tic
%add_findreq_skiplist %_libexecdir/%name/shell-integration/ssh/bootstrap-utils.sh
# play sound
Requires: libcanberra
# panel kitten
Requires: libstartup-notification
# icat kitten
Requires: ImageMagick-tools
BuildRequires(pre): rpm-build-python3
BuildRequires(pre): rpm-build-golang
BuildRequires: libXi-devel
BuildRequires: libXrandr-devel
BuildRequires: libXcursor-devel
BuildRequires: libXinerama-devel
BuildRequires: libxkbcommon-x11-devel
BuildRequires: wayland-protocols
BuildRequires: libwayland-client-devel
BuildRequires: libwayland-cursor-devel
BuildRequires: libGL-devel
BuildRequires: libpng-devel
BuildRequires: libssl-devel
BuildRequires: libdbus-devel
BuildRequires: librsync-devel
BuildRequires: liblcms2-devel
BuildRequires: fontconfig-devel
BuildRequires: libharfbuzz-devel
BuildRequires: python3-dev
BuildRequires: python3-module-sphinx-copybutton
BuildRequires: python3-module-sphinx-inline-tabs
BuildRequires: python3-module-sphinxext-opengraph
BuildRequires: python3-module-sphinx-sphinx-build-symlink
# tic for xterm-kitty terminfo
BuildRequires: ncurses
# + install -Dm644 /dev/stdin .../usr/share/bash-completion/completions/kitty
BuildRequires: /proc
%if_with check
BuildRequires: /dev/pts
BuildRequires: fonts-ttf-gnu-freefont-mono
%endif
%add_python3_path %_libexecdir/kitty
%description
- Offloads rendering to the GPU for lower system load and buttery
smooth scrolling. Uses threaded rendering to minimize input latency.
- Supports all modern terminal features: graphics (images), unicode,
true-color, OpenType ligatures, mouse protocol, hyperlinks, focus
tracking, bracketed paste and several new terminal protocol
extensions.
- Supports tiling multiple terminal windows side by side in different
layouts without needing to use an extra program like tmux
- Can be controlled from scripts or the shell prompt, even over SSH.
- Has a framework for Kittens, small terminal programs that can be
used to extend kitty's functionality. For example, they are used for
Unicode input, Hints and Side-by-side diff.
- Supports startup sessions which allow you to specify the window/tab
layout, working directories and programs to run on startup.
- Cross-platform: kitty works on Linux and macOS, but because it uses
only OpenGL for rendering, it should be trivial to port to other
Unix-like platforms.
- Allows you to open the scrollback buffer in a separate window using
arbitrary programs of your choice. This is useful for browsing the
history comfortably in a pager or editor.
- Has multiple copy/paste buffers, like vim.
%package terminfo
Summary: The terminfo file for kitty
Group: System/Configuration/Other
BuildArch: noarch
%description terminfo
%summary.
The terminfo file for kitty
%package shell-integration
Summary: Shell-integration files for kitty
Group: System/Configuration/Other
BuildArch: noarch
%description shell-integration
%summary.
Shell-integration files for kitty
%prep
%setup
%patch0 -p1
# Changing shebangs to python3
find -type f -name "*.py" -exec sed -e 's|/usr/bin/env python3|%__python3|g' \
-e 's|/usr/bin/env python|%__python3|g' \
-i "{}" \;
# Match _FORTIFY_SOURCE with gcc's default to fix
# error "_FORTIFY_SOURCE" redefined
sed -i -e "s/-D_FORTIFY_SOURCE=2/-D_FORTIFY_SOURCE=3/" setup.py
%build
%add_optflags -Wno-switch
export CFLAGS="${CFLAGS:-%optflags}"
export CGO_ENABLED=0
python3 setup.py linux-package \
--verbose \
--update-check-interval=0 \
%nil
%install
mkdir -pv %buildroot
cp -r ./linux-package %buildroot%_prefix
%buildroot%_bindir/kitten __complete__ setup bash | \
install -Dm644 /dev/stdin %buildroot%_datadir/bash-completion/completions/kitty
%buildroot%_bindir/kitten __complete__ setup zsh | \
install -Dm644 /dev/stdin %buildroot%_datadir/zsh/site-functions/_kitty
%buildroot%_bindir/kitten __complete__ setup fish | \
install -Dm644 /dev/stdin %buildroot%_datadir/fish/vendor_completions.d/kitty.fish
%check
%ifarch ppc64le
# test_elliptic_curve_data_exchange fails on ppc64le due to 64k memlock limit in the
# chroot environmet which is not enough for 64k pagesize system
rm kitty_tests/crypto.py
%endif
PYTHONPATH="$PWD" linux-package/bin/kitty +launch ./test.py
%files
%_bindir/kitty
%_bindir/kitten
%_libexecdir/kitty/
%exclude %_libexecdir/kitty/shell-integration
%_desktopdir/*.desktop
%_iconsdir/hicolor/*/apps/*
%_man1dir/*
%_man5dir/*
%_datadir/bash-completion/completions/kitty
%_datadir/zsh/site-functions/_kitty
%_datadir/fish/vendor_completions.d/kitty.fish
%files terminfo
%_datadir/terminfo/*/*
%files shell-integration
%_libexecdir/kitty/shell-integration
%changelog
…
Full changelog you can see here
%def_with check
Name: kitty
Version: 0.29.1
Release: alt1
Summary: Cross-platform, fast, feature-rich, GPU based terminal
License: GPL-3.0
Group: Terminals
VCS: https://github.com/kovidgoyal/kitty
Url: https://sw.kovidgoyal.net/kitty/
Requires: %name-terminfo = %EVR
Requires: %name-shell-integration = %EVR
Source: %name-%version.tar
Patch0: %name-%version-alt.patch
# 0.27.0: unmet /usr/pkg/bin/tic
%add_findreq_skiplist %_libexecdir/%name/shell-integration/ssh/bootstrap-utils.sh
# play sound
Requires: libcanberra
# panel kitten
Requires: libstartup-notification
# icat kitten
Requires: ImageMagick-tools
BuildRequires(pre): rpm-build-python3
BuildRequires(pre): rpm-build-golang
BuildRequires: libXi-devel
BuildRequires: libXrandr-devel
BuildRequires: libXcursor-devel
BuildRequires: libXinerama-devel
BuildRequires: libxkbcommon-x11-devel
BuildRequires: wayland-protocols
BuildRequires: libwayland-client-devel
BuildRequires: libwayland-cursor-devel
BuildRequires: libGL-devel
BuildRequires: libpng-devel
BuildRequires: libssl-devel
BuildRequires: libdbus-devel
BuildRequires: librsync-devel
BuildRequires: liblcms2-devel
BuildRequires: fontconfig-devel
BuildRequires: libharfbuzz-devel
BuildRequires: python3-dev
BuildRequires: python3-module-sphinx-copybutton
BuildRequires: python3-module-sphinx-inline-tabs
BuildRequires: python3-module-sphinxext-opengraph
BuildRequires: python3-module-sphinx-sphinx-build-symlink
# tic for xterm-kitty terminfo
BuildRequires: ncurses
# + install -Dm644 /dev/stdin .../usr/share/bash-completion/completions/kitty
BuildRequires: /proc
%if_with check
BuildRequires: /dev/pts
BuildRequires: fonts-ttf-gnu-freefont-mono
%endif
%add_python3_path %_libexecdir/kitty
%description
- Offloads rendering to the GPU for lower system load and buttery
smooth scrolling. Uses threaded rendering to minimize input latency.
- Supports all modern terminal features: graphics (images), unicode,
true-color, OpenType ligatures, mouse protocol, hyperlinks, focus
tracking, bracketed paste and several new terminal protocol
extensions.
- Supports tiling multiple terminal windows side by side in different
layouts without needing to use an extra program like tmux
- Can be controlled from scripts or the shell prompt, even over SSH.
- Has a framework for Kittens, small terminal programs that can be
used to extend kitty's functionality. For example, they are used for
Unicode input, Hints and Side-by-side diff.
- Supports startup sessions which allow you to specify the window/tab
layout, working directories and programs to run on startup.
- Cross-platform: kitty works on Linux and macOS, but because it uses
only OpenGL for rendering, it should be trivial to port to other
Unix-like platforms.
- Allows you to open the scrollback buffer in a separate window using
arbitrary programs of your choice. This is useful for browsing the
history comfortably in a pager or editor.
- Has multiple copy/paste buffers, like vim.
%package terminfo
Summary: The terminfo file for kitty
Group: System/Configuration/Other
BuildArch: noarch
%description terminfo
%summary.
The terminfo file for kitty
%package shell-integration
Summary: Shell-integration files for kitty
Group: System/Configuration/Other
BuildArch: noarch
%description shell-integration
%summary.
Shell-integration files for kitty
%prep
%setup
%patch0 -p1
# Changing shebangs to python3
find -type f -name "*.py" -exec sed -e 's|/usr/bin/env python3|%__python3|g' \
-e 's|/usr/bin/env python|%__python3|g' \
-i "{}" \;
# Match _FORTIFY_SOURCE with gcc's default to fix
# error "_FORTIFY_SOURCE" redefined
sed -i -e "s/-D_FORTIFY_SOURCE=2/-D_FORTIFY_SOURCE=3/" setup.py
%build
%add_optflags -Wno-switch
export CFLAGS="${CFLAGS:-%optflags}"
export CGO_ENABLED=0
python3 setup.py linux-package \
--verbose \
--update-check-interval=0 \
%nil
%install
mkdir -pv %buildroot
cp -r ./linux-package %buildroot%_prefix
%buildroot%_bindir/kitten __complete__ setup bash | \
install -Dm644 /dev/stdin %buildroot%_datadir/bash-completion/completions/kitty
%buildroot%_bindir/kitten __complete__ setup zsh | \
install -Dm644 /dev/stdin %buildroot%_datadir/zsh/site-functions/_kitty
%buildroot%_bindir/kitten __complete__ setup fish | \
install -Dm644 /dev/stdin %buildroot%_datadir/fish/vendor_completions.d/kitty.fish
%check
%ifarch ppc64le
# test_elliptic_curve_data_exchange fails on ppc64le due to 64k memlock limit in the
# chroot environmet which is not enough for 64k pagesize system
rm kitty_tests/crypto.py
%endif
PYTHONPATH="$PWD" linux-package/bin/kitty +launch ./test.py
%files
%_bindir/kitty
%_bindir/kitten
%_libexecdir/kitty/
%exclude %_libexecdir/kitty/shell-integration
%_desktopdir/*.desktop
%_iconsdir/hicolor/*/apps/*
%_man1dir/*
%_man5dir/*
%_datadir/bash-completion/completions/kitty
%_datadir/zsh/site-functions/_kitty
%_datadir/fish/vendor_completions.d/kitty.fish
%files terminfo
%_datadir/terminfo/*/*
%files shell-integration
%_libexecdir/kitty/shell-integration
%changelog
…
Full changelog you can see here