summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/maintainers.nix4
-rw-r--r--nixos/modules/hardware/video/webcam/facetimehd.nix45
-rw-r--r--nixos/modules/installer/tools/nixos-install.sh5
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/security/acme.nix4
-rw-r--r--nixos/modules/services/databases/postgresql.nix38
-rw-r--r--nixos/modules/services/hardware/bluetooth.nix60
-rw-r--r--nixos/modules/services/logging/logstash.nix6
-rw-r--r--nixos/modules/services/mail/dovecot.nix1
-rw-r--r--nixos/modules/services/mail/dspam.nix5
-rw-r--r--nixos/modules/services/mail/postfix.nix32
-rw-r--r--nixos/modules/services/mail/postsrsd.nix6
-rw-r--r--nixos/modules/services/misc/gitit.nix1
-rw-r--r--nixos/modules/services/networking/i2pd.nix300
-rw-r--r--nixos/modules/services/networking/tinc.nix12
-rw-r--r--nixos/modules/services/networking/unifi.nix2
-rw-r--r--nixos/modules/services/search/elasticsearch.nix13
-rw-r--r--nixos/modules/services/search/kibana.nix65
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/mediawiki.nix4
-rw-r--r--nixos/modules/system/boot/loader/init-script/init-script-builder.sh9
-rw-r--r--nixos/modules/tasks/kbd.nix51
-rw-r--r--nixos/modules/tasks/network-interfaces-scripted.nix7
-rw-r--r--nixos/tests/simple.nix4
-rw-r--r--pkgs/applications/audio/non/default.nix6
-rw-r--r--pkgs/applications/audio/sonata/default.nix73
-rw-r--r--pkgs/applications/audio/timemachine/default.nix29
-rw-r--r--pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix2
-rw-r--r--pkgs/applications/graphics/imv/default.nix17
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/dmenu/wayland.nix34
-rw-r--r--pkgs/applications/misc/gollum/Gemfile2
-rw-r--r--pkgs/applications/misc/gollum/Gemfile.lock55
-rw-r--r--pkgs/applications/misc/gollum/default.nix18
-rw-r--r--pkgs/applications/misc/gollum/gemset.nix170
-rw-r--r--pkgs/applications/misc/st/wayland.nix34
-rw-r--r--pkgs/applications/misc/synergy/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/sources.nix358
-rw-r--r--pkgs/applications/networking/browsers/firefox/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix2
-rw-r--r--pkgs/applications/networking/nntp-proxy/default.nix31
-rw-r--r--pkgs/applications/networking/remote/ssvnc/default.nix3
-rw-r--r--pkgs/applications/version-management/smartgithg/default.nix8
-rw-r--r--pkgs/applications/window-managers/compton/git.nix2
-rw-r--r--pkgs/applications/window-managers/orbment/default.nix57
-rw-r--r--pkgs/applications/window-managers/sway/default.nix40
-rw-r--r--pkgs/applications/window-managers/velox/default.nix31
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git23
-rw-r--r--pkgs/data/fonts/google-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/powerline-fonts/default.nix2
-rw-r--r--pkgs/data/misc/media-player-info/default.nix2
-rw-r--r--pkgs/data/misc/wireless-regdb/default.nix4
-rw-r--r--pkgs/desktops/plasma-5.5/bluedevil.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix21
-rw-r--r--pkgs/development/haskell-modules/patches/hans-disable-webserver.patch11
-rw-r--r--pkgs/development/interpreters/jruby/default.nix8
-rw-r--r--pkgs/development/interpreters/php/default.nix13
-rw-r--r--pkgs/development/interpreters/ruby/bundix/default.nix54
-rw-r--r--pkgs/development/libraries/libao/default.nix4
-rw-r--r--pkgs/development/libraries/libpsl/default.nix6
-rw-r--r--pkgs/development/libraries/nss/default.nix6
-rw-r--r--pkgs/development/libraries/openjpeg/generic.nix2
-rw-r--r--pkgs/development/libraries/phonon-backend-gstreamer/qt5/default.nix2
-rw-r--r--pkgs/development/libraries/swc/default.nix30
-rw-r--r--pkgs/development/libraries/wcslib/default.nix4
-rw-r--r--pkgs/development/libraries/wlc/default.nix68
-rw-r--r--pkgs/development/libraries/wld/default.nix30
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/waf/default.nix31
-rw-r--r--pkgs/development/tools/misc/kibana/default.nix5
-rw-r--r--pkgs/development/tools/ocaml/ocaml-top/default.nix2
-rw-r--r--pkgs/development/tools/sunxi-tools/default.nix29
-rw-r--r--pkgs/games/dwarf-fortress/default.nix3
-rw-r--r--pkgs/games/dwarf-fortress/themes/cla.nix32
-rw-r--r--pkgs/games/dwarf-fortress/themes/phoebus.nix10
-rw-r--r--pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in1
-rw-r--r--pkgs/games/gzdoom/default.nix2
-rw-r--r--pkgs/games/zandronum/bin.nix2
-rw-r--r--pkgs/games/zandronum/default.nix2
-rw-r--r--pkgs/games/zdoom/default.nix2
-rw-r--r--pkgs/misc/emulators/mupen64plus/1.5.nix33
-rw-r--r--pkgs/misc/emulators/wine/sources.nix6
-rw-r--r--pkgs/misc/themes/vertex/default.nix2
-rw-r--r--pkgs/os-specific/linux/bluez/bluez-5.37-obexd_without_systemd-1.patch61
-rw-r--r--pkgs/os-specific/linux/bluez/bluez5.nix3
-rw-r--r--pkgs/os-specific/linux/bluez/bluez5_28.nix1
-rw-r--r--pkgs/os-specific/linux/facetimehd/default.nix34
-rw-r--r--pkgs/os-specific/linux/firmware/facetimehd-firmware/default.nix51
-rw-r--r--pkgs/os-specific/linux/htop/default.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-mptcp.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix2
-rw-r--r--pkgs/os-specific/linux/mcelog/default.nix4
-rw-r--r--pkgs/os-specific/linux/pflask/default.nix33
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix21
-rw-r--r--pkgs/servers/mail/dspam/default.nix7
-rw-r--r--pkgs/servers/mail/opensmtpd/default.nix1
-rw-r--r--pkgs/servers/mail/postfix/pfixtools.nix48
-rw-r--r--pkgs/servers/mail/rmilter/default.nix2
-rw-r--r--pkgs/servers/mail/rspamd/default.nix2
-rw-r--r--pkgs/servers/nosql/cassandra/2.1.nix4
-rw-r--r--pkgs/servers/search/elasticsearch/2.x.nix41
-rw-r--r--pkgs/servers/search/elasticsearch/es-home-2.x.patch31
-rw-r--r--pkgs/servers/sql/postgresql/default.nix26
-rw-r--r--pkgs/servers/xmpp/ejabberd/default.nix147
-rw-r--r--pkgs/servers/xmpp/prosody/default.nix4
-rw-r--r--pkgs/tools/X11/screen-message/default.nix9
-rw-r--r--pkgs/tools/audio/beets/default.nix34
-rw-r--r--pkgs/tools/misc/cpulimit/default.nix2
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix2
-rw-r--r--pkgs/tools/networking/cmst/default.nix16
-rw-r--r--pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix4
-rw-r--r--pkgs/tools/networking/nethogs/default.nix2
-rw-r--r--pkgs/tools/package-management/nix/default.nix40
-rw-r--r--pkgs/tools/text/colordiff/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix75
-rw-r--r--pkgs/top-level/python-packages.nix160
-rw-r--r--pkgs/top-level/release.nix16
123 files changed, 2149 insertions, 889 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index db6a55a283f..808d78d499d 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -94,10 +94,11 @@
   eduarrrd = "Eduard Bachmakov <e.bachmakov@gmail.com>";
   edwtjo = "Edward Tjörnhammar <ed@cflags.cc>";
   eelco = "Eelco Dolstra <eelco.dolstra@logicblox.com>";
+  ehmry = "Emery Hemingway <emery@vfemail.net>";
   eikek = "Eike Kettner <eike.kettner@posteo.de>";
   elasticdog = "Aaron Bull Schaefer <aaron@elasticdog.com>";
+  elitak = "Eric Litak <elitak@gmail.com>";
   ellis = "Ellis Whitehead <nixos@ellisw.net>";
-  ehmry = "Emery Hemingway <emery@vfemail.net>";
   epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
   ericbmerritt = "Eric Merritt <eric@afiniate.com>";
   ericsagnes = "Eric Sagnes <eric.sagnes@gmail.com>";
@@ -105,6 +106,7 @@
   ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
   exi = "Reno Reckling <nixos@reckling.org>";
   exlevan = "Alexey Levan <exlevan@gmail.com>";
+  fadenb = "Tristan Helmich <tristan.helmich+nixos@gmail.com>";
   falsifian = "James Cook <james.cook@utoronto.ca>";
   flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
   fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
diff --git a/nixos/modules/hardware/video/webcam/facetimehd.nix b/nixos/modules/hardware/video/webcam/facetimehd.nix
new file mode 100644
index 00000000000..b35709763b9
--- /dev/null
+++ b/nixos/modules/hardware/video/webcam/facetimehd.nix
@@ -0,0 +1,45 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.hardware.facetimehd;
+
+  kernelPackages = config.boot.kernelPackages;
+
+in
+
+{
+
+  options.hardware.facetimehd.enable = mkEnableOption "facetimehd kernel module";
+
+  config = mkIf cfg.enable {
+
+    assertions = singleton {
+      assertion = versionAtLeast kernelPackages.kernel.version "3.19";
+      message = "facetimehd is not supported for kernels older than 3.19";
+    };
+
+    boot.kernelModules = [ "facetimehd" ];
+
+    boot.blacklistedKernelModules = [ "bdc_pci" ];
+
+    boot.extraModulePackages = [ kernelPackages.facetimehd ];
+
+    hardware.firmware = [ pkgs.facetimehd-firmware ];
+
+    # unload module during suspend/hibernate as it crashes the whole system
+    powerManagement.powerDownCommands = ''
+      ${pkgs.module_init_tools}/bin/rmmod -f facetimehd
+    '';
+
+    # and load it back on resume
+    powerManagement.resumeCommands = ''
+      export MODULE_DIR=/run/current-system/kernel-modules/lib/modules
+      ${pkgs.module_init_tools}/bin/modprobe -v facetimehd
+    '';
+
+  };
+
+}
diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh
index 4e10615f902..c23d7e5b509 100644
--- a/nixos/modules/installer/tools/nixos-install.sh
+++ b/nixos/modules/installer/tools/nixos-install.sh
@@ -73,11 +73,6 @@ if ! test -e "$mountPoint"; then
     exit 1
 fi
 
-if ! grep -F -q " $mountPoint " /proc/mounts; then
-    echo "$mountPoint doesn't appear to be a mount point"
-    exit 1
-fi
-
 
 # Mount some stuff in the target root directory.
 mkdir -m 0755 -p $mountPoint/dev $mountPoint/proc $mountPoint/sys $mountPoint/etc $mountPoint/run $mountPoint/home
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index f0b90d3d8c8..0011544988d 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -42,6 +42,7 @@
   ./hardware/video/bumblebee.nix
   ./hardware/video/nvidia.nix
   ./hardware/video/ati.nix
+  ./hardware/video/webcam/facetimehd.nix
   ./installer/tools/auto-upgrade.nix
   ./installer/tools/nixos-checkout.nix
   ./installer/tools/tools.nix
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index 15e5b49878f..3d25e811e67 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -56,8 +56,8 @@ let
 
       plugins = mkOption {
         type = types.listOf (types.enum [
-          "cert.der" "cert.pem" "chain.der" "chain.pem" "external_pem.sh"
-          "fullchain.der" "fullchain.pem" "key.der" "key.pem" "account_key.json"
+          "cert.der" "cert.pem" "chain.pem" "external_pem.sh"
+          "fullchain.pem" "full.pem" "key.der" "key.pem" "account_key.json"
         ]);
         default = [ "fullchain.pem" "key.pem" "account_key.json" ];
         description = ''
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index c2045a5859c..31ffe51c11e 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -158,7 +158,7 @@ in
       # Note: when changing the default, make it conditional on
       # ‘system.stateVersion’ to maintain compatibility with existing
       # systems!
-      mkDefault pkgs.postgresql94;
+      mkDefault (if versionAtLeast config.system.stateVersion "16.03" then pkgs.postgresql95 else pkgs.postgresql94);
 
     services.postgresql.authentication = mkAfter
       ''
@@ -177,7 +177,7 @@ in
 
     users.extraGroups.postgres.gid = config.ids.gids.postgres;
 
-    environment.systemPackages = [postgresql];
+    environment.systemPackages = [ postgresql ];
 
     systemd.services.postgresql =
       { description = "PostgreSQL Server";
@@ -187,35 +187,37 @@ in
 
         environment.PGDATA = cfg.dataDir;
 
-        path = [ pkgs.su postgresql ];
+        path = [ postgresql ];
 
         preStart =
           ''
-            # Initialise the database.
+            # Create data directory.
             if ! test -e ${cfg.dataDir}/PG_VERSION; then
-                mkdir -m 0700 -p ${cfg.dataDir}
-                rm -f ${cfg.dataDir}/*.conf
-                if [ "$(id -u)" = 0 ]; then
-                  chown -R postgres ${cfg.dataDir}
-                  su -s ${pkgs.stdenv.shell} postgres -c 'initdb -U root'
-                else
-                  # For non-root operation.
-                  initdb
-                fi
-                # See postStart!
-                touch "${cfg.dataDir}/.first_startup"
+              mkdir -m 0700 -p ${cfg.dataDir}
+              rm -f ${cfg.dataDir}/*.conf
+              chown -R postgres:postgres ${cfg.dataDir}
             fi
+          ''; # */
 
+        script =
+          ''
+            # Initialise the database.
+            if ! test -e ${cfg.dataDir}/PG_VERSION; then
+              initdb -U root
+              # See postStart!
+              touch "${cfg.dataDir}/.first_startup"
+            fi
             ln -sfn "${configFile}" "${cfg.dataDir}/postgresql.conf"
             ${optionalString (cfg.recoveryConfig != null) ''
               ln -sfn "${pkgs.writeText "recovery.conf" cfg.recoveryConfig}" \
                 "${cfg.dataDir}/recovery.conf"
             ''}
-          ''; # */
+
+             exec postgres ${toString flags}
+          '';
 
         serviceConfig =
-          { ExecStart = "@${postgresql}/bin/postgres postgres ${toString flags}";
-            ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+          { ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
             User = "postgres";
             Group = "postgres";
             PermissionsStartOnly = true;
diff --git a/nixos/modules/services/hardware/bluetooth.nix b/nixos/modules/services/hardware/bluetooth.nix
index 68d0406e63b..fc95c4910bf 100644
--- a/nixos/modules/services/hardware/bluetooth.nix
+++ b/nixos/modules/services/hardware/bluetooth.nix
@@ -1,6 +1,43 @@
 { config, lib, pkgs, ... }:
 
 with lib;
+let
+    bluez-bluetooth = if config.services.xserver.desktopManager.kde4.enable then pkgs.bluez else pkgs.bluez5;
+
+    configBluez = {
+        description = "Bluetooth Service";
+        serviceConfig = {
+          Type = "dbus";
+          BusName = "org.bluez";
+          ExecStart = "${bluez-bluetooth}/sbin/bluetoothd -n";
+        };
+        wantedBy = [ "bluetooth.target" ];
+    };
+
+    configBluez5 =  {
+        description = "Bluetooth Service";
+        serviceConfig = {
+          Type = "dbus";
+          BusName = "org.bluez";
+          ExecStart = "${bluez-bluetooth}/sbin/bluetoothd -n";
+          NotifyAccess="main";
+          CapabilityBoundingSet="CAP_NET_ADMIN CAP_NET_BIND_SERVICE";
+          LimitNPROC=1;
+        };
+        wantedBy = [ "bluetooth.target" ];
+    };
+
+    obexConfig = {
+        description = "Bluetooth OBEX service";
+        serviceConfig = {
+          Type = "dbus";
+          BusName = "org.bluez.obex";
+          ExecStart = "${bluez-bluetooth}/sbin/obexd";
+        };
+    };
+
+    bluezConfig = if config.services.xserver.desktopManager.kde4.enable then configBluez else configBluez5;
+in
 
 {
 
@@ -16,26 +53,15 @@ with lib;
 
   };
 
-
   ###### implementation
-
+  
   config = mkIf config.hardware.bluetooth.enable {
 
-    environment.systemPackages = [ pkgs.bluez pkgs.openobex pkgs.obexftp ];
-
-    services.udev.packages = [ pkgs.bluez ];
-
-    services.dbus.packages = [ pkgs.bluez ];
-
-    systemd.services."dbus-org.bluez" = {
-      description = "Bluetooth Service";
-      serviceConfig = {
-        Type = "dbus";
-        BusName = "org.bluez";
-        ExecStart = "${pkgs.bluez}/sbin/bluetoothd -n";
-      };
-      wantedBy = [ "bluetooth.target" ];
-    };
+    environment.systemPackages = [ bluez-bluetooth pkgs.openobex pkgs.obexftp ];
+    services.udev.packages = [ bluez-bluetooth ];
+    services.dbus.packages = [ bluez-bluetooth ];
+    systemd.services."dbus-org.bluez" = bluezConfig;
+    systemd.services."dbus-org.bluez.obex" = obexConfig;
 
   };
 
diff --git a/nixos/modules/services/logging/logstash.nix b/nixos/modules/services/logging/logstash.nix
index e019e6c3f23..d27456e59e8 100644
--- a/nixos/modules/services/logging/logstash.nix
+++ b/nixos/modules/services/logging/logstash.nix
@@ -85,7 +85,7 @@ in
         type = types.lines;
         default = ''stdin { type => "example" }'';
         description = "Logstash input configuration.";
-        example = ''
+        example = literalExample ''
           # Read from journal
           pipe {
             command => "''${pkgs.systemd}/bin/journalctl -f -o json"
@@ -98,7 +98,7 @@ in
         type = types.lines;
         default = ''noop {}'';
         description = "logstash filter configuration.";
-        example = ''
+        example = literalExample ''
           if [type] == "syslog" {
             # Keep only relevant systemd fields
             # http://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html
@@ -114,7 +114,7 @@ in
 
       outputConfig = mkOption {
         type = types.lines;
-        default = ''stdout { debug => true debug_format => "json"}'';
+        default = literalExample ''stdout { debug => true debug_format => "json"}'';
         description = "Logstash output configuration.";
         example = ''
           redis { host => "localhost" data_type => "list" key => "logstash" codec => json }
diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix
index 11e8b26c75e..333a03315bc 100644
--- a/nixos/modules/services/mail/dovecot.nix
+++ b/nixos/modules/services/mail/dovecot.nix
@@ -13,6 +13,7 @@ let
     ''
       base_dir = ${baseDir}
       protocols = ${concatStringsSep " " cfg.protocols}
+      sendmail_path = /var/setuid-wrappers/sendmail
     ''
 
     (if isNull cfg.sslServerCert then ''
diff --git a/nixos/modules/services/mail/dspam.nix b/nixos/modules/services/mail/dspam.nix
index 10352ba6abc..2d8aebe2057 100644
--- a/nixos/modules/services/mail/dspam.nix
+++ b/nixos/modules/services/mail/dspam.nix
@@ -109,6 +109,9 @@ in {
           Group = cfg.group;
           RuntimeDirectory = optional (cfg.domainSocket == defaultSock) "dspam";
           PermissionsStartOnly = true;
+          # DSPAM segfaults on just about every error
+          Restart = "on-failure";
+          RestartSec = "1s";
         };
 
         preStart = ''
@@ -136,7 +139,7 @@ in {
         restartTriggers = [ cfgfile ];
 
         serviceConfig = {
-          ExecStart = "${dspam}/bin/dspam_maintenance";
+          ExecStart = "${dspam}/bin/dspam_maintenance --verbose";
           Type = "oneshot";
           User = cfg.user;
           Group = cfg.group;
diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix
index f2d8189de6e..404cdf0f564 100644
--- a/nixos/modules/services/mail/postfix.nix
+++ b/nixos/modules/services/mail/postfix.nix
@@ -13,6 +13,18 @@ let
   haveTransport = cfg.transport != "";
   haveVirtual = cfg.virtual != "";
 
+  clientAccess =
+    if (cfg.dnsBlacklistOverrides != "")
+    then [ "check_client_access hash:/etc/postfix/client_access" ]
+    else [];
+
+  dnsBl =
+    if (cfg.dnsBlacklists != [])
+    then [ (concatStringsSep ", " (map (s: "reject_rbl_client " + s) cfg.dnsBlacklists)) ]
+    else [];
+
+  clientRestrictions = concatStringsSep ", " (clientAccess ++ dnsBl);
+
   mainCf =
     ''
       compatibility_level = 2
@@ -104,6 +116,9 @@ let
     + optionalString haveVirtual ''
       virtual_alias_maps = hash:/etc/postfix/virtual
     ''
+    + optionalString (cfg.dnsBlacklists != []) ''
+      smtpd_client_restrictions = ${clientRestrictions}
+    ''
     + cfg.extraConfig;
 
   masterCf = ''
@@ -161,6 +176,7 @@ let
 
   aliasesFile = pkgs.writeText "postfix-aliases" aliases;
   virtualFile = pkgs.writeText "postfix-virtual" cfg.virtual;
+  checkClientAccessFile = pkgs.writeText "postfix-check-client-access" cfg.dnsBlacklistOverrides;
   mainCfFile = pkgs.writeText "postfix-main.cf" mainCf;
   masterCfFile = pkgs.writeText "postfix-master.cf" masterCf;
   transportFile = pkgs.writeText "postfix-transport" cfg.transport;
@@ -366,6 +382,17 @@ in
         ";
       };
 
+      dnsBlacklists = mkOption {
+        default = [];
+        type = with types; listOf string;
+        description = "dns blacklist servers to use with smtpd_client_restrictions";
+      };
+
+      dnsBlacklistOverrides = mkOption {
+        default = "";
+        description = "contents of check_client_access for overriding dnsBlacklists";
+      };
+
       extraMasterConf = mkOption {
         type = types.lines;
         default = "";
@@ -461,7 +488,7 @@ in
             rm -rf /var/lib/postfix/conf
             mkdir -p /var/lib/postfix/conf
             chmod 0755 /var/lib/postfix/conf
-            ln -sf ${pkgs.postfix}/etc/postfix/postfix-files
+            ln -sf ${pkgs.postfix}/etc/postfix/postfix-files /var/lib/postfix/conf/postfix-files
             ln -sf ${mainCfFile} /var/lib/postfix/conf/main.cf
             ln -sf ${masterCfFile} /var/lib/postfix/conf/master.cf
 
@@ -494,6 +521,9 @@ in
     (mkIf haveVirtual {
       services.postfix.mapFiles."virtual" = virtualFile;
     })
+    (mkIf (cfg.dnsBlacklists != []) {
+      services.postfix.mapFiles."client_access" = checkClientAccessFile;
+    })
   ]);
 
 }
diff --git a/nixos/modules/services/mail/postsrsd.nix b/nixos/modules/services/mail/postsrsd.nix
index 36a0f8218d8..68a4c101206 100644
--- a/nixos/modules/services/mail/postsrsd.nix
+++ b/nixos/modules/services/mail/postsrsd.nix
@@ -95,7 +95,11 @@ in {
       preStart = ''
         if [ ! -e "${cfg.secretsFile}" ]; then
           echo "WARNING: secrets file not found, autogenerating!"
-          mkdir -p -m750 "$(dirname "${cfg.secretsFile}")"
+          DIR="$(dirname "${cfg.secretsFile}")"
+          if [ ! -d "$DIR" ]; then
+            mkdir -p -m750 "$DIR"
+            chown "${cfg.user}:${cfg.group}" "$DIR"
+          fi
           dd if=/dev/random bs=18 count=1 | base64 > "${cfg.secretsFile}"
           chmod 600 "${cfg.secretsFile}"
         fi
diff --git a/nixos/modules/services/misc/gitit.nix b/nixos/modules/services/misc/gitit.nix
index ab4d385ba16..befd8c628f1 100644
--- a/nixos/modules/services/misc/gitit.nix
+++ b/nixos/modules/services/misc/gitit.nix
@@ -35,7 +35,6 @@ let
       };
 
       haskellPackages = mkOption {
-        type = types.attrsOf types.package;
         default = pkgs.haskellPackages;
         defaultText = "pkgs.haskellPackages";
         example = literalExample "pkgs.haskell.packages.ghc784";
diff --git a/nixos/modules/services/networking/i2pd.nix b/nixos/modules/services/networking/i2pd.nix
index af9424ecfea..e73316a9b1e 100644
--- a/nixos/modules/services/networking/i2pd.nix
+++ b/nixos/modules/services/networking/i2pd.nix
@@ -12,21 +12,69 @@ let
 
   toOneZero = b: if b then "1" else "0";
 
+  mkEndpointOpt = name: addr: port: {
+    name = mkOption {
+      type = types.str;
+      default = name;
+      description = "The endpoint name.";
+    };
+    address = mkOption {
+      type = types.str;
+      default = addr;
+      description = "Bind address for ${name} endpoint. Default: " + addr;
+    };
+    port = mkOption {
+      type = types.int;
+      default = port;
+      description = "Bind port for ${name} endoint. Default: " + toString port;
+    };
+  };
+
+  commonTunOpts = let
+    i2cpOpts = {
+      length = mkOption {
+        type = types.int;
+        description = "Guaranteed minimum hops.";
+        default = 3;
+      };
+      quantity = mkOption {
+        type = types.int;
+        description = "Number of simultaneous tunnels.";
+        default = 5;
+      };
+    };
+  in name: {
+    outbound = i2cpOpts;
+    inbound = i2cpOpts;
+    crypto.tagsToSend = mkOption {
+      type = types.int;
+      description = "Number of ElGamal/AES tags to send.";
+      default = 40;
+    };
+   destination = mkOption {
+      type = types.str;
+      description = "Remote endpoint, I2P hostname or b32.i2p address.";
+    };
+    keys = mkOption {
+      type = types.str;
+      default = name + "-keys.dat";
+      description = "Keyset used for tunnel identity.";
+    };
+  } // mkEndpointOpt name "127.0.0.1" 0;
+
   i2pdConf = pkgs.writeText "i2pd.conf" ''
-      v6 = ${toOneZero cfg.enableIPv6}
-      unreachable = ${toOneZero cfg.unreachable}
+      ipv6 = ${toOneZero cfg.enableIPv6}
+      notransit = ${toOneZero cfg.notransit}
       floodfill = ${toOneZero cfg.floodfill}
       ${if isNull cfg.port then "" else "port = ${toString cfg.port}"}
-      httpproxyport = ${toString cfg.proxy.httpPort}
-      socksproxyport = ${toString cfg.proxy.socksPort}
-      ircaddress = ${cfg.irc.host}
-      ircport = ${toString cfg.irc.port}
-      ircdest = ${cfg.irc.dest}
-      irckeys = ${cfg.irc.keyFile}
-      eepport = ${toString cfg.eep.port}
-      ${if isNull cfg.sam.port then "" else "--samport=${toString cfg.sam.port}"}
-      eephost = ${cfg.eep.host}
-      eepkeys = ${cfg.eep.keyFile}
+      ${flip concatMapStrings
+        (collect (proto: proto ? port && proto ? address && proto ? name) cfg.proto)
+        (proto: let portStr = toString proto.port; in ''
+      [${proto.name}]
+      address = ${proto.address}
+      port = ${toString proto.port}
+      '')
+      }
   '';
 
   i2pdTunnelConf = pkgs.writeText "i2pd-tunnels.conf" ''
@@ -39,10 +87,15 @@ let
   keys = ${tun.keys}
   address = ${tun.address}
   port = ${toString tun.port}
+  inbound.length = ${toString tun.inbound.length}
+  outbound.length = ${toString tun.outbound.length}
+  inbound.quantity = ${toString tun.inbound.quantity}
+  outbound.quantity = ${toString tun.outbound.quantity}
+  crypto.tagsToSend = ${toString tun.crypto.tagsToSend}
   '')
   }
   ${flip concatMapStrings
-    (collect (tun: tun ? port && tun ? host) cfg.outTunnels)
+    (collect (tun: tun ? port && tun ? host) cfg.inTunnels)
     (tun: let portStr = toString tun.port; in ''
   [${tun.name}]
   type = server
@@ -59,10 +112,10 @@ let
   i2pdSh = pkgs.writeScriptBin "i2pd" ''
     #!/bin/sh
     ${if isNull cfg.extIp then extip else ""}
-    ${pkgs.i2pd}/bin/i2pd --log=1 --daemon=0 --service=0 \
+    ${pkgs.i2pd}/bin/i2pd --log=1 \
       --host=${if isNull cfg.extIp then "$EXTIP" else cfg.extIp} \
       --conf=${i2pdConf} \
-      --tunnelscfg=${i2pdTunnelConf}
+      --tunconf=${i2pdTunnelConf}
   '';
 
 in
@@ -91,11 +144,11 @@ in
         '';
       };
 
-      unreachable = mkOption {
+      notransit = mkOption {
         type = types.bool;
         default = false;
         description = ''
-          If the router is declared to be unreachable and needs introduction nodes.
+          Tells the router to not accept transit tunnels during startup.
         '';
       };
 
@@ -111,7 +164,7 @@ in
         type = with types; nullOr int;
         default = null;
         description = ''
-	        I2P listen port. If no one is given the router will pick between 9111 and 30777.
+          I2P listen port. If no one is given the router will pick between 9111 and 30777.
         '';
       };
 
@@ -123,184 +176,53 @@ in
         '';
       };
 
-      http = {
-        port = mkOption {
-          type = types.int;
-          default = 7070;
-          description = ''
-            HTTP listen port.
-          '';
-        };
-      };
-
-      proxy = {
-        httpPort = mkOption {
-          type = types.int;
-          default = 4446;
-          description = ''
-            HTTP proxy listen port.
-          '';
-        };
-        socksPort = mkOption {
-          type = types.int;
-          default = 4447;
-          description = ''
-            SOCKS proxy listen port.
-          '';
-        };
-      };
-
-      irc = {
-        host = mkOption {
-          type = types.str;
-          default = "127.0.0.1";
-          description = ''
-            Address to forward incoming traffic to. 127.0.0.1 by default.
-          '';
-        };
-        dest = mkOption {
-          type = types.str;
-          default = "irc.postman.i2p";
-          description = ''
-            Destination I2P tunnel endpoint address of IRC server. irc.postman.i2p by default.
-          '';
-        };
-        port = mkOption {
-          type = types.int;
-          default = 6668;
-          description = ''
-            Local IRC tunnel endoint port to listen on. 6668 by default.
-          '';
-        };
-        keyFile = mkOption {
-          type = types.str;
-          default = "privKeys.dat";
-          description = ''
-            File name containing destination keys. privKeys.dat by default.
-          '';
-        };
-      };
-
-      eep = {
-        host = mkOption {
-          type = types.str;
-          default = "127.0.0.1";
-          description = ''
-            Address to forward incoming traffic to. 127.0.0.1 by default.
-          '';
-        };
-        port = mkOption {
-          type = types.int;
-          default = 80;
-          description = ''
-            Port to forward incoming traffic to. 80 by default.
-          '';
-        };
-        keyFile = mkOption {
-          type = types.str;
-          default = "privKeys.dat";
-          description = ''
-            File name containing destination keys. privKeys.dat by default.
-          '';
-        };
-      };
-
-      sam = {
-        port = mkOption {
-          type = with types; nullOr int;
-          default = null;
-          description = ''
-            Local SAM tunnel endpoint. Usually 7656. SAM is disabled if not specified.
-          '';
-        };
-      };
+      proto.http = mkEndpointOpt "http" "127.0.0.1" 7070;
+      proto.sam = mkEndpointOpt "sam" "127.0.0.1" 7656;
+      proto.bob = mkEndpointOpt "bob" "127.0.0.1" 2827;
+      proto.i2pControl = mkEndpointOpt "i2pcontrol" "127.0.0.1" 7650;
+      proto.httpProxy = mkEndpointOpt "httpproxy" "127.0.0.1" 4446;
+      proto.socksProxy = mkEndpointOpt "socksproxy" "127.0.0.1" 4447;
 
       outTunnels = mkOption {
         default = {};
-	      type = with types; loaOf optionSet;
-	      description = ''
-	      '';
-	      options = [ ({ name, config, ... }: {
-
-	        options = {
-	          name = mkOption {
-	            type = types.str;
-	            description = "The name of the tunnel.";
-	          };
-	          destination = mkOption {
-	            type = types.str;
-	            description = "Remote endpoint, I2P hostname or b32.i2p address.";
-	          };
-	          keys = mkOption {
-	            type = types.str;
-	            default = name + "-keys.dat";
-	            description = "Keyset used for tunnel identity.";
-	          };
-	          address = mkOption {
-	            type = types.str;
-	            default = "127.0.0.1";
-	            description = "Local bind address for tunnel.";
-	          };
-	          port = mkOption {
-	            type = types.int;
-	            default = 0;
-	            description = "Local tunnel listen port.";
-	          };
-	        };
-
-	        config = {
-	          name = mkDefault name;
-	        };
-
-	      }) ];
+        type = with types; loaOf optionSet;
+        description = ''
+          Connect to someone as a client and establish a local accept endpoint
+        '';
+        options = [ ({ name, config, ... }: {
+          options = commonTunOpts name;
+          config = {
+            name = mkDefault name;
+          };
+        }) ];
       };
 
       inTunnels = mkOption {
         default = {};
-	      type = with types; loaOf optionSet;
-	      description = ''
-	      '';
-	      options = [ ({ name, config, ... }: {
-
-	        options = {
-
-	          name = mkOption {
-	            type = types.str;
-	            description = "The name of the tunnel.";
-	          };
-	          keys = mkOption {
-	            type = types.path;
-	            default = name + "-keys.dat";
-	            description = "Keyset used for tunnel identity.";
-	          };
-	          address = mkOption {
-	            type = types.str;
-	            default = "127.0.0.1";
-	            description = "Local service IP address.";
-	          };
-	          port = mkOption {
-	            type = types.int;
-	            default = 0;
-	            description = "Local tunnel listen port.";
-	          };
-	          inPort = mkOption {
-	            type = types.int;
-	            default = 0;
-	            description = "I2P service port. Default to the tunnel's listen port.";
-	          };
-	          accessList = mkOption {
-	            type = with types; listOf str;
-	            default = [];
-	            description = "I2P nodes that are allowed to connect to this service.";
-	          };
-
-	        };
-
-	        config = {
-	          name = mkDefault name;
-	        };
-
-	      }) ];
+        type = with types; loaOf optionSet;
+        description = ''
+          Serve something on I2P network at port and delegate requests to address inPort.
+        '';
+        options = [ ({ name, config, ... }: {
+
+          options = {
+            inPort = mkOption {
+              type = types.int;
+              default = 0;
+              description = "Service port. Default to the tunnel's listen port.";
+            };
+            accessList = mkOption {
+              type = with types; listOf str;
+              default = [];
+              description = "I2P nodes that are allowed to connect to this service.";
+            };
+          } // commonTunOpts name;
+
+          config = {
+            name = mkDefault name;
+          };
+
+        }) ];
       };
     };
   };
diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix
index 34f4f6b37b6..9330e6c92ba 100644
--- a/nixos/modules/services/networking/tinc.nix
+++ b/nixos/modules/services/networking/tinc.nix
@@ -95,6 +95,16 @@ in
             '';
           };
 
+          chroot = mkOption {
+            default = true;
+            type = types.bool;
+            description = ''
+              Change process root directory to the directory where the config file is located (/etc/tinc/netname/), for added security.
+              The chroot is performed after all the initialization is done, after writing pid files and opening network sockets.
+
+              Note that tinc can't run scripts anymore (such as tinc-down or host-up), unless it is setup to be runnable inside chroot environment.
+            '';
+          };
         };
       };
     };
