nixpkgs/pkgs/tools/misc/toybox/default.nix
John Ericson f52263ced0 treewide: Start to break up static overlay
We can use use `stdenv.hostPlatform.isStatic` instead, and move the
logic per package. The least opionated benefit of this is that it makes
it much easier to replace packages with modified ones, as there is no
longer any issue of overlay order.

CC @FRidh @matthewbauer
2021-01-03 19:18:16 +00:00

71 lines
1.9 KiB
Nix

{
stdenv, lib, fetchFromGitHub, which,
buildPackages,
enableStatic ? stdenv.hostPlatform.isStatic,
enableMinimal ? false,
extraConfig ? ""
}:
stdenv.mkDerivation rec {
pname = "toybox";
version = "0.8.4";
src = fetchFromGitHub {
owner = "landley";
repo = pname;
rev = version;
sha256 = "0cgbmv6qk1haj709hjx5q4sl7wgh91i459gzs1203adwc7rvk6jv";
};
depsBuildBuild = [ buildPackages.stdenv.cc ]; # needed for cross
buildInputs = lib.optionals enableStatic [ stdenv.cc.libc stdenv.cc.libc.static ];
postPatch = "patchShebangs .";
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)/bin" ] ++ lib.optional enableStatic "LDFLAGS=--static";
installTargets = [ "install_flat" ];
# 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;
checkInputs = [ which ]; # used for tests with checkFlags = [ "DEBUG=true" ];
checkTarget = "tests";
NIX_CFLAGS_COMPILE = "-Wno-error";
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;
# https://github.com/NixOS/nixpkgs/issues/101229
broken = stdenv.isDarwin;
maintainers = with maintainers; [ hhm ];
priority = 10;
};
}