From: classabbyamp <classabbyamp@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] kitty: update to 0.28.1, adopt.
Date: Wed, 14 Jun 2023 08:23:07 +0200 [thread overview]
Message-ID: <20230614062307.MXS5cQNQa_TY5qCtvrimzjpI-FLCx6AYE4PPdTQldGA@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-44338@inbox.vuxu.org>
[-- Attachment #1: Type: text/plain, Size: 629 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/classabbyamp/void-packages update/kitty
https://github.com/void-linux/void-packages/pull/44338
kitty: update to 0.28.1, adopt.
add subpackages for components that can be used in remote/headless envs
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
closes #43270 (supercedes)
@emacsomancer can I adopt this from you?
A patch file from https://github.com/void-linux/void-packages/pull/44338.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-update/kitty-44338.patch --]
[-- Type: text/x-diff, Size: 9589 bytes --]
From 8e76c50d6acb8508c061088f4afb5356e241293e Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Fri, 9 Jun 2023 13:39:30 -0400
Subject: [PATCH] kitty: update to 0.28.1, adopt.
add subpackages for components that can be used in remote/headless envs
---
srcpkgs/kitty-kitten | 1 +
srcpkgs/kitty-shell-integration | 1 +
srcpkgs/kitty/patches/cross.patch | 128 ++++++++++++++++++++++++++++++
srcpkgs/kitty/template | 51 +++++++++---
4 files changed, 171 insertions(+), 10 deletions(-)
create mode 120000 srcpkgs/kitty-kitten
create mode 120000 srcpkgs/kitty-shell-integration
create mode 100644 srcpkgs/kitty/patches/cross.patch
diff --git a/srcpkgs/kitty-kitten b/srcpkgs/kitty-kitten
new file mode 120000
index 000000000000..659fb6b426aa
--- /dev/null
+++ b/srcpkgs/kitty-kitten
@@ -0,0 +1 @@
+kitty
\ No newline at end of file
diff --git a/srcpkgs/kitty-shell-integration b/srcpkgs/kitty-shell-integration
new file mode 120000
index 000000000000..659fb6b426aa
--- /dev/null
+++ b/srcpkgs/kitty-shell-integration
@@ -0,0 +1 @@
+kitty
\ No newline at end of file
diff --git a/srcpkgs/kitty/patches/cross.patch b/srcpkgs/kitty/patches/cross.patch
new file mode 100644
index 000000000000..b718adb3e6d3
--- /dev/null
+++ b/srcpkgs/kitty/patches/cross.patch
@@ -0,0 +1,128 @@
+From 88a5086f71f44e09539cae9af0cf62697df01f45 Mon Sep 17 00:00:00 2001
+From: Kovid Goyal <kovid@kovidgoyal.net>
+Date: Tue, 13 Jun 2023 07:56:16 +0530
+Subject: [PATCH] Add rudimentary support for cross-compilation
+
+Not really tested, actual cross compilers, feel free to send patches.
+Fixes #6354
+---
+
+diff --git a/setup.py b/setup.py
+index 1d3c76f0f7..2b1ba6fde9 100755
+--- a/setup.py
++++ b/setup.py
+@@ -62,6 +62,8 @@ class Options(argparse.Namespace):
+ sanitize: bool = False
+ prefix: str = './linux-package'
+ dir_for_static_binaries: str = 'build/static'
++ skip_code_generation: bool = False
++ clean_for_cross_compile: bool = False
+ incremental: bool = True
+ profile: bool = False
+ libdir_name: str = 'lib'
+@@ -841,16 +843,17 @@ def extract_rst_targets() -> Dict[str, Dict[str, str]]:
+ return cast(Dict[str, Dict[str, str]], m['main']())
+
+
+-def build_ref_map() -> str:
+- d = extract_rst_targets()
+- h = 'static const char docs_ref_map[] = {\n' + textwrap.fill(', '.join(map(str, bytearray(json.dumps(d).encode('utf-8'))))) + '\n};\n'
++def build_ref_map(skip_generation: bool = False) -> str:
+ dest = 'kitty/docs_ref_map_generated.h'
+- q = ''
+- with suppress(FileNotFoundError), open(dest) as f:
+- q = f.read()
+- if q != h:
+- with open(dest, 'w') as f:
+- f.write(h)
++ if not skip_generation:
++ d = extract_rst_targets()
++ h = 'static const char docs_ref_map[] = {\n' + textwrap.fill(', '.join(map(str, bytearray(json.dumps(d).encode('utf-8'))))) + '\n};\n'
++ q = ''
++ with suppress(FileNotFoundError), open(dest) as f:
++ q = f.read()
++ if q != h:
++ with open(dest, 'w') as f:
++ f.write(h)
+ return dest
+
+
+@@ -868,7 +871,7 @@ def build(args: Options, native_optimizations: bool = True, call_init: bool = Tr
+ if call_init:
+ init_env_from_args(args, native_optimizations)
+ sources, headers = find_c_files()
+- headers.append(build_ref_map())
++ headers.append(build_ref_map(args.skip_code_generation))
+ compile_c_extension(
+ kitty_env(), 'kitty/fast_data_types', args.compilation_database, sources, headers
+ )
+@@ -881,6 +884,9 @@ def safe_makedirs(path: str) -> None:
+
+
+ def update_go_generated_files(args: Options, kitty_exe: str) -> None:
++ if args.skip_code_generation:
++ print('Skipping generation of Go files due to command line option', flush=True)
++ return
+ # update all the various auto-generated go files, if needed
+ if args.verbose:
+ print('Updating Go generated files...', flush=True)
+@@ -1493,7 +1499,7 @@ def clean_launcher_dir(launcher_dir: str) -> None:
+ os.remove(x)
+
+
+-def clean() -> None:
++def clean(for_cross_compile: bool = False) -> None:
+
+ def safe_remove(*entries: str) -> None:
+ for x in entries:
+@@ -1506,7 +1512,9 @@ def safe_remove(*entries: str) -> None:
+ safe_remove(
+ 'build', 'compile_commands.json', 'link_commands.json',
+ 'linux-package', 'kitty.app', 'asan-launcher',
+- 'kitty-profile', 'docs/generated')
++ 'kitty-profile')
++ if not for_cross_compile:
++ safe_remove('docs/generated')
+ clean_launcher_dir('kitty/launcher')
+
+ def excluded(root: str, d: str) -> bool:
+@@ -1521,7 +1529,9 @@ def excluded(root: str, d: str) -> bool:
+ dirs.remove(d)
+ for f in files:
+ ext = f.rpartition('.')[-1]
+- if ext in ('so', 'dylib', 'pyc', 'pyo') or f.endswith('_generated.h') or f.endswith('_generated.go') or f.endswith('_generated.bin'):
++ if ext in ('so', 'dylib', 'pyc', 'pyo') or (not for_cross_compile and (
++ f.endswith('_generated.h') or f.endswith('_generated.go') or f.endswith('_generated.bin'))
++ ):
+ os.unlink(os.path.join(root, f))
+ for x in glob.glob('glfw/wayland-*-protocol.[ch]'):
+ os.unlink(x)
+@@ -1581,6 +1591,19 @@ def option_parser() -> argparse.ArgumentParser: # {{{
+ default=Options.dir_for_static_binaries,
+ help='Where to create the static kitten binary'
+ )
++ p.add_argument(
++ '--skip-code-generation',
++ default=Options.skip_code_generation,
++ action='store_true',
++ help='Do not create the *_generated.* source files. This is useful if they'
++ ' have already been generated by a previous build, for example during a two-stage cross compilation.'
++ )
++ p.add_argument(
++ '--clean-for-cross-compile',
++ default=Options.clean_for_cross_compile,
++ action='store_true',
++ help='Do not clean generated Go source files. Useful for cross-compilation.'
++ )
+ p.add_argument(
+ '--full',
+ dest='incremental',
+@@ -1743,7 +1766,7 @@ def main() -> None:
+ texe = os.path.abspath(os.path.join(launcher_dir, 'kitty'))
+ os.execl(texe, texe, '+launch', 'test.py')
+ if args.action == 'clean':
+- clean()
++ clean(for_cross_compile=args.clean_for_cross_compile)
+ return
+
+ with CompilationDatabase(args.incremental) as cdb:
diff --git a/srcpkgs/kitty/template b/srcpkgs/kitty/template
index 90eb7261085c..6ec5e8af4a50 100644
--- a/srcpkgs/kitty/template
+++ b/srcpkgs/kitty/template
@@ -1,20 +1,26 @@
# Template file for 'kitty'
pkgname=kitty
-version=0.26.5
-revision=2
+version=0.28.1
+revision=1
+build_helper="python3"
pycompile_dirs="usr/lib/kitty"
-hostmakedepends="pkg-config python3 wayland-devel wayland-protocols"
+hostmakedepends="go pkg-config python3 wayland-devel wayland-protocols"
makedepends="gettext-devel glfw-devel harfbuzz-devel libxkbcommon-devel
- python3-devel wayland-devel wayland-protocols librsync-devel libcanberra-devel openssl-devel"
-depends="kitty-terminfo-${version}_${revision}"
+ python3-devel wayland-devel wayland-protocols librsync-devel libcanberra-devel
+ openssl-devel dbus-devel libXcursor-devel libXrandr-devel libXi-devel
+ fontconfig-devel libxcb-devel lcms2-devel"
+depends="kitty-terminfo-${version}_${revision} kitty-shell-integration-${version}_${revision}
+ kitty-kitten-${version}_${revision}"
short_desc="Modern, hackable, featureful, OpenGL based terminal emulator"
-maintainer="Benjamin Slade <slade@jnanam.net>"
-license="GPL-3.0-or-later"
+maintainer="classabbyamp <void@placeviolette.net>"
+license="GPL-3.0-only"
homepage="https://sw.kovidgoyal.net/kitty/"
changelog="https://sw.kovidgoyal.net/kitty/changelog.html"
distfiles="https://github.com/kovidgoyal/kitty/releases/download/v${version}/kitty-${version}.tar.xz"
-checksum=5544a580314fec7711187ce28162909b5ecff6780071444fe96fb97f8be5c9ad
+checksum=c11c545ca56adf1c26cfd8f5b4a3ba5f149f00542fbf0fa2c4439bd9bf6f78a5
python_version=3
+nopie_files="/usr/bin/kitten"
+
LDFLAGS+=" -Wl,-z,stack-size=2097152"
# TIOCSWINSZ on ppc overflows signed int, used in ioctl()
@@ -23,11 +29,22 @@ case "$XBPS_TARGET_MACHINE" in
ppc*-musl) CFLAGS+=" -Wno-error=overflow";;
esac
+if [ "$CROSS_BUILD" ]; then
+ # cursed but this build system is a hot mess
+ hostmakedepends+=" $makedepends"
+fi
+
do_build() {
+ local _cross_args
if [ "$CROSS_BUILD" ]; then
- CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc}"
+ # hot mess, continued
+ env CC="cc" CFLAGS="$XBPS_CFLAGS" LDFLAGS="$XBPS_LDFLAGS" python3 setup.py build \
+ --prefix="${DESTDIR}/usr" --update-check-interval=0 --verbose
+ python3 setup.py clean --clean-for-cross-compile
+ _cross_args=(--skip-code-generation)
fi
- python3 setup.py linux-package --prefix=${DESTDIR}/usr --update-check-interval=0 --verbose
+ . /void-packages/common/environment/build-style/go.sh
+ python3 setup.py linux-package --prefix="${DESTDIR}/usr" --update-check-interval=0 --verbose "${_cross_args[@]}"
}
do_install() {
@@ -40,3 +57,17 @@ kitty-terminfo_package() {
vmove usr/share/terminfo
}
}
+
+kitty-shell-integration_package() {
+ short_desc+=" - shell integration scripts"
+ pkg_install() {
+ vmove usr/lib/kitty/shell-integration
+ }
+}
+
+kitty-kitten_package() {
+ short_desc+=" - kitten client"
+ pkg_install() {
+ vmove usr/bin/kitten
+ }
+}
next prev parent reply other threads:[~2023-06-14 6:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-09 21:28 [PR PATCH] " classabbyamp
2023-06-10 2:23 ` [PR PATCH] [Updated] " classabbyamp
2023-06-13 4:14 ` classabbyamp
2023-06-13 4:31 ` classabbyamp
2023-06-14 6:20 ` classabbyamp
2023-06-14 6:23 ` classabbyamp [this message]
2023-06-14 6:50 ` [PR PATCH] [Merged]: " classabbyamp
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230614062307.MXS5cQNQa_TY5qCtvrimzjpI-FLCx6AYE4PPdTQldGA@z \
--to=classabbyamp@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).