summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE.md16
-rw-r--r--lib/maintainers.nix1
-rw-r--r--lib/strings.nix2
-rw-r--r--nixos/doc/manual/installation/installing-usb.xml16
-rw-r--r--nixos/doc/manual/release-notes/rl-1603.xml127
-rw-r--r--nixos/modules/config/pulseaudio.nix28
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl2
-rw-r--r--nixos/modules/misc/ids.nix4
-rw-r--r--nixos/modules/module-list.nix3
-rw-r--r--nixos/modules/programs/ssh.nix1
-rw-r--r--nixos/modules/services/backup/crashplan.nix2
-rw-r--r--nixos/modules/services/network-filesystems/tahoe.nix286
-rw-r--r--nixos/modules/services/networking/mfi.nix90
-rw-r--r--nixos/modules/services/networking/syncthing.nix33
-rw-r--r--nixos/modules/services/system/dbus.nix24
-rw-r--r--nixos/modules/system/boot/stage-1.nix4
-rw-r--r--nixos/modules/virtualisation/ec2-amis.nix92
-rw-r--r--nixos/modules/virtualisation/xe-guest-utilities.nix52
-rw-r--r--pkgs/applications/audio/spotify/default.nix4
-rw-r--r--pkgs/applications/backup/crashplan/default.nix8
-rw-r--r--pkgs/applications/editors/atom/default.nix4
-rw-r--r--pkgs/applications/misc/albert/default.nix8
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/mediainfo-gui/default.nix4
-rw-r--r--pkgs/applications/misc/mediainfo/default.nix4
-rw-r--r--pkgs/applications/misc/timewarrior/default.nix25
-rw-r--r--pkgs/applications/networking/browsers/firefox/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/firefox/wrapper.nix4
-rw-r--r--pkgs/applications/networking/cluster/mesos/default.nix4
-rw-r--r--pkgs/applications/networking/irc/irssi/default.nix10
-rw-r--r--pkgs/applications/office/gnucash/2.6.nix3
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix65
-rw-r--r--pkgs/applications/science/logic/satallax/default.nix107
-rw-r--r--pkgs/applications/science/molecular-dynamics/lammps/default.nix55
-rw-r--r--pkgs/applications/video/kodi/plugins.nix6
-rw-r--r--pkgs/applications/video/qgifer/default.nix25
-rw-r--r--pkgs/applications/virtualization/virtinst/default.nix2
-rw-r--r--pkgs/build-support/setup-hooks/use-old-cxx-abi.sh1
-rw-r--r--pkgs/build-support/vm/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/rest/default.nix4
-rw-r--r--pkgs/development/compilers/abc/default.nix38
-rw-r--r--pkgs/development/compilers/fsharp/default.nix4
-rw-r--r--pkgs/development/interpreters/elixir/default.nix4
-rw-r--r--pkgs/development/interpreters/erlang/R17.nix8
-rw-r--r--pkgs/development/interpreters/jython/default.nix4
-rw-r--r--pkgs/development/interpreters/php/default.nix4
-rw-r--r--pkgs/development/libraries/freeimage/default.nix10
-rw-r--r--pkgs/development/libraries/imlib2/default.nix8
-rw-r--r--pkgs/development/libraries/imlib2/giflib51.patch64
-rw-r--r--pkgs/development/libraries/libmediainfo/default.nix4
-rw-r--r--pkgs/development/libraries/log4cxx/default.nix3
-rw-r--r--pkgs/development/libraries/openldap/default.nix16
-rw-r--r--pkgs/development/libraries/science/math/openblas/0.2.14.nix65
-rw-r--r--pkgs/development/libraries/skalibs/default.nix13
-rw-r--r--pkgs/development/libraries/v8/3.14.nix28
-rw-r--r--pkgs/development/libraries/v8/fix-GetLocalizedMessage-usage.patch27
-rw-r--r--pkgs/development/python-modules/sphinx-fix-tests-with-pygments-2.1.patch63
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix18
-rw-r--r--pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix2
-rw-r--r--pkgs/development/tools/galen/default.nix4
-rw-r--r--pkgs/development/tools/misc/distcc/default.nix5
-rw-r--r--pkgs/development/web/nodejs/v5.nix4
-rw-r--r--pkgs/games/steam/chrootenv.nix5
-rw-r--r--pkgs/games/trigger/default.nix40
-rw-r--r--pkgs/games/trigger/search.patch14
-rw-r--r--pkgs/misc/vim-plugins/default.nix22
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names3
-rw-r--r--pkgs/os-specific/linux/s6-linux-utils/default.nix4
-rw-r--r--pkgs/servers/mfi/default.nix28
-rw-r--r--pkgs/servers/nosql/mongodb/2.4.8.nix45
-rw-r--r--pkgs/shells/oh-my-zsh/default.nix6
-rw-r--r--pkgs/shells/zsh/default.nix10
-rw-r--r--pkgs/stdenv/adapters.nix1
-rw-r--r--pkgs/tools/X11/primus/default.nix9
-rw-r--r--pkgs/tools/backup/partimage/default.nix8
-rw-r--r--pkgs/tools/filesystems/bindfs/default.nix3
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--pkgs/tools/filesystems/davfs2/davfs2-install.patch49
-rw-r--r--pkgs/tools/filesystems/davfs2/default.nix8
-rw-r--r--pkgs/tools/filesystems/grive2/default.nix25
-rw-r--r--pkgs/tools/misc/bandwidth/default.nix12
-rw-r--r--pkgs/tools/misc/execline/default.nix8
-rw-r--r--pkgs/tools/misc/s6-portable-utils/default.nix7
-rw-r--r--pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--pkgs/tools/networking/openssh/default.nix4
-rw-r--r--pkgs/tools/networking/openssh/fix-host-key-algorithms-plus.patch52
-rw-r--r--pkgs/tools/networking/s6-dns/default.nix8
-rw-r--r--pkgs/tools/networking/s6-networking/default.nix7
-rw-r--r--pkgs/tools/security/gnupg/20.nix4
-rw-r--r--pkgs/tools/security/gnupg/gpgkey2ssh-20.patch2
-rw-r--r--pkgs/tools/system/s6-rc/default.nix8
-rw-r--r--pkgs/tools/system/s6/default.nix8
-rw-r--r--pkgs/tools/virtualization/xe-guest-utilities/default.nix75
-rw-r--r--pkgs/tools/virtualization/xe-guest-utilities/ip-address.patch16
-rw-r--r--pkgs/top-level/all-packages.nix71
-rw-r--r--pkgs/top-level/go-packages.nix8
-rw-r--r--pkgs/top-level/perl-packages.nix2
-rw-r--r--pkgs/top-level/python-packages.nix345
99 files changed, 1758 insertions, 705 deletions
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 327959fe7a3c..5d99147051f1 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -1,17 +1,13 @@
-## Basic info
+## Issue description
 
-To make sure that we are on the same page:
 
-* Kernel: (run `uname -a`)
-* System: (NixOS: `nixos-version`, Ubuntu/Fedora: `lsb_release -a`, ...)
-* Nix version: (run `nix-env --version`)
-* Nixpkgs version: (run `nix-instantiate --eval '<nixpkgs>' -A lib.nixpkgsVersion`)
 
-## Describe your issue here
+### Steps to reproduce
 
-### Expected result
 
-### Actual result
 
-### Steps to reproduce
+## Technical details
 
+* System: (NixOS: `nixos-version`, Ubuntu/Fedora: `lsb_release -a`, ...)
+* Nix version: (run `nix-env --version`)
+* Nixpkgs version: (run `nix-instantiate --eval '<nixpkgs>' -A lib.nixpkgsVersion`)
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 12c8c2369b4e..ae97005c6550 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -51,6 +51,7 @@
   bdimcheff = "Brandon Dimcheff <brandon@dimcheff.com>";
   benley = "Benjamin Staffin <benley@gmail.com>";
   bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>";
+  benwbooth = "Ben Booth <benwbooth@gmail.com>";
   berdario = "Dario Bertini <berdario@gmail.com>";
   bergey = "Daniel Bergey <bergey@teallabs.org>";
   bjg = "Brian Gough <bjg@gnu.org>";
