From 6398791733fff12ce538abf59c0d6adc26e94fe7 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Thu, 12 Apr 2018 14:32:11 -0500 Subject: [PATCH 1/7] unixtools: get rid of modprobe modprobe only exists in Linux kernel. Just use kmod if it's needed. --- pkgs/os-specific/linux/autofs/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 2 +- pkgs/top-level/unix-tools.nix | 3 --- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pkgs/os-specific/linux/autofs/default.nix b/pkgs/os-specific/linux/autofs/default.nix index a7472de1d025..859593e4b9aa 100644 --- a/pkgs/os-specific/linux/autofs/default.nix +++ b/pkgs/os-specific/linux/autofs/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, flex, bison, linuxHeaders, libtirpc, mount, umount, modprobe, nfs-utils, e2fsprogs +{ stdenv, lib, fetchurl, flex, bison, linuxHeaders, libtirpc, mount, umount, nfs-utils, e2fsprogs , libxml2, kerberos, kmod, openldap, sssd, cyrus_sasl, openssl }: let @@ -20,7 +20,7 @@ in stdenv.mkDerivation { export MOUNT=${mount}/bin/mount export MOUNT_NFS=${nfs-utils}/bin/mount.nfs export UMOUNT=${umount}/bin/umount - export MODPROBE=${modprobe}/bin/modprobe + export MODPROBE=${kmod}/bin/modprobe export E2FSCK=${e2fsprogs}/bin/fsck.ext2 export E3FSCK=${e2fsprogs}/bin/fsck.ext3 export E4FSCK=${e2fsprogs}/bin/fsck.ext4 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 527e6e9cd143..4fc752a8ee1f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21229,6 +21229,6 @@ with pkgs; # Unix tools unixtools = recurseIntoAttrs (callPackages ./unix-tools.nix { }); - inherit (unixtools) hexdump ps logger eject modprobe umount + inherit (unixtools) hexdump ps logger eject umount mount wall hostname more sysctl; } diff --git a/pkgs/top-level/unix-tools.nix b/pkgs/top-level/unix-tools.nix index 89f5e464d5aa..2d62d4e6c64c 100644 --- a/pkgs/top-level/unix-tools.nix +++ b/pkgs/top-level/unix-tools.nix @@ -63,9 +63,6 @@ in rec { logger = singleBinary "logger" { linux = pkgs.utillinux; }; - modprobe = singleBinary "modprobe" { - linux = pkgs.kmod; - }; more = singleBinary "more" { linux = pkgs.utillinux; darwin = more_compat; From ddbaa2dd33116570d6b34f529c8ac092d9fd58d1 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Thu, 12 Apr 2018 17:09:58 -0500 Subject: [PATCH 2/7] libutil-new: fix with newest xcbuild stuff --- .../darwin/apple-source-releases/libutil/new.nix | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pkgs/os-specific/darwin/apple-source-releases/libutil/new.nix b/pkgs/os-specific/darwin/apple-source-releases/libutil/new.nix index 2c75f3966dbf..7facea2b8936 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/libutil/new.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/libutil/new.nix @@ -4,16 +4,12 @@ appleDerivation { buildInputs = [ xcbuild ]; - dontUseXcbuild = true; - prePatch = '' substituteInPlace tzlink.c \ --replace '#include ' "" ''; - buildPhase = '' - xcodebuild -target util - ''; + xcbuildFlags = "-target util"; installPhase = '' mkdir -p $out/lib $out/include From 5c491ab529d475f1ae843e5abafae7e782385461 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Thu, 12 Apr 2018 17:16:49 -0500 Subject: [PATCH 3/7] diskdev_cmds: init at 593 --- .../darwin/apple-source-releases/default.nix | 2 ++ .../diskdev_cmds/default.nix | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix diff --git a/pkgs/os-specific/darwin/apple-source-releases/default.nix b/pkgs/os-specific/darwin/apple-source-releases/default.nix index 6019c20dd409..849c9ef03b82 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/default.nix @@ -44,6 +44,7 @@ let file_cmds = "264.1.1"; shell_cmds = "187"; system_cmds = "550.6"; + diskdev_cmds = "593"; }; "osx-10.11.5" = { Libc = "1082.50.1"; # 10.11.6 still unreleased :/ @@ -243,6 +244,7 @@ let adv_cmds = applePackage "adv_cmds/xcode.nix" "osx-10.11.6" "12gbv35i09aij9g90p6b3x2f3ramw43qcb2gjrg8lzkzmwvcyw9q" {}; basic_cmds = applePackage "basic_cmds" "osx-10.11.6" "0hvab4b1v5q2x134hdkal0rmz5gsdqyki1vb0dbw4py1bqf0yaw9" {}; developer_cmds = applePackage "developer_cmds" "osx-10.11.6" "1r9c2b6dcl22diqf90x58psvz797d3lxh4r2wppr7lldgbgn24di" {}; + diskdev_cmds = applePackage "diskdev_cmds" "osx-10.11.6" "1ssdyiaq5m1zfy96yy38yyknp682ki6bvabdqd5z18fa0rv3m2ar" {}; network_cmds = applePackage "network_cmds" "osx-10.11.6" "0lhi9wz84qr1r2ab3fb4nvmdg9gxn817n5ldg7zw9gnf3wwn42kw" {}; file_cmds = applePackage "file_cmds" "osx-10.11.6" "1zfxbmasps529pnfdjvc13p7ws2cfx8pidkplypkswyff0nff4wp" {}; shell_cmds = applePackage "shell_cmds" "osx-10.11.6" "0084k271v66h4jqp7q7rmjvv7w4mvhx3aq860qs8jbd30canm86n" {}; diff --git a/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix b/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix new file mode 100644 index 000000000000..aba2472af602 --- /dev/null +++ b/pkgs/os-specific/darwin/apple-source-releases/diskdev_cmds/default.nix @@ -0,0 +1,32 @@ +{ stdenv, appleDerivation, xcbuild, lib, hostPlatform, Libc, xnu, libutil-new }: + +appleDerivation { + buildInputs = [ xcbuild libutil-new ]; + + NIX_CFLAGS_COMPILE = "-I."; + NIX_LDFLAGS = "-lutil"; + patchPhase = '' + # ugly hacks for missing headers + # most are bsd related - probably should make this a drv + unpackFile ${Libc.src} + unpackFile ${xnu.src} + mkdir System sys machine i386 + cp xnu-*/bsd/sys/disklabel.h sys + cp xnu-*/bsd/machine/disklabel.h machine + cp xnu-*/bsd/i386/disklabel.h i386 + cp -r xnu-*/bsd/sys System + cp -r Libc-*/uuid System + ''; + installPhase = '' + install -D Products/Release/libdisk.a $out/lib/libdisk.a + rm Products/Release/libdisk.a + for bin in Products/Release/*; do + install -D $bin $out/bin/$(basename $bin) + done + ''; + + meta = { + platforms = stdenv.lib.platforms.darwin; + maintainers = with stdenv.lib.maintainers; [ matthewbauer ]; + }; +} From 1914ef6040cee60b6dde0654b1080e8d29c78aeb Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Thu, 12 Apr 2018 17:17:26 -0500 Subject: [PATCH 4/7] unixtools: add mount, umount for darwin --- pkgs/top-level/unix-tools.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/top-level/unix-tools.nix b/pkgs/top-level/unix-tools.nix index 2d62d4e6c64c..3041ef4f16bc 100644 --- a/pkgs/top-level/unix-tools.nix +++ b/pkgs/top-level/unix-tools.nix @@ -69,6 +69,7 @@ in rec { }; mount = singleBinary "mount" { linux = pkgs.utillinux; + darwin = pkgs.darwin.diskdev_cmds; }; netstat = singleBinary "netstat" { linux = pkgs.nettools; @@ -96,6 +97,7 @@ in rec { }; umount = singleBinary "umount" { linux = pkgs.utillinux; + darwin = pkgs.darwin.diskdev_cmds; }; whereis = singleBinary "whereis" { linux = pkgs.utillinux; From 5211410e69ccf686caf0210ef68999aab9aed59e Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Thu, 12 Apr 2018 18:27:11 -0500 Subject: [PATCH 5/7] top: init at 108 --- .../darwin/apple-source-releases/default.nix | 2 ++ .../darwin/apple-source-releases/top/default.nix | 11 +++++++++++ 2 files changed, 13 insertions(+) create mode 100644 pkgs/os-specific/darwin/apple-source-releases/top/default.nix diff --git a/pkgs/os-specific/darwin/apple-source-releases/default.nix b/pkgs/os-specific/darwin/apple-source-releases/default.nix index 849c9ef03b82..5d4cd22363d6 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/default.nix @@ -45,6 +45,7 @@ let shell_cmds = "187"; system_cmds = "550.6"; diskdev_cmds = "593"; + top = "108"; }; "osx-10.11.5" = { Libc = "1082.50.1"; # 10.11.6 still unreleased :/ @@ -249,6 +250,7 @@ let file_cmds = applePackage "file_cmds" "osx-10.11.6" "1zfxbmasps529pnfdjvc13p7ws2cfx8pidkplypkswyff0nff4wp" {}; shell_cmds = applePackage "shell_cmds" "osx-10.11.6" "0084k271v66h4jqp7q7rmjvv7w4mvhx3aq860qs8jbd30canm86n" {}; system_cmds = applePackage "system_cmds" "osx-10.11.6" "1h46j2c5v02pkv5d9fyv6cpgyg0lczvwicrx6r9s210cl03l77jl" {}; + top = applePackage "top" "osx-10.11.6" "0i9120rfwapgwdvjbfg0ya143i29s1m8zbddsxh39pdc59xnsg5l" {}; security_systemkeychain = applePackage "security_systemkeychain" "osx-10.10.5" "0xviskdgxsail15npi0billyiysvljlmg38mmhnr7qi4ymnnjr90" {}; diff --git a/pkgs/os-specific/darwin/apple-source-releases/top/default.nix b/pkgs/os-specific/darwin/apple-source-releases/top/default.nix new file mode 100644 index 000000000000..f262d0c74732 --- /dev/null +++ b/pkgs/os-specific/darwin/apple-source-releases/top/default.nix @@ -0,0 +1,11 @@ +{xcbuild, appleDerivation, apple_sdk, ncurses, libutil-new}: + +appleDerivation { + buildInputs = [ xcbuild apple_sdk.frameworks.IOKit ncurses libutil-new ]; + NIX_LDFLAGS = "-lutil"; + installPhase = '' + install -D Products/Release/libtop.a $out/lib/libtop.a + install -D Products/Release/libtop.h $out/include/libtop.h + install -D Products/Release/top $out/bin/top + ''; +} From 8287ba10fc7df5ae1cfcdd9057eb5e31f15a0824 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Thu, 12 Apr 2018 18:36:21 -0500 Subject: [PATCH 6/7] unix-tools: cleanup things - Adds ifconfig to nettools - Adds top to procps - Adds fsck, fdisk, mount, umount, quota to utillinux --- pkgs/top-level/unix-tools.nix | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/unix-tools.nix b/pkgs/top-level/unix-tools.nix index 3041ef4f16bc..5bf9278ea426 100644 --- a/pkgs/top-level/unix-tools.nix +++ b/pkgs/top-level/unix-tools.nix @@ -48,6 +48,14 @@ in rec { linux = pkgs.utillinux; darwin = pkgs.getopt; }; + fdisk = singleBinary "fdisk" { + linux = pkgs.utillinux; + darwin = pkgs.darwin.diskdev_cmds; + }; + fsck = singleBinary "fsck" { + linux = pkgs.utillinux; + darwin = pkgs.darwin.diskdev_cmds; + }; hexdump = singleBinary "hexdump" { linux = pkgs.utillinux; darwin = pkgs.darwin.shell_cmds; @@ -83,6 +91,10 @@ in rec { linux = pkgs.procps; darwin = pkgs.darwin.ps; }; + quota = singleBinary "quota" { + linux = pkgs.utillinux; + darwin = pkgs.darwin.diskdev_cmds; + }; route = singleBinary "route" { linux = pkgs.nettools; darwin = pkgs.darwin.network_cmds; @@ -95,6 +107,10 @@ in rec { linux = pkgs.procps; darwin = pkgs.darwin.system_cmds; }; + top = singleBinary "top" { + linux = pkgs.procps; + darwin = pkgs.darwin.top; + }; umount = singleBinary "umount" { linux = pkgs.utillinux; darwin = pkgs.darwin.diskdev_cmds; @@ -116,16 +132,17 @@ in rec { procps = buildEnv { name = "procps-compat"; - paths = [ sysctl ps ]; + paths = [ ps sysctl top ]; }; utillinux = buildEnv { name = "utillinux-compat"; - paths = [ getopt hexdump script whereis write ]; + paths = [ fsck fdisk getopt hexdump mount + quota script umount whereis write ]; }; nettools = buildEnv { name = "nettools-compat"; - paths = [ arp hostname netstat route ]; + paths = [ arp hostname ifconfig netstat route ]; }; } From 23467e207feb13d2ca783f0d36a21988e037507b Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Thu, 12 Apr 2018 18:42:21 -0500 Subject: [PATCH 7/7] top: add meta --- .../darwin/apple-source-releases/top/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/darwin/apple-source-releases/top/default.nix b/pkgs/os-specific/darwin/apple-source-releases/top/default.nix index f262d0c74732..4ddec2a30c90 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/top/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/top/default.nix @@ -1,4 +1,4 @@ -{xcbuild, appleDerivation, apple_sdk, ncurses, libutil-new}: +{xcbuild, appleDerivation, apple_sdk, ncurses, libutil-new, lib}: appleDerivation { buildInputs = [ xcbuild apple_sdk.frameworks.IOKit ncurses libutil-new ]; @@ -8,4 +8,8 @@ appleDerivation { install -D Products/Release/libtop.h $out/include/libtop.h install -D Products/Release/top $out/bin/top ''; + meta = { + platforms = lib.platforms.darwin; + maintainers = with lib.maintainers; [ matthewbauer ]; + }; }