@@ -166,7 +176,7 @@ in
           fi
         '';
         script = ''
-          tincd -D -U tinc.${network} -n ${network} --pidfile /run/tinc.${network}.pid -d ${toString data.debugLevel}
+          tincd -D -U tinc.${network} -n ${network} ${optionalString (data.chroot) "-R"} --pidfile /run/tinc.${network}.pid -d ${toString data.debugLevel}
         '';
       })
     );
diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix
index be8f12ecd32..4dc0cd96904 100644
--- a/nixos/modules/services/networking/unifi.nix
+++ b/nixos/modules/services/networking/unifi.nix
@@ -61,6 +61,8 @@ in
       partOf = systemdMountPoints;
       bindsTo = systemdMountPoints;
       unitConfig.RequiresMountsFor = stateDir;
+      # This a HACK to fix missing dependencies of dynamic libs extracted from jars
+      environment.LD_LIBRARY_PATH = with pkgs.stdenv; "${cc.cc}/lib";
 
       preStart = ''
         # Ensure privacy of state
diff --git a/nixos/modules/services/search/elasticsearch.nix b/nixos/modules/services/search/elasticsearch.nix
index 356cfd409ad..31332489a78 100644
--- a/nixos/modules/services/search/elasticsearch.nix
+++ b/nixos/modules/services/search/elasticsearch.nix
@@ -9,6 +9,8 @@ let
     network.host: ${cfg.listenAddress}
     network.port: ${toString cfg.port}
     network.tcp.port: ${toString cfg.tcp_port}
+    # TODO: find a way to enable security manager
+    security.manager.enabled: false
     cluster.name: ${cfg.cluster_name}
     ${cfg.extraConf}
   '';