diff --git a/lib/strings.nix b/lib/strings.nix
index a2a4be11e1b8..01a6f181d038 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -258,7 +258,7 @@ rec {
   /* Cut a string with a separator and produces a list of strings which
      were separated by this separator.
 
-     NOTE: this function is not performant and should be avoided
+     NOTE: this function is not performant and should never be used.
 
      Example:
        splitString "." "foo.bar.baz"
diff --git a/nixos/doc/manual/installation/installing-usb.xml b/nixos/doc/manual/installation/installing-usb.xml
index 5def6e8753fe..a4b5dafbed16 100644
--- a/nixos/doc/manual/installation/installing-usb.xml
+++ b/nixos/doc/manual/installation/installing-usb.xml
@@ -7,10 +7,18 @@
 <title>Booting from a USB Drive</title>
 
 <para>For systems without CD drive, the NixOS live CD can be booted from
-a USB stick. For non-UEFI installations,
-<link xlink:href="http://unetbootin.sourceforge.net/">unetbootin</link>
-will work. For UEFI installations, you should mount the ISO, copy its contents
-verbatim to your drive, then either:
+a USB stick. You can use the <command>dd</command> utility to write the image:
+<command>dd if=<replaceable>path-to-image</replaceable>
+of=<replaceable>/dev/sdb</replaceable></command>. Be careful about specifying the
+correct drive; you can use the <command>lsblk</command> command to get a list of
+block devices.</para>
+
+<para>The <command>dd</command> utility will write the image verbatim to the drive,
+making it the recommended option for both UEFI and non-UEFI installations. For
+non-UEFI installations, you can alternatively use
+<link xlink:href="http://unetbootin.sourceforge.net/">unetbootin</link>. If you
+cannot use <command>dd</command> for a UEFI installation, you can also mount the
+ISO, copy its contents verbatim to your drive, then either:
 
 <itemizedlist>
   <listitem>
diff --git a/nixos/doc/manual/release-notes/rl-1603.xml b/nixos/doc/manual/release-notes/rl-1603.xml
index 476540641639..faee3a407dae 100644
--- a/nixos/doc/manual/release-notes/rl-1603.xml
+++ b/nixos/doc/manual/release-notes/rl-1603.xml
@@ -4,7 +4,7 @@
          version="5.0"
          xml:id="sec-release-16.03">
 
-<title>Release 16.03 (“Emu”, 2016/03/??)</title>
+<title>Release 16.03 (“Emu”, 2016/03/31)</title>
 
 <para>In addition to numerous new and upgraded packages, this release
 has the following highlights:</para>
@@ -12,14 +12,48 @@ has the following highlights:</para>
 <itemizedlist>
 
   <listitem>
-    <para>Firefox and similar browsers are now <emphasis>wrapped by default</emphasis>.
-    The package and attribute names are plain <literal>firefox</literal>
-    or <literal>midori</literal>, etc.  Backward-compatibility attributes were set up,
-    but note that <command>nix-env -u</command> will <emphasis>not</emphasis> update
-    your current <literal>firefox-with-plugins</literal>;
-    you have to uninstall it and install <literal>firefox</literal> instead.
-    More discussion is <link xlink:href="https://github.com/NixOS/nixpkgs/pull/12299">
-    on the PR</link>.  </para>
+    <para>Systemd 229, bringing <link
+    xlink:href="https://github.com/systemd/systemd/blob/v229/NEWS">numerous
+    improvements</link> over 217.</para>
+  </listitem>
+
+  <listitem>
+    <para>Linux 4.4 (was 3.18).</para>
+  </listitem>
+
+  <listitem>
+    <para>GCC 5.3 (was 4.9). Note that GCC 5 <link
+    xlink:href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html">changes
+    the C++ ABI in an incompatible way</link>; this may cause problems
+    if you try to link objects compiled with different versions of
+    GCC.</para>
+  </listitem>
+
+  <listitem>
+    <para>Glibc 2.23 (was 2.21).</para>
+  </listitem>
+
+  <listitem>
+    <para>Binutils 2.26 (was 2.23.1). See #909</para>
+  </listitem>
+
+  <listitem>
+    <para>Improved support for ensuring <link
+    xlink:href="https://reproducible-builds.org/">bitwise reproducible
+    builds</link>. For example, <literal>stdenv</literal> now sets the
+    environment variable <envar
+    xlink:href="https://reproducible-builds.org/specs/source-date-epoch/">SOURCE_DATE_EPOCH</envar>
+    to a deterministic value, and Nix has <link
+    xlink:href="http://nixos.org/nix/manual/#ssec-relnotes-1.11">gained
+    an option</link> to repeat a build a number of times to test
+    determinism. An ongoing project, the goal of exact reproducibility
+    is to allow binaries to be verified independently (e.g., a user
+    might only trust binaries that appear in three independent binary
+    caches).</para>
+  </listitem>
+
+  <listitem>
+    <para>Perl 5.22.</para>
   </listitem>
 
 </itemizedlist>
@@ -28,10 +62,57 @@ has the following highlights:</para>
 
   <itemizedlist>
     <listitem><para><literal>services/monitoring/longview.nix</literal></para></listitem>
+    <listitem><para><literal>hardware/video/webcam/facetimehd.nix</literal></para></listitem>
+    <listitem><para><literal>i18n/inputMethod/default.nix</literal></para></listitem>
+    <listitem><para><literal>i18n/inputMethod/fcitx.nix</literal></para></listitem>
+    <listitem><para><literal>i18n/inputMethod/ibus.nix</literal></para></listitem>
+    <listitem><para><literal>i18n/inputMethod/nabi.nix</literal></para></listitem>
+    <listitem><para><literal>i18n/inputMethod/uim.nix</literal></para></listitem>
+    <listitem><para><literal>programs/fish.nix</literal></para></listitem>
+    <listitem><para><literal>security/acme.nix</literal></para></listitem>
+    <listitem><para><literal>security/audit.nix</literal></para></listitem>
+    <listitem><para><literal>security/oath.nix</literal></para></listitem>
+    <listitem><para><literal>services/hardware/irqbalance.nix</literal></para></listitem>
+    <listitem><para><literal>services/mail/dspam.nix</literal></para></listitem>
+    <listitem><para><literal>services/mail/opendkim.nix</literal></para></listitem>
+    <listitem><para><literal>services/mail/postsrsd.nix</literal></para></listitem>
+    <listitem><para><literal>services/mail/rspamd.nix</literal></para></listitem>
+    <listitem><para><literal>services/mail/rmilter.nix</literal></para></listitem>
+    <listitem><para><literal>services/misc/autofs.nix</literal></para></listitem>
+    <listitem><para><literal>services/misc/bepasty.nix</literal></para></listitem>
+    <listitem><para><literal>services/misc/calibre-server.nix</literal></para></listitem>
+    <listitem><para><literal>services/misc/cfdyndns.nix</literal></para></listitem>
+    <listitem><para><literal>services/misc/gammu-smsd.nix</literal></para></listitem>
+    <listitem><para><literal>services/misc/mathics.nix</literal></para></listitem>
+    <listitem><para><literal>services/misc/matrix-synapse.nix</literal></para></listitem>
+    <listitem><para><literal>services/misc/octoprint.nix</literal></para></listitem>
+    <listitem><para><literal>services/monitoring/hdaps.nix</literal></para></listitem>
+    <listitem><para><literal>services/monitoring/heapster.nix</literal></para></listitem>
+    <listitem><para><literal>services/monitoring/longview.nix</literal></para></listitem>
+    <listitem><para><literal>services/network-filesystems/netatalk.nix</literal></para></listitem>
+    <listitem><para><literal>services/network-filesystems/xtreemfs.nix</literal></para></listitem>
+    <listitem><para><literal>services/networking/autossh.nix</literal></para></listitem>
+    <listitem><para><literal>services/networking/dnschain.nix</literal></para></listitem>
+    <listitem><para><literal>services/networking/gale.nix</literal></para></listitem>
+    <listitem><para><literal>services/networking/miniupnpd.nix</literal></para></listitem>
+    <listitem><para><literal>services/networking/namecoind.nix</literal></para></listitem>
+    <listitem><para><literal>services/networking/ostinato.nix</literal></para></listitem>
     <listitem><para><literal>services/networking/pdnsd.nix</literal></para></listitem>
-    <listitem><para><literal>services/web-apps/pump.io.nix</literal></para></listitem>
+    <listitem><para><literal>services/networking/shairport-sync.nix</literal></para></listitem>
+    <listitem><para><literal>services/networking/supplicant.nix</literal></para></listitem>
+    <listitem><para><literal>services/search/kibana.nix</literal></para></listitem>
     <listitem><para><literal>services/security/haka.nix</literal></para></listitem>
-    <listitem><para><literal>i18n/inputMethod/default.nix</literal></para></listitem>
+    <listitem><para><literal>services/security/physlock.nix</literal></para></listitem>
+    <listitem><para><literal>services/web-apps/pump.io.nix</literal></para></listitem>
+    <listitem><para><literal>services/x11/hardware/libinput.nix</literal></para></listitem>
+    <listitem><para><literal>services/x11/window-managers/windowlab.nix</literal></para></listitem>
+    <listitem><para><literal>system/boot/initrd-network.nix</literal></para></listitem>
+    <listitem><para><literal>system/boot/initrd-ssh.nix</literal></para></listitem>
+    <listitem><para><literal>system/boot/loader/loader.nix</literal></para></listitem>
+    <listitem><para><literal>system/boot/networkd.nix</literal></para></listitem>
+    <listitem><para><literal>system/boot/resolved.nix</literal></para></listitem>
+    <listitem><para><literal>virtualisation/lxd.nix</literal></para></listitem>
+    <listitem><para><literal>virtualisation/rkt.nix</literal></para></listitem>
   </itemizedlist>
 </para>
 
@@ -39,6 +120,22 @@ has the following highlights:</para>
 following incompatible changes:</para>
 
 <itemizedlist>
+
+  <listitem>
+    <para>We no longer produce graphical ISO images and VirtualBox
+    images for <literal>i686-linux</literal>. A minimal ISO image is
+    still provided.</para>
+  </listitem>
+
+  <listitem>
+    <para>Firefox and similar browsers are now <emphasis>wrapped by default</emphasis>.
+    The package and attribute names are plain <literal>firefox</literal>
+    or <literal>midori</literal>, etc.  Backward-compatibility attributes were set up,
+    but note that <command>nix-env -u</command> will <emphasis>not</emphasis> update
+    your current <literal>firefox-with-plugins</literal>;
+    you have to uninstall it and install <literal>firefox</literal> instead.</para>
+  </listitem>
+
   <listitem>
     <para><command>wmiiSnap</command> has been replaced with
     <command>wmii_hg</command>, but
@@ -68,7 +165,7 @@ following incompatible changes:</para>
 
 <programlisting><![CDATA[
 {
-  imports = [ <nixos/modules/services/misc/gitit.nix> ];
+  imports = [ <nixpkgs/nixos/modules/services/misc/gitit.nix> ];
 }
 ]]></programlisting>
 
@@ -292,14 +389,18 @@ services.syncthing = {
 
 
 <para>Other notable improvements:
+
 <itemizedlist>
+
+  <!--
   <listitem>
     <para>The <command>command-not-found</command> hook was extended.
     Apart from <literal>$NIX_AUTO_INSTALL</literal> variable,
     it newly also checks for <literal>$NIX_AUTO_RUN</literal>
     which causes it to directly run the missing commands via
-    <command>nix-shell</command> (without installing anything). </para>
+    <command>nix-shell</command> (without installing anything).</para>
   </listitem>
+  -->
 
   <listitem>
     <para><literal>ejabberd</literal> module is brought back and now works on
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix
index 179e826ba059..8b4ad796d0d5 100644
--- a/nixos/modules/config/pulseaudio.nix
+++ b/nixos/modules/config/pulseaudio.nix
@@ -150,6 +150,29 @@ in {
         target = "pulse/default.pa";
         source = cfg.configFile;
       };
+
+      systemd.user = {
+        services.pulseaudio = {
+          description = "PulseAudio Server";
+          # NixOS doesn't support "Also" so we bring it in manually
+          wantedBy = [ "default.target" ];
+          serviceConfig = {
+            Type = "notify";
+            ExecStart = "${cfg.package}/bin/pulseaudio --daemonize=no";
+            Restart = "on-failure";
+          };
+        };
+
+        sockets.pulseaudio = {
+          description = "PulseAudio Socket";
+          wantedBy = [ "sockets.target" ];
+          socketConfig = {
+            Priority = 6;
+            Backlog = 5;
+            ListenStream = "%t/pulse/native";
+          };
+        };
+      };
     })
 
     (mkIf systemWide {
@@ -171,8 +194,9 @@ in {
         before = [ "sound.target" ];
         environment.PULSE_RUNTIME_PATH = stateDir;
         serviceConfig = {
-          ExecStart = "${cfg.package}/bin/pulseaudio -D --log-level=${cfg.daemon.logLevel} --system --use-pid-file -n --file=${cfg.configFile}";
-          PIDFile = "${stateDir}/pid";
+          Type = "notify";
+          ExecStart = "${cfg.package}/bin/pulseaudio --daemonize=no --log-level=${cfg.daemon.logLevel} --system -n --file=${cfg.configFile}";
+          Restart = "on-failure";
         };
       };
     })
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index ec880e084726..d3005cdfd6f7 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -165,7 +165,7 @@ sub pciCheck {
         ) )
     {
         # we need e.g. brcmfmac43602-pcie.bin
-        push @imports, "<nixos/modules/hardware/network/broadcom-43xx.nix>";
+        push @imports, "<nixpkgs/nixos/modules/hardware/network/broadcom-43xx.nix>";
     }
 
     # Can't rely on $module here, since the module may not be loaded
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index f71d1e3fe200..1e14fe655fc0 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -257,6 +257,8 @@
       radicale = 234;
       hydra-queue-runner = 235;
       hydra-www = 236;
+      syncthing = 237;
+      mfi = 238;
 
       # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
 
@@ -485,6 +487,8 @@
       pdnsd = 229;
       octoprint = 230;
       radicale = 234;
+      syncthing = 237;
+      #mfi = 238; # unused
 
       # When adding a gid, make sure it doesn't match an existing
       # uid. Users and groups with the same name should have equal
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 5b7769bb12d1..284b2b9f8824 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -283,6 +283,7 @@
   ./services/network-filesystems/openafs-client/default.nix
   ./services/network-filesystems/rsyncd.nix
   ./services/network-filesystems/samba.nix
+  ./services/network-filesystems/tahoe.nix
   ./services/network-filesystems/diod.nix
   ./services/network-filesystems/u9fs.nix
   ./services/network-filesystems/yandex-disk.nix
@@ -333,6 +334,7 @@
   ./services/networking/lambdabot.nix
   ./services/networking/libreswan.nix
   ./services/networking/mailpile.nix
+  ./services/networking/mfi.nix
   ./services/networking/mjpg-streamer.nix
   ./services/networking/minidlna.nix
   ./services/networking/miniupnpd.nix
@@ -542,4 +544,5 @@
   ./virtualisation/virtualbox-host.nix
   ./virtualisation/vmware-guest.nix
   ./virtualisation/xen-dom0.nix
+  ./virtualisation/xe-guest-utilities.nix
 ]
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index 1ad45f468030..cc835081c9f9 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -189,6 +189,7 @@ in
 
         # Allow DSA keys for now. (These were deprecated in OpenSSH 7.0.)
         PubkeyAcceptedKeyTypes +ssh-dss
+        HostKeyAlgorithms +ssh-dss
 
         ${cfg.extraConfig}
       '';
diff --git a/nixos/modules/services/backup/crashplan.nix b/nixos/modules/services/backup/crashplan.nix
index 46d4c5192d9e..94aa3b17b663 100644
--- a/nixos/modules/services/backup/crashplan.nix
+++ b/nixos/modules/services/backup/crashplan.nix
@@ -50,7 +50,7 @@ with lib;
         ensureDir ${crashplan.vardir}/log 777
         cp -avn ${crashplan}/conf.template/* ${crashplan.vardir}/conf
         for x in app.asar bin EULA.txt install.vars lang lib libjniwrap64.so libjniwrap.so libjtux64.so libjtux.so libmd564.so libmd5.so share skin upgrade; do
-          if [ -e $x ]; then
+          if [ -e ${crashplan.vardir}/$x ]; then
             true;
           else
             ln -s ${crashplan}/$x ${crashplan.vardir}/$x;
diff --git a/nixos/modules/services/network-filesystems/tahoe.nix b/nixos/modules/services/network-filesystems/tahoe.nix
new file mode 100644
index 000000000000..ab441339a560
--- /dev/null
+++ b/nixos/modules/services/network-filesystems/tahoe.nix
@@ -0,0 +1,286 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.tahoe;
+in
+  {
+    options.services.tahoe = {
+      introducers = mkOption {
+        default = {};
+        type = types.loaOf types.optionSet;
+        description = ''
+          The Tahoe introducers.
+        '';
+        options = {
+          nickname = mkOption {
+            type = types.str;
+            description = ''
+              The nickname of this Tahoe introducer.
+            '';
+          };
+          tub.port = mkOption {
+            default = 3458;
+            type = types.int;
+            description = ''
+              The port on which the introducer will listen.
+            '';
+          };
+          package = mkOption {
+            default = pkgs.tahoelafs;
+            defaultText = "pkgs.tahoelafs";
+            type = types.package;
+            example = literalExample "pkgs.tahoelafs";
+            description = ''
+              The package to use for the Tahoe LAFS daemon.
+            '';
+          };
+        };
+      };
+      nodes = mkOption {
+        default = {};
+        type = types.loaOf types.optionSet;
+        description = ''
+          The Tahoe nodes.
+        '';
+        options = {
+          nickname = mkOption {
+            type = types.str;
+            description = ''
+              The nickname of this Tahoe node.
+            '';
+          };
+          tub.port = mkOption {
+            default = 3457;
+            type = types.int;
+            description = ''
+              The port on which the tub will listen.
+
+              This is the correct setting to tweak if you want Tahoe's storage
+              system to listen on a different port.
+            '';
+          };
+          web.port = mkOption {
+            default = 3456;
+            type = types.int;
+            description = ''
+              The port on which the Web server will listen.
+
+              This is the correct setting to tweak if you want Tahoe's WUI to
+              listen on a different port.
+            '';
+          };
+          client.introducer = mkOption {
+            default = null;
+            type = types.nullOr types.str;
+            description = ''
+              The furl for a Tahoe introducer node.
+
+              Like all furls, keep this safe and don't share it.
+            '';
+          };
+          client.helper = mkOption {
+            default = null;
+            type = types.nullOr types.str;
+            description = ''
+              The furl for a Tahoe helper node.
+
+              Like all furls, keep this safe and don't share it.
+            '';
+          };
+          client.shares.needed = mkOption {
+            default = 3;
+            type = types.int;
+            description = ''
+              The number of shares required to reconstitute a file.
+            '';
+          };
+          client.shares.happy = mkOption {
+            default = 7;
+            type = types.int;
+            description = ''
+              The number of distinct storage nodes required to store
+              a file.
+            '';
+          };
+          client.shares.total = mkOption {
+            default = 10;
+            type = types.int;
+            description = ''
+              The number of shares required to store a file.
+            '';
+          };
+          storage.enable = mkEnableOption "storage service";
+          storage.reservedSpace = mkOption {
+            default = "1G";
+            type = types.str;
+            description = ''
+              The amount of filesystem space to not use for storage.
+            '';
+          };
+          helper.enable = mkEnableOption "helper service";
+          package = mkOption {
+            default = pkgs.tahoelafs;
+            defaultText = "pkgs.tahoelafs";
+            type = types.package;
+            example = literalExample "pkgs.tahoelafs";
+            description = ''
+              The package to use for the Tahoe LAFS daemon.
+            '';
+          };
+        };
+      };
+    };
+    config = mkMerge [
+      (mkIf (cfg.introducers != {}) {
+        environment = {
+          etc = flip mapAttrs' cfg.introducers (node: settings:
+            nameValuePair "tahoe-lafs/introducer-${node}.cfg" {
+              mode = "0444";
+              text = ''
+                # This configuration is generated by Nix. Edit at your own
+                # peril; here be dragons.
+
+                [node]
+                nickname = ${settings.nickname}
+                tub.port = ${toString settings.tub.port}
+              '';
+            });
+          # Actually require Tahoe, so that we will have it installed.
+          systemPackages = flip mapAttrsToList cfg.introducers (node: settings:
+            settings.package
+          );
+        };
+        # Open up the firewall.
+        # networking.firewall.allowedTCPPorts = flip mapAttrsToList cfg.introducers
+        #   (node: settings: settings.tub.port);
+        systemd.services = flip mapAttrs' cfg.introducers (node: settings:
+          let
+            pidfile = "/run/tahoe.introducer-${node}.pid";
+            # This is a directory, but it has no trailing slash. Tahoe commands
+            # get antsy when there's a trailing slash.
+            nodedir = "/var/db/tahoe-lafs/introducer-${node}";
+          in nameValuePair "tahoe.introducer-${node}" {
+            description = "Tahoe LAFS node ${node}";
+            wantedBy = [ "multi-user.target" ];
+            path = [ settings.package ];
+            restartTriggers = [
+              config.environment.etc."tahoe-lafs/introducer-${node}.cfg".source ];
+            serviceConfig = {
+              Type = "simple";
+              PIDFile = pidfile;
+            };
+            preStart = ''
+              if [ \! -d ${nodedir} ]; then
+                mkdir -p /var/db/tahoe-lafs
+                tahoe create-introducer ${nodedir}
+              fi
+
+              # Tahoe has created a predefined tahoe.cfg which we must now
+              # scribble over.
+              # XXX I thought that a symlink would work here, but it doesn't, so
+              # we must do this on every prestart. Fixes welcome.
+              # rm ${nodedir}/tahoe.cfg
+              # ln -s /etc/tahoe-lafs/introducer-${node}.cfg ${nodedir}/tahoe.cfg
+              cp /etc/tahoe-lafs/introducer-${node}.cfg ${nodedir}/tahoe.cfg
+            '';
+            # Believe it or not, Tahoe is very brittle about the order of
+            # arguments to $(tahoe start). The node directory must come first,
+            # and arguments which alter Twisted's behavior come afterwards.
+            script = ''
+              tahoe start ${nodedir} -n -l- --pidfile=${pidfile}
+            '';
+          });
+        users.extraUsers = flip mapAttrs' cfg.introducers (node: _:
+          nameValuePair "tahoe.introducer-${node}" {
+            description = "Tahoe node user for introducer ${node}";
+            isSystemUser = true;
+          });
+      })
+      (mkIf (cfg.nodes != {}) {
+        environment = {
+          etc = flip mapAttrs' cfg.nodes (node: settings:
+            nameValuePair "tahoe-lafs/${node}.cfg" {
+              mode = "0444";
+              text = ''
+                # This configuration is generated by Nix. Edit at your own
+                # peril; here be dragons.
+
+                [node]
+                nickname = ${settings.nickname}
+                tub.port = ${toString settings.tub.port}
+                # This is a Twisted endpoint. Twisted Web doesn't work on
+                # non-TCP. ~ C.
+                web.port = tcp:${toString settings.web.port}
+
+                [client]
+                ${optionalString (settings.client.introducer != null)
+                  "introducer.furl = ${settings.client.introducer}"}
+                ${optionalString (settings.client.helper != null)
+                  "helper.furl = ${settings.client.helper}"}
+
+                shares.needed = ${toString settings.client.shares.needed}
+                shares.happy = ${toString settings.client.shares.happy}
+                shares.total = ${toString settings.client.shares.total}
+
+                [storage]
+                enabled = ${if settings.storage.enable then "true" else "false"}
+                reserved_space = ${settings.storage.reservedSpace}
+
+                [helper]
+                enabled = ${if settings.helper.enable then "true" else "false"}
+              '';
+            });
+          # Actually require Tahoe, so that we will have it installed.
+          systemPackages = flip mapAttrsToList cfg.nodes (node: settings:
+            settings.package
+          );
+        };
+        # Open up the firewall.
+        # networking.firewall.allowedTCPPorts = flip mapAttrsToList cfg.nodes
+        #   (node: settings: settings.tub.port);
+        systemd.services = flip mapAttrs' cfg.nodes (node: settings:
+          let
+            pidfile = "/run/tahoe.${node}.pid";
+            # This is a directory, but it has no trailing slash. Tahoe commands
+            # get antsy when there's a trailing slash.
+            nodedir = "/var/db/tahoe-lafs/${node}";
+          in nameValuePair "tahoe.${node}" {
+            description = "Tahoe LAFS node ${node}";
+            wantedBy = [ "multi-user.target" ];
+            path = [ settings.package ];
+            restartTriggers = [
+              config.environment.etc."tahoe-lafs/${node}.cfg".source ];
+            serviceConfig = {
+              Type = "simple";
+              PIDFile = pidfile;
+            };
+            preStart = ''
+              if [ \! -d ${nodedir} ]; then
+                mkdir -p /var/db/tahoe-lafs
+                tahoe create-node ${nodedir}
+              fi
+
+              # Tahoe has created a predefined tahoe.cfg which we must now
+              # scribble over.
+              # XXX I thought that a symlink would work here, but it doesn't, so
+              # we must do this on every prestart. Fixes welcome.
+              # rm ${nodedir}/tahoe.cfg
+              # ln -s /etc/tahoe-lafs/${node}.cfg ${nodedir}/tahoe.cfg
+              cp /etc/tahoe-lafs/${node}.cfg ${nodedir}/tahoe.cfg
+            '';
+            # Believe it or not, Tahoe is very brittle about the order of
+            # arguments to $(tahoe start). The node directory must come first,
+            # and arguments which alter Twisted's behavior come afterwards.
+            script = ''
+              tahoe start ${nodedir} -n -l- --pidfile=${pidfile}
+            '';
+          });
+        users.extraUsers = flip mapAttrs' cfg.nodes (node: _:
+          nameValuePair "tahoe.${node}" {
+            description = "Tahoe node user for node ${node}";
+            isSystemUser = true;
+          });
+      })
+    ];
+  }
diff --git a/nixos/modules/services/networking/mfi.nix b/nixos/modules/services/networking/mfi.nix
new file mode 100644
index 000000000000..5afb83ed022f
--- /dev/null
+++ b/nixos/modules/services/networking/mfi.nix
@@ -0,0 +1,90 @@
+{ config, lib, pkgs, utils, ... }:
+with lib;
+let
+  name = "Ubiquiti mFi Controller";
+  cfg = config.services.mfi;
+  stateDir = "/var/lib/mfi";
+  # XXX 2 runtime exceptions using jre8: JSPException on GET / ; can't initialize ./data/keystore on first run.
+  cmd = "@${pkgs.jre7}/bin/java java -jar ${stateDir}/lib/ace.jar";
+  mountPoints = [
+    { what = "${pkgs.mfi}/dl"; where = "${stateDir}/dl"; }
+    { what = "${pkgs.mfi}/lib"; where = "${stateDir}/lib"; }
+    { what = "${pkgs.mongodb248}/bin"; where = "${stateDir}/bin"; }
+  ];
+  systemdMountPoints = map (m: "${utils.escapeSystemdPath m.where}.mount") mountPoints;
+  ports = [ 6080 6880 6443 6843 ];
+in
+{
+  options = {
+    services.mfi = {
+      enable = mkEnableOption name;
+      openPorts = mkOption {
+        type = types.bool;
+        default = true;
+        description = "Whether to open TCP ports ${concatMapStrings (a: "${toString a} ") ports}for the services.";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    networking.firewall.allowedTCPPorts = mkIf config.services.mfi.openPorts ports;
+
+    users.users.mfi = {
+      uid = config.ids.uids.mfi;
+      description = "mFi controller daemon user";
+      home = "${stateDir}";
+    };
+
+    # We must create the binary directories as bind mounts instead of symlinks
+    # This is because the controller resolves all symlinks to absolute paths
+    # to be used as the working directory.
+    systemd.mounts = map ({ what, where }: {
+        bindsTo = [ "mfi.service" ];
+        partOf = [ "mfi.service" ];
+        unitConfig.RequiresMountsFor = stateDir;
+        options = "bind";
+        what = what;
+        where = where;
+      }) mountPoints;
+
+    systemd.services.mfi = {
+      description = "mFi controller daemon";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ] ++ systemdMountPoints;
+      partOf = systemdMountPoints;
+      bindsTo = systemdMountPoints;
+      unitConfig.RequiresMountsFor = stateDir;
+
+      preStart = ''
+        # Clear ./webapps each run.
+        rm -rf                               "${stateDir}/webapps"
+        mkdir -p                             "${stateDir}/webapps"
+        ln -s "${pkgs.mfi}/webapps/ROOT.war" "${stateDir}/webapps"
+
+        # Copy initial config only once.
+        test -e "${stateDir}/conf" || cp -ar "${pkgs.mfi}/conf" "${stateDir}/conf"
+        test -e "${stateDir}/data" || cp -ar "${pkgs.mfi}/data" "${stateDir}/data"
+
+        # Fix Permissions.
+        # (Bind-mounts cause errors; ignore exit codes)
+        chown -fR mfi:      "${stateDir}" || true
+        chmod -fR u=rwX,go= "${stateDir}" || true
+      '';
+
+      postStop = ''
+        rm -rf "${stateDir}/webapps"
+      '';
+
+      serviceConfig = {
+        Type = "simple";
+        ExecStart = "${cmd} start";
+        ExecStop = "${cmd} stop";
+        User = "mfi";
+        PermissionsStartOnly = true;
+        UMask = "0077";
+        WorkingDirectory = "${stateDir}";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index 67b90516b996..da9a270f30b6 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -5,6 +5,7 @@ with lib;
 let
 
   cfg = config.services.syncthing;
+  defaultUser = "syncthing";
 
 in
 
@@ -17,6 +18,7 @@ in
     services.syncthing = {
 
       enable = mkOption {
+        type = types.bool;
         default = false;
         description = ''
           Whether to enable the Syncthing, self-hosted open-source alternative
@@ -26,7 +28,8 @@ in
       };
 
       user = mkOption {
-        default = "syncthing";
+        type = types.string;
+        default = defaultUser;
         description = ''
           Syncthing will be run under this user (user must exist,
           this can be your user name).
@@ -34,8 +37,8 @@ in
       };
 
       all_proxy = mkOption {
-        type = types.string;
-        default = "";
+        type = types.nullOr types.string;
+        default = null;
         example = "socks5://address.com:1234";
         description = ''
           Overwrites all_proxy environment variable for the syncthing process to
@@ -45,6 +48,7 @@ in
       };
 
       dataDir = mkOption {
+        type = types.path;
         default = "/var/lib/syncthing";
         description = ''
           Path where the settings and keys will exist.
@@ -71,20 +75,33 @@ in
 
   config = mkIf cfg.enable {
 
+    users = mkIf (cfg.user == defaultUser) {
+      extraUsers."${defaultUser}" =
+        { group = defaultUser;
+          home  = cfg.dataDir;
+          createHome = true;
+          uid = config.ids.uids.syncthing;
+          description = "Syncthing daemon user";
+        };
+
+      extraGroups."${defaultUser}".gid =
+        config.ids.gids.syncthing;
+    };
+
     systemd.services.syncthing =
       {
         description = "Syncthing service";
-        after = [ "network.target" ];
+        after    = [ "network.target" ];
         wantedBy = [ "multi-user.target" ];
         environment = {
           STNORESTART = "yes";  # do not self-restart
           STNOUPGRADE = "yes";
-        } //
-        (config.networking.proxy.envVars) //
-        (if cfg.all_proxy != "" then { all_proxy = cfg.all_proxy; } else {});
+          inherit (cfg) all_proxy;
+        } // config.networking.proxy.envVars;
 
         serviceConfig = {
-          User = "${cfg.user}";
+          User  = cfg.user;
+          Group = optionalString (cfg.user == defaultUser) defaultUser;
           PermissionsStartOnly = true;
           Restart = "on-failure";
           ExecStart = "${pkgs.syncthing}/bin/syncthing -no-browser -home=${cfg.dataDir}";
diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix
index 77427ce9606e..ba34eb25169c 100644
--- a/nixos/modules/services/system/dbus.nix
+++ b/nixos/modules/services/system/dbus.nix
@@ -139,6 +139,30 @@ in
 
     systemd.services.dbus.restartTriggers = [ configDir ];
 
+    systemd.user = {
+      services.dbus = {
+        description = "D-Bus User Message Bus";
+        requires = [ "dbus.socket" ];
+        # NixOS doesn't support "Also" so we pull it in manually
+        # As the .service is supposed to come up at the same time as
+        # the .socket, we use basic.target instead of default.target
+        wantedBy = [ "basic.target" ];
+        serviceConfig = {
+          ExecStart = "${pkgs.dbus_daemon}/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation";
+          ExecReload = "${pkgs.dbus_daemon}/bin/dbus-send --print-reply --session --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig";
+        };
+      };
+
+      sockets.dbus = {
+        description = "D-Bus User Message Bus Socket";
+        socketConfig = {
+          ListenStream = "%t/bus";
+          ExecStartPost = "-${config.systemd.package}/bin/systemctl --user set-environment DBUS_SESSION_BUS_ADDRESS=unix:path=%t/bus";
+        };
+        wantedBy = [ "sockets.target" ];
+      };
+    };
+
     environment.pathsToLink = [ "/etc/dbus-1" "/share/dbus-1" ];
 
   };
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 757d883373ac..7b13a305f035 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -67,6 +67,10 @@ let
         copy_bin_and_libs $BIN
       done
 
+      # Copy modprobe.
+      copy_bin_and_libs ${pkgs.kmod}/bin/kmod
+      ln -sf kmod $out/bin/modprobe
+
       # Copy resize2fs if needed.
       ${optionalString (any (fs: fs.autoResize) (attrValues config.fileSystems)) ''
         # We need mke2fs in the initrd.
diff --git a/nixos/modules/virtualisation/ec2-amis.nix b/nixos/modules/virtualisation/ec2-amis.nix
new file mode 100644
index 000000000000..15ea7bb19448
--- /dev/null
+++ b/nixos/modules/virtualisation/ec2-amis.nix
@@ -0,0 +1,92 @@
+{
+  "14.04".ap-northeast-1.hvm-ebs = "ami-71c6f470";
+  "14.04".ap-northeast-1.pv-ebs = "ami-4dcbf84c";
+  "14.04".ap-northeast-1.pv-s3 = "ami-8fc4f68e";
+  "14.04".ap-southeast-1.hvm-ebs = "ami-da280888";
+  "14.04".ap-southeast-1.pv-ebs = "ami-7a9dbc28";
+  "14.04".ap-southeast-1.pv-s3 = "ami-c4290996";
+  "14.04".ap-southeast-2.hvm-ebs = "ami-ab523e91";
+  "14.04".ap-southeast-2.pv-ebs = "ami-6769055d";
+  "14.04".ap-southeast-2.pv-s3 = "ami-15533f2f";
+  "14.04".eu-central-1.hvm-ebs = "ami-ba0234a7";
+  "14.04".eu-west-1.hvm-ebs = "ami-96cb63e1";
+  "14.04".eu-west-1.pv-ebs = "ami-b48c25c3";
+  "14.04".eu-west-1.pv-s3 = "ami-06cd6571";
+  "14.04".sa-east-1.hvm-ebs = "ami-01b90e1c";
+  "14.04".sa-east-1.pv-ebs = "ami-69e35474";
+  "14.04".sa-east-1.pv-s3 = "ami-61b90e7c";
+  "14.04".us-east-1.hvm-ebs = "ami-58ba3a30";
+  "14.04".us-east-1.pv-ebs = "ami-9e0583f6";
+  "14.04".us-east-1.pv-s3 = "ami-9cbe3ef4";
+  "14.04".us-west-1.hvm-ebs = "ami-0bc3d74e";
+  "14.04".us-west-1.pv-ebs = "ami-8b1703ce";
+  "14.04".us-west-1.pv-s3 = "ami-27ccd862";
+  "14.04".us-west-2.hvm-ebs = "ami-3bf1bf0b";
+  "14.04".us-west-2.pv-ebs = "ami-259bd515";
+  "14.04".us-west-2.pv-s3 = "ami-07094037";
+
+  "14.12".ap-northeast-1.hvm-ebs = "ami-24435f25";
+  "14.12".ap-northeast-1.pv-ebs = "ami-b0425eb1";
+  "14.12".ap-northeast-1.pv-s3 = "ami-fed3c6ff";
+  "14.12".ap-southeast-1.hvm-ebs = "ami-6c765d3e";
+  "14.12".ap-southeast-1.pv-ebs = "ami-6a765d38";
+  "14.12".ap-southeast-1.pv-s3 = "ami-d1bf9183";
+  "14.12".ap-southeast-2.hvm-ebs = "ami-af86f395";
+  "14.12".ap-southeast-2.pv-ebs = "ami-b386f389";
+  "14.12".ap-southeast-2.pv-s3 = "ami-69c5ae53";
+  "14.12".eu-central-1.hvm-ebs = "ami-4a497a57";
+  "14.12".eu-central-1.pv-ebs = "ami-4c497a51";
+  "14.12".eu-central-1.pv-s3 = "ami-60f2c27d";
+  "14.12".eu-west-1.hvm-ebs = "ami-d126a5a6";
+  "14.12".eu-west-1.pv-ebs = "ami-0126a576";
+  "14.12".eu-west-1.pv-s3 = "ami-deda5fa9";
+  "14.12".sa-east-1.hvm-ebs = "ami-2d239e30";
+  "14.12".sa-east-1.pv-ebs = "ami-35239e28";
+  "14.12".sa-east-1.pv-s3 = "ami-81e3519c";
+  "14.12".us-east-1.hvm-ebs = "ami-0c463a64";
+  "14.12".us-east-1.pv-ebs = "ami-ac473bc4";
+  "14.12".us-east-1.pv-s3 = "ami-00e18a68";
+  "14.12".us-west-1.hvm-ebs = "ami-ca534a8f";
+  "14.12".us-west-1.pv-ebs = "ami-3e534a7b";
+  "14.12".us-west-1.pv-s3 = "ami-2905196c";
+  "14.12".us-west-2.hvm-ebs = "ami-fb9dc3cb";
+  "14.12".us-west-2.pv-ebs = "ami-899dc3b9";
+  "14.12".us-west-2.pv-s3 = "ami-cb7f2dfb";
+
+  "15.09".ap-northeast-1.hvm-ebs = "ami-58cac236";
+  "15.09".ap-northeast-1.hvm-s3 = "ami-39c8c057";
+  "15.09".ap-northeast-1.pv-ebs = "ami-5ac9c134";
+  "15.09".ap-northeast-1.pv-s3 = "ami-03cec66d";
+  "15.09".ap-southeast-1.hvm-ebs = "ami-2fc2094c";
+  "15.09".ap-southeast-1.hvm-s3 = "ami-9ec308fd";
+  "15.09".ap-southeast-1.pv-ebs = "ami-95c00bf6";
+  "15.09".ap-southeast-1.pv-s3 = "ami-bfc00bdc";
+  "15.09".ap-southeast-2.hvm-ebs = "ami-996c4cfa";
+  "15.09".ap-southeast-2.hvm-s3 = "ami-3f6e4e5c";
+  "15.09".ap-southeast-2.pv-ebs = "ami-066d4d65";
+  "15.09".ap-southeast-2.pv-s3 = "ami-cc6e4eaf";
+  "15.09".eu-central-1.hvm-ebs = "ami-3f8c6b50";
+  "15.09".eu-central-1.hvm-s3 = "ami-5b836434";
+  "15.09".eu-central-1.pv-ebs = "ami-118c6b7e";
+  "15.09".eu-central-1.pv-s3 = "ami-2c977043";
+  "15.09".eu-west-1.hvm-ebs = "ami-9cf04aef";
+  "15.09".eu-west-1.hvm-s3 = "ami-2bea5058";
+  "15.09".eu-west-1.pv-ebs = "ami-c9e852ba";
+  "15.09".eu-west-1.pv-s3 = "ami-c6f64cb5";
+  "15.09".sa-east-1.hvm-ebs = "ami-6e52df02";
+  "15.09".sa-east-1.hvm-s3 = "ami-1852df74";
+  "15.09".sa-east-1.pv-ebs = "ami-4368e52f";
+  "15.09".sa-east-1.pv-s3 = "ami-f15ad79d";
+  "15.09".us-east-1.hvm-ebs = "ami-84a6a0ee";
+  "15.09".us-east-1.hvm-s3 = "ami-06a7a16c";
+  "15.09".us-east-1.pv-ebs = "ami-a4a1a7ce";
+  "15.09".us-east-1.pv-s3 = "ami-5ba8ae31";
+  "15.09".us-west-1.hvm-ebs = "ami-22c8bb42";
+  "15.09".us-west-1.hvm-s3 = "ami-a2ccbfc2";
+  "15.09".us-west-1.pv-ebs = "ami-10cebd70";
+  "15.09".us-west-1.pv-s3 = "ami-fa30429a";
+  "15.09".us-west-2.hvm-ebs = "ami-ce57b9ae";
+  "15.09".us-west-2.hvm-s3 = "ami-2956b849";
+  "15.09".us-west-2.pv-ebs = "ami-005fb160";
+  "15.09".us-west-2.pv-s3 = "ami-cd55bbad";
+}
diff --git a/nixos/modules/virtualisation/xe-guest-utilities.nix b/nixos/modules/virtualisation/xe-guest-utilities.nix
new file mode 100644
index 000000000000..d703353858c0
--- /dev/null
+++ b/nixos/modules/virtualisation/xe-guest-utilities.nix
@@ -0,0 +1,52 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+  cfg = config.services.xe-guest-utilities;
+in {
+  options = {
+    services.xe-guest-utilities = {
+      enable = mkEnableOption "Whether to enable the Xen guest utilities daemon.";
+    };
+  };
+  config = mkIf cfg.enable {
+    services.udev.packages = [ pkgs.xe-guest-utilities ];
+    systemd.tmpfiles.rules = [ "d /run/xenstored 0755 - - -" ];
+
+    systemd.services.xe-daemon = {
+      description = "xen daemon file";
+      wantedBy    = [ "multi-user.target" ];
+      after = [ "xe-linux-distribution.service" ];
+      requires = [ "proc-xen.mount" ];
+      path = [ pkgs.coreutils pkgs.iproute ];
+      serviceConfig = {
+        PIDFile = "/run/xe-daemon.pid";
+        ExecStart = "${pkgs.xe-guest-utilities}/bin/xe-daemon -p /run/xe-daemon.pid";
+        ExecStop = "${pkgs.procps}/bin/pkill -TERM -F /run/xe-daemon.pid";
+      };
+    };
+
+    systemd.services.xe-linux-distribution = {
+      description = "xen linux distribution service";
+      wantedBy    = [ "multi-user.target" ];
+      before = [ "xend.service" ];
+      path = [ pkgs.xe-guest-utilities pkgs.coreutils pkgs.gawk pkgs.gnused ];
+      serviceConfig = {
+        Type = "simple";
+        RemainAfterExit = "yes";
+        ExecStart = "${pkgs.xe-guest-utilities}/bin/xe-linux-distribution /var/cache/xe-linux-distribution";
+      };
+    };
+
+    systemd.mounts = [
+      { description = "Mount /proc/xen files";
+        what = "xenfs";
+        where = "/proc/xen";
+        type = "xenfs";
+        unitConfig = {
+          ConditionPathExists = "/proc/xen";
+          RefuseManualStop = "true";
+        };
+      }
+    ];
+  };
+}
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 243d1e49c7b7..e1eee1cdd8ec 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -5,7 +5,7 @@
 assert stdenv.system == "x86_64-linux";
 
 let
-  version = "1.0.26.125.g64dc8bc6-14";
+  version = "1.0.26.125.g64dc8bc6-15";
 
   deps = [
     alsaLib
@@ -50,7 +50,7 @@ stdenv.mkDerivation {
   src =
     fetchurl {
       url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
-      sha256 = "09wanpml2a6k8asfc0pd56n7fia37amgsplsan1qdh6dwdzr3rv5";
+      sha256 = "01y4jr1r928251mj9kz1i7x93ya0ky4xaibm0q08q3zjsafianz1";
     };
 
   buildInputs = [ dpkg makeWrapper ];
diff --git a/pkgs/applications/backup/crashplan/default.nix b/pkgs/applications/backup/crashplan/default.nix
index e89de9b4c6aa..b9566e9c535f 100644
--- a/pkgs/applications/backup/crashplan/default.nix
+++ b/pkgs/applications/backup/crashplan/default.nix
@@ -1,13 +1,15 @@
 { stdenv, fetchurl, makeWrapper, jre, cpio, gawk, gnugrep, gnused, procps, swt, gtk2, glib, libXtst }:
 
-let version = "4.6.0";
+let
+  version = "4.6.0";
+  rev = "2"; #tracks unversioned changes that occur on download.code42.com from time to time
 
 in stdenv.mkDerivation rec {
-  name = "crashplan-${version}";
+  name = "crashplan-${version}-r${rev}";
 
   crashPlanArchive = fetchurl {
     url = "https://download.code42.com/installs/linux/install/CrashPlan/CrashPlan_${version}_Linux.tgz";
-    sha256 = "0h9zk6i1pdvl101c8l4v4x6i7q4wkmkqp2dkm0lq7ha96lrvac47";
+    sha256 = "13rmmdj048r8k4v7ig4i6pnvwyzc1vasfgksf070bx6ksklgbq47";
   };
 
   srcs = [ crashPlanArchive ];
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index de857b7a8c6e..33813ca3a660 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -16,11 +16,11 @@ let
   };
 in stdenv.mkDerivation rec {
   name = "atom-${version}";
-  version = "1.6.0";
+  version = "1.6.2";
 
   src = fetchurl {
     url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
-    sha256 = "1izp2fwxk4rrksdbhcaj8fn0aazi7brid72n1vp7f49adrkqqc1b";
+    sha256 = "1kl2pc0smacn4lgk5wwlaiw03rm8b0763vaisgp843p35zzsbc9n";
     name = "${name}.deb";
   };
 
diff --git a/pkgs/applications/misc/albert/default.nix b/pkgs/applications/misc/albert/default.nix
index b6c0feede6cd..5e6931ce78e2 100644
--- a/pkgs/applications/misc/albert/default.nix
+++ b/pkgs/applications/misc/albert/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, qtbase, qtx11extras, makeQtWrapper, muparser, cmake }:
+{ stdenv, fetchFromGitHub, qtbase, qtsvg, qtx11extras, makeQtWrapper, muparser, cmake }:
 
 stdenv.mkDerivation rec {
   name    = "albert-${version}";
-  version = "0.8.0";
+  version = "0.8.7.2";
 
   src = fetchFromGitHub {
     owner  = "manuelschneid3r";
     repo   = "albert";
     rev    = "v${version}";
-    sha256 = "0lzj1gbcc5sp2x1c0d3s21y55kcnnn4dmy8d205mrgnyavjrak7n";
+    sha256 = "04k6cawil6kqkmsilq5mpjy8lwgk0g08s0v23d5a83calpq3ljpc";
   };
 
-  buildInputs = [ cmake qtbase qtx11extras muparser makeQtWrapper ];
+  buildInputs = [ cmake qtbase qtsvg qtx11extras muparser makeQtWrapper ];
 
   fixupPhase = ''
     wrapQtProgram $out/bin/albert
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index e66f260af969..bae4c83fb2b3 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,12 +5,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.53.0";
+  version = "2.54.0";
   name = "calibre-${version}";
 
   src = fetchurl {
     url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
-    sha256 = "0rvfh39a6j5r398p6xzrbzvhxapm1iyhc0d46xk5fwa52kscadhz";
+    sha256 = "1r2cxnqiqnx51gbw283z8lz58i9zpvbf0a5ncrg5b2i9bphdiq79";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/mediainfo-gui/default.nix b/pkgs/applications/misc/mediainfo-gui/default.nix
index 83130164fd99..a136497de890 100644
--- a/pkgs/applications/misc/mediainfo-gui/default.nix
+++ b/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -2,11 +2,11 @@
 , desktop_file_utils, libSM, imagemagick }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.83";
+  version = "0.7.84";
   name = "mediainfo-gui-${version}";
   src = fetchurl {
     url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "0d8mph9lbg2lw0ccg1la0kqhbisra8q9rzn195lncch5cia5zyg7";
+    sha256 = "0w3hm34amfy5bq3n1jihbwqvwqn0f8kvvq3lfc8nfwf8v7mjn7q9";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix
index cf1a4ce82800..6f4c014fb23a 100644
--- a/pkgs/applications/misc/mediainfo/default.nix
+++ b/pkgs/applications/misc/mediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.83";
+  version = "0.7.84";
   name = "mediainfo-${version}";
   src = fetchurl {
     url = "http://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "0d8mph9lbg2lw0ccg1la0kqhbisra8q9rzn195lncch5cia5zyg7";
+    sha256 = "0w3hm34amfy5bq3n1jihbwqvwqn0f8kvvq3lfc8nfwf8v7mjn7q9";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/applications/misc/timewarrior/default.nix b/pkgs/applications/misc/timewarrior/default.nix
new file mode 100644
index 000000000000..a7afa6562fa5
--- /dev/null
+++ b/pkgs/applications/misc/timewarrior/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, cmake, libuuid, gnutls }:
+
+stdenv.mkDerivation rec {
+  name = "timewarrior-${version}";
+  version = "2016-03-29";
+
+  enableParallelBuilding = true;
+
+  src = fetchgit {
+    url = "https://git.tasktools.org/scm/tm/timew.git";
+    rev = "2175849a81ddd03707dca7b4c9d69d8fa11e35f7";
+    sha256 = "1c55a5jsm9n2zcyskklhqiclnlb2pz2h7klbzx481nsn62xd6bbg";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "A command-line time tracker";
+    homepage = http://tasktools.org/projects/timewarrior.html;
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthiasbeyer ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix
index 41f8cc155a8e..552c8d4d822e 100644
--- a/pkgs/applications/networking/browsers/firefox/default.nix
+++ b/pkgs/applications/networking/browsers/firefox/default.nix
@@ -122,6 +122,7 @@ common = { pname, version, sha256 }: stdenv.mkDerivation rec {
   passthru = {
     inherit gtk nspr version;
     isFirefox3Like = true;
+    browserName = pname;
   };
 };
 
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 91486b608b2c..5fb887bda220 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -9,8 +9,8 @@
 }:
 
 ## configurability of the wrapper itself
-browser :
-{ browserName ? (lib.head (lib.splitString "-" browser.name))  # name of the executable
+browser:
+{ browserName ? browser.browserName or (builtins.parseDrvName browser.name).name
 , name ? (browserName + "-" + (builtins.parseDrvName browser.name).version)
 , desktopName ? # browserName with first letter capitalized
   (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName)
diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix
index b1b451855110..7efd34dee563 100644
--- a/pkgs/applications/networking/cluster/mesos/default.nix
+++ b/pkgs/applications/networking/cluster/mesos/default.nix
@@ -10,7 +10,7 @@ let
   soext = if stdenv.system == "x86_64-darwin" then "dylib" else "so";
 
 in stdenv.mkDerivation rec {
-  version = "0.27.1";
+  version = "0.28.0";
   name = "mesos-${version}";
 
   enableParallelBuilding = true;
@@ -18,7 +18,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://apache/mesos/${version}/${name}.tar.gz";
-    sha256 = "147iq7vwi09kqblx1h8r6lkrg9g50i257qk1cph1zr5j3rncz7l8";
+    sha256 = "05dnj6r5pspizna0fk7yayn38a4w9hlcswgg8l9qmb35m6nq6hby";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/irc/irssi/default.nix b/pkgs/applications/networking/irc/irssi/default.nix
index 8c26bf8d10e9..d6b57b6cb0d7 100644
--- a/pkgs/applications/networking/irc/irssi/default.nix
+++ b/pkgs/applications/networking/irc/irssi/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintlOrEmpty }:
 
 stdenv.mkDerivation rec {
-  name = "irssi-0.8.17";
+
+  version = "0.8.19";
+  name = "irssi-${version}";
 
   src = fetchurl {
-    urls = [ "https://distfiles.macports.org/irssi/${name}.tar.bz2"
-             "http://irssi.org/files/${name}.tar.bz2"
-           ];
-    sha256 = "01v82q2pfiimx6lh271kdvgp8hl4pahc3srg04fqzxgdsb5015iw";
+    urls = [ "https://github.com/irssi/irssi/releases/download/${version}/${name}.tar.gz" ];
+    sha256 = "0ny8dry1b8siyc5glaxcwzng0d2mxnwxk74v64f8xplqhrvlnkzy";
   };
 
   buildInputs = [ pkgconfig ncurses glib openssl perl libintlOrEmpty ];
diff --git a/pkgs/applications/office/gnucash/2.6.nix b/pkgs/applications/office/gnucash/2.6.nix
index 3c2348bfa8b7..844ef9277089 100644
--- a/pkgs/applications/office/gnucash/2.6.nix
+++ b/pkgs/applications/office/gnucash/2.6.nix
@@ -2,6 +2,7 @@
 , intltool, glib, gtk, libofx, aqbanking, gwenhywfar, libgnomecanvas, goffice
 , webkit, glibcLocales, gsettings_desktop_schemas, makeWrapper, dconf, file
 , gettext, swig, slibGuile, enchant, bzip2, isocodes, libdbi, libdbiDrivers
+, pango, gdk_pixbuf
 }:
 
 /*
@@ -78,7 +79,7 @@ stdenv.mkDerivation rec {
   '';
 
   # The following settings fix failures in the test suite. It's not required otherwise.
-  NIX_LDFLAGS = "-rpath=${guile}/lib -rpath=${glib}/lib";
+  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ guile glib gtk pango gdk_pixbuf ];
   preCheck = "export GNC_DOT_DIR=$PWD/dot-gnucash";
   doCheck = true;
 
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 0762002b8a84..56fbf20f52d1 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -1,21 +1,39 @@
-{ stdenv, fetchurl, fetchbzr, cmake, mesa, wxGTK, zlib, libX11, gettext }:
+{ stdenv, fetchurl, fetchbzr, cmake, mesa, wxGTK, zlib, libX11, gettext, glew, cairo, openssl, boost, pkgconfig, doxygen }:
 
 stdenv.mkDerivation rec {
-  name = "kicad-20131025";
+  name = "kicad-${series}";
+  series = "4.0";
+  version = "4.0.2";
 
-  src = fetchbzr {
-    url = "https://code.launchpad.net/kicad/stable";
-    rev = 4024;
-    sha256 = "1sv1l2zpbn6439ccz50p05hvqg6j551aqra551wck9h3929ghly5";
-  };
+  srcs = [
+    (fetchurl {
+      url = "https://code.launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz";
+      sha256 = "1fcf91fmxj6ha3mm6gzdb0px50j58m80p8wrncm8ca9shj36kbif";
+    })
 
-  srcLibrary = fetchbzr {
-    url = "http://bazaar.launchpad.net/~kicad-product-committers/kicad/library";
-    rev = 293;
-    sha256 = "1wn9a4nhqyjzzfkq6xm7ag8n5n10xy7gkq6i7yry7wxini7pzv1i";
-  };
+    (fetchurl {
+      url = "http://downloads.kicad-pcb.org/libraries/kicad-library-${version}.tar.gz";
+      sha256 = "1xk9sxxb3d42chdysqmvizrjcbm0467q7nsq5cahq3j1hci49m6l";
+    })
+
+    (fetchurl {
+      url = "http://downloads.kicad-pcb.org/libraries/kicad-footprints-${version}.tar.gz";
+      sha256 = "0vrzykgxx423iwgz6186bi8724kmbi5wfl92gfwb3r6mqammgwpg";
+    })
+  ];
+  
+  sourceRoot = "kicad-${version}";
+
+  cmakeFlags = ''
+    -DCMAKE_BUILD_TYPE=Release
+    -DKICAD_SKIP_BOOST=ON
+    -DKICAD_BUILD_VERSION=${version}
+    -DKICAD_REPO_NAME=stable
+  '';
 
-  cmakeFlags = "-DKICAD_STABLE_VERSION=ON";
+  enableParallelBuilding = true; # often fails on Hydra: fatal error: pcb_plot_params_lexer.h: No such file or directory
+
+  buildInputs = [ cmake mesa wxGTK zlib libX11 gettext glew cairo openssl boost pkgconfig doxygen ];
 
   # They say they only support installs to /usr or /usr/local,
   # so we have to handle this.
@@ -23,17 +41,26 @@ stdenv.mkDerivation rec {
     sed -i -e 's,/usr/local/kicad,'$out,g common/gestfich.cpp
   '';
 
-  #enableParallelBuilding = true; # often fails on Hydra: fatal error: pcb_plot_params_lexer.h: No such file or directory
-
-  buildInputs = [ cmake mesa wxGTK zlib libX11 gettext ];
+  postUnpack = ''
+    pushd $(pwd)
+  '';  
 
   postInstall = ''
-    mkdir library
-    cd library
-    cmake -DCMAKE_INSTALL_PREFIX=$out $srcLibrary
+    popd
+
+    pushd kicad-library-*
+    cmake -DCMAKE_INSTALL_PREFIX=$out
+    make $MAKE_FLAGS
     make install
+    popd
+   
+    pushd kicad-footprints-*
+    mkdir -p $out/share/kicad/modules
+    cp -R *.pretty $out/share/kicad/modules/
+    popd
   '';
 
+
   meta = {
     description = "Free Software EDA Suite";
     homepage = "http://www.kicad-pcb.org/";
diff --git a/pkgs/applications/science/logic/satallax/default.nix b/pkgs/applications/science/logic/satallax/default.nix
index 89a214c3f474..7935be11926d 100644
--- a/pkgs/applications/science/logic/satallax/default.nix
+++ b/pkgs/applications/science/logic/satallax/default.nix
@@ -1,71 +1,66 @@
-x@{builderDefsPackage
-  , sbcl, zlib
-  , ...}:
-builderDefsPackage
-(a :
-let
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
-    [];
+{stdenv, fetchurl, ocaml, zlib, which, eprover, makeWrapper, coq}:
+stdenv.mkDerivation rec {
+  name = "satallax-${version}";
+  version = "2.7";
 
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    baseName="satallax";
-    version="1.4";
-    name="${baseName}-${version}";
-    url="http://www.ps.uni-saarland.de/~cebrown/satallax/downloads/${name}.tar.gz";
-    hash="0l8dq4nyfw2bdsyqmgb4v6fjw3739p8nqv4bh2gh2924ibzrq5fc";
+  buildInputs = [ocaml zlib which eprover makeWrapper coq];
+  src = fetchurl {
+    url = "http://www.ps.uni-saarland.de/~cebrown/satallax/downloads/${name}.tar.gz";
+    sha256 = "1kvxn8mc35igk4vigi5cp7w3wpxk2z3bgwllfm4n3h2jfs0vkpib";
   };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
-  };
-
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
 
-  phaseNames = ["doDeployMinisat" "doDeploy"];
+  preConfigure = ''
+    mkdir fake-tools
+    echo "echo 'Nix-build-host.localdomain'" > fake-tools/hostname
+    chmod a+x fake-tools/hostname
+    export PATH="$PATH:$PWD/fake-tools"
 
-  doDeployMinisat = a.fullDepEntry (''
     (
-      cd minisat/simp
+      cd picosat-*
+      ./configure
+      make
+    )
+    export PATH="$PATH:$PWD/libexec/satallax"
+
+    mkdir -p "$out/libexec/satallax"
+    cp picosat-*/picosat picosat-*/picomus "$out/libexec/satallax"
+
+    ( 
+      cd minisat
+      export MROOT=$PWD
+      cd core
+      make
+      cd ../simp
       make
     )
+  '';
 
-    mkdir -p "$out/bin"
-    cp minisat/simp/minisat "$out/bin"
+  postBuild = "echo testing; ! (bash ./test | grep ERROR)";
 
-    echo "(setq *minisat-binary* \"$out/bin/minisat\")" > config.lisp
+  installPhase = ''
+    mkdir -p "$out/share/doc/satallax" "$out/bin" "$out/lib" "$out/lib/satallax"
+    cp bin/satallax.opt "$out/bin/satallax"
+    wrapProgram "$out/bin/satallax" \
+      --suffix PATH : "${coq}/bin:${eprover}/bin:$out/libexec/satallax" \
+      --add-flags "-M" --add-flags "$out/lib/satallax/modes"
 
-  '') ["defEnsureDir" "minInit" "addInputs" "doUnpack"];
-  doDeploy = a.fullDepEntry (''
-    mkdir -p "$out/share/satallax/build-dir"
-    cp -r * "$out/share/satallax/build-dir"
-    cd  "$out/share/satallax/build-dir"
+    cp LICENSE README "$out/share/doc/satallax"
 
-    sbcl --load make.lisp
-    ! ( ./test | grep ERROR )
+    cp bin/*.so "$out/lib"
 
-    mkdir -p "$out/bin"
-    cp bin/satallax "$out/bin"
-  '') ["defEnsureDir" "minInit" "addInputs" "doUnpack"];
+    cp -r modes "$out/lib/satallax/"
+    cp -r problems "$out/lib/satallax/"
+    cp -r coq* "$out/lib/satallax/"
+  '';
 
   meta = {
-    description = "A higher-order logic prover";
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
-      unix;
-    license = a.lib.licenses.free;
-    homepage = "http://www.ps.uni-saarland.de/~cebrown/satallax/";
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://www.ps.uni-saarland.de/~cebrown/satallax/";
-    };
+    inherit version;
+    description = ''Automated theorem prover for higher-order logic'';
+    license = stdenv.lib.licenses.mit ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    downloadPage = "http://www.ps.uni-saarland.de/~cebrown/satallax/downloads.php";
+    homepage = "http://www.ps.uni-saarland.de/~cebrown/satallax/index.php";
+    updateWalker = true;
   };
-}) x
+}
diff --git a/pkgs/applications/science/molecular-dynamics/lammps/default.nix b/pkgs/applications/science/molecular-dynamics/lammps/default.nix
new file mode 100644
index 000000000000..35ab53483687
--- /dev/null
+++ b/pkgs/applications/science/molecular-dynamics/lammps/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, writeText, fetchurl,
+  libpng, fftw,
+  mpiSupport ? false, mpi ? null
+}:
+
+assert mpiSupport -> mpi != null;
+
+stdenv.mkDerivation rec {
+  # LAMMPS has weird versioning converted to ISO 8601 format
+  version = "2016-02-16";
+  name = "lammps-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lammps/lammps-16Feb16.tar.gz";
+    sha256 = "1yzfbkxma3xa1288rnn66h4w0smbmjkwq1fx1y60pjiw0prmk105";
+  };
+
+  passthru = {
+    inherit mpi;
+  };
+
+  buildInputs = [ fftw libpng ]
+  ++ (stdenv.lib.optionals mpiSupport [ mpi ]);
+
+  # Must do manual build due to LAMMPS requiring a seperate build for
+  # the libraries and executable
+  builder = writeText "builder.sh" ''
+    source $stdenv/setup
+
+    tar xzf $src
+    cd lammps-*/src
+    make mode=exe ${if mpiSupport then "mpi" else "serial"} SHELL=$SHELL LMP_INC="-DLAMMPS_GZIP -DLAMMPS_PNG" FFT_PATH=-DFFT_FFTW3 FFT_LIB=-lfftw3 JPG_LIB=-lpng
+    make mode=shlib ${if mpiSupport then "mpi" else "serial"} SHELL=$SHELL LMP_INC="-DLAMMPS_GZIP -DLAMMPS_PNG" FFT_PATH=-DFFT_FFTW3 FFT_LIB=-lfftw3 JPG_LIB=-lpng
+
+    mkdir -p $out/bin
+    cp -v lmp_* $out/bin/lammps
+
+    mkdir -p $out/lib
+    cp -v liblammps* $out/lib/
+  '';
+
+  meta = {
+    description = "Classical Molecular Dynamics simulation code";
+    longDescription = ''
+      LAMMPS is a classical molecular dynamics simulation code designed to
+      run efficiently on parallel computers. It was developed at Sandia
+      National Laboratories, a US Department of Energy facility, with
+      funding from the DOE. It is an open-source code, distributed freely
+      under the terms of the GNU Public License (GPL).
+      '';
+    homepage = "http://lammps.sandia.gov";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/kodi/plugins.nix b/pkgs/applications/video/kodi/plugins.nix
index 0ad638dd7054..bb826011e25d 100644
--- a/pkgs/applications/video/kodi/plugins.nix
+++ b/pkgs/applications/video/kodi/plugins.nix
@@ -142,14 +142,14 @@ in
 
     plugin = "svtplay";
     namespace = "plugin.video.svtplay";
-    version = "4.0.23";
+    version = "4.0.24";
 
     src = fetchFromGitHub {
       name = plugin + "-" + version + ".tar.gz";
       owner = "nilzen";
       repo = "xbmc-" + plugin;
-      rev = "80b6d241adb046c105ceb63d637da3f7f3684f1a";
-      sha256 = "1236kanzl4dra78whpwic1r5iifaj3f27qycia9jr54z01id083s";
+      rev = "e66e2af6529e3ffd030ad486c849894a9ffdeb45";
+      sha256 = "01nq6gac83q6ayhqcj1whvk58pzrm1haw801s321f4vc8gswag56";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/qgifer/default.nix b/pkgs/applications/video/qgifer/default.nix
new file mode 100644
index 000000000000..f528ce99a8a2
--- /dev/null
+++ b/pkgs/applications/video/qgifer/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchsvn, cmake, opencv, qt, giflib }:
+
+stdenv.mkDerivation rec {
+  name = "qgifer-${version}";
+  version = "0.2.1";
+
+  src = fetchsvn {
+    url = "https://svn.code.sf.net/p/qgifer/code/tags/${name}";
+    sha256 = "0fv40n58xjwfr06ix9ga79hs527rrzfaq1sll3n2xxchpgf3wf4f";
+  };
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt --replace "SET(CMAKE_INSTALL_PREFIX" "#"
+  '';
+
+  buildInputs = [ cmake opencv qt giflib ];
+
+  meta = with stdenv.lib; {
+    description = "Video-based animated GIF creator";
+    homepage = https://sourceforge.net/projects/qgifer/;
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.andrewrk ];
+  };
+}
diff --git a/pkgs/applications/virtualization/virtinst/default.nix b/pkgs/applications/virtualization/virtinst/default.nix
index c9a62ce5f92b..6064972fe956 100644
--- a/pkgs/applications/virtualization/virtinst/default.nix
+++ b/pkgs/applications/virtualization/virtinst/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   pythonPath = with pythonPackages;
-    [ setuptools eventlet greenlet gflags netaddr sqlalchemy7 carrot routes
+    [ setuptools eventlet greenlet gflags netaddr carrot routes
       PasteDeploy m2crypto ipy twisted sqlalchemy_migrate
       distutils_extra simplejson readline glanceclient cheetah lockfile httplib2
       # !!! should libvirt be a build-time dependency?  Note that
diff --git a/pkgs/build-support/setup-hooks/use-old-cxx-abi.sh b/pkgs/build-support/setup-hooks/use-old-cxx-abi.sh
new file mode 100644
index 000000000000..53335d7a9a7a
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/use-old-cxx-abi.sh
@@ -0,0 +1 @@
+export NIX_CFLAGS_COMPILE+=" -D_GLIBCXX_USE_CXX11_ABI=0"
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index c11c21170e01..56a13d6787a7 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -414,12 +414,12 @@ rec {
   fillDiskWithRPMs =
     { size ? 4096, rpms, name, fullName, preInstall ? "", postInstall ? ""
     , runScripts ? true, createRootFS ? defaultCreateRootFS
+    , QEMU_OPTS ? "", memSize ? 512
     , unifiedSystemDir ? false
     }:
 
     runInLinuxVM (stdenv.mkDerivation {
-      inherit name preInstall postInstall rpms;
-      memSize = 512;
+      inherit name preInstall postInstall rpms QEMU_OPTS memSize;
       preVM = createEmptyImage {inherit size fullName;};
 
       buildCommand = ''
@@ -685,10 +685,11 @@ rec {
     , packages, extraPackages ? []
     , preInstall ? "", postInstall ? "", archs ? ["noarch" "i386"]
     , runScripts ? true, createRootFS ? defaultCreateRootFS
+    , QEMU_OPTS ? "", memSize ? 512
     , unifiedSystemDir ? false }:
 
     fillDiskWithRPMs {
-      inherit name fullName size preInstall postInstall runScripts createRootFS unifiedSystemDir;
+      inherit name fullName size preInstall postInstall runScripts createRootFS unifiedSystemDir QEMU_OPTS memSize;
       rpms = import (rpmClosureGenerator {
         inherit name packagesLists urlPrefixes archs;
         packages = packages ++ extraPackages;
diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix
index 6f5af374dbc4..1edea6b888ba 100644
--- a/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix
@@ -3,7 +3,7 @@
 , spice_protocol, libuuid, libsoup, libosinfo, systemd, tracker, vala
 , libcap_ng, libcap, yajl, gmp, gdbm, cyrus_sasl, gnome3, librsvg
 , desktop_file_utils, mtools, cdrkit, libcdio, numactl, xen
-, libusb, libarchive, acl, libgudev
+, libusb, libarchive, acl, libgudev, qemu
 }:
 
 # TODO: ovirt (optional)
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
         wrapProgram "$prog" \
             --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
             --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
-            --prefix PATH : "${mtools}/bin:${cdrkit}/bin:${libcdio}/bin"
+            --prefix PATH : "${mtools}/bin:${cdrkit}/bin:${libcdio}/bin:${qemu}/bin"
     done
   '';
 
diff --git a/pkgs/desktops/gnome-3/3.18/core/rest/default.nix b/pkgs/desktops/gnome-3/3.18/core/rest/default.nix
index eada9ab19934..344bc00780f9 100644
--- a/pkgs/desktops/gnome-3/3.18/core/rest/default.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/rest/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, glib, libsoup, gobjectIntrospection, gnome3 }:
 
 stdenv.mkDerivation rec {
-  name = "rest-0.7.92";
+  name = "rest-0.7.93";
 
   src = fetchurl {
     url = "mirror://gnome/sources/rest/0.7/${name}.tar.xz";
-    sha256 = "07548c8785a3e743daf54a82b952ff5f32af94fee68997df4c83b00d52f9c0ec";
+    sha256 = "05mj10hhiik23ai8w4wkk5vhsp7hcv24bih5q3fl82ilam268467";
   };
 
   buildInputs = [ pkgconfig glib libsoup gobjectIntrospection];
diff --git a/pkgs/development/compilers/abc/default.nix b/pkgs/development/compilers/abc/default.nix
index 1a71b808827e..1340e8b5c1a0 100644
--- a/pkgs/development/compilers/abc/default.nix
+++ b/pkgs/development/compilers/abc/default.nix
@@ -1,23 +1,6 @@
-{stdenv, fetchurl, javaCup, jre, apacheAnt, patches} :
-
-let { 
-  body =
-    stdenv.mkDerivation {
-      name = "abc-1.2.0";
-      builder = ./builder.sh;
-
-      src = fetchurl {
-        url = http://abc.comlab.ox.ac.uk/dists/1.2.0/files/abc-1.2.0-src.tar.gz;
-        md5 = "aef9e8eac860f904f2a841e18770dc47";
-      };
-
-      inherit apacheAnt polyglot soot javaCup xact jasmin jre javabdd paddle jedd patches;
-
-      meta = {
-        description = "The AspectBench Compiler for AspectJ";
-      };
-    };
+{stdenv, fetchurl, javaCup, jre, apacheAnt}:
 
+let
   soot =
     import ./soot {
       inherit stdenv fetchurl apacheAnt polyglot jasmin;
@@ -76,4 +59,21 @@ let {
         md5 = "9810ad8762101ea691a895f0a6b7a5c3";
       };
     };
+in
+
+stdenv.mkDerivation {
+  name = "abc-1.2.0";
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = http://abc.comlab.ox.ac.uk/dists/1.2.0/files/abc-1.2.0-src.tar.gz;
+    md5 = "aef9e8eac860f904f2a841e18770dc47";
+  };
+
+  inherit apacheAnt polyglot soot javaCup xact jasmin jre javabdd paddle jedd;
+  patches = [];
+
+  meta = {
+    description = "The AspectBench Compiler for AspectJ";
+  };
 }
diff --git a/pkgs/development/compilers/fsharp/default.nix b/pkgs/development/compilers/fsharp/default.nix
index 12df5721cc4c..c00cea0029e1 100644
--- a/pkgs/development/compilers/fsharp/default.nix
+++ b/pkgs/development/compilers/fsharp/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "fsharp-${version}";
-  version = "4.0.0.4";
+  version = "4.0.1.1";
 
   src = fetchurl {
     url = "https://github.com/fsharp/fsharp/archive/${version}.tar.gz";
-    sha256 = "1m9pwr4xjl3ikaf3pzsa4pb3pr533xa0v34y2cy4pjcc6j0f71av";
+    sha256 = "0mvmvwwpl4zq0yvgzdizww8l9azvlrc82xm32nz1fi1nw8x5qfqk";
   };
 
   buildInputs = [ mono pkgconfig dotnetbuildhelpers autoconf automake which ];
diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/default.nix
index 3977b32bad70..a9854c7c4934 100644
--- a/pkgs/development/interpreters/elixir/default.nix
+++ b/pkgs/development/interpreters/elixir/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "elixir-${version}";
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchurl {
     url = "https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz";
-    sha256 = "09s8469830s4070i0m04fxdhqimkdyc5k9jylm5vpfz9l3z4wvl8";
+    sha256 = "16759ff84d08b480b7e5499716e663b2fffd26e20cf2863de5613bc7bb05c817";
   };
 
   buildInputs = [ erlang rebar makeWrapper ];
diff --git a/pkgs/development/interpreters/erlang/R17.nix b/pkgs/development/interpreters/erlang/R17.nix
index e06b2741d35c..8096ca555a44 100644
--- a/pkgs/development/interpreters/erlang/R17.nix
+++ b/pkgs/development/interpreters/erlang/R17.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, perl, gnum4, ncurses, openssl
 , gnused, gawk, makeWrapper
+, Carbon, Cocoa
 , odbcSupport ? false, unixODBC ? null
 , wxSupport ? true, mesa ? null, wxGTK ? null, xorg ? null, wxmac ? null
 , javacSupport ? false, openjdk ? null
@@ -27,9 +28,10 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ perl gnum4 ncurses openssl makeWrapper
-    ] ++ optional wxSupport (if stdenv.isDarwin then [ wxmac ] else [ mesa wxGTK xorg.libX11 ])
-      ++ optional odbcSupport [ unixODBC ]
-      ++ optional javacSupport [ openjdk ];
+    ] ++ optionals wxSupport (if stdenv.isDarwin then [ wxmac ] else [ mesa wxGTK xorg.libX11 ])
+      ++ optional odbcSupport unixODBC
+      ++ optional javacSupport openjdk
+      ++ stdenv.lib.optionals stdenv.isDarwin [ Carbon Cocoa ];
 
   patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
 
diff --git a/pkgs/development/interpreters/jython/default.nix b/pkgs/development/interpreters/jython/default.nix
index f9d6271e5d86..80661c3feb9e 100644
--- a/pkgs/development/interpreters/jython/default.nix
+++ b/pkgs/development/interpreters/jython/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
   name = "jython-${version}";
 
-  version = "2.7-rc3";
+  version = "2.7.0";
 
   src = fetchurl {
     url = "http://search.maven.org/remotecontent?filepath=org/python/jython-standalone/${version}/jython-standalone-${version}.jar";
-    sha256 = "89fcaf53f1bda6124f836065c1e318e2e853d5a9a1fbf0e96a387c6d38828c78";
+    sha256 = "0sk4myh9v7ma7nmzb8khg41na77xfi2zck7876bs7kq18n8nc1nx";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index 6fe6b18e0bff..c890a3fc90f4 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -301,8 +301,8 @@ in {
   };
 
   php70 = generic {
-    version = "7.0.2";
-    sha256 = "0di2vallv5kry85l67za25nq4f2hjr8fad5j0c06nb69v7xpa6wv";
+    version = "7.0.5";
+    sha256 = "1s8xnnxwq5big2rnbp3w7zw7wh5d5ra9p2q9bxwylds5wrzsy29c";
   };
 
 }
diff --git a/pkgs/development/libraries/freeimage/default.nix b/pkgs/development/libraries/freeimage/default.nix
index 2cfb5d3522f9..2a75f7693e15 100644
--- a/pkgs/development/libraries/freeimage/default.nix
+++ b/pkgs/development/libraries/freeimage/default.nix
@@ -1,9 +1,9 @@
 {stdenv, fetchurl, unzip}:
 stdenv.mkDerivation {
-  name = "freeimage-3.15.3";
+  name = "freeimage-3.17.0";
   src = fetchurl {
-    url = mirror://sourceforge/freeimage/FreeImage3153.zip;
-    sha256 = "0i60fn1n9rw55dci0yw92zrw7k1jz3f9kv2z1wxmh84s5ngxa626";
+    url = mirror://sourceforge/freeimage/FreeImage3170.zip;
+    sha256 = "12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v";
   };
   buildInputs = [ unzip ];
   prePatch = ''
@@ -11,6 +11,10 @@ stdenv.mkDerivation {
         -e 's@-o root -g root@@' \
         -e 's@ldconfig@echo not running ldconfig@' \
         -i Makefile.gnu Makefile.fip
+
+      # Fix gcc 5.1 macro problems
+      # https://chromium.googlesource.com/webm/libwebp/+/eebaf97f5a1cb713d81d311308d8a48c124e5aef%5E!/
+      sed -i -e 's/"\(#[^"]*\)"/" \1 "/g' Source/LibWebP/src/dsp/*
   '';
 
   postBuild = "make -f Makefile.fip";
diff --git a/pkgs/development/libraries/imlib2/default.nix b/pkgs/development/libraries/imlib2/default.nix
index 3ff608a4ac33..8d79fcc50a8e 100644
--- a/pkgs/development/libraries/imlib2/default.nix
+++ b/pkgs/development/libraries/imlib2/default.nix
@@ -1,21 +1,17 @@
 { stdenv, fetchurl, xlibsWrapper, libjpeg, libtiff, giflib, libpng, bzip2, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "imlib2-1.4.6";
+  name = "imlib2-1.4.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/enlightenment/${name}.tar.bz2";
-    sha256 = "0x1j0ylpclkp8cfpwfpkjywqz124bqskyxbw8pvwzkv2gmrbwldg";
+    sha256 = "0xxhgkd1axlcmf3kp1d7naiygparpg8l3sg3d263rhl2z0gm7aw9";
   };
 
   buildInputs = [ xlibsWrapper libjpeg libtiff giflib libpng bzip2 ];
 
   nativeBuildInputs = [ pkgconfig ];
 
-  # From
-  # https://github.com/PhantomX/slackbuilds/blob/master/imlib2/patches/imlib2-giflib51.patch
-  patches = [ ./giflib51.patch ];
-
   preConfigure = ''
     substituteInPlace imlib2-config.in \
       --replace "@my_libs@" ""
diff --git a/pkgs/development/libraries/imlib2/giflib51.patch b/pkgs/development/libraries/imlib2/giflib51.patch
deleted file mode 100644
index 97eaeb0b96e6..000000000000
--- a/pkgs/development/libraries/imlib2/giflib51.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -ruN imlib2-1.4.6.orig/src/modules/loaders/loader_gif.c imlib2-1.4.6/src/modules/loaders/loader_gif.c
---- imlib2-1.4.6.orig/src/modules/loaders/loader_gif.c	2013-12-21 10:16:10.000000000 +0000
-+++ imlib2-1.4.6/src/modules/loaders/loader_gif.c	2014-05-27 09:52:35.857291512 +0000
-@@ -36,7 +36,7 @@
- #endif
-    if (fd < 0)
-       return 0;
--   gif = DGifOpenFileHandle(fd);
-+   gif = DGifOpenFileHandle(fd, NULL);
-    if (!gif)
-      {
-         close(fd);
-@@ -60,13 +60,13 @@
-              h = gif->Image.Height;
-              if (!IMAGE_DIMENSIONS_OK(w, h))
-                {
--                  DGifCloseFile(gif);
-+                  DGifCloseFile(gif, NULL);
-                   return 0;
-                }
-              rows = malloc(h * sizeof(GifRowType *));
-              if (!rows)
-                {
--                  DGifCloseFile(gif);
-+                  DGifCloseFile(gif, NULL);
-                   return 0;
-                }
-              for (i = 0; i < h; i++)
-@@ -78,7 +78,7 @@
-                   rows[i] = malloc(w * sizeof(GifPixelType));
-                   if (!rows[i])
-                     {
--                       DGifCloseFile(gif);
-+                       DGifCloseFile(gif, NULL);
-                        for (i = 0; i < h; i++)
-                          {
-                             if (rows[i])
-@@ -150,7 +150,7 @@
-         im->data = (DATA32 *) malloc(sizeof(DATA32) * w * h);
-         if (!im->data)
-           {
--             DGifCloseFile(gif);
-+             DGifCloseFile(gif, NULL);
-              free(rows);
-              return 0;
-           }
-@@ -181,7 +181,7 @@
-                        last_per = (int)per;
-                        if (!(progress(im, (int)per, 0, last_y, w, i)))
-                          {
--                            DGifCloseFile(gif);
-+                            DGifCloseFile(gif, NULL);
-                             for (i = 0; i < h; i++)
-                               {
-                                  free(rows[i]);
-@@ -198,7 +198,7 @@
-      {
-         progress(im, 100, 0, last_y, w, h);
-      }
--   DGifCloseFile(gif);
-+   DGifCloseFile(gif, NULL);
-    for (i = 0; i < h; i++)
-      {
-         free(rows[i]);
\ No newline at end of file
diff --git a/pkgs/development/libraries/libmediainfo/default.nix b/pkgs/development/libraries/libmediainfo/default.nix
index b3d76b1c931f..8b8bf61a99b7 100644
--- a/pkgs/development/libraries/libmediainfo/default.nix
+++ b/pkgs/development/libraries/libmediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.83";
+  version = "0.7.84";
   name = "libmediainfo-${version}";
   src = fetchurl {
     url = "http://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
-    sha256 = "0kl5x07j3jp5mnmhpjvdq0a2nnlgvqnhwar0xalvg3b3msdf8417";
+    sha256 = "0k657ynfxcw6lvakc8plz0pzfixlqbsiih2idimk9k1dd4xzhq3d";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/development/libraries/log4cxx/default.nix b/pkgs/development/libraries/log4cxx/default.nix
index b2e13a1e9ab8..cae6e5c0a55e 100644
--- a/pkgs/development/libraries/log4cxx/default.nix
+++ b/pkgs/development/libraries/log4cxx/default.nix
@@ -20,6 +20,9 @@ stdenv.mkDerivation rec {
     }' src/examples/cpp/console.cpp \
        src/main/cpp/inputstreamreader.cpp \
        src/main/cpp/socketoutputstream.cpp
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+  sed -i 's/namespace std { class locale; }/#include <locale>/' src/main/include/log4cxx/helpers/simpledateformat.h
+  sed -i 's/\(#include <cctype>\)/\1\n#include <cstdlib>/' src/main/cpp/stringhelper.cpp
   '';
 
   buildInputs = [autoconf automake libtool libxml2 cppunit boost apr aprutil db expat];
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index 7d836cd5a0df..c4f8ef0ee661 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -1,25 +1,13 @@
 { stdenv, fetchurl, openssl, cyrus_sasl, db, groff }:
 
 stdenv.mkDerivation rec {
-  name = "openldap-2.4.42";
+  name = "openldap-2.4.44";
 
   src = fetchurl {
     url = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/${name}.tgz";
-    sha256 = "0qwfpb5ipp2l76v11arghq5mr0sjc6xhjfg8a0kgsaw5qpib1dzf";
+    sha256 = "0044p20hx07fwgw2mbwj1fkx04615hhs1qyx4mawj2bhqvrnppnp";
   };
 
-  # Should be removed with >=2.4.43
-  patches = [
-    ./CVE-2015-6908.patch
-    (
-      fetchurl {
-        sha256 = "5bcb3f9fb7186b380efa0a1c2d31ad755e190134b5c4dac07c65bbf7c0b6b3b3";
-        url = "https://github.com/LMDB/lmdb/commit/3360cbad668f678fb23c064ca4efcc5c9ae95d10.patch";
-        name = "openldap-clang-compilation.patch";
-      }
-    )
-  ];
-
   outputs = [ "out" "man" ];
 
   buildInputs = [ openssl cyrus_sasl db groff ];
diff --git a/pkgs/development/libraries/science/math/openblas/0.2.14.nix b/pkgs/development/libraries/science/math/openblas/0.2.14.nix
deleted file mode 100644
index 2fac8a4db08b..000000000000
--- a/pkgs/development/libraries/science/math/openblas/0.2.14.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv, fetchurl, gfortran, perl, which, config, coreutils
-# Most packages depending on openblas expect integer width to match pointer width,
-# but some expect to use 32-bit integers always (for compatibility with reference BLAS).
-, blas64 ? null
-}:
-
-with stdenv.lib;
-
-let blas64_ = blas64; in
-
-let local = config.openblas.preferLocalBuild or false;
-    binary =
-      { i686-linux = "32";
-        x86_64-linux = "64";
-        x86_64-darwin = "64";
-      }."${stdenv.system}" or (throw "unsupported system: ${stdenv.system}");
-    genericFlags =
-      [ "DYNAMIC_ARCH=1"
-        "NUM_THREADS=64"
-      ];
-    localFlags = config.openblas.flags or
-      optionals (hasAttr "target" config.openblas) [ "TARGET=${config.openblas.target}" ];
-    blas64 = if blas64_ != null then blas64_ else hasPrefix "x86_64" stdenv.system;
-
-    version = "0.2.14";
-in
-stdenv.mkDerivation {
-  name = "openblas-${version}";
-  src = fetchurl {
-    url = "https://github.com/xianyi/OpenBLAS/archive/v${version}.tar.gz";
-    sha256 = "2411c4f56f477b42dff54db2b7ffc0b7cf53bb9778d54982595c64cc69c40fc1";
-    name = "openblas-${version}.tar.gz";
-  };
-
-  inherit blas64;
-
-  nativeBuildInputs = optionals stdenv.isDarwin [coreutils] ++ [gfortran perl which];
-
-  makeFlags =
-    (if local then localFlags else genericFlags)
-    ++
-    optionals stdenv.isDarwin ["MACOSX_DEPLOYMENT_TARGET=10.9"]
-    ++
-    [
-      "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)"''
-      "BINARY=${binary}"
-      "USE_OPENMP=${if stdenv.isDarwin then "0" else "1"}"
-      "INTERFACE64=${if blas64 then "1" else "0"}"
-    ];
-
-  doCheck = true;
-  checkTarget = "tests";
-
-  meta = with stdenv.lib; {
-    description = "Basic Linear Algebra Subprograms";
-    license = licenses.bsd3;
-    homepage = "https://github.com/xianyi/OpenBLAS";
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/skalibs/default.nix b/pkgs/development/libraries/skalibs/default.nix
index e8b3403df405..349e5582013f 100644
--- a/pkgs/development/libraries/skalibs/default.nix
+++ b/pkgs/development/libraries/skalibs/default.nix
@@ -2,7 +2,7 @@
 
 let
 
-  version = "2.3.7.0";
+  version = "2.3.9.0";
 
 in stdenv.mkDerivation rec {
 
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   src = fetchgit {
     url = "git://git.skarnet.org/skalibs";
     rev = "refs/tags/v${version}";
-    sha256 = "11k84vckwvxphjswqxv677p6riyb2hgx1kh15f865hnk8n21fldx";
+    sha256 = "1c5ap14f2yr3izz8s1blgp5g4r898kzppay7xrga2j216i51zfpw";
   };
 
   dontDisableStatic = true;
@@ -23,7 +23,14 @@ in stdenv.mkDerivation rec {
     "--libdir=\${prefix}/lib"
     "--includedir=\${prefix}/include"
     "--sysdepdir=\${prefix}/lib/skalibs/sysdeps"
-  ] ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ]);
+  ]
+  ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ])
+  # On darwin, the target triplet from -dumpmachine includes version number, but
+  # skarnet.org software uses the triplet to test binary compatibility.
+  # Explicitly setting target ensures code can be compiled against a skalibs
+  # binary built on a different version of darwin.
+  # http://www.skarnet.org/cgi-bin/archive.cgi?1:mss:623:heiodchokfjdkonfhdph
+  ++ (stdenv.lib.optional stdenv.isDarwin "--target=${stdenv.system}");
 
   meta = {
     homepage = http://skarnet.org/software/skalibs/;
diff --git a/pkgs/development/libraries/v8/3.14.nix b/pkgs/development/libraries/v8/3.14.nix
new file mode 100644
index 000000000000..fee0f868ea92
--- /dev/null
+++ b/pkgs/development/libraries/v8/3.14.nix
@@ -0,0 +1,28 @@
+{ stdenv, callPackage, fetchFromGitHub, python, ... } @ args:
+with stdenv.lib;
+let
+  version = "3.14.5.10";
+  sha256 = "08vhl84166x13b3cbx8y0g99yqx772zd33gawsa1nxqkyrykql6k";
+in
+(callPackage ./generic.nix (args // {
+  inherit version sha256;
+})).overrideDerivation (oldAttrs:{
+  patchPhase = [
+    oldAttrs.patchPhase
+    "sed -i 's,#!/usr/bin/python,#!${python}/bin/python,' build/gyp_v8"
+  ];
+
+  # http://code.google.com/p/v8/issues/detail?id=2149
+  NIX_CFLAGS_COMPILE = concatStringsSep " " [
+    oldAttrs.NIX_CFLAGS_COMPILE
+    "-Wno-unused-local-typedefs"
+    "-Wno-aggressive-loop-optimizations"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "v8";
+    repo = "v8";
+    rev = "${version}";
+    inherit sha256;
+  };
+})
diff --git a/pkgs/development/libraries/v8/fix-GetLocalizedMessage-usage.patch b/pkgs/development/libraries/v8/fix-GetLocalizedMessage-usage.patch
new file mode 100644
index 000000000000..3bc0fff4d509
--- /dev/null
+++ b/pkgs/development/libraries/v8/fix-GetLocalizedMessage-usage.patch
@@ -0,0 +1,27 @@
+From dbe142c4eda0f15fad9fa85743dd11b81292fa8f Mon Sep 17 00:00:00 2001
+From: Timothy J Fontaine <tjfontaine@gmail.com>
+Date: Thu, 23 May 2013 13:57:59 -0700
+Subject: [PATCH] v8: fix GetLocalizedMessage usage
+
+As is the backport of the abort on uncaught exception wouldn't compile
+because we it was passing in `this` when it was unnecessary.
+---
+ deps/v8/src/isolate.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/isolate.cc b/src/isolate.cc
+index 04a438b..5a5293e 100644
+--- a/src/isolate.cc
++++ b/src/isolate.cc
+@@ -1161,7 +1161,7 @@ void Isolate::DoThrow(Object* exception, MessageLocation* location) {
+           (report_exception || can_be_caught_externally)) {
+         fatal_exception_depth++;
+         fprintf(stderr, "%s\n\nFROM\n",
+-          *MessageHandler::GetLocalizedMessage(this, message_obj));
++          *MessageHandler::GetLocalizedMessage(message_obj));
+         PrintCurrentStackTrace(stderr);
+         OS::Abort();
+       }
+-- 
+1.8.1.6
+
diff --git a/pkgs/development/python-modules/sphinx-fix-tests-with-pygments-2.1.patch b/pkgs/development/python-modules/sphinx-fix-tests-with-pygments-2.1.patch
deleted file mode 100644
index 5aa4af873cd5..000000000000
--- a/pkgs/development/python-modules/sphinx-fix-tests-with-pygments-2.1.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 5574aba60ed76f2bae947722122ac4d71ab8ed5a Mon Sep 17 00:00:00 2001
-From: Takeshi KOMIYA <i.tkomiya@gmail.com>
-Date: Mon, 18 Jan 2016 12:38:02 +0900
-Subject: [PATCH] Fix tests are broken with pygments-2.1
-
----
- tests/test_build_html.py |  2 +-
- tests/test_intl.py       | 10 ++++++----
- 2 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/tests/test_build_html.py b/tests/test_build_html.py
-index e330761..17ea089 100644
---- a/tests/test_build_html.py
-+++ b/tests/test_build_html.py
-@@ -82,7 +82,7 @@ def checker(nodes):
-         (".//a[@href='_downloads/img1.png']", ''),
-         (".//pre", u'"quotes"'),
-         (".//pre", u"'included'"),
--        (".//pre/span[@class='s']", u'üöä'),
-+        (".//pre/span[@class='s2']", u'üöä'),
-         (".//div[@class='inc-pyobj1 highlight-text']//pre",
-             r'^class Foo:\n    pass\n\s*$'),
-         (".//div[@class='inc-pyobj2 highlight-text']//pre",
-diff --git a/tests/test_intl.py b/tests/test_intl.py
-index 4c665d4..b24ec65 100644
---- a/tests/test_intl.py
-+++ b/tests/test_intl.py
-@@ -694,14 +694,15 @@ def test_additional_targets_should_not_be_translated(app, status, warning):
-     yield assert_count(expected_expr, result, 1)
- 
-     # C code block with lang should not be translated but be *C* highlighted
--    expected_expr = """<span class="cp">#include &lt;stdio.h&gt;</span>"""
-+    expected_expr = ("""<span class="cp">#include</span> """
-+                     """<span class="cpf">&lt;stdio.h&gt;</span>""")
-     yield assert_count(expected_expr, result, 1)
- 
-     # doctest block should not be translated but be highlighted
-     expected_expr = (
-         """<span class="gp">&gt;&gt;&gt; </span>"""
-         """<span class="kn">import</span> <span class="nn">sys</span>  """
--        """<span class="c"># sys importing</span>""")
-+        """<span class="c1"># sys importing</span>""")
-     yield assert_count(expected_expr, result, 1)
- 
-     ## raw.txt
-@@ -754,14 +755,15 @@ def test_additional_targets_should_be_translated(app, status, warning):
-     yield assert_count(expected_expr, result, 1)
- 
-     # C code block with lang should be translated and be *C* highlighted
--    expected_expr = """<span class="cp">#include &lt;STDIO.H&gt;</span>"""
-+    expected_expr = ("""<span class="cp">#include</span> """
-+                     """<span class="cpf">&lt;STDIO.H&gt;</span>""")
-     yield assert_count(expected_expr, result, 1)
- 
-     # doctest block should not be translated but be highlighted
-     expected_expr = (
-         """<span class="gp">&gt;&gt;&gt; </span>"""
-         """<span class="kn">import</span> <span class="nn">sys</span>  """
--        """<span class="c"># SYS IMPORTING</span>""")
-+        """<span class="c1"># SYS IMPORTING</span>""")
-     yield assert_count(expected_expr, result, 1)
- 
-     ## raw.txt
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index c2b24c69904f..96477e55d26a 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -4,6 +4,8 @@ rec {
   gradleGen = {name, src} : stdenv.mkDerivation rec {
     inherit name src;
 
+    buildPhase = ":";
+
     installPhase = ''
       mkdir -pv $out/lib/gradle/
       cp -rv lib/ $out/lib/gradle/
@@ -15,7 +17,21 @@ rec {
         --add-flags "-classpath $gradle_launcher_jar org.gradle.launcher.GradleMain"
     '';
 
-    phases = "unpackPhase installPhase";
+    fixupPhase = if (!stdenv.isLinux) then ":" else
+      let arch = if stdenv.is64bit then "amd64" else "i386"; in ''
+        mkdir patching
+        pushd patching
+        jar xf $out/lib/gradle/lib/native-platform-linux-${arch}-0.10.jar
+        patchelf --set-rpath "${stdenv.cc.cc}/lib:${stdenv.cc.cc}/lib64" net/rubygrapefruit/platform/linux-${arch}/libnative-platform.so
+        jar cf native-platform-linux-${arch}-0.10.jar .
+        mv native-platform-linux-${arch}-0.10.jar $out/lib/gradle/lib/
+        popd
+
+        # The scanner doesn't pick up the runtime dependency in the jar.
+        # Manually add a reference where it will be found.
+        mkdir $out/nix-support
+        echo ${stdenv.cc.cc} > $out/nix-support/manual-runtime-dependencies
+      '';
 
     buildInputs = [ unzip jdk makeWrapper ];
 
diff --git a/pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix b/pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix
index 39ec59e849f2..ed38d573abf1 100644
--- a/pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix
+++ b/pkgs/development/tools/erlang/rebar3-nix-bootstrap/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     meta = {
       description = "Shim command to help bootstrap a rebar3 project on Nix";
       license = stdenv.lib.licenses.asl20;
-      homepage = "https://github.com/erl-nix/rebar3-nix-bootstrap";
+      homepage = "https://github.com/erlang-nix/rebar3-nix-bootstrap";
       maintainers = with stdenv.lib.maintainers; [ ericbmerritt ];
     };
 }
diff --git a/pkgs/development/tools/galen/default.nix b/pkgs/development/tools/galen/default.nix
index 7ff283176e1d..3ee29f2267a5 100644
--- a/pkgs/development/tools/galen/default.nix
+++ b/pkgs/development/tools/galen/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "galen";
-  version = "2.2.3";
+  version = "2.2.4";
   name = "${pname}-${version}";
 
   inherit jdk;
 
   src = fetchurl {
     url = "https://github.com/galenframework/galen/releases/download/galen-${version}/galen-bin-${version}.zip";
-    sha256 = "13kvxbw68g82rv8bp9g4fkrrsd7nag1a4bspilqi2wnxc51c8mqq";
+    sha256 = "0qx6pza6aw880ph76wbypcgy983pln8k4ad2indagb5qhiz4zw1d";
   };
 
   buildInputs = [ unzip ];
diff --git a/pkgs/development/tools/misc/distcc/default.nix b/pkgs/development/tools/misc/distcc/default.nix
index cf9d7a019204..ed3ad45c463a 100644
--- a/pkgs/development/tools/misc/distcc/default.nix
+++ b/pkgs/development/tools/misc/distcc/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchFromGitHub, popt, avahi, pkgconfig, python, gtk, runCommand, gcc, autoconf, automake, which, procps
+{ stdenv, fetchFromGitHub, popt, avahi, pkgconfig, python, gtk, runCommand
+, gcc, autoconf, automake, which, procps, libiberty_static
 , sysconfDir ? ""   # set this parameter to override the default value $out/etc
 , static ? false
 }:
@@ -15,7 +16,7 @@ let
       sha256 = "1vj31wcdas8wy52hy6749mlrca9v6ynycdiigx5ay8pnya9z73c6";
     };
 
-    buildInputs = [popt avahi pkgconfig python gtk autoconf automake pkgconfig which procps];
+    buildInputs = [popt avahi pkgconfig python gtk autoconf automake pkgconfig which procps libiberty_static];
     preConfigure =
     ''
       export CPATH=$(ls -d ${gcc.cc}/lib/gcc/*/${gcc.cc.version}/plugin/include)
diff --git a/pkgs/development/web/nodejs/v5.nix b/pkgs/development/web/nodejs/v5.nix
index c1d45443885e..a96e50008292 100644
--- a/pkgs/development/web/nodejs/v5.nix
+++ b/pkgs/development/web/nodejs/v5.nix
@@ -6,7 +6,7 @@
 assert stdenv.system != "armv5tel-linux";
 
 let
-  version = "5.9.0";
+  version = "5.10.0";
 
   deps = {
     inherit openssl zlib libuv;
@@ -30,7 +30,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz";
-    sha256 = "0ghgfqs64794g6ggrvsdcqwz2lnhck0yiy2fyyg3in8z91k5l5z5";
+    sha256 = "0avn25j04q172ri8mksrryyg4g95k7x2pqzsbmp1nr6ybfpvkblg";
   };
 
   configureFlags = concatMap sharedConfigureFlags (builtins.attrNames deps) ++ [ "--without-dtrace" ];
diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix
index e6652d2f0239..8bb73fc5cef3 100644
--- a/pkgs/games/steam/chrootenv.nix
+++ b/pkgs/games/steam/chrootenv.nix
@@ -24,7 +24,10 @@ buildFHSUserEnv {
       perl
     ]
     ++ lib.optional withJava jdk
-    ++ lib.optional withPrimus primus
+    ++ lib.optional withPrimus (primus.override {
+      stdenv = overrideInStdenv stdenv [ useOldCXXAbi ];
+      stdenv_i686 = overrideInStdenv pkgsi686Linux.stdenv [ useOldCXXAbi ];
+    })
     ;
 
   multiPkgs = pkgs: with pkgs; [
diff --git a/pkgs/games/trigger/default.nix b/pkgs/games/trigger/default.nix
index ad65b54ddcda..382edb6908b4 100644
--- a/pkgs/games/trigger/default.nix
+++ b/pkgs/games/trigger/default.nix
@@ -1,38 +1,36 @@
-{ fetchurl, stdenv, SDL, freealut, SDL_image, openal, physfs, zlib, mesa, jam }:
+{ fetchurl, stdenv, SDL, freealut, SDL_image, openal, physfs, zlib, mesa, glew }:
 
 stdenv.mkDerivation rec {
-  name = "trigger-rally-0.6.1";
+  name = "trigger-rally-0.6.3";
 
   src = fetchurl {
-    url = "mirror://sourceforge/trigger-rally/${name}-src.tar.bz2";
-    sha256 = "1fvb6dl5bwclmx0y8ygyrfn8jczc5kxawxlyv6mp592smb5x5hjs";
+    url = "mirror://sourceforge/trigger-rally/${name}.tar.gz";
+    sha256 = "103mv4vpq335mrmgzlhahrfncq7ds3b5ip5a52967rv2j6hhzpvy";
   };
 
-  srcData = fetchurl {
-    url = "mirror://sourceforge/trigger-rally/${name}-data.tar.bz2";
-    sha256 = "04f9d74gz5xvfx6pnmbfxqhp0kd1p16j5lrgcq12wxvla6py4qaw";
-  };
-
-  buildInputs = [ SDL freealut SDL_image openal physfs zlib mesa jam ];
+  buildInputs = [ SDL freealut SDL_image openal physfs zlib mesa glew ];
 
   preConfigure = ''
-    configureFlags="$configureFlags --datadir=$out/share/${name}-data"
-  '';
+    sed s,/usr/local,$out, -i bin/*defs
 
-  # It has some problems installing the README file, so... out.
-  patchPhase = ''
-    sed -i /README/d Jamfile
+    cd src
+    export makeFlags="$makeFlags prefix=$out"
   '';
 
-  buildPhase = "jam";
+  enableParallelBuilding = true;
 
-  installPhase = ''
-    jam install
-    mkdir -p $out/share
-    pushd $out/share
-    tar xf $srcData
+  postInstall = ''
+    mkdir -p $out/bin
+    cat <<EOF > $out/bin/trigger-rally
+    #!/bin/sh
+    exec $out/games/trigger-rally "$@"
+    EOF
+    chmod +x $out/bin/trigger-rally
   '';
 
+  # search.patch :   fix c++ error.
+  patches = [ ./search.patch ];
+
   meta = {
     description = "Rally";
     homepage = http://trigger-rally.sourceforge.net/;
diff --git a/pkgs/games/trigger/search.patch b/pkgs/games/trigger/search.patch
new file mode 100644
index 000000000000..60a69b159b5b
--- /dev/null
+++ b/pkgs/games/trigger/search.patch
@@ -0,0 +1,14 @@
+diff --git a/src/Trigger/main.cpp b/src/Trigger/main.cpp
+index 39539e1..680c12c 100644
+--- a/src/Trigger/main.cpp
++++ b/src/Trigger/main.cpp
+@@ -890,7 +890,8 @@ bool MainApp::loadAll()
+                 std::smatch mr; // Match Results
+                 std::regex pat(R"(^(\w+)(\..+)$)"); // Pattern
+ 
+-                if (!std::regex_search(std::string(*fname), mr, pat))
++                std::string search(*fname);
++                if (!std::regex_search(search, mr, pat))
+                     continue;
+ 
+                 std::string basefname = mr[1];
diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index fa09d1ca92b9..b219e625033d 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -464,6 +464,17 @@ rec {
 
   };
 
+  vim-jsonnet = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "vim-jsonnet-2016-01-21";
+    src = fetchgit {
+      url = "git://github.com/google/vim-jsonnet";
+      rev = "5d59d0ba6af2bca4484909e02d72c96fbdd5b220";
+      sha256 = "eb7508aedce86bdcb7f104f62490b92bea6e23fb14fafacd251c6aab80aece78";
+    };
+    dependencies = [];
+
+  };
+
   idris-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
     name = "idris-vim-2016-01-29";
     src = fetchgit {
@@ -552,6 +563,17 @@ rec {
 
   };
 
+  zenburn = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "zenburn-2015-09-18";
+    src = fetchgit {
+      url = "git://github.com/jnurmine/zenburn";
+      rev = "f7847fb1531b91e2b4bb4aed5db3146f07765179";
+      sha256 = "05d7c348dfaf70b8068abb3eaba3bc961b060e4d7a4c99fb6c4538fba5085ad1";
+    };
+    dependencies = [];
+
+  };
+
   vim-colorstepper = buildVimPluginFrom2Nix { # created by nix#NixDerivation
     name = "vim-colorstepper-2016-01-28";
     src = fetchgit {
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 88e9bbb95944..69a6682e691c 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -32,6 +32,7 @@
 "github:esneider/YUNOcommit.vim"
 "github:fatih/vim-go"
 "github:flazz/vim-colorschemes"
+"github:google/vim-jsonnet"
 "github:idris-hackers/idris-vim"
 "github:itchyny/calendar.vim"
 "github:itchyny/thumbnail.vim"
@@ -41,6 +42,7 @@
 "github:jeetsukumaran/vim-buffergator"
 "github:jgdavey/tslime.vim"
 "github:jistr/vim-nerdtree-tabs"
+"github:jnurmine/zenburn"
 "github:jonbri/vim-colorstepper"
 "github:joonty/vim-xdebug"
 "github:junegunn/limelight.vim"
@@ -96,6 +98,7 @@
 "surround"
 "table-mode"
 "taglist"
+"tlib"
 "undotree"
 "vim-addon-async"
 "vim-addon-commenting"
diff --git a/pkgs/os-specific/linux/s6-linux-utils/default.nix b/pkgs/os-specific/linux/s6-linux-utils/default.nix
index faf5106c67e3..c6065dbfca2d 100644
--- a/pkgs/os-specific/linux/s6-linux-utils/default.nix
+++ b/pkgs/os-specific/linux/s6-linux-utils/default.nix
@@ -2,7 +2,7 @@
 
 let
 
-  version = "2.0.2.0";
+  version = "2.0.2.3";
 
 in stdenv.mkDerivation rec {
 
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://www.skarnet.org/software/s6-linux-utils/${name}.tar.gz";
-    sha256 = "0y6dq4wb5v1c6ps6a7jyq08r2pjksrvz6n3dnfa9c91gzm4m1dxb";
+    sha256 = "1hwc3dmqh4cyhx9b4gd48yvjrwmfkz968rncpqc511krpfwzyngr";
   };
 
   dontDisableStatic = true;
diff --git a/pkgs/servers/mfi/default.nix b/pkgs/servers/mfi/default.nix
new file mode 100644
index 000000000000..e431ca993a90
--- /dev/null
+++ b/pkgs/servers/mfi/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "mfi-controller-${version}";
+  version = "2.1.11";
+
+  src = fetchurl {
+    url = "https://dl.ubnt.com/mfi/${version}/mFi.unix.zip";
+    sha256 = "0b9q6025zf9zjzq8dcmcyai8rslx67g52j41gacxsk9i5dspmw90";
+  };
+
+  buildInputs = [ unzip ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out
+    cp -ar conf data dl lib webapps $out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.ubnt.com/;
+    description = "Controller for Ubiquiti mFi devices";
+    license = licenses.unfree;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ elitak ];
+  };
+}
diff --git a/pkgs/servers/nosql/mongodb/2.4.8.nix b/pkgs/servers/nosql/mongodb/2.4.8.nix
new file mode 100644
index 000000000000..448d260bdb9d
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/2.4.8.nix
@@ -0,0 +1,45 @@
+# This derivation was resurrected from 4c8ec5e12e187347fd97b1a1a9a43eb19e009ed0
+# by elitak for use with the Ubiquiti mFi Controller package, which breaks at
+# runtime on mongodb3+ and jre8+. We will need to pull in sufficiently old
+# versions of boost and v8 to build this, as well.
+{ stdenv, fetchurl, scons, boost155, v8_3_14, gperftools, pcre, snappy }:
+with stdenv.lib;
+let
+  version = "2.4.8";
+in
+stdenv.mkDerivation rec {
+  name = "mongodb-${version}";
+
+  src = fetchurl {
+    url = "http://downloads.mongodb.org/src/mongodb-src-r${version}.tar.gz";
+    sha256 = "1p6gnharypglfp39halp72fig96fqjhakyy7m76a1prxwpjkqw7x";
+  };
+
+  nativeBuildInputs = [ scons boost155 v8_3_14 gperftools pcre snappy ];
+
+  postPatch = ''
+    substituteInPlace SConstruct \
+        --replace "Environment( BUILD_DIR" "Environment( ENV = os.environ, BUILD_DIR" \
+        --replace 'CCFLAGS=["-Werror", "-pipe"]' 'CCFLAGS=["-pipe"]'
+  '';
+
+  NIX_CFLAGS_COMPILE = "-Wno-unused-local-typedefs";
+
+  buildPhase = ''
+    export SCONSFLAGS="-j$NIX_BUILD_CORES"
+    scons all --use-system-all
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib
+    scons install --use-system-all --full --prefix=$out
+  '';
+
+  meta = {
+    description = "A scalable, high-performance, open source NoSQL database";
+    homepage = http://www.mongodb.org;
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ bluescreen303 elitak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/shells/oh-my-zsh/default.nix b/pkgs/shells/oh-my-zsh/default.nix
index a7e57b145d61..4b2a4d4e763e 100644
--- a/pkgs/shells/oh-my-zsh/default.nix
+++ b/pkgs/shells/oh-my-zsh/default.nix
@@ -7,12 +7,12 @@
 
 stdenv.mkDerivation rec {
   name = "oh-my-zsh-git-${version}";
-  version = "2016-03-24";
+  version = "2016-03-31";
 
   src = fetchgit {
     url = "https://github.com/robbyrussell/oh-my-zsh";
-    rev = "9280f2c874b1126ee9399c353d1e0184fd39b4e4";
-    sha256 = "1rldqfs5vkqxp3r7nn5q1837a363gml0d5pji0zkl7ia49f7bdnk";
+    rev = "286c3e5e28b651c3f629e6aaba589a1cf56da4d8";
+    sha256 = "1jgbpfk6plj1gkwrv7xl1nsxjnrhyh7k3rjkindxx5s9lbq52f7z";
   };
 
   phases = "installPhase";
diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix
index d65b7dc80a8b..fda3e77c61f4 100644
--- a/pkgs/shells/zsh/default.nix
+++ b/pkgs/shells/zsh/default.nix
@@ -21,13 +21,9 @@ stdenv.mkDerivation {
 
   buildInputs = [ ncurses pcre ];
 
-  configureFlags = [
-    "--enable-maildir-support"
-    "--enable-multibyte"
-    "--enable-zprofile=$out/etc/zprofile"
-    "--with-tcsetpgrp"
-    "--enable-pcre"
-  ];
+  preConfigure = ''
+    configureFlags="--enable-maildir-support --enable-multibyte --enable-zprofile=$out/etc/zprofile --with-tcsetpgrp --enable-pcre"
+  '';
 
   # the zsh/zpty module is not available on hydra
   # so skip groups Y Z
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index 836dedf1cb18..87d3938f13d3 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -241,4 +241,5 @@ rec {
       then pkgs.allStdenvs.stdenvDarwinNaked
       else pkgs.stdenv;
   };
+
 }
diff --git a/pkgs/tools/X11/primus/default.nix b/pkgs/tools/X11/primus/default.nix
index f0a971dde18f..88589a058783 100644
--- a/pkgs/tools/X11/primus/default.nix
+++ b/pkgs/tools/X11/primus/default.nix
@@ -4,6 +4,7 @@
 # same LD_LIBRARY_PATH.
 # Other distributions do the same.
 { stdenv
+, stdenv_i686
 , primusLib
 , writeScriptBin
 , primusLib_i686 ? null
@@ -11,8 +12,12 @@
 }:
 
 let
-  primus = if useNvidia then primusLib else primusLib.override { nvidia_x11 = null; };
-  primus_i686 = if useNvidia then primusLib_i686 else primusLib_i686.override { nvidia_x11 = null; };
+  # We override stdenv in case we need different ABI for libGL
+  primusLib_ = primusLib.override { inherit stdenv; };
+  primusLib_i686_ = primusLib_i686.override { stdenv = stdenv_i686; };
+
+  primus = if useNvidia then primusLib_ else primusLib_.override { nvidia_x11 = null; };
+  primus_i686 = if useNvidia then primusLib_i686_ else primusLib_i686_.override { nvidia_x11 = null; };
   ldPath = stdenv.lib.makeLibraryPath ([primus] ++ stdenv.lib.optional (primusLib_i686 != null) primus_i686);
 
 in writeScriptBin "primusrun" ''
diff --git a/pkgs/tools/backup/partimage/default.nix b/pkgs/tools/backup/partimage/default.nix
index 009dc90576b3..18e8bb400253 100644
--- a/pkgs/tools/backup/partimage/default.nix
+++ b/pkgs/tools/backup/partimage/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, bzip2, zlib, newt, openssl, pkgconfig, slang
+{stdenv, fetchurl, fetchpatch, bzip2, zlib, newt, openssl, pkgconfig, slang
 , automake, autoconf, libtool, gettext
 }:
 stdenv.mkDerivation {
@@ -17,6 +17,12 @@ stdenv.mkDerivation {
 
   patches = [
     ./gentoos-zlib.patch
+    (fetchpatch {
+      name = "no-SSLv2.patch";
+      url = "https://projects.archlinux.org/svntogit/community.git/plain/trunk"
+        + "/use-SSLv3-by-default.patch?h=packages/partimage&id=7e95d1c6614e";
+      sha256 = "1zfixa6g1nb1hqfzn2wvyvxsr38gm7908zfml2iaqnwy6iz6jd8v";
+    })
   ];
 
   meta = {
diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix
index 7d79eefb122c..80027c7a0474 100644
--- a/pkgs/tools/filesystems/bindfs/default.nix
+++ b/pkgs/tools/filesystems/bindfs/default.nix
@@ -12,6 +12,9 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   buildInputs = [ fuse pkgconfig ];
+  postFixup = ''
+    ln -s $out/bin/bindfs $out/bin/mount.fuse.bindfs
+  '';
 
   meta = {
     description = "A FUSE filesystem for mounting a directory to another location";
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 59935af0a5d4..d0fda2da4142 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -2,14 +2,14 @@
 , asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt
 }:
 
-let version = "4.5"; in
+let version = "4.5.1"; in
 
 stdenv.mkDerivation rec {
   name = "btrfs-progs-${version}";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "04d8w1wqaij6kxhxcirwvy1bkvc7aikkyw981ciwlznblzc16y7f";
+    sha256 = "1znf2zhb56zbmdjk3lq107678xwsqwc5gczspypmc5i31qnppy7f";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/filesystems/davfs2/davfs2-install.patch b/pkgs/tools/filesystems/davfs2/davfs2-install.patch
deleted file mode 100644
index 93e9b09a9145..000000000000
--- a/pkgs/tools/filesystems/davfs2/davfs2-install.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -rc davfs2-1.4.1/src/Makefile.in davfs2-1.4.1-new/src/Makefile.in
-*** davfs2-1.4.1/src/Makefile.in	2009-06-13 18:31:22.000000000 +0200
---- davfs2-1.4.1-new/src/Makefile.in	2009-09-22 09:12:09.523154536 +0200
-***************
-*** 489,500 ****
-  
-  
-  install-exec-hook:
-! 	chmod u+s $(DESTDIR)$(sbindir)/mount.davfs; \
-! 	if test "$(sbindir)" != "$(ssbindir)"; then \
-! 	  $(mkinstalldirs) $(DESTDIR)$(ssbindir); \
-! 	  $(LN_S) -f $(DESTDIR)$(sbindir)/mount.davfs $(DESTDIR)$(ssbindir)/mount.davfs; \
-! 	  $(LN_S) -f $(DESTDIR)$(sbindir)/umount.davfs $(DESTDIR)$(ssbindir)/umount.davfs; \
-! 	fi
-  
-  uninstall-hook:
-  	if test "$(sbindir)" != "$(ssbindir)"; then \
---- 489,495 ----
-  
-  
-  install-exec-hook:
-! 	chmod u+s $(DESTDIR)$(sbindir)/mount.davfs; 
-  
-  uninstall-hook:
-  	if test "$(sbindir)" != "$(ssbindir)"; then \
-diff -rc davfs2-1.4.1/src/mount_davfs.c davfs2-1.4.1-new/src/mount_davfs.c
-*** davfs2-1.4.1/src/mount_davfs.c	2009-06-12 11:54:58.000000000 +0200
---- davfs2-1.4.1-new/src/mount_davfs.c	2009-09-22 09:45:21.462726033 +0200
-***************
-*** 2327,2335 ****
-      }
-      if (st.st_uid != geteuid())
-          error(EXIT_FAILURE, 0, _("file %s has wrong owner"), filename);
-!     if ((st.st_mode &
-            (S_IXUSR | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX)) != 0)
-!         error(EXIT_FAILURE, 0, _("file %s has wrong permissions"), filename);
-  
-      FILE *file = fopen(filename, "r");
-      if (!file) {
---- 2327,2335 ----
-      }
-      if (st.st_uid != geteuid())
-          error(EXIT_FAILURE, 0, _("file %s has wrong owner"), filename);
-! /*    if ((st.st_mode &
-            (S_IXUSR | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX)) != 0)
-!         error(EXIT_FAILURE, 0, _("file %s has wrong permissions"), filename); */
-  
-      FILE *file = fopen(filename, "r");
-      if (!file) {
diff --git a/pkgs/tools/filesystems/davfs2/default.nix b/pkgs/tools/filesystems/davfs2/default.nix
index d16af28010c2..20b71af6331d 100644
--- a/pkgs/tools/filesystems/davfs2/default.nix
+++ b/pkgs/tools/filesystems/davfs2/default.nix
@@ -1,19 +1,21 @@
 { stdenv, fetchurl, neon, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "davfs2-1.4.7";
+  name = "davfs2-1.5.2";
 
   src = fetchurl {
     url = "mirror://savannah/davfs2/${name}.tar.gz";
-    sha256 = "0i7hrwlfzisb4l2mza1kjj9q9xxixggjplsjm339zl7828mfxh2h";
+    sha256 = "0n5k2xxfxmbsavg5fhp65lmy30hq9jg3w242rdzafvksnnda2d5y";
   };
 
   buildInputs = [ neon zlib ];
 
-  patches = [ ./davfs2-install.patch ./isdir.patch ./fix-sysconfdir.patch ];
+  patches = [ ./isdir.patch ./fix-sysconfdir.patch ];
 
   configureFlags = "--sysconfdir=/etc";
 
+  makeFlags = ["sbindir=$(out)/sbin" "ssbindir=$(out)/sbin"];
+
   meta = {
     homepage = "http://savannah.nongnu.org/projects/davfs2";
     description = "mount WebDAV shares like a typical filesystem";
diff --git a/pkgs/tools/filesystems/grive2/default.nix b/pkgs/tools/filesystems/grive2/default.nix
new file mode 100644
index 000000000000..a3ee1b67bab2
--- /dev/null
+++ b/pkgs/tools/filesystems/grive2/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, pkgconfig, fetchurl, yajl, cmake, libgcrypt, curl, expat, boost, binutils }:
+
+stdenv.mkDerivation rec {
+  version = "0.5.0";
+  name = "grive2-${version}";
+
+  src = fetchFromGitHub {
+    owner = "vitalif";
+    repo = "grive2";
+    rev =  "v${version}";
+    sha256 = "0gyic9228j25l5x8qj9xxxp2cgbw6y4skxqx0xrq6qilhv4lj23c";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ libgcrypt yajl curl expat stdenv boost binutils ];
+
+  meta = with stdenv.lib; {
+    description = "A console Google Drive client";
+    homepage = https://github.com/vitalif/grive2;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/tools/misc/bandwidth/default.nix b/pkgs/tools/misc/bandwidth/default.nix
index ff5e47336d3c..853c619859d4 100644
--- a/pkgs/tools/misc/bandwidth/default.nix
+++ b/pkgs/tools/misc/bandwidth/default.nix
@@ -10,11 +10,13 @@ let
     else null;
 in
 stdenv.mkDerivation rec {
-  name = "bandwidth-1.1b";
+  name = "bandwidth-${version}";
+  version = "1.2.0";
 
   src = fetchurl {
-    url = "http://zsmith.co/archives/${name}.tar.gz";
-    sha256 = "01c3ca0x3rh65j1s2g6cg5xr9fvm0lp2wpmv71vhz55xwqqqmiz8";
+    url = "https://mutineer.org/file.php?id=ee10698c6a675ece26f08ddb5e6001323d6305c1&p=bandwidth";
+    name = "${name}.tar.gz";
+    sha256 = "1jq6a4n77gcx68bkr8l79agsmgv8saw9nv183297gnah1g67nvw6";
   };
 
   buildInputs = [ nasm ];
@@ -30,9 +32,9 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = https://zsmith.co/bandwidth.html;
-    description = "and artificial benchmark for identifying weaknesses in the memory subsystem";
+    description = "Artificial benchmark for identifying weaknesses in the memory subsystem";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ wkennington ];
+    maintainers = with maintainers; [ nckx wkennington ];
   };
 }
diff --git a/pkgs/tools/misc/execline/default.nix b/pkgs/tools/misc/execline/default.nix
index 7478b1e33eea..1726afca0d02 100644
--- a/pkgs/tools/misc/execline/default.nix
+++ b/pkgs/tools/misc/execline/default.nix
@@ -2,7 +2,7 @@
 
 let
 
-  version = "2.1.4.0";
+  version = "2.1.4.5";
 
 in stdenv.mkDerivation rec {
 
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   src = fetchgit {
     url = "git://git.skarnet.org/execline";
     rev = "refs/tags/v${version}";
-    sha256 = "1ih0mmkra3aa697nz7haaifq2hfy3wjj39npxzg9zr37m7yw67yz";
+    sha256 = "1k4db9iyskrqf6wbc4dkiqgpn0wb43qc9rf1br7kvy9rrzq3yrj0";
   };
 
   dontDisableStatic = true;
@@ -25,7 +25,9 @@ in stdenv.mkDerivation rec {
     "--with-include=${skalibs}/include"
     "--with-lib=${skalibs}/lib"
     "--with-dynlib=${skalibs}/lib"
-  ] ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ]);
+  ]
+  ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ])
+  ++ (stdenv.lib.optional stdenv.isDarwin "--target=${stdenv.system}");
 
   meta = {
     homepage = http://skarnet.org/software/execline/;
diff --git a/pkgs/tools/misc/s6-portable-utils/default.nix b/pkgs/tools/misc/s6-portable-utils/default.nix
index 0ca0774989de..70b36222cca9 100644
--- a/pkgs/tools/misc/s6-portable-utils/default.nix
+++ b/pkgs/tools/misc/s6-portable-utils/default.nix
@@ -2,7 +2,7 @@
 
 let
 
-  version = "2.0.5.2";
+  version = "2.0.5.3";
 
 in stdenv.mkDerivation rec {
 
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://www.skarnet.org/software/s6-portable-utils/${name}.tar.gz";
-    sha256 = "0d5dvqz61abr4m2n10by8hccvw51jdvyckvpbbq0c57viri54jzm";
+    sha256 = "029fg9c37vwh9yagd69h8r192nrx4mfva8dwgpm1gxkdssrh3gi7";
   };
 
   dontDisableStatic = true;
@@ -20,7 +20,8 @@ in stdenv.mkDerivation rec {
     "--with-include=${skalibs}/include"
     "--with-lib=${skalibs}/lib"
     "--with-dynlib=${skalibs}/lib"
-  ];
+  ]
+  ++ (stdenv.lib.optional stdenv.isDarwin "--target=${stdenv.system}");
 
   meta = {
     homepage = http://www.skarnet.org/software/s6-portable-utils/;
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index 454d3b418187..3fd4e37c9080 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -4,13 +4,13 @@ stdenv.mkDerivation rec {
 
   name = pname + "-" + version;
   pname = "i2pd";
-  version = "2.5.1";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "17qf2pbxf05iw2gzyc5bc2zg3a4ns6zf1pm8q9j7nqhchh1rv4cm";
+    sha256 = "0siqg2gf1w85c3j7w6bzjyyjzlxr8z57jk0675gn8yz0xvpkrdys";
   };
 
   buildInputs = [ boost zlib openssl ];
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 11ea1de89cf4..79c9613ee4c9 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -41,7 +41,9 @@ stdenv.mkDerivation rec {
     '';
 
   patches =
-    [ ./locale_archive.patch ]
+    [ ./locale_archive.patch
+      ./fix-host-key-algorithms-plus.patch
+    ]
     ++ optional withGssapiPatches gssapiSrc;
 
   buildInputs = [ zlib openssl libedit pkgconfig pam ]
diff --git a/pkgs/tools/networking/openssh/fix-host-key-algorithms-plus.patch b/pkgs/tools/networking/openssh/fix-host-key-algorithms-plus.patch
new file mode 100644
index 000000000000..02846e9bdad2
--- /dev/null
+++ b/pkgs/tools/networking/openssh/fix-host-key-algorithms-plus.patch
@@ -0,0 +1,52 @@
+Specifying "HostKeyAlgorithms +ssh-dds" does not work properly because
+setting any value for HostKeyAlgorithms causes the known host keys to
+be ignored for the purpose of determining the priority of algorithms.
+This was fixed upstream for HostKeyAlgorithms in sshd_config, but not
+in ssh_config. The fix is to apply order_hostkeyalgs() if the user
+specifies a HostKeyAlgorithms starting with "+".
+
+diff -ru -x '*~' openssh-7.2p2-orig/sshconnect2.c openssh-7.2p2/sshconnect2.c
+--- openssh-7.2p2-orig/sshconnect2.c	2016-03-09 19:04:48.000000000 +0100
++++ openssh-7.2p2/sshconnect2.c	2016-04-01 15:39:45.140945902 +0200
+@@ -100,7 +100,7 @@
+ }
+ 
+ static char *
+-order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port)
++order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port, char *algs)
+ {
+ 	char *oavail, *avail, *first, *last, *alg, *hostname, *ret;
+ 	size_t maxlen;
+@@ -116,7 +116,7 @@
+ 	for (i = 0; i < options.num_system_hostfiles; i++)
+ 		load_hostkeys(hostkeys, hostname, options.system_hostfiles[i]);
+ 
+-	oavail = avail = xstrdup(KEX_DEFAULT_PK_ALG);
++	oavail = avail = xstrdup(algs);
+ 	maxlen = strlen(avail) + 1;
+ 	first = xmalloc(maxlen);
+ 	last = xmalloc(maxlen);
+@@ -181,18 +181,21 @@
+ 	myproposal[PROPOSAL_MAC_ALGS_CTOS] =
+ 	    myproposal[PROPOSAL_MAC_ALGS_STOC] = options.macs;
+ 	if (options.hostkeyalgorithms != NULL) {
++		int append = options.hostkeyalgorithms[0] == '+';
+ 		if (kex_assemble_names(KEX_DEFAULT_PK_ALG,
+ 		    &options.hostkeyalgorithms) != 0)
+ 			fatal("%s: kex_assemble_namelist", __func__);
+ 		myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] =
+-		    compat_pkalg_proposal(options.hostkeyalgorithms);
++		    compat_pkalg_proposal(append
++			? order_hostkeyalgs(host, hostaddr, port, options.hostkeyalgorithms)
++			: options.hostkeyalgorithms);
+ 	} else {
+ 		/* Enforce default */
+ 		options.hostkeyalgorithms = xstrdup(KEX_DEFAULT_PK_ALG);
+ 		/* Prefer algorithms that we already have keys for */
+ 		myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] =
+ 		    compat_pkalg_proposal(
+-		    order_hostkeyalgs(host, hostaddr, port));
++		    order_hostkeyalgs(host, hostaddr, port, KEX_DEFAULT_PK_ALG));
+ 	}
+ 
+ 	if (options.rekey_limit || options.rekey_interval)
diff --git a/pkgs/tools/networking/s6-dns/default.nix b/pkgs/tools/networking/s6-dns/default.nix
index 233425dc3a11..8715cb0c45cc 100644
--- a/pkgs/tools/networking/s6-dns/default.nix
+++ b/pkgs/tools/networking/s6-dns/default.nix
@@ -2,7 +2,7 @@
 
 let
 
-  version = "2.0.0.4";
+  version = "2.0.0.7";
 
 in stdenv.mkDerivation rec {
 
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   src = fetchgit {
     url = "git://git.skarnet.org/s6-dns";
     rev = "refs/tags/v${version}";
-    sha256 = "0h2s0r0g0qi74aw04c0jap09yjzzprwc6ihknx8bqgbzv08yv03w";
+    sha256 = "033pijilkvj3vw94aqrvavr4mqafm7kcc8ql8lc3ma6lqkx4xyak";
   };
 
   dontDisableStatic = true;
@@ -25,7 +25,9 @@ in stdenv.mkDerivation rec {
     "--with-include=${skalibs}/include"
     "--with-lib=${skalibs}/lib"
     "--with-dynlib=${skalibs}/lib"
-  ] ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ]);
+  ]
+  ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ])
+  ++ (stdenv.lib.optional stdenv.isDarwin "--target=${stdenv.system}");
 
   meta = {
     homepage = http://www.skarnet.org/software/s6-dns/;
diff --git a/pkgs/tools/networking/s6-networking/default.nix b/pkgs/tools/networking/s6-networking/default.nix
index 5f24592f030e..603b2f61551b 100644
--- a/pkgs/tools/networking/s6-networking/default.nix
+++ b/pkgs/tools/networking/s6-networking/default.nix
@@ -2,7 +2,7 @@
 
 let
 
-  version = "2.1.0.1";
+  version = "2.1.0.4";
 
 in stdenv.mkDerivation rec {
 
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   src = fetchgit {
     url = "git://git.skarnet.org/s6-networking";
     rev = "refs/tags/v${version}";
-    sha256 = "0jdjxwqrp7lzdb85sp1gdkm7s478wyl7wqxb3jfxflgh2bgdgvy2";
+    sha256 = "1mvsiiv2zk1mbhway5q593xzjzd3lyzdqg85wrpvv791mv0kk8m9";
   };
 
   dontDisableStatic = true;
@@ -32,7 +32,8 @@ in stdenv.mkDerivation rec {
     "--with-dynlib=${execline}/lib"
     "--with-dynlib=${s6}/lib"
     "--with-dynlib=${s6Dns}/lib"
-  ];
+  ]
+  ++ (stdenv.lib.optional stdenv.isDarwin "--target=${stdenv.system}");
 
   meta = {
     homepage = http://www.skarnet.org/software/s6-networking/;
diff --git a/pkgs/tools/security/gnupg/20.nix b/pkgs/tools/security/gnupg/20.nix
index 117fc41c1abe..65d43ec9dbee 100644
--- a/pkgs/tools/security/gnupg/20.nix
+++ b/pkgs/tools/security/gnupg/20.nix
@@ -12,11 +12,11 @@ with stdenv.lib;
 assert x11Support -> pinentry != null;
 
 stdenv.mkDerivation rec {
-  name = "gnupg-2.0.29";
+  name = "gnupg-2.0.30";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "1jaakn0mi6pi2b3g3imxj3qzxw2zg0ifxs30baq2b157dcw6pvb8";
+    sha256 = "0wax4cy14hh0h7kg9hj0hjn9424b71z8lrrc5kbsasrn9xd7hag3";
   };
 
   buildInputs
diff --git a/pkgs/tools/security/gnupg/gpgkey2ssh-20.patch b/pkgs/tools/security/gnupg/gpgkey2ssh-20.patch
index b536a4fe50e3..4bfdc13ef598 100644
--- a/pkgs/tools/security/gnupg/gpgkey2ssh-20.patch
+++ b/pkgs/tools/security/gnupg/gpgkey2ssh-20.patch
@@ -2,7 +2,7 @@ diff --git a/tools/gpgkey2ssh.c b/tools/gpgkey2ssh.c
 index 903fb5b..d5611dc 100644
 --- a/tools/gpgkey2ssh.c
 +++ b/tools/gpgkey2ssh.c
-@@ -266,7 +266,7 @@ main (int argc, char **argv)
+@@ -268,7 +268,7 @@ main (int argc, char **argv)
    keyid = argv[1];
  
    ret = asprintf (&command,
diff --git a/pkgs/tools/system/s6-rc/default.nix b/pkgs/tools/system/s6-rc/default.nix
index a3b244d875b6..35763e8212e3 100644
--- a/pkgs/tools/system/s6-rc/default.nix
+++ b/pkgs/tools/system/s6-rc/default.nix
@@ -2,7 +2,7 @@
 
 let
 
-  version = "0.0.1.0";
+  version = "0.0.2.1";
 
 in stdenv.mkDerivation rec {
 
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   src = fetchgit {
     url = "git://git.skarnet.org/s6-rc";
     rev = "refs/tags/v${version}";
-    sha256 = "02ppsda8pg7mph3r7lrh7dhi6ip99bgghsl3lf902cg9i4n50q6q";
+    sha256 = "0x9ghi1f7zqphzlzyz67z7n7mnnyxf1hghi2wa2f8cdl70nfdi2f";
   };
 
   dontDisableStatic = true;
@@ -29,7 +29,9 @@ in stdenv.mkDerivation rec {
     "--with-dynlib=${skalibs}/lib"
     "--with-dynlib=${execline}/lib"
     "--with-dynlib=${s6}/lib"
-  ] ++ [ (if stdenv.isDarwin then "--disable-shared" else "--enable-shared") ];
+  ]
+  ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ])
+  ++ (stdenv.lib.optional stdenv.isDarwin "--target=${stdenv.system}");
 
   meta = {
     homepage = http://skarnet.org/software/s6-rc/;
diff --git a/pkgs/tools/system/s6/default.nix b/pkgs/tools/system/s6/default.nix
index 5e29c20339cf..e1e30de5799f 100644
--- a/pkgs/tools/system/s6/default.nix
+++ b/pkgs/tools/system/s6/default.nix
@@ -2,7 +2,7 @@
 
 let
 
-  version = "2.2.1.0";
+  version = "2.2.4.3";
 
 in stdenv.mkDerivation rec {
 
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   src = fetchgit {
     url = "git://git.skarnet.org/s6";
     rev = "refs/tags/v${version}";
-    sha256 = "1g8gr3znxj8lyqpwrmgzh47yb64zldrvvvgpp1m4pb37k5k11bj9";
+    sha256 = "0j981xslcsra8filaawgwq6daqvxxjs0014lqb7dy3qf7c5pc4l8";
   };
 
   dontDisableStatic = true;
@@ -26,7 +26,9 @@ in stdenv.mkDerivation rec {
     "--with-lib=${execline}/lib"
     "--with-dynlib=${skalibs}/lib"
     "--with-dynlib=${execline}/lib"
-  ] ++ [ (if stdenv.isDarwin then "--disable-shared" else "--enable-shared") ];
+  ]
+  ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ])
+  ++ (stdenv.lib.optional stdenv.isDarwin "--target=${stdenv.system}");
 
   preBuild = ''
     substituteInPlace "src/daemontools-extras/s6-log.c" \
