bsd treewide: Run RFC formatter

This commit is contained in:
John Ericson 2024-05-06 10:41:14 -04:00
parent 56590dd7b3
commit 3fe3b055ad
65 changed files with 1623 additions and 934 deletions

View file

@ -1,4 +1,11 @@
{ lib, stdenv, linuxHeaders, freebsd, runCommandCC, buildPackages }:
{
lib,
stdenv,
linuxHeaders,
freebsd,
runCommandCC,
buildPackages,
}:
stdenv.mkDerivation {
pname = "evdev-proto";
@ -28,7 +35,7 @@ stdenv.mkDerivation {
TOUCH = "touch";
XARGS = "xargs";
ABI_FILE = runCommandCC "abifile" {} "$CC -shared -o $out";
ABI_FILE = runCommandCC "abifile" { } "$CC -shared -o $out";
CLEAN_FETCH_ENV = true;
INSTALL_AS_USER = true;
NO_CHECKSUM = true;

View file

@ -3,14 +3,16 @@
{
inherit version;
mkBsdArch = stdenv': {
x86_64 = "amd64";
aarch64 = "arm64";
i486 = "i386";
i586 = "i386";
i686 = "i386";
}.${stdenv'.hostPlatform.parsed.cpu.name}
or stdenv'.hostPlatform.parsed.cpu.name;
mkBsdArch =
stdenv':
{
x86_64 = "amd64";
aarch64 = "arm64";
i486 = "i386";
i586 = "i386";
i686 = "i386";
}
.${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name;
install-wrapper = builtins.readFile ./install-wrapper.sh;
}

View file

@ -1,6 +1,12 @@
{ stdenv, lib, stdenvNoCC
, fetchzip
, sourceData, versionData, buildFreebsd, patchesRoot
{
stdenv,
lib,
stdenvNoCC,
fetchzip,
sourceData,
versionData,
buildFreebsd,
patchesRoot,
}:
self:
@ -8,7 +14,8 @@ self:
lib.packagesFromDirectoryRecursive {
callPackage = self.callPackage;
directory = ./pkgs;
} // {
}
// {
inherit sourceData patchesRoot versionData;
# Keep the crawled portion of Nixpkgs finite.
@ -21,11 +28,15 @@ lib.packagesFromDirectoryRecursive {
compatIfNeeded = lib.optional (!stdenvNoCC.hostPlatform.isFreeBSD) self.compat;
freebsd-lib = import ./lib {
version = lib.concatStringsSep "." (map toString (lib.filter (x: x != null) [
self.versionData.major
self.versionData.minor
self.versionData.patch or null
]));
version = lib.concatStringsSep "." (
map toString (
lib.filter (x: x != null) [
self.versionData.major
self.versionData.minor
self.versionData.patch or null
]
)
);
};
# The manual callPackages below should in principle be unnecessary, but are
@ -51,21 +62,21 @@ lib.packagesFromDirectoryRecursive {
};
libc = self.callPackage ./pkgs/libc/package.nix {
inherit (buildFreebsd) makeMinimal install gencat rpcgen;
inherit (buildFreebsd)
makeMinimal
install
gencat
rpcgen
;
inherit (self) csu include;
};
libnetbsd = self.callPackage ./pkgs/libnetbsd/package.nix {
inherit (buildFreebsd) makeMinimal;
};
libnetbsd = self.callPackage ./pkgs/libnetbsd/package.nix { inherit (buildFreebsd) makeMinimal; };
mkDerivation = self.callPackage ./pkgs/mkDerivation.nix {
inherit stdenv;
inherit (buildFreebsd) makeMinimal install tsort;
};
makeMinimal = self.callPackage ./pkgs/makeMinimal.nix {
inherit (self) make;
};
makeMinimal = self.callPackage ./pkgs/makeMinimal.nix { inherit (self) make; };
}

View file

@ -1,7 +1,10 @@
{ buildPackages, freebsd-lib }:
# Wrap NetBSD's install
buildPackages.writeShellScriptBin "boot-install" (freebsd-lib.install-wrapper + ''
buildPackages.writeShellScriptBin "boot-install" (
freebsd-lib.install-wrapper
+ ''
${buildPackages.netbsd.install}/bin/xinstall "''${args[@]}"
'')
${buildPackages.netbsd.install}/bin/xinstall "''${args[@]}"
''
)

View file

@ -1,9 +1,16 @@
{ lib, stdenv, mkDerivation, patchesRoot
, bsdSetupHook, freebsdSetupHook
, makeMinimal, boot-install
, which
, freebsd-lib
, expat, zlib,
{
lib,
stdenv,
mkDerivation,
patchesRoot,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
boot-install,
which,
freebsd-lib,
expat,
zlib,
}:
let
@ -13,90 +20,95 @@ in
mkDerivation rec {
pname = "compat";
path = "tools/build";
extraPaths = [
"lib/libc/db"
"lib/libc/stdlib" # getopt
"lib/libc/gen" # getcap
"lib/libc/locale" # rpmatch
] ++ lib.optionals stdenv.hostPlatform.isLinux [
"lib/libc/string" # strlcpy
"lib/libutil"
] ++ [
"contrib/libc-pwcache"
"contrib/libc-vis"
"sys/libkern"
"sys/kern/subr_capability.c"
extraPaths =
[
"lib/libc/db"
"lib/libc/stdlib" # getopt
"lib/libc/gen" # getcap
"lib/libc/locale" # rpmatch
]
++ lib.optionals stdenv.hostPlatform.isLinux [
"lib/libc/string" # strlcpy
"lib/libutil"
]
++ [
"contrib/libc-pwcache"
"contrib/libc-vis"
"sys/libkern"
"sys/kern/subr_capability.c"
# Take only individual headers, or else we will clobber native libc, etc.
# Take only individual headers, or else we will clobber native libc, etc.
"sys/rpc/types.h"
"sys/rpc/types.h"
# Listed in Makekfile as INC
"include/mpool.h"
"include/ndbm.h"
"include/err.h"
"include/stringlist.h"
"include/a.out.h"
"include/nlist.h"
"include/db.h"
"include/getopt.h"
"include/nl_types.h"
"include/elf.h"
"sys/sys/ctf.h"
# Listed in Makekfile as INC
"include/mpool.h"
"include/ndbm.h"
"include/err.h"
"include/stringlist.h"
"include/a.out.h"
"include/nlist.h"
"include/db.h"
"include/getopt.h"
"include/nl_types.h"
"include/elf.h"
"sys/sys/ctf.h"
# Listed in Makekfile as SYSINC
# Listed in Makekfile as SYSINC
"sys/sys/capsicum.h"
"sys/sys/caprights.h"
"sys/sys/imgact_aout.h"
"sys/sys/nlist_aout.h"
"sys/sys/nv.h"
"sys/sys/dnv.h"
"sys/sys/cnv.h"
"sys/sys/capsicum.h"
"sys/sys/caprights.h"
"sys/sys/imgact_aout.h"
"sys/sys/nlist_aout.h"
"sys/sys/nv.h"
"sys/sys/dnv.h"
"sys/sys/cnv.h"
"sys/sys/elf32.h"
"sys/sys/elf64.h"
"sys/sys/elf_common.h"
"sys/sys/elf_generic.h"
"sys/${mkBsdArch stdenv}/include"
] ++ lib.optionals stdenv.hostPlatform.isx86 [
"sys/x86/include"
] ++ [
"sys/sys/elf32.h"
"sys/sys/elf64.h"
"sys/sys/elf_common.h"
"sys/sys/elf_generic.h"
"sys/${mkBsdArch stdenv}/include"
]
++ lib.optionals stdenv.hostPlatform.isx86 [ "sys/x86/include" ]
++ [
"sys/sys/queue.h"
"sys/sys/md5.h"
"sys/sys/sbuf.h"
"sys/sys/tree.h"
"sys/sys/font.h"
"sys/sys/consio.h"
"sys/sys/fnv_hash.h"
"sys/sys/queue.h"
"sys/sys/md5.h"
"sys/sys/sbuf.h"
"sys/sys/tree.h"
"sys/sys/font.h"
"sys/sys/consio.h"
"sys/sys/fnv_hash.h"
"sys/crypto/chacha20/_chacha.h"
"sys/crypto/chacha20/chacha.h"
# included too, despite ".c"
"sys/crypto/chacha20/chacha.c"
"sys/crypto/chacha20/_chacha.h"
"sys/crypto/chacha20/chacha.h"
# included too, despite ".c"
"sys/crypto/chacha20/chacha.c"
"sys/fs"
"sys/ufs"
"sys/sys/disk"
"sys/fs"
"sys/ufs"
"sys/sys/disk"
"lib/libcapsicum"
"lib/libcasper"
];
"lib/libcapsicum"
"lib/libcasper"
];
patches = [
/${patchesRoot}/compat-install-dirs.patch
/${patchesRoot}/compat-fix-typedefs-locations.patch
];
preBuild = ''
NIX_CFLAGS_COMPILE+=' -I../../include -I../../sys'
preBuild =
''
NIX_CFLAGS_COMPILE+=' -I../../include -I../../sys'
cp ../../sys/${mkBsdArch stdenv}/include/elf.h ../../sys/sys
cp ../../sys/${mkBsdArch stdenv}/include/elf.h ../../sys/sys/${mkBsdArch stdenv}
'' + lib.optionalString stdenv.hostPlatform.isx86 ''
cp ../../sys/x86/include/elf.h ../../sys/x86
'';
cp ../../sys/${mkBsdArch stdenv}/include/elf.h ../../sys/sys
cp ../../sys/${mkBsdArch stdenv}/include/elf.h ../../sys/sys/${mkBsdArch stdenv}
''
+ lib.optionalString stdenv.hostPlatform.isx86 ''
cp ../../sys/x86/include/elf.h ../../sys/x86
'';
setupHooks = [
../../../../../build-support/setup-hooks/role.bash
@ -109,13 +121,17 @@ mkDerivation rec {
'';
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
bsdSetupHook
freebsdSetupHook
makeMinimal
boot-install
which
];
buildInputs = [ expat zlib ];
buildInputs = [
expat
zlib
];
makeFlags = [
"STRIP=-s" # flag to install, not command
@ -124,12 +140,15 @@ mkDerivation rec {
"INSTALL=boot-install"
];
preIncludes = ''
mkdir -p $out/{0,1}-include
cp --no-preserve=mode -r cross-build/include/common/* $out/0-include
'' + lib.optionalString stdenv.hostPlatform.isLinux ''
cp --no-preserve=mode -r cross-build/include/linux/* $out/1-include
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
cp --no-preserve=mode -r cross-build/include/darwin/* $out/1-include
'';
preIncludes =
''
mkdir -p $out/{0,1}-include
cp --no-preserve=mode -r cross-build/include/common/* $out/0-include
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
cp --no-preserve=mode -r cross-build/include/linux/* $out/1-include
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
cp --no-preserve=mode -r cross-build/include/darwin/* $out/1-include
'';
}

View file

@ -1,17 +1,35 @@
{ mkDerivation
, bsdSetupHook, freebsdSetupHook
, makeMinimal, install, mandoc, groff
, flex, byacc, file2c
, compatIfNeeded, libnv, libsbuf
{
mkDerivation,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
flex,
byacc,
file2c,
compatIfNeeded,
libnv,
libsbuf,
}:
mkDerivation {
path = "usr.sbin/config";
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
makeMinimal install mandoc groff
bsdSetupHook
freebsdSetupHook
makeMinimal
install
mandoc
groff
flex byacc file2c
flex
byacc
file2c
];
buildInputs = compatIfNeeded ++ [
libnv
libsbuf
];
buildInputs = compatIfNeeded ++ [ libnv libsbuf ];
}

View file

@ -1,9 +1,14 @@
{ lib, mkDerivation
, bsdSetupHook, freebsdSetupHook
, makeMinimal
, install
, flex, byacc, gencat
, include
{
lib,
mkDerivation,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
flex,
byacc,
gencat,
include,
}:
mkDerivation {
@ -13,11 +18,14 @@ mkDerivation {
"lib/libc/include/libc_private.h"
];
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
bsdSetupHook
freebsdSetupHook
makeMinimal
install
flex byacc gencat
flex
byacc
gencat
];
buildInputs = [ include ];
MK_TESTS = "no";

View file

@ -1,7 +1,18 @@
{ lib, stdenv, mkDerivation
, bsdSetupHook, freebsdSetupHook
, makeMinimal, install, mandoc, groff
, compatIfNeeded, libelf, libdwarf, zlib, libspl
{
lib,
stdenv,
mkDerivation,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
compatIfNeeded,
libelf,
libdwarf,
zlib,
libspl,
}:
mkDerivation {
@ -16,13 +27,20 @@ mkDerivation {
OPENSOLARIS_USR_DISTDIR = "$(SRCTOP)/cddl/contrib/opensolaris";
OPENSOLARIS_SYS_DISTDIR = "$(SRCTOP)/sys/cddl/contrib/opensolaris";
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
makeMinimal install mandoc groff
bsdSetupHook
freebsdSetupHook
makeMinimal
install
mandoc
groff
# flex byacc file2c
];
buildInputs = compatIfNeeded ++ [
libelf libdwarf zlib libspl
libelf
libdwarf
zlib
libspl
];
meta.license = lib.licenses.cddl;
}

View file

@ -1,5 +1,3 @@
{ makeSetupHook }:
makeSetupHook {
name = "freebsd-setup-hook";
} ./setup-hook.sh
makeSetupHook { name = "freebsd-setup-hook"; } ./setup-hook.sh

View file

@ -1,5 +1,3 @@
{ mkDerivation }:
mkDerivation {
path = "usr.bin/gencat";
}
mkDerivation { path = "usr.bin/gencat"; }

View file

@ -1,9 +1,16 @@
{ lib, mkDerivation, patchesRoot
, buildPackages
, bsdSetupHook, freebsdSetupHook
, makeMinimal
, install
, mandoc, groff, rsync /*, nbperf*/, rpcgen
{
lib,
mkDerivation,
patchesRoot,
buildPackages,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
rsync, # , nbperf
rpcgen,
}:
mkDerivation {
@ -15,19 +22,21 @@ mkDerivation {
"sys"
];
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
nativeBuildInputs = [
bsdSetupHook
freebsdSetupHook
makeMinimal
install
mandoc groff rsync /*nbperf*/ rpcgen
mandoc
groff
rsync # nbperf
rpcgen
# HACK use NetBSD's for now
buildPackages.netbsd.mtree
];
patches = [
/${patchesRoot}/no-perms-BSD.include.dist.patch
];
patches = [ /${patchesRoot}/no-perms-BSD.include.dist.patch ];
# The makefiles define INCSDIR per subdirectory, so we have to set
# something else on the command line so those definitions aren't
@ -39,9 +48,7 @@ mkDerivation {
{} \;
'';
makeFlags = [
"RPCGEN_CPP=${buildPackages.stdenv.cc.cc}/bin/cpp"
];
makeFlags = [ "RPCGEN_CPP=${buildPackages.stdenv.cc.cc}/bin/cpp" ];
# multiple header dirs, see above
postConfigure = ''

View file

@ -1,31 +1,49 @@
{ lib, stdenv, mkDerivation, writeShellScript
, freebsd-lib
, mtree
, bsdSetupHook, freebsdSetupHook
, makeMinimal, mandoc, groff
, boot-install, install
, compatIfNeeded, libmd, libnetbsd
{
lib,
stdenv,
mkDerivation,
writeShellScript,
freebsd-lib,
mtree,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
mandoc,
groff,
boot-install,
install,
compatIfNeeded,
libmd,
libnetbsd,
}:
# HACK: to ensure parent directories exist. This emulates GNU
# installs -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 ];
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 ];
buildInputs = compatIfNeeded ++ [
libmd
libnetbsd
];
makeFlags = [
"STRIP=-s" # flag to install, not command
"MK_WERROR=no"
@ -37,5 +55,9 @@ in mkDerivation {
mv $out/bin/install $out/bin/xinstall
ln -s ./binstall $out/bin/install
'';
outputs = [ "out" "man" "test" ];
outputs = [
"out"
"man"
"test"
];
}

View file

@ -1,12 +1,20 @@
{ lib, stdenv, mkDerivation
, patchesRoot
{
lib,
stdenv,
mkDerivation,
patchesRoot,
, bsdSetupHook, freebsdSetupHook
, makeMinimal
, install
, flex, byacc, gencat, rpcgen
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
flex,
byacc,
gencat,
rpcgen,
, csu, include
csu,
include,
}:
mkDerivation rec {
@ -63,13 +71,20 @@ mkDerivation rec {
'';
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
bsdSetupHook
freebsdSetupHook
makeMinimal
install
flex byacc gencat rpcgen
flex
byacc
gencat
rpcgen
];
buildInputs = [
include
csu
];
buildInputs = [ include csu ];
env.NIX_CFLAGS_COMPILE = "-B${csu}/lib";
# Suppress lld >= 16 undefined version errors

View file

@ -1,8 +1,16 @@
{ lib, stdenv, mkDerivation
, bsdSetupHook, freebsdSetupHook
, makeMinimal, install, mandoc, groff
, m4
, compatIfNeeded, libelf
{
lib,
stdenv,
mkDerivation,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
m4,
compatIfNeeded,
libelf,
}:
mkDerivation {
@ -15,13 +23,15 @@ mkDerivation {
"sys/sys/elf_common.h"
];
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
makeMinimal install mandoc groff
bsdSetupHook
freebsdSetupHook
makeMinimal
install
mandoc
groff
m4
];
buildInputs = compatIfNeeded ++ [
libelf
];
buildInputs = compatIfNeeded ++ [ libelf ];
MK_TESTS = "no";
}

View file

@ -1,7 +1,14 @@
{ lib, stdenv, mkDerivation
, bsdSetupHook, freebsdSetupHook
, makeMinimal, install, mandoc, groff
, m4
{
lib,
stdenv,
mkDerivation,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
m4,
}:
mkDerivation {
@ -15,8 +22,12 @@ mkDerivation {
];
BOOTSTRAPPING = !stdenv.isFreeBSD;
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
makeMinimal install mandoc groff
bsdSetupHook
freebsdSetupHook
makeMinimal
install
mandoc
groff
m4
];

View file

@ -1,18 +1,27 @@
{ lib, stdenv
, mkDerivation, patchesRoot
, bsdSetupHook, freebsdSetupHook, makeMinimal, mandoc, groff
, boot-install, install
, compatIfNeeded
{
lib,
stdenv,
mkDerivation,
patchesRoot,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
mandoc,
groff,
boot-install,
install,
compatIfNeeded,
}:
mkDerivation {
path = "lib/libnetbsd";
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)
];
patches = lib.optionals (!stdenv.hostPlatform.isFreeBSD) [
/${patchesRoot}/libnetbsd-do-install.patch

View file

@ -2,8 +2,6 @@
mkDerivation {
path = "lib/libsbuf";
extraPaths = [
"sys/kern"
];
extraPaths = [ "sys/kern" ];
MK_TESTS = "no";
}

View file

@ -1,7 +1,11 @@
{ mkDerivation, lib, stdenv }:
{
mkDerivation,
lib,
stdenv,
}:
mkDerivation {
path = "lib/libutil";
extraPaths = ["lib/libc/gen"];
extraPaths = [ "lib/libc/gen" ];
clangFixup = true;
MK_TESTS = "no";
}

View file

@ -1,5 +1,7 @@
{ mkDerivation
, bsdSetupHook, freebsdSetupHook
{
mkDerivation,
bsdSetupHook,
freebsdSetupHook,
}:
mkDerivation rec {
@ -13,8 +15,12 @@ mkDerivation rec {
mv "lorder.1" "$man/share/man"
'';
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
bsdSetupHook
freebsdSetupHook
];
buildInputs = [ ];
outputs = [
"out"
"man"
];
buildInputs = [];
outputs = [ "out" "man" ];
}

View file

@ -1,20 +1,25 @@
{ lib, mkDerivation, stdenv }:
{
lib,
mkDerivation,
stdenv,
}:
mkDerivation {
path = "contrib/bmake";
version = "9.2";
postPatch = ''
# make needs this to pick up our sys make files
export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
postPatch =
''
# make needs this to pick up our sys make files
export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
--replace '-Wl,--fatal-warnings' "" \
--replace '-Wl,--warn-shared-textrel' ""
'';
''
+ lib.optionalString stdenv.isDarwin ''
substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
--replace '-Wl,--fatal-warnings' "" \
--replace '-Wl,--warn-shared-textrel' ""
'';
postInstall = ''
make -C $BSDSRCDIR/share/mk FILESDIR=$out/share/mk install
'';
extraPaths = [ "share/mk" ]
++ lib.optional (!stdenv.hostPlatform.isFreeBSD) "tools/build/mk";
extraPaths = [ "share/mk" ] ++ lib.optional (!stdenv.hostPlatform.isFreeBSD) "tools/build/mk";
}

View file

@ -1,19 +1,24 @@
{ lib, stdenv, mkDerivation
, make
, bsdSetupHook, freebsdSetupHook
{
lib,
stdenv,
mkDerivation,
make,
bsdSetupHook,
freebsdSetupHook,
}:
mkDerivation rec {
inherit (make) path;
buildInputs = [];
buildInputs = [ ];
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
bsdSetupHook
freebsdSetupHook
];
skipIncludesPhase = true;
makeFlags = [];
makeFlags = [ ];
postPatch = ''
patchShebangs configure

View file

@ -1,78 +1,99 @@
{ lib, stdenv, stdenvNoCC
, compatIfNeeded
, runCommand, rsync
, freebsd-lib
, source
, bsdSetupHook, freebsdSetupHook
, makeMinimal
, install, tsort, lorder, mandoc, groff
{
lib,
stdenv,
stdenvNoCC,
compatIfNeeded,
runCommand,
rsync,
freebsd-lib,
source,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
tsort,
lorder,
mandoc,
groff,
}:
lib.makeOverridable (attrs: let
stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
in stdenv'.mkDerivation (rec {
pname = "${attrs.pname or (baseNameOf attrs.path)}-freebsd";
inherit (freebsd-lib) version;
src = runCommand "${pname}-filtered-src" {
nativeBuildInputs = [ rsync ];
} ''
for p in ${lib.concatStringsSep " " ([ attrs.path ] ++ attrs.extraPaths or [])}; do
set -x
path="$out/$p"
mkdir -p "$(dirname "$path")"
src_path="${source}/$p"
if [[ -d "$src_path" ]]; then src_path+=/; fi
rsync --chmod="+w" -r "$src_path" "$path"
set +x
done
'';
lib.makeOverridable (
attrs:
let
stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
in
stdenv'.mkDerivation (
rec {
pname = "${attrs.pname or (baseNameOf attrs.path)}-freebsd";
inherit (freebsd-lib) version;
src = runCommand "${pname}-filtered-src" { nativeBuildInputs = [ rsync ]; } ''
for p in ${lib.concatStringsSep " " ([ attrs.path ] ++ attrs.extraPaths or [ ])}; do
set -x
path="$out/$p"
mkdir -p "$(dirname "$path")"
src_path="${source}/$p"
if [[ -d "$src_path" ]]; then src_path+=/; fi
rsync --chmod="+w" -r "$src_path" "$path"
set +x
done
'';
extraPaths = [ ];
extraPaths = [ ];
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
makeMinimal
install tsort lorder mandoc groff #statHook
];
buildInputs = compatIfNeeded;
nativeBuildInputs = [
bsdSetupHook
freebsdSetupHook
makeMinimal
install
tsort
lorder
mandoc
groff # statHook
];
buildInputs = compatIfNeeded;
HOST_SH = stdenv'.shell;
HOST_SH = stdenv'.shell;
# Since STRIP below is the flag
STRIPBIN = "${stdenv.cc.bintools.targetPrefix}strip";
# Since STRIP below is the flag
STRIPBIN = "${stdenv.cc.bintools.targetPrefix}strip";
makeFlags = [
"STRIP=-s" # flag to install, not command
] ++ lib.optional (!stdenv.hostPlatform.isFreeBSD) "MK_WERROR=no";
makeFlags = [
"STRIP=-s" # flag to install, not command
] ++ lib.optional (!stdenv.hostPlatform.isFreeBSD) "MK_WERROR=no";
# amd64 not x86_64 for this on unlike NetBSD
MACHINE_ARCH = freebsd-lib.mkBsdArch stdenv';
# amd64 not x86_64 for this on unlike NetBSD
MACHINE_ARCH = freebsd-lib.mkBsdArch stdenv';
MACHINE = freebsd-lib.mkBsdArch stdenv';
MACHINE = freebsd-lib.mkBsdArch stdenv';
MACHINE_CPUARCH = MACHINE_ARCH;
MACHINE_CPUARCH = MACHINE_ARCH;
COMPONENT_PATH = attrs.path or null;
COMPONENT_PATH = attrs.path or null;
strictDeps = true;
strictDeps = true;
meta = with lib; {
maintainers = with maintainers; [ ericson2314 ];
platforms = platforms.unix;
license = licenses.bsd2;
};
} // lib.optionalAttrs stdenv'.hasCC {
# TODO should CC wrapper set this?
CPP = "${stdenv'.cc.targetPrefix}cpp";
} // lib.optionalAttrs stdenv'.isDarwin {
MKRELRO = "no";
} // lib.optionalAttrs (stdenv'.cc.isClang or false) {
HAVE_LLVM = lib.versions.major (lib.getVersion stdenv'.cc.cc);
} // lib.optionalAttrs (stdenv'.cc.isGNU or false) {
HAVE_GCC = lib.versions.major (lib.getVersion stdenv'.cc.cc);
} // lib.optionalAttrs (stdenv'.isx86_32) {
USE_SSP = "no";
} // lib.optionalAttrs (attrs.headersOnly or false) {
installPhase = "includesPhase";
dontBuild = true;
} // attrs))
meta = with lib; {
maintainers = with maintainers; [ ericson2314 ];
platforms = platforms.unix;
license = licenses.bsd2;
};
}
// lib.optionalAttrs stdenv'.hasCC {
# TODO should CC wrapper set this?
CPP = "${stdenv'.cc.targetPrefix}cpp";
}
// lib.optionalAttrs stdenv'.isDarwin { MKRELRO = "no"; }
// lib.optionalAttrs (stdenv'.cc.isClang or false) {
HAVE_LLVM = lib.versions.major (lib.getVersion stdenv'.cc.cc);
}
// lib.optionalAttrs (stdenv'.cc.isGNU or false) {
HAVE_GCC = lib.versions.major (lib.getVersion stdenv'.cc.cc);
}
// lib.optionalAttrs (stdenv'.isx86_32) { USE_SSP = "no"; }
// lib.optionalAttrs (attrs.headersOnly or false) {
installPhase = "includesPhase";
dontBuild = true;
}
// attrs
)
)

View file

@ -1,5 +1,3 @@
{ mkDerivation }:
mkDerivation {
path = "sbin/mknod";
}
mkDerivation { path = "sbin/mknod"; }

View file

@ -1,4 +1,9 @@
{ lib, mkDerivation, stdenv, patchesRoot }:
{
lib,
mkDerivation,
stdenv,
patchesRoot,
}:
mkDerivation rec {
path = "usr.bin/rpcgen";

View file

@ -1,13 +1,22 @@
{ mkDerivation
, bsdSetupHook, freebsdSetupHook
, makeMinimal, install, mandoc, groff
{
mkDerivation,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
}:
# Don't add this to nativeBuildInputs directly. Use statHook instead.
mkDerivation {
path = "usr.bin/stat";
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
makeMinimal install mandoc groff
bsdSetupHook
freebsdSetupHook
makeMinimal
install
mandoc
groff
];
}

View file

@ -1,12 +1,16 @@
{ makeSetupHook, writeText, stat }:
{
makeSetupHook,
writeText,
stat,
}:
# 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.
makeSetupHook {
name = "netbsd-stat-hook";
} (writeText "netbsd-stat-hook-impl" ''
makeFlagsArray+=(TOOL_STAT=${stat}/bin/stat)
'')
makeSetupHook { name = "netbsd-stat-hook"; } (
writeText "netbsd-stat-hook-impl" ''
makeFlagsArray+=(TOOL_STAT=${stat}/bin/stat)
''
)

View file

@ -1,67 +1,92 @@
{ stdenv, mkDerivation, freebsd-lib, patchesRoot
, buildPackages
, bsdSetupHook, freebsdSetupHook
, makeMinimal, install, mandoc, groff
, config, rpcgen, file2c, gawk, uudecode, xargs-j #, ctfconvert
{
stdenv,
mkDerivation,
freebsd-lib,
patchesRoot,
buildPackages,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
config,
rpcgen,
file2c,
gawk,
uudecode,
xargs-j, # , ctfconvert
}:
mkDerivation (let
cfg = "MINIMAL";
in rec {
path = "sys";
mkDerivation (
let
cfg = "MINIMAL";
in
rec {
path = "sys";
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
makeMinimal install mandoc groff
nativeBuildInputs = [
bsdSetupHook
freebsdSetupHook
makeMinimal
install
mandoc
groff
config rpcgen file2c gawk uudecode xargs-j
#ctfconvert
];
config
rpcgen
file2c
gawk
uudecode
xargs-j
#ctfconvert
];
patches = [
/${patchesRoot}/sys-gnu-date.patch
/${patchesRoot}/sys-no-explicit-intrinsics-dep.patch
];
patches = [
/${patchesRoot}/sys-gnu-date.patch
/${patchesRoot}/sys-no-explicit-intrinsics-dep.patch
];
# --dynamic-linker /red/herring is used when building the kernel.
NIX_ENFORCE_PURITY = 0;
# --dynamic-linker /red/herring is used when building the kernel.
NIX_ENFORCE_PURITY = 0;
AWK = "${buildPackages.gawk}/bin/awk";
AWK = "${buildPackages.gawk}/bin/awk";
CWARNEXTRA = "-Wno-error=shift-negative-value -Wno-address-of-packed-member";
CWARNEXTRA = "-Wno-error=shift-negative-value -Wno-address-of-packed-member";
MK_CTF = "no";
MK_CTF = "no";
KODIR = "${builtins.placeholder "out"}/kernel";
KMODDIR = "${builtins.placeholder "out"}/kernel";
DTBDIR = "${builtins.placeholder"out"}/dbt";
KODIR = "${builtins.placeholder "out"}/kernel";
KMODDIR = "${builtins.placeholder "out"}/kernel";
DTBDIR = "${builtins.placeholder "out"}/dbt";
KERN_DEBUGDIR = "${builtins.placeholder "out"}/debug";
KERN_DEBUGDIR_KODIR = "${KERN_DEBUGDIR}/kernel";
KERN_DEBUGDIR_KMODDIR = "${KERN_DEBUGDIR}/kernel";
KERN_DEBUGDIR = "${builtins.placeholder "out"}/debug";
KERN_DEBUGDIR_KODIR = "${KERN_DEBUGDIR}/kernel";
KERN_DEBUGDIR_KMODDIR = "${KERN_DEBUGDIR}/kernel";
skipIncludesPhase = true;
skipIncludesPhase = true;
configurePhase = ''
runHook preConfigure
configurePhase = ''
runHook preConfigure
for f in conf/kmod.mk contrib/dev/acpica/acpica_prep.sh; do
substituteInPlace "$f" --replace 'xargs -J' 'xargs-j '
done
for f in conf/kmod.mk contrib/dev/acpica/acpica_prep.sh; do
substituteInPlace "$f" --replace 'xargs -J' 'xargs-j '
done
for f in conf/*.mk; do
substituteInPlace "$f" --replace 'KERN_DEBUGDIR}''${' 'KERN_DEBUGDIR_'
done
for f in conf/*.mk; do
substituteInPlace "$f" --replace 'KERN_DEBUGDIR}''${' 'KERN_DEBUGDIR_'
done
cd ${freebsd-lib.mkBsdArch stdenv}/conf
sed -i ${cfg} \
-e 's/WITH_CTF=1/WITH_CTF=0/' \
-e '/KDTRACE/d'
config ${cfg}
cd ${freebsd-lib.mkBsdArch stdenv}/conf
sed -i ${cfg} \
-e 's/WITH_CTF=1/WITH_CTF=0/' \
-e '/KDTRACE/d'
config ${cfg}
runHook postConfigure
'';
preBuild = ''
cd ../compile/${cfg}
'';
})
runHook postConfigure
'';
preBuild = ''
cd ../compile/${cfg}
'';
}
)

View file

@ -1,12 +1,21 @@
{ mkDerivation
, bsdSetupHook, freebsdSetupHook
, makeMinimal, install, mandoc, groff
{
mkDerivation,
bsdSetupHook,
freebsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
}:
mkDerivation {
path = "usr.bin/tsort";
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
makeMinimal install mandoc groff
nativeBuildInputs = [
bsdSetupHook
freebsdSetupHook
makeMinimal
install
mandoc
groff
];
}

View file

@ -1,137 +1,187 @@
{ stdenv, lib, stdenvNoCC
, makeScopeWithSplicing', generateSplicesForMkScope
, buildPackages
, fetchcvs
{
stdenv,
lib,
stdenvNoCC,
makeScopeWithSplicing',
generateSplicesForMkScope,
buildPackages,
fetchcvs,
}:
makeScopeWithSplicing' {
otherSplices = generateSplicesForMkScope "netbsd";
f = (self: lib.packagesFromDirectoryRecursive {
callPackage = self.callPackage;
directory = ./pkgs;
} // {
f = (
self:
lib.packagesFromDirectoryRecursive {
callPackage = self.callPackage;
directory = ./pkgs;
}
// {
fetchNetBSD = path: version: sha256: fetchcvs {
cvsRoot = ":pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot";
module = "src/${path}";
inherit sha256;
tag = "netbsd-${lib.replaceStrings ["."] ["-"] version}-RELEASE";
};
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"}"
];
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;
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.
# 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;
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; };
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
;
};
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;
};
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/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; };
# 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;
};
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;
};
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;
};
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;
};
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;
};
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; };
libutil = self.callPackage ./pkgs/libutil.nix {
inherit (self) libc sys;
};
libpthread-headers = self.callPackage ./pkgs/libpthread/headers.nix { };
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;
};
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
];
_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;
};
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;
};
});
mtree = self.callPackage ./pkgs/mtree.nix { inherit (self) mknod; };
}
);
}

View file

@ -1,21 +1,29 @@
{ lib, mkDerivation, stdenv
, zlib
, defaultMakeFlags
, coreutils
, cctools-port
, include, libc, libutil
, install
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, rsync
, fetchNetBSD
, _mainLibcExtraPaths
{
lib,
mkDerivation,
stdenv,
zlib,
defaultMakeFlags,
coreutils,
cctools-port,
include,
libc,
libutil,
install,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
rsync,
fetchNetBSD,
_mainLibcExtraPaths,
}:
mkDerivation (let
mkDerivation (
let
version = "9.2";
commonDeps = [ zlib ];
in {
in
{
path = "tools/compat";
sha256 = "1vsxg7136nlhc72vpa664vs22874xh7ila95nkmsd8crn3z3cyn0";
inherit version;
@ -29,19 +37,23 @@ mkDerivation (let
make include/.stamp configure nbtool_config.h.in defs.mk.in
'';
configurePlatforms = [ "build" "host" ];
configureFlags = [
"--cache-file=config.cache"
] ++ lib.optionals stdenv.hostPlatform.isMusl [
# We include this header in our musl package only for legacy
# compatibility, and compat works fine without it (and having it
# know about sys/cdefs.h breaks packages like glib when built
# statically).
"ac_cv_header_sys_cdefs_h=no"
configurePlatforms = [
"build"
"host"
];
configureFlags =
[ "--cache-file=config.cache" ]
++ lib.optionals stdenv.hostPlatform.isMusl [
# We include this header in our musl package only for legacy
# compatibility, and compat works fine without it (and having it
# know about sys/cdefs.h breaks packages like glib when built
# statically).
"ac_cv_header_sys_cdefs_h=no"
];
nativeBuildInputs = commonDeps ++ [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
rsync
];
@ -50,22 +62,27 @@ mkDerivation (let
# temporarily use gnuinstall for bootstrapping
# bsdinstall will be built later
makeFlags = defaultMakeFlags ++ [
"INSTALL=${coreutils}/bin/install"
"DATADIR=$(out)/share"
# Can't sort object files yet
"LORDER=echo"
"TSORT=cat"
# Can't process man pages yet
"MKSHARE=no"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
# GNU objcopy produces broken .a libs which won't link into dependers.
# Makefiles only invoke `$OBJCOPY -x/-X`, so cctools strip works here.
"OBJCOPY=${cctools-port}/bin/strip"
];
makeFlags =
defaultMakeFlags
++ [
"INSTALL=${coreutils}/bin/install"
"DATADIR=$(out)/share"
# Can't sort object files yet
"LORDER=echo"
"TSORT=cat"
# Can't process man pages yet
"MKSHARE=no"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# GNU objcopy produces broken .a libs which won't link into dependers.
# Makefiles only invoke `$OBJCOPY -x/-X`, so cctools strip works here.
"OBJCOPY=${cctools-port}/bin/strip"
];
RENAME = "-D";
passthru.tests = { netbsd-install = install; };
passthru.tests = {
netbsd-install = install;
};
patches = [
./compat-cxx-safe-header.patch
@ -79,42 +96,51 @@ mkDerivation (let
makeFlagsArray+=('INSTALL_SYMLINK=''${INSTALL} ''${SYMLINK} ''${RENAME}')
'';
postInstall = ''
# why aren't these installed by netbsd?
install -D compat_defs.h $out/include/compat_defs.h
install -D $BSDSRCDIR/include/cdbw.h $out/include/cdbw.h
install -D $BSDSRCDIR/sys/sys/cdbr.h $out/include/cdbr.h
install -D $BSDSRCDIR/sys/sys/featuretest.h \
$out/include/sys/featuretest.h
install -D $BSDSRCDIR/sys/sys/md5.h $out/include/md5.h
install -D $BSDSRCDIR/sys/sys/rmd160.h $out/include/rmd160.h
install -D $BSDSRCDIR/sys/sys/sha1.h $out/include/sha1.h
install -D $BSDSRCDIR/sys/sys/sha2.h $out/include/sha2.h
install -D $BSDSRCDIR/sys/sys/queue.h $out/include/sys/queue.h
install -D $BSDSRCDIR/include/vis.h $out/include/vis.h
install -D $BSDSRCDIR/include/db.h $out/include/db.h
install -D $BSDSRCDIR/include/netconfig.h $out/include/netconfig.h
install -D $BSDSRCDIR/include/utmpx.h $out/include/utmpx.h
install -D $BSDSRCDIR/include/tzfile.h $out/include/tzfile.h
install -D $BSDSRCDIR/sys/sys/tree.h $out/include/sys/tree.h
install -D $BSDSRCDIR/include/nl_types.h $out/include/nl_types.h
install -D $BSDSRCDIR/include/stringlist.h $out/include/stringlist.h
postInstall =
''
# why aren't these installed by netbsd?
install -D compat_defs.h $out/include/compat_defs.h
install -D $BSDSRCDIR/include/cdbw.h $out/include/cdbw.h
install -D $BSDSRCDIR/sys/sys/cdbr.h $out/include/cdbr.h
install -D $BSDSRCDIR/sys/sys/featuretest.h \
$out/include/sys/featuretest.h
install -D $BSDSRCDIR/sys/sys/md5.h $out/include/md5.h
install -D $BSDSRCDIR/sys/sys/rmd160.h $out/include/rmd160.h
install -D $BSDSRCDIR/sys/sys/sha1.h $out/include/sha1.h
install -D $BSDSRCDIR/sys/sys/sha2.h $out/include/sha2.h
install -D $BSDSRCDIR/sys/sys/queue.h $out/include/sys/queue.h
install -D $BSDSRCDIR/include/vis.h $out/include/vis.h
install -D $BSDSRCDIR/include/db.h $out/include/db.h
install -D $BSDSRCDIR/include/netconfig.h $out/include/netconfig.h
install -D $BSDSRCDIR/include/utmpx.h $out/include/utmpx.h
install -D $BSDSRCDIR/include/tzfile.h $out/include/tzfile.h
install -D $BSDSRCDIR/sys/sys/tree.h $out/include/sys/tree.h
install -D $BSDSRCDIR/include/nl_types.h $out/include/nl_types.h
install -D $BSDSRCDIR/include/stringlist.h $out/include/stringlist.h
# Collapse includes slightly to fix dangling reference
install -D $BSDSRCDIR/common/include/rpc/types.h $out/include/rpc/types.h
sed -i '1s;^;#include "nbtool_config.h"\n;' $out/include/rpc/types.h
'' + lib.optionalString stdenv.isDarwin ''
mkdir -p $out/include/ssp
touch $out/include/ssp/ssp.h
'' + ''
mkdir -p $out/lib/pkgconfig
substitute ${./libbsd-overlay.pc} $out/lib/pkgconfig/libbsd-overlay.pc \
--subst-var-by out $out \
--subst-var-by version ${version}
'';
extraPaths = [ include.src libc.src libutil.src
# Collapse includes slightly to fix dangling reference
install -D $BSDSRCDIR/common/include/rpc/types.h $out/include/rpc/types.h
sed -i '1s;^;#include "nbtool_config.h"\n;' $out/include/rpc/types.h
''
+ lib.optionalString stdenv.isDarwin ''
mkdir -p $out/include/ssp
touch $out/include/ssp/ssp.h
''
+ ''
mkdir -p $out/lib/pkgconfig
substitute ${./libbsd-overlay.pc} $out/lib/pkgconfig/libbsd-overlay.pc \
--subst-var-by out $out \
--subst-var-by version ${version}
'';
extraPaths = [
include.src
libc.src
libutil.src
(fetchNetBSD "external/bsd/flex" "9.2" "0h98jpfj7vx5zh7vd7bk6b1hmzgkcb757a8j6d9zgygxxv13v43m")
(fetchNetBSD "sys/sys" "9.2" "0zawhw51klaigqqwkx0lzrx3mim2jywrc24cm7c66qsf1im9awgd")
(fetchNetBSD "common/include/rpc/types.h" "9.2" "0n2df12mlc3cbc48jxq35yzl1y7ghgpykvy7jnfh898rdhac7m9a")
(fetchNetBSD "common/include/rpc/types.h" "9.2"
"0n2df12mlc3cbc48jxq35yzl1y7ghgpykvy7jnfh898rdhac7m9a"
)
] ++ libutil.extraPaths ++ _mainLibcExtraPaths;
})
}
)

View file

@ -1,8 +1,15 @@
{ mkDerivation
, bsdSetupHook, netbsdSetupHook
, makeMinimal, install, mandoc, byacc, flex, rsync
, compatIfNeeded
, cksum
{
mkDerivation,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
mandoc,
byacc,
flex,
rsync,
compatIfNeeded,
cksum,
}:
mkDerivation {
path = "usr.bin/config";
@ -10,8 +17,14 @@ mkDerivation {
sha256 = "1yz3n4hncdkk6kp595fh2q5lg150vpqg8iw2dccydkyw4y3hgsjj";
env.NIX_CFLAGS_COMPILE = toString [ "-DMAKE_BOOTSTRAP" ];
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
makeMinimal install mandoc byacc flex rsync
bsdSetupHook
netbsdSetupHook
makeMinimal
install
mandoc
byacc
flex
rsync
];
buildInputs = compatIfNeeded;
extraPaths = [ cksum.src ];

View file

@ -1,11 +1,23 @@
{ lib, mkDerivation
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, install, mandoc, groff, flex
, byacc, genassym, gencat, lorder, tsort, statHook, rsync
, headers
, sys
, ld_elf_so
{
lib,
mkDerivation,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
flex,
byacc,
genassym,
gencat,
lorder,
tsort,
statHook,
rsync,
headers,
sys,
ld_elf_so,
}:
mkDerivation {
@ -14,11 +26,24 @@ mkDerivation {
sha256 = "0al5jfazvhlzn9hvmnrbchx4d0gm282hq5gp4xs2zmj9ycmf6d03";
meta.platforms = lib.platforms.netbsd;
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
install mandoc groff flex
byacc genassym gencat lorder tsort statHook rsync
install
mandoc
groff
flex
byacc
genassym
gencat
lorder
tsort
statHook
rsync
];
buildInputs = [ headers ];
extraPaths = [ sys.src ld_elf_so.src ];
extraPaths = [
sys.src
ld_elf_so.src
];
}

View file

@ -1,7 +1,10 @@
{ mkDerivation
, bsdSetupHook, netbsdSetupHook, rsync
, compatIfNeeded
, fetchNetBSD
{
mkDerivation,
bsdSetupHook,
netbsdSetupHook,
rsync,
compatIfNeeded,
fetchNetBSD,
}:
mkDerivation {
@ -10,12 +13,16 @@ mkDerivation {
sha256 = "01d4fpxvz1pgzfk5xznz5dcm0x0gdzwcsfm1h3d0xc9kc6hj2q77";
version = "9.2";
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook rsync
bsdSetupHook
netbsdSetupHook
rsync
];
propagatedBuildInputs = compatIfNeeded;
extraPaths = [
(fetchNetBSD "lib/libc/gen/fts.c" "9.2" "1a8hmf26242nmv05ipn3ircxb0jqmmi66rh78kkyi9vjwkfl3qn7")
(fetchNetBSD "lib/libc/include/namespace.h" "9.2" "0kksr3pdwdc1cplqf5z12ih4cml6l11lqrz91f7hjjm64y7785kc")
(fetchNetBSD "lib/libc/include/namespace.h" "9.2"
"0kksr3pdwdc1cplqf5z12ih4cml6l11lqrz91f7hjjm64y7785kc"
)
(fetchNetBSD "lib/libc/gen/fts.3" "9.2" "1asxw0n3fhjdadwkkq3xplfgqgl3q32w1lyrvbakfa3gs0wz5zc1")
];
skipIncludesPhase = true;

View file

@ -1,4 +1,10 @@
{ lib, symlinkJoin, include, sys-headers, libpthread-headers }:
{
lib,
symlinkJoin,
include,
sys-headers,
libpthread-headers,
}:
symlinkJoin {
name = "netbsd-headers-9.2";

View file

@ -1,4 +1,8 @@
{ lib, mkDerivation, libc }:
{
lib,
mkDerivation,
libc,
}:
mkDerivation {
path = "lib/i18n_module";

View file

@ -1,10 +1,18 @@
{ lib, mkDerivation
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, install, mandoc, groff, rsync, nbperf, rpcgen
, common
, defaultMakeFlags
, stdenv
{
lib,
mkDerivation,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
rsync,
nbperf,
rpcgen,
common,
defaultMakeFlags,
stdenv,
}:
mkDerivation {
@ -12,9 +20,15 @@ mkDerivation {
version = "9.2";
sha256 = "0nxnmj4c8s3hb9n3fpcmd0zl3l1nmhivqgi9a35sis943qvpgl9h";
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
install mandoc groff rsync nbperf rpcgen
install
mandoc
groff
rsync
nbperf
rpcgen
];
# The makefiles define INCSDIR per subdirectory, so we have to set

View file

@ -1,10 +1,16 @@
{ mkDerivation
, writeShellScript
, mtree, make
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, mandoc, groff, rsync
, compatIfNeeded, fts
{
mkDerivation,
writeShellScript,
mtree,
make,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
mandoc,
groff,
rsync,
compatIfNeeded,
fts,
}:
@ -18,32 +24,39 @@ let
@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
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
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;
}
runHook postInstall
'';
setupHook = ./install-setup-hook.sh;
}

View file

@ -1,11 +1,12 @@
{ lib
, mkDerivation
, libc
, defaultMakeFlags
{
lib,
mkDerivation,
libc,
defaultMakeFlags,
}:
mkDerivation {
path = "libexec/ld.elf_so";
path = "libexec/ld.elf_so";
version = "9.2";
sha256 = "0ia9mqzdljly0vqfwflm5mzz55k7qsr4rw2bzhivky6k30vgirqa";
meta.platforms = lib.platforms.netbsd;
@ -13,6 +14,9 @@ mkDerivation {
# Hack to prevent a symlink being installed here for compatibility.
SHLINKINSTALLDIR = "/usr/libexec";
USE_FORT = "yes";
makeFlags = defaultMakeFlags ++ [ "BINDIR=$(out)/libexec" "CLIBOBJ=${libc}/lib" ];
makeFlags = defaultMakeFlags ++ [
"BINDIR=$(out)/libexec"
"CLIBOBJ=${libc}/lib"
];
extraPaths = [ libc.src ] ++ libc.extraPaths;
}

View file

@ -1,14 +1,27 @@
{ lib
, mkDerivation
, defaultMakeFlags
, _mainLibcExtraPaths
, fetchNetBSD
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, install, mandoc, groff, flex
, byacc, genassym, gencat, lorder, tsort, statHook, rsync, rpcgen
, csu, headers
, librt
{
lib,
mkDerivation,
defaultMakeFlags,
_mainLibcExtraPaths,
fetchNetBSD,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
flex,
byacc,
genassym,
gencat,
lorder,
tsort,
statHook,
rsync,
rpcgen,
csu,
headers,
librt,
}:
mkDerivation {
@ -21,18 +34,32 @@ mkDerivation {
(fetchNetBSD "external/bsd/jemalloc" "9.2" "0cq704swa0h2yxv4gc79z2lwxibk9k7pxh3q5qfs7axx3jx3n8kb")
];
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
install mandoc groff flex
byacc genassym gencat lorder tsort statHook rsync rpcgen
install
mandoc
groff
flex
byacc
genassym
gencat
lorder
tsort
statHook
rsync
rpcgen
];
buildInputs = [
headers
csu
];
buildInputs = [ headers csu ];
env.NIX_CFLAGS_COMPILE = "-B${csu}/lib -fcommon";
meta.platforms = lib.platforms.netbsd;
SHLIBINSTALLDIR = "$(out)/lib";
MKPICINSTALL = "yes";
NLSDIR = "$(out)/share/nls";
makeFlags = defaultMakeFlags ++ [ "FILESDIR=$(out)/var/db"];
makeFlags = defaultMakeFlags ++ [ "FILESDIR=$(out)/var/db" ];
postInstall = ''
pushd ${headers}
find . -type d -exec mkdir -p $out/\{} \;

View file

@ -1,7 +1,10 @@
{ lib, mkDerivation, stdenv
, libterminfo
, compatIfNeeded
, defaultMakeFlags
{
lib,
mkDerivation,
stdenv,
libterminfo,
compatIfNeeded,
defaultMakeFlags,
}:
mkDerivation {
@ -9,11 +12,14 @@ mkDerivation {
version = "9.2";
sha256 = "0pd0dggl3w4bv5i5h0s1wrc8hr66n4hkv3zlklarwfdhc692fqal";
buildInputs = [ libterminfo ];
env.NIX_CFLAGS_COMPILE = toString ([
"-D__scanflike(a,b)="
"-D__va_list=va_list"
"-D__warn_references(a,b)="
] ++ lib.optional stdenv.isDarwin "-D__strong_alias(a,b)=");
env.NIX_CFLAGS_COMPILE = toString (
[
"-D__scanflike(a,b)="
"-D__va_list=va_list"
"-D__warn_references(a,b)="
]
++ lib.optional stdenv.isDarwin "-D__strong_alias(a,b)="
);
propagatedBuildInputs = compatIfNeeded;
MKDOC = "no"; # missing vfontedpr
makeFlags = defaultMakeFlags ++ [ "LIBDO.terminfo=${libterminfo}/lib" ];

View file

@ -1,26 +1,32 @@
{ lib, mkDerivation
, libterminfo, libcurses
, compatIfNeeded
, defaultMakeFlags
{
lib,
mkDerivation,
libterminfo,
libcurses,
compatIfNeeded,
defaultMakeFlags,
}:
mkDerivation {
path = "lib/libedit";
version = "9.2";
sha256 = "1wqhngraxwqk4jgrf5f18jy195yrp7c06n1gf31pbplq79mg1bcj";
buildInputs = [ libterminfo libcurses ];
propagatedBuildInputs = compatIfNeeded;
SHLIBINSTALLDIR = "$(out)/lib";
makeFlags = defaultMakeFlags ++ [ "LIBDO.terminfo=${libterminfo}/lib" ];
postPatch = ''
sed -i '1i #undef bool_t' $COMPONENT_PATH/el.h
substituteInPlace $COMPONENT_PATH/config.h \
--replace "#define HAVE_STRUCT_DIRENT_D_NAMLEN 1" ""
substituteInPlace $COMPONENT_PATH/readline/Makefile --replace /usr/include "$out/include"
'';
env.NIX_CFLAGS_COMPILE = toString [
"-D__noinline="
"-D__scanflike(a,b)="
"-D__va_list=va_list"
];
}
path = "lib/libedit";
version = "9.2";
sha256 = "1wqhngraxwqk4jgrf5f18jy195yrp7c06n1gf31pbplq79mg1bcj";
buildInputs = [
libterminfo
libcurses
];
propagatedBuildInputs = compatIfNeeded;
SHLIBINSTALLDIR = "$(out)/lib";
makeFlags = defaultMakeFlags ++ [ "LIBDO.terminfo=${libterminfo}/lib" ];
postPatch = ''
sed -i '1i #undef bool_t' $COMPONENT_PATH/el.h
substituteInPlace $COMPONENT_PATH/config.h \
--replace "#define HAVE_STRUCT_DIRENT_D_NAMLEN 1" ""
substituteInPlace $COMPONENT_PATH/readline/Makefile --replace /usr/include "$out/include"
'';
env.NIX_CFLAGS_COMPILE = toString [
"-D__noinline="
"-D__scanflike(a,b)="
"-D__va_list=va_list"
];
}

View file

@ -1,4 +1,8 @@
{ lib, mkDerivation, sys }:
{
lib,
mkDerivation,
sys,
}:
mkDerivation {
path = "lib/libm";

View file

@ -1,4 +1,8 @@
{ lib, mkDerivation, sys }:
{
lib,
mkDerivation,
sys,
}:
mkDerivation {
pname = "libpci";

View file

@ -3,4 +3,3 @@
version = "9.2";
sha256 = "0mlmc31k509dwfmx5s2x010wxjc44mr6y0cbmk30cfipqh8c962h";
}

View file

@ -1,9 +1,12 @@
{ lib, mkDerivation }:
mkDerivation (import ./base.nix // {
pname = "libpthread-headers";
installPhase = "includesPhase";
dontBuild = true;
noCC = true;
meta.platforms = lib.platforms.netbsd;
})
mkDerivation (
import ./base.nix
// {
pname = "libpthread-headers";
installPhase = "includesPhase";
dontBuild = true;
noCC = true;
meta.platforms = lib.platforms.netbsd;
}
)

View file

@ -1,15 +1,28 @@
{ lib, mkDerivation
, headers
, common, libc, librt, sys
{
lib,
mkDerivation,
headers,
common,
libc,
librt,
sys,
}:
mkDerivation (import ./base.nix // {
pname = "libpthread";
installPhase = null;
noCC = false;
dontBuild = false;
buildInputs = [ headers ];
SHLIBINSTALLDIR = "$(out)/lib";
extraPaths = [ common libc.src librt.src sys.src ];
meta.platforms = lib.platforms.netbsd;
})
mkDerivation (
import ./base.nix
// {
pname = "libpthread";
installPhase = null;
noCC = false;
dontBuild = false;
buildInputs = [ headers ];
SHLIBINSTALLDIR = "$(out)/lib";
extraPaths = [
common
libc.src
librt.src
sys.src
];
meta.platforms = lib.platforms.netbsd;
}
)

View file

@ -1,4 +1,8 @@
{ lib, mkDerivation, libc }:
{
lib,
mkDerivation,
libc,
}:
mkDerivation {
path = "lib/libresolv";

View file

@ -1,9 +1,15 @@
{ lib
, mkDerivation
, defaultMakeFlags
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, install, tsort, lorder, rpcgen, statHook
{
lib,
mkDerivation,
defaultMakeFlags,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
tsort,
lorder,
rpcgen,
statHook,
}:
mkDerivation {
@ -13,9 +19,13 @@ mkDerivation {
makeFlags = defaultMakeFlags ++ [ "INCSDIR=$(out)/include/rpcsvc" ];
meta.platforms = lib.platforms.netbsd;
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
install tsort lorder rpcgen statHook
install
tsort
lorder
rpcgen
statHook
];
}

View file

@ -1,4 +1,9 @@
{ lib, mkDerivation, libc, headers }:
{
lib,
mkDerivation,
libc,
headers,
}:
mkDerivation {
path = "lib/librt";

View file

@ -1,8 +1,18 @@
{ mkDerivation
, bsdSetupHook, netbsdSetupHook
, makeMinimal, install, tsort, lorder, mandoc, statHook, nbperf, tic, rsync
, compatIfNeeded
, fetchNetBSD
{
mkDerivation,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
tsort,
lorder,
mandoc,
statHook,
nbperf,
tic,
rsync,
compatIfNeeded,
fetchNetBSD,
}:
mkDerivation {
@ -10,8 +20,17 @@ mkDerivation {
version = "9.2";
sha256 = "0pq05k3dj0dfsczv07frnnji92mazmy2qqngqbx2zgqc1x251414";
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
makeMinimal install tsort lorder mandoc statHook nbperf tic rsync
bsdSetupHook
netbsdSetupHook
makeMinimal
install
tsort
lorder
mandoc
statHook
nbperf
tic
rsync
];
buildInputs = compatIfNeeded;
SHLIBINSTALLDIR = "$(out)/lib";

View file

@ -1,20 +1,41 @@
{ mkDerivation
, common, libc, sys
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, byacc, install, tsort, lorder, mandoc, statHook, rsync
, headers
{
mkDerivation,
common,
libc,
sys,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
byacc,
install,
tsort,
lorder,
mandoc,
statHook,
rsync,
headers,
}:
mkDerivation {
path = "lib/libutil";
version = "9.2";
sha256 = "02gm5a5zhh8qp5r5q5r7x8x6x50ir1i0ncgsnfwh1vnrz6mxbq7z";
extraPaths = [ common libc.src sys.src ];
extraPaths = [
common
libc.src
sys.src
];
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
byacc install tsort lorder mandoc statHook rsync
byacc
install
tsort
lorder
mandoc
statHook
rsync
];
buildInputs = [ headers ];
SHLIBINSTALLDIR = "$(out)/lib";

View file

@ -1,7 +1,12 @@
{ mkDerivation
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, install, mandoc, groff, rsync
{
mkDerivation,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
rsync,
}:
mkDerivation {
@ -9,8 +14,12 @@ mkDerivation {
version = "9.2";
sha256 = "0rjf9blihhm0n699vr2bg88m4yjhkbxh6fxliaay3wxkgnydjwn2";
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
install mandoc groff rsync
install
mandoc
groff
rsync
];
}

View file

@ -1,56 +1,63 @@
{ lib, mkDerivation, fetchNetBSD, stdenv }:
{
lib,
mkDerivation,
fetchNetBSD,
stdenv,
}:
mkDerivation {
path = "usr.bin/make";
sha256 = "0vi73yicbmbp522qzqvd979cx6zm5jakhy77xh73c1kygf8klccs";
version = "9.2";
postPatch = ''
substituteInPlace $BSDSRCDIR/share/mk/bsd.doc.mk \
--replace '-o ''${DOCOWN}' "" \
--replace '-g ''${DOCGRP}' ""
for mk in $BSDSRCDIR/share/mk/bsd.inc.mk $BSDSRCDIR/share/mk/bsd.kinc.mk; do
substituteInPlace $mk \
--replace '-o ''${BINOWN}' "" \
--replace '-g ''${BINGRP}' ""
done
substituteInPlace $BSDSRCDIR/share/mk/bsd.kmodule.mk \
--replace '-o ''${KMODULEOWN}' "" \
--replace '-g ''${KMODULEGRP}' ""
substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \
--replace '-o ''${LIBOWN}' "" \
--replace '-g ''${LIBGRP}' "" \
--replace '-o ''${DEBUGOWN}' "" \
--replace '-g ''${DEBUGGRP}' ""
substituteInPlace $BSDSRCDIR/share/mk/bsd.lua.mk \
--replace '-o ''${LIBOWN}' "" \
--replace '-g ''${LIBGRP}' ""
substituteInPlace $BSDSRCDIR/share/mk/bsd.man.mk \
--replace '-o ''${MANOWN}' "" \
--replace '-g ''${MANGRP}' ""
substituteInPlace $BSDSRCDIR/share/mk/bsd.nls.mk \
--replace '-o ''${NLSOWN}' "" \
--replace '-g ''${NLSGRP}' ""
substituteInPlace $BSDSRCDIR/share/mk/bsd.prog.mk \
--replace '-o ''${BINOWN}' "" \
--replace '-g ''${BINGRP}' "" \
--replace '-o ''${RUMPBINOWN}' "" \
--replace '-g ''${RUMPBINGRP}' "" \
--replace '-o ''${DEBUGOWN}' "" \
--replace '-g ''${DEBUGGRP}' ""
postPatch =
''
substituteInPlace $BSDSRCDIR/share/mk/bsd.doc.mk \
--replace '-o ''${DOCOWN}' "" \
--replace '-g ''${DOCGRP}' ""
for mk in $BSDSRCDIR/share/mk/bsd.inc.mk $BSDSRCDIR/share/mk/bsd.kinc.mk; do
substituteInPlace $mk \
--replace '-o ''${BINOWN}' "" \
--replace '-g ''${BINGRP}' ""
done
substituteInPlace $BSDSRCDIR/share/mk/bsd.kmodule.mk \
--replace '-o ''${KMODULEOWN}' "" \
--replace '-g ''${KMODULEGRP}' ""
substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \
--replace '-o ''${LIBOWN}' "" \
--replace '-g ''${LIBGRP}' "" \
--replace '-o ''${DEBUGOWN}' "" \
--replace '-g ''${DEBUGGRP}' ""
substituteInPlace $BSDSRCDIR/share/mk/bsd.lua.mk \
--replace '-o ''${LIBOWN}' "" \
--replace '-g ''${LIBGRP}' ""
substituteInPlace $BSDSRCDIR/share/mk/bsd.man.mk \
--replace '-o ''${MANOWN}' "" \
--replace '-g ''${MANGRP}' ""
substituteInPlace $BSDSRCDIR/share/mk/bsd.nls.mk \
--replace '-o ''${NLSOWN}' "" \
--replace '-g ''${NLSGRP}' ""
substituteInPlace $BSDSRCDIR/share/mk/bsd.prog.mk \
--replace '-o ''${BINOWN}' "" \
--replace '-g ''${BINGRP}' "" \
--replace '-o ''${RUMPBINOWN}' "" \
--replace '-g ''${RUMPBINGRP}' "" \
--replace '-o ''${DEBUGOWN}' "" \
--replace '-g ''${DEBUGGRP}' ""
# make needs this to pick up our sys make files
export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
# make needs this to pick up our sys make files
export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \
--replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB='
substituteInPlace $BSDSRCDIR/share/mk/bsd.kinc.mk \
--replace /bin/rm rm
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
--replace '-Wl,--fatal-warnings' "" \
--replace '-Wl,--warn-shared-textrel' ""
'';
substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \
--replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB='
substituteInPlace $BSDSRCDIR/share/mk/bsd.kinc.mk \
--replace /bin/rm rm
''
+ lib.optionalString stdenv.isDarwin ''
substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
--replace '-Wl,--fatal-warnings' "" \
--replace '-Wl,--warn-shared-textrel' ""
'';
postInstall = ''
make -C $BSDSRCDIR/share/mk FILESDIR=$out/share/mk install
'';

View file

@ -1,6 +1,9 @@
{ mkDerivation
, bsdSetupHook, netbsdSetupHook, rsync
, make
{
mkDerivation,
bsdSetupHook,
netbsdSetupHook,
rsync,
make,
}:
mkDerivation {
@ -8,9 +11,11 @@ mkDerivation {
sha256 = "0fh0nrnk18m613m5blrliq2aydciv51qhc0ihsj4k63incwbk90n";
version = "9.2";
buildInputs = [];
buildInputs = [ ];
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook rsync
bsdSetupHook
netbsdSetupHook
rsync
];
skipIncludesPhase = true;

View file

@ -1,82 +1,113 @@
{ lib
, stdenvNoCC, stdenv
, fetchNetBSD
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, install, tsort, lorder
, mandoc, groff, statHook, rsync
, compatIfNeeded
, defaultMakeFlags
{
lib,
stdenvNoCC,
stdenv,
fetchNetBSD,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
tsort,
lorder,
mandoc,
groff,
statHook,
rsync,
compatIfNeeded,
defaultMakeFlags,
}:
lib.makeOverridable (attrs: let
stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
in stdenv'.mkDerivation ({
pname = "${attrs.pname or (baseNameOf attrs.path)}-netbsd";
inherit (attrs) version;
src = fetchNetBSD attrs.path attrs.version attrs.sha256;
lib.makeOverridable (
attrs:
let
stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
in
stdenv'.mkDerivation (
{
pname = "${attrs.pname or (baseNameOf attrs.path)}-netbsd";
inherit (attrs) version;
src = fetchNetBSD attrs.path attrs.version attrs.sha256;
extraPaths = [ ];
extraPaths = [ ];
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
makeMinimal
install tsort lorder mandoc groff statHook rsync
];
buildInputs = compatIfNeeded;
nativeBuildInputs = [
bsdSetupHook
netbsdSetupHook
makeMinimal
install
tsort
lorder
mandoc
groff
statHook
rsync
];
buildInputs = compatIfNeeded;
HOST_SH = stdenv'.shell;
HOST_SH = stdenv'.shell;
MACHINE_ARCH = {
i486 = "i386";
i586 = "i386";
i686 = "i386";
}.${stdenv'.hostPlatform.parsed.cpu.name}
or stdenv'.hostPlatform.parsed.cpu.name;
MACHINE_ARCH =
{
i486 = "i386";
i586 = "i386";
i686 = "i386";
}
.${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name;
MACHINE = {
x86_64 = "amd64";
aarch64 = "evbarm64";
i486 = "i386";
i586 = "i386";
i686 = "i386";
}.${stdenv'.hostPlatform.parsed.cpu.name}
or stdenv'.hostPlatform.parsed.cpu.name;
MACHINE =
{
x86_64 = "amd64";
aarch64 = "evbarm64";
i486 = "i386";
i586 = "i386";
i686 = "i386";
}
.${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name;
COMPONENT_PATH = attrs.path;
COMPONENT_PATH = attrs.path;
makeFlags = defaultMakeFlags;
makeFlags = defaultMakeFlags;
strictDeps = true;
strictDeps = true;
meta = with lib; {
maintainers = with maintainers; [ matthewbauer qyliss ];
platforms = platforms.unix;
license = licenses.bsd2;
};
} // lib.optionalAttrs stdenv'.hasCC {
# TODO should CC wrapper set this?
CPP = "${stdenv'.cc.targetPrefix}cpp";
} // lib.optionalAttrs stdenv'.isDarwin {
MKRELRO = "no";
} // lib.optionalAttrs (stdenv'.cc.isClang or false) {
HAVE_LLVM = lib.versions.major (lib.getVersion stdenv'.cc.cc);
} // lib.optionalAttrs (stdenv'.cc.isGNU or false) {
HAVE_GCC = lib.versions.major (lib.getVersion stdenv'.cc.cc);
} // lib.optionalAttrs (stdenv'.isx86_32) {
USE_SSP = "no";
} // lib.optionalAttrs (attrs.headersOnly or false) {
installPhase = "includesPhase";
dontBuild = true;
} // attrs // {
# Files that use NetBSD-specific macros need to have nbtool_config.h
# included ahead of them on non-NetBSD platforms.
postPatch = lib.optionalString (!stdenv'.hostPlatform.isNetBSD) ''
set +e
grep -Zlr "^__RCSID
^__BEGIN_DECLS" $COMPONENT_PATH | xargs -0r grep -FLZ nbtool_config.h |
xargs -0tr sed -i '0,/^#/s//#include <nbtool_config.h>\n\0/'
set -e
'' + attrs.postPatch or "";
}))
meta = with lib; {
maintainers = with maintainers; [
matthewbauer
qyliss
];
platforms = platforms.unix;
license = licenses.bsd2;
};
}
// lib.optionalAttrs stdenv'.hasCC {
# TODO should CC wrapper set this?
CPP = "${stdenv'.cc.targetPrefix}cpp";
}
// lib.optionalAttrs stdenv'.isDarwin { MKRELRO = "no"; }
// lib.optionalAttrs (stdenv'.cc.isClang or false) {
HAVE_LLVM = lib.versions.major (lib.getVersion stdenv'.cc.cc);
}
// lib.optionalAttrs (stdenv'.cc.isGNU or false) {
HAVE_GCC = lib.versions.major (lib.getVersion stdenv'.cc.cc);
}
// lib.optionalAttrs (stdenv'.isx86_32) { USE_SSP = "no"; }
// lib.optionalAttrs (attrs.headersOnly or false) {
installPhase = "includesPhase";
dontBuild = true;
}
// attrs
// {
# Files that use NetBSD-specific macros need to have nbtool_config.h
# included ahead of them on non-NetBSD platforms.
postPatch =
lib.optionalString (!stdenv'.hostPlatform.isNetBSD) ''
set +e
grep -Zlr "^__RCSID
^__BEGIN_DECLS" $COMPONENT_PATH | xargs -0r grep -FLZ nbtool_config.h |
xargs -0tr sed -i '0,/^#/s//#include <nbtool_config.h>\n\0/'
set -e
''
+ attrs.postPatch or "";
}
)
)

View file

@ -5,4 +5,3 @@ mkDerivation {
version = "9.2";
sha256 = "1nxc302vgmjhm3yqdivqyfzslrg0vjpbss44s74rcryrl19mma9r";
}

View file

@ -1,5 +1,3 @@
{ makeSetupHook }:
makeSetupHook {
name = "netbsd-setup-hook";
} ./setup-hook.sh
makeSetupHook { name = "netbsd-setup-hook"; } ./setup-hook.sh

View file

@ -1,4 +1,8 @@
{ makeSetupHook, writeText, stat }:
{
makeSetupHook,
writeText,
stat,
}:
# stat isn't in POSIX, and NetBSD stat supports a completely
# different range of flags than GNU stat, so including it in PATH
@ -6,9 +10,8 @@
# NetBSD's build system and NetBSD stat without including it in
# PATH.
makeSetupHook {
name = "netbsd-stat-hook";
} (writeText "netbsd-stat-hook-impl" ''
makeFlagsArray+=(TOOL_STAT=${stat}/bin/stat)
'')
makeSetupHook { name = "netbsd-stat-hook"; } (
writeText "netbsd-stat-hook-impl" ''
makeFlagsArray+=(TOOL_STAT=${stat}/bin/stat)
''
)

View file

@ -1,7 +1,12 @@
{ mkDerivation
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, install, mandoc, groff, rsync
{
mkDerivation,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
rsync,
}:
# Don't add this to nativeBuildInputs directly.
@ -12,8 +17,12 @@ mkDerivation {
version = "9.2";
sha256 = "18nqwlndfc34qbbgqx5nffil37jfq9aw663ippasfxd2hlyc106x";
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
install mandoc groff rsync
install
mandoc
groff
rsync
];
}

View file

@ -1,9 +1,20 @@
{ lib, mkDerivation
, include
, bsdSetupHook, netbsdSetupHook
, makeMinimal, install, tsort, lorder, statHook, rsync, uudecode, config, genassym
, defaultMakeFlags
, common
{
lib,
mkDerivation,
include,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
tsort,
lorder,
statHook,
rsync,
uudecode,
config,
genassym,
defaultMakeFlags,
common,
}:
{
path = "sys";
@ -29,23 +40,34 @@
''
substituteInPlace sys/arch/i386/stand/efiboot/Makefile.efiboot \
--replace "-nocombreloc" "-z nocombreloc"
'' +
# multiple header dirs, see above
include.postPatch;
''
+
# multiple header dirs, see above
include.postPatch;
CONFIG = "GENERIC";
propagatedBuildInputs = [ include ];
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
makeMinimal install tsort lorder statHook rsync uudecode config genassym
bsdSetupHook
netbsdSetupHook
makeMinimal
install
tsort
lorder
statHook
rsync
uudecode
config
genassym
];
postConfigure = ''
pushd arch/$MACHINE/conf
config $CONFIG
popd
''
postConfigure =
''
pushd arch/$MACHINE/conf
config $CONFIG
popd
''
# multiple header dirs, see above
+ include.postConfigure;
@ -68,5 +90,4 @@
meta.platforms = lib.platforms.netbsd;
extraPaths = [ common ];
}

View file

@ -1,21 +1,49 @@
{ lib, mkDerivation
, include
, bsdSetupHook, netbsdSetupHook
, makeMinimal, install, tsort, lorder, statHook, rsync, uudecode, config, genassym
, defaultMakeFlags
, common
{
lib,
mkDerivation,
include,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
tsort,
lorder,
statHook,
rsync,
uudecode,
config,
genassym,
defaultMakeFlags,
common,
}:
let
base = import ./base.nix {
inherit
lib mkDerivation include bsdSetupHook netbsdSetupHook makeMinimal install
tsort lorder statHook rsync uudecode config genassym defaultMakeFlags
common;
lib
mkDerivation
include
bsdSetupHook
netbsdSetupHook
makeMinimal
install
tsort
lorder
statHook
rsync
uudecode
config
genassym
defaultMakeFlags
common
;
};
in
mkDerivation (base // {
mkDerivation (
base
// {
pname = "sys-headers";
installPhase = "includesPhase";
dontBuild = true;
noCC = true;
})
}
)

View file

@ -1,21 +1,49 @@
{ lib, mkDerivation
, include
, bsdSetupHook, netbsdSetupHook
, makeMinimal, install, tsort, lorder, statHook, rsync, uudecode, config, genassym
, defaultMakeFlags
, common
{
lib,
mkDerivation,
include,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
tsort,
lorder,
statHook,
rsync,
uudecode,
config,
genassym,
defaultMakeFlags,
common,
}:
let
base = import ./base.nix {
inherit
lib mkDerivation include bsdSetupHook netbsdSetupHook makeMinimal install
tsort lorder statHook rsync uudecode config genassym defaultMakeFlags
common;
lib
mkDerivation
include
bsdSetupHook
netbsdSetupHook
makeMinimal
install
tsort
lorder
statHook
rsync
uudecode
config
genassym
defaultMakeFlags
common
;
};
in
mkDerivation (base // {
mkDerivation (
base
// {
pname = "sys";
installPhase = null;
noCC = false;
dontBuild = false;
})
}
)

View file

@ -1,11 +1,17 @@
{ mkDerivation
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, install, mandoc, groff, nbperf, rsync
, compatIfNeeded
, defaultMakeFlags
, libterminfo
, fetchNetBSD
{
mkDerivation,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
nbperf,
rsync,
compatIfNeeded,
defaultMakeFlags,
libterminfo,
fetchNetBSD,
}:
mkDerivation {
@ -15,9 +21,14 @@ mkDerivation {
HOSTPROG = "tic";
buildInputs = compatIfNeeded;
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
install mandoc groff nbperf rsync
install
mandoc
groff
nbperf
rsync
];
makeFlags = defaultMakeFlags ++ [ "TOOLDIR=$(out)" ];
extraPaths = [

View file

@ -1,7 +1,12 @@
{ mkDerivation
, bsdSetupHook, netbsdSetupHook
, makeMinimal
, install, mandoc, groff, rsync
{
mkDerivation,
bsdSetupHook,
netbsdSetupHook,
makeMinimal,
install,
mandoc,
groff,
rsync,
}:
mkDerivation {
@ -9,8 +14,12 @@ mkDerivation {
version = "9.2";
sha256 = "1dqvf9gin29nnq3c4byxc7lfd062pg7m84843zdy6n0z63hnnwiq";
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
install mandoc groff rsync
install
mandoc
groff
rsync
];
}

View file

@ -1,4 +1,8 @@
{ lib, mkDerivation, stdenv }:
{
lib,
mkDerivation,
stdenv,
}:
mkDerivation {
path = "usr.bin/uudecode";
@ -7,4 +11,3 @@ mkDerivation {
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isLinux "-DNO_BASE64";
NIX_LDFLAGS = lib.optional stdenv.isDarwin "-lresolv";
}