nixpkgs/pkgs/os-specific/bsd/netbsd/pkgs/install/package.nix
2024-04-22 10:53:59 -04:00

50 lines
1.3 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ mkDerivation
, writeShellScript
, mtree, make
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, mandoc, groff, rsync
, compatIfNeeded, fts
}:
# HACK: to ensure parent directories exist. This emulates GNU
# installs -D option. No alternative seems to exist in BSD install.
let
binstall = writeShellScript "binstall" ''
set -eu
for last in "$@"; do true; done
mkdir -p $(dirname $last)
@out@/bin/xinstall "$@"
'';
in
mkDerivation {
path = "usr.bin/xinstall";
version = "9.2";
sha256 = "1f6pbz3qv1qcrchdxif8p5lbmnwl8b9nq615hsd3cyl4avd5bfqj";
extraPaths = [ mtree.src make.src ];
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
makeMinimal
mandoc groff rsync
];
skipIncludesPhase = true;
buildInputs = compatIfNeeded
# fts header is needed. glibc already has this header, but musl doesn't,
# so make sure pkgsMusl.netbsd.install still builds in case you want to
# remove it!
++ [ fts ];
installPhase = ''
runHook preInstall
install -D install.1 $out/share/man/man1/install.1
install -D xinstall $out/bin/xinstall
install -D -m 0550 ${binstall} $out/bin/binstall
substituteInPlace $out/bin/binstall --subst-var out
ln -s $out/bin/binstall $out/bin/install
runHook postInstall
'';
setupHook = ./install-setup-hook.sh;
}