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

Reply via email to