Download raw body.
Update Request for kitty Port to Version 0.36.1
Aditya Mukherjee wrote (2024-09-01 20:01 CEST):
> Hello everyone, I am looking to contribute to OpenBSD.
>
> I am currently using OpenBSD 7.5 and I extensively use the kitty terminal.
> However, in the ports tree the package is out of date
> <https://openports.pl/path/x11/kitty>. I would like to help bring this
> package up to date with upstream which is currently v0.36.1
> <https://github.com/kovidgoyal/kitty/releases/tag/v0.36.1>.
>
> I have read the porting FAQ and the porting guide.
>
> According to the porting guide, I should get in touch with the port
> maintainer which according to the makefile, is ports@openbsd.org.
>
> How can I help to bring the port up to the latest version?
>
> Thank you for your time and for maintaining the ports collection.
Based on sthens previous attempt to update kitty to 0.27.1, I updated
the vendor file, adapted the exiting patches and added a pre-build hook
that downloads a missing font, which is required to build.
It starts to build now, and stops at:
In file included from kitty/simd-string-128.c:9:
kitty/simd-string-impl.h:36:10: fatal error: 'simde/x86/avx2.h' file not found
#include <simde/x86/avx2.h>
^~~~~~~~~~~~~~~~~~
1 error generated.
My knowledge stops here. This seems to be the simd implementation from
openmp, which we don't have.
Best regards,
Stefan
Index: x11/kitty/Makefile
===================================================================
RCS file: /cvs/ports/x11/kitty/Makefile,v
diff -u -p -u -p -r1.27 Makefile
--- x11/kitty/Makefile 6 May 2024 12:24:17 -0000 1.27
+++ x11/kitty/Makefile 1 Sep 2024 19:54:32 -0000
@@ -3,15 +3,13 @@ ONLY_FOR_ARCHS = aarch64 amd64 i386
COMMENT = fast, feature full, GPU-based terminal emulator
-# 0.27.1 runs the newly built kitty binary during build, but expects
-# it to be in the path (try PORTPATH=${WRKSRC}/linux-package/bin:${PATH})
-# build also fails if you have an older version of kitty installed -
-# it also wants to download go modules during build
-MODPY_EGG_VERSION = 0.26.5
+MODPY_EGG_VERSION = 0.36.1
DISTNAME = kitty-${MODPY_EGG_VERSION}
+DISTFILES = ${DISTNAME}${EXTRACT_SUFX} \
+ NerdFontsSymbolsOnly.tar.xz \
+ kitty-vendor-${MODPY_EGG_VERSION}.tar.gz
CATEGORIES = x11
HOMEPAGE = https://sw.kovidgoyal.net/kitty/
-REVISION = 1
# GPLv3+
PERMIT_PACKAGE = Yes
@@ -21,7 +19,9 @@ WANTLIB += GL X11 X11-xcb Xcursor Xinera
WANTLIB += fontconfig freetype harfbuzz intl lcms2 m png pthread rsync
WANTLIB += util xcb xkbcommon xkbcommon-x11 z ${MODPY_WANTLIB}
-SITES = https://github.com/kovidgoyal/kitty/releases/download/v${MODPY_EGG_VERSION}/
+SITES = https://github.com/kovidgoyal/kitty/releases/download/v${MODPY_EGG_VERSION}/ \
+ https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/ \
+ https://ptrace.org/
EXTRACT_SUFX = .tar.xz
# C11
@@ -30,6 +30,7 @@ COMPILER = base-clang ports-gcc
CFLAGS += "-DOPENSSL_clear_free=freezero"
MODULES = lang/python
+
MODPY_DISTUTILS_BUILD = linux-package
MODPY_SETUP_ARGS += --verbose \
--ignore-compiler-warnings \
@@ -51,24 +52,46 @@ LIB_DEPENDS = audio/libcanberra \
net/librsync \
x11/dbus \
x11/xkbcommon
+BUILD_DEPENDS = lang/go
TEST_ENV = CI=true \
TMPDIR=${WRKDIR}/tmp \
- KITTY_CACHE_DIRECTORY=${WRKDIR}/tmp/cache
+ KITTY_CACHE_DIRECTORY=${WRKDIR}/tmp/cache \
+ PYTHONPATH=${WRKSRC}
+
+# runs newly-built binary during build
+PORTPATH = ${WRKSRC}/linux-package/bin:${PATH}
+PORTHOME = ${WRKDIR}
-# needed for 'make test'
+# needed for 'make test'; lots of failures though
USE_GMAKE = Yes
pre-test:
mkdir -p ${WRKDIR}/tmp/cache
+ cp ${WRKSRC}/linux-package/bin/kitty ${WRKSRC}/kitty/launcher/
+
+pre-build:
+ mkdir -p $(WRKSRC)/fonts
+ cd $(WRKSRC)/fonts && xz -d -c $(DISTDIR)/NerdFontsSymbolsOnly.tar.xz | tar xvf -
do-install:
${INSTALL_PROGRAM} \
- ${WRKSRC}/linux-package/bin/kitty ${PREFIX}/bin/
+ ${WRKSRC}/linux-package/bin/{kitty,kitten} ${PREFIX}/bin/
${INSTALL_DATA_DIR} ${PREFIX}/lib/kitty
${INSTALL_MAN} ${WRKSRC}/linux-package/man/man1/kitty.1 \
${PREFIX}/man/man1/
@cp -R ${WRKSRC}/linux-package/lib/kitty/* ${PREFIX}/lib/kitty/
@cp -R ${WRKSRC}/linux-package/share/* ${PREFIX}/share/
+
+vendor: patch
+ cd ${WRKSRC}; \
+ ${_PBUILD} chmod -R ug=rwX,o=rX .; \
+ go mod tidy; \
+ go mod vendor; \
+ chmod -R ug=rwX,o=rX vendor; \
+ cd ..; \
+ ${_PBUILD} tar czf kitty-vendor-${MODPY_EGG_VERSION}.tar.gz \
+ kitty-${MODPY_EGG_VERSION}/vendor; \
+ readlink -f kitty-vendor-${MODPY_EGG_VERSION}.tar.gz
.include <bsd.port.mk>
Index: x11/kitty/distinfo
===================================================================
RCS file: /cvs/ports/x11/kitty/distinfo,v
diff -u -p -u -p -r1.9 distinfo
--- x11/kitty/distinfo 13 Mar 2023 12:55:18 -0000 1.9
+++ x11/kitty/distinfo 1 Sep 2024 19:54:32 -0000
@@ -1,2 +1,6 @@
-SHA256 (kitty-0.26.5.tar.xz) = VUSlgDFP7HcRGHzigWKQm17P9ngAcURP6W+5f4vlya0=
-SIZE (kitty-0.26.5.tar.xz) = 4749988
+SHA256 (NerdFontsSymbolsOnly.tar.xz) = t6Pu4k0rCRDzoHcF8eBTIh0lNfB8WhNhTE3q0mIOmXg=
+SHA256 (kitty-0.36.1.tar.xz) = SAgenYwxEKlh3eJwEq45kqRPfvCy/oYpXUWyS9dy2RE=
+SHA256 (kitty-vendor-0.36.1.tar.gz) = mgj5KuF4PKyexfW038v8ys6gW9GGoT9EGI2aI1GmYwA=
+SIZE (NerdFontsSymbolsOnly.tar.xz) = 1752504
+SIZE (kitty-0.36.1.tar.xz) = 8850472
+SIZE (kitty-vendor-0.36.1.tar.gz) = 2920432
Index: x11/kitty/patches/patch-glfw_backend_utils_c
===================================================================
RCS file: /cvs/ports/x11/kitty/patches/patch-glfw_backend_utils_c,v
diff -u -p -u -p -r1.2 patch-glfw_backend_utils_c
--- x11/kitty/patches/patch-glfw_backend_utils_c 11 Mar 2022 20:16:34 -0000 1.2
+++ x11/kitty/patches/patch-glfw_backend_utils_c 1 Sep 2024 19:54:32 -0000
@@ -3,7 +3,7 @@ We don't have posix_fallocate.
Index: glfw/backend_utils.c
--- glfw/backend_utils.c.orig
+++ glfw/backend_utils.c
-@@ -373,7 +373,7 @@ GLFWAPI char* utf_8_strndup(const char* source, size_t
+@@ -372,7 +372,7 @@ GLFWAPI char* utf_8_strndup(const char* source, size_t
* receive SIGBUS on accessing mmap()'ed file contents instead.
*/
int createAnonymousFile(off_t size) {
@@ -12,7 +12,7 @@ Index: glfw/backend_utils.c
#ifdef HAS_MEMFD_CREATE
fd = glfw_memfd_create("glfw-shared", MFD_CLOEXEC | MFD_ALLOW_SEALING);
if (fd < 0) return -1;
-@@ -383,10 +383,6 @@ int createAnonymousFile(off_t size) {
+@@ -382,10 +382,6 @@ int createAnonymousFile(off_t size) {
// There is also no need to check for the return value, we couldn’t do
// anything with it anyway.
fcntl(fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_SEAL);
@@ -23,7 +23,7 @@ Index: glfw/backend_utils.c
#else
static const char template[] = "/glfw-shared-XXXXXX";
const char* path;
-@@ -410,8 +406,7 @@ int createAnonymousFile(off_t size) {
+@@ -409,8 +405,7 @@ int createAnonymousFile(off_t size) {
if (fd < 0)
return -1;
#endif
Index: x11/kitty/patches/patch-setup_py
===================================================================
RCS file: /cvs/ports/x11/kitty/patches/patch-setup_py,v
diff -u -p -u -p -r1.10 patch-setup_py
--- x11/kitty/patches/patch-setup_py 23 Nov 2022 14:45:21 -0000 1.10
+++ x11/kitty/patches/patch-setup_py 1 Sep 2024 19:54:32 -0000
@@ -5,30 +5,24 @@ disable wayland, libcrypto
Index: setup.py
--- setup.py.orig
+++ setup.py
-@@ -355,7 +355,6 @@ def init_env(
+@@ -479,7 +479,6 @@ def init_env(
df += ' -Og'
float_conversion = '-Wfloat-conversion'
fortify_source = '' if sanitize and is_macos else '-D_FORTIFY_SOURCE=2'
- optimize = df if debug or sanitize else '-O3'
- sanitize_args = get_sanitize_args(cc, ccver) if sanitize else set()
+ sanitize_args = get_sanitize_args(cc, ccver) if sanitize else []
cppflags_ = os.environ.get(
'OVERRIDE_CPPFLAGS', '-D{}DEBUG'.format('' if debug else 'N'),
-@@ -369,12 +368,11 @@ def init_env(
- werror = '' if ignore_compiler_warnings else '-pedantic-errors -Werror'
- std = '' if is_openbsd else '-std=c11'
- sanitize_flag = ' '.join(sanitize_args)
-- march = '-march=native' if native_optimizations else ''
+@@ -498,7 +497,7 @@ def init_env(
cflags_ = os.environ.get(
'OVERRIDE_CFLAGS', (
f'-Wextra {float_conversion} -Wno-missing-field-initializers -Wall -Wstrict-prototypes {std}'
- f' {werror} {optimize} {sanitize_flag} -fwrapv {stack_protector} {missing_braces}'
-- f' -pipe {march} -fvisibility=hidden {fortify_source}'
+ f' {werror} {sanitize_flag} -fwrapv {stack_protector} {missing_braces}'
-+ f' -pipe -fvisibility=hidden {fortify_source}'
+ f' -pipe -fvisibility=hidden -fno-plt'
)
)
- cflags = shlex.split(cflags_) + shlex.split(
-@@ -382,7 +380,7 @@ def init_env(
+@@ -507,7 +506,7 @@ def init_env(
)
ldflags_ = os.environ.get(
'OVERRIDE_LDFLAGS',
@@ -37,17 +31,27 @@ Index: setup.py
)
ldflags = shlex.split(ldflags_)
ldflags.append('-shared')
-@@ -761,7 +759,7 @@ def find_c_files() -> Tuple[List[str], List[str]]:
+@@ -581,9 +580,6 @@ def init_env(
+ if control_flow_protection:
+ cflags.append(control_flow_protection)
+- if native_optimizations and ba.isa in (ISA.AMD64, ISA.X86):
+- cflags.extend('-march=native -mtune=native'.split())
+-
+ ans = Env(
+ cc, cppflags, cflags, ldflags, library_paths, binary_arch=ba, native_optimizations=native_optimizations,
+ ccver=ccver, ldpaths=ldpaths, vcs_rev=vcs_rev,
+@@ -963,7 +959,7 @@ def find_c_files() -> Tuple[List[str], List[str]]:
- def compile_glfw(compilation_database: CompilationDatabase) -> None:
+
+ def compile_glfw(compilation_database: CompilationDatabase, build_dsym: bool = False) -> None:
- modules = 'cocoa' if is_macos else 'x11 wayland'
+ modules = 'cocoa' if is_macos else 'x11'
for module in modules.split():
try:
genv = glfw.init_env(env, pkg_config, pkg_version, at_least_version, test_compile, module)
-@@ -892,8 +890,6 @@ def build_launcher(args: Options, launcher_dir: str =
- cflags.append('-g')
+@@ -1276,8 +1272,6 @@ def build_launcher(args: Options, launcher_dir: str =
+ libs += ['-lasan'] if not is_macos and env.compiler_type is not CompilerType.clang else []
if args.profile:
libs.append('-lprofiler')
- else:
@@ -55,7 +59,7 @@ Index: setup.py
if bundle_type.endswith('-freeze'):
cppflags.append('-DFOR_BUNDLE')
cppflags.append(f'-DPYVER="{sysconfig.get_python_version()}"')
-@@ -940,7 +936,7 @@ def build_launcher(args: Options, launcher_dir: str =
+@@ -1340,7 +1334,7 @@ def build_launcher(args: Options, launcher_dir: str =
# Packaging {{{
def copy_man_pages(ddir: str) -> None:
Index: x11/kitty/pkg/PLIST
===================================================================
RCS file: /cvs/ports/x11/kitty/pkg/PLIST,v
diff -u -p -u -p -r1.8 PLIST
--- x11/kitty/pkg/PLIST 8 Nov 2022 15:59:51 -0000 1.8
+++ x11/kitty/pkg/PLIST 1 Sep 2024 19:54:32 -0000
@@ -1,3 +1,4 @@
+@bin bin/kitten
@bin bin/kitty
lib/kitty/
lib/kitty/__main__.py
@@ -231,9 +232,6 @@ ${MODPY_COMMENT}lib/kitty/kittens/ssh/${
lib/kitty/kittens/ssh/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/kitty/kittens/ssh/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
lib/kitty/kittens/ssh/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kittens/ssh/${MODPY_PYCACHE}completion.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/kitty/kittens/ssh/${MODPY_PYCACHE}completion.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
-lib/kitty/kittens/ssh/${MODPY_PYCACHE}completion.${MODPY_PYC_MAGIC_TAG}pyc
lib/kitty/kittens/ssh/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/kitty/kittens/ssh/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
lib/kitty/kittens/ssh/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}pyc
@@ -246,7 +244,6 @@ lib/kitty/kittens/ssh/${MODPY_PYCACHE}ma
lib/kitty/kittens/ssh/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/kitty/kittens/ssh/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
lib/kitty/kittens/ssh/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kittens/ssh/completion.py
lib/kitty/kittens/ssh/config.py
lib/kitty/kittens/ssh/copy.py
lib/kitty/kittens/ssh/main.py
@@ -384,6 +381,9 @@ lib/kitty/kitty/${MODPY_PYCACHE}__init__
lib/kitty/kitty/${MODPY_PYCACHE}actions.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/kitty/kitty/${MODPY_PYCACHE}actions.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
lib/kitty/kitty/${MODPY_PYCACHE}actions.${MODPY_PYC_MAGIC_TAG}pyc
+lib/kitty/kitty/${MODPY_PYCACHE}bash.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/kitty/kitty/${MODPY_PYCACHE}bash.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
+lib/kitty/kitty/${MODPY_PYCACHE}bash.${MODPY_PYC_MAGIC_TAG}pyc
lib/kitty/kitty/${MODPY_PYCACHE}borders.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/kitty/kitty/${MODPY_PYCACHE}borders.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
lib/kitty/kitty/${MODPY_PYCACHE}borders.${MODPY_PYC_MAGIC_TAG}pyc
@@ -408,9 +408,6 @@ lib/kitty/kitty/${MODPY_PYCACHE}client.$
lib/kitty/kitty/${MODPY_PYCACHE}clipboard.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/kitty/kitty/${MODPY_PYCACHE}clipboard.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
lib/kitty/kitty/${MODPY_PYCACHE}clipboard.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kitty/${MODPY_PYCACHE}complete.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/kitty/kitty/${MODPY_PYCACHE}complete.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
-lib/kitty/kitty/${MODPY_PYCACHE}complete.${MODPY_PYC_MAGIC_TAG}pyc
lib/kitty/kitty/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/kitty/kitty/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
lib/kitty/kitty/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}pyc
@@ -474,9 +471,6 @@ lib/kitty/kitty/${MODPY_PYCACHE}search_q
lib/kitty/kitty/${MODPY_PYCACHE}session.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/kitty/kitty/${MODPY_PYCACHE}session.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
lib/kitty/kitty/${MODPY_PYCACHE}session.${MODPY_PYC_MAGIC_TAG}pyc
-lib/kitty/kitty/${MODPY_PYCACHE}shell.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/kitty/kitty/${MODPY_PYCACHE}shell.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
-lib/kitty/kitty/${MODPY_PYCACHE}shell.${MODPY_PYC_MAGIC_TAG}pyc
lib/kitty/kitty/${MODPY_PYCACHE}shell_integration.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/kitty/kitty/${MODPY_PYCACHE}shell_integration.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
lib/kitty/kitty/${MODPY_PYCACHE}shell_integration.${MODPY_PYC_MAGIC_TAG}pyc
@@ -514,6 +508,7 @@ lib/kitty/kitty/${MODPY_PYCACHE}window_l
lib/kitty/kitty/${MODPY_PYCACHE}window_list.${MODPY_PYC_MAGIC_TAG}opt-2.pyc
lib/kitty/kitty/${MODPY_PYCACHE}window_list.${MODPY_PYC_MAGIC_TAG}pyc
lib/kitty/kitty/actions.py
+lib/kitty/kitty/bash.py
lib/kitty/kitty/bgimage_fragment.glsl
lib/kitty/kitty/bgimage_vertex.glsl
lib/kitty/kitty/blit_fragment.glsl
@@ -530,7 +525,6 @@ lib/kitty/kitty/cli.py
lib/kitty/kitty/cli_stub.py
lib/kitty/kitty/client.py
lib/kitty/kitty/clipboard.py
-lib/kitty/kitty/complete.py
lib/kitty/kitty/conf/
lib/kitty/kitty/conf/__init__.py
${MODPY_COMMENT}lib/kitty/kitty/conf/${MODPY_PYCACHE}/
@@ -804,7 +798,6 @@ lib/kitty/kitty/remote_control.py
lib/kitty/kitty/rgb.py
lib/kitty/kitty/search_query_parser.py
lib/kitty/kitty/session.py
-lib/kitty/kitty/shell.py
lib/kitty/kitty/shell_integration.py
lib/kitty/kitty/shm.py
lib/kitty/kitty/short_uuid.py
@@ -830,7 +823,7 @@ lib/kitty/shell-integration/bash/kitty.b
lib/kitty/shell-integration/fish/
lib/kitty/shell-integration/fish/vendor_completions.d/
lib/kitty/shell-integration/fish/vendor_completions.d/clone-in-kitty.fish
-lib/kitty/shell-integration/fish/vendor_completions.d/edit-in-kitty.fish
+lib/kitty/shell-integration/fish/vendor_completions.d/kitten.fish
lib/kitty/shell-integration/fish/vendor_completions.d/kitty.fish
lib/kitty/shell-integration/fish/vendor_conf.d/
lib/kitty/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish
@@ -843,6 +836,7 @@ lib/kitty/shell-integration/ssh/askpass.
lib/kitty/shell-integration/ssh/bootstrap-utils.sh
lib/kitty/shell-integration/ssh/bootstrap.py
lib/kitty/shell-integration/ssh/bootstrap.sh
+lib/kitty/shell-integration/ssh/kitten
lib/kitty/shell-integration/ssh/kitty
lib/kitty/shell-integration/zsh/
lib/kitty/shell-integration/zsh/.zshenv
@@ -884,6 +878,7 @@ share/doc/kitty/html/_sources/actions.rs
share/doc/kitty/html/_sources/binary.rst.txt
share/doc/kitty/html/_sources/build.rst.txt
share/doc/kitty/html/_sources/changelog.rst.txt
+share/doc/kitty/html/_sources/clipboard.rst.txt
share/doc/kitty/html/_sources/color-stack.rst.txt
share/doc/kitty/html/_sources/conf.rst.txt
share/doc/kitty/html/_sources/deccara.rst.txt
@@ -977,6 +972,7 @@ share/doc/kitty/html/actions.html
share/doc/kitty/html/binary.html
share/doc/kitty/html/build.html
share/doc/kitty/html/changelog.html
+share/doc/kitty/html/clipboard.html
share/doc/kitty/html/color-stack.html
share/doc/kitty/html/conf.html
share/doc/kitty/html/deccara.html
Update Request for kitty Port to Version 0.36.1