kitty/kitty.spec

196 lines
6.1 KiB
RPMSpec
Raw Normal View History

#
# spec file for package kitty
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# sphinx_copybutton not in Factory
%bcond_with docs
Name: kitty
Version: 0.29.2
Release: 0
Summary: A GPU-based terminal emulator
License: GPL-3.0-only
Group: System/X11/Terminals
URL: https://github.com/kovidgoyal/kitty
Accepting request 596758 from home:avindra:branches:X11:terminals - Update to 0.9.0 * A new kitty command shell to allow controlling kitty via commands. Press ctrl+shift+escape to run the shell. * The hints kitten has become much more powerful. Now in addition to URLs you can use it to select word, paths, filenames, lines, etc. from the screen. These can be inserted into the terminal, copied to clipboard or sent to external programs. * Switch to libxkbcommon for keyboard handling. It allows kitty to support XCompose and dead keys and also react to keyboard remapping/layout change without needing a restart. * Add support for multiple-key-sequence shortcuts * A new remote control command set-colors to change the current and/or configured colors. * When double-clicking to select a word, select words that continue onto the next/prev line as well. * Add an include directive for the config files to read multiple config files * Improve mouse selection for windows with padding. Moving the mouse into the padding area now acts as if the mouse is over the nearest cell. * Allow setting all 256 terminal colors in the config file * Fix using kitty --single-instance to open a new window in a running kitty instance, not respecting the --directory flag * URL hints: Exclude trailing punctuation from URLs * URL hints: Launch the browser from the kitty parent process rather than the hints kitten. Fixes launching on some systems where xdg-open doesn't like being run from a kitten. * Allow using rectangle select mode by pressing shift in addition to the rectangle select modifiers even when the terminal program has grabbed the mouse. OBS-URL: https://build.opensuse.org/request/show/596758 OBS-URL: https://build.opensuse.org/package/show/X11:terminals/kitty?expand=0&rev=3
2018-04-16 11:53:19 +02:00
Source: https://github.com/kovidgoyal/kitty/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1: vendor.tar.gz
Source2: kitty-rpmlintrc
# PATCH-FIX-OPENSUSE optional-disable-docs.diff -- Optionally disable building documentation files
Patch0: optional-disable-docs.diff
# PATCH-FIX-OPENSUSE fix-librsync-leap.diff -- Fix for Leap, as librsync header is missing the stdio.h header for FILE*
Patch1: fix-librsync-leap.diff
Patch2: go-buildmode-pie.diff
BuildRequires: ImageMagick-devel
BuildRequires: Mesa-libGL-devel
BuildRequires: fdupes
BuildRequires: fontconfig-devel
BuildRequires: freetype2-devel
BuildRequires: go >= 1.20
BuildRequires: harfbuzz-devel >= 1.5.0
BuildRequires: libXcursor-devel
BuildRequires: libXi-devel
BuildRequires: libXinerama-devel
BuildRequires: libXrandr-devel
BuildRequires: libcanberra-devel
BuildRequires: liblcms2-devel
BuildRequires: libpng16-compat-devel
- Update to 0.24.1: * Shell integration: Work around conflicts with some zsh plugins (#4428) * Have the zero width space and various other characters from the Other, formatting Unicode category be treated as combining characters (#4439) * Fix using --shell-integration with setup.py broken (#4434) * Fix showing debug information not working if kitty’s STDIN is not a tty (#4424) * Linux: Fix a regression that broke rendering of emoji with variation selectors (#4444) - Update to 0.24.0: * Integrate kitty closely with common shells such as zsh, fish and bash. This allows lots of niceties such as jumping to previous prompts, opening the output of the last command in a new window, etc. See Shell integration for details. Packagers please read Notes for Linux/macOS packagers. * A new shortcut ctrl+shift+f7 to visually focus a window using the keyboard. Pressing it causes numbers to appear over each visible window and you can press the number to focus the corresponding window (#4110) * A new facility window_logo_path to draw an arbitrary PNG image as logo in the corner of a kitty window (#4167) * Allow rendering the cursor with a reverse video effect. See cursor for details (#126) * Allow rendering the mouse selection with a reverse video effect. See selection_foreground (#646) * A new option tab_bar_align to draw the tab bar centered or right aligned (#3946) * Allow the user to supply a custom Python function to draw tab bar. See tab_bar_style OBS-URL: https://build.opensuse.org/package/show/X11:terminals/kitty?expand=0&rev=92
2022-01-07 14:58:24 +01:00
BuildRequires: librsync-devel
#BuildRequires: libwayland-egl-devel
BuildRequires: libxkbcommon-devel
BuildRequires: libxkbcommon-x11-devel
- Update to 0.26.0: * A new option remote_control_password to use fine grained permissions for what can be remote controlled (#5320) * Reduce startup latency by ~30 milliseconds when running kittens via key bindings inside kitty (#5159) * A new option modify_font to adjust various font metrics like underlines, cell sizes etc. (#5265) * A new shortcut ctrl+shift+f1 to display the kitty docs in a browser * Graphics protocol: Only delete temp files if they have the string tty-graphics-protocol in their file paths. This prevents deletion of arbitrary files in /tmp. * Deprecate the adjust_baseline, adjust_line_height and adjust_column_width options in favor of modify_font * Wayland: Fix a regression in the previous release that caused mouse cursor animation and keyboard repeat to stop working when switching seats (#5188) * Allow resizing windows created in session files (#5196) * Fix horizontal wheel events not being reported to client programs when they grab the mouse (#2819) * kitty @ set-colors: Fix changing inactive_tab_foreground not working (#5214) * Add a mappable action to toggle the mirrored setting for the tall and fat layouts (#5344) * Add a mappable action to switch between predefined bias values for the tall and fat layouts (#5352) * Wayland: Reduce flicker at startup by not using render frames immediately after a resize (#5235) * Linux: Update cursor position after all key presses not just pre-edit text changes (#5241) * ssh kitten: Allow ssh kitten to work from inside tmux, provided the tmux session inherits the correct KITTY env vars (#5227) * ssh kitten: A new option --symlink-strategy to control how symlinks are copied to the remote machine (#5249) OBS-URL: https://build.opensuse.org/package/show/X11:terminals/kitty?expand=0&rev=104
2022-08-29 09:41:47 +02:00
BuildRequires: openssl-devel
# for 'tic'
BuildRequires: ncurses-devel
BuildRequires: pkgconfig
BuildRequires: terminfo
BuildRequires: wayland-devel
BuildRequires: wayland-protocols-devel
BuildRequires: zlib-devel
BuildRequires: pkgconfig(dbus-1)
# Python requirements for Factory and Leap
%if 0%{?suse_version} > 1500
BuildRequires: python3-devel >= 3.7
BuildRequires: python3-sphinxext-opengraph
%else
# Leap still provides python3.6 kitty requires at least 3.7
%if 0%{?sle_version} > 150400
BuildRequires: python311-devel
%else
%if 0%{?sle_version} > 150300
BuildRequires: python310-devel
%else
BuildRequires: python39-devel
%endif
%endif
%endif
# Optional documentation requirements
%if %{with docs}
BuildRequires: python3-Sphinx >= 1.7
BuildRequires: python3-importlib-resources
BuildRequires: python3-readthedocs-sphinx-ext
BuildRequires: python3-sphinx-inline-tabs
BuildRequires: python3-sphinxcontrib-copybutton
%endif
Recommends: %{name}-shell-integration
Recommends: %{name}-terminfo
Recommends: python3-importlib_resources
%description
A terminal emulator that uses OpenGL for rendering.
Supports terminal features like: graphics, Unicode,
true-color, OpenType ligatures, mouse protocol, focus tracking,
bracketed paste and so on, and which can be controlled by scripts.
%package terminfo
Summary: The terminfo file for the Kitty terminal
BuildArch: noarch
%description terminfo
Provides 'xterm-kitty' terminfo file(s) for the Kitty terminal; this package can be installed on its own to provide file(s) instead of the full kitty package on remote systems.
%package shell-integration
Summary: The shell-integation file(s) for the Kitty terminal
%description shell-integration
shell-integration [bash,fish,zsh] file(s) for the Kitty terminal; this package can be installed on its own to provide file(s) instead of the full kitty package on remote systems.
%prep
#%%autosetup -p1 -a 1
%setup -a 1
Accepting request 1097987 from home:sbradnick:branches:X11:terminals - Update to 0.29.0 * Removing wayland-protocols-1.32.diff as it's no longer required * A new escape code <ESC>[22J that moves the current contents of the screen into the scrollback before clearing it * A new kitten run-shell to allow creating sub-shells with shell integration enabled * A new option background_blur to blur the background for transparent windows (#6135) * The --hold flag now holds the window open at a shell prompt instead of asking the user to press a key * A new option text_fg_override_threshold to force text colors to have high contrast regardless of color scheme (#6283) * When resizing OS Windows make the animation less jerky. Also show the window size in cells during the resize (#6341) * unicode_input kitten: Fix a regression in 0.28.0 that caused the order of recent and favorites entries to not be respected (#6214) * unicode_input kitten: Fix a regression in 0.28.0 that caused editing of favorites to sometimes hang * clipboard kitten: Fix a bug causing the last MIME type available on the clipboard not being recognized when pasting * clipboard kitten: Dont set clipboard when getting clipboard in filter mode (#6302) * Fix regression in 0.28.0 causing color fringing when rendering in transparent windows on light backgrounds (#6209) * show_key kitten: In kitty mode show the actual bytes sent by the terminal rather than a re-encoding of the parsed key event * hints kitten: Fix a regression in 0.28.0 that broke using sub-groups in regexp captures (#6228) * hints kitten: Fix a regression in 0.28.0 that broke using lookahead/lookbehind in regexp captures (#6265) OBS-URL: https://build.opensuse.org/request/show/1097987 OBS-URL: https://build.opensuse.org/package/show/X11:terminals/kitty?expand=0&rev=122
2023-07-10 17:28:32 +02:00
%patch0
%patch1 -p1
%patch2
%if 0%{?suse_version} > 1500
find . -type f -exec sed -i 's@#!/usr/bin/env python3$@#!%{_bindir}/python3@' {} +
find . -type f -exec sed -i 's@#!/usr/bin/env python$@#!%{_bindir}/python@' {} +
%else
%if 0%{?sle_version} > 150400
find . -type f -exec sed -i 's@#!/usr/bin/env python3$@#!%{_bindir}/python3.11@' {} +
find . -type f -exec sed -i 's@#!/usr/bin/env python$@#!%{_bindir}/python3.11@' {} +
%else
%if 0%{?sle_version} > 150300
find . -type f -exec sed -i 's@#!/usr/bin/env python3$@#!%{_bindir}/python3.10@' {} +
find . -type f -exec sed -i 's@#!/usr/bin/env python$@#!%{_bindir}/python3.10@' {} +
%else
find . -type f -exec sed -i 's@#!/usr/bin/env python3$@#!%{_bindir}/python3.9@' {} +
find . -type f -exec sed -i 's@#!/usr/bin/env python$@#!%{_bindir}/python3.9@' {} +
%endif
%endif
%endif
%build
%install
# yes they have a makefile, no they dont use it properly
# no they dont have a make install
# we used to have this in the build section but since rpm 4.16 buildroot is cleaned
#
# See: https://build.opensuse.org/request/show/1096854
# Set -Wno-error=switch flag to prevent compiler crashes
#export CFLAGS="${CFLAGS:-%%optflags} -Wno-error=switch"
#export CXXFLAGS="${CXXFLAGS:-%%optflags} -Wno-error=switch"
#
%if 0%{?suse_version} > 1500
python3 \
%else
%if 0%{?sle_version} > 150400
python3.11 -B \
%else
%if 0%{?sle_version} > 150300
python3.10 -B \
%else
python3.9 -B \
%endif
%endif
%endif
setup.py --verbose \
%if !%{with docs}
--no-docs \
%endif
linux-package \
--prefix %{buildroot}%{_prefix} \
--libdir-name %{_lib}
%fdupes %{buildroot}%{_libdir}/%{name}
- Update to 0.14.0: * Support for an arbitrary number of internal clipboard buffers to copy/paste from, see (Multiple copy/paste buffers) * Allow using the new private internal clipboard buffers with the copy_on_select option (#1390) * Add an option disable_ligatures to disable multi-character ligatures under the cursor to make editing easier or disable them completely (#461) * Allow creating new OS windows in session files (#1514) * Allow setting OS window size in session files * Add an option tab_switch_strategy to control which tab becomes active when the current tab is closed (#1524) * Allow specifying a value of none for the selection_foreground which will cause kitty to not change text color in selections (#1358) * Make live resizing of OS windows smoother and add an option resize_draw_strategy to control what is drawn while a resize is in progress. * When a window is closed, switch focus to the previously active window (if any) instead of picking the previous window in the layout (#1450) * icat kitten: Add support for displaying images at http(s) URLs (#1340) * A new option strip_trailing_spaces to optionally remove trailing spaces from lines when copying to clipboard. * A new option tab_bar_min_tabs to control how many tabs must be present before the tab-bar is shown (#1382) * Automatically check for new releases and notify when an update is available, via the system notification facilities. Can be controlled by update_check_interval (#1342) * Fix using remote control to set cursor text color causing errors when creating new windows (#1326) * Fix window title for minimized windows not being updated (#1332) * Fix scrollback pager history not being cleared when clearing the main scrollback buffer (#1387) * Wayland: Use the kitty Wayland backend by default. Can be switched back to using XWayland by setting the environment variable: KITTY_DISABLE_WAYLAND=1 * Add a no-append setting to clipboard_control to disable the kitty copy concatenation protocol extension for OSC 52. * Update to using the Unicode 12 standard * Unicode input kitten: Allow using the arrow keys in code mode to go to next and previous unicode symbol. * Fix a regression in version 0.13.0 that caused background colors of space characters after private use unicode characters to not be respected (#1455) * Only update the selected text to clipboard when the selection is finished, not continuously as it is updated. (#1460) * Allow setting active_border_color to none to not draw a border around the active window (#805) * Use negative values for mouse_hide_wait to hide the mouse cursor immediately when pressing a key (#1534) * When encountering errors in kitty.conf report them to the user instead of failing to start. * Allow the user to control the resize debounce time via resize_debounce_time. * Remote control: Make the kitty @ set-font-size command more capable. It can now increment font size and reset it. It also only acts on the active top-level window, by default (#1581) * When launching child processes set the PWD environment variable (#1595) * X11: use the window manager's native full-screen implementation when making windows full-screen (#1605) OBS-URL: https://build.opensuse.org/package/show/X11:terminals/kitty?expand=0&rev=22
2019-05-24 14:41:58 +02:00
%files
%license LICENSE
%doc CHANGELOG.rst README.asciidoc
%{_bindir}/%{name}
%{_bindir}/kitten
%{_libdir}/%{name}
%exclude %{_libdir}/%{name}/shell-integration
%{_datadir}/applications/%{name}{,-open}.desktop
%{_datadir}/icons/hicolor/
%if %{with docs}
%{_mandir}/man1/%{name}.1%{?ext_man}
%{_datadir}/doc/%{name}
%{_mandir}/man5/kitty.conf.5%{?ext_man}
%endif
%files terminfo
%license LICENSE
%doc CHANGELOG.rst README.asciidoc
%{_datadir}/terminfo/x/xterm-%{name}
%files shell-integration
%license LICENSE
%doc CHANGELOG.rst README.asciidoc
%{_libdir}/%{name}/shell-integration
%changelog