diff --git a/pkgs/tools/virtualization/xe-guest-utilities/default.nix b/pkgs/tools/virtualization/xe-guest-utilities/default.nix
new file mode 100644
index 000000000000..9c783023d66f
--- /dev/null
+++ b/pkgs/tools/virtualization/xe-guest-utilities/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl, bzip2, lzo, zlib, xz, bash, python, gnutar, gnused, gnugrep, which }:
+
+stdenv.mkDerivation (rec {
+  name = "xe-guest-utilities";
+  version = "6.2.0";
+  meta = {
+    description = "Citrix XenServer Tools";
+    homepage = http://citrix.com/English/ps2/products/product.asp?contentID=683148&ntref=hp_nav_US;
+    maintainers = with stdenv.lib.maintainers; [ benwbooth ];
+    platforms = stdenv.lib.platforms.linux;
+    license = [ stdenv.lib.licenses.gpl2 stdenv.lib.licenses.lgpl21 ];
+  };
+  src = fetchurl {
+    url = "https://sources.archlinux.org/other/community/xe-guest-utilities/xe-guest-utilities_${version}-1120.tar.gz";
+    sha256 = "f9593cd9588188f80253e736f48d8dd94c5b517abb18316085f86acffab48794";
+  };
+  buildInputs = [ bzip2 gnutar gnused python lzo zlib xz stdenv gnugrep which ];
+  patches = [ ./ip-address.patch ];
+  postPatch = ''
+    tar xf "$NIX_BUILD_TOP/$name-$version/xenstore-sources.tar.bz2"
+  '';
+
+  buildPhase = ''
+    export CC=gcc
+    export CFLAGS='-Wall -Wstrict-prototypes -Wno-unused-local-typedefs -Wno-sizeof-pointer-memaccess'
+    export PYTHON=python2
+    cd "$NIX_BUILD_TOP/$name-$version/uclibc-sources"
+    for file in Config.mk tools/libxc/Makefile tools/misc/Makefile tools/misc/lomount/Makefile tools/xenstore/Makefile; do
+      substituteInPlace "$file" --replace -Werror ""
+    done
+    make -C tools/include
+    make -C tools/libxc
+    make -C tools/xenstore
+  '';
+
+  installPhase = ''
+    export CFLAGS+='-Wall -Wstrict-prototypes -Wno-unused-local-typedefs -Wno-sizeof-pointer-memaccess'
+    if [[ $CARCH == x86_64 ]]; then
+      export LIBLEAFDIR_x86_64=lib
+    fi
+    for f in include libxc xenstore; do
+      [[ ! -d $NIX_BUILD_TOP/$name-$version/uclibc-sources/tools/$f ]] && continue
+      make -C "$NIX_BUILD_TOP/$name-$version/uclibc-sources/tools/$f" DESTDIR="$out" BINDIR=/bin SBINDIR=/bin INCLUDEDIR=/include LIBDIR=/lib install
+    done
+    rm -r "$out"/var
+
+    cd "$NIX_BUILD_TOP/$name-$version"
+    install -Dm755 xe-update-guest-attrs "$out/bin/xe-update-guest-attrs"
+    install -Dm755 xe-daemon "$out/bin/xe-daemon"
+    install -Dm644 xen-vcpu-hotplug.rules "$out/lib/udev/rules.d/10-xen-vcpu-hotplug.rules"
+    substituteInPlace "$out/bin/xe-daemon" --replace sbin bin
+    substituteInPlace "$out/bin/xe-daemon" --replace /usr/ "$out/"
+    substituteInPlace "$out/bin/xe-update-guest-attrs" --replace /usr/ "$out/"
+    substituteInPlace "$out/bin/xe-update-guest-attrs" --replace 'export PATH=' 'export PATH=$PATH:'
+    substituteInPlace "$out/lib/udev/rules.d/10-xen-vcpu-hotplug.rules" --replace /bin/sh '${bash}/bin/sh'
+
+    cat <<'EOS' >"$out/bin/xe-linux-distribution"
+    #!${bash}/bin/bash -eu
+    . /etc/os-release
+    if [[ $# -gt 0 ]]; then
+      mkdir -p "$(dirname "$1")"
+      exec 1>"$1"
+    fi
+    cat <<EOF
+    os_distro="$ID"
+    os_majorver="''${VERSION_ID%%.*}"
+    os_minorver="''${VERSION_ID#*.}"
+    os_uname="$(uname -r)"
+    os_name="$PRETTY_NAME"
+    EOF
+    EOS
+    chmod 0755 "$out/bin/xe-linux-distribution"
+  '';
+
+})
diff --git a/pkgs/tools/virtualization/xe-guest-utilities/ip-address.patch b/pkgs/tools/virtualization/xe-guest-utilities/ip-address.patch
new file mode 100644
index 000000000000..185f259ef708
--- /dev/null
+++ b/pkgs/tools/virtualization/xe-guest-utilities/ip-address.patch
@@ -0,0 +1,16 @@
+diff -uNr a/xe-update-guest-attrs b/xe-update-guest-attrs
+--- a/xe-update-guest-attrs	2012-09-25 12:45:14.000000000 +0200
++++ b/xe-update-guest-attrs	2012-11-21 16:46:35.000000000 +0100
+@@ -177,9 +177,9 @@
+ #           collisions:0 txqueuelen:0 
+ #           RX bytes:3604609 (3.4 MiB)  TX bytes:3604609 (3.4 MiB)
+ 
+-ifs=`/sbin/ifconfig | sed -n -e 's/^\([a-z0-9]\+\).*/name \1/p' \
+-    -e 's/.*inet addr:\('$IPADDR_RE'\) .*/ipv4 \1/p' \
+-    -e 's+.*inet6 addr: \('$IPADDR6_RE'\)/.*+ipv6 \1+p' | \
++ifs=`ip addr show | sed -n -e 's/^[[:digit:]]*: \([a-z0-9]*\): .*/name \1 /gp;' \
++    -e 's/^[[:space:]]\{4\}inet \('${IPADDR_RE}'\)\/.*/ipv4 \1 /gp;' \
++    -e 's/^[[:space:]]\{4\}inet6 \('${IPADDR6_RE}'\)\/.*/ipv6 \1 /gp;' | \
+ while read tag value; do
+     case "${tag}" in
+         name)
\ No newline at end of file
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 26265fd4ebb4..5dcb2781de8d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -325,6 +325,8 @@ in
 
   separateDebugInfo = makeSetupHook { } ../build-support/setup-hooks/separate-debug-info.sh;
 
+  useOldCXXAbi = makeSetupHook { } ../build-support/setup-hooks/use-old-cxx-abi.sh;
+
 
   ### TOOLS
 
@@ -1061,6 +1063,7 @@ in
 
     mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc {
       inherit (pythonPackages) gyp;
+      protobuf = protobuf.override { stdenv = clangStdenv; };
     };
 
     table = callPackage ../tools/inputmethods/ibus-engines/ibus-table {
@@ -1181,9 +1184,7 @@ in
 
   darkstat = callPackage ../tools/networking/darkstat { };
 
-  davfs2 = callPackage ../tools/filesystems/davfs2 {
-    neon = neon_0_29;
-  };
+  davfs2 = callPackage ../tools/filesystems/davfs2 { };
 
   dbench = callPackage ../development/tools/misc/dbench { };
 
@@ -1422,6 +1423,7 @@ in
 
     mozc = callPackage ../tools/inputmethods/fcitx-engines/fcitx-mozc {
       inherit (pythonPackages) gyp;
+      protobuf = protobuf.override { stdenv = clangStdenv; };
     };
 
     table-other = callPackage ../tools/inputmethods/fcitx-engines/fcitx-table-other { };
@@ -1744,6 +1746,8 @@ in
     json_c = json-c-0-11; # won't configure with 0.12; others are vulnerable
   };
 
+  grive2 = callPackage ../tools/filesystems/grive2 { };
+
   groff = callPackage ../tools/text/groff {
     ghostscript = null;
   };
@@ -2933,6 +2937,11 @@ in
     qt = qt4;
   };
 
+  qgifer = callPackage ../applications/video/qgifer {
+    giflib = giflib_4_1;
+    qt = qt4;
+  };
+
   qhull = callPackage ../development/libraries/qhull { };
 
   qjoypad = callPackage ../tools/misc/qjoypad { };
@@ -3772,6 +3781,8 @@ in
 
   xdummy = callPackage ../tools/misc/xdummy { };
 
+  xe-guest-utilities = callPackage ../tools/virtualization/xe-guest-utilities { };
+
   xflux = callPackage ../tools/misc/xflux { };
 
   xfsprogs = callPackage ../tools/filesystems/xfsprogs { };
@@ -3905,14 +3916,7 @@ in
 
   ### DEVELOPMENT / COMPILERS
 
-  abc =
-    abcPatchable [];
-
-  abcPatchable = patches :
-    callPackage ../development/compilers/abc/default.nix {
-      inherit patches;
-      javaCup = callPackage ../development/libraries/java/cup { };
-    };
+  abc = callPackage ../development/compilers/abc/default.nix { };
 
   aldor = callPackage ../development/compilers/aldor { };
 
@@ -5190,10 +5194,21 @@ in
 
   erlangR16 = callPackage ../development/interpreters/erlang/R16.nix { };
   erlangR16_odbc = callPackage ../development/interpreters/erlang/R16.nix { odbcSupport = true; };
