From 5c9319ddac964ae78d947a47b3f0b36fd0efda51 Mon Sep 17 00:00:00 2001
From: Wout Mertens <Wout.Mertens@gmail.com>
Date: Wed, 18 Feb 2015 01:08:03 +0100
Subject: [PATCH 01/31] writeTextFile: Use passAsFile if available

---
 pkgs/build-support/trivial-builders.nix | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 78e671e8d22..7e73f98db78 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -20,13 +20,18 @@ rec {
     }:
     runCommand name
       { inherit text executable;
+        passAsFile = [ "text" ];
         # Pointless to do this on a remote machine.
         preferLocalBuild = true;
       }
       ''
         n=$out${destination}
         mkdir -p "$(dirname "$n")"
-        echo -n "$text" > "$n"
+        if [ -e "$textPath" ]; then
+          mv "$textPath" "$n"
+        else
+          echo -n "$text" > "$n"
+        fi
         (test -n "$executable" && chmod +x "$n") || true
       '';
 

From a88c5a8037e09d04787deb9ac1f4c92ebbefc73a Mon Sep 17 00:00:00 2001
From: Marco Schlumpp <marco.schlumpp@gmail.com>
Date: Thu, 14 May 2015 12:13:33 +0000
Subject: [PATCH 02/31] glibc: fixed a warning caused by
 nix-locale-archive.patch

If a function shouldn't accept any parameters, use "(void)" instead of "()".
Close #7843. Vcunat purged unimportant changes from this commit.
---
 pkgs/development/libraries/glibc/nix-locale-archive.patch | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/libraries/glibc/nix-locale-archive.patch b/pkgs/development/libraries/glibc/nix-locale-archive.patch
index 88c8adef922..eeaf21901a3 100644
--- a/pkgs/development/libraries/glibc/nix-locale-archive.patch
+++ b/pkgs/development/libraries/glibc/nix-locale-archive.patch
@@ -6,7 +6,7 @@ diff -ru glibc-2.16.0-orig/locale/loadarchive.c glibc-2.16.0/locale/loadarchive.
  
  
 +static int
-+open_locale_archive ()
++open_locale_archive (void)
 +{
 +  int fd = -1;
 +  char *path = getenv ("LOCALE_ARCHIVE_2_11");

From b4b621552381fe022d9481a7d4a9cb7aff270105 Mon Sep 17 00:00:00 2001
From: Allen Nelson <anelson@narrativescience.com>
Date: Mon, 18 May 2015 17:01:43 -0500
Subject: [PATCH 03/31] added flags/switches necessary to get openblas to
 compile on osx

---
 .../libraries/science/math/openblas/default.nix       | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index e779957a6fb..6fdb09c3e7e 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gfortran, perl, liblapack, config }:
+{ stdenv, fetchurl, gfortran, perl, liblapack, config, coreutils, clang }:
 
 with stdenv.lib;
 
@@ -7,6 +7,7 @@ let local = config.openblas.preferLocalBuild or false;
       {
         i686-linux = "32";
         x86_64-linux = "64";
+        x86_64-darwin = "64";
       }."${stdenv.system}" or (throw "unsupported system: ${stdenv.system}");
     genericFlags =
       [
@@ -29,14 +30,16 @@ stdenv.mkDerivation rec {
 
   preBuild = "cp ${liblapack.src} lapack-${liblapack.meta.version}.tgz";
 
-  nativeBuildInputs = [gfortran perl];
+  nativeBuildInputs = optionals stdenv.isDarwin [coreutils] ++ [gfortran perl];
 
   makeFlags =
     (if local then localFlags else genericFlags)
     ++
+    optionals stdenv.isDarwin ["MACOSX_DEPLOYMENT_TARGET=10.9"]
+    ++
     [
       "FC=gfortran"
-      "CC=gcc"
+      "CC=${if stdenv.isDarwin then "clang" else "gcc"}"
       ''PREFIX="''$(out)"''
       "INTERFACE64=1"
     ];
@@ -45,7 +48,7 @@ stdenv.mkDerivation rec {
     description = "Basic Linear Algebra Subprograms";
     license = licenses.bsd3;
     homepage = "https://github.com/xianyi/OpenBLAS";
-    platforms = with platforms; linux;
+    platforms = with platforms; all;
     maintainers = with maintainers; [ ttuegel ];
   };
 }

From 2a0a5c697e46d144a2a8cec04352533d5c39d852 Mon Sep 17 00:00:00 2001
From: Allen Nelson <anelson@narrativescience.com>
Date: Mon, 18 May 2015 17:45:18 -0500
Subject: [PATCH 04/31] added clang dependency, using unix platform

---
 .../development/libraries/science/math/openblas/default.nix | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index 6fdb09c3e7e..67d95f97e07 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gfortran, perl, liblapack, config, coreutils, clang }:
+{ stdenv, fetchurl, gfortran, perl, liblapack, config, coreutils }:
 
 with stdenv.lib;
 
@@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
     ++
     [
       "FC=gfortran"
+      # Note that clang is available through the stdenv on OSX and
+      # thus is not an explicit dependency.
       "CC=${if stdenv.isDarwin then "clang" else "gcc"}"
       ''PREFIX="''$(out)"''
       "INTERFACE64=1"
@@ -48,7 +50,7 @@ stdenv.mkDerivation rec {
     description = "Basic Linear Algebra Subprograms";
     license = licenses.bsd3;
     homepage = "https://github.com/xianyi/OpenBLAS";
-    platforms = with platforms; all;
+    platforms = with platforms; unix;
     maintainers = with maintainers; [ ttuegel ];
   };
 }

From ec2f3eb855ed22df4a56ccded9d285321fd4a69d Mon Sep 17 00:00:00 2001
From: Allen Nelson <anelson@narrativescience.com>
Date: Tue, 19 May 2015 15:59:55 -0500
Subject: [PATCH 05/31] added gfortran expression for darwin

---
 .../compilers/gcc/gfortran-darwin.nix         | 22 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  3 ++-
 2 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100644 pkgs/development/compilers/gcc/gfortran-darwin.nix

diff --git a/pkgs/development/compilers/gcc/gfortran-darwin.nix b/pkgs/development/compilers/gcc/gfortran-darwin.nix
new file mode 100644
index 00000000000..58f30f677b6
--- /dev/null
+++ b/pkgs/development/compilers/gcc/gfortran-darwin.nix
@@ -0,0 +1,22 @@
+# This is a derivation customized to work on OS X (Darwin).
+{gmp, mpfr, libmpc, fetchurl, stdenv}:
+
+# This package is only intended for OSX.
+assert stdenv.isDarwin;
+
+stdenv.mkDerivation rec {
+  name = "gfortran";
+  version = "5.1.0";
+  buildInputs = [gmp mpfr libmpc];
+  src = fetchurl {
+    url = "https://ftp.gnu.org/gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
+    sha256 = "1bd5vj4px3s8nlakbgrh38ynxq4s654m6nxz7lrj03mvkkwgvnmp";
+  };
+  configureFlags = ''
+    --enable-languages=fortran --enable-checking=release --disable-bootstrap
+    --with-gmp=${gmp}
+    --with-mpfr=${mpfr}
+    --with-mpc=${libmpc}
+  '';
+  makeFlags = ["CC=/usr/bin/gcc"];
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 40a77f8a623..86f71ddb502 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3676,7 +3676,8 @@ let
     isl = isl_0_14;
   }));
 
