From 88e69dbc520606a38a09ab5e910667ed153a5079 Mon Sep 17 00:00:00 2001 From: hhm Date: Wed, 6 Feb 2019 19:59:38 -0500 Subject: [PATCH] toybox: init at 0.8.0 B"H toybox package, supporting static building via enableStatic, and custom configurations via extraConfig and enableMinimal parameters parseconfig shell function, and misc other parts, are based on busybox package derivation --- pkgs/tools/misc/toybox/default.nix | 62 ++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 64 insertions(+) create mode 100644 pkgs/tools/misc/toybox/default.nix diff --git a/pkgs/tools/misc/toybox/default.nix b/pkgs/tools/misc/toybox/default.nix new file mode 100644 index 000000000000..5a979be249e7 --- /dev/null +++ b/pkgs/tools/misc/toybox/default.nix @@ -0,0 +1,62 @@ +{ + stdenv, lib, fetchFromGitHub, buildPackages, + enableStatic ? false, + enableMinimal ? false, + extraConfig ? "" +}: + +stdenv.mkDerivation rec { + name = "${pname}-${version}"; + pname = "toybox"; + version = "0.8.0"; + + src = fetchFromGitHub { + owner = "landley"; + repo = pname; + rev = version; + sha256 = "00q6vlc06xbhcjcyqkyp66d1pv7qgwhs00gk4vyixhjqh80giwzl"; + }; + + buildInputs = lib.optionals enableStatic [ stdenv.cc.libc stdenv.cc.libc.static ]; + + postPatch = "patchShebangs scripts"; + + inherit extraConfig; + passAsFile = [ "extraConfig" ]; + + configurePhase = '' + make ${if enableMinimal then + "allnoconfig" + else + if stdenv.isFreeBSD then + "freebsd_defconfig" + else + if stdenv.isDarwin then + "macos_defconfig" + else + "defconfig" + } + + cat $extraConfigPath .config > .config- + mv .config- .config + + make oldconfig + ''; + + makeFlags = [ "PREFIX=$(out)" ] ++ lib.optional enableStatic "LDFLAGS=--static"; + + # tests currently (as of 0.8.0) get stuck in an infinite loop... + # ...this is fixed in latest git, so doCheck can likely be enabled for next release + # see https://github.com/landley/toybox/commit/b928ec480cd73fd83511c0f5ca786d1b9f3167c3 + #doCheck = true; + checkTarget = "tests"; + + meta = with stdenv.lib; { + description = "Lightweight implementation of some Unix command line utilities"; + homepage = https://landley.net/toybox/; + license = licenses.bsd0; + platforms = with platforms; linux ++ darwin ++ freebsd; + maintainers = with maintainers; [ hhm ]; + priority = 10; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4bb678f9dee9..c20337829c88 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5862,6 +5862,8 @@ in toxvpn = callPackage ../tools/networking/toxvpn { }; + toybox = callPackage ../tools/misc/toybox { }; + tpmmanager = callPackage ../applications/misc/tpmmanager { }; tpm-quote-tools = callPackage ../tools/security/tpm-quote-tools { };