-  erlangR17 = callPackage ../development/interpreters/erlang/R17.nix { };
-  erlangR17_odbc = callPackage ../development/interpreters/erlang/R17.nix { odbcSupport = true; };
-  erlangR17_javac = callPackage ../development/interpreters/erlang/R17.nix { javacSupport = true; };
-  erlangR17_odbc_javac = callPackage ../development/interpreters/erlang/R17.nix { javacSupport = true; odbcSupport = true; };
+  erlangR17 = callPackage ../development/interpreters/erlang/R17.nix {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+  };
+  erlangR17_odbc = callPackage ../development/interpreters/erlang/R17.nix {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+    odbcSupport = true;
+  };
+  erlangR17_javac = callPackage ../development/interpreters/erlang/R17.nix {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+    javacSupport = true;
+  };
+  erlangR17_odbc_javac = callPackage ../development/interpreters/erlang/R17.nix {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+    javacSupport = true; odbcSupport = true;
+  };
   erlangR18 = callPackage ../development/interpreters/erlang/R18.nix {
     inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
   };
@@ -8864,6 +8879,10 @@ in
     gnutls = gnutls;
   });
 
+  v8_3_14 = callPackage ../development/libraries/v8/3.14.nix {
+    inherit (pythonPackages) gyp;
+  };
+
   v8_3_16_14 = callPackage ../development/libraries/v8/3.16.14.nix {
     inherit (pythonPackages) gyp;
   };
