about summary refs log tree commit diff
path: root/pkgs/os-specific/linux
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r--pkgs/os-specific/linux/915resolution/default.nix2
-rw-r--r--pkgs/os-specific/linux/acpi-call/default.nix4
-rw-r--r--pkgs/os-specific/linux/ati-drivers/builder.sh6
-rw-r--r--pkgs/os-specific/linux/aufs/2.1.nix2
-rw-r--r--pkgs/os-specific/linux/aufs/2.nix2
-rw-r--r--pkgs/os-specific/linux/aufs/3.nix4
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix2
-rw-r--r--pkgs/os-specific/linux/cramfsswap/builder.sh2
-rw-r--r--pkgs/os-specific/linux/exmap/default.nix4
-rw-r--r--pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/ipw2100/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/ipw2200/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-1000-ucode/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-3945-ucode/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-4965-ucode/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-5000-ucode/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-5150-ucode/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-6000-ucode/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-6000g2a-ucode/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-6000g2b-ucode/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/ralink/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/rt2860/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/rt2870/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/rt73/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/rtl8192c/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/zd1211/default.nix2
-rw-r--r--pkgs/os-specific/linux/fxload/default.nix6
-rw-r--r--pkgs/os-specific/linux/hal/default.nix6
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.4.nix2
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.6.18.5.nix25
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.6.28.nix2
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.6.32.nix2
-rw-r--r--pkgs/os-specific/linux/kernel-headers/builder.sh9
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix62
-rw-r--r--pkgs/os-specific/linux/kernel/aufs2-33.patch82
-rw-r--r--pkgs/os-specific/linux/kernel/aufs2.1-37.patch368
-rw-r--r--pkgs/os-specific/linux/kernel/builder.sh4
-rw-r--r--pkgs/os-specific/linux/kernel/getline.patch34
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.25.nix163
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.26.nix177
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.27.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.28.nix227
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.29.nix230
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.31.nix214
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.32.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.33.nix214
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.34.nix211
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.36.nix209
-rw-r--r--pkgs/os-specific/linux/kernel/linux-2.6.37.nix208
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix78
-rw-r--r--pkgs/os-specific/linux/klibc/shrunk.nix2
-rw-r--r--pkgs/os-specific/linux/kudzu/builder.sh8
-rw-r--r--pkgs/os-specific/linux/libcap/default.nix2
-rw-r--r--pkgs/os-specific/linux/lsiutil/default.nix2
-rw-r--r--pkgs/os-specific/linux/mingetty/default.nix2
-rw-r--r--pkgs/os-specific/linux/module-init-tools/default.nix21
-rw-r--r--pkgs/os-specific/linux/module-init-tools/module-dir.patch120
-rw-r--r--pkgs/os-specific/linux/nfs-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/nss_ldap/default.nix2
-rw-r--r--pkgs/os-specific/linux/numactl/default.nix2
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder-legacy.sh8
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder.sh20
-rw-r--r--pkgs/os-specific/linux/opengl/xorg-sys/builder.sh2
-rw-r--r--pkgs/os-specific/linux/ov511/ov511-2.30-builder.sh2
-rw-r--r--pkgs/os-specific/linux/ov511/ov511-2.32-builder.sh2
-rw-r--r--pkgs/os-specific/linux/pcmciautils/default.nix2
-rw-r--r--pkgs/os-specific/linux/pmount/default.nix8
-rw-r--r--pkgs/os-specific/linux/qc-usb/builder.sh2
-rw-r--r--pkgs/os-specific/linux/radeontools/default.nix2
-rw-r--r--pkgs/os-specific/linux/sysklogd/builder.sh6
-rw-r--r--pkgs/os-specific/linux/tcp-wrapper/builder.sh10
-rw-r--r--pkgs/os-specific/linux/tunctl/default.nix2
-rw-r--r--pkgs/os-specific/linux/upower/default.nix4
-rw-r--r--pkgs/os-specific/linux/upstart/default.nix2
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix (renamed from pkgs/os-specific/linux/util-linux-ng/default.nix)12
-rw-r--r--pkgs/os-specific/linux/wis-go7007/default.nix8
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix4
-rw-r--r--pkgs/os-specific/linux/xf86-input-multitouch/default.nix2
-rw-r--r--pkgs/os-specific/linux/xf86-input-wacom/default.nix2
-rw-r--r--pkgs/os-specific/linux/zen-kernel/2.6.32-zen4.nix75
-rw-r--r--pkgs/os-specific/linux/zen-kernel/2.6.33-zen1.nix78
-rw-r--r--pkgs/os-specific/linux/zen-kernel/config-blocks.nix263
83 files changed, 250 insertions, 3036 deletions
diff --git a/pkgs/os-specific/linux/915resolution/default.nix b/pkgs/os-specific/linux/915resolution/default.nix
index 48ab97d91064..cfb71690ad5d 100644
--- a/pkgs/os-specific/linux/915resolution/default.nix
+++ b/pkgs/os-specific/linux/915resolution/default.nix
@@ -7,5 +7,5 @@ stdenv.mkDerivation {
     sha256 = "1m5nfzgwaglqabpm2l2mjqvigz1z0dj87cmj2pjbbzxmmpapv0lq";
   };
   buildPhase = "rm *.o 915resolution; make";
-  installPhase = "ensureDir $out/sbin; cp 915resolution $out/sbin/";
+  installPhase = "mkdir -p $out/sbin; cp 915resolution $out/sbin/";
 }
