summary refs log tree commit diff
path: root/pkgs/os-specific
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-06-28 14:05:27 -0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-06-28 14:05:56 -0400
commitb5949d2509adc6d137f59fcb273a92da8fd15d3b (patch)
tree7a3954d6035dfafd72a7e4ebbccf4317e59d3f55 /pkgs/os-specific
parentaa5b45fc3eccd7dca111fab3a040d313bce44285 (diff)
downloadnixlib-b5949d2509adc6d137f59fcb273a92da8fd15d3b.tar
nixlib-b5949d2509adc6d137f59fcb273a92da8fd15d3b.tar.gz
nixlib-b5949d2509adc6d137f59fcb273a92da8fd15d3b.tar.bz2
nixlib-b5949d2509adc6d137f59fcb273a92da8fd15d3b.tar.lz
nixlib-b5949d2509adc6d137f59fcb273a92da8fd15d3b.tar.xz
nixlib-b5949d2509adc6d137f59fcb273a92da8fd15d3b.tar.zst
nixlib-b5949d2509adc6d137f59fcb273a92da8fd15d3b.zip
busybox: Update to 1.20.1
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix77
1 files changed, 77 insertions, 0 deletions
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;
+  };
+}