diff --git a/pkgs/by-name/ki/kitty/libxkbcommon-runtime-path.patch b/pkgs/by-name/ki/kitty/libxkbcommon-runtime-path.patch new file mode 100644 index 000000000000..aa7c5cedaeb1 --- /dev/null +++ b/pkgs/by-name/ki/kitty/libxkbcommon-runtime-path.patch @@ -0,0 +1,23 @@ +diff --git a/kitty/key_names.py b/kitty/key_names.py +index 1c4ce3487..00d767d45 100644 +--- a/kitty/key_names.py ++++ b/kitty/key_names.py +@@ -59,17 +59,7 @@ if is_macos: + else: + def load_libxkb_lookup() -> LookupFunc: + import ctypes +- for suffix in ('.0', ''): +- with suppress(Exception): +- lib = ctypes.CDLL(f'libxkbcommon.so{suffix}') +- break +- else: +- from ctypes.util import find_library +- lname = find_library('xkbcommon') +- if lname is None: +- raise RuntimeError('Failed to find libxkbcommon') +- lib = ctypes.CDLL(lname) +- ++ lib = ctypes.CDLL('@libxkbcommon@') + f = lib.xkb_keysym_from_name + f.argtypes = [ctypes.c_char_p, ctypes.c_int] + f.restype = ctypes.c_int diff --git a/pkgs/by-name/ki/kitty/package.nix b/pkgs/by-name/ki/kitty/package.nix index 858f09673296..74978c0f6060 100644 --- a/pkgs/by-name/ki/kitty/package.nix +++ b/pkgs/by-name/ki/kitty/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + replaceVars, python3Packages, libunistring, harfbuzz, @@ -50,21 +51,21 @@ with python3Packages; buildPythonApplication rec { pname = "kitty"; - version = "0.47.0"; + version = "0.48.2"; pyproject = false; src = fetchFromGitHub { owner = "kovidgoyal"; repo = "kitty"; tag = "v${version}"; - hash = "sha256-QI+h7LSpJ5VYae3XdwDhKmpLqEGpmSulXP/mTop3gio="; + hash = "sha256-qNgVPpvMm8Y/nbBjVvWVuZ954ZXIuWmXhldP3w8MBhU="; }; goModules = (buildGo126Module { pname = "kitty-go-modules"; inherit src version; - vendorHash = "sha256-ZEiIGHj30h3l7mfJkOrPDTMI/GBtf/QDiG/lrqceggg="; + vendorHash = "sha256-BZudfNfREwNrgalaimC5Lp+UIdFS+jHFLl9mEXcHYMI="; }).goModules; buildInputs = [ @@ -142,6 +143,9 @@ buildPythonApplication rec { # OSError: master_fd is in error condition ./disable-test_ssh_bootstrap_with_different_launchers.patch + (replaceVars ./libxkbcommon-runtime-path.patch { + libxkbcommon = "${lib.getLib libxkbcommon}/lib/libxkbcommon.so.0"; + }) ]; hardeningDisable = [ @@ -152,6 +156,7 @@ buildPythonApplication rec { env = { CGO_ENABLED = 0; GOFLAGS = "-trimpath"; + GOTOOLCHAIN = "local"; }; configurePhase = '' @@ -243,6 +248,9 @@ buildPythonApplication rec { + '' # These depend on files that are not available in the sandbox rm tools/utils/machine_id/api_test.go + + # These depend on cgroups and other resources that don't work as the tests expect in the sandbox + rm kitty_tests/child.py ''; checkPhase = ''