@@ -39,8 +41,8 @@ in {
 
     package = mkOption {
       description = "Elasticsearch package to use.";
-      default = pkgs.elasticsearch;
-      defaultText = "pkgs.elasticsearch";
+      default = pkgs.elasticsearch2;
+      defaultText = "pkgs.elasticsearch2";
       type = types.package;
     };
 
@@ -129,7 +131,9 @@ in {
       wantedBy = [ "multi-user.target" ];
       after = [ "network-interfaces.target" ];
       path = [ pkgs.inetutils ];
-      environment = { ES_HOME = cfg.dataDir; };
+      environment = {
+        ES_HOME = cfg.dataDir;
+      };
       serviceConfig = {
         ExecStart = "${cfg.package}/bin/elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}";
         User = "elasticsearch";
@@ -137,10 +141,11 @@ in {
       };
       preStart = ''
         mkdir -m 0700 -p ${cfg.dataDir}
-        if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
 
         # Install plugins
         ln -sfT ${esPlugins}/plugins ${cfg.dataDir}/plugins
+        ln -sfT ${cfg.package}/lib ${cfg.dataDir}/lib
+        if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
       '';
       postStart = mkBefore ''
         until ${pkgs.curl}/bin/curl -s -o /dev/null ${cfg.listenAddress}:${toString cfg.port}; do
diff --git a/nixos/modules/services/search/kibana.nix b/nixos/modules/services/search/kibana.nix
index 4263ed22a8d..033b8139d34 100644
--- a/nixos/modules/services/search/kibana.nix
+++ b/nixos/modules/services/search/kibana.nix
@@ -7,37 +7,33 @@ let
 
   cfgFile = pkgs.writeText "kibana.json" (builtins.toJSON (
     (filterAttrsRecursive (n: v: v != null) ({
-      server = {
-        host = cfg.listenAddress;
-        port = cfg.port;
-        ssl = {
-          cert = cfg.cert;
-          key = cfg.key;
-        };
-      };
-
-      kibana = {
-        index = cfg.index;
-        defaultAppId = cfg.defaultAppId;
-      };
-
-      elasticsearch = {
-        url = cfg.elasticsearch.url;
-        username = cfg.elasticsearch.username;
-        password = cfg.elasticsearch.password;
-        ssl = {
-          cert = cfg.elasticsearch.cert;
-          key = cfg.elasticsearch.key;
-          ca = cfg.elasticsearch.ca;
-        };
-      };
-
-      logging = {
-        verbose = cfg.logLevel == "verbose";
-        quiet = cfg.logLevel == "quiet";
-        silent = cfg.logLevel == "silent";
-        dest = "stdout";
-      };
+      host = cfg.listenAddress;
+      port = cfg.port;
+      ssl_cert_file = cfg.cert;
+      ssl_key_file = cfg.key;
+
+      kibana_index = cfg.index;
+      default_app_id = cfg.defaultAppId;
+
+      elasticsearch_url = cfg.elasticsearch.url;
+      kibana_elasticsearch_username = cfg.elasticsearch.username;
+      kibana_elasticsearch_password = cfg.elasticsearch.password;
+      kibana_elasticsearch_cert = cfg.elasticsearch.cert;
+      kibana_elasticsearch_key = cfg.elasticsearch.key;
+      ca = cfg.elasticsearch.ca;
+
+      bundled_plugin_ids = [
+        "plugins/dashboard/index"
+        "plugins/discover/index"
+        "plugins/doc/index"
+        "plugins/kibana/index"
+        "plugins/markdown_vis/index"
+        "plugins/metric_vis/index"
+        "plugins/settings/index"
+        "plugins/table_vis/index"
+        "plugins/vis_types/index"
+        "plugins/visualize/index"
+      ];
     } // cfg.extraConf)
   )));
 in {
@@ -118,12 +114,6 @@ in {
       };
     };
 
-    logLevel = mkOption {
-      description = "Kibana log level";
-      default = "normal";
-      type = types.enum ["verbose" "normal" "silent" "quiet"];
-    };
-
     package = mkOption {
       description = "Kibana package to use";
       default = pkgs.kibana;
@@ -149,6 +139,7 @@ in {
       description = "Kibana Service";
       wantedBy = [ "multi-user.target" ];
       after = [ "network-interfaces.target" "elasticsearch.service" ];
+      environment = { BABEL_CACHE_PATH = "${cfg.dataDir}/.babelcache.json"; };
       serviceConfig = {
         ExecStart = "${cfg.package}/bin/kibana --config ${cfgFile}";
         User = "kibana";
diff --git a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
index 52d8c89baff..0fe8d1a89cf 100644
--- a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
@@ -83,11 +83,11 @@ let
 
   # Unpack Mediawiki and put the config file in its root directory.
   mediawikiRoot = pkgs.stdenv.mkDerivation rec {
-    name= "mediawiki-1.23.9";
+    name= "mediawiki-1.23.13";
 
     src = pkgs.fetchurl {
       url = "http://download.wikimedia.org/mediawiki/1.23/${name}.tar.gz";
-      sha256 = "1l7k4g0pgz92yvrfr52w26x740s4362v0gc95pk0i30vn2sp5bql";
+      sha256 = "168wpf53n4ksj2g5q5r0hxapx6238dvsfng5ff9ixk6axsn0j5d0";
     };
 
     skins = config.skins;
diff --git a/nixos/modules/system/boot/loader/init-script/init-script-builder.sh b/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
index 502b3b63af2..08d4ab14c9c 100644
--- a/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
+++ b/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
@@ -80,8 +80,13 @@ for generation in $(
     | sort -n -r); do
     link=/nix/var/nix/profiles/system-$generation-link
     date=$(stat --printf="%y\n" $link | sed 's/\..*//')
-    kernelVersion=$(cd $(dirname $(readlink -f $link/kernel))/lib/modules && echo *)
-    addEntry "NixOS - Configuration $generation ($date - $kernelVersion)" $link "$generation ($date)"
+    if [ -d $link/kernel ]; then
+      kernelVersion=$(cd $(dirname $(readlink -f $link/kernel))/lib/modules && echo *)
+      suffix="($date - $kernelVersion)"
+    else
+      suffix="($date)"
+    fi
+    addEntry "NixOS - Configuration $generation $suffix" $link "$generation ($date)"
 done
 
 mv $tmpOther $targetOther
diff --git a/nixos/modules/tasks/kbd.nix b/nixos/modules/tasks/kbd.nix
index e1574fa68ad..02721bb3bea 100644
--- a/nixos/modules/tasks/kbd.nix
+++ b/nixos/modules/tasks/kbd.nix
@@ -12,6 +12,8 @@ let
     FONT=${config.i18n.consoleFont}
     ${colors}
   '';
+
+  setVconsole = !config.boot.isContainer;
 in
 
 {
@@ -41,26 +43,33 @@ in
 
   ###### implementation
 
-  config = {
-
-    environment.systemPackages = [ pkgs.kbd ];
-
-    # Let systemd-vconsole-setup.service do the work of setting up the
-    # virtual consoles.  FIXME: trigger a restart of
-    # systemd-vconsole-setup.service if /etc/vconsole.conf changes.
-    environment.etc."vconsole.conf".source = vconsoleConf;
-
-    # This is identical to the systemd-vconsole-setup.service unit
-    # shipped with systemd, except that it uses /dev/tty1 instead of
-    # /dev/tty0 to prevent putting the X server in non-raw mode, and
-    # it has a restart trigger.
-    systemd.services."systemd-vconsole-setup" =
-      { wantedBy = [ "multi-user.target" ];
-        before = [ "display-manager.service" ];
-        after = [ "systemd-udev-settle.service" ];
-        restartTriggers = [ vconsoleConf ];
-      };
-
-  };
+  config = mkMerge [
+    (mkIf (!setVconsole) {
+      systemd.services."systemd-vconsole-setup".enable = false;
+    })
+
+    (mkIf setVconsole {
+      environment.systemPackages = [ pkgs.kbd ];
+
+      # Let systemd-vconsole-setup.service do the work of setting up the
+      # virtual consoles.  FIXME: trigger a restart of
+      # systemd-vconsole-setup.service if /etc/vconsole.conf changes.
+      environment.etc = [ {
+        target = "vconsole.conf";
+        source = vconsoleConf;
+      } ];
+
+      # This is identical to the systemd-vconsole-setup.service unit
+      # shipped with systemd, except that it uses /dev/tty1 instead of
+      # /dev/tty0 to prevent putting the X server in non-raw mode, and
+      # it has a restart trigger.
+      systemd.services."systemd-vconsole-setup" =
+        { wantedBy = [ "multi-user.target" ];
+          before = [ "display-manager.service" ];
+          after = [ "systemd-udev-settle.service" ];
+          restartTriggers = [ vconsoleConf ];
+        };
+    })
+  ];
 
 }
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index f07e7baeb11..c960e401f9b 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -144,15 +144,12 @@ in
                   fi
                   ${config.systemd.package}/bin/systemctl start ip-up.target
                 '';
-            preStop =
-              ''
-                echo "releasing configured ip's..."
-              '' + flip concatMapStrings (ips) (ip:
+            preStop = flip concatMapStrings (ips) (ip:
                 let
                   address = "${ip.address}/${toString ip.prefixLength}";
                 in
                 ''
-                  echo -n "Deleting ${address}..."
+                  echo -n "deleting ${address}..."
                   ip addr del "${address}" dev "${i.name}" >/dev/null 2>&1 || echo -n " Failed"
                   echo ""
                 '');
diff --git a/nixos/tests/simple.nix b/nixos/tests/simple.nix
index 287712be316..04d624adcfe 100644
--- a/nixos/tests/simple.nix
+++ b/nixos/tests/simple.nix
@@ -4,7 +4,9 @@ import ./make-test.nix ({ pkgs, ...} : {
     maintainers = [ eelco ];
   };
 
-  machine = { config, pkgs, ... }: { };
+  machine = { config, pkgs, ... }: {
+    imports = [ ../modules/profiles/minimal.nix ];
+  };
 
   testScript =
     ''
diff --git a/pkgs/applications/audio/non/default.nix b/pkgs/applications/audio/non/default.nix
index 84fcd50adc0..5a54c94f1f9 100644
--- a/pkgs/applications/audio/non/default.nix
+++ b/pkgs/applications/audio/non/default.nix
@@ -4,12 +4,12 @@ ladspaH, liblrdf, liblo, libsigcxx
 
 stdenv.mkDerivation rec {
   name = "non-${version}";
-  version = "2015-12-16";
+  version = "2016-02-07";
   src = fetchFromGitHub {
     owner = "original-male";
     repo = "non";
-    rev = "5d274f430c867f73ed1dcb306b49be0371d28128";
-    sha256 = "1yckac3r1hqn5p450j4lf4349v4knjj7n9s5p3wdcvxhs0pjv2sy";
+    rev = "1ef382fbbea598fdb56b25244a703c64ecaf8446";
+    sha256 = "1mi3nm0nrrqlk36920irvqf5080lbnj1qc8vnxspgwkjjqgdc22g";
   };
 
     buildInputs = [ pkgconfig python2 cairo libjpeg ntk libjack2 libsndfile
diff --git a/pkgs/applications/audio/sonata/default.nix b/pkgs/applications/audio/sonata/default.nix
new file mode 100644
index 00000000000..74ce6a2c15f
--- /dev/null
+++ b/pkgs/applications/audio/sonata/default.nix
@@ -0,0 +1,73 @@
+{ pkgs, stdenv, fetchFromGitHub, pkgconfig, intltool, wrapGAppsHook,
+  python, buildPythonPackage, isPy3k,
+  gnome3, gtk3, gobjectIntrospection,
+  dbus, pygobject3, mpd2 }:
+
+with pkgs.lib;
+
+buildPythonPackage rec {
+  name = "sonata-${version}";
+  version = "1.7b1";
+  namePrefix = "";
+
+  src = fetchFromGitHub {
+    owner = "multani";
+    repo = "sonata";
+    rev = "v${version}";
+    sha256 = "1npbxlrg6k154qybfd250nq2p96kxdsdkj9wwnp93gljnii3g8wh";
+  };
+
+  disabled = !isPy3k;
+
+  buildInputs = [
+    pkgconfig intltool wrapGAppsHook
+    gnome3.gnome_themes_standard gnome3.defaultIconTheme
+    gnome3.gsettings_desktop_schemas
+  ];
+
+  postPatch = ''
+    # Remove "Local MPD" tab which is not suitable for NixOS.
+    sed -i '/localmpd/d' sonata/consts.py
+  '';
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  propagatedBuildInputs = [
+    gobjectIntrospection gtk3 pygobject3
+  ];
+
+  # The optional tagpy dependency (for editing metadata) is not yet
+  # included because it's difficult to build.
+  pythonPath = [ dbus pygobject3 mpd2 ];
+
+  meta = {
+    description = "An elegant client for the Music Player Daemon";
+    longDescription = ''
+      Sonata is an elegant client for the Music Player Daemon.
+
+      Written in Python and using the GTK+ 3 widget set, its features
+      include:
+
+       - Expanded and collapsed views
+       - Automatic remote and local album art
+       - Library browsing by folders, or by genre/artist/album
+       - User-configurable columns
+       - Automatic fetching of lyrics
+       - Playlist and stream support
+       - Support for editing song tags (not in NixOS version)
+       - Drag and drop to copy files
+       - Popup notification
+       - Library and playlist searching, filter as you type
+       - Audioscrobbler (last.fm) 1.2 support
+       - Multiple MPD profiles
+       - Keyboard friendly
+       - Support for multimedia keys
+       - Commandline control
+       - Available in 24 languages
+    '';
+    homepage = "http://www.nongnu.org/sonata/";
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.rvl ];
+  };
+}
diff --git a/pkgs/applications/audio/timemachine/default.nix b/pkgs/applications/audio/timemachine/default.nix
new file mode 100644
index 00000000000..55e95c0fc15
--- /dev/null
+++ b/pkgs/applications/audio/timemachine/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, pkgconfig, gtk2
+, libjack2, libsndfile
+}:
+
+stdenv.mkDerivation rec {
+  name = "timemachine-${version}";
+  version = "0.3.1";
+  src = fetchFromGitHub {
+    owner = "swh";
+    repo = "timemachine";
+    rev = "1966d8524d4e4c47c525473bab3b010a168adc98";
+    sha256 = "0w5alysixnvlkfl79wf7vs5wsw2vgxl3gqxxcm0zbmhjdpmjpcal";
+  };
+
+    buildInputs = [ autoconf automake pkgconfig gtk2 libjack2
+      libsndfile
+    ];
+
+  preConfigure = "./autogen.sh";
+
+  meta = {
+    description = "JACK audio recorder";
+    homepage = http://plugin.org.uk/timemachine/;
+    license = stdenv.lib.licenses.lgpl2;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.nico202 ];
+  };
+}
+
diff --git a/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix b/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
index 9a0f6855567..ef006439a55 100644
--- a/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
+++ b/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Precision colors for machines and people";
     homepage = http://ethanschoonover.com/solarized;
-    maintainer = "Samuel Rivas <samuelrivas@gmail.com>";
+    maintainers = "Samuel Rivas <samuelrivas@gmail.com>";
     license = stdenv.lib.licenses.mit;
 
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/applications/graphics/imv/default.nix b/pkgs/applications/graphics/imv/default.nix
index 9298c764d28..5be5a8b161d 100644
--- a/pkgs/applications/graphics/imv/default.nix
+++ b/pkgs/applications/graphics/imv/default.nix
@@ -1,19 +1,16 @@
-{ stdenv, fetchFromGitHub,
-  SDL2, freeimage
-}:
+{ stdenv, fetchgit, SDL2, SDL2_ttf, freeimage }:
 
 stdenv.mkDerivation rec {
   name = "imv-${version}";
-  version = "1.1.0";
+  version = "2.0.0";
 
-  src = fetchFromGitHub {
-    owner = "eXeC64";
-    repo  = "imv";
-    rev = "4d1a6d581b70b25d9533c5c788aab6900ebf82bb";
-    sha256 = "1c5r4pqqypir8ymicxyn2k7mhq8nl88b3x6giaafd77ssjn0vz9r";
+  src = fetchgit {
+    url = "https://github.com/eXeC64/imv.git";
+    rev = "bc90a0adcc5b22d2bf0158333eb6dfb34c402d48";
+    sha256 = "1bzx57d9mcxw9s72pdbdbwq9pns946jl6p2g881z43w68gimlpw7";
   };
 
-  buildInputs = [ SDL2 freeimage ];
+  buildInputs = [ SDL2 SDL2_ttf freeimage ];
 
   configurePhase = "substituteInPlace Makefile --replace /usr $out";
 
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 010deb0b17e..5e1bebf900c 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,12 +5,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.50.1";
+  version = "2.51.0";
   name = "calibre-${version}";
 
   src = fetchurl {
     url = "http://download.calibre-ebook.com/${version}/${name}.tar.xz";
-    sha256 = "0fy5fwj53hl8bcl412d2y61xm1nmkry24dlanj07nn6dhmrs0cm9";
+    sha256 = "1rhpcxic4g2zyr5s3xn8dayyb45l9r8zyniaig8j7pl5kmsfjijn";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/dmenu/wayland.nix b/pkgs/applications/misc/dmenu/wayland.nix
new file mode 100644
index 00000000000..d55e22c5a3b
--- /dev/null
+++ b/pkgs/applications/misc/dmenu/wayland.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchurl #, libX11, libXinerama, enableXft, libXft, zlib
+, swc, wld, wayland, libxkbcommon, pixman, fontconfig
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "dmenu-wayland-${version}";
+  version = "git-2014-11-02";
+  rev = "6e08b77428cc3c406ed2e90d4cae6c41df76341e";
+
+  src = fetchurl {
+    url = "https://github.com/michaelforney/dmenu/archive/${rev}.tar.gz";
+    sha256 = "d0f73e442baf44a93a3b9d41a72e9cfa14f54af6049c90549f516722e3f88019";
+  };
+
+  buildInputs = [ swc wld wayland libxkbcommon pixman fontconfig ];
+
+  postPatch = ''
+    sed -ri -e 's!\<(dmenu|dmenu_path)\>!'"$out/bin"'/&!g' dmenu_run
+  '';
+
+  preConfigure = [
+    ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g; s@/usr/share/swc@$(echo "$nativeBuildInputs" | grep -o '[^ ]*-swc-[^ ]*')/share/swc@g" config.mk''
+  ];
+
+  meta = {
+      description = "a generic, highly customizable, and efficient menu for the X Window System";
+      homepage = http://tools.suckless.org/dmenu;
+      license = stdenv.lib.licenses.mit;
+      maintainers = with stdenv.lib.maintainers; [ ];
+      platforms = with stdenv.lib.platforms; all;
+  };
+}
diff --git a/pkgs/applications/misc/gollum/Gemfile b/pkgs/applications/misc/gollum/Gemfile
new file mode 100644
index 00000000000..525f54838b7
--- /dev/null
+++ b/pkgs/applications/misc/gollum/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'gollum'
diff --git a/pkgs/applications/misc/gollum/Gemfile.lock b/pkgs/applications/misc/gollum/Gemfile.lock
new file mode 100644
index 00000000000..074a0c6fa43
--- /dev/null
+++ b/pkgs/applications/misc/gollum/Gemfile.lock
@@ -0,0 +1,55 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    charlock_holmes (0.7.3)
+    diff-lcs (1.2.5)
+    github-markup (1.3.3)
+    gitlab-grit (2.7.3)
+      charlock_holmes (~> 0.6)
+      diff-lcs (~> 1.1)
+      mime-types (~> 1.15)
+      posix-spawn (~> 0.3)
+    gollum (4.0.1)
+      gollum-lib (~> 4.0, >= 4.0.1)
+      kramdown (~> 1.8.0)
+      mustache (>= 0.99.5, < 1.0.0)
+      sinatra (~> 1.4, >= 1.4.4)
+      useragent (~> 0.14.0)
+    gollum-grit_adapter (1.0.0)
+      gitlab-grit (~> 2.7, >= 2.7.1)
+    gollum-lib (4.1.0)
+      github-markup (~> 1.3.3)
+      gollum-grit_adapter (~> 1.0)
+      nokogiri (~> 1.6.4)
+      rouge (~> 1.9)
+      sanitize (~> 2.1.0)
+      stringex (~> 2.5.1)
+    kramdown (1.8.0)
+    mime-types (1.25.1)
+    mini_portile2 (2.0.0)
+    mustache (0.99.8)
+    nokogiri (1.6.7.2)
+      mini_portile2 (~> 2.0.0.rc2)
+    posix-spawn (0.3.11)
+    rack (1.6.4)
+    rack-protection (1.5.3)
+      rack
+    rouge (1.10.1)
+    sanitize (2.1.0)
+      nokogiri (>= 1.4.4)
+    sinatra (1.4.7)
+      rack (~> 1.5)
+      rack-protection (~> 1.4)
+      tilt (>= 1.3, < 3)
+    stringex (2.5.2)
+    tilt (2.0.2)
+    useragent (0.14.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  gollum
+
+BUNDLED WITH
+   1.10.6
diff --git a/pkgs/applications/misc/gollum/default.nix b/pkgs/applications/misc/gollum/default.nix
new file mode 100644
index 00000000000..1c58aec0233
--- /dev/null
+++ b/pkgs/applications/misc/gollum/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, lib, bundlerEnv, ruby_2_2, icu, zlib }:
+
+bundlerEnv rec {
+  name = "gollum-${version}";
+  version = "4.0.1";
+
+  ruby = ruby_2_2;
+  gemfile = ./Gemfile;
+  lockfile = ./Gemfile.lock;
+  gemset = ./gemset.nix;
+
+  meta = with lib; {
+    description = "A simple, Git-powered wiki";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jgillich ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/misc/gollum/gemset.nix b/pkgs/applications/misc/gollum/gemset.nix
new file mode 100644
index 00000000000..f0c71fa455c
--- /dev/null
+++ b/pkgs/applications/misc/gollum/gemset.nix
@@ -0,0 +1,170 @@
+{
+  useragent = {
+    version = "0.14.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "124r3mgkw1zjymsqq9r25zh1vwjrjgiji5fm620z53lpmmryj22j";
+    };
+  };
+  tilt = {
+    version = "2.0.2";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lkd40xfdqkp333vdfhrfjmi2y7k2hjs4azawfb62mrkfp7ivj84";
+    };
+  };
+  stringex = {
+    version = "2.5.2";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "150adm7rfh6r9b5ra6vk75mswf9m3wwyslcf8f235a08m29fxa17";
+    };
+  };
+  sinatra = {
+    version = "1.4.7";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b81kbr65mmcl9cdq2r6yc16wklyp798rxkgmm5pr9fvsj7jwmxp";
+    };
+  };
+  sanitize = {
+    version = "2.1.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xsv6xqrlz91rd8wifjknadbl3z5h6qphmxy0hjb189qbdghggn3";
+    };
+  };
+  rouge = {
+    version = "1.10.1";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wp8as9ypdy18kdj9h70kny1rdfq71mr8cj2bpahr9vxjjvjasqz";
+    };
+  };
+  rack-protection = {
+    version = "1.5.3";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r";
+    };
+  };
+  rack = {
+    version = "1.6.4";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5";
+    };
+  };
+  posix-spawn = {
+    version = "0.3.11";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "052lnxbkvlnwfjw4qd7vn2xrlaaqiav6f5x5bcjin97bsrfq6cmr";
+    };
+  };
+  nokogiri = {
+    version = "1.6.7.2";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "11sbmpy60ynak6s3794q32lc99hs448msjy8rkp84ay7mq7zqspv";
+    };
+  };
+  mustache = {
+    version = "0.99.8";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
+    };
+  };
+  mini_portile2 = {
+    version = "2.0.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "056drbn5m4khdxly1asmiik14nyllswr6sh3wallvsywwdiryz8l";
+    };
+  };
+  mime-types = {
+    version = "1.25.1";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mhzsanmnzdshaba7gmsjwnv168r1yj8y0flzw88frw1cickrvw8";
+    };
+  };
+  kramdown = {
+    version = "1.8.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ryqq055h5n10c1cfba6pxsssa907l2hkw29anp0d41ryh47ca2l";
+    };
+  };
+  gollum-lib = {
+    version = "4.1.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "01s8pgzhc3cgcmsy6hh79wrcbn5vbadniq2a7d4qw87kpq7mzfdm";
+    };
+  };
+  gollum-grit_adapter = {
+    version = "1.0.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "02c5qfq0s0kx2ifnpbnbgz6258fl7rchzzzc7vpx72shi8gbpac7";
+    };
+  };
+  gollum = {
+    version = "4.0.1";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "02pgx083sns75zgnqx94p5h5bpr7cfiw5mys4ayb4k33hcjm6ydg";
+    };
+  };
+  gitlab-grit = {
+    version = "2.7.3";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nv8shx7w7fww8lf5a2rbvf7bq173rllm381m6x7g1i0qqc68q1b";
+    };
+  };
+  github-markup = {
+    version = "1.3.3";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "01r901wcgn0gs0n9h684gs5n90y1vaj9lxnx4z5ig611jwa43ivq";
+    };
+  };
+  diff-lcs = {
+    version = "1.2.5";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1";
+    };
+  };
+  charlock_holmes = {
+    version = "0.7.3";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jsl6k27wjmssxbwv9wpf7hgp9r0nvizcf6qpjnr7qs2nia53lf7";
+    };
+  };
+}
\ No newline at end of file
diff --git a/pkgs/applications/misc/st/wayland.nix b/pkgs/applications/misc/st/wayland.nix
new file mode 100644
index 00000000000..ed7e0cf7ca1
--- /dev/null
+++ b/pkgs/applications/misc/st/wayland.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, writeText
+, ncurses, wayland, wld, libxkbcommon, fontconfig, pixman
+, conf? null}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "st-wayland-${version}";
+  version = "git-2015-08-29";
+  rev = "61b47b76a09599c8093214e28c48938f5b424daa";
+
+  src = fetchurl {
+    url = "https://github.com/michaelforney/st/archive/${rev}.tar.gz";
+    sha256 = "7164da135f02405dba5ae3131dfd896e072df29ac6c0928f3b887beffb8a7d97";
+  };
+
+  configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
+  preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+  buildInputs = [ pkgconfig ncurses wayland wld libxkbcommon fontconfig pixman ];
+
+  NIX_LDFLAGS = "-lfontconfig";
+
+  installPhase = ''
+    TERMINFO=$out/share/terminfo make install PREFIX=$out
+  '';
+
+  meta = {
+    homepage = http://st.suckless.org/;
+    license = stdenv.lib.licenses.mit;
+    maintainers = with maintainers; [ ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index ac60d928587..16323bd2257 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -5,13 +5,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "synergy-${version}";
-  version = "1.7.4";
+  version = "1.7.5";
 
   src = fetchFromGitHub {
-    owner = "synergy";
+    owner = "symless";
     repo = "synergy";
     rev = "v${version}-stable";
-    sha256 = "0pxj0qpnsaffpaxik8vc5rjfinmx8ab3b2lssrxkfbs7isskvs33";
+    sha256 = "02zv8m7yagx80wi7m0ckglfqjqyrj6rd1gywxzqzl6841scmf87n";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/browsers/firefox-bin/sources.nix b/pkgs/applications/networking/browsers/firefox-bin/sources.nix
index bde8830145b..31ec6f313a8 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/sources.nix
@@ -4,185 +4,185 @@
 # ruby generate_sources.rb > sources.nix
 
 {
-  version = "44.0";
+  version = "44.0.2";
   sources = [
-    { locale = "ach"; arch = "linux-i686"; sha256 = "c0c65ced611dcc7b788aff7f0e32cd1823467c06dc99ced2e0aca0539ce545a2"; }
-    { locale = "ach"; arch = "linux-x86_64"; sha256 = "87068d8072d0312af90524c7470c874d33e23c2b3e94be3fe9d934998330e898"; }
-    { locale = "af"; arch = "linux-i686"; sha256 = "7c8f08471fe561a345175c350c6414e72721baeb41a3ff47a429f5b79c33c82c"; }
-    { locale = "af"; arch = "linux-x86_64"; sha256 = "4768a53842d40e81a2e357ba58da56b0a81d2224878b6ab2ffad0bfc50c20ec1"; }
-    { locale = "an"; arch = "linux-i686"; sha256 = "cdb921661a6b20738f38ab2d0fb285aa81a323401f360f77b9ae6d9e8642210d"; }
-    { locale = "an"; arch = "linux-x86_64"; sha256 = "cff97655831940b84bfa5f73dfa3dc48de084ae6503e7a5824c3e57e373f0ff0"; }
-    { locale = "ar"; arch = "linux-i686"; sha256 = "9f6322577809b557f325168953170706af6d29a29b5347886f928b5f495799b8"; }
-    { locale = "ar"; arch = "linux-x86_64"; sha256 = "d5a1a956d7f9afe5867e2dbeaea4ba2a94e743d291062d18232d20ace29d2c94"; }
-    { locale = "as"; arch = "linux-i686"; sha256 = "750c5cddd2d436993a4630f0ebf31e9d0ac679cc23a84298071a682e7a8a8de1"; }
-    { locale = "as"; arch = "linux-x86_64"; sha256 = "5b5a2376daef30eae3ff1a94213937381148ade79783546b1f38687c9fc4489e"; }
-    { locale = "ast"; arch = "linux-i686"; sha256 = "99b5bc2c709a923a43debfe746c70c3613c206424c88d553f7593c200053a8b6"; }
-    { locale = "ast"; arch = "linux-x86_64"; sha256 = "2fd75ff22d3b75f03c6a9ab005e369373f999ef4c38ea49438ab2adaa8e9a2c2"; }
-    { locale = "az"; arch = "linux-i686"; sha256 = "0781239c9c8f237d66ce0c8d9f39136e0eb71365f6ca8b695014648060c18c38"; }
-    { locale = "az"; arch = "linux-x86_64"; sha256 = "9fd6f6047ec3c4103c4aa761882053d4e00e018a1509fa1fbede1757394aa3fe"; }
-    { locale = "be"; arch = "linux-i686"; sha256 = "098e932b708ebc71a2aa7fe86ced4835dbc6725f8714904b25e7ebd1ca7b7d69"; }
-    { locale = "be"; arch = "linux-x86_64"; sha256 = "d9284a84e7e55ad6d73e7d599c5b6824774d7a9e6f7484064fd2985e5634d102"; }
-    { locale = "bg"; arch = "linux-i686"; sha256 = "02879ea328d1536781f2f9765db51bcb9fa05d0a0b7ad426fd659156c293f347"; }
-    { locale = "bg"; arch = "linux-x86_64"; sha256 = "70f55197d8ff67d52f090bd58dcc106fcc08492fe6989494eee3aa3cd1c3552a"; }
-    { locale = "bn-BD"; arch = "linux-i686"; sha256 = "227873ac53fdac5f27b569a5b6a1f3d45caa4e3c822610a5f294a3abdbc2c0fd"; }
-    { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "0a46de9bfc19fba878104ae2865a092fba7a9eea62a64a31c0decc9fc021b3af"; }
-    { locale = "bn-IN"; arch = "linux-i686"; sha256 = "2cc4d364852fc987e97f169de9039992d4ecb848125eae38c09bced34aae8653"; }
-    { locale = "bn-IN"; arch = "linux-x86_64"; sha256 = "6a722ed42f251e3433d46d9b56ca06f7bc1cf0854de782da10285db6ee4a1bfd"; }
-    { locale = "br"; arch = "linux-i686"; sha256 = "14b75dc8278a946d705210306b50a85795f70d83d0527d2c77a60b13662e89e3"; }
-    { locale = "br"; arch = "linux-x86_64"; sha256 = "73e62d2869fb450b4597ec3d65ae3c36ef78984462a158dbf565bbac539b1fa5"; }
-    { locale = "bs"; arch = "linux-i686"; sha256 = "01e02d4a0e140d962e27e4f1a4ec24837c0646e9373f3ce2eb8337437c274ecf"; }
-    { locale = "bs"; arch = "linux-x86_64"; sha256 = "59fef5429b639a52ee113e855a18080870a2f905212dd0e4aefdd838d040133d"; }
-    { locale = "ca"; arch = "linux-i686"; sha256 = "62f96267e91fb9a8df1c436adb78945f32eb14bccc57e706104ae0547b723682"; }
-    { locale = "ca"; arch = "linux-x86_64"; sha256 = "0be231034e076e162b5568a5247da47ca2038011928f89c729fe9a7e139dd922"; }
-    { locale = "cs"; arch = "linux-i686"; sha256 = "15c8a066fe101a5b9151c96611e2390008ac54a9a1909b9430ed6f440c856920"; }
-    { locale = "cs"; arch = "linux-x86_64"; sha256 = "40400da9851782418a12b224b74c3b5c8c112912bb98dc8f368972cc898ea155"; }
-    { locale = "cy"; arch = "linux-i686"; sha256 = "b9b8d3d4c5160eb1676f6c4531123ec28dc0ca6b51e7dcf20716611f93f1c975"; }
-    { locale = "cy"; arch = "linux-x86_64"; sha256 = "6e00d5e5c7e50aa24468b802bd53377d8962b146fed8a8588dd5c8db4162da93"; }
-    { locale = "da"; arch = "linux-i686"; sha256 = "760c9d95fe6941847dfd53b254cd662a83f4c9f2d66f84a96b4dd1d3127adbb8"; }
-    { locale = "da"; arch = "linux-x86_64"; sha256 = "e168e7e7e11aabe54f773c960d4c9b9920e15e4ccadef9f728e2016f0240555f"; }
-    { locale = "de"; arch = "linux-i686"; sha256 = "e5c6372f3fd732fddfaa31ed3ddc81cf803386d7842e103fddd0685739ea63c7"; }
-    { locale = "de"; arch = "linux-x86_64"; sha256 = "73da0a0c66c18dddf5de7b7dda677cb9cef1e0b3c8cff5e22f48bf743ece8116"; }
-    { locale = "dsb"; arch = "linux-i686"; sha256 = "509b8233c403b629803fb0d67a29f2d6f649627d4b91c592121acd3e2ff62282"; }
-    { locale = "dsb"; arch = "linux-x86_64"; sha256 = "6089971aa6e19e2cbcb49724e2eea7922d9408936aa8e2d396b8f1966ea81eec"; }
-    { locale = "el"; arch = "linux-i686"; sha256 = "451f1a7caea7553fc18e440c2716e1954e7d7ba66f5fbe15cc6954224a36444e"; }
-    { locale = "el"; arch = "linux-x86_64"; sha256 = "d02f4b813cc16b4293f9441bdbdef56acd0a7a510d9edcce223d04270e65f2e4"; }
-    { locale = "en-GB"; arch = "linux-i686"; sha256 = "663b7a6300fa46c4e62e7542135ab2632117496a5b0365276ec5ac94183a1d55"; }
-    { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "d50895a71408e74d8b5b1965be279011214c50eba56e0046f360f216326f1135"; }
-    { locale = "en-US"; arch = "linux-i686"; sha256 = "84a5fa00271f90356bbfedb1fdbcc033489d1759fef53c4dda92bd285633ae3d"; }
-    { locale = "en-US"; arch = "linux-x86_64"; sha256 = "49e55275df9e902bc234fa59b4b614a084d76dc2c256ce6218fa96663cabe2dd"; }
-    { locale = "en-ZA"; arch = "linux-i686"; sha256 = "dfe926680b0bc5852db920ba8b3e4febecf1ead33d9865568ac69e9494337072"; }
-    { locale = "en-ZA"; arch = "linux-x86_64"; sha256 = "83c8480482dd154519d26e43a3f79d32c82f149d81a1c6e8ef98e9511ecbf35a"; }
-    { locale = "eo"; arch = "linux-i686"; sha256 = "a27703068ff3be53e8944c750bde0316414f51ee4c10569018d121db7ec1b705"; }
-    { locale = "eo"; arch = "linux-x86_64"; sha256 = "981462cf59716c17fc0630d0cf12b03e7cc96d72c2d8d33109c1db633895f18a"; }
-    { locale = "es-AR"; arch = "linux-i686"; sha256 = "16b2efda57842f29c6f4432cd51296d5e9a709d30f2310e885c786fc68a96e65"; }
-    { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "7b6c8a2bbae8e72ec820df741b8f4a2e162c4b628db8e669a5e85dc190db6c51"; }
-    { locale = "es-CL"; arch = "linux-i686"; sha256 = "ad18bc224500c834a159d91fa568461cbf131edd1b044ae8c97e887b2151e112"; }
-    { locale = "es-CL"; arch = "linux-x86_64"; sha256 = "84c414c64bff02d8e82a4ca4c01e1b4dfae21991ee9a6850203ccbe15469cfe8"; }
-    { locale = "es-ES"; arch = "linux-i686"; sha256 = "142db7f0bb92976345aace30d9ba53ab4ba98a47332c3f7ae7372d9d80300781"; }
-    { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "337de34606e018ec5b600d559d928e35c79fb28800c9b5ad28e2defe259f9b58"; }
-    { locale = "es-MX"; arch = "linux-i686"; sha256 = "51cecc939011135842bb51c41cfda0fb4ae53c5180e49bd66a810c243b1d68be"; }
-    { locale = "es-MX"; arch = "linux-x86_64"; sha256 = "cfe309df7412f68abf487c1f9065e6b9d4b4f384254576c8d1098878012e5b53"; }
-    { locale = "et"; arch = "linux-i686"; sha256 = "1540b0f0c1d867c87d1e109b4e9ad417be51306c324a03e07706d7e215f7ae4f"; }
-    { locale = "et"; arch = "linux-x86_64"; sha256 = "e7c0e4e61d17164a648ae51bcff92d99f76055a1a6a29dfec6ea12a0359f1285"; }
-    { locale = "eu"; arch = "linux-i686"; sha256 = "c2c88bf65329b168fde8fe02613eb89069d85da8b2a3114ac647158b8a345055"; }
-    { locale = "eu"; arch = "linux-x86_64"; sha256 = "9d10a2f8a0e889a6ebe99bc486cf56cc44535b6f67ce3667ac61e87430a24eea"; }
-    { locale = "fa"; arch = "linux-i686"; sha256 = "21ba5e79f5fbe3c3a8a8a71f8fe9a4280f8e47d4c58070443bbf53305c906175"; }
-    { locale = "fa"; arch = "linux-x86_64"; sha256 = "99d8d2e81e2a8f495d5568d7a9cbbfbcdc8a0e1d67fa297adf8a021988948a80"; }
-    { locale = "ff"; arch = "linux-i686"; sha256 = "3e1812cd98e04fcf575783eafdef2c89739c51e6648f4cd7ba7bed44fbe5f960"; }
-    { locale = "ff"; arch = "linux-x86_64"; sha256 = "cbe37600da8bfdabe683473dbb4f2ccc96beda89a9ca15810432a8fce65a591f"; }
-    { locale = "fi"; arch = "linux-i686"; sha256 = "ecf982266072b4a15a06b939d4f0cc22c3653982404974baa51871af0e411ab5"; }
-    { locale = "fi"; arch = "linux-x86_64"; sha256 = "345b7f038e454e6efd513e923ad2aa0a45d76d846539563bbfc79293ec84a6ec"; }
-    { locale = "fr"; arch = "linux-i686"; sha256 = "e71b05083a122ef20b5d75481129fa2e3d1e2ac608cea2c5baf7b300a5fbe5df"; }
-    { locale = "fr"; arch = "linux-x86_64"; sha256 = "1897112ce462b341abba4c2b1664fbf39b5072a11ea6fb61c66cbfb3336358f0"; }
-    { locale = "fy-NL"; arch = "linux-i686"; sha256 = "5557347f19ab6d7c90a34bf8a9729d39eb65a02a021040091cc1863e08fb72c9"; }
-    { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "c77b86d5512f8343674248b9b4d31165975f0eeea002313311339ae45d9effe3"; }
-    { locale = "ga-IE"; arch = "linux-i686"; sha256 = "7a68d7de10abf095fd9240807a6a553b60ba75f3d8edc56afcf5ad1832a05eaf"; }
-    { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "f935b317c5aadd60553f497ceae2cc663dec3729b2fc8e48e6a98d1eb91fe263"; }
-    { locale = "gd"; arch = "linux-i686"; sha256 = "21bbca4e12b3fa230b879f190d279ba9314090454e0263b65e77dbf8f99dcbf3"; }
-    { locale = "gd"; arch = "linux-x86_64"; sha256 = "027630690ecff7ad56f6e992ef243d2a734dac1a3e6365bb22c56a571f938fcb"; }
-    { locale = "gl"; arch = "linux-i686"; sha256 = "6973787b5136491ef28bb2e10976d49c3717a866ec6fe357a995dbf3179a751c"; }
-    { locale = "gl"; arch = "linux-x86_64"; sha256 = "0ca57d72bf11ddf74eb79904be607c479c01f31f11fc0ff567a9ad7beef8067d"; }
-    { locale = "gu-IN"; arch = "linux-i686"; sha256 = "6f422fdcf2fd514e132b33fa079631a6bd4b12deab17a3463b1f3f1ce3f2f535"; }
-    { locale = "gu-IN"; arch = "linux-x86_64"; sha256 = "19cc20d1bd838ebfb8518b8076800cc3255376e4928cf2f37be86258307f1104"; }
-    { locale = "he"; arch = "linux-i686"; sha256 = "f8eb56fea0e73c247fc767541bc97cc3556e4db75ad446e01b0978a5c0b11d3f"; }
-    { locale = "he"; arch = "linux-x86_64"; sha256 = "8ee0ae75d179bfec9e081777e9a34fdae72d8d55ade73983fdac433649b596ac"; }
-    { locale = "hi-IN"; arch = "linux-i686"; sha256 = "bb64fc5285bca12542669ef83bfc465bf593154f9bca2548510f525bde5a55f3"; }
-    { locale = "hi-IN"; arch = "linux-x86_64"; sha256 = "52bb0b68a5f282e65d077166a3a0716fe6c9368ab88f6d5e2a8669515bcc000a"; }
-    { locale = "hr"; arch = "linux-i686"; sha256 = "f36e7b656e5898191801d6e04f3ebef9f9f7080c011dd695ddccfe12c3cb2f6b"; }
-    { locale = "hr"; arch = "linux-x86_64"; sha256 = "9c553d5312363980364c6a9a6591fe5e0229668ff1de3a78943af18235098eee"; }
-    { locale = "hsb"; arch = "linux-i686"; sha256 = "e58662111147e836ac404cf7fc9d9e52ac141b204004c813c6b8d180a378af57"; }
-    { locale = "hsb"; arch = "linux-x86_64"; sha256 = "5aa7dcce6e48dfcb7b8b4f9f48b4bdd496bd606d901896fd37f2a2cd6b4a06bf"; }
-    { locale = "hu"; arch = "linux-i686"; sha256 = "d352b7d67ebbd5e45f972a804cccbb769f6a79700506297c0808d2f9b0f5ca8d"; }
-    { locale = "hu"; arch = "linux-x86_64"; sha256 = "0f7e5cf8306e1fa9b8ab56cdb39b5ca1fe2ff1a3f4ded38e5982bbd842438dde"; }
-    { locale = "hy-AM"; arch = "linux-i686"; sha256 = "bf057113e03190fbfc6947f24a0fb432f53991f02e56d2b5e8270002cd742d4d"; }
-    { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "aa0fdba0a703f06ab5a6b667448316f9de9729c20602fecaf872d14e43a0b822"; }
-    { locale = "id"; arch = "linux-i686"; sha256 = "eb8fc36302a63113e9891f8153aeffc1da4f990f1473d9d779f28df6658bada0"; }
-    { locale = "id"; arch = "linux-x86_64"; sha256 = "6f2262e13a649499a0783922a3f2d85a71727ef37629a529f084590828746bca"; }
-    { locale = "is"; arch = "linux-i686"; sha256 = "312f1af8601c24417672383063085f1c588d9301a09ddeef15b8c54e130547ff"; }
-    { locale = "is"; arch = "linux-x86_64"; sha256 = "ed3165767c2a14329869930d2b618a5a795d3c3d34e06cbae0d1694ccdfb0c97"; }
-    { locale = "it"; arch = "linux-i686"; sha256 = "7555b6f4aac9bcc270fcd5204d15a3cb7b84cdd845f66cea2fbb843315100107"; }
-    { locale = "it"; arch = "linux-x86_64"; sha256 = "b6c2799434bceda271a004769372dfe416584953be5950fe7125920e4e428737"; }
-    { locale = "ja"; arch = "linux-i686"; sha256 = "e8606fc60aaf6ba91a2616dc991d268e8099eb8d5d3eb3c19fdeace93c6453a7"; }
-    { locale = "ja"; arch = "linux-x86_64"; sha256 = "5da4d4c307d661868ff7076e2fc1d929e9d3b9816be25adeba02bd4f9a56f15b"; }
-    { locale = "kk"; arch = "linux-i686"; sha256 = "f77db4c679c687bd33ed125419666226989ef5da88c2a4c8a81aea0ece602e25"; }
-    { locale = "kk"; arch = "linux-x86_64"; sha256 = "3af207c5e2b6bf089739056f2be6e585529c87d5f142e7100fee55728faaf785"; }
-    { locale = "km"; arch = "linux-i686"; sha256 = "d48c3f0952d354b9c6539d9e333a8e9c359006a25f1ca6a0895f7e3344504f70"; }
-    { locale = "km"; arch = "linux-x86_64"; sha256 = "5bc3f65a205a78b110293df5a94a9bde27a491d61b1f9e340a7fe983c1ee1b3f"; }
-    { locale = "kn"; arch = "linux-i686"; sha256 = "50efbbad9ea231a9281a00dc702d9c6103bfd09b712b45b6809d78a176714897"; }
-    { locale = "kn"; arch = "linux-x86_64"; sha256 = "001f41e86fcf93fd6a714e5ee0450fe8424bbb3ff40cebad29cb233cb0667bca"; }
-    { locale = "ko"; arch = "linux-i686"; sha256 = "11539b78bc650b19be2d25af10242a61ee043b47a15000f2e07e50df00875e2e"; }
-    { locale = "ko"; arch = "linux-x86_64"; sha256 = "a4f0b466c5d544f0abecec8861e1d24132755fff54091a49370414ba27c9cc7f"; }
-    { locale = "lij"; arch = "linux-i686"; sha256 = "eede4d95ac6c7f55b312aaadce690016732bb143f3926c1d1533f64efd7306e8"; }
-    { locale = "lij"; arch = "linux-x86_64"; sha256 = "6900bfd4af3146881cc045eed187b88a58ea0fe3e0ed6acbff034f68f43b5935"; }
-    { locale = "lt"; arch = "linux-i686"; sha256 = "4cdf1ced9a687daa34235ae82aa439d69e517d5c31b8f61e12615f361440a54a"; }
-    { locale = "lt"; arch = "linux-x86_64"; sha256 = "873f75d77adc9c142f64523c199799f7e9b0460ae0252c514fc1caa5ac5dcdb0"; }
-    { locale = "lv"; arch = "linux-i686"; sha256 = "65af6b876aeda23827c57d5886cc67665fe2c3fe93cfc2cc5b614400828b6eb7"; }
-    { locale = "lv"; arch = "linux-x86_64"; sha256 = "1b2f6ef94bb5a1ea999af797e2aa8ff267b4a9945fd0e8afc6c9df12273ce60d"; }
-    { locale = "mai"; arch = "linux-i686"; sha256 = "65fec172ddfce096f367338c8b95b32fb2415655e900f8dc628b8ac660270e48"; }
-    { locale = "mai"; arch = "linux-x86_64"; sha256 = "238a78c2bb240609fd0c777399d3307ef659b95cf4e88ae85700321030000eb7"; }
-    { locale = "mk"; arch = "linux-i686"; sha256 = "e591486c66c9b7175b1ab180e9646976a413338dca225eb50d7db457f95afe98"; }
-    { locale = "mk"; arch = "linux-x86_64"; sha256 = "f8d04696d02b0af221b8642d4780d79a76be68c07096c7f9c5915a9db6d5f768"; }
-    { locale = "ml"; arch = "linux-i686"; sha256 = "19dd334052bd9c98ec9afe7b8e5141728b25d2278b7b946921b031aaedd01b2d"; }
-    { locale = "ml"; arch = "linux-x86_64"; sha256 = "a307739cb6de6f80258c28797125f78fe7746d0edd3182e3716f312f1b0915f8"; }
-    { locale = "mr"; arch = "linux-i686"; sha256 = "c86343db611dbca1b8fac25ea1e9364b30fcd6c31d5c856f699bacf6e4128c3c"; }
-    { locale = "mr"; arch = "linux-x86_64"; sha256 = "b25fd422e6b3b1535fbb8839d04a77dec22dfcc0abf14062f5465c0a5aa5c99c"; }
-    { locale = "ms"; arch = "linux-i686"; sha256 = "e437939df4de54d415224db8fbf6ce9e8ae21fc0402052a72612085c73faa493"; }
-    { locale = "ms"; arch = "linux-x86_64"; sha256 = "5d9051de7a1bdc68018511d38e29658f00c0db113438a3ec84e68fa99b89f760"; }
-    { locale = "nb-NO"; arch = "linux-i686"; sha256 = "04d0bdd6235a9321d1a5467c48240cbdb790485b580c1b818b048817fae22f49"; }
-    { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "30afe02bd7090929841edc88eadcd745435f64189782d95477568b3b41cb107c"; }
-    { locale = "nl"; arch = "linux-i686"; sha256 = "83b01feb621cb9c7c64edb125c19aa0765bc2d16b2c20551be12690f835539da"; }
-    { locale = "nl"; arch = "linux-x86_64"; sha256 = "c5af070524b828313a5e819f4c446cdc7a72f6bffd62e734bb8752438e5d28ef"; }
-    { locale = "nn-NO"; arch = "linux-i686"; sha256 = "527c9c2dd61a318c5b6ca5e9b26ee9b81b71ae8d7c23cdab6efee1bb5caaa685"; }
-    { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "6f3d800c347a70c5ed7a8838365599c7401e4805037f5e980865794d395b416a"; }
-    { locale = "or"; arch = "linux-i686"; sha256 = "e5f9ba3ebe3d641b3dd948ec51dd25671327a35e5ee87b274079a8a3ce7a26b1"; }
-    { locale = "or"; arch = "linux-x86_64"; sha256 = "53fea5b84051fea6c247fe2baf9f9d3c87b3f78d4655fc8509068fd60ff3c942"; }
-    { locale = "pa-IN"; arch = "linux-i686"; sha256 = "dc8d60a3f94da475fea5c1c748c52072f69d4642ea2c3b305e92c56fb3b09324"; }
-    { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "c06eb60b39cef2564e248e3d9dd711b863e46cc6d45803002c641a1335927bdc"; }
-    { locale = "pl"; arch = "linux-i686"; sha256 = "95cbcf68c03ed83590b6e257003282d710c8dd366fd75bd218880735731ed7d2"; }
-    { locale = "pl"; arch = "linux-x86_64"; sha256 = "9f59a86501cbb9d8813fbf5812646e87d400f136f2cca5d791dd5ac0bc4964c9"; }
-    { locale = "pt-BR"; arch = "linux-i686"; sha256 = "690772121588229f34e9a9d5e6042c56a3fdb9fdcafea53f45a12997cd1d1e53"; }
-    { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "fce60e0a3787a2362bdab4d566766c22a4b4f777d1dde7552e195eefc8fe98b1"; }
-    { locale = "pt-PT"; arch = "linux-i686"; sha256 = "35a4981bc819fa7cba9e2f73ebb28eafd68b464eacc9da4e3e651882ae8b84bd"; }
-    { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "eb4f25e99cc681a6113f9de016a6993e46575caba84f5cba6195c88379e4e661"; }
-    { locale = "rm"; arch = "linux-i686"; sha256 = "cef140f0b0c4da31235147871679d009f05aeec3e1b138e56bd6acabf79cb666"; }
-    { locale = "rm"; arch = "linux-x86_64"; sha256 = "e6aba016e9909cc43a9ab285ed8cbfc15dadf2cf7bba9c78ba340512dd9bbcc5"; }
-    { locale = "ro"; arch = "linux-i686"; sha256 = "d159bd682f8db01fea12e25bc0d4c24ef2ffffca07b3c5d64223ae75d6f77d23"; }
-    { locale = "ro"; arch = "linux-x86_64"; sha256 = "e82f1ad5461e25c25a8c6db480a733e95b81578ec280e93a52b00b650211a0ac"; }
-    { locale = "ru"; arch = "linux-i686"; sha256 = "fc2e1166c4d9614bcf9c8ccd01aa157bc229cccbdcd2854bbc52302465d24d75"; }
-    { locale = "ru"; arch = "linux-x86_64"; sha256 = "c08fcc4457bad70ff5861168364306753df7f03d7817a52dda8c6aad74bde389"; }
-    { locale = "si"; arch = "linux-i686"; sha256 = "78f60d4ba047d323ec2a36e2f8a775d86bb2c00bb671009105f5fe368419366f"; }
-    { locale = "si"; arch = "linux-x86_64"; sha256 = "d9c84c673378721c0bc45e767176b879858ba0feacdeeca503e600567569ad33"; }
-    { locale = "sk"; arch = "linux-i686"; sha256 = "1bbddd4c07cffc083997d3b43034438eccf8647bd9b078cbca86f63c50c588ae"; }
-    { locale = "sk"; arch = "linux-x86_64"; sha256 = "f8278a40b25bd24a951855b633218c8d0884fec7468291d947890f2e98310acb"; }
-    { locale = "sl"; arch = "linux-i686"; sha256 = "18e9f99de5847e996ab66202e8718d9844f26ffef771a236ae16ee68098853fa"; }
-    { locale = "sl"; arch = "linux-x86_64"; sha256 = "bbc818432701696fd140e914943d076e4d11741180a04ea27f4be75ec3558d1c"; }
-    { locale = "son"; arch = "linux-i686"; sha256 = "e1d8c54d8b1149f98adb1b46c4973e01fa76bb132f0df9b0f090c4ead0ec4676"; }
-    { locale = "son"; arch = "linux-x86_64"; sha256 = "a57f3971825a40c8dfce2d987384292f1ad3ebe6a96ff762bc38e69c6ce2889f"; }
-    { locale = "sq"; arch = "linux-i686"; sha256 = "b452ab04c4bae6079bbdc293bc6c41882dac30ec1b1483340e49d072ecf2ced4"; }
-    { locale = "sq"; arch = "linux-x86_64"; sha256 = "b8aaff5e70e7690481a5c22fb2da97ce63de67246217fb106441173573aeb4d9"; }
-    { locale = "sr"; arch = "linux-i686"; sha256 = "135f60c2012e63622d1a75cab6fd5f686fee71138b1f1f01e367fac0b3b583c8"; }
-    { locale = "sr"; arch = "linux-x86_64"; sha256 = "ce464a8ec58fe19e037a26a1b94e346ad314eacbe94232f4b136e0fc7b3919ac"; }
-    { locale = "sv-SE"; arch = "linux-i686"; sha256 = "937bb415ca95996207c371d111a888f68a24d690db8c31b8c1df530b2b7b30a7"; }
-    { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "0ee83de9b3bb77a6e3d1120194700b720d441ee116f9728823c5a78f59d28a10"; }
-    { locale = "ta"; arch = "linux-i686"; sha256 = "fb908dcbc4fa42c6472e4cb5bd9d8ae7c845bbf9965498091b32f7d1669ede24"; }
-    { locale = "ta"; arch = "linux-x86_64"; sha256 = "5c8f1c1c09ff2eccf6becf9136f9da3517fabbb0192f157676962fd3bfd31bb8"; }
-    { locale = "te"; arch = "linux-i686"; sha256 = "5478af8e757d8282993afacd10fc78bc7a207fbdc50705d2d8a665aa98e5f910"; }
-    { locale = "te"; arch = "linux-x86_64"; sha256 = "719945b8d7a945e556137cc3bdc4a8d7ddf5693e4ac49a3884f912ec471da1f5"; }
-    { locale = "th"; arch = "linux-i686"; sha256 = "4f0dfccef932beec90f7de951bb2d454bedc192b376caf25c3ba89ecdb5de9df"; }
-    { locale = "th"; arch = "linux-x86_64"; sha256 = "e14a4cdff4cc89f85043efbf56a82211f1040bc5b369c2113866efb639969017"; }
-    { locale = "tr"; arch = "linux-i686"; sha256 = "aa5bc43997a6669b1c8da7b04a12c7a16ce8b1fedae8b0bb1a317c83176e88c5"; }
-    { locale = "tr"; arch = "linux-x86_64"; sha256 = "3a0a5883b4e4442985fa8e24a80d0849ac450a20d278858e1b3847974cc212f2"; }
-    { locale = "uk"; arch = "linux-i686"; sha256 = "3ea926ea98fd3506cdcccc32266fd8910f7c6b563818d58fa9708872712daad9"; }
-    { locale = "uk"; arch = "linux-x86_64"; sha256 = "c1d596a00831ed30446f8a6f9e7b455329a402939d5c7318616ad182e9564aa5"; }
-    { locale = "uz"; arch = "linux-i686"; sha256 = "d17a26657562ee017388c878867ff43a1d1d86f80c86a18fcf63268b477bd889"; }
-    { locale = "uz"; arch = "linux-x86_64"; sha256 = "7115c30ae7c0528f54aa8629402ddcfc54687e3a439d7a96c18f15e903e283c8"; }
-    { locale = "vi"; arch = "linux-i686"; sha256 = "37fe2af25d7068569770573e605f3d325e41169b3b0a82ca4ff007a0636b155b"; }
-    { locale = "vi"; arch = "linux-x86_64"; sha256 = "5bb2b8a27065b9a71a06dbec136a1774e43fbe27a30a03092f718042d58ec26c"; }
-    { locale = "xh"; arch = "linux-i686"; sha256 = "fa44efebbc0f1174ad10f540668447ddf6bd26a2c918694dd11e63e4d6f36b9c"; }
-    { locale = "xh"; arch = "linux-x86_64"; sha256 = "2c179d4613b0b7456d900f9b6c02a1041c39d4cf98a0ca0ea2ea97d1d7546199"; }
-    { locale = "zh-CN"; arch = "linux-i686"; sha256 = "e3c06fbffb4b2c135d31499d1a3490d23baedbed5125b46a4153ad9d60ea2fa8"; }
-    { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "3402f491b016e791c9f40f8ac5df5f7017dd6dd71d872020a27eae3634e4fb52"; }
-    { locale = "zh-TW"; arch = "linux-i686"; sha256 = "c77d79a6b1602c9f8c6538be18c974b8557af3ad3898910e1bccfe0a54993207"; }
-    { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "651e4a28750ea9376636293b934cf646b0e6981825a9801fe8bf47785114e34d"; }
+    { locale = "ach"; arch = "linux-i686"; sha256 = "2d0ab9fba584576d67ccb600339efeb5ad7aac1629b2d7865e121825b1a5a6d5"; }
+    { locale = "ach"; arch = "linux-x86_64"; sha256 = "188b9aab64ab1beda84dbe7b36d899210472a3e445dd827b64ca7083ae3c0b32"; }
+    { locale = "af"; arch = "linux-i686"; sha256 = "e6b5fb28e5ad03240f0e156c81db1df16bfaf99a946ffab9672c06d8561de9c3"; }
+    { locale = "af"; arch = "linux-x86_64"; sha256 = "c2856308c9e87bf82f621c5d4c96e9c5a70e5ebb86a8e4ba8ecb4d08c1ae98ec"; }
+    { locale = "an"; arch = "linux-i686"; sha256 = "f138b17a230e9b42b334d3900bebf23156fe1dec1f4ec75f9a3b94348523e241"; }
+    { locale = "an"; arch = "linux-x86_64"; sha256 = "82d24b07dc8d887837e8fbd610c2feb1ff4975917d8a19836ec0d0db56522de8"; }
+    { locale = "ar"; arch = "linux-i686"; sha256 = "b530e58161331bff3222083298ddc5af0055c6b3337b58b1a4eb1d5d4e348d62"; }
+    { locale = "ar"; arch = "linux-x86_64"; sha256 = "67c0e4ce7dfe54d0e4fedb168342ea86a82458e2d3ce6aca78b4497f4e813bfd"; }
+    { locale = "as"; arch = "linux-i686"; sha256 = "f17e991e97e85b981c3191a0becad6df457a29b7042d31a667fd227dadc24e80"; }
+    { locale = "as"; arch = "linux-x86_64"; sha256 = "2d955443b785a65d2f9f914232d521aeb9082b4dead8fedc89cfa29329ab8e2a"; }
+    { locale = "ast"; arch = "linux-i686"; sha256 = "c9e2784047b58eddfd72c1e56964eea8ac098240436d029665bc940c7b8d8f8d"; }
+    { locale = "ast"; arch = "linux-x86_64"; sha256 = "4bd5cc7c34f0a1fc1e2e899942c4ebec6bdab2fbd9e3d331ecc0c67a6f8c16e4"; }
+    { locale = "az"; arch = "linux-i686"; sha256 = "1789f6c5524314df239e4b4beb677adf48ce926a097128e053b352067d13016f"; }
+    { locale = "az"; arch = "linux-x86_64"; sha256 = "4881ccb7521512b4275faa2598efda6bbcc3d7838b6200e79c8fcae358d32c23"; }
+    { locale = "be"; arch = "linux-i686"; sha256 = "e9e31e92e0732188f6c4494023de260e5b64e97c56ff07857b290355c50e25f4"; }
+    { locale = "be"; arch = "linux-x86_64"; sha256 = "00ef0cea013cdb8606d8786bb5a21e502a6054ab57b2fad4d24161c47768f418"; }
+    { locale = "bg"; arch = "linux-i686"; sha256 = "6428fa1d4f2bd0b703f207a1571e425f8076438954f955f60c0e8c1525743823"; }
+    { locale = "bg"; arch = "linux-x86_64"; sha256 = "fc156d3d76582c95eb6a0a7ee88dbdbd6c99d46ca42b011e1d789b0552bb5885"; }
+    { locale = "bn-BD"; arch = "linux-i686"; sha256 = "d0b69158e5ce85eec29dc70c4942bfc76eaf2d8e3359c45de5783d39fe1ccaf0"; }
+    { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "928575b759e4ae89d3e5ee475ffa18c69e945846981102d540de01c9bd87582e"; }
+    { locale = "bn-IN"; arch = "linux-i686"; sha256 = "a92a902e4380ddda37b8e70922e91ee029d47f866adea53220dd76182c52b596"; }
+    { locale = "bn-IN"; arch = "linux-x86_64"; sha256 = "022b9ff7141cd89df35477d357df74556bc4a24639141d21111eccfbf8e2f98c"; }
+    { locale = "br"; arch = "linux-i686"; sha256 = "c398c00b98edcaa2618363637075ccf749a4d3567dfdae070b4b0cbe23832f56"; }
+    { locale = "br"; arch = "linux-x86_64"; sha256 = "60f471fdf1b71072751396049f12a198c73d11892ec69fc142f925a12c6515f4"; }
+    { locale = "bs"; arch = "linux-i686"; sha256 = "d9e3c1b5c94ad207071cea86295ef3f98d4bd9201e896f6b9d67a2e475ea2898"; }
+    { locale = "bs"; arch = "linux-x86_64"; sha256 = "2ea3bb1c14a849b5039b633963687629839174ea886d3f8314f67eddafa2b16b"; }
+    { locale = "ca"; arch = "linux-i686"; sha256 = "bf1c1c3aaa900d66c4684cf48623bb0c9e0313cd919ad0e67e8a2e3ca5987aa6"; }
+    { locale = "ca"; arch = "linux-x86_64"; sha256 = "30c0217722c599ed8fc0e713e0b763a01dc0da37dc2f290a2a4d02cb2a86b6a3"; }
+    { locale = "cs"; arch = "linux-i686"; sha256 = "5ebd809827cdc85da0e6c973855c60426ab98e2cb898c030acd403577d3bb78a"; }
+    { locale = "cs"; arch = "linux-x86_64"; sha256 = "a1d55b7c54fd7eb89bcf5dbdadcaea0f5d2da7110a090c424c52a55ae23150f2"; }
+    { locale = "cy"; arch = "linux-i686"; sha256 = "55df045619bbe01af6f33c6cd563d6097b9c9023ab9133fa7def0800cc9aec83"; }
+    { locale = "cy"; arch = "linux-x86_64"; sha256 = "2ddb8bcd515aad4ddb029cf4e5c49e771aa1da14394924c4ec532c5125b7ca7b"; }
+    { locale = "da"; arch = "linux-i686"; sha256 = "b322bef3e95b24337f294b2786fc5a819d954adb43f98dee69674d41fd234b5c"; }
+    { locale = "da"; arch = "linux-x86_64"; sha256 = "3e5164351808ef2f8f4e9cea6bb1121c4d3394de56536d17869a56df3b783d3b"; }
+    { locale = "de"; arch = "linux-i686"; sha256 = "a404bf7c19dbc65adea8872b8bd080a17417bc0f1ffa3015513d86750b2903a9"; }
+    { locale = "de"; arch = "linux-x86_64"; sha256 = "3590e100bf84f2734d1b3c81508d8fa137fd100bdd1e764ae5da1f88602d5b9d"; }
+    { locale = "dsb"; arch = "linux-i686"; sha256 = "c4be1a5cc431f3aeb26694bfd0749da0dfc85c119f75b551e69083a384042833"; }
+    { locale = "dsb"; arch = "linux-x86_64"; sha256 = "36f451bb07af47aff7c930a2810ef628e3382f92560efbe396133735275f7075"; }
+    { locale = "el"; arch = "linux-i686"; sha256 = "736ee0dffe7c5dc0d5abc7755a83e29da718901252034ee503775fc3f11e31c1"; }
+    { locale = "el"; arch = "linux-x86_64"; sha256 = "1638e1fd69d1887bbfd2de95ffe7945f52934055f8e15eb919d9ccac930959e0"; }
+    { locale = "en-GB"; arch = "linux-i686"; sha256 = "1f9c8404fd01c1cac530c0e2b1fb488a2b4f7a02d8c2f0e568e0db050dc66f18"; }
+    { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "4f7491b919ca7a0563cd3444bd4a1abf48a4448ccdd743c5b5eb58584e5b1e94"; }
+    { locale = "en-US"; arch = "linux-i686"; sha256 = "abe3e5d23cf557ee81e7064d6d1b2d3a8f6b6e1a5f80947fc7229f0b2b631380"; }
+    { locale = "en-US"; arch = "linux-x86_64"; sha256 = "a4b439e28274feb4bf5494ba180143e6b8617428a63d11fa2fd0e650dda41908"; }
+    { locale = "en-ZA"; arch = "linux-i686"; sha256 = "9de2931e926e0b0667f6916283a7ef019d1c067b29d6bd5b4b903fdf87ad9c17"; }
+    { locale = "en-ZA"; arch = "linux-x86_64"; sha256 = "6ada8b6a9a2b19f9515a1aaf63ad66cf35a1ab5491fc8ffc86a17fe1378ab553"; }
+    { locale = "eo"; arch = "linux-i686"; sha256 = "92db868c78ae49a8275d217327ca442ef6733b955ddc5b4940183c9a596da3de"; }
+    { locale = "eo"; arch = "linux-x86_64"; sha256 = "2e8267fb43ba6b7636c98fe386c35ddb9032265565844dcbc90f3dba18a2bc05"; }
+    { locale = "es-AR"; arch = "linux-i686"; sha256 = "6343bacb35c929c8f7c5cb554aa0e5f67100032c71bc24203b663409e45cbf40"; }
+    { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "0b5a07e745aab7d1e0bb8bcf0afe12ab71a88679024ef6e9edd53bab7518df7f"; }
+    { locale = "es-CL"; arch = "linux-i686"; sha256 = "7288765c2222624e69b367ab83686c21a348330a8f26eff7c6ea8dca03a3aabf"; }
+    { locale = "es-CL"; arch = "linux-x86_64"; sha256 = "543778259a5d7c4198c8125b72f9e66e9ae98b398bc3b07ac0e103f07ab7ef2c"; }
+    { locale = "es-ES"; arch = "linux-i686"; sha256 = "c1aec91c45591eaa6df8b15ba13ea58d15ab2cce20361719ea2549896d26ea1f"; }
+    { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "ee3b11c04ca280ff77e3cedd3dc2040b7b1722384639c02507bedc927c7b558b"; }
+    { locale = "es-MX"; arch = "linux-i686"; sha256 = "8adb9435f57da461150d8b283161760683e46b068eaade916119c2240f0a9c66"; }
+    { locale = "es-MX"; arch = "linux-x86_64"; sha256 = "b624c4345794a22a7c63b4f6b7a1ed6f52472fa5cba4173f69f3c12ee3b4cbe1"; }
+    { locale = "et"; arch = "linux-i686"; sha256 = "efb6c6753e8a9d8174e8bd1ae7cbf3f75b479e5da3ebe07dbbbb4ac140e60eb9"; }
+    { locale = "et"; arch = "linux-x86_64"; sha256 = "c84bb0597fa14e8a7a2d086f24d71ad2f3c04b3fca794b76977d1a4cb1aea479"; }
+    { locale = "eu"; arch = "linux-i686"; sha256 = "d116553c492ec41b811befb35393553b9174da3960034ce5106558befbf9728a"; }
+    { locale = "eu"; arch = "linux-x86_64"; sha256 = "16c922f152d5e14c46277e23d30cfe0792c8e9828b8862df603aeff242c7ec96"; }
+    { locale = "fa"; arch = "linux-i686"; sha256 = "744ad5a8cb4473d502d1db50b6bf343e23525927b3a982677dd8a68aea111b3f"; }
+    { locale = "fa"; arch = "linux-x86_64"; sha256 = "968fea07386b96215af400524062447245fa038766caf0b133c932db6f105077"; }
+    { locale = "ff"; arch = "linux-i686"; sha256 = "0fdf06aa42cbd4d031fdad74d8ac9d6056708fc783180d72c5806cc45c5b8eec"; }
+    { locale = "ff"; arch = "linux-x86_64"; sha256 = "bfb65ec25192288b2f04f94bdcc9ce36a40a27c8a1f35f728f932c071b6756ce"; }
+    { locale = "fi"; arch = "linux-i686"; sha256 = "334c121cbd9a1469996ebc5535d838e3fecfcc419861cc70d5cdeb0cd584d5f5"; }
+    { locale = "fi"; arch = "linux-x86_64"; sha256 = "44883a9b819a24bef03c3322681e1b9f3fe61779e382a740900dfc16a5f7db06"; }
+    { locale = "fr"; arch = "linux-i686"; sha256 = "cd196dff293aabc39156e82deb5163e139a4b0173de92a2ba72df49bb4b0afe5"; }
+    { locale = "fr"; arch = "linux-x86_64"; sha256 = "77da207f48d7af908cb5e95767e61a2e6c04f1851e55430820ff8207da172361"; }
+    { locale = "fy-NL"; arch = "linux-i686"; sha256 = "39e8da569f2a6f67abac7782a938a906c810f8474fbb2c799dd26fb846c82707"; }
+    { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "44dbf644b3f96dd607e5c88eece8aaafd61ec42af9f7ba4c6ed06a272a45fa4a"; }
+    { locale = "ga-IE"; arch = "linux-i686"; sha256 = "783532acf3967f94232f42c9cd559e288db499c0ff74776543b59d71d281a74c"; }
+    { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "39509082dbeb935f481e95d6038943a17c5053f7001fbf71bdb0edea536adb9d"; }
+    { locale = "gd"; arch = "linux-i686"; sha256 = "dd73e1bf159f3d437d69306c5daeb7a06c951d6c5841315363c354f9aa1570c5"; }
+    { locale = "gd"; arch = "linux-x86_64"; sha256 = "a2fb4aa1ba4a50bdb308e8c12090158c5e040ae85617171786e93852d4f48de5"; }
+    { locale = "gl"; arch = "linux-i686"; sha256 = "8ac3fd13e0f173aa1dfffd44c91511bd457c6a751daa978fbaae3f9901427cae"; }
+    { locale = "gl"; arch = "linux-x86_64"; sha256 = "cf52827a18b400f8c3e426b00e2984bd5835014f3e97e9c1279f0b285ca5a5dc"; }
+    { locale = "gu-IN"; arch = "linux-i686"; sha256 = "1ef44836085733b52c338fdcaea78e7df5f78a0f0f470b9de3ac7b13e3ec4844"; }
+    { locale = "gu-IN"; arch = "linux-x86_64"; sha256 = "374280216142897536979fff6f876253caaf0eeb12a3d12d17b013e7ab3ba722"; }
+    { locale = "he"; arch = "linux-i686"; sha256 = "1dcca6ae796da1a1317a4f094f06369242cdf7c0f8ce3df7c9fabd22910996ab"; }
+    { locale = "he"; arch = "linux-x86_64"; sha256 = "e032513a673ba091207996b8a6a6b9da6ef05d5c080a93ed326fc4ac4ca6976a"; }
+    { locale = "hi-IN"; arch = "linux-i686"; sha256 = "2057287b406513a332d162f03f75ef7ff4c83834809163c8b870d9e5ab3f8cdf"; }
+    { locale = "hi-IN"; arch = "linux-x86_64"; sha256 = "8d19043416484c382fc9caec5dff4914fbc28feefd41a089591ef2b21f822a43"; }
+    { locale = "hr"; arch = "linux-i686"; sha256 = "995a6dd027a5a6b2123c62b74f524db53940e2c8fa6c7254dc41dca236f7889b"; }
+    { locale = "hr"; arch = "linux-x86_64"; sha256 = "4410e7d1cbce028de083b82ee68f442d27c2219544ec1be72ef2c274cb7c445a"; }
+    { locale = "hsb"; arch = "linux-i686"; sha256 = "0dcb0de11e35475cab33e11b08b88ff766915d7d98ceeb466a0fee90883ebaed"; }
+    { locale = "hsb"; arch = "linux-x86_64"; sha256 = "1695167eea386aec4fca23bb0bf4e5b83876a22f8c584f4e81886be229e9a43b"; }
+    { locale = "hu"; arch = "linux-i686"; sha256 = "31026a26c9fa9b3777c2f9dd1d55da7e0204e4d98586f887b67588ccb86c3843"; }
+    { locale = "hu"; arch = "linux-x86_64"; sha256 = "82d8fbe932765f100a116b6d572035297be2f027b4f0e0ba84ef88cb4b651000"; }
+    { locale = "hy-AM"; arch = "linux-i686"; sha256 = "864c112f13628bd9bc715a6a405dc92c3f8027b0e505722d819b84775fb27066"; }
+    { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "dddd71e651056c373225baab9bb190810f8ed6849abfa76587fcd05cc5060d89"; }
+    { locale = "id"; arch = "linux-i686"; sha256 = "3425906d6513d3e06286b9b3c62c30d702a47a3d7a31638a58f926e2fa4a254f"; }
+    { locale = "id"; arch = "linux-x86_64"; sha256 = "095d970add8bf54fc2fb2581532013f4792f648b58fa12d49a6a859f26a0e579"; }
+    { locale = "is"; arch = "linux-i686"; sha256 = "f3687eb0e7ce24e14621345543abdf2b92435466ededc98a4ec4a117c4593c3c"; }
+    { locale = "is"; arch = "linux-x86_64"; sha256 = "dbac8774c64e6c978a3eb900cf61d85a210d0c39c28df4a21e4295ba5febd0ea"; }
+    { locale = "it"; arch = "linux-i686"; sha256 = "62091c6f5214f4717462d9e2f6bacd7f30417b7e714de3fdec6fc2f703970eb7"; }
+    { locale = "it"; arch = "linux-x86_64"; sha256 = "480b9ffd4326a9a2e2002510027a15d4fdaf8ba1ea023ee6e55b2aa78b119a6c"; }
+    { locale = "ja"; arch = "linux-i686"; sha256 = "ef143bf31fa67cab3ccafc0083d81ffa8997e3365312b12312623755eb24f48d"; }
+    { locale = "ja"; arch = "linux-x86_64"; sha256 = "f74808de8fb999dceb067b3fda64e891c37bde7190e9eff68f1693f5b5feae0d"; }
+    { locale = "kk"; arch = "linux-i686"; sha256 = "a532d49011b632aa83f6b881b39c74bcb66fab0237e3e4f8682445aa0a053d4c"; }
+    { locale = "kk"; arch = "linux-x86_64"; sha256 = "7f32ee329e8281e89472b092248a26e1d38089bdc9830d2d1d0b1af8230ca20b"; }
+    { locale = "km"; arch = "linux-i686"; sha256 = "34ecf596b0870aca2db30513ef5d6522d86caf70fce38b23a7bff08c55551b69"; }
+    { locale = "km"; arch = "linux-x86_64"; sha256 = "6e7efd621e941674038887d1e8d90c36d0ac06a095386caa01d228494228be14"; }
+    { locale = "kn"; arch = "linux-i686"; sha256 = "062ebd6b27ef9094e65e60ad64be30470ed58eb2d92f247a87a781b97e0654d9"; }
+    { locale = "kn"; arch = "linux-x86_64"; sha256 = "e88428b1cd2e1919336dda303d8795bd02e4967ba8c6d2830205f68fa4c528d0"; }
+    { locale = "ko"; arch = "linux-i686"; sha256 = "6c43a7f86f908cccc7ca3a7ed45f95ea84b69e4a21ff1e1d58136ea19bf7bd2c"; }
+    { locale = "ko"; arch = "linux-x86_64"; sha256 = "9db2bfd818d82ee0c9bc35b6fd651ad8fe80f8d73d51326fde25fc4c2aaa295c"; }
+    { locale = "lij"; arch = "linux-i686"; sha256 = "be87fc2a6863f33f9ff9ad2990e1e6425a65002f2ee411a254dde80cbd5a31c4"; }
+    { locale = "lij"; arch = "linux-x86_64"; sha256 = "9cfb239df8195cfa355bc8ddaf63accd865de21086c5bc3180b2ad9886445f3e"; }
+    { locale = "lt"; arch = "linux-i686"; sha256 = "11e18e6baac8f31c62a301e8ee51056c707ca47332fbeb6f3492e8eaffa25c57"; }
+    { locale = "lt"; arch = "linux-x86_64"; sha256 = "3bb4dca607abc4e08300dfa61667d2f2b06661f47cf0029d078e14fa4686d4b8"; }
+    { locale = "lv"; arch = "linux-i686"; sha256 = "bc484992f230229ab4ab6d47fab9664f43341ad1202010f5dea91d2d78200c85"; }
+    { locale = "lv"; arch = "linux-x86_64"; sha256 = "42bdc60ad7edf2ed3e82f765abfc3815f98095adc2988f8d809a8834eada63ef"; }
+    { locale = "mai"; arch = "linux-i686"; sha256 = "628f0685185f91e695af5ce9a536d9263305cfd747683ef33dccd0c90f3e1bfb"; }
+    { locale = "mai"; arch = "linux-x86_64"; sha256 = "688c33b159b4fcd23fb4c6d3a7f845d03929b4a8b02eaa2ebb93682b396c73a2"; }
+    { locale = "mk"; arch = "linux-i686"; sha256 = "a59b2a8ee82513ef78f3509afc4dba75ec3128f0f42c657bbbfbad117b981b36"; }
+    { locale = "mk"; arch = "linux-x86_64"; sha256 = "3058ff9ac581a65ee0713fe3707f8b98eace0f833b8e7b901fa397538e9503f0"; }
+    { locale = "ml"; arch = "linux-i686"; sha256 = "43c80f530ad3eaf7c138e16b23b9eb32afc1f774374fe213f580cf68e4d0e245"; }
+    { locale = "ml"; arch = "linux-x86_64"; sha256 = "43f061317f9eb5a174cd13539bb3972535b552113d38c05d9888e7a37346ef22"; }
+    { locale = "mr"; arch = "linux-i686"; sha256 = "30c0ee68eadffcc95271f1e7c1c1b0151ee21ca3744fad61a723a9a6bfb751b0"; }
+    { locale = "mr"; arch = "linux-x86_64"; sha256 = "d9dd27af41ca021f323499be556d208f69b706aff079c8d7392c7f19092705d8"; }
+    { locale = "ms"; arch = "linux-i686"; sha256 = "adb5e1968c66378ff9b59dc57c00a2c953ad1f54f67e1bc40abc499bcf79653f"; }
+    { locale = "ms"; arch = "linux-x86_64"; sha256 = "3e4b43a88b3aa2887673e1962fa4ccbd895640113e683c849a3c9733677e1fe1"; }
+    { locale = "nb-NO"; arch = "linux-i686"; sha256 = "f4be0cff21abdc80fba10db2bf781fecfb4e503c70cb95a8b083c5f7123f8dc8"; }
+    { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "e9b191268a6694805a5ba86559e798c9a4e29eae39a7f64dab92a925fb31611d"; }
+    { locale = "nl"; arch = "linux-i686"; sha256 = "581c73084993be0bf1ab23bb468674d062fb98e99573d823e977a263b4cfaa91"; }
+    { locale = "nl"; arch = "linux-x86_64"; sha256 = "3fd8929341ae048187379b7648ec8e008ace53e4a5f0af1421ecabcb5ad3bf61"; }
+    { locale = "nn-NO"; arch = "linux-i686"; sha256 = "b2104d5895a727903f6a273888989887542ad9e61c998cc651bb24d64efc6cfd"; }
+    { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "1bf582e66da985cbb01c22f865fc291196c55b14d2f84516f68f184ea842a664"; }
+    { locale = "or"; arch = "linux-i686"; sha256 = "1ffbc776fb3ae030e6dedea009b71873bff57f9294e63331404b53e1ba36499c"; }
+    { locale = "or"; arch = "linux-x86_64"; sha256 = "b988f433a238b2cb3766042d911a1f002a5f91a47dbed5b937f70cb59ed060d2"; }
+    { locale = "pa-IN"; arch = "linux-i686"; sha256 = "6ba4941b5bef7b860194114c2704662a42f9f3007a0b634662e42f38c0aa601a"; }
+    { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "0d9920d4b358cfdcf8cdf4b2d2e07ceb191709eee9dbae4c59f9dbfcfffbf0f5"; }
+    { locale = "pl"; arch = "linux-i686"; sha256 = "e080fb35bf49f9eb2fc39a435a188164eedf2ea7a24f8e950d62567620a91954"; }
+    { locale = "pl"; arch = "linux-x86_64"; sha256 = "cc37624f0c1e82d2de2048129f58e85fe8a518ee4b0ebdbee0a5205517602cf9"; }
+    { locale = "pt-BR"; arch = "linux-i686"; sha256 = "d19bf65889c686cbb284e697e8ba1315b6ec004b57096725fb576898ef105346"; }
+    { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "0d00d2d0bbc6045117c4df93045f70ebe0468e004504a06dfc508bfca6c6df1f"; }
+    { locale = "pt-PT"; arch = "linux-i686"; sha256 = "5225afadf2ea62792376dfda1d2b3533d986f1ee3a281781a5be294b8883ac8b"; }
+    { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "0c1d841ba80e32d51d41c99b551e68c6b591e97af4ccee4d7c7d6ef03f8707ea"; }
+    { locale = "rm"; arch = "linux-i686"; sha256 = "2cc9200a132c967a7158f5422dad8f4b2d90dfc7e46ada305daebabc44806de8"; }
+    { locale = "rm"; arch = "linux-x86_64"; sha256 = "0dff628773d4f2e24b767501b9c768586a27e82c0e8b259ef1cc676985ad0125"; }
+    { locale = "ro"; arch = "linux-i686"; sha256 = "500142fe612fe6144a14ebaad486da04050940a755e205297473c1be6b9dc428"; }
+    { locale = "ro"; arch = "linux-x86_64"; sha256 = "f3a57abec8553c8b9d8db9fb5600cd7b6e1189ebf0225df96608eaf2863e41b3"; }
+    { locale = "ru"; arch = "linux-i686"; sha256 = "1266ed09db881af90794bef049cdfee777d7179026de8c0de2931275f3f288e9"; }
+    { locale = "ru"; arch = "linux-x86_64"; sha256 = "0f1b44177633149aaa31574ba3cf343971bd4e11ac6b4bb92a5875b6a30a42af"; }
+    { locale = "si"; arch = "linux-i686"; sha256 = "e027afd86b00379c12e014b8d0d11a05811c598f53490edf7070e7acccbf0d79"; }
+    { locale = "si"; arch = "linux-x86_64"; sha256 = "518c19c5351a2c1bd05afe63e9d8c2a0be3a9cedccf7aa1d84d1af9de7ecf7fd"; }
+    { locale = "sk"; arch = "linux-i686"; sha256 = "e3dcda7406d00166a601b77fbdf0b84181ba5372f760eb08d5476fe9d219caef"; }
+    { locale = "sk"; arch = "linux-x86_64"; sha256 = "019c03ecd24f394b0ff76aff5cd9f0db017ffd3b8dd65388c4f5ee3188e77a6c"; }
+    { locale = "sl"; arch = "linux-i686"; sha256 = "a88391cc29643277f9d8c58a205ac959af825326b61c16361d4def6f7da31235"; }
+    { locale = "sl"; arch = "linux-x86_64"; sha256 = "fcf45e13a0bc543988495a83e5e96400707564d2ed4fcd0579219c999ee71e83"; }
+    { locale = "son"; arch = "linux-i686"; sha256 = "a75e273e01df51ffbe2c8666545f1e6f4d00af373d7aac08978947d7afc1e5f4"; }
+    { locale = "son"; arch = "linux-x86_64"; sha256 = "9f28df29d980e6c7467e99b2b81740cb078ce8e6896fe4e2a6b1473770e6bef5"; }
+    { locale = "sq"; arch = "linux-i686"; sha256 = "2243773d7d38608e17233e1d98e4fc1ca19f40f27a3e87557ad7fbd958c080ba"; }
+    { locale = "sq"; arch = "linux-x86_64"; sha256 = "c18faf9d8971c43db18fcc66329a85018a04e8cf4819c4843d826bc86414cadb"; }
+    { locale = "sr"; arch = "linux-i686"; sha256 = "0cd5e6a3910923aed9a88fafd95bc11263de7359c38685e209212339bb2f50dc"; }
+    { locale = "sr"; arch = "linux-x86_64"; sha256 = "1ec48c65323b15332932060ec5193908d89715736bd0abd88472dc05e639a62a"; }
+    { locale = "sv-SE"; arch = "linux-i686"; sha256 = "6718eb3e71a3d4f5487b80bbd784fd61422345f94d3271f6de6f6feab9e2f6da"; }
+    { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "5b356a6334d424b5e47ea4b1c32403a858ff5dc8727bbc0b2f72e6a29c9b625f"; }
+    { locale = "ta"; arch = "linux-i686"; sha256 = "fdb4e36497a61af9badb848a067eff4e4dada7dfffefbfe6bb7266ad89a8707a"; }
+    { locale = "ta"; arch = "linux-x86_64"; sha256 = "de5f0b871425412f9f261eff5b1abb3ddbd40f588647fd8e174e2d6c5ba17b90"; }
+    { locale = "te"; arch = "linux-i686"; sha256 = "0cc82774a46580c9e2f890848f705b1dc4effac197a902f9d244f0b6f6258650"; }
+    { locale = "te"; arch = "linux-x86_64"; sha256 = "65ceda67a572053dd4d9e15b9bd47c91364651736417414d4ca4a0a7ded9775a"; }
+    { locale = "th"; arch = "linux-i686"; sha256 = "1c0084ed26218713c4606ab073bf09de888051e9dcc49652a87fb58209a8c614"; }
+    { locale = "th"; arch = "linux-x86_64"; sha256 = "5a70e29d282961e27350d26cf164472fe51247db1d7d1228dca693423c32d0a6"; }
+    { locale = "tr"; arch = "linux-i686"; sha256 = "f7fa2029a36eda63544beebb6534fc2f8432c87d7a8d08d4c8927275e659b686"; }
+    { locale = "tr"; arch = "linux-x86_64"; sha256 = "1e3744f5908164e163818522fa902bd57edb62837b2b399983ea5a4ed487cda8"; }
+    { locale = "uk"; arch = "linux-i686"; sha256 = "0f465eda0f7e87eef88bc17b3e6868ad90a270e6993d327fecca532637442df4"; }
+    { locale = "uk"; arch = "linux-x86_64"; sha256 = "6530af36cfab509fff37519b435c7939110c000dbdd94000fe964283a14b1622"; }
+    { locale = "uz"; arch = "linux-i686"; sha256 = "7ee5997bcb4915c3907cee90e350e3bc2b67965975faecffa738a728cf2e12e3"; }
+    { locale = "uz"; arch = "linux-x86_64"; sha256 = "d7b34e36bcb423977a2a7667504c096730ca684c9f2e861b17e8f0174f5bb0d0"; }
+    { locale = "vi"; arch = "linux-i686"; sha256 = "e9497a8eed98ec34b31e3b1ec7086a4d219121f0edf21fd8f6a01599afa41f12"; }
+    { locale = "vi"; arch = "linux-x86_64"; sha256 = "b94fbaee83014b88490bf19cc37dbda87fb9260ed5879be3b688a2abbe709a87"; }
+    { locale = "xh"; arch = "linux-i686"; sha256 = "d5a86db6b9f3bb5162a86f976cbbc01f542a924c05729eb54a2c24dabc711065"; }
+    { locale = "xh"; arch = "linux-x86_64"; sha256 = "d765b2d324e89119fee522ad8972031c8727841c2fa2700d010be7d23633bbbc"; }
+    { locale = "zh-CN"; arch = "linux-i686"; sha256 = "fb3bbc44952207f42112c291dccb82f02fbd23bba7b54b06a1047809d2bb18d2"; }
+    { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "255d19959cb0e0efbcb2eeceb39b43bbb567ab2474af4da6675574a0110781e1"; }
+    { locale = "zh-TW"; arch = "linux-i686"; sha256 = "cfc90ac621dc57d7eb922c564aa3a7d5ad7f2aacc95196606d34cba7b7e30d1a"; }
+    { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "ff119be821acb8f99a485a60de506123c76a7a3a13ac678576248f97ff1ab882"; }
   ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix
index 7451297f8d2..834c6ed339c 100644
--- a/pkgs/applications/networking/browsers/firefox/default.nix
+++ b/pkgs/applications/networking/browsers/firefox/default.nix
@@ -133,14 +133,14 @@ in {
 
   firefox-unwrapped = common {
     pname = "firefox";
-    version = "44.0";
-    sha256 = "07ac1h6ib36nm4a0aykh1z36vgw6wqlblil0zsj0lchdhksb10pa";
+    version = "44.0.2";
+    sha256 = "17id7ala1slb2mjqkikryqjadcsmdzqmkxrrnb5m1316m50qichb";
   };
 
   firefox-esr-unwrapped = common {
     pname = "firefox-esr";
-    version = "38.5.2esr";
-    sha256 = "0xqirpiys2pgzk9hs4s93svknc0sss8ry60zar7n9jj74cgz590m";
+    version = "38.6.1esr";
+    sha256 = "1zyhzczhknplxfmk2r7cczavbsml8ckyimibj2sphwdc300ls5wi";
   };
 
 }
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix
index 7b80ec85661..c6801105a84 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
     description = "Plugin for Pidgin 2.x which implements OTR Messaging";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainters = with maintainers; [ abbradar ];
+    maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
index e03b61b6182..e4c0697605d 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
     description = "Plugin for Pidgin 2.x which implements Steam Friends/Steam IM compatibility";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainters = with maintainers; [ arobyn ];
+    maintainers = with maintainers; [ arobyn ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix
index 149f62bb981..8022d32a081 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix
@@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
     description = "Plugin pack for Pidgin 2.x";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainters = with maintainers; [ bdimcheff ];
+    maintainers = with maintainers; [ bdimcheff ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix b/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
index 26a7eb49279..507094f7c05 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     description = "Telegram client forked from sigram";
     homepage = "http://aseman.co/en/products/cutegram/";
     license = licenses.gpl3;
-    maintainer = [ maintainers.profpatsch ];
+    maintainers = [ maintainers.profpatsch ];
   };
 
 }
diff --git a/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix b/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
index 3149ac3279a..8166514bb3a 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     description = "A fork of libqtelegram by Aseman, using qmake";
     homepage = src.meta.homepage;
     license = stdenv.lib.licenses.gpl3;
-    maintainer = [ maintainers.profpatsch ];
+    maintainers = [ maintainers.profpatsch ];
   };
 
 }
diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
index b51f8435ce1..6bf550d4766 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     description = "Telegram API tools for QtQml and Qml";
     homepage = src.meta.homepage;
     license = stdenv.lib.licenses.gpl3;
-    maintainer = [ maintainers.profpatsch ];
+    maintainers = [ maintainers.profpatsch ];
   };
 
 }
diff --git a/pkgs/applications/networking/nntp-proxy/default.nix b/pkgs/applications/networking/nntp-proxy/default.nix
new file mode 100644
index 00000000000..05333f67ecf
--- /dev/null
+++ b/pkgs/applications/networking/nntp-proxy/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, libconfig, pkgconfig, libevent, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "nntp-proxy-${version}";
+  version = "2014-01-06";
+
+  src = fetchFromGitHub {
+    owner = "nieluj";
+    repo = "nntp-proxy";
+    rev = "0358e7ad6c4676f90ac5074320b16e1461b0011a";
+    sha256 = "0jwxh71am83fbnq9mn06jl06rq8qybm506js79xmmc3xbk5pqvy4";
+  };
+
+  buildInputs = [ libconfig pkgconfig libevent openssl ];
+
+  installFlags = "INSTALL_DIR=\${out}/bin/";
+
+  preInstall = ''
+    mkdir -p $out/bin
+    substituteInPlace Makefile \
+      --replace /usr/bin/install $(type -P install)
+  '';
+
+  meta = {
+    description = "Simple NNTP proxy with SSL support";
+    homepage = https://github.com/nieluj/nntp-proxy;
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [ stdenv.lib.maintainers.fadenb ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/networking/remote/ssvnc/default.nix b/pkgs/applications/networking/remote/ssvnc/default.nix
index fad7ef90ceb..956391b71f8 100644
--- a/pkgs/applications/networking/remote/ssvnc/default.nix
+++ b/pkgs/applications/networking/remote/ssvnc/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, imake, zlib, jdk, libX11, libXt, libXmu
-, libXaw, libXext, libXpm, openjpeg, openssl, tcl, tk }:
+, libXaw, libXext, libXpm, openjpeg, openssl, tcl, tk, perl }:
 
 stdenv.mkDerivation rec {
   name = "ssvnc-${version}";
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     sed -i -e 's|exec wish|exec ${tk}/bin/wish|' $out/lib/ssvnc/util/ssvnc.tcl
+    sed -i -e 's|/usr/bin/perl|${perl}/bin/perl|' $out/lib/ssvnc/util/ss_vncviewer
   '';
 
   meta = {
diff --git a/pkgs/applications/version-management/smartgithg/default.nix b/pkgs/applications/version-management/smartgithg/default.nix
index 778ae995f3d..420031a8101 100644
--- a/pkgs/applications/version-management/smartgithg/default.nix
+++ b/pkgs/applications/version-management/smartgithg/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   name = "smartgithg-${version}";
-  version = "7_0_2";
+  version = "7_1_0";
 
   src = fetchurl {
-    url = "http://www.syntevo.com/downloads/smartgit/smartgit-generic-${version}.tar.gz";
-    sha256 = "1jpi424aqy6niq31j750rgbspwii013c8kbi965i4jzjpba1pagi";
+    url = "http://www.syntevo.com/downloads/smartgit/smartgit-linux-${version}.tar.gz";
+    sha256 = "0nlv2ipmv3z1j4642gfsrpsgc2y4mxngiz6mz3nidrbrkz0ylsvy";
   };
 
   buildInputs = [
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     install_freedesktop_items = ./install_freedesktop_items.sh;
     runtime_paths = lib.makeSearchPath "bin" [
       jre
-      git mercurial subversion
+      #git mercurial subversion # the paths are requested in configuration
       which
     ];
     runtime_lib_paths = lib.makeLibraryPath [
diff --git a/pkgs/applications/window-managers/compton/git.nix b/pkgs/applications/window-managers/compton/git.nix
index be2586c9e27..b715b3a4cf3 100644
--- a/pkgs/applications/window-managers/compton/git.nix
+++ b/pkgs/applications/window-managers/compton/git.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
       additional features, such as additional effects, and a fork at a
       well-defined and proper place.
     '';
-    maintainer = maintainers.ertes;
+    maintainers = maintainers.ertes;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/window-managers/orbment/default.nix b/pkgs/applications/window-managers/orbment/default.nix
new file mode 100644
index 00000000000..e7cbd004087
--- /dev/null
+++ b/pkgs/applications/window-managers/orbment/default.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, fetchurl, makeWrapper, cmake, pkgconfig
+, wlc, dbus_libs, wayland, libxkbcommon, pixman, libinput, udev, zlib, libpng, libdrm, libX11
+}:
+
+stdenv.mkDerivation rec {
+  name = "orbment-${version}";
+  version = "git-2016-01-31";
+  repo = "https://github.com/Cloudef/orbment";
+  rev = "7f649fb76649f826dd29578a5ec41bb561b116eb";
+
+  chck_repo = "https://github.com/Cloudef/chck";
+  chck_rev = "fe5e2606b7242aa5d89af2ea9fd048821128d2bc";
+  inihck_repo = "https://github.com/Cloudef/inihck";
+  inihck_rev = "462cbd5fd67226714ac2bdfe4ceaec8e251b2d9c";
+
+  srcs = [
+   (fetchurl {
+     url = "${repo}/archive/${rev}.tar.gz";
+     sha256 = "5a426da0d5f4487911cfe9226865ed0cd1a7cdf253eec19d5eadc4b0d14a2ea0";
+   })
+   (fetchurl {
+     url = "${chck_repo}/archive/${chck_rev}.tar.gz";
+     sha256 = "ca316b544c48e837c32f08d613be42da10e0a3251e8e4488d1848b91ef92ab9e";
+   })
+   (fetchurl {
+     url = "${inihck_repo}/archive/${inihck_rev}.tar.gz";
+     sha256 = "d21f2ac25eafed285614f5f0ef7a1014d629ba382f4e64bc89fe2c3e98c2777f";
+   })
+  ];
+
+  sourceRoot = "orbment-${rev}";
+  postUnpack = ''
+    rm -rf orbment-${rev}/lib/chck orbment-${rev}/lib/inihck
+    ln -s ../../chck-${chck_rev} orbment-${rev}/lib/chck
+    ln -s ../../inihck-${inihck_rev} orbment-${rev}/lib/inihck
+  '';
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ makeWrapper wlc dbus_libs wayland libxkbcommon pixman libinput udev zlib libpng libX11 libdrm ];
+  makeFlags = "PREFIX=$(out)";
+  installPhase = "PREFIX=$out make install";
+
+  LD_LIBRARY_PATH = lib.makeLibraryPath [ libX11 libdrm dbus_libs ];
+  preFixup = ''
+    wrapProgram $out/bin/orbment \
+      --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}";
+  '';
+
+  meta = {
+    description = "Modular Wayland compositor";
+    homepage    = repo;
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix
new file mode 100644
index 00000000000..fa81971885a
--- /dev/null
+++ b/pkgs/applications/window-managers/sway/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchurl, makeWrapper, cmake, pkgconfig
+, wayland, wlc, libxkbcommon, pixman, fontconfig, pcre, json_c, asciidoc, libxslt, dbus_libs
+}:
+
+stdenv.mkDerivation rec {
+  name = "sway-${version}";
+  version = "git-2016-02-08";
+  repo = "https://github.com/SirCmpwn/sway";
+  rev = "16e904634c65128610537bed7fcb16ac3bb45165";
+
+  src = fetchurl {
+    url = "${repo}/archive/${rev}.tar.gz";
+    sha256 = "52d6c4b49fea69e2a2c1b44b858908b7736301bdb9ed483c294bc54bb40e872e";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ makeWrapper wayland wlc libxkbcommon pixman fontconfig pcre json_c asciidoc libxslt dbus_libs ];
+
+  patchPhase = ''
+    sed -i s@/etc/sway@$out/etc/sway@g CMakeLists.txt;
+  '';
+
+  makeFlags = "PREFIX=$(out)";
+  installPhase = "PREFIX=$out make install";
+
+  LD_LIBRARY_PATH = lib.makeLibraryPath [ wlc dbus_libs ];
+  preFixup = ''
+    wrapProgram $out/bin/sway \
+      --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}";
+  '';
+
+  meta = {
+    description = "i3-compatible window manager for Wayland";
+    homepage    = "http://swaywm.org";
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/applications/window-managers/velox/default.nix b/pkgs/applications/window-managers/velox/default.nix
new file mode 100644
index 00000000000..789f074aecd
--- /dev/null
+++ b/pkgs/applications/window-managers/velox/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, fetchFromGitHub, pkgconfig
+, swc, libxkbcommon
+, wld, wayland, pixman, fontconfig
+}:
+
+stdenv.mkDerivation rec {
+  name = "velox-${version}";
+  version = "git-2015-11-03";
+  repo = "https://github.com/michaelforney/velox";
+  rev = "53b41348df7e37886cab012609923255e4397419";
+
+  src = fetchurl {
+    url = "${repo}/archive/${rev}.tar.gz";
+    sha256 = "e49583efbbe62ea30f0084491ff757dff683f35eef6e9b68aa413e0b50c4bf20";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ swc libxkbcommon wld wayland pixman fontconfig ];
+
+  makeFlags = "PREFIX=$(out)";
+  installPhase = "PREFIX=$out make install";
+
+  meta = {
+    description = "velox window manager";
+    homepage    = "https://github.com/michaelforney/velox";
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 945ba592a0a..2c5852c646e 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -102,6 +102,23 @@ hash_from_ref(){
     git ls-remote origin | sed -n "\,\t$ref, { s,\(.*\)\t\(.*\),\1,; p; q}"
 }
 
+# Returns a name based on the url and reference
+#
+# This function needs to be in sync with nix's fetchgit implementation
+# of urlToName() to re-use the same nix store paths.
+url_to_name(){
+    local url=$1
+    local ref=$2
+    # basename removes the / and .git suffixes
+    local base=$(basename "$url" .git)
+
+    if [[ $ref =~ [a-z0-9]+ ]]; then
+        echo "$base-${ref:0:7}"
+    else
+        echo $base
+    fi
+}
+
 # Fetch everything and checkout the right sha1
 checkout_hash(){
     local hash="$1"
@@ -288,7 +305,7 @@ else
     # If the hash was given, a file with that hash may already be in the
     # store.
     if test -n "$expHash"; then
-        finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" git-export)
+        finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" "$(url_to_name "$url" "$rev")")
         if ! nix-store --check-validity "$finalPath" 2> /dev/null; then
             finalPath=
         fi
@@ -302,7 +319,7 @@ else
         tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/git-checkout-tmp-XXXXXXXX")"
         trap "rm -rf \"$tmpPath\"" EXIT
 
-        tmpFile="$tmpPath/git-export"
+        tmpFile="$tmpPath/$(url_to_name "$url" "$rev")"
         mkdir "$tmpFile"
 
         # Perform the checkout.
@@ -313,7 +330,7 @@ else
         if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi
 
         # Add the downloaded file to the Nix store.
-        finalPath=$(nix-store --add-fixed --recursive "$hashType" $tmpFile)
+        finalPath=$(nix-store --add-fixed --recursive "$hashType" "$tmpFile")
 
         if test -n "$expHash" -a "$expHash" != "$hash"; then
             echo "hash mismatch for URL \`$url'"
diff --git a/pkgs/data/fonts/google-fonts/default.nix b/pkgs/data/fonts/google-fonts/default.nix
index 9f14f945e35..e4c655877c8 100644
--- a/pkgs/data/fonts/google-fonts/default.nix
+++ b/pkgs/data/fonts/google-fonts/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     description = "Font files available from Google Font";
     license = with licenses; [ asl20 ofl ufl ];
     platforms = platforms.all;
-    maintainer = with maintainers; [ manveru ];
+    maintainers = with maintainers; [ manveru ];
   };
 }
diff --git a/pkgs/data/fonts/powerline-fonts/default.nix b/pkgs/data/fonts/powerline-fonts/default.nix
index 6d620c09f06..2e576cf6dc8 100644
--- a/pkgs/data/fonts/powerline-fonts/default.nix
+++ b/pkgs/data/fonts/powerline-fonts/default.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation {
     '';
     license = with licenses; [ asl20 free ofl ];
     platforms = platforms.all;
-    maintainer = with maintainers; [ malyn ];
+    maintainers = with maintainers; [ malyn ];
   };
 }
diff --git a/pkgs/data/misc/media-player-info/default.nix b/pkgs/data/misc/media-player-info/default.nix
index 9abe5d6ea8e..f31c7c503a2 100644
--- a/pkgs/data/misc/media-player-info/default.nix
+++ b/pkgs/data/misc/media-player-info/default.nix
@@ -27,6 +27,6 @@ in
       description = "A repository of data files describing media player capabilities";
       homepage = "http://www.freedesktop.org/wiki/Software/media-player-info/";
       license = licenses.bsd3;
-      maintainer = with maintainers; [ ttuegel ];
+      maintainers = with maintainers; [ ttuegel ];
     };
   }
diff --git a/pkgs/data/misc/wireless-regdb/default.nix b/pkgs/data/misc/wireless-regdb/default.nix
index 123cb7a6208..3c74123d605 100644
--- a/pkgs/data/misc/wireless-regdb/default.nix
+++ b/pkgs/data/misc/wireless-regdb/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "wireless-regdb-${version}";
-  version = "2015-12-14";
+  version = "2016-02-08";
 
   src = fetchgit {
-    sha256 = "1ldfcxn3mdb104czy78b7nj1clsbfp8fc6mshix98zq0bg4k7rsm";
+    sha256 = "0cqnkkcni27ya6apy2ba4im7xj4nrhbcgrahlarvrzbbjkp740m9";
     url = https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git;
     rev = "refs/tags/master-${version}";
   };
diff --git a/pkgs/desktops/plasma-5.5/bluedevil.nix b/pkgs/desktops/plasma-5.5/bluedevil.nix
index dc11ee170b3..6596c246202 100644
--- a/pkgs/desktops/plasma-5.5/bluedevil.nix
+++ b/pkgs/desktops/plasma-5.5/bluedevil.nix
@@ -20,5 +20,7 @@ plasmaPackage {
   postInstall = ''
     wrapQtProgram "$out/bin/bluedevil-wizard"
     wrapQtProgram "$out/bin/bluedevil-sendfile"
+    # Fix the location of logic.js for the plasmoid
+    ln -s $out/share/plasma/plasmoids/org.kde.plasma.bluetooth/contents/code/logic.js $out/share/plasma/plasmoids/org.kde.plasma.bluetooth/contents/ui/logic.js
   '';
 }
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index bbf98df8079..18b7dbfc03b 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -605,14 +605,8 @@ self: super: {
   # https://github.com/junjihashimoto/test-sandbox-compose/issues/2
   test-sandbox-compose = dontCheck super.test-sandbox-compose;
 
-  # https://github.com/jgm/pandoc/issues/2190
-  pandoc = overrideCabal super.pandoc (drv: {
-    enableSharedExecutables = false;
-    postInstall = ''            # install man pages
-      mv man $out/
-      find $out/man -type f ! -name "*.[0-9]" -exec rm {} +
-    '';
-  });
+  # https://github.com/jgm/pandoc/issues/2709
+  pandoc = disableSharedExecutables super.pandoc;
 
   # Tests attempt to use NPM to install from the network into
   # /homeless-shelter. Disabled.
@@ -627,14 +621,6 @@ self: super: {
   # https://github.com/haskell/haddock/issues/378
   haddock-library = dontCheck super.haddock-library;
 
-  # Already fixed in upstream darcs repo.
-  xmonad-contrib = overrideCabal super.xmonad-contrib (drv: {
-    postPatch = ''
-      sed -i -e '24iimport Control.Applicative' XMonad/Util/Invisible.hs
-      sed -i -e '22iimport Control.Applicative' XMonad/Hooks/DebugEvents.hs
-    '';
-  });
-
   # https://github.com/anton-k/csound-expression-dynamic/issues/1
   csound-expression-dynamic = dontHaddock super.csound-expression-dynamic;
 
@@ -773,9 +759,6 @@ self: super: {
   elm-server = markBroken super.elm-server;
   elm-yesod = markBroken super.elm-yesod;
 
-  # https://github.com/GaloisInc/HaNS/pull/8
-  hans = appendPatch super.hans ./patches/hans-disable-webserver.patch;
-
   # https://github.com/athanclark/sets/issues/2
   sets = dontCheck super.sets;
 
diff --git a/pkgs/development/haskell-modules/patches/hans-disable-webserver.patch b/pkgs/development/haskell-modules/patches/hans-disable-webserver.patch
deleted file mode 100644
index 14f7e51fdf2..00000000000
--- a/pkgs/development/haskell-modules/patches/hans-disable-webserver.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur hans-2.5.0.0/hans.cabal hans-2.5.0.1/hans.cabal
---- hans-2.5.0.0/hans.cabal     2015-08-06 14:48:45.453072822 +0300
-+++ hans-2.5.0.1/hans.cabal     2015-08-06 14:49:13.044391528 +0300
-@@ -30,6 +30,7 @@
-         description:    Build the example program
-
- flag web-server
-+        default:        False
-         description:    Build a simple web-server example
-
- flag word32-in-random
diff --git a/pkgs/development/interpreters/jruby/default.nix b/pkgs/development/interpreters/jruby/default.nix
index bc76abb4546..1d05f9406b4 100644
--- a/pkgs/development/interpreters/jruby/default.nix
+++ b/pkgs/development/interpreters/jruby/default.nix
@@ -3,17 +3,17 @@
 stdenv.mkDerivation rec {
   name = "jruby-${version}";
 
-  version = "1.7.21";
+  version = "9.0.5.0";
 
   src = fetchurl {
-    url = "http://jruby.org.s3.amazonaws.com/downloads/${version}/jruby-bin-${version}.tar.gz";
-    sha1 = "4955b69a913b22f96bd599eff2a133d8d1ed42c6";
+    url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
+    sha256 = "1wysymqzc7591743f2ycgwpm232y6i050izn72lck44nhnyr5wwy";
   };
 
   buildInputs = [ makeWrapper ];
 
   installPhase = ''
-     mkdir -pv $out
+     mkdir -pv $out/docs
      mv * $out
      rm $out/bin/*.{bat,dll,exe,sh}
      mv $out/COPYING $out/LICENSE* $out/docs
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index c963c01e65b..5503ee9c887 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -287,19 +287,14 @@ let
 
 in {
 
-  php54 = generic {
-    version = "5.4.45";
-    sha256 = "10k59j7zjx2mrldmgfvjrrcg2cslr2m68azslspcz5acanqjh3af";
-  };
-
   php55 = generic {
-    version = "5.5.31";
-    sha256 = "0xx23gb70jsgbd772hy8f79wh2rja617s17gnx4vgklxk8mkhjpv";
+    version = "5.5.32";
+    sha256 = "1vljdvyqsq0vas4yhvpqycqyxl2gfndbmak6cfgxn1cfvc4c3wmh";
   };
 
   php56 = generic {
-    version = "5.6.17";
-    sha256 = "0fyxg95m918ngi6lnxyfb4y0ii4f8f5znb5l4axpagp6l5b5zd3p";
+    version = "5.6.18";
+    sha256 = "1vgl2zjq6ws5cjjb3llhwpfwg9gasq3q84ibdv9hj8snm4llmkf3";
   };
 
   php70 = generic {
diff --git a/pkgs/development/interpreters/ruby/bundix/default.nix b/pkgs/development/interpreters/ruby/bundix/default.nix
index b5a49043c60..245090e66e1 100644
--- a/pkgs/development/interpreters/ruby/bundix/default.nix
+++ b/pkgs/development/interpreters/ruby/bundix/default.nix
@@ -1,20 +1,44 @@
-{ ruby, fetchgit, buildRubyGem, bundler }:
+{ buildRubyGem, lib, bundler, ruby, nix, nix-prefetch-scripts }:
 
-let
-  thor = buildRubyGem {
-    gemName = "thor";
-    version = "0.19.1";
-    type = "gem";
-    sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z";
-  };
+buildRubyGem rec {
+  inherit ruby;
 
-in buildRubyGem {
+  name = "${gemName}-${version}";
   gemName = "bundix";
-  version = "1.0.4";
-  gemPath = [ thor bundler ];
-  src = fetchgit {
-    url = "https://github.com/cstrahan/bundix.git";
-    rev = "6dcf1f71c61584f5c9b919ee9df7b0c554862076";
-    sha256 = "1w17bvc9srcgr4ry81ispcj35g9kxihbyknmqp8rnd4h5090b7b2";
+  version = "2.0.5";
+
+  sha256 = "0bsynhr44jz6nih0xn7v32h1qvywnb5335ka208gn7jp6bjwabhy";
+
+  buildInputs = [bundler];
+
+  postInstall = ''
+    gem_root=$GEM_HOME/gems/${gemName}-${version}
+    sed \
+      -e 's|NIX_INSTANTIATE =.*|NIX_INSTANTIATE = "${nix}/bin/nix-instantiate"|' \
+      -i $gem_root/lib/bundix.rb
+    sed \
+      -e 's|NIX_HASH =.*|NIX_HASH = "${nix}/bin/nix-hash"|' \
+      -i $gem_root/lib/bundix.rb
+    sed \
+      -e 's|NIX_PREFETCH_URL =.*|NIX_PREFETCH_URL = "${nix}/bin/nix-prefetch-url"|' \
+      -i $gem_root/lib/bundix.rb
+    sed \
+      -e 's|NIX_PREFETCH_GIT =.*|NIX_PREFETCH_GIT = "${nix-prefetch-scripts}/bin/nix-prefetch-git"|' \
+      -i $gem_root/lib/bundix.rb
+  '';
+
+  meta = {
+    inherit version;
+    description = "Creates Nix packages from Gemfiles";
+    longDescription = ''
+      This is a tool that converts Gemfile.lock files to nix expressions.
+
+      The output is then usable by the bundlerEnv derivation to list all the
+      dependencies of a ruby package.
+    '';
+    homepage = "https://github.com/manveru/bundix";
+    license = "MIT";
+    maintainers = with lib.maintainers; [ manveru zimbatm ];
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libao/default.nix b/pkgs/development/libraries/libao/default.nix
index a8948e8ae8c..c0a6d4b6b1f 100644
--- a/pkgs/development/libraries/libao/default.nix
+++ b/pkgs/development/libraries/libao/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl, pkgconfig, libpulseaudio, alsaLib, libcap
+, CoreAudio, CoreServices, AudioUnit
 , usePulseAudio }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +13,8 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ pkgconfig ] ++
     lib.optional stdenv.isLinux (if usePulseAudio then libpulseaudio else alsaLib) ++
-    lib.optional stdenv.isLinux libcap;
+    lib.optional stdenv.isLinux libcap ++
+    lib.optionals stdenv.isDarwin [ CoreAudio CoreServices AudioUnit ];
 
   meta = {
     longDescription = ''
diff --git a/pkgs/development/libraries/libpsl/default.nix b/pkgs/development/libraries/libpsl/default.nix
index d4d24db84b9..535c5cfeb65 100644
--- a/pkgs/development/libraries/libpsl/default.nix
+++ b/pkgs/development/libraries/libpsl/default.nix
@@ -3,10 +3,10 @@
 
 let
 
-  listVersion = "2016-02-06";
+  listVersion = "2016-02-09";
   listSources = fetchFromGitHub {
-    sha256 = "0jh1fbfyi9zdhw77brfdkw7mcbr03dqww8yv703kp69fqhyf2pln";
-    rev = "0efc1a2f0ec93163273f6c5c2f511a19f5cd5805";
+    sha256 = "17jxkwdd2l6aycg2q5img8gad3pb9k6fgikf87dybl3ydn0bpdja";
+    rev = "73668f743df8125477d38690807e3a9a1e1e9f19";
     repo = "list";
     owner = "publicsuffix";
   };
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index ee8e38a7296..d3c2deb609e 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -11,11 +11,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "nss-${version}";
-  version = "3.21";
+  version = "3.22";
 
   src = fetchurl {
-    url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_21_RTM/src/${name}.tar.gz";
-    sha256 = "3f7a5b027d7cdd5c0e4ff7544da33fdc6f56c2f8c27fff02938fd4a6fbe87239";
+    url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_22_RTM/src/${name}.tar.gz";
+    sha256 = "30ebd121c77e725a1383618eff79a6752d6e9f0f21882ad825ddab12e7227611";
   };
 
   buildInputs = [ nspr perl zlib sqlite ];
diff --git a/pkgs/development/libraries/openjpeg/generic.nix b/pkgs/development/libraries/openjpeg/generic.nix
index 717e5a4de2c..1b4b4af7f41 100644
--- a/pkgs/development/libraries/openjpeg/generic.nix
+++ b/pkgs/development/libraries/openjpeg/generic.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
     description = "Open-source JPEG 2000 codec written in C language";
     homepage = http://www.openjpeg.org/;
     license = licenses.bsd2;
-    maintainer = with maintainers; [ codyopel ];
+    maintainers = with maintainers; [ codyopel ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/phonon-backend-gstreamer/qt5/default.nix b/pkgs/development/libraries/phonon-backend-gstreamer/qt5/default.nix
index 9866c0a67ce..98aa7d81b36 100644
--- a/pkgs/development/libraries/phonon-backend-gstreamer/qt5/default.nix
+++ b/pkgs/development/libraries/phonon-backend-gstreamer/qt5/default.nix
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
     homepage = http://phonon.kde.org/;
     description = "GStreamer backend for Phonon";
     platforms = platforms.linux;
-    maintainer = with maintainers; [ ttuegel ];
+    maintainers = with maintainers; [ ttuegel ];
   };
 }
diff --git a/pkgs/development/libraries/swc/default.nix b/pkgs/development/libraries/swc/default.nix
new file mode 100644
index 00000000000..48e1524e36f
--- /dev/null
+++ b/pkgs/development/libraries/swc/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, pkgconfig
+, wld, wayland, xwayland, fontconfig, pixman, libdrm, libinput, libevdev, libxkbcommon, libxcb, xcbutilwm
+}:
+
+stdenv.mkDerivation rec {
+  name = "swc-${version}";
+  version = "git-2016-02-09";
+  repo = "https://github.com/michaelforney/swc";
+  rev = "1da0ef13fddc572accea12439a4471b4d2f64ddd";
+
+  src = fetchurl {
+    url = "${repo}/archive/${rev}.tar.gz";
+    sha256 = "d1894612d8aa1ce828efb78f1570290f84bba6563e21eb777e08c3c3859b7bbe";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ wld wayland xwayland fontconfig pixman libdrm libinput libevdev libxkbcommon libxcb xcbutilwm ];
+
+  makeFlags = "PREFIX=$(out)";
+  installPhase = "PREFIX=$out make install";
+
+  meta = {
+    description = "A library for making a simple Wayland compositor";
+    homepage    = repo;
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/libraries/wcslib/default.nix b/pkgs/development/libraries/wcslib/default.nix
index 12741379aaa..b6ca281f053 100644
--- a/pkgs/development/libraries/wcslib/default.nix
+++ b/pkgs/development/libraries/wcslib/default.nix
@@ -1,14 +1,14 @@
 { fetchurl,  stdenv, flex }:
 
 stdenv.mkDerivation rec {
-  version = "5.13";
+  version = "5.14";
   name = "wcslib-${version}";
 
   buildInputs = [ flex ];
 
   src = fetchurl {
     url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${name}.tar.bz2";
-    sha256 ="1rxlp7p1b84r9fnk7m9p2ivg2cajfj88afyccrg64zlrqn5kx66n";
+    sha256 ="0zz3747m6gjzglgsqrrslwk2qkb6swsx8gmaxa459dvbcg914gsd";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/wlc/default.nix b/pkgs/development/libraries/wlc/default.nix
new file mode 100644
index 00000000000..b219bd2f44d
--- /dev/null
+++ b/pkgs/development/libraries/wlc/default.nix
@@ -0,0 +1,68 @@
+{ lib, stdenv, fetchurl, fetchgit, cmake, pkgconfig
+, glibc, wayland, pixman, libxkbcommon, libinput, libxcb, xcbutilwm, xcbutilimage, mesa, libdrm, udev, systemd, dbus_libs
+, libpthreadstubs, libX11, libXau, libXdmcp, libXext, libXdamage, libxshmfence, libXxf86vm
+}:
+
+stdenv.mkDerivation rec {
+  name = "wlc-${version}";
+  version = "git-2016-01-31";
+  repo = "https://github.com/Cloudef/wlc";
+  rev = "faa4d3cba670576c202b0844e087b13538f772c5";
+
+  chck_repo = "https://github.com/Cloudef/chck";
+  chck_rev = "fe5e2606b7242aa5d89af2ea9fd048821128d2bc";
+
+  wl_protos_repo = "git://anongit.freedesktop.org/wayland/wayland-protocols";
+  wl_protos_rev = "0b05b70f9da245582f01581be4ca36db683682b8";
+  wl_protos_rev_short = "0b05b70";
+
+  srcs = [
+   (fetchurl {
+     url = "${repo}/archive/${rev}.tar.gz";
+     sha256 = "cdf6a772dc90060d57aa1a915a4daff0f79802c141fec92ef2710245d727af67";
+   })
+   (fetchurl {
+     url = "${chck_repo}/archive/${chck_rev}.tar.gz";
+     sha256 = "ca316b544c48e837c32f08d613be42da10e0a3251e8e4488d1848b91ef92ab9e";
+   })
+   (fetchgit {
+     url = "${wl_protos_repo}";
+     rev = "${wl_protos_rev}";
+     sha256 = "9c1cfbb570142b2109ecef4d11b17f25e94ed2e0569f522ea56f244c60465224";
+   })
+  ];
+
+  sourceRoot = "wlc-${rev}";
+  postUnpack = ''
+    rm -rf wlc-${rev}/lib/chck wlc-${rev}/protos/wayland-protocols
+    ln -s ../../chck-${chck_rev} wlc-${rev}/lib/chck
+    ln -s ../../wayland-protocols-${wl_protos_rev_short} wlc-${rev}/protos/wayland-protocols
+  '';
+
+  patchPhase = ''
+    ( echo '#include <stdlib.h>';
+      echo '#include <libdrm/drm.h>';
+      cat src/platform/backend/drm.c
+    ) >src/platform/backend/drm.c-fix;
+    mv src/platform/backend/drm.c-fix src/platform/backend/drm.c;
+  '';
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [
+    wayland pixman libxkbcommon libinput libxcb xcbutilwm xcbutilimage mesa libdrm udev
+    libpthreadstubs libX11 libXau libXdmcp libXext libXdamage libxshmfence libXxf86vm
+    systemd dbus_libs
+  ];
+
+  makeFlags = "PREFIX=$(out) -lchck";
+  installPhase = "PREFIX=$out make install";
+
+  meta = {
+    description = "A library for making a simple Wayland compositor";
+    homepage    = repo;
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/libraries/wld/default.nix b/pkgs/development/libraries/wld/default.nix
new file mode 100644
index 00000000000..1dd5858ec72
--- /dev/null
+++ b/pkgs/development/libraries/wld/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, pkgconfig
+, wayland, fontconfig, pixman, freetype, libdrm
+}:
+
+stdenv.mkDerivation rec {
+  name = "wld-${version}";
+  version = "git-2015-09-01";
+  repo = "https://github.com/michaelforney/wld";
+  rev = "efe0a1ed1856a2e4a1893ed0f2d7dde43b5627f0";
+
+  src = fetchurl {
+    url = "${repo}/archive/${rev}.tar.gz";
+    sha256 = "09388f7828e18c75e7b8d41454903886a725d7a868f60e66c128bd7d2e953ee1";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ wayland fontconfig pixman freetype libdrm ];
+
+  makeFlags = "PREFIX=$(out)";
+  installPhase = "PREFIX=$out make install";
+
+  meta = {
+    description = "A primitive drawing library targeted at Wayland";
+    homepage    = repo;
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 8e517930cfc..82d0d402698 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -35,11 +35,11 @@ rec {
   };
 
   gradleLatest = gradleGen rec {
-    name = "gradle-2.10";
+    name = "gradle-2.11";
 
     src = fetchurl {
       url = "http://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "66406247f745fc6f05ab382d3f8d3e120c339f34ef54b86f6dc5f6efc18fbb13";
+      sha256 = "1mhydg6mj9y7qr2s9bkdaijkjrq7nf6rqix415izvjan4c43fx4d";
     };
   };
 
diff --git a/pkgs/development/tools/build-managers/waf/default.nix b/pkgs/development/tools/build-managers/waf/default.nix
new file mode 100644
index 00000000000..6956c97db50
--- /dev/null
+++ b/pkgs/development/tools/build-managers/waf/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, python2 }:
+
+stdenv.mkDerivation rec {
+  name = "waf-${version}";
+  version = "1.8.19";
+
+  src = fetchurl {
+    url = "https://waf.io/waf-${version}.tar.bz2";
+    sha256 = "e5df90556d1f70aca82bb5c5f46aa68d2377bae16b0db044eaa0559df8668c6f";
+  };
+
+  buildInputs = [ python2 ];
+
+  configurePhase = ''
+    python waf-light configure
+  '';
+  buildPhase = ''
+    python waf-light build
+  '';
+  installPhase = ''
+    install waf $out
+  '';
+
+  meta = {
+    description = "Meta build system";
+    homepage    = "https://waf.io/";
+    license     = lib.licenses.bsd3;
+    platforms   = lib.platforms.all;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/tools/misc/kibana/default.nix b/pkgs/development/tools/misc/kibana/default.nix
index 699ddd16c23..ce138014408 100644
--- a/pkgs/development/tools/misc/kibana/default.nix
+++ b/pkgs/development/tools/misc/kibana/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "kibana-${version}";
-  version = "4.1.2";
+  version = "4.4.1";
 
   src = fetchurl {
     url = "http://download.elastic.co/kibana/kibana-snapshot/${name}-snapshot-linux-x86.tar.gz";
-    sha256 = "00ag4wnlw6h2j6zcz0irz6j1s51fr9ix2g1smrhrdw44z5gb6wrh";
+    sha256 = "0kxvrhrkcvx7pcn7myvabhcm4nj8gi86ij4a1xi392lfds2v350z";
   };
 
   buildInputs = [ makeWrapper ];
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     rm -r $out/libexec/kibana/node
     makeWrapper $out/libexec/kibana/bin/kibana $out/bin/kibana \
       --prefix PATH : "${nodejs}/bin:${coreutils}/bin:${which}/bin"
+    sed -i 's@NODE=.*@NODE=${nodejs}/bin/node@' $out/libexec/kibana/bin/kibana
   '';
 
   meta = {
diff --git a/pkgs/development/tools/ocaml/ocaml-top/default.nix b/pkgs/development/tools/ocaml/ocaml-top/default.nix
index cf0a16cef68..79c81c5c447 100644
--- a/pkgs/development/tools/ocaml/ocaml-top/default.nix
+++ b/pkgs/development/tools/ocaml/ocaml-top/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation {
     license = stdenv.lib.licenses.gpl3;
     description = "A simple cross-platform OCaml code editor built for top-level evaluation";
     platforms = ocamlPackages.ocaml.meta.platforms;
-    maintainer = with stdenv.lib.maintainers; [ vbgl ];
+    maintainers = with stdenv.lib.maintainers; [ vbgl ];
   };
 }
diff --git a/pkgs/development/tools/sunxi-tools/default.nix b/pkgs/development/tools/sunxi-tools/default.nix
new file mode 100644
index 00000000000..f27b9500319
--- /dev/null
+++ b/pkgs/development/tools/sunxi-tools/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchgit, pkgconfig, libusb }:
+stdenv.mkDerivation {
+  name = "sunxi-tools-1.3";
+
+  src = fetchgit {
+    url = "https://github.com/linux-sunxi/sunxi-tools";
+    rev = "be1b4c7400161b90437432076360c1f99970f54f";
+    sha256 = "0qbl4v66a3mvqai29q2y60zf2b5lj32mh9gyn44gfp0w2bsb10yj";
+  };
+
+  buildInputs = [ pkgconfig libusb ];
+
+  buildPhase = ''
+    make all misc
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp bin2fex fex2bin phoenix_info sunxi-bootinfo sunxi-fel sunxi-fexc sunxi-nand-part sunxi-pio $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tools for Allwinner A10 devices";
+    homepage = http://linux-sunxi.org/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ elitak ];
+  };
+}
diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix
index d91c110c34c..bc0b97b139b 100644
--- a/pkgs/games/dwarf-fortress/default.nix
+++ b/pkgs/games/dwarf-fortress/default.nix
@@ -16,6 +16,7 @@ let
     dwarf-fortress = callPackage ./wrapper {
       themes = {
         "phoebus" = phoebus-theme;
+        "cla" = cla-theme;
       };
     };
 
@@ -28,6 +29,8 @@ let
     dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix { };
 
     phoebus-theme = callPackage ./themes/phoebus.nix { };
+
+    cla-theme = callPackage ./themes/cla.nix { };
   };
 
 in self
diff --git a/pkgs/games/dwarf-fortress/themes/cla.nix b/pkgs/games/dwarf-fortress/themes/cla.nix
new file mode 100644
index 00000000000..09b2cc8b647
--- /dev/null
+++ b/pkgs/games/dwarf-fortress/themes/cla.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+# On upgrade check https://github.com/DFgraphics/CLA/blob/master/manifest.json
+# for compatibility information.
+
+stdenv.mkDerivation {
+  name = "cla-theme-20160128";
+
+  src = fetchFromGitHub {
+    owner = "DFgraphics";
+    repo = "CLA";
+    rev = "94088b778ed6f91cbddcd3e33aa1e5efa67f3101";
+    sha256 = "0rx1375x9s791k9wzvj7sxcrv4xaggibxymzirayznvavr7zcsv1";
+  };
+
+  installPhase = ''
+    mkdir $out
+    cp -r data raw $out
+  '';
+
+  passthru.dfVersion = "0.42.05";
+
+  preferLocalBuild = true;
+
+  meta = with stdenv.lib; {
+    description = "CLA graphics set for Dwarf Fortress";
+    homepage = "http://www.bay12forums.com/smf/index.php?topic=105376.0";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abbradar ];
+    license = licenses.free;
+  };
+}
diff --git a/pkgs/games/dwarf-fortress/themes/phoebus.nix b/pkgs/games/dwarf-fortress/themes/phoebus.nix
index 2183a6245c0..ca459c6ef76 100644
--- a/pkgs/games/dwarf-fortress/themes/phoebus.nix
+++ b/pkgs/games/dwarf-fortress/themes/phoebus.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchFromGitHub }:
 
-# On upgrade check https://github.com/fricy/Phoebus/blob/master/manifest.json
+# On upgrade check https://github.com/DFgraphics/Phoebus/blob/master/manifest.json
 # for compatibility information.
 
 stdenv.mkDerivation {
-  name = "phoebus-theme-20160118";
+  name = "phoebus-theme-20160128";
 
   src = fetchFromGitHub {
-    owner = "fricy";
+    owner = "DFgraphics";
     repo = "Phoebus";
-    rev = "2c5777b0f307b1d752a8a484c6a05b67531c84a9";
-    sha256 = "0a5ixm181wz7crr3rpa2mh0drb371j5hvizqninvdnhah2mypz8v";
+    rev = "52b19b69c7323f9002ad195ecd68ac02ff0099a2";
+    sha256 = "1pw5l5v7l1bvxzjf4fivmagpmghffvz0wlws2ksc7d5vy48ybcmg";
   };
 
   installPhase = ''
diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
index c5157e82d8a..093dae562c2 100644
--- a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
+++ b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
@@ -40,3 +40,4 @@ forcecopy_path data/index
 # For some reason, it's needed to be writable...
 forcecopy_path data/announcement
 forcecopy_path data/help
+forcecopy_path data/dipscript
diff --git a/pkgs/games/gzdoom/default.nix b/pkgs/games/gzdoom/default.nix
index 66d01905aaf..3f8744d75cb 100644
--- a/pkgs/games/gzdoom/default.nix
+++ b/pkgs/games/gzdoom/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = https://github.com/coelckers/gzdoom;
     description = "A Doom source port based on ZDoom. It features an OpenGL renderer and lots of new features";
-    maintainer = [ stdenv.lib.maintainers.lassulus ];
+    maintainers = [ stdenv.lib.maintainers.lassulus ];
   };
 }
 
diff --git a/pkgs/games/zandronum/bin.nix b/pkgs/games/zandronum/bin.nix
index 92f93d8f778..ae6ab99dad2 100644
--- a/pkgs/games/zandronum/bin.nix
+++ b/pkgs/games/zandronum/bin.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://zandronum.com/;
     description = "multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software. Binary version for online play.";
-    maintainer = [ stdenv.lib.maintainers.lassulus ];
+    maintainers = [ stdenv.lib.maintainers.lassulus ];
     # Binary version has different version string than source code version.
     license = stdenv.lib.licenses.unfreeRedistributable;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/games/zandronum/default.nix b/pkgs/games/zandronum/default.nix
index ecdf8cfdbd2..479a6abe9a4 100644
--- a/pkgs/games/zandronum/default.nix
+++ b/pkgs/games/zandronum/default.nix
@@ -54,7 +54,7 @@ in stdenv.mkDerivation {
   meta = with stdenv.lib; {
     homepage = http://zandronum.com/;
     description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software.";
-    maintainer = with maintainers; [ lassulus ];
+    maintainers = with maintainers; [ lassulus ];
     platforms = platforms.linux;
     license = licenses.bsdOriginal;
   };
diff --git a/pkgs/games/zdoom/default.nix b/pkgs/games/zdoom/default.nix
index 0bc63855299..8feb78ad969 100644
--- a/pkgs/games/zdoom/default.nix
+++ b/pkgs/games/zdoom/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = http://zdoom.org/;
     description = "Enhanced port of the official DOOM source code";
-    maintainer = [ stdenv.lib.maintainers.lassulus ];
+    maintainers = [ stdenv.lib.maintainers.lassulus ];
   };
 }
 
diff --git a/pkgs/misc/emulators/mupen64plus/1.5.nix b/pkgs/misc/emulators/mupen64plus/1.5.nix
deleted file mode 100644
index 571e14347b4..00000000000
--- a/pkgs/misc/emulators/mupen64plus/1.5.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{stdenv, fetchurl, which, pkgconfig, SDL, gtk, mesa, SDL_ttf}:
-
-stdenv.mkDerivation {
-  name = "mupen64plus-1.5";
-  src = fetchurl {
-    url = http://mupen64plus.googlecode.com/files/Mupen64Plus-1-5-src.tar.gz;
-    sha256 = "0gygfgyr2sg4yx77ijk133d1ra0v1yxi4xjxrg6kp3zdjmhdmcjq";
-  };
-  
-  buildInputs = [ which pkgconfig SDL gtk mesa SDL_ttf ];
-  
-  preConfigure = ''
-    # Some C++ incompatibility fixes
-    sed -i -e 's|char \* extstr = strstr|const char * extstr = strstr|' glide64/Main.cpp
-    sed -i -e 's|char \* extstr = strstr|const char * extstr = strstr|' glide64/Combine.cpp
-
-    # Fix some hardcoded paths
-    sed -i -e "s|/usr/local|$out|g" main/main.c
-
-    # Remove PATH environment variable from install script
-    sed -i -e "s|export PATH=|#export PATH=|" ./install.sh
-  '';
-  
-  buildPhase = "make all";
-  installPhase = "PREFIX=$out make install";
-  
-  meta = {
-    description = "A Nintendo 64 Emulator";
-    license = stdenv.lib.licenses.gpl2Plus;
-    homepage = http://code.google.com/p/mupen64plus;
-    maintainers = [ stdenv.lib.maintainers.sander ];
-  };
-}
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index 49c7e71af8a..b44693502d7 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -30,15 +30,15 @@ in rec {
   };
 
   unstable = fetchurl rec {
-    version = "1.9.2";
+    version = "1.9.3";
     url = "mirror://sourceforge/wine/wine-${version}.tar.bz2";
-    sha256 = "0yjf0i2yc0yj366kg6b2ci9bwz3jq5k5vl01bqw4lbpgf5m4sk9k";
+    sha256 = "0389xbs943iwdgv3a6pvcy2gxrwqzf20vrsbpd2yrj1lan2m8ps7";
     inherit (stable) gecko32 gecko64 mono;
   };
 
   staging = fetchFromGitHub rec {
     inherit (unstable) version;
-    sha256 = "05lxhl9rv936xh8v640l36xswszwc41iwpbjq7n5cwk361mdh1lp";
+    sha256 = "0r932caxlkdw36f36f8y4h2r3anpl61fmqr9payb83fj55gsiq4d";
     owner = "wine-compholio";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/pkgs/misc/themes/vertex/default.nix b/pkgs/misc/themes/vertex/default.nix
index 60269c8dfbf..ea79426d47e 100644
--- a/pkgs/misc/themes/vertex/default.nix
+++ b/pkgs/misc/themes/vertex/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     inherit (src.meta) homepage;
     description = "Theme for GTK 3, GTK 2, Gnome-Shell, and Cinnamon";
     license = licenses.gpl3;
-    maintainer = [ maintainers.rycee ];
+    maintainers = [ maintainers.rycee ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/os-specific/linux/bluez/bluez-5.37-obexd_without_systemd-1.patch b/pkgs/os-specific/linux/bluez/bluez-5.37-obexd_without_systemd-1.patch
new file mode 100644
index 00000000000..749787c5b3a
--- /dev/null
+++ b/pkgs/os-specific/linux/bluez/bluez-5.37-obexd_without_systemd-1.patch
@@ -0,0 +1,61 @@
+Submitted By:            Armin K. <krejzi at email dot com>
+Date:                    2013-04-29
+Initial Package Version: 5.17
+Upstream Status:         unknown
+Origin:                  Arch Linux (Giovanni Campagna)
+Description:             Allow using obexd without systemd in the user session
+
+Not all sessions run systemd --user (actually, the majority
+doesn't), so the dbus daemon must be able to spawn obexd
+directly, and to do so it needs the full path of the daemon.
+---
+ Makefile.obexd                      | 4 ++--
+ obexd/src/org.bluez.obex.service    | 4 ----
+ obexd/src/org.bluez.obex.service.in | 4 ++++
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+ delete mode 100644 obexd/src/org.bluez.obex.service
+ create mode 100644 obexd/src/org.bluez.obex.service.in
+
+diff --git a/Makefile.obexd b/Makefile.obexd
+index 3760867..142e7c3 100644
+--- a/Makefile.obexd
++++ b/Makefile.obexd
+@@ -2,12 +2,12 @@
+ if SYSTEMD
+ systemduserunitdir = @SYSTEMD_USERUNITDIR@
+ systemduserunit_DATA = obexd/src/obex.service
++endif
+ 
+ dbussessionbusdir = @DBUS_SESSIONBUSDIR@
+ dbussessionbus_DATA = obexd/src/org.bluez.obex.service
+-endif
+ 
+-EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service
++EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service.in
+ 
+ obex_plugindir = $(libdir)/obex/plugins
+ 
+diff --git a/obexd/src/org.bluez.obex.service b/obexd/src/org.bluez.obex.service
+deleted file mode 100644
+index a538088..0000000
+--- a/obexd/src/org.bluez.obex.service
++++ /dev/null
+@@ -1,4 +0,0 @@
+-[D-BUS Service]
+-Name=org.bluez.obex
+-Exec=/bin/false
+-SystemdService=dbus-org.bluez.obex.service
+diff --git a/obexd/src/org.bluez.obex.service.in b/obexd/src/org.bluez.obex.service.in
+new file mode 100644
+index 0000000..9c815f2
+--- /dev/null
++++ b/obexd/src/org.bluez.obex.service.in
+@@ -0,0 +1,4 @@
++[D-BUS Service]
++Name=org.bluez.obex
++Exec=@libexecdir@/obexd
++SystemdService=dbus-org.bluez.obex.service
+-- 
+1.8.3.1
+
+
diff --git a/pkgs/os-specific/linux/bluez/bluez5.nix b/pkgs/os-specific/linux/bluez/bluez5.nix
index cc132ddc397..21925a5e1dd 100644
--- a/pkgs/os-specific/linux/bluez/bluez5.nix
+++ b/pkgs/os-specific/linux/bluez/bluez5.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
       # gstreamer gst_plugins_base 
     ];
 
+  patches = [ ./bluez-5.37-obexd_without_systemd-1.patch ];
+    
   preConfigure = ''
       substituteInPlace tools/hid2hci.rules --replace /sbin/udevadm ${systemd}/bin/udevadm
       substituteInPlace tools/hid2hci.rules --replace "hid2hci " "$out/lib/udev/hid2hci "
@@ -68,6 +70,7 @@ stdenv.mkDerivation rec {
     # for bluez4 compatibility for NixOS
     mkdir $out/sbin
     ln -s ../libexec/bluetooth/bluetoothd $out/sbin/bluetoothd
+    ln -s ../libexec/bluetooth/obexd $out/sbin/obexd
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/os-specific/linux/bluez/bluez5_28.nix b/pkgs/os-specific/linux/bluez/bluez5_28.nix
index 7f5a30144c8..80adc0fd56b 100644
--- a/pkgs/os-specific/linux/bluez/bluez5_28.nix
+++ b/pkgs/os-specific/linux/bluez/bluez5_28.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
     # for bluez4 compatibility for NixOS
     mkdir $out/sbin
     ln -s ../libexec/bluetooth/bluetoothd $out/sbin/bluetoothd
+    ln -s ../libexec/bluetooth/obexd $out/sbin/obexd
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/os-specific/linux/facetimehd/default.nix b/pkgs/os-specific/linux/facetimehd/default.nix
new file mode 100644
index 00000000000..06e6abfe417
--- /dev/null
+++ b/pkgs/os-specific/linux/facetimehd/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, kernel }:
+
+# facetimehd is not supported for kernels older than 3.19";
+assert stdenv.lib.versionAtLeast kernel.version "3.19";
+
+stdenv.mkDerivation rec {
+
+  name = "facetimehd-${version}-${kernel.version}";
+  version = "git-20160127";
+
+  src = fetchFromGitHub {
+    owner = "patjak";
+    repo = "bcwc_pcie";
+    rev = "186e9f9101ed9bbd7cc8d470f840d4a74c585ca7";
+    sha256 = "1frsf6z6v94cz9fww9rbnk926jzl36fp3w2d1aw6djhzwm80a5gs";
+  };
+
+  preConfigure = ''
+    export INSTALL_MOD_PATH="$out"
+  '';
+
+  makeFlags = [
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/patjak/bcwc_pcie;
+    description = "Linux driver for the Facetime HD (Broadcom 1570) PCIe webcam";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.womfoo ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/os-specific/linux/firmware/facetimehd-firmware/default.nix b/pkgs/os-specific/linux/firmware/facetimehd-firmware/default.nix
new file mode 100644
index 00000000000..05a293083b7
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/facetimehd-firmware/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, cpio, xz, pkgs }:
+
+let
+
+  version = "1.43";
+
+  dmgRange = "420107885-421933300"; # the whole download is 1.3GB, this cuts it down to 2MB
+
+  firmwareIn = "./System/Library/Extensions/AppleCameraInterface.kext/Contents/MacOS/AppleCameraInterface";
+  firmwareOut = "firmware.bin";
+  firmwareOffset = "81920";
+  firmwareSize = "603715";
+
+  # separated this here as the script will fail without the 'exit 0'
+  unpack = pkgs.writeScriptBin "unpack" ''
+    xzcat -Q $src | cpio --format odc -i -d ${firmwareIn}
+    exit 0
+  '';
+
+in
+
+stdenv.mkDerivation {
+
+  name = "facetimehd-firmware-${version}";
+
+  src = fetchurl {
+    url = "https://support.apple.com/downloads/DL1849/en_US/osxupd10.11.2.dmg";
+    sha256 = "1jw6sy9vj27amfak83cs2c7q856y4mk1wix3rl4q10yvd9bl4k9x";
+    curlOpts = "-r ${dmgRange}";
+  };
+
+  phases = [ "buildPhase" ];
+
+  buildInputs = [ cpio xz ];
+
+  buildPhase = ''
+    ${unpack}/bin/unpack
+    dd bs=1 skip=${firmwareOffset} count=${firmwareSize} if=${firmwareIn} of=${firmwareOut}.gz &> /dev/null
+    mkdir -p $out/lib/firmware/facetimehd
+    gunzip -c ${firmwareOut}.gz > $out/lib/firmware/facetimehd/${firmwareOut}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "facetimehd firmware";
+    homepage = https://support.apple.com/downloads/DL1849;
+    license = licenses.unfree;
+    maintainers = [ maintainers.womfoo ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/os-specific/linux/htop/default.nix b/pkgs/os-specific/linux/htop/default.nix
index da41c95dda2..b722815f295 100644
--- a/pkgs/os-specific/linux/htop/default.nix
+++ b/pkgs/os-specific/linux/htop/default.nix
@@ -1,11 +1,11 @@
 { fetchFromGitHub, stdenv, autoreconfHook, ncurses }:
 
 stdenv.mkDerivation rec {
-  name = "htop-1.0.3-239-229d0058";
+  name = "htop-2.0.0";
 
   src = fetchFromGitHub {
-    sha256 = "1bym6ligd8db4iyv2m1y7aylh7f9fmk71v67rkhird05hx1xb80r";
-    rev = "229d005851af8dca595b3df8e385375fb9c382b4";
+    sha256 = "1z8rzf3ndswk3090qypl0bqzq9f32w0ik2k5x4zd7jg4hkx66k7z";
+    rev = "2.0.0";
     repo = "htop";
     owner = "hishamhm";
   };
diff --git a/pkgs/os-specific/linux/kernel/linux-mptcp.nix b/pkgs/os-specific/linux/kernel/linux-mptcp.nix
index 2b0e3017979..6a1d8da5a92 100644
--- a/pkgs/os-specific/linux/kernel/linux-mptcp.nix
+++ b/pkgs/os-specific/linux/kernel/linux-mptcp.nix
@@ -7,7 +7,7 @@ import ./generic.nix (args // rec {
 
   extraMeta = {
     branch = "3.18";
-    maintainer = stdenv.lib.maintainers.layus;
+    maintainers = stdenv.lib.maintainers.layus;
   };
 
   src = fetchurl {
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 4128edea7c2..8dc55f6e6a8 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-rc2";
-  modDirVersion = "4.5.0-rc2";
+  version = "4.5-rc3";
+  modDirVersion = "4.5.0-rc3";
   extraMeta.branch = "4.5";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/testing/linux-${version}.tar.xz";
-    sha256 = "1nq61nimgvl7m7rrimr95ixwkc5sd473m5kvaf5qdyhfnh7m4br3";
+    sha256 = "fae5b3b318d6ca7d142b2947e8df3e4091e2330dc509ba19503abf4b9c314986";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 7e95f1dedb1..3f7afd90322 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -22,7 +22,7 @@ let
     { name = "grsecurity-${grversion}-${kversion}";
       inherit grversion kversion revision;
       patch = fetchurl {
-        url = "http://grsecurity.net/${branch}/grsecurity-${grversion}-${kversion}-${revision}.patch";
+        url = "https://github.com/slashbeast/grsecurity-scrape/blob/master/${branch}/grsecurity-${grversion}-${kversion}-${revision}.patch?raw=true";
         inherit sha256;
       };
       features.grsecurity = true;
diff --git a/pkgs/os-specific/linux/mcelog/default.nix b/pkgs/os-specific/linux/mcelog/default.nix
index 113d59d641d..c185d69c554 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 = "129";
+  version = "131";
 
   src = fetchFromGitHub {
-    sha256 = "143xh5zvgax88yhg6mg6img64nrda85yybf76fgsk7a8gc57ghyk";
+    sha256 = "1hqb06gdx5bw4jh6xix0z5qhi4956asykf43zk1m1mjsj8lkzaps";
     rev = "v${version}";
     repo = "mcelog";
     owner = "andikleen";
diff --git a/pkgs/os-specific/linux/pflask/default.nix b/pkgs/os-specific/linux/pflask/default.nix
new file mode 100644
index 00000000000..b4f93e9de3f
--- /dev/null
+++ b/pkgs/os-specific/linux/pflask/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, python, waf }:
+
+stdenv.mkDerivation rec {
+  name = "pflask-${version}";
+  version = "git-2015-12-17";
+  rev = "599418bb6453eaa0ccab493f9411f13726c1a636";
+
+  src = fetchurl {
+    url = "https://github.com/ghedo/pflask/archive/${rev}.tar.gz";
+    sha256 = "2545fca37f9da484b46b6fb5e3a9bbba6526a9725189fe4af5227ef6e6fca440";
+  };
+
+  buildInputs = [ python ];
+
+  configurePhase = ''
+    ln -s ${waf} waf
+    python waf configure --prefix=$out
+  '';
+  buildPhase = ''
+    python waf build
+  '';
+  installPhase = ''
+    python waf install
+  '';
+
+  meta = {
+    description = "Lightweight process containers for Linux";
+    homepage    = "https://ghedo.github.io/pflask/";
+    license     = lib.licenses.bsd2;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index c95e6002e84..ec5a85ef4ad 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pkgconfig, intltool, gperf, libcap, dbus, kmod
 , xz, pam, acl, cryptsetup, libuuid, m4, utillinux
-, glib, kbd, libxslt, coreutils, libgcrypt, libapparmor, audit, lz4
+, glib, kbd, libxslt, coreutils, libgcrypt, libgpgerror, libapparmor, audit, lz4
 , kexectools, libmicrohttpd, linuxHeaders, libseccomp
 , autoreconfHook, gettext, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45
 , enableKDbus ? false
@@ -8,24 +8,22 @@
 
 assert stdenv.isLinux;
 
-# FIXME: When updating, please remove makeFlags -- `hwdb_bin` flag is not supported anymore.
-
 stdenv.mkDerivation rec {
-  version = "228";
+  version = "229";
   name = "systemd-${version}";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "systemd";
-    rev = "b737c07cc0234acfa87282786025d556bca91c3f";
-    sha256 = "0wca8zkn39914c232andvf3v0ni6ylv154kz3s9fcvg47rhpd5n1";
+    rev = "4936f6e6c05162516a685ebd227b55816cf2b670";
+    sha256 = "1q0pyrljmq73qcan9rfqsiw66l1g159m5in5qgb8zwlwhl928670";
   };
 
   outputs = [ "out" "man" "doc" ];
 
   buildInputs =
     [ linuxHeaders pkgconfig intltool gperf libcap kmod xz pam acl
-      /* cryptsetup */ libuuid m4 glib libxslt libgcrypt
+      /* cryptsetup */ libuuid m4 glib libxslt libgcrypt libgpgerror
       libmicrohttpd kexectools libseccomp audit lz4 libapparmor
       /* FIXME: we may be able to prevent the following dependencies
          by generating an autoconf'd tarball, but that's probably not
@@ -66,7 +64,7 @@ stdenv.mkDerivation rec {
       "--with-sysvinit-path="
       "--with-sysvrcnd-path="
       "--with-rc-local-script-path-stop=/etc/halt.local"
-    ] ++ stdenv.lib.optional enableKDbus "--enable-kdbus";
+    ] ++ (if enableKDbus then [ "--enable-kdbus" ] else [ "--disable-kdbus" ]);
 
   preConfigure =
     ''
@@ -109,13 +107,6 @@ stdenv.mkDerivation rec {
       "-USYSTEMD_BINARY_PATH" "-DSYSTEMD_BINARY_PATH=\"/run/current-system/systemd/lib/systemd/systemd\""
     ];
 
-  # Use /var/lib/udev rather than /etc/udev for the generated hardware
-  # database.  Upstream doesn't want this (see commit
-  # 1e1954f53386cb773e2a152748dd31c4d36aa2d8) because using /var is
-  # forbidden in early boot, but in NixOS the initrd guarantees that
-  # /var is mounted.
-  makeFlags = "hwdb_bin=/var/lib/udev/hwdb.bin";
-
   installFlags =
     [ "localstatedir=$(TMPDIR)/var"
       "sysconfdir=$(out)/etc"
diff --git a/pkgs/servers/mail/dspam/default.nix b/pkgs/servers/mail/dspam/default.nix
index 2b594995951..99f8d45b4c1 100644
--- a/pkgs/servers/mail/dspam/default.nix
+++ b/pkgs/servers/mail/dspam/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, makeWrapper
-, gawk, gnused, gnugrep, coreutils
+, gawk, gnused, gnugrep, coreutils, which
 , perl, NetSMTP
 , withMySQL ? false, zlib, libmysql
 , withPgSQL ? false, postgresql
@@ -15,7 +15,7 @@ let
              ++ lib.optional withSQLite "sqlite3_drv"
              ++ lib.optional withDB "libdb4_drv"
             );
-  maintenancePath = lib.makeSearchPath "bin" [ gawk gnused gnugrep coreutils ];
+  maintenancePath = lib.makeSearchPath "bin" [ gawk gnused gnugrep coreutils which ];
 
 in stdenv.mkDerivation rec {
   name = "dspam-3.10.2";
@@ -83,7 +83,7 @@ in stdenv.mkDerivation rec {
     # Install maintenance script
     install -Dm755 contrib/dspam_maintenance/dspam_maintenance.sh $out/bin/dspam_maintenance
     sed -i \
-      -e '2iexport PATH=${maintenancePath}:$PATH' \
+      -e "2iexport PATH=$out/bin:${maintenancePath}:\$PATH" \
       -e 's,/usr/[a-z0-9/]*,,g' \
       -e 's,^DSPAM_CONFIGDIR=.*,DSPAM_CONFIGDIR=/etc/dspam,' \
       -e "s,^DSPAM_HOMEDIR=.*,DSPAM_HOMEDIR=/var/lib/dspam," \
@@ -93,6 +93,7 @@ in stdenv.mkDerivation rec {
       -e "s,^PGSQL_BIN_DIR=.*,PGSQL_BIN_DIR=/run/current-system/sw/bin," \
       -e "s,^SQLITE_BIN_DIR=.*,SQLITE_BIN_DIR=/run/current-system/sw/bin," \
       -e "s,^SQLITE3_BIN_DIR=.*,SQLITE3_BIN_DIR=/run/current-system/sw/bin," \
+      -e 's,^DSPAM_CRON_LOCKFILE=.*,DSPAM_CRON_LOCKFILE=/run/dspam/dspam_maintenance.pid,' \
       $out/bin/dspam_maintenance
   '';
 
diff --git a/pkgs/servers/mail/opensmtpd/default.nix b/pkgs/servers/mail/opensmtpd/default.nix
index cb098a84a94..1d92a5edc44 100644
--- a/pkgs/servers/mail/opensmtpd/default.nix
+++ b/pkgs/servers/mail/opensmtpd/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
     "--with-queue-user=smtpq"
     "--with-ca-file=/etc/ssl/certs/ca-certificates.crt"
     "--with-libevent-dir=${libevent}"
+    "--enable-table-db"
   ];
 
   installFlags = [
diff --git a/pkgs/servers/mail/postfix/pfixtools.nix b/pkgs/servers/mail/postfix/pfixtools.nix
new file mode 100644
index 00000000000..f45dd3b7248
--- /dev/null
+++ b/pkgs/servers/mail/postfix/pfixtools.nix
@@ -0,0 +1,48 @@
+{ stdenv, lib, fetchFromGitHub, git, gperf, pcre, unbound, libev, tokyocabinet, pkgconfig, bash, libsrs2 }:
+
+let
+  version = "0.9";
+
+  pfixtoolsSrc = fetchFromGitHub {
+    owner = "Fruneau";
+    repo = "pfixtools";
+    rev = "pfixtools-${version}";
+    sha256 = "1vmbrw686f41n6xfjphfshn96vl07ynvnsyjdw9yfn9bfnldcjcq";
+  };
+
+  srcRoot = "pfixtools-${pfixtoolsSrc.rev}-src";
+
+  libCommonSrc = fetchFromGitHub {
+    owner = "Fruneau";
+    repo = "libcommon";
+    rev = "b07e6bdea3d24748e0d39783d7d817096d10cc67";
+    sha256 = "14fxldp29j4vmfmhfgwwi37pj8cz0flm1aykkxlbgakz92d4pm35";
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "pfixtools-${version}";
+
+  src = pfixtoolsSrc;
+
+  buildInputs = [git gperf pcre unbound libev tokyocabinet pkgconfig bash libsrs2];
+
+  postUnpack = ''
+    cp -Rp ${libCommonSrc}/* ${srcRoot}/common;
+    chmod -R +w ${srcRoot}/common;
+  '';
+
+  postPatch = ''
+    substituteInPlace postlicyd/policy_tokens.sh \
+                      --replace /bin/bash ${bash}/bin/bash;
+  '';
+
+  makeFlags = "DESTDIR=$(out) prefix=";
+
+  meta = {
+    description = "a collection of postfix-related tools";
+    license = with lib.licenses; [ bsd3 ];
+    homepage = https://github.com/Fruneau/pfixtools;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/servers/mail/rmilter/default.nix b/pkgs/servers/mail/rmilter/default.nix
index 45c62546628..ad40b57f8a6 100644
--- a/pkgs/servers/mail/rmilter/default.nix
+++ b/pkgs/servers/mail/rmilter/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/vstakhov/rmilter";
     license = licenses.bsd2; 
     description = "server, used to integrate rspamd and milter compatible MTA, for example postfix or sendmail";
-    maintainer = maintainers.avnik;
+    maintainers = maintainers.avnik;
   };
 }
diff --git a/pkgs/servers/mail/rspamd/default.nix b/pkgs/servers/mail/rspamd/default.nix
index a3b20820a6e..1f9c36b7377 100644
--- a/pkgs/servers/mail/rspamd/default.nix
+++ b/pkgs/servers/mail/rspamd/default.nix
@@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/vstakhov/rspamd";
     license = licenses.bsd2; 
     description = "advanced spam filtering system";
-    maintainer = maintainers.avnik;
+    maintainers = maintainers.avnik;
   };
 }
diff --git a/pkgs/servers/nosql/cassandra/2.1.nix b/pkgs/servers/nosql/cassandra/2.1.nix
index cac8eb3fba8..d0f70a554f7 100644
--- a/pkgs/servers/nosql/cassandra/2.1.nix
+++ b/pkgs/servers/nosql/cassandra/2.1.nix
@@ -11,8 +11,8 @@
 
 let
 
-  version = "2.1.12";
-  sha256 = "0ngibzw7lx2nppzsq5hn6adbkyzns6bnhsrkllqpimyjf27sjfq1";
+  version = "2.1.13";
+  sha256 = "09b3vf5jsv70xlfimj30v8l1zw7c5xdgpw5fpmn6jh8n3gigybqh";
 
 in
 
diff --git a/pkgs/servers/search/elasticsearch/2.x.nix b/pkgs/servers/search/elasticsearch/2.x.nix
new file mode 100644
index 00000000000..a37703ae7fd
--- /dev/null
+++ b/pkgs/servers/search/elasticsearch/2.x.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, makeWrapper, jre, utillinux, getopt }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  version = "2.2.0";
+  name = "elasticsearch-${version}";
+
+  src = fetchurl {
+    url = "https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/${version}/${name}.tar.gz";
+    sha256 = "0c2d0mpcr8lpvifvgp2pfj7avdi7fa8a5vib0gqdap7mw60wqw7d";
+  };
+
+  patches = [ ./es-home-2.x.patch ];
+
+  buildInputs = [ makeWrapper jre ] ++
+    (if (!stdenv.isDarwin) then [utillinux] else [getopt]);
+
+  installPhase = ''
+    mkdir -p $out
+    cp -R bin config lib $out
+
+    # don't want to have binary with name plugin
+    mv $out/bin/plugin $out/bin/elasticsearch-plugin
+       wrapProgram $out/bin/elasticsearch ${if (!stdenv.isDarwin)
+        then ''--prefix PATH : "${utillinux}/bin/"''
+        else ''--prefix PATH : "${getopt}/bin"''} \
+      --set JAVA_HOME "${jre}"
+    wrapProgram $out/bin/elasticsearch-plugin --set JAVA_HOME "${jre}"
+  '';
+
+  meta = {
+    description = "Open Source, Distributed, RESTful Search Engine";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = [
+      maintainers.offline
+      maintainers.markWot
+    ];
+  };
+}
diff --git a/pkgs/servers/search/elasticsearch/es-home-2.x.patch b/pkgs/servers/search/elasticsearch/es-home-2.x.patch
new file mode 100644
index 00000000000..0c80e865114
--- /dev/null
+++ b/pkgs/servers/search/elasticsearch/es-home-2.x.patch
@@ -0,0 +1,31 @@
+diff -rupN a/bin/elasticsearch b/bin/elasticsearch
+--- a/bin/elasticsearch	2015-11-18 21:48:18.000000000 +0100
++++ b/bin/elasticsearch	2015-12-04 00:52:21.032475098 +0100
+@@ -72,7 +72,11 @@ while [ -h "$SCRIPT" ] ; do
+ done
+ 
+ # determine elasticsearch home
+-ES_HOME=`dirname "$SCRIPT"`/..
++
++if [ -z "$ES_HOME" ]; then
++    echo "You must set the ES_HOME var" >&2
++    exit 1
++fi
+ 
+ # make ELASTICSEARCH_HOME absolute
+ ES_HOME=`cd "$ES_HOME"; pwd`
+diff -rupN a/bin/plugin b/bin/plugin
+--- a/bin/plugin	2015-11-18 21:48:18.000000000 +0100
++++ b/bin/plugin	2015-12-04 00:52:55.947453619 +0100
+@@ -17,7 +17,10 @@ while [ -h "$SCRIPT" ] ; do
+ done
+ 
+ # determine elasticsearch home
+-ES_HOME=`dirname "$SCRIPT"`/..
++if [ -z "$ES_HOME" ]; then
++    echo "You must set the ES_HOME var" >&2
++    exit 1
++fi
+ 
+ # make ELASTICSEARCH_HOME absolute
+ ES_HOME=`cd "$ES_HOME"; pwd`
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index 9a5b07e9f89..bba2bf2d682 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -58,40 +58,34 @@ let
 
 in {
 
-  postgresql90 = common {
-    version = "9.0.23";
-    psqlSchema = "9.0";
-    sha256 = "1pnpni95r0ry112z6ycrqk5m6iw0vd4npg789czrl4qlr0cvxg1x";
-  };
-
   postgresql91 = common {
-    version = "9.1.19";
+    version = "9.1.20";
     psqlSchema = "9.1";
-    sha256 = "1ihf9h353agsm5p2dr717dvraxvsw6j7chbn3qxdcz8la5s0bmfb";
+    sha256 = "0dr9hz1a0ax30f6jvnv2rck0zzxgk9x7nh4n1xgshrf26i1nq7kd";
   };
 
   postgresql92 = common {
-    version = "9.2.14";
+    version = "9.2.15";
     psqlSchema = "9.2";
-    sha256 = "0bi9zfsfhj84mnaa41ar63j9qgzsnac1wwgjhy2c6j0a68zhphjl";
+    sha256 = "0q1yahkfys78crf59avp02ibd0lp3z7h626xchyfi6cqb03livbw";
   };
 
   postgresql93 = common {
-    version = "9.3.10";
+    version = "9.3.11";
     psqlSchema = "9.3";
-    sha256 = "0c8mailildnqnndwpmnqf8ymxmk1qf5w5dq02hjqmydgfq7lyi75";
+    sha256 = "08ba951nfiy516flaw352shj1zslxg4ryx3w5k0adls1r682l8ix";
   };
 
   postgresql94 = common {
-    version = "9.4.5";
+    version = "9.4.6";
     psqlSchema = "9.4";
-    sha256 = "0faav7k3nlhh1z7j1r3adrhx1fpsji3jixmm2abjm93fdg350z5q";
+    sha256 = "19j0845i195ksg9pvnk3yc2fr62i7ii2bqgbidfjq556056izknb";
   };
 
   postgresql95 = common {
-    version = "9.5.0";
+    version = "9.5.1";
     psqlSchema = "9.5";
-    sha256 = "f1c0d3a1a8aa8c92738cab0153fbfffcc4d4158b3fee84f7aa6bfea8283978bc";
+    sha256 = "1ljvijaja5zy4i5b1450drbj8m3fcm3ly1zzaakp75x30s2rsc3b";
   };
 
 
diff --git a/pkgs/servers/xmpp/ejabberd/default.nix b/pkgs/servers/xmpp/ejabberd/default.nix
index 2fb6f7a4b2d..f1fa6bed00c 100644
--- a/pkgs/servers/xmpp/ejabberd/default.nix
+++ b/pkgs/servers/xmpp/ejabberd/default.nix
@@ -17,154 +17,162 @@ let
   ctlpath = lib.makeSearchPath "bin" [ bash gnused gnugrep coreutils utillinux procps ];
 
   fakegit = writeScriptBin "git" ''
-    #! ${stdenv.shell}
-    exit 0
+    #! ${stdenv.shell} -e
+    if [ "$1" = "describe" ]; then
+      [ -r .rev ] && cat .rev || true
+    fi
   '';
 
-  # These can be extracted from `rebar.config.script`
+  # These can be extracted from `rebar.config`
   # Some dependencies are from another packages. Try commenting them out; then during build
   # you'll get necessary revision information.
   ejdeps = {
-    p1_cache_tab = fetchFromGitHub {
+    cache_tab = fetchFromGitHub {
       owner = "processone";
       repo = "cache_tab";
-      rev = "f7ea12b0ba962a3d2f9a406d2954cf7de4e27230";
-      sha256 = "043rz66s6vhcbk02qjhn1r8jv8yyy4gk0gsknmk7ya6wq2v1farw";
+      rev = "1.0.1";
+      sha256 = "1mq5vgqskb0v2pdn6i3610hzd9iyjznh8143pdbz8z57rrhxpxg4";
     };
     p1_tls = fetchFromGitHub {
       owner = "processone";
       repo = "tls";
-      rev = "e56321afd974e9da33da913cd31beebc8e73e75f";
-      sha256 = "0k8dx8mww2ilr4y5m2llhqh673l0z7r73f0lh7klyf57wfqy7hzk";
+      rev = "1.0.0";
+      sha256 = "1q6l5drgmwj4fp4nfh0075lczplia4n40sirk9pd5x76d59qcmnj";
     };
     p1_stringprep = fetchFromGitHub {
       owner = "processone";
       repo = "stringprep";
-      rev = "3c640237a3a7831dc39de6a6d329d3a9af25c579";
-      sha256 = "0mwlkivkfj16bdv80jr8kqa0vcqglxkq90m9qn0m6zp4bjc3jm3n";
+      rev = "1.0.0";
+      sha256 = "105xc0af61xrd4vjxrg49gxbij8x0fq4yribywa8qly303d1nwwa";
     };
     p1_xml = fetchFromGitHub {
       owner = "processone";
       repo = "xml";
-      rev = "1c8b016b0ac7986efb823baf1682a43565449e65";
-      sha256 = "192jhj0cwwypbiass3rm2449410pqyk3mgrdg7yyvqwmjzzkmh87";
+      rev = "1.1.1";
+      sha256 = "07zxc8ky78sd2mcbhhrxha68arbbk8vyayn9gwi402avnqcic7cx";
     };
     esip = fetchFromGitHub {
       owner = "processone";
       repo = "p1_sip";
-      rev = "d662d3fe7f6288b444ea321d854de0bd6d40e022";
-      sha256 = "1mwzkkv01vr9n13h6h3100jrrlgb683ncq9jymnbxqxk6rn7xjd1";
+      rev = "1.0.0";
+      sha256 = "02k920995b0js6srarx0rabavs428rl0dp7zz90x74l8b589zq9a";
     };
     p1_stun = fetchFromGitHub {
       owner = "processone";
       repo = "stun";
-      rev = "061bdae484268cbf0457ad4797e74b8516df3ad1";
-      sha256 = "0zaw8yq4sk7x4ybibcq93k9b6rb7fn03i0k8gb2dnlipmbcdd8cf";
+      rev = "0.9.0";
+      sha256 = "0ghf2p6z1m55f5pm4pv5gj7h7fdcwcsyqz1wzax4w8bgs9id06dm";
     };
     p1_yaml = fetchFromGitHub {
       owner = "processone";
       repo = "p1_yaml";
-      rev = "79f756ba73a235c4d3836ec07b5f7f2b55f49638";
-      sha256 = "05jjw02ay8v34izwgi5zizqp1mj68ypjilxn59c262xj7c169pzh";
+      rev = "1.0.0";
+      sha256 = "0is0vr8ygh3fbiyf0jb85cfpfakxmx31fqk6s4j90gmfhlbm16f8";
     };
     p1_utils = fetchFromGitHub {
       owner = "processone";
       repo = "p1_utils";
-      rev = "d7800881e6702723ce58b7646b60c9e4cd25d563";
-      sha256 = "07p47ccrdjymjmn6rn9jlcyg515bs9l0iwfbc75qsk10ddnmbvdi";
+      rev = "1.0.2";
+      sha256 = "11b71bnc90riy1qplkpwx6l1yr9849jai3ckri35cavfsk35j687";
     };
     jiffy = fetchFromGitHub {
       owner = "davisp";
       repo = "jiffy";
-      rev = "cfc61a2e952dc3182e0f9b1473467563699992e2";
-      sha256 = "1c2x71x90jlx4585znxz8fg46q3jxm80nk7v184lf4pqa1snk8kk";
+      rev = "0.14.5";
+      sha256 = "1xs01cl4gq1x6sjj7d1qgg4iq9iwzv3cjqjrj0kr7rqrbfqx2nq3";
     };
     oauth2 = fetchFromGitHub {
-      owner = "prefiks";
+      owner = "kivra";
       repo = "oauth2";
-      rev = "e6da9912e5d8f658e7e868f41a102d085bdbef59";
-      sha256 = "0di33bkj8xc7h17z1fs4birp8a88c1ds72jc4xz2qmz8kh7q9m3k";
+      rev = "8d129fbf8866930b4ffa6dd84e65bd2b32b9acb8";
+      sha256 = "0mbmw6668l945iqppba991793nmmkyvvf18zxgdahxcwgxg1majn";
     };
     xmlrpc = fetchFromGitHub {
       owner = "rds13";
       repo = "xmlrpc";
-      rev = "42e6e96a0fe7106830274feed915125feb1056f3";
-      sha256 = "10dk480s6z653lr5sap4rcx3zsfmg68hgapvc4jvcyf7vgg12d3s";
+      rev = "1.15";
+      sha256 = "0ihwag2hgw9rswxygallc4w1yipgpd6arw3xpr799ib7ybsn8x81";
     };
 
     p1_mysql = fetchFromGitHub {
       owner = "processone";
       repo = "mysql";
-      rev = "dfa87da95f8fdb92e270741c2a53f796b682f918";
-      sha256 = "1nw7n1xvid4yqp57s94drdjf6ffap8zpy8hkrz9yffzkhk9biz5y";
+      rev = "1.0.0";
+      sha256 = "1v3g75hhfpv5bnrar23y7lsk3pd02xl5cy4mj13j0qxl6bc4dgss";
     };
     p1_pgsql = fetchFromGitHub {
       owner = "processone";
       repo = "pgsql";
-      rev = "e72c03c60bfcb56bbb5d259342021d9cb3581dac";
-      sha256 = "0y89995h7g8bi12qi1m4cdzcswsljbv7y8zb43rjg5ss2bcq7kb6";
+      rev = "1.0.0";
+      sha256 = "1r7dkjzxhwplmhvgvdx990xn98gpslckah5jpkx8c2gm9nj3xi33";
     };
     sqlite3 = fetchFromGitHub {
       owner = "alexeyr";
       repo = "erlang-sqlite3";
-      rev = "8350dc603804c503f99c92bfd2eab1dd6885758e";
-      sha256 = "0d0pbqmi3hsvzjp4vjp7a6bq3pjvkfv0spszh6485x9cmxsbwfpc";
+      rev = "cbc3505f7a131254265d3ef56191b2581b8cc172";
+      sha256 = "1xrvygv0zhslsqf8044m5ml1zr6di7znvv2zycg3amsz190w0w2g";
     };
     p1_pam = fetchFromGitHub {
       owner = "processone";
       repo = "epam";
-      rev = "d3ce290b7da75d780a03e86e7a8198a80e9826a6";
-      sha256 = "0s0czrgjvc1nw7j66x8b9rlajcap0yfnv6zqd4gs76ky6096qpb0";
+      rev = "1.0.0";
+      sha256 = "0dlbmfwndhyg855vnhwyccxcjqzf2wcgc7522mjb9q38cva50rpr";
     };
     p1_zlib = fetchFromGitHub {
       owner = "processone";
       repo = "zlib";
-      rev = "e3d4222b7aae616d7ef2e7e2fa0bbf451516c602";
-      sha256 = "0z960nwva8x4lw1k91i53kpn2bjbf1v1amslkyp8sx2gc5zf0gbn";
+      rev = "1.0.0";
+      sha256 = "1a6m7wz6cbb8526fwhmgm7mva62absmvyjm8cjnq7cs0mzp18r0m";
+    };
+    hamcrest = fetchFromGitHub {
+      owner = "hyperthunk";
+      repo = "hamcrest-erlang";
+      rev = "908a24fda4a46776a5135db60ca071e3d783f9f6";
+      sha256 = "0irxidwrb37m0xwls6q9nn2zfs3pyxrgbnjgrhnh7gm35ib51hkj";
     };
     riakc = fetchFromGitHub {
       owner = "basho";
       repo = "riak-erlang-client";
-      rev = "1.4.2";
-      sha256 = "128jz83n1990m9c2fzwsif6hyapmq46720nzfyyb4z2j75vn85zz";
+      rev = "527722d12d0433b837cdb92a60900c2cb5df8942";
+      sha256 = "13rkwibsjsl2gdysvf11r1hqfrf89hjgpa0x0hz2910f2ryqll3y";
     };
     # dependency of riakc
     riak_pb = fetchFromGitHub {
       owner = "basho";
       repo = "riak_pb";
-      rev = "1.4.4.0";
-      sha256 = "054fg9gaxk4n0id0qs6k8i919qvxsvmh76m6fgfbmixyfxh5jp3w";
+      rev = "2.1.0.7";
+      sha256 = "1p0qmjq069f7j1m29dv36ayvz8m0pcm94ccsnv5blykfg2c5ja0c";
     };
     # dependency of riak_pb
     protobuffs = fetchFromGitHub {
       owner = "basho";
       repo = "erlang_protobuffs";
-      rev = "0.8.1p1";
-      sha256 = "1x75a26y1gx6pzr829i4sx2mxm5w40kb6hfd5y511him56jcczna";
+      rev = "0.8.2";
+      sha256 = "0w4jmsnc9x2ykqh1q6b12pl8a9973dxdhqk3y0ph17n83q5xz3h7";
     };
     rebar_elixir_plugin = fetchFromGitHub {
-      owner = "yrashk";
+      owner = "processone";
       repo = "rebar_elixir_plugin";
-      rev = "7058379b7c7e017555647f6b9cecfd87cd50f884";
-      sha256 = "1s5bvbrhal866gbp72lgp0jzphs2cmgmafmka0pylwj30im41c71";
+      rev = "0.1.0";
+      sha256 = "0x04ff53mxwd9va8nl4m70dbamp6p4dpxs646c168iqpnpadk3sk";
     };
     elixir = fetchFromGitHub {
       owner = "elixir-lang";
       repo = "elixir";
-      rev = "1d9548fd285d243721b7eba71912bde2ffd1f6c3";
-      sha256 = "1lxn9ly73rm797p6slfx7grsq32nn6bz15qhkbra834rj01fqzh8";
+      rev = "v1.1.0";
+      sha256 = "0r5673x2qdvfbwmvyvj8ddvzgxnkl3cv9jsf1yzsxgdifjbrzwx7";
     };
     p1_iconv = fetchFromGitHub {
       owner = "processone";
       repo = "eiconv";
-      rev = "8b7542b1aaf0a851f335e464956956985af6d9a2";
-      sha256 = "1w3k41fpynqylc2vnirz0fymlidpz0nnym0070f1f1s3pd6g5906";
+      rev = "0.9.0";
+      sha256 = "1ikccpj3aq6mip6slrq8c7w3kilpb82dr1jdy8kwajmiy9cmsq97";
     };
     lager = fetchFromGitHub {
       owner = "basho";
       repo = "lager";
-      rev = "4d2ec8c701e1fa2d386f92f2b83b23faf8608ac3";
-      sha256 = "03aav3cid0qpl1n8dn83hk0p70rw05nqvhq1abdh219nrlk9gfmx";
+      rev = "3.0.2";
+      sha256 = "04l40dlqpl2y6ddpbpknmnjf537bjvrmg8r0jnmw1h60dgyb2ydk";
     };
     # dependency of lager
     goldrush = fetchFromGitHub {
@@ -176,31 +184,31 @@ let
     p1_logger = fetchFromGitHub {
       owner = "processone";
       repo = "p1_logger";
-      rev = "3e19507fd5606a73694917158767ecb3f5704e3f";
-      sha256 = "0mq86gh8x3bgqcpwdjkdn7m3bj2006gbarnj7cn5dfs21m2h2mdn";
+      rev = "1.0.0";
+      sha256 = "0z11xsr139a75w09syjws4sja6ky2l9rsrwkjr6wcl7p1jz02h4r";
     };
     meck = fetchFromGitHub {
       owner = "eproxus";
       repo = "meck";
-      rev = "fc362e037f424250130bca32d6bf701f2f49dc75";
-      sha256 = "056yca394f8mbg8vwxxlq47dbjx48ykdrg4lvnbi5gfijl786i3s";
+      rev = "0.8.2";
+      sha256 = "0s4qbvryap46cz63awpbv5zzmlcay5pn2lixgmgvcjarqv70cbs7";
     };
     eredis = fetchFromGitHub {
       owner = "wooga";
       repo = "eredis";
-      rev = "770f828918db710d0c0958c6df63e90a4d341ed7";
-      sha256 = "0qv8hldn5972328pa1qz2lbblw1p2283js5y98dc8papldkicvmm";
+      rev = "v1.0.8";
+      sha256 = "10fr3kbc2nd2liggsq4y77nfirndzapcxzkjgyp06bpr9cjlvhlm";
     };
 
   };
 
 in stdenv.mkDerivation rec {
-  version = "15.11";
+  version = "16.01";
   name = "ejabberd-${version}";
 
   src = fetchurl {
     url = "http://www.process-one.net/downloads/ejabberd/${version}/${name}.tgz";
-    sha256 = "0sll1si9pd4v7yibzr8hp18hfrbxsa5nj9h7qsldvy7r4md4n101";
+    sha256 = "10fnsw52gxybw731yka63ma8mj39g4i0nsancwp9nlvhb2flgk72";
   };
 
   nativeBuildInputs = [ fakegit ];
@@ -216,13 +224,13 @@ in stdenv.mkDerivation rec {
   LANG = "en_US.UTF-8";
 
   depsNames =
-    [ "p1_cache_tab" "p1_tls" "p1_stringprep" "p1_xml" "esip" "p1_stun" "p1_yaml" "p1_utils" "jiffy" "oauth2" "xmlrpc" ]
+    [ "cache_tab" "p1_tls" "p1_stringprep" "p1_xml" "esip" "p1_stun" "p1_yaml" "p1_utils" "jiffy" "oauth2" "xmlrpc" ]
     ++ lib.optional withMysql "p1_mysql"
     ++ lib.optional withPgsql "p1_pgsql"
     ++ lib.optional withSqlite "sqlite3"
     ++ lib.optional withPam "p1_pam"
     ++ lib.optional withZlib "p1_zlib"
-    ++ lib.optionals withRiak [ "riakc" "riak_pb" "protobuffs" ]
+    ++ lib.optionals withRiak [ "hamcrest" "riakc" "riak_pb" "protobuffs" ]
     ++ lib.optionals withElixir [ "rebar_elixir_plugin" "elixir" ]
     ++ lib.optional withIconv "p1_iconv"
     ++ lib.optionals withLager [ "lager" "goldrush" ]
@@ -232,8 +240,7 @@ in stdenv.mkDerivation rec {
   ;
 
   configureFlags =
-    [ "--enable-nif"
-      (lib.enableFeature withMysql "mysql")
+    [ (lib.enableFeature withMysql "mysql")
       (lib.enableFeature withPgsql "pgsql")
       (lib.enableFeature withSqlite "sqlite")
       (lib.enableFeature withPam "pam")
@@ -247,6 +254,7 @@ in stdenv.mkDerivation rec {
     ] ++ lib.optional withSqlite "--with-sqlite3=${sqlite}";
 
   depsPaths = map (x: builtins.getAttr x ejdeps) depsNames;
+  depsRevs = map (x: x.rev) depsPaths;
 
   enableParallelBuilding = true;
 
@@ -254,12 +262,19 @@ in stdenv.mkDerivation rec {
     mkdir deps
     depsPathsA=( $depsPaths )
     depsNamesA=( $depsNames )
+    depsRevsA=( $depsRevs )
     for i in {0..${toString (builtins.length depsNames - 1)}}; do
-      cp -R ''${depsPathsA[$i]} deps/''${depsNamesA[$i]}
+      path="deps/''${depsNamesA[$i]}"
+      cp -R ''${depsPathsA[$i]} "$path"
+      chmod -R +w "$path"
+      echo "''${depsRevsA[$i]}" > "$path/.rev"
     done
-    chmod -R +w deps
     touch deps/.got
     patchShebangs .
+
+    for i in deps/*; do
+      [ -x "$i/configure" ] && ( cd "$i"; ./configure ) || true
+    done
   '';
 
   postInstall = ''
diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix
index 631073da4d4..45c42947c5a 100644
--- a/pkgs/servers/xmpp/prosody/default.nix
+++ b/pkgs/servers/xmpp/prosody/default.nix
@@ -19,12 +19,12 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "0.9.8";
+  version = "0.9.10";
   name = "prosody-${version}";
 
   src = fetchurl {
     url = "http://prosody.im/downloads/source/${name}.tar.gz";
-    sha256 = "0wbq4ps69l09fjb5dfjzab6i30hzpi4bvyj5kc44gf70arf42w4l";
+    sha256 = "0bv6s5c0iizz015hh1lxlwlw1iwvisywajm2rcrbdfyrskzfwdj8";
   };
 
   communityModules = fetchhg {
diff --git a/pkgs/tools/X11/screen-message/default.nix b/pkgs/tools/X11/screen-message/default.nix
index 977a82230a5..87487442ada 100644
--- a/pkgs/tools/X11/screen-message/default.nix
+++ b/pkgs/tools/X11/screen-message/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, fetchdarcs, autoreconfHook, pkgconfig, gtk3 }:
+{ stdenv, fetchgit, autoreconfHook, pkgconfig, gtk3 }:
 
 stdenv.mkDerivation {
   name = "screen-message-0.23";
 
-  src = fetchdarcs {
-    url = "http://darcs.nomeata.de/screen-message.debian";
-    rev = "0.23-1";
+  srcs = fetchgit {
+    url = "git://git.nomeata.de/darcs-mirror-screen-message.debian.git";
+    rev = "refs/tags/0_23-1";
+    sha256 = "fddddd28703676b2908af71cca7225e6c7bdb15b2fdfd67679cac129028a431c";
   };
 
   buildInputs = [ autoreconfHook pkgconfig gtk3 ];
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index c1945ca5de0..91407331d7c 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -1,17 +1,18 @@
 { stdenv, fetchFromGitHub, writeScript, glibcLocales
 , buildPythonPackage, pythonPackages, python, imagemagick
 
-, enableAcoustid   ? true
-, enableBadfiles   ? true, flac ? null, mp3val ? null
-, enableDiscogs    ? true
-, enableEchonest   ? true
-, enableEmbyupdate ? true
-, enableFetchart   ? true
-, enableLastfm     ? true
-, enableMpd        ? true
-, enableReplaygain ? true, bs1770gain ? null
-, enableThumbnails ? true
-, enableWeb        ? true
+, enableAcousticbrainz ? true
+, enableAcoustid       ? true
+, enableBadfiles       ? true, flac ? null, mp3val ? null
+, enableDiscogs        ? true
+, enableEchonest       ? true
+, enableEmbyupdate     ? true
+, enableFetchart       ? true
+, enableLastfm         ? true
+, enableMpd            ? true
+, enableReplaygain     ? true, bs1770gain ? null
+, enableThumbnails     ? true
+, enableWeb            ? true
 
 # External plugins
 , enableAlternatives ? false
@@ -34,6 +35,7 @@ with stdenv.lib;
 
 let
   optionalPlugins = {
+    acousticbrainz = enableAcousticbrainz;
     badfiles = enableBadfiles;
     chroma = enableAcoustid;
     discogs = enableDiscogs;
@@ -68,14 +70,14 @@ let
 
 in buildPythonPackage rec {
   name = "beets-${version}";
-  version = "1.3.16";
+  version = "1.3.17";
   namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "sampsyo";
     repo = "beets";
     rev = "v${version}";
-    sha256 = "1grjcgr419yq756wwxjpzyfjdf8n51bg6i0agm465lb7l3jgqy6k";
+    sha256 = "1fskxx5xxjqf4xmfjrinh7idjiq6qncb24hiyccv09l47fr1yipc";
   };
 
   propagatedBuildInputs = [
@@ -91,7 +93,9 @@ in buildPythonPackage rec {
     python.modules.readline
   ] ++ optional enableAcoustid     pythonPackages.pyacoustid
     ++ optional (enableFetchart
-              || enableEmbyupdate) pythonPackages.requests2
+              || enableEmbyupdate
+              || enableAcousticbrainz)
+                                   pythonPackages.requests2
     ++ optional enableDiscogs      pythonPackages.discogs_client
     ++ optional enableEchonest     pythonPackages.pyechonest
     ++ optional enableLastfm       pythonPackages.pylast
@@ -117,7 +121,7 @@ in buildPythonPackage rec {
 
   postPatch = ''
     sed -i -e '/assertIn.*item.*path/d' test/test_info.py
-    echo echo completion tests passed > test/test_completion.sh
+    echo echo completion tests passed > test/rsrc/test_completion.sh
 
     sed -i -e '/^BASH_COMPLETION_PATHS *=/,/^])$/ {
       /^])$/i u"${completion}"
diff --git a/pkgs/tools/misc/cpulimit/default.nix b/pkgs/tools/misc/cpulimit/default.nix
index 72656d2969d..1bae4b16bd8 100644
--- a/pkgs/tools/misc/cpulimit/default.nix
+++ b/pkgs/tools/misc/cpulimit/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     description = "A tool to throttle the CPU usage of programs";
     platforms = with platforms; linux ++ freebsd;
     license = licenses.gpl2;
-    maintainer = [maintainers.rycee];
+    maintainers = [maintainers.rycee];
   };
 }
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index 1c8a2e495b6..78835afddef 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -34,7 +34,7 @@ python2Packages.buildPythonPackage rec {
   meta = with stdenv.lib; {
     homepage = https://github.com/andreafrancia/trash-cli;
     description = "Command line tool for the desktop trash can";
-    maintainer = [ maintainers.rycee ];
+    maintainers = [ maintainers.rycee ];
     license = licenses.gpl2;
   };
 }
diff --git a/pkgs/tools/networking/cmst/default.nix b/pkgs/tools/networking/cmst/default.nix
index 1b5767653fe..24010e20f37 100644
--- a/pkgs/tools/networking/cmst/default.nix
+++ b/pkgs/tools/networking/cmst/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchgit, qtbase, makeWrapper, libX11 }:
+{ stdenv, fetchFromGitHub, qtbase, makeWrapper, libX11 }:
 
 stdenv.mkDerivation rec {
-  name = "cmst-2014.12.05";
-  rev = "refs/tags/${name}";
-  src = fetchgit {
-    url = "git://github.com/andrew-bibb/cmst.git";
-    inherit rev;
-    sha256 = "070rxv3kyn41ra7nnk1wbqvy6fjg38h7hrdv4dn71b201kmzd194";
+  name = "cmst-2016.01.28";
+
+  src = fetchFromGitHub {
+    sha256 = "1zf4jnrnbi05mrq1fnsji5zx60h1knrkr64pwcz2c7q8p59k4646";
+    rev    = name;
+    repo   = "cmst";
+    owner  = "andrew-bibb";
   };
 
   buildInputs = [ qtbase makeWrapper ];
@@ -27,7 +28,6 @@ stdenv.mkDerivation rec {
     substituteInPlace ./apps/rootapp/rootapp.pro \
       --replace "/etc" "$out/etc" \
       --replace "/usr/share" "$out/share"
-
   '';
 
   buildPhase = ''
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index ff41beaeb05..2d490b917a4 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -4,13 +4,13 @@ stdenv.mkDerivation rec {
 
   name = pname + "-" + version;
   pname = "i2pd";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "0gb6bdsyb7m0jkilln9h7z2l8gr8ia10jah17ygc15jzycygijis";
+    sha256 = "1nkf3dplvyg2lgygd3jd4bqh5s4nm6ppyks3a05a1dcbwm8ws42y";
   };
 
   buildInputs = [ boost zlib openssl ];
diff --git a/pkgs/tools/networking/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index e88ae7a1403..7334ecc3e92 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -3,11 +3,11 @@
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "miniupnpd-1.9.20160113";
+  name = "miniupnpd-1.9.20160209";
 
   src = fetchurl {
     url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
-    sha256 = "084ii5vb54rr8sg50cqvsw5rj6linj23p3gnxwfyl100dkkgvcaa";
+    sha256 = "0r4giqsr39s17mn9lmmy3zawrfj7kj9im7nzv7mx3rgz2ncw092z";
     name = "${name}.tar.gz";
   };
 
diff --git a/pkgs/tools/networking/nethogs/default.nix b/pkgs/tools/networking/nethogs/default.nix
index c8ff0c7a160..dfa9b26a38e 100644
--- a/pkgs/tools/networking/nethogs/default.nix
+++ b/pkgs/tools/networking/nethogs/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     homepage = http://nethogs.sourceforge.net/;
     platforms = platforms.linux;
-    maintainer = [ maintainers.rycee ];
+    maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index d615ac10646..3b303bab3b7 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -86,25 +86,25 @@ let
 
 in rec {
 
-   nix = nixStable;
-
-   nixStable = common rec {
-     name = "nix-1.11.1";
-     src = fetchurl {
-       url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
-       sha256 = "21a99b3d0afdbe10241aaf506738fd0a81ff868e3d7c666e3cb6b621a926ea7a";
-     };
-   };
-
-   nixUnstable = nixStable;
-   /*
-   nixUnstable = lib.lowPrio (common rec {
-     name = "nix-1.11pre4379_786046c";
-     src = fetchurl {
-       url = "http://hydra.nixos.org/build/30375557/download/4/${name}.tar.xz";
-       sha256 = "ff42c70697fce7ca6eade622a31e5fbe45aed0edf1204fb491b40df207a807d5";
-     };
-   });
-   */
+  nix = nixStable;
+
+  nixStable = common rec {
+    name = "nix-1.11.2";
+    src = fetchurl {
+      url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
+      sha256 = "fc1233814ebb385a2a991c1fb88c97b344267281e173fea7d9acd3f9caf969d6";
+    };
+  };
+
+  nixUnstable = nixStable;
+  /*
+  nixUnstable = lib.lowPrio (common rec {
+    name = "nix-1.11pre4379_786046c";
+    src = fetchurl {
+      url = "http://hydra.nixos.org/build/30375557/download/4/${name}.tar.xz";
+      sha256 = "ff42c70697fce7ca6eade622a31e5fbe45aed0edf1204fb491b40df207a807d5";
+    };
+  });
+  */
 
 }
diff --git a/pkgs/tools/text/colordiff/default.nix b/pkgs/tools/text/colordiff/default.nix
index 53e683561fb..b22a1da2264 100644
--- a/pkgs/tools/text/colordiff/default.nix
+++ b/pkgs/tools/text/colordiff/default.nix
@@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.colordiff.org/;
     license = licenses.gpl3;
     platforms = platforms.linux ++ platforms.darwin;
-    maintainer = with maintainers; [ nckx ];
+    maintainers = with maintainers; [ nckx ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 40e92629064..d91d975689f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1437,6 +1437,7 @@ let
   evemu = callPackage ../tools/system/evemu { };
 
   elasticsearch = callPackage ../servers/search/elasticsearch { };
+  elasticsearch2 = callPackage ../servers/search/elasticsearch/2.x.nix { };
 
   elasticsearchPlugins = recurseIntoAttrs (
     callPackage ../servers/search/elasticsearch/plugins.nix { }
@@ -2155,7 +2156,7 @@ let
 
   nodePackages_5_x = callPackage ./node-packages.nix { self = nodePackages_5_x; nodejs = nodejs-5_x; };
 
-  nodePackages_4_x = recurseIntoAttrs (callPackage ./node-packages.nix { self = nodePackages_4_x; nodejs = nodejs-4_x; });
+  nodePackages_4_x = callPackage ./node-packages.nix { self = nodePackages_4_x; nodejs = nodejs-4_x; };
 
   nodePackages_0_10 = callPackage ./node-packages.nix { self = nodePackages_0_10; nodejs = nodejs-0_10; };
 
@@ -3165,6 +3166,10 @@ let
 
   solvespace = callPackage ../applications/graphics/solvespace { };
 
+  sonata = callPackage ../applications/audio/sonata {
+    inherit (python3Packages) buildPythonPackage python isPy3k dbus pygobject3 mpd2;
+  };
+
   sparsehash = callPackage ../development/libraries/sparsehash { };
 
   spiped = callPackage ../tools/networking/spiped { };
@@ -3207,6 +3212,8 @@ let
 
   sundtek = callPackage ../misc/drivers/sundtek { };
 
+  sunxi-tools = callPackage ../development/tools/sunxi-tools { };
+
   super = callPackage ../tools/security/super { };
 
   supertux-editor = callPackage ../applications/editors/supertux-editor { };
@@ -3318,6 +3325,8 @@ let
 
   tiled = qt5.callPackage ../applications/editors/tiled { };
 
+  timemachine = callPackage ../applications/audio/timemachine { };
+
   tinc = callPackage ../tools/networking/tinc { };
 
   tinc_pre = callPackage ../tools/networking/tinc/pre.nix { };
@@ -3639,6 +3648,8 @@ let
 
   volumeicon = callPackage ../tools/audio/volumeicon { };
 
+  waf = callPackage ../development/tools/build-managers/waf { };
+
   wakelan = callPackage ../tools/networking/wakelan { };
 
   wavemon = callPackage ../tools/networking/wavemon { };
@@ -5307,7 +5318,6 @@ let
   });
 
   inherit (callPackages ../development/interpreters/php { })
-    php54
     php55
     php56
     php70;
@@ -7072,6 +7082,7 @@ let
 
   libao = callPackage ../development/libraries/libao {
     usePulseAudio = config.pulseaudio or true;
+    inherit (darwin.apple_sdk.frameworks) CoreAudio CoreServices AudioUnit;
   };
 
   libabw = callPackage ../development/libraries/libabw { };
@@ -8042,6 +8053,8 @@ let
     nix = pkgs.nixUnstable;
   };
 
+  nntp-proxy = callPackage ../applications/networking/nntp-proxy { };
+
   non = callPackage ../applications/audio/non { };
 
   nspr = callPackage ../development/libraries/nspr { };
@@ -9034,23 +9047,23 @@ let
 
   ### DEVELOPMENT / GO MODULES
 
-  go14Packages = recurseIntoAttrs (callPackage ./go-packages.nix {
+  go14Packages = callPackage ./go-packages.nix {
     go = go_1_4;
     buildGoPackage = callPackage ../development/go-modules/generic {
       go = go_1_4;
       govers = go14Packages.govers.bin;
     };
     overrides = (config.goPackageOverrides or (p: {})) pkgs;
-  });
+  };
 
-  go15Packages = recurseIntoAttrs (callPackage ./go-packages.nix {
+  go15Packages = callPackage ./go-packages.nix {
     go = go_1_5;
     buildGoPackage = callPackage ../development/go-modules/generic {
       go = go_1_5;
       govers = go15Packages.govers.bin;
     };
     overrides = (config.goPackageOverrides or (p: {})) pkgs;
-  });
+  };
 
   goPackages = go15Packages;
 
@@ -9124,20 +9137,20 @@ let
     self = python33Packages;
   };
 
-  python34Packages = recurseIntoAttrs (callPackage ./python-packages.nix {
+  python34Packages = callPackage ./python-packages.nix {
     python = python34;
     self = python34Packages;
-  });
+  };
 
   python35Packages = recurseIntoAttrs (callPackage ./python-packages.nix {
     python = python35;
     self = python35Packages;
   });
 
-  pypyPackages = recurseIntoAttrs (callPackage ./python-packages.nix {
+  pypyPackages = callPackage ./python-packages.nix {
     python = pypy;
     self = pypyPackages;
-  });
+  };
 
   bsddb3 = pythonPackages.bsddb3;
 
@@ -9492,6 +9505,8 @@ let
 
   rspamd = callPackage ../servers/mail/rspamd { };
 
+  pfixtools = callPackage ../servers/mail/postfix/pfixtools.nix { };
+
   pshs = callPackage ../servers/http/pshs { };
 
   libpulseaudio = callPackage ../servers/pulseaudio { libOnly = true; };
@@ -9591,10 +9606,9 @@ let
     libmemcached = null; # Detection is broken upstream
   };
 
-  postgresql = postgresql94;
+  postgresql = postgresql95;
 
   inherit (callPackages ../servers/sql/postgresql { })
-    postgresql90
     postgresql91
     postgresql92
     postgresql93
@@ -9995,6 +10009,8 @@ let
 
   eject = utillinux;
 
+  facetimehd-firmware = callPackage ../os-specific/linux/firmware/facetimehd-firmware { };
+
   fanctl = callPackage ../os-specific/linux/fanctl {
     iproute = iproute.override { enableFan = true; };
   };
@@ -10318,6 +10334,8 @@ let
 
     openafsClient = callPackage ../servers/openafs-client { };
 
+    facetimehd = callPackage ../os-specific/linux/facetimehd { };
+
     kernelHeaders = callPackage ../os-specific/linux/kernel-headers { };
 
     klibc = callPackage ../os-specific/linux/klibc { };
@@ -11579,6 +11597,8 @@ let
 
   dmenu = callPackage ../applications/misc/dmenu { };
 
+  dmenu-wayland = callPackage ../applications/misc/dmenu/wayland.nix { };
+
   dmenu2 = callPackage ../applications/misc/dmenu2 { };
 
   dmtx = dmtx-utils;
@@ -11831,7 +11851,7 @@ let
     cask = callPackage ../applications/editors/emacs-modes/cask { };
   };
 
