Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37751201
en ru br
ALT Linux repos
S:0.30.0-alt1

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

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin