Merge pull request #309577 from obsidiansystems/bsd-reformat

bsd treewide: Run RFC formatter
This commit is contained in:
John Ericson 2024-05-06 15:08:43 -04:00 committed by GitHub
commit f571081899
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
67 changed files with 1627 additions and 934 deletions

View File

@ -108,3 +108,6 @@ fb0e5be84331188a69b3edd31679ca6576edb75a
# postgresql: move packages.nix to ext/default.nix
719034f6f6749d624faa28dff259309fc0e3e730
# pkgs/os-specific/bsd: Reformat with nixfmt-rfc-style 2024-03-01
3fe3b055adfc020e6a923c466b6bcd978a13069a

View File

@ -32,6 +32,7 @@ jobs:
# Each environment variable beginning with NIX_FMT_PATHS_ is a list of
# paths to check with nixfmt.
env:
NIX_FMT_PATHS_BSD: pkgs/os-specific/bsd
NIX_FMT_PATHS_MPVSCRIPTS: pkgs/applications/video/mpv/scripts
# Format paths related to the Nixpkgs CUDA ecosystem.
NIX_FMT_PATHS_CUDA: |

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': {
mkBsdArch =
stdenv':
{
x86_64 = "amd64";
aarch64 = "arm64";
i486 = "i386";
i586 = "i386";
i686 = "i386";
}.${stdenv'.hostPlatform.parsed.cpu.name}
or stdenv'.hostPlatform.parsed.cpu.name;
}
.${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) [
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[@]}"
'')
''
)

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,15 +20,18 @@ in
mkDerivation rec {
pname = "compat";
path = "tools/build";
extraPaths = [
extraPaths =
[
"lib/libc/db"
"lib/libc/stdlib" # getopt
"lib/libc/gen" # getcap
"lib/libc/locale" # rpmatch
] ++ lib.optionals stdenv.hostPlatform.isLinux [
]
++ lib.optionals stdenv.hostPlatform.isLinux [
"lib/libc/string" # strlcpy
"lib/libutil"
] ++ [
]
++ [
"contrib/libc-pwcache"
"contrib/libc-vis"
"sys/libkern"
@ -59,9 +69,9 @@ mkDerivation rec {
"sys/sys/elf_common.h"
"sys/sys/elf_generic.h"
"sys/${mkBsdArch stdenv}/include"
] ++ lib.optionals stdenv.hostPlatform.isx86 [
"sys/x86/include"
] ++ [
]
++ lib.optionals stdenv.hostPlatform.isx86 [ "sys/x86/include" ]
++ [
"sys/sys/queue.h"
"sys/sys/md5.h"
@ -89,12 +99,14 @@ mkDerivation rec {
/${patchesRoot}/compat-fix-typedefs-locations.patch
];
preBuild = ''
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 ''
''
+ lib.optionalString stdenv.hostPlatform.isx86 ''
cp ../../sys/x86/include/elf.h ../../sys/x86
'';
@ -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 = ''
preIncludes =
''
mkdir -p $out/{0,1}-include
cp --no-preserve=mode -r cross-build/include/common/* $out/0-include
'' + lib.optionalString stdenv.hostPlatform.isLinux ''
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
cp --no-preserve=mode -r cross-build/include/linux/* $out/1-include
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
''
+ 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 {
@ -16,18 +23,20 @@ mkDerivation {
];
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
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 {
''
);
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,13 +1,19 @@
{ lib, mkDerivation, stdenv }:
{
lib,
mkDerivation,
stdenv,
}:
mkDerivation {
path = "contrib/bmake";
version = "9.2";
postPatch = ''
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 ''
''
+ lib.optionalString stdenv.isDarwin ''
substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
--replace '-Wl,--fatal-warnings' "" \
--replace '-Wl,--warn-shared-textrel' ""
@ -15,6 +21,5 @@ mkDerivation {
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,22 +1,33 @@
{ 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
lib.makeOverridable (
attrs:
let
stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
in stdenv'.mkDerivation (rec {
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
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")"
@ -30,9 +41,14 @@ in stdenv'.mkDerivation (rec {
extraPaths = [ ];
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
bsdSetupHook
freebsdSetupHook
makeMinimal
install tsort lorder mandoc groff #statHook
install
tsort
lorder
mandoc
groff # statHook
];
buildInputs = compatIfNeeded;
@ -61,18 +77,23 @@ in stdenv'.mkDerivation (rec {
platforms = platforms.unix;
license = licenses.bsd2;
};
} // lib.optionalAttrs stdenv'.hasCC {
}
// 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) {
}
// 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) {
}
// 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) {
}
// lib.optionalAttrs (stdenv'.isx86_32) { USE_SSP = "no"; }
// lib.optionalAttrs (attrs.headersOnly or false) {
installPhase = "includesPhase";
dontBuild = true;
} // attrs))
}
// 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" ''
makeSetupHook { name = "netbsd-stat-hook"; } (
writeText "netbsd-stat-hook-impl" ''
makeFlagsArray+=(TOOL_STAT=${stat}/bin/stat)
'')
''
)

View File

@ -1,20 +1,44 @@
{ 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
mkDerivation (
let
cfg = "MINIMAL";
in rec {
in
rec {
path = "sys";
nativeBuildInputs = [
bsdSetupHook freebsdSetupHook
makeMinimal install mandoc groff
bsdSetupHook
freebsdSetupHook
makeMinimal
install
mandoc
groff
config rpcgen file2c gawk uudecode xargs-j
config
rpcgen
file2c
gawk
uudecode
xargs-j
#ctfconvert
];
@ -34,7 +58,7 @@ in rec {
KODIR = "${builtins.placeholder "out"}/kernel";
KMODDIR = "${builtins.placeholder "out"}/kernel";
DTBDIR = "${builtins.placeholder"out"}/dbt";
DTBDIR = "${builtins.placeholder "out"}/dbt";
KERN_DEBUGDIR = "${builtins.placeholder "out"}/debug";
KERN_DEBUGDIR_KODIR = "${KERN_DEBUGDIR}/kernel";
@ -64,4 +88,5 @@ in rec {
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
bsdSetupHook
freebsdSetupHook
makeMinimal
install
mandoc
groff
];
}

View File

@ -1,27 +1,39 @@
{ stdenv, lib, stdenvNoCC
, makeScopeWithSplicing', generateSplicesForMkScope
, buildPackages
, fetchcvs
{
stdenv,
lib,
stdenvNoCC,
makeScopeWithSplicing',
generateSplicesForMkScope,
buildPackages,
fetchcvs,
}:
makeScopeWithSplicing' {
otherSplices = generateSplicesForMkScope "netbsd";
f = (self: lib.packagesFromDirectoryRecursive {
f = (
self:
lib.packagesFromDirectoryRecursive {
callPackage = self.callPackage;
directory = ./pkgs;
} // (let inherit (self) mkDerivation; in {
}
// {
fetchNetBSD = path: version: sha256: fetchcvs {
fetchNetBSD =
path: version: sha256:
fetchcvs {
cvsRoot = ":pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot";
module = "src/${path}";
inherit sha256;
tag = "netbsd-${lib.replaceStrings ["."] ["-"] version}-RELEASE";
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"}"
"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;
@ -33,26 +45,39 @@ makeScopeWithSplicing' {
mkDerivation = self.callPackage ./pkgs/mkDerivation.nix {
inherit stdenv stdenvNoCC;
inherit (buildPackages.netbsd) netbsdSetupHook makeMinimal install tsort lorder;
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;
inherit (self)
install
include
libc
libutil
;
};
install = self.callPackage ./pkgs/install/package.nix {
inherit (self) fts mtree make compatIfNeeded;
inherit (self)
fts
mtree
make
compatIfNeeded
;
inherit (buildPackages.buildPackages) rsync;
inherit (buildPackages.netbsd) makeMinimal;
};
@ -64,9 +89,7 @@ makeScopeWithSplicing' {
};
# See note in pkgs/stat/hook.nix
statHook = self.callPackage ./pkgs/stat/hook.nix {
inherit (self) stat;
};
statHook = self.callPackage ./pkgs/stat/hook.nix { inherit (self) stat; };
tsort = self.callPackage ./pkgs/tsort.nix {
inherit (buildPackages.netbsd) makeMinimal install;
@ -86,20 +109,30 @@ makeScopeWithSplicing' {
include = self.callPackage ./pkgs/include.nix {
inherit (buildPackages.netbsd)
makeMinimal install nbperf rpcgen;
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;
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 { };
@ -109,14 +142,27 @@ makeScopeWithSplicing' {
netbsdSetupHook
makeMinimal
install
genassym gencat lorder tsort statHook;
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
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 {
@ -125,13 +171,17 @@ makeScopeWithSplicing' {
netbsdSetupHook
makeMinimal
install
genassym gencat lorder tsort statHook rpcgen;
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,10 +37,13 @@ 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 [
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
@ -41,7 +52,8 @@ mkDerivation (let
];
nativeBuildInputs = commonDeps ++ [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
rsync
];
@ -50,7 +62,9 @@ mkDerivation (let
# temporarily use gnuinstall for bootstrapping
# bsdinstall will be built later
makeFlags = defaultMakeFlags ++ [
makeFlags =
defaultMakeFlags
++ [
"INSTALL=${coreutils}/bin/install"
"DATADIR=$(out)/share"
# Can't sort object files yet
@ -58,14 +72,17 @@ mkDerivation (let
"TSORT=cat"
# Can't process man pages yet
"MKSHARE=no"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
]
++ 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,7 +96,8 @@ mkDerivation (let
makeFlagsArray+=('INSTALL_SYMLINK=''${INSTALL} ''${SYMLINK} ''${RENAME}')
'';
postInstall = ''
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
@ -103,18 +121,26 @@ mkDerivation (let
# 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 ''
''
+ 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
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,18 +24,25 @@ let
@out@/bin/xinstall "$@"
'';
in
mkDerivation {
mkDerivation {
path = "usr.bin/xinstall";
version = "9.2";
sha256 = "1f6pbz3qv1qcrchdxif8p5lbmnwl8b9nq615hsd3cyl4avd5bfqj";
extraPaths = [ mtree.src make.src ];
extraPaths = [
mtree.src
make.src
];
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
mandoc groff rsync
mandoc
groff
rsync
];
skipIncludesPhase = true;
buildInputs = compatIfNeeded
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!
@ -46,4 +59,4 @@ in
runHook postInstall
'';
setupHook = ./install-setup-hook.sh;
}
}

View File

@ -1,7 +1,8 @@
{ lib
, mkDerivation
, libc
, defaultMakeFlags
{
lib,
mkDerivation,
libc,
defaultMakeFlags,
}:
mkDerivation {
@ -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 ([
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)=");
]
++ lib.optional stdenv.isDarwin "-D__strong_alias(a,b)="
);
propagatedBuildInputs = compatIfNeeded;
MKDOC = "no"; # missing vfontedpr
makeFlags = defaultMakeFlags ++ [ "LIBDO.terminfo=${libterminfo}/lib" ];

View File

@ -1,14 +1,20 @@
{ lib, mkDerivation
, libterminfo, libcurses
, compatIfNeeded
, defaultMakeFlags
{
lib,
mkDerivation,
libterminfo,
libcurses,
compatIfNeeded,
defaultMakeFlags,
}:
mkDerivation {
path = "lib/libedit";
version = "9.2";
sha256 = "1wqhngraxwqk4jgrf5f18jy195yrp7c06n1gf31pbplq79mg1bcj";
buildInputs = [ libterminfo libcurses ];
buildInputs = [
libterminfo
libcurses
];
propagatedBuildInputs = compatIfNeeded;
SHLIBINSTALLDIR = "$(out)/lib";
makeFlags = defaultMakeFlags ++ [ "LIBDO.terminfo=${libterminfo}/lib" ];
@ -23,4 +29,4 @@ mkDerivation {
"-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 // {
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 // {
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 ];
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,11 +1,17 @@
{ lib, mkDerivation, fetchNetBSD, stdenv }:
{
lib,
mkDerivation,
fetchNetBSD,
stdenv,
}:
mkDerivation {
path = "usr.bin/make";
sha256 = "0vi73yicbmbp522qzqvd979cx6zm5jakhy77xh73c1kygf8klccs";
version = "9.2";
postPatch = ''
postPatch =
''
substituteInPlace $BSDSRCDIR/share/mk/bsd.doc.mk \
--replace '-o ''${DOCOWN}' "" \
--replace '-g ''${DOCGRP}' ""
@ -46,7 +52,8 @@ mkDerivation {
--replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB='
substituteInPlace $BSDSRCDIR/share/mk/bsd.kinc.mk \
--replace /bin/rm rm
'' + lib.optionalString stdenv.isDarwin ''
''
+ lib.optionalString stdenv.isDarwin ''
substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
--replace '-Wl,--fatal-warnings' "" \
--replace '-Wl,--warn-shared-textrel' ""

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,17 +1,29 @@
{ 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
lib.makeOverridable (
attrs:
let
stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
in stdenv'.mkDerivation ({
in
stdenv'.mkDerivation (
{
pname = "${attrs.pname or (baseNameOf attrs.path)}-netbsd";
inherit (attrs) version;
src = fetchNetBSD attrs.path attrs.version attrs.sha256;
@ -19,29 +31,38 @@ in stdenv'.mkDerivation ({
extraPaths = [ ];
nativeBuildInputs = [
bsdSetupHook netbsdSetupHook
bsdSetupHook
netbsdSetupHook
makeMinimal
install tsort lorder mandoc groff statHook rsync
install
tsort
lorder
mandoc
groff
statHook
rsync
];
buildInputs = compatIfNeeded;
HOST_SH = stdenv'.shell;
MACHINE_ARCH = {
MACHINE_ARCH =
{
i486 = "i386";
i586 = "i386";
i686 = "i386";
}.${stdenv'.hostPlatform.parsed.cpu.name}
or stdenv'.hostPlatform.parsed.cpu.name;
}
.${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name;
MACHINE = {
MACHINE =
{
x86_64 = "amd64";
aarch64 = "evbarm64";
i486 = "i386";
i586 = "i386";
i686 = "i386";
}.${stdenv'.hostPlatform.parsed.cpu.name}
or stdenv'.hostPlatform.parsed.cpu.name;
}
.${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name;
COMPONENT_PATH = attrs.path;
@ -50,33 +71,43 @@ in stdenv'.mkDerivation ({
strictDeps = true;
meta = with lib; {
maintainers = with maintainers; [ matthewbauer qyliss ];
maintainers = with maintainers; [
matthewbauer
qyliss
];
platforms = platforms.unix;
license = licenses.bsd2;
};
} // lib.optionalAttrs stdenv'.hasCC {
}
// 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) {
}
// 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) {
}
// 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) {
}
// lib.optionalAttrs (stdenv'.isx86_32) { USE_SSP = "no"; }
// lib.optionalAttrs (attrs.headersOnly or false) {
installPhase = "includesPhase";
dontBuild = true;
} // attrs // {
}
// 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) ''
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 "";
}))
''
+ 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" ''
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,7 +40,8 @@
''
substituteInPlace sys/arch/i386/stand/efiboot/Makefile.efiboot \
--replace "-nocombreloc" "-z nocombreloc"
'' +
''
+
# multiple header dirs, see above
include.postPatch;
@ -37,11 +49,21 @@
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 = ''
postConfigure =
''
pushd arch/$MACHINE/conf
config $CONFIG
popd
@ -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";
}