diff --git a/pkgs/os-specific/linux/acpi-call/default.nix b/pkgs/os-specific/linux/acpi-call/default.nix
index d7c9e2c3695e..3fececf6c6db 100644
--- a/pkgs/os-specific/linux/acpi-call/default.nix
+++ b/pkgs/os-specific/linux/acpi-call/default.nix
@@ -18,9 +18,9 @@ stdenv.mkDerivation {
  
   installPhase = ''
     kernelVersion=$(cd ${kernel}/lib/modules && ls)
-    ensureDir $out/lib/modules/$kernelVersion/misc
+    mkdir -p $out/lib/modules/$kernelVersion/misc
     cp acpi_call.ko $out/lib/modules/$kernelVersion/misc
-    ensureDir $out/bin
+    mkdir -p $out/bin
     cp test_off.sh $out/bin/test_discrete_video_off.sh
   '';
 
diff --git a/pkgs/os-specific/linux/ati-drivers/builder.sh b/pkgs/os-specific/linux/ati-drivers/builder.sh
index 1fd6234b48e2..b05093d89157 100644
--- a/pkgs/os-specific/linux/ati-drivers/builder.sh
+++ b/pkgs/os-specific/linux/ati-drivers/builder.sh
@@ -136,7 +136,7 @@ GCC_MAJOR="`gcc --version | grep -o -e ") ." | head -1 | cut -d " " -f 2`"
 
 { # install
 
-  ensureDir $out/lib/xorg
+  mkdir -p $out/lib/xorg
 
   cp -r common/usr/include $out
   cp -r common/usr/sbin $out
@@ -152,7 +152,7 @@ GCC_MAJOR="`gcc --version | grep -o -e ") ." | head -1 | cut -d " " -f 2`"
   cp -r $DIR_DEPENDING_ON_XORG_VERSION/usr/X11R6/$lib_arch/* $out/lib/xorg
 
   t=$out/lib/modules/${kernelVersion}/kernel/drivers/misc
-  ensureDir $t
+  mkdir -p $t
 
   cp ./common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko $t
 
@@ -174,7 +174,7 @@ GCC_MAJOR="`gcc --version | grep -o -e ") ." | head -1 | cut -d " " -f 2`"
 }
 
 { # build samples
-  ensureDir $out/bin
+  mkdir -p $out/bin
 
   mkdir -p samples
   cd samples
diff --git a/pkgs/os-specific/linux/aufs/2.1.nix b/pkgs/os-specific/linux/aufs/2.1.nix
index f6a3a6dffc26..1539775a2a17 100644
--- a/pkgs/os-specific/linux/aufs/2.1.nix
+++ b/pkgs/os-specific/linux/aufs/2.1.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
 
   installPhase =
     ''
-      ensureDir $out/lib/modules/${kernel.version}/misc
+      mkdir -p $out/lib/modules/${kernel.version}/misc
       cp -v aufs.ko $out/lib/modules/${kernel.version}/misc
 
       # Install the headers because aufs2.1-util requires them.
diff --git a/pkgs/os-specific/linux/aufs/2.nix b/pkgs/os-specific/linux/aufs/2.nix
index 696ed57b8603..4d80ddae0b87 100644
--- a/pkgs/os-specific/linux/aufs/2.nix
+++ b/pkgs/os-specific/linux/aufs/2.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
 
   installPhase =
     ''
-      ensureDir $out/lib/modules/${kernel.version}/misc
+      mkdir -p $out/lib/modules/${kernel.version}/misc
       cp aufs.ko $out/lib/modules/${kernel.version}/misc
 
       # Install the headers because aufs2-util requires them.
diff --git a/pkgs/os-specific/linux/aufs/3.nix b/pkgs/os-specific/linux/aufs/3.nix
index ec3c5aec85ba..731098134b58 100644
--- a/pkgs/os-specific/linux/aufs/3.nix
+++ b/pkgs/os-specific/linux/aufs/3.nix
@@ -22,11 +22,11 @@ stdenv.mkDerivation {
 
   installPhase =
     ''
-      ensureDir $out/lib/modules/${kernel.modDirVersion}/misc
+      mkdir -p $out/lib/modules/${kernel.modDirVersion}/misc
       cp -v aufs.ko $out/lib/modules/${kernel.modDirVersion}/misc
 
       # Install the headers because aufs3-util requires them.
-      ensureDir $out/include/linux
+      mkdir -p $out/include/linux
       cp -v usr/include/linux/aufs_type.h $out/include/linux
     '';
 
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index e03e4a5cda46..1c5573017299 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
     ''
       binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
       docDir="$out/share/doc/broadcom-sta/"
-      ensureDir "$binDir" "$docDir"
+      mkdir -p "$binDir" "$docDir"
       cp wl.ko "$binDir"
       cp lib/LICENSE.txt "$docDir"
     '';
diff --git a/pkgs/os-specific/linux/cramfsswap/builder.sh b/pkgs/os-specific/linux/cramfsswap/builder.sh
index 14e6a11f9d05..51a5b11dda69 100644
--- a/pkgs/os-specific/linux/cramfsswap/builder.sh
+++ b/pkgs/os-specific/linux/cramfsswap/builder.sh
@@ -1,6 +1,6 @@
 source $stdenv/setup
 
 export DESTDIR=$out
-ensureDir $out/usr/bin
+mkdir -p $out/usr/bin
 
 genericBuild
diff --git a/pkgs/os-specific/linux/exmap/default.nix b/pkgs/os-specific/linux/exmap/default.nix
index 4f9f85e648a0..c39b2acf4e1b 100644
--- a/pkgs/os-specific/linux/exmap/default.nix
+++ b/pkgs/os-specific/linux/exmap/default.nix
@@ -31,10 +31,10 @@ stdenv.mkDerivation rec {
   #checkPhase = "make test"
 
   installPhase = ''
-    ensureDir "$out/share/${name}"
+    mkdir -p "$out/share/${name}"
     cp kernel/*.ko "$out/share/${name}"
 
-    ensureDir "$out/bin"
+    mkdir -p "$out/bin"
     cp src/{gexmap,exmtool,elftool,showproc} "$out/bin"
   '';
 
diff --git a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
index c35f6c2d9bdb..e2ba47abb9a0 100644
--- a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
+++ b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
@@ -53,7 +53,7 @@ in stdenv.mkDerivation {
   buildInputs = [ dpkg ];
 
   installPhase = ''
-    ensureDir "$out/"
+    mkdir -p "$out/"
     cp -r lib/firmware/* "$out/"
   '';
 
diff --git a/pkgs/os-specific/linux/firmware/ipw2100/default.nix b/pkgs/os-specific/linux/firmware/ipw2100/default.nix
index 2ffa8c3e8375..3548a841aab0 100644
--- a/pkgs/os-specific/linux/firmware/ipw2100/default.nix
+++ b/pkgs/os-specific/linux/firmware/ipw2100/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   # says: "Your rights to redistribute the Software shall be
   # contingent upon your installation of this Agreement in its
   # entirety in the same directory as the Software."
-  installPhase = "ensureDir $out; cp * $out";
+  installPhase = "mkdir -p $out; cp * $out";
   
   meta = {
     # "... you may transfer a copy of the Software ... provided such
diff --git a/pkgs/os-specific/linux/firmware/ipw2200/default.nix b/pkgs/os-specific/linux/firmware/ipw2200/default.nix
index ed6a82e0df7b..402636862eca 100644
--- a/pkgs/os-specific/linux/firmware/ipw2200/default.nix
+++ b/pkgs/os-specific/linux/firmware/ipw2200/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   # says: "Your rights to redistribute the Software shall be
   # contingent upon your installation of this Agreement in its
   # entirety in the same directory as the Software."
-  installPhase = "ensureDir $out; cp * $out";
+  installPhase = "mkdir -p $out; cp * $out";
   
   meta = {
     # "... you may transfer a copy of the Software ... provided such
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-1000-ucode/default.nix b/pkgs/os-specific/linux/firmware/iwlwifi-1000-ucode/default.nix
index c09bd5c5aca9..2660c0b2493d 100644
--- a/pkgs/os-specific/linux/firmware/iwlwifi-1000-ucode/default.nix
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-1000-ucode/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildPhase = "true";
 
   installPhase = ''
-    ensureDir "$out"
+    mkdir -p "$out"
     chmod -x *
     cp * "$out"
   '';
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-3945-ucode/default.nix b/pkgs/os-specific/linux/firmware/iwlwifi-3945-ucode/default.nix
index 389d416f2a5d..afe2357995c2 100644
--- a/pkgs/os-specific/linux/firmware/iwlwifi-3945-ucode/default.nix
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-3945-ucode/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   
   buildPhase = "true";
 
-  installPhase = "ensureDir $out; chmod -x *; cp * $out";
+  installPhase = "mkdir -p $out; chmod -x *; cp * $out";
   
   meta = {
     description = "Firmware for the Intel 3945ABG wireless card";
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-4965-ucode/default.nix b/pkgs/os-specific/linux/firmware/iwlwifi-4965-ucode/default.nix
index b75eae6acf21..3e3ad74adb34 100644
--- a/pkgs/os-specific/linux/firmware/iwlwifi-4965-ucode/default.nix
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-4965-ucode/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildPhase = "true";
 
   installPhase = ''
-    ensureDir "$out"
+    mkdir -p "$out"
     chmod -x *
     cp * "$out"
 
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix b/pkgs/os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix
index 0948d381f7f1..e1771c7a5cfb 100644
--- a/pkgs/os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildPhase = "true";
 
   installPhase = ''
-    ensureDir "$out"
+    mkdir -p "$out"
     chmod -x *
     cp * "$out"
   '';
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-5000-ucode/default.nix b/pkgs/os-specific/linux/firmware/iwlwifi-5000-ucode/default.nix
index 8dc69e0a6a3c..b8ee5f388d19 100644
--- a/pkgs/os-specific/linux/firmware/iwlwifi-5000-ucode/default.nix
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-5000-ucode/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildPhase = "true";
 
   installPhase = ''
-    ensureDir "$out"
+    mkdir -p "$out"
     chmod -x *
     cp * "$out"
   '';
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-5150-ucode/default.nix b/pkgs/os-specific/linux/firmware/iwlwifi-5150-ucode/default.nix
index 0505a940d263..0d409bd8427c 100644
--- a/pkgs/os-specific/linux/firmware/iwlwifi-5150-ucode/default.nix
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-5150-ucode/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildPhase = "true";
 
   installPhase = ''
-    ensureDir "$out"
+    mkdir -p "$out"
     chmod -x *
     cp * "$out"
   '';
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-6000-ucode/default.nix b/pkgs/os-specific/linux/firmware/iwlwifi-6000-ucode/default.nix
index 5b7e2dc7b5e4..e5f3effa4b73 100644
--- a/pkgs/os-specific/linux/firmware/iwlwifi-6000-ucode/default.nix
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-6000-ucode/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildPhase = "true";
 
   installPhase = ''
-    ensureDir "$out"
+    mkdir -p "$out"
     chmod -x *
     cp * "$out"
   '';
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-6000g2a-ucode/default.nix b/pkgs/os-specific/linux/firmware/iwlwifi-6000g2a-ucode/default.nix
index 80aa6d367be7..e5fe73ca4984 100644
--- a/pkgs/os-specific/linux/firmware/iwlwifi-6000g2a-ucode/default.nix
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-6000g2a-ucode/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildPhase = "true";
 
   installPhase = ''
-    ensureDir "$out"
+    mkdir -p "$out"
     chmod -x *
     cp * "$out"
   '';
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-6000g2b-ucode/default.nix b/pkgs/os-specific/linux/firmware/iwlwifi-6000g2b-ucode/default.nix
index 580af83ea9de..b3a2a810bf7d 100644
--- a/pkgs/os-specific/linux/firmware/iwlwifi-6000g2b-ucode/default.nix
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-6000g2b-ucode/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildPhase = "true";
 
   installPhase = ''
-    ensureDir "$out"
+    mkdir -p "$out"
     chmod -x *
     cp * "$out"
   '';
diff --git a/pkgs/os-specific/linux/firmware/ralink/default.nix b/pkgs/os-specific/linux/firmware/ralink/default.nix
index 23513d2bf885..abf12fd672b7 100644
--- a/pkgs/os-specific/linux/firmware/ralink/default.nix
+++ b/pkgs/os-specific/linux/firmware/ralink/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   # contingent upon your installation of this Agreement in its
   # entirety in the same directory as the Software."
   installPhase = ''
-    ensureDir $out
+    mkdir -p $out
     cp $src/*.bin $out
     cp $src/LICENSE $out/ralink.LICENSE
   '';
diff --git a/pkgs/os-specific/linux/firmware/rt2860/default.nix b/pkgs/os-specific/linux/firmware/rt2860/default.nix
index 0c8accd2f6c5..0a1cb6555726 100644
--- a/pkgs/os-specific/linux/firmware/rt2860/default.nix
+++ b/pkgs/os-specific/linux/firmware/rt2860/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   # contingent upon your installation of this Agreement in its
   # entirety in the same directory as the Software."
   installPhase = ''
-    ensureDir $out
+    mkdir -p $out
     cp $src/rt2860.bin $out
     cp $src/LICENSE $out/rt2860.LICENSE
   '';
diff --git a/pkgs/os-specific/linux/firmware/rt2870/default.nix b/pkgs/os-specific/linux/firmware/rt2870/default.nix
index 388d3a503436..15de7c30586b 100644
--- a/pkgs/os-specific/linux/firmware/rt2870/default.nix
+++ b/pkgs/os-specific/linux/firmware/rt2870/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   # says: "Your rights to redistribute the Software shall be
   # contingent upon your installation of this Agreement in its
   # entirety in the same directory as the Software."
-  installPhase = "ensureDir $out/${name}; cp *.bin $out; cp *.txt $out/${name}";
+  installPhase = "mkdir -p $out/${name}; cp *.bin $out; cp *.txt $out/${name}";
   
   meta = {
     description = "Firmware for the Ralink RT2870 wireless cards";
diff --git a/pkgs/os-specific/linux/firmware/rt73/default.nix b/pkgs/os-specific/linux/firmware/rt73/default.nix
index 32c097a62df9..953931001394 100644
--- a/pkgs/os-specific/linux/firmware/rt73/default.nix
+++ b/pkgs/os-specific/linux/firmware/rt73/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   # says: "Your rights to redistribute the Software shall be
   # contingent upon your installation of this Agreement in its
   # entirety in the same directory as the Software."
-  installPhase = "ensureDir $out/${name}; cp *.bin $out; cp *.txt $out/${name}";
+  installPhase = "mkdir -p $out/${name}; cp *.bin $out; cp *.txt $out/${name}";
   
   meta = {
     description = "Firmware for the Ralink RT73 wireless card";
diff --git a/pkgs/os-specific/linux/firmware/rtl8192c/default.nix b/pkgs/os-specific/linux/firmware/rtl8192c/default.nix
index ab8749c15369..f06fcb149e86 100644
--- a/pkgs/os-specific/linux/firmware/rtl8192c/default.nix
+++ b/pkgs/os-specific/linux/firmware/rtl8192c/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
 
   phases = [ "installPhase" ];
   installPhase = ''
-    ensureDir $out/rtlwifi
+    mkdir -p $out/rtlwifi
     cp "$src/rtlwifi/rtl8192cfw.bin" "$out/rtlwifi/rtl8192cfw.bin"
   '';
 
diff --git a/pkgs/os-specific/linux/firmware/zd1211/default.nix b/pkgs/os-specific/linux/firmware/zd1211/default.nix
index dfc384b7adb6..a717bd9e1171 100644
--- a/pkgs/os-specific/linux/firmware/zd1211/default.nix
+++ b/pkgs/os-specific/linux/firmware/zd1211/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   
   buildPhase = "true";
 
-  installPhase = "ensureDir $out/zd1211; cp * $out/zd1211";
+  installPhase = "mkdir -p $out/zd1211; cp * $out/zd1211";
   
   meta = {
     description = "Firmware for the ZyDAS ZD1211(b) 802.11a/b/g USB WLAN chip";
diff --git a/pkgs/os-specific/linux/fxload/default.nix b/pkgs/os-specific/linux/fxload/default.nix
index 455c11cb0a97..d21cdd78daf1 100644
--- a/pkgs/os-specific/linux/fxload/default.nix
+++ b/pkgs/os-specific/linux/fxload/default.nix
@@ -22,9 +22,9 @@ stdenv.mkDerivation {
   '';
 
   preInstall = ''
-    ensureDir $out/sbin
-    ensureDir $out/share/man/man8
-    ensureDir $out/share/usb
+    mkdir -p $out/sbin
+    mkdir -p $out/share/man/man8
+    mkdir -p $out/share/usb
   '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/hal/default.nix b/pkgs/os-specific/linux/hal/default.nix
index 718d54f3106e..f1757be94cf0 100644
--- a/pkgs/os-specific/linux/hal/default.nix
+++ b/pkgs/os-specific/linux/hal/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, python, pciutils, expat
 , libusb, dbus, dbus_glib, glib, libuuid, perl
 , perlXMLParser, gettext, zlib, gperf, consolekit, policykit
-, libsmbios, dmidecode, udev, utillinuxng, pmutils, usbutils
+, libsmbios, dmidecode, udev, utillinux, pmutils, usbutils
 , eject, upstart
 }:
 
@@ -51,8 +51,8 @@ stdenv.mkDerivation rec {
       substituteInPlace $i \
         ${changeDmidecode} \
         ${if udev != null then "--replace /sbin/udevadm ${udev}/sbin/udevadm" else ""} \
-        --replace /bin/mount ${utillinuxng}/bin/mount \
-        --replace /bin/umount ${utillinuxng}/bin/umount \
+        --replace /bin/mount ${utillinux}/bin/mount \
+        --replace /bin/umount ${utillinux}/bin/umount \
         --replace /usr/bin/pm-is-supported ${pmutils}/bin/pm-is-supported \
         --replace /usr/sbin/pm ${pmutils}/sbin/pm \
         --replace /sbin/shutdown ${upstart}/sbin/shutdown
diff --git a/pkgs/os-specific/linux/kernel-headers/2.4.nix b/pkgs/os-specific/linux/kernel-headers/2.4.nix
index c179801ca553..32daf5633f79 100644
--- a/pkgs/os-specific/linux/kernel-headers/2.4.nix
+++ b/pkgs/os-specific/linux/kernel-headers/2.4.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    ensureDir $out/include
+    mkdir -p $out/include
     cp -a include/{asm,asm-$platform,acpi,linux,pcmcia,scsi,video} \
       $out/include
   '';
diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.18.5.nix b/pkgs/os-specific/linux/kernel-headers/2.6.18.5.nix
deleted file mode 100644
index 5ecdd77fb873..000000000000
--- a/pkgs/os-specific/linux/kernel-headers/2.6.18.5.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{stdenv, fetchurl, unifdef}:
-
-assert stdenv.isLinux;
-
-stdenv.mkDerivation {
-  name = "linux-headers-2.6.18.5";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = "mirror://kernel/linux/kernel/v2.6/linux-2.6.18.5.tar.bz2";
-    sha256 = "24f0e0011cdae42e3dba56107bb6a60c57c46d1d688a9b0300fec53e80fd1e53";
-  };
-
-  patches = [ ./unifdef-getline.patch ];
-
-  buildInputs = [ unifdef ];
-
-  platform = 
-    if stdenv.system == "i686-linux" then "i386" else
-    if stdenv.system == "x86_64-linux" then "x86_64" else
-    if stdenv.system == "powerpc-linux" then "powerpc" else
-    abort "don't know what the kernel include directory is called for this platform";
-
-  extraIncludeDirs =
-    if stdenv.system == "powerpc-linux" then ["ppc"] else [];
-}
diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.28.nix b/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
index 0b811ae81267..fdbe6cf1bce6 100644
--- a/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
+++ b/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
     make INSTALL_HDR_PATH=$out headers_install
 
     # Some builds (e.g. KVM) want a kernel.release.
-    ensureDir $out/include/config
+    mkdir -p $out/include/config
     echo "${version}-default" > $out/include/config/kernel.release
   '';
 
diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.32.nix b/pkgs/os-specific/linux/kernel-headers/2.6.32.nix
index a4e866581932..a7ec522b3d66 100644
--- a/pkgs/os-specific/linux/kernel-headers/2.6.32.nix
+++ b/pkgs/os-specific/linux/kernel-headers/2.6.32.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
     make INSTALL_HDR_PATH=$out headers_install
 
     # Some builds (e.g. KVM) want a kernel.release.
-    ensureDir $out/include/config
+    mkdir -p $out/include/config
     echo "${version}-default" > $out/include/config/kernel.release
   '';
 
diff --git a/pkgs/os-specific/linux/kernel-headers/builder.sh b/pkgs/os-specific/linux/kernel-headers/builder.sh
deleted file mode 100644
index 05392d5fe24b..000000000000
--- a/pkgs/os-specific/linux/kernel-headers/builder.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-source $stdenv/setup
-
-patchPhase="sed -i '/scsi/d' include/Kbuild"
-
-buildPhase="make mrproper headers_check";
-
-installPhase="make INSTALL_HDR_PATH=$out headers_install"
-
-genericBuild
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
new file mode 100644
index 000000000000..f5fec3d8620c
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, perl, cross ? null }:
+
+assert cross == null -> stdenv.isLinux;
+
+let
+  version = "2.6.35.14";
+  kernelHeadersBaseConfig = if cross == null then
+      stdenv.platform.kernelHeadersBaseConfig
+    else
+      cross.platform.kernelHeadersBaseConfig;
+in
+
+stdenv.mkDerivation {
+  name = "linux-headers-${version}";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.35/linux-${version}.tar.bz2";
+    sha256 = "1wzml7s9karfbk2yi36g1r8fyaq4d4f16yizc68zgchv0xzj39zl";
+  };
+
+  targetConfig = if (cross != null) then cross.config else null;
+
+  platform =
+    if cross != null then cross.platform.kernelArch else
+    if stdenv.system == "i686-linux" then "i386" else
+    if stdenv.system == "x86_64-linux" then "x86_64" else
+    if stdenv.system == "powerpc-linux" then "powerpc" else
+    if stdenv.system == "armv5tel-linux" then "arm" else
+    if stdenv.platform ? kernelArch then stdenv.platform.kernelArch else
+    abort "don't know what the kernel include directory is called for this platform";
+
+  buildInputs = [perl];
+
+  extraIncludeDirs =
+    if cross != null then
+	(if cross.arch == "powerpc" then ["ppc"] else [])
+    else if stdenv.system == "powerpc-linux" then ["ppc"] else [];
+
+  buildPhase = ''
+    if test -n "$targetConfig"; then
+       export ARCH=$platform
+    fi
+    make ${kernelHeadersBaseConfig}
+    make mrproper headers_check
+  '';
+
+  installPhase = ''
+    make INSTALL_HDR_PATH=$out headers_install
+
+    # Some builds (e.g. KVM) want a kernel.release.
+    mkdir -p $out/include/config
+    echo "${version}-default" > $out/include/config/kernel.release
+  '';
+
+  # !!! hacky
+  fixupPhase = ''
+    ln -s asm $out/include/asm-$platform
+    if test "$platform" = "i386" -o "$platform" = "x86_64"; then
+      ln -s asm $out/include/asm-x86
+    fi
+  '';
+}
diff --git a/pkgs/os-specific/linux/kernel/aufs2-33.patch b/pkgs/os-specific/linux/kernel/aufs2-33.patch
deleted file mode 100644
index 49a660b0c9e8..000000000000
--- a/pkgs/os-specific/linux/kernel/aufs2-33.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-ufs2 base patch for linux-2.6.33
-
-diff --git a/fs/namei.c b/fs/namei.c
-index a4855af..1d12d37 100644
---- a/fs/namei.c
-+++ b/fs/namei.c
-@@ -1207,7 +1207,7 @@ out:
-  * needs parent already locked. Doesn't follow mounts.
-  * SMP-safe.
-  */
--static struct dentry *lookup_hash(struct nameidata *nd)
-+struct dentry *lookup_hash(struct nameidata *nd)
- {
-        int err;
- 
-@@ -1217,7 +1217,7 @@ static struct dentry *lookup_hash(struct nameidata *nd)
-        return __lookup_hash(&nd->last, nd->path.dentry, nd);
- }
- 
--static int __lookup_one_len(const char *name, struct qstr *this,
-+int __lookup_one_len(const char *name, struct qstr *this,
-                struct dentry *base, int len)
- {
-        unsigned long hash;
-diff --git a/fs/splice.c b/fs/splice.c
-index 3920866..b13a9a2 100644
---- a/fs/splice.c
-+++ b/fs/splice.c
-@@ -1053,8 +1053,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
- /*
-  * Attempt to initiate a splice from pipe to file.
-  */
--static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
--                          loff_t *ppos, size_t len, unsigned int flags)
-+long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
-+                   loff_t *ppos, size_t len, unsigned int flags)
- {
-        ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
-                                loff_t *, size_t, unsigned int);
-@@ -1081,9 +1081,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
- /*
-  * Attempt to initiate a splice from a file to a pipe.
-  */
--static long do_splice_to(struct file *in, loff_t *ppos,
--                        struct pipe_inode_info *pipe, size_t len,
--                        unsigned int flags)
-+long do_splice_to(struct file *in, loff_t *ppos,
-+                 struct pipe_inode_info *pipe, size_t len,
-+                 unsigned int flags)
- {
-        ssize_t (*splice_read)(struct file *, loff_t *,
-                               struct pipe_inode_info *, size_t, unsigned int);
-diff --git a/include/linux/namei.h b/include/linux/namei.h
-index 05b441d..91bc74e 100644
---- a/include/linux/namei.h
-+++ b/include/linux/namei.h
-@@ -73,6 +73,9 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
- extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
-                int (*open)(struct inode *, struct file *));
- 
-+extern struct dentry *lookup_hash(struct nameidata *nd);
-+extern int __lookup_one_len(const char *name, struct qstr *this,
-+                           struct dentry *base, int len);
- extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
- 
- extern int follow_down(struct path *);
-diff --git a/include/linux/splice.h b/include/linux/splice.h
-index 18e7c7c..8393b5c 100644
---- a/include/linux/splice.h
-+++ b/include/linux/splice.h
-@@ -82,4 +82,10 @@ extern ssize_t splice_to_pipe(struct pipe_inode_info *,
- extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
-                                      splice_direct_actor *);
- 
-+extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
-+                          loff_t *ppos, size_t len, unsigned int flags);
-+extern long do_splice_to(struct file *in, loff_t *ppos,
-+                        struct pipe_inode_info *pipe, size_t len,
-+                        unsigned int flags);
-+
- #endif
-
diff --git a/pkgs/os-specific/linux/kernel/aufs2.1-37.patch b/pkgs/os-specific/linux/kernel/aufs2.1-37.patch
deleted file mode 100644
index 4cb58ad8a57a..000000000000
--- a/pkgs/os-specific/linux/kernel/aufs2.1-37.patch
+++ /dev/null
@@ -1,368 +0,0 @@
-aufs2.1 base patch for linux-2.6.37
-
-diff --git a/fs/namei.c b/fs/namei.c
-index 4ff7ca5..a8c583f 100644
---- a/fs/namei.c
-+++ b/fs/namei.c
-@@ -1161,12 +1161,12 @@ out:
-  * needs parent already locked. Doesn't follow mounts.
-  * SMP-safe.
-  */
--static struct dentry *lookup_hash(struct nameidata *nd)
-+struct dentry *lookup_hash(struct nameidata *nd)
- {
- 	return __lookup_hash(&nd->last, nd->path.dentry, nd);
- }
- 
--static int __lookup_one_len(const char *name, struct qstr *this,
-+int __lookup_one_len(const char *name, struct qstr *this,
- 		struct dentry *base, int len)
- {
- 	unsigned long hash;
-diff --git a/fs/splice.c b/fs/splice.c
-index ce2f025..ff0ae69 100644
---- a/fs/splice.c
-+++ b/fs/splice.c
-@@ -1092,8 +1092,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
- /*
-  * Attempt to initiate a splice from pipe to file.
-  */
--static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
--			   loff_t *ppos, size_t len, unsigned int flags)
-+long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
-+		    loff_t *ppos, size_t len, unsigned int flags)
- {
- 	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
- 				loff_t *, size_t, unsigned int);
-@@ -1120,9 +1120,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
- /*
-  * Attempt to initiate a splice from a file to a pipe.
-  */
--static long do_splice_to(struct file *in, loff_t *ppos,
--			 struct pipe_inode_info *pipe, size_t len,
--			 unsigned int flags)
-+long do_splice_to(struct file *in, loff_t *ppos,
-+		  struct pipe_inode_info *pipe, size_t len,
-+		  unsigned int flags)
- {
- 	ssize_t (*splice_read)(struct file *, loff_t *,
- 			       struct pipe_inode_info *, size_t, unsigned int);
-diff --git a/include/linux/namei.h b/include/linux/namei.h
-index 05b441d..91bc74e 100644
---- a/include/linux/namei.h
-+++ b/include/linux/namei.h
-@@ -73,6 +73,9 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
- extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
- 		int (*open)(struct inode *, struct file *));
- 
-+extern struct dentry *lookup_hash(struct nameidata *nd);
-+extern int __lookup_one_len(const char *name, struct qstr *this,
-+			    struct dentry *base, int len);
- extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
- 
- extern int follow_down(struct path *);
-diff --git a/include/linux/splice.h b/include/linux/splice.h
-index 997c3b4..be9a153 100644
---- a/include/linux/splice.h
-+++ b/include/linux/splice.h
-@@ -89,4 +89,10 @@ extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
- extern void splice_shrink_spd(struct pipe_inode_info *,
- 				struct splice_pipe_desc *);
- 
-+extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
-+			   loff_t *ppos, size_t len, unsigned int flags);
-+extern long do_splice_to(struct file *in, loff_t *ppos,
-+			 struct pipe_inode_info *pipe, size_t len,
-+			 unsigned int flags);
-+
- #endif
-aufs2.1 standalone patch for linux-2.6.37
-
-diff --git a/fs/file_table.c b/fs/file_table.c
-index c3dee38..f529e4d 100644
---- a/fs/file_table.c
-+++ b/fs/file_table.c
-@@ -393,6 +393,8 @@ void file_sb_list_del(struct file *file)
- 	}
- }
- 
-+EXPORT_SYMBOL(file_sb_list_del);
-+
- #ifdef CONFIG_SMP
- 
- /*
-diff --git a/fs/inode.c b/fs/inode.c
-index ae2727a..2c8071a 100644
---- a/fs/inode.c
-+++ b/fs/inode.c
-@@ -82,6 +82,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
-  * the i_state of an inode while it is in use..
-  */
- DEFINE_SPINLOCK(inode_lock);
-+EXPORT_SYMBOL(inode_lock);
- 
- /*
-  * iprune_sem provides exclusion between the kswapd or try_to_free_pages
-diff --git a/fs/namei.c b/fs/namei.c
-index a8c583f..b020c45 100644
---- a/fs/namei.c
-+++ b/fs/namei.c
-@@ -347,6 +347,7 @@ int deny_write_access(struct file * file)
- 
- 	return 0;
- }
-+EXPORT_SYMBOL(deny_write_access);
- 
- /**
-  * path_get - get a reference to a path
-@@ -1165,6 +1166,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
- {
- 	return __lookup_hash(&nd->last, nd->path.dentry, nd);
- }
-+EXPORT_SYMBOL(lookup_hash);
- 
- int __lookup_one_len(const char *name, struct qstr *this,
- 		struct dentry *base, int len)
-@@ -1187,6 +1189,7 @@ int __lookup_one_len(const char *name, struct qstr *this,
- 	this->hash = end_name_hash(hash);
- 	return 0;
- }
-+EXPORT_SYMBOL(__lookup_one_len);
- 
- /**
-  * lookup_one_len - filesystem helper to lookup single pathname component
-diff --git a/fs/namespace.c b/fs/namespace.c
-index 3dbfc07..3998762 100644
---- a/fs/namespace.c
-+++ b/fs/namespace.c
-@@ -1321,6 +1321,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
- 	}
- 	return 0;
- }
-+EXPORT_SYMBOL(iterate_mounts);
- 
- static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
- {
-diff --git a/fs/notify/group.c b/fs/notify/group.c
-index d309f38..f0e9568 100644
---- a/fs/notify/group.c
-+++ b/fs/notify/group.c
-@@ -22,6 +22,7 @@
- #include <linux/srcu.h>
- #include <linux/rculist.h>
- #include <linux/wait.h>
-+#include <linux/module.h>
- 
- #include <linux/fsnotify_backend.h>
- #include "fsnotify.h"
-@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
- 	if (atomic_dec_and_test(&group->refcnt))
- 		fsnotify_destroy_group(group);
- }
-+EXPORT_SYMBOL(fsnotify_put_group);
- 
- /*
-  * Create a new fsnotify_group and hold a reference for the group returned.
-@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
- 
- 	return group;
- }
-+EXPORT_SYMBOL(fsnotify_alloc_group);
-diff --git a/fs/notify/mark.c b/fs/notify/mark.c
-index 325185e..adede09 100644
---- a/fs/notify/mark.c
-+++ b/fs/notify/mark.c
-@@ -113,6 +113,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
- 	if (atomic_dec_and_test(&mark->refcnt))
- 		mark->free_mark(mark);
- }
-+EXPORT_SYMBOL(fsnotify_put_mark);
- 
- /*
-  * Any time a mark is getting freed we end up here.
-@@ -190,6 +191,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
- 	if (unlikely(atomic_dec_and_test(&group->num_marks)))
- 		fsnotify_final_destroy_group(group);
- }
-+EXPORT_SYMBOL(fsnotify_destroy_mark);
- 
- void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
- {
-@@ -277,6 +279,7 @@ err:
- 
- 	return ret;
- }
-+EXPORT_SYMBOL(fsnotify_add_mark);
- 
- /*
-  * clear any marks in a group in which mark->flags & flags is true
-@@ -332,6 +335,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
- 	atomic_set(&mark->refcnt, 1);
- 	mark->free_mark = free_mark;
- }
-+EXPORT_SYMBOL(fsnotify_init_mark);
- 
- static int fsnotify_mark_destroy(void *ignored)
- {
-diff --git a/fs/open.c b/fs/open.c
-index 4197b9e..912817a 100644
---- a/fs/open.c
-+++ b/fs/open.c
-@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
- 	mutex_unlock(&dentry->d_inode->i_mutex);
- 	return ret;
- }
-+EXPORT_SYMBOL(do_truncate);
- 
- static long do_sys_truncate(const char __user *pathname, loff_t length)
- {
-diff --git a/fs/splice.c b/fs/splice.c
-index ff0ae69..1c9e9b0 100644
---- a/fs/splice.c
-+++ b/fs/splice.c
-@@ -1116,6 +1116,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
- 
- 	return splice_write(pipe, out, ppos, len, flags);
- }
-+EXPORT_SYMBOL(do_splice_from);
- 
- /*
-  * Attempt to initiate a splice from a file to a pipe.
-@@ -1142,6 +1143,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
- 
- 	return splice_read(in, ppos, pipe, len, flags);
- }
-+EXPORT_SYMBOL(do_splice_to);
- 
- /**
-  * splice_direct_to_actor - splices data directly between two non-pipes
-diff --git a/security/commoncap.c b/security/commoncap.c
-index 64c2ed9..e58b5d8 100644
---- a/security/commoncap.c
-+++ b/security/commoncap.c
-@@ -929,3 +929,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
- 	}
- 	return ret;
- }
-+EXPORT_SYMBOL(cap_file_mmap);
-diff --git a/security/device_cgroup.c b/security/device_cgroup.c
-index 8d9c48f..29108aa 100644
---- a/security/device_cgroup.c
-+++ b/security/device_cgroup.c
-@@ -515,6 +515,7 @@ found:
- 
- 	return -EPERM;
- }
-+EXPORT_SYMBOL(devcgroup_inode_permission);
- 
- int devcgroup_inode_mknod(int mode, dev_t dev)
- {
-diff --git a/security/security.c b/security/security.c
-index 1b798d3..3b7d2ca 100644
---- a/security/security.c
-+++ b/security/security.c
-@@ -360,6 +360,7 @@ int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode)
- 		return 0;
- 	return security_ops->path_mkdir(dir, dentry, mode);
- }
-+EXPORT_SYMBOL(security_path_mkdir);
- 
- int security_path_rmdir(struct path *dir, struct dentry *dentry)
- {
-@@ -367,6 +368,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
- 		return 0;
- 	return security_ops->path_rmdir(dir, dentry);
- }
-+EXPORT_SYMBOL(security_path_rmdir);
- 
- int security_path_unlink(struct path *dir, struct dentry *dentry)
- {
-@@ -374,6 +376,7 @@ int security_path_unlink(struct path *dir, struct dentry *dentry)
- 		return 0;
- 	return security_ops->path_unlink(dir, dentry);
- }
-+EXPORT_SYMBOL(security_path_unlink);
- 
- int security_path_symlink(struct path *dir, struct dentry *dentry,
- 			  const char *old_name)
-@@ -382,6 +385,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
- 		return 0;
- 	return security_ops->path_symlink(dir, dentry, old_name);
- }
-+EXPORT_SYMBOL(security_path_symlink);
- 
- int security_path_link(struct dentry *old_dentry, struct path *new_dir,
- 		       struct dentry *new_dentry)
-@@ -390,6 +394,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
- 		return 0;
- 	return security_ops->path_link(old_dentry, new_dir, new_dentry);
- }
-+EXPORT_SYMBOL(security_path_link);
- 
- int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
- 			 struct path *new_dir, struct dentry *new_dentry)
-@@ -400,6 +405,7 @@ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
- 	return security_ops->path_rename(old_dir, old_dentry, new_dir,
- 					 new_dentry);
- }
-+EXPORT_SYMBOL(security_path_rename);
- 
- int security_path_truncate(struct path *path)
- {
-@@ -407,6 +413,7 @@ int security_path_truncate(struct path *path)
- 		return 0;
- 	return security_ops->path_truncate(path);
- }
-+EXPORT_SYMBOL(security_path_truncate);
- 
- int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
- 			mode_t mode)
-@@ -415,6 +422,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
- 		return 0;
- 	return security_ops->path_chmod(dentry, mnt, mode);
- }
-+EXPORT_SYMBOL(security_path_chmod);
- 
- int security_path_chown(struct path *path, uid_t uid, gid_t gid)
- {
-@@ -422,6 +430,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
- 		return 0;
- 	return security_ops->path_chown(path, uid, gid);
- }
-+EXPORT_SYMBOL(security_path_chown);
- 
- int security_path_chroot(struct path *path)
- {
-@@ -498,6 +507,7 @@ int security_inode_readlink(struct dentry *dentry)
- 		return 0;
- 	return security_ops->inode_readlink(dentry);
- }
-+EXPORT_SYMBOL(security_inode_readlink);
- 
- int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
- {
-@@ -512,6 +522,7 @@ int security_inode_permission(struct inode *inode, int mask)
- 		return 0;
- 	return security_ops->inode_permission(inode, mask);
- }
-+EXPORT_SYMBOL(security_inode_permission);
- 
- int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
- {
-@@ -611,6 +622,7 @@ int security_file_permission(struct file *file, int mask)
- 
- 	return fsnotify_perm(file, mask);
- }
-+EXPORT_SYMBOL(security_file_permission);
- 
- int security_file_alloc(struct file *file)
- {
-@@ -638,6 +650,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
- 		return ret;
- 	return ima_file_mmap(file, prot);
- }
-+EXPORT_SYMBOL(security_file_mmap);
- 
- int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
- 			    unsigned long prot)
-
diff --git a/pkgs/os-specific/linux/kernel/builder.sh b/pkgs/os-specific/linux/kernel/builder.sh
index 61cb8f280810..5d6d48d2fc3d 100644
--- a/pkgs/os-specific/linux/kernel/builder.sh
+++ b/pkgs/os-specific/linux/kernel/builder.sh
@@ -48,7 +48,7 @@ configurePhase() {
 
 installPhase() {
 
-    ensureDir $out
+    mkdir -p $out
 
     # New kernel versions have a combined tree for i386 and x86_64.
     archDir=$arch
@@ -60,7 +60,7 @@ installPhase() {
     # Copy the bzImage and System.map.
     cp System.map $out
     if test "$arch" = um; then
-        ensureDir $out/bin
+        mkdir -p $out/bin
         cp linux $out/bin
     elif test "$kernelTarget" != "vmlinux"; then
         # In any case we copy the 'vmlinux' ELF in the next lines
diff --git a/pkgs/os-specific/linux/kernel/getline.patch b/pkgs/os-specific/linux/kernel/getline.patch
deleted file mode 100644
index 6ac768b9d865..000000000000
--- a/pkgs/os-specific/linux/kernel/getline.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Allow compilation with recent versions of Glibc.
-From https://patchwork.kernel.org/patch/11166/.
-
-diff --git a/scripts/unifdef.c b/scripts/unifdef.c
-index 552025e..977e682 100644
---- a/scripts/unifdef.c
-+++ b/scripts/unifdef.c
-@@ -206,7 +206,7 @@  static void             done(void);
- static void             error(const char *);
- static int              findsym(const char *);
- static void             flushline(bool);
--static Linetype         getline(void);
-+static Linetype         parseline(void);
- static Linetype         ifeval(const char **);
- static void             ignoreoff(void);
- static void             ignoreon(void);
-@@ -512,7 +512,7 @@  process(void)
- 
- 	for (;;) {
- 		linenum++;
--		lineval = getline();
-+		lineval = parseline();
- 		trans_table[ifstate[depth]][lineval]();
- 		debug("process %s -> %s depth %d",
- 		    linetype_name[lineval],
-@@ -526,7 +526,7 @@  process(void)
-  * help from skipcomment().
-  */
- static Linetype
--getline(void)
-+parseline(void)
- {
- 	const char *cp;
- 	int cursym;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.25.nix b/pkgs/os-specific/linux/kernel/linux-2.6.25.nix
deleted file mode 100644
index 69e5ef641398..000000000000
--- a/pkgs/os-specific/linux/kernel/linux-2.6.25.nix
+++ /dev/null
@@ -1,163 +0,0 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? "", ... }:
-
-import ./generic.nix (
-
-  rec {
-    version = "2.6.25.20";
-  
-    src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "07knyjhvanvclk6xdwi07vfvsmiqciqaj26cn78ayiqqqr9d4f6y";
-    };
-
-    features.iwlwifi = true;
-
-    config =
-      ''
-        # Don't include any debug features.
-        DEBUG_KERNEL n
-
-        # Support drivers that need external firmware.
-        STANDALONE n
-
-        # Make /proc/config.gz available.
-        IKCONFIG_PROC y
-
-        # Optimize with -O2, not -Os.
-        CC_OPTIMIZE_FOR_SIZE n
-
-        # Include the CFQ I/O scheduler in the kernel, rather than as a
-        # module, so that the initrd gets a good I/O scheduler.
-        IOSCHED_CFQ y
-
-        # Disable some expensive (?) features.
-        MARKERS n
-        KPROBES n
-        NUMA? n
-
-        # Enable various subsystems.
-        AUXDISPLAY y # Auxiliary Display support
-        DONGLE y # Serial dongle support
-        HIPPI y
-        MTD_COMPLEX_MAPPINGS y # needed for many devices
-        NET_POCKET y # enable pocket and portable adapters
-        SCSI_LOWLEVEL y # enable lots of SCSI devices
-        SCSI_LOWLEVEL_PCMCIA y
-        SPI y # needed for many devices
-        SPI_MASTER y
-        WAN y
-
-        # Networking options.
-        IP_PNP n
-        IPV6_PRIVACY y
-        IP_DCCP_CCID3 n # experimental
-
-        # Some settings to make sure that fbcondecor works - in particular,
-        # disable tileblitting and the drivers that need it.
-
-        # Enable various FB devices.
-        FB_EFI y
-        FB_NVIDIA_I2C y # Enable DDC Support
-        FB_RIVA_I2C y
-        FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
-        FB_ATY_GX y # Mach64 GX support
-        FB_SAVAGE_I2C y
-        FB_SAVAGE_ACCEL y
-        FB_SIS_300 y
-        FB_SIS_315 y
-        FB_3DFX_ACCEL y
-        FB_TRIDENT_ACCEL y
-        FB_GEODE y
-
-        # Sound.
-        SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
-        SND_USB_CAIAQ_INPUT y
-        PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
-
-        # Enable a bunch of USB storage devices.
-        USB_STORAGE_DATAFAB y
-        USB_STORAGE_FREECOM y
-        USB_STORAGE_ISD200 y
-        USB_STORAGE_USBAT y
-        USB_STORAGE_SDDR09 y
-        USB_STORAGE_SDDR55 y
-        USB_STORAGE_JUMPSHOT y
-        USB_STORAGE_KARMA y
-
-        # USB serial devices.
-        USB_SERIAL_GENERIC y # USB Generic Serial Driver
-        USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
-        USB_SERIAL_KEYSPAN_USA28 y
-        USB_SERIAL_KEYSPAN_USA28X y
-        USB_SERIAL_KEYSPAN_USA28XA y
-        USB_SERIAL_KEYSPAN_USA28XB y
-        USB_SERIAL_KEYSPAN_USA19 y
-        USB_SERIAL_KEYSPAN_USA18X y
-        USB_SERIAL_KEYSPAN_USA19W y
-        USB_SERIAL_KEYSPAN_USA19QW y
-        USB_SERIAL_KEYSPAN_USA19QI y
-        USB_SERIAL_KEYSPAN_USA49W y
-        USB_SERIAL_KEYSPAN_USA49WLC y
-
-        # Filesystem options - in particular, enable extended attributes and
-        # ACLs for all filesystems that support them.
-        EXT2_FS_XATTR y # Ext2 extended attributes
-        EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
-        EXT2_FS_SECURITY y # Ext2 Security Labels
-        EXT2_FS_XIP y # Ext2 execute in place support
-        REISERFS_FS_XATTR y
-        REISERFS_FS_POSIX_ACL y
-        REISERFS_FS_SECURITY y
-        JFS_POSIX_ACL y
-        JFS_SECURITY y
-        XFS_QUOTA y
-        XFS_POSIX_ACL y
-        XFS_RT y # XFS Realtime subvolume support
-        OCFS2_DEBUG_MASKLOG n
-        NFSD_V2_ACL y
-        NFSD_V3 y
-        NFSD_V3_ACL y
-        NFSD_V4 y
-        CIFS_XATTR y
-        CIFS_POSIX y
-
-        # Misc. options.
-        8139TOO_8129 y
-        8139TOO_PIO n # PIO is slower
-        AIC79XX_DEBUG_ENABLE n
-        AIC7XXX_DEBUG_ENABLE n
-        AIC94XX_DEBUG n
-        BLK_DEV_BSG n
-        BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
-        BLK_DEV_IDEACPI y # IDE ACPI support
-        BLK_DEV_IO_TRACE n
-        BT_HCIUART_BCSP y
-        BT_HCIUART_H4 y # UART (H4) protocol support
-        BT_HCIUART_LL y
-        BT_RFCOMM_TTY y # RFCOMM TTY support
-        CPU_FREQ_DEBUG n
-        CRASH_DUMP n
-        DMAR? n # experimental
-        FUSION y # Fusion MPT device support
-        IRDA_ULTRA y # Ultra (connectionless) protocol
-        KALLSYMS_EXTRA_PASS n
-        LOGO n # not needed
-        MEGARAID_NEWGEN y
-        MODVERSIONS y
-        NET_FC y # Fibre Channel driver support
-        PCI_LEGACY y
-        PPP_MULTILINK y # PPP multilink support
-        SCSI_LOGGING y # SCSI logging facility
-        SERIAL_8250 y # 8250/16550 and compatible serial support
-        SLIP_COMPRESSED y # CSLIP compressed headers
-        SLIP_SMART y
-        USB_DEBUG n
-        USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
-        X86_MCE y
-
-        ${extraConfig}
-      '';
-  }
-
-  // args
-)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.26.nix b/pkgs/os-specific/linux/kernel/linux-2.6.26.nix
deleted file mode 100644
index b402cdea7426..000000000000
--- a/pkgs/os-specific/linux/kernel/linux-2.6.26.nix
+++ /dev/null
@@ -1,177 +0,0 @@
-{ stdenv, fetchurl, extraConfig ? "", ... } @ args:
-
-let
-  configWithPlatform = kernelPlatform :
-    ''
-        # Don't include any debug features.
-        DEBUG_KERNEL n
-
-	# Activate /proc/sys/kernel/modprobe
-	KMOD y
-
-        # Support drivers that need external firmware.
-        STANDALONE n
-
-        # Make /proc/config.gz available.
-        IKCONFIG_PROC y
-
-        # Optimize with -O2, not -Os.
-        CC_OPTIMIZE_FOR_SIZE n
-
-        # Virtualisation (KVM, Xen...).
-        PARAVIRT_GUEST y
-        KVM_CLOCK y
-        KVM_GUEST y
-
-        # Include the CFQ I/O scheduler in the kernel, rather than as a
-        # module, so that the initrd gets a good I/O scheduler.
-        IOSCHED_CFQ y
-
-        # Disable some expensive (?) features.
-        MARKERS n
-        KPROBES n
-        NUMA? n
-
-        # Enable various subsystems.
-        ACCESSIBILITY y # Accessibility support
-        AUXDISPLAY y # Auxiliary Display support
-        DONGLE y # Serial dongle support
-        HIPPI y
-        MTD_COMPLEX_MAPPINGS y # needed for many devices
-        NET_POCKET y # enable pocket and portable adapters
-        SCSI_LOWLEVEL y # enable lots of SCSI devices
-        SCSI_LOWLEVEL_PCMCIA y
-        SPI y # needed for many devices
-        SPI_MASTER y
-        WAN y
-
-        # Networking options.
-        IP_PNP n
-        IPV6_PRIVACY y
-
-        # Some settings to make sure that fbcondecor works - in particular,
-        # disable tileblitting and the drivers that need it.
-
-        # Enable various FB devices.
-        FB_EFI y
-        FB_NVIDIA_I2C y # Enable DDC Support
-        FB_RIVA_I2C y
-        FB_ATY_CT y # ach64 CT/VT/GT/LT (incl. 3D RAGE) support
-        FB_ATY_GX y # Mach64 GX support
-        FB_SAVAGE_I2C y
-        FB_SAVAGE_ACCEL y
-        FB_SIS_300 y
-        FB_SIS_315 y
-        FB_3DFX_ACCEL y
-        FB_TRIDENT_ACCEL y
-        FB_GEODE y
-
-        # Sound.
-        SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
-        SND_USB_CAIAQ_INPUT y
-        PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
-
-        # Enable a bunch of USB storage devices.
-        USB_STORAGE_DATAFAB y
-        USB_STORAGE_FREECOM y
-        USB_STORAGE_ISD200 y
-        USB_STORAGE_USBAT y
-        USB_STORAGE_SDDR09 y
-        USB_STORAGE_SDDR55 y
-        USB_STORAGE_JUMPSHOT y
-        USB_STORAGE_ONETOUCH y
-        USB_STORAGE_KARMA y
-        USB_STORAGE_CYPRESS_ATACB y
-
-        # USB serial devices.
-        USB_SERIAL_GENERIC y # USB Generic Serial Driver
-        USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
-        USB_SERIAL_KEYSPAN_USA28 y
-        USB_SERIAL_KEYSPAN_USA28X y
-        USB_SERIAL_KEYSPAN_USA28XA y
-        USB_SERIAL_KEYSPAN_USA28XB y
-        USB_SERIAL_KEYSPAN_USA19 y
-        USB_SERIAL_KEYSPAN_USA18X y
-        USB_SERIAL_KEYSPAN_USA19W y
-        USB_SERIAL_KEYSPAN_USA19QW y
-        USB_SERIAL_KEYSPAN_USA19QI y
-        USB_SERIAL_KEYSPAN_USA49W y
-        USB_SERIAL_KEYSPAN_USA49WLC y
-
-        # Filesystem options - in particular, enable extended attributes and
-        # ACLs for all filesystems that support them.
-        EXT2_FS_XATTR y # Ext2 extended attributes
-        EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
-        EXT2_FS_SECURITY y # Ext2 Security Labels
-        EXT2_FS_XIP y # Ext2 execute in place support
-        REISERFS_FS_XATTR y
-        REISERFS_FS_POSIX_ACL y
-        REISERFS_FS_SECURITY y
-        JFS_POSIX_ACL y
-        JFS_SECURITY y
-        XFS_QUOTA y
-        XFS_POSIX_ACL y
-        XFS_RT y # XFS Realtime subvolume support
-        OCFS2_DEBUG_MASKLOG n
-        NFSD_V2_ACL y
-        NFSD_V3 y
-        NFSD_V3_ACL y
-        NFSD_V4 y
-        CIFS_XATTR y
-        CIFS_POSIX y
-
-        # Misc. options.
-        8139TOO_8129 y
-        8139TOO_PIO n # PIO is slower
-        AIC79XX_DEBUG_ENABLE n
-        AIC7XXX_DEBUG_ENABLE n
-        AIC94XX_DEBUG n
-        BLK_DEV_BSG n
-        BLK_DEV_IDEACPI y # IDE ACPI support
-        BLK_DEV_IO_TRACE n
-        BT_HCIUART_BCSP y
-        BT_HCIUART_H4 y # UART (H4) protocol support
-        BT_HCIUART_LL y
-        BT_RFCOMM_TTY y # RFCOMM TTY support
-        CPU_FREQ_DEBUG n
-        CRASH_DUMP n
-        DMAR? n # experimental
-        FUSION y # Fusion MPT device support
-        IRDA_ULTRA y # Ultra (connectionless) protocol
-        KALLSYMS_EXTRA_PASS n
-        LOGO n # not needed
-        MEDIA_ATTACH y
-        MEGARAID_NEWGEN y
-        MODVERSIONS y
-        NET_FC y # Fibre Channel driver support
-        PCI_LEGACY y
-        PPP_MULTILINK y # PPP multilink support
-        SCSI_LOGGING y # SCSI logging facility
-        SERIAL_8250 y # 8250/16550 and compatible serial support
-        SLIP_COMPRESSED y # CSLIP compressed headers
-        SLIP_SMART y
-        THERMAL_HWMON y # Hardware monitoring support
-        USB_DEBUG n
-        USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
-        X86_MCE y
-
-      ${extraConfig}
-   '';
-in
-
-import ./generic.nix (
-
-  rec {
-    version = "2.6.26.8";
-
-    src = fetchurl {
-      url = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "4f2991378a09bd4ba916236cba200052c18e52e44c9d7e4100337f7df2788dc9";
-    };
-
-    config = configWithPlatform stdenv.platform;
-    configCross = configWithPlatform stdenv.cross.platform;
-  }
-
-  // removeAttrs args ["extraConfig"]
-)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
index 083948fd345b..046b07b9e647 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.27.nix
@@ -3,11 +3,11 @@ args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? "", ... }:
 import ./generic.nix (
 
   rec {
-    version = "2.6.27.59";
+    version = "2.6.27.61";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.27/linux-${version}.tar.bz2";
-      sha256 = "0gvp9djj3s8h1375xdjv6ycd0mgmcbvfmswxkpwxdlplly5hr1kf";
+      sha256 = "1lian4fj84fry3yanammawzsqi7ix9pvic6qfr578xnvsbf5pbi7";
     };
 
     features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.28.nix b/pkgs/os-specific/linux/kernel/linux-2.6.28.nix
deleted file mode 100644
index d8e051a529c6..000000000000
--- a/pkgs/os-specific/linux/kernel/linux-2.6.28.nix
+++ /dev/null
@@ -1,227 +0,0 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? "", ... }:
-
-import ./generic.nix (
-
-  rec {
-    version = "2.6.28.10";
-  
-    src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "10vryshzpgk7vqmb3f0z981r5nci722kfqbjd274qwjyanxlj60b";
-    };
-
-    features.iwlwifi = true;
- 
-    config =
-      ''
-        # Don't include any debug features.
-        DEBUG_KERNEL n
-
-        # Support drivers that need external firmware.
-        STANDALONE n
-
-        # Make /proc/config.gz available.
-        IKCONFIG_PROC y
-
-        # Optimize with -O2, not -Os.
-        CC_OPTIMIZE_FOR_SIZE n
-
-        # Virtualisation (KVM, Xen...).
-        PARAVIRT_GUEST y
-        KVM_CLOCK y
-        KVM_GUEST y
-        XEN n
-
-        # We need 64 GB (PAE) support for Xen guest support.
-        HIGHMEM64G? y
-
-        # Enable the kernel's built-in memory tester.
-        MEMTEST y
-
-        # Include the CFQ I/O scheduler in the kernel, rather than as a
-        # module, so that the initrd gets a good I/O scheduler.
-        IOSCHED_CFQ y
-
-        # Disable some expensive (?) features.
-        MARKERS n
-        KPROBES n
-        NUMA? n
-        PM_TRACE_RTC n
-
-        # Enable various subsystems.
-        ACCESSIBILITY y # Accessibility support
-        AUXDISPLAY y # Auxiliary Display support
-        DONGLE y # Serial dongle support
-        HIPPI y
-        MTD_COMPLEX_MAPPINGS y # needed for many devices
-        NET_POCKET y # enable pocket and portable adapters
-        SCSI_LOWLEVEL y # enable lots of SCSI devices
-        SCSI_LOWLEVEL_PCMCIA y
-        SPI y # needed for many devices
-        SPI_MASTER y
-        WAN y
-
-        # Networking options.
-        IP_PNP n
-        IPV6_PRIVACY y
-        NETFILTER_ADVANCED y
-        IP_VS_PROTO_TCP y
-        IP_VS_PROTO_UDP y
-        IP_VS_PROTO_ESP y
-        IP_VS_PROTO_AH y
-        IP_DCCP_CCID3 n # experimental
-        CLS_U32_PERF y
-        CLS_U32_MARK y
-
-        # Wireless networking.
-        IPW2100_MONITOR y # support promiscuous mode
-        IPW2200_MONITOR y # support promiscuous mode
-        IWLWIFI_LEDS? y
-        IWLWIFI_RFKILL y
-        IWLAGN_SPECTRUM_MEASUREMENT y
-        IWLAGN_LEDS y
-        IWL4965 y # Intel Wireless WiFi 4965AGN
-        IWL5000 y # Intel Wireless WiFi 5000AGN
-        IWL3945_RFKILL y
-        IWL3945_LEDS y
-        HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
-        HOSTAP_FIRMWARE_NVRAM y
-
-        # Some settings to make sure that fbcondecor works - in particular,
-        # disable tileblitting and the drivers that need it.
-
-        # Enable various FB devices.
-        FB_EFI y
-        FB_NVIDIA_I2C y # Enable DDC Support
-        FB_RIVA_I2C y
-        FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
-        FB_ATY_GX y # Mach64 GX support
-        FB_SAVAGE_I2C y
-        FB_SAVAGE_ACCEL y
-        FB_SIS_300 y
-        FB_SIS_315 y
-        FB_3DFX_ACCEL y
-        FB_TRIDENT_ACCEL y
-        FB_GEODE y
-
-        # Sound.
-        SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
-        SND_HDA_INPUT_BEEP y # Support digital beep via input layer
-        SND_USB_CAIAQ_INPUT y
-        PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
-
-        # Enable a bunch of USB storage devices.
-        USB_STORAGE_DATAFAB y
-        USB_STORAGE_FREECOM y
-        USB_STORAGE_ISD200 y
-        USB_STORAGE_USBAT y
-        USB_STORAGE_SDDR09 y
-        USB_STORAGE_SDDR55 y
-        USB_STORAGE_JUMPSHOT y
-        USB_STORAGE_ONETOUCH y
-        USB_STORAGE_KARMA y
-        USB_STORAGE_CYPRESS_ATACB y
-
-        # USB serial devices.
-        USB_SERIAL_GENERIC y # USB Generic Serial Driver
-        USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
-        USB_SERIAL_KEYSPAN_USA28 y
-        USB_SERIAL_KEYSPAN_USA28X y
-        USB_SERIAL_KEYSPAN_USA28XA y
-        USB_SERIAL_KEYSPAN_USA28XB y
-        USB_SERIAL_KEYSPAN_USA19 y
-        USB_SERIAL_KEYSPAN_USA18X y
-        USB_SERIAL_KEYSPAN_USA19W y
-        USB_SERIAL_KEYSPAN_USA19QW y
-        USB_SERIAL_KEYSPAN_USA19QI y
-        USB_SERIAL_KEYSPAN_USA49W y
-        USB_SERIAL_KEYSPAN_USA49WLC y
-
-        # Filesystem options - in particular, enable extended attributes and
-        # ACLs for all filesystems that support them.
-        EXT2_FS_XATTR y # Ext2 extended attributes
-        EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
-        EXT2_FS_SECURITY y # Ext2 Security Labels
-        EXT2_FS_XIP y # Ext2 execute in place support
-        EXT4_FS_POSIX_ACL y
-        EXT4_FS_SECURITY y
-        REISERFS_FS_XATTR y
-        REISERFS_FS_POSIX_ACL y
-        REISERFS_FS_SECURITY y
-        JFS_POSIX_ACL y
-        JFS_SECURITY y
-        XFS_QUOTA y
-        XFS_POSIX_ACL y
-        XFS_RT y # XFS Realtime subvolume support
-        OCFS2_DEBUG_MASKLOG n
-        UBIFS_FS_XATTR y
-        UBIFS_FS_ADVANCED_COMPR y
-        NFSD_V2_ACL y
-        NFSD_V3 y
-        NFSD_V3_ACL y
-        NFSD_V4 y
-        CIFS_XATTR y
-        CIFS_POSIX y
-
-        # Security related features.
-        STRICT_DEVMEM y # Filter access to /dev/mem
-        SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
-
-        # Misc. options.
-        8139TOO_8129 y
-        8139TOO_PIO n # PIO is slower
-        AIC79XX_DEBUG_ENABLE n
-        AIC7XXX_DEBUG_ENABLE n
-        AIC94XX_DEBUG n
-        B43_PCMCIA y
-        BLK_DEV_BSG n
-        BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
-        BLK_DEV_IDEACPI y # IDE ACPI support
-        BLK_DEV_INTEGRITY y
-        BLK_DEV_IO_TRACE n
-        BSD_PROCESS_ACCT_V3 y
-        BT_HCIUART_BCSP y
-        BT_HCIUART_H4 y # UART (H4) protocol support
-        BT_HCIUART_LL y
-        BT_RFCOMM_TTY y # RFCOMM TTY support
-        CPU_FREQ_DEBUG n
-        CRASH_DUMP n
-        DMAR? n # experimental
-        FUSION y # Fusion MPT device support
-        IDE_GD_ATAPI y # ATAPI floppy support
-        IRDA_ULTRA y # Ultra (connectionless) protocol
-        JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
-        JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
-        JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
-        JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
-        KALLSYMS_EXTRA_PASS n
-        LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
-        LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
-        LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
-        LOGO n # not needed
-        MEDIA_ATTACH y
-        MEGARAID_NEWGEN y
-        MICROCODE_AMD y
-        MODVERSIONS y
-        MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
-        MTRR_SANITIZER y
-        NET_FC y # Fibre Channel driver support
-        PCI_LEGACY y
-        PPP_MULTILINK y # PPP multilink support
-        REGULATOR y # Voltage and Current Regulator Support
-        SCSI_LOGGING y # SCSI logging facility
-        SERIAL_8250 y # 8250/16550 and compatible serial support
-        SLIP_COMPRESSED y # CSLIP compressed headers
-        SLIP_SMART y
-        THERMAL_HWMON y # Hardware monitoring support
-        USB_DEBUG n
-        USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
-        X86_CHECK_BIOS_CORRUPTION y
-        X86_MCE y
-
-        ${extraConfig}
-      '';
-  }
-
-  // args
-)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.29.nix b/pkgs/os-specific/linux/kernel/linux-2.6.29.nix
deleted file mode 100644
index 99354c23045d..000000000000
--- a/pkgs/os-specific/linux/kernel/linux-2.6.29.nix
+++ /dev/null
@@ -1,230 +0,0 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? "", ... }:
-
-import ./generic.nix (
-
-  rec {
-    version = "2.6.29.6";
-  
-    src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "1yf5xhdnpcyhw4y78v35wyidlsyzxvbbnzw6jd31zni7ira6jvjk";
-    };
-
-    features.iwlwifi = true;
- 
-    config =
-      ''
-        # Don't include any debug features.
-        DEBUG_KERNEL n
-
-        # Support drivers that need external firmware.
-        STANDALONE n
-
-        # Make /proc/config.gz available.
-        IKCONFIG_PROC y
-
-        # Optimize with -O2, not -Os.
-        CC_OPTIMIZE_FOR_SIZE n
-
-        # Virtualisation (KVM, Xen...).
-        PARAVIRT_GUEST y
-        KVM_CLOCK y
-        KVM_GUEST y
-        XEN n
-
-        # We need 64 GB (PAE) support for Xen guest support.
-        HIGHMEM64G? y
-
-        # Enable the kernel's built-in memory tester.
-        MEMTEST y
-
-        # Include the CFQ I/O scheduler in the kernel, rather than as a
-        # module, so that the initrd gets a good I/O scheduler.
-        IOSCHED_CFQ y
-
-        # Disable some expensive (?) features.
-        MARKERS n
-        KPROBES n
-        NUMA? n
-        PM_TRACE_RTC n
-
-        # Enable various subsystems.
-        ACCESSIBILITY y # Accessibility support
-        AUXDISPLAY y # Auxiliary Display support
-        DONGLE y # Serial dongle support
-        HIPPI y
-        MTD_COMPLEX_MAPPINGS y # needed for many devices
-        NET_POCKET y # enable pocket and portable adapters
-        SCSI_LOWLEVEL y # enable lots of SCSI devices
-        SCSI_LOWLEVEL_PCMCIA y
-        SPI y # needed for many devices
-        SPI_MASTER y
-        WAN y
-
-        # Networking options.
-        IP_PNP n
-        IPV6_PRIVACY y
-        NETFILTER_ADVANCED y
-        IP_VS_PROTO_TCP y
-        IP_VS_PROTO_UDP y
-        IP_VS_PROTO_ESP y
-        IP_VS_PROTO_AH y
-        IP_DCCP_CCID3 n # experimental
-        CLS_U32_PERF y
-        CLS_U32_MARK y
-
-        # Wireless networking.
-        IPW2100_MONITOR y # support promiscuous mode
-        IPW2200_MONITOR y # support promiscuous mode
-        IWLWIFI_LEDS? y
-        IWLWIFI_RFKILL y
-        IWLAGN_SPECTRUM_MEASUREMENT y
-        IWLAGN_LEDS y
-        IWL4965 y # Intel Wireless WiFi 4965AGN
-        IWL5000 y # Intel Wireless WiFi 5000AGN
-        IWL3945_RFKILL y
-        IWL3945_LEDS y
-        HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
-        HOSTAP_FIRMWARE_NVRAM y
-
-        # Some settings to make sure that fbcondecor works - in particular,
-        # disable tileblitting and the drivers that need it.
-
-        # Enable various FB devices.
-        FB_EFI y
-        FB_NVIDIA_I2C y # Enable DDC Support
-        FB_RIVA_I2C y
-        FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
-        FB_ATY_GX y # Mach64 GX support
-        FB_SAVAGE_I2C y
-        FB_SAVAGE_ACCEL y
-        FB_SIS_300 y
-        FB_SIS_315 y
-        FB_3DFX_ACCEL y
-        FB_TRIDENT_ACCEL y
-        FB_GEODE y
-
-        # Sound.
-        SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
-        SND_HDA_INPUT_BEEP y # Support digital beep via input layer
-        SND_USB_CAIAQ_INPUT y
-        PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
-
-        # Enable a bunch of USB storage devices.
-        USB_STORAGE_DATAFAB y
-        USB_STORAGE_FREECOM y
-        USB_STORAGE_ISD200 y
-        USB_STORAGE_USBAT y
-        USB_STORAGE_SDDR09 y
-        USB_STORAGE_SDDR55 y
-        USB_STORAGE_JUMPSHOT y
-        USB_STORAGE_ONETOUCH y
-        USB_STORAGE_KARMA y
-        USB_STORAGE_CYPRESS_ATACB y
-
-        # USB serial devices.
-        USB_SERIAL_GENERIC y # USB Generic Serial Driver
-        USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
-        USB_SERIAL_KEYSPAN_USA28 y
-        USB_SERIAL_KEYSPAN_USA28X y
-        USB_SERIAL_KEYSPAN_USA28XA y
-        USB_SERIAL_KEYSPAN_USA28XB y
-        USB_SERIAL_KEYSPAN_USA19 y
-        USB_SERIAL_KEYSPAN_USA18X y
-        USB_SERIAL_KEYSPAN_USA19W y
-        USB_SERIAL_KEYSPAN_USA19QW y
-        USB_SERIAL_KEYSPAN_USA19QI y
-        USB_SERIAL_KEYSPAN_USA49W y
-        USB_SERIAL_KEYSPAN_USA49WLC y
-
-        # Filesystem options - in particular, enable extended attributes and
-        # ACLs for all filesystems that support them.
-        EXT2_FS_XATTR y # Ext2 extended attributes
-        EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
-        EXT2_FS_SECURITY y # Ext2 Security Labels
-        EXT2_FS_XIP y # Ext2 execute in place support
-        EXT4_FS_POSIX_ACL y
-        EXT4_FS_SECURITY y
-        REISERFS_FS_XATTR y
-        REISERFS_FS_POSIX_ACL y
-        REISERFS_FS_SECURITY y
-        JFS_POSIX_ACL y
-        JFS_SECURITY y
-        XFS_QUOTA y
-        XFS_POSIX_ACL y
-        XFS_RT y # XFS Realtime subvolume support
-        OCFS2_DEBUG_MASKLOG n
-        OCFS2_FS_POSIX_ACL y
-        BTRFS_FS_POSIX_ACL y
-        UBIFS_FS_XATTR y
-        UBIFS_FS_ADVANCED_COMPR y
-        NFSD_V2_ACL y
-        NFSD_V3 y
-        NFSD_V3_ACL y
-        NFSD_V4 y
-        CIFS_XATTR y
-        CIFS_POSIX y
-
-        # Security related features.
-        STRICT_DEVMEM y # Filter access to /dev/mem
-        SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
-
-        # Misc. options.
-        8139TOO_8129 y
-        8139TOO_PIO n # PIO is slower
-        AIC79XX_DEBUG_ENABLE n
-        AIC7XXX_DEBUG_ENABLE n
-        AIC94XX_DEBUG n
-        B43_PCMCIA y
-        BLK_DEV_BSG n
-        BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
-        BLK_DEV_IDEACPI y # IDE ACPI support
-        BLK_DEV_INTEGRITY y
-        BLK_DEV_IO_TRACE n
-        BSD_PROCESS_ACCT_V3 y
-        BT_HCIUART_BCSP y
-        BT_HCIUART_H4 y # UART (H4) protocol support
-        BT_HCIUART_LL y
-        BT_RFCOMM_TTY y # RFCOMM TTY support
-        CPU_FREQ_DEBUG n
-        CRASH_DUMP n
-        DMAR? n # experimental
-        DVB_DYNAMIC_MINORS y # we use udev
-        FUSION y # Fusion MPT device support
-        IDE_GD_ATAPI y # ATAPI floppy support
-        IRDA_ULTRA y # Ultra (connectionless) protocol
-        JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
-        JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
-        JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
-        JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
-        KALLSYMS_EXTRA_PASS n
-        LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
-        LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
-        LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
-        LOGO n # not needed
-        MEDIA_ATTACH y
-        MEGARAID_NEWGEN y
-        MICROCODE_AMD y
-        MODVERSIONS y
-        MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
-        MTRR_SANITIZER y
-        NET_FC y # Fibre Channel driver support
-        PCI_LEGACY y
-        PPP_MULTILINK y # PPP multilink support
-        REGULATOR y # Voltage and Current Regulator Support
-        SCSI_LOGGING y # SCSI logging facility
-        SERIAL_8250 y # 8250/16550 and compatible serial support
-        SLIP_COMPRESSED y # CSLIP compressed headers
-        SLIP_SMART y
-        THERMAL_HWMON y # Hardware monitoring support
-        USB_DEBUG n
-        USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
-        X86_CHECK_BIOS_CORRUPTION y
-        X86_MCE y
-
-        ${extraConfig}
-      '';
-  }
-
-  // args
-)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.31.nix b/pkgs/os-specific/linux/kernel/linux-2.6.31.nix
deleted file mode 100644
index 523f3c9ceb5c..000000000000
--- a/pkgs/os-specific/linux/kernel/linux-2.6.31.nix
+++ /dev/null
@@ -1,214 +0,0 @@
-{ stdenv, fetchurl, extraConfig ? "", ... } @ args:
-
-let
-  configWithPlatform = kernelPlatform:
-    ''
-      # Don't include any debug features.
-      DEBUG_KERNEL n
-
-      # Support drivers that need external firmware.
-      STANDALONE n
-
-      # Make /proc/config.gz available.
-      IKCONFIG_PROC y
-
-      # Optimize with -O2, not -Os.
-      CC_OPTIMIZE_FOR_SIZE n
-
-      # Enable the kernel's built-in memory tester.
-      MEMTEST y
-
-      # Include the CFQ I/O scheduler in the kernel, rather than as a
-      # module, so that the initrd gets a good I/O scheduler.
-      IOSCHED_CFQ y
-
-      # Disable some expensive (?) features.
-      FTRACE n
-      KPROBES n
-      NUMA? n
-      PM_TRACE_RTC n
-
-      # Enable various subsystems.
-      ACCESSIBILITY y # Accessibility support
-      AUXDISPLAY y # Auxiliary Display support
-      DONGLE y # Serial dongle support
-      HIPPI y
-      MTD_COMPLEX_MAPPINGS y # needed for many devices
-      NET_POCKET y # enable pocket and portable adapters
-      SCSI_LOWLEVEL y # enable lots of SCSI devices
-      SCSI_LOWLEVEL_PCMCIA y
-      SPI y # needed for many devices
-      SPI_MASTER y
-      WAN y
-
-      # Networking options.
-      IP_PNP n
-      IPV6_PRIVACY y
-      NETFILTER_ADVANCED y
-      IP_VS_PROTO_TCP y
-      IP_VS_PROTO_UDP y
-      IP_VS_PROTO_ESP y
-      IP_VS_PROTO_AH y
-      IP_DCCP_CCID3 n # experimental
-      CLS_U32_PERF y
-      CLS_U32_MARK y
-
-      # Wireless networking.
-      IPW2100_MONITOR y # support promiscuous mode
-      IPW2200_MONITOR y # support promiscuous mode
-      IWLWIFI_LEDS? y
-      IWLWIFI_SPECTRUM_MEASUREMENT y
-      IWL3945_SPECTRUM_MEASUREMENT y
-      IWL4965 y # Intel Wireless WiFi 4965AGN
-      IWL5000 y # Intel Wireless WiFi 5000AGN
-      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
-      HOSTAP_FIRMWARE_NVRAM y
-
-      # Some settings to make sure that fbcondecor works - in particular,
-      # disable tileblitting and the drivers that need it.
-
-      # Enable various FB devices.
-      FB y
-      FB_EFI y
-      FB_NVIDIA_I2C y # Enable DDC Support
-      FB_RIVA_I2C y
-      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
-      FB_ATY_GX y # Mach64 GX support
-      FB_SAVAGE_I2C y
-      FB_SAVAGE_ACCEL y
-      FB_SIS_300 y
-      FB_SIS_315 y
-      FB_3DFX_ACCEL y
-      FB_GEODE y
-
-      # Video configuration
-      # The intel drivers already require KMS
-      DRM_I915_KMS y
-
-      # Sound.
-      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
-      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
-      SND_USB_CAIAQ_INPUT y
-      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
-
-      # USB serial devices.
-      USB_SERIAL_GENERIC y # USB Generic Serial Driver
-      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
-      USB_SERIAL_KEYSPAN_USA28 y
-      USB_SERIAL_KEYSPAN_USA28X y
-      USB_SERIAL_KEYSPAN_USA28XA y
-      USB_SERIAL_KEYSPAN_USA28XB y
-      USB_SERIAL_KEYSPAN_USA19 y
-      USB_SERIAL_KEYSPAN_USA18X y
-      USB_SERIAL_KEYSPAN_USA19W y
-      USB_SERIAL_KEYSPAN_USA19QW y
-      USB_SERIAL_KEYSPAN_USA19QI y
-      USB_SERIAL_KEYSPAN_USA49W y
-      USB_SERIAL_KEYSPAN_USA49WLC y
-
-      # Filesystem options - in particular, enable extended attributes and
-      # ACLs for all filesystems that support them.
-      EXT2_FS_XATTR y # Ext2 extended attributes
-      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
-      EXT2_FS_SECURITY y # Ext2 Security Labels
-      EXT2_FS_XIP y # Ext2 execute in place support
-      EXT4_FS_POSIX_ACL y
-      EXT4_FS_SECURITY y
-      REISERFS_FS_XATTR y
-      REISERFS_FS_POSIX_ACL y
-      REISERFS_FS_SECURITY y
-      JFS_POSIX_ACL y
-      JFS_SECURITY y
-      XFS_QUOTA y
-      XFS_POSIX_ACL y
-      XFS_RT y # XFS Realtime subvolume support
-      OCFS2_DEBUG_MASKLOG n
-      OCFS2_FS_POSIX_ACL y
-      BTRFS_FS_POSIX_ACL y
-      UBIFS_FS_XATTR y
-      UBIFS_FS_ADVANCED_COMPR y
-      NFSD_V2_ACL y
-      NFSD_V3 y
-      NFSD_V3_ACL y
-      NFSD_V4 y
-      CIFS_XATTR y
-      CIFS_POSIX y
-
-      # Security related features.
-      STRICT_DEVMEM y # Filter access to /dev/mem
-      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
-
-      # Misc. options.
-      8139TOO_8129 y
-      8139TOO_PIO n # PIO is slower
-      AIC79XX_DEBUG_ENABLE n
-      AIC7XXX_DEBUG_ENABLE n
-      AIC94XX_DEBUG n
-      B43_PCMCIA y
-      BLK_DEV_BSG n
-      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
-      BLK_DEV_IDEACPI y # IDE ACPI support
-      BLK_DEV_INTEGRITY y
-      BSD_PROCESS_ACCT_V3 y
-      BT_HCIUART_BCSP y
-      BT_HCIUART_H4 y # UART (H4) protocol support
-      BT_HCIUART_LL y
-      BT_RFCOMM_TTY y # RFCOMM TTY support
-      CPU_FREQ_DEBUG n
-      CRASH_DUMP n
-      DMAR? n # experimental
-      DVB_DYNAMIC_MINORS y # we use udev
-      FUSION y # Fusion MPT device support
-      IDE_GD_ATAPI y # ATAPI floppy support
-      IRDA_ULTRA y # Ultra (connectionless) protocol
-      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
-      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
-      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
-      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
-      KALLSYMS_EXTRA_PASS n
-      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
-      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
-      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
-      LOGO n # not needed
-      MEDIA_ATTACH y
-      MEGARAID_NEWGEN y
-      MICROCODE_AMD y
-      MODVERSIONS y
-      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
-      MTRR_SANITIZER y
-      NET_FC y # Fibre Channel driver support
-      PCI_LEGACY y
-      PPP_MULTILINK y # PPP multilink support
-      REGULATOR y # Voltage and Current Regulator Support
-      SCSI_LOGGING y # SCSI logging facility
-      SERIAL_8250 y # 8250/16550 and compatible serial support
-      SLIP_COMPRESSED y # CSLIP compressed headers
-      SLIP_SMART y
-      THERMAL_HWMON y # Hardware monitoring support
-      USB_DEBUG n
-      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
-      X86_CHECK_BIOS_CORRUPTION y
-      X86_MCE y
-
-      ${extraConfig}
-    '';
-in
-
-import ./generic.nix (
-
-  rec {
-    version = "2.6.31.14";
-
-    src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "1c6ivcjgns4gbx04mhnhndqikm3prqhhfm2a5zrb1mfyvvishqpp";
-    };
-
-    config = configWithPlatform stdenv.platform;
-    configCross = configWithPlatform stdenv.cross.platform;
-
-    features.iwlwifi = true;
-  }
-
-  // removeAttrs args ["extraConfig"]
-)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.32.nix b/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
index d47ad8f65ce6..a7cb499a9931 100644
--- a/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
+++ b/pkgs/os-specific/linux/kernel/linux-2.6.32.nix
@@ -198,11 +198,11 @@ in
 import ./generic.nix (
 
   rec {
-    version = "2.6.32.52";
+    version = "2.6.32.57";
   
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.32/linux-${version}.tar.bz2";
-      sha256 = "0a3ws6m8942p972jjlixr5v0sh6ll0hlzxwdikb666nppjcgqiz7";
+      sha256 = "1pbwjdignv5qdzpiv3ijs5g95l86ss7jrslak12jfxly13lanzzh";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.33.nix b/pkgs/os-specific/linux/kernel/linux-2.6.33.nix
deleted file mode 100644
index e473faa16a80..000000000000
--- a/pkgs/os-specific/linux/kernel/linux-2.6.33.nix
+++ /dev/null
@@ -1,214 +0,0 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
-, ... }:
-
-let
-  configWithPlatform = kernelPlatform :
-    ''
-      # Don't include any debug features.
-      DEBUG_KERNEL n
-
-      # Support drivers that need external firmware.
-      STANDALONE n
-
-      # Make /proc/config.gz available.
-      IKCONFIG_PROC y
-
-      # Optimize with -O2, not -Os.
-      CC_OPTIMIZE_FOR_SIZE n
-
-      # Enable the kernel's built-in memory tester.
-      MEMTEST y
-
-      # Include the CFQ I/O scheduler in the kernel, rather than as a
-      # module, so that the initrd gets a good I/O scheduler.
-      IOSCHED_CFQ y
-
-      # Disable some expensive (?) features.
-      FTRACE n
-      KPROBES n
-      NUMA? n
-      PM_TRACE_RTC n
-
-      # Enable various subsystems.
-      ACCESSIBILITY y # Accessibility support
-      AUXDISPLAY y # Auxiliary Display support
-      DONGLE y # Serial dongle support
-      HIPPI y
-      MTD_COMPLEX_MAPPINGS y # needed for many devices
-      NET_POCKET y # enable pocket and portable adapters
-      SCSI_LOWLEVEL y # enable lots of SCSI devices
-      SCSI_LOWLEVEL_PCMCIA y
-      SPI y # needed for many devices
-      SPI_MASTER y
-      WAN y
-
-      # Networking options.
-      IP_PNP n
-      IPV6_PRIVACY y
-      NETFILTER_ADVANCED y
-      IP_VS_PROTO_TCP y
-      IP_VS_PROTO_UDP y
-      IP_VS_PROTO_ESP y
-      IP_VS_PROTO_AH y
-      IP_DCCP_CCID3 n # experimental
-      CLS_U32_PERF y
-      CLS_U32_MARK y
-
-      # Wireless networking.
-      IPW2100_MONITOR y # support promiscuous mode
-      IPW2200_MONITOR y # support promiscuous mode
-      IWLWIFI_SPECTRUM_MEASUREMENT y
-      IWL3945_SPECTRUM_MEASUREMENT y
-      IWL4965 y # Intel Wireless WiFi 4965AGN
-      IWL5000 y # Intel Wireless WiFi 5000AGN
-      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
-      HOSTAP_FIRMWARE_NVRAM y
-
-      # Some settings to make sure that fbcondecor works - in particular,
-      # disable tileblitting and the drivers that need it.
-
-      # Enable various FB devices.
-      FB y
-      FB_EFI y
-      FB_NVIDIA_I2C y # Enable DDC Support
-      FB_RIVA_I2C y
-      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
-      FB_ATY_GX y # Mach64 GX support
-      FB_SAVAGE_I2C y
-      FB_SAVAGE_ACCEL y
-      FB_SIS_300 y
-      FB_SIS_315 y
-      FB_3DFX_ACCEL y
-      FB_GEODE y
-
-      # Video configuration
-      # The intel drivers already require KMS
-      DRM_I915_KMS y
-
-      # Sound.
-      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
-      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
-      SND_USB_CAIAQ_INPUT y
-      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
-
-      # USB serial devices.
-      USB_SERIAL_GENERIC y # USB Generic Serial Driver
-      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
-      USB_SERIAL_KEYSPAN_USA28 y
-      USB_SERIAL_KEYSPAN_USA28X y
-      USB_SERIAL_KEYSPAN_USA28XA y
-      USB_SERIAL_KEYSPAN_USA28XB y
-      USB_SERIAL_KEYSPAN_USA19 y
-      USB_SERIAL_KEYSPAN_USA18X y
-      USB_SERIAL_KEYSPAN_USA19W y
-      USB_SERIAL_KEYSPAN_USA19QW y
-      USB_SERIAL_KEYSPAN_USA19QI y
-      USB_SERIAL_KEYSPAN_USA49W y
-      USB_SERIAL_KEYSPAN_USA49WLC y
-
-      # Filesystem options - in particular, enable extended attributes and
-      # ACLs for all filesystems that support them.
-      EXT2_FS_XATTR y # Ext2 extended attributes
-      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
-      EXT2_FS_SECURITY y # Ext2 Security Labels
-      EXT2_FS_XIP y # Ext2 execute in place support
-      EXT4_FS_POSIX_ACL y
-      EXT4_FS_SECURITY y
-      REISERFS_FS_XATTR y
-      REISERFS_FS_POSIX_ACL y
-      REISERFS_FS_SECURITY y
-      JFS_POSIX_ACL y
-      JFS_SECURITY y
-      XFS_QUOTA y
-      XFS_POSIX_ACL y
-      XFS_RT y # XFS Realtime subvolume support
-      OCFS2_DEBUG_MASKLOG n
-      BTRFS_FS_POSIX_ACL y
-      UBIFS_FS_XATTR y
-      UBIFS_FS_ADVANCED_COMPR y
-      NFSD_V2_ACL y
-      NFSD_V3 y
-      NFSD_V3_ACL y
-      NFSD_V4 y
-      CIFS_XATTR y
-      CIFS_POSIX y
-
-      # Security related features.
-      STRICT_DEVMEM y # Filter access to /dev/mem
-      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
-
-      # Misc. options.
-      8139TOO_8129 y
-      8139TOO_PIO n # PIO is slower
-      AIC79XX_DEBUG_ENABLE n
-      AIC7XXX_DEBUG_ENABLE n
-      AIC94XX_DEBUG n
-      B43_PCMCIA y
-      BLK_DEV_BSG n
-      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
-      BLK_DEV_IDEACPI y # IDE ACPI support
-      BLK_DEV_INTEGRITY y
-      BSD_PROCESS_ACCT_V3 y
-      BT_HCIUART_BCSP y
-      BT_HCIUART_H4 y # UART (H4) protocol support
-      BT_HCIUART_LL y
-      BT_RFCOMM_TTY y # RFCOMM TTY support
-      CPU_FREQ_DEBUG n
-      CRASH_DUMP n
-      DMAR? n # experimental
-      DVB_DYNAMIC_MINORS y # we use udev
-      FUSION y # Fusion MPT device support
-      IDE_GD_ATAPI y # ATAPI floppy support
-      IRDA_ULTRA y # Ultra (connectionless) protocol
-      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
-      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
-      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
-      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
-      KALLSYMS_EXTRA_PASS n
-      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
-      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
-      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
-      LOGO n # not needed
-      MEDIA_ATTACH y
-      MEGARAID_NEWGEN y
-      MICROCODE_AMD y
-      MODVERSIONS y
-      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
-      MTRR_SANITIZER y
-      NET_FC y # Fibre Channel driver support
-      PCI_LEGACY y
-      PPP_MULTILINK y # PPP multilink support
-      REGULATOR y # Voltage and Current Regulator Support
-      SCSI_LOGGING y # SCSI logging facility
-      SERIAL_8250 y # 8250/16550 and compatible serial support
-      SLIP_COMPRESSED y # CSLIP compressed headers
-      SLIP_SMART y
-      THERMAL_HWMON y # Hardware monitoring support
-      USB_DEBUG n
-      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
-      X86_CHECK_BIOS_CORRUPTION y
-      X86_MCE y
-
-      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
-      ${extraConfig}
-    '';
-in
-
-import ./generic.nix (
-
-  rec {
-    version = "2.6.33.17";
-  
-    src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.33/linux-${version}.tar.bz2";
-      sha256 = "06z6r2jip781bxvrfc12gkckzig9s65pnhb3cg2c7c637phc6ky0";
-    };
-
-    config = configWithPlatform stdenv.platform;
-    configCross = configWithPlatform stdenv.cross.platform;
-
-    features.iwlwifi = true;
-  }
-
-  // removeAttrs args ["extraConfig"]
-)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.34.nix b/pkgs/os-specific/linux/kernel/linux-2.6.34.nix
deleted file mode 100644
index d36a76864833..000000000000
--- a/pkgs/os-specific/linux/kernel/linux-2.6.34.nix
+++ /dev/null
@@ -1,211 +0,0 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
-, ... }:
-
-let
-  configWithPlatform = kernelPlatform :
-    ''
-      # Don't include any debug features.
-      DEBUG_KERNEL n
-
-      # Support drivers that need external firmware.
-      STANDALONE n
-
-      # Make /proc/config.gz available.
-      IKCONFIG_PROC y
-
-      # Optimize with -O2, not -Os.
-      CC_OPTIMIZE_FOR_SIZE n
-
-      # Enable the kernel's built-in memory tester.
-      MEMTEST y
-
-      # Include the CFQ I/O scheduler in the kernel, rather than as a
-      # module, so that the initrd gets a good I/O scheduler.
-      IOSCHED_CFQ y
-
-      # Disable some expensive (?) features.
-      FTRACE n
-      KPROBES n
-      NUMA? n
-      PM_TRACE_RTC n
-
-      # Enable various subsystems.
-      ACCESSIBILITY y # Accessibility support
-      AUXDISPLAY y # Auxiliary Display support
-      DONGLE y # Serial dongle support
-      HIPPI y
-      MTD_COMPLEX_MAPPINGS y # needed for many devices
-      NET_POCKET y # enable pocket and portable adapters
-      SCSI_LOWLEVEL y # enable lots of SCSI devices
-      SCSI_LOWLEVEL_PCMCIA y
-      SPI y # needed for many devices
-      SPI_MASTER y
-      WAN y
-
-      # Networking options.
-      IP_PNP n
-      IPV6_PRIVACY y
-      NETFILTER_ADVANCED y
-      IP_VS_PROTO_TCP y
-      IP_VS_PROTO_UDP y
-      IP_VS_PROTO_ESP y
-      IP_VS_PROTO_AH y
-      IP_DCCP_CCID3 n # experimental
-      CLS_U32_PERF y
-      CLS_U32_MARK y
-
-      # Wireless networking.
-      IPW2100_MONITOR y # support promiscuous mode
-      IPW2200_MONITOR y # support promiscuous mode
-      IWL4965 y # Intel Wireless WiFi 4965AGN
-      IWL5000 y # Intel Wireless WiFi 5000AGN
-      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
-      HOSTAP_FIRMWARE_NVRAM y
-
-      # Some settings to make sure that fbcondecor works - in particular,
-      # disable tileblitting and the drivers that need it.
-
-      # Enable various FB devices.
-      FB y
-      FB_EFI y
-      FB_NVIDIA_I2C y # Enable DDC Support
-      FB_RIVA_I2C y
-      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
-      FB_ATY_GX y # Mach64 GX support
-      FB_SAVAGE_I2C y
-      FB_SAVAGE_ACCEL y
-      FB_SIS_300 y
-      FB_SIS_315 y
-      FB_3DFX_ACCEL y
-      FB_GEODE y
-
-      # Video configuration
-      # The intel drivers already require KMS
-      DRM_I915_KMS y
-
-      # Sound.
-      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
-      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
-      SND_USB_CAIAQ_INPUT y
-      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
-
-      # USB serial devices.
-      USB_SERIAL_GENERIC y # USB Generic Serial Driver
-      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
-      USB_SERIAL_KEYSPAN_USA28 y
-      USB_SERIAL_KEYSPAN_USA28X y
-      USB_SERIAL_KEYSPAN_USA28XA y
-      USB_SERIAL_KEYSPAN_USA28XB y
-      USB_SERIAL_KEYSPAN_USA19 y
-      USB_SERIAL_KEYSPAN_USA18X y
-      USB_SERIAL_KEYSPAN_USA19W y
-      USB_SERIAL_KEYSPAN_USA19QW y
-      USB_SERIAL_KEYSPAN_USA19QI y
-      USB_SERIAL_KEYSPAN_USA49W y
-      USB_SERIAL_KEYSPAN_USA49WLC y
-
-      # Filesystem options - in particular, enable extended attributes and
-      # ACLs for all filesystems that support them.
-      EXT2_FS_XATTR y # Ext2 extended attributes
-      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
-      EXT2_FS_SECURITY y # Ext2 Security Labels
-      EXT2_FS_XIP y # Ext2 execute in place support
-      EXT4_FS_POSIX_ACL y
-      EXT4_FS_SECURITY y
-      REISERFS_FS_XATTR y
-      REISERFS_FS_POSIX_ACL y
-      REISERFS_FS_SECURITY y
-      JFS_POSIX_ACL y
-      JFS_SECURITY y
-      XFS_QUOTA y
-      XFS_POSIX_ACL y
-      XFS_RT y # XFS Realtime subvolume support
-      OCFS2_DEBUG_MASKLOG n
-      BTRFS_FS_POSIX_ACL y
-      UBIFS_FS_XATTR y
-      UBIFS_FS_ADVANCED_COMPR y
-      NFSD_V2_ACL y
-      NFSD_V3 y
-      NFSD_V3_ACL y
-      NFSD_V4 y
-      CIFS_XATTR y
-      CIFS_POSIX y
-
-      # Security related features.
-      STRICT_DEVMEM y # Filter access to /dev/mem
-      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
-
-      # Misc. options.
-      8139TOO_8129 y
-      8139TOO_PIO n # PIO is slower
-      AIC79XX_DEBUG_ENABLE n
-      AIC7XXX_DEBUG_ENABLE n
-      AIC94XX_DEBUG n
-      B43_PCMCIA y
-      BLK_DEV_BSG n
-      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
-      BLK_DEV_IDEACPI y # IDE ACPI support
-      BLK_DEV_INTEGRITY y
-      BSD_PROCESS_ACCT_V3 y
-      BT_HCIUART_BCSP y
-      BT_HCIUART_H4 y # UART (H4) protocol support
-      BT_HCIUART_LL y
-      BT_RFCOMM_TTY y # RFCOMM TTY support
-      CPU_FREQ_DEBUG n
-      CRASH_DUMP n
-      DMAR? n # experimental
-      DVB_DYNAMIC_MINORS y # we use udev
-      FUSION y # Fusion MPT device support
-      IDE_GD_ATAPI y # ATAPI floppy support
-      IRDA_ULTRA y # Ultra (connectionless) protocol
-      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
-      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
-      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
-      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
-      KALLSYMS_EXTRA_PASS n
-      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
-      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
-      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
-      LOGO n # not needed
-      MEDIA_ATTACH y
-      MEGARAID_NEWGEN y
-      MICROCODE_AMD y
-      MODVERSIONS y
-      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
-      MTRR_SANITIZER y
-      NET_FC y # Fibre Channel driver support
-      PPP_MULTILINK y # PPP multilink support
-      REGULATOR y # Voltage and Current Regulator Support
-      SCSI_LOGGING y # SCSI logging facility
-      SERIAL_8250 y # 8250/16550 and compatible serial support
-      SLIP_COMPRESSED y # CSLIP compressed headers
-      SLIP_SMART y
-      THERMAL_HWMON y # Hardware monitoring support
-      USB_DEBUG n
-      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
-      X86_CHECK_BIOS_CORRUPTION y
-      X86_MCE y
-
-      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
-      ${extraConfig}
-    '';
-in
-
-import ./generic.nix (
-
-  rec {
-    version = "2.6.34.10";
-  
-    src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/longterm/v2.6.34/linux-${version}.tar.bz2";
-      sha256 = "1sm3n5wxz1amql0ini5mspiaa4kvw9macsp5qyq1dhhfv06i2j31";
-    };
-
-    config = configWithPlatform stdenv.platform;
-    configCross = configWithPlatform stdenv.cross.platform;
-
-    features.iwlwifi = true;
-  }
-
-  // removeAttrs args ["extraConfig"]
-)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.36.nix b/pkgs/os-specific/linux/kernel/linux-2.6.36.nix
deleted file mode 100644
index 4fa11413cabe..000000000000
--- a/pkgs/os-specific/linux/kernel/linux-2.6.36.nix
+++ /dev/null
@@ -1,209 +0,0 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
-, ... }:
-
-let
-  configWithPlatform = kernelPlatform :
-    ''
-      # Don't include any debug features.
-      DEBUG_KERNEL n
-
-      # Support drivers that need external firmware.
-      STANDALONE n
-
-      # Make /proc/config.gz available.
-      IKCONFIG_PROC y
-
-      # Optimize with -O2, not -Os.
-      CC_OPTIMIZE_FOR_SIZE n
-
-      # Enable the kernel's built-in memory tester.
-      MEMTEST y
-
-      # Disable some expensive (?) features.
-      FTRACE n
-      KPROBES n
-      NUMA? n
-      PM_TRACE_RTC n
-
-      # Enable various subsystems.
-      ACCESSIBILITY y # Accessibility support
-      AUXDISPLAY y # Auxiliary Display support
-      DONGLE y # Serial dongle support
-      HIPPI y
-      MTD_COMPLEX_MAPPINGS y # needed for many devices
-      NET_POCKET y # enable pocket and portable adapters
-      SCSI_LOWLEVEL y # enable lots of SCSI devices
-      SCSI_LOWLEVEL_PCMCIA y
-      SPI y # needed for many devices
-      SPI_MASTER y
-      WAN y
-
-      # Networking options.
-      IP_PNP n
-      IPV6_PRIVACY y
-      NETFILTER_ADVANCED y
-      IP_VS_PROTO_TCP y
-      IP_VS_PROTO_UDP y
-      IP_VS_PROTO_ESP y
-      IP_VS_PROTO_AH y
-      IP_DCCP_CCID3 n # experimental
-      CLS_U32_PERF y
-      CLS_U32_MARK y
-
-      # Wireless networking.
-      IPW2100_MONITOR y # support promiscuous mode
-      IPW2200_MONITOR y # support promiscuous mode
-      IWL4965 y # Intel Wireless WiFi 4965AGN
-      IWL5000 y # Intel Wireless WiFi 5000AGN
-      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
-      HOSTAP_FIRMWARE_NVRAM y
-
-      # Some settings to make sure that fbcondecor works - in particular,
-      # disable tileblitting and the drivers that need it.
-
-      # Enable various FB devices.
-      FB y
-      FB_EFI y
-      FB_NVIDIA_I2C y # Enable DDC Support
-      FB_RIVA_I2C y
-      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
-      FB_ATY_GX y # Mach64 GX support
-      FB_SAVAGE_I2C y
-      FB_SAVAGE_ACCEL y
-      FB_SIS_300 y
-      FB_SIS_315 y
-      FB_3DFX_ACCEL y
-      FB_GEODE y
-
-      # Video configuration
-      # The intel drivers already require KMS
-      DRM_I915_KMS y
-      # Hybrid graphics support
-      VGA_SWITCHEROO y
-
-      # Sound.
-      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
-      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
-      SND_USB_CAIAQ_INPUT y
-      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
-
-      # USB serial devices.
-      USB_SERIAL_GENERIC y # USB Generic Serial Driver
-      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
-      USB_SERIAL_KEYSPAN_USA28 y
-      USB_SERIAL_KEYSPAN_USA28X y
-      USB_SERIAL_KEYSPAN_USA28XA y
-      USB_SERIAL_KEYSPAN_USA28XB y
-      USB_SERIAL_KEYSPAN_USA19 y
-      USB_SERIAL_KEYSPAN_USA18X y
-      USB_SERIAL_KEYSPAN_USA19W y
-      USB_SERIAL_KEYSPAN_USA19QW y
-      USB_SERIAL_KEYSPAN_USA19QI y
-      USB_SERIAL_KEYSPAN_USA49W y
-      USB_SERIAL_KEYSPAN_USA49WLC y
-
-      # Filesystem options - in particular, enable extended attributes and
-      # ACLs for all filesystems that support them.
-      EXT2_FS_XATTR y # Ext2 extended attributes
-      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
-      EXT2_FS_SECURITY y # Ext2 Security Labels
-      EXT2_FS_XIP y # Ext2 execute in place support
-      EXT4_FS_POSIX_ACL y
-      EXT4_FS_SECURITY y
-      REISERFS_FS_XATTR y
-      REISERFS_FS_POSIX_ACL y
-      REISERFS_FS_SECURITY y
-      JFS_POSIX_ACL y
-      JFS_SECURITY y
-      XFS_QUOTA y
-      XFS_POSIX_ACL y
-      XFS_RT y # XFS Realtime subvolume support
-      OCFS2_DEBUG_MASKLOG n
-      BTRFS_FS_POSIX_ACL y
-      UBIFS_FS_XATTR y
-      UBIFS_FS_ADVANCED_COMPR y
-      NFSD_V2_ACL y
-      NFSD_V3 y
-      NFSD_V3_ACL y
-      NFSD_V4 y
-      CIFS_XATTR y
-      CIFS_POSIX y
-
-      # Security related features.
-      STRICT_DEVMEM y # Filter access to /dev/mem
-      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
-
-      # Misc. options.
-      8139TOO_8129 y
-      8139TOO_PIO n # PIO is slower
-      AIC79XX_DEBUG_ENABLE n
-      AIC7XXX_DEBUG_ENABLE n
-      AIC94XX_DEBUG n
-      B43_PCMCIA y
-      BLK_DEV_BSG n
-      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
-      BLK_DEV_IDEACPI y # IDE ACPI support
-      BLK_DEV_INTEGRITY y
-      BSD_PROCESS_ACCT_V3 y
-      BT_HCIUART_BCSP y
-      BT_HCIUART_H4 y # UART (H4) protocol support
-      BT_HCIUART_LL y
-      BT_RFCOMM_TTY y # RFCOMM TTY support
-      CPU_FREQ_DEBUG n
-      CRASH_DUMP n
-      DMAR? n # experimental
-      DVB_DYNAMIC_MINORS y # we use udev
-      FUSION y # Fusion MPT device support
-      IDE_GD_ATAPI y # ATAPI floppy support
-      IRDA_ULTRA y # Ultra (connectionless) protocol
-      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
-      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
-      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
-      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
-      KALLSYMS_EXTRA_PASS n
-      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
-      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
-      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
-      LOGO n # not needed
-      MEDIA_ATTACH y
-      MEGARAID_NEWGEN y
-      MICROCODE_AMD y
-      MODVERSIONS y
-      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
-      MTRR_SANITIZER y
-      NET_FC y # Fibre Channel driver support
-      PPP_MULTILINK y # PPP multilink support
-      REGULATOR y # Voltage and Current Regulator Support
-      SCSI_LOGGING y # SCSI logging facility
-      SERIAL_8250 y # 8250/16550 and compatible serial support
-      SLIP_COMPRESSED y # CSLIP compressed headers
-      SLIP_SMART y
-      THERMAL_HWMON y # Hardware monitoring support
-      USB_DEBUG n
-      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
-      X86_CHECK_BIOS_CORRUPTION y
-      X86_MCE y
-
-      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
-      ${extraConfig}
-    '';
-in
-
-import ./generic.nix (
-
-  rec {
-    version = "2.6.36.4";
-  
-    src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "16pqjz3dgvaghfi0jqp2d0nqyz5fgbbxzs914vxslh2xxdxql0cg";
-    };
-
-    config = configWithPlatform stdenv.platform;
-    configCross = configWithPlatform stdenv.cross.platform;
-
-    features.iwlwifi = true;
-  }
-
-  // removeAttrs args ["extraConfig"]
-)
diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.37.nix b/pkgs/os-specific/linux/kernel/linux-2.6.37.nix
deleted file mode 100644
index 3da1e27eb249..000000000000
--- a/pkgs/os-specific/linux/kernel/linux-2.6.37.nix
+++ /dev/null
@@ -1,208 +0,0 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
-, ... }:
-
-let
-  configWithPlatform = kernelPlatform :
-    ''
-      # Don't include any debug features.
-      DEBUG_KERNEL n
-
-      # Support drivers that need external firmware.
-      STANDALONE n
-
-      # Make /proc/config.gz available.
-      IKCONFIG_PROC y
-
-      # Optimize with -O2, not -Os.
-      CC_OPTIMIZE_FOR_SIZE n
-
-      # Enable the kernel's built-in memory tester.
-      MEMTEST y
-
-      # Disable some expensive (?) features.
-      FTRACE n
-      KPROBES n
-      NUMA? n
-      PM_TRACE_RTC n
-
-      # Enable various subsystems.
-      ACCESSIBILITY y # Accessibility support
-      AUXDISPLAY y # Auxiliary Display support
-      DONGLE y # Serial dongle support
-      HIPPI y
-      MTD_COMPLEX_MAPPINGS y # needed for many devices
-      NET_POCKET y # enable pocket and portable adapters
-      SCSI_LOWLEVEL y # enable lots of SCSI devices
-      SCSI_LOWLEVEL_PCMCIA y
-      SPI y # needed for many devices
-      SPI_MASTER y
-      WAN y
-
-      # Networking options.
-      IP_PNP n
-      IPV6_PRIVACY y
-      NETFILTER_ADVANCED y
-      IP_VS_PROTO_TCP y
-      IP_VS_PROTO_UDP y
-      IP_VS_PROTO_ESP y
-      IP_VS_PROTO_AH y
-      IP_DCCP_CCID3 n # experimental
-      CLS_U32_PERF y
-      CLS_U32_MARK y
-
-      # Wireless networking.
-      IPW2100_MONITOR y # support promiscuous mode
-      IPW2200_MONITOR y # support promiscuous mode
-      IWL4965 y # Intel Wireless WiFi 4965AGN
-      IWL5000 y # Intel Wireless WiFi 5000AGN
-      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
-      HOSTAP_FIRMWARE_NVRAM y
-
-      # Some settings to make sure that fbcondecor works - in particular,
-      # disable tileblitting and the drivers that need it.
-
-      # Enable various FB devices.
-      FB y
-      FB_EFI y
-      FB_NVIDIA_I2C y # Enable DDC Support
-      FB_RIVA_I2C y
-      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
-      FB_ATY_GX y # Mach64 GX support
-      FB_SAVAGE_I2C y
-      FB_SAVAGE_ACCEL y
-      FB_SIS_300 y
-      FB_SIS_315 y
-      FB_3DFX_ACCEL y
-      FB_GEODE y
-
-      # Video configuration
-      # The intel drivers already require KMS
-      DRM_I915_KMS y
-      # Hybrid graphics support
-      VGA_SWITCHEROO y
-
-      # Sound.
-      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
-      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
-      SND_USB_CAIAQ_INPUT y
-      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
-
-      # USB serial devices.
-      USB_SERIAL_GENERIC y # USB Generic Serial Driver
-      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
-      USB_SERIAL_KEYSPAN_USA28 y
-      USB_SERIAL_KEYSPAN_USA28X y
-      USB_SERIAL_KEYSPAN_USA28XA y
-      USB_SERIAL_KEYSPAN_USA28XB y
-      USB_SERIAL_KEYSPAN_USA19 y
-      USB_SERIAL_KEYSPAN_USA18X y
-      USB_SERIAL_KEYSPAN_USA19W y
-      USB_SERIAL_KEYSPAN_USA19QW y
-      USB_SERIAL_KEYSPAN_USA19QI y
-      USB_SERIAL_KEYSPAN_USA49W y
-      USB_SERIAL_KEYSPAN_USA49WLC y
-
-      # Filesystem options - in particular, enable extended attributes and
-      # ACLs for all filesystems that support them.
-      EXT2_FS_XATTR y # Ext2 extended attributes
-      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
-      EXT2_FS_SECURITY y # Ext2 Security Labels
-      EXT2_FS_XIP y # Ext2 execute in place support
-      EXT4_FS_POSIX_ACL y
-      EXT4_FS_SECURITY y
-      REISERFS_FS_XATTR y
-      REISERFS_FS_POSIX_ACL y
-      REISERFS_FS_SECURITY y
-      JFS_POSIX_ACL y
-      JFS_SECURITY y
-      XFS_QUOTA y
-      XFS_POSIX_ACL y
-      XFS_RT y # XFS Realtime subvolume support
-      OCFS2_DEBUG_MASKLOG n
-      BTRFS_FS_POSIX_ACL y
-      UBIFS_FS_XATTR y
-      UBIFS_FS_ADVANCED_COMPR y
-      NFSD_V2_ACL y
-      NFSD_V3 y
-      NFSD_V3_ACL y
-      NFSD_V4 y
-      CIFS_XATTR y
-      CIFS_POSIX y
-
-      # Security related features.
-      STRICT_DEVMEM y # Filter access to /dev/mem
-      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
-
-      # Misc. options.
-      8139TOO_8129 y
-      8139TOO_PIO n # PIO is slower
-      AIC79XX_DEBUG_ENABLE n
-      AIC7XXX_DEBUG_ENABLE n
-      AIC94XX_DEBUG n
-      B43_PCMCIA y
-      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
-      BLK_DEV_IDEACPI y # IDE ACPI support
-      BLK_DEV_INTEGRITY y
-      BSD_PROCESS_ACCT_V3 y
-      BT_HCIUART_BCSP y
-      BT_HCIUART_H4 y # UART (H4) protocol support
-      BT_HCIUART_LL y
-      BT_RFCOMM_TTY y # RFCOMM TTY support
-      CPU_FREQ_DEBUG n
-      CRASH_DUMP n
-      DMAR? n # experimental
-      DVB_DYNAMIC_MINORS y # we use udev
-      FUSION y # Fusion MPT device support
-      IDE_GD_ATAPI y # ATAPI floppy support
-      IRDA_ULTRA y # Ultra (connectionless) protocol
-      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
-      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
-      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
-      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
-      KALLSYMS_EXTRA_PASS n
-      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
-      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
-      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
-      LOGO n # not needed
-      MEDIA_ATTACH y
-      MEGARAID_NEWGEN y
-      MICROCODE_AMD y
-      MODVERSIONS y
-      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
-      MTRR_SANITIZER y
-      NET_FC y # Fibre Channel driver support
-      PPP_MULTILINK y # PPP multilink support
-      REGULATOR y # Voltage and Current Regulator Support
-      SCSI_LOGGING y # SCSI logging facility
-      SERIAL_8250 y # 8250/16550 and compatible serial support
-      SLIP_COMPRESSED y # CSLIP compressed headers
-      SLIP_SMART y
-      THERMAL_HWMON y # Hardware monitoring support
-      USB_DEBUG n
-      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
-      X86_CHECK_BIOS_CORRUPTION y
-      X86_MCE y
-
-      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
-      ${extraConfig}
-    '';
-in
-
-import ./generic.nix (
-
-  rec {
-    version = "2.6.37.6";
-  
-    src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2";
-      sha256 = "07khv9z27l5ny37c7malgkg4q65r1g83i4m9rb74p17y15rsv8ad";
-    };
-
-    config = configWithPlatform stdenv.platform;
-    configCross = configWithPlatform stdenv.cross.platform;
-
-    features.iwlwifi = true;
-  }
-
-  // removeAttrs args ["extraConfig"]
-)
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 9fb597be72c5..fd5a27e0eace 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -84,26 +84,6 @@ rec {
       features.fbConDecor = true;
     };
 