@@ -9579,6 +9598,8 @@ in
 
   meteor = callPackage ../servers/meteor/default.nix { };
 
+  mfi = callPackage ../servers/mfi { };
+
   # Backwards compatibility.
   mod_dnssd = pkgs.apacheHttpdPackages.mod_dnssd;
   mod_evasive = pkgs.apacheHttpdPackages.mod_evasive;
@@ -9696,6 +9717,8 @@ in
     sasl = cyrus_sasl;
   };
 
+  mongodb248 = callPackage ../servers/nosql/mongodb/2.4.8.nix { };
+
   riak = callPackage ../servers/nosql/riak/2.1.1.nix { };
 
   influxdb = (callPackage ../servers/nosql/influxdb { }).bin // { outputs = [ "bin" ]; };
@@ -13591,7 +13614,7 @@ in
 
   skype = callPackage_i686 ../applications/networking/instant-messengers/skype {
     qt4 = pkgsi686Linux.qt4.override {
-      stdenv = clangStdenv;
+      stdenv = pkgsi686Linux.clangStdenv;
     };
   };
 
@@ -13869,6 +13892,8 @@ in
 
   timbreid = callPackage ../applications/audio/pd-plugins/timbreid { };
 
+  timewarrior = callPackage ../applications/misc/timewarrior { };
+
   timidity = callPackage ../tools/misc/timidity { };
 
   tint2 = callPackage ../applications/misc/tint2 { };