-  emacs24Packages = recurseIntoAttrs (emacsPackagesGen emacs24 pkgs.emacs24Packages);
+  emacs24Packages = emacsPackagesGen emacs24 pkgs.emacs24Packages;
 
   emacsPackagesNgGen = emacs: import ./emacs-packages.nix {
     overrides = (config.emacsPackageOverrides or (p: {})) pkgs;
@@ -12219,6 +12239,8 @@ let
     inherit (gnome) GConf;
   };
 
+  gollum = callPackage ../applications/misc/gollum { };
+
   google-chrome = callPackage ../applications/networking/browsers/google-chrome { gconf = gnome.GConf; };
 
   googleearth = callPackage_i686 ../applications/misc/googleearth { };
@@ -12299,6 +12321,14 @@ let
 
   spectrwm = callPackage ../applications/window-managers/spectrwm { };
 
+  wlc = callPackage ../development/libraries/wlc { };
+  orbment = callPackage ../applications/window-managers/orbment { };
+  sway = callPackage ../applications/window-managers/sway { };
+
+  swc = callPackage ../development/libraries/swc { };
+  wld = callPackage ../development/libraries/wld { };
+  velox = callPackage ../applications/window-managers/velox { };
+
   i3 = callPackage ../applications/window-managers/i3 {
     xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
   };