-  gfortran = gfortran48;
+  gfortran = if !stdenv.isDarwin then gfortran48
+             else callPackage ../development/compilers/gcc/gfortran-darwin.nix {};
 
   gfortran48 = wrapCC (gcc48.cc.override {
     name = "gfortran";

From e70f9e74f222dce8f8dbebb38ab49530e53e10ba Mon Sep 17 00:00:00 2001
From: Allen Nelson <anelson@narrativescience.com>
Date: Tue, 19 May 2015 16:49:58 -0500
Subject: [PATCH 06/31] changed to CC=clang

---
 pkgs/development/compilers/gcc/gfortran-darwin.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/compilers/gcc/gfortran-darwin.nix b/pkgs/development/compilers/gcc/gfortran-darwin.nix
index 58f30f677b6..4c596c4f1fb 100644
--- a/pkgs/development/compilers/gcc/gfortran-darwin.nix
+++ b/pkgs/development/compilers/gcc/gfortran-darwin.nix
@@ -18,5 +18,5 @@ stdenv.mkDerivation rec {
     --with-mpfr=${mpfr}
     --with-mpc=${libmpc}
   '';
-  makeFlags = ["CC=/usr/bin/gcc"];
+  makeFlags = ["CC=clang"];
 }

From e802740b69375fc628e446ffd7c3f746c59312d0 Mon Sep 17 00:00:00 2001
From: Allen Nelson <anelson@narrativescience.com>
Date: Fri, 22 May 2015 00:31:14 -0500
Subject: [PATCH 07/31] adding metadata, putting version in name

---
 .../compilers/gcc/gfortran-darwin.nix            | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/pkgs/development/compilers/gcc/gfortran-darwin.nix b/pkgs/development/compilers/gcc/gfortran-darwin.nix
index 4c596c4f1fb..954b236ff6f 100644
--- a/pkgs/development/compilers/gcc/gfortran-darwin.nix
+++ b/pkgs/development/compilers/gcc/gfortran-darwin.nix
@@ -1,15 +1,13 @@
-# This is a derivation customized to work on OS X (Darwin).
+# This is a derivation specific to OS X (Darwin). It may work on other
+# systems as well but has not been tested.
 {gmp, mpfr, libmpc, fetchurl, stdenv}:
 
-# This package is only intended for OSX.
-assert stdenv.isDarwin;
-
 stdenv.mkDerivation rec {
-  name = "gfortran";
+  name = "gfortran-${version}";
   version = "5.1.0";
   buildInputs = [gmp mpfr libmpc];
   src = fetchurl {
-    url = "https://ftp.gnu.org/gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
+    url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
     sha256 = "1bd5vj4px3s8nlakbgrh38ynxq4s654m6nxz7lrj03mvkkwgvnmp";
   };
   configureFlags = ''
@@ -19,4 +17,10 @@ stdenv.mkDerivation rec {
     --with-mpc=${libmpc}
   '';
   makeFlags = ["CC=clang"];
+  meta = with stdenv.lib; {
+    description = "GNU Fortran compiler, part of the GNU Compiler Collection.";
+    homepage    = "https://gcc.gnu.org/fortran/";
+    license     = licenses.gpl3Plus;
+    platforms   = platforms.darwin;
+  };
 }

From 5a89a87cc575f0d8b9f6cc20e8203c18ac30a8c0 Mon Sep 17 00:00:00 2001
From: "William A. Kennington III" <william@wkennington.com>
Date: Fri, 22 May 2015 15:31:53 -0700
Subject: [PATCH 08/31] ncurses: Always symlink to a real .so and add symlinks
 for major versions

---
 pkgs/development/libraries/ncurses/default.nix | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 051d29924df..61920f9d000 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -93,16 +93,16 @@ stdenv.mkDerivation rec {
     libs="$(find $out/lib -name \*w.a | sed 's,.*lib\(.*\)w.a.*,\1,g')"
     for lib in $libs; do
       if [ -e "$out/lib/lib''${lib}w.so" ]; then
-        echo "INPUT(-l''${lib}w)" > $out/lib/lib$lib.so
+        ln -svf lib''${lib}w.so $out/lib/lib$lib.so
+        ln -svf lib''${lib}w.so.${abiVersion} $out/lib/lib$lib.so.${abiVersion}
       fi
       ln -svf lib''${lib}w.a $out/lib/lib$lib.a
       ln -svf ''${lib}w.pc $out/lib/pkgconfig/$lib.pc
     done
 
     # Create curses compatability
-    echo "INPUT(-lncursesw)" > $out/lib/libcursesw.so
-    echo "INPUT(-lncursesw)" > $out/lib/libcurses.so
-    ln -svf libncurses
+    ln -svf libncursesw.so $out/lib/libcursesw.so
+    ln -svf libncursesw.so $out/lib/libcurses.so
   '' else ''
     # Create a non-abi versioned config
     cfg=$(basename $out/bin/ncurses*-config)
@@ -112,7 +112,7 @@ stdenv.mkDerivation rec {
     ln -svf . $out/include/ncurses
 
     # Create curses compatability
-    echo "INPUT(-lncurses)" > $out/lib/libcurses.so
+    ln -svf libncurses.so $out/lib/libcurses.so
   '';
 
   meta = with stdenv.lib; {

From cdd93463c0677b4aeb1f7a75825c6a8f36c6de16 Mon Sep 17 00:00:00 2001
From: "William A. Kennington III" <william@wkennington.com>
Date: Thu, 21 May 2015 00:24:56 -0700
Subject: [PATCH 09/31] gawk: 4.1.2 -> 4.1.3

---
 pkgs/tools/text/gawk/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/text/gawk/default.nix b/pkgs/tools/text/gawk/default.nix
index 9017025477b..35e0b6d927b 100644
--- a/pkgs/tools/text/gawk/default.nix
+++ b/pkgs/tools/text/gawk/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libsigsegv, readline, readlineSupport ? false }:
 
 stdenv.mkDerivation rec {
-  name = "gawk-4.1.2";
+  name = "gawk-4.1.3";
 
   src = fetchurl {
     url = "mirror://gnu/gawk/${name}.tar.xz";
-    sha256 = "10glh5amry76v8fzhp4phi4119zwjwzjg9ybzq971qjfhg2m72za";
+    sha256 = "09d6pmx6h3i2glafm0jd1v1iyrs03vcyv2rkz12jisii3vlmbkz3";
   };
 
   doCheck = !stdenv.isCygwin; # XXX: `test-dup2' segfaults on Cygwin 6.1

From 32126ebf259939c4570e0b08759394eb2af2b1bf Mon Sep 17 00:00:00 2001
From: Thomas Strobel <ts468@cam.ac.uk>
Date: Sun, 24 May 2015 12:53:14 +0200
Subject: [PATCH 10/31] Add gstreamer-vaapi for gstreamer-1.0.

---
 .../libraries/gstreamer/default.nix           |  2 ++
 .../libraries/gstreamer/vaapi/default.nix     | 32 +++++++++++++++++++
 2 files changed, 34 insertions(+)
 create mode 100644 pkgs/development/libraries/gstreamer/vaapi/default.nix

diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
index 4796ce078df..6ec5e5d9e0a 100644
--- a/pkgs/development/libraries/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -18,4 +18,6 @@ rec {
   gnonlin = callPackage ./gnonlin { inherit gst-plugins-base; };
 
   gst-editing-services = callPackage ./ges { inherit gnonlin; };
+
+  gst-vaapi = callPackage ./vaapi { inherit gst-plugins-base gstreamer gst-plugins-bad; };
 }
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
new file mode 100644
index 00000000000..a1f936e20af
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, gst-plugins-base, bzip2, libva
+, libdrm, udev, xorg, mesa, yasm, gstreamer, gst-plugins-bad, nasm
+, libvpx
+}:
+
+stdenv.mkDerivation rec {
+  name = "gst-vaapi-${version}";
+  version = "0.5.10";
+
+  src = fetchurl {
+    url = "${meta.homepage}/software/vaapi/releases/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.bz2";
+    sha256 = "179wnz4c4gnw9ibfgjrad9b44icygadaknsgjfw24lr2pz3kdlhd";
+  };
+
+  nativeBuildInputs = with stdenv.lib; [ pkgconfig bzip2 ];
+
+  buildInputs = with stdenv.lib; [ gstreamer gst-plugins-base gst-plugins-bad libva libdrm udev
+    xorg.libX11 xorg.libXext xorg.libXv xorg.libXrandr mesa nasm libvpx ];
+
+  preConfigure = "
+    export GST_PLUGIN_PATH_1_0=$out/lib/gstreamer-1.0
+    mkdir -p $GST_PLUGIN_PATH_1_0
+    ";
+  configureFlags = "--disable-builtin-libvpx --with-gstreamer-api=1.0";
+
+  meta = {
+    homepage = "http://www.freedesktop.org";
+    license = stdenv.lib.licenses.lgpl21Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ tstrobel ];
+  };
+}

From 06ff4af597a75a0854cbcb9c822b1fe38a466a98 Mon Sep 17 00:00:00 2001
From: Allen Nelson <anelson@narrativescience.com>
Date: Thu, 21 May 2015 23:32:03 -0500
Subject: [PATCH 11/31] Adding documentation to wrap.sh, added ability to
 retain any desired environment variables.

---
 .../python-modules/generic/default.nix            | 15 ++++++++++++++-
 pkgs/development/python-modules/generic/wrap.sh   | 14 +++++++++++---
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index b962e9f8472..211c781b5d4 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -47,11 +47,24 @@
 # Execute after shell hook
 , postShellHook ? ""
 
+# Environment variables to set in wrapper scripts, in addition to
+# PYTHONPATH and PATH.
+, setEnvVars ? []
+
 , ... } @ attrs:
 
 
 # Keep extra attributes from `attrs`, e.g., `patchPhase', etc.
-if disabled then throw "${name} not supported for interpreter ${python.executable}" else python.stdenv.mkDerivation (attrs // {
+if disabled
+then throw "${name} not supported for interpreter ${python.executable}"
+else
+
+let
+  inherit (builtins) hasAttr;
+  inherit (lib) mapAttrs concatStringsSep optionals hasSuffix;
+in
+
+python.stdenv.mkDerivation (attrs // {
   inherit doCheck;
 
   name = namePrefix + name;
diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh
index 45f86df4dcf..f9a65c6a33f 100644
--- a/pkgs/development/python-modules/generic/wrap.sh
+++ b/pkgs/development/python-modules/generic/wrap.sh
@@ -41,9 +41,17 @@ wrapPythonProgramsIn() {
                 # wrapProgram creates the executable shell script described
                 # above. The script will set PYTHONPATH and PATH variables.!
                 # (see pkgs/build-support/setup-hooks/make-wrapper.sh)
-                wrapProgram $f \
-                              --prefix PYTHONPATH ':' $program_PYTHONPATH \
-                              --prefix PATH ':' $program_PATH
+                local wrap_args="$f \
+                                 --prefix PYTHONPATH ':' $program_PYTHONPATH \
+                                 --prefix PATH ':' $program_PATH"
+
+                # Add any additional environment variables to propagate.
+                for env_var in $setEnvVars; do
+                    # Look up the value of this variable
+                    local value=$(eval "echo \$$env_var")
+                    wrap_args="$wrap_args --set $env_var $value"
+                done
+                wrapProgram $wrap_args
             fi
         fi
     done

From bf1a16bbeac462ee46674e4d340a7f1edffddb0a Mon Sep 17 00:00:00 2001
From: Allen Nelson <anelson@narrativescience.com>
Date: Fri, 22 May 2015 09:57:42 -0500
Subject: [PATCH 12/31] removing superfluous lets

---
 pkgs/development/python-modules/generic/default.nix | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 211c781b5d4..9856682ba89 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -59,11 +59,6 @@ if disabled
 then throw "${name} not supported for interpreter ${python.executable}"
 else
 
-let
-  inherit (builtins) hasAttr;
-  inherit (lib) mapAttrs concatStringsSep optionals hasSuffix;
-in
-
 python.stdenv.mkDerivation (attrs // {
   inherit doCheck;
 

From 6bb2e47abf8317364c86d84808a04a72e40ff1f0 Mon Sep 17 00:00:00 2001
From: Allen Nelson <anelson@narrativescience.com>
Date: Sun, 24 May 2015 10:19:13 -0500
Subject: [PATCH 13/31] using makeWrapperArgs instead of setEnvVars

---
 pkgs/development/python-modules/generic/default.nix | 6 +++---
 pkgs/development/python-modules/generic/wrap.sh     | 9 ++++-----
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 9856682ba89..378f047939f 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -47,9 +47,9 @@
 # Execute after shell hook
 , postShellHook ? ""
 
-# Environment variables to set in wrapper scripts, in addition to
-# PYTHONPATH and PATH.
-, setEnvVars ? []
+# Additional arguments to pass to the makeWrapper function, which wraps
+# generated binaries.
+, makeWrapperArgs ? []
 
 , ... } @ attrs:
 
diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh
index f9a65c6a33f..33b9a06f608 100644
--- a/pkgs/development/python-modules/generic/wrap.sh
+++ b/pkgs/development/python-modules/generic/wrap.sh
@@ -45,11 +45,10 @@ wrapPythonProgramsIn() {
                                  --prefix PYTHONPATH ':' $program_PYTHONPATH \
                                  --prefix PATH ':' $program_PATH"
 
-                # Add any additional environment variables to propagate.
-                for env_var in $setEnvVars; do
-                    # Look up the value of this variable
-                    local value=$(eval "echo \$$env_var")
-                    wrap_args="$wrap_args --set $env_var $value"
+                # Add any additional arguments provided by makeWrapperArgs
+                # argument to buildPythonPackage.
+                for arg in $makeWrapperArgs; do
+                    wrap_args="$wrap_args $arg"
                 done
                 wrapProgram $wrap_args
             fi

From adf59e7110fd6cc608a23f20ee6b245db4030d4e Mon Sep 17 00:00:00 2001
From: Benjamin Staffin <ben@folsomlabs.com>
Date: Sun, 24 May 2015 00:15:12 -0700
Subject: [PATCH 14/31] New package: prom2json

---
 .../prometheus/prom2json/default.nix          | 28 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  1 +
 2 files changed, 29 insertions(+)
 create mode 100644 pkgs/servers/monitoring/prometheus/prom2json/default.nix

diff --git a/pkgs/servers/monitoring/prometheus/prom2json/default.nix b/pkgs/servers/monitoring/prometheus/prom2json/default.nix
new file mode 100644
index 00000000000..95457758cd2
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/prom2json/default.nix
@@ -0,0 +1,28 @@
+{ goPackages, lib, fetchFromGitHub }:
+
+goPackages.buildGoPackage rec {
+  name = "prom2json-${rev}";
+  rev = "0.1.0";
+  goPackagePath = "github.com/prometheus/prom2json";
+
+  src = fetchFromGitHub {
+    owner = "prometheus";
+    repo = "prom2json";
+    inherit rev;
+    sha256 = "0wwh3mz7z81fwh8n78sshvj46akcgjhxapjgfic5afc4nv926zdl";
+  };
+
+  buildInputs = with goPackages; [
+    golang_protobuf_extensions
+    prometheus.client_golang
+    protobuf
+  ];
+
+  meta = with lib; {
+    description = "A tool to scrape a Prometheus client and dump the result as JSON.";
+    homepage = https://github.com/prometheus/prom2json;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ benley ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f0e54b916ca..208000292bd 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8802,6 +8802,7 @@ let
 
   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
 
+  prom2json = callPackage ../servers/monitoring/prometheus/prom2json { };
   prometheus = callPackage ../servers/monitoring/prometheus { };
   prometheus-alertmanager =
     callPackage ../servers/monitoring/prometheus/alertmanager { };

From af142824cbf490dd9117f0a5a8fb69da7a6e402a Mon Sep 17 00:00:00 2001
From: Benjamin Staffin <ben@folsomlabs.com>
Date: Sun, 24 May 2015 00:21:47 -0700
Subject: [PATCH 15/31] New package: prometheus-mysqld-exporter

---
 .../prometheus/mysqld_exporter/default.nix    | 27 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 29 insertions(+)
 create mode 100644 pkgs/servers/monitoring/prometheus/mysqld_exporter/default.nix

diff --git a/pkgs/servers/monitoring/prometheus/mysqld_exporter/default.nix b/pkgs/servers/monitoring/prometheus/mysqld_exporter/default.nix
new file mode 100644
index 00000000000..0b399d0cfff
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/mysqld_exporter/default.nix
@@ -0,0 +1,27 @@
+{ goPackages, lib, fetchFromGitHub }:
+
+goPackages.buildGoPackage rec {
+  name = "prometheus-mysqld-exporter-${rev}";
+  rev = "0.1.0";
+  goPackagePath = "github.com/prometheus/mysqld_exporter";
+
+  src = fetchFromGitHub {
+    owner = "prometheus";
+    repo = "mysqld_exporter";
+    inherit rev;
+    sha256 = "10xnyxyb6saz8pq3ijp424hxy59cvm1b5c9zcbw7ddzzkh1f6jd9";
+  };
+
+  buildInputs = with goPackages; [
+    mysql
+    prometheus.client_golang
+  ];
+
+  meta = with lib; {
+    description = "Prometheus exporter for MySQL server metrics";
+    homepage = https://github.com/prometheus/mysqld_exporter;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ benley ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 208000292bd..c7f4e396639 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8812,6 +8812,8 @@ let
     callPackage ../servers/monitoring/prometheus/haproxy_exporter { };
   prometheus-mesos-exporter =
     callPackage ../servers/monitoring/prometheus/mesos_exporter { };
+  prometheus-mysqld-exporter =
+    callPackage ../servers/monitoring/prometheus/mysqld_exporter { };
   prometheus-node-exporter =
     callPackage ../servers/monitoring/prometheus/node_exporter { };
   prometheus-pushgateway =

From d3fe5487add465f46da407cdfa0cc1fe031d1020 Mon Sep 17 00:00:00 2001
From: Benjamin Staffin <ben@folsomlabs.com>
Date: Sun, 24 May 2015 14:33:39 -0700
Subject: [PATCH 16/31] New package: prometheus-collectd-exporter

---
 .../prometheus/collectd_exporter/default.nix  | 24 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 26 insertions(+)
 create mode 100644 pkgs/servers/monitoring/prometheus/collectd_exporter/default.nix

diff --git a/pkgs/servers/monitoring/prometheus/collectd_exporter/default.nix b/pkgs/servers/monitoring/prometheus/collectd_exporter/default.nix
new file mode 100644
index 00000000000..a859c437701
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/collectd_exporter/default.nix
@@ -0,0 +1,24 @@
+{ goPackages, lib, fetchFromGitHub }:
+
+goPackages.buildGoPackage rec {
+  name = "prometheus-collectd-exporter-${rev}";
+  rev = "0.1.0";
+  goPackagePath = "github.com/prometheus/collectd_exporter";
+
+  src = fetchFromGitHub {
+    owner = "prometheus";
+    repo = "collectd_exporter";
+    inherit rev;
+    sha256 = "165zsdn0lffb6fvxz75szmm152a6wmia5skb96k1mv59qbmn9fi1";
+  };
+
+  buildInputs = [ goPackages.prometheus.client_golang ];
+
+  meta = with lib; {
+    description = "Relay server for exporting metrics from collectd to Prometheus";
+    homepage = "https://github.com/prometheus/alertmanager";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ benley ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c7f4e396639..f55c035c3a9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8808,6 +8808,8 @@ let
     callPackage ../servers/monitoring/prometheus/alertmanager { };
   prometheus-cli =
     callPackage ../servers/monitoring/prometheus/cli { };
+  prometheus-collectd-exporter =
+    callPackage ../servers/monitoring/prometheus/collectd_exporter { };
   prometheus-haproxy-exporter =
     callPackage ../servers/monitoring/prometheus/haproxy_exporter { };
   prometheus-mesos-exporter =

From 3fa1b2183af51df57cb4fa521fd8d4da005d2b0d Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Sun, 24 May 2015 11:38:32 +0200
Subject: [PATCH 17/31] hackage-packages.nix: update to
 https://github.com/commercialhaskell/all-cabal-files/commit/8ed599c15553edfe681968a9ce26b983bf81a6bf
 with hackage2nix revision 61d7380337df7e1b568c1b30f4d97e5c2df42b66

---
 .../haskell-modules/hackage-packages.nix      | 123 ++++++++++++++----
 1 file changed, 96 insertions(+), 27 deletions(-)

diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 74bf9011231..3d102742a26 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -1057,8 +1057,8 @@ self: {
      }:
      mkDerivation {
        pname = "BNFC";
-       version = "2.7.1";
-       sha256 = "1n9l64wzga3i7ifh2k5rwhxp60gb0av5fszygw5mvr31r64cf4fp";
+       version = "2.8";
+       sha256 = "0d3zcxspxcpnifv3kqg8d6gp01wxybakcbw7jh69gqg8rzfmzgi1";
        isLibrary = true;
        isExecutable = true;
        buildDepends = [
@@ -17385,7 +17385,9 @@ self: {
      mkDerivation {
        pname = "aeson-native";
        version = "0.3.3.2";
+       revision = "1";
        sha256 = "1s5i88r8sdd7ayrpjw6f18273k6r0igk0sswb503hzvjagzmzffh";
+       editedCabalFile = "c9519a30bce75564cfbe84aade5ffb99fad12ecea1c7d2c362cca2234b8ae497";
        buildDepends = [
          attoparsec base blaze-builder blaze-textual-native bytestring
          containers deepseq hashable mtl old-locale syb text time
@@ -23032,8 +23034,8 @@ self: {
     ({ mkDerivation, base, ghc-prim, hspec }:
      mkDerivation {
        pname = "base-orphans";
-       version = "0.3.1";
-       sha256 = "12nabqwniywwxsysdk0kh1zscdwyjk10z1fk3iqqcg0bqmyb67i5";
+       version = "0.3.2";
+       sha256 = "1qbnhxchl2kdjbwqz3mp7rq963w6y6ws4kflmv6hmcp25aaqh6pl";
        buildDepends = [ base ghc-prim ];
        testDepends = [ base hspec ];
        homepage = "https://github.com/haskell-compat/base-orphans#readme";
@@ -37813,21 +37815,19 @@ self: {
   "darkplaces-rcon-util" = callPackage
     ({ mkDerivation, base, bytestring, ConfigFile, containers
      , darkplaces-rcon, darkplaces-text, directory, filepath, haskeline
-     , HostAndPort, hspec, hspec-core, mtl, old-locale
-     , optparse-applicative, text, time, utf8-string
+     , HostAndPort, hspec, hspec-core, mtl, optparse-applicative, text
+     , time, utf8-string
      }:
      mkDerivation {
        pname = "darkplaces-rcon-util";
-       version = "0.1";
-       revision = "3";
-       sha256 = "0accwwwifhmlnrc5rqb9kc44mcrpbfibakip8pwi2aqs7xvchavr";
-       editedCabalFile = "c26b82e362cada670c0edc2c27c5c571f1898edb5ec29ab4c35d913c537b264d";
+       version = "0.1.1";
+       sha256 = "1xv9906ag2vgkzbk66f9r6lr5j6qwlwss246hjl7iriq315dmqlg";
        isLibrary = true;
        isExecutable = true;
        buildDepends = [
          base bytestring ConfigFile containers darkplaces-rcon
          darkplaces-text directory filepath haskeline HostAndPort mtl
-         old-locale optparse-applicative text time utf8-string
+         optparse-applicative text time utf8-string
        ];
        testDepends = [
          base bytestring darkplaces-rcon darkplaces-text hspec hspec-core
@@ -46625,6 +46625,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "exherbo-cabal" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers
+     , haddock-library, http-client, pcre-light, pretty
+     }:
+     mkDerivation {
+       pname = "exherbo-cabal";
+       version = "0.1.0.0";
+       sha256 = "0ap3j5shgy5l1crsyq6dkz2g4gd9y7r8vx4rsppib7y0gqqczpfm";
+       isLibrary = false;
+       isExecutable = true;
+       buildDepends = [
+         base bytestring Cabal containers haddock-library http-client
+         pcre-light pretty
+       ];
+       jailbreak = true;
+       description = "Exheres generator for cabal packages";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "exif" = callPackage
     ({ mkDerivation, base, exif }:
      mkDerivation {
@@ -73011,6 +73031,7 @@ self: {
        ];
        description = "Shared library used be ide-backend and ide-backend-server";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ide-backend-rts" = callPackage
@@ -73044,6 +73065,7 @@ self: {
        ];
        description = "An IDE backend server";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ideas" = callPackage
@@ -81564,8 +81586,8 @@ self: {
     ({ mkDerivation, base, containers, ghc-prim, mtl, transformers }:
      mkDerivation {
        pname = "linearscan";
-       version = "0.5.0.0";
-       sha256 = "0n8xcj5pkz50mkx4cvqh1iywlf9vrk6bk4d3lv8fa22ik88mdr15";
+       version = "0.5.1.0";
+       sha256 = "123gs28vfb1lx9izzjran79caqj92p1l0v051pd0pf2nfm6iymgb";
        buildDepends = [ base containers ghc-prim mtl transformers ];
        homepage = "http://github.com/jwiegley/linearscan";
        description = "Linear scan register allocator, formally verified in Coq";
@@ -81579,8 +81601,8 @@ self: {
      }:
      mkDerivation {
        pname = "linearscan-hoopl";
-       version = "0.5.0.0";
-       sha256 = "0z8lhi4q89f1b2fk5a3vn0a9q9h4w81b0wjqdypb7bz5lisvvg0s";
+       version = "0.5.1.0";
+       sha256 = "147ryhliilbpmzy87bda7aapfpfhw4r6rcy6jla2ampy7qvvvbyk";
        buildDepends = [
          base containers free hoopl linearscan transformers
        ];
@@ -85771,8 +85793,8 @@ self: {
      }:
      mkDerivation {
        pname = "memory";
-       version = "0.2";
-       sha256 = "05v7ywbxn61bk8gk8sc4fpm1n76kcvbab1jgvbq82m6g56dhmrh0";
+       version = "0.3";
+       sha256 = "17dry2yfnj7vldrdh0kynyaa4pfyy88k3035w3hxggh7n325dfir";
        buildDepends = [ base bytestring deepseq ghc-prim ];
        testDepends = [ base tasty tasty-hunit tasty-quickcheck ];
        homepage = "https://github.com/vincenthz/hs-memory";
@@ -89762,8 +89784,8 @@ self: {
      }:
      mkDerivation {
        pname = "mvc";
-       version = "1.0.4";
-       sha256 = "0mbbcjcvd05ql76ys5fmsr57aif1bysasz91rvmp795a9wj3i83i";
+       version = "1.0.5";
+       sha256 = "1lrq0nkxi0ljs6pxf7p4awhrf9ix9dqwvwsydph6fw356ypc39r2";
        buildDepends = [
          async base contravariant foldl managed mmorph pipes
          pipes-concurrency transformers
@@ -94271,8 +94293,8 @@ self: {
      }:
      mkDerivation {
        pname = "orgmode-parse";
-       version = "0.1.1.0";
-       sha256 = "1hrbfifm9476n28l2gxyr9m00hjibnl78anc5m7inqm8wr1s3cl0";
+       version = "0.1.1.1";
+       sha256 = "17slf2i7k8bk1d47l165awn38dlpq2rdw6glzvp8if1dir2l2jl7";
        buildDepends = [
          aeson attoparsec base bytestring containers free hashable
          old-locale text thyme unordered-containers
@@ -94808,10 +94830,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-crossref";
-       version = "0.1.0.2";
-       revision = "1";
-       sha256 = "0mnksd8wl6y9qh4z5p6nzf64lic2cxws0hm2n1aj8vq8asfy28af";
-       editedCabalFile = "c209bec5811d40360ca07a9218404186ab8564ee649b14d6e3ece04b4006204f";
+       version = "0.1.1.0";
+       sha256 = "1z6q9sb5h0bbvkdlv6abvhgz0cgw4vixs3pv531l9jpkmvfri8r4";
        isLibrary = false;
        isExecutable = true;
        buildDepends = [
@@ -101168,6 +101188,29 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "pseudo-boolean" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, bytestring-builder
+     , containers, deepseq, dlist, hashable, HUnit, parsec, QuickCheck
+     , tasty, tasty-hunit, tasty-quickcheck, tasty-th, temporary
+     }:
+     mkDerivation {
+       pname = "pseudo-boolean";
+       version = "0.1.0.0";
+       sha256 = "1dqy8zpf7016rm3wyvgwipllm95wmrr9na04v4x402k1f8pvkdvc";
+       buildDepends = [
+         attoparsec base bytestring bytestring-builder containers deepseq
+         dlist hashable parsec
+       ];
+       testDepends = [
+         base bytestring HUnit QuickCheck tasty tasty-hunit tasty-quickcheck
+         tasty-th temporary
+       ];
+       homepage = "https://github.com/msakai/pseudo-boolean";
+       description = "Reading\/Writing OPB\/WBO files used in pseudo boolean competition";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "pseudo-trie" = callPackage
     ({ mkDerivation, base, semigroups }:
      mkDerivation {
@@ -113916,6 +113959,7 @@ self: {
        homepage = "https://github.com/dbp/snaplet-wordpress";
        description = "A snaplet that communicates with wordpress over its api";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "snappy" = callPackage
@@ -116655,8 +116699,8 @@ self: {
      }:
      mkDerivation {
        pname = "stm-conduit";
-       version = "2.6.0";
-       sha256 = "0lhqhsvisyn4wgj5qk0slzbgy7lbmzgcryi4vlw1d058nsjnpxwj";
+       version = "2.6.1";
+       sha256 = "0cd99aj9azlr6d9bayjyrbigbzll9yfny7qan1wnrh413i1z1x0p";
        buildDepends = [
          async base cereal cereal-conduit conduit conduit-combinators
          conduit-extra directory ghc-prim lifted-async lifted-base
@@ -135621,6 +135665,31 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "yesod-raml" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, hspec
+     , network-uri, optparse-applicative, regex-posix, template-haskell
+     , text, unordered-containers, yaml, yesod-core
+     }:
+     mkDerivation {
+       pname = "yesod-raml";
+       version = "0.1.0";
+       sha256 = "1vcllxsyqvr26a27l9vfi76kpdzld3ws1i0q6g9jnwhkr16bmc3f";
+       isLibrary = true;
+       isExecutable = true;
+       buildDepends = [
+         aeson base bytestring containers network-uri optparse-applicative
+         regex-posix template-haskell text unordered-containers yaml
+         yesod-core
+       ];
+       testDepends = [
+         aeson base bytestring containers hspec network-uri regex-posix
+         template-haskell text unordered-containers yaml yesod-core
+       ];
+       description = "RAML style route definitions for Yesod";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "yesod-recaptcha" = callPackage
     ({ mkDerivation, base, bytestring, data-default, http-conduit
      , http-types, lifted-base, network, network-info, resourcet, text

From 37ca982a66328320355bd83ecadbe1009bc97f1a Mon Sep 17 00:00:00 2001
From: "William A. Kennington III" <william@wkennington.com>
Date: Sun, 24 May 2015 15:40:49 -0700
Subject: [PATCH 18/31] linux-testing: 4.1-rc4

---
 pkgs/os-specific/linux/kernel/linux-testing.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 769381355d4..895616ad20a 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.0-rc7";
-  modDirVersion = "4.0.0-rc7";
-  extraMeta.branch = "4.0";
+  version = "4.1-rc4";
+  modDirVersion = "4.1.0-rc4";
+  extraMeta.branch = "4.1";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/testing/linux-${version}.tar.xz";
-    sha256 = "1261p44zmsaq7gf08b8sd9xng2y46d4v7jyfipjlgrrmlkyfgqki";
+    sha256 = "0l3rmlng7pn4r788km8cgs562cq2is2cgzy3capdnngwmfrfmrr2";
   };
 
   features.iwlwifi = true;

From 5722d7c5b593c8cabf0cf2783161ad5ef8d89e07 Mon Sep 17 00:00:00 2001
From: "William A. Kennington III" <william@wkennington.com>
Date: Sun, 24 May 2015 15:58:26 -0700
Subject: [PATCH 19/31] umurmur: Enable shmapi

---
 pkgs/applications/networking/umurmur/default.nix | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/pkgs/applications/networking/umurmur/default.nix b/pkgs/applications/networking/umurmur/default.nix
index a8ae393598d..194b22f0fd7 100644
--- a/pkgs/applications/networking/umurmur/default.nix
+++ b/pkgs/applications/networking/umurmur/default.nix
@@ -13,7 +13,10 @@ stdenv.mkDerivation rec {
   
   buildInputs = [ autoreconfHook openssl protobufc libconfig ];
 
-  configureFlags = "--with-ssl=openssl";
+  configureFlags = [
+    "--with-ssl=openssl"
+    "--enable-shmapi"
+  ];
 
   meta = with stdenv.lib; {
     description = "Minimalistic Murmur (Mumble server)";

From 847f8297fc9f2bf692147008b731657182d3a3f2 Mon Sep 17 00:00:00 2001
From: Jonathan Glines <auntieNeo@gmail.com>
Date: Thu, 5 Feb 2015 01:42:00 -0700
Subject: [PATCH 20/31] Added config options for systemd-coredump
 functionality.

---
 nixos/modules/module-list.nix          |  1 +
 nixos/modules/system/boot/coredump.nix | 51 ++++++++++++++++++++++++++
 2 files changed, 52 insertions(+)
 create mode 100644 nixos/modules/system/boot/coredump.nix

diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 3b6305179f0..cd679f8e93c 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -406,6 +406,7 @@
   ./services/x11/xserver.nix
   ./system/activation/activation-script.nix
   ./system/activation/top-level.nix
+  ./system/boot/coredump.nix
   ./system/boot/emergency-mode.nix
   ./system/boot/kernel.nix
   ./system/boot/kexec.nix
diff --git a/nixos/modules/system/boot/coredump.nix b/nixos/modules/system/boot/coredump.nix
new file mode 100644
index 00000000000..25b11ed9c8a
--- /dev/null
+++ b/nixos/modules/system/boot/coredump.nix
@@ -0,0 +1,51 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+
+  options = {
+
+    systemd.coredump = {
+
+      enable = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Enables storing core dumps in systemd.
+          Note that this alone is not enough to enable core dumps. The maximum
+          file size for core dumps must be specified in limits.conf as well. See
+          <option>security.pam.loginLimits</option> as well as the limits.conf(5)
+          man page.
+        '';
+      };
+
+      extraConfig = mkOption {
+        default = "";
+        type = types.lines;
+        example = "Storage=journal";
+        description = ''
+          Extra config options for systemd-coredump. See coredump.conf(5) man page
+          for available options.
+        '';
+      };
+    };
+
+  };
+
+  config = mkIf config.systemd.coredump.enable {
+
+    environment.etc."systemd/coredump.conf".text =
+      ''
+        [Coredump]
+        ${config.systemd.coredump.extraConfig}
+      '';
+
+    # Have the kernel pass core dumps to systemd's coredump helper binary.
+    # From systemd's 50-coredump.conf file. See:
+    # <https://github.com/systemd/systemd/blob/v218/sysctl.d/50-coredump.conf.in>
+    boot.kernel.sysctl."kernel.core_pattern" = "|${pkgs.systemd}/lib/systemd/systemd-coredump %p %u %g %s %t %e";
+
+  };
+
+}

From da2d1c17dca630dcf59596929315c49a846439c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com>
Date: Mon, 25 May 2015 10:49:54 +0800
Subject: [PATCH 21/31] glfw: Update to 3.1.1 and build shared library.

---
 pkgs/development/libraries/glfw/3.x.nix | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index ab7e312762f..087be3bb6de 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -1,16 +1,23 @@
-{ stdenv, fetchurl, cmake, mesa, libXrandr, libXi, libXxf86vm, libXfixes, x11 }:
+{ stdenv, fetchurl, cmake, mesa, libXrandr, libXi, libXxf86vm, libXfixes, x11
+, libXinerama, libXcursor
+}:
 
 stdenv.mkDerivation rec {
-  name = "glfw-3.0.4";
+  name = "glfw-3.1.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/glfw/${name}.tar.bz2";
-    sha256 = "1h7g16ncgkl38w19x4dvnn17k9j0kqfvbb9whw9qc71lkq5xf2ag";
+    sha256 = "0q9dhbj2az7jwwi556zai0qr8zmg6d2lyxcqngppkw0x7hi1d1aa";
   };
 
   enableParallelBuilding = true;
 
-  buildInputs = [ cmake mesa libXrandr libXi libXxf86vm libXfixes x11 ];
+  buildInputs = [
+    cmake mesa libXrandr libXi libXxf86vm libXfixes x11
+    libXinerama libXcursor
+  ];
+
+  cmakeFlags = "-DBUILD_SHARED_LIBS=ON";
 
   meta = with stdenv.lib; { 
     description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time";

From d2cbcc68be00173e58a7c5e60079d485f95a63e3 Mon Sep 17 00:00:00 2001
From: Allen Nelson <anelson@narrativescience.com>
Date: Sun, 24 May 2015 22:22:20 -0500
Subject: [PATCH 22/31] added documentation for makeWrapperArgs

---
 doc/language-support.xml | 108 ++++++++++++++++++++++-----------------
 1 file changed, 61 insertions(+), 47 deletions(-)

diff --git a/doc/language-support.xml b/doc/language-support.xml
index da709b34a94..1e1bdf75eda 100644
--- a/doc/language-support.xml
+++ b/doc/language-support.xml
@@ -245,14 +245,14 @@ are provided with all modules included.</para>
         Name of the folder in <literal>${python}/lib/</literal> for corresponding interpreter.
     </para></listitem>
   </varlistentry>
-  
+
   <varlistentry>
     <term><varname>interpreter</varname></term>
     <listitem><para>
         Alias for <literal>${python}/bin/${executable}.</literal>
     </para></listitem>
   </varlistentry>
-  
+
   <varlistentry>
     <term><varname>buildEnv</varname></term>
     <listitem><para>
@@ -260,29 +260,29 @@ are provided with all modules included.</para>
         See <xref linkend="python-build-env" /> for usage and documentation.
     </para></listitem>
   </varlistentry>
-  
+
   <varlistentry>
     <term><varname>sitePackages</varname></term>
     <listitem><para>
       Alias for <literal>lib/${libPrefix}/site-packages</literal>.
     </para></listitem>
   </varlistentry>
-  
+
   <varlistentry>
     <term><varname>executable</varname></term>
     <listitem><para>
       Name of the interpreter executable, ie <literal>python3.4</literal>.
     </para></listitem>
   </varlistentry>
-  
+
 </variablelist>
 <section xml:id="build-python-package"><title><varname>buildPythonPackage</varname> function</title>
-  
+
   <para>
   The function is implemented in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/generic/default.nix">
   <filename>pkgs/development/python-modules/generic/default.nix</filename></link>.
   Example usage:
-  
+
 <programlisting language="nix">
 twisted = buildPythonPackage {
   name = "twisted-8.1.0";
@@ -308,27 +308,27 @@ twisted = buildPythonPackage {
   <varname>python27Packages</varname>, <varname>python32Packages</varname>, <varname>python33Packages</varname>,
   <varname>python34Packages</varname> and <varname>pypyPackages</varname>.
   </para>
-  
+
   <para>
     <function>buildPythonPackage</function> mainly does four things:
-      
+
     <orderedlist>
       <listitem><para>
         In the <varname>configurePhase</varname>, it patches
         <literal>setup.py</literal> to always include setuptools before
         distutils for monkeypatching machinery to take place.
       </para></listitem>
-    
+
       <listitem><para>
-        In the <varname>buildPhase</varname>, it calls 
+        In the <varname>buildPhase</varname>, it calls
         <literal>${python.interpreter} setup.py build ...</literal>
       </para></listitem>
-      
+
       <listitem><para>
-        In the <varname>installPhase</varname>, it calls 
+        In the <varname>installPhase</varname>, it calls
         <literal>${python.interpreter} setup.py install ...</literal>
       </para></listitem>
-      
+
       <listitem><para>
         In the <varname>postFixup</varname> phase, <literal>wrapPythonPrograms</literal>
         bash function is called to wrap all programs in <filename>$out/bin/*</filename>
@@ -337,23 +337,23 @@ twisted = buildPythonPackage {
       </para></listitem>
     </orderedlist>
   </para>
-  
-  <para>By default <varname>doCheck = true</varname> is set and tests are run with 
+
+  <para>By default <varname>doCheck = true</varname> is set and tests are run with
   <literal>${python.interpreter} setup.py test</literal> command in <varname>checkPhase</varname>.</para>
-  
+
   <para><varname>propagatedBuildInputs</varname> packages are propagated to user environment.</para>
-    
+
   <para>
     By default <varname>meta.platforms</varname> is set to the same value
     as the interpreter unless overriden otherwise.
   </para>
-  
+
   <variablelist>
     <title>
       <varname>buildPythonPackage</varname> parameters
       (all parameters from <varname>mkDerivation</varname> function are still supported)
     </title>
-  
+
     <varlistentry>
       <term><varname>namePrefix</varname></term>
       <listitem><para>
@@ -363,7 +363,7 @@ twisted = buildPythonPackage {
         if you're packaging an application or a command line tool.
       </para></listitem>
     </varlistentry>
-  
+
     <varlistentry>
       <term><varname>disabled</varname></term>
       <listitem><para>
@@ -373,21 +373,21 @@ twisted = buildPythonPackage {
         for examples.
       </para></listitem>
     </varlistentry>
-      
+
     <varlistentry>
       <term><varname>setupPyInstallFlags</varname></term>
       <listitem><para>
         List of flags passed to <command>setup.py install</command> command.
       </para></listitem>
     </varlistentry>
-     
+
     <varlistentry>
       <term><varname>setupPyBuildFlags</varname></term>
       <listitem><para>
         List of flags passed to <command>setup.py build</command> command.
       </para></listitem>
     </varlistentry>
-     
+
     <varlistentry>
       <term><varname>pythonPath</varname></term>
       <listitem><para>
@@ -396,21 +396,21 @@ twisted = buildPythonPackage {
         (contrary to <varname>propagatedBuildInputs</varname>).
       </para></listitem>
     </varlistentry>
-     
+
     <varlistentry>
       <term><varname>preShellHook</varname></term>
       <listitem><para>
         Hook to execute commands before <varname>shellHook</varname>.
       </para></listitem>
     </varlistentry>
-    
+
     <varlistentry>
       <term><varname>postShellHook</varname></term>
       <listitem><para>
         Hook to execute commands after <varname>shellHook</varname>.
       </para></listitem>
     </varlistentry>
-    
+
     <varlistentry>
       <term><varname>distutilsExtraCfg</varname></term>
       <listitem><para>
@@ -419,15 +419,29 @@ twisted = buildPythonPackage {
         configuration).
       </para></listitem>
     </varlistentry>
-  
+
+    <varlistentry>
+      <term><varname>makeWrapperArgs</varname></term>
+      <listitem><para>
+        A list of strings. Arguments to be passed to
+        <varname>makeWrapper</varname>, which wraps generated binaries. By
+        default, the arguments to <varname>makeWrapper</varname> set
+        <varname>PATH</varname> and <varname>PYTHONPATH</varname> environment
+        variables before calling the binary. Additional arguments here can
+        allow a developer to set environment variables which will be
+        available when the binary is run. For example,
+        <varname>makeWrapperArgs = ["--set FOO BAR" "--set BAZ QUX"]</varname>.
+      </para></listitem>
+    </varlistentry>
+
   </variablelist>
-  
+
 </section>
 
 <section xml:id="python-build-env"><title><function>python.buildEnv</function> function</title>
   <para>
     Create Python environments using low-level <function>pkgs.buildEnv</function> function. Example <filename>default.nix</filename>:
-    
+
 <programlisting language="nix">
 <![CDATA[with import <nixpkgs> {};
 
@@ -436,31 +450,31 @@ python.buildEnv.override {
   ignoreCollisions = true;
 }]]>
 </programlisting>
-    
+
     Running <command>nix-build</command> will create
     <filename>/nix/store/cf1xhjwzmdki7fasgr4kz6di72ykicl5-python-2.7.8-env</filename>
     with wrapped binaries in <filename>bin/</filename>.
   </para>
-  
+
   <variablelist>
     <title>
       <function>python.buildEnv</function> arguments
     </title>
-  
+
     <varlistentry>
       <term><varname>extraLibs</varname></term>
       <listitem><para>
         List of packages installed inside the environment.
       </para></listitem>
     </varlistentry>
-    
+
     <varlistentry>
       <term><varname>postBuild</varname></term>
       <listitem><para>
         Shell command executed after the build of environment.
       </para></listitem>
     </varlistentry>
-    
+
     <varlistentry>
       <term><varname>ignoreCollisions</varname></term>
       <listitem><para>
@@ -504,13 +518,13 @@ exist in community to help save time. No tool is preferred at the moment.
     additional logic inside <varname>shellPhase</varname> to run
     <command>${python.interpreter} setup.py develop</command> for the package.
   </para>
-  
+
   <warning><para><varname>shellPhase</varname> is executed only if <filename>setup.py</filename>
   exists.</para></warning>
-  
+
   <para>
     Given a <filename>default.nix</filename>:
-    
+
 <programlisting language="nix">
 <![CDATA[with import <nixpkgs> {};
 
@@ -522,18 +536,18 @@ buildPythonPackage {
   src = ./.;
 }]]>
 </programlisting>
-    
+
     Running <command>nix-shell</command> with no arguments should give you
     the environment in which the package would be build with
     <command>nix-build</command>.
   </para>
-  
+
   <para>
     Shortcut to setup environments with C headers/libraries and python packages:
-    
+
     <programlisting language="bash">$ nix-shell -p pythonPackages.pyramid zlib libjpeg git</programlisting>
   </para>
-  
+
   <note><para>
     There is a boolean value <varname>lib.inNixShell</varname> set to
     <varname>true</varname> if nix-shell is invoked.
@@ -562,12 +576,12 @@ buildPythonPackage {
       Known bug in setuptools <varname>install_data</varname> does not respect --prefix</link>. Example of
       such package using the feature is <filename>pkgs/tools/X11/xpra/default.nix</filename>. As workaround
       install it as an extra <varname>preInstall</varname> step:
-      
+
       <programlisting>${python.interpreter} setup.py install_data --install-dir=$out --root=$out
 sed -i '/ = data_files/d' setup.py</programlisting>
     </para></listitem>
   </varlistentry>
-  
+
   <varlistentry>
     <term>Rationale of non-existent global site-packages</term>
     <listitem><para>
@@ -616,7 +630,7 @@ sed -i '/ = data_files/d' setup.py</programlisting>
   this into a nix expression that contains all Gem dependencies automatically.</para>
 
   <para>For example, to package sensu, we did:</para>
-  
+
 <screen>
 <![CDATA[$ cd pkgs/servers/monitoring
 $ mkdir sensu
@@ -876,7 +890,7 @@ fileSystem = buildLuaPackage {
   src = fetchurl {
     url = "https://github.com/keplerproject/luafilesystem/archive/v1_6_2.tar.gz";
     sha256 = "1n8qdwa20ypbrny99vhkmx8q04zd2jjycdb5196xdhgvqzk10abz";
-  };  
+  };
   meta = {
     homepage = "https://github.com/keplerproject/luafilesystem";
     hydraPlatforms = stdenv.lib.platforms.linux;
@@ -887,7 +901,7 @@ fileSystem = buildLuaPackage {
 </para>
 
 <para>
-  Though, more complicated package should be placed in a seperate file in 
+  Though, more complicated package should be placed in a seperate file in
   <link
   xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/lua-modules"><filename>pkgs/development/lua-modules</filename></link>.
 </para>

From e035e2939a2d598a06887e3b7f9ce1d62abc609e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edward=20Tj=C3=B6rnhammar?= <ed@cflags.cc>
Date: Mon, 25 May 2015 10:10:23 +0200
Subject: [PATCH 23/31] idea updates idea.pycharm: 4.5 -> 4.5.1 idea.webstorm:
 10.0.2 -> 10.0.3

---
 pkgs/applications/editors/idea/default.nix | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/pkgs/applications/editors/idea/default.nix b/pkgs/applications/editors/idea/default.nix
index 9d42aecf5f0..d22f03d56d9 100644
--- a/pkgs/applications/editors/idea/default.nix
+++ b/pkgs/applications/editors/idea/default.nix
@@ -273,25 +273,25 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "4.5";
-    build = "141.1116";
+    version = "4.5.1";
+    build = "141.1245";
     description = "PyCharm Community Edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0igx62rijalppsd1nwrri1r4m1597n93ncglyb6b94m3fm32fca6";
+      sha256 = "1rjl8r863cm7bn3bkp8kbkb9f35rb344pycg5qlvjlvwvp2f448f";
     };
   };
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "4.5";
-    build = "141.1116";
+    version = "4.5.1";
+    build = "141.1245";
     description = "PyCharm Professional Edition";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0zga8sxwrvjvyw9v1pvq40gasp485r1d627jj6jvwzcv78il50d9";
+      sha256 = "1wwyggl6941hd034xfsb3avjgvvah9lh0pdmzlndmvm677cdgzz1";
     };
   };
 
@@ -309,13 +309,13 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "10.0.2";
-    build = "141.728";
+    version = "10.0.3";
+    build = "141.1237";
     description = "Professional IDE for Web and JavaScript devlopment";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "0ghv1r145qb5kmp2x375f5674b86d51w024fz390znlnniclizqx";
+      sha256 = "06m852mbiij2dbmiz5y10bd4mhsdg5dmpy8arg75psl2j354spf8";
     };
   };
 

From 9d0bd2cd2d48ee7f2a69b808e277f25ac140b66c Mon Sep 17 00:00:00 2001
From: Christian Theune <ct@flyingcircus.io>
Date: Mon, 25 May 2015 10:24:02 +0200
Subject: [PATCH 24/31] Update syncthing to 0.11.6

---
 pkgs/applications/networking/syncthing/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 54e4e64cdcf..cea9329d9c8 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -4,12 +4,12 @@ with goPackages;
 
 buildGoPackage rec {
   name = "syncthing-${version}";
-  version = "0.11.5";
+  version = "0.11.6";
   goPackagePath = "github.com/syncthing/syncthing";
   src = fetchgit {
     url = "git://github.com/syncthing/syncthing.git";
     rev = "refs/tags/v${version}";
-    sha256 = "3a68cdecaec8d00b0fbf6348fb9b8adc628910e9572a89d9a413d6e7b79e7a06";
+    sha256 = "7fe7d7034c0e502036e2a0bb1b94b1701bd194cc82f07495da8a41c4b097c6a3";
   };
 
   subPackages = [ "cmd/syncthing" ];

From 0e9464478d0e3ae52f79e94db700b9dd39e4cec5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edward=20Tj=C3=B6rnhammar?= <ed@cflags.cc>
Date: Mon, 25 May 2015 10:38:42 +0200
Subject: [PATCH 25/31] catch: add version 1.1-3

---
 pkgs/development/libraries/catch/default.nix | 36 ++++++++++++++++++++
 pkgs/top-level/all-packages.nix              |  4 ++-
 2 files changed, 39 insertions(+), 1 deletion(-)
 create mode 100644 pkgs/development/libraries/catch/default.nix

diff --git a/pkgs/development/libraries/catch/default.nix b/pkgs/development/libraries/catch/default.nix
new file mode 100644
index 00000000000..49376b74c17
--- /dev/null
+++ b/pkgs/development/libraries/catch/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, cmake, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+
+  name = "catch-${version}";
+  version = "1.1-3";
+
+  src = fetchFromGitHub {
+    owner = "philsquared";
+    repo = "Catch";
+    rev = "c51e86819dc993d590e5d0adaf1952f4b53e5355";
+    sha256 = "0kgi7wxxysgjbpisqfj4dj0k19cyyai92f001zi8gzkybd4fkgv5";
+  };
+
+  buildInputs = [ cmake ];
+  dontUseCmakeConfigure = true;
+
+  buildPhase = ''
+    cmake -Hprojects/CMake -BBuild -DCMAKE_BUILD_TYPE=Release
+    cd Build
+    make
+    cd ..
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    mv include $out/.
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
+    homepage = "http://catch-lib.net";
+    license = licenses.boost;
+    maintainers = with maintainers; [ edwtjo ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3913e9f65e8..d22a888a1c2 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -748,6 +748,8 @@ let
 
   capstone = callPackage ../development/libraries/capstone { };
 
+  catch = callPackage ../development/libraries/catch { };
+
   catdoc = callPackage ../tools/text/catdoc { };
 
   cdemu-daemon = callPackage ../misc/emulators/cdemu/daemon.nix { };
@@ -4498,7 +4500,7 @@ let
   teyjus = callPackage ../development/compilers/teyjus {
     omake = omake_rc1;
   };
-  
+
   thrust = callPackage ../development/tools/thrust {
     gconf = pkgs.gnome.GConf;
   };

From 68e3614ad00a3b8c59c77087da9462714dc07709 Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>
Date: Mon, 25 May 2015 10:06:13 +0200
Subject: [PATCH 26/31] viber: fix evaluation for nox-review

Even broken packages ought to evaluate, or die. Especially when
less than a month (!) old...
---
 .../networking/instant-messengers/viber/default.nix           | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/instant-messengers/viber/default.nix b/pkgs/applications/networking/instant-messengers/viber/default.nix
index 521f568ff5b..4ebfddf82e1 100644
--- a/pkgs/applications/networking/instant-messengers/viber/default.nix
+++ b/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, dpkg, makeWrapper, xlibs, qt5, gstreamer, zlib, sqlite, libxslt }:
+{ fetchurl, stdenv, dpkg, makeWrapper, xlibs, qt5Full, gstreamer, zlib, sqlite, libxslt }:
 
 assert stdenv.system == "x86_64-linux";
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   unpackPhase = "true";
 
   libPath = stdenv.lib.makeLibraryPath [
-      qt5
+      qt5Full
       xlibs.libX11
       gstreamer
       zlib

From b10cb12a93ca25e912d984a8dfc705f65d2de5c1 Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>
Date: Fri, 22 May 2015 11:08:53 +0200
Subject: [PATCH 27/31] tetgen 1.4.3 -> 1.5.0

Keep version 1.4.3 around as `tetgen_1_4`, because the licence
changed from MIT to AGPL3+ in the meantime.
---
 .../science/geometry/tetgen/1.4.nix           | 21 +++++++++++++++++++
 .../science/geometry/tetgen/default.nix       | 12 ++++++-----
 pkgs/top-level/all-packages.nix               |  4 ++--
 3 files changed, 30 insertions(+), 7 deletions(-)
 create mode 100644 pkgs/applications/science/geometry/tetgen/1.4.nix

diff --git a/pkgs/applications/science/geometry/tetgen/1.4.nix b/pkgs/applications/science/geometry/tetgen/1.4.nix
new file mode 100644
index 00000000000..d542bf87c79
--- /dev/null
+++ b/pkgs/applications/science/geometry/tetgen/1.4.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "tetgen-1.4.3";
+
+  src = fetchurl {
+    url = "${meta.homepage}/files/tetgen1.4.3.tar.gz";
+    sha256 = "0d70vjqdapmy1ghlsxjlvl5z9yp310zw697bapc4zxmp0sxi29wm";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp tetgen $out/bin
+  '';
+
+  meta = {
+    description = "Quality Tetrahedral Mesh Generator and 3D Delaunay Triangulator";
+    homepage = "http://tetgen.org/";
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/applications/science/geometry/tetgen/default.nix b/pkgs/applications/science/geometry/tetgen/default.nix
index ddfb92def95..8a0565fce10 100644
--- a/pkgs/applications/science/geometry/tetgen/default.nix
+++ b/pkgs/applications/science/geometry/tetgen/default.nix
@@ -1,11 +1,12 @@
 {stdenv, fetchurl}: 
 
-stdenv.mkDerivation rec {
-  name = "tetgen-1.4.3";
+let version = "1.5.0"; in
+stdenv.mkDerivation {
+  name = "tetgen-${version}";
 
   src = fetchurl {
-    url = "${meta.homepage}/files/tetgen1.4.3.tar.gz";
-    sha256 = "0d70vjqdapmy1ghlsxjlvl5z9yp310zw697bapc4zxmp0sxi29wm";
+    url = "http://wias-berlin.de/software/tetgen/1.5/src/tetgen${version}.tar.gz";
+    sha256 = "1www3x2r6r7pck43ismlwy82x0j6xj2qiwvfs2pn687gsmhlh4ad";
   };
 
   installPhase = ''
@@ -14,8 +15,9 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
+    inherit version;
     description = "Quality Tetrahedral Mesh Generator and 3D Delaunay Triangulator";
     homepage = "http://tetgen.org/";
-    license = stdenv.lib.licenses.mit;
+    license = stdenv.lib.licenses.agpl3Plus;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d22a888a1c2..00a1174d87e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -13676,8 +13676,8 @@ let
     guile = guile_1_8;
   };
 
-  tetgen = callPackage ../applications/science/geometry/tetgen { };
-
+  tetgen = callPackage ../applications/science/geometry/tetgen { }; # AGPL3+
+  tetgen_1_4 = callPackage ../applications/science/geometry/tetgen/1.4.nix { }; # MIT
 
   ### SCIENCE/BIOLOGY
 

From c4a2f4f4b180287cd20380e02bdbc8dfb401c7f1 Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>
Date: Sun, 24 May 2015 15:32:57 +0200
Subject: [PATCH 28/31] darkstat 3.0.718 -> 3.0.719

- Implement tracking of remote ports: shows which ports the host
  is making outgoing connections to. Long time feature request.
- Bugfix: when the capture interface goes down, exit instead of
  busy-looping forever.
- Fix "clock error" due to machine reboot.
- SIGUSR1 now resets the time and bytes reported on the graphs
  page.
- Account for all IP protocols.
- Change the default ports_max to only twice the default
  ports_keep.
---
 pkgs/tools/networking/darkstat/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/networking/darkstat/default.nix b/pkgs/tools/networking/darkstat/default.nix
index af15f6a62e5..bc48bb6cf47 100644
--- a/pkgs/tools/networking/darkstat/default.nix
+++ b/pkgs/tools/networking/darkstat/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, libpcap, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.718";
+  version = "3.0.719";
   name = "darkstat-${version}";
 
   src = fetchurl {
     url = "${meta.homepage}/${name}.tar.bz2";
-    sha256 = "1zxd4bxdfk1pjpcxhrcp54l991g0lljl4sr312nsd7p8yi9kwbv8";
+    sha256 = "1mzddlim6dhd7jhr4smh0n2fa511nvyjhlx76b03vx7phnar1bxf";
   };
 
   buildInputs = [ libpcap zlib ];

From 8d98f626a1a46d745e23d421888f5aed455cbd67 Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>
Date: Fri, 22 May 2015 11:30:39 +0200
Subject: [PATCH 29/31] statifier 1.6.15 -> 1.7.3

Also switch to mkDerivation and fix build on amd64.
---
 pkgs/os-specific/linux/statifier/default.nix | 32 ++++++++------------
 pkgs/top-level/all-packages.nix              |  2 +-
 2 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/pkgs/os-specific/linux/statifier/default.nix b/pkgs/os-specific/linux/statifier/default.nix
index b4e37a36ff5..0e1ecdd6d7d 100644
--- a/pkgs/os-specific/linux/statifier/default.nix
+++ b/pkgs/os-specific/linux/statifier/default.nix
@@ -1,31 +1,25 @@
-a :  
-let 
-  fetchurl = a.fetchurl;
+{ stdenv, fetchurl, gcc_multi, glibc_multi }:
+
+let version = "1.7.3"; in
+stdenv.mkDerivation {
+  name = "statifier-${version}";
 
-  version = a.lib.attrByPath ["version"] "1.6.15" a; 
-  buildInputs = with a; [
-    
-  ];
-in
-rec {
   src = fetchurl {
     url = "mirror://sourceforge/statifier/statifier-${version}.tar.gz";
-    sha256 = "0lhdbp7hc15nn6r31yxx7i993a5k8926n5r6j2gi2vvkmf1hciqf";
+    sha256 = "0jc67kq3clkdwvahpr2bjp2zix4j7z7z8b7bcn1b3g3sybh1cbd6";
   };
 
-  inherit buildInputs;
-  configureFlags = [];
+  buildInputs = [ gcc_multi glibc_multi ];
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["fixPaths" "doMakeInstall"];
+  phaseNames = [ "patchPhase" "installPhase" ];
 
-  fixPaths = a.fullDepEntry (''
+  postPatch = ''
     sed -e s@/usr/@"$out/"@g -i */Makefile src/statifier
-    sed -e s@/bin/bash@"$shell"@g -i src/*.sh
-  '') ["minInit" "doUnpack"];
+    sed -e s@/bin/bash@"${stdenv.shell}"@g -i src/*.sh
+  '';
       
-  name = "statifier-" + version;
-  meta = {
+  meta = with stdenv.lib; {
     description = "Tool for creating static Linux binaries";
+    platforms = with platforms; [ linux ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 00a1174d87e..97942ed956f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9811,7 +9811,7 @@ let
 
   smem = callPackage ../os-specific/linux/smem { };
 
-  statifier = builderDefsPackage (import ../os-specific/linux/statifier) { };
+  statifier = callPackage ../os-specific/linux/statifier { };
 
   spl = callPackage ../os-specific/linux/spl {
     configFile = "user";

From d808f5b3e669e9924a5d44ee3a966e94e92c8f3b Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Mon, 25 May 2015 14:55:06 +0200
Subject: [PATCH 30/31] cabal2nix: update to version 20150525

---
 pkgs/development/tools/haskell/cabal2nix/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix
index 73b11508374..d14e2272614 100644
--- a/pkgs/development/tools/haskell/cabal2nix/default.nix
+++ b/pkgs/development/tools/haskell/cabal2nix/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "cabal2nix";
-  version = "20150518";
+  version = "20150525";
   src = fetchgit {
     url = "http://github.com/NixOS/cabal2nix.git";
-    rev = "bf850da9044b16efb9ef06a05c645fa981513444";
-    sha256 = "0kwiwakff1iaglf7mfvz096smqi73pgcfd975dvp5w1cd8yazd73";
+    rev = "a7998916868af0d09882468b3e43f5854082860f";
+    sha256 = "07bz2z4ramrs2dmvvf6a82fliq51m61c11vmhkkz31nr09l25k6y";
     deepClone = true;
   };
   isExecutable = true;

From 161fdec0f5cd035c5999ad2863ddd25ef7e2136b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edward=20Tj=C3=B6rnhammar?= <ed@cflags.cc>
Date: Mon, 25 May 2015 15:03:37 +0200
Subject: [PATCH 31/31] tidy-html5: added package, also provides libtidy5

---
 pkgs/tools/text/tidy-html5/default.nix | 24 ++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix        |  2 ++
 2 files changed, 26 insertions(+)
 create mode 100644 pkgs/tools/text/tidy-html5/default.nix

diff --git a/pkgs/tools/text/tidy-html5/default.nix b/pkgs/tools/text/tidy-html5/default.nix
new file mode 100644
index 00000000000..e2651e20293
--- /dev/null
+++ b/pkgs/tools/text/tidy-html5/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, cmake, fetchFromGitHub, ... }:
+
+stdenv.mkDerivation rec {
+
+  name = "tidy-html5";
+  version = "4.9.30";
+
+  src = fetchFromGitHub {
+    owner = "htacg";
+    repo = "tidy-html5";
+    rev = version;
+    sha256 = "0hd4c23352r5lnh23mx137wb4mkxcjdrl1dy8kgghszik5fprs3s";
+  };
+
+  buildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "The granddaddy of HTML tools, with support for modern standards";
+    homepage = "http://www.html-tidy.org/";
+    license = licenses.w3c;
+    maintainers = with maintainers; [ edwtjo ];
+  };
+
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 97942ed956f..e55aa3b76b3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3122,6 +3122,8 @@ let
 
   tftp_hpa = callPackage ../tools/networking/tftp-hpa {};
 
+  tidy-html5 = callPackage ../tools/text/tidy-html5 { };
+
   tigervnc = callPackage ../tools/admin/tigervnc {
     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
       xorg.fontbhlucidatypewriter75dpi ];