3
0
Fork 0
forked from mirrors/nixpkgs

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
This commit is contained in:
hhm 2019-02-06 19:59:38 -05:00
parent 1c4630b17a
commit 88e69dbc52
2 changed files with 64 additions and 0 deletions

View file

@ -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;
};
}

View file

@ -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 { };