core/pkgs/by-name/ne/netbsd/default.nix
2024-05-13 22:24:10 +01:00

141 lines
4.6 KiB
Nix

{ stdenv, lib, stdenvNoCC, makeScopeWithSplicing', generateSplicesForMkScope
, buildPackages, fetchcvs }:
makeScopeWithSplicing' {
otherSplices = generateSplicesForMkScope "netbsd";
f = (self:
lib.packagesFromDirectoryRecursive {
callPackage = self.callPackage;
directory = ./pkgs;
} // (let inherit (self) mkDerivation;
in {
fetchNetBSD = path: version: sha256:
fetchcvs {
cvsRoot = ":pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot";
module = "src/${path}";
inherit sha256;
tag = "netbsd-${lib.replaceStrings [ "." ] [ "-" ] version}-RELEASE";
};
defaultMakeFlags = [
"MKSOFTFLOAT=${
if stdenv.hostPlatform.gcc.float or (stdenv.hostPlatform.parsed.abi.float or "hard")
== "soft" then
"yes"
else
"no"
}"
];
compatIfNeeded =
lib.optional (!stdenvNoCC.hostPlatform.isNetBSD) self.compat;
# The manual callPackages below should in principle be unnecessary because
# they're just selecting arguments that would be selected anyway. However,
# if we don't perform these manual calls, we get infinite recursion issues
# because of the splices.
mkDerivation = self.callPackage ./pkgs/mkDerivation.nix {
inherit stdenv stdenvNoCC;
inherit (buildPackages.netbsd)
netbsdSetupHook makeMinimal install tsort lorder;
inherit (buildPackages) mandoc;
inherit (buildPackages.buildPackages) rsync;
};
makeMinimal =
self.callPackage ./pkgs/makeMinimal.nix { inherit (self) make; };
compat = self.callPackage ./pkgs/compat/package.nix {
inherit (buildPackages) coreutils;
inherit (buildPackages.darwin) cctools-port;
inherit (buildPackages.buildPackages) rsync;
inherit (buildPackages.netbsd) makeMinimal;
inherit (self) install include libc libutil;
};
install = self.callPackage ./pkgs/install/package.nix {
inherit (self) fts mtree make compatIfNeeded;
inherit (buildPackages.buildPackages) rsync;
inherit (buildPackages.netbsd) makeMinimal;
};
# See note in pkgs/stat/package.nix
stat = self.callPackage ./pkgs/stat/package.nix {
inherit (buildPackages.netbsd) makeMinimal install;
inherit (buildPackages.buildPackages) rsync;
};
# See note in pkgs/stat/hook.nix
statHook = self.callPackage ./pkgs/stat/hook.nix { inherit (self) stat; };
tsort = self.callPackage ./pkgs/tsort.nix {
inherit (buildPackages.netbsd) makeMinimal install;
inherit (buildPackages.buildPackages) rsync;
};
lorder = self.callPackage ./pkgs/lorder.nix {
inherit (buildPackages.netbsd) makeMinimal install;
inherit (buildPackages.buildPackages) rsync;
};
config = self.callPackage ./pkgs/config.nix {
inherit (buildPackages.netbsd) makeMinimal install;
inherit (buildPackages.buildPackages) rsync;
inherit (self) cksum;
};
include = self.callPackage ./pkgs/include.nix {
inherit (buildPackages.netbsd) makeMinimal install nbperf rpcgen;
inherit (buildPackages) stdenv;
inherit (buildPackages.buildPackages) rsync;
};
sys-headers = self.callPackage ./pkgs/sys/headers.nix {
inherit (buildPackages.netbsd)
makeMinimal install tsort lorder statHook uudecode config genassym;
inherit (buildPackages.buildPackages) rsync;
};
libutil =
self.callPackage ./pkgs/libutil.nix { inherit (self) libc sys; };
libpthread-headers = self.callPackage ./pkgs/libpthread/headers.nix { };
csu = self.callPackage ./pkgs/csu.nix {
inherit (self) headers sys ld_elf_so;
inherit (buildPackages.netbsd)
netbsdSetupHook makeMinimal install genassym gencat lorder tsort
statHook;
inherit (buildPackages.buildPackages) rsync;
};
_mainLibcExtraPaths = with self; [
common
i18n_module.src
sys.src
ld_elf_so.src
libpthread.src
libm.src
libresolv.src
librpcsvc.src
libutil.src
librt.src
libcrypt.src
];
libc = self.callPackage ./pkgs/libc.nix {
inherit (self) headers csu librt;
inherit (buildPackages.netbsd)
netbsdSetupHook makeMinimal install genassym gencat lorder tsort
statHook rpcgen;
inherit (buildPackages.buildPackages) rsync;
};
mtree = self.callPackage ./pkgs/mtree.nix { inherit (self) mknod; };
}));
}