From 6f7a433402f1482b2ff58bb063a85e8181a86c48 Mon Sep 17 00:00:00 2001 From: Luflosi Date: Fri, 7 Jan 2022 18:39:39 +0100 Subject: [PATCH 1/4] kitty: combine installPhase and postInstall phase --- pkgs/applications/terminal-emulators/kitty/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix index 4cd8f72b790f..f8869bb61956 100644 --- a/pkgs/applications/terminal-emulators/kitty/default.nix +++ b/pkgs/applications/terminal-emulators/kitty/default.nix @@ -125,10 +125,7 @@ buildPythonApplication rec { --bash <("$out/bin/kitty" + complete setup bash) \ --fish <("$out/bin/kitty" + complete setup fish) \ --zsh <("$out/bin/kitty" + complete setup zsh) - runHook postInstall - ''; - postInstall = '' terminfo_src=${if stdenv.isDarwin then ''"$out/Applications/kitty.app/Contents/Resources/terminfo"'' else @@ -139,6 +136,8 @@ buildPythonApplication rec { mkdir -p $out/nix-support echo "$terminfo" >> $out/nix-support/propagated-user-env-packages + + runHook postInstall ''; meta = with lib; { From 3bb443d5d9029e5bf8ade3d367a9d4ba9065162a Mon Sep 17 00:00:00 2001 From: Luflosi Date: Fri, 7 Jan 2022 18:41:54 +0100 Subject: [PATCH 2/4] kitty: 0.23.1 -> 0.24.1 https://github.com/kovidgoyal/kitty/releases/tag/v0.23.1 A new dependency is needed. Closes https://github.com/NixOS/nixpkgs/issues/153928. --- pkgs/applications/terminal-emulators/kitty/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix index f8869bb61956..6073ccd80c57 100644 --- a/pkgs/applications/terminal-emulators/kitty/default.nix +++ b/pkgs/applications/terminal-emulators/kitty/default.nix @@ -3,6 +3,7 @@ libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor, libxkbcommon, libXi, libXext, wayland-protocols, wayland, lcms2, + librsync, installShellFiles, dbus, Cocoa, @@ -21,20 +22,21 @@ with python3Packages; buildPythonApplication rec { pname = "kitty"; - version = "0.23.1"; + version = "0.24.1"; format = "other"; src = fetchFromGitHub { owner = "kovidgoyal"; repo = "kitty"; rev = "v${version}"; - sha256 = "sha256-2RwDU6EOJWF0u2ikJFg9U2yqSXergDkJH3h2i+QJ7G4="; + sha256 = "sha256-WPkyub7CwNXRksUmqiZeznnSqEPFpyHTeFLQ+D4Fb5c="; }; buildInputs = [ harfbuzz ncurses lcms2 + librsync ] ++ lib.optionals stdenv.isDarwin [ Cocoa CoreGraphics From aa1932ea7a0fe94239e66fd76bf71e61bcb49402 Mon Sep 17 00:00:00 2001 From: Luflosi Date: Fri, 7 Jan 2022 18:43:31 +0100 Subject: [PATCH 3/4] kitty: copy shell integration files into separate output https://sw.kovidgoyal.net/kitty/build/#notes-for-linux-macos-packagers recommends to split kitty into three packages with kitty-shell-integration being the one that includes some files useful for the shell integration. We already use kitty.terminfo in Nixpkgs instead of kitty-terminfo but we can't use kitty.shell-integration instead of kitty-shell-integration because shell-integration is not a valid shell variable name. I named it kitty.shell_integration instead. This package can then be used by a future kitty nixos module that still needs to be created. Without this commit, kitty would modify the user's ~/.bashrc when using bash. --- .../terminal-emulators/kitty/default.nix | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix index 6073ccd80c57..7647f6d627f7 100644 --- a/pkgs/applications/terminal-emulators/kitty/default.nix +++ b/pkgs/applications/terminal-emulators/kitty/default.nix @@ -69,26 +69,31 @@ buildPythonApplication rec { propagatedBuildInputs = lib.optional stdenv.isLinux libGL; - outputs = [ "out" "terminfo" ]; + outputs = [ "out" "terminfo" "shell_integration" ]; # Causes build failure due to warning hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow"; dontConfigure = true; - buildPhase = '' + buildPhase = let + commonOptions = '' + --update-check-interval=0 \ + --shell-integration=enabled\ no-rc + ''; + in '' runHook preBuild ${if stdenv.isDarwin then '' ${python.interpreter} setup.py kitty.app \ - --update-check-interval=0 \ - --disable-link-time-optimization + --disable-link-time-optimization \ + ${commonOptions} make man '' else '' ${python.interpreter} setup.py linux-package \ - --update-check-interval=0 \ --egl-library='${lib.getLib libGL}/lib/libEGL.so.1' \ --startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \ - --canberra-library='${libcanberra}/lib/libcanberra.so' + --canberra-library='${libcanberra}/lib/libcanberra.so' \ + ${commonOptions} ''} runHook postBuild ''; @@ -139,6 +144,8 @@ buildPythonApplication rec { mkdir -p $out/nix-support echo "$terminfo" >> $out/nix-support/propagated-user-env-packages + cp -r 'shell-integration' "$shell_integration" + runHook postInstall ''; From 5025d2fcf91f4b513892587a7ca8ff15935b15b3 Mon Sep 17 00:00:00 2001 From: Zhong Jianxin Date: Sun, 12 Sep 2021 18:52:09 +0800 Subject: [PATCH 4/4] kitty: Fix compilation on apple sdk 11 Closes https://github.com/NixOS/nixpkgs/pull/137512. --- pkgs/applications/terminal-emulators/kitty/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix index 7647f6d627f7..d79ce43bdff6 100644 --- a/pkgs/applications/terminal-emulators/kitty/default.nix +++ b/pkgs/applications/terminal-emulators/kitty/default.nix @@ -6,6 +6,7 @@ librsync, installShellFiles, dbus, + darwin, Cocoa, CoreGraphics, Foundation, @@ -47,6 +48,8 @@ buildPythonApplication rec { libpng python3 zlib + ] ++ lib.optionals (stdenv.isDarwin && (builtins.hasAttr "UserNotifications" darwin.apple_sdk.frameworks)) [ + darwin.apple_sdk.frameworks.UserNotifications ] ++ lib.optionals stdenv.isLinux [ fontconfig libunistring libcanberra libX11 libXrandr libXinerama libXcursor libxkbcommon libXi libXext