@@ -14042,6 +14067,7 @@ in
   };
 
   primus = callPackage ../tools/X11/primus {
+    stdenv_i686 = pkgsi686Linux.stdenv;
     primusLib_i686 = if system == "x86_64-linux"
       then pkgsi686Linux.primusLib
       else null;
@@ -15436,12 +15462,10 @@ in
   liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
 
   openblas = callPackage ../development/libraries/science/math/openblas { };
-  openblas_2_14 = callPackage ../development/libraries/science/math/openblas/0.2.14.nix { };
 
   # A version of OpenBLAS using 32-bit integers on all platforms for compatibility with
   # standard BLAS and LAPACK.
   openblasCompat = openblas.override { blas64 = false; };
-  openblasCompat_2_14 = openblas_2_14.override { blas64 = false; };
 
   openlibm = callPackage ../development/libraries/science/math/openlibm {};
 
@@ -15462,6 +15486,15 @@ in
 
   ### SCIENCE/MOLECULAR-DYNAMICS
 
+  lammps = callPackage ../applications/science/molecular-dynamics/lammps {
+    fftw = fftw;
+  };
+
+  lammps-mpi = appendToName "mpi" (lammps.override {
+    mpiSupport = true;
+    mpi = openmpi;
+  });
+
   gromacs = callPackage ../applications/science/molecular-dynamics/gromacs {
     singlePrec = true;
     mpiEnabled = false;
@@ -15713,7 +15746,7 @@ in
   gtkwave = callPackage ../applications/science/electronics/gtkwave { };
 
   kicad = callPackage ../applications/science/electronics/kicad {
-    wxGTK = wxGTK29;
+    wxGTK = wxGTK30;
   };
 
   ngspice = callPackage ../applications/science/electronics/ngspice { };
diff --git a/pkgs/top-level/go-packages.nix b/pkgs/top-level/go-packages.nix
index 5735aac8ad1a..2639cc4ac7ac 100644
--- a/pkgs/top-level/go-packages.nix
+++ b/pkgs/top-level/go-packages.nix
@@ -3832,12 +3832,12 @@ let
     subPackages = [ "./" ];
   };
 
-  godep = buildFromGitHub {
-    rev    = "5598a9815350896a2cdf9f4f1d0a3003ab9677fb";
-    version = "2015-10-15";
+  godep = buildFromGitHub rec {
+    version = "60";
+    rev    = "v${version}";
     owner  = "tools";
     repo   = "godep";
-    sha256 = "0zc1ah5cvaqa3zw0ska89a40x445vwl1ixz8v42xi3zicx16ibwz";
+    sha256 = "1v05185ikfcb3sz9ygcwm9x8la77i27ml1bg9fs6vvahjzyr0rif";
   };
 
   color = buildFromGitHub {
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 5568d45e7cfb..3a257dab37c9 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -13331,7 +13331,7 @@ let self = _self // overrides; _self = with self; {
     };
     propagatedBuildInputs = [
       LWP ConfigGeneral NetIP TermReadKey Perl5lib
-      CryptSSLeay CSSDOM ];
+      CryptSSLeay CSSDOM LWPProtocolHttps ];
     meta = {
       homepage = http://validator.w3.org/checklink;
       description = "A tool to check links and anchors in Web pages or full Web sites";
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index c75c433cd37a..24279c41088d 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -785,7 +785,7 @@ in modules // {
       url = "http://devel.ag-projects.com/repositories/${pname}";
       rev = "release-${version}";
       sha256 = "19dszv44py8qrq0jcjdycxpa7z2p8hi3ijq9gnqdsazbbjzf9svn";
-    };  
+    };
     buildInputs = with self; [ zope_interface ];
 
   };
@@ -1572,14 +1572,17 @@ in modules // {
   };
 
   batinfo = buildPythonPackage rec {
-    version = "0.2";
+    version = "0.3";
     name = "batinfo-${version}";
 
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/b/batinfo/${name}.tar.gz";
-      sha256 = "1kmrdr1c2ivpqgp2csln7vbanga3sh3nvaqmgbsg96z6fbg7f7w8";
+      sha256 = "0gyzkxzvj5l6qrw706bnm3cckqzzzbrjr7jkxc087d7775a73499";
     };
 
