summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/zynaddsubfx/default.nix2
-rw-r--r--pkgs/applications/editors/zile/default.nix2
-rw-r--r--pkgs/applications/misc/st/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/retroshare/default.nix6
-rw-r--r--pkgs/applications/office/abiword/default.nix7
-rw-r--r--pkgs/applications/window-managers/i3/default.nix4
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git4
-rwxr-xr-xpkgs/build-support/fetchzip/nix-prefetch-zip153
-rw-r--r--pkgs/build-support/grsecurity/default.nix10
-rw-r--r--pkgs/build-support/grsecurity/flavors.nix8
-rw-r--r--pkgs/development/compilers/aliceml/default.nix7
-rw-r--r--pkgs/development/compilers/go/1.3.nix94
-rw-r--r--pkgs/development/compilers/go/gox.nix54
-rw-r--r--pkgs/development/libraries/szip/default.nix4
-rw-r--r--pkgs/development/libraries/zeitgeist/default.nix2
-rw-r--r--pkgs/development/libraries/zlib/default.nix5
-rw-r--r--pkgs/development/libraries/zziplib/default.nix2
-rw-r--r--pkgs/development/python-modules/tables/default.nix56
-rw-r--r--pkgs/development/tools/misc/dejagnu/default.nix2
-rw-r--r--pkgs/development/tools/packer/default.nix35
-rw-r--r--pkgs/development/tools/packer/deps.nix307
-rw-r--r--pkgs/games/zoom/default.nix19
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/cfg80211_ibss_joined-channel-parameter.patch17
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix1
-rw-r--r--pkgs/os-specific/linux/gradm/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix19
-rw-r--r--pkgs/os-specific/linux/spl/3_12-compat.patch429
-rw-r--r--pkgs/os-specific/linux/spl/3_13-compat-1.patch61
-rw-r--r--pkgs/os-specific/linux/spl/3_13-compat-2.patch168
-rw-r--r--pkgs/os-specific/linux/spl/default.nix8
-rw-r--r--pkgs/os-specific/linux/spl/git.nix8
-rw-r--r--pkgs/os-specific/linux/zfs/3.13-compat.patch43
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix11
-rw-r--r--pkgs/os-specific/linux/zfs/gcc-4.8.patch114
-rw-r--r--pkgs/os-specific/linux/zfs/git.nix8
-rw-r--r--pkgs/os-specific/linux/zfs/libblkid-1db7b9b.patch118
-rw-r--r--pkgs/servers/serfdom/default.nix144
-rw-r--r--pkgs/servers/serfdom/deps.nix185
-rw-r--r--pkgs/shells/zsh/default.nix11
-rw-r--r--pkgs/tools/archivers/zip/default.nix1
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix23
-rw-r--r--pkgs/tools/graphics/zbar/default.nix9
-rw-r--r--pkgs/tools/misc/hdf5/default.nix18
-rw-r--r--pkgs/tools/networking/lftp/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-prefetch-scripts/default.nix13
-rw-r--r--pkgs/tools/security/gnupg1/default.nix4
-rw-r--r--pkgs/tools/system/syslog-ng/default.nix11
-rw-r--r--pkgs/tools/text/diffstat/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix20
-rw-r--r--pkgs/top-level/python-packages.nix71
51 files changed, 1164 insertions, 1156 deletions
diff --git a/pkgs/applications/audio/zynaddsubfx/default.nix b/pkgs/applications/audio/zynaddsubfx/default.nix
index 378318fbf85..cd30b5b3084 100644
--- a/pkgs/applications/audio/zynaddsubfx/default.nix
+++ b/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation  rec {
   nativeBuildInputs = [ cmake pkgconfig ];
 
   meta = with stdenv.lib; {
-    description = "high quality software synthesizer";
+    description = "High quality software synthesizer";
     homepage = http://zynaddsubfx.sourceforge.net;
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/applications/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix
index 87ea7ee6854..4166bc1e9e3 100644
--- a/pkgs/applications/editors/zile/default.nix
+++ b/pkgs/applications/editors/zile/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   preConfigure = "export gl_cv_func_fstatat_zero_flag=yes";
 
   meta = {
-    description = "GNU Zile, a lightweight Emacs clone";
+    description = "Lightweight Emacs clone";
 
     longDescription = ''
       GNU Zile, which is a lightweight Emacs clone.  Zile is short
diff --git a/pkgs/applications/misc/st/default.nix b/pkgs/applications/misc/st/default.nix
index fda89f1cd3d..9c57fbd19a7 100644
--- a/pkgs/applications/misc/st/default.nix
+++ b/pkgs/applications/misc/st/default.nix
@@ -4,11 +4,11 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "st-0.4.1";
+  name = "st-0.5";
   
   src = fetchurl {
     url = "http://dl.suckless.org/st/${name}.tar.gz";
-    sha256 = "0cdzwbm5fxrwz8ryxkh90d3vwx54wjyywgj28ymsb5fdv3396bzf";
+    sha256 = "0knxpzaa86pprng6hak8hx8bw22yw22rpz1ffxjpcvqlz3xdv05f";
   };
 
   configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
index 378e32c0afb..438a53b4f8a 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
@@ -36,7 +36,7 @@
 
 let
   # -> http://get.adobe.com/flashplayer/
-  version = "11.2.202.359";
+  version = "11.2.202.378";
 
   src =
     if stdenv.system == "x86_64-linux" then
@@ -47,7 +47,7 @@ let
       else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
-        sha256 = "13myq6f999qy1jbgm73gxnadrxdvasi2jiffdyxmwpbwglhhrpka";
+        sha256 = "08aw532k8y27s64ffdghz2k4zf0jsz65crvn3i9vxan29064la9c";
       }
     else if stdenv.system == "i686-linux" then
       if debug then {
@@ -58,7 +58,7 @@ let
       } else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
-        sha256 = "04wh18jbscp7m3drvsxxhp2vjnhww69vw0pgr23hx81ry0ccvb8m";
+        sha256 = "1njy2pnhgr2hjz6kp9vl4cgxxszw2k6gmhjz88hx92aijv7s93wz";
       }
     else throw "Flash Player is not supported on this platform";
 
diff --git a/pkgs/applications/networking/p2p/retroshare/default.nix b/pkgs/applications/networking/p2p/retroshare/default.nix
index 4e3f495456c..a139531b19a 100644
--- a/pkgs/applications/networking/p2p/retroshare/default.nix
+++ b/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -17,6 +17,9 @@ stdenv.mkDerivation {
     # Extensions get installed 
     sed -i "s,/usr/lib/retroshare/extensions/,$out/share/retroshare," \
       libretroshare/src/rsserver/rsinit.cc
+    # For bdboot.txt
+    sed -i "s,/usr/share/RetroShare,$out/share/retroshare," \
+      libretroshare/src/rsserver/rsinit.cc
   '';
 
   buildInputs = [ speex qt libupnp gpgme gnome3.libgnome_keyring glib libssh pkgconfig
@@ -36,6 +39,9 @@ stdenv.mkDerivation {
     # plugins
     mkdir -p $out/share/retroshare
     mv $out/lib* $out/share/retroshare
+
+    # BT DHT bootstrap
+    cp libbitdht/src/bitdht/bdboot.txt $out/share/retroshare
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/office/abiword/default.nix b/pkgs/applications/office/abiword/default.nix
index 0e5a6afcdc5..d9b3627507e 100644
--- a/pkgs/applications/office/abiword/default.nix
+++ b/pkgs/applications/office/abiword/default.nix
@@ -27,7 +27,10 @@ stdenv.mkDerivation {
       libgsf enchant wv libjpeg
     ];
 
-  meta = {
-    description = "Word processing program, similar to Microsof Word";
+  meta = with stdenv.lib; {
+    description = "Word processing program, similar to Microsoft Word";
+    homepage = http://www.abisource.com/;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix
index ebdc7b143c3..17a287f8aae 100644
--- a/pkgs/applications/window-managers/i3/default.nix
+++ b/pkgs/applications/window-managers/i3/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "i3-${version}";
-  version = "4.7.2";
+  version = "4.8";
 
   src = fetchurl {
     url = "http://i3wm.org/downloads/${name}.tar.bz2";
-    sha256 = "14zkn5jgm0b7ablvxcxh9gdzq6mjdd6i1kl9dbmifl2a6rg5dr3g";
+    sha256 = "0sqvd8yqf9vwqrrvbpbf8k93b3qfa3q9289m82xq15r31wlk8b2h";
   };
 
   buildInputs = [ which pkgconfig libxcb xcbutilkeysyms xcbutil xcbutilwm
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 3574f3b7539..bd1d8b5c1af 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -217,7 +217,9 @@ clone_user_rev() {
             fi;;
     esac
 
-    echo "git revision is $(cd $dir && (git rev-parse $rev 2> /dev/null || git rev-parse refs/heads/fetchgit) | tail -n1)"
+    local full_revision=$(cd $dir && (git rev-parse $rev 2> /dev/null || git rev-parse refs/heads/fetchgit) | tail -n1)
+    echo "git revision is $full_revision"
+    echo "git human-readable version is $(cd $dir && (git describe $full_revision 2> /dev/null || git describe --tags $full_revision 2> /dev/null || echo -- none --))"
 
     # Allow doing additional processing before .git removal
     eval "$NIX_PREFETCH_GIT_CHECKOUT_HOOK"
diff --git a/pkgs/build-support/fetchzip/nix-prefetch-zip b/pkgs/build-support/fetchzip/nix-prefetch-zip
new file mode 100755
index 00000000000..76255ab3674
--- /dev/null
+++ b/pkgs/build-support/fetchzip/nix-prefetch-zip
@@ -0,0 +1,153 @@
+#! /bin/sh -e
+
+usage(){
+    echo  >&2 "syntax: nix-prefetch-zip [OPTIONS] [URL [EXPECTED-HASH]]
+
+Options:
+      --url         url    The url of the archive to fetch.
+      --name        name   The name to use for the store path (defaults to \`basename \$url\`).
+      --hash        hash   The hash of unpacked archive.
+      --hash-type   type   Use the specified cryptographic hash algorithm, which can be one of md5, sha1, and sha256.
+      --leave-root         Keep the root directory of the archive.
+      --help               Show this help text.
+"
+    exit 1
+}
+
+
+argi=0
+argfun=""
+for arg; do
+  if test -z "$argfun"; then
+    case $arg in
+      --url) argfun=set_url;;
+      --name) argfun=set_name;;
+      --hash) argfun=set_expHash;;
+      --hash-type) argfun=set_hashType;;
+      --leave-root) leaveRoot=true;;
+      --help) usage;;
+      *) argi=$(($argi + 1))
+         case $argi in
+           1) url=$arg;;
+           2) rev=$arg;;
+           3) expHash=$arg;;
+           *) echo "Unexpected argument: $arg" >&2
+              usage
+              ;;
+         esac
+         ;;
+    esac
+  else
+    case $argfun in
+      set_*)
+        var=$(echo $argfun | sed 's,^set_,,')
+        eval "$var=\$arg"
+        ;;
+    esac
+    argfun=""
+  fi
+done
+
+if [ -z "$url" ]; then
+  echo "Error: No --url flag given" >&2
+  usage
+fi
+
+if [ -z "$name" ]; then
+  name=$(basename "$url")
+fi
+
+if test -z "$hashType"; then
+  hashType=sha256
+fi
+
+hashFormat="--base32"
+
+tmp=$(mktemp -d 2>/dev/null || mktemp -d -t "$$")
+trap "rm -rf '$tmp'" EXIT
+
+unpackDir=$tmp/unpacked/$name
+mkdir -p $unpackDir
+downloadedFile=$tmp/$name
+
+unpackFile() {
+  local curSrc="$1"
+
+  case "$curSrc" in
+    *.tar.xz | *.tar.lzma)
+      # Don't rely on tar knowing about .xz.
+      xz -d < $curSrc | tar xf -
+      ;;
+    *.tar | *.tar.* | *.tgz | *.tbz2)
+      # GNU tar can automatically select the decompression method
+      # (info "(tar) gzip").
+      tar xf $curSrc
+      ;;
+    *.zip)
+      unzip -qq $curSrc
+      ;;
+    *)
+      echo "source archive $curSrc has unknown type" >&2
+      exit 1
+      ;;
+  esac
+}
+
+# If the hash was given, a file with that hash may already be in the
+# store.
+if test -n "$expHash"; then
+  finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" "$name")
+  if ! nix-store --check-validity "$finalPath" 2> /dev/null; then
+    finalPath=
+  fi
+  hash=$expHash
+fi
+
+# If we don't know the hash or a path with that hash doesn't exist,
+# download the file and add it to the store.
+if test -z "$finalPath"; then
+  curl="curl \
+   --location --max-redirs 20 \
+   --disable-epsv \
+   --insecure"
+
+  if ! $curl --fail "$url" --output "$downloadedFile"; then
+    echo "error: could not download $url" >&2
+    exit 1
+  fi
+
+  cd $unpackDir
+  unpackFile "$downloadedFile"
+
+  # FIXME: handle zip files that contain a single regular file.
+  if [ -z "$leaveRoot" ]; then
+    shopt -s dotglob
+    if [ $(ls -d $unpackDir/* | wc -l) != 1 ]; then
+      echo "error: zip file must contain a single directory."
+      exit 1
+    fi
+    fn=$(cd "$unpackDir" && echo *)
+    mv $unpackDir/$fn/* "$unpackDir/"
+    rmdir "$unpackDir/$fn"
+  fi
+
+  # Compute the hash.
+  hash=$(nix-hash --type $hashType $hashFormat $unpackDir)
+  if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi
+
+  # Add the downloaded file to the Nix store.
+  finalPath=$(nix-store --add-fixed --recursive "$hashType" $unpackDir)
+
+  if test -n "$expHash" -a "$expHash" != "$hash"; then
+    echo "hash mismatch for URL \`$url'"
+    exit 1
+  fi
+fi
+
+if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi
+
+echo $hash
+
+if test -n "$PRINT_PATH"; then
+  echo $finalPath
+fi
diff --git a/pkgs/build-support/grsecurity/default.nix b/pkgs/build-support/grsecurity/default.nix
index a9c60a2afbd..e66b348d082 100644
--- a/pkgs/build-support/grsecurity/default.nix
+++ b/pkgs/build-support/grsecurity/default.nix
@@ -5,7 +5,6 @@ with lib;
 let
   cfg = {
     stable  = grsecOptions.stable  or false;
-    vserver = grsecOptions.vserver or false;
     testing = grsecOptions.testing or false;
     config = {
       mode = "auto";
@@ -29,12 +28,11 @@ let
         };
 
     test-patch = with pkgs.kernelPatches; grsecurity_unstable;
-    stable-patch = with pkgs.kernelPatches;
-      if cfg.vserver then grsecurity_vserver else grsecurity_stable;
+    stable-patch = with pkgs.kernelPatches; grsecurity_stable;
 
-    grKernel = if (cfg.stable || cfg.vserver)
-               then mkKernel pkgs.linux_3_2  stable-patch
-               else mkKernel pkgs.linux_3_14 test-patch;
+    grKernel = if cfg.stable
+               then mkKernel pkgs.linux_3_14 stable-patch
+               else mkKernel pkgs.linux_3_15 test-patch;
 
     ## -- grsecurity configuration ---------------------------------------------
 
diff --git a/pkgs/build-support/grsecurity/flavors.nix b/pkgs/build-support/grsecurity/flavors.nix
index 57d52e7cf94..969ca579f5a 100644
--- a/pkgs/build-support/grsecurity/flavors.nix
+++ b/pkgs/build-support/grsecurity/flavors.nix
@@ -16,12 +16,6 @@ in
   linux_grsec_stable_server_xen =
     mkOpts "stable" "security" "server" "guest" "xen" true;
 
-  # Stable+vserver kernels - server versions only
-  linux_grsec_vserver_server  =
-    mkOpts "vserver" "security" "server" "host" "kvm" true;
-  linux_grsec_vserver_server_xen =
-    mkOpts "vserver" "security" "server" "guest" "xen" true;
-
   # Testing kernels
   linux_grsec_testing_desktop =
     mkOpts "testing" "performance" "desktop" "host" "kvm" true;
@@ -29,4 +23,4 @@ in
     mkOpts "testing" "security" "server" "host" "kvm" true;
   linux_grsec_testing_server_xen =
     mkOpts "testing" "security" "server" "guest" "xen" true;
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/compilers/aliceml/default.nix b/pkgs/development/compilers/aliceml/default.nix
index 5ea470bfc87..29e95863921 100644
--- a/pkgs/development/compilers/aliceml/default.nix
+++ b/pkgs/development/compilers/aliceml/default.nix
@@ -63,8 +63,13 @@ stdenv.mkDerivation {
   builder = ./builder.sh;
 
   meta = {
+    description = "Functional programming language based on Standard ML";
+    longDescription = ''
+      Alice ML is a functional programming language based on Standard ML,
+      extended with rich support for concurrent, distributed, and constraint
+      programming.
+    '';
     homepage = http://www.ps.uni-saarland.de/alice/;
-    description = "Alice ML is a functional programming language based on Standard ML, extended with rich support for concurrent, distributed, and constraint programming.";
     license = "BSD";
   };
 }
diff --git a/pkgs/development/compilers/go/1.3.nix b/pkgs/development/compilers/go/1.3.nix
new file mode 100644
index 00000000000..b9178d5e61c
--- /dev/null
+++ b/pkgs/development/compilers/go/1.3.nix
@@ -0,0 +1,94 @@
+{ stdenv, lib, fetchurl, bison, glibc, bash, coreutils, makeWrapper, tzdata, iana_etc }:
+
+let
+  loader386 = "${glibc}/lib/ld-linux.so.2";
+  loaderAmd64 = "${glibc}/lib/ld-linux-x86-64.so.2";
+  loaderArm = "${glibc}/lib/ld-linux.so.3";
+in
+
+stdenv.mkDerivation {
+  name = "go-1.3";
+
+  src = fetchurl {
+    url = https://storage.googleapis.com/golang/go1.3.src.tar.gz;
+    sha256 = "10jkqgzlinzynciw3wr15c7n2vw5q4d2ni65hbs3i61bbdn3x67b";
+  };
+
+  buildInputs = [ bison bash makeWrapper ] ++ lib.optionals stdenv.isLinux [ glibc ] ;
+
+  # I'm not sure what go wants from its 'src', but the go installation manual
+  # describes an installation keeping the src.
+  preUnpack = ''
+    mkdir -p $out/share
+    cd $out/share
+  '';
+
+  prePatch = ''
+    # Ensure that the source directory is named go
+    cd ..
+    if [ ! -d go ]; then
+      mv * go
+    fi
+    cd go
+    patchShebangs ./ # replace /bin/bash
+
+    # Disabling the 'os/http/net' tests (they want files not available in
+    # chroot builds)
+    rm src/pkg/net/{multicast_test.go,parse_test.go,port_test.go}
+    # !!! substituteInPlace does not seems to be effective.
+    # The os test wants to read files in an existing path. Just don't let it be /usr/bin.
+    sed -i 's,/usr/bin,'"`pwd`", src/pkg/os/os_test.go
+    sed -i 's,/bin/pwd,'"`type -P pwd`", src/pkg/os/os_test.go
+    # Disable the unix socket test
+    sed -i '/TestShutdownUnix/areturn' src/pkg/net/net_test.go
+    # Disable the hostname test
+    sed -i '/TestHostname/areturn' src/pkg/os/os_test.go
+    sed -i 's,/etc/protocols,${iana_etc}/etc/protocols,' src/pkg/net/lookup_unix.go
+  '' + lib.optionalString stdenv.isLinux ''
+    sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/pkg/time/zoneinfo_unix.go
+    sed -i 's,/lib/ld-linux.so.3,${loaderArm},' src/cmd/5l/asm.c
+    sed -i 's,/lib64/ld-linux-x86-64.so.2,${loaderAmd64},' src/cmd/6l/asm.c
+    sed -i 's,/lib/ld-linux.so.2,${loader386},' src/cmd/8l/asm.c
+  '';
+
+  patches = [ ./cacert-1.2.patch ];
+
+  GOOS = if stdenv.isDarwin then "darwin" else "linux";
+  GOARCH = if stdenv.isDarwin then "amd64"
+           else if stdenv.system == "i686-linux" then "386"
+           else if stdenv.system == "x86_64-linux" then "amd64"
+           else if stdenv.system == "armv5tel-linux" then "arm"
+           else throw "Unsupported system";
+  GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
+  GO386 = 387; # from Arch: don't assume sse2 on i686
+  CGO_ENABLED = 1;
+
+  installPhase = ''
+    export CC=cc
+
+    # http://lists.science.uu.nl/pipermail/nix-dev/2013-October/011891.html
+    # Fix for "libgcc_s.so.1 must be installed for pthread_cancel to work"
+    # during tests:
+    export LD_LIBRARY_PATH="$(dirname $(echo ${stdenv.gcc.gcc}/lib*/libgcc_s.so))"
+
+    mkdir -p "$out/bin"
+    export GOROOT="$(pwd)/"
+    export GOBIN="$out/bin"
+    export PATH="$GOBIN:$PATH"
+    cd ./src
+    ./all.bash
+    cd -
+
+    # Copy the emacs configuration for Go files.
+    mkdir -p "$out/share/emacs/site-lisp"
+    cp ./misc/emacs/* $out/share/emacs/site-lisp/
+  '';
+
+  meta = {
+    homepage = http://golang.org/;
+    description = "The Go Programming language";
+    license = "BSD";
+    maintainers = with stdenv.lib.maintainers; [ cstrahan ];
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+  };
+}
diff --git a/pkgs/development/compilers/go/gox.nix b/pkgs/development/compilers/go/gox.nix
new file mode 100644
index 00000000000..705cb6e5c28
--- /dev/null
+++ b/pkgs/development/compilers/go/gox.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, go, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "github.com/mitchellh/gox";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "gox";
+        rev = "c7329055e2aeb253a947e5cc876586ff4ca19199";
+        sha256 = "0zhb88jjxqn3sdc4bpzvajqvgi9igp5gk03q12gaksaxhy2wl4jy";
+      };
+    }
+    {
+      root = "github.com/mitchellh/iochan";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "iochan";
+        rev = "b584a329b193e206025682ae6c10cdbe03b0cd77";
+        sha256 = "1fcwdhfci41ibpng2j4c1bqfng578cwzb3c00yw1lnbwwhaq9r6b";
+      };
+    }
+  ];
+  sources = stdenv.mkDerivation rec {
+    name = "go-deps";
+    buildCommand =
+      lib.concatStrings
+        (map (dep: ''
+                mkdir -p $out/src/`dirname ${dep.root}`
+                ln -s ${dep.src} $out/src/${dep.root}
+              '') goDeps);
+  };
+in
+
+stdenv.mkDerivation rec {
+  name = "gox";
+
+  src = sources;
+
+  propagatedBuildInputs = [ go ];
+
+  installPhase = ''
+    ensureDir $out/bin
+    export GOPATH=$src
+    go build -v -o $out/bin/gox github.com/mitchellh/gox
+  '';
+
+  meta = with lib; {
+    description = "A simple, no-frills tool for Go cross compilation that behaves a lot like standard go build";
+    homepage    = https://github.com/mitchellh/gox;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/szip/default.nix b/pkgs/development/libraries/szip/default.nix
index 38cde3bfd70..159b8e6e838 100644
--- a/pkgs/development/libraries/szip/default.nix
+++ b/pkgs/development/libraries/szip/default.nix
@@ -4,6 +4,6 @@ stdenv.mkDerivation {
     name = "szip-2.1";
     src = fetchurl {
         url = ftp://ftp.hdfgroup.org/lib-external/szip/2.1/src/szip-2.1.tar.gz;
-        sha256 = "05707lrdhwp8mv0dgzh2b6m2mwamv1z6k29m2v1v7pz0c1w2gb6z";
+        sha256 = "1vym7r4by02m0yqj10023xyps5b21ryymnxb4nb2gs32arfxj5m8";
     };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/libraries/zeitgeist/default.nix b/pkgs/development/libraries/zeitgeist/default.nix
index 92fbe81a32e..3ef43baca5e 100644
--- a/pkgs/development/libraries/zeitgeist/default.nix
+++ b/pkgs/development/libraries/zeitgeist/default.nix
@@ -29,8 +29,8 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
+    description = "A service which logs the users's activities and events";
     homepage = https://launchpad.net/zeitgeist;
-    description = "Zeitgeist is a service which logs the users's activities and events";
     maintainers = with maintainers; [ lethalman ];
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index f45c18dd0f1..0938e2a17a7 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -44,4 +44,9 @@ stdenv.mkDerivation rec {
   cygwinConfigureEnableShared = true;
 
   passthru.version = version;
+
+  meta = with stdenv.lib; {
+    description = "Lossless data-compression library";
+    license = licenses.zlib;
+  };
 }
diff --git a/pkgs/development/libraries/zziplib/default.nix b/pkgs/development/libraries/zziplib/default.nix
index 055a491f460..dcfaafc2b7d 100644
--- a/pkgs/development/libraries/zziplib/default.nix
+++ b/pkgs/development/libraries/zziplib/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "Zziplib, a library to extract data from files archived in a zip file";
+    description = "Library to extract data from files archived in a zip file";
 
     longDescription = ''
       The zziplib library is intentionally lightweight, it offers the ability
diff --git a/pkgs/development/python-modules/tables/default.nix b/pkgs/development/python-modules/tables/default.nix
new file mode 100644
index 00000000000..d3edf54788a
--- /dev/null
+++ b/pkgs/development/python-modules/tables/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, python, buildPythonPackage
+, cython, bzip2, lzo, numpy, numexpr, hdf5 }:
+
+buildPythonPackage rec {
+  version = "3.1.1";
+  name = "tables-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/pytables/${name}.tar.gz";
+    sha256 = "18rdzv9xwiapb5c8y47rk2fi3fdm2dpjf68wfycma67ifrih7f9r";
+  };
+
+  buildInputs = [ hdf5 cython bzip2 lzo ];
+  propagatedBuildInputs = [ numpy numexpr ];
+
+  # The setup script complains about missing run-paths, but they are
+  # actually set.
+  setupPyBuildFlags =
+    [ "--hdf5=${hdf5}"
+      "--lzo=${lzo}"
+      "--bzip2=${bzip2}"
+    ];
+  setupPyInstallFlags = setupPyBuildFlags;
+
+  # Run the test suite.
+  # It requires the build path to be in the python search path.
+  # These tests take quite some time.
+  # If the hdf5 library is built with zlib then there is only one
+  # test-failure. That is the same failure as described in the following
+  # github issue:
+  #     https://github.com/PyTables/PyTables/issues/269
+  checkPhase = ''
+    ${python}/bin/${python.executable} <<EOF
+    import sysconfig
+    import sys
+    import os
+    f = "lib.{platform}-{version[0]}.{version[1]}"
+    lib = f.format(platform=sysconfig.get_platform(),
+                   version=sys.version_info)
+    build = os.path.join(os.getcwd(), 'build', lib)
+    sys.path.insert(0, build)
+    import tables
+    r = tables.test()
+    if not r.wasSuccessful():
+        sys.exit(1)
+    EOF
+  '';
+
+  # Disable tests until the failure described above is fixed.
+  doCheck = false;
+
+  meta = {
+    description = "Hierarchical datasets for Python";
+    homepage = "http://www.pytables.org/";
+  };
+}
diff --git a/pkgs/development/tools/misc/dejagnu/default.nix b/pkgs/development/tools/misc/dejagnu/default.nix
index beed6032393..9e400cc5c62 100644
--- a/pkgs/development/tools/misc/dejagnu/default.nix
+++ b/pkgs/development/tools/misc/dejagnu/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The DejaGNU testing framework";
+    description = "Framework for testing other programs";
 
     longDescription = ''
       DejaGnu is a framework for testing other programs.  Its purpose
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
new file mode 100644
index 00000000000..5cea753dd9c
--- /dev/null
+++ b/pkgs/development/tools/packer/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, gox, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "packer-0.6.0";
+
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
+
+  buildInputs = [ gox ];
+
+  installPhase = ''
+    export GOPATH=$src
+    XC_ARCH=$(go env GOARCH)
+    XC_OS=$(go env GOOS)
+
+    ensureDir $out/bin
+
+    cd $src/src/github.com/mitchellh/packer
+    gox \
+        -os="''${XC_OS}" \
+        -arch="''${XC_ARCH}" \
+        -output "$out/bin/packer-{{.Dir}}" \
+        ./...
+    mv $out/bin/packer{*packer*,}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A tool for creating identical machine images for multiple platforms from a single source configuration";
+    homepage    = "http://www.packer.io";
+    license     = licenses.mpl20;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/packer/deps.nix b/pkgs/development/tools/packer/deps.nix
new file mode 100644
index 00000000000..4c8a376991a
--- /dev/null
+++ b/pkgs/development/tools/packer/deps.nix
@@ -0,0 +1,307 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "github.com/mitchellh/packer";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "packer";
+        rev = "12e28f257f66299e3bb13a053bf06ccd236e7efd";
+        sha256 = "1r5j864kr7lx137c23kk5s82znk11hsrgq98zfz5r8sbzq1xpbzw";
+      };
+    }
+    {
+      root = "code.google.com/p/go.crypto";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.crypto";
+        tag = "199";
+        sha256 = "0ibrpc6kknzl6a2g2fkxn03mvrd635lcnvf4a9rk1dfrpjbpcixh";
+      };
+    }
+    {
+      root = "code.google.com/p/goauth2";
+      src = fetchhg {
+        url = "http://code.google.com/p/goauth2";
+        tag = "67";
+        sha256 = "053vajj8hd9869by7z9qfgzn84h6avpcjvyxcyw5jml8dsln4bah";
+      };
+    }
+    {
+      root = "code.google.com/p/google-api-go-client";
+      src = fetchhg {
+        url = "http://code.google.com/p/google-api-go-client";
+        tag = "111";
+        sha256 = "1ib8i1c2mb86lkrr5w7bgwb70gkqmp860wa3h1j8080gxdx3yy16";
+      };
+    }
+    {
+      root = "code.google.com/p/gosshold";
+      src = fetchhg {
+        url = "http://code.google.com/p/gosshold";
+        tag = "2";
+        sha256 = "1ljl8pcxxfz5rv89b2ajd31gxxzifl57kzpksvdhyjdxh98gkvg8";
+      };
+    }
+    {
+      root = "github.com/ActiveState/tail";
+      src = fetchFromGitHub {
+        owner = "ActiveState";
+        repo = "tail";
+        rev = "8dcd1ad3e57aa8ce5614a837cbbdb21945fbb55a";
+        sha256 = "1jxj576dd7mawawwg5nzwf6k7sks0r3lp2x8f6kxaps50n3k1wiz";
+      };
+    }
+    {
+      root = "github.com/howeyc/fsnotify";
+      src = fetchFromGitHub {
+        owner = "howeyc";
+        repo = "fsnotify";
+        rev = "441bbc86b167f3c1f4786afae9931403b99fdacf";
+        sha256 = "1v5vrwhmidxjj6sppinyizf85v60zrmn7i6c9xk0pvx6k0kw2mr2";
+      };
+    }
+    {
+      root = "launchpad.net/tomb";
+      src = fetchbzr {
+        url = "https://launchpad.net/tomb";
+        revision = "17";
+        sha256 = "1cjw0sr9hald1darq6n8akfpkzcgrk3mcq59hga3ibf2lrg35ha0";
+      };
+    }
+    {
+      root = "github.com/going/toolkit";
+      src = fetchFromGitHub {
+        owner = "going";
+        repo = "toolkit";
+        rev = "6185c1893604d52d36a97dd6bb1247ace93a9b80";
+        sha256 = "1kzy5yppalcidsmv5yxmr6lpqplqj07kdqpn77fdp6fbb0y0sg11";
+      };
+    }
+    {
+      root = "code.google.com/p/goprotobuf";
+      src = fetchhg {
+        url = "http://code.google.com/p/goprotobuf";
+        tag = "246";
+        sha256 = "0k4wcv1dnkwcp0gdrajj6kr25f1lg4lgpbi0h5v9l9n7sdwzplf4";
+      };
+    }
+    {
+      root = "github.com/bmizerany/assert";
+      src = fetchFromGitHub {
+        owner = "bmizerany";
+        repo = "assert";
+        rev = "e17e99893cb6509f428e1728281c2ad60a6b31e3";
+        sha256 = "1lfrvqqmb09y6pcr76yjv4r84cshkd4s7fpmiy7268kfi2cvqnpc";
+      };
+    }
+    {
+      root = "github.com/kr/pretty";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "pretty";
+        rev = "bc9499caa0f45ee5edb2f0209fbd61fbf3d9018f";
+        sha256 = "1m61y592qsnwsqn76v54mm6h2pcvh4wlzbzscc1ag645x0j33vvl";
+      };
+    }
+    {
+      root = "github.com/kr/text";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "text";
+        rev = "6807e777504f54ad073ecef66747de158294b639";
+        sha256 = "1wkszsg08zar3wgspl9sc8bdsngiwdqmg3ws4y0bh02sjx5a4698";
+      };
+    }
+    {
+      root = "github.com/kr/pty";
+      src = fetchFromGitHub {
+        owner = "kr";
+        repo = "pty";
+        rev = "67e2db24c831afa6c64fc17b4a143390674365ef";
+        sha256 = "1l3z3wbb112ar9br44m8g838z0pq2gfxcp5s3ka0xvm1hjvanw2d";
+      };
+    }
+    {
+      root = "github.com/xiocode/toolkit";
+      src = fetchFromGitHub {
+        owner = "xiocode";
+        repo = "toolkit";
+        rev = "352fd7c6700074a81056cdfc9e82b3e8c5681ac5";
+        sha256 = "0p33zh57xpxyk2wyp9xahdxyrkq48ysihpr0n9kj713q0dh7x4a3";
+      };
+    }
+    {
+      root = "launchpad.net/gocheck";
+      src = fetchbzr {
+        url = "https://launchpad.net/gocheck";
+        revision = "87";
+        sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0";
+      };
+    }
+    {
+      root = "github.com/hashicorp/go-version";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "go-version";
+        rev = "bb92dddfa9792e738a631f04ada52858a139bcf7";
+        sha256 = "0fl5a6j6nk1xsxwjdpa24a24fxvgnvm3jjlgpyrnmbdn380zil3m";
+      };
+    }
+    {
+      root = "github.com/mitchellh/go-fs";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "go-fs";
+        rev = "faaa223588dd7005e49bf66fa2d19e35c8c4d761";
+        sha256 = "19jsvy35g14f18ckymzxasy0zfd6n99zlqg6grpj1yqdfxfvqn9b";
+      };
+    }
+    {
+      root = "github.com/mitchellh/go-vnc";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "go-vnc";
+        rev = "fc93dd80f5da4ccde0a9d97f0c73e56e04e0cf72";
+        sha256 = "03rwsp1frvfx6c7yxr711lq7jdgsr1gcwg14jw26xvbzzxwjvnsf";
+      };
+    }
+    {
+      root = "github.com/mitchellh/goamz";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "goamz";
+        rev = "c3ff5f734c89f1ea1f290c6aadbbceeeb19a623c";
+        sha256 = "1nyi1p5yh21r161icnwkcgmj2y38b4m1jis47vvjbqinrp45w1gq";
+      };
+    }
+    {
+      root = "github.com/motain/gocheck";
+      src = fetchFromGitHub {
+        owner = "motain";
+        repo = "gocheck";
+        rev = "9beb271d26e640863a5bf4a3c5ea40ccdd466b84";
+        sha256 = "07arpwfdb51b5f7kzqnm5s5ndfmxv5j793hpn30nbdcya46diwjd";
+      };
+    }
+    {
+      root = "github.com/mitchellh/iochan";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "iochan";
+        rev = "b584a329b193e206025682ae6c10cdbe03b0cd77";
+        sha256 = "1fcwdhfci41ibpng2j4c1bqfng578cwzb3c00yw1lnbwwhaq9r6b";
+      };
+    }
+    {
+      root = "github.com/mitchellh/mapstructure";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "mapstructure";
+        rev = "743fcf103ac7cdbc159e540d9d0e3a7889b87d68";
+        sha256 = "1qqxsnxabd7c04n0ip1wmpr2g913qchqrbmblq0shrf5p1hnszgn";
+      };
+    }
+    {
+      root = "github.com/mitchellh/multistep";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "multistep";
+        rev = "162146fc57112954184d90266f4733e900ed05a5";
+        sha256 = "0ydhbxziy9204qr43pjdh88y2jg34g2mhzdapjyfpf8a1rin6dn3";
+      };
+    }
+    {
+      root = "github.com/mitchellh/osext";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "osext";
+        rev = "0dd3f918b21bec95ace9dc86c7e70266cfc5c702";
+        sha256 = "02pczqml6p1mnfdrygm3rs02g0r65qx8v1bi3x24dx8wv9dr5y23";
+      };
+    }
+    {
+      root = "github.com/mitchellh/panicwrap";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "panicwrap";
+        rev = "1aedff2aaa8b8ff7f65ab58e94ef9f593e2e3bf4";
+        sha256 = "05brbpc7kizzbs1a128fmjddh7rdyg0jzzxgbvrl58cgklh4yzaa";
+      };
+    }
+    {
+      root = "github.com/rackspace/gophercloud";
+      src = fetchFromGitHub {
+        owner = "rackspace";
+        repo = "gophercloud";
+        rev = "2285a429874c1365ef6c6d3ceb08b1d428e26aca";
+        sha256 = "0py3h64r4wkl2r9j7xlh81nazpg2b0r5ba9iblh6d1380yk4fa7f";
+      };
+    }
+    {
+      root = "github.com/racker/perigee";
+      src = fetchFromGitHub {
+        owner = "racker";
+        repo = "perigee";
+        rev = "01db3191866051f2ec854c2d876ac1a179d3049c";
+        sha256 = "05pmlgwjynbr59bw50zhrklzhr5pgnij9ym5hqvijjrpw3qd9ivf";
+      };
+    }
+    {
+      root = "github.com/ugorji/go";
+      src = fetchFromGitHub {
+        owner = "ugorji";
+        repo = "go";
+        rev = "71c2886f5a673a35f909803f38ece5810165097b";
+        sha256 = "157f24xnkhclrjwwa1b7lmpj112ynlbf7g1cfw0c657iqny5720j";
+      };
+    }
+    {
+      root = "github.com/vmihailenco/msgpack";
+      src = fetchFromGitHub {
+        owner = "vmihailenco";
+        repo = "msgpack";
+        rev = "20c1b88a6c7fc5432037439f4e8c582e236fb205";
+        sha256 = "1dj5scpfhgnw0yrh0w6jlrb9d03halvsv4l3wgjhazrrimdqf0q0";
+      };
+    }
+    {
+      root = "github.com/ugorji/go-msgpack";
+      src = fetchFromGitHub {
+        owner = "ugorji";
+        repo = "go-msgpack";
+        rev = "75092644046c5e38257395b86ed26c702dc95b92";
+        sha256 = "1bmqi16bfiqw7qhb3d5hbh0dfzhx2bbq1g15nh2pxwxckwh80x98";
+      };
+    }
+    {
+      root = "launchpad.net/mgo";
+      src = fetchbzr {
+        url = "https://launchpad.net/mgo";
+        revision = "2";
+        sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x";
+      };
+    }
+    {
+      root = "github.com/vmihailenco/bufio";
+      src = fetchFromGitHub {
+        owner = "vmihailenco";
+        repo = "bufio";
+        rev = "24e7e48f60fc2d9e99e43c07485d9fff42051e66";
+        sha256 = "0x46qnf2f15v7m0j2dcb16raxjamk5rdc7hqwgyxfr1sqmmw3983";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/games/zoom/default.nix b/pkgs/games/zoom/default.nix
index fdf3aa91e2b..cb9974580d8 100644
--- a/pkgs/games/zoom/default.nix
+++ b/pkgs/games/zoom/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, perl, expat, x11, freetype}:
+{ stdenv, fetchurl, perl, expat, x11, freetype }:
 
 # !!! assert freetype == xlibs.freetype
 
@@ -10,8 +10,21 @@ stdenv.mkDerivation {
     sha256 = "1g6van7f7sg3zfcz80mncnnbccyg2hnm0hq4x558vpsm0lf7z5pj";
   };
   
-  buildInputs = [perl expat x11 freetype];
+  buildInputs = [ perl expat x11 freetype ];
   
   # Zoom doesn't add the right directory in the include path.
-  CFLAGS = ["-I" (freetype + "/include/freetype2")];
+  CFLAGS = [ "-I" (freetype + "/include/freetype2") ];
+
+  meta = with stdenv.lib; {
+    description = "Player for Z-Code, TADS and HUGO stories or games, usually text adventures ('interactive fiction')";
+    longDescription = ''
+      Zoom is a player for Z-Code, TADS and HUGO stories or games. These are
+      usually text adventures ('interactive fiction'), and were first created
+      by Infocom with the Zork series of games. Throughout the 80's, Infocom
+      released many interactive fiction stories before their ambitions to enter
+      the database market finally brought them low.
+    '';
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/os-specific/linux/broadcom-sta/cfg80211_ibss_joined-channel-parameter.patch b/pkgs/os-specific/linux/broadcom-sta/cfg80211_ibss_joined-channel-parameter.patch
new file mode 100644
index 00000000000..5596c0ebcf2
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/cfg80211_ibss_joined-channel-parameter.patch
@@ -0,0 +1,17 @@
+Add channel parameter to cfg80211_ibss_joined call
+
+--- a/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -1841,7 +1841,12 @@ wl_notify_connect_status(struct wl_cfg80211_priv *wl, struct net_device *ndev,
+ 			wl_get_assoc_ies(wl);
+ 			memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
+ 			wl_update_bss_info(wl);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0)
+ 			cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
++#else
++			cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid,
++			                     &wl->conf->channel, GFP_KERNEL);
++#endif
+ 			set_bit(WL_STATUS_CONNECTED, &wl->status);
+ 			wl->profile->active = true;
+ 		}
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index 5955543f8e1..1ed13c2e450 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
   patches = [
     ./linux-recent.patch
     ./license.patch
+    ./cfg80211_ibss_joined-channel-parameter.patch
   ];
 
   makeFlags = "KBASE=${kernel.dev}/lib/modules/${kernel.modDirVersion}";
diff --git a/pkgs/os-specific/linux/gradm/default.nix b/pkgs/os-specific/linux/gradm/default.nix
index 62a3cfa631e..87e8fa5b074 100644
--- a/pkgs/os-specific/linux/gradm/default.nix
+++ b/pkgs/os-specific/linux/gradm/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name    = "gradm-${version}";
-  version = "3.0-201401291757";
+  version = "3.0-201405281853";
 
   src  = fetchurl {
     url    = "http://grsecurity.net/stable/${name}.tar.gz";
-    sha256 = "19p7kaqbvf41scc63n69b5v5xzpw3mbf5zy691rply8hdm7736cw";
+    sha256 = "0yjmbjhm71cik5j8h2prgk40wki3sflwbf2zqmc4pwaqlvis9s2f";
   };
 
   buildInputs = [ gcc coreutils findutils binutils pam flex bison bash ];
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 9f62042d09c..eb4d7a100be 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -60,24 +60,17 @@ rec {
   };
 
   grsecurity_stable = grsecPatch
-    { kversion  = "3.2.60";
-      revision  = "201406191345";
+    { kversion  = "3.14.8";
+      revision  = "201406222110";
       branch    = "stable";
-      sha256    = "1zb2qxh2qhsrqi4gnslr3b6342ni9c6y20gb8jgh5plhnk5szx7v";
-    };
-
-  grsecurity_vserver = grsecPatch
-    { kversion  = "3.2.60";
-      revision  = "vs2.3.2.16-201406191346";
-      branch    = "vserver";
-      sha256    = "0qlbqpnh5wkgk8phh67bl4a25rb8n1k1hlq0kmcrnz6c3kflrsdz";
+      sha256    = "0jar710hqpjkp4g3ldrbcpgc170v9qp8ykajq5fi8mxx4j54gjwa";
     };
 
   grsecurity_unstable = grsecPatch
-    { kversion  = "3.14.8";
-      revision  = "201406191347";
+    { kversion  = "3.15.1";
+      revision  = "201406222112";
       branch    = "test";
-      sha256    = "01kl89vhr3mrp7g4ypcf9xrv0i4f9d4sdq4a11qhwyf1w48qr7da";
+      sha256    = "04sbpmzgfgn7hjiln9baynpgr7k67lm0b5wn2z8i2jsjigfmv0r4";
     };
 
   grsec_fix_path =
diff --git a/pkgs/os-specific/linux/spl/3_12-compat.patch b/pkgs/os-specific/linux/spl/3_12-compat.patch
deleted file mode 100644
index b196098b7df..00000000000
--- a/pkgs/os-specific/linux/spl/3_12-compat.patch
+++ /dev/null
@@ -1,429 +0,0 @@
-commit c3d9c0df3ee8d43db22815ebbfbe8b803fa46e46
-Author: Richard Yao <ryao@gentoo.org>
-Date:   Tue Nov 5 11:35:54 2013 -0500
-
-    Linux 3.12 compat: New shrinker API
-    
-    torvalds/linux@24f7c6 introduced a new shrinker API while
-    torvalds/linux@a0b021 dropped support for the old shrinker API.
-    This patch adds support for the new shrinker API by wrapping
-    the old one with the new one.
-    
-    This change also reorganizes the autotools checks on the shrinker
-    API such that the configure script will fail early if an unknown
-    API is encountered in the future.
-    
-    Support for the set_shrinker() API which was used by Linux 2.6.22
-    and older has been dropped.  As a general rule compatibility is
-    only maintained back to Linux 2.6.26.
-    
-    Signed-off-by: Richard Yao <ryao@gentoo.org>
-    Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
-    Closes zfsonlinux/zfs#1732
-    Closes zfsonlinux/zfs#1822
-    Closes #293
-    Closes #307
-
-diff --git a/config/spl-build.m4 b/config/spl-build.m4
-index b0e3348..7d744db 100644
---- a/config/spl-build.m4
-+++ b/config/spl-build.m4
-@@ -27,8 +27,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
- 	SPL_AC_TYPE_ATOMIC64_XCHG
- 	SPL_AC_TYPE_UINTPTR_T
- 	SPL_AC_2ARGS_REGISTER_SYSCTL
--	SPL_AC_SET_SHRINKER
--	SPL_AC_3ARGS_SHRINKER_CALLBACK
-+	SPL_AC_SHRINKER_CALLBACK
- 	SPL_AC_PATH_IN_NAMEIDATA
- 	SPL_AC_TASK_CURR
- 	SPL_AC_CTL_UNNUMBERED
-@@ -885,37 +884,18 @@ AC_DEFUN([SPL_AC_2ARGS_REGISTER_SYSCTL],
- 	])
- ])
- 
--dnl #
--dnl # 2.6.23 API change
--dnl # Old set_shrinker API replaced with register_shrinker
--dnl #
--AC_DEFUN([SPL_AC_SET_SHRINKER], [
--	AC_MSG_CHECKING([whether set_shrinker() available])
--	SPL_LINUX_TRY_COMPILE([
--		#include <linux/mm.h>
--	],[
--		return set_shrinker(DEFAULT_SEEKS, NULL);
--	],[
--		AC_MSG_RESULT([yes])
--		AC_DEFINE(HAVE_SET_SHRINKER, 1,
--		          [set_shrinker() available])
--	],[
--		AC_MSG_RESULT([no])
--	])
--])
--
--dnl #
--dnl # 2.6.35 API change,
--dnl # Add context to shrinker callback
--dnl #
--AC_DEFUN([SPL_AC_3ARGS_SHRINKER_CALLBACK],
--	[AC_MSG_CHECKING([whether shrinker callback wants 3 args])
-+AC_DEFUN([SPL_AC_SHRINKER_CALLBACK],[
- 	tmp_flags="$EXTRA_KCFLAGS"
- 	EXTRA_KCFLAGS="-Werror"
-+	dnl #
-+	dnl # 2.6.23 to 2.6.34 API change
-+	dnl # ->shrink(int nr_to_scan, gfp_t gfp_mask)
-+	dnl #
-+	AC_MSG_CHECKING([whether old 2-argument shrinker exists])
- 	SPL_LINUX_TRY_COMPILE([
- 		#include <linux/mm.h>
- 
--		int shrinker_cb(struct shrinker *, int, unsigned int);
-+		int shrinker_cb(int nr_to_scan, gfp_t gfp_mask);
- 	],[
- 		struct shrinker cache_shrinker = {
- 			.shrink = shrinker_cb,
-@@ -924,10 +904,86 @@ AC_DEFUN([SPL_AC_3ARGS_SHRINKER_CALLBACK],
- 		register_shrinker(&cache_shrinker);
- 	],[
- 		AC_MSG_RESULT(yes)
--		AC_DEFINE(HAVE_3ARGS_SHRINKER_CALLBACK, 1,
--		          [shrinker callback wants 3 args])
-+		AC_DEFINE(HAVE_2ARGS_OLD_SHRINKER_CALLBACK, 1,
-+			[old shrinker callback wants 2 args])
- 	],[
- 		AC_MSG_RESULT(no)
-+		dnl #
-+		dnl # 2.6.35 - 2.6.39 API change
-+		dnl # ->shrink(struct shrinker *,
-+		dnl #          int nr_to_scan, gfp_t gfp_mask)
-+		dnl #
-+		AC_MSG_CHECKING([whether old 3-argument shrinker exists])
-+		SPL_LINUX_TRY_COMPILE([
-+			#include <linux/mm.h>
-+
-+			int shrinker_cb(struct shrinker *, int nr_to_scan,
-+					gfp_t gfp_mask);
-+		],[
-+			struct shrinker cache_shrinker = {
-+				.shrink = shrinker_cb,
-+				.seeks = DEFAULT_SEEKS,
-+			};
-+			register_shrinker(&cache_shrinker);
-+		],[
-+			AC_MSG_RESULT(yes)
-+			AC_DEFINE(HAVE_3ARGS_SHRINKER_CALLBACK, 1,
-+				[old shrinker callback wants 3 args])
-+		],[
-+			AC_MSG_RESULT(no)
-+			dnl #
-+			dnl # 3.0 - 3.11 API change
-+			dnl # ->shrink(struct shrinker *,
-+			dnl #          struct shrink_control *sc)
-+			dnl #
-+			AC_MSG_CHECKING(
-+				[whether new 2-argument shrinker exists])
-+			SPL_LINUX_TRY_COMPILE([
-+				#include <linux/mm.h>
-+
-+				int shrinker_cb(struct shrinker *,
-+						struct shrink_control *sc);
-+			],[
-+				struct shrinker cache_shrinker = {
-+					.shrink = shrinker_cb,
-+					.seeks = DEFAULT_SEEKS,
-+				};
-+				register_shrinker(&cache_shrinker);
-+			],[
-+				AC_MSG_RESULT(yes)
-+				AC_DEFINE(HAVE_2ARGS_NEW_SHRINKER_CALLBACK, 1,
-+					[new shrinker callback wants 2 args])
-+			],[
-+				AC_MSG_RESULT(no)
-+				dnl #
-+				dnl # 3.12 API change,
-+				dnl # ->shrink() is logically split in to
-+				dnl # ->count_objects() and ->scan_objects()
-+				dnl #
-+				AC_MSG_CHECKING(
-+				    [whether ->count_objects callback exists])
-+				SPL_LINUX_TRY_COMPILE([
-+					#include <linux/mm.h>
-+
-+					unsigned long shrinker_cb(
-+						struct shrinker *,
-+						struct shrink_control *sc);
-+				],[
-+					struct shrinker cache_shrinker = {
-+						.count_objects = shrinker_cb,
-+						.scan_objects = shrinker_cb,
-+						.seeks = DEFAULT_SEEKS,
-+					};
-+					register_shrinker(&cache_shrinker);
-+				],[
-+					AC_MSG_RESULT(yes)
-+					AC_DEFINE(HAVE_SPLIT_SHRINKER_CALLBACK,
-+						1, [->count_objects exists])
-+				],[
-+					AC_MSG_ERROR(error)
-+				])
-+			])
-+		])
- 	])
- 	EXTRA_KCFLAGS="$tmp_flags"
- ])
-diff --git a/include/linux/mm_compat.h b/include/linux/mm_compat.h
-index cb1bef9..37c9b08 100644
---- a/include/linux/mm_compat.h
-+++ b/include/linux/mm_compat.h
-@@ -148,107 +148,167 @@ extern shrink_icache_memory_t shrink_icache_memory_fn;
- #endif /* HAVE_SHRINK_ICACHE_MEMORY */
- 
- /*
-- * Linux 2.6. - 2.6. Shrinker API Compatibility.
-+ * Due to frequent changes in the shrinker API the following
-+ * compatibility wrappers should be used.  They are as follows:
-+ *
-+ * SPL_SHRINKER_DECLARE is used to declare the shrinker which is
-+ * passed to spl_register_shrinker()/spl_unregister_shrinker().  Use
-+ * shrinker_name to set the shrinker variable name, shrinker_callback
-+ * to set the callback function, and seek_cost to define the cost of
-+ * reclaiming an object.
-+ *
-+ *   SPL_SHRINKER_DECLARE(shrinker_name, shrinker_callback, seek_cost);
-+ *
-+ * SPL_SHRINKER_CALLBACK_FWD_DECLARE is used when a forward declaration
-+ * of the shrinker callback function is required.  Only the callback
-+ * function needs to be passed.
-+ *
-+ *   SPL_SHRINKER_CALLBACK_FWD_DECLARE(shrinker_callback);
-+ *
-+ * SPL_SHRINKER_CALLBACK_WRAPPER is used to declare the callback function
-+ * which is registered with the shrinker.  This function will call your
-+ * custom shrinker which must use the following prototype.  Notice the
-+ * leading __'s, these must be appended to the callback_function name.
-+ *
-+ *   int  __shrinker_callback(struct shrinker *, struct shrink_control *)
-+ *   SPL_SHRINKER_CALLBACK_WRAPPER(shrinker_callback);a
-+ *
-+ *
-+ * Example:
-+ *
-+ * SPL_SHRINKER_CALLBACK_FWD_DECLARE(my_shrinker_fn);
-+ * SPL_SHRINKER_DECLARE(my_shrinker, my_shrinker_fn, 1);
-+ *
-+ * static int
-+ * __my_shrinker_fn(struct shrinker *shrink, struct shrink_control *sc)
-+ * {
-+ *	if (sc->nr_to_scan) {
-+ *		...scan objects in the cache and reclaim them...
-+ *	}
-+ *
-+ *	...calculate number of objects in the cache...
-+ *
-+ *	return (number of objects in the cache);
-+ * }
-+ * SPL_SHRINKER_CALLBACK_WRAPPER(my_shrinker_fn);
-  */
--#ifdef HAVE_SET_SHRINKER
--typedef struct spl_shrinker {
--	struct shrinker *shrinker;
--	shrinker_t fn;
--	int seeks;
--} spl_shrinker_t;
--
--static inline void
--spl_register_shrinker(spl_shrinker_t *ss)
--{
--	ss->shrinker = set_shrinker(ss->seeks, ss->fn);
--}
- 
--static inline void
--spl_unregister_shrinker(spl_shrinker_t *ss)
--{
--	remove_shrinker(ss->shrinker);
--}
-+#define	spl_register_shrinker(x)	register_shrinker(x)
-+#define	spl_unregister_shrinker(x)	unregister_shrinker(x)
- 
--# define SPL_SHRINKER_DECLARE(s, x, y)                                 \
--	static spl_shrinker_t s = {                                    \
--		.shrinker = NULL,                                      \
--		.fn = x,                                               \
--		.seeks = y                                             \
--	}
--
--# define SPL_SHRINKER_CALLBACK_FWD_DECLARE(fn)                         \
--	static int fn(int, unsigned int)
--# define SPL_SHRINKER_CALLBACK_WRAPPER(fn)                             \
--static int                                                             \
--fn(int nr_to_scan, unsigned int gfp_mask)                              \
--{                                                                      \
--	struct shrink_control sc;                                      \
--                                                                       \
--        sc.nr_to_scan = nr_to_scan;                                    \
--        sc.gfp_mask = gfp_mask;                                        \
--                                                                       \
--	return __ ## fn(NULL, &sc);                                    \
-+/*
-+ * Linux 2.6.23 - 2.6.34 Shrinker API Compatibility.
-+ */
-+#if defined(HAVE_2ARGS_OLD_SHRINKER_CALLBACK)
-+#define	SPL_SHRINKER_DECLARE(s, x, y)					\
-+static struct shrinker s = {						\
-+	.shrink = x,							\
-+	.seeks = y							\
- }
- 
--#else
-+#define	SPL_SHRINKER_CALLBACK_FWD_DECLARE(fn)				\
-+static int fn(int nr_to_scan, unsigned int gfp_mask)
- 
--# define spl_register_shrinker(x)	register_shrinker(x)
--# define spl_unregister_shrinker(x)	unregister_shrinker(x)
--# define SPL_SHRINKER_DECLARE(s, x, y)                                 \
--	static struct shrinker s = {                                   \
--		.shrink = x,                                           \
--		.seeks = y                                             \
--	}
-+#define	SPL_SHRINKER_CALLBACK_WRAPPER(fn)				\
-+static int								\
-+fn(int nr_to_scan, unsigned int gfp_mask)				\
-+{									\
-+	struct shrink_control sc;					\
-+									\
-+	sc.nr_to_scan = nr_to_scan;					\
-+	sc.gfp_mask = gfp_mask;						\
-+									\
-+	return (__ ## fn(NULL, &sc));					\
-+}
- 
- /*
-- * Linux 2.6. - 2.6. Shrinker API Compatibility.
-+ * Linux 2.6.35 to 2.6.39 Shrinker API Compatibility.
-  */
--# if defined(HAVE_SHRINK_CONTROL_STRUCT)
--#  define SPL_SHRINKER_CALLBACK_FWD_DECLARE(fn)                        \
--	static int fn(struct shrinker *, struct shrink_control *)
--#  define SPL_SHRINKER_CALLBACK_WRAPPER(fn)                            \
--static int                                                             \
--fn(struct shrinker *shrink, struct shrink_control *sc) {               \
--	return __ ## fn(shrink, sc);                                   \
-+#elif defined(HAVE_3ARGS_SHRINKER_CALLBACK)
-+#define	SPL_SHRINKER_DECLARE(s, x, y)					\
-+static struct shrinker s = {						\
-+	.shrink = x,							\
-+	.seeks = y							\
-+}
-+
-+#define	SPL_SHRINKER_CALLBACK_FWD_DECLARE(fn)				\
-+static int fn(struct shrinker *, int, unsigned int)
-+
-+#define	SPL_SHRINKER_CALLBACK_WRAPPER(fn)				\
-+static int								\
-+fn(struct shrinker *shrink, int nr_to_scan, unsigned int gfp_mask)	\
-+{									\
-+	struct shrink_control sc;					\
-+									\
-+	sc.nr_to_scan = nr_to_scan;					\
-+	sc.gfp_mask = gfp_mask;						\
-+									\
-+	return (__ ## fn(shrink, &sc));					\
- }
- 
- /*
-- * Linux 2.6. - 2.6. Shrinker API Compatibility.
-+ * Linux 3.0 to 3.11 Shrinker API Compatibility.
-  */
--# elif defined(HAVE_3ARGS_SHRINKER_CALLBACK)
--#  define SPL_SHRINKER_CALLBACK_FWD_DECLARE(fn)                       \
--	static int fn(struct shrinker *, int, unsigned int)
--#  define SPL_SHRINKER_CALLBACK_WRAPPER(fn)                           \
--static int                                                            \
--fn(struct shrinker *shrink, int nr_to_scan, unsigned int gfp_mask)    \
--{                                                                     \
--	struct shrink_control sc;                                     \
--                                                                      \
--        sc.nr_to_scan = nr_to_scan;                                   \
--        sc.gfp_mask = gfp_mask;                                       \
--                                                                      \
--	return __ ## fn(shrink, &sc);                                 \
-+#elif defined(HAVE_2ARGS_NEW_SHRINKER_CALLBACK)
-+#define	SPL_SHRINKER_DECLARE(s, x, y)					\
-+static struct shrinker s = {						\
-+	.shrink = x,							\
-+	.seeks = y							\
-+}
-+
-+#define	SPL_SHRINKER_CALLBACK_FWD_DECLARE(fn)				\
-+static int fn(struct shrinker *, struct shrink_control *)
-+
-+#define	SPL_SHRINKER_CALLBACK_WRAPPER(fn)				\
-+static int								\
-+fn(struct shrinker *shrink, struct shrink_control *sc)			\
-+{									\
-+	return (__ ## fn(shrink, sc));					\
- }
- 
- /*
-- * Linux 2.6. - 2.6. Shrinker API Compatibility.
-+ * Linux 3.12 and later Shrinker API Compatibility.
-  */
--# else
--#  define SPL_SHRINKER_CALLBACK_FWD_DECLARE(fn)                       \
--	static int fn(int, unsigned int)
--#  define SPL_SHRINKER_CALLBACK_WRAPPER(fn)                           \
--static int                                                            \
--fn(int nr_to_scan, unsigned int gfp_mask)                             \
--{                                                                     \
--	struct shrink_control sc;                                     \
--                                                                      \
--        sc.nr_to_scan = nr_to_scan;                                   \
--        sc.gfp_mask = gfp_mask;                                       \
--                                                                      \
--	return __ ## fn(NULL, &sc);                                   \
-+#elif defined(HAVE_SPLIT_SHRINKER_CALLBACK)
-+#define	SPL_SHRINKER_DECLARE(s, x, y)					\
-+static struct shrinker s = {						\
-+	.count_objects = x ## _count_objects,				\
-+	.scan_objects = x ## _scan_objects,				\
-+	.seeks = y							\
- }
- 
--# endif
--#endif /* HAVE_SET_SHRINKER */
-+#define	SPL_SHRINKER_CALLBACK_FWD_DECLARE(fn)				\
-+static unsigned long fn ## _count_objects(struct shrinker *,		\
-+    struct shrink_control *);						\
-+static unsigned long fn ## _scan_objects(struct shrinker *,		\
-+    struct shrink_control *)
-+
-+#define	SPL_SHRINKER_CALLBACK_WRAPPER(fn)				\
-+static unsigned long							\
-+fn ## _count_objects(struct shrinker *shrink, struct shrink_control *sc)\
-+{									\
-+	int __ret__;							\
-+									\
-+	sc->nr_to_scan = 0;						\
-+	__ret__ = __ ## fn(NULL, sc);					\
-+									\
-+	/* Errors may not be returned and must be converted to zeros */	\
-+	return ((__ret__ < 0) ? 0 : __ret__);				\
-+}									\
-+									\
-+static unsigned long							\
-+fn ## _scan_objects(struct shrinker *shrink, struct shrink_control *sc)	\
-+{									\
-+	int __ret__;							\
-+									\
-+	__ret__ = __ ## fn(NULL, sc);					\
-+	return ((__ret__ < 0) ? SHRINK_STOP : __ret__);			\
-+}
-+#else
-+/*
-+ * Linux 2.x to 2.6.22, or a newer shrinker API has been introduced.
-+ */
-+#error "Unknown shrinker callback"
-+#endif
- 
- #endif /* SPL_MM_COMPAT_H */
diff --git a/pkgs/os-specific/linux/spl/3_13-compat-1.patch b/pkgs/os-specific/linux/spl/3_13-compat-1.patch
deleted file mode 100644
index 40946931c80..00000000000
--- a/pkgs/os-specific/linux/spl/3_13-compat-1.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 3e96de17d723d6f6c9e2fd04b059b50d4e0bbef0 Mon Sep 17 00:00:00 2001
-From: Richard Yao <ryao@gentoo.org>
-Date: Thu, 8 Aug 2013 04:30:55 -0400
-Subject: [PATCH] Linux 3.13 compat: Remove unused flags variable from
- __cv_init()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-GCC 4.8.1 complained about an unused flags variable when building
-against Linux 2.6.26.8:
-
-/var/tmp/portage/sys-kernel/spl-9999/work/spl-9999/module/spl/../../module/spl/spl-condvar.c:
-In function ‘__cv_init’:
-/var/tmp/portage/sys-kernel/spl-9999/work/spl-9999/module/spl/../../module/spl/spl-condvar.c:39:6:
-error: variable ‘flags’ set but not used
-[-Werror=unused-but-set-variable]
-  int flags = KM_SLEEP;
-        ^
-	cc1: all warnings being treated as errors
-
-Additionally, the superfluous code uses a preempt_count variable that is
-no longer available on Linux 3.13. Deleting the unnecessary code fixes a
-Linux 3.13 compatibility issue.
-
-Signed-off-by: Richard Yao <ryao@gentoo.org>
-Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
-Closes #312
----
- module/spl/spl-condvar.c | 8 --------
- 1 file changed, 8 deletions(-)
-
-diff --git a/module/spl/spl-condvar.c b/module/spl/spl-condvar.c
-index 283648a..8236412 100644
---- a/module/spl/spl-condvar.c
-+++ b/module/spl/spl-condvar.c
-@@ -36,8 +36,6 @@
- void
- __cv_init(kcondvar_t *cvp, char *name, kcv_type_t type, void *arg)
- {
--	int flags = KM_SLEEP;
--
- 	SENTRY;
- 	ASSERT(cvp);
- 	ASSERT(name == NULL);
-@@ -51,12 +49,6 @@
- 	atomic_set(&cvp->cv_refs, 1);
- 	cvp->cv_mutex = NULL;
- 
--        /* We may be called when there is a non-zero preempt_count or
--	 * interrupts are disabled is which case we must not sleep.
--	 */
--        if (current_thread_info()->preempt_count || irqs_disabled())
--		flags = KM_NOSLEEP;
--
- 	SEXIT;
- }
- EXPORT_SYMBOL(__cv_init);
--- 
-1.8.5.5
-
diff --git a/pkgs/os-specific/linux/spl/3_13-compat-2.patch b/pkgs/os-specific/linux/spl/3_13-compat-2.patch
deleted file mode 100644
index 1f487f042f8..00000000000
--- a/pkgs/os-specific/linux/spl/3_13-compat-2.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-From 50a0749eba31e821a7edf286f1e3b149f7d13c59 Mon Sep 17 00:00:00 2001
-From: Richard Yao <ryao@gentoo.org>
-Date: Mon, 25 Nov 2013 11:22:33 -0500
-Subject: [PATCH] Linux 3.13 compat: Pass NULL for new delegated inode argument
-
-This check was originally added for SLES10, a093c6a, to check for
-a 'struct vfsmount *' argument which they added.  However, since
-SLES10 is based on a 2.6.16 kernel which is no longer supported
-this functionality was dropped.  The checks were refactored to
-support Linux 3.13 without concern for historical versions.
-
-Signed-off-by: Richard Yao <ryao@gentoo.org>
-Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
-Closes #312
----
- config/spl-build.m4    | 52 ++++++++++++++++++++++++++++++++++++++++----------
- module/spl/spl-vnode.c | 22 ++++++++++++---------
- 2 files changed, 55 insertions(+), 19 deletions(-)
-
-diff --git a/config/spl-build.m4 b/config/spl-build.m4
-index 7d744db..8426780 100644
---- a/config/spl-build.m4
-+++ b/config/spl-build.m4
-@@ -1842,41 +1842,73 @@ AC_DEFUN([SPL_AC_SET_FS_PWD_WITH_CONST],
- 	EXTRA_KCFLAGS="$tmp_flags"
- ])
- 
--dnl #
--dnl # SLES API change, never adopted in mainline,
--dnl # Third 'struct vfsmount *' argument removed.
--dnl #
- AC_DEFUN([SPL_AC_2ARGS_VFS_UNLINK],
- 	[AC_MSG_CHECKING([whether vfs_unlink() wants 2 args])
- 	SPL_LINUX_TRY_COMPILE([
- 		#include <linux/fs.h>
- 	],[
--		vfs_unlink(NULL, NULL);
-+		vfs_unlink((struct inode *) NULL, (struct dentry *) NULL);
- 	],[
- 		AC_MSG_RESULT(yes)
- 		AC_DEFINE(HAVE_2ARGS_VFS_UNLINK, 1,
- 		          [vfs_unlink() wants 2 args])
- 	],[
- 		AC_MSG_RESULT(no)
-+		dnl #
-+		dnl # Linux 3.13 API change
-+		dnl # Added delegated inode
-+		dnl #
-+		AC_MSG_CHECKING([whether vfs_unlink() wants 3 args])
-+		SPL_LINUX_TRY_COMPILE([
-+			#include <linux/fs.h>
-+		],[
-+			vfs_unlink((struct inode *) NULL,
-+				(struct dentry *) NULL,
-+				(struct inode **) NULL);
-+		],[
-+			AC_MSG_RESULT(yes)
-+			AC_DEFINE(HAVE_3ARGS_VFS_UNLINK, 1,
-+				  [vfs_unlink() wants 3 args])
-+		],[
-+			AC_MSG_ERROR(no)
-+		])
-+
- 	])
- ])
- 
--dnl #
--dnl # SLES API change, never adopted in mainline,
--dnl # Third and sixth 'struct vfsmount *' argument removed.
--dnl #
- AC_DEFUN([SPL_AC_4ARGS_VFS_RENAME],
- 	[AC_MSG_CHECKING([whether vfs_rename() wants 4 args])
- 	SPL_LINUX_TRY_COMPILE([
- 		#include <linux/fs.h>
- 	],[
--		vfs_rename(NULL, NULL, NULL, NULL);
-+		vfs_rename((struct inode *) NULL, (struct dentry *) NULL,
-+			(struct inode *) NULL, (struct dentry *) NULL);
- 	],[
- 		AC_MSG_RESULT(yes)
- 		AC_DEFINE(HAVE_4ARGS_VFS_RENAME, 1,
- 		          [vfs_rename() wants 4 args])
- 	],[
- 		AC_MSG_RESULT(no)
-+		dnl #
-+		dnl # Linux 3.13 API change
-+		dnl # Added delegated inode
-+		dnl #
-+		AC_MSG_CHECKING([whether vfs_rename() wants 5 args])
-+		SPL_LINUX_TRY_COMPILE([
-+			#include <linux/fs.h>
-+		],[
-+			vfs_rename((struct inode *) NULL,
-+				(struct dentry *) NULL,
-+				(struct inode *) NULL,
-+				(struct dentry *) NULL,
-+				(struct inode **) NULL);
-+		],[
-+			AC_MSG_RESULT(yes)
-+			AC_DEFINE(HAVE_5ARGS_VFS_RENAME, 1,
-+				  [vfs_rename() wants 5 args])
-+		],[
-+			AC_MSG_ERROR(no)
-+		])
- 	])
- ])
- 
-diff --git a/module/spl/spl-vnode.c b/module/spl/spl-vnode.c
-index 0784ff2..5496067 100644
---- a/module/spl/spl-vnode.c
-+++ b/module/spl/spl-vnode.c
-@@ -334,7 +334,11 @@
- 		if (inode)
- 			ihold(inode);
- 
-+#ifdef HAVE_2ARGS_VFS_UNLINK
- 		rc = vfs_unlink(parent.dentry->d_inode, dentry);
-+#else
-+		rc = vfs_unlink(parent.dentry->d_inode, dentry, NULL);
-+#endif /* HAVE_2ARGS_VFS_UNLINK */
- exit1:
- 		dput(dentry);
- 	} else {
-@@ -412,10 +416,10 @@
- 
- #ifdef HAVE_4ARGS_VFS_RENAME
- 	rc = vfs_rename(old_dir->d_inode, old_dentry,
--			new_dir->d_inode, new_dentry);
-+	    new_dir->d_inode, new_dentry);
- #else
--	rc = vfs_rename(old_dir->d_inode, old_dentry, oldnd.nd_mnt,
--			new_dir->d_inode, new_dentry, newnd.nd_mnt);
-+	rc = vfs_rename(old_dir->d_inode, old_dentry,
-+	    new_dir->d_inode, new_dentry, NULL);
- #endif /* HAVE_4ARGS_VFS_RENAME */
- exit4:
- 	unlock_rename(new_dir, old_dir);
-@@ -478,9 +482,9 @@
-                 if (inode)
-                         atomic_inc(&inode->i_count);
- #ifdef HAVE_2ARGS_VFS_UNLINK
--                rc = vfs_unlink(nd.nd_dentry->d_inode, dentry);
-+		rc = vfs_unlink(nd.nd_dentry->d_inode, dentry);
- #else
--                rc = vfs_unlink(nd.nd_dentry->d_inode, dentry, nd.nd_mnt);
-+		rc = vfs_unlink(nd.nd_dentry->d_inode, dentry, NULL);
- #endif /* HAVE_2ARGS_VFS_UNLINK */
- exit2:
-                 dput(dentry);
-@@ -571,11 +575,11 @@
-                 SGOTO(exit5, rc);
- 
- #ifdef HAVE_4ARGS_VFS_RENAME
--        rc = vfs_rename(old_dir->d_inode, old_dentry,
--                        new_dir->d_inode, new_dentry);
-+	rc = vfs_rename(old_dir->d_inode, old_dentry,
-+	    new_dir->d_inode, new_dentry);
- #else
--        rc = vfs_rename(old_dir->d_inode, old_dentry, oldnd.nd_mnt,
--                        new_dir->d_inode, new_dentry, newnd.nd_mnt);
-+	rc = vfs_rename(old_dir->d_inode, old_dentry,
-+	    new_dir->d_inode, new_dentry, NULL);
- #endif /* HAVE_4ARGS_VFS_RENAME */
- exit5:
-         dput(new_dentry);
--- 
-1.8.5.5
-
diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix
index e74d0f0ef75..944fb6ff554 100644
--- a/pkgs/os-specific/linux/spl/default.nix
+++ b/pkgs/os-specific/linux/spl/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, kernel, perl, autoconf, automake, libtool, coreutils, gawk }:
 
 stdenv.mkDerivation {
-  name = "spl-0.6.2-${kernel.version}";
+  name = "spl-0.6.3-${kernel.version}";
   src = fetchurl {
-    url = http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.2.tar.gz;
-    sha256 = "196scl8q0bkkak6m0p1l1fz254cgsizqm73bf9wk3iynamq7qmrw";
+    url = http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.3.tar.gz;
+    sha256 = "1qqzyj2if5wai4jiwml4i8s6v8k7hbi7jmiph800lhkk5j8s72l9";
   };
 
-  patches = [ ./install_prefix.patch ./3_12-compat.patch ./3_13-compat-1.patch ./3_13-compat-2.patch ./const.patch ];
+  patches = [ ./install_prefix.patch ./const.patch ];
 
   buildInputs = [ perl autoconf automake libtool ];
 
diff --git a/pkgs/os-specific/linux/spl/git.nix b/pkgs/os-specific/linux/spl/git.nix
index ba7ccc7348e..d3ed285ccfe 100644
--- a/pkgs/os-specific/linux/spl/git.nix
+++ b/pkgs/os-specific/linux/spl/git.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchgit, kernel, perl, autoconf, automake, libtool, coreutils, gawk }:
 
 stdenv.mkDerivation {
-  name = "spl-0.6.3pre-${kernel.version}";
+  name = "spl-0.6.3-${kernel.version}";
   src = fetchgit {
     url = git://github.com/zfsonlinux/spl.git;
-    rev = "89aa97059d7ddad668a5118aef7914743162a5e8";
-    sha256 = "1x4pba26zbyly8xd9q8s4av9v88ck0n9szxx72wzcn0s25rsyanx";
+    rev = "31cb5383bff0fddc5058973e32a6f2c446d45e59";
+    sha256 = "0mcivbddms8kbapbs9x6achqyvh5i6h1rd2b3jm8g5yjn0flc5gl";
   };
 
-  patches = [ ./install_prefix.patch ];
+  patches = [ ./install_prefix.patch ./const.patch ];
 
   buildInputs = [ perl autoconf automake libtool ];
 
diff --git a/pkgs/os-specific/linux/zfs/3.13-compat.patch b/pkgs/os-specific/linux/zfs/3.13-compat.patch
deleted file mode 100644
index f89d38f72ac..00000000000
--- a/pkgs/os-specific/linux/zfs/3.13-compat.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 729210564a5325e190fc4fba22bf17bacf957ace Mon Sep 17 00:00:00 2001
-From: Richard Yao <ryao@gentoo.org>
-Date: Mon, 25 Nov 2013 12:21:21 -0500
-Subject: [PATCH] Properly ignore bdi_setup_and_register return value
-
-This broke compilation against Linux 3.13 and GCC 4.7.3.
-
-Signed-off-by: Richard Yao <ryao@gentoo.org>
-Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
-Closes #1906
----
- config/kernel-bdi-setup-and-register.m4 | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/config/kernel-bdi-setup-and-register.m4 b/config/kernel-bdi-setup-and-register.m4
-index 4196091..cb8ed67 100644
---- a/config/kernel-bdi-setup-and-register.m4
-+++ b/config/kernel-bdi-setup-and-register.m4
-@@ -1,12 +1,14 @@
- dnl #
- dnl # 2.6.34 API change
--dnl # The bdi_setup_and_register() helper function is avilable and
-+dnl # The bdi_setup_and_register() helper function is available and
- dnl # exported by the kernel.  This is a trivial helper function but
- dnl # using it significantly simplifies the code surrounding setting
- dnl # up and tearing down the bdi structure.
- dnl #
- AC_DEFUN([ZFS_AC_KERNEL_BDI_SETUP_AND_REGISTER],
- 	[AC_MSG_CHECKING([whether bdi_setup_and_register() is available])
-+	tmp_flags="$EXTRA_KCFLAGS"
-+	EXTRA_KCFLAGS="-Wno-unused-result"
- 	ZFS_LINUX_TRY_COMPILE_SYMBOL([
- 		#include <linux/backing-dev.h>
- 	], [
-@@ -18,4 +20,5 @@ AC_DEFUN([ZFS_AC_KERNEL_BDI_SETUP_AND_REGISTER],
- 	], [
- 		AC_MSG_RESULT(no)
- 	])
-+	EXTRA_KCFLAGS="$tmp_flags"
- ])
--- 
-1.8.5.5
-
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index f8f3c9ed316..aec95832d16 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, kernel, spl, perl, autoconf, automake, libtool, zlib, libuuid, coreutils, utillinux }:
 
 stdenv.mkDerivation {
-  name = "zfs-0.6.2-${kernel.version}";
+  name = "zfs-0.6.3-${kernel.version}";
 
   src = fetchurl {
-    url = http://archive.zfsonlinux.org/downloads/zfsonlinux/zfs/zfs-0.6.2.tar.gz;
-    sha256 = "18b5f18k8mwb17r5ippsilmp1a2sqjw9fwn0z82159dkhsadg33b";
+    url = http://archive.zfsonlinux.org/downloads/zfsonlinux/zfs/zfs-0.6.3.tar.gz;
+    sha256 = "06rrip9fxn13x6qnyp6br68r9pcygb95lld25hnnj88m2vagvg19";
   };
 
-  patches = [ ./mount_zfs_prefix.patch ./nix-build.patch ./libblkid-1db7b9b.patch ./gcc-4.8.patch ./3.13-compat.patch ];
+  patches = [ ./mount_zfs_prefix.patch ./nix-build.patch ];
 
   buildInputs = [ spl perl autoconf automake libtool zlib libuuid coreutils ];
 
@@ -28,9 +28,12 @@ stdenv.mkDerivation {
   '';
 
   configureFlags = ''
+    --disable-systemd
     --with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source
     --with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
     --with-spl=${spl}/libexec/spl
+    --with-dracutdir=$$out/lib/dracut
+    --with-udevdir=$$out/lib/udev
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/os-specific/linux/zfs/gcc-4.8.patch b/pkgs/os-specific/linux/zfs/gcc-4.8.patch
deleted file mode 100644
index 34136016376..00000000000
--- a/pkgs/os-specific/linux/zfs/gcc-4.8.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-commit 0f62f3f9abc4bfa0bcafee9bfa3d55e91dcb371d
-Author: Brian Behlendorf <behlendorf1@llnl.gov>
-Date:   Tue Jan 14 09:39:13 2014 -0800
-
-    Disable GCCs aggressive loop optimization
-    
-    GCC >+ 4.8's aggressive loop optimization breaks some of the iterators
-    over the dn_blkptr[] pseudo-array in dnode_phys. Since dn_blkptr[] is
-    defined as a single-element array, GCC believes an iterator can only
-    access index 0 and will unroll the loop into a single iteration.
-    
-    One way to resolve the issue would be to cast the array to a pointer
-    and fix all the iterators that might break.  The only loop where it
-    is known to cause a problem is this loop in dmu_objset_write_ready():
-    
-        for (i = 0; i < dnp->dn_nblkptr; i++)
-                bp->blk_fill += dnp->dn_blkptr[i].blk_fill;
-    
-    In the common case where dn_nblkptr is 3, the loop is only executed a
-    single time and "i" is equal to 1 following the loop.
-    
-    The specific breakage caused by this problem is that the blk_fill of
-    root block pointers wouldn't be set properly when more than one blkptr
-    is in use (when no indrect blocks are needed).
-    
-    The simple reproducing sequence is:
-    
-    zpool create tank /tank.img
-    zdb -ddddd tank 0
-    
-    Notice that "fill=31", however, there are two L0 indirect blocks with
-    "F=31" and "F=5". The fill count should be 36 rather than 31. This
-    problem causes an assert to be hit in a simple "zdb tank" when built
-    with --enable-debug.
-    
-    However, this approach was not taken because we need to be absolutely
-    sure we catch all instances of this unwanted optimization.  Therefore,
-    the build system has been updated to detect if GCC supports the
-    aggressive loop optimization.  If it does the optimization will be
-    explicitly disabled using the -fno-aggressive-loop-optimization option.
-    
-    Original-fix-by: Tim Chase <tim@chase2k.com>
-    Signed-off-by: Tim Chase <tim@chase2k.com>
-    Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
-    Closes #2010
-    Closes #2051
-
-diff --git a/config/Rules.am b/config/Rules.am
-index e3fa5b5..24f9426 100644
---- a/config/Rules.am
-+++ b/config/Rules.am
-@@ -1,8 +1,10 @@
- DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h
- 
- AM_LIBTOOLFLAGS = --silent
--AM_CFLAGS  = -Wall -Wstrict-prototypes
--AM_CFLAGS += -fno-strict-aliasing ${NO_UNUSED_BUT_SET_VARIABLE} ${DEBUG_CFLAGS}
-+AM_CFLAGS  = ${DEBUG_CFLAGS} -Wall -Wstrict-prototypes
-+AM_CFLAGS += ${NO_UNUSED_BUT_SET_VARIABLE}
-+AM_CFLAGS += ${NO_AGGRESSIVE_LOOP_OPTIMIZATIONS}
-+AM_CFLAGS += -fno-strict-aliasing
- AM_CPPFLAGS  = -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT
- AM_CPPFLAGS += -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64
- AM_CPPFLAGS += -D_LARGEFILE64_SOURCE -DTEXT_DOMAIN=\"zfs-linux-user\"
-diff --git a/config/always-no-aggressive-loop-optimizations.m4 b/config/always-no-aggressive-loop-optimizations.m4
-new file mode 100644
-index 0000000..8f2115a
---- /dev/null
-+++ b/config/always-no-aggressive-loop-optimizations.m4
-@@ -0,0 +1,20 @@
-+dnl #
-+dnl # Check if gcc supports -fno-aggressive-loop-optimizations
-+dnl #
-+AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_NO_AGGRESSIVE_LOOP_OPTIMIZATIONS], [
-+	AC_MSG_CHECKING([for -fno-aggressive-loop-optimizations support])
-+
-+	saved_flags="$CFLAGS"
-+	CFLAGS="$CFLAGS -fno-aggressive-loop-optimizations"
-+
-+	AC_RUN_IFELSE([AC_LANG_PROGRAM([], [])], [
-+		NO_AGGRESSIVE_LOOP_OPTIMIZATIONS=-fno-aggressive-loop-optimizations
-+		AC_MSG_RESULT([yes])
-+	], [
-+		NO_AGGRESSIVE_LOOP_OPTIMIZATIONS=
-+		AC_MSG_RESULT([no])
-+	])
-+
-+	CFLAGS="$saved_flags"
-+	AC_SUBST([NO_AGGRESSIVE_LOOP_OPTIMIZATIONS])
-+])
-diff --git a/config/kernel.m4 b/config/kernel.m4
-index cbf0ca3..62a9b42 100644
---- a/config/kernel.m4
-+++ b/config/kernel.m4
-@@ -104,6 +104,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
- 	dnl # -Wall -fno-strict-aliasing -Wstrict-prototypes and other
- 	dnl # compiler options are added by the kernel build system.
- 	KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_UNUSED_BUT_SET_VARIABLE"
-+	KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_AGGRESSIVE_LOOP_OPTIMIZATIONS"
- 	KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
- 	KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\""
- 
-diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
-index 005185b..477b916 100644
---- a/config/zfs-build.m4
-+++ b/config/zfs-build.m4
-@@ -62,6 +62,7 @@ AC_DEFUN([ZFS_AC_DEBUG_DMU_TX], [
- 
- AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [
- 	ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE
-+	ZFS_AC_CONFIG_ALWAYS_NO_AGGRESSIVE_LOOP_OPTIMIZATIONS
- ])
- 
- AC_DEFUN([ZFS_AC_CONFIG], [
diff --git a/pkgs/os-specific/linux/zfs/git.nix b/pkgs/os-specific/linux/zfs/git.nix
index cc75011c7da..ebbbc994d02 100644
--- a/pkgs/os-specific/linux/zfs/git.nix
+++ b/pkgs/os-specific/linux/zfs/git.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchgit, kernel, spl_git, perl, autoconf, automake, libtool, zlib, libuuid, coreutils, utillinux }:
 
 stdenv.mkDerivation {
-  name = "zfs-0.6.3pre-${kernel.version}";
+  name = "zfs-0.6.3-${kernel.version}";
 
   src = fetchgit {
     url = git://github.com/zfsonlinux/zfs.git;
-    rev = "de39ec11b885f97e6256324ee89eaf75af9852f6";
-    sha256 = "02hrhka9hg0vn4z20x7xzwrkr340pv9qwvwj8phjdm5ln321jh33";
+    rev = "07dabd234dd51a1e5adc5bd21cddf5b5fdc70732";
+    sha256 = "1yqsfdhyzh33aisfvwqd692n5kfgnlz7yjixd2gqn8vx9bv0dz0b";
   };
 
   patches = [ ./mount_zfs_prefix.patch ./nix-build.patch ];
@@ -33,6 +33,8 @@ stdenv.mkDerivation {
     --with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source
     --with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
     --with-spl=${spl_git}/libexec/spl
+    --with-dracutdir=$$out/lib/dracut
+    --with-udevdir=$$out/lib/udev
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/os-specific/linux/zfs/libblkid-1db7b9b.patch b/pkgs/os-specific/linux/zfs/libblkid-1db7b9b.patch
deleted file mode 100644
index 894bf395ce8..00000000000
--- a/pkgs/os-specific/linux/zfs/libblkid-1db7b9b.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-commit 1db7b9be75a225cedb3b7a60028ca5695e5b8346
-Author: Richard Yao <ryao@gentoo.org>
-Date:   Wed Aug 28 16:17:47 2013 -0400
-
-    Fix libblkid support
-    
-    libblkid support is dormant because the autotools check is broken and
-    liblkid identifies ZFS vdevs as "zfs_member", not "zfs". We fix that
-    with a few changes:
-    
-    First, we fix the libblkid autotools check to do a few things:
-    
-    1. Make a 64MB file, which is the minimum size ZFS permits.
-    2. Make 4 fake uberblock entries to make libblkid's check succeed.
-    3. Return 0 upon success to make autotools use the success case.
-    4. Include stdlib.h to avoid implicit declration of free().
-    5. Check for "zfs_member", not "zfs"
-    6. Make --with-blkid disable autotools check (avoids Gentoo sandbox violation)
-    7. Pass '-lblkid' correctly using LIBS not LDFLAGS.
-    
-    Second, we change the libblkid support to scan for "zfs_member", not
-    "zfs".
-    
-    This makes --with-blkid work on Gentoo.
-    
-    Signed-off-by: Richard Yao <ryao@gentoo.org>
-    Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
-    Issue #1751
-
-diff --git a/config/user-libblkid.m4 b/config/user-libblkid.m4
-index 276587f..2dd2623 100644
---- a/config/user-libblkid.m4
-+++ b/config/user-libblkid.m4
-@@ -22,26 +22,45 @@ AC_DEFUN([ZFS_AC_CONFIG_USER_LIBBLKID], [
- 		[with_blkid=check])
- 
- 	LIBBLKID=
--	AS_IF([test "x$with_blkid" != xno],
-+	AS_IF([test "x$with_blkid" = xyes],
-+	[
-+		AC_SUBST([LIBBLKID], ["-lblkid"])
-+		AC_DEFINE([HAVE_LIBBLKID], 1,
-+			[Define if you have libblkid])
-+	])
-+
-+	AS_IF([test "x$with_blkid" = xcheck],
- 	[
- 		AC_CHECK_LIB([blkid], [blkid_get_cache],
- 		[
- 			AC_MSG_CHECKING([for blkid zfs support])
- 
- 			ZFS_DEV=`mktemp`
--			dd if=/dev/zero of=$ZFS_DEV bs=1024k count=8 \
-+			truncate -s 64M $ZFS_DEV
-+			echo -en "\x0c\xb1\xba\0\0\0\0\0" | \
-+				dd of=$ZFS_DEV bs=1k count=8 \
-+				seek=128 conv=notrunc &>/dev/null \
- 				>/dev/null 2>/dev/null
- 			echo -en "\x0c\xb1\xba\0\0\0\0\0" | \
- 				dd of=$ZFS_DEV bs=1k count=8 \
- 				seek=132 conv=notrunc &>/dev/null \
- 				>/dev/null 2>/dev/null
-+			echo -en "\x0c\xb1\xba\0\0\0\0\0" | \
-+				dd of=$ZFS_DEV bs=1k count=8 \
-+				seek=136 conv=notrunc &>/dev/null \
-+				>/dev/null 2>/dev/null
-+			echo -en "\x0c\xb1\xba\0\0\0\0\0" | \
-+				dd of=$ZFS_DEV bs=1k count=8 \
-+				seek=140 conv=notrunc &>/dev/null \
-+				>/dev/null 2>/dev/null
- 
--			saved_LDFLAGS="$LDFLAGS"
--			LDFLAGS="-lblkid"
-+			saved_LIBS="$LIBS"
-+			LIBS="-lblkid"
- 
- 			AC_RUN_IFELSE([AC_LANG_PROGRAM(
- 			[
- 				#include <stdio.h>
-+				#include <stdlib.h>
- 				#include <blkid/blkid.h>
- 			],
- 			[
-@@ -58,10 +77,10 @@ AC_DEFUN([ZFS_AC_CONFIG_USER_LIBBLKID], [
- 					return 2;
- 				}
- 
--				if (strcmp(value, "zfs")) {
-+				if (strcmp(value, "zfs_member")) {
- 					free(value);
- 					blkid_put_cache(cache);
--					return 3;
-+					return 0;
- 				}
- 
- 				free(value);
-@@ -82,7 +101,7 @@ AC_DEFUN([ZFS_AC_CONFIG_USER_LIBBLKID], [
- 					[--with-blkid given but unavailable])])
- 			])
- 
--			LDFLAGS="$saved_LDFLAGS"
-+			LIBS="$saved_LIBS"
- 		],
- 		[
- 			AS_IF([test "x$with_blkid" != xcheck],
-diff --git a/lib/libzfs/libzfs_import.c b/lib/libzfs/libzfs_import.c
-index 53609f2..d1fa98e 100644
---- a/lib/libzfs/libzfs_import.c
-+++ b/lib/libzfs/libzfs_import.c
-@@ -965,7 +965,7 @@ zpool_find_import_blkid(libzfs_handle_t *hdl, pool_list_t *pools)
- 		goto err_blkid2;
- 	}
- 
--	err = blkid_dev_set_search(iter, "TYPE", "zfs");
-+	err = blkid_dev_set_search(iter, "TYPE", "zfs_member");
- 	if (err != 0) {
- 		(void) zfs_error_fmt(hdl, EZFS_BADCACHE,
- 		    dgettext(TEXT_DOMAIN, "blkid_dev_set_search() %d"), err);
diff --git a/pkgs/servers/serfdom/default.nix b/pkgs/servers/serfdom/default.nix
index 274fc89f94d..40b41c8f9d3 100644
--- a/pkgs/servers/serfdom/default.nix
+++ b/pkgs/servers/serfdom/default.nix
@@ -1,126 +1,30 @@
-{ stdenv, fetchurl, fetchgit, fetchhg, go, lib }:
+{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
 
-let
-  goDeps = [
-    {
-      dir     = "github.com/hashicorp";
-      name    = "serf";
-      rev     = "c5b41a9d1d261135117a8d501d3293efade3cc74";
-      sha256  = "a314d3c13fb370842a8f7c6650abfa907b51172a09c64f9184a240fab05b43df";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/armon";
-      name    = "go-metrics";
-      rev     = "e12c3591b520e819e8234bd585d592774f2b2ad5";
-      sha256  = "79476efefb68876fcad7e71e76d95f4a7eece2cfcdc5a9c10f998af3178230ba";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/hashicorp";
-      name    = "logutils";
-      rev     = "8e0820fe7ac5eb2b01626b1d99df47c5449eb2d8";
-      sha256  = "184lnn7x1v3xvj6zz1rg9s0252wkkd59kij2iyrrm7y80bym2jys";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/hashicorp";
-      name    = "memberlist";
-      rev     = "d5be01d1f4d75b086eba4ae808f2767c08cbbf73";
-      sha256  = "4ab2b610d439e96c169d9caf9ac0e009d71d3ef9a2fd2c812870b71eb6b27dfc";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/ugorji";
-      name    = "go";
-      rev     = "71c2886f5a673a35f909803f38ece5810165097b";
-      sha256  = "128853bcc5f114c300772cbce316b55e84206fa56705c5b9cc94c1693b11ee94";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/mitchellh";
-      name    = "cli";
-      rev     = "69f0b65ce53b27f729b1b807b88dc88007f41dd3";
-      sha256  = "0hnnqd8vg5ca2hglkrj141ba2akdh7crl2lsrgz8d6ipw6asszx3";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/armon";
-      name    = "mdns";
-      rev     = "8be7e3ac4e941555169a99d01abcabd3c982d87a";
-      sha256  = "87cd3a0ada3b094ee8fc4c4742158e0d051cde893da1ea320158a47d6254f69d";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/miekg";
-      name    = "dns";
-      rev     = "7ebb4c59b39d5984952a355086606dd91f6cfe86";
-      sha256  = "8418ad2d27e607cef1dc0003471416294443e467f2de9df135e3a2ab411e2512";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/mitchellh";
-      name    = "mapstructure";
-      rev     = "57bb2fa7a7e00b26c80e4c4b0d4f15a210d94039";
-      sha256  = "13lvd5vw8y6h5zl3samkrb7237kk778cky7k7ys1cm46mfd957zy";
-      fetcher = git;
-    }
-    {
-      dir     = "github.com/ryanuber";
-      name    = "columnize";
-      rev     = "d066e113d6e13232f45bda646a915dffeee7f1a4";
-      sha256  = "2aaec396a223fc4b45117a595e74c0a874bd5cd9604c742b8c4747436b4721e9";
-      fetcher = git;
-    }
-    {
-      dir     = "code.google.com/p";
-      name    = "go.net";
-      rev     = "89dbba2db2d4";
-      sha256  = "0168inai10nkdrz4g0rjlj8b5v34mv135v8bhyvh501vnqql50jn";
-      fetcher = hg;
-    }
-  ];
-  git = desc: fetchgit { url = "https://${desc.dir}/${desc.name}";
-                         inherit (desc) rev sha256; };
-  hg = desc: fetchhg { url = "https://${desc.dir}/${desc.name}";
-                       tag = desc.rev;
-                       inherit (desc) sha256; };
-  createGoPathCmds =
-    lib.concatStrings
-      (map (desc:
-            let fetched = desc.fetcher desc; in ''
-              mkdir -p $GOPATH/src/${desc.dir}
-              ln -s ${fetched} $GOPATH/src/${desc.dir}/${desc.name}
-            '') goDeps);
-in
-  stdenv.mkDerivation rec {
-    version = "0.5.0";
-    name = "serfdom-${version}";
+stdenv.mkDerivation rec {
+  version = "0.6.2";
+  name = "serfdom-${version}";
 
-    src = fetchurl {
-      url = "https://github.com/hashicorp/serf/archive/v${version}.tar.gz";
-      sha256 = "1p2cpkdx0gck1ypxc98im7gsv3275avpkizhsif3nxvl1xd8g1qp";
-    };
+  src = import ./deps.nix {
+    inherit stdenv lib fetchgit fetchhg fetchbzr fetchFromGitHub;
+  };
 
-    buildInputs = [ go ];
+  buildInputs = [ go ];
 
-    buildPhase = ''
-      mkdir $TMPDIR/go
-      export GOPATH=$TMPDIR/go
-      ${createGoPathCmds}
-      go build -v -o bin/serf
-    '';
+  buildPhase = ''
+    export GOPATH=$src
+    go build -v -o serf github.com/hashicorp/serf
+  '';
 
-    installPhase = ''
-      ensureDir $out/bin
-      cp bin/serf $out/bin
-    '';
+  installPhase = ''
+    ensureDir $out/bin
+    mv serf $out/bin/serf
+  '';
 
-    meta = with stdenv.lib; {
-      description = "Serf is a service discovery and orchestration tool that is decentralized, highly available, and fault tolerant";
-      homepage = http://www.serfdom.io/;
-      license = licenses.mpl20;
-      maintainers = [ maintainers.msackman ];
-      platforms = platforms.linux;
-    };
-  }
+  meta = with stdenv.lib; {
+    description = "Serf is a service discovery and orchestration tool that is decentralized, highly available, and fault tolerant";
+    homepage = http://www.serfdom.io/;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ msackman cstrahan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/serfdom/deps.nix b/pkgs/servers/serfdom/deps.nix
new file mode 100644
index 00000000000..d4da74b5476
--- /dev/null
+++ b/pkgs/servers/serfdom/deps.nix
@@ -0,0 +1,185 @@
+{ stdenv, lib, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }:
+
+let
+  goDeps = [
+    {
+      root = "code.google.com/p/go.net";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.net";
+        tag = "134";
+        sha256 = "1jycpgrfwgkfac60zjbx6babcz7sgyn9xgy6cr3l811j6k8r2pbv";
+      };
+    }
+    {
+      root = "code.google.com/p/go.text";
+      src = fetchhg {
+        url = "http://code.google.com/p/go.text";
+        tag = "85";
+        sha256 = "1x8h6vq9g5gbi7iiwla6dkaaqqf7wmkdm4szj7wvzlsijf2x8dwr";
+      };
+    }
+    {
+      root = "github.com/armon/circbuf";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "circbuf";
+        rev = "f092b4f207b6e5cce0569056fba9e1a2735cb6cf";
+        sha256 = "06kwwdwa3hskdh6ws7clj1vim80dyc3ldim8k9y5qpd30x0avn5s";
+      };
+    }
+    {
+      root = "github.com/armon/go-metrics";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "go-metrics";
+        rev = "02567bbc4f518a43853d262b651a3c8257c3f141";
+        sha256 = "08fk3zmw0ywmdfp2qhrpv0vrk1y97hzqczrgr3y2yip3x8sr37ar";
+      };
+    }
+    {
+      root = "github.com/armon/mdns";
+      src = fetchFromGitHub {
+        owner = "armon";
+        repo = "mdns";
+        rev = "70462deb060d44247356ee238ebafd7699ddcffe";
+        sha256 = "0xkm3d0hsixdm1yrkx9c39723kfjkb3wvrzrmx3np9ylcwn6h5p5";
+      };
+    }
+    {
+      root = "github.com/hashicorp/go-syslog";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "go-syslog";
+        rev = "ac3963b72ac367e48b1e68a831e62b93fb69091c";
+        sha256 = "1r9s1gsa4azcs05gx1179ixk7qvrkrik3v92wr4s8gwm00m0gf81";
+      };
+    }
+    {
+      root = "github.com/hashicorp/logutils";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "logutils";
+        rev = "8e0820fe7ac5eb2b01626b1d99df47c5449eb2d8";
+        sha256 = "033rbkc066g657r0dnzysigjz2bs4biiz0kmiypd139d34jvslwz";
+      };
+    }
+    {
+      root = "github.com/hashicorp/memberlist";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "memberlist";
+        rev = "17d39b695094be943bfb98442a80b082e6b9ac47";
+        sha256 = "0nvgjnwmfqhv2wvr77d2q5mq1bfw4xbpil6wgyj4fyrmhsfzrv3g";
+      };
+    }
+    {
+      root = "github.com/hashicorp/serf";
+      src = fetchFromGitHub {
+        owner = "hashicorp";
+        repo = "serf";
+        rev = "4232a3f7b52f755084caf6b2cc2789efa2948555";
+        sha256 = "1hxxqrjz08882d205ylakhvvwciahiqdzkwi2a7zwrmx6sxna7sr";
+      };
+    }
+    {
+      root = "github.com/miekg/dns";
+      src = fetchFromGitHub {
+        owner = "miekg";
+        repo = "dns";
+        rev = "fc67c4b981930a377f8a26a5a1f2c0ccd5dd1514";
+        sha256 = "1csjmkx0gl34r4hmkhdbdxb0693f1p10yrjaj8f2jwli9p9sl4mg";
+      };
+    }
+    {
+      root = "github.com/mitchellh/cli";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "cli";
+        rev = "8262fe3f76f0da53b5674eb35c8c6436430794c3";
+        sha256 = "0pqkxh1q49kkxihggrfjs8174d927g4c5qqx00ggw8sqqsgrw6vn";
+      };
+    }
+    {
+      root = "github.com/mitchellh/mapstructure";
+      src = fetchFromGitHub {
+        owner = "mitchellh";
+        repo = "mapstructure";
+        rev = "6fb2c832bcac61d01212ab1d172f7a14a8585b07";
+        sha256 = "0mx855lwhv0rk461wmbnbzbpkhmq5p2ipmrm5bhzimagrr1w17hw";
+      };
+    }
+    {
+      root = "github.com/ryanuber/columnize";
+      src = fetchFromGitHub {
+        owner = "ryanuber";
+        repo = "columnize";
+        rev = "785d943a7b6886e0bb2f139a60487b823dd8d9de";
+        sha256 = "1h3sxzhiwz65vf3cvclirlf6zhdr97v01dpn5cmf3m09rxxpnp3f";
+      };
+    }
+    {
+      root = "github.com/ugorji/go";
+      src = fetchFromGitHub {
+        owner = "ugorji";
+        repo = "go";
+        rev = "71c2886f5a673a35f909803f38ece5810165097b";
+        sha256 = "157f24xnkhclrjwwa1b7lmpj112ynlbf7g1cfw0c657iqny5720j";
+      };
+    }
+    {
+      root = "github.com/ugorji/go-msgpack";
+      src = fetchFromGitHub {
+        owner = "ugorji";
+        repo = "go-msgpack";
+        rev = "75092644046c5e38257395b86ed26c702dc95b92";
+        sha256 = "1bmqi16bfiqw7qhb3d5hbh0dfzhx2bbq1g15nh2pxwxckwh80x98";
+      };
+    }
+    {
+      root = "github.com/vmihailenco/bufio";
+      src = fetchFromGitHub {
+        owner = "vmihailenco";
+        repo = "bufio";
+        rev = "24e7e48f60fc2d9e99e43c07485d9fff42051e66";
+        sha256 = "0x46qnf2f15v7m0j2dcb16raxjamk5rdc7hqwgyxfr1sqmmw3983";
+      };
+    }
+    {
+      root = "github.com/vmihailenco/msgpack";
+      src = fetchFromGitHub {
+        owner = "vmihailenco";
+        repo = "msgpack";
+        rev = "20c1b88a6c7fc5432037439f4e8c582e236fb205";
+        sha256 = "1dj5scpfhgnw0yrh0w6jlrb9d03halvsv4l3wgjhazrrimdqf0q0";
+      };
+    }
+    {
+      root = "launchpad.net/gocheck";
+      src = fetchbzr {
+        url = "https://launchpad.net/gocheck";
+        revision = "87";
+        sha256 = "1y9fa2mv61if51gpik9isls48idsdz87zkm1p3my7swjdix7fcl0";
+      };
+    }
+    {
+      root = "launchpad.net/mgo";
+      src = fetchbzr {
+        url = "https://launchpad.net/mgo";
+        revision = "2";
+        sha256 = "0h1dxzyx5c4r4gfnmjxv92hlhjxrgx9p4g53p4fhmz6x2fdglb0x";
+      };
+    }
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "go-deps";
+
+  buildCommand =
+    lib.concatStrings
+      (map (dep: ''
+              mkdir -p $out/src/`dirname ${dep.root}`
+              ln -s ${dep.src} $out/src/${dep.root}
+            '') goDeps);
+}
diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix
index 37ffb09288e..704527d28c7 100644
--- a/pkgs/shells/zsh/default.nix
+++ b/pkgs/shells/zsh/default.nix
@@ -58,8 +58,15 @@ EOF
   # XXX: patch zsh to take zwc if newer _or equal_
 
   meta = {
-    description = "the Z shell";
-    longDescription = "Zsh is a UNIX command interpreter (shell) usable as an interactive login shell and as a shell script command processor.  Of the standard shells, zsh most closely resembles ksh but includes many enhancements.  Zsh has command line editing, builtin spelling correction, programmable command completion, shell functions (with autoloading), a history mechanism, and a host of other features.";
+    description = "The Z shell";
+    longDescription = ''
+      Zsh is a UNIX command interpreter (shell) usable as an interactive login
+      shell and as a shell script command processor.  Of the standard shells,
+      zsh most closely resembles ksh but includes many enhancements.  Zsh has
+      command line editing, builtin spelling correction, programmable command
+      completion, shell functions (with autoloading), a history mechanism, and
+      a host of other features.
+    '';
     license = "MIT-like";
     homePage = "http://www.zsh.org/";
     maintainers = with stdenv.lib.maintainers; [ chaoflow ];
diff --git a/pkgs/tools/archivers/zip/default.nix b/pkgs/tools/archivers/zip/default.nix
index 6c485173f85..92d8a22fa47 100644
--- a/pkgs/tools/archivers/zip/default.nix
+++ b/pkgs/tools/archivers/zip/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation {
   buildInputs = if enableNLS then [ libnatspec ] else [];
 
   meta = {
+    description = "Compressor/archiver for creating and modifying zipfiles";
     homepage = http://www.info-zip.org;
     platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.urkud ];
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index 5a09ec2a80b..1c843a66636 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -1,25 +1,36 @@
-{stdenv, fetchurl, fuse, bison, flex, openssl, python, ncurses, readline}:
+{stdenv, fetchurl, fuse, bison, flex_2_5_35, openssl, python, ncurses, readline,
+ autoconf, automake, libtool, pkgconfig, zlib, libaio}:
 let 
   s = # Generated upstream information 
   rec {
     baseName="glusterfs";
-    version="3.4.3";
+    version="3.5.0";
     name="${baseName}-${version}";
-    hash="1vzdihsy4da11jsa46n1n2xk6d40g7v0zrlqvs3pb9k07fql5kag";
-    url="http://download.gluster.org/pub/gluster/glusterfs/3.4/3.4.3/glusterfs-3.4.3.tar.gz";
-    sha256="0j1yvpdb1bydsh3pqlyr23mfvra5bap9rxba910s9cn61mpy99bj";
+    url="http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.0/glusterfs-3.5.0.tar.gz";
+    sha256="0d9jlgxg19f2ajf5i4yw4f91n161rsi8fm95442ckci3xnz21zir";
   };
   buildInputs = [
-    fuse bison flex openssl python ncurses readline
+    fuse bison flex_2_5_35 openssl python ncurses readline
+    autoconf automake libtool pkgconfig zlib libaio
   ];
 in
 stdenv.mkDerivation
 rec {
   inherit (s) name version;
   inherit buildInputs;
+  preConfigure = ''
+    ./autogen.sh
+    '';
   configureFlags = [
     ''--with-mountutildir="$out/sbin"''
     ];
+  preInstall = ''
+    substituteInPlace api/examples/Makefile --replace '$(DESTDIR)' $out
+    substituteInPlace geo-replication/syncdaemon/Makefile --replace '$(DESTDIR)' $out
+    substituteInPlace geo-replication/syncdaemon/Makefile --replace '$(DESTDIR)' $out
+    substituteInPlace xlators/features/glupy/examples/Makefile --replace '$(DESTDIR)' $out
+    substituteInPlace xlators/features/glupy/src/Makefile --replace '$(DESTDIR)' $out
+    '';
   src = fetchurl {
     inherit (s) url sha256;
   };
diff --git a/pkgs/tools/graphics/zbar/default.nix b/pkgs/tools/graphics/zbar/default.nix
index 83c9b157793..51dcc2a9c80 100644
--- a/pkgs/tools/graphics/zbar/default.nix
+++ b/pkgs/tools/graphics/zbar/default.nix
@@ -34,7 +34,14 @@ rec {
   configureFlags = ["--disable-video"];
       
   meta = {
-    description = "Bar code toolset";
+    description = "Bar code reader";
+    longDescription = ''
+      ZBar is an open source software suite for reading bar codes from various
+      sources, such as video streams, image files and raw intensity sensors. It
+      supports many popular symbologies (types of bar codes) including
+      EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR
+      Code.
+    '';
     maintainers = with a.lib.maintainers;
     [
       raskin
diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index 01820aaf778..a7d03d1335f 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -1,14 +1,22 @@
 
 { stdenv
 , fetchurl
+, zlib ? null
+, szip ? null
 }:
-stdenv.mkDerivation {
-  name = "hdf5-1.8.10-patch1";
+stdenv.mkDerivation rec {
+  version = "1.8.13";
+  name = "hdf5-${version}-patch1";
   src = fetchurl {
-    url = http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.10-patch1.tar.gz;
-    sha256 = "08ad32fhnci6rdfn6mn3w9v1wcaxdcd326n3ljwkcq4dzhkh28qz";  			
+    url = "http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-${version}.tar.gz";
+    sha256 = "1h9qdl321gzm3ihdhlijbl9sh9qcdrw94j7izg64yfqhxj7b7xl2";  			
   };
-  buildInputs = [] ;
+
+  buildInputs = []
+    ++ stdenv.lib.optional (zlib != null) zlib
+    ++ stdenv.lib.optional (szip != null) szip;
+
+  configureFlags = if szip != null then "--with-szlib=${szip}" else "";
   
   patches = [./bin-mv.patch];
   
diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index 7a369744525..51ab3478ac9 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, gnutls, pkgconfig, readline, zlib, xz }:
+{ stdenv, fetchurl, gnutls, pkgconfig, readline, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "lftp-4.4.16";
+  name = "lftp-4.5.2";
 
   src = fetchurl {
     url = "http://lftp.yar.ru/ftp/${name}.tar.gz";
-    sha256 = "1wivcynm4pc18vj4x6r2saczk34ds3slagmz3y3b04rzklplf7s4";
+    sha256 = "106llhq9lgvdxlf4r1p94r66fcy5ywfdfvins4dfn9irg0k5gzyv";
   };
 
   patches = [ ./no-gets.patch ];
diff --git a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
index d7210b2f616..84439136d49 100644
--- a/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch-scripts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, makeWrapper, git, subversion, mercurial, bazaar, cvs }:
+{ stdenv, makeWrapper, git, subversion, mercurial, bazaar, cvs, unzip, curl, gnused }:
 
 stdenv.mkDerivation {
   name = "nix-prefetch-scripts";
@@ -11,9 +11,13 @@ stdenv.mkDerivation {
     function copyScript {
       local name=nix-prefetch-$1;
       local src=$2;
-      local exe=$3/bin;
+      local wrapArgs=""
       cp $src $out/bin/$name;
-      wrapProgram $out/bin/$name --suffix PATH : "$exe"
+      for dep in ''${@:3}; do
+        wrapArgs="$wrapArgs --prefix PATH : $dep/bin"
+      done
+      wrapArgs="$wrapArgs --prefix PATH : ${gnused}/bin"
+      wrapProgram $out/bin/$name $wrapArgs
     }
 
     copyScript "hg" ${../../../build-support/fetchhg/nix-prefetch-hg} ${mercurial}
@@ -21,6 +25,7 @@ stdenv.mkDerivation {
     copyScript "svn" ${../../../build-support/fetchsvn/nix-prefetch-svn} ${subversion}
     copyScript "bzr" ${../../../build-support/fetchbzr/nix-prefetch-bzr} ${bazaar}
     copyScript "cvs" ${../../../build-support/fetchcvs/nix-prefetch-cvs} ${cvs}
+    copyScript "zip" ${../../../build-support/fetchzip/nix-prefetch-zip} ${unzip} ${curl}
   '';
 
   meta = with stdenv.lib; {
@@ -30,4 +35,4 @@ stdenv.mkDerivation {
     # Quicker to build than to download, I hope
     hydraPlatforms = [];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/security/gnupg1/default.nix b/pkgs/tools/security/gnupg1/default.nix
index 362ec3a25bb..a25ae35b6cc 100644
--- a/pkgs/tools/security/gnupg1/default.nix
+++ b/pkgs/tools/security/gnupg1/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, readline, bzip2 }:
 
 stdenv.mkDerivation rec {
-  name = "gnupg-1.4.16";
+  name = "gnupg-1.4.17";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "0bsa1yqa3ybhvmc4ys73amdpcmckrlq1fsxjl2980cxada778fvv";
+    sha256 = "0nvv1bd8v13gh2m1429azws7ks0ix9y1yv87ak9k9i1dsqcrvpg6";
   };
 
   buildInputs = [ readline bzip2 ];
diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
index cbffd8648d4..a351c11af01 100644
--- a/pkgs/tools/system/syslog-ng/default.nix
+++ b/pkgs/tools/system/syslog-ng/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, eventlog, pkgconfig, glib, python }:
+{ stdenv, fetchurl, eventlog, pkgconfig, glib, python, systemd }:
 
 stdenv.mkDerivation {
   name = "syslog-ng-3.5.4.1";
@@ -8,8 +8,13 @@ stdenv.mkDerivation {
     sha256 = "0rkgrmnyx1x6m3jw5n49k7r1dcg79lxh900g74rgvd3j86g9dilj";
   };
 
-  buildInputs = [ eventlog pkgconfig glib python ];
-  configureFlags = "--enable-dynamic-linking";
+  buildInputs = [ eventlog pkgconfig glib python systemd ];
+
+  configureFlags = [
+    "--enable-dynamic-linking"
+    "--enable-systemd"
+    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+  ];
 
   meta = {
     homepage = "http://www.balabit.com/network-security/syslog-ng/";
diff --git a/pkgs/tools/text/diffstat/default.nix b/pkgs/tools/text/diffstat/default.nix
index 94c2df9aabe..e70dfaedddf 100644
--- a/pkgs/tools/text/diffstat/default.nix
+++ b/pkgs/tools/text/diffstat/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://invisible-island.net/diffstat/;
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 46ff2ba57ab..42209217c82 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -329,6 +329,8 @@ let
 
   fetchmtn = callPackage ../build-support/fetchmtn (config.fetchmtn or {});
 
+  packer = callPackage ../development/tools/packer { };
+
   fetchpatch = callPackage ../build-support/fetchpatch { };
 
   fetchsvn = import ../build-support/fetchsvn {
@@ -1254,7 +1256,9 @@ let
 
   hddtemp = callPackage ../tools/misc/hddtemp { };
 
-  hdf5 = callPackage ../tools/misc/hdf5 { };
+  hdf5 = callPackage ../tools/misc/hdf5 {
+    szip = null;
+  };
 
   heimdall = callPackage ../tools/misc/heimdall { };
 
@@ -2974,7 +2978,11 @@ let
 
   go_1_2 = callPackage ../development/compilers/go/1.2.nix { };
 
-  go = go_1_2;
+  go_1_3 = callPackage ../development/compilers/go/1.3.nix { };
+
+  go = go_1_3;
+
+  gox = callPackage ../development/compilers/go/gox.nix { };
 
   gprolog = callPackage ../development/compilers/gprolog { };
 
@@ -7287,10 +7295,6 @@ let
   linux_grsec_stable_server     = grKernel grFlavors.linux_grsec_stable_server;
   linux_grsec_stable_server_xen = grKernel grFlavors.linux_grsec_stable_server_xen;
 
-  # Stable+vserver kernels - server versions only
-  #linux_grsec_vserver_server     = grKernel grFlavors.linux_grsec_vserver_server;
-  #linux_grsec_vserver_server_xen = grKernel grFlavors.linux_grsec_vserver_server_xen;
-
   # Testing kernels
   linux_grsec_testing_desktop = grKernel grFlavors.linux_grsec_testing_desktop;
   linux_grsec_testing_server  = grKernel grFlavors.linux_grsec_testing_server;
@@ -7410,10 +7414,6 @@ let
   linuxPackages_grsec_stable_server     = grPackage grFlavors.linux_grsec_stable_server;
   linuxPackages_grsec_stable_server_xen = grPackage grFlavors.linux_grsec_stable_server_xen;
 
-  # Stable+vserver kernels - server versions only
-  #linuxPackages_grsec_vserver_server     = grPackage grFlavors.linux_grsec_vserver_server;
-  #linuxPackages_grsec_vserver_server_xen = grPackage grFlavors.linux_grsec_vserver_server_xen;
-
   # Testing kernels
   linuxPackages_grsec_testing_desktop = grPackage grFlavors.linux_grsec_testing_desktop;
   linuxPackages_grsec_testing_server  = grPackage grFlavors.linux_grsec_testing_server;
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index d4b78e11c89..f21bf4f4df9 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -146,6 +146,12 @@ rec {
     inherit python;
   };
 
+  tables = import ../development/python-modules/tables {
+    inherit (pkgs) stdenv fetchurl bzip2 lzo;
+    inherit python buildPythonPackage cython numpy numexpr;
+    hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
+  };
+
   # packages defined here
 
   aafigure = buildPythonPackage rec {
@@ -873,6 +879,7 @@ rec {
   # A patched version of buildout, useful for buildout based development on Nix
   zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
 
+  zc_recipe_egg = zc_recipe_egg_buildout171;
   zc_buildout = zc_buildout171;
   zc_buildout2 = zc_buildout221;
   zc_buildout221 = buildPythonPackage rec {
@@ -927,6 +934,29 @@ rec {
     };
   };
 
+  zc_recipe_egg_fun = { buildout, version, md5 }: buildPythonPackage rec {
+    inherit version;
+    name = "zc.recipe.egg-${version}";
+
+    buildInputs = [ buildout ];
+    doCheck = false;
+
+    src = fetchurl {
+      inherit md5;
+      url = "https://pypi.python.org/packages/source/z/zc.recipe.egg/zc.recipe.egg-${version}.tar.gz";
+    };
+  };
+  zc_recipe_egg_buildout171 = zc_recipe_egg_fun {
+    buildout = zc_buildout171;
+    version = "1.3.2";
+    md5 = "1cb6af73f527490dde461d3614a36475";
+  };
+  zc_recipe_egg_buildout2 = zc_recipe_egg_fun {
+    buildout = zc_buildout2;
+    version = "2.0.1";
+    md5 = "5e81e9d4cc6200f5b1abcf7c653dd9e3";
+  };
+
   bunch = buildPythonPackage (rec {
     name = "bunch-1.0.1";
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
@@ -4601,6 +4631,43 @@ rec {
     };
   };
 
+  numexpr = buildPythonPackage rec {
+    version = "2.4";
+    name = "numexpr-${version}";
+
+    src = fetchgit {
+      url = https://github.com/pydata/numexpr.git;
+      rev = "606cc9a110711e947d35ac2770749c00dab184c8";
+      sha256 = "1gxgkg7ncgjhnifn444iha5nrjhyr8sr6w5yp204186a1ysz858g";
+    };
+
+    propagatedBuildInputs = with pkgs; [ numpy ];
+
+    # Run the test suite.
+    # It requires the build path to be in the python search path.
+    checkPhase = ''
+      ${python}/bin/${python.executable} <<EOF
+      import sysconfig
+      import sys
+      import os
+      f = "lib.{platform}-{version[0]}.{version[1]}"
+      lib = f.format(platform=sysconfig.get_platform(),
+                     version=sys.version_info)
+      build = os.path.join(os.getcwd(), 'build', lib)
+      sys.path.insert(0, build)
+      import numexpr
+      r = numexpr.test()
+      if not r.wasSuccessful():
+          sys.exit(1)
+      EOF
+    '';
+
+    meta = {
+      description = "Fast numerical array expression evaluator for NumPy";
+      homepage = "https://github.com/pydata/numexpr";
+    };
+  };
+
   numpy = buildPythonPackage ( rec {
     name = "numpy-1.7.1";
 
@@ -4835,11 +4902,11 @@ rec {
   });
 
   pandas = buildPythonPackage rec {
-    name = "pandas-0.12.0";
+    name = "pandas-0.14.0";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/p/pandas/${name}.tar.gz";
-      sha256 = "0vf865wh1kcq33189ykqgngb25nxhxxch6skfdl3c6w024v4r6xy";
+      sha256 = "f7997debca756c4dd5ccdf5a010dfe3d1c7dac98ee706b715d994cf7c9d35528";
     };
 
     buildInputs = [ nose ];