xxd: reduce closure size by splitting it into it's own output

This commit is contained in:
Sandro Jäckel 2023-09-12 16:32:10 +02:00
parent ca6da7a557
commit e05a981d05
No known key found for this signature in database
GPG key ID: 3AF5A43A3EECC2E5
5 changed files with 25 additions and 11 deletions

View file

@ -75,6 +75,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `services.resolved.fallbackDns` can now be used to disable the upstream fallback servers entirely by setting it to an empty list. To get the previous behaviour of the upstream defaults set it to null, the new default, instead. - `services.resolved.fallbackDns` can now be used to disable the upstream fallback servers entirely by setting it to an empty list. To get the previous behaviour of the upstream defaults set it to null, the new default, instead.
- `xxd` has been moved from `vim` default output to its own output to reduce closure size. The canonical way to reference it across all platforms is `unixtools.xxd`.
- `services.avahi.nssmdns` got split into `services.avahi.nssmdns4` and `services.avahi.nssmdns6` which enable the mDNS NSS switch for IPv4 and IPv6 respectively. - `services.avahi.nssmdns` got split into `services.avahi.nssmdns4` and `services.avahi.nssmdns6` which enable the mDNS NSS switch for IPv4 and IPv6 respectively.
Since most mDNS responders only register IPv4 addresses, most users want to keep the IPv6 support disabled to avoid long timeouts. Since most mDNS responders only register IPv4 addresses, most users want to keep the IPv6 support disabled to avoid long timeouts.

View file

@ -2,6 +2,8 @@
rec { rec {
version = "9.0.2116"; version = "9.0.2116";
outputs = [ "out" "xxd" ];
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vim"; owner = "vim";
repo = "vim"; repo = "vim";
@ -14,12 +16,21 @@ rec {
hardeningDisable = [ "fortify" ]; hardeningDisable = [ "fortify" ];
postPatch = # Use man from $PATH; escape sequences are still problematic.
# Use man from $PATH; escape sequences are still problematic. postPatch = ''
'' substituteInPlace runtime/ftplugin/man.vim \
substituteInPlace runtime/ftplugin/man.vim \ --replace "/usr/bin/man " "man "
--replace "/usr/bin/man " "man " '';
'';
# man page moving is done in postFixup instead of postInstall otherwise fixupPhase moves it right back where it was
postFixup = ''
moveToOutput bin/xxd "$xxd"
moveToOutput share/man/man1/xxd.1.gz "$xxd"
for manFile in $out/share/man/*/man1/xxd.1*; do
# moveToOutput does not take full paths or wildcards...
moveToOutput "share/man/$(basename "$(dirname "$(dirname "$manFile")")")/man1/xxd.1.gz" "$xxd"
done
'';
meta = with lib; { meta = with lib; {
description = "The most popular clone of the VI editor"; description = "The most popular clone of the VI editor";
@ -28,5 +39,6 @@ rec {
maintainers = with maintainers; [ das_j equirosa ]; maintainers = with maintainers; [ das_j equirosa ];
platforms = platforms.unix; platforms = platforms.unix;
mainProgram = "vim"; mainProgram = "vim";
outputsToInstall = [ "out" "xxd" ];
}; };
} }

View file

@ -15,7 +15,7 @@ in
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "vim"; pname = "vim";
inherit (common) version src postPatch hardeningDisable enableParallelBuilding enableParallelInstalling meta; inherit (common) version outputs src postPatch hardeningDisable enableParallelBuilding enableParallelInstalling postFixup meta;
nativeBuildInputs = [ gettext pkg-config ]; nativeBuildInputs = [ gettext pkg-config ];
buildInputs = [ ncurses bash gawk ] buildInputs = [ ncurses bash gawk ]

View file

@ -66,7 +66,7 @@ in stdenv.mkDerivation {
pname = "vim-full"; pname = "vim-full";
inherit (common) version postPatch hardeningDisable enableParallelBuilding meta; inherit (common) version outputs postPatch hardeningDisable enableParallelBuilding meta;
src = builtins.getAttr source { src = builtins.getAttr source {
default = common.src; # latest release default = common.src; # latest release
@ -181,7 +181,7 @@ in stdenv.mkDerivation {
ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc
''; '';
postFixup = lib.optionalString wrapPythonDrv '' postFixup = common.postFixup + lib.optionalString wrapPythonDrv ''
wrapProgram "$out/bin/vim" --prefix PATH : "${python3}/bin" \ wrapProgram "$out/bin/vim" --prefix PATH : "${python3}/bin" \
--set NIX_PYTHONPATH "${python3}/${python3.sitePackages}" --set NIX_PYTHONPATH "${python3}/${python3.sitePackages}"
''; '';

View file

@ -174,8 +174,8 @@ let
darwin = pkgs.darwin.basic_cmds; darwin = pkgs.darwin.basic_cmds;
}; };
xxd = { xxd = {
linux = pkgs.vim; linux = pkgs.vim.xxd;
darwin = pkgs.vim; darwin = pkgs.vim.xxd;
}; };
}; };