[packages/kitty: 1/2] Create from Fedora package, version 0.27.1

glen glen at pld-linux.org
Wed Feb 22 15:57:47 CET 2023


commit 5a9822dc8bf13c92ead8d821631ca8f101165852
Author: Elan Ruusamäe <glen at pld-linux.org>
Date:   Wed Feb 22 16:52:14 2023 +0200

    Create from Fedora package, version 0.27.1
    
    Fedora package commit: 2c6db34

 README.md         |   3 +
 kitty.appdata.xml |  51 ++++++++++++
 kitty.fish        |   8 ++
 kitty.sh          |   7 ++
 kitty.spec        | 229 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 298 insertions(+)
---
diff --git a/kitty.spec b/kitty.spec
new file mode 100644
index 0000000..bfc5cfd
--- /dev/null
+++ b/kitty.spec
@@ -0,0 +1,229 @@
+#
+# Conditional build:
+%bcond_without	tests		# build without tests
+%bcond_without	docs		# build without docs
+
+Summary:	Cross-platform, fast, feature full, GPU based terminal emulator
+Name:		kitty
+Version:	0.27.1
+Release:	0.1
+# BSD:          docs/_templates/searchbox.html
+# zlib:         glfw/
+License:	GPLv3 and zlib and BSD
+URL:		https://sw.kovidgoyal.net/kitty
+Source0:	https://github.com/kovidgoyal/kitty/releases/download/v%{version}/%{name}-%{version}.tar.xz
+# Source0-md5:	3e24876ca288589dfab398de81b02614
+# Add AppData manifest file
+# * https://github.com/kovidgoyal/kitty/pull/2088
+Source1:	https://raw.githubusercontent.com/kovidgoyal/kitty/46c0951751444e4f4994008f0d2dcb41e49389f4/kitty/data/%{name}.appdata.xml
+# Source1-md5:	702c51cea58e8b0fb8fd67da9da3802a
+Source2:	%{name}.sh
+Source3:	%{name}.fish
+BuildRequires:	appstream-glib
+BuildRequires:	dbus-devel
+BuildRequires:	desktop-file-utils
+BuildRequires:	fontconfig-devel
+BuildRequires:	gcc
+BuildRequires:	gnupg2
+BuildRequires:	harfbuzz-devel >= 2.2
+BuildRequires:	lcms2-devel
+BuildRequires:	libcanberra-devel
+BuildRequires:	libglvnd-libGL-devel
+BuildRequires:	libpng-devel
+BuildRequires:	librsync-devel
+BuildRequires:	ncurses
+BuildRequires:	openssl-devel
+BuildRequires:	python3-devel >= 1:3.8
+BuildRequires:	python3dist(setuptools)
+BuildRequires:	rpm-build >= 4.6
+BuildRequires:	wayland-devel
+BuildRequires:	wayland-protocols
+BuildRequires:	xorg-lib-libXcursor-devel
+BuildRequires:	xorg-lib-libXi-devel
+BuildRequires:	xorg-lib-libXinerama-devel
+BuildRequires:	xorg-lib-libXrandr-devel
+BuildRequires:	xorg-lib-libxkbcommon-x11-devel
+BuildRequires:	zlib-devel
+%if %{with docs}
+BuildRequires:	python3dist(sphinx)
+BuildRequires:	python3dist(sphinx-copybutton)
+BuildRequires:	python3dist(sphinx-inline-tabs)
+# Missing in pld
+#BuildRequires:	python3dist(sphinxext-opengraph)
+%endif
+%if %{with tests}
+BuildRequires:	/usr/bin/getent
+BuildRequires:	/usr/bin/ssh
+%endif
+Requires:	hicolor-icon-theme
+Requires:	python3
+Suggests:	%{name}-bash-integration
+Suggests:	%{name}-fish-integration
+# Terminfo file has been split from the main program and is required for use
+# without errors. It has been separated to support SSH into remote machines using
+# kitty as per the maintainers suggestion. Install the terminfo file on the remote
+# machine.
+Requires:	%{name}-terminfo = %{version}-%{release}
+# Very weak dependencies, these are required to enable all features of kitty's
+# "kittens" functions install separately
+Recommends:	python3-pygments
+Suggests:	ImageMagick
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define	specflags	-Wno-array-bounds
+
+%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, 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 bash-integration
+Summary:	Automatic Bash integration for Kitty Terminal
+BuildArch:	noarch
+
+%description bash-integration
+Cross-platform, fast, feature full, GPU based terminal emulator.
+
+Bash integration for Kitty Terminal.
+
+%package fish-integration
+Summary:	Automatic Fish integration for Kitty Terminal
+BuildArch:	noarch
+
+%description fish-integration
+Cross-platform, fast, feature full, GPU based terminal emulator.
+
+Fish integration for Kitty Terminal.
+
+%package terminfo
+Summary:	The terminfo file for Kitty Terminal
+Requires:	ncurses
+BuildArch:	noarch
+
+%description    terminfo
+Cross-platform, fast, feature full, GPU based terminal emulator.
+
+The terminfo file for Kitty Terminal.
+
+%package doc
+Summary:	Documentation for %{name}
+
+%description doc
+This package contains the documentation for %{name}.
+
+%prep
+%autosetup -p1
+
+# Changing sphinx theme to classic
+sed "s/html_theme = 'furo'/html_theme = 'classic'/" -i docs/conf.py
+
+find -type f -name "*.py" | xargs sed -i \
+	-e 's|%{_bindir}/env python3|%{__python3}|g' \
+	-e 's|%{_bindir}/env python|%{__python3}|g' \
+	-e 's|%{_bindir}/env -S kitty|%{_bindir}/kitty|g' \
+	%{nil}
+
+# non-executable-script
+sed -e "s/f.endswith('\.so')/f.endswith('\.so') or f.endswith('\.py')/g" -i setup.py
+
+# script-without-shebang '__init__.py'
+find -type f -name "*.py*" | xargs chmod a-x
+
+%install
+rm -rf $RPM_BUILD_ROOT
+%set_build_flags
+export CC="%{__cc}"
+export CXX="%{__cxx}"
+%{__python3} setup.py linux-package \
+    --libdir-name=%{_lib} \
+    --prefix=$RPM_BUILD_ROOT%{_prefix} \
+    --update-check-interval=0 \
+    --verbose \
+    --debug \
+    --shell-integration "disabled" \
+    %{nil}
+
+install -Dp %{SOURCE1} $RPM_BUILD_ROOT%{_metainfodir}/%{name}.appdata.xml
+
+install -Dp %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/%{name}.sh
+install -Dp %{SOURCE3} $RPM_BUILD_ROOT%{fish_compdir}/%{name}.fish
+
+sed 's|KITTY_INSTALLATION_DIR=.*|KITTY_INSTALLATION_DIR="%{_libdir}/%{name}"|' \
+ -i $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/%{name}.sh
+sed 's|set -l KITTY_INSTALLATION_DIR .*|set -l KITTY_INSTALLATION_DIR "%{_libdir}/%{name}"|' \
+ -i $RPM_BUILD_ROOT%{fish_compdir}/%{name}.fish
+
+# script-without-shebang '__init__.py'
+find $RPM_BUILD_ROOT -type f -name "*.py*" ! -name askpass.py | xargs chmod a-x
+
+%if %{with doc}
+# rpmlint fixes
+rm $RPM_BUILD_ROOT%{_docdir}/%{name}/html/.buildinfo \
+	$RPM_BUILD_ROOT%{_docdir}/%{name}/html/.nojekyll
+%endif
+
+%if %{with tests}
+# Some tests ignores PATH env...
+install -d kitty/launcher
+ln -s $RPM_BUILD_ROOT%{_bindir}/%{name} kitty/launcher
+export PATH=$RPM_BUILD_ROOT%{_bindir}:$PATH
+%{__python3} setup.py test          \
+    --prefix=$RPM_BUILD_ROOT%{_prefix}
+%endif
+
+appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.xml
+desktop-file-validate $RPM_BUILD_ROOT%{_desktopdir}/*.desktop
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc LICENSE
+%attr(755,root,root) %{_bindir}/%{name}
+%{_desktopdir}/*.desktop
+%{_iconsdir}/hicolor/*/*/*.{png,svg}
+%{_libdir}/%{name}/
+%if %{with doc}
+%{_mandir}/man{1,5}/*.{1,5}*
+%endif
+%{_metainfodir}/*.xml
+
+%files bash-integration
+%defattr(644,root,root,755)
+/etc/profile.d/%{name}.sh
+
+%files fish-integration
+%defattr(644,root,root,755)
+%{fish_compdir}/%{name}.fish
+
+%files terminfo
+%defattr(644,root,root,755)
+%doc LICENSE
+%{_datadir}/terminfo/x/xterm-%{name}
+
+%if %{with doc}
+%files doc
+%defattr(644,root,root,755)
+%doc LICENSE
+%doc CONTRIBUTING.md CHANGELOG.rst INSTALL.md
+%{_docdir}/%{name}/html
+%dir %{_docdir}/%{name}
+%endif
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..0044d15
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+# kitty
+
+The kitty package
\ No newline at end of file
diff --git a/kitty.appdata.xml b/kitty.appdata.xml
new file mode 100644
index 0000000..c273aea
--- /dev/null
+++ b/kitty.appdata.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2019 Artem Polishchuk <ego.cordatus at gmail.com> -->
+<component type="desktop">
+  <id>kitty</id>
+  <metadata_license>CC0</metadata_license>
+  <project_license>GPL-3.0-or-later</project_license>
+  <name>kitty</name>
+  <summary>Cross-platform, fast, feature full, GPU based terminal emulator</summary>
+  <description>
+    <p>- 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, 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.</p>
+  </description>
+  <provides>
+    <binary>kitty</binary>
+  </provides>
+  <screenshots>
+    <screenshot type="default">
+      <image>https://sw.kovidgoyal.net/kitty/_images/screenshot.png</image>
+    </screenshot>
+  </screenshots>
+  <developer_name>Kovid Goyal</developer_name>
+  <url type="homepage">https://sw.kovidgoyal.net/kitty</url>
+  <url type="bugtracker">https://github.com/kovidgoyal/kitty/issues</url>
+  <url type="donation">https://sw.kovidgoyal.net/kitty/support.html</url>
+</component>
diff --git a/kitty.fish b/kitty.fish
new file mode 100644
index 0000000..4d7da78
--- /dev/null
+++ b/kitty.fish
@@ -0,0 +1,8 @@
+set -l KITTY_INSTALLATION_DIR "/usr/lib/kitty"
+if test -n "$KITTY_PID"
+    if test -f "$KITTY_INSTALLATION_DIR"/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish
+        set --global KITTY_SHELL_INTEGRATION enabled
+        source "$KITTY_INSTALLATION_DIR/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish"
+        set --prepend fish_complete_path "$KITTY_INSTALLATION_DIR/shell-integration/fish/vendor_completions.d"
+    end
+end
diff --git a/kitty.sh b/kitty.sh
new file mode 100644
index 0000000..fe4b396
--- /dev/null
+++ b/kitty.sh
@@ -0,0 +1,7 @@
+KITTY_INSTALLATION_DIR="/usr/lib/kitty"
+if [[ -n "${BASH_VERSION}" && -n "${KITTY_PID}" ]]; then
+    if [[ -f "$KITTY_INSTALLATION_DIR"/shell-integration/bash/kitty.bash ]]; then
+        export KITTY_SHELL_INTEGRATION="enabled"
+        source "$KITTY_INSTALLATION_DIR"/shell-integration/bash/kitty.bash
+    fi
+fi
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kitty.git/commitdiff/ae545fb2edec3bc476ef14d92e7dd2c4b31e9021



More information about the pld-cvs-commit mailing list