@@ -12980,6 +13010,8 @@ let
     inherit (gst_all_1) gstreamer gst-plugins-base;
   };
 
+  pflask = callPackage ../os-specific/linux/pflask {};
+
   photoqt = qt5.callPackage ../applications/graphics/photoqt { };
 
   phototonic = qt5.callPackage ../applications/graphics/phototonic { };
@@ -13295,6 +13327,10 @@ let
     conf = config.st.conf or null;
   };
 
+  st-wayland = callPackage ../applications/misc/st/wayland.nix {
+    conf = config.st.conf or null;
+  };
+
   stag = callPackage ../applications/misc/stag {
     curses = ncurses;
   };
@@ -14053,6 +14089,8 @@ let
 
   inherit (gnome3) yelp;
 
+  inherit (pythonPackages) youtube-dl;
+
   qgis = callPackage ../applications/gis/qgis {};
 
   qtbitcointrader = callPackage ../applications/misc/qtbitcointrader {
@@ -14074,7 +14112,7 @@ let
   zathuraCollection = recurseIntoAttrs
     (callPackage ../applications/misc/zathura {
         callPackage = newScope pkgs.zathuraCollection;
-        useMupdf = config.zathura.useMupdf or false;
+        useMupdf = config.zathura.useMupdf or true;
       });
 
   zathura = zathuraCollection.zathuraWrapper;
@@ -15173,8 +15211,8 @@ let
 
   };
 
