diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-04-15 01:29:11 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-04-15 02:59:26 +0000 |
commit | 3b5b199012236a67d7841a6742b534efccc67621 (patch) | |
tree | 784670944cc0b0cc48cf1258b1aadf1a62eaa674 /pkgs/os-specific/bsd | |
parent | e7adc44bb8ccccd88e7041b2f90c20b9330bee3a (diff) | |
download | nixpkgs-3b5b199012236a67d7841a6742b534efccc67621.tar nixpkgs-3b5b199012236a67d7841a6742b534efccc67621.tar.gz nixpkgs-3b5b199012236a67d7841a6742b534efccc67621.tar.bz2 nixpkgs-3b5b199012236a67d7841a6742b534efccc67621.tar.lz nixpkgs-3b5b199012236a67d7841a6742b534efccc67621.tar.xz nixpkgs-3b5b199012236a67d7841a6742b534efccc67621.tar.zst nixpkgs-3b5b199012236a67d7841a6742b534efccc67621.zip |
netbsd.statHook: init
This fixes the build of various NetBSD programs on Linux, e.g. netbsd.statHook.
Diffstat (limited to 'pkgs/os-specific/bsd')
-rw-r--r-- | pkgs/os-specific/bsd/netbsd/default.nix | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix index b86891352f0..2efa775c016 100644 --- a/pkgs/os-specific/bsd/netbsd/default.nix +++ b/pkgs/os-specific/bsd/netbsd/default.nix @@ -1,5 +1,5 @@ { stdenv, stdenvNoCC, fetchcvs, lib, groff, mandoc, zlib, bison, flex -, writeText, buildPackages, splicePackages, symlinkJoin }: +, makeSetupHook, writeText, buildPackages, splicePackages, symlinkJoin }: let fetchNetBSD = path: version: sha256: fetchcvs { @@ -30,7 +30,7 @@ let extraPaths = [ ]; - nativeBuildInputs = [ makeMinimal install tsort lorder mandoc groff stat ]; + nativeBuildInputs = [ makeMinimal install tsort lorder mandoc groff statHook ]; buildInputs = [ compat ]; # depsBuildBuild = [ buildPackages.stdenv.cc ]; @@ -243,6 +243,7 @@ let ]; }; + # Don't add this to nativeBuildInputs directly. Use statHook instead. stat = mkDerivation { path = "usr.bin/stat"; version = "8.0"; @@ -250,6 +251,17 @@ let nativeBuildInputs = [ makeMinimal install mandoc groff ]; }; + # stat isn't in POSIX, and NetBSD stat supports a completely + # different range of flags than GNU stat, so including it in PATH + # breaks stdenv. Work around that with a hook that will point + # NetBSD's build system and NetBSD stat without including it in + # PATH. + statHook = makeSetupHook { + name = "netbsd-stat-hook"; + } (writeText "netbsd-stat-hook-impl" '' + makeFlagsArray+=(TOOL_STAT=${netbsd.stat}/bin/stat) + ''); + tsort = mkDerivation { path = "usr.bin/tsort"; version = "8.0"; @@ -563,7 +575,7 @@ let sha256 = "0630lbvz6v4ic13bfg8ccwfhqkgcv76bfdw9f36rfsnwfgpxqsmq"; meta.platforms = lib.platforms.netbsd; nativeBuildInputs = [ makeMinimal install mandoc groff flex - bison genassym gencat lorder tsort stat ]; + bison genassym gencat lorder tsort statHook ]; extraPaths = [ sys.src ld_elf_so.src ]; }; @@ -587,7 +599,7 @@ let librpcsvc.src libutil.src librt.src libcrypt.src ]; buildInputs = [ buildPackages.netbsd.headers csu ]; nativeBuildInputs = [ makeMinimal install mandoc groff flex - bison genassym gencat lorder tsort stat ]; + bison genassym gencat lorder tsort statHook ]; NIX_CFLAGS_COMPILE = "-B${csu}/lib"; meta.platforms = lib.platforms.netbsd; SHLIBINSTALLDIR = "$(out)/lib"; |