nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix
2024-07-17 22:36:19 -04:00

183 lines
4.5 KiB
Nix

{
lib,
crossLibcStdenv,
stdenvNoCC,
makeScopeWithSplicing',
generateSplicesForMkScope,
buildPackages,
fetchcvs,
}:
let
otherSplices = generateSplicesForMkScope "netbsd";
buildNetbsd = otherSplices.selfBuildHost;
in
makeScopeWithSplicing' {
inherit otherSplices;
f = (
self:
lib.packagesFromDirectoryRecursive {
callPackage = self.callPackage;
directory = ./pkgs;
}
// {
version = "9.2";
defaultMakeFlags = [
"MKSOFTFLOAT=${
if
stdenvNoCC.hostPlatform.gcc.float or (stdenvNoCC.hostPlatform.parsed.abi.float or "hard") == "soft"
then
"yes"
else
"no"
}"
];
compatIfNeeded = lib.optional (!stdenvNoCC.hostPlatform.isNetBSD) self.compat;
stdenvLibcMinimal = crossLibcStdenv.override (old: {
cc = old.cc.override {
libc = self.libcMinimal;
noLibc = false;
bintools = old.cc.bintools.override {
libc = self.libcMinimal;
noLibc = false;
sharedLibraryLoader = null;
};
};
});
# 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.
compat = self.callPackage ./pkgs/compat/package.nix {
inherit (buildPackages) coreutils;
inherit (buildNetbsd) makeMinimal;
inherit (self) install;
};
config = self.callPackage ./pkgs/config.nix {
inherit (buildNetbsd) makeMinimal install;
inherit (self) cksum;
};
csu = self.callPackage ./pkgs/csu.nix {
inherit (self) headers sys-headers ld_elf_so;
inherit (buildNetbsd)
netbsdSetupHook
makeMinimal
install
genassym
gencat
lorder
tsort
statHook
;
};
include = self.callPackage ./pkgs/include.nix {
inherit (buildNetbsd)
makeMinimal
install
nbperf
rpcgen
;
inherit (buildPackages) stdenv;
};
install = self.callPackage ./pkgs/install/package.nix {
inherit (self)
fts
mtree
make
compatIfNeeded
;
inherit (buildNetbsd) makeMinimal;
};
libcMinimal = self.callPackage ./pkgs/libcMinimal/package.nix {
inherit (self) headers csu;
inherit (buildNetbsd)
netbsdSetupHook
makeMinimal
install
genassym
gencat
lorder
tsort
statHook
rpcgen
;
};
libpthread-headers = self.callPackage ./pkgs/libpthread/headers.nix { };
librpcsvc = self.callPackage ./pkgs/librpcsvc.nix {
inherit (buildNetbsd)
netbsdSetupHook
makeMinimal
install
lorder
tsort
statHook
rpcgen
;
};
libutil = self.callPackage ./pkgs/libutil.nix {
inherit (buildNetbsd)
netbsdSetupHook
makeMinimal
install
lorder
tsort
statHook
;
};
lorder = self.callPackage ./pkgs/lorder.nix { inherit (buildNetbsd) makeMinimal install; };
mtree = self.callPackage ./pkgs/mtree.nix { inherit (self) mknod; };
mkDerivation = self.callPackage ./pkgs/mkDerivation.nix {
inherit (buildNetbsd)
netbsdSetupHook
makeMinimal
install
tsort
lorder
;
inherit (buildPackages) mandoc;
inherit (buildPackages.buildPackages) rsync;
};
makeMinimal = self.callPackage ./pkgs/makeMinimal.nix { inherit (self) make; };
# See note in pkgs/stat/package.nix
stat = self.callPackage ./pkgs/stat/package.nix { inherit (buildNetbsd) makeMinimal install; };
# See note in pkgs/stat/hook.nix
statHook = self.callPackage ./pkgs/stat/hook.nix { inherit (self) stat; };
sys-headers = self.callPackage ./pkgs/sys/headers.nix {
inherit (buildNetbsd)
makeMinimal
install
tsort
lorder
statHook
uudecode
config
genassym
;
};
tsort = self.callPackage ./pkgs/tsort.nix { inherit (buildNetbsd) makeMinimal install; };
}
);
}