On 2023/03/05 17:14, Stuart Henderson wrote: > Same with kitty 0.26.5 and 0.27.1 (the latter is tricky to handle in > ports because it wants to download some go modules at build time).
Here's a ports diff for kitty 0.27.1 (with a vendored tarball for the go dependencies). There are some issues though, e.g. the ssh "kitten" and tests report "incorrect own on pwfile" (seems to be some issue with shm; 0.26.4 does that too), "kitten icat" spews some control chars, I didn't try much else. IIRC you need to uninstall the existing version before building. I'm not a kitty user myself so if anyone is interested then just take this as a starting point. Index: Makefile =================================================================== RCS file: /cvs/ports/x11/kitty/Makefile,v retrieving revision 1.24 diff -u -p -r1.24 Makefile --- Makefile 13 Mar 2023 12:55:18 -0000 1.24 +++ Makefile 15 Mar 2023 16:35:35 -0000 @@ -3,12 +3,10 @@ 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.27.1 DISTNAME = kitty-${MODPY_EGG_VERSION} +DISTFILES = ${DISTNAME}${EXTRACT_SUFX} \ + kitty-vendor-${MODPY_EGG_VERSION}.tar.gz:0 CATEGORIES = x11 HOMEPAGE = https://sw.kovidgoyal.net/kitty/ @@ -21,6 +19,7 @@ WANTLIB += fontconfig freetype harfbuzz WANTLIB += util xcb xkbcommon xkbcommon-x11 z ${MODPY_WANTLIB} MASTER_SITES = https://github.com/kovidgoyal/kitty/releases/download/v${MODPY_EGG_VERSION}/ +MASTER_SITES0 = https://spacehopper.org/mirrors/ EXTRACT_SUFX = .tar.xz # C11 @@ -29,6 +28,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 \ @@ -50,24 +50,42 @@ 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/ 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; \ + scp kitty-vendor-${MODPY_EGG_VERSION}.tar.gz naiad:mirrors/ .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/x11/kitty/distinfo,v retrieving revision 1.9 diff -u -p -r1.9 distinfo --- distinfo 13 Mar 2023 12:55:18 -0000 1.9 +++ distinfo 15 Mar 2023 16:35:35 -0000 @@ -1,2 +1,4 @@ -SHA256 (kitty-0.26.5.tar.xz) = VUSlgDFP7HcRGHzigWKQm17P9ngAcURP6W+5f4vlya0= -SIZE (kitty-0.26.5.tar.xz) = 4749988 +SHA256 (kitty-0.27.1.tar.xz) = 5XZyxboZc74TlUjrdy/xPXnCmw7WfLvkQYyHtvGxqQE= +SHA256 (kitty-vendor-0.27.1.tar.gz) = pleXvY5n9Fk91V8EhKYDVEJ5eiCgZBEL420iUYLaivw= +SIZE (kitty-0.27.1.tar.xz) = 5045588 +SIZE (kitty-vendor-0.27.1.tar.gz) = 1605984 Index: patches/patch-setup_py =================================================================== RCS file: /cvs/ports/x11/kitty/patches/patch-setup_py,v retrieving revision 1.10 diff -u -p -r1.10 patch-setup_py --- patches/patch-setup_py 23 Nov 2022 14:45:21 -0000 1.10 +++ patches/patch-setup_py 15 Mar 2023 16:35:35 -0000 @@ -5,7 +5,7 @@ disable wayland, libcrypto Index: setup.py --- setup.py.orig +++ setup.py -@@ -355,7 +355,6 @@ def init_env( +@@ -353,7 +353,6 @@ def init_env( df += ' -Og' float_conversion = '-Wfloat-conversion' fortify_source = '' if sanitize and is_macos else '-D_FORTIFY_SOURCE=2' @@ -13,7 +13,7 @@ Index: setup.py sanitize_args = get_sanitize_args(cc, ccver) if sanitize else set() cppflags_ = os.environ.get( 'OVERRIDE_CPPFLAGS', '-D{}DEBUG'.format('' if debug else 'N'), -@@ -369,12 +368,11 @@ def init_env( +@@ -367,12 +366,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) @@ -28,7 +28,7 @@ Index: setup.py ) ) cflags = shlex.split(cflags_) + shlex.split( -@@ -382,7 +380,7 @@ def init_env( +@@ -380,7 +378,7 @@ def init_env( ) ldflags_ = os.environ.get( 'OVERRIDE_LDFLAGS', @@ -37,7 +37,7 @@ Index: setup.py ) ldflags = shlex.split(ldflags_) ldflags.append('-shared') -@@ -761,7 +759,7 @@ def find_c_files() -> Tuple[List[str], List[str]]: +@@ -760,7 +758,7 @@ def find_c_files() -> Tuple[List[str], List[str]]: def compile_glfw(compilation_database: CompilationDatabase) -> None: @@ -46,7 +46,7 @@ Index: setup.py 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 = +@@ -978,8 +976,6 @@ def build_launcher(args: Options, launcher_dir: str = cflags.append('-g') if args.profile: libs.append('-lprofiler') @@ -55,7 +55,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 = +@@ -1026,7 +1022,7 @@ def build_launcher(args: Options, launcher_dir: str = # Packaging {{{ def copy_man_pages(ddir: str) -> None: Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/x11/kitty/pkg/PLIST,v retrieving revision 1.8 diff -u -p -r1.8 PLIST --- pkg/PLIST 8 Nov 2022 15:59:51 -0000 1.8 +++ pkg/PLIST 15 Mar 2023 16:35:35 -0000 @@ -1,3 +1,4 @@ +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