-  fbcondecor_2_6_28 =
-    { name = "fbcondecor-0.9.5-2.6.28";
-      patch = fetchurl {
-        url = http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.5-2.6.28.patch;
-        sha256 = "105q2dwrwi863r7nhlrvljim37aqv67mjc3lgg529jzqgny3fjds";
-      };
-      extraConfig = fbcondecorConfig;
-      features.fbConDecor = true;
-    };
-
-  fbcondecor_2_6_29 =
-    { name = "fbcondecor-0.9.6-2.6.29.2";
-      patch = fetchurl {
-        url = http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.6-2.6.29.2.patch;
-        sha256 = "1yppvji13sgnql62h4wmskzl9l198pp1pbixpbymji7mr4a0ylx1";
-      };
-      extraConfig = fbcondecorConfig;
-      features.fbConDecor = true;
-    };
-
   fbcondecor_2_6_31 =
     { name = "fbcondecor-0.9.6-2.6.31.2";
       patch = fetchurl {
@@ -114,16 +94,6 @@ rec {
       features.fbConDecor = true;
     };
 
-  fbcondecor_2_6_33 =
-    { name = "fbcondecor-0.9.6-2.6.33-rc7";
-      patch = fetchurl {
-        url = http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.6-2.6.33-rc7.patch;
-        sha256 = "1v9lg3bgva0xry0s09drpw3n139s8hln8slayaf6i26vg4l4xdz6";
-      };
-      extraConfig = fbcondecorConfig;
-      features.fbConDecor = true;
-    };
-
   fbcondecor_2_6_35 =
     rec {
       name = "fbcondecor-0.9.6-2.6.35-rc4";
@@ -135,17 +105,6 @@ rec {
       features.fbConDecor = true;
     };
 
-  fbcondecor_2_6_37 =
-    rec {
-      name = "fbcondecor-0.9.6-2.6.37";
-      patch = fetchurl {
-        url = "http://dev.gentoo.org/~spock/projects/fbcondecor/archive/${name}.patch";
-        sha256 = "1yap9q6mp15jhsysry4x17cpm5dj35g8l2d0p0vn1xq25x3jfkqk";
-      };
-      extraConfig = fbcondecorConfig;
-      features.fbConDecor = true;
-    };
-
   fbcondecor_2_6_38 =
     rec {
       name = "fbcondecor-0.9.6-2.6.38";
@@ -157,15 +116,6 @@ rec {
       features.fbConDecor = true;
     };
 
-  # From http://patchwork.kernel.org/patch/19495/
-  ext4_softlockups_2_6_28 =
-    { name = "ext4-softlockups-fix";
-      patch = fetchurl {
-        url = http://patchwork.kernel.org/patch/19495/raw;
-        sha256 = "0vqcj9qs7jajlvmwm97z8cljr4vb277aqhsjqrakbxfdiwlhrzzf";
-      };
-    };
-
   gcov_2_6_28 =
     { name = "gcov";
       patch = fetchurl {
@@ -214,16 +164,6 @@ rec {
       features.aufs2 = true;
     };
 
-  aufs2_2_6_33 =
-    { # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2-33;hb=aufs2-33
-      # Note that this merely the patch needed to build AUFS2 as a
-      # standalone package.
-      name = "aufs2";
-      patch = ./aufs2-33.patch;
-      features.aufsBase = true;
-      features.aufs2 = true;
-    };
-
   aufs2_2_6_34 =
     { # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2-34;hb=aufs2-34
       # Note that this merely the patch needed to build AUFS2 as a
@@ -254,16 +194,6 @@ rec {
       features.aufs2_1 = true;
     };
 
-  aufs2_1_2_6_37 =
-    { # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2.1-37;hb=refs/heads/aufs2.1-37
-      # Note that this merely the patch needed to build AUFS2.1 as a
-      # standalone package.
-      name = "aufs2.1";
-      patch = ./aufs2.1-37.patch;
-      features.aufsBase = true;
-      features.aufs2_1 = true;
-    };
-
   aufs2_1_2_6_38 =
     { # From http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2.1-38;hb=refs/heads/aufs2.1-38
       # Note that this merely the patch needed to build AUFS2.1 as a
@@ -396,12 +326,4 @@ rec {
       name = "guruplug-arch-number";
       patch = ./guruplug-mach-type.patch;
     };
-
-  glibc_getline =
-    {
-      # Patch to work around conflicting types for the `getline' function
-      # with recent Glibcs (2009).
-      name = "glibc-getline";
-      patch = ./getline.patch;
-    };
 }
diff --git a/pkgs/os-specific/linux/klibc/shrunk.nix b/pkgs/os-specific/linux/klibc/shrunk.nix
index ff72d1f72b84..066b4fcb4e06 100644
--- a/pkgs/os-specific/linux/klibc/shrunk.nix
+++ b/pkgs/os-specific/linux/klibc/shrunk.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
   #name = "${klibc.name}-shrunk";
   name = "${klibc.name}";
   buildCommand = ''
-    ensureDir $out/lib
+    mkdir -p $out/lib
     cp -prd ${klibc}/lib/klibc/bin $out/
     cp -p ${klibc}/lib/*.so $out/lib/
     chmod +w $out/*
diff --git a/pkgs/os-specific/linux/kudzu/builder.sh b/pkgs/os-specific/linux/kudzu/builder.sh
index 744d1d516a33..002bac8a1db8 100644
--- a/pkgs/os-specific/linux/kudzu/builder.sh
+++ b/pkgs/os-specific/linux/kudzu/builder.sh
@@ -3,10 +3,10 @@ source $stdenv/setup
 export DESTDIR=$out
 
 preInstall() {
-  ensureDir $out
-  ensureDir $out/etc
-  ensureDir $out/sbin
-  ensureDir $out/usr
+  mkdir -p $out
+  mkdir -p $out/etc
+  mkdir -p $out/sbin
+  mkdir -p $out/usr
   make install-program
 }
 
diff --git a/pkgs/os-specific/linux/libcap/default.nix b/pkgs/os-specific/linux/libcap/default.nix
index d8cb393ac38b..c279393d7a40 100644
--- a/pkgs/os-specific/linux/libcap/default.nix
+++ b/pkgs/os-specific/linux/libcap/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     postinst = n : ''
-      ensureDir $out/share/doc/${n}
+      mkdir -p $out/share/doc/${n}
       cp ../License $out/share/doc/${n}/License
     '';
   };
diff --git a/pkgs/os-specific/linux/lsiutil/default.nix b/pkgs/os-specific/linux/lsiutil/default.nix
index 09cd4ab037c9..700455d5f8b9 100644
--- a/pkgs/os-specific/linux/lsiutil/default.nix
+++ b/pkgs/os-specific/linux/lsiutil/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   preBuild =
     ''
-      ensureDir $out/bin
+      mkdir -p $out/bin
       substituteInPlace Makefile --replace /usr/bin $out/bin
       substituteInPlace lsiutil.c \
         --replace /sbin/modprobe modprobe \
diff --git a/pkgs/os-specific/linux/mingetty/default.nix b/pkgs/os-specific/linux/mingetty/default.nix
index b27baa5480b9..192e2c7ac5f9 100644
--- a/pkgs/os-specific/linux/mingetty/default.nix
+++ b/pkgs/os-specific/linux/mingetty/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   };
 
   preInstall = ''
-    ensureDir $out/sbin $out/share/man/man8
+    mkdir -p $out/sbin $out/share/man/man8
     makeFlagsArray=(SBINDIR=$out/sbin MANDIR=$out/share/man/man8)
   '';
 
diff --git a/pkgs/os-specific/linux/module-init-tools/default.nix b/pkgs/os-specific/linux/module-init-tools/default.nix
index 79e1111d40d6..077d08f899da 100644
--- a/pkgs/os-specific/linux/module-init-tools/default.nix
+++ b/pkgs/os-specific/linux/module-init-tools/default.nix
@@ -1,19 +1,26 @@
 { stdenv, fetchurl, docbook2x, docbook_sgml_dtd_41 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   name = "module-init-tools-3.16";
 
-  src = fetchurl {
-    url = "mirror://kernel/linux/utils/kernel/module-init-tools/${name}.tar.bz2";
-    sha256 = "0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1";
-  };
+  src = [
+    (fetchurl {
+      url = mirror://kernel/linux/utils/kernel/module-init-tools/module-init-tools-3.16.tar.bz2;
+      sha256 = "0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1";
+    })
 
-  buildInputs = [ docbook2x ];
+    # Upstream forgot to include the generated manpages.  Thankfully
+    # the Gentoo people fixed this for us :-)
+    (fetchurl {
+      url = mirror://gentoo/distfiles/module-init-tools-3.16-man.tar.bz2;
+      sha256 = "1j1nzi87kgsh4scl645fhwhjvljxj83cmdasa4n4p5krhasgw358";
+    })
+  ];
 
   SGML_CATALOG_FILES = "${docbook_sgml_dtd_41}/sgml/dtd/docbook-4.1/docbook.cat";
 
   patches = [ ./module-dir.patch ./docbook2man.patch ];
-  
+
   postInstall = "rm $out/sbin/insmod.static"; # don't need it
 
   # We don't want bash (and therefore glibc) in the closure of the
diff --git a/pkgs/os-specific/linux/module-init-tools/module-dir.patch b/pkgs/os-specific/linux/module-init-tools/module-dir.patch
index 90805b00c3cf..95c7559604dd 100644
--- a/pkgs/os-specific/linux/module-init-tools/module-dir.patch
+++ b/pkgs/os-specific/linux/module-init-tools/module-dir.patch
@@ -1,36 +1,43 @@
-diff -Naur module-init-tools-3.16-orig/depmod.c module-init-tools-3.16/depmod.c
---- module-init-tools-3.16-orig/depmod.c	2011-06-02 13:55:01.000000000 -0400
-+++ module-init-tools-3.16/depmod.c	2011-10-01 23:30:14.947293695 -0400
-@@ -48,10 +48,6 @@
+commit cf2c95edb7918bc658f6cae93793c1949fc9cb6e
+Author: David Guibert <david.guibert@gmail.com>
+Date:   Fri Aug 5 14:20:12 2011 +0200
+
+    introduce module-dir
+
+diff --git a/depmod.c b/depmod.c
+index a1d2f8c..9362a35 100644
+--- a/depmod.c
++++ b/depmod.c
+@@ -48,9 +48,6 @@
  
  #include "testing.h"
  
 -#ifndef MODULE_DIR
 -#define MODULE_DIR "/lib/modules/"
 -#endif
--
+ 
  #ifndef MODULE_BUILTIN_KEY
  #define MODULE_BUILTIN_KEY "built-in"
- #endif
-@@ -1514,6 +1510,7 @@
- 			     struct module_overrides **overrides)
- {
+@@ -1516,6 +1513,7 @@ static int parse_config_file(const char *filename,
  	char *line;
-+	char *module_dir;
  	unsigned int linenum = 0;
  	FILE *cfile;
++ 	char *module_dir;
  
-@@ -1536,6 +1533,9 @@
- 			continue;
- 		}
+ 	cfile = fopen(filename, "r");
+ 	if (!cfile) {
+@@ -1525,6 +1523,10 @@ static int parse_config_file(const char *filename,
+ 		return 0;
+ 	}
  
-+		if((module_dir = getenv("MODULE_DIR")) == NULL)
-+			module_dir = "/lib/modules/";
++        if((module_dir = getenv("MODULE_DIR")) == NULL) {
++                module_dir = "/lib/modules/";
++        }
 +
- 		if (streq(cmd, "search")) {
- 			char *search_path;
- 			
-@@ -1550,7 +1550,7 @@
+ 	while ((line = getline_wrapped(cfile, &linenum)) != NULL) {
+ 		char *ptr = line;
+ 		char *cmd, *modname;
+@@ -1550,7 +1552,7 @@ static int parse_config_file(const char *filename,
  					continue;
  				}
  				nofail_asprintf(&dirname, "%s%s%s/%s", basedir,
@@ -39,7 +46,7 @@ diff -Naur module-init-tools-3.16-orig/depmod.c module-init-tools-3.16/depmod.c
  				len = strlen(dirname);
  				*search = add_search(dirname, len, *search);
  				free(dirname);
-@@ -1565,7 +1565,7 @@
+@@ -1565,7 +1567,7 @@ static int parse_config_file(const char *filename,
  				continue;
  
  			nofail_asprintf(&pathname, "%s%s%s/%s/%s.ko", basedir,
@@ -48,27 +55,28 @@ diff -Naur module-init-tools-3.16-orig/depmod.c module-init-tools-3.16/depmod.c
  
  			*overrides = add_override(pathname, *overrides);
  			free(pathname);
-@@ -1737,6 +1737,7 @@
+@@ -1737,6 +1739,7 @@ int main(int argc, char *argv[])
  	char *basedir = "", *dirname, *version;
  	char *system_map = NULL, *module_symvers = NULL;
  	int i;
-+	char *module_dir;
++ 	char *module_dir;
  	const char *config = NULL;
  
  	if (native_endianness() == 0)
-@@ -1832,7 +1833,10 @@
+@@ -1832,7 +1835,11 @@ int main(int argc, char *argv[])
  	if (optind == argc)
  		all = 1;
  
 -	nofail_asprintf(&dirname, "%s%s%s", basedir, MODULE_DIR, version);
-+	if((module_dir = getenv("MODULE_DIR")) == NULL)
-+		module_dir = "/lib/modules/";
++        if((module_dir = getenv("MODULE_DIR")) == NULL) {
++                module_dir = "/lib/modules/";
++        }
 +
 +	nofail_asprintf(&dirname, "%s%s%s", basedir, module_dir, version);
  
  	if (maybe_all) {
  		if (!doing_stdout && !depfile_out_of_date(dirname))
-@@ -1850,7 +1854,7 @@
+@@ -1850,7 +1857,7 @@ int main(int argc, char *argv[])
  		size_t len;
  
  		nofail_asprintf(&dirname, "%s%s%s/updates", basedir,
@@ -77,36 +85,35 @@ diff -Naur module-init-tools-3.16-orig/depmod.c module-init-tools-3.16/depmod.c
  		len = strlen(dirname);
  		search = add_search(dirname, len, search);
  	}
-diff -Naur module-init-tools-3.16-orig/modinfo.c module-init-tools-3.16/modinfo.c
---- module-init-tools-3.16-orig/modinfo.c	2011-06-02 13:55:01.000000000 -0400
-+++ module-init-tools-3.16/modinfo.c	2011-10-01 23:32:15.335093548 -0400
-@@ -19,10 +19,6 @@
+diff --git a/modinfo.c b/modinfo.c
+index 1dd8469..67b1041 100644
+--- a/modinfo.c
++++ b/modinfo.c
+@@ -19,9 +19,6 @@
  #include "zlibsupport.h"
  #include "testing.h"
  
 -#ifndef MODULE_DIR
 -#define MODULE_DIR "/lib/modules"
 -#endif
--
+ 
  struct param
  {
- 	struct param *next;
-@@ -192,6 +188,7 @@
- 	unsigned long size;
+@@ -193,6 +190,11 @@ static struct elf_file *grab_module(const char *name,
  	struct utsname buf;
  	char *depname, *p, *moddir;
-+	char *module_dir;
  	struct elf_file *module;
++ 	char *module_dir;
++
++        if((module_dir = getenv("MODULE_DIR")) == NULL) {
++                module_dir = "/lib/modules/";
++        }
  
  	if (strchr(name, '.') || strchr(name, '/')) {
-@@ -206,10 +203,14 @@
- 		uname(&buf);
+ 		module = grab_elf_file(name);
+@@ -207,9 +209,9 @@ static struct elf_file *grab_module(const char *name,
  		kernel = buf.release;
  	}
-+
-+	if((module_dir = getenv("MODULE_DIR")) == NULL)
-+		module_dir = "/lib/modules/";
-+
  	if (strlen(basedir))
 -		nofail_asprintf(&moddir, "%s/%s/%s", basedir, MODULE_DIR, kernel);
 +		nofail_asprintf(&moddir, "%s/%s/%s", basedir, module_dir, kernel);
@@ -116,10 +123,11 @@ diff -Naur module-init-tools-3.16-orig/modinfo.c module-init-tools-3.16/modinfo.
  
  	/* Search for it in modules.dep. */
  	nofail_asprintf(&depname, "%s/%s", moddir, "modules.dep");
-diff -Naur module-init-tools-3.16-orig/modprobe.c module-init-tools-3.16/modprobe.c
---- module-init-tools-3.16-orig/modprobe.c	2011-06-02 13:55:01.000000000 -0400
-+++ module-init-tools-3.16/modprobe.c	2011-10-01 23:34:04.111913368 -0400
-@@ -86,10 +86,6 @@
+diff --git a/modprobe.c b/modprobe.c
+index 5464f45..d9fbf9d 100644
+--- a/modprobe.c
++++ b/modprobe.c
+@@ -86,10 +86,6 @@ typedef enum
  
  } modprobe_flags_t;
  
@@ -130,24 +138,24 @@ diff -Naur module-init-tools-3.16-orig/modprobe.c module-init-tools-3.16/modprob
  /**
   * print_usage - output the prefered program usage
   *
-@@ -2131,6 +2127,7 @@
- 	char *cmdline_opts = NULL;
- 	char *dirname;
- 	errfn_t error = fatal;
-+	char *module_dir;
- 	int failed = 0;
- 	modprobe_flags_t flags = 0;
+@@ -2136,6 +2132,7 @@ int main(int argc, char *argv[])
  	struct modprobe_conf conf = {};
-@@ -2233,7 +2230,10 @@
+ 
+ 	recursion_depth = 0;
++ 	char *module_dir = NULL;
+ 
+ 	/* Prepend options from environment. */
+ 	argv = merge_args(getenv("MODPROBE_OPTIONS"), argv, &argc);
+@@ -2233,7 +2230,11 @@ int main(int argc, char *argv[])
  	if (argc < optind + 1 && !dump_config && !list_only)
  		print_usage(argv[0]);
  
 -	nofail_asprintf(&dirname, "%s%s/%s", basedir, MODULE_DIR, buf.release);
-+	if((module_dir = getenv("MODULE_DIR")) == NULL)
-+		module_dir = "/lib/modules/";
++	if((module_dir = getenv("MODULE_DIR")) == NULL) {
++		module_dir = "/lib/modules";
++	}
 +
 +	nofail_asprintf(&dirname, "%s%s/%s", basedir, module_dir, buf.release);
  
  	/* Old-style -t xxx wildcard?  Only with -l. */
  	if (list_only) {
-
diff --git a/pkgs/os-specific/linux/nfs-utils/default.nix b/pkgs/os-specific/linux/nfs-utils/default.nix
index cf05d0fbaed4..cdadcb05849a 100644
--- a/pkgs/os-specific/linux/nfs-utils/default.nix
+++ b/pkgs/os-specific/linux/nfs-utils/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, tcpWrapper, utillinuxng, libcap }:
+{ fetchurl, stdenv, tcpWrapper, utillinux, libcap }:
 
 stdenv.mkDerivation rec {
   name = "nfs-utils-1.2.3";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   # Needs `libblkid' and `libcomerr' from `e2fsprogs' or `util-linux-ng'.
-  buildInputs = [ tcpWrapper utillinuxng libcap ];
+  buildInputs = [ tcpWrapper utillinux libcap ];
 
   # FIXME: Add the dependencies needed for NFSv4 and TI-RPC.
   configureFlags =
diff --git a/pkgs/os-specific/linux/nss_ldap/default.nix b/pkgs/os-specific/linux/nss_ldap/default.nix
index 34de51081648..7c8b526b4c37 100644
--- a/pkgs/os-specific/linux/nss_ldap/default.nix
+++ b/pkgs/os-specific/linux/nss_ldap/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
     substituteInPlace Makefile \
       --replace '/usr$(libdir)' $TMPDIR \
       --replace 'install-data-local:' 'install-data-local-disabled:'
-    ensureDir $out/etc
+    mkdir -p $out/etc
   '';
 
   buildInputs = [openldap];
diff --git a/pkgs/os-specific/linux/numactl/default.nix b/pkgs/os-specific/linux/numactl/default.nix
index f329db90cb20..b92408058657 100644
--- a/pkgs/os-specific/linux/numactl/default.nix
+++ b/pkgs/os-specific/linux/numactl/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   preInstall = ''
     # The `install' rule expects this directory to be available.
-    ensureDir "$out/share/man/man5"
+    mkdir -p "$out/share/man/man5"
   '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder-legacy.sh b/pkgs/os-specific/linux/nvidia-x11/builder-legacy.sh
index 6941288b3903..e0af21759c9d 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder-legacy.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder-legacy.sh
@@ -36,7 +36,7 @@ buildPhase() {
 installPhase() {
 
     # Install libGL and friends.
-    ensureDir $out/lib
+    mkdir -p $out/lib
     cp -prd usr/lib/* usr/X11R6/lib/libXv* $out/lib/
 
     ln -snf libGLcore.so.$versionNumber $out/lib/libGLcore.so
@@ -59,11 +59,11 @@ installPhase() {
     if test -z "$libsOnly"; then
         
         # Install the kernel module.
-        ensureDir $out/lib/modules/$kernelVersion/misc
+        mkdir -p $out/lib/modules/$kernelVersion/misc
         cp usr/src/nv/nvidia.ko $out/lib/modules/$kernelVersion/misc
 
         # Install the X driver.
-        ensureDir $out/lib/xorg/modules
+        mkdir -p $out/lib/xorg/modules
         cp -prd usr/X11R6/lib/modules/* $out/lib/xorg/modules/
 
         ln -snf libnvidia-wfb.so.$versionNumber $out/lib/xorg/modules/libnvidia-wfb.so.1
@@ -72,7 +72,7 @@ installPhase() {
         patchelf --set-rpath $out/lib $out/lib/xorg/modules/extensions/libglx.so.*.*
 
         # Install the programs.
-        ensureDir $out/bin
+        mkdir -p $out/bin
 
         for i in nvidia-settings nvidia-xconfig; do
 	    cp usr/bin/$i $out/bin/$i
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh
index 180eb84e5e4f..b0d2bf35c52a 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh
@@ -27,7 +27,7 @@ buildPhase() {
 installPhase() {
 
     # Install libGL and friends.
-    ensureDir $out/lib
+    mkdir -p $out/lib
     cp -prd libcuda.* libGL.* libnvidia-cfg.* libnvidia-compiler.* libnvidia-tls.* libnvidia-glcore.* libOpenCL.* libXv* libvdpau_nvidia* tls $out/lib/
     
     ln -snf libnvidia-glcore.so.$versionNumber $out/lib/libnvidia-glcore.so
@@ -50,15 +50,15 @@ installPhase() {
     if test -z "$libsOnly"; then
         
         # Install the kernel module.
-        ensureDir $out/lib/modules/$kernelVersion/misc
+        mkdir -p $out/lib/modules/$kernelVersion/misc
         cp kernel/nvidia.ko $out/lib/modules/$kernelVersion/misc
 
         # Install the X driver.
-        ensureDir $out/lib/xorg/modules
+        mkdir -p $out/lib/xorg/modules
         cp -p libnvidia-wfb.* $out/lib/xorg/modules/
-        ensureDir $out/lib/xorg/modules/drivers
+        mkdir -p $out/lib/xorg/modules/drivers
         cp -p nvidia_drv.so $out/lib/xorg/modules/drivers
-        ensureDir $out/lib/xorg/modules/extensions
+        mkdir -p $out/lib/xorg/modules/extensions
         cp -p libglx.so.* $out/lib/xorg/modules/extensions
 
         ln -snf libnvidia-wfb.so.$versionNumber $out/lib/xorg/modules/libnvidia-wfb.so.1
@@ -67,7 +67,7 @@ installPhase() {
         patchelf --set-rpath $out/lib $out/lib/xorg/modules/extensions/libglx.so.*.*
 
         # Install the programs.
-        ensureDir $out/bin
+        mkdir -p $out/bin
 
         for i in nvidia-settings nvidia-xconfig; do
 	    cp $i $out/bin/$i
@@ -76,16 +76,16 @@ installPhase() {
         done
     
         # Header files etc.
-        ensureDir $out/include/nvidia
+        mkdir -p $out/include/nvidia
         cp -p *.h $out/include/nvidia
 
-        ensureDir $out/share/man/man1
+        mkdir -p $out/share/man/man1
         cp -p *.1.gz $out/share/man/man1
 
-        ensureDir $out/share/applications
+        mkdir -p $out/share/applications
         cp -p *.desktop $out/share/applications
 
-        ensureDir $out/share/pixmaps
+        mkdir -p $out/share/pixmaps
         cp -p nvidia-settings.png $out/share/pixmaps
 
         # Patch the `nvidia-settings.desktop' file.
diff --git a/pkgs/os-specific/linux/opengl/xorg-sys/builder.sh b/pkgs/os-specific/linux/opengl/xorg-sys/builder.sh
index 7ab20855bd31..cd21899e60e7 100644
--- a/pkgs/os-specific/linux/opengl/xorg-sys/builder.sh
+++ b/pkgs/os-specific/linux/opengl/xorg-sys/builder.sh
@@ -1,6 +1,6 @@
 source $stdenv/setup
 
-ensureDir $out/lib
+mkdir -p $out/lib
 
 ln -s /usr/lib/libGL.so.1 $out/lib/
 ln -s /usr/lib/libGLU.so.1 $out/lib/
diff --git a/pkgs/os-specific/linux/ov511/ov511-2.30-builder.sh b/pkgs/os-specific/linux/ov511/ov511-2.30-builder.sh
index 8bb282cacf75..21a2ac725ca7 100644
--- a/pkgs/os-specific/linux/ov511/ov511-2.30-builder.sh
+++ b/pkgs/os-specific/linux/ov511/ov511-2.30-builder.sh
@@ -13,6 +13,6 @@ echo "version $version"
 
 export version
 
-ensureDir $out/lib/modules/$version/kernel/drivers/usb/media/
+mkdir -p $out/lib/modules/$version/kernel/drivers/usb/media/
 
 genericBuild
diff --git a/pkgs/os-specific/linux/ov511/ov511-2.32-builder.sh b/pkgs/os-specific/linux/ov511/ov511-2.32-builder.sh
index c189c2e17068..636b19a95af2 100644
--- a/pkgs/os-specific/linux/ov511/ov511-2.32-builder.sh
+++ b/pkgs/os-specific/linux/ov511/ov511-2.32-builder.sh
@@ -13,7 +13,7 @@ echo "version $version"
 
 export version
 
-ensureDir $out/lib/modules/$version/kernel/drivers/usb/media/
+mkdir -p $out/lib/modules/$version/kernel/drivers/usb/media/
 
 genericBuild
 
diff --git a/pkgs/os-specific/linux/pcmciautils/default.nix b/pkgs/os-specific/linux/pcmciautils/default.nix
index a8b885d8a944..b53c61c754ae 100644
--- a/pkgs/os-specific/linux/pcmciautils/default.nix
+++ b/pkgs/os-specific/linux/pcmciautils/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     lib.concatMapStrings (path: ''
       for f in : $(find ${path} -type f); do
         test "$f" == ":" && continue;
-        ensureDir $(dirname $out/lib/firmware/$\{f#${path}});
+        mkdir -p $(dirname $out/lib/firmware/$\{f#${path}});
         ln -s $f $out/lib/firmware/$\{f#${path}};
       done;
     '') firmware;
diff --git a/pkgs/os-specific/linux/pmount/default.nix b/pkgs/os-specific/linux/pmount/default.nix
index 9366c2cf95f2..4d555f59c37e 100644
--- a/pkgs/os-specific/linux/pmount/default.nix
+++ b/pkgs/os-specific/linux/pmount/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, cryptsetup, dbus, dbus_glib, intltool, ntfs3g, utillinuxng
+{ stdenv, fetchurl, cryptsetup, dbus, dbus_glib, intltool, ntfs3g, utillinux
 , mediaDir ? "/media/"
 , lockDir ? "/var/lock/pmount"
 , whiteList ? "/etc/pmount.allow"
@@ -15,14 +15,14 @@ stdenv.mkDerivation rec {
     sha256 = "db38fc290b710e8e9e9d442da2fb627d41e13b3ee80326c15cc2595ba00ea036";
   };
 
-  buildInputs = [ intltool utillinuxng ];
+  buildInputs = [ intltool utillinux ];
 
   configureFlags = ""
   + " --with-media-dir=${mediaDir}"
   + " --with-lock-dir=${lockDir}"
   + " --with-whitelist=${whiteList}"
-  + " --with-mount-prog=${utillinuxng}/bin/mount"
-  + " --with-umount-prog=${utillinuxng}/bin/umount"
+  + " --with-mount-prog=${utillinux}/bin/mount"
+  + " --with-umount-prog=${utillinux}/bin/umount"
   + " --with-mount-ntfs3g=${ntfs3g}/sbin/mount.ntfs-3g";
 
   postConfigure = ''
diff --git a/pkgs/os-specific/linux/qc-usb/builder.sh b/pkgs/os-specific/linux/qc-usb/builder.sh
index a43138fa84fe..041be1153285 100644
--- a/pkgs/os-specific/linux/qc-usb/builder.sh
+++ b/pkgs/os-specific/linux/qc-usb/builder.sh
@@ -13,7 +13,7 @@ echo "version $version"
 
 export version
 
-ensureDir $out/lib/modules/$version/misc
+mkdir -p $out/lib/modules/$version/misc
 
 LINUX_DIR=$kernel/lib/modules/$version/build
 PREFIX=$out
diff --git a/pkgs/os-specific/linux/radeontools/default.nix b/pkgs/os-specific/linux/radeontools/default.nix
index ff3cad3fe98f..4dbe7e54247a 100644
--- a/pkgs/os-specific/linux/radeontools/default.nix
+++ b/pkgs/os-specific/linux/radeontools/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   };
 
   installPhase = ''
-    ensureDir $out/bin
+    mkdir -p $out/bin
     chmod +x lightwatch.pl
     cp radeontool lightwatch.pl $out/bin
   '';
diff --git a/pkgs/os-specific/linux/sysklogd/builder.sh b/pkgs/os-specific/linux/sysklogd/builder.sh
index 62df45ea7c95..d466f075652c 100644
--- a/pkgs/os-specific/linux/sysklogd/builder.sh
+++ b/pkgs/os-specific/linux/sysklogd/builder.sh
@@ -6,8 +6,8 @@ export prefix
 installFlags="BINDIR=$out/sbin MANDIR=$out/share/man INSTALL=install"
 patchPhase="sed -e 's@-o \${MAN_USER} -g \${MAN_GROUP} -m \${MAN_PERMS} @@' -i Makefile"
 
-ensureDir "$out/share/man/man8/"
-ensureDir "$out/share/man/man5/"
-ensureDir "$out/sbin"
+mkdir -p "$out/share/man/man8/"
+mkdir -p "$out/share/man/man5/"
+mkdir -p "$out/sbin"
 
 genericBuild
diff --git a/pkgs/os-specific/linux/tcp-wrapper/builder.sh b/pkgs/os-specific/linux/tcp-wrapper/builder.sh
index 58bc1d4409d1..7ea574fcf232 100644
--- a/pkgs/os-specific/linux/tcp-wrapper/builder.sh
+++ b/pkgs/os-specific/linux/tcp-wrapper/builder.sh
@@ -22,18 +22,18 @@ echo "building..."
 make REAL_DAEMON_DIR="$out/sbin" linux
 
 # Install
-ensureDir "$out/sbin"
+mkdir -p "$out/sbin"
 cp -v safe_finger tcpd tcpdchk tcpdmatch try-from "$out/sbin"
 
-ensureDir "$out/lib"
+mkdir -p "$out/lib"
 cp -v shared/lib*.so* "$out/lib"
 
-ensureDir "$out/include"
+mkdir -p "$out/include"
 cp -v *.h "$out/include"
 
-ensureDir "$out/man"
+mkdir -p "$out/man"
 for i in 3 5 8;
 do
-  ensureDir "$out/man/man$i"
+  mkdir -p "$out/man/man$i"
   cp *.$i "$out/man/man$i" ;
 done
diff --git a/pkgs/os-specific/linux/tunctl/default.nix b/pkgs/os-specific/linux/tunctl/default.nix
index f4c3aad938f2..8ea3599ff198 100644
--- a/pkgs/os-specific/linux/tunctl/default.nix
+++ b/pkgs/os-specific/linux/tunctl/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   makeFlags = [ "tunctl" ];
   installPhase = ''
-    ensureDir $out/bin
+    mkdir -p $out/bin
     cp tunctl $out/bin
   '';
 
diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix
index 32698ac4efbe..2679d23d76e1 100644
--- a/pkgs/os-specific/linux/upower/default.nix
+++ b/pkgs/os-specific/linux/upower/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, xz, pkgconfig, glib, dbus, dbus_glib, polkit
+{ stdenv, fetchurl, pkgconfig, glib, dbus, dbus_glib, polkit
 , intltool, libxslt, docbook_xsl, udev, libusb1, pmutils }:
 
 assert stdenv.isLinux;
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ dbus_glib polkit intltool libxslt docbook_xsl udev libusb1 ];
 
-  buildNativeInputs = [ xz pkgconfig ];
+  buildNativeInputs = [ pkgconfig ];
 
   configureFlags = "--with-backend=linux --localstatedir=/var";
 
diff --git a/pkgs/os-specific/linux/upstart/default.nix b/pkgs/os-specific/linux/upstart/default.nix
index 4e440770ef98..3c5fb2283cda 100644
--- a/pkgs/os-specific/linux/upstart/default.nix
+++ b/pkgs/os-specific/linux/upstart/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   postInstall =
     ''
       t=$out/etc/bash_completion.d
-      ensureDir $t
+      mkdir -p $t
       cp ${./upstart-bash-completion} $t/upstart
     '';
 
diff --git a/pkgs/os-specific/linux/util-linux-ng/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index 4e62be4ff32d..bd6f26dc58b2 100644
--- a/pkgs/os-specific/linux/util-linux-ng/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -1,11 +1,13 @@
-{ stdenv, fetchurl, ncurses ? null, perl ? null }:
+{ stdenv, fetchurl, zlib, ncurses ? null, perl ? null }:
 
 stdenv.mkDerivation rec {
-  name = "util-linux-ng-2.18";
+  name = "util-linux-2.20.1";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/utils/util-linux-ng/v2.18/${name}.tar.bz2";
-    sha256 = "1k1in1ba9kvh0kplri9765wh0yk68qrkk1a55dqsm21qfryc1idq";
+    # This used to be mirror://kernel/linux/utils/util-linux, but it
+    # disappeared in the kernel.org meltdown.
+    url = "mirror://gentoo/distfiles/${name}.tar.bz2";
+    sha256 = "1q5vjcvw4f067c63vj2n3xggvk5prm11571x6vnqiav47vdbqvni";
   };
 
   # !!! It would be better to obtain the path to the mount helpers
@@ -19,6 +21,6 @@ stdenv.mkDerivation rec {
     ${if ncurses == null then "--without-ncurses" else ""}
   '';
 
-  buildInputs = stdenv.lib.optional (ncurses != null) ncurses
+  buildInputs = [ zlib ] ++ stdenv.lib.optional (ncurses != null) ncurses
              ++ stdenv.lib.optional (perl != null) perl;
 }
diff --git a/pkgs/os-specific/linux/wis-go7007/default.nix b/pkgs/os-specific/linux/wis-go7007/default.nix
index 73e5694572af..4fff3ed37c0c 100644
--- a/pkgs/os-specific/linux/wis-go7007/default.nix
+++ b/pkgs/os-specific/linux/wis-go7007/default.nix
@@ -61,9 +61,9 @@ stdenv.mkDerivation {
     substituteInPlace Makefile \
         --replace '$(DESTDIR)$(KSRC)/include/linux' $includeDir \
         --replace '$(DESTDIR)$(FIRMWARE_DIR)' '$(FIRMWARE_DIR)'
-    ensureDir $includeDir
-    ensureDir $out/etc/hotplug/usb
-    ensureDir $out/etc/udev/rules.d
+    mkdir -p $includeDir
+    mkdir -p $out/etc/hotplug/usb
+    mkdir -p $out/etc/udev/rules.d
  
     makeFlagsArray=(KERNELSRC=$kernelSource \
         FIRMWARE_DIR=$out/firmware FXLOAD=${fxload}/sbin/fxload \
@@ -72,7 +72,7 @@ stdenv.mkDerivation {
   ''; # */
 
   postInstall = ''
-    ensureDir $out/bin
+    mkdir -p $out/bin
     cp apps/gorecord apps/modet $out/bin/
   '';
 
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index 6ffc2c5a0597..eb5a51ae6eaa 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -43,10 +43,10 @@ in
   ];
 
   postInstall = ''
-    ensureDir $out/share/man/man5 $out/share/man/man8
+    mkdir -p $out/share/man/man5 $out/share/man/man8
     cp -v doc/docbook/*.5 $out/share/man/man5/
     cp -v doc/docbook/*.8 $out/share/man/man8/
-    ensureDir $out/etc/dbus-1/system.d $out/share/dbus-1/system-services
+    mkdir -p $out/etc/dbus-1/system.d $out/share/dbus-1/system-services
     cp -v dbus/*service $out/share/dbus-1/system-services
     sed -e "s@/sbin/wpa_supplicant@$out&@" -i $out/share/dbus-1/system-services/*
     cp -v dbus/dbus-wpa_supplicant.conf $out/etc/dbus-1/system.d
diff --git a/pkgs/os-specific/linux/xf86-input-multitouch/default.nix b/pkgs/os-specific/linux/xf86-input-multitouch/default.nix
index f04297096d2f..c5cc5f3b68f0 100644
--- a/pkgs/os-specific/linux/xf86-input-multitouch/default.nix
+++ b/pkgs/os-specific/linux/xf86-input-multitouch/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
 
   installPhase = ''
     make DESTDIR="$out" LIBDIR="lib" install
-    ensureDir $out/include/xorg
+    mkdir -p $out/include/xorg
     echo -n "$confFile" > $out/include/xorg/10-multitouch.conf
   '';
 
diff --git a/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
index 9cc25174c51f..98446c708671 100644
--- a/pkgs/os-specific/linux/xf86-input-wacom/default.nix
+++ b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     ncurses pkgconfig randrproto xorgserver xproto udev ];
 
   preConfigure = ''
-    ensureDir $out/share/X11/xorg.conf.d
+    mkdir -p $out/share/X11/xorg.conf.d
     configureFlags="--with-xorg-module-dir=$out/lib/xorg/modules
     --with-sdkdir=$out/include/xorg --with-xorg-conf-dir=$out/share/X11/xorg.conf.d"
   '';
diff --git a/pkgs/os-specific/linux/zen-kernel/2.6.32-zen4.nix b/pkgs/os-specific/linux/zen-kernel/2.6.32-zen4.nix
deleted file mode 100644
index 78a36c73ca55..000000000000
--- a/pkgs/os-specific/linux/zen-kernel/2.6.32-zen4.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-args @ {stdenv, fetchurl, xz, runCommand, userModeLinux ? false, extraConfig ? "", 
-  kernelPatches ? [], extraMeta ? {}, 
-  features ? {}, preConfigure ? "",
-  ...}:
-
-let 
-  conf = import ./config-blocks.nix; 
-
-in
-
-import ../kernel/generic.nix (
-  rec {
-    version = "2.6.32-zen4";
-
-    src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-2.6.32.tar.bz2";
-      sha256 = "0kjhnkf2ldivagczs16q49zm2lr3khh01pqrlsc7sh5qh1npi6ah";
-    };
-
-    kernelPatches = [
-      {
-         name = "zen4"; 
-         patch = runCommand "2.6.32-zen4.patch" {} "${xz}/bin/lzma -d < ${ fetchurl {
-	   name = "2.6.32-zen4";
-           url = "http://downloads.zen-kernel.org/2.6.32/2.6.32-zen4.patch.lzma";
-           sha256 = "1dyp9sfigqjfqw1c94010c521bhcy1xnzp91kkhg3dwgzfpsp2k2";
-         } } > $out";
-      }
-    ]
-    ++
-    stdenv.lib.attrByPath ["kernelPatches"] [] args;
-
-    features = {
-      iwlwifi = true;
-      zen = true;
-      fbConDecor = true;
-      aufs = true;
-    } // (stdenv.lib.attrByPath ["features"] {} args);
-
-    config = with conf;
-    ''
-      ${generalOptions}
-      ${noDebug}
-      ${virtualisation}
-      ${if stdenv.lib.attrByPath ["features" "oldI686"] false args then noPAE else ""}
-      ${usefulSubsystems}
-      ${cfq}
-      ${noNUMA}
-      ${networking}
-      ${wireless}
-      ${fb}
-      ${fbConDecor}
-      ${sound}
-      ${usbserial}
-      ${fsXattr}
-      ${security}
-      ${blockDevices}
-      ${bluetooth}
-      ${misc}
-      ${if stdenv.lib.attrByPath ["features" "ckSched"] false args then bfsched else forceCFSched}
-    '';
-
-    preConfigure = ''
-      mv README.zen README-zen
-    '' + stdenv.lib.attrByPath ["preConfigure"] "" args;
-
-    extraMeta = {
-      maintainers = [stdenv.lib.maintainers.raskin];
-      platforms = with stdenv.lib.platforms;
-        linux;
-    } // stdenv.lib.attrByPath ["extraMeta"] {} args;
-  } 
-  // removeAttrs args ["extraConfig" "extraMeta" "features" "kernelPatches" 
-                        "xz" "runCommand" "preConfigure"]
-)
diff --git a/pkgs/os-specific/linux/zen-kernel/2.6.33-zen1.nix b/pkgs/os-specific/linux/zen-kernel/2.6.33-zen1.nix
deleted file mode 100644
index 5c1a315cb387..000000000000
--- a/pkgs/os-specific/linux/zen-kernel/2.6.33-zen1.nix
+++ /dev/null
@@ -1,78 +0,0 @@
-args @ {stdenv, fetchurl, xz, runCommand, userModeLinux ? false, extraConfig ? "", 
-  kernelPatches ? [], extraMeta ? {}, 
-  features ? {}, preConfigure ? "",
-  ...}:
-
-let 
-  conf = import ./config-blocks.nix; 
-
-  baseKernelVersion = "2.6.33";
-  ZenSuffix = "zen1";
-
-in
-
-import ../kernel/generic.nix (
-  rec {
-    version = "${baseKernelVersion}-${ZenSuffix}";
-
-    src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v2.6/linux-${baseKernelVersion}.tar.bz2";
-      sha256 = "1inmam21w13nyf5imgdb5palhiap41zcxf9k32i4ck1w7gg3gqk3";
-    };
-
-    kernelPatches = [
-      {
-         name = "${ZenSuffix}"; 
-         patch = runCommand "${baseKernelVersion}-${ZenSuffix}.patch" {} "${xz}/bin/lzma -d < ${ fetchurl {
-	   name = "${baseKernelVersion}-${ZenSuffix}.patch.lzma";
-           url = "http://downloads.zen-kernel.org/${baseKernelVersion}/${baseKernelVersion}-${ZenSuffix}.patch.lzma";
-           sha256 = "0a72d8allr4qi4p6hbbjh33kmcgbg84as0dfb50gsffvaj2d3kwf";
-         } } > $out";
-      }
-    ]
-    ++
-    stdenv.lib.attrByPath ["kernelPatches"] [] args;
-
-    features = {
-      iwlwifi = true;
-      zen = true;
-      fbConDecor = true;
-      aufs = true;
-    } // (stdenv.lib.attrByPath ["features"] {} args);
-
-    config = with conf;
-    ''
-      ${generalOptions}
-      ${noDebug}
-      ${virtualisation}
-      ${if stdenv.lib.attrByPath ["features" "oldI686"] false args then noPAE else ""}
-      ${usefulSubsystems}
-      ${cfq}
-      ${noNUMA}
-      ${networking}
-      ${wireless}
-      ${fb}
-      ${fbConDecor}
-      ${sound}
-      ${usbserial}
-      ${fsXattr}
-      ${security}
-      ${blockDevices}
-      ${bluetooth}
-      ${misc}
-      ${if stdenv.lib.attrByPath ["features" "ckSched"] false args then bfsched else forceCFSched}
-    '';
-
-    preConfigure = ''
-      mv README.zen README-zen
-    '' + stdenv.lib.attrByPath ["preConfigure"] "" args;
-
-    extraMeta = {
-      maintainers = [stdenv.lib.maintainers.raskin];
-      platforms = with stdenv.lib.platforms;
-        linux;
-    } // stdenv.lib.attrByPath ["extraMeta"] {} args;
-  } 
-  // removeAttrs args ["extraConfig" "extraMeta" "features" "kernelPatches" 
-                        "xz" "runCommand" "preConfigure"]
-)
diff --git a/pkgs/os-specific/linux/zen-kernel/config-blocks.nix b/pkgs/os-specific/linux/zen-kernel/config-blocks.nix
deleted file mode 100644
index f330325c91b1..000000000000
--- a/pkgs/os-specific/linux/zen-kernel/config-blocks.nix
+++ /dev/null
@@ -1,263 +0,0 @@
-rec {
-      generalOptions = ''
-        # Don't include any debug features.
-        DEBUG_KERNEL n
-
-        # Support drivers that need external firmware.
-        STANDALONE n
-
-        # Make /proc/config.gz available.
-        IKCONFIG_PROC y
-
-        # Optimize with -O2, not -Os.
-        CC_OPTIMIZE_FOR_SIZE n
-
-        # Enable the kernel's built-in memory tester.
-        MEMTEST y
-
-        KALLSYMS_EXTRA_PASS n
-      '';
-      
-      virtualisation = ''
-        # Virtualisation (KVM, Xen...).
-        PARAVIRT_GUEST y
-        KVM_CLOCK y
-        KVM_GUEST y
-        XEN? y
-        KSM y
-
-        # We need 64 GB (PAE) support for Xen guest support.
-        HIGHMEM64G? y
-      '';
-
-      noPAE = ''
-        HIGHMEM64G? n
-        PAE? n
-      '';
-
-      usefulSubsystems = ''
-        # Enable various subsystems.
-        ACCESSIBILITY y # Accessibility support
-        AUXDISPLAY y # Auxiliary Display support
-        DONGLE y # Serial dongle support
-        HIPPI y
-        MTD_COMPLEX_MAPPINGS y # needed for many devices
-        NET_POCKET y # enable pocket and portable adapters
-        SCSI_LOWLEVEL y # enable lots of SCSI devices
-        SCSI_LOWLEVEL_PCMCIA y
-        SPI y # needed for many devices
-        SPI_MASTER y
-        WAN y
-      '';
-
-      cfq = ''
-        # Include the CFQ I/O scheduler in the kernel, rather than as a
-        # module, so that the initrd gets a good I/O scheduler.
-        IOSCHED_CFQ y
-      '';
-
-      noDebug = ''
-        # Disable some expensive (?) features.
-        FTRACE n
-        KPROBES n
-        PM_TRACE_RTC n
-
-        AIC79XX_DEBUG_ENABLE n
-        AIC7XXX_DEBUG_ENABLE n
-        AIC94XX_DEBUG n
-        USB_DEBUG n
-        CPU_FREQ_DEBUG n
-      '';
-
-      noNUMA = ''
-        NUMA? n
-      '';
-
-      networking = ''
-        # Networking options.
-        IP_PNP n
-        IPV6_PRIVACY y
-        NETFILTER_ADVANCED y
-        IP_VS_PROTO_TCP y
-        IP_VS_PROTO_UDP y
-        IP_VS_PROTO_ESP y
-        IP_VS_PROTO_AH y
-        IP_DCCP_CCID3 n # experimental
-        CLS_U32_PERF y
-        CLS_U32_MARK y
-      '';
-
-      wireless = ''
-        # Wireless networking.
-        IPW2100_MONITOR y # support promiscuous mode
-        IPW2200_MONITOR y # support promiscuous mode
-        IWLWIFI_LEDS? y
-        IWLWIFI_SPECTRUM_MEASUREMENT y
-        IWL3945_SPECTRUM_MEASUREMENT y
-        IWL4965 y # Intel Wireless WiFi 4965AGN
-        IWL5000 y # Intel Wireless WiFi 5000AGN
-        HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
-        HOSTAP_FIRMWARE_NVRAM y
-      '';
-
-      fb = ''
-        # Enable various FB devices.
-        FB y
-        FB_EFI y
-        FB_NVIDIA_I2C y # Enable DDC Support
-        FB_RIVA_I2C y
-        FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
-        FB_ATY_GX y # Mach64 GX support
-        FB_SAVAGE_I2C y
-        FB_SAVAGE_ACCEL y
-        FB_SIS_300 y
-        FB_SIS_315 y
-        FB_3DFX_ACCEL y
-        FB_GEODE y
-      '';
-
-      fbNoTileBlit = ''
-        # Disable tileblitting
-        FB_TILEBLITTING n
-        FB_S3 n
-        FB_VT8623 n
-        FB_ARK n
-      '';
-
-      fbConDecor = ''
-        ${fb}
-        ${fbNoTileBlit}
-        FRAMEBUFFER_CONSOLE y
-        FB_VESA y
-        FB_CON_DECOR y
-      '';
-
-      sound = ''
-        # Sound.
-        SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
-        SND_HDA_INPUT_BEEP y # Support digital beep via input layer
-        SND_USB_CAIAQ_INPUT y
-        PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
-      '';
-
-      usbserial = ''
-        # USB serial devices.
-        USB_SERIAL_GENERIC y # USB Generic Serial Driver
-        USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
-        USB_SERIAL_KEYSPAN_USA28 y
-        USB_SERIAL_KEYSPAN_USA28X y
-        USB_SERIAL_KEYSPAN_USA28XA y
-        USB_SERIAL_KEYSPAN_USA28XB y
-        USB_SERIAL_KEYSPAN_USA19 y
-        USB_SERIAL_KEYSPAN_USA18X y
-        USB_SERIAL_KEYSPAN_USA19W y
-        USB_SERIAL_KEYSPAN_USA19QW y
-        USB_SERIAL_KEYSPAN_USA19QI y
-        USB_SERIAL_KEYSPAN_USA49W y
-        USB_SERIAL_KEYSPAN_USA49WLC y
-      '';
-
-      fsXattr = ''
-        # Filesystem options - in particular, enable extended attributes and
-        # ACLs for all filesystems that support them.
-        EXT2_FS_XATTR y # Ext2 extended attributes
-        EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
-        EXT2_FS_SECURITY y # Ext2 Security Labels
-        EXT2_FS_XIP y # Ext2 execute in place support
-        EXT4_FS_POSIX_ACL y
-        EXT4_FS_SECURITY y
-        REISERFS_FS_XATTR y
-        REISERFS_FS_POSIX_ACL y
-        REISERFS_FS_SECURITY y
-        JFS_POSIX_ACL y
-        JFS_SECURITY y
-        XFS_QUOTA y
-        XFS_POSIX_ACL y
-        XFS_RT y # XFS Realtime subvolume support
-        OCFS2_DEBUG_MASKLOG n
-        OCFS2_FS_POSIX_ACL? y
-        BTRFS_FS_POSIX_ACL y
-        UBIFS_FS_XATTR y
-        UBIFS_FS_ADVANCED_COMPR y
-        NFSD_V2_ACL y
-        NFSD_V3 y
-        NFSD_V3_ACL y
-        NFSD_V4 y
-        CIFS_XATTR y
-        CIFS_POSIX y
-      '';
-
-      security = ''
-        # Security related features.
-        STRICT_DEVMEM y # Filter access to /dev/mem
-        SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
-      '';
-
-      blockDevices = ''
-        BLK_DEV_BSG n
-        BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
-        BLK_DEV_IDEACPI y # IDE ACPI support
-        BLK_DEV_INTEGRITY y
-      '';
-
-      bluetooth = ''
-        BT_HCIUART_BCSP y
-        BT_HCIUART_H4 y # UART (H4) protocol support
-        BT_HCIUART_LL y
-        BT_RFCOMM_TTY y # RFCOMM TTY support
-      '';
-
-      misc = ''
-        # Misc. options.
-        8139TOO_8129 y
-        8139TOO_PIO n # PIO is slower
-        B43_PCMCIA y
-        BSD_PROCESS_ACCT_V3 y
-        CRASH_DUMP n
-        DMAR? n # experimental
-        DVB_DYNAMIC_MINORS y # we use udev
-        FUSION y # Fusion MPT device support
-        IDE_GD_ATAPI y # ATAPI floppy support
-        IRDA_ULTRA y # Ultra (connectionless) protocol
-        JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
-        JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
-        JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
-        JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
-        LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
-        LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
-        LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
-        LOGO n # not needed
-        MEDIA_ATTACH y
-        MEGARAID_NEWGEN y
-        MICROCODE_AMD y
-        MODVERSIONS y
-        MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
-        MTRR_SANITIZER y
-        NET_FC y # Fibre Channel driver support
-        PCI_LEGACY y
-        PPP_MULTILINK y # PPP multilink support
-        REGULATOR y # Voltage and Current Regulator Support
-        SCSI_LOGGING y # SCSI logging facility
-        SERIAL_8250 y # 8250/16550 and compatible serial support
-        SLIP_COMPRESSED y # CSLIP compressed headers
-        SLIP_SMART y
-        THERMAL_HWMON y # Hardware monitoring support
-        USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
-        X86_CHECK_BIOS_CORRUPTION y
-        X86_MCE y
-      '';
-
-      bfsched = ''
-        SCHED_BFS y
-        NO_HZ n
-        HZ_1000 n
-        HZ_300 y
-        HZ 300
-      '';
-
-      forceCFSched = ''
-        SCHED_CFS? y
-        SCHED_BFS? n
-        NO_HZ? y
-      '';
-}