diff options
Diffstat (limited to 'pkgs/os-specific/bsd/freebsd/pkgs/install.nix')
-rw-r--r-- | pkgs/os-specific/bsd/freebsd/pkgs/install.nix | 76 |
1 files changed, 51 insertions, 25 deletions
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/install.nix b/pkgs/os-specific/bsd/freebsd/pkgs/install.nix index 3db6cd3633d49..b8e59adb09c5f 100644 --- a/pkgs/os-specific/bsd/freebsd/pkgs/install.nix +++ b/pkgs/os-specific/bsd/freebsd/pkgs/install.nix @@ -1,41 +1,67 @@ -{ lib, stdenv, mkDerivation, writeShellScript -, freebsd-lib -, mtree -, bsdSetupHook, freebsdSetupHook -, makeMinimal, mandoc, groff -, boot-install, install -, compatIfNeeded, libmd, libnetbsd +{ + lib, + stdenv, + mkDerivation, + writeShellScript, + freebsd-lib, + bsdSetupHook, + freebsdSetupHook, + makeMinimal, + mandoc, + groff, + boot-install, + install, + compatIfNeeded, + libmd, + libnetbsd, }: # HACK: to ensure parent directories exist. This emulates GNU # install’s -D option. No alternative seems to exist in BSD install. let - binstall = writeShellScript "binstall" (freebsd-lib.install-wrapper + '' + binstall = writeShellScript "binstall" ( + freebsd-lib.install-wrapper + + '' - @out@/bin/xinstall "''${args[@]}" - ''); -in mkDerivation { + @out@/bin/xinstall "''${args[@]}" + '' + ); +in +mkDerivation { path = "usr.bin/xinstall"; - extraPaths = [ mtree.path ]; + extraPaths = [ "contrib/mtree" ]; nativeBuildInputs = [ - bsdSetupHook freebsdSetupHook - makeMinimal mandoc groff - (if stdenv.hostPlatform == stdenv.buildPlatform - then boot-install - else install) + bsdSetupHook + freebsdSetupHook + makeMinimal + mandoc + groff + (if stdenv.hostPlatform == stdenv.buildPlatform then boot-install else install) ]; skipIncludesPhase = true; - buildInputs = compatIfNeeded ++ [ libmd libnetbsd ]; - makeFlags = [ - "STRIP=-s" # flag to install, not command - "MK_WERROR=no" - "TESTSDIR=${builtins.placeholder "test"}" - ] ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "INSTALL=boot-install"; + buildInputs = compatIfNeeded ++ [ + libmd + libnetbsd + ]; + makeFlags = + [ + "STRIP=-s" # flag to install, not command + "MK_WERROR=no" + "TESTSDIR=${builtins.placeholder "test"}" + ] + ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ + "BOOTSTRAPPING=1" + "INSTALL=boot-install" + ]; postInstall = '' - install -D -m 0550 ${binstall} $out/bin/binstall + install -C -m 0550 ${binstall} $out/bin/binstall substituteInPlace $out/bin/binstall --subst-var out mv $out/bin/install $out/bin/xinstall ln -s ./binstall $out/bin/install ''; - outputs = [ "out" "man" "test" ]; + outputs = [ + "out" + "man" + "test" + ]; } |