+    # No tests included
+    doCheck = false;
+
     meta = {
       homepage = https://github.com/nicolargo/batinfo;
       description = "A simple Python lib to retrieve battery information";
@@ -1667,27 +1670,32 @@ in modules // {
   });
 
   beaker = buildPythonPackage rec {
-    name = "Beaker-1.7.0";
-
-    disabled = isPy3k;
+    name = "Beaker-${version}";
+    version = "1.8.0";
 
-    src = pkgs.fetchurl {
-      url = "http://pypi.python.org/packages/source/B/Beaker/${name}.tar.gz";
-      sha256 = "0vv4y22b3ly1212n9nnhgvc8yz32adlfl7w7s1wj0i5srpjcgvlq";
+    # The pypy release do not contains the tests
+    src = pkgs.fetchFromGitHub {
+      owner = "bbangert";
+      repo = "beaker";
+      rev = "${version}";
+      sha256 = "17yfr7a307n8rdl09was4j60xqk2s0hk0hywdkigrpj4qnw0is7g";
     };
 
     buildInputs =
-      [ self.sqlalchemy7
-        self.pycryptopp
-        self.nose
+      [ self.nose
         self.mock
         self.webtest
       ];
-
-    # http://hydra.nixos.org/build/4511591/log/raw
-    doCheck = false;
+    propagatedBuildInputs = [
+      self.sqlalchemy
+      self.pycrypto
+    ] ++ optionals (isPy26 || isPy27) [
+      self.funcsigs
+      self.pycryptopp
+    ];
 
     meta = {
+      description = "A Session and Caching library with WSGI Middleware";
       maintainers = with maintainers; [ garbas iElectric ];
       platforms = platforms.all;
     };
@@ -1874,13 +1882,16 @@ in modules // {
 
   colorlog = buildPythonPackage rec {
     name = "colorlog-${version}";
-    version = "2.6.0";
+    version = "2.6.1";
 
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/c/colorlog/${name}.tar.gz";
-      sha256 = "1s8z9zr4r18igr4rri71nba01arnpppifrkaxhi2xb51500sw0qg";
+      sha256 = "0djv6ky1yk28s1l093w8plg19kp88q4nyrm1vfxyq0s9j4pix29l";
     };
 
+    # No tests included
+    doCheck = false;
+
     meta = {
       description = "Log formatting with colors";
       homepage = https://github.com/borntyping/python-colorlog;
@@ -3317,23 +3328,19 @@ in modules // {
 
 
   coilmq = buildPythonPackage (rec {
-    name = "coilmq-0.6.1";
+    name = "CoilMQ-${version}";
+    version = "1.0.0";
 
     src = pkgs.fetchurl {
-      url = "http://pypi.python.org/packages/source/C/CoilMQ/CoilMQ-0.6.1.tar.gz";
-      sha256 = "9755733bdae33a9d87630232d166a7da2382f68c2cffb3bb81503806e8d310cb";
+      url = "http://pypi.python.org/packages/source/C/CoilMQ/${name}.tar.gz";
+      sha256 = "0wwa6fsqw1mxsryvgp0yrdjil8axyj0kslzi7lr45cnhgp5ab375";
     };
 
-    propagatedBuildInputs = with self; [ self.stompclient ];
+    propagatedBuildInputs = with self; [ stompclient pythondaemon redis pid];
 
-    preConfigure = ''
-      sed -i '/distribute/d' setup.py
-    '';
-
-    buildInputs = with self; [ self.coverage self.sqlalchemy7 ];
+    buildInputs = with self; [ pytest six click coverage sqlalchemy ];
 
-    # ValueError: Could not parse auth file:
-    # /tmp/nix-build-.../CoilMQ-0.6.1/coilmq/tests/resources/auth.ini
+    # The teste data is not included in the distribution
     doCheck = false;
 
     meta = {
@@ -4908,6 +4915,10 @@ in modules // {
       sha256 = "0kvjlkp96qzh3j31szpjlzqbp02brixh4j4clnpw80b0hspq5yq3";
     };
 
+    # Not supported.
+    # See instead https://pypi.python.org/pypi/dnspython3/1.12.0
+    disabled = isPy3k;
+
     meta = {
       description = "A DNS toolkit for Python 3.x";
       homepage = http://www.dnspython.org;
@@ -5375,7 +5386,7 @@ in modules // {
       url = "http://devel.ag-projects.com/repositories/${pname}";
       rev = "release-${version}";
       sha256 = "1zxhpq8i4jwsk7wmfncqfm211hqikj3hp38cfv509924bi76wak8";
-    };  
+    };
 
     propagatedBuildInputs = with self; [ greenlet ];
 
@@ -6104,6 +6115,23 @@ in modules // {
     };
   };
 
+  imagesize = buildPythonPackage rec {
+    name = "imagesize-${version}";
+    version = "0.7.0";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/i/imagesize/${name}.tar.gz";
+      sha256 = "0msgz4ncp2nb5nbsxnf8kvxsl6nhwvc3b46ik097fvznl3y10gdv";
+    };
+
+    meta = {
+      description = "Getting image size from png/jpeg/jpeg2000/gif file";
+      homepage = https://github.com/shibukawa/imagesize_py;
+      license = with licenses; [ mit ];
+    };
+
+  };
+
   imread = buildPythonPackage rec {
     name = "python-imread-${version}";
     version = "0.5.1";
@@ -8907,11 +8935,11 @@ in modules // {
 
   flake8 = buildPythonPackage rec {
     name = "flake8-${version}";
-    version = "2.5.1";
+    version = "2.5.4";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/f/flake8/${name}.tar.gz";
-      sha256 = "448aed48b0671fe6062f47b98c3081f3a4b36fbe99ddb8ac2a3be6e6cb135603";
+      sha256 = "0bs9cz4fr99r2rwig1b8jwaadl1nan7kgpdzqwj0bwbckwbmh7nc";
     };
 
     buildInputs = with self; [ nose mock ];
@@ -11291,7 +11319,16 @@ in modules // {
       sha256 = "1li7q04ljrvwharw4fblcbfhvk6s0l3lnv8yqb4c22lcgbkiqlps";
     };
 
-    buildInputs = [ pkgs.pkgconfig pkgs.fuse pkgs.attr ];
+    buildInputs = with self; [ pytest pkgs.pkgconfig pkgs.fuse pkgs.attr pkgs.which ];
+
+    propagatedBuildInputs = with self; [ contextlib2 ];
+
+    checkPhase = ''
+      py.test
+    '';
+
+    # FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin'
+    doCheck = false;
 
     meta = {
       description = "Python bindings for the low-level FUSE API";
@@ -11628,11 +11665,11 @@ in modules // {
 
 
   mccabe = buildPythonPackage (rec {
-    name = "mccabe-0.3";
+    name = "mccabe-0.4.0";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/m/mccabe/${name}.tar.gz";
-      sha256 = "3d8ca9bf65c5014f469180544d1dd5bb5b9df709aad6304f9c2e4370ae0a7b7c";
+      sha256 = "0yr08a36h8lqlif10l4xcikbbig7q8f41gqywir7rrvnv3mi4aws";
     };
 
     # See https://github.com/flintwork/mccabe/issues/31
@@ -11644,6 +11681,8 @@ in modules // {
       }}" test_mccabe.py
     '';
 
+    buildInputs = with self; [ pytestrunner pytest ];
+
     meta = {
       description = "McCabe checker, plugin for flake8";
       homepage = "https://github.com/flintwork/mccabe";
@@ -12205,8 +12244,8 @@ in modules // {
       url = "http://devel.ag-projects.com/repositories/${pname}";
       rev = "release-${version}";
       sha256 = "0jqvvssbwzq7bwqn3wrjfnpj8zb558mynn2visnlrcma6b57yhwd";
-    };  
-    
+    };
+
     propagatedBuildInputs = with self; [ eventlib application gnutls ];
   };
 
@@ -12790,12 +12829,12 @@ in modules // {
   });
 
   nibabel = buildPythonPackage rec {
-    version = "2.0.1";
+    version = "2.0.2";
     name = "nibabel-${version}";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/n/nibabel/${name}.tar.gz";
-      sha256 = "e559bcb40ae395c7f75c51079f815a13a94cd8a035a47315fc9fba0d2ae2ecaf";
+      sha256 = "0k8mv5zmwb6vc8kwrydl3pp0pnw937rf5mz10figkxczrw6dkk7h";
     };
 
     propagatedBuildInputs = with self; [
@@ -12804,17 +12843,10 @@ in modules // {
       modules.sqlite3
     ];
 
-    preCheck = ''
-      # Test does not work on Py3k because it calls 'python'.
-      # https://github.com/nipy/nibabel/issues/341
-      rm nisext/tests/test_testers.py
-      # Test fails with numpy 1.10.1: ERROR: nibabel.tests.test_proxy_api.TestPARRECAPI.test_proxy_slicing
-      # See https://github.com/nipy/nibabel/pull/358
-      # and https://github.com/numpy/numpy/issues/6491
-      rm nibabel/tests/test_proxy_api.py
-      # https://github.com/nipy/nibabel/issues/366
-      rm nisext/tests/test_doctest_markup.py
-    '';
+    # Failing tests
+    # nibabel.tests.test_minc1.test_old_namespace
+    # nisext.tests.test_testers.test_back_tick
+    doCheck = false;
 
     meta = {
       homepage = http://nipy.org/nibabel/;
@@ -13213,10 +13245,10 @@ in modules // {
 
   buildNumpyPackage = callPackage ../development/python-modules/numpy.nix {
     gfortran = pkgs.gfortran;
-    blas = pkgs.openblasCompat_2_14;
+    blas = pkgs.openblasCompat;
   };
 
-  numpy = self.numpy_1_10;
+  numpy = self.numpy_1_11;
 
   numpy_1_10 = self.buildNumpyPackage rec {
     version = "1.10.4";
@@ -14912,79 +14944,6 @@ in modules // {
 
   pandas = self.pandas_18;
 
-  pandas_17 = let
-    inherit (pkgs.stdenv.lib) optional optionalString;
-    inherit (pkgs.stdenv) isDarwin;
-  in buildPythonPackage rec {
-    name = "pandas-${version}";
-    version = "0.17.1";
-
-    src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/source/p/pandas/${name}.tar.gz";
-      sha256 = "cfd7214a7223703fe6999fbe34837749540efee1c985e6aee9933f30e3f72837";
-    };
-
-    buildInputs = with self; [ nose ] ++ optional isDarwin pkgs.libcxx;
-    propagatedBuildInputs = with self; [
-      dateutil
-      scipy_0_17
-      numexpr
-      pytz
-      xlrd
-      bottleneck
-      sqlalchemy
-      lxml
-      html5lib
-      modules.sqlite3
-      beautifulsoup4
-    ] ++ optional isDarwin pkgs.darwin.locale; # provides the locale command
-
-    # For OSX, we need to add a dependency on libcxx, which provides
-    # `complex.h` and other libraries that pandas depends on to build.
-    patchPhase = optionalString isDarwin ''
-      cpp_sdk="${pkgs.libcxx}/include/c++/v1";
-      echo "Adding $cpp_sdk to the setup.py common_include variable"
-      substituteInPlace setup.py \
-        --replace "['pandas/src/klib', 'pandas/src']" \
-                  "['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
-
-      # disable clipboard tests since pbcopy/pbpaste are not open source
-      substituteInPlace pandas/io/tests/test_clipboard.py \
-        --replace pandas.util.clipboard no_such_module \
-        --replace OSError ImportError
-    '';
-
-    # The flag `-A 'not network'` will disable tests that use internet.
-    # The `-e` flag disables a few problematic tests.
-    # https://github.com/pydata/pandas/issues/11169
-    # https://github.com/pydata/pandas/issues/11287
-    # The test_sql checks fail specifically on python 3.5; see here:
-    # https://github.com/pydata/pandas/issues/11112
-    checkPhase = let
-      testsToSkip = ["test_data" "test_excel" "test_html" "test_json"
-                     "test_frequencies" "test_frame"
-                     "test_read_clipboard_infer_excel"
-                     "test_interp_alt_scipy" "test_nanops" "test_stats"] ++
-                    optional isPy35 "test_sql";
-    in ''
-      runHook preCheck
-      # The flag `-A 'not network'` will disable tests that use internet.
-      # The `-e` flag disables a few problematic tests.
-      ${python.executable} setup.py nosetests -A 'not slow and not network' --stop \
-        -e '${concatStringsSep "|" testsToSkip}' --verbosity=3
-
-      runHook postCheck
-    '';
-
-    meta = {
-      homepage = "http://pandas.pydata.org/";
-      description = "Python Data Analysis Library";
-      license = licenses.bsd3;
-      maintainers = with maintainers; [ raskin fridh ];
-      platforms = platforms.unix;
-    };
-  };
-
   pandas_18 = let
     inherit (pkgs.stdenv.lib) optional optionalString;
     inherit (pkgs.stdenv) isDarwin;
@@ -15033,18 +14992,17 @@ in modules // {
 
     # The flag `-A 'not network'` will disable tests that use internet.
     # The `-e` flag disables a few problematic tests.
-    # https://github.com/pydata/pandas/issues/11169
-    # https://github.com/pydata/pandas/issues/11287
-    # The test_sql checks fail specifically on python 3.5; see here:
-    # https://github.com/pydata/pandas/issues/11112
+
+    # Disable two tests that are broken since numpy 1.11. Fixed upstream.
+
     checkPhase = let
-      testsToSkip = [];
+      testsToSkip = [ "test_range_slice_day" "test_range_slice_seconds" ];
     in ''
       runHook preCheck
       # The flag `-A 'not network'` will disable tests that use internet.
       # The `-e` flag disables a few problematic tests.
-      ${python.executable} setup.py nosetests -A 'not slow and not network' \
-         --verbosity=3
+      ${python.executable} setup.py nosetests -A 'not slow and not network' --stop \
+        -e '${concatStringsSep "|" testsToSkip}' --verbosity=3
 
       runHook postCheck
     '';
@@ -16721,6 +16679,30 @@ in modules // {
     };
   };
 
+  pydot_ng = buildPythonPackage rec {
+    name = "pydot_ng-1.0.0";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pydot-ng/${name}.tar.gz";
+      sha256 = "0h8k8wlzvnb40v4js7afgfyhp3wasmb1kg4gr6z7ck63iv8fq864";
+    };
+
+    buildInputs = [ self.pytest self.unittest2 ];
+    propagatedBuildInputs = [ pkgs.graphviz self.pyparsing ];
+
+    checkPhase = ''
+      mkdir test/my_tests
+      py.test test
+    '';
+
+    meta = {
+      homepage = "https://pypi.python.org/pypi/pydot-ng";
+      description = "Python 3-compatible update of pydot, a Python interface to Graphviz's Dot";
+      license = licenses.mit;
+      maintainers = [ maintainers.bcdarwin ];
+    };
+  };
+
   pyelasticsearch = buildPythonPackage (rec {
     name = "pyelasticsearch-1.4";
 
@@ -16953,12 +16935,12 @@ in modules // {
   };
 
   pygments = buildPythonPackage rec {
-    version = "2.1";
+    version = "2.1.3";
     name = "Pygments-${version}";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/P/Pygments/${name}.tar.gz";
-      sha256 = "0yx4p3w9lw1kw24zr87xnaqxm007mdxgwa5wjpwnrcfpmxgyz80k";
+      sha256 = "10axnp2wpjnq9g8wg53fx0c70dfxqrz498jyz8mrdx9a3flwir48";
     };
 
     propagatedBuildInputs = with self; [ docutils ];
@@ -17796,6 +17778,9 @@ in modules // {
 
     buildInputs = with self; [ ];
 
+    # Not supported. Package is no longer maintained.
+    disabled = isPy3k;
+
     meta = {
       description = "Pure-Python PDF toolkit";
       homepage = "http://pybrary.net/pyPdf/";
@@ -18160,11 +18145,11 @@ in modules // {
 
   pytz = buildPythonPackage rec {
     name = "pytz-${version}";
-    version = "2015.7";
+    version = "2016.3";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/p/pytz/${name}.tar.gz";
-      sha256 = "99266ef30a37e43932deec2b7ca73e83c8dbc3b9ff703ec73eca6b1dae6befea";
+      sha256 = "1a3hjclyylc4m1v1dn04b38wm2vl649ijdswpg0d8m8n0lcxlj9l";
     };
 
     meta = {
@@ -19808,14 +19793,19 @@ in modules // {
   };
 
   sigal = buildPythonPackage rec {
-    name = "sigal-0.9.2";
+    name = "sigal-1.0.1";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/sigal/${name}.tar.gz";
-      sha256 = "0mk3bzaxn9snx9lc0pj9zvgdgdyhkza6b8z5x91772mlv84sfw6c";
+      sha256 = "198g2r8bii6a0p44mlk1wg07jjv95xpfvnqhhxxziqpizc776b34";
     };
 
-    propagatedBuildInputs = with self; [ jinja2 markdown pillow pilkit clint click pytest blinker ];
+    buildInputs = with self; [ pytest ];
+    propagatedBuildInputs = with self; [ jinja2 markdown pillow pilkit clint click blinker ];
+
+    # No tests included
+    doCheck = false;
+
 
     meta = {
       description = "Yet another simple static gallery generator";
@@ -20105,6 +20095,27 @@ in modules // {
     };
   };
 
+  pid = buildPythonPackage rec {
+    name = "pid-${version}";
+    version = "2.0.1";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pid/${name}.tar.gz";
+      sha256 = "0cylj8p25nwkdfgy4pzai21wyzmrxdqlwwbzqag9gb5qcjfdwk05";
+    };
+
+    buildInputs = with self; [ nose ];
+
+    # No tests included
+    doCheck = false;
+
+    meta = {
+      description = "Pidfile featuring stale detection and file-locking";
+      homepage = https://github.com/trbs/pid/;
+      license = licenses.asl20;
+    };
+  };
+
   pydns = buildPythonPackage rec {
     name = "pydns-2.3.6";
     disabled = isPy3k;
@@ -20118,6 +20129,28 @@ in modules // {
 
   };
 
+  pythondaemon = buildPythonPackage rec {
+    name = "python-daemon-${version}";
+    version = "2.1.1";
+
+    src = pkgs.fetchurl {
+      url = " https://pypi.python.org/packages/source/p/python-daemon/${name}.tar.gz";
+      sha256 = "17v80qb98p1gv4j9mq6wb55cv7hc4j1hzw5y2f4s5hrpxs3w3a2q";
+    };
+
+    # A test fail within chroot builds.
+    doCheck = false;
+
+    buildInputs = with self; [ mock testscenarios ];
+    propagatedBuildInputs = with self; [ docutils lockfile ];
+
+    meta = {
+      description = "Library to implement a well-behaved Unix daemon process";
+      homepage = https://alioth.debian.org/projects/python-daemon/;
+      licenses =  [ licenses.gpl3Plus licenses.asl20 ];
+    };
+  };
+
   sympy = buildPythonPackage rec {
     name = "sympy-0.7.6.1";
     disabled = isPy34 || isPy35 || isPyPy;  # some tests fail
@@ -20501,14 +20534,16 @@ in modules // {
 
 
   sphinx = buildPythonPackage (rec {
-    name = "Sphinx-1.3.4";
+    name = "Sphinx-1.3.6";
+
+    # 1.4 is broken
+    # https://github.com/sphinx-doc/sphinx/issues/2394
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/S/Sphinx/${name}.tar.gz";
-      sha256 = "0mw06q7bzzjylgwh0wnnaxmwc95hx8w95as4vcgpan579brw7b4a";
+      sha256 = "12pzlfkjjlwgvsj56k0y809jpx5mgcs9548k1l4kdbr028ifjfqb";
     };
 
-    patches = [ ../development/python-modules/sphinx-fix-tests-with-pygments-2.1.patch ];
     LC_ALL = "en_US.UTF-8";
     checkPhase = ''
       PYTHON=${python.executable} make test
@@ -20541,11 +20576,11 @@ in modules // {
   };
 
   sphinx_rtd_theme = buildPythonPackage (rec {
-    name = "sphinx_rtd_theme-0.1.8";
+    name = "sphinx_rtd_theme-0.1.9";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/sphinx_rtd_theme/${name}.tar.gz";
-      sha256 = "12mnb7qscr07mllmyyqfpx37778sr21m8663b4fivnk17bnk7xkl";
+      sha256 = "18d0r63w7jpdrk4q5qy26n08vdlmnj9sar93akwjphyambw4cf17";
     };
 
     postPatch = ''
@@ -20751,7 +20786,7 @@ in modules // {
 
     src = pkgs.fetchFromGitHub {
       repo = "sqlalchemy-imageattach";
-      owner = "crosspop";      
+      owner = "crosspop";
       rev = "${version}";
       sha256 = "1pqf7vk4lsvnhw169cqfyk0iz5f8n45470mdslklpi38z2fax9p0";
     };
@@ -22474,12 +22509,12 @@ in modules // {
 
 
   webtest = buildPythonPackage rec {
-    version = "2.0.15";
+    version = "2.0.20";
     name = "webtest-${version}";
 
     src = pkgs.fetchurl {
-      url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.zip";
-      sha256 = "c320adc2cd862ea71ca9e2012e6157eb12f5f8d1632d1541f2eabf984aaa3ecc";
+      url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.tar.gz";
+      sha256 = "0bv0qhdjakdsdgj4sk21gnpp8xp8bga4x03p6gjb83ihrsb7n4xv";
     };
 
     preConfigure = ''
@@ -23935,11 +23970,11 @@ in modules // {
 
 
   pyusb = buildPythonPackage rec {
-    name = "pyusb-1.0.0b2";
+    name = "pyusb-1.0.0rc1";
 
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pyusb/${name}.tar.gz";
-      sha256 = "14ec66077bdcd6f1aa9e892a0a35a54bb3c1ec56aa740ead64349c18f0186d19";
+      sha256 = "07cjq11qhngzjd746k7688s6y2x7lpj669fxqfsiy985rg0jsn7j";
     };
 
     # Fix the USB backend library lookup
@@ -23949,6 +23984,9 @@ in modules // {
       sed -i -e "s|libname = .*|libname = \"$libusb\"|" usb/backend/libusb1.py
     '';
 
+    # No tests included
+    doCheck = false;
+
     meta = {
       description = "Python USB access module (wraps libusb 1.0)";  # can use other backends
       homepage = http://pyusb.sourceforge.net/;
@@ -23967,6 +24005,10 @@ in modules // {
       sha256 = "3edf4b83a3fa1a7bd953b452b76542d54285ff6f1145b6e19f9b5438120fa408";
     };
 
+    # Requires pyusb 1.0.0b1.
+    # Likely current pyusb will work but we need to patch the hard requirement then.
+    broken = true;
+
     propagatedBuildInputs = with self; [ pyusb ];
 
     meta = {
@@ -25385,7 +25427,7 @@ in modules // {
         thrift
         beautifulsoup4
         markdown2
-        sqlalchemy7
+        sqlalchemy
         html2text
         evernote
     ];
@@ -25625,6 +25667,9 @@ in modules // {
       sha256 = "7d3e54add7dccdaeb6cc9e61ceaf7b587914cf8ebd6821cfea008acdc1e50d4a";
     };
 
+    # Tests fail with 3.x. Furthermore, package is no longer maintained.
+    disabled = isPy3k;
+
     propagatedBuildInputs = with self; [
       pyparsing
     ];