summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranz Pletz <fpletz@fnordicwalking.de>2016-03-07 22:08:27 +0100
committerFranz Pletz <fpletz@fnordicwalking.de>2016-03-07 22:08:27 +0100
commite9fc4e7db63e91f3e787d9d3bfd91c798e8bd8bd (patch)
tree4f1e1a834fbbc0e201e0fb453801d005ed22d332
parentbaee91ec60ca724b00027033a8e0d7f97cf376a7 (diff)
parentbcfb3dd9c605bf68730757cc60d01dec91f009f2 (diff)
downloadnixlib-e9fc4e7db63e91f3e787d9d3bfd91c798e8bd8bd.tar
nixlib-e9fc4e7db63e91f3e787d9d3bfd91c798e8bd8bd.tar.gz
nixlib-e9fc4e7db63e91f3e787d9d3bfd91c798e8bd8bd.tar.bz2
nixlib-e9fc4e7db63e91f3e787d9d3bfd91c798e8bd8bd.tar.lz
nixlib-e9fc4e7db63e91f3e787d9d3bfd91c798e8bd8bd.tar.xz
nixlib-e9fc4e7db63e91f3e787d9d3bfd91c798e8bd8bd.tar.zst
nixlib-e9fc4e7db63e91f3e787d9d3bfd91c798e8bd8bd.zip
Merge remote-tracking branch 'origin/master' into hardened-stdenv
-rw-r--r--.mention-bot3
-rw-r--r--lib/maintainers.nix2
-rw-r--r--nixos/doc/manual/installation/installing.xml5
-rw-r--r--nixos/lib/make-iso9660-image.nix2
-rw-r--r--nixos/modules/config/krb5.nix2
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix12
-rw-r--r--nixos/modules/services/monitoring/grafana.nix2
-rw-r--r--nixos/modules/services/networking/bird.nix4
-rw-r--r--nixos/modules/services/networking/nsd.nix12
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix2
-rw-r--r--nixos/modules/services/networking/unbound.nix2
-rw-r--r--nixos/modules/services/system/kerberos.nix4
-rw-r--r--nixos/modules/services/torrent/transmission.nix1
-rw-r--r--nixos/modules/services/x11/window-managers/default.nix1
-rw-r--r--nixos/modules/services/x11/window-managers/exwm.nix55
-rw-r--r--pkgs/applications/audio/fluidsynth/default.nix7
-rw-r--r--pkgs/applications/audio/non/default.nix20
-rw-r--r--pkgs/applications/audio/pithos/default.nix5
-rw-r--r--pkgs/applications/audio/rubyripper/default.nix3
-rw-r--r--pkgs/applications/editors/atom/default.nix4
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix6
-rw-r--r--pkgs/applications/editors/emacs-modes/elpa-generated.nix118
-rw-r--r--pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix52
-rw-r--r--pkgs/applications/graphics/ahoviewer/default.nix36
-rw-r--r--pkgs/applications/graphics/sane/backends/git.nix6
-rw-r--r--pkgs/applications/misc/electrum/default.nix27
-rw-r--r--pkgs/applications/misc/octoprint/plugins.nix4
-rw-r--r--pkgs/applications/misc/pgadmin/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/default.nix11
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths_50.patch75
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/sources.nix19
-rw-r--r--pkgs/applications/networking/cluster/marathon/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/mesos/default.nix21
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/default.nix13
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix6
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix94
-rw-r--r--pkgs/development/go-modules/generic/default.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix3
-rw-r--r--pkgs/development/haskell-modules/lib.nix2
-rw-r--r--pkgs/development/interpreters/pixie/default.nix79
-rw-r--r--pkgs/development/interpreters/pixie/dust.nix27
-rw-r--r--pkgs/development/interpreters/pixie/load_paths.patch25
-rw-r--r--pkgs/development/interpreters/pixie/make-paths-configurable.patch122
-rw-r--r--pkgs/development/interpreters/racket/default.nix9
-rw-r--r--pkgs/development/interpreters/ruby/default.nix77
-rw-r--r--pkgs/development/interpreters/ruby/patchsets.nix89
-rw-r--r--pkgs/development/libraries/libebml/default.nix4
-rw-r--r--pkgs/development/libraries/libmatroska/default.nix13
-rw-r--r--pkgs/development/libraries/libpsl/default.nix4
-rw-r--r--pkgs/development/libraries/libsoundio/default.nix4
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix18
-rw-r--r--pkgs/development/tools/analysis/cppcheck/default.nix20
-rw-r--r--pkgs/games/crawl/default.nix4
-rw-r--r--pkgs/misc/cups/drivers/splix/default.nix22
-rw-r--r--pkgs/misc/cups/drivers/splix/splix-2.0.0-gcc45.patch18
-rw-r--r--pkgs/misc/emulators/retrofe/default.nix16
-rw-r--r--pkgs/misc/vim-plugins/default.nix20
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names2
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.12.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix6
-rw-r--r--pkgs/os-specific/linux/mcelog/default.nix4
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/legacy340.nix13
-rw-r--r--pkgs/os-specific/linux/upower/default.nix4
-rw-r--r--pkgs/servers/http/tomcat/6.0.nix4
-rw-r--r--pkgs/servers/http/tomcat/7.0.nix4
-rw-r--r--pkgs/servers/http/tomcat/8.0.nix4
-rw-r--r--pkgs/servers/mail/archiveopteryx/default.nix12
-rw-r--r--pkgs/tools/backup/borg/default.nix4
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix16
-rw-r--r--pkgs/tools/inputmethods/keyfuzz/default.nix21
-rw-r--r--pkgs/tools/misc/mimeo/default.nix33
-rw-r--r--pkgs/tools/misc/ms-sys/default.nix6
-rw-r--r--pkgs/tools/misc/xdo/default.nix6
-rw-r--r--pkgs/tools/networking/curl/default.nix2
-rw-r--r--pkgs/tools/networking/openssh/default.nix5
-rw-r--r--pkgs/tools/networking/unbound/default.nix5
-rw-r--r--pkgs/top-level/all-packages.nix42
-rw-r--r--pkgs/top-level/go-packages.nix16
-rw-r--r--pkgs/top-level/perl-packages.nix21
83 files changed, 995 insertions, 485 deletions
diff --git a/.mention-bot b/.mention-bot
index 4c200e30279a..40e57f996606 100644
--- a/.mention-bot
+++ b/.mention-bot
@@ -1,5 +1,6 @@
 {
   "userBlacklist": [
-    "civodul"
+    "civodul",
+    "jhasse"
   ]
 }
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 84e95a2409e3..b908ec3115ab 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -215,6 +215,7 @@
   maurer = "Matthew Maurer <matthew.r.maurer+nix@gmail.com>";
   mbakke = "Marius Bakke <ymse@tuta.io>";
   mbe = "Brandon Edens <brandonedens@gmail.com>";
+  mboes = "Mathieu Boespflug <mboes@tweag.net>";
   mcmtroffaes = "Matthias C. M. Troffaes <matthias.troffaes@gmail.com>";
   meditans = "Carlo Nucera <meditans@gmail.com>";
   meisternu = "Matt Miemiec <meister@krutt.org>";
@@ -308,6 +309,7 @@
   sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
   sjourdois = "Stéphane ‘kwisatz’ Jourdois <sjourdois@gmail.com>";
   skeidel = "Sven Keidel <svenkeidel@gmail.com>";
+  skrzyp = "Jakub Skrzypnik <jot.skrzyp@gmail.com>";
   sleexyz = "Sean Lee <freshdried@gmail.com>";
   smironov = "Sergey Mironov <ierton@gmail.com>";
   spacefrogg = "Michael Raitza <spacefrogg-nixos@meterriblecrew.net>";
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml
index 9aec57fb6d5a..7e71df28cdb3 100644
--- a/nixos/doc/manual/installation/installing.xml
+++ b/nixos/doc/manual/installation/installing.xml
@@ -22,7 +22,10 @@
   (with empty password).</para></listitem>
 
   <listitem><para>If you downloaded the graphical ISO image, you can
-  run <command>start display-manager</command> to start KDE.</para></listitem>
+  run <command>start display-manager</command> to start KDE. If you
+  want to continue on the terminal, you can use
+  <command>loadkeys</command> to switch to your preferred keyboard layout.
+  (We even provide neo2 via <command>loadkeys de neo</command>!)</para></listitem>
 
   <listitem><para>The boot process should have brought up networking (check
   <command>ip a</command>).  Networking is necessary for the
diff --git a/nixos/lib/make-iso9660-image.nix b/nixos/lib/make-iso9660-image.nix
index b2409c6006bc..21c9cca316d1 100644
--- a/nixos/lib/make-iso9660-image.nix
+++ b/nixos/lib/make-iso9660-image.nix
@@ -22,7 +22,7 @@
 , # Whether this should be an efi-bootable El-Torito CD.
   efiBootable ? false
 
-, # Wheter this should be an hybrid CD (bootable from USB as well as CD).
+, # Whether this should be an hybrid CD (bootable from USB as well as CD).
   usbBootable ? false
 
 , # The path (in the ISO file system) of the boot image.
diff --git a/nixos/modules/config/krb5.nix b/nixos/modules/config/krb5.nix
index d2198e4ac1ae..b845ef69a753 100644
--- a/nixos/modules/config/krb5.nix
+++ b/nixos/modules/config/krb5.nix
@@ -32,7 +32,7 @@ in
 
       kdc = mkOption {
         default = "kerberos.mit.edu";
-        description = "Kerberos Domain Controller.";
+        description = "Key Distribution Center";
       };
 
       kerberosAdminServer = mkOption {
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index cf2ee20801ab..78f0cd18040d 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -257,13 +257,11 @@ in
         type = types.bool;
         default = true;
         description = ''
-          If enabled, Nix will only download binaries from binary
-          caches if they are cryptographically signed with any of the
-          keys listed in
-          <option>nix.binaryCachePublicKeys</option>. If disabled (the
-          default), signatures are neither required nor checked, so
-          it's strongly recommended that you use only trustworthy
-          caches and https to prevent man-in-the-middle attacks.
+          If enabled (the default), Nix will only download binaries from binary caches if
+          they are cryptographically signed with any of the keys listed in
+          <option>nix.binaryCachePublicKeys</option>. If disabled, signatures are neither
+          required nor checked, so it's strongly recommended that you use only
+          trustworthy caches and https to prevent man-in-the-middle attacks.
         '';
       };
 
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index 1dec528b5a2c..5c6f063b1493 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -87,7 +87,7 @@ in {
 
     staticRootPath = mkOption {
       description = "Root path for static assets.";
-      default = "${cfg.package.out}/share/grafana/public";
+      default = "${cfg.package}/share/grafana/public";
       type = types.str;
     };
 
diff --git a/nixos/modules/services/networking/bird.nix b/nixos/modules/services/networking/bird.nix
index e7e1db191529..e76cdac14ca8 100644
--- a/nixos/modules/services/networking/bird.nix
+++ b/nixos/modules/services/networking/bird.nix
@@ -30,7 +30,7 @@ in
 
       user = mkOption {
         type = types.string;
-        default = "ircd";
+        default = "bird";
         description = ''
           BIRD Internet Routing Daemon user.
         '';
@@ -38,7 +38,7 @@ in
 
       group = mkOption {
         type = types.string;
-        default = "ircd";
+        default = "bird";
         description = ''
           BIRD Internet Routing Daemon group.
         '';
diff --git a/nixos/modules/services/networking/nsd.nix b/nixos/modules/services/networking/nsd.nix
index ca08bb57895a..333a3378c4cc 100644
--- a/nixos/modules/services/networking/nsd.nix
+++ b/nixos/modules/services/networking/nsd.nix
@@ -346,7 +346,7 @@ in
       type = types.bool;
       default = true;
       description = ''
-        Wheter NSD should answer VERSION.BIND and VERSION.SERVER CHAOS class queries.
+        Whether NSD should answer VERSION.BIND and VERSION.SERVER CHAOS class queries.
       '';
     };
 
@@ -378,7 +378,7 @@ in
       type = types.bool;
       default = true;
       description = ''
-        Wheter to listen on IPv4 connections.
+        Whether to listen on IPv4 connections.
       '';
     };
 
@@ -394,7 +394,7 @@ in
       type = types.bool;
       default = true;
       description = ''
-        Wheter to listen on IPv6 connections.
+        Whether to listen on IPv6 connections.
       '';
     };
 
@@ -434,7 +434,7 @@ in
       type = types.bool;
       default = pkgs.stdenv.isLinux;
       description = ''
-        Wheter to enable SO_REUSEPORT on all used sockets. This lets multiple
+        Whether to enable SO_REUSEPORT on all used sockets. This lets multiple
         processes bind to the same port. This speeds up operation especially
         if the server count is greater than one and makes fast restarts less
         prone to fail
@@ -445,7 +445,7 @@ in
       type = types.bool;
       default = false;
       description = ''
-        Wheter if this server will be a root server (a DNS root server, you
+        Whether this server will be a root server (a DNS root server, you
         usually don't want that).
       '';
     };
@@ -524,7 +524,7 @@ in
       type = types.bool;
       default = true;
       description = ''
-        Wheter to check mtime of all zone files on start and sighup.
+        Whether to check mtime of all zone files on start and sighup.
       '';
     };
 
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index 20a1777f3ccb..5971a5a250d3 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -263,7 +263,7 @@ in
 
             serviceConfig =
               { ExecStart =
-                  "${cfgc.package}/sbin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
+                  "${cfgc.package}/bin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
                   "-f ${pkgs.writeText "sshd_config" cfg.extraConfig}";
                 KillMode = "process";
               } // (if cfg.startWhenNeeded then {
diff --git a/nixos/modules/services/networking/unbound.nix b/nixos/modules/services/networking/unbound.nix
index e154aed0843a..89762fe52488 100644
--- a/nixos/modules/services/networking/unbound.nix
+++ b/nixos/modules/services/networking/unbound.nix
@@ -113,7 +113,7 @@ in
       '';
 
       serviceConfig = {
-        ExecStart = "${pkgs.unbound}/sbin/unbound -d -c ${stateDir}/unbound.conf";
+        ExecStart = "${pkgs.unbound}/bin/unbound -d -c ${stateDir}/unbound.conf";
         ExecStopPost="${pkgs.utillinux}/bin/umount ${stateDir}/dev/random";
       };
     };
diff --git a/nixos/modules/services/system/kerberos.nix b/nixos/modules/services/system/kerberos.nix
index e0c3f95c3ccc..347302c6090d 100644
--- a/nixos/modules/services/system/kerberos.nix
+++ b/nixos/modules/services/system/kerberos.nix
@@ -46,7 +46,7 @@ in
       };
 
     systemd.services.kdc = {
-      description = "Kerberos Domain Controller daemon";
+      description = "Key Distribution Center daemon";
       wantedBy = [ "multi-user.target" ];
       preStart = ''
         mkdir -m 0755 -p ${stateDir}
@@ -55,7 +55,7 @@ in
     };
 
     systemd.services.kpasswdd = {
-      description = "Kerberos Domain Controller daemon";
+      description = "Kerberos Password Changing daemon";
       wantedBy = [ "multi-user.target" ];
       script = "${heimdal}/sbin/kpasswdd";
     };
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index 5ae12ac1e953..7718a721763c 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -128,6 +128,7 @@ in
           ${pkgs.c-ares}/lib/libcares*.so*          mr,
           ${pkgs.libcap}/lib/libcap*.so*            mr,
           ${pkgs.attr}/lib/libattr*.so*             mr,
+          ${pkgs.lz4}/lib/liblz4*.so*               mr,
 
           @{PROC}/sys/kernel/random/uuid   r,
           @{PROC}/sys/vm/overcommit_memory r,
diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix
index 37d3348b8a32..26dfbb1f4e18 100644
--- a/nixos/modules/services/x11/window-managers/default.nix
+++ b/nixos/modules/services/x11/window-managers/default.nix
@@ -13,6 +13,7 @@ in
     ./clfswm.nix
     ./compiz.nix
     ./dwm.nix
+    ./exwm.nix
     ./fluxbox.nix
     ./herbstluftwm.nix
     ./i3.nix
diff --git a/nixos/modules/services/x11/window-managers/exwm.nix b/nixos/modules/services/x11/window-managers/exwm.nix
new file mode 100644
index 000000000000..dbbd8a125d66
--- /dev/null
+++ b/nixos/modules/services/x11/window-managers/exwm.nix
@@ -0,0 +1,55 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.xserver.windowManager.exwm;
+  loadScript = pkgs.writeText "emacs-exwm-load" ''
+    (require 'exwm)
+    ${optionalString cfg.enableDefaultConfig ''
+      (require 'exwm-config)
+      (exwm-config-default)
+    ''}
+  '';
+  packages = epkgs: cfg.extraPackages epkgs ++ [ epkgs.exwm ];
+  exwm-emacs = pkgs.emacsWithPackages packages;
+in
+
+{
+  options = {
+    services.xserver.windowManager.exwm = {
+      enable = mkEnableOption "exwm";
+      enableDefaultConfig = mkOption {
+        default = true;
+        example = false;
+        type = lib.types.bool;
+        description = "Enable an uncustomised exwm configuration.";
+      };
+      extraPackages = mkOption {
+        default = self: [];
+        example = literalExample ''
+          epkgs: [
+            epkgs.emms
+            epkgs.magit
+            epkgs.proofgeneral
+          ]
+        '';
+        description = ''
+          Extra packages available to Emacs. The value must be a
+          function which receives the attrset defined in
+          <varname>emacsPackages</varname> as the sole argument.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.xserver.windowManager.session = singleton {
+      name = "exwm";
+      start = ''
+        ${exwm-emacs}/bin/emacs -l ${loadScript}
+      '';
+    };
+    environment.systemPackages = [ exwm-emacs ];
+  };
+}
diff --git a/pkgs/applications/audio/fluidsynth/default.nix b/pkgs/applications/audio/fluidsynth/default.nix
index bd35b78fbc0e..bb37cac5500e 100644
--- a/pkgs/applications/audio/fluidsynth/default.nix
+++ b/pkgs/applications/audio/fluidsynth/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, alsaLib, glib, libjack2, libsndfile, pkgconfig
-, libpulseaudio }:
+, libpulseaudio, CoreServices, CoreAudio, AudioUnit }:
 
 stdenv.mkDerivation  rec {
   name = "fluidsynth-${version}";
@@ -18,10 +18,11 @@ stdenv.mkDerivation  rec {
   '';
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin
-    "-framework CoreAudio";
+    "-framework CoreAudio -framework CoreServices";
 
   buildInputs = [ glib libsndfile pkgconfig ]
-    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ alsaLib libpulseaudio libjack2 ];
+    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ alsaLib libpulseaudio libjack2 ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices CoreAudio AudioUnit ];
 
   meta = with stdenv.lib; {
     description = "Real-time software synthesizer based on the SoundFont 2 specifications";
diff --git a/pkgs/applications/audio/non/default.nix b/pkgs/applications/audio/non/default.nix
index 5a54c94f1f97..ead53721950b 100644
--- a/pkgs/applications/audio/non/default.nix
+++ b/pkgs/applications/audio/non/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, fetchFromGitHub, pkgconfig, python2, cairo, libjpeg, ntk, libjack2, libsndfile,
-ladspaH, liblrdf, liblo, libsigcxx
+{ stdenv, fetchFromGitHub, pkgconfig, python2, cairo, libjpeg, ntk, libjack2
+, libsndfile, ladspaH, liblrdf, liblo, libsigcxx
 }:
 
 stdenv.mkDerivation rec {
   name = "non-${version}";
-  version = "2016-02-07";
+  version = "2016-03-06";
   src = fetchFromGitHub {
     owner = "original-male";
     repo = "non";
-    rev = "1ef382fbbea598fdb56b25244a703c64ecaf8446";
-    sha256 = "1mi3nm0nrrqlk36920irvqf5080lbnj1qc8vnxspgwkjjqgdc22g";
+    rev = "3946d392216ee999b560d8b7cdee7c4347110e29";
+    sha256 = "02vnq2mfimgdrmv3lmz80yif4h9a1lympv0wqc5dr2l0f8amj2fp";
   };
 
-    buildInputs = [ pkgconfig python2 cairo libjpeg ntk libjack2 libsndfile
+  buildInputs = [ pkgconfig python2 cairo libjpeg ntk libjack2 libsndfile
     ladspaH liblrdf liblo libsigcxx
-    ];
-    configurePhase = ''python waf configure --prefix=$out'';
-    buildPhase = ''python waf build'';
-    installPhase = ''python waf install'';
+  ];
+  configurePhase = "python waf configure --prefix=$out";
+  buildPhase = "python waf build";
+  installPhase = "python waf install";
 
   meta = {
     description = "Lightweight and lightning fast modular Digital Audio Workstation";
diff --git a/pkgs/applications/audio/pithos/default.nix b/pkgs/applications/audio/pithos/default.nix
index 1083f9434a94..ac42fc716424 100644
--- a/pkgs/applications/audio/pithos/default.nix
+++ b/pkgs/applications/audio/pithos/default.nix
@@ -19,6 +19,11 @@ pythonPackages.buildPythonApplication rec {
     substituteInPlace setup.py --replace "/usr/share" "$out/share"
   '';
 
+  postInstall = ''
+    mkdir -p $out/share/applications
+    cp -v data/pithos.desktop $out/share/applications
+  '';
+
   buildInputs = [ wrapGAppsHook ];
 
   propagatedBuildInputs =
diff --git a/pkgs/applications/audio/rubyripper/default.nix b/pkgs/applications/audio/rubyripper/default.nix
index 36f1fc8312fb..035bb8764829 100644
--- a/pkgs/applications/audio/rubyripper/default.nix
+++ b/pkgs/applications/audio/rubyripper/default.nix
@@ -6,6 +6,9 @@ stdenv.mkDerivation rec {
     url = "https://rubyripper.googlecode.com/files/rubyripper-${version}.tar.bz2";
     sha256 = "1fwyk3y0f45l2vi3a481qd7drsy82ccqdb8g2flakv58m45q0yl1";
   };
+
+  preConfigure = "patchShebangs .";
+
   configureFlags = [ "--enable-cli" ];
   buildInputs = [ ruby cdparanoia makeWrapper ];
   postInstall = ''
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index d7b91de80d80..8dc1e2d0c013 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.5.3";
+  version = "1.5.4";
 
   src = fetchurl {
     url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
-    sha256 = "101fz4c5pj7yp7fg7kg7vcpqjzpwfrbxdyb6va5liip1llg1i2z3";
+    sha256 = "0jnszf1v7xqhm2sy5wzm3f8aw7j1dnapnbw4d46bvshv9hbbzrn8";
     name = "${name}.deb";
   };
 
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 50975d061eb8..3bde9b1434c6 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -171,12 +171,12 @@ rec {
 
   checkstyle = buildEclipseUpdateSite rec {
     name = "checkstyle-${version}";
-    version = "6.14.0.201601142217";
+    version = "6.16.0.201603042325";
 
     src = fetchzip {
       stripRoot = false;
-      url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/6.14.0/net.sf.eclipsecs-updatesite_${version}-bin.zip";
-      sha256 = "0ysxir1fv0mb9xnidc9hv6llnk48lkav0sryjbx7pw7vy1f8nd4c";
+      url = "mirror://sourceforge/project/eclipse-cs/Eclipse%20Checkstyle%20Plug-in/6.16.0/net.sf.eclipsecs-updatesite_${version}.zip";
+      sha256 = "0bm1linyw82bryblyabcx89zqw1ingh8mx62bwp3qj05yc9ksnly";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
index fbb7955a1d67..f10b1fbe61f8 100644
--- a/pkgs/applications/editors/emacs-modes/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -132,6 +132,19 @@
           license = lib.licenses.free;
         };
       }) {};
+    arbitools = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
+        pname = "arbitools";
+        version = "0.51";
+        src = fetchurl {
+          url = "http://elpa.gnu.org/packages/arbitools-0.51.el";
+          sha256 = "1pwps73s885i1777wlmqhkmfgj564bkb6rkpc964v0vcqia6fpag";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "http://elpa.gnu.org/packages/arbitools.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     ascii-art-to-unicode = callPackage ({ elpaBuild, fetchurl, lib }:
     elpaBuild {
         pname = "ascii-art-to-unicode";
@@ -322,10 +335,10 @@
     company-math = callPackage ({ company, elpaBuild, fetchurl, lib, math-symbol-lists }:
     elpaBuild {
         pname = "company-math";
-        version = "1.0.1";
+        version = "1.1";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/company-math-1.0.1.el";
-          sha256 = "1lkj9cqhmdf3h5zvr94hszkz1251i2rq2mycnhscsnzrk5ll3gck";
+          url = "http://elpa.gnu.org/packages/company-math-1.1.tar";
+          sha256 = "10yi5jmv7njcaansgy2aw7wm1j3acch1j9x6lfg9mxk0j21zvgwp";
         };
         packageRequires = [ company math-symbol-lists ];
         meta = {
@@ -350,10 +363,10 @@
     context-coloring = callPackage ({ elpaBuild, emacs, fetchurl, js2-mode, lib }:
     elpaBuild {
         pname = "context-coloring";
-        version = "7.2.0";
+        version = "7.2.1";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/context-coloring-7.2.0.el";
-          sha256 = "0l7mzmnhqh6sri1fhhv51khi0fnpfp51drzy725s6zfmpbrcn7vn";
+          url = "http://elpa.gnu.org/packages/context-coloring-7.2.1.el";
+          sha256 = "1lh2p3fsym73h0dcj1gqg1xsw3lcikmcskbx8y3j0ds30l4xs13d";
         };
         packageRequires = [ emacs js2-mode ];
         meta = {
@@ -628,12 +641,26 @@
           license = lib.licenses.free;
         };
       }) {};
+    excorporate = callPackage ({ elpaBuild, emacs, fetchurl, fsm, lib, soap-client, url-http-ntlm }:
+    elpaBuild {
+        pname = "excorporate";
+        version = "0.7.1";
+        src = fetchurl {
+          url = "http://elpa.gnu.org/packages/excorporate-0.7.1.tar";
+          sha256 = "1flvhk39yymskzazpwh95j2nj8kg4b02hsg7b8msnqi3q5lpqs54";
+        };
+        packageRequires = [ emacs fsm soap-client url-http-ntlm ];
+        meta = {
+          homepage = "http://elpa.gnu.org/packages/excorporate.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     exwm = callPackage ({ elpaBuild, fetchurl, lib, xelb }: elpaBuild {
         pname = "exwm";
-        version = "0.2";
+        version = "0.4";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/exwm-0.2.tar";
-          sha256 = "0z96zz6h5r880nbhclbxs2r0zfkg771lg0fjghigqxz8ai0hh1ll";
+          url = "http://elpa.gnu.org/packages/exwm-0.4.tar";
+          sha256 = "1qlplx88mk8c5sahlymxxh46bzf6bxnsqk92wliv5ji4ai5373fb";
         };
         packageRequires = [ xelb ];
         meta = {
@@ -767,10 +794,10 @@
     hydra = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
     elpaBuild {
         pname = "hydra";
-        version = "0.13.4";
+        version = "0.13.5";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/hydra-0.13.4.tar";
-          sha256 = "11msy6n075iv00c2r9f85bzx3srnj403rhlga1rgsl6vsryf21fj";
+          url = "http://elpa.gnu.org/packages/hydra-0.13.5.tar";
+          sha256 = "0vq1pjyq6ddbikbh0vzdigbs0zlldgwad0192s7v9npg8qlwi668";
         };
         packageRequires = [ cl-lib ];
         meta = {
@@ -978,10 +1005,10 @@
       }) {};
     math-symbol-lists = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
         pname = "math-symbol-lists";
-        version = "1.0";
+        version = "1.1";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/math-symbol-lists-1.0.el";
-          sha256 = "1rry9x4pl7i0sij051i76zp1ypvnj1qbwm40a7bs462c74q4jlwn";
+          url = "http://elpa.gnu.org/packages/math-symbol-lists-1.1.tar";
+          sha256 = "06klvnqipz0n9slw72fxmhrydrw6bi9fs9vnn8hrja8gsqf8inlz";
         };
         packageRequires = [];
         meta = {
@@ -1005,10 +1032,10 @@
     metar = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
     elpaBuild {
         pname = "metar";
-        version = "0.1";
+        version = "0.2";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/metar-0.1.el";
-          sha256 = "0s9zyzps022h5xax574bwsvsyp893x5w74kznnhfm63sxrifbi18";
+          url = "http://elpa.gnu.org/packages/metar-0.2.el";
+          sha256 = "0rfzq79llh6ixw02kjpn8s2shxrabvfvsq48pagwak1jl2s0askf";
         };
         packageRequires = [ cl-lib ];
         meta = {
@@ -1215,10 +1242,10 @@
       }) {};
     org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
         pname = "org";
-        version = "20160215";
+        version = "20160229";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/org-20160215.tar";
-          sha256 = "0w2686rza4xdknq3sy87s04zvlmjxyr6wrj9y9ydcv8hbzws3bhd";
+          url = "http://elpa.gnu.org/packages/org-20160229.tar";
+          sha256 = "15zrkw33ma8q079sb518rmcj97n35rnjv16p6zfw52m9xfdwxgi9";
         };
         packageRequires = [];
         meta = {
@@ -1411,6 +1438,19 @@
           license = lib.licenses.free;
         };
       }) {};
+    sed-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
+        pname = "sed-mode";
+        version = "1.0";
+        src = fetchurl {
+          url = "http://elpa.gnu.org/packages/sed-mode-1.0.el";
+          sha256 = "1zpdai5k9zhy5hw0a5zx7qv3rcf8cn29hncfjnhk9k6sjq0302lg";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "http://elpa.gnu.org/packages/sed-mode.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     seq = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
         pname = "seq";
         version = "1.11";
@@ -1439,10 +1479,10 @@
       }) {};
     sisu-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
         pname = "sisu-mode";
-        version = "3.0.3";
+        version = "7.1.8";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/sisu-mode-3.0.3.el";
-          sha256 = "0ay9hfix3x53f39my02071dzxrw69d4zx5zirxwmmmyxmkaays3r";
+          url = "http://elpa.gnu.org/packages/sisu-mode-7.1.8.el";
+          sha256 = "12zs6y4rzng1d7djl9wh3wc0f9fj0bqb7h754rvixvndlr5c10nj";
         };
         packageRequires = [];
         meta = {
@@ -1492,10 +1532,10 @@
       }) {};
     sotlisp = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
         pname = "sotlisp";
-        version = "1.4.1";
+        version = "1.5.1";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/sotlisp-1.4.1.el";
-          sha256 = "1v99pcj5lp1xxavghwv03apwpc589y7wb8vv6w3kai7483p13z5j";
+          url = "http://elpa.gnu.org/packages/sotlisp-1.5.1.el";
+          sha256 = "1dm2pl4i091gi5lljl68s6v3l3904jj38v56qjblm160wjiahgkm";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1518,10 +1558,10 @@
       }) {};
     stream = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
         pname = "stream";
-        version = "2.1.0";
+        version = "2.2.0";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/stream-2.1.0.el";
-          sha256 = "05fihjd8gm5w4xbdcvah1g9srcgmk87ymk3i7wwa6961w5s01d5y";
+          url = "http://elpa.gnu.org/packages/stream-2.2.0.el";
+          sha256 = "0i6vwih61a0z0q05v9wyp9nj5h68snlb9n52nmrv1k0hhzsjmlrs";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1598,10 +1638,10 @@
     test-simple = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
     elpaBuild {
         pname = "test-simple";
-        version = "1.1";
+        version = "1.2.0";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/test-simple-1.1.el";
-          sha256 = "0s8r6kr0a6n1c20fraif2ngis436a7d3gsj351s6icx6bbcjdalw";
+          url = "http://elpa.gnu.org/packages/test-simple-1.2.0.el";
+          sha256 = "1j97qrwi3i2kihszsxf3y2cby2bzp8g0zf6jlpdix3dinav8xa3b";
         };
         packageRequires = [ cl-lib ];
         meta = {
@@ -1704,10 +1744,10 @@
     url-http-ntlm = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, ntlm ? null }:
     elpaBuild {
         pname = "url-http-ntlm";
-        version = "2.0.1";
+        version = "2.0.2";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/url-http-ntlm-2.0.1.tar";
-          sha256 = "0h6xsm1x7v69kb4shyvv1p4f6sxgcqs5ap6ylqydz10mbcx7aq0w";
+          url = "http://elpa.gnu.org/packages/url-http-ntlm-2.0.2.el";
+          sha256 = "0jci5cl31hw4dj0j9ljq0iplg530wnwbw7b63crrwn3mza5cb2wf";
         };
         packageRequires = [ cl-lib ntlm ];
         meta = {
@@ -1849,10 +1889,10 @@
     xelb = callPackage ({ cl-generic, elpaBuild, emacs, fetchurl, lib }:
     elpaBuild {
         pname = "xelb";
-        version = "0.5";
+        version = "0.6";
         src = fetchurl {
-          url = "http://elpa.gnu.org/packages/xelb-0.5.tar";
-          sha256 = "1wypffg492r2a3h136c6mphsbgimxcipsarm971z56kpy3lwi4sb";
+          url = "http://elpa.gnu.org/packages/xelb-0.6.tar";
+          sha256 = "1m91af5srxq8zs9w4gb44kl4bgka8fq7k33h7f2yn213h23kvvvh";
         };
         packageRequires = [ cl-generic emacs ];
         meta = {
diff --git a/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix b/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix
new file mode 100644
index 000000000000..a8760afc58b0
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchgit, emacs, texinfo, texLive, perl, which, automake, enableDoc ? false }:
+
+stdenv.mkDerivation (rec {
+  name = "ProofGeneral-HEAD";
+
+  src = fetchgit {
+    url = "https://github.com/ProofGeneral/PG.git";
+    rev = "16991280fb09743ae7320aef77f6a166afb907d7";
+    sha256 = "08zhfl6xbl4q7lrl7wdp72xr155k06778by0d60g28mfx59b7sqc";
+  };
+
+  buildInputs = [ emacs texinfo perl which ] ++ stdenv.lib.optional enableDoc texLive;
+
+  prePatch =
+    '' sed -i "Makefile" \
+           -e "s|^\(\(DEST_\)\?PREFIX\)=.*$|\1=$out|g ; \
+               s|/sbin/install-info|install-info|g"
+
+
+       sed -i "bin/proofgeneral" -e's/which/type -p/g'
+
+       # @image{ProofGeneral} fails, so remove it.
+       sed -i '94d' doc/PG-adapting.texi
+       sed -i '96d' doc/ProofGeneral.texi
+    '';
+
+  patches = [ ./pg.patch ];
+
+  preBuild = ''
+    make clean;
+  '';
+
+  installPhase =
+    if enableDoc
+    then
+    # Copy `texinfo.tex' in the right place so that `texi2pdf' works.
+    '' cp -v "${automake}/share/"automake-*/texinfo.tex doc
+       make install install-doc
+    ''
+    else "make install";
+
+  meta = {
+    description = "Proof General, an Emacs front-end for proof assistants";
+    longDescription = ''
+      Proof General is a generic front-end for proof assistants (also known as
+      interactive theorem provers), based on the customizable text editor Emacs.
+    '';
+    homepage = http://proofgeneral.inf.ed.ac.uk;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.unix;  # arbitrary choice
+  };
+})
diff --git a/pkgs/applications/graphics/ahoviewer/default.nix b/pkgs/applications/graphics/ahoviewer/default.nix
new file mode 100644
index 000000000000..79d6ff06578c
--- /dev/null
+++ b/pkgs/applications/graphics/ahoviewer/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, pkgs, fetchurl, fetchFromGitHub, pkgconfig, libconfig, 
+  gtkmm, glibmm, libxml2, libsecret, curl, unrar, libzip, 
+  librsvg, gst_all_1, autoreconfHook, makeWrapper }:
+stdenv.mkDerivation {
+  name = "ahoviewer-1.4.6";
+  src = fetchFromGitHub {
+    owner = "ahodesuka";
+    repo = "ahoviewer";
+    rev = "414cb91d66d96fab4b48593a7ef4d9ad461306aa";
+    sha256 = "081jgfmbwf2av0cn229cf4qyv6ha80ridymsgwq45124b78y2bmb";
+  };
+  enableParallelBuilding = true; 
+  nativeBuildInputs = [ autoreconfHook pkgconfig makeWrapper ];
+  buildInputs = [ glibmm libconfig gtkmm glibmm libxml2 
+                  libsecret curl unrar libzip librsvg 
+                  gst_all_1.gstreamer
+                  gst_all_1.gst-plugins-good 
+                  gst_all_1.gst-plugins-bad 
+                  gst_all_1.gst-libav
+                  gst_all_1.gst-plugins-base ];
+  postPatch = ''patchShebangs version.sh'';
+  postInstall = ''
+    wrapProgram $out/bin/ahoviewer \
+    --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
+    --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
+  '';
+  meta = {
+    homepage = "https://github.com/ahodesuka/ahoviewer";
+    description = "A GTK2 image viewer, manga reader, and booru browser";
+    maintainers = [ stdenv.lib.maintainers.skrzyp ];
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.allBut [ "darwin" "cygwin" ];
+  };
+}
+
+
diff --git a/pkgs/applications/graphics/sane/backends/git.nix b/pkgs/applications/graphics/sane/backends/git.nix
index 0e4d7ae1b83f..84e1f783e2a3 100644
--- a/pkgs/applications/graphics/sane/backends/git.nix
+++ b/pkgs/applications/graphics/sane/backends/git.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchgit, ... } @ args:
 
 callPackage ./generic.nix (args // {
-  version = "2016-02-25";
+  version = "2016-03-05";
   src = fetchgit {
-    sha256 = "842b1186d38de14221be514a58f77c23d9f83979ea45f846440cf9cbb1f26c1f";
-    rev = "c5117ed0f1b522eab10fd2248f140b2acad2a708";
+    sha256 = "dc84530d5e0233427acfd132aa08a4cf9973c936ff72a66ee08ecf836200d367";
+    rev = "23eb95582da718791103b83ea002e947caa0f5fc";
     url = "git://alioth.debian.org/git/sane/sane-backends.git";
   };
 })
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index 6025fce776c7..c9b6de715d2a 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -1,17 +1,34 @@
-{ stdenv, fetchurl, buildPythonApplication, pythonPackages, slowaes }:
+{ stdenv, fetchurl, pythonPackages }:
 
-buildPythonApplication rec {
+let
+  jsonrpclib = pythonPackages.buildPythonPackage rec {
+    version = "0.1.7";
+    name = "jsonrpclib-${version}";
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/j/jsonrpclib/${name}.tar.gz";
+      sha256 = "02vgirw2bcgvpcxhv5hf3yvvb4h5wzd1lpjx8na5psdmaffj6l3z";
+    };
+    propagatedBuildInputs = [ pythonPackages.cjson ];
+    meta = {
+      homepage = https://pypi.python.org/pypi/jsonrpclib;
+      license = stdenv.lib.licenses.asl20;
+    };
+  };
+in
+
+pythonPackages.buildPythonApplication rec {
   name = "electrum-${version}";
-  version = "2.5.4";
+  version = "2.6.1";
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "18saa2rg07vfp9scp3i8s0wi2pqw9s8l8b44gq43zzl41120zc60";
+    sha256 = "14q6y1hwzki56nfhd3nfbxid07d5fv0pgmklvcf7yxjmpdxrg0iq";
   };
 
   propagatedBuildInputs = with pythonPackages; [
     dns
     ecdsa
+    jsonrpclib
     pbkdf2
     protobuf
     pyasn1
@@ -47,7 +64,7 @@ buildPythonApplication rec {
       of the blockchain.
     '';
     homepage = https://electrum.org;
-    license = licenses.gpl3;
+    license = licenses.mit;
     maintainers = with maintainers; [ ehmry joachifm np ];
   };
 }
diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix
index ba31d3fb3428..1ae11be3cdd3 100644
--- a/pkgs/applications/misc/octoprint/plugins.nix
+++ b/pkgs/applications/misc/octoprint/plugins.nix
@@ -8,13 +8,13 @@ in {
 
   m3d-fio = buildPlugin rec {
     name = "M3D-Fio-${version}";
-    version = "0.29";
+    version = "0.28.2";
 
     src = fetchFromGitHub {
       owner = "donovan6000";
       repo = "M3D-Fio";
       rev = "V${version}";
-      sha256 = "1ifbq7yibq42jjvqvklnx3qzr6vk2ngsxh3xhlbdrhqrg54gky4r";
+      sha256 = "1fwy6xmbid89rn7w7v779wb34gmfzc1fkggv3im1r7a7jrzph6nx";
     };
 
     patches = [
diff --git a/pkgs/applications/misc/pgadmin/default.nix b/pkgs/applications/misc/pgadmin/default.nix
index bace31b1b1a6..55db70c1d249 100644
--- a/pkgs/applications/misc/pgadmin/default.nix
+++ b/pkgs/applications/misc/pgadmin/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "pgadmin3-${version}";
-  version = "1.20.0";
+  version = "1.22.1";
 
   src = fetchurl {
     url = "http://ftp.postgresql.org/pub/pgadmin3/release/v${version}/src/pgadmin3-${version}.tar.gz";
-    sha256 = "133bcbx9a322adldd1498h8bn2wfk45v1sbj9269jylwda1dfwq7";
+    sha256 = "0gkqpj8cg6jd6yhssrij1cbh960rg9fkjbdzcpryi6axwv0ag7ki";
   };
 
   buildInputs = [ postgresql wxGTK libxml2 libxslt openssl ];
diff --git a/pkgs/applications/networking/browsers/chromium/source/default.nix b/pkgs/applications/networking/browsers/chromium/source/default.nix
index 4e568aed5949..a566c4bb1c87 100644
--- a/pkgs/applications/networking/browsers/chromium/source/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/source/default.nix
@@ -41,10 +41,13 @@ in stdenv.mkDerivation {
     done
   '';
 
-  patches =
-    singleton ./nix_plugin_paths_46.patch ++
-    singleton ./build_fixes_46.patch ++
-    singleton ./widevine.patch;
+  patches = [
+    ./build_fixes_46.patch
+    ./widevine.patch
+    (if versionOlder version "50.0.0.0"
+     then ./nix_plugin_paths_46.patch
+     else ./nix_plugin_paths_50.patch)
+  ];
 
   patchPhase = let
     diffmod = sym: "/^${sym} /{s/^${sym} //;${transform ""};s/^/${sym} /}";
diff --git a/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths_50.patch b/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths_50.patch
new file mode 100644
index 000000000000..062098a85225
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/source/nix_plugin_paths_50.patch
@@ -0,0 +1,75 @@
+diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
+index 74bf041..5f34198 100644
+--- a/chrome/common/chrome_paths.cc
++++ b/chrome/common/chrome_paths.cc
+@@ -66,21 +66,14 @@ static base::LazyInstance<base::FilePath>
+     g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER;
+ 
+ // Gets the path for internal plugins.
+-bool GetInternalPluginsDirectory(base::FilePath* result) {
+-#if defined(OS_MACOSX)
+-  // If called from Chrome, get internal plugins from a subdirectory of the
+-  // framework.
+-  if (base::mac::AmIBundled()) {
+-    *result = chrome::GetFrameworkBundlePath();
+-    DCHECK(!result->empty());
+-    *result = result->Append("Internet Plug-Ins");
+-    return true;
+-  }
+-  // In tests, just look in the module directory (below).
+-#endif
+-
+-  // The rest of the world expects plugins in the module directory.
+-  return PathService::Get(base::DIR_MODULE, result);
++bool GetInternalPluginsDirectory(base::FilePath* result,
++                                 const std::string& ident) {
++  std::string full_env = std::string("NIX_CHROMIUM_PLUGIN_PATH_") + ident;
++  const char* value = getenv(full_env.c_str());
++  if (value == NULL)
++      return PathService::Get(base::DIR_MODULE, result);
++  else
++      *result = base::FilePath(value);
+ }
+ 
+ #if defined(OS_WIN)
+@@ -253,11 +246,11 @@ bool PathProvider(int key, base::FilePath* result) {
+       create_dir = true;
+       break;
+     case chrome::DIR_INTERNAL_PLUGINS:
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "ALL"))
+         return false;
+       break;
+     case chrome::DIR_PEPPER_FLASH_PLUGIN:
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH"))
+         return false;
+       cur = cur.Append(kPepperFlashBaseDirectory);
+       break;
+@@ -314,7 +307,7 @@ bool PathProvider(int key, base::FilePath* result) {
+     // We currently need a path here to look up whether the plugin is disabled
+     // and what its permissions are.
+     case chrome::FILE_NACL_PLUGIN:
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "NACL"))
+         return false;
+       cur = cur.Append(kInternalNaClPluginFileName);
+       break;
+@@ -349,7 +342,7 @@ bool PathProvider(int key, base::FilePath* result) {
+         cur = cur.DirName();
+       }
+ #else
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "PNACL"))
+         return false;
+ #endif
+       cur = cur.Append(FILE_PATH_LITERAL("pnacl"));
+@@ -366,7 +359,7 @@ bool PathProvider(int key, base::FilePath* result) {
+     // In the component case, this is the source adapter. Otherwise, it is the
+     // actual Pepper module that gets loaded.
+     case chrome::FILE_WIDEVINE_CDM_ADAPTER:
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "WIDEVINE"))
+         return false;
+       cur = cur.AppendASCII(kWidevineCdmAdapterFileName);
+       break;
diff --git a/pkgs/applications/networking/browsers/chromium/source/sources.nix b/pkgs/applications/networking/browsers/chromium/source/sources.nix
index ffb9ff110686..ffec5c8b8073 100644
--- a/pkgs/applications/networking/browsers/chromium/source/sources.nix
+++ b/pkgs/applications/networking/browsers/chromium/source/sources.nix
@@ -1,19 +1,18 @@
 # This file is autogenerated from update.sh in the parent directory.
 {
   beta = {
-    sha256 = "07i4vqswkijnl7wi6r1a0n1jq54ackm01yf8h3hwcik8q10i1aq5";
-    sha256bin64 = "16pwimg672qaqb89zdvsr8dr7bz50mz7zf6cl0cf45kz7sn8wwlh";
-    version = "49.0.2623.63";
+    sha256 = "1xc2npbc829nxria1j37kxyy95jkalkkphxgv24if0ibn62lrzd4";
+    sha256bin64 = "1arm15g3vmm3zlvcql3qylw1fhrn5ddzl2v8mkpb3a251m425dsi";
+    version = "49.0.2623.75";
   };
   dev = {
-    sha256 = "1xc66zsjd5snydf60di2k2vzwwcqs1p16yn4jbpj2khm9cmxmkmf";
-    sha256bin64 = "06v7r76pbc979f7ahmln0hmxzd8ipirh4128i0ygidj71xmg51mm";
-    version = "50.0.2657.0";
+    sha256 = "04j0nyz20gi7vf1javbw06wrqpkfw6vg024i3wkgx42hzd6hjgw4";
+    sha256bin64 = "12ff4q615rwakgpr9v84p55maasqb4vg61s89vgxrlsgqrmkahg4";
+    version = "50.0.2661.11";
   };
   stable = {
-    sha256 = "03sdm09cnwq8a056rfljql7mz0s17fngfnm5q3p5xwakr2sbj7ka";
-    sha256bin32 = "157m88nafb8svpkv11rzpcfvak6486wx43rmbssg52x2k0vas0bl";
-    sha256bin64 = "036pcma8qczja803h9r1nlm0ypm4zblmy6q7pkwlgmn3r4r3n7i0";
-    version = "48.0.2564.116";
+    sha256 = "1xc2npbc829nxria1j37kxyy95jkalkkphxgv24if0ibn62lrzd4";
+    sha256bin64 = "01qi5jmlmdpy6icc4y51bn5a063mxrnkncg3pbmbl4r02vqca5jh";
+    version = "49.0.2623.75";
   };
 }
diff --git a/pkgs/applications/networking/cluster/marathon/default.nix b/pkgs/applications/networking/cluster/marathon/default.nix
index ac666030897b..11c275c9f490 100644
--- a/pkgs/applications/networking/cluster/marathon/default.nix
+++ b/pkgs/applications/networking/cluster/marathon/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "marathon-${version}";
-  version = "0.15.1";
+  version = "0.15.3";
 
   src = fetchurl {
     url = "https://downloads.mesosphere.io/marathon/v${version}/marathon-${version}.tgz";
-    sha256 = "1ch3nvcwj7pzjjqw4k07gdf7nmdbfkks5j07wl3518bagjqrajj2";
+    sha256 = "1br4k596sjp4cf5l2nyaqhlsfdr443n08fvdyf4kilhr803x2rjq";
   };
 
   buildInputs = [ makeWrapper jdk mesos ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     homepage = https://mesosphere.github.io/marathon;
     description = "Cluster-wide init and control system for services in cgroups or Docker containers";
     license = licenses.asl20;
-    maintainers = with maintainers; [ rushmorem kamilchm ];
+    maintainers = with maintainers; [ rushmorem kamilchm kevincox ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix
index 25bd659d63af..86b82db60e14 100644
--- a/pkgs/applications/networking/cluster/mesos/default.nix
+++ b/pkgs/applications/networking/cluster/mesos/default.nix
@@ -1,7 +1,8 @@
 { stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh, autoconf
 , automake115x, libtool, unzip, gnutar, jdk, maven, python, wrapPython
-, setuptools, boto, pythonProtobuf, apr, subversion, gzip
+, setuptools, boto, pythonProtobuf, apr, subversion, gzip, systemd
 , leveldb, glog, perf, utillinux, libnl, iproute, openssl, libevent
+, bash
 }:
 
 let
@@ -9,14 +10,15 @@ let
   soext = if stdenv.system == "x86_64-darwin" then "dylib" else "so";
 
 in stdenv.mkDerivation rec {
-  version = "0.26.0";
+  version = "0.27.1";
   name = "mesos-${version}";
 
+  enableParallelBuilding = true;
   dontDisableStatic = true;
 
   src = fetchurl {
     url = "mirror://apache/mesos/${version}/${name}.tar.gz";
-    sha256 = "0csvaql9gky15w23gmiw6cvlfnrlhfxvdqd2pv3j3grr44ph0ab5";
+    sha256 = "147iq7vwi09kqblx1h8r6lkrg9g50i257qk1cph1zr5j3rncz7l8";
   };
 
   patches = [
@@ -70,6 +72,15 @@ in stdenv.mkDerivation rec {
       --replace '"ip ' '"${iproute}/bin/ip '   \
       --replace '"mount ' '"${utillinux}/bin/mount ' \
       --replace '/bin/sh' "${stdenv.shell}"
+    
+    substituteInPlace src/launcher/executor.cpp \
+      --replace '"sh"' '"${bash}/bin/bash"'
+    
+    substituteInPlace src/slave/containerizer/mesos/launch.cpp \
+      --replace '"sh"' '"${bash}/bin/bash"'
+    
+    substituteInPlace src/linux/systemd.cpp \
+      --replace 'os::realpath("/sbin/init")' '"${systemd}/lib/systemd/systemd"'
   '';
 
   configureFlags = [
@@ -114,7 +125,7 @@ in stdenv.mkDerivation rec {
     rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
     popd
 
-    # optional python dependency for mesos cli 
+    # optional python dependency for mesos cli
     pushd src/python/cli
     ${python}/bin/${python.executable} setup.py install \
       --install-lib=$out/lib/${python.libPrefix}/site-packages \
@@ -150,7 +161,7 @@ in stdenv.mkDerivation rec {
     homepage    = "http://mesos.apache.org";
     license     = licenses.asl20;
     description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks";
-    maintainers = with maintainers; [ cstrahan offline rushmorem ];
+    maintainers = with maintainers; [ cstrahan kevincox offline rushmorem ];
     platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 5e8f266930ff..7e9e41ea0bfc 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, gtk, gtkspell, aspell
-, gstreamer, gst_plugins_base, startupnotification, gettext
+{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk, gtkspell, aspell
+, gstreamer, gst_plugins_base, gst_plugins_good, startupnotification, gettext
 , perl, perlXMLParser, libxml2, nss, nspr, farsight2
 , libXScrnSaver, ncurses, avahi, dbus, dbus_glib, intltool, libidn
 , lib, python, libICE, libXext, libSM
@@ -22,9 +22,11 @@ stdenv.mkDerivation rec {
 
   inherit nss ncurses;
 
+  nativeBuildInputs = [ makeWrapper ];
+
   buildInputs = [
     gtkspell aspell
-    gstreamer gst_plugins_base startupnotification
+    gstreamer gst_plugins_base gst_plugins_good startupnotification
     libxml2 nss nspr farsight2
     libXScrnSaver ncurses python
     avahi dbus dbus_glib intltool libidn
@@ -54,6 +56,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  postInstall = ''
+    wrapProgram $out/bin/pidgin \
+      --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
+  '';
+
   meta = with stdenv.lib; {
     description = "Multi-protocol instant messaging client";
     homepage = http://pidgin.im;
diff --git a/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix b/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
index fa03b8d21adc..ec188e982843 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchgit
-, qtbase, qtmultimedia, qtquick1, qtquickcontrols, qtgraphicaleffects
+, qtbase, qtmultimedia, qtquick1, qtquickcontrols
+, qtimageformats, qtgraphicaleffects
 , telegram-qml, libqtelegram-aseman-edition
 , gst_plugins_base, gst_plugins_good, gst_plugins_bad, gst_plugins_ugly
 , makeQtWrapper }:
@@ -14,8 +15,9 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-  [ qtbase qtmultimedia qtquick1 qtquickcontrols qtgraphicaleffects
-    telegram-qml libqtelegram-aseman-edition
+  [ qtbase qtmultimedia qtquick1 qtquickcontrols
+    qtimageformats qtgraphicaleffects
+    telegram-qml libqtelegram-aseman-edition 
     gst_plugins_base gst_plugins_good gst_plugins_bad gst_plugins_ugly ];
   nativeBuildInputs = [ makeQtWrapper ];
   enableParallelBuild = true;
@@ -33,5 +35,3 @@ stdenv.mkDerivation rec {
   };
 }
 #TODO: appindicator, for system tray plugin (by @profpatsch)
-
-
diff --git a/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix b/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix
index 115424ac69c8..1b2ad45b56a9 100644
--- a/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "darcs-to-git-${version}";
-  version = "0.2git";
+  version = "2015-06-04";
 
   src = fetchgit {
     url = "git://github.com/purcell/darcs-to-git.git";
-    rev = "58a55936899c7e391df5ae1326c307fbd4617a25";
-    sha256 = "366aa691920991e21cfeebd4cbd53a6c42d80e2bc46ff398af482d1d15bac4c3";
+    rev = "e5fee32495908fe0f7d700644c7b37347b7a0a5b";
+    sha256 = "0ycp7pzv9g9pgj25asiby3p3m5vg5czqf4rpy2mavjqhiblxlcv5";
   };
 
   patchPhase = let
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index cda861497e12..54bd2b5f9797 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -1,76 +1,54 @@
-{ stdenv, fetchurl, gettext, pkgconfig, ruby
-, boost, expat, file, flac, libebml, libmatroska, libogg, libvorbis, xdg_utils, zlib
-# pugixml (not packaged)
-, buildConfig ? "all"
-, withGUI ? false, qt5 ? null # Disabled for now until upstream issues are resolved
-, legacyGUI ? true, wxGTK ? null
-# For now both qt5 and wxwidgets gui's are enabled, if wxwidgets is disabled the
-# build system doesn't install desktop entries, icons, etc...
-, libiconv
+{ stdenv, fetchgit, pkgconfig, autoconf, automake
+, ruby, file, xdg_utils, gettext, expat, qt5, boost
+, libebml, zlib, libmatroska, libogg, libvorbis, flac
+, withGUI ? true
 }:
 
-let
-  inherit (stdenv.lib) enableFeature optional;
-in
-
 assert withGUI -> qt5 != null;
-assert legacyGUI -> wxGTK != null;
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "mkvtoolnix-${version}";
-  version = "8.4.0";
+  version = "8.9.0";
 
-  src = fetchurl {
-    url = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${name}.tar.xz";
-    sha256 = "0y7qm8q9vpvjiw7b69k9140pw9nhvs6ggmk56yxnmcd02inm19gn";
+  src = fetchgit {
+    url = "https://github.com/mbunkus/mkvtoolnix.git";
+    rev = "54e6b52b3dde07f89da4542997ef059e18802128";
+    sha256 = "1hm9f9q60c0axmmlsalazsiil8gk3v8q6cl5qxsfa95m51i39878";
   };
 
-  patchPhase = ''
-    patchShebangs ./rake.d/
-    patchShebangs ./Rakefile
-    # Force ruby encoding to use UTF-8 or else when enabling qt5 the Rakefile may
-    # fail with `invalid byte sequence in US-ASCII' due to UTF-8 characters
-    # This workaround replaces an arbitrary comment in the drake file
-    sed -e 's,#--,Encoding.default_external = Encoding::UTF_8,' -i ./drake
-  '';
-
-  configureFlags = [
-    "--with-boost-libdir=${boost.lib}/lib"
-    "--without-curl"
-  ] ++ (
-    if (withGUI || legacyGUI) then [
-      "--with-mkvtoolnix-gui"
-      "--enable-gui"
-      (enableFeature withGUI "qt")
-      (enableFeature legacyGUI "wxwidgets")
-    ] else [
-      "--disable-gui"
-    ]
-  );
-
-  nativeBuildInputs = [ gettext pkgconfig ruby ];
+  nativeBuildInputs = [ gettext ruby ];
 
   buildInputs = [
-    boost expat file flac libebml libmatroska libogg libvorbis xdg_utils zlib
-  ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv ]
-    ++ optional withGUI qt5
-    ++ optional legacyGUI wxGTK;
-
-  enableParallelBuilding = true;
+    pkgconfig autoconf automake expat
+    file xdg_utils boost libebml zlib
+    libmatroska libogg libvorbis flac
+    (optional withGUI qt5.qtbase)
+  ];
 
-  buildPhase = ''
-    ./drake
-  '';
+  preConfigure = "./autogen.sh";
+  buildPhase   = "./drake -j $NIX_BUILD_CORES";
+  installPhase = "./drake install -j $NIX_BUILD_CORES";
 
-  installPhase = ''
-    ./drake install
-  '';
+  configureFlags = [
+    "--enable-magic"
+    "--enable-optimization"
+    "--with-boost-libdir=${boost.lib}/lib"
+    "--disable-debug"
+    "--disable-profiling"
+    "--disable-precompiled-headers"
+    "--disable-static-qt"
+    "--without-curl"
+    "--with-gettext"
+    (enableFeature withGUI "qt")
+  ];
 
   meta = with stdenv.lib; {
     description = "Cross-platform tools for Matroska";
-    homepage = http://www.bunkus.org/videotools/mkvtoolnix/;
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ codyopel fuuzetsu ];
-    platforms = platforms.all;
+    homepage    = http://www.bunkus.org/videotools/mkvtoolnix/;
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ codyopel fuuzetsu rnhmjoj ];
+    platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index 260e8d66c58a..15b729173c6a 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -30,7 +30,7 @@ if disabled then throw "${name} not supported for go ${go.meta.branch}" else
 let
   args = lib.filterAttrs (name: _: name != "extraSrcs") args';
 
-  removeReferences = [ go ];
+  removeReferences = [ ] ++ lib.optional (!allowGoReference) go;
 
   removeExpr = refs: lib.flip lib.concatMapStrings refs (ref: ''
     | sed "s,${ref},$(echo "${ref}" | sed "s,$NIX_STORE/[^-]*,$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,"),g" \
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index 5c14fe788f7a..90f84d4387bc 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -28,7 +28,8 @@ self: super:
   # LLVM is not supported on this GHC; use the latest one.
   inherit (pkgs) llvmPackages;
 
-  inherit (pkgs.haskell.packages.ghc7103) jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
+  inherit (self.ghc.bootPkgs)
+    jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
 
   # This is the list of the Stage 1 packages that are built into a booted ghcjs installation
   # It can be generated with the command:
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index 59020264b3c5..a4db98f2e618 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -81,7 +81,7 @@ rec {
 
   buildStrictly = pkg: buildFromSdist (appendConfigureFlag pkg "--ghc-option=-Wall --ghc-option=-Werror");
 
-  buildStackProject = pkgs.callPackage ../development/haskell-modules/generic-stack-builder.nix { };
+  buildStackProject = pkgs.callPackage ./generic-stack-builder.nix { };
 
   triggerRebuild = drv: i: overrideCabal drv (drv: { postUnpack = ": trigger rebuild ${toString i}"; });
 
diff --git a/pkgs/development/interpreters/pixie/default.nix b/pkgs/development/interpreters/pixie/default.nix
new file mode 100644
index 000000000000..c4086078d7d6
--- /dev/null
+++ b/pkgs/development/interpreters/pixie/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchgit, fetchurl, python, makeWrapper, pkgconfig, gcc,
+  pypy, libffi, libedit, libuv, boost, zlib,
+  variant ? "jit", buildWithPypy ? false }:
+
+let
+  commit-count = "1333";
+  common-flags = "--thread --gcrootfinder=shadowstack --continuation";
+  variants = {
+    jit = { flags = "--opt=jit"; target = "target.py"; };
+    jit-preload = { flags = "--opt=jit"; target = "target_preload.py"; };
+    no-jit = { flags = ""; target = "target.py"; };
+    no-jit-preload = { flags = ""; target = "target_preload.py"; };
+  };
+  pixie-src = fetchgit {
+    url = "https://github.com/pixie-lang/pixie.git";
+    rev = "36ce07e1cd85ca82eedadf366bef3bb57a627a2a";
+    sha256 = "1b3v99c0is33w029r15qvd0mkrc5n1mrvjjmfpcd9yvhvqb2vcjs";
+  };
+  pypy-tag = "81254";
+  pypy-src = fetchurl {
+    name = "pypy-src-${pypy-tag}";
+    url = "https://bitbucket.org/pypy/pypy/get/${pypy-tag}.tar.bz2";
+    sha256 = "1cs9xqs1rmzdcnwxxkbvy064s5cbp6vvzhn2jmyzh5kg4di1r3bn";
+  };
+  libs = [ libffi libedit libuv boost.dev boost.lib zlib ];
+  include-path = stdenv.lib.concatStringsSep ":"
+                   (map (p: "${p}/include") libs);
+  library-path = stdenv.lib.concatStringsSep ":"
+                   (map (p: "${p}/lib") libs);
+  bin-path = stdenv.lib.concatStringsSep ":"
+               (map (p: "${p}/bin") [ gcc ]);
+  build = {flags, target}: stdenv.mkDerivation rec {
+    name = "pixie-${version}";
+    version = "0-r${commit-count}-${variant}";
+    nativeBuildInputs = libs;
+    buildInputs = [ pkgconfig makeWrapper ];
+    PYTHON = if buildWithPypy
+      then "${pypy}/pypy-c/.pypy-c-wrapped"
+      else "${python}/bin/python";
+    unpackPhase = ''
+      cp -R ${pixie-src} pixie-src
+      mkdir pypy-src
+      (cd pypy-src
+       tar --strip-components=1 -xjf ${pypy-src})
+      chmod -R +w pypy-src pixie-src
+    '';
+    patchPhase = ''
+      (cd pixie-src
+       patch -p1 < ${./load_paths.patch}
+       libraryPaths='["${libuv}" "${libedit}" "${libffi}" "${boost.dev}" "${boost.lib}" "${zlib}"]'
+       export libraryPaths
+       substituteAllInPlace ./pixie/ffi-infer.pxi)
+    '';
+    buildPhase = ''(
+      PYTHONPATH="`pwd`/pypy-src:$PYTHONPATH";
+      RPYTHON="`pwd`/pypy-src/rpython/bin/rpython";
+      cd pixie-src
+      $PYTHON $RPYTHON ${common-flags} ${target}
+      export LD_LIBRARY_PATH="${library-path}:$LD_LIBRARY_PATH"
+      find pixie -name "*.pxi" -exec ./pixie-vm -c {} \;
+    )'';
+    installPhase = ''
+      mkdir -p $out/share $out/bin
+      cp pixie-src/pixie-vm $out/share/pixie-vm
+      cp -R pixie-src/pixie $out/share/pixie
+      makeWrapper $out/share/pixie-vm $out/bin/pxi \
+        --prefix LD_LIBRARY_PATH : ${library-path} \
+        --prefix C_INCLUDE_PATH : ${include-path} \
+        --prefix LIBRARY_PATH : ${library-path} \
+        --prefix PATH : ${bin-path}
+    '';
+    meta = {
+      description = "A clojure-like lisp, built with the pypy vm toolkit";
+      homepage = "https://github.com/pixie-lang/pixie";
+      license = stdenv.lib.licenses.lgpl3;
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
+in build (builtins.getAttr variant variants)
diff --git a/pkgs/development/interpreters/pixie/dust.nix b/pkgs/development/interpreters/pixie/dust.nix
new file mode 100644
index 000000000000..2478ecf53cb2
--- /dev/null
+++ b/pkgs/development/interpreters/pixie/dust.nix
@@ -0,0 +1,27 @@
+{ stdenv, pixie, fetchgit }:
+
+stdenv.mkDerivation {
+  name = "dust-0-91";
+  src = fetchgit {
+    url = "https://github.com/pixie-lang/dust.git";
+    rev = "efe469661e749a71e86858fd006f61464810575a";
+    sha256 = "0krh7ynald3gqv9f17a4kfx7sx8i31l6j1fhd5k8b6m8cid7f9c1";
+  };
+  buildInputs = [ pixie ];
+  patches = [ ./make-paths-configurable.patch ];
+  configurePhase = ''
+    pixiePath="${pixie}/bin/pxi" \
+    basePath="$out/share/dust" \
+      substituteAll dust.in dust
+    chmod +x dust
+  '';
+# FIXME: AOT for dust
+#  buildPhase = ''
+#    find . -name "*.pxi" -exec pixie-vm -c {} \;
+#  '';
+  installPhase = ''
+    mkdir -p $out/bin $out/share/dust
+    cp -a src/ run.pxi $out/share/dust
+    mv dust $out/bin/dust
+  '';
+}
diff --git a/pkgs/development/interpreters/pixie/load_paths.patch b/pkgs/development/interpreters/pixie/load_paths.patch
new file mode 100644
index 000000000000..a36d280c5867
--- /dev/null
+++ b/pkgs/development/interpreters/pixie/load_paths.patch
@@ -0,0 +1,25 @@
+diff --git a/pixie/ffi-infer.pxi b/pixie/ffi-infer.pxi
+index 9f13ac7..74301c2 100644
+--- a/pixie/ffi-infer.pxi
++++ b/pixie/ffi-infer.pxi
+@@ -1,15 +1,12 @@
+ (ns pixie.ffi-infer
+   (:require [pixie.io-blocking :as io]))
+ 
++(defn -add-library-path [p]
++  (swap! load-paths conj (str p "/include"))
++  (swap! load-paths conj (str p "/lib")))
+ 
+-(defn -add-rel-path [rel]
+-  (swap! load-paths conj (str (first @load-paths) "/" rel)))
+-
+-(-add-rel-path "lib")
+-(-add-rel-path "include")
+-(-add-rel-path "../lib")
+-(-add-rel-path "../include")
+-
++(doseq [lp @libraryPaths@]
++  (-add-library-path lp))
+ 
+ (def *config* nil)
+ (set-dynamic! (var *config*))
diff --git a/pkgs/development/interpreters/pixie/make-paths-configurable.patch b/pkgs/development/interpreters/pixie/make-paths-configurable.patch
new file mode 100644
index 000000000000..122ab6e2c07b
--- /dev/null
+++ b/pkgs/development/interpreters/pixie/make-paths-configurable.patch
@@ -0,0 +1,122 @@
+From 0cbb82e606610d36e52c70d888995fbbf9b0d7c8 Mon Sep 17 00:00:00 2001
+From: Herwig Hochleitner <herwig@bendlas.net>
+Date: Sun, 28 Feb 2016 16:34:14 +0100
+Subject: [PATCH] make paths configurable
+
+---
+ dust    | 52 ----------------------------------------------------
+ dust.in | 43 +++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 43 insertions(+), 52 deletions(-)
+ delete mode 100755 dust
+ create mode 100755 dust.in
+
+diff --git a/dust b/dust
+deleted file mode 100755
+index ffced9b..0000000
+--- a/dust
++++ /dev/null
+@@ -1,52 +0,0 @@
+-#!/usr/bin/env bash
+-
+-base_path=$0
+-if [ -L "$base_path" ]; then
+-    base_path=`readlink $base_path`
+-fi
+-base_path=`dirname $base_path`
+-
+-pixie_path=`which pixie-vm`
+-if [ -z "$pixie_path" ]; then
+-    echo "Error: 'pixie-vm' must be on your PATH"
+-    exit 1
+-fi
+-
+-function set_load_path() {
+-    load_path=""
+-    if ([ -f "project.edn" ] || [ -f "project.pxi" ]) && [ -f ".load-path" ]; then
+-        load_path="`cat .load-path`"
+-    fi
+-}
+-
+-if [ ! -f "project.edn" ] && [ -f "project.pxi" ]; then
+-	echo "Warning: 'project.pxi' is deprecated, please use 'project.edn'."
+-	echo "To start you can run the following command:"
+-	echo "  pixie-vm -l $base_path/src -e '(require dust.project :as p) (p/load-project!) (prn (dissoc @p/*project* :path))'"
+-	echo
+-fi
+-
+-set_load_path
+-run_dust="$pixie_path -l $base_path/src $load_path $base_path/run.pxi"
+-
+-case $1 in
+-    ""|"repl")
+-        rlwrap_cmd=""
+-        if [ -n "`which rlwrap`" ]; then
+-            rlwrap_cmd="rlwrap -aignored -n"
+-        fi
+-        $rlwrap_cmd $pixie_path $load_path
+-        ;;
+-    "run")
+-        shift
+-        file=$1
+-        shift
+-        $pixie_path $load_path $file $@
+-        ;;
+-    -h|--help)
+-        $run_dust help
+-        ;;
+-    *)
+-        $run_dust $@
+-        ;;
+-esac
+diff --git a/dust.in b/dust.in
+new file mode 100755
+index 0000000..44a7fbd
+--- /dev/null
++++ b/dust.in
+@@ -0,0 +1,43 @@
++#!/usr/bin/env bash
++
++base_path=@basePath@
++pixie_path=@pixiePath@
++
++function set_load_path() {
++    load_path=""
++    if ([ -f "project.edn" ] || [ -f "project.pxi" ]) && [ -f ".load-path" ]; then
++        load_path="`cat .load-path`"
++    fi
++}
++
++if [ ! -f "project.edn" ] && [ -f "project.pxi" ]; then
++	echo "Warning: 'project.pxi' is deprecated, please use 'project.edn'."
++	echo "To start you can run the following command:"
++	echo "  pixie-vm -l $base_path/src -e '(require dust.project :as p) (p/load-project!) (prn (dissoc @p/*project* :path))'"
++	echo
++fi
++
++set_load_path
++run_dust="$pixie_path -l $base_path/src $load_path $base_path/run.pxi"
++
++case $1 in
++    ""|"repl")
++        rlwrap_cmd=""
++        if [ -n "`which rlwrap`" ]; then
++            rlwrap_cmd="rlwrap -aignored -n"
++        fi
++        $rlwrap_cmd $pixie_path $load_path
++        ;;
++    "run")
++        shift
++        file=$1
++        shift
++        $pixie_path $load_path $file $@
++        ;;
++    -h|--help)
++        $run_dust help
++        ;;
++    *)
++        $run_dust $@
++        ;;
++esac
+-- 
+2.7.1
+
diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix
index d22d3849b1bf..748482b1bf08 100644
--- a/pkgs/development/interpreters/racket/default.nix
+++ b/pkgs/development/interpreters/racket/default.nix
@@ -28,6 +28,11 @@ let
     sqlite
   ];
 
+  boolPatch = fetchurl {
+    url = "http://copr-dist-git.fedorainfracloud.org/cgit/bthomas/racket/racket.git/plain/xform-errors-converting-fix.patch";
+    sha256 = "0h5g7a7w8wwj43jb8q69xldgbyxkn0y0i1na6r9fk17dd56nsm68";
+  };
+
 in
 
 stdenv.mkDerivation rec {
@@ -51,6 +56,10 @@ stdenv.mkDerivation rec {
     cd src/build
   '';
 
+  # https://github.com/racket/racket/issues/1222
+  # Fixed upstream after the release of 6.4
+  patches = [ boolPatch ];
+
   shared = if stdenv.isDarwin then "dylib" else "shared";
   configureFlags = [ "--enable-${shared}" "--enable-lt=${libtool}/bin/libtool" ]
                    ++ stdenv.lib.optional disableDocs [ "--disable-docs" ]
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index 4ffef385a0db..2a22cc74e754 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -157,61 +157,6 @@ in {
     };
   };
 
-  ruby_2_1_0 = generic {
-    majorVersion = "2";
-    minorVersion = "1";
-    teenyVersion = "0";
-    patchLevel = "0";
-    sha256 = {
-      src = "17fhfbw8sr13rxfn58wvrhk2f5i88lkna2afn3gdjvprd8gyqf1m";
-      git = "12sn532yvznqfz85378ys0b9ggmj7w8ddhzc1pnnlx7mbyy7r2hx";
-    };
-  };
-
-  ruby_2_1_1 = generic {
-    majorVersion = "2";
-    minorVersion = "1";
-    teenyVersion = "1";
-    patchLevel = "0";
-    sha256 = {
-      src = "0hc9x3mazyvnk94gs19q8mbnanlzk8mv0hii77slkvc8mqqxyhy8";
-      git = "1v2ffvyd0xx1h1qd70431zczhvsdiyyw5kjxih4rszd5avzh5grl";
-    };
-  };
-
-  ruby_2_1_2 = generic {
-    majorVersion = "2";
-    minorVersion = "1";
-    teenyVersion = "2";
-    patchLevel = "353";
-    sha256 = {
-      src = "0db6krc2bd7yha8p96lcqrahjpsz7g7abhni134g708sh53n8apj";
-      git = "14f8w3zwngnxsgigffh6h9z3ng53xq8mk126xmwrsmz9n3ypm6l0";
-    };
-  };
-
-  ruby_2_1_3 = generic {
-    majorVersion = "2";
-    minorVersion = "1";
-    teenyVersion = "3";
-    patchLevel = "0";
-    sha256 = {
-      src = "00bz6jcbxgnllplk4b9lnyc3w8yd3pz5rn11rmca1s8cn6vvw608";
-      git = "1pnam9jry2l2mbji3gvrbb7jyisxl99xjz6l1qrccwnfinxxbmhv";
-    };
-  };
-
-  ruby_2_1_6 = generic {
-    majorVersion = "2";
-    minorVersion = "1";
-    teenyVersion = "6";
-    patchLevel = "0";
-    sha256 = {
-      src = "1r4bs8lfwsypbcf8j2lpv3by40729vp5mh697njizj97fjp644qy";
-      git = "18kbjsbmgv6l3p1qxgmjnhh4jl7xdk3c20ycjpp62vrhq7pyzjsm";
-    };
-  };
-
   ruby_2_1_7 = generic {
     majorVersion = "2";
     minorVersion = "1";
@@ -223,28 +168,6 @@ in {
     };
   };
 
-  ruby_2_2_0 = generic {
-    majorVersion = "2";
-    minorVersion = "2";
-    teenyVersion = "0";
-    patchLevel = "0";
-    sha256 = {
-      src = "1z2092fbpc2qkv1j3yj7jdz7qwvqpxqpmcnkphpjcpgvmfaf6wbn";
-      git = "1w7rr2nq1bbw6aiagddzlrr3rl95kk33x4pv6570nm072g55ybpi";
-    };
-  };
-
-  ruby_2_2_2 = generic {
-    majorVersion = "2";
-    minorVersion = "2";
-    teenyVersion = "2";
-    patchLevel = "0";
-    sha256 = {
-      src = "0i4v7l8pnam0by2cza12zldlhrffqchwb2m9shlnp7j2gqqhzz2z";
-      git = "08mw1ql2ghy483cp8xzzm78q17simn4l6phgm2gah7kjh9y3vbrn";
-    };
-  };
-
   ruby_2_2_3 = generic {
     majorVersion = "2";
     minorVersion = "2";
diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix
index 01e4e2f4c58d..4231623f8926 100644
--- a/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/pkgs/development/interpreters/ruby/patchsets.nix
@@ -36,77 +36,6 @@ rec {
     "${patchSet}/patches/ruby/2.0.0/p${patchLevel}/railsexpress/03-display-more-detailed-stack-trace.patch"
     "${patchSet}/patches/ruby/2.0.0/p${patchLevel}/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
   ];
-  "2.1.0" = [
-    ./ssl_v3.patch
-  ] ++ ops useRailsExpress [
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/01-current-2.1.1-fixes.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/02-zero-broken-tests.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/03-improve-gc-stats.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/04-display-more-detailed-stack-trace.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/05-show-full-backtrace-on-stack-overflow.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/06-fix-missing-c-return-event.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/07-backport-006e66b6680f60adfb434ee7397f0dbc77de7873.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/08-funny-falcon-stc-density.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/09-funny-falcon-stc-pool-allocation.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/10-aman-opt-aset-aref-str.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/11-funny-falcon-method-cache.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/12-backport-r44370.patch"
-  ];
-  "2.1.1" = [
-    ./ssl_v3.patch
-  ] ++ ops useRailsExpress [
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/01-zero-broken-tests.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/02-improve-gc-stats.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/03-display-more-detailed-stack-trace.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/05-fix-missing-c-return-event.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/07-backport-006e66b6680f60adfb434ee7397f0dbc77de7873.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/08-funny-falcon-stc-density.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/09-funny-falcon-stc-pool-allocation.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/10-aman-opt-aset-aref-str.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/11-funny-falcon-method-cache.patch"
-    "${patchSet}/patches/ruby/2.1.0/railsexpress/12-backport-r44370.patch"
-  ];
-  "2.1.2" = [
-    ./ssl_v3.patch
-  ] ++ ops useRailsExpress [
-    "${patchSet}/patches/ruby/2.1.2/railsexpress/01-zero-broken-tests.patch"
-    "${patchSet}/patches/ruby/2.1.2/railsexpress/02-improve-gc-stats.patch"
-    "${patchSet}/patches/ruby/2.1.2/railsexpress/03-display-more-detailed-stack-trace.patch"
-    "${patchSet}/patches/ruby/2.1.2/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
-    "${patchSet}/patches/ruby/2.1.2/railsexpress/05-fix-missing-c-return-event.patch"
-    "${patchSet}/patches/ruby/2.1.2/railsexpress/06-backport-006e66b6680f60adfb434ee7397f0dbc77de7873.patch"
-    "${patchSet}/patches/ruby/2.1.2/railsexpress/07-funny-falcon-stc-density.patch"
-    "${patchSet}/patches/ruby/2.1.2/railsexpress/08-funny-falcon-stc-pool-allocation.patch"
-    "${patchSet}/patches/ruby/2.1.2/railsexpress/09-aman-opt-aset-aref-str.patch"
-    "${patchSet}/patches/ruby/2.1.2/railsexpress/10-funny-falcon-method-cache.patch"
-  ];
-  "2.1.3" = [
-    ./ssl_v3.patch
-    ./rand-egd.patch
-  ] ++ ops useRailsExpress [
-    "${patchSet}/patches/ruby/2.1.3/railsexpress/01-zero-broken-tests.patch"
-    "${patchSet}/patches/ruby/2.1.3/railsexpress/02-improve-gc-stats.patch"
-    "${patchSet}/patches/ruby/2.1.3/railsexpress/03-display-more-detailed-stack-trace.patch"
-    "${patchSet}/patches/ruby/2.1.3/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
-    "${patchSet}/patches/ruby/2.1.3/railsexpress/05-funny-falcon-stc-density.patch"
-    "${patchSet}/patches/ruby/2.1.3/railsexpress/06-funny-falcon-stc-pool-allocation.patch"
-    "${patchSet}/patches/ruby/2.1.3/railsexpress/07-aman-opt-aset-aref-str.patch"
-    "${patchSet}/patches/ruby/2.1.3/railsexpress/08-funny-falcon-method-cache.patch"
-  ];
-  "2.1.6" = [
-    ./ssl_v3.patch
-  ] ++ ops useRailsExpress [
-    "${patchSet}/patches/ruby/2.1.6/railsexpress/01-zero-broken-tests.patch"
-    "${patchSet}/patches/ruby/2.1.6/railsexpress/02-improve-gc-stats.patch"
-    "${patchSet}/patches/ruby/2.1.6/railsexpress/03-display-more-detailed-stack-trace.patch"
-    "${patchSet}/patches/ruby/2.1.6/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
-    "${patchSet}/patches/ruby/2.1.6/railsexpress/05-funny-falcon-stc-density.patch"
-    "${patchSet}/patches/ruby/2.1.6/railsexpress/06-funny-falcon-stc-pool-allocation.patch"
-    "${patchSet}/patches/ruby/2.1.6/railsexpress/07-aman-opt-aset-aref-str.patch"
-    "${patchSet}/patches/ruby/2.1.6/railsexpress/08-funny-falcon-method-cache.patch"
-    "${patchSet}/patches/ruby/2.1.6/railsexpress/09-heap-dump-support.patch"
-  ];
   "2.1.7" = [
     ./ssl_v3.patch
     ./rand-egd.patch
@@ -121,24 +50,6 @@ rec {
     "${patchSet}/patches/ruby/2.1.7/railsexpress/08-funny-falcon-method-cache.patch"
     "${patchSet}/patches/ruby/2.1.7/railsexpress/09-heap-dump-support.patch"
   ];
-  "2.2.0" = [
-    ./ssl_v3.patch
-  ] ++ ops useRailsExpress [
-    "${patchSet}/patches/ruby/2.2.0/railsexpress/01-zero-broken-tests.patch"
-    "${patchSet}/patches/ruby/2.2.0/railsexpress/02-improve-gc-stats.patch"
-    "${patchSet}/patches/ruby/2.2.0/railsexpress/03-display-more-detailed-stack-trace.patch"
-    "${patchSet}/patches/ruby/2.2.0/railsexpress/04-backport-401c8bb.patch"
-    "${patchSet}/patches/ruby/2.2.0/railsexpress/05-fix-packed-bitfield-compat-warning-for-older-gccs.patch"
-  ];
-  "2.2.2" = [
-    ./ssl_v3.patch
-    ./ruby22-rand-egd.patch
-  ] ++ ops useRailsExpress [
-    "${patchSet}/patches/ruby/2.2.2/railsexpress/01-zero-broken-tests.patch"
-    "${patchSet}/patches/ruby/2.2.2/railsexpress/02-improve-gc-stats.patch"
-    "${patchSet}/patches/ruby/2.2.2/railsexpress/03-display-more-detailed-stack-trace.patch"
-    "${patchSet}/patches/ruby/2.2.2/railsexpress/04-backported-bugfixes-222.patch"
-  ];
   "2.2.3" = [
     ./ssl_v3.patch
     ./ruby22-rand-egd.patch
diff --git a/pkgs/development/libraries/libebml/default.nix b/pkgs/development/libraries/libebml/default.nix
index 818177ff49d7..3bdcfeda6a5f 100644
--- a/pkgs/development/libraries/libebml/default.nix
+++ b/pkgs/development/libraries/libebml/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libebml-1.3.1";
+  name = "libebml-1.3.3";
 
   src = fetchurl {
     url = "http://dl.matroska.org/downloads/libebml/${name}.tar.bz2";
-    sha256 = "15a2d15rq0x9lp7rfsv0jxaw5c139xs7s5dwr5bmd9dc3arr8n0r";
+    sha256 = "16alhwd1yz5bv3765xfn5azwk37805lg1f61195gjq8rlkd49yrm";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libmatroska/default.nix b/pkgs/development/libraries/libmatroska/default.nix
index b4032f3c22dc..134f6b1bf270 100644
--- a/pkgs/development/libraries/libmatroska/default.nix
+++ b/pkgs/development/libraries/libmatroska/default.nix
@@ -1,17 +1,16 @@
-{ stdenv, fetchurl, libebml }:
+{ stdenv, fetchurl, pkgconfig, libebml }:
 
 stdenv.mkDerivation rec {
-  name = "libmatroska-1.4.1";
+  name = "libmatroska-1.4.4";
 
   src = fetchurl {
     url = "http://dl.matroska.org/downloads/libmatroska/${name}.tar.bz2";
-    sha256 = "1dzglkl0hpimld1kahkrrp857hw5pg1r7xxbpnx7jmlj7s3j2vq8";
+    sha256 = "1mvb54q3gag9dj0pkwci8w75gp6mm14gi85y0ld3ar1rdngsmvyk";
   };
 
-  configurePhase = "cd make/linux";
-  makeFlags = "prefix=$(out) LIBEBML_INCLUDE_DIR=${libebml}/include LIBEBML_LIB_DIR=${libebml}/lib"
-    + stdenv.lib.optionalString stdenv.isDarwin " CXX=clang++";
-  propagatedBuildInputs = [ libebml ];
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ libebml ];
 
   meta = with stdenv.lib; {
     description = "A library to parse Matroska files";
diff --git a/pkgs/development/libraries/libpsl/default.nix b/pkgs/development/libraries/libpsl/default.nix
index d1da2bbf3aac..231216cbc698 100644
--- a/pkgs/development/libraries/libpsl/default.nix
+++ b/pkgs/development/libraries/libpsl/default.nix
@@ -11,14 +11,14 @@ let
     owner = "publicsuffix";
   };
 
-  libVersion = "0.12.0";
+  libVersion = "0.13.0";
 
 in stdenv.mkDerivation rec {
   name = "libpsl-${version}";
   version = "${libVersion}-list-${listVersion}";
 
   src = fetchFromGitHub {
-    sha256 = "13w3lc752az2swymg408f3w2lbqs0f2h5ri6d5jw1vv9z0ij9xlw";
+    sha256 = "12inl984r2qks51wyrzgll83y7k79q2lbhyc545dpk19qnfvp7gz";
     rev = "libpsl-${libVersion}";
     repo = "libpsl";
     owner = "rockdaboot";
diff --git a/pkgs/development/libraries/libsoundio/default.nix b/pkgs/development/libraries/libsoundio/default.nix
index 9f9f89ec8125..a35ab14e2538 100644
--- a/pkgs/development/libraries/libsoundio/default.nix
+++ b/pkgs/development/libraries/libsoundio/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, alsaLib, libjack2-git, libpulseaudio }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.3";
+  version = "1.1.0";
   name = "libsoundio-${version}";
 
   src = fetchFromGitHub {
     owner = "andrewrk";
     repo = "libsoundio";
     rev = "${version}";
-    sha256 = "0xnv0rsan57i07ky823jczylbcpbzjk6j06fw9x0md65arcgcqfy";
+    sha256 = "0mw197l4bci1cjc2z877gxwsvk8r43dr7qiwci2hwl2cjlcnqr2p";
   };
 
   buildInputs = [ cmake alsaLib libjack2-git libpulseaudio ];
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 5bb63c915e61..31ac49a2ce4d 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -1,19 +1,17 @@
-{ stdenv, fetchurl, autoconf, automake, libtool }:
+{ stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   name = "wolfssl-${version}";
-  version = "3.7.0";
+  version = "3.8.0";
 
-  src = fetchurl {
-    url    = "https://github.com/wolfSSL/wolfssl/archive/v${version}.tar.gz";
-    sha256 = "1r1awivral4xjjvnna9lrfz2rh84rcbp04834rymbsz0kbyykgb6";
+  src = fetchFromGitHub {
+    owner = "wolfSSL";
+    repo = "wolfssl";
+    rev = "v${version}";
+    sha256 = "0vc2120a9gfxg3rv018ch1g84ia2cpplcqbpy8v6vpfb79rn1nf5";
   };
 
-  nativeBuildInputs = [ autoconf automake libtool ];
-
-  preConfigure = ''
-    ./autogen.sh
-  '';
+  nativeBuildInputs = [ autoreconfHook ];
 
   meta = with stdenv.lib; {
     description = "A small, fast, portable implementation of TLS/SSL for embedded devices";
diff --git a/pkgs/development/tools/analysis/cppcheck/default.nix b/pkgs/development/tools/analysis/cppcheck/default.nix
index 53397786dc49..5955f34b58e9 100644
--- a/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, libxslt, docbook_xsl, docbook_xml_dtd_45 }:
 
 let
-  name = "cppcheck";
-  version = "1.69";
+  pname = "cppcheck";
+  version = "1.72";
 in
-stdenv.mkDerivation {
-  name = "${name}-${version}";
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/${name}/${name}-${version}.tar.bz2";
-    sha256 = "0bjkqy4c6ph6nzparcnbxrdn52i3hiind4jc99v2kvsq281wimab";
+    url = "mirror://sourceforge/${pname}/${name}.tar.bz2";
+    sha256 = "085lm8v7biixy6rykq836gfy91jcccpz9qpk8i9x339dzy2b2q4l";
   };
 
   buildInputs = [ libxslt docbook_xsl docbook_xml_dtd_45 ];
@@ -22,15 +22,15 @@ stdenv.mkDerivation {
     cp cppcheck.1 $out/share/man/man1/cppcheck.1
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A static analysis tool for C/C++ code";
     longDescription = ''
       Check C/C++ code for memory leaks, mismatching
       allocation-deallocation, buffer overruns and more.
     '';
     homepage = http://cppcheck.sourceforge.net/;
-    license = stdenv.lib.licenses.gpl3Plus;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.simons ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ simons joachifm ];
   };
 }
diff --git a/pkgs/games/crawl/default.nix b/pkgs/games/crawl/default.nix
index e6a1eb2c1a62..0b9287faf370 100644
--- a/pkgs/games/crawl/default.nix
+++ b/pkgs/games/crawl/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, which, sqlite, lua5_1, perl, zlib, pkgconfig, ncurses
 , dejavu_fonts, libpng, SDL2, SDL2_image, mesa, freetype
-, tileMode ? true
+, tileMode ? false
 }:
 
 let version = "0.17.1";
@@ -26,8 +26,6 @@ stdenv.mkDerivation rec {
   preBuild = ''
     cd crawl-ref/source
     echo "${version}" > util/release_ver
-    # Related to issue #1963
-    sed -i 's/-fuse-ld=gold//g' Makefile
     for i in util/*; do
       patchShebangs $i
     done
diff --git a/pkgs/misc/cups/drivers/splix/default.nix b/pkgs/misc/cups/drivers/splix/default.nix
index ab6bcfba6a1d..532ef2a45d5d 100644
--- a/pkgs/misc/cups/drivers/splix/default.nix
+++ b/pkgs/misc/cups/drivers/splix/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchsvn, fetchurl, cups, zlib }:
-let rev = "315"; in
+{stdenv, fetchurl, cups, zlib}:
+
 stdenv.mkDerivation rec {
-  name = "splix-svn-${rev}";
-  src = fetchsvn {
-    # We build this from svn, because splix hasn't been in released in several years
-    # although the community has been adding some new printer models.
-    url = "svn://svn.code.sf.net/p/splix/code/splix";
-    rev = "r${rev}";
-    sha256 = "16wbm4xnz35ca3mw2iggf5f4jaxpyna718ia190ka6y4ah932jxl";
+  name = "splix-2.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/splix/${name}.tar.bz2";
+    sha256 = "0bwivrwwvh6hzvnycpzqs7a0capgycahc4s3v9ihx552fgy07xwp";
   };
 
-  preBuild = ''
+  patches = [ ./splix-2.0.0-gcc45.patch ];
+
+  preBuild=''
     makeFlags="V=1 DISABLE_JBIG=1 CUPSFILTER=$out/lib/cups/filter CUPSPPD=$out/share/cups/model"
   '';
 
-  buildInputs = [ cups zlib ];
+  buildInputs = [cups zlib];
 
   meta = {
     homepage = http://splix.sourceforge.net;
diff --git a/pkgs/misc/cups/drivers/splix/splix-2.0.0-gcc45.patch b/pkgs/misc/cups/drivers/splix/splix-2.0.0-gcc45.patch
new file mode 100644
index 000000000000..5ccdcb2514c5
--- /dev/null
+++ b/pkgs/misc/cups/drivers/splix/splix-2.0.0-gcc45.patch
@@ -0,0 +1,18 @@
+Fixing build with gcc 4.5
+
+http://bugs.gentoo.org/show_bug.cgi?id=318581
+
+downloaded from
+http://gentoo-overlays.zugaina.org/gentoo/portage/net-print/splix/files/splix-2.0.0-gcc45.patch
+
+--- splix-old/src/ppdfile.cpp
++++ splix-new/src/ppdfile.cpp
+@@ -282,7 +282,7 @@
+  * Opérateur d'assignation
+  * Assignment operator
+  */
+-void PPDFile::Value::operator = (const PPDFile::Value::Value &val)
++void PPDFile::Value::operator = (const PPDFile::Value &val)
+ {
+     if (_preformatted)
+         delete[] _preformatted;
diff --git a/pkgs/misc/emulators/retrofe/default.nix b/pkgs/misc/emulators/retrofe/default.nix
index bf3091d1d706..a13cc49b5720 100644
--- a/pkgs/misc/emulators/retrofe/default.nix
+++ b/pkgs/misc/emulators/retrofe/default.nix
@@ -2,11 +2,7 @@
 , python, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, sqlite, zlib
 }:
 
-let
-  gstPlugins = with gst_all_1; [ gst-libav gst-plugins-base gst-plugins-good ];
-  GST_PLUGIN_PATH = stdenv.lib.makeSearchPath "lib/gstreamer-1.0" gstPlugins;
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "retrofe-${version}";
   version = "0.6.169";
 
@@ -20,7 +16,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     glib gst_all_1.gstreamer SDL2 SDL2_image SDL2_mixer SDL2_ttf sqlite zlib
-  ] ++ gstPlugins;
+  ] ++ (with gst_all_1; [ gst-libav gst-plugins-base gst-plugins-good ]);
 
   patches = [ ./include-paths.patch ];
 
@@ -58,22 +54,24 @@ in stdenv.mkDerivation rec {
     EOF
 
     chmod +x $out/bin/retrofe-init
+
+    runHook postInstall
   '';
 
   # retrofe will look for config files in its install path ($out/bin).
   # When set it will use $RETROFE_PATH instead. Sadly this behaviour isn't
   # documented well. To make it behave more like as expected it's set to
   # $PWD by default here.
-  fixupPhase = ''
+  postInstall = ''
     wrapProgram "$out/bin/retrofe" \
-      --prefix GST_PLUGIN_PATH : '${GST_PLUGIN_PATH}/lib/gstreamer-1.0' \
+      --prefix GST_PLUGIN_PATH : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
       --set    RETROFE_PATH      "\''${RETROFE_PATH:-\$PWD}"
   '';
 
   meta = with stdenv.lib; {
     description = "A frontend for arcade cabinets and media PCs";
-    license = licenses.gpl3Plus;
     homepage = http://retrofe.com;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hrdinka ];
   };
 }
diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index 5e6e73419d2e..c61947fc8f7a 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -1616,4 +1616,24 @@ rec {
 
   };
 
+  lightline-vim = buildVimPluginFrom2Nix {
+    name = "lightline-2016-02-10";
+    src = fetchgit {
+      url = "git://github.com/itchyny/lightline.vim";
+      rev = "e6a43f98fab1ee2e373bd0b670803222607ed123";
+      sha256 = "abb836d728a8f674f3aa71c4936798c9be02bb352ca0e6e5f5b262886622ac3b";
+    };
+    dependencies = [];
+  };
+
+  Spacegray-vim = buildVimPluginFrom2Nix {
+    name = "spacegray-2015-04-05";
+    src = fetchgit {
+      url = "git://github.com/ajh17/Spacegray.vim";
+      rev = "1c10d0da045609910e8fb03b33c043bbcff35d9e";
+      sha256 = "bced8987539ca42f84350b90e2570a226dad66e8061b90b79a41d51f9fb4b4b5";
+    };
+    dependencies = [];
+  };
+
 }
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 87420a7a4ca5..82b59f1ebaa8 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -21,6 +21,7 @@
 "ghcmod"
 "github:Chiel92/vim-autoformat"
 "github:LnL7/vim-nix"
+"github:ajh17/Spacegray.vim"
 "github:ap/vim-css-color"
 "github:benekastah/neomake"
 "github:bitc/vim-hdevtools"
@@ -34,6 +35,7 @@
 "github:idris-hackers/idris-vim"
 "github:itchyny/calendar.vim"
 "github:itchyny/thumbnail.vim"
+"github:itchyny/lightline.vim"
 "github:ivanov/vim-ipython"
 "github:jceb/vim-hier"
 "github:jeetsukumaran/vim-buffergator"
diff --git a/pkgs/os-specific/linux/kernel/linux-3.10.nix b/pkgs/os-specific/linux/kernel/linux-3.10.nix
index cd7e6f1af74f..d0c09d35cd0b 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.10.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.10.97";
+  version = "3.10.99";
   extraMeta.branch = "3.10";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0z66nbnbhmzjjbvrd7sbg4351x92grk8xja58rxxbb28cj3sy9r9";
+    sha256 = "1hq90yn2ry36y317px7f0wy55j70ip3wlxa4qsdl9pzlndadcp24";
   };
 
   kernelPatches = args.kernelPatches;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.12.nix b/pkgs/os-specific/linux/kernel/linux-3.12.nix
index 636ff9e7d29a..f146e5f2f139 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.12.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.12.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.12.54";
+  version = "3.12.55";
   extraMeta.branch = "3.12";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0a6wv72257nasc1qrw966ajd60z24cjpc83hnbblsjkfl0b3zrrn";
+    sha256 = "0xg52i6zsrkzv0i2kxrsx0179lkp9f2388r06rahx0anf4ars5p2";
   };
 
   kernelPatches = args.kernelPatches;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.14.nix b/pkgs/os-specific/linux/kernel/linux-3.14.nix
index 80cb4bf89dc9..ae3ba775d41b 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.14.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.14.61";
+  version = "3.14.63";
   extraMeta.branch = "3.14";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "06lrz2z3lskajk87kq1qi8q6rbdczhsz6sbp5cba4i0nw7sg1nbg";
+    sha256 = "0q3qcgcaxjc298dgjpfn6g17lvki2p87f0zkaxs0h0g13jhykwbz";
   };
 
   kernelPatches = args.kernelPatches;
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index 56f660a248a8..6819dfedb137 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.4.3";
+  version = "4.4.4";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1pcichd5hp3hzb3hwh5737jwqmfv4ylhw04sbby3hzmxkfqrqdqb";
+    sha256 = "0b4190mwmxf329n16yl32my7dfi02pi7qf39a8v61sl9b2gxffad";
   };
 
   kernelPatches = args.kernelPatches;
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 9b0ec5c355aa..57a825ec0a09 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.5-rc6";
-  modDirVersion = "4.5.0-rc6";
+  version = "4.5-rc7";
+  modDirVersion = "4.5.0-rc7";
   extraMeta.branch = "4.5";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/testing/linux-${version}.tar.xz";
-    sha256 = "1cpbg6w0mzlxrc6crgqh5n4c8wxxr4yyikmk0bkpgsbr6qk3bydk";
+    sha256 = "0z43s7ccikmqigv4insjvizs3bkx2lgjvzsz5rmmpcga28dz44kq";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/mcelog/default.nix b/pkgs/os-specific/linux/mcelog/default.nix
index 9b347a8da54b..a30558092c32 100644
--- a/pkgs/os-specific/linux/mcelog/default.nix
+++ b/pkgs/os-specific/linux/mcelog/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "mcelog-${version}";
-  version = "132";
+  version = "133";
 
   src = fetchFromGitHub {
-    sha256 = "0qr0rdkva8a8wzsdmk0dm9zhpdnwp1lmla324xnayf0afyym3zj8";
+    sha256 = "1qj9jz67bd834sgqcxhyhn9fzxg8y9vfw7gmza5ikmjm6yi6mmfr";
     rev = "v${version}";
     repo = "mcelog";
     owner = "andikleen";
diff --git a/pkgs/os-specific/linux/nvidia-x11/legacy340.nix b/pkgs/os-specific/linux/nvidia-x11/legacy340.nix
index bb974410e371..fa9d6442e424 100644
--- a/pkgs/os-specific/linux/nvidia-x11/legacy340.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/legacy340.nix
@@ -12,7 +12,7 @@ assert (!libsOnly) -> kernel != null;
 
 let
 
-  versionNumber = "340.76";
+  versionNumber = "340.96";
   /* This branch is needed for G8x, G9x, and GT2xx GPUs, and motherboard chipsets based on them.
     Ongoing support for new Linux kernels and X servers, as well as fixes for critical bugs,
     will be included in 340.* legacy releases through the end of 2019.
@@ -25,18 +25,16 @@ stdenv.mkDerivation {
 
   builder = ./builder-legacy340.sh;
 
-  patches = [ ./nvidia-340.76-kernel-4.0.patch ];
-
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
-        url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
-        sha256 = "1l1nn340hc8iwlzb16gcm2xvnvkw7rf84ll89bcax70094xxjacv";
+        url = "http://download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
+        sha256 = "13j739gg1igll88xpfsx46m7pan4fwpzx5hqdskkdc0srmw2f3n4";
       }
     else if stdenv.system == "x86_64-linux" then
       fetchurl {
-        url = "http://us.download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-no-compat32.run";
-        sha256 = "016hnsgrcm4ly0mnkcd6c1qkciy3qmbwdwy4rlwq3m6dh4ixw7jc";
+        url = "http://download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-no-compat32.run";
+        sha256 = "1i0lri76ghhr4c6fdlv5gwzd99n70hv3kw21w51anb55msr9s3r8";
       }
     else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
@@ -62,5 +60,6 @@ stdenv.mkDerivation {
     license = licenses.unfreeRedistributable;
     platforms = platforms.linux;
     maintainers = [ maintainers.vcunat ];
+    priority = 4; # resolves collision with xorg-server's "lib/xorg/modules/extensions/libglx.so"
   };
 }
diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix
index 0f7f93a57410..490df3e1abe2 100644
--- a/pkgs/os-specific/linux/upower/default.nix
+++ b/pkgs/os-specific/linux/upower/default.nix
@@ -6,11 +6,11 @@
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "upower-0.99.3";
+  name = "upower-0.99.4";
 
   src = fetchurl {
     url = "http://upower.freedesktop.org/releases/${name}.tar.xz";
-    sha256 = "0f6x9mi1jzgqdpycaikyhjljnw3aacsl3gxndyg0dfqkq6y9jwb9";
+    sha256 = "1c1ph1j1fnrf3vipxb7ncmdfc36dpvcvpsv8n8lmal7grjk2b8ww";
   };
 
   buildInputs =
diff --git a/pkgs/servers/http/tomcat/6.0.nix b/pkgs/servers/http/tomcat/6.0.nix
index 71f1d62f4d80..c01e5065764c 100644
--- a/pkgs/servers/http/tomcat/6.0.nix
+++ b/pkgs/servers/http/tomcat/6.0.nix
@@ -1,6 +1,6 @@
 import ./recent.nix 
   {
     versionMajor = "6";
-    versionMinor = "0.44";
-    sha256 = "0942f0ss6w9k23xg94nir2dbbkqrqp5k628jflk51ikm5qr95dxa";
+    versionMinor = "0.45";
+    sha256 = "0ba8h86padpk23xmscp7sg70g0v8ji2jbwwriz59hxqy5zhd76wg";
   }
diff --git a/pkgs/servers/http/tomcat/7.0.nix b/pkgs/servers/http/tomcat/7.0.nix
index 221feb9c30eb..b38f4353cc45 100644
--- a/pkgs/servers/http/tomcat/7.0.nix
+++ b/pkgs/servers/http/tomcat/7.0.nix
@@ -1,6 +1,6 @@
 import ./recent.nix 
   {
     versionMajor = "7";
-    versionMinor = "0.62";
-    sha256 = "0v8zvyd4h85ynnday58x0ppplw4flxyjsrmrpg78rrv3w49fm1x7";
+    versionMinor = "0.68";
+    sha256 = "1q5qgci5ia25zqa1k1n2xzarsgk1317ya89mfgg0fmi65x1046ic";
   }
diff --git a/pkgs/servers/http/tomcat/8.0.nix b/pkgs/servers/http/tomcat/8.0.nix
index a6da1198c9aa..004601796672 100644
--- a/pkgs/servers/http/tomcat/8.0.nix
+++ b/pkgs/servers/http/tomcat/8.0.nix
@@ -1,6 +1,6 @@
 import ./recent.nix 
   {
     versionMajor = "8";
-    versionMinor = "0.23";
-    sha256 = "0f0s35iqs1zpifya0qvdrk55r77jr074sc0zk5cjivxaxnhik2y9";
+    versionMinor = "0.32";
+    sha256 = "1f59x5z8qf4rzy49m8d5ifi4h1ghkz5r33l3i67sib414h7jc8vy";
   }
diff --git a/pkgs/servers/mail/archiveopteryx/default.nix b/pkgs/servers/mail/archiveopteryx/default.nix
index 966f90c40f13..bb2ab16ae668 100644
--- a/pkgs/servers/mail/archiveopteryx/default.nix
+++ b/pkgs/servers/mail/archiveopteryx/default.nix
@@ -11,12 +11,18 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ jam ];
   buildInputs = [ openssl perl zlib ];
 
-  preConfigure = ''export PREFIX="$out" '';
+  preConfigure = ''
+    export INSTALLROOT=installroot
+    sed -i 's:BINDIR = $(PREFIX)/bin:BINDIR = '$out'/bin:' ./Jamsettings
+    sed -i 's:SBINDIR = $(PREFIX)/sbin:SBINDIR = '$out'/bin:' ./Jamsettings
+    sed -i 's:LIBDIR = $(PREFIX)/lib:LIBDIR = '$out'/lib:' ./Jamsettings
+    sed -i 's:MANDIR = $(PREFIX)/man:MANDIR = '$out'/share/man:' ./Jamsettings
+    sed -i 's:READMEDIR = $(PREFIX):READMEDIR = '$out'/share/doc/archiveopteryx:' ./Jamsettings
+  '';
   buildPhase = ''jam "-j$NIX_BUILD_CORES" '';
   installPhase = ''
     jam install
-    mkdir -p "$out/share/doc/archiveopteryx"
-    mv -t "$out/share/doc/archiveopteryx/" "$out"/{bsd.txt,COPYING,README}
+    mv installroot/$out $out
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index 208c3d4b1aa6..b46ea186dee3 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   name = "borgbackup-${version}";
-  version = "0.30.0";
+  version = "1.0.0";
   namePrefix = "";
 
   src = fetchurl {
     url = "https://pypi.python.org/packages/source/b/borgbackup/borgbackup-${version}.tar.gz";
-    sha256 = "0n78c982kdfqbyi9jawcvzgdik4l36c2s7rpzkfr1ka6506k2rx4";
+    sha256 = "0wa6cvqs3rni5nwrgagigchcly8a53rxk56z0zn8iaii2cqrw2sh";
   };
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index a5b01db4cd2a..3a460241daaa 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -1,14 +1,18 @@
-{ stdenv, fetchurl, pkgconfig, glib, fuse }:
+{ stdenv, fetchFromGitHub, pkgconfig, glib, fuse, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  name = "sshfs-fuse-2.5";
+  version = "2.7";
+  name = "sshfs-fuse-${version}";
   
-  src = fetchurl {
-    url = "mirror://sourceforge/fuse/${name}.tar.gz";
-    sha256 = "0gp6qr33l2p0964j0kds0dfmvyyf5lpgsn11daf0n5fhwm9185z9";
+  src = fetchFromGitHub {
+    repo = "sshfs";
+    owner = "libfuse";
+    rev = "sshfs-${version}";
+    sha256 = "17l9b89zy5qzfcknw3krk74rfrqaa8q1r8jwdsahaqajsy09h4x4";
   };
   
-  buildInputs = [ pkgconfig glib fuse ];
+  buildInputs = [ pkgconfig glib fuse autoreconfHook ];
+
   postInstall = ''
     mkdir -p $out/sbin
     ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
diff --git a/pkgs/tools/inputmethods/keyfuzz/default.nix b/pkgs/tools/inputmethods/keyfuzz/default.nix
new file mode 100644
index 000000000000..f04afd639b7d
--- /dev/null
+++ b/pkgs/tools/inputmethods/keyfuzz/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "keyfuzz-${version}";
+  version = "0.2";
+
+  meta = with stdenv.lib; {
+    description = "Manipulate the scancode/keycode translation tables of keyboard drivers.";
+    homepace    = http://0pointer.de/lennart/projects/keyfuzz/;
+    license     = licenses.gpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ mboes ];
+  };
+
+  src = fetchurl {
+    url = "http://0pointer.de/lennart/projects/keyfuzz/keyfuzz-0.2.tar.gz";
+    sha256 = "0xv9ymivp8fnyc5xcyh1vamxnx90bzw66wlld813fvm6q2gsiknk";
+  };
+
+  configureFlags = "--without-initdir --disable-lynx";
+}
diff --git a/pkgs/tools/misc/mimeo/default.nix b/pkgs/tools/misc/mimeo/default.nix
new file mode 100644
index 000000000000..66e91ed14240
--- /dev/null
+++ b/pkgs/tools/misc/mimeo/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, desktop_file_utils, file, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  name = "mimeo-${version}";
+  version = "2016.2";
+
+  src = fetchurl {
+    url = "http://xyne.archlinux.ca/projects/mimeo/src/${name}.tar.xz";
+    sha256 = "1y3a60983ind2cakjwxq3cgc76xhcdqz5lcpnyii34s6wviybkn1";
+  };
+
+  buildInputs = [ file desktop_file_utils ];
+
+  propagatedBuildInputs = [ python3Packages.pyxdg ];
+
+  preConfigure = ''
+    substituteInPlace Mimeo.py \
+      --replace "EXE_UPDATE_DESKTOP_DATABASE = 'update-desktop-database'" \
+                "EXE_UPDATE_DESKTOP_DATABASE = '${desktop_file_utils}/bin/update-desktop-database'" \
+      --replace "EXE_FILE = 'file'" \
+                "EXE_FILE = '${file}/bin/file'"
+  '';
+
+  installPhase = "install -Dm755 Mimeo.py $out/bin/mimeo";
+
+  meta = with stdenv.lib; {
+    description = "Open files by MIME-type or file name using regular expressions";
+    homepage = http://xyne.archlinux.ca/projects/mimeo/;
+    license = [ licenses.gpl2 ];
+    maintainers = [ maintainers.rycee ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/ms-sys/default.nix b/pkgs/tools/misc/ms-sys/default.nix
index c0b1de6c1e8c..4d6a317276a0 100644
--- a/pkgs/tools/misc/ms-sys/default.nix
+++ b/pkgs/tools/misc/ms-sys/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "ms-sys-${version}";
-  version = "2.5.2";
+  version = "2.5.3";
  
   src = fetchurl {
     url = "mirror://sourceforge/ms-sys/${name}.tar.gz";
-    sha256 = "0c7ld5pglcacnrvy2gzzg1ny1jyknlj9iz1mvadq3hn8ai1d83px";
+    sha256 = "0mijf82cbji4laip6hiy3l5ka5mzq5sivjvyv7wxnc2fd3v7hgp0";
   };
 
   buildInputs = [ gettext ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with stdenv.lib; {
-    description = "A program for writing Microsoft compatible boot records";
+    description = "A program for writing Microsoft-compatible boot records";
     homepage = http://ms-sys.sourceforge.net/;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ nckx ];
diff --git a/pkgs/tools/misc/xdo/default.nix b/pkgs/tools/misc/xdo/default.nix
index e7a3d91967e6..26a5b485bf61 100644
--- a/pkgs/tools/misc/xdo/default.nix
+++ b/pkgs/tools/misc/xdo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libxcb, xcbutilwm }:
 
 stdenv.mkDerivation rec {
-   name = "xdo-0.3";
+   name = "xdo-0.5";
 
    src = fetchurl {
-     url = "https://github.com/baskerville/xdo/archive/0.3.tar.gz";
-     sha256 = "128flaydag9ixsai87p85r84arg2pn1j9h3zgdjwlmbcpb8d4ia8";
+     url = "https://github.com/baskerville/xdo/archive/0.5.tar.gz";
+     sha256 = "0sjnjs12i0gp1dg1m5jid4a3bg9am4qkf0qafyp6yn176yzcz1i6";
    };
 
    prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index c75cceb46a57..c59ea619942d 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   name = "curl-7.47.1";
 
   src = fetchurl {
-    url = "http://ngcobalt13.uxnr.de/mirror/curl/${name}.tar.bz2";
+    url = "http://curl.haxx.se/download/${name}.tar.bz2";
     sha256 = "13z9gba3q2ybp50z0gdkzhwcx9m0i7qkvm278yz4pql2jfml7inx";
   };
 
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 6e497a0093e1..6c6c479a4fd3 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -4,6 +4,7 @@
 , withKerberos ? false
 , withGssapiPatches ? withKerberos
 , kerberos
+, linkOpenssl? true
 }:
 
 assert withKerberos -> kerberos != null;
@@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
   # I set --disable-strip because later we strip anyway. And it fails to strip
   # properly when cross building.
   configureFlags = [
+    "--sbindir=\${out}/bin"
     "--localstatedir=/var"
     "--with-pid-dir=/run"
     "--with-mantype=man"
@@ -54,7 +56,8 @@ stdenv.mkDerivation rec {
     (if pam != null then "--with-pam" else "--without-pam")
   ] ++ optional (etcDir != null) "--sysconfdir=${etcDir}"
     ++ optional withKerberos "--with-kerberos5=${kerberos}"
-    ++ optional stdenv.isDarwin "--disable-libutil";
+    ++ optional stdenv.isDarwin "--disable-libutil"
+    ++ optional (!linkOpenssl) "--without-openssl";
 
   preConfigure = ''
     configureFlagsArray+=("--with-privsep-path=$out/empty")
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index 4819c004c1b8..edbf32bb775a 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "unbound-${version}";
-  version = "1.5.7";
+  version = "1.5.8";
 
   src = fetchurl {
     url = "http://unbound.net/downloads/${name}.tar.gz";
-    sha256 = "1a0wfgp6wqpf7cxlcbprqhnjx6z9ywf0rhrpcf7x98l1mbjqh82b";
+    sha256 = "33567a20f73e288f8daa4ec021fbb30fe1824b346b34f12677ad77899ecd09be";
   };
 
   buildInputs = [ openssl expat libevent ];
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     "--with-libevent=${libevent}"
     "--localstatedir=/var"
     "--sysconfdir=/etc"
+    "--sbindir=\${out}/bin"
     "--enable-pie"
     "--enable-relro-now"
   ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e8122e39f66a..eae12a8a77fa 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -277,7 +277,7 @@ let
 
   chrootFHSEnv = callPackage ../build-support/build-fhs-chrootenv { };
   userFHSEnv = callPackage ../build-support/build-fhs-userenv {
-   ruby = ruby_2_1_3;
+   ruby = ruby_2_1;
   };
 
   buildFHSChrootEnv = args: chrootFHSEnv {
@@ -2148,6 +2148,8 @@ let
 
   keychain = callPackage ../tools/misc/keychain { };
 
+  keyfuzz = callPackage ../tools/inputmethods/keyfuzz { };
+
   kibana = callPackage ../development/tools/misc/kibana { };
 
   kismet = callPackage ../applications/networking/sniffers/kismet { };
@@ -2414,6 +2416,8 @@ let
 
   mgba = qt5.callPackage ../misc/emulators/mgba { };
 
+  mimeo = callPackage ../tools/misc/mimeo { };
+
   minissdpd = callPackage ../tools/networking/minissdpd { };
 
   miniupnpc = callPackage ../tools/networking/miniupnpc { };
@@ -5509,8 +5513,11 @@ let
     wrapPython = pythonPackages.wrapPython;
   };
 
+  pixie = callPackage ../development/interpreters/pixie { };
+  dust = callPackage ../development/interpreters/pixie/dust.nix { };
+
   bundix = callPackage ../development/interpreters/ruby/bundix {
-    ruby = ruby_2_1_3;
+    ruby = ruby_2_1;
   };
   bundler = callPackage ../development/interpreters/ruby/bundler.nix { };
   bundler_HEAD = bundler;
@@ -5521,8 +5528,8 @@ let
   inherit (callPackage ../development/interpreters/ruby {})
     ruby_1_9_3
     ruby_2_0_0
-    ruby_2_1_0 ruby_2_1_1 ruby_2_1_2 ruby_2_1_3 ruby_2_1_6 ruby_2_1_7
-    ruby_2_2_0 ruby_2_2_2 ruby_2_2_3
+    ruby_2_1_7
+    ruby_2_2_3
     ruby_2_3_0;
 
   # Ruby aliases
@@ -5784,7 +5791,7 @@ let
   cgdb = callPackage ../development/tools/misc/cgdb { };
 
   chefdk = callPackage ../development/tools/chefdk {
-    ruby = ruby_2_0_0;
+    ruby = ruby_2_0;
   };
 
   matter-compiler = callPackage ../development/compilers/matter-compiler {};
@@ -6268,7 +6275,7 @@ let
   uncrustify = callPackage ../development/tools/misc/uncrustify { };
 
   vagrant = callPackage ../development/tools/vagrant {
-    ruby = ruby_2_2_2;
+    ruby = ruby_2_2;
   };
 
   gdb = callPackage ../development/tools/misc/gdb {
@@ -8103,9 +8110,6 @@ let
 
   mkvtoolnix-cli = mkvtoolnix.override {
     withGUI = false;
-    qt5 = null;
-    legacyGUI = false;
-    wxGTK = null;
   };
 
   mlt-qt4 = callPackage ../development/libraries/mlt {
@@ -11354,6 +11358,8 @@ let
     gtk = gtk2;
   };
 
+  ahoviewer = callPackage ../applications/graphics/ahoviewer { };
+
   alchemy = callPackage ../applications/graphics/alchemy { };
 
   alock = callPackage ../misc/screensavers/alock { };
@@ -11951,6 +11957,10 @@ let
       texinfo = texinfo4 ;
       texLive = texlive.combine { inherit (texlive) scheme-basic cm-super ec; };
     };
+    proofgeneral_HEAD = callPackage ../applications/editors/emacs-modes/proofgeneral/HEAD.nix {
+      texinfo = texinfo4 ;
+      texLive = texlive.combine { inherit (texlive) scheme-basic cm-super ec; };
+    };
     proofgeneral = self.proofgeneral_4_2;
 
     quack = callPackage ../applications/editors/emacs-modes/quack { };
@@ -12063,7 +12073,9 @@ let
 
   fldigi = callPackage ../applications/audio/fldigi { };
 
-  fluidsynth = callPackage ../applications/audio/fluidsynth { };
+  fluidsynth = callPackage ../applications/audio/fluidsynth {
+     inherit (darwin.apple_sdk.frameworks) CoreServices CoreAudio AudioUnit;
+  };
 
   fmit = qt5.callPackage ../applications/audio/fmit { };
 
@@ -13012,7 +13024,7 @@ let
   smtube = qt5.callPackage ../applications/video/smtube {};
 
   sup = callPackage ../applications/networking/mailreaders/sup {
-    ruby = ruby_1_9_3.override { cursesSupport = true; };
+    ruby = ruby_1_9.override { cursesSupport = true; };
   };
 
   synapse = callPackage ../applications/misc/synapse {
@@ -14404,12 +14416,12 @@ let
   crafty = callPackage ../games/crafty { };
   craftyFull = appendToName "full" (crafty.override { fullVariant = true; });
 
-  crawlTiles = callPackage ../games/crawl { };
-
-  crawl = callPackage ../games/crawl {
-    tileMode = false;
+  crawlTiles = crawl.override {
+    tileMode = true;
   };
 
+  crawl = callPackage ../games/crawl { };
+
   crrcsim = callPackage ../games/crrcsim {};
 
   cuyo = callPackage ../games/cuyo { };
diff --git a/pkgs/top-level/go-packages.nix b/pkgs/top-level/go-packages.nix
index dd9a9dde7bb3..888ffe474f2c 100644
--- a/pkgs/top-level/go-packages.nix
+++ b/pkgs/top-level/go-packages.nix
@@ -3767,12 +3767,22 @@ let
   };
 
   go2nix = buildFromGitHub rec {
-    rev = "dd513f1f1336a3cdceb9dd4be0f3c47a09929651";
+    rev = "4c552dadd855e3694ed3499feb46dca9cd855f60";
     owner = "kamilchm";
     repo = "go2nix";
-    sha256 = "1ad7zcab5vjbw7a8ns0aspkblqqz0z96b7ak3zdx409rq7rlqdsj";
-    buildInputs = [ go-bindata.bin tools.bin vcs go-spew gls go-difflib assertions goconvey testify kingpin ];
+    sha256 = "1pwnm1vrjxvgl17pk9n1k5chmhgwxkrwp2s1bzi64xf12anibj63";
+
+    buildInputs = [ pkgs.makeWrapper go-bindata.bin tools.bin vcs go-spew gls go-difflib assertions goconvey testify kingpin ];
+
     preBuild = ''go generate ./...'';
+
+    postInstall = ''
+      wrapProgram $bin/bin/go2nix \
+        --prefix PATH : ${pkgs.nix-prefetch-git}/bin \
+        --prefix PATH : ${pkgs.git}/bin
+    '';
+
+    allowGoReference = true;
   };
 
   godotenv = buildFromGitHub rec {
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 18ef6145df0f..af668f5251a2 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -1416,10 +1416,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CGI = buildPerlPackage rec {
-    name = "CGI-4.26";
+    name = "CGI-4.27";
     src = fetchurl {
       url = "mirror://cpan/authors/id/L/LE/LEEJO/${name}.tar.gz";
-      sha256 = "0k8rcmgl9ysk6h4racd5sximida5ypn8fdzi7q34rpq4l7xqcm2n";
+      sha256 = "0rjif2z44lnfk4hkf95mq52nsgvlgjdigabjpx3v697lfibhx37c";
     };
     buildInputs = [ TestDeep TestWarn ];
     propagatedBuildInputs = [ HTMLParser self."if" ];
@@ -7688,10 +7688,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   Moo = buildPerlPackage rec {
-    name = "Moo-2.000002";
+    name = "Moo-2.001001";
     src = fetchurl {
       url = "mirror://cpan/authors/id/H/HA/HAARG/${name}.tar.gz";
-      sha256 = "fb4bfa751f0dd06bd70f2e06e811f85a640501f263c228a8efafbf6b26691fd4";
+      sha256 = "a68155b642f389cb1cc40139e2663d0c5d15eb71d9ecb0961623a73c10dd8ec0";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ ClassMethodModifiers DevelGlobalDestruction ModuleRuntime RoleTiny ];
@@ -10796,14 +10796,17 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  SubName = buildPerlPackage {
-    name = "Sub-Name-0.0502";
+  SubName = buildPerlPackage rec {
+    name = "Sub-Name-0.14";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CH/CHIPS/Sub-Name-0.0502.tar.gz;
-      sha256 = "1r197binpdy4xfh65qkxxvi9c39pmvvcny4rl8a7zrk1jcws6fac";
+      url = "mirror://cpan/authors/id/E/ET/ETHER/${name}.tar.gz";
+      sha256 = "9276412677b445e7e9bdf6ab3a034a05a860e5c5dc560dd9272967745eeb3f17";
     };
     meta = {
-      description = "(Re)name a sub";
+      homepage = https://github.com/karenetheridge/Sub-Name;
+      description = "(re)name a sub";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.rycee ];
     };
   };