kitty: build kitten statically and expose as output

Changed files
+9 -1
pkgs
applications
terminal-emulators
kitty
+9 -1
pkgs/applications/terminal-emulators/kitty/default.nix
···
libicns # For the png2icns tool.
];
-
outputs = [ "out" "terminfo" "shell_integration" ];
patches = [
# Gets `test_ssh_env_vars` to pass when `bzip2` is in the output of `env`.
···
# Causes build failure due to warning
hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
configurePhase = let
goModules = (buildGoModule {
···
installPhase = ''
runHook preInstall
mkdir -p $out
${if stdenv.isDarwin then ''
mkdir "$out/bin"
ln -s ../Applications/kitty.app/Contents/MacOS/kitty "$out/bin/kitty"
mkdir "$out/Applications"
cp -r kitty.app "$out/Applications/kitty.app"
installManPage 'docs/_build/man/kitty.1'
'' else ''
cp -r linux-package/{bin,share,lib} $out
''}
wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${lib.makeBinPath [ imagemagick ncurses.dev ]}"
···
libicns # For the png2icns tool.
];
+
outputs = [ "out" "terminfo" "shell_integration" "kitten" ];
patches = [
# Gets `test_ssh_env_vars` to pass when `bzip2` is in the output of `env`.
···
# Causes build failure due to warning
hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
+
+
CGO_ENABLED = 0;
+
GO_FLAGS = "-trimpath";
+
disallowedReferences = [ go ];
configurePhase = let
goModules = (buildGoModule {
···
installPhase = ''
runHook preInstall
mkdir -p $out
+
mkdir -p $kitten/bin
${if stdenv.isDarwin then ''
mkdir "$out/bin"
ln -s ../Applications/kitty.app/Contents/MacOS/kitty "$out/bin/kitty"
+
ln -s ../Applications/kitty.app/Contents/MacOS/kitten "$out/bin/kitten"
+
cp ./kitty.app/Contents/MacOS/kitten "$kitten/bin/kitten"
mkdir "$out/Applications"
cp -r kitty.app "$out/Applications/kitty.app"
installManPage 'docs/_build/man/kitty.1'
'' else ''
cp -r linux-package/{bin,share,lib} $out
+
cp linux-package/bin/kitten $kitten/bin/kitten
''}
wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${lib.makeBinPath [ imagemagick ncurses.dev ]}"