-  coqPackages = recurseIntoAttrs (mkCoqPackages_8_4 coqPackages);
-  coqPackages_8_5 = recurseIntoAttrs (mkCoqPackages_8_5 coqPackages_8_5);
+  coqPackages = mkCoqPackages_8_4 coqPackages;
+  coqPackages_8_5 = mkCoqPackages_8_5 coqPackages_8_5;
 
   cvc3 = callPackage ../applications/science/logic/cvc3 {
     gmp = lib.overrideDerivation gmp (a: { dontDisableStatic = true; });
@@ -15573,8 +15611,6 @@ let
 
   mupen64plus = callPackage ../misc/emulators/mupen64plus { };
 
-  mupen64plus1_5 = callPackage ../misc/emulators/mupen64plus/1.5.nix { };
-
   inherit (callPackages ../tools/package-management/nix {
       storeDir = config.nix.storeDir or "/nix/store";
       stateDir = config.nix.stateDir or "/nix/var";
@@ -15996,6 +16032,8 @@ aliases = with self; rec {
   midoriWrapper = midori; # added 2015-01
   mlt-qt5 = qt5.mlt;  # added 2015-12-19
   multipath_tools = multipath-tools;  # added 2016-01-21
+  mupen64plus1_5 = mupen64plus; # added 2016-02-12
+  ncat = nmap;  # added 2016-01-26
   nfsUtils = nfs-utils;  # added 2014-12-06
   phonon_qt5 = qt5.phonon;  # added 2015-12-19
   phonon_qt5_backend_gstreamer = qt5.phonon-backend-gstreamer;  # added 2015-12-19
@@ -16020,7 +16058,6 @@ aliases = with self; rec {
   x11 = xlibsWrapper; # added 2015-09
   xf86_video_nouveau = xorg.xf86videonouveau; # added 2015-09
   xlibs = xorg; # added 2015-09
-  youtube-dl = pythonPackages.youtube-dl; # added 2015-06-07
   youtubeDL = youtube-dl;  # added 2014-10-26
   vimbWrapper = vimb; # added 2015-01
   vimprobable2Wrapper = vimprobable2; # added 2015-01
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index b9343e54a2e..5694d65a016 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -554,28 +554,35 @@ in modules // {
 
 
   alot = buildPythonPackage rec {
-    rev = "0.3.6";
-    name = "alot-0.3.6";
+    rev = "0.3.7";
+    name = "alot-${rev}";
 
-    src = pkgs.fetchurl {
-      url = "https://github.com/pazz/alot/tarball/${rev}";
-      name = "${name}.tar.bz";
-      sha256 = "1rzy70w4isvypa94310xw403vq5him21q8rlx4laa0z530phkrmq";
+    src = pkgs.fetchFromGitHub {
+      owner = "pazz";
+      repo = "alot";
+      inherit rev;
+      sha256 = "0sscmmf42gsrjbisi6wm01alzlnq6wqhpwkm8pc557075jfg19il";
     };
 
-    # error: invalid command 'test'
-    doCheck = false;
+    postPatch = ''
+      substituteInPlace alot/defaults/alot.rc.spec \
+        --replace "themes_dir = string(default=None)" \
+                  "themes_dir = string(default='$out/share/themes')"
+    '';
 
     propagatedBuildInputs =
       [ self.notmuch
         self.urwid
+        self.urwidtrees
         self.twisted
-        self.magic
+        self.python_magic
         self.configobj
         self.pygpgme
       ];
 
     postInstall = ''
+      mkdir -p $out/share
+      cp -r extra/themes $out/share
       wrapProgram $out/bin/alot \
         --prefix LD_LIBRARY_PATH : ${pkgs.notmuch}/lib:${pkgs.file}/lib:${pkgs.gpgme}/lib
     '';
@@ -583,7 +590,7 @@ in modules // {
     meta = {
       homepage = https://github.com/pazz/alot;
       description = "Terminal MUA using notmuch mail";
-      maintainers = with maintainers; [ garbas ];
+      maintainers = with maintainers; [ garbas profpatsch ];
     };
   };
 
@@ -1808,7 +1815,7 @@ in modules // {
       description = "Composable style cycles";
       homepage = http://github.com/matplotlib/cycler;
       license = licenses.bsd3;
-      maintainer = with maintainers; [ fridh ];
+      maintainers = with maintainers; [ fridh ];
     };
   };
 
@@ -2051,6 +2058,7 @@ in modules // {
       cytoolz
       datashape
       flask
+      flask-cors
       h5py
       multipledispatch
       numba
@@ -6620,13 +6628,13 @@ in modules // {
     };
   };
 
-  plotly = buildPythonPackage rec {
-    name = "plotly-1.9.1";
+  plotly = self.buildPythonPackage rec {
+    name = "plotly-1.9.5";
     disabled = isPy3k;
 
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/plotly/${name}.tar.gz";
-      md5 = "84fe80b294b639357f12fa210ce09f95";
+      md5 = "56fb77dff80325413c8cf40cf229ce90";
     };
 
     propagatedBuildInputs = with self; [ self.pytz self.six self.requests ];
@@ -8605,6 +8613,25 @@ in modules // {
     };
   };
 
+  flask-cors = buildPythonPackage rec {
+    name = "Flask-Cors-${version}";
+    version = "2.1.2";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/F/Flask-Cors/${name}.tar.gz";
+      sha256 = "0fd618a4f88ykqx4x55viz47cm9rl214q1b45a0b4mz5vhxffqpj";
+    };
+
+    buildInputs = with self; [ nose ];
+    propagatedBuildInputs = with self; [ flask six ];
+
+    meta = {
+      description = "A Flask extension adding a decorator for CORS support";
+      homepage = https://github.com/corydolphin/flask-cors;
+      license = with licenses; [ mit ];
+    };
+  };
+
   flask-pymongo = buildPythonPackage rec {
     name = "Flask-PyMongo-${version}";
     version = "0.3.1";
@@ -10637,7 +10664,7 @@ in modules // {
       description = "Line-by-line profiler";
       homepage = https://github.com/rkern/line_profiler;
       license = licenses.bsd3;
-      maintainer = with maintainers; [ fridh ];
+      maintainers = with maintainers; [ fridh ];
     };
   };
 
