From b5949d2509adc6d137f59fcb273a92da8fd15d3b Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 28 Jun 2012 14:05:27 -0400 Subject: busybox: Update to 1.20.1 --- pkgs/os-specific/linux/busybox/default.nix | 77 ++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 pkgs/os-specific/linux/busybox/default.nix (limited to 'pkgs/os-specific') diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix new file mode 100644 index 000000000000..ab0873e7ddca --- /dev/null +++ b/pkgs/os-specific/linux/busybox/default.nix @@ -0,0 +1,77 @@ +{stdenv, fetchurl, enableStatic ? false, extraConfig ? ""}: + +let + configParser = '' + function parseconfig { + while read LINE; do + NAME=`echo "$LINE" | cut -d \ -f 1` + OPTION=`echo "$LINE" | cut -d \ -f 2` + + if test -z "$NAME"; then + continue + fi + + if test "$NAME" == "CLEAR"; then + echo "parseconfig: CLEAR" + echo > .config + fi + + echo "parseconfig: removing $NAME" + sed -i /$NAME'\(=\| \)'/d .config + + echo "parseconfig: setting $NAME=$OPTION" + echo "$NAME=$OPTION" >> .config + done + } + ''; + + nixConfig = '' + CONFIG_PREFIX "$out" + CONFIG_INSTALL_NO_USR y + ''; + + staticConfig = stdenv.lib.optionalString enableStatic '' + CONFIG_STATIC y + ''; + +in + +stdenv.mkDerivation rec { + name = "busybox-1.20.1"; + + src = fetchurl { + url = "http://busybox.net/downloads/${name}.tar.bz2"; + sha256 = "1jb8xh9a0mc73nmnjz7g5k7ym39vrg7grp7zmgmq71gxps55sl9y"; + }; + + configurePhase = '' + make defconfig + ${configParser} + cat << EOF | parseconfig + ${staticConfig} + ${extraConfig} + ${nixConfig} + $extraCrossConfig + EOF + make oldconfig + ''; + + crossAttrs = { + extraCrossConfig = '' + CONFIG_CROSS_COMPILER_PREFIX "${stdenv.cross.config}-" + '' + + (if (stdenv.cross.platform.kernelMajor == "2.4") then '' + CONFIG_IONICE n + '' else ""); + }; + + enableParallelBuilding = true; + + meta = { + description = "Tiny versions of common UNIX utilities in a single small executable"; + homepage = http://busybox.net/; + license = "GPLv2"; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = with stdenv.lib.platforms; linux; + }; +} -- cgit 1.4.1