@@ -11484,6 +11511,31 @@ in modules // {
     };
   };
 
+  mpd2 = buildPythonPackage rec {
+    name = "mpd2-${version}";
+    version = "0.5.5";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/p/python-mpd2/python-mpd2-${version}.tar.bz2";
+      sha256 = "1gfrxf71xll1w6zb69znqg5c9j0g7036fsalkvqprh2id640cl3a";
+    };
+
+    propagatedBuildInputs = [ pkgs.mpd_clientlib ];
+
+    buildInputs = with self; [ mock ];
+    patchPhase = ''
+      sed -i -e '/tests_require/d' \
+          -e 's/cmdclass.*/test_suite="mpd_test",/' setup.py
+    '';
+
+    meta = {
+      description = "A Python client module for the Music Player Daemon";
+      homepage = "https://github.com/Mic92/python-mpd2";
+      license = licenses.lgpl3Plus;
+      maintainers = with maintainers; [ rvl ];
+    };
+  };
+
   mpv = buildPythonPackage rec {
     name = "mpv-0.1";
 
@@ -12562,7 +12614,7 @@ in modules // {
     meta = {
       description = "Numerical traits for Python objects";
       license = licenses.bsd2;
-      maintainer = with maintainers; [ fridh ];
+      maintainers = with maintainers; [ fridh ];
       homepage = https://github.com/astrofrog/numtraits;
     };
   };
@@ -14229,7 +14281,8 @@ in modules // {
     checkPhase = let
       testsToSkip = ["test_data" "test_excel" "test_html" "test_json"
                      "test_frequencies" "test_frame"
-                     "test_read_clipboard_infer_excel"] ++
+                     "test_read_clipboard_infer_excel"
+                     "test_interp_alt_scipy" "test_nanops" "test_stats"] ++
                     optional isPy35 "test_sql";
     in ''
       runHook preCheck
@@ -14877,7 +14930,7 @@ in modules // {
       description = "An audio library based on libsndfile, CFFI and NumPy";
       license = licenses.bsd3;
       homepage = https://github.com/bastibe/PySoundFile;
-      maintainer = with maintainers; [ fridh ];
+      maintainers = with maintainers; [ fridh ];
     };
 
     prePatch = ''
@@ -15966,7 +16019,7 @@ in modules // {
       description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
       homepage = http://hgomersall.github.com/pyFFTW/;
       license = with licenses; [ bsd2 bsd3 ];
-      maintainer = with maintainers; [ fridh ];
+      maintainers = with maintainers; [ fridh ];
     };
   };
 
@@ -17699,7 +17752,7 @@ in modules // {
       description = "A docutils-compatibility bridge to CommonMark";
       homepage = https://github.com/rtfd/recommonmark;
       license = licenses.mit;
-      maintainer = with maintainers; [ fridh ];
+      maintainers = with maintainers; [ fridh ];
     };
 
   };
@@ -18528,6 +18581,13 @@ in modules // {
 
     LC_ALL="en_US.UTF-8";
 
+    # Exclude "test_image.py" because the Lena function/image was removed from SciPy since 0.17
+    # Should be fixed in next release.
+    # Using the -I switch broke nosetests...?
+    patchPhase = ''
+      rm sklearn/feature_extraction/tests/test_image.py
+    '';
+
     checkPhase = ''
       HOME=$TMPDIR OMP_NUM_THREADS=1 nosetests $out/${python.sitePackages}/sklearn/
     '';
@@ -19759,7 +19819,7 @@ in modules // {
       description = "Statistical computations and models for use with SciPy";
       homepage = "https://www.github.com/statsmodels/statsmodels";
       license = licenses.bsd3;
-      maintainer = with maintainers; [ fridh ];
+      maintainers = with maintainers; [ fridh ];
     };
 
     # Many tests fail when using latest numpy and pandas.
@@ -20037,7 +20097,7 @@ in modules // {
       description = "Pretty-print tabular data";
       homepage = https://bitbucket.org/astanin/python-tabulate;
       license = licenses.mit;
-      maintainer = with maintainers; [ fridh ];
+      maintainers = with maintainers; [ fridh ];
     };
 
   };
@@ -21032,6 +21092,26 @@ in modules // {
     };
   });
 
+  urwidtrees = buildPythonPackage rec {
+    name = "urwidtrees-${rev}";
+    rev = "1.0";
+
+    src = pkgs.fetchFromGitHub {
+      owner = "pazz";
+      repo = "urwidtrees";
+      inherit rev;
+      sha256 = "03gpcdi45z2idy1fd9zv8v9naivmpfx65hshm8r984k9wklv1dsa";
+    };
+
+    propagatedBuildInputs = with self; [ urwid ];
+
+    meta = {
+      description = "Tree widgets for urwid";
+      license = licenses.gpl3;
+      maintainers = with maintainers; [ profpatsch ];
+    };
+  };
+
   pyuv = buildPythonPackage rec {
     name = "pyuv-0.11.5";
     disabled = isPyPy;  # see https://github.com/saghul/pyuv/issues/49
@@ -21980,15 +22060,18 @@ in modules // {
 
   zope_exceptions = buildPythonPackage rec {
      name = "zope.exceptions-${version}";
-     version = "4.0.5";
+     version = "4.0.8";
 
      src = pkgs.fetchurl {
        url = "http://pypi.python.org/packages/source/z/zope.exceptions/${name}.tar.gz";
-       md5 = "c95569fcb444ae541777de7ae5297492";
+       sha256 = "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl";
      };
 
      propagatedBuildInputs = with self; [ zope_interface ];
 
+     # circular deps
+     doCheck = false;
+
      meta = {
        description = "Exception interfaces and implementations";
        homepage = http://pypi.python.org/pypi/zope.exceptions;
@@ -22084,15 +22167,18 @@ in modules // {
 
 
   zope_proxy = buildPythonPackage rec {
-    name = "zope.proxy-4.1.4";
+    name = "zope.proxy-4.1.6";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.proxy/${name}.tar.gz";
-      md5 = "3bcaf8b8512a99649ecf2f158c11d05b";
+      sha256 = "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4";
     };
 
     propagatedBuildInputs = with self; [ zope_interface ];
 
+    # circular deps
+    doCheck = false;
+
     meta = {
         maintainers = with maintainers; [ goibhniu ];
     };
@@ -22221,18 +22307,12 @@ in modules // {
 
     propagatedBuildInputs = with self; [ zope_interface zope_exceptions zope_testing six ] ++ optional (!python.is_py3k or false) subunit;
 
-    # https://github.com/zopefoundation/zope.testrunner/issues/35
-    doCheck = !(isPy27 || isPy34);
-
     meta = {
       description = "A flexible test runner with layer support";
       homepage = http://pypi.python.org/pypi/zope.testrunner;
       license = licenses.zpt20;
       maintainers = with maintainers; [ goibhniu ];
     };
-
-    # Python 3.5 is not yet supported.
-    disabled = isPy35;
   };
 
 
@@ -22256,11 +22336,11 @@ in modules // {
 
 
   zope_interface = buildPythonPackage rec {
-    name = "zope.interface-4.1.1";
+    name = "zope.interface-4.1.3";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.interface/${name}.tar.gz";
-      md5 = "edcd5f719c5eb2e18894c4d06e29b6c6";
+      sha256 = "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if";
     };
 
     propagatedBuildInputs = with self; [ zope_event ];
@@ -24964,7 +25044,7 @@ in modules // {
       # license can actually be either bsd3 or gpl3
       # see https://github.com/trezor/cython-hidapi/blob/master/LICENSE-orig.txt
       license = licenses.bsd3;
-      maintainer = with maintainers; [ np ];
+      maintainers = with maintainers; [ np ];
     };
   };
 
@@ -24983,7 +25063,7 @@ in modules // {
       description = "Implementation of Bitcoin BIP-0039";
       homepage = https://github.com/trezor/python-mnemonic;
       license = licenses.mit;
-      maintainer = with maintainers; [ np ];
+      maintainers = with maintainers; [ np ];
     };
   };
 
@@ -25007,7 +25087,7 @@ in modules // {
       description = "Python library for communicating with TREZOR Bitcoin Hardware Wallet";
       homepage = https://github.com/trezor/python-trezor;
       license = licenses.gpl3;
-      maintainer = with maintainers; [ np ];
+      maintainers = with maintainers; [ np ];
     };
   };
 
@@ -25031,7 +25111,7 @@ in modules // {
       description = "KeepKey Python client";
       homepage = https://github.com/keepkey/python-keepkey;
       license = licenses.gpl3;
-      maintainer = with maintainers; [ np ];
+      maintainers = with maintainers; [ np ];
     };
   };
 
@@ -25084,7 +25164,7 @@ in modules // {
       description = "Using Trezor as hardware SSH agent";
       homepage = https://github.com/romanz/trezor-agent;
       license = licenses.gpl3;
-      maintainer = with maintainers; [ np ];
+      maintainers = with maintainers; [ np ];
     };
   };
 
@@ -25101,7 +25181,7 @@ in modules // {
       description = "Binding for X11 proof of work hashing";
       homepage = https://github.com/mazaclub/x11_hash;
       license = licenses.mit;
-      maintainer = with maintainers; [ np ];
+      maintainers = with maintainers; [ np ];
     };
   };
 
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index a555dcbf4fa..6c510ea029f 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -233,7 +233,7 @@ let
       zsh = linux;
       zsnes = ["i686-linux"];
 
-      emacs24PackagesNg = packagePlatforms pkgs.emacs24PackagesNg;
+      #emacs24PackagesNg = packagePlatforms pkgs.emacs24PackagesNg;
 
       gnome = {
         gnome_panel = linux;
@@ -244,7 +244,7 @@ let
       haskell.compiler = packagePlatforms pkgs.haskell.compiler;
       haskellPackages = packagePlatforms pkgs.haskellPackages;
 
-      rPackages = packagePlatforms pkgs.rPackages;
+      #rPackages = packagePlatforms pkgs.rPackages;
 
       strategoPackages = {
         sdf = linux;
@@ -254,9 +254,15 @@ let
         dryad = linux;
       };
 
-      pythonPackages = {
-        zfec = linux;
-      };
+      ocamlPackages = { };
+
+      perlPackages = { };
+
+      pythonPackages = { };
+      python2Packages = { };
+      python27Packages = { };
+      python3Packages = { };
+      python35Packages = { };
 
       xorg = {
         fontadobe100dpi = linux ++ darwin;