summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix10
-rw-r--r--nixos/doc/manual/release-notes/rl-1903.xml7
-rw-r--r--nixos/modules/misc/ids.nix2
-rw-r--r--nixos/modules/security/wrappers/default.nix29
-rw-r--r--nixos/modules/services/mail/dovecot.nix6
-rw-r--r--nixos/modules/services/monitoring/grafana.nix115
-rw-r--r--nixos/modules/services/monitoring/munin.nix12
-rw-r--r--nixos/modules/services/security/munge.nix2
-rw-r--r--nixos/modules/services/security/tor.nix5
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix10
-rw-r--r--nixos/modules/services/web-servers/tomcat.nix31
-rw-r--r--nixos/modules/system/boot/loader/raspberrypi/builder_uboot.sh29
-rw-r--r--nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix10
-rw-r--r--nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh (renamed from nixos/modules/system/boot/loader/raspberrypi/builder.sh)74
-rw-r--r--nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix24
-rw-r--r--nixos/modules/system/boot/loader/raspberrypi/uboot-builder.nix (renamed from nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix)13
-rw-r--r--nixos/modules/system/boot/loader/raspberrypi/uboot-builder.sh38
-rw-r--r--nixos/modules/system/boot/systemd-nspawn.nix3
-rw-r--r--pkgs/applications/audio/axoloti/default.nix6
-rw-r--r--pkgs/applications/audio/fluidsynth/default.nix4
-rwxr-xr-xpkgs/applications/audio/spotify/update.sh75
-rw-r--r--pkgs/applications/audio/whipper/default.nix4
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix4
-rw-r--r--pkgs/applications/kde/marble.nix3
-rw-r--r--pkgs/applications/misc/lxterminal/default.nix4
-rw-r--r--pkgs/applications/misc/xmr-stak/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix108
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix79
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix98
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix17
-rw-r--r--pkgs/applications/networking/mumble/default.nix21
-rw-r--r--pkgs/applications/networking/p2p/zeronet/default.nix4
-rw-r--r--pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch35
-rw-r--r--pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch71
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-crypt/default.nix9
-rw-r--r--pkgs/applications/video/clipgrab/default.nix4
-rw-r--r--pkgs/desktops/deepin/dde-session-ui/default.nix60
-rw-r--r--pkgs/desktops/deepin/default.nix1
-rw-r--r--pkgs/desktops/gnome-3/core/dconf-editor/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix24
-rw-r--r--pkgs/development/compilers/julia/shared.nix1
-rw-r--r--pkgs/development/compilers/sbcl/default.nix18
-rw-r--r--pkgs/development/libraries/capnproto/default.nix4
-rw-r--r--pkgs/development/libraries/dqlite/default.nix27
-rw-r--r--pkgs/development/libraries/libaosd/default.nix36
-rw-r--r--pkgs/development/libraries/libmd/default.nix4
-rw-r--r--pkgs/development/libraries/libowfat/default.nix18
-rw-r--r--pkgs/development/libraries/science/math/cholmod-extra/default.nix41
-rw-r--r--pkgs/development/libraries/science/math/lrs/default.nix27
-rw-r--r--pkgs/development/libraries/wlroots/default.nix75
-rw-r--r--pkgs/development/ocaml-modules/zmq/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/zmq/lwt.nix12
-rw-r--r--pkgs/development/ocaml-modules/zmq/ocaml-zmq-issue43.patch11
-rw-r--r--pkgs/development/python-modules/Logbook/default.nix26
-rw-r--r--pkgs/development/python-modules/Nikola/default.nix17
-rw-r--r--pkgs/development/python-modules/boltztrap2/default.nix43
-rw-r--r--pkgs/development/python-modules/brotli/default.nix26
-rw-r--r--pkgs/development/python-modules/cypari2/default.nix5
-rw-r--r--pkgs/development/tools/analysis/rr/default.nix6
-rw-r--r--pkgs/development/tools/kube-prompt/default.nix25
-rw-r--r--pkgs/development/tools/kube-prompt/deps.nix309
-rw-r--r--pkgs/development/tools/misc/arcanist/default.nix4
-rw-r--r--pkgs/development/tools/vgo2nix/default.nix41
-rw-r--r--pkgs/development/tools/vgo2nix/deps.nix12
-rw-r--r--pkgs/development/tools/wabt/default.nix2
-rw-r--r--pkgs/games/scummvm/games.nix125
-rw-r--r--pkgs/misc/themes/matcha/default.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix18
-rw-r--r--pkgs/os-specific/linux/nfs-utils/default.nix3
-rw-r--r--pkgs/servers/clickhouse/default.nix4
-rw-r--r--pkgs/servers/corosync/default.nix15
-rw-r--r--pkgs/servers/coturn/default.nix5
-rw-r--r--pkgs/servers/nosql/redis/default.nix6
-rw-r--r--pkgs/servers/plex/default.nix1
-rw-r--r--pkgs/servers/samba/4.x.nix4
-rw-r--r--pkgs/test/openftd/default.nix49
-rw-r--r--pkgs/tools/admin/lxd/default.nix11
-rw-r--r--pkgs/tools/compression/zstd/default.nix4
-rw-r--r--pkgs/tools/misc/skim/default.nix10
-rw-r--r--pkgs/tools/misc/ttyplot/default.nix30
-rw-r--r--pkgs/tools/networking/network-manager/openvpn/default.nix4
-rw-r--r--pkgs/tools/package-management/dpkg/default.nix4
-rw-r--r--pkgs/tools/typesetting/scdoc/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix3
-rw-r--r--pkgs/top-level/all-packages.nix58
-rw-r--r--pkgs/top-level/ocaml-packages.nix4
-rw-r--r--pkgs/top-level/perl-packages.nix17
-rw-r--r--pkgs/top-level/php-packages.nix4
-rw-r--r--pkgs/top-level/python-packages.nix27
91 files changed, 1864 insertions, 449 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index e9563552fc2a..13fa3ba9151c 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -158,6 +158,11 @@
     github = "alexanderkjeldaas";
     name = "Alexander Kjeldaas";
   };
+  akavel = {
+    email = "czapkofan@gmail.com";
+    github = "akavel";
+    name = "Mateusz Czapliński";
+  };
   akaWolf = {
     email = "akawolf0@gmail.com";
     github = "akaWolf";
@@ -4148,11 +4153,6 @@
     github = "tazjin";
     name = "Vincent Ambo";
   };
-  TealG = {
-    email = "~@Teal.Gr";
-    github = "TealG";
-    name = "Teal Gaure";
-  };
   teh = {
     email = "tehunger@gmail.com";
     github = "teh";
diff --git a/nixos/doc/manual/release-notes/rl-1903.xml b/nixos/doc/manual/release-notes/rl-1903.xml
index baddbcd8c68d..839d75b53bd1 100644
--- a/nixos/doc/manual/release-notes/rl-1903.xml
+++ b/nixos/doc/manual/release-notes/rl-1903.xml
@@ -130,6 +130,13 @@
       were removed. They were never used for anything and can therefore safely be removed.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     Package <literal>wasm</literal> has been renamed <literal>proglodyte-wasm</literal>. The package
+     <literal>wasm</literal> will be pointed to <literal>ocamlPackages.wasm</literal> in 19.09, so
+     make sure to update your configuration if you want to keep <literal>proglodyte-wasm</literal>
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 0b4ed6d3b628..5c30e512a1b3 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -385,7 +385,7 @@
       virtuoso = 44;
       #rtkit = 45; # unused
       dovecot2 = 46;
-      #dovenull = 47; # unused
+      dovenull2 = 47;
       prayer = 49;
       mpd = 50;
       clamav = 51;
diff --git a/nixos/modules/security/wrappers/default.nix b/nixos/modules/security/wrappers/default.nix
index 77e4b2a616d8..dcb9c8d4ed5f 100644
--- a/nixos/modules/security/wrappers/default.nix
+++ b/nixos/modules/security/wrappers/default.nix
@@ -180,35 +180,6 @@ in
           # programs to be wrapped.
           WRAPPER_PATH=${config.system.path}/bin:${config.system.path}/sbin
 
-          # Remove the old /var/setuid-wrappers path from the system...
-          #
-          # TODO: this is only necessary for upgrades 16.09 => 17.x;
-          # this conditional removal block needs to be removed after
-          # the release.
-          if [ -d /var/setuid-wrappers ]; then
-            rm -rf /var/setuid-wrappers
-            ln -s /run/wrappers/bin /var/setuid-wrappers
-          fi
-
-          # Remove the old /run/setuid-wrappers-dir path from the
-          # system as well...
-          #
-          # TODO: this is only necessary for upgrades 16.09 => 17.x;
-          # this conditional removal block needs to be removed after
-          # the release.
-          if [ -d /run/setuid-wrapper-dirs ]; then
-            rm -rf /run/setuid-wrapper-dirs
-            ln -s /run/wrappers/bin /run/setuid-wrapper-dirs
-          fi
-
-          # TODO: this is only necessary for upgrades 16.09 => 17.x;
-          # this conditional removal block needs to be removed after
-          # the release.
-          if readlink -f /run/booted-system | grep nixos-17 > /dev/null; then
-            rm -rf /run/setuid-wrapper-dirs
-            rm -rf /var/setuid-wrappers
-          fi
-
           # We want to place the tmpdirs for the wrappers to the parent dir.
           wrapperDir=$(mktemp --directory --tmpdir="${parentWrapperDir}" wrappers.XXXXXXXXXX)
           chmod a+rx $wrapperDir
diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix
index e6091182b2ab..30ad7d82fb80 100644
--- a/nixos/modules/services/mail/dovecot.nix
+++ b/nixos/modules/services/mail/dovecot.nix
@@ -311,7 +311,7 @@ in
       { name = "dovenull";
         uid = config.ids.uids.dovenull2;
         description = "Dovecot user for untrusted logins";
-        group = cfg.group;
+        group = "dovenull";
       }
     ] ++ optional (cfg.user == "dovecot2")
          { name = "dovecot2";
@@ -332,6 +332,10 @@ in
       }
     ++ optional (cfg.createMailUser && cfg.mailGroup != null)
       { name = cfg.mailGroup;
+      }
+    ++ singleton
+      { name = "dovenull";
+        gid = config.ids.gids.dovenull2;
       };
 
     environment.etc."dovecot/modules".source = modulesDir;
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index c30647f5460b..c0c16a429d89 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -4,6 +4,7 @@ with lib;
 
 let
   cfg = config.services.grafana;
+  opt = options.services.grafana;
 
   envOptions = {
     PATHS_DATA = cfg.dataDir;
@@ -41,6 +42,12 @@ let
     AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role;
 
     ANALYTICS_REPORTING_ENABLED = boolToString cfg.analytics.reporting.enable;
+
+    SMTP_ENABLE = boolToString cfg.smtp.enable;
+    SMTP_HOST = cfg.smtp.host;
+    SMTP_USER = cfg.smtp.user;
+    SMTP_PASSWORD = cfg.smtp.password;
+    SMTP_FROM_ADDRESS = cfg.smtp.fromAddress;
   } // cfg.extraOptions;
 
 in {
@@ -134,11 +141,23 @@ in {
       };
 
       password = mkOption {
-        description = "Database password.";
+        description = ''
+          Database password.
+          This option is mutual exclusive with the passwordFile option.
+        '';
         default = "";
         type = types.str;
       };
 
+      passwordFile = mkOption {
+        description = ''
+          File that containts the database password.
+          This option is mutual exclusive with the password option.
+        '';
+        default = null;
+        type = types.nullOr types.path;
+      };
+
       path = mkOption {
         description = "Database path.";
         default = "${cfg.dataDir}/data/grafana.db";
@@ -163,16 +182,69 @@ in {
       };
 
       adminPassword = mkOption {
-        description = "Default admin password.";
+        description = ''
+          Default admin password.
+          This option is mutual exclusive with the adminPasswordFile option.
+        '';
         default = "admin";
         type = types.str;
       };
 
+      adminPasswordFile = mkOption {
+        description = ''
+          Default admin password.
+          This option is mutual exclusive with the <literal>adminPassword</literal> option.
+        '';
+        default = null;
+        type = types.nullOr types.path;
+      };
+
       secretKey = mkOption {
         description = "Secret key used for signing.";
         default = "SW2YcwTIb9zpOOhoPsMm";
         type = types.str;
       };
+
+      secretKeyFile = mkOption {
+        description = "Secret key used for signing.";
+        default = null;
+        type = types.nullOr types.path;
+      };
+    };
+
+    smtp = {
+      enable = mkEnableOption "smtp";
+      host = mkOption {
+        description = "Host to connect to";
+        default = "localhost:25";
+        type = types.str;
+      };
+      user = mkOption {
+        description = "User used for authentication";
+        default = "";
+        type = types.str;
+      };
+      password = mkOption {
+        description = ''
+          Password used for authentication.
+          This option is mutual exclusive with the passwordFile option.
+        '';
+        default = "";
+        type = types.str;
+      };
+      passwordFile = mkOption {
+        description = ''
+          Password used for authentication.
+          This option is mutual exclusive with the password option.
+        '';
+        default = null;
+        type = types.nullOr types.path;
+      };
+      fromAddress = mkOption {
+        description = "Email address used for sending";
+        default = "admin@grafana.localhost";
+        type = types.str;
+      };
     };
 
     users = {
@@ -241,12 +313,31 @@ in {
 
   config = mkIf cfg.enable {
     warnings = optional (
-      cfg.database.password != options.services.grafana.database.password.default ||
-      cfg.security.adminPassword != options.services.grafana.security.adminPassword.default
+      cfg.database.password != opt.database.password.default ||
+      cfg.security.adminPassword != opt.security.adminPassword.default
     ) "Grafana passwords will be stored as plaintext in the Nix store!";
 
     environment.systemPackages = [ cfg.package ];
 
+    assertions = [
+      {
+        assertion = cfg.database.password != opt.database.password.default -> cfg.database.passwordFile == null;
+        message = "Cannot set both password and passwordFile";
+      }
+      {
+        assertion = cfg.security.adminPassword != opt.security.adminPassword.default -> cfg.security.adminPasswordFile == null;
+        message = "Cannot set both adminPassword and adminPasswordFile";
+      }
+      {
+        assertion = cfg.security.secretKeyFile != opt.security.secretKeyFile.default -> cfg.security.secretKeyFile == null;
+        message = "Cannot set both secretKey and secretKeyFile";
+      }
+      {
+        assertion = cfg.smtp.password != opt.smtp.password.default -> cfg.smtp.passwordFile == null;
+        message = "Cannot set both password and secretKeyFile";
+      }
+    ];
+
     systemd.services.grafana = {
       description = "Grafana Service Daemon";
       wantedBy = ["multi-user.target"];
@@ -254,8 +345,22 @@ in {
       environment = {
         QT_QPA_PLATFORM = "offscreen";
       } // mapAttrs' (n: v: nameValuePair "GF_${n}" (toString v)) envOptions;
+      script = ''
+        ${optionalString (cfg.database.passwordFile != null) ''
+          export GF_DATABASE_PASSWORD="$(cat ${escapeShellArg cfg.database.passwordFile})"
+        ''}
+        ${optionalString (cfg.security.adminPasswordFile != null) ''
+          export GF_SECURITY_ADMIN_PASSWORD="$(cat ${escapeShellArg cfg.security.adminPasswordFile})"
+        ''}
+        ${optionalString (cfg.security.secretKeyFile != null) ''
+          export GF_SECURITY_SECRET_KEY="$(cat ${escapeShellArg cfg.security.secretKeyFile})"
+        ''}
+        ${optionalString (cfg.smtp.passwordFile != null) ''
+          export GF_SMTP_PASSWORD="$(cat ${escapeShellArg cfg.smtp.passwordFile})"
+        ''}
+        exec ${cfg.package.bin}/bin/grafana-server -homepath ${cfg.dataDir}
+      '';
       serviceConfig = {
-        ExecStart = "${cfg.package.bin}/bin/grafana-server -homepath ${cfg.dataDir}";
         WorkingDirectory = cfg.dataDir;
         User = "grafana";
       };
diff --git a/nixos/modules/services/monitoring/munin.nix b/nixos/modules/services/monitoring/munin.nix
index ff9604c7dbcd..2b265d5b5a90 100644
--- a/nixos/modules/services/monitoring/munin.nix
+++ b/nixos/modules/services/monitoring/munin.nix
@@ -5,8 +5,8 @@
 
 # TODO: support fastcgi
 # http://munin-monitoring.org/wiki/CgiHowto2
-# spawn-fcgi -s /var/run/munin/fastcgi-graph.sock -U www-data   -u munin -g munin /usr/lib/munin/cgi/munin-cgi-graph
-# spawn-fcgi -s /var/run/munin/fastcgi-html.sock  -U www-data   -u munin -g munin /usr/lib/munin/cgi/munin-cgi-html
+# spawn-fcgi -s /run/munin/fastcgi-graph.sock -U www-data   -u munin -g munin /usr/lib/munin/cgi/munin-cgi-graph
+# spawn-fcgi -s /run/munin/fastcgi-html.sock  -U www-data   -u munin -g munin /usr/lib/munin/cgi/munin-cgi-html
 # https://paste.sh/vofcctHP#-KbDSXVeWoifYncZmLfZzgum
 # nginx http://munin.readthedocs.org/en/latest/example/webserver/nginx.html
 
@@ -22,7 +22,7 @@ let
       dbdir     /var/lib/munin
       htmldir   /var/www/munin
       logdir    /var/log/munin
-      rundir    /var/run/munin
+      rundir    /run/munin
 
       ${cronCfg.extraGlobalConfig}
 
@@ -170,7 +170,7 @@ in
       wantedBy = [ "multi-user.target" ];
       path = with pkgs; [ munin smartmontools "/run/current-system/sw" "/run/wrappers" ];
       environment.MUNIN_LIBDIR = "${pkgs.munin}/lib";
-      environment.MUNIN_PLUGSTATE = "/var/run/munin";
+      environment.MUNIN_PLUGSTATE = "/run/munin";
       environment.MUNIN_LOGDIR = "/var/log/munin";
       preStart = ''
         echo "updating munin plugins..."
@@ -188,7 +188,7 @@ in
     };
 
     # munin_stats plugin breaks as of 2.0.33 when this doesn't exist
-    systemd.tmpfiles.rules = [ "d /var/run/munin 0755 munin munin -" ];
+    systemd.tmpfiles.rules = [ "d /run/munin 0755 munin munin -" ];
 
   }) (mkIf cronCfg.enable {
 
@@ -210,7 +210,7 @@ in
     };
 
     systemd.tmpfiles.rules = [
-      "d /var/run/munin 0755 munin munin -"
+      "d /run/munin 0755 munin munin -"
       "d /var/log/munin 0755 munin munin -"
       "d /var/www/munin 0755 munin munin -"
       "d /var/lib/munin 0755 munin munin -"
diff --git a/nixos/modules/services/security/munge.nix b/nixos/modules/services/security/munge.nix
index 5bca15833544..fda864f2c30a 100644
--- a/nixos/modules/services/security/munge.nix
+++ b/nixos/modules/services/security/munge.nix
@@ -53,8 +53,6 @@ in
         chmod 0700 ${cfg.password}
         mkdir -p /var/lib/munge -m 0711
         chown -R munge:munge /var/lib/munge
-        mkdir -p /var/log/munge -m 0700
-        chown -R munge:munge /var/log/munge
         mkdir -p /run/munge -m 0755
         chown -R munge:munge /run/munge
       '';
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
index 9b6d4be9bda8..aca2cf8cdeaa 100644
--- a/nixos/modules/services/security/tor.nix
+++ b/nixos/modules/services/security/tor.nix
@@ -57,6 +57,11 @@ let
     AutomapHostsSuffixes ${concatStringsSep "," cfg.client.dns.automapHostsSuffixes}
     ''}
   ''
+  # Explicitly disable the SOCKS server if the client is disabled.  In
+  # particular, this makes non-anonymous hidden services possible.
+  + optionalString (! cfg.client.enable) ''
+  SOCKSPort 0
+  ''
   # Relay config
   + optionalString cfg.relay.enable ''
     ORPort ${toString cfg.relay.port}
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index db4c8e1a3d85..797d410dbeb3 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -70,7 +70,15 @@ in {
       '';
     };
 
-    nginx.enable = mkEnableOption "nginx vhost management";
+    nginx.enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to enable nginx virtual host management.
+        Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.&lt;name&gt;</literal>.
+        See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
+      '';
+    };
 
     webfinger = mkOption {
       type = types.bool;
diff --git a/nixos/modules/services/web-servers/tomcat.nix b/nixos/modules/services/web-servers/tomcat.nix
index d92ba72a8336..be54e9255c78 100644
--- a/nixos/modules/services/web-servers/tomcat.nix
+++ b/nixos/modules/services/web-servers/tomcat.nix
@@ -121,6 +121,11 @@ in
               type = types.str;
               description = "name of the virtualhost";
             };
+            aliases = mkOption {
+              type = types.listOf types.str;
+              description = "aliases of the virtualhost";
+              default = [];
+            };
             webapps = mkOption {
               type = types.listOf types.path;
               description = ''
@@ -220,10 +225,28 @@ in
 
         ${if cfg.serverXml != "" then ''
           cp -f ${pkgs.writeTextDir "server.xml" cfg.serverXml}/* ${cfg.baseDir}/conf/
-          '' else ''
-          # Create a modified server.xml which also includes all virtual hosts
-          sed -e "/<Engine name=\"Catalina\" defaultHost=\"localhost\">/a\  ${toString (map (virtualHost: ''<Host name=\"${virtualHost.name}\" appBase=\"virtualhosts/${virtualHost.name}/webapps\" unpackWARs=\"true\" autoDeploy=\"true\" xmlValidation=\"false\" xmlNamespaceAware=\"false\" >${if cfg.logPerVirtualHost then ''<Valve className=\"org.apache.catalina.valves.AccessLogValve\" directory=\"logs/${virtualHost.name}\"  prefix=\"${virtualHost.name}_access_log.\" pattern=\"combined\" resolveHosts=\"false\"/>'' else ""}</Host>'') cfg.virtualHosts)}" \
-                ${tomcat}/conf/server.xml > ${cfg.baseDir}/conf/server.xml
+        '' else
+          let
+            hostElementForVirtualHost = virtualHost: ''
+              <Host name="${virtualHost.name}" appBase="virtualhosts/${virtualHost.name}/webapps"
+                    unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
+            '' + concatStrings (innerElementsForVirtualHost virtualHost) + ''
+              </Host>
+            '';
+            innerElementsForVirtualHost = virtualHost:
+              (map (alias: ''
+                <Alias>${alias}</Alias>
+              '') virtualHost.aliases)
+              ++ (optional cfg.logPerVirtualHost ''
+                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs/${virtualHost.name}"
+                       prefix="${virtualHost.name}_access_log." pattern="combined" resolveHosts="false"/>
+              '');
+            hostElementsString = concatMapStringsSep "\n" hostElementForVirtualHost cfg.virtualHosts;
+            hostElementsSedString = replaceStrings ["\n"] ["\\\n"] hostElementsString;
+          in ''
+            # Create a modified server.xml which also includes all virtual hosts
+            sed -e "/<Engine name=\"Catalina\" defaultHost=\"localhost\">/a\\"${escapeShellArg hostElementsSedString} \
+                  ${tomcat}/conf/server.xml > ${cfg.baseDir}/conf/server.xml
           ''
         }
         ${optionalString (cfg.logDirs != []) ''
diff --git a/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.sh b/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.sh
deleted file mode 100644
index 36bf15066274..000000000000
--- a/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#! @bash@/bin/sh -e
-
-copyForced() {
-    local src="$1"
-    local dst="$2"
-    cp $src $dst.tmp
-    mv $dst.tmp $dst
-}
-
-# Call the extlinux builder
-"@extlinuxConfBuilder@" "$@"
-
-# Add the firmware files
-fwdir=@firmware@/share/raspberrypi/boot/
-copyForced $fwdir/bootcode.bin  /boot/bootcode.bin
-copyForced $fwdir/fixup.dat     /boot/fixup.dat
-copyForced $fwdir/fixup_cd.dat  /boot/fixup_cd.dat
-copyForced $fwdir/fixup_db.dat  /boot/fixup_db.dat
-copyForced $fwdir/fixup_x.dat   /boot/fixup_x.dat
-copyForced $fwdir/start.elf     /boot/start.elf
-copyForced $fwdir/start_cd.elf  /boot/start_cd.elf
-copyForced $fwdir/start_db.elf  /boot/start_db.elf
-copyForced $fwdir/start_x.elf   /boot/start_x.elf
-
-# Add the uboot file
-copyForced @uboot@/u-boot.bin /boot/u-boot-rpi.bin
-
-# Add the config.txt
-copyForced @configTxt@ /boot/config.txt
diff --git a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix
new file mode 100644
index 000000000000..7eb52e3d021f
--- /dev/null
+++ b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix
@@ -0,0 +1,10 @@
+{ pkgs, configTxt }:
+
+pkgs.substituteAll {
+  src = ./raspberrypi-builder.sh;
+  isExecutable = true;
+  inherit (pkgs) bash;
+  path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
+  firmware = pkgs.raspberrypifw;
+  inherit configTxt;
+}
diff --git a/nixos/modules/system/boot/loader/raspberrypi/builder.sh b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
index 8adc8a6a7e11..0fb07de10c04 100644
--- a/nixos/modules/system/boot/loader/raspberrypi/builder.sh
+++ b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
@@ -5,15 +5,25 @@ shopt -s nullglob
 export PATH=/empty
 for i in @path@; do PATH=$PATH:$i/bin; done
 
-default=$1
-if test -z "$1"; then
-    echo "Syntax: builder.sh <DEFAULT-CONFIG>"
+usage() {
+    echo "usage: $0 -c <path-to-default-configuration> [-d <boot-dir>]" >&2
     exit 1
-fi
+}
+
+default=                # Default configuration
+target=/boot            # Target directory
+
+while getopts "c:d:" opt; do
+    case "$opt" in
+        c) default="$OPTARG" ;;
+        d) target="$OPTARG" ;;
+        \?) usage ;;
+    esac
+done
 
 echo "updating the boot generations directory..."
 
-mkdir -p /boot/old
+mkdir -p $target/old
 
 # Convert a path to a file in the Nix store such as
 # /nix/store/<hash>-<name>/file to <hash>-<name>-<file>.
@@ -22,12 +32,12 @@ cleanName() {
     echo "$path" | sed 's|^/nix/store/||' | sed 's|/|-|g'
 }
 
-# Copy a file from the Nix store to /boot/kernels.
+# Copy a file from the Nix store to $target/kernels.
 declare -A filesCopied
 
 copyToKernelsDir() {
     local src="$1"
-    local dst="/boot/old/$(cleanName $src)"
+    local dst="$target/old/$(cleanName $src)"
     # Don't copy the file if $dst already exists.  This means that we
     # have to create $dst atomically to prevent partially copied
     # kernels or initrd if this script is ever interrupted.
@@ -47,10 +57,10 @@ copyForced() {
     mv $dst.tmp $dst
 }
 
-outdir=/boot/old
+outdir=$target/old
 mkdir -p $outdir || true
 
-# Copy its kernel and initrd to /boot/kernels.
+# Copy its kernel and initrd to $target/old.
 addEntry() {
     local path="$1"
     local generation="$2"
@@ -74,25 +84,21 @@ addEntry() {
     echo $initrd > $outdir/$generation-initrd
     echo $kernel > $outdir/$generation-kernel
 
-    if test $(readlink -f "$path") = "$default"; then
-      if [ @version@ -eq 1 ]; then
-        copyForced $kernel /boot/kernel.img
-      else
-        copyForced $kernel /boot/kernel7.img
-      fi
-      copyForced $initrd /boot/initrd
-      for dtb in $dtb_path/bcm*.dtb; do
-        dst="/boot/$(basename $dtb)"
+    if test "$generation" = "default"; then
+      copyForced $kernel $target/kernel.img
+      copyForced $initrd $target/initrd
+      for dtb in $dtb_path/{broadcom,}/bcm*.dtb; do
+        dst="$target/$(basename $dtb)"
         copyForced $dtb "$dst"
         filesCopied[$dst]=1
       done
-      cp "$(readlink -f "$path/init")" /boot/nixos-init
-      echo "`cat $path/kernel-params` init=$path/init" >/boot/cmdline.txt
-
-      echo "$2" > /boot/defaultgeneration
+      cp "$(readlink -f "$path/init")" $target/nixos-init
+      echo "`cat $path/kernel-params` init=$path/init" >$target/cmdline.txt
     fi
 }
 
+addEntry $default default
+
 # Add all generations of the system profile to the menu, in reverse
 # (most recent to least recent) order.
 for generation in $(
@@ -105,21 +111,21 @@ done
 
 # Add the firmware files
 fwdir=@firmware@/share/raspberrypi/boot/
-copyForced $fwdir/bootcode.bin  /boot/bootcode.bin
-copyForced $fwdir/fixup.dat     /boot/fixup.dat
-copyForced $fwdir/fixup_cd.dat  /boot/fixup_cd.dat
-copyForced $fwdir/fixup_db.dat  /boot/fixup_db.dat
-copyForced $fwdir/fixup_x.dat   /boot/fixup_x.dat
-copyForced $fwdir/start.elf     /boot/start.elf
-copyForced $fwdir/start_cd.elf  /boot/start_cd.elf
-copyForced $fwdir/start_db.elf  /boot/start_db.elf
-copyForced $fwdir/start_x.elf   /boot/start_x.elf
+copyForced $fwdir/bootcode.bin  $target/bootcode.bin
+copyForced $fwdir/fixup.dat     $target/fixup.dat
+copyForced $fwdir/fixup_cd.dat  $target/fixup_cd.dat
+copyForced $fwdir/fixup_db.dat  $target/fixup_db.dat
+copyForced $fwdir/fixup_x.dat   $target/fixup_x.dat
+copyForced $fwdir/start.elf     $target/start.elf
+copyForced $fwdir/start_cd.elf  $target/start_cd.elf
+copyForced $fwdir/start_db.elf  $target/start_db.elf
+copyForced $fwdir/start_x.elf   $target/start_x.elf
 
 # Add the config.txt
-copyForced @configTxt@ /boot/config.txt
+copyForced @configTxt@ $target/config.txt
 
-# Remove obsolete files from /boot and /boot/old.
-for fn in /boot/old/*linux* /boot/old/*initrd-initrd* /boot/bcm*.dtb; do
+# Remove obsolete files from $target and $target/old.
+for fn in $target/old/*linux* $target/old/*initrd-initrd* $target/bcm*.dtb; do
     if ! test "${filesCopied[$fn]}" = 1; then
         rm -vf -- "$fn"
     fi
diff --git a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix
index 9bec24c53f5b..7e089507ff20 100644
--- a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix
+++ b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix
@@ -5,25 +5,16 @@ with lib;
 let
   cfg = config.boot.loader.raspberryPi;
 
-  builderGeneric = pkgs.substituteAll {
-    src = ./builder.sh;
-    isExecutable = true;
-    inherit (pkgs) bash;
-    path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
-    firmware = pkgs.raspberrypifw;
-    version = cfg.version;
-    inherit configTxt;
-  };
-
   inherit (pkgs.stdenv.hostPlatform) platform;
 
-  builderUboot = import ./builder_uboot.nix { inherit config; inherit pkgs; inherit configTxt; };
+  builderUboot = import ./uboot-builder.nix { inherit pkgs configTxt; inherit (cfg) version; };
+  builderGeneric = import ./raspberrypi-builder.nix { inherit pkgs configTxt; };
 
   builder = 
     if cfg.uboot.enable then
       "${builderUboot} -g ${toString cfg.uboot.configurationLimit} -t ${timeoutStr} -c"
     else
-      builderGeneric;
+      "${builderGeneric} -c";
 
   blCfg = config.boot.loader;
   timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout;
@@ -43,9 +34,12 @@ let
     '' + optional isAarch64 ''
       # Boot in 64-bit mode.
       arm_control=0x200
-    '' + optional cfg.uboot.enable ''
+    '' + (if cfg.uboot.enable then ''
       kernel=u-boot-rpi.bin
-    '' + optional (cfg.firmwareConfig != null) cfg.firmwareConfig);
+    '' else ''
+      kernel=kernel.img
+      initramfs initrd followkernel
+    '') + optional (cfg.firmwareConfig != null) cfg.firmwareConfig);
 
 in
 
@@ -65,7 +59,7 @@ in
 
       version = mkOption {
         default = 2;
-        type = types.enum [ 1 2 3 ];
+        type = types.enum [ 0 1 2 3 ];
         description = ''
         '';
       };
diff --git a/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix b/nixos/modules/system/boot/loader/raspberrypi/uboot-builder.nix
index 47f25a9c2b1b..e929c33c6ee3 100644
--- a/nixos/modules/system/boot/loader/raspberrypi/builder_uboot.nix
+++ b/nixos/modules/system/boot/loader/raspberrypi/uboot-builder.nix
@@ -1,13 +1,14 @@
-{ config, pkgs, configTxt }:
+{ pkgs, version, configTxt }:
 
 let
-  cfg = config.boot.loader.raspberryPi;
   isAarch64 = pkgs.stdenv.isAarch64;
 
   uboot =
-    if cfg.version == 1 then
+    if version == 0 then
+      pkgs.ubootRaspberryPiZero
+    else if version == 1 then
       pkgs.ubootRaspberryPi
-    else if cfg.version == 2 then
+    else if version == 2 then
       pkgs.ubootRaspberryPi2
     else
       if isAarch64 then
@@ -21,7 +22,7 @@ let
     };
 in
 pkgs.substituteAll {
-  src = ./builder_uboot.sh;
+  src = ./uboot-builder.sh;
   isExecutable = true;
   inherit (pkgs) bash;
   path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
@@ -29,6 +30,6 @@ pkgs.substituteAll {
   inherit uboot;
   inherit configTxt;
   inherit extlinuxConfBuilder;
-  version = cfg.version;
+  inherit version;
 }
 
diff --git a/nixos/modules/system/boot/loader/raspberrypi/uboot-builder.sh b/nixos/modules/system/boot/loader/raspberrypi/uboot-builder.sh
new file mode 100644
index 000000000000..ea591427179f
--- /dev/null
+++ b/nixos/modules/system/boot/loader/raspberrypi/uboot-builder.sh
@@ -0,0 +1,38 @@
+#! @bash@/bin/sh -e
+
+target=/boot # Target directory
+
+while getopts "t:c:d:g:" opt; do
+    case "$opt" in
+        d) target="$OPTARG" ;;
+        *) ;;
+    esac
+done
+
+copyForced() {
+    local src="$1"
+    local dst="$2"
+    cp $src $dst.tmp
+    mv $dst.tmp $dst
+}
+
+# Call the extlinux builder
+"@extlinuxConfBuilder@" "$@"
+
+# Add the firmware files
+fwdir=@firmware@/share/raspberrypi/boot/
+copyForced $fwdir/bootcode.bin  $target/bootcode.bin
+copyForced $fwdir/fixup.dat     $target/fixup.dat
+copyForced $fwdir/fixup_cd.dat  $target/fixup_cd.dat
+copyForced $fwdir/fixup_db.dat  $target/fixup_db.dat
+copyForced $fwdir/fixup_x.dat   $target/fixup_x.dat
+copyForced $fwdir/start.elf     $target/start.elf
+copyForced $fwdir/start_cd.elf  $target/start_cd.elf
+copyForced $fwdir/start_db.elf  $target/start_db.elf
+copyForced $fwdir/start_x.elf   $target/start_x.elf
+
+# Add the uboot file
+copyForced @uboot@/u-boot.bin $target/u-boot-rpi.bin
+
+# Add the config.txt
+copyForced @configTxt@ $target/config.txt
diff --git a/nixos/modules/system/boot/systemd-nspawn.nix b/nixos/modules/system/boot/systemd-nspawn.nix
index 83fef8354360..f4fa09694537 100644
--- a/nixos/modules/system/boot/systemd-nspawn.nix
+++ b/nixos/modules/system/boot/systemd-nspawn.nix
@@ -112,9 +112,6 @@ in {
 
       environment.etc."systemd/nspawn".source = generateUnits "nspawn" units [] [];
 
-      systemd.services."systemd-nspawn@" = {
-        wantedBy = [ "machine.target" ];
-      };
   };
 
 }
diff --git a/pkgs/applications/audio/axoloti/default.nix b/pkgs/applications/audio/axoloti/default.nix
index 986e476779cb..274233167bd8 100644
--- a/pkgs/applications/audio/axoloti/default.nix
+++ b/pkgs/applications/audio/axoloti/default.nix
@@ -2,14 +2,14 @@
 , gnumake, gcc-arm-embedded, dfu-util-axoloti, jdk, ant, libfaketime }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.12-1";
+  version = "1.0.12-2";
   name = "axoloti-${version}";
 
   src = fetchFromGitHub {
     owner = "axoloti";
     repo = "axoloti";
     rev = "${version}";
-    sha256 = "13njmv8zac0kaaxgkv4y4zfjcclafn9cw0m8lj2k4926wnwjmf50";
+    sha256 = "1qffis277wshldr3i939b0r2x3a2mlr53samxqmr2nk1sfm2b4w9";
   };
 
   chibi_version = "2.6.9";
@@ -96,6 +96,6 @@ stdenv.mkDerivation rec {
       <literal>SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="0442", OWNER="someuser", GROUP="somegroup"</literal>
     '';
     license = licenses.gpl3;
-    maintainers = with maintainers; [ TealG ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/audio/fluidsynth/default.nix b/pkgs/applications/audio/fluidsynth/default.nix
index 27ca539850e2..b3b838c5d470 100644
--- a/pkgs/applications/audio/fluidsynth/default.nix
+++ b/pkgs/applications/audio/fluidsynth/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation  rec {
   name = "fluidsynth-${version}";
-  version = "1.1.10";
+  version = "1.1.11";
 
   src = fetchFromGitHub {
     owner = "FluidSynth";
     repo = "fluidsynth";
     rev = "v${version}";
-    sha256 = "04jlgq1d1hd8r9cnmkl3lgf1fgm7kgy4hh9nfddap41fm1wp121p";
+    sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/applications/audio/spotify/update.sh b/pkgs/applications/audio/spotify/update.sh
index 114245f6d46c..0e19ca1920b4 100755
--- a/pkgs/applications/audio/spotify/update.sh
+++ b/pkgs/applications/audio/spotify/update.sh
@@ -1,8 +1,31 @@
-channel="stable" # stable/candidate/edge
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p curl jq git gnused gnugrep
+
+
+# executing this script without arguments will
+# - find the newest stable spotify version avaiable on snapcraft (https://snapcraft.io/spotify)
+# - read the current spotify version from the current nix expression
+# - update the nix expression if the versions differ
+# - try to build the updated version, exit if that fails
+# - give instructions for upstreaming
+
+# Please test the update manually before pushing. There have been errors before
+# and because the service is proprietary and a paid account is necessary to do
+# anything with spotify automatic testing is not possible.
+
+# As an optional argument you can specify the snapcraft channel to update to.
+# Default is `stable` and only stable updates should be pushed to nixpkgs. For
+# testing you may specify `candidate` or `edge`.
+
+
+channel="${1:-stable}" # stable/candidate/edge
 nixpkgs="$(git rev-parse --show-toplevel)"
 spotify_nix="$nixpkgs/pkgs/applications/audio/spotify/default.nix"
 
 
+#
+# find the newest stable spotify version avaiable on snapcraft
+#
 
 # create bash array from snap info
 snap_info=($(
@@ -12,38 +35,62 @@ snap_info=($(
 		'.revision,.download_sha512,.version,.last_updated'
 ))
 
+# "revision" is the actual version identifier on snapcraft, the "version" is
+# just for human consumption. Revision is just an integer that gets increased
+# by one every (stable or unstable) release.
 revision="${snap_info[0]}"
 sha512="${snap_info[1]}"
-version="${snap_info[2]}"
+upstream_version="${snap_info[2]}"
 last_updated="${snap_info[3]}"
 
-# find the last commited version
-version_pre=$(
-	git  grep 'version\s*=' HEAD "$spotify_nix" \
+echo "Latest $channel release is $upstream_version from $last_updated."
+
+#
+# read the current spotify version from the currently *committed* nix expression
+#
+
+current_nix_version=$(
+	grep 'version\s*=' "$spotify_nix" \
 	| sed -Ene 's/.*"(.*)".*/\1/p'
 )
 
-if [[ "$version_pre" = "$version" ]]; then
+echo "Current nix version: $current_nix_version"
+
+#
+# update the nix expression if the versions differ
+#
+
+if [[ "$current_nix_version" = "$upstream_version" ]]; then
 	echo "Spotify is already up ot date"
 	exit 0
 fi
 
-echo "Updating from ${version_pre} to ${version}, released on ${last_updated}"
+echo "Updating from ${current_nix_version} to ${upstream_version}, released on ${last_updated}"
 
-# search-andreplace revision, hash and version
+# search-and-replace revision, hash and version
 sed --regexp-extended \
 	-e 's/rev\s*=\s*"[0-9]+"\s*;/rev = "'"${revision}"'";/' \
-	-e 's/sha512\s*=\s*".{128}"\s*;/sha512 = "'"${sha512}"'";/' \
-	-e 's/version\s*=\s*".*"\s*;/version = "'"${version}"'";/' \
+	-e 's/sha512\s*=\s*"[^"]*"\s*;/sha512 = "'"${sha512}"'";/' \
+	-e 's/version\s*=\s*".*"\s*;/version = "'"${upstream_version}"'";/' \
 	-i "$spotify_nix" 
 
+#
+# try to build the updated version
+#
+
 if ! nix-build -A spotify "$nixpkgs"; then
 	echo "The updated spotify failed to build."
 	exit 1
 fi
 
+#
+# give instructions for upstreaming
+#
+
 git add "$spotify_nix"
-# show diff for review
-git diff HEAD
-# prepare commit message, but allow edit
-git commit --edit --message "spotify: $version_pre -> $version"
+# show changes for review
+git status
+echo 'Please review and test the changes (./result/bin/spotify).'
+echo 'Then stage the changes with `git add` and commit with:'
+# prepare commit message
+echo "git commit -m 'spotify: $current_nix_version -> $upstream_version'"
diff --git a/pkgs/applications/audio/whipper/default.nix b/pkgs/applications/audio/whipper/default.nix
index 1097e7b8fd7e..fa5845c260be 100644
--- a/pkgs/applications/audio/whipper/default.nix
+++ b/pkgs/applications/audio/whipper/default.nix
@@ -6,7 +6,7 @@ python2.pkgs.buildPythonApplication rec {
   version = "0.7.0";
 
   src = fetchFromGitHub {
-    owner = "JoeLametta";
+    owner = "whipper-team";
     repo = "whipper";
     rev = "v${version}";
     sha256 = "04m8s0s9dcnly9l6id8vv99n9kbjrjid79bss52ay9yvwng0frmj";
@@ -39,7 +39,7 @@ python2.pkgs.buildPythonApplication rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = https://github.com/JoeLametta/whipper;
+    homepage = https://github.com/whipper-team/whipper;
     description = "A CD ripper aiming for accuracy over speed";
     maintainers = with maintainers; [ rycee jgeerds ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index fa83975b8d97..cbc30588434a 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -555,12 +555,12 @@ rec {
 
   spotbugs = buildEclipseUpdateSite rec {
     name = "spotbugs-${version}";
-    version = "3.1.6";
+    version = "3.1.8";
 
     src = fetchzip {
       stripRoot = false;
       url = "https://github.com/spotbugs/spotbugs/releases/download/${version}/eclipsePlugin.zip";
-      sha256 = "1qsams12n64slp00nfc9v943sy9bzffzm7anqqaz2hjw64iia7fh";
+      sha256 = "0086shivxx745f69226f59xcv7l9xliwyr9kxm6zyn753c888js3";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/kde/marble.nix b/pkgs/applications/kde/marble.nix
index ea140cad5ee5..b02e29e33513 100644
--- a/pkgs/applications/kde/marble.nix
+++ b/pkgs/applications/kde/marble.nix
@@ -14,4 +14,7 @@ mkDerivation {
     qtscript qtsvg qtquickcontrols qtwebkit shared-mime-info krunner kparts
     knewstuff gpsd
   ];
+  preConfigure = ''
+    cmakeFlags+=" -DINCLUDE_INSTALL_DIR=''${!outputDev}/include"
+  '';
 }
diff --git a/pkgs/applications/misc/lxterminal/default.nix b/pkgs/applications/misc/lxterminal/default.nix
index 314f8bcece10..4fd86a5a4f52 100644
--- a/pkgs/applications/misc/lxterminal/default.nix
+++ b/pkgs/applications/misc/lxterminal/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, automake, autoconf, intltool, pkgconfig, gtk3, vte
+{ stdenv, fetchurl, automake, autoconf, intltool, pkgconfig, gtk3, vte, wrapGAppsHook
 , libxslt, docbook_xml_dtd_412, docbook_xsl, libxml2, findXMLCatalogs
 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [
-    automake autoconf intltool pkgconfig
+    automake autoconf intltool pkgconfig wrapGAppsHook
     libxslt docbook_xml_dtd_412 docbook_xsl libxml2 findXMLCatalogs
   ];
 
diff --git a/pkgs/applications/misc/xmr-stak/default.nix b/pkgs/applications/misc/xmr-stak/default.nix
index 877a25fe662e..ed90689da1ea 100644
--- a/pkgs/applications/misc/xmr-stak/default.nix
+++ b/pkgs/applications/misc/xmr-stak/default.nix
@@ -12,13 +12,13 @@ in
 
 stdenv'.mkDerivation rec {
   name = "xmr-stak-${version}";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "fireice-uk";
     repo = "xmr-stak";
     rev = "${version}";
-    sha256 = "1qls0rai9c1cszcqqqmhcdvcsmm23w1jxzlq2b035apkz7ywbxjl";
+    sha256 = "0n042vxrr52k6x86h06f298flmxghsfh2a3kqnc41r7p7qybgjj8";
   };
 
   NIX_CFLAGS_COMPILE = "-O3";
@@ -40,6 +40,6 @@ stdenv'.mkDerivation rec {
     description = "Unified All-in-one Monero miner";
     homepage = "https://github.com/fireice-uk/xmr-stak";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ fpletz ];
+    maintainers = with maintainers; [ fpletz bfortz ];
   };
 }
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
new file mode 100644
index 000000000000..d097e0b448ca
--- /dev/null
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -0,0 +1,108 @@
+{ stdenv, lib, fetchurl,
+  dpkg,
+  alsaLib,
+  at-spi2-atk,
+  atk,
+  cairo,
+  cups,
+  dbus,
+  expat,
+  fontconfig,
+  freetype,
+  gdk_pixbuf,
+  glib,
+  gnome2,
+  gtk3,
+  libuuid,
+  libX11,
+  libXcomposite,
+  libXcursor,
+  libXdamage,
+  libXext,
+  libXfixes,
+  libXi,
+  libXrandr,
+  libXrender,
+  libXScrnSaver,
+  libXtst,
+  nspr,
+  nss,
+  pango,
+  udev,
+  xorg,
+  zlib
+}:
+
+let rpath = lib.makeLibraryPath [
+    alsaLib
+    at-spi2-atk
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    fontconfig
+    freetype
+    gdk_pixbuf
+    glib
+    gnome2.GConf
+    gtk3
+    libuuid
+    libX11
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXScrnSaver
+    libXtst
+    nspr
+    nss
+    pango
+    udev
+    xorg.libxcb
+    zlib
+];
+
+
+in stdenv.mkDerivation rec {
+    name = "brave";
+    version = "0.25.2";
+
+    src = fetchurl {
+        url = "https://github.com/brave/browser-laptop/releases/download/v${version}dev/brave_${version}_amd64.deb";
+        sha256 = "1r3rsa6szps7mvvpqyw0mg16zn36x451dxq4nmn2l5ds5cp1f017";
+    };
+
+    phases = [ "unpackPhase" "installPhase" ];
+
+    nativeBuildInputs = [ dpkg ];
+
+    unpackPhase = "dpkg-deb -x $src .";
+
+    installPhase = ''
+        mkdir -p $out
+
+        cp -R usr/* $out
+
+        patchelf \
+            --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+            --set-rpath "${rpath}" $out/bin/brave
+    '';
+
+    meta = with stdenv.lib; {
+        homepage = "https://brave.com/";
+        description = "Privacy-oriented browser for Desktop and Laptop computers";
+        longDescription = ''
+          Brave browser blocks the ads and trackers that slow you down,
+          chew up your bandwidth, and invade your privacy. Brave lets you
+          contribute to your favorite creators automatically.
+        '';
+        license = licenses.mpl20;
+        maintainers = [ maintainers.uskudnik ];
+        platforms = [ "x86_64-linux" ];
+    };
+}
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index bfdb5fcc0103..b72e3703ef7e 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -1,7 +1,7 @@
-{ pname, version, updateScript ? null
-, src, patches ? [], extraConfigureFlags ? [], extraMakeFlags ? []
-, overrides ? {}, extraNativeBuildInputs ? [], meta
-, isTorBrowserLike ? false }:
+{ pname, ffversion, meta, updateScript ? null
+, src, unpackPhase ? null, patches ? []
+, extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? []
+, isTorBrowserLike ? false, tbversion ? null }:
 
 { lib, stdenv, pkgconfig, pango, perl, python2, zip, libIDL
 , libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
@@ -19,7 +19,7 @@
 , alsaSupport ? stdenv.isLinux, alsaLib
 , pulseaudioSupport ? true, libpulseaudio
 , ffmpegSupport ? true, gstreamer, gst-plugins-base
-, gtk3Support ? !isTorBrowserLike, gtk2, gtk3, wrapGAppsHook
+, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
 , gssSupport ? true, kerberos
 
 ## privacy-related options
@@ -31,7 +31,7 @@
 
 # webrtcSupport breaks the aarch64 build on version >= 60.
 # https://bugzilla.mozilla.org/show_bug.cgi?id=1434589
-, webrtcSupport ? (if lib.versionAtLeast version "60" && stdenv.isAarch64 then false else !privacySupport)
+, webrtcSupport ? (if lib.versionAtLeast ffversion "60" && stdenv.isAarch64 then false else !privacySupport)
 , geolocationSupport ? !privacySupport
 , googleAPISupport ? geolocationSupport
 , crashreporterSupport ? false
@@ -80,23 +80,24 @@ let
   browserName = if stdenv.isDarwin then "Firefox" else "firefox";
 in
 
-stdenv.mkDerivation (rec {
+stdenv.mkDerivation rec {
   name = "${pname}-unwrapped-${version}";
+  version = if !isTorBrowserLike then ffversion else tbversion;
 
-  inherit src patches meta;
+  inherit src unpackPhase patches meta;
 
   buildInputs = [
     gtk2 perl zip libIDL libjpeg zlib bzip2
     dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor
     xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
-    nspr libnotify xorg.pixman yasm libGLU_combined
+    libnotify xorg.pixman yasm libGLU_combined
     xorg.libXScrnSaver xorg.scrnsaverproto
     xorg.libXext xorg.xextproto sqlite unzip makeWrapper
     libevent libstartup_notification libvpx /* cairo */
     icu libpng jemalloc glib
   ]
-  ++ lib.optionals (!isTorBrowserLike) [ nss ]
-  ++ lib.optional (lib.versionOlder version "61") hunspell
+  ++ lib.optionals (!isTorBrowserLike) [ nspr nss ]
+  ++ lib.optional (lib.versionOlder ffversion "61") hunspell
   ++ lib.optional  alsaSupport alsaLib
   ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
   ++ lib.optionals ffmpegSupport [ gstreamer gst-plugins-base ]
@@ -106,12 +107,17 @@ stdenv.mkDerivation (rec {
                                      AVFoundation MediaToolbox CoreLocation
                                      Foundation libobjc AddressBook cups ];
 
-  NIX_CFLAGS_COMPILE = [ "-I${nspr.dev}/include/nspr"
-                         "-I${nss.dev}/include/nss"
-                         "-I${glib.dev}/include/gio-unix-2.0" ]
-                      ++ lib.optional stdenv.isDarwin [
-                         "-isystem ${llvmPackages.libcxx}/include/c++/v1"
-                         "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10" ];
+  NIX_CFLAGS_COMPILE = [
+    "-I${glib.dev}/include/gio-unix-2.0"
+  ]
+  ++ lib.optionals (!isTorBrowserLike) [
+    "-I${nspr.dev}/include/nspr"
+    "-I${nss.dev}/include/nss"
+  ]
+  ++ lib.optional stdenv.isDarwin [
+    "-isystem ${llvmPackages.libcxx}/include/c++/v1"
+    "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10"
+  ];
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace js/src/jsmath.cpp --replace 'defined(HAVE___SINCOS)' 0
@@ -128,14 +134,14 @@ stdenv.mkDerivation (rec {
     rm -f configure
     rm -f js/src/configure
     rm -f .mozconfig*
-  '' + (if lib.versionAtLeast version "58"
+  '' + (if lib.versionAtLeast ffversion "58"
   # this will run autoconf213
   then ''
     configureScript="$(realpath ./mach) configure"
   '' else ''
     make -f client.mk configure-files
     configureScript="$(realpath ./configure)"
-  '') + lib.optionalString (!isTorBrowserLike && lib.versionAtLeast version "53") ''
+  '') + lib.optionalString (lib.versionAtLeast ffversion "53") ''
     export MOZCONFIG=$(pwd)/mozconfig
 
     # Set C flags for Rust's bindgen program. Unlike ordinary C
@@ -158,7 +164,7 @@ stdenv.mkDerivation (rec {
     # please get your own set of keys.
     echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" > $TMPDIR/ga
     configureFlagsArray+=("--with-google-api-keyfile=$TMPDIR/ga")
-  '' + lib.optionalString (lib.versionOlder version "58") ''
+  '' + lib.optionalString (lib.versionOlder ffversion "58") ''
     cd obj-*
   '';
 
@@ -185,37 +191,29 @@ stdenv.mkDerivation (rec {
     "--disable-gconf"
     "--enable-default-toolkit=${default-toolkit}"
   ]
-  ++ lib.optional (stdenv.isDarwin && lib.versionAtLeast version "61") "--disable-xcode-checks"
-  ++ lib.optional (lib.versionOlder version "61") "--enable-system-hunspell"
-  ++ lib.optionals (lib.versionAtLeast version "56" && !stdenv.hostPlatform.isi686) [
+  ++ lib.optional (stdenv.isDarwin && lib.versionAtLeast ffversion "61") "--disable-xcode-checks"
+  ++ lib.optional (lib.versionOlder ffversion "61") "--enable-system-hunspell"
+  ++ lib.optionals (lib.versionAtLeast ffversion "56" && !stdenv.hostPlatform.isi686) [
     # on i686-linux: --with-libclang-path is not available in this configuration
     "--with-libclang-path=${llvmPackages.libclang}/lib"
     "--with-clang-path=${llvmPackages.clang}/bin/clang"
   ]
-  ++ lib.optionals (lib.versionAtLeast version "57") [
+  ++ lib.optionals (lib.versionAtLeast ffversion "57") [
     "--enable-webrender=build"
   ]
 
   # TorBrowser patches these
   ++ lib.optionals (!isTorBrowserLike) [
-    "--with-system-nss"
     "--with-system-nspr"
+    "--with-system-nss"
   ]
 
   # and wants these
   ++ lib.optionals isTorBrowserLike ([
-    "--with-tor-browser-version=${version}"
+    "--with-tor-browser-version=${tbversion}"
     "--enable-signmar"
     "--enable-verify-mar"
-
-    # We opt out of TorBrowser's nspr because that patch is useless on
-    # anything but Windows and produces zero fingerprinting
-    # possibilities on other platforms.
-    # Lets save some space instead.
-    "--with-system-nspr"
-  ] ++ flag geolocationSupport "mozril-geoloc"
-    ++ flag safeBrowsingSupport "safe-browsing"
-  )
+  ])
 
   ++ flag alsaSupport "alsa"
   ++ flag pulseaudioSupport "pulseaudio"
@@ -226,6 +224,11 @@ stdenv.mkDerivation (rec {
   ++ flag crashreporterSupport "crashreporter"
   ++ lib.optional drmSupport "--enable-eme=widevine"
 
+  ++ lib.optionals (lib.versionOlder ffversion "60") ([]
+    ++ flag geolocationSupport "mozril-geoloc"
+    ++ flag safeBrowsingSupport "safe-browsing"
+  )
+
   ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ]
                     else [ "--disable-debug" "--enable-release"
                            "--enable-optimize"
@@ -239,11 +242,11 @@ stdenv.mkDerivation (rec {
   # top level and then run `make` in obj-*. (We can also run the
   # `make` at the top level in 58, but then we would have to `cd` to
   # `make install` anyway. This is ugly, but simple.)
-  postConfigure = lib.optionalString (lib.versionAtLeast version "58") ''
+  postConfigure = lib.optionalString (lib.versionAtLeast ffversion "58") ''
     cd obj-*
   '';
 
-  preBuild = lib.optionalString (enableOfficialBranding && isTorBrowserLike) ''
+  preBuild = lib.optionalString isTorBrowserLike ''
     buildFlagsArray=("MOZ_APP_DISPLAYNAME=Tor Browser")
   '';
 
@@ -302,4 +305,4 @@ stdenv.mkDerivation (rec {
     inherit browserName;
   } // lib.optionalAttrs gtk3Support { inherit gtk3; };
 
-} // overrides)
+}
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 369b18d5ead5..bd42cf2d9d0b 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -2,16 +2,22 @@
 
 let
 
-  common = opts: callPackage (import ./common.nix opts);
+  common = opts: callPackage (import ./common.nix opts) {};
 
   nixpkgsPatches = [
     ./env_var_for_system_dir.patch
   ];
 
   firefox60_aarch64_skia_patch = fetchpatch {
-      name = "aarch64-skia.patch";
-      url = https://src.fedoraproject.org/rpms/firefox/raw/8cff86d95da3190272d1beddd45b41de3148f8ef/f/build-aarch64-skia.patch;
-      sha256 = "11acb0ms4jrswp7268nm2p8g8l4lv8zc666a5bqjbb09x9k6b78k";
+    name = "aarch64-skia.patch";
+    url = https://src.fedoraproject.org/rpms/firefox/raw/8cff86d95da3190272d1beddd45b41de3148f8ef/f/build-aarch64-skia.patch;
+    sha256 = "11acb0ms4jrswp7268nm2p8g8l4lv8zc666a5bqjbb09x9k6b78k";
+  };
+
+  firefox60_triplet_patch = fetchpatch {
+    name = "triplet.patch";
+    url = https://hg.mozilla.org/releases/mozilla-release/raw-rev/bc651d3d910c;
+    sha256 = "0iybkadsgsf6a3pq3jh8z1p110vmpkih8i35jfj8micdkhxzi89g";
   };
 
 in
@@ -20,9 +26,9 @@ rec {
 
   firefox = common rec {
     pname = "firefox";
-    version = "62.0.3";
+    ffversion = "62.0.3";
     src = fetchurl {
-      url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
+      url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
       sha512 = "0kvb664s47bmmdq2ppjsnyqy8yaiig1xj81r25s36c3i8igfq3zxvws10k2dlmmmrwyc5k4g9i9imgkxj7r3xwwqxc72dl429wvfys8";
     };
 
@@ -42,13 +48,13 @@ rec {
     updateScript = callPackage ./update.nix {
       attrPath = "firefox-unwrapped";
     };
-  } {};
+  };
 
   firefox-esr-52 = common rec {
     pname = "firefox-esr";
-    version = "52.9.0esr";
+    ffversion = "52.9.0esr";
     src = fetchurl {
-      url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
+      url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
       sha512 = "bfca42668ca78a12a9fb56368f4aae5334b1f7a71966fbba4c32b9c5e6597aac79a6e340ac3966779d2d5563eb47c054ab33cc40bfb7306172138ccbd3adb2b9";
     };
 
@@ -64,15 +70,15 @@ rec {
     };
     updateScript = callPackage ./update.nix {
       attrPath = "firefox-esr-52-unwrapped";
-      versionSuffix = "esr";
+      ffversionSuffix = "esr";
     };
-  } {};
+  };
 
   firefox-esr-60 = common rec {
     pname = "firefox-esr";
-    version = "60.2.2esr";
+    ffversion = "60.2.2esr";
     src = fetchurl {
-      url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
+      url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
       sha512 = "2h2naaxx4lv90bjpcrsma4sdhl4mvsisx3zi09vakjwv2lad91gy41cmcpqprpcbsmlvpqf8yiv52ah4d02a8d9335xhw2ajw6asjc1";
     };
 
@@ -91,23 +97,27 @@ rec {
       attrPath = "firefox-esr-60-unwrapped";
       versionSuffix = "esr";
     };
-  } {};
+  };
 
 } // (let
 
-  commonAttrs = {
-    overrides = {
-      unpackPhase = ''
-        # fetchFromGitHub produces ro sources, root dir gets a name that
-        # is too long for shebangs. fixing
-        cp -a $src tor-browser
-        chmod -R +w tor-browser
-        cd tor-browser
-
-        # set times for xpi archives
-        find . -exec touch -d'2010-01-01 00:00' {} \;
-      '';
-    };
+  tbcommon = args: common (args // {
+    pname = "tor-browser";
+    isTorBrowserLike = true;
+
+    unpackPhase = ''
+      # fetchFromGitHub produces ro sources, root dir gets a name that
+      # is too long for shebangs. fixing
+      cp -a $src tor-browser
+      chmod -R +w tor-browser
+      cd tor-browser
+
+      # set times for xpi archives
+      find . -exec touch -d'2010-01-01 00:00' {} \;
+    '';
+
+    patches = nixpkgsPatches
+      ++ lib.optional (args.tbversion == "8.0.2") firefox60_triplet_patch;
 
     meta = {
       description = "A web browser built from TorBrowser source tree";
@@ -142,14 +152,13 @@ rec {
       platforms = lib.platforms.linux;
       license = lib.licenses.bsd3;
     };
-  };
+  });
 
 in rec {
 
-  tor-browser-7-5 = common (rec {
-    pname = "tor-browser";
-    version = "7.5.6";
-    isTorBrowserLike = true;
+  tor-browser-7-5 = (tbcommon rec {
+    ffversion = "52.9.0esr";
+    tbversion = "7.5.6";
 
     # FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb
     src = fetchFromGitHub {
@@ -159,27 +168,24 @@ in rec {
       rev   = "95bb92d552876a1f4260edf68fda5faa3eb36ad8";
       sha256 = "1ykn3yg4s36g2cpzxbz7s995c33ij8kgyvghx38z4i8siaqxdddy";
     };
+  }).override {
+    gtk3Support = false;
+  };
 
-    patches = nixpkgsPatches;
-  } // commonAttrs) {};
-
-  tor-browser-8-0 = common (rec {
-    pname = "tor-browser";
-    version = "8.0.1";
-    isTorBrowserLike = true;
+  tor-browser-8-0 = tbcommon rec {
+    ffversion = "60.2.1esr";
+    tbversion = "8.0.2";
 
     # FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb
     src = fetchFromGitHub {
       owner = "SLNOS";
       repo  = "tor-browser";
-      # branch "tor-browser-52.8.0esr-8.0-1-slnos";
-      rev   = "5d7e9e1cacbf70840f8f1a9aafe99f354f9ad0ca";
-      sha256 = "0cwxwwc4m7331bbp3id694ffwxar0j5kfpgpn9l1z36rmgv92n21";
+      # branch "tor-browser-60.2.1esr-8.0-1-slnos"
+      rev   = "4f71403a3e6203baa349a8f81d8664782c5ea548";
+      sha256 = "0zxdi162gpnfca7g77hc0rw4wkmxhfzp9hfmw6dpn97d5kn1zqq3";
     };
+  };
 
-    patches = nixpkgsPatches;
-  } // commonAttrs) {};
-
-  tor-browser = tor-browser-7-5;
+  tor-browser = tor-browser-8-0;
 
 })
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 457e76d0a82c..b8d6cf6aee39 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
@@ -2,22 +2,21 @@
 
 stdenv.mkDerivation rec {
   name = "pidgin-opensteamworks-${version}";
-  version = "1.6.1";
+  version = "unstable-2018-08-02";
 
   src = fetchFromGitHub {
     owner = "EionRobb";
     repo = "pidgin-opensteamworks";
-    rev = "${version}";
-    sha256 = "6ab27831e454ad3b440e4f06b52e0b3671a4f8417ba4da3ab6f56c56d82cc29b";
+    rev = "b16a636d177f4a8862abdfbdb2c0994712ea0cd3";
+    sha256 = "0qyxfrfzsm43f1gmbg350znwxld1fqr9a9yziqs322bx2vglzgfh";
   };
 
   preConfigure = "cd steam-mobile";
-  postInstall = ''
-    mkdir -p $out/lib/purple-2
-    mkdir -p $out/share/pixmaps/pidgin/protocols/
-    cp libsteam.so $out/lib/purple-2/
-    unzip releases/icons.zip -d $out/share/pixmaps/pidgin/protocols/
-  '';
+  installFlags = [
+    "DESTDIR=$(out)"
+    "PLUGIN_DIR_PURPLE=/lib/purple-2"
+    "DATA_ROOT_DIR_PURPLE=/share"
+  ];
 
   buildInputs = [ pidgin unzip glib json-glib nss nspr libgnome-keyring ];
 
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index cda02fedfb69..d0a690496e27 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -118,12 +118,21 @@ let
       sha256 = "1s60vaici3v034jzzi20x23hsj6mkjlc0glipjq4hffrg9qgnizh";
     };
 
-    # Fix compile error against boost 1.66 (#33655):
-    patches = singleton (fetchpatch {
-      url = "https://github.com/mumble-voip/mumble/commit/"
-          + "ea861fe86743c8402bbad77d8d1dd9de8dce447e.patch";
-      sha256 = "1r50dc8dcl6jmbj4abhnay9div7y56kpmajzqd7ql0pm853agwbh";
-    });
+    patches = [
+      # Fix compile error against boost 1.66 (#33655):
+      (fetchpatch {
+        url = "https://github.com/mumble-voip/mumble/commit/"
+            + "ea861fe86743c8402bbad77d8d1dd9de8dce447e.patch";
+        sha256 = "1r50dc8dcl6jmbj4abhnay9div7y56kpmajzqd7ql0pm853agwbh";
+      })
+      # Fixes hang on reconfiguring audio (often including startup)
+      # https://github.com/mumble-voip/mumble/pull/3418
+      (fetchpatch {
+        url = "https://github.com/mumble-voip/mumble/commit/"
+            + "fbbdf2e8ab7d93ed6f7680268ad0689b7eaa71ad.patch";
+        sha256 = "1yhj62mlwm6q42i4aclbia645ha97d3j4ycxhgafr46dbjs0gani";
+      })
+    ];
   };
 
   gitSource = rec {
diff --git a/pkgs/applications/networking/p2p/zeronet/default.nix b/pkgs/applications/networking/p2p/zeronet/default.nix
index 33acd103d8b4..1dc4e3e43513 100644
--- a/pkgs/applications/networking/p2p/zeronet/default.nix
+++ b/pkgs/applications/networking/p2p/zeronet/default.nix
@@ -2,14 +2,14 @@
 
 python2Packages.buildPythonApplication rec {
   pname = "zeronet";
-  version = "0.6.2";
+  version = "0.6.4";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "HelloZeroNet";
     repo = "ZeroNet";
     rev = "v${version}";
-    sha256 = "0v19jjirkyv8hj2yfdj0c40zwynn51h2bj4issn5blr95vhfm8s7";
+    sha256 = "04mpnkx0pbvcfjs337f0ajabdbh6h0gypnaz6n395avkf8r1g4c3";
   };
 
   propagatedBuildInputs = with python2Packages; [ msgpack gevent ];
diff --git a/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch b/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
new file mode 100644
index 000000000000..8cd80281d0e4
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
@@ -0,0 +1,35 @@
+From 8218bd4fdeb4c92de8af0d3aabec55980fc4fb3d Mon Sep 17 00:00:00 2001
+From: Timo Kaufmann <timokau@zoho.com>
+Date: Sun, 21 Oct 2018 17:52:40 +0200
+Subject: [PATCH] Only test py2/py3 optional tests when all of sage is tested
+
+---
+ src/sage/doctest/control.py | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py
+index bf18df8b2b..935c67abf7 100644
+--- a/src/sage/doctest/control.py
++++ b/src/sage/doctest/control.py
+@@ -362,7 +362,8 @@ class DocTestController(SageObject):
+                     if not optionaltag_regex.search(o):
+                         raise ValueError('invalid optional tag {!r}'.format(o))
+ 
+-                options.optional |= auto_optional_tags
++                if "sage" in options.optional:
++                    options.optional |= auto_optional_tags
+ 
+         self.options = options
+ 
+@@ -765,7 +766,7 @@ class DocTestController(SageObject):
+             sage: DC = DocTestController(DD, [dirname])
+             sage: DC.expand_files_into_sources()
+             sage: sorted(DC.sources[0].options.optional)  # abs tol 1
+-            ['guava', 'magma', 'py2']
++            ['guava', 'magma']
+ 
+         We check that files are skipped appropriately::
+ 
+-- 
+2.18.1
+
diff --git a/pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch b/pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch
new file mode 100644
index 000000000000..64dd6fd93777
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch
@@ -0,0 +1,71 @@
+commit f1c59929c3c180ac283334c2b3c901ac8c82f6b1
+Author: Timo Kaufmann <timokau@zoho.com>
+Date:   Sat Oct 20 20:07:41 2018 +0200
+
+    Revert "Something related to the sphinxbuild seems to be leaking memory"
+    
+    This reverts commit 7d85dc796c58c3de57401bc22d3587b94e205091.
+
+diff --git a/src/sage_setup/docbuild/__init__.py b/src/sage_setup/docbuild/__init__.py
+index 0b24b1a60b..084c3f89d7 100644
+--- a/src/sage_setup/docbuild/__init__.py
++++ b/src/sage_setup/docbuild/__init__.py
+@@ -265,29 +265,35 @@ class DocBuilder(object):
+     # import the customized builder for object.inv files
+     inventory = builder_helper('inventory')
+ 
+-def build_many(target, args):
+-    # Pool() uses an actual fork() to run each new instance. This is important
+-    # for performance reasons, i.e., don't use a forkserver when it becomes
+-    # available with Python 3: Here, sage is already initialized which is quite
+-    # costly, with a forkserver we would have to reinitialize it for every
+-    # document we build. At the same time, don't serialize this by taking the
+-    # pool (and thus the call to fork()) out completely: The call to Sphinx
+-    # leaks memory, so we need to build each document in its own process to
+-    # control the RAM usage.
+-    from multiprocessing import Pool
+-    pool = Pool(NUM_THREADS, maxtasksperchild=1)
+-    # map_async handles KeyboardInterrupt correctly. Plain map and
+-    # apply_async does not, so don't use it.
+-    x = pool.map_async(target, args, 1)
+-    try:
+-        ret = x.get(99999)
+-        pool.close()
+-        pool.join()
+-    except Exception:
+-        pool.terminate()
+-        if ABORT_ON_ERROR:
+-            raise
+-    return ret
++if NUM_THREADS > 1:
++    def build_many(target, args):
++        from multiprocessing import Pool
++        pool = Pool(NUM_THREADS, maxtasksperchild=1)
++        # map_async handles KeyboardInterrupt correctly. Plain map and
++        # apply_async does not, so don't use it.
++        x = pool.map_async(target, args, 1)
++        try:
++            ret = x.get(99999)
++            pool.close()
++            pool.join()
++        except Exception:
++            pool.terminate()
++            if ABORT_ON_ERROR:
++                raise
++        return ret
++else:
++    def build_many(target, args):
++        results = []
++
++        for arg in args:
++            try:
++                results.append(target(arg))
++            except Exception:
++                if ABORT_ON_ERROR:
++                    raise
++
++        return results
++
+ 
+ ##########################################
+ #      Parallel Building Ref Manual      #
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index f217a7a0caed..b86f9d1aa0de 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -27,6 +27,16 @@ stdenv.mkDerivation rec {
     # https://trac.sagemath.org/ticket/25316
     # https://github.com/python/cpython/pull/7476
     ./patches/python-5755-hotpatch.patch
+
+    # Revert the commit that made the sphinx build fork even in the single thread
+    # case. For some yet unknown reason, that breaks the docbuild on nix and archlinux.
+    # See https://groups.google.com/forum/#!msg/sage-packaging/VU4h8IWGFLA/mrmCMocYBwAJ.
+    ./patches/revert-sphinx-always-fork.patch
+
+    # Make sure py2/py3 tests are only run when their expected context (all "sage"
+    # tests) are also run. That is necessary to test dochtml individually. See
+    # https://trac.sagemath.org/ticket/26110 for an upstream discussion.
+    ./patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
   ];
 
   packageUpgradePatches = [
diff --git a/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix b/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
index 0d6b206cb4a4..2163855d00e1 100644
--- a/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
@@ -1,14 +1,14 @@
 { fetchFromGitHub, git, gnupg1compat, makeWrapper, openssl, stdenv }:
 
 stdenv.mkDerivation rec {
-
-  name = "git-crypt-${meta.version}";
+  name = "git-crypt-${version}";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "AGWA";
     repo = "git-crypt";
-    rev = meta.version;
-    sha256 = "4fe45f903a4b3cc06a5fe11334b914c225009fe8440d9e91a54fdf21cf4dcc4d";
+    rev = "${version}";
+    sha256 = "13m9y0m6gc3mlw3pqv9x4i0him2ycbysizigdvdanhh514kga602";
     inherit name;
   };
 
@@ -40,7 +40,6 @@ stdenv.mkDerivation rec {
     '';
     downloadPage = "https://github.com/AGWA/git-crypt/releases";
     license = licenses.gpl3;
-    version = "0.5.0";
     maintainers = [ maintainers.dochang ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/video/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index c54a9358b609..6a429116a71d 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "clipgrab-${version}";
-  version = "3.7.0";
+  version = "3.7.1";
 
   src = fetchurl {
-    sha256 = "0rx12218yy6h27z3xsmmxfsw8ldlsf4y862adkz6ybrygppsaib4";
+    sha256 = "0bhzkmcinlsfp5ldgqp59xnkaz6ikzdnq78drcdf1w7q4z05ipxd";
     # The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
     url = "https://download.clipgrab.org/${name}.tar.gz";
   };
diff --git a/pkgs/desktops/deepin/dde-session-ui/default.nix b/pkgs/desktops/deepin/dde-session-ui/default.nix
new file mode 100644
index 000000000000..cab3aff14048
--- /dev/null
+++ b/pkgs/desktops/deepin/dde-session-ui/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitHub, pkgconfig, qmake, qtsvg, qttools,
+  qtx11extras, xkeyboard_config, xorg, lightdm_qt, gsettings-qt,
+  dde-qt-dbus-factory, deepin-gettext-tools, dtkcore, dtkwidget,
+  hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "dde-session-ui";
+  version = "4.5.1.10";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "0cr3g9jbgpp8k41i86lr4pg88gn690nzili7ah745vf1kdwvi1w0";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    qmake
+    qttools
+    deepin-gettext-tools
+  ];
+
+  buildInputs = [
+    dde-qt-dbus-factory
+    dtkcore
+    dtkwidget
+    gsettings-qt
+    lightdm_qt
+    qtsvg
+    qtx11extras
+    xorg.libXcursor
+    xorg.libXrandr
+    xorg.libXtst
+    xkeyboard_config
+    hicolor-icon-theme
+  ];
+
+  postPatch = ''
+    patchShebangs .
+    sed -i translate_desktop.sh -e "s,/usr/bin/deepin-desktop-ts-convert,deepin-desktop-ts-convert,"
+    find -type f -exec sed -i -e "s,path = /etc,path = $out/etc," {} +
+    find -type f -exec sed -i -e "s,path = /usr,path = $out," {} +
+    find -type f -exec sed -i -e "s,Exec=/usr,Exec=$out," {} +
+    find -type f -exec sed -i -e "s,/usr/share/dde-session-ui,$out/share/dde-session-ui," {} +
+    sed -i global_util/xkbparser.h -e "s,/usr/share/X11/xkb/rules/base.xml,${xkeyboard_config}/share/X11/xkb/rules/base.xml,"
+    sed -i lightdm-deepin-greeter/Scripts/lightdm-deepin-greeter -e "s,/usr/bin/lightdm-deepin-greeter,$out/bin/lightdm-deepin-greeter,"
+    # fix default background url
+    sed -i widgets/*.cpp boxframe/*.cpp -e 's,/usr/share/backgrounds/default_background.jpg,/usr/share/backgrounds/deepin/desktop.jpg,'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Deepin desktop-environment - Session UI module";
+    homepage = https://github.com/linuxdeepin/dde-session-ui;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index daee9e46255f..86e5fc37fa54 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -8,6 +8,7 @@ let
     dde-calendar = callPackage ./dde-calendar { };
     dde-polkit-agent = callPackage ./dde-polkit-agent { };
     dde-qt-dbus-factory = callPackage ./dde-qt-dbus-factory { };
+    dde-session-ui = callPackage ./dde-session-ui { };
     deepin-desktop-base = callPackage ./deepin-desktop-base { };
     deepin-desktop-schemas = callPackage ./deepin-desktop-schemas { };
     deepin-gettext-tools = callPackage ./deepin-gettext-tools { };
diff --git a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 8eacbb037dd1..b1369d8304b0 100644
--- a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, meson, ninja, vala, libxslt, pkgconfig, glib, dbus-glib, gtk3, gnome3, python3
+{ stdenv, fetchurl, meson, ninja, vala, libxslt, pkgconfig, glib, gtk3, gnome3, python3
 , libxml2, gettext, docbook_xsl, wrapGAppsHook, gobjectIntrospection }:
 
 let
@@ -14,7 +14,7 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja vala libxslt pkgconfig wrapGAppsHook gettext docbook_xsl libxml2 gobjectIntrospection python3 ];
 
-  buildInputs = [ glib dbus-glib gtk3 gnome3.defaultIconTheme gnome3.dconf ];
+  buildInputs = [ glib gtk3 gnome3.dconf ];
 
   postPatch = ''
     chmod +x meson_post_install.py
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index 498f6d35b176..4201bdb968da 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, meson, ninja, pkgconfig, gettext, libxml2, desktop-file-utils, python3, wrapGAppsHook
-, gtk, gnome3, gnome-autoar, dbus-glib, shared-mime-info, libnotify, libexif
+, gtk, gnome3, gnome-autoar, glib-networking, shared-mime-info, libnotify, libexif
 , exempi, librsvg, tracker, tracker-miners, gnome-desktop, gexiv2, libselinux, gdk_pixbuf }:
 
 let
@@ -16,7 +16,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson ninja pkgconfig libxml2 gettext python3 wrapGAppsHook desktop-file-utils ];
 
   buildInputs = [
-    dbus-glib shared-mime-info libexif gtk exempi libnotify libselinux
+    glib-networking shared-mime-info libexif gtk exempi libnotify libselinux
     tracker tracker-miners gnome-desktop gexiv2
     gnome3.adwaita-icon-theme gnome3.gsettings-desktop-schemas
   ];
diff --git a/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix b/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
index da50b657007a..dfaf73a9d7f1 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, meson, ninja, gettext, gnome3, libxslt, packagekit, polkit
-, fontconfig, libcanberra-gtk3, systemd, libnotify, wrapGAppsHook, dbus-glib, dbus, desktop-file-utils }:
+{ stdenv, fetchurl, pkgconfig, meson, ninja, gettext, gnome3, packagekit, polkit
+, systemd, wrapGAppsHook, desktop-file-utils }:
 
 stdenv.mkDerivation rec {
   name = "gnome-packagekit-${version}";
@@ -10,17 +10,19 @@ stdenv.mkDerivation rec {
     sha256 = "051q3hc78qa85mfh4jxxprfcrfj1hva6smfqsgzm0kx4zkkj1c1r";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-packagekit"; attrPath = "gnome3.gnome-packagekit"; };
-  };
-
-  NIX_CFLAGS_COMPILE = "-I${dbus-glib.dev}/include/dbus-1.0 -I${dbus.dev}/include/dbus-1.0";
-
   nativeBuildInputs = [ pkgconfig meson ninja gettext wrapGAppsHook desktop-file-utils ];
-  buildInputs = [ libxslt gnome3.gtk packagekit fontconfig systemd polkit
-                  libcanberra-gtk3 libnotify dbus-glib dbus ];
+  buildInputs = [ gnome3.gtk packagekit systemd polkit ];
 
-  prePatch = "patchShebangs meson_post_install.sh";
+  postPatch = ''
+    patchShebangs meson_post_install.sh
+  '';
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gnome-packagekit";
+      attrPath = "gnome3.gnome-packagekit";
+    };
+  };
 
   meta = with stdenv.lib; {
     homepage = https://www.freedesktop.org/software/PackageKit/;
diff --git a/pkgs/development/compilers/julia/shared.nix b/pkgs/development/compilers/julia/shared.nix
index e07c2c04b92d..70ff40cd7ec5 100644
--- a/pkgs/development/compilers/julia/shared.nix
+++ b/pkgs/development/compilers/julia/shared.nix
@@ -104,6 +104,7 @@ stdenv.mkDerivation rec {
       touch test/$i.jl
     done
     rm stdlib/Sockets/test/runtests.jl && touch stdlib/Sockets/test/runtests.jl
+    rm stdlib/Distributed/test/runtests.jl && touch stdlib/Distributed/test/runtests.jl
     sed -e 's/Invalid Content-Type:/invalid Content-Type:/g' -i ./stdlib/LibGit2/test/libgit2.jl
     sed -e 's/Failed to resolve /failed to resolve /g' -i ./stdlib/LibGit2/test/libgit2.jl
   '';
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 34855838fe8b..334ecbb168ba 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   name    = "sbcl-${version}";
-  version = "1.4.10";
+  version = "1.4.12";
 
   src = fetchurl {
     url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
-    sha256 = "1j9wb608pkihpwgzl4qvnr4jl6mb7ngfqy559pxnvmnn1zlyfklh";
+    sha256 = "0maa4h5zdykq050hdqk5wd74dhl6k7br3qrhfd4f2387skk8ky7a";
   };
 
   patchPhase = ''
@@ -87,15 +87,23 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     INSTALL_ROOT=$out sh install.sh
+  ''
+  + stdenv.lib.optionalString (!purgeNixReferences) ''
+    cp -r src $out/lib/sbcl
+    cp -r contrib $out/lib/sbcl
+    cat >$out/lib/sbcl/sbclrc <<EOF
+     (setf (logical-pathname-translations "SYS")
+       '(("SYS:SRC;**;*.*.*" #P"$out/lib/sbcl/src/**/*.*")
+         ("SYS:CONTRIB;**;*.*.*" #P"$out/lib/sbcl/contrib/**/*.*")))
+    EOF
   '';
 
-  # Specifying $SBCL_HOME is only truly needed with `purgeNixReferences = true`.
-  setupHook = writeText "setupHook.sh" ''
+  setupHook = stdenv.lib.optional purgeNixReferences (writeText "setupHook.sh" ''
     addEnvHooks "$targetOffset" _setSbclHome
     _setSbclHome() {
       export SBCL_HOME='@out@/lib/sbcl/'
     }
-  '';
+  '');
 
   meta = sbclBootstrap.meta // {
     inherit version;
diff --git a/pkgs/development/libraries/capnproto/default.nix b/pkgs/development/libraries/capnproto/default.nix
index 78fcad5c1fe2..b175250872f3 100644
--- a/pkgs/development/libraries/capnproto/default.nix
+++ b/pkgs/development/libraries/capnproto/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "capnproto-${version}";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchurl {
     url = "https://capnproto.org/capnproto-c++-${version}.tar.gz";
-    sha256 = "010s9yhq4531wvdfrdf2477zswhck6cjfby79w73rff3v06090l0";
+    sha256 = "0hfdnhlbskagzgvby8wy6lrxj53zfzpfqimbhga68c0ji2yw1969";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/dqlite/default.nix b/pkgs/development/libraries/dqlite/default.nix
new file mode 100644
index 000000000000..8cc7a0bba62e
--- /dev/null
+++ b/pkgs/development/libraries/dqlite/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libuv, sqlite-replication }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "dqlite-${version}";
+  version = "0.2.4";
+
+  src = fetchFromGitHub {
+    owner = "CanonicalLtd";
+    repo = "dqlite";
+    rev = "v${version}";
+    sha256 = "03dikhjppraagyvjx4zbp7f5jfg74jivighxkwrbzrcy0g8pmcvd";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  buildInputs = [ libuv sqlite-replication ];
+
+  meta = {
+    description = "Expose a SQLite database over the network and replicate it across a cluster of peers";
+    homepage = https://github.com/CanonicalLtd/dqlite/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ joko ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/libaosd/default.nix b/pkgs/development/libraries/libaosd/default.nix
new file mode 100644
index 000000000000..e63bfd20c797
--- /dev/null
+++ b/pkgs/development/libraries/libaosd/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, pkgconfig, cairo, pango,
+  libX11, libXcomposite, autoconf, automake }:
+
+stdenv.mkDerivation rec {
+  version = "0.2.7-9-g177589f";
+  name = "libaosd-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "atheme-legacy";
+    repo   = "libaosd";
+    rev    = "${version}";
+    sha256 = "1cn7k0n74p6jp25kxwcyblhmbdvgw3mikvj0m2jh4c6xccfrgb9a";
+  };
+
+  nativeBuildInputs = [ autoconf automake pkgconfig ];
+  buildInputs = [ cairo pango libX11 libXcomposite ];
+  enableParallelBuilding = true;
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    longDescription = ''
+      libaosd is an advanced on screen display library.
+
+      It supports many modern features like anti-aliased text and
+      composited rendering via XComposite, as well as support for
+      rendering Cairo and Pango layouts.
+    '';
+    homepage = https://github.com/atheme-legacy/libaosd;
+    license = licenses.mit;
+    maintainers = with maintainers; [ unode ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/development/libraries/libmd/default.nix b/pkgs/development/libraries/libmd/default.nix
index 2da8e5ebf738..de8baa7ad198 100644
--- a/pkgs/development/libraries/libmd/default.nix
+++ b/pkgs/development/libraries/libmd/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "libmd";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchurl {
     url = "https://archive.hadrons.org/software/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1iv45npzv0gncjgcpx5m081861zdqxw667ysghqb8721yrlyl6pj";
+    sha256 = "0waclg2d5qin3r26gy5jvy4584ik60njc8pqbzwk0lzq3j9ynkp1";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/libraries/libowfat/default.nix b/pkgs/development/libraries/libowfat/default.nix
index 1304aff9e3b3..8c0094a3152b 100644
--- a/pkgs/development/libraries/libowfat/default.nix
+++ b/pkgs/development/libraries/libowfat/default.nix
@@ -1,17 +1,29 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libowfat-0.31";
+  name = "libowfat-0.32";
 
   src = fetchurl {
     url = "https://www.fefe.de/libowfat/${name}.tar.xz";
-    sha256 = "04lagr62bd2cr0k8h59qfnx2klh2cf73k5kxsx8xrdybzhfarr6i";
+    sha256 = "1hcqg7pvy093bxx8wk7i4gvbmgnxz2grxpyy7b4mphidjbcv7fgl";
   };
 
+  # Dirty patch because 0.32 "moved headers to <libowfat/> upon install"
+  # but it breaks gatling-0.15 and opentracker-2018-05-26 ...
+  postPatch = ''
+    substituteInPlace GNUmakefile --replace \
+      'install -d $(DESTDIR)$(INCLUDEDIR)/libowfat' \
+      'install -d $(DESTDIR)$(INCLUDEDIR)'
+    substituteInPlace GNUmakefile --replace \
+      'install -m 644 $(INCLUDES) $(DESTDIR)$(INCLUDEDIR)/libowfat' \
+      'install -m 644 $(INCLUDES) $(DESTDIR)$(INCLUDEDIR)'
+  '';
+
   makeFlags = "prefix=$(out)";
+  enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
-    homepage = http://www.fefe.de/libowfat/;
+    homepage = https://www.fefe.de/libowfat/;
     license = licenses.gpl2;
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/libraries/science/math/cholmod-extra/default.nix b/pkgs/development/libraries/science/math/cholmod-extra/default.nix
new file mode 100644
index 000000000000..537fcb93a87e
--- /dev/null
+++ b/pkgs/development/libraries/science/math/cholmod-extra/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, gfortran, suitesparse, openblas }:
+let
+  suitesparse_ = suitesparse;
+in let
+  # SuiteSparse must use the same openblas
+  suitesparse = suitesparse_.override { inherit openblas; };
+in stdenv.mkDerivation rec {
+
+  name = "${pname}-${version}";
+  pname = "cholmod-extra";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "jluttine";
+    rev = version;
+    sha256 = "0hz1lfp0zaarvl0dv0zgp337hyd8np41kmdpz5rr3fc6yzw7vmkg";
+  };
+
+  buildInputs = [ suitesparse gfortran openblas ];
+
+  buildFlags = [
+    "BLAS=-lopenblas"
+  ];
+
+  installFlags = [
+    "INSTALL_LIB=$(out)/lib"
+    "INSTALL_INCLUDE=$(out)/include"
+  ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/jluttine/cholmod-extra;
+    description = "A set of additional routines for SuiteSparse CHOLMOD Module";
+    license = with licenses; [ gpl2Plus ];
+    maintainers = with maintainers; [ jluttine ];
+    platforms = with platforms; unix;
+  };
+
+}
diff --git a/pkgs/development/libraries/science/math/lrs/default.nix b/pkgs/development/libraries/science/math/lrs/default.nix
new file mode 100644
index 000000000000..3cf5c3619a9e
--- /dev/null
+++ b/pkgs/development/libraries/science/math/lrs/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, gmp}:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "lrs";
+  version = "7.0";
+
+  src = fetchurl {
+    url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-070.tar.gz";
+    sha256 = "1zjdmkjracz695k73c2pvipc0skpyn1wzagkhilsvcw9pqljpwg9";
+  };
+
+  buildInputs = [ gmp ];
+
+  preBuild = ''
+    export makeFlags="$makeFlags prefix=$out";
+  '';
+
+  meta = {
+    inherit version;
+    description = "Implementation of the reverse search algorithm for vertex enumeration/convex hull problems";
+    license = stdenv.lib.licenses.gpl2 ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = "http://cgm.cs.mcgill.ca/~avis/C/lrs.html";
+  };
+}
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index a4c2b3297145..f724ae009955 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -1,39 +1,82 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig
+{ stdenv, fetchFromGitHub, fetchpatch, meson, ninja, pkgconfig
 , wayland, libGL, wayland-protocols, libinput, libxkbcommon, pixman
 , xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa_noglu
+, libpng, ffmpeg_4
+, python3Packages # TODO: Temporary
 }:
 
-let pname = "wlroots";
-    version = "unstable-2018-03-16";
+let
+  pname = "wlroots";
+  version = "0.1";
+  meson480 = meson.overrideAttrs (oldAttrs: rec {
+    name = pname + "-" + version;
+    pname = "meson";
+    version = "0.48.0";
+
+    src = python3Packages.fetchPypi {
+      inherit pname version;
+      sha256 = "0qawsm6px1vca3babnqwn0hmkzsxy4w0gi345apd2qk3v0cv7ipc";
+    };
+    patches = builtins.filter # Remove gir-fallback-path.patch
+      (str: !(stdenv.lib.hasSuffix "gir-fallback-path.patch" str))
+      oldAttrs.patches;
+  });
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchFromGitHub {
     owner = "swaywm";
     repo = "wlroots";
-    rev = "9cc875429b40e2567b219f8e9ffd23316d136204";
-    sha256 = "1prhic3pyf9n65qfg5akzkc9qv2z3ab60dpcacr7wgr9nxrvnsdq";
+    rev = version;
+    sha256 = "0xfipgg2qh2xcf3a1pzx8pyh1aqpb9rijdyi0as4s6fhgy4w269c";
   };
 
-  # $out for the library and $bin for rootston
-  outputs = [ "out" "bin" ];
+  patches = [ (fetchpatch { # TODO: Only required for version 0.1
+    url = https://github.com/swaywm/wlroots/commit/be6210cf8216c08a91e085dac0ec11d0e34fb217.patch;
+    sha256 = "0njv7mr4ark603w79cxcsln29galh87vpzsx2dzkrl1x5x4i6cj5";
+  }) ];
+
+  # $out for the library, $bin for rootston, and $examples for the example
+  # programs (in examples) AND rootston
+  outputs = [ "out" "bin" "examples" ];
 
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson480 ninja pkgconfig ];
 
   buildInputs = [
     wayland libGL wayland-protocols libinput libxkbcommon pixman
     xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa_noglu
+    libpng ffmpeg_4
+  ];
+
+  mesonFlags = [
+    "-Dlibcap=enabled" "-Dlogind=enabled" "-Dxwayland=enabled" "-Dx11-backend=enabled"
+    "-Dxcb-icccm=enabled" "-Dxcb-xkb=enabled" "-Dxcb-errors=enabled"
   ];
 
-  # Install rootston (the reference compositor) to $bin
   postInstall = ''
-    mkdir -p $bin/bin
-    cp rootston/rootston $bin/bin/
-    mkdir $bin/lib
-    cp libwlroots* $bin/lib/
-    patchelf --set-rpath "$bin/lib:${stdenv.lib.makeLibraryPath buildInputs}" $bin/bin/rootston
-    mkdir $bin/etc
-    cp ../rootston/rootston.ini.example $bin/etc/rootston.ini
+    # Install rootston (the reference compositor) to $bin and $examples
+    for output in "$bin" "$examples"; do
+      mkdir -p $output/bin
+      cp rootston/rootston $output/bin/
+      mkdir $output/lib
+      cp libwlroots* $output/lib/
+      patchelf \
+        --set-rpath "$output/lib:${stdenv.lib.makeLibraryPath buildInputs}" \
+        $output/bin/rootston
+      mkdir $output/etc
+      cp ../rootston/rootston.ini.example $output/etc/rootston.ini
+    done
+    # Install ALL example programs to $examples:
+    # screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
+    # screenshot output-layout multi-pointer rotation tablet touch pointer
+    # simple
+    mkdir -p $examples/bin
+    for binary in $(find ./examples -executable -type f | grep -vE '\.so'); do
+      patchelf \
+        --set-rpath "$examples/lib:${stdenv.lib.makeLibraryPath buildInputs}" \
+        "$binary"
+      cp "$binary" $examples/bin/
+    done
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/ocaml-modules/zmq/default.nix b/pkgs/development/ocaml-modules/zmq/default.nix
new file mode 100644
index 000000000000..a792877e0590
--- /dev/null
+++ b/pkgs/development/ocaml-modules/zmq/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib, dune, czmq, stdint }:
+
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-zmq-${version}";
+  version = "20180726";
+  src = fetchFromGitHub {
+    owner = "issuu";
+    repo = "ocaml-zmq";
+    rev = "d312a8458d6b688f75470248f11875fbbfa5bb1a";
+    sha256 = "1f5l4bw78y4drabhyvmpj3z8k30bill33ca7bzhr02m55yf6gqpf";
+  };
+
+  patches = [
+    ./ocaml-zmq-issue43.patch
+  ];
+
+  buildInputs = [ ocaml findlib dune czmq ];
+
+  propagatedBuildInputs = [ stdint ];
+
+  buildPhase = "dune build -p zmq";
+
+  inherit (dune) installPhase;
+
+  meta = with stdenv.lib; {
+    description = "ZeroMQ bindings for OCaml";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ akavel ];
+    inherit (src.meta) homepage;
+    inherit (ocaml.meta) platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/zmq/lwt.nix b/pkgs/development/ocaml-modules/zmq/lwt.nix
new file mode 100644
index 000000000000..80c934b44d64
--- /dev/null
+++ b/pkgs/development/ocaml-modules/zmq/lwt.nix
@@ -0,0 +1,12 @@
+{ stdenv, ocaml, findlib, dune, zmq, ocaml_lwt }:
+
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-zmq-lwt-${version}";
+  inherit (zmq) version src installPhase meta;
+
+  buildInputs = [ ocaml findlib dune ];
+
+  propagatedBuildInputs = [ zmq ocaml_lwt ];
+
+  buildPhase = "dune build -p zmq-lwt";
+}
diff --git a/pkgs/development/ocaml-modules/zmq/ocaml-zmq-issue43.patch b/pkgs/development/ocaml-modules/zmq/ocaml-zmq-issue43.patch
new file mode 100644
index 000000000000..0d01e8b45f39
--- /dev/null
+++ b/pkgs/development/ocaml-modules/zmq/ocaml-zmq-issue43.patch
@@ -0,0 +1,11 @@
+--- source/zmq/src/caml_zmq_stubs.c	1970-01-01 01:00:01.000000000 +0100
++++ source/zmq/src/caml_zmq_stubs.c	1970-01-01 01:00:01.000000000 +0100
+@@ -35,7 +35,7 @@
+ #include "socket.h"
+ #include "msg.h"
+ 
+-#include <uint64.h>
++#include <ocaml_stdint/uint64.h>
+ 
+ /**
+  * Version
diff --git a/pkgs/development/python-modules/Logbook/default.nix b/pkgs/development/python-modules/Logbook/default.nix
new file mode 100644
index 000000000000..711f0f5457ba
--- /dev/null
+++ b/pkgs/development/python-modules/Logbook/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k, pytest, mock, brotli }:
+
+buildPythonPackage rec {
+  pname = "Logbook";
+  version = "1.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n8wzm2nc99gbvb44y2fbb59sy3c4awkwfgy4pbwv7z892ykw2iw";
+  };
+
+  checkInputs = [ pytest ] ++ lib.optionals (!isPy3k) [ mock ];
+
+  propagatedBuildInputs = [ brotli ];
+
+  checkPhase = ''
+    find tests -name \*.pyc -delete
+    py.test tests
+  '';
+
+  meta = {
+    homepage = https://pythonhosted.org/Logbook/;
+    description = "A logging replacement for Python";
+    license = lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/Nikola/default.nix b/pkgs/development/python-modules/Nikola/default.nix
index d0045c9fb7fd..bf4171dd3f97 100644
--- a/pkgs/development/python-modules/Nikola/default.nix
+++ b/pkgs/development/python-modules/Nikola/default.nix
@@ -25,30 +25,39 @@
 , markdown
 , phpserialize
 , jinja2
+, Babel
+, freezegun
+, pyyaml
+, toml
+, notebook
 }:
 
 buildPythonPackage rec {
   pname = "Nikola";
-  version = "7.8.15";
+  version = "8.0.1";
 
   # Nix contains only Python 3 supported version of doit, which is a dependency
   # of Nikola. Python 2 support would require older doit 0.29.0 (which on the
   # other hand doesn't support Python 3.3). So, just disable Python 2.
   disabled = !isPy3k;
 
-  checkInputs = [ pytest pytestcov mock glibcLocales ];
+  checkInputs = [ pytest pytestcov mock glibcLocales freezegun ];
 
   propagatedBuildInputs = [
     pygments pillow dateutil docutils Mako unidecode lxml Yapsy PyRSS2Gen
     Logbook blinker setuptools natsort requests piexif markdown phpserialize
-    jinja2 doit
+    jinja2 doit Babel pyyaml toml notebook
   ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "182b4b9254f0d710603ba491853429ad6ef3f955f3e718191336b44cfd649000";
+    sha256 = "18bq68f9v7xk9ahjl6x4k77yysq5g6g07ng2ndbg35kcsdnw4nk6";
   };
 
+  checkPhase = ''
+    LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" py.test .
+  '';
+
   meta = {
     homepage = https://getnikola.com/;
     description = "A modular, fast, simple, static website and blog generator";
diff --git a/pkgs/development/python-modules/boltztrap2/default.nix b/pkgs/development/python-modules/boltztrap2/default.nix
new file mode 100644
index 000000000000..56036fc97b34
--- /dev/null
+++ b/pkgs/development/python-modules/boltztrap2/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, spglib
+, numpy
+, scipy
+, matplotlib
+, ase
+, netcdf4
+, pytest
+, pythonOlder
+, cython
+, cmake
+}:
+
+buildPythonPackage rec {
+  version = "18.9.1";
+  pname = "BoltzTraP2";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b828ad2b3b3a40956ef866e462e4c82faf83be79348af3945d4e7cede8a53913";
+  };
+
+  buildInputs = [ cython cmake ];
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [ spglib numpy scipy matplotlib ase netcdf4 ];
+
+  # pypi release does no include files for tests
+  doCheck = false;
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.boltztrap.org/;
+    description = "Band-structure interpolator and transport coefficient calculator";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/brotli/default.nix b/pkgs/development/python-modules/brotli/default.nix
new file mode 100644
index 000000000000..5366eeb9c232
--- /dev/null
+++ b/pkgs/development/python-modules/brotli/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytest }:
+
+buildPythonPackage rec {
+  pname = "brotli";
+  version = "1.0.5";
+
+  # PyPI doesn't contain tests so let's use GitHub
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ssj7mnhpdpk7qnwr49qfd4gxhkmvbli5mhs274pz55cx1xp7xja";
+  };
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest python/tests
+  '';
+
+  meta = {
+    homepage = https://github.com/google/brotli;
+    description = "Generic-purpose lossless compression algorithm";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/cypari2/default.nix b/pkgs/development/python-modules/cypari2/default.nix
index 6df19e4c94be..a77e98dae4c8 100644
--- a/pkgs/development/python-modules/cypari2/default.nix
+++ b/pkgs/development/python-modules/cypari2/default.nix
@@ -11,11 +11,12 @@
 
 buildPythonPackage rec {
   pname = "cypari2";
-  version = "1.2.1";
+  # upgrade may break sage, please test the sage build or ping @timokau on upgrade
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0v2kikwf0advq8j76nwzhlacwj1yys9cvajm4fqgmasjdsnf1q4k";
+    sha256 = "04f00xp8aaz37v00iqg1mv5wjq00a5qhk8cqa93s13009s9x984r";
   };
 
   # This differs slightly from the default python installPhase in that it pip-installs
diff --git a/pkgs/development/tools/analysis/rr/default.nix b/pkgs/development/tools/analysis/rr/default.nix
index 9c2419b53589..cd2fb21209c4 100644
--- a/pkgs/development/tools/analysis/rr/default.nix
+++ b/pkgs/development/tools/analysis/rr/default.nix
@@ -17,6 +17,10 @@ stdenv.mkDerivation rec {
     patchShebangs .
   '';
 
+  # TODO: remove this preConfigure hook after 5.2.0 since it is fixed upstream
+  # see https://github.com/mozilla/rr/issues/2269
+  preConfigure = ''substituteInPlace CMakeLists.txt --replace "std=c++11" "std=c++14"'';
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
     cmake libpfm zlib python2Packages.python python2Packages.pexpect which procps gdb capnproto
@@ -49,7 +53,7 @@ stdenv.mkDerivation rec {
       time the same execution is replayed.
     '';
 
-    license = "custom";
+    license = with stdenv.lib.licenses; [ mit bsd2 ];
     maintainers = with stdenv.lib.maintainers; [ pierron thoughtpolice ];
     platforms = stdenv.lib.platforms.x86;
   };
diff --git a/pkgs/development/tools/kube-prompt/default.nix b/pkgs/development/tools/kube-prompt/default.nix
new file mode 100644
index 000000000000..2ea69a0c56b5
--- /dev/null
+++ b/pkgs/development/tools/kube-prompt/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "kube-prompt-${version}";
+  version = "1.0.4";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/c-bata/kube-prompt";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "c-bata";
+    repo = "kube-prompt";
+    sha256 = "09c2kjsk8cl7qgxbr1s7qd9br5shf7gccxvbf7nyi6wjiass9yg5";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = {
+  description = "An interactive kubernetes client featuring auto-complete using go-prompt";
+    license = lib.licenses.mit;
+    homepage = https://github.com/c-bata/kube-prompt;
+    maintainers = [ lib.maintainers.vdemeester ];
+  };
+}
diff --git a/pkgs/development/tools/kube-prompt/deps.nix b/pkgs/development/tools/kube-prompt/deps.nix
new file mode 100644
index 000000000000..393b69a2a331
--- /dev/null
+++ b/pkgs/development/tools/kube-prompt/deps.nix
@@ -0,0 +1,309 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "cloud.google.com/go";
+    fetch = {
+      type = "git";
+      url = "https://code.googlesource.com/gocloud";
+      rev =  "aad3f485ee528456e0768f20397b4d9dd941e755";
+      sha256 = "1cgabmg76axkbpm7zip3ym2mym6kwgc9cw9kil0inmckkh3x1ky8";
+    };
+  }
+  {
+    goPackagePath  = "github.com/c-bata/go-prompt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/c-bata/go-prompt";
+      rev =  "c52492ff1b386e5c0ba5271b5eaad165fab09eca";
+      sha256 = "14k8anchf0rcpxfbb2acrajdqrfspscbkn47m4py1zh5rkk6b9p9";
+    };
+  }
+  {
+    goPackagePath  = "github.com/ghodss/yaml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ghodss/yaml";
+      rev =  "0ca9ea5df5451ffdf184b4428c902747c2c11cd7";
+      sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gogo/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gogo/protobuf";
+      rev =  "636bf0302bc95575d69441b25a2603156ffdddf1";
+      sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/glog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/glog";
+      rev =  "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
+      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "b4deda0973fb4c70b50d226b1af49f3da59f5265";
+      sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/btree";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/btree";
+      rev =  "e89373fe6b4a7413d7acd6da1725b83ef713e6e4";
+      sha256 = "0jlkjjlf8ilifgsb2bv0jfgl4cxl1bypx7a6pjkwz3xf6k8jd7mj";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/gofuzz";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/gofuzz";
+      rev =  "24818f796faf91cd76ec7bddd72458fbced7a6c1";
+      sha256 = "0cq90m2lgalrdfrwwyycrrmn785rgnxa3l3vp9yxkvnv88bymmlm";
+    };
+  }
+  {
+    goPackagePath  = "github.com/googleapis/gnostic";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/gnostic";
+      rev =  "7c663266750e7d82587642f65e60bc4083f1f84e";
+      sha256 = "0yh3ckd7m0r9h50wmxxvba837d0wb1k5yd439zq4p1kpp4390z12";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gregjones/httpcache";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gregjones/httpcache";
+      rev =  "9cad4c3443a7200dd6400aef47183728de563a38";
+      sha256 = "0wjdwcwqqcx2d5y68qvhg6qyj977il5ijmnn9h9cd6wjbdy0ay6s";
+    };
+  }
+  {
+    goPackagePath  = "github.com/imdario/mergo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/imdario/mergo";
+      rev =  "9316a62528ac99aaecb4e47eadd6dc8aa6533d58";
+      sha256 = "1mvgn89vp39gcpvhiq4n7nw5ipj7fk6h03jgc6fjwgvwvss213pb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/json-iterator/go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/json-iterator/go";
+      rev =  "ab8a2e0c74be9d3be70b3184d9acc634935ded82";
+      sha256 = "1x3wz44p1238gpyzkiiilvvrq9q8dwjdm9kdidq65yjq0zcn0sq4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-colorable";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-colorable";
+      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
+      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev =  "0360b2af4f38e8d38c7fce2a9f4e702702d73a39";
+      sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev =  "ce7b0b5c7b45a81508558cd1dba6bb1e4ddb51bb";
+      sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-tty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-tty";
+      rev =  "931426f7535ac39720c8909d70ece5a41a2502a6";
+      sha256 = "00cb07v13xrfqm39m1j2h2zvj684gl9fzr51591i9a52a9m6xlj5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/modern-go/concurrent";
+    fetch = {
+      type = "git";
+      url = "https://github.com/modern-go/concurrent";
+      rev =  "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94";
+      sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
+    };
+  }
+  {
+    goPackagePath  = "github.com/modern-go/reflect2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/modern-go/reflect2";
+      rev =  "4b7aa43c6742a2c18fdef89dd197aaae7dac7ccd";
+      sha256 = "1721y3yr3dpx5dx5ashf063qczk2awy5zjir1jvp1h5hn7qz4i49";
+    };
+  }
+  {
+    goPackagePath  = "github.com/petar/GoLLRB";
+    fetch = {
+      type = "git";
+      url = "https://github.com/petar/GoLLRB";
+      rev =  "53be0d36a84c2a886ca057d34b6aa4468df9ccb4";
+      sha256 = "01xp3lcamqkvl91jg6ly202gdsgf64j39rkrcqxi6v4pbrcv7hz0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/peterbourgon/diskv";
+    fetch = {
+      type = "git";
+      url = "https://github.com/peterbourgon/diskv";
+      rev =  "5f041e8faa004a95c88a202771f4cc3e991971e6";
+      sha256 = "1mxpa5aad08x30qcbffzk80g9540wvbca4blc1r2qyzl65b8929b";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/term";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/term";
+      rev =  "cda20d4ac917ad418d86e151eff439648b06185b";
+      sha256 = "08frhz411dwyli5spfxn32d3ni9mrgdav51lmg8a1wpdmw0r0wwp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/pflag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/pflag";
+      rev =  "583c0c0531f06d5278b7d917446061adc344b5cd";
+      sha256 = "0nr4mdpfhhk94hq4ymn5b2sxc47b29p1akxd8b0hx4dvdybmipb5";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "a2144134853fc9a27a7b1e3eb4f19f1a76df13c9";
+      sha256 = "0hjjk6k9dq7zllwsw9icdfbli12ii379q2lajd6l7lyw72wy28by";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "a680a1efc54dd51c040b3b5ce4939ea3cf2ea0d1";
+      sha256 = "018zmn4kmg2mbngcciqal54slc3pl4ry5vlv0bw36fcxvnazxnbp";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/oauth2";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/oauth2";
+      rev =  "ef147856a6ddbb60760db74283d2424e98c87bff";
+      sha256 = "1q1vm1z40fx1grlrm7az4rln6v5pj9xi5n1cjqg5xgq4dsk9132y";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "ac767d655b305d4e9612f5f6e33120b9176c4ad4";
+      sha256 = "1ds29n5lh4j21hmzxz7vk7hv1k6sixc7f0zsdc9xqdg0j7d212zm";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev =  "f21a4dfb5e38f5895301dc265a8def02365cc3d0";
+      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/time";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/time";
+      rev =  "fbb02b2291d28baffd63558aa44b4b56f178d650";
+      sha256 = "0jjqcv6rzihlgg4i797q80g1f6ch5diz2kxqh6488gwkb6nds4h4";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/appengine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/appengine";
+      rev =  "b1f26356af11148e710935ed1ac8a7f5702c7612";
+      sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/inf.v0";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-inf/inf";
+      rev =  "d2d2541c53f18d2a059457998ce2876cc8e67cbf";
+      sha256 = "00k5iqjcp371fllqxncv7jkf80hn1zww92zm78cclbcn4ybigkng";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/api";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/api";
+      rev =  "072894a440bdee3a891dea811fe42902311cd2a3";
+      sha256 = "1hlbfwak4adwkj74jdiw8kmapri9rqmmjssncqiq0xnwlkcyn0ig";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/apimachinery";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/apimachinery";
+      rev =  "103fd098999dc9c0c88536f5c9ad2e5da39373ae";
+      sha256 = "04navnpm59d75dhlz07rmay7m2izrf4m0i9xklxzqg7mlk9g20jc";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/client-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/client-go";
+      rev =  "7d04d0e2a0a1a4d4a1cd6baa432a2301492e4e65";
+      sha256 = "06rszpgckx9gmqz9gbq8wnl39d1dnl28wdgrygj2fhz5prhj0x4s";
+    };
+  }
+]
\ No newline at end of file
diff --git a/pkgs/development/tools/misc/arcanist/default.nix b/pkgs/development/tools/misc/arcanist/default.nix
index f6ff4ad3650d..7810ba6349ce 100644
--- a/pkgs/development/tools/misc/arcanist/default.nix
+++ b/pkgs/development/tools/misc/arcanist/default.nix
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ php makeWrapper flex ];
 
   unpackPhase = ''
-    cp -R ${libphutil} libphutil
-    cp -R ${arcanist} arcanist
+    cp -aR ${libphutil} libphutil
+    cp -aR ${arcanist} arcanist
     chmod +w -R libphutil arcanist
   '';
 
diff --git a/pkgs/development/tools/vgo2nix/default.nix b/pkgs/development/tools/vgo2nix/default.nix
new file mode 100644
index 000000000000..ad556606c9ae
--- /dev/null
+++ b/pkgs/development/tools/vgo2nix/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, lib
+, buildGoPackage
+, go
+, makeWrapper
+, nix-prefetch-git
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "vgo2nix-${version}";
+  version = "unstable-2018-10-14";
+  goPackagePath = "github.com/adisbladis/vgo2nix";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  src = fetchFromGitHub {
+    owner = "adisbladis";
+    repo = "vgo2nix";
+    rev = "a36137a2b9675f5e9b7e0a7840bc9fe9f2414d4e";
+    sha256 = "1658hr1535v8w3s41q0bcgk8hmisjn8gcw7i3n2d2igszn1dp0q4";
+  };
+
+  goDeps = ./deps.nix;
+
+  allowGoReference = true;
+
+  postInstall = with stdenv; let
+    binPath = lib.makeBinPath [ nix-prefetch-git go ];
+  in ''
+    wrapProgram $bin/bin/vgo2nix --prefix PATH : ${binPath}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Convert go.mod files to nixpkgs buildGoPackage compatible deps.nix files";
+    homepage = https://github.com/adisbladis/vgo2nix;
+    license = licenses.mit;
+    maintainers = with maintainers; [ adisbladis ];
+  };
+
+}
diff --git a/pkgs/development/tools/vgo2nix/deps.nix b/pkgs/development/tools/vgo2nix/deps.nix
new file mode 100644
index 000000000000..b8327cd6069f
--- /dev/null
+++ b/pkgs/development/tools/vgo2nix/deps.nix
@@ -0,0 +1,12 @@
+[
+
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "ded554d0681e";
+      sha256 = "04rlq9hc3ccww9sbsrl48fl6wbjprb136rqxyr7dmgfj444aml56";
+    };
+  }
+]
diff --git a/pkgs/development/tools/wabt/default.nix b/pkgs/development/tools/wabt/default.nix
index 20c9a71aadd5..dade09ee5f6e 100644
--- a/pkgs/development/tools/wabt/default.nix
+++ b/pkgs/development/tools/wabt/default.nix
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/WebAssembly/wabt;
     license = licenses.asl20;
     maintainers = with maintainers; [ ekleog ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/games/scummvm/games.nix b/pkgs/games/scummvm/games.nix
new file mode 100644
index 000000000000..1ccb351af4ab
--- /dev/null
+++ b/pkgs/games/scummvm/games.nix
@@ -0,0 +1,125 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, unzip, writeText
+, scummvm }:
+
+let
+  desktopItem = name: short: long: description: makeDesktopItem {
+    categories  = "Game;AdventureGame;";
+    comment     = description;
+    desktopName = long;
+    exec        = "@out@/bin/${short}";
+    genericName = description;
+    icon        = "scummvm";
+    name        = name;
+  };
+
+  run = name: short: code: writeText "${short}.sh" ''
+    #!${stdenv.shell} -eu
+
+    exec ${scummvm}/bin/scummvm \
+      --path=@out@/share/${name} \
+      --fullscreen \
+      ${code}
+  '';
+
+  generic = { plong, pshort, pcode, description, version, files, docs ? [ "readme.txt" ], ... } @attrs:
+    let
+      attrs' = builtins.removeAttrs attrs [ "plong" "pshort" "pcode" "description" "docs" "files" "version" ];
+      pname = lib.replaceStrings [ " " ":" ] [ "-" "" ] (lib.toLower plong);
+    in stdenv.mkDerivation ({
+      name = "${pname}-${version}";
+
+      nativeBuildInputs = [ unzip ];
+
+      dontBuild = true;
+      dontFixup = true;
+
+      installPhase = ''
+        runHook preInstall
+
+        mkdir -p $out/bin $out/share/{applications,${pname},doc/${pname}}
+
+        ${lib.concatStringsSep "\n" (map (f: "mv ${f} $out/share/doc/${pname}") docs)}
+        ${lib.concatStringsSep "\n" (map (f: "mv ${f} $out/share/${pname}") files)}
+
+        substitute ${run pname pshort pcode} $out/bin/${pshort} \
+          --subst-var out
+        substitute ${desktopItem pname pshort plong description}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop \
+          --subst-var out
+
+        chmod 0755 $out/bin/${pshort}
+
+        runHook postInstall
+      '';
+
+      meta = with stdenv.lib; {
+        homepage = https://www.scummvm.org;
+        license = licenses.free; # refer to the readme for exact wording
+        maintainers = with maintainers; [ peterhoeg ];
+        inherit description;
+        inherit (scummvm.meta) platforms;
+      };
+    } // attrs');
+
+in {
+  beneath-a-steel-sky = generic rec {
+    plong = "Beneath a Steel Sky";
+    pshort = "bass";
+    pcode = "sky";
+    description = "2D point-and-click science fiction thriller set in a bleak vision of the future";
+    version = "1.2";
+    src = fetchurl {
+      url = "mirror://sourceforge/scummvm/${pshort}-cd-${version}.zip";
+      sha256 = "14s5jz67kavm8l15gfm5xb7pbpn8azrv460mlxzzvdpa02a9n82k";
+    };
+    files = [ "sky.*" ];
+  };
+
+  drascula-the-vampire-strikes-back = generic rec {
+    plong = "Drascula: The Vampire Strikes Back";
+    pshort = "drascula";
+    pcode = "drascula";
+    description = "Spanish 2D classic point & click style adventure with tons of humor and an easy interface";
+    version = "1.0";
+    # srcs = {
+      src = fetchurl {
+        url = "mirror://sourceforge/scummvm/${pshort}-${version}.zip";
+        sha256 = "1pj29rpb754sn6a56f8brfv6f2m1p5qgaqik7d68pfi2bb5zccdp";
+      };
+      # audio = fetchurl {
+        # url = "mirror://sourceforge/scummvm/${pshort}-audio-flac-2.0.zip";
+        # sha256 = "1zmqhrby8f5sj1qy6xjdgkvk9wyhr3nw8ljrrl58fmxb83x1rryw";
+      # };
+    # };
+    sourceRoot = ".";
+    docs = [ "readme.txt" "drascula.doc" ];
+    files = [ "Packet.001" ];
+  };
+
+  flight-of-the-amazon-queen = generic rec {
+    plong = "Flight of the Amazon Queen";
+    pshort = "fotaq";
+    pcode = "queen";
+    description = "2D point-and-click adventure game set in the 1940s";
+    version = "1.1";
+    src = fetchurl {
+      url = "mirror://sourceforge/scummvm/FOTAQ_Talkie-${version}.zip";
+      sha256 = "1a6q71q1dl9vvw2qqsxk5h1sv0gaqy6236zr5905w2is01gdsp52";
+    };
+    sourceRoot = ".";
+    files = [ "*.1c" ];
+  };
+
+  lure-of-the-temptress = generic rec {
+    plong = "Lure of the Temptress";
+    pshort = "lott";
+    pcode = "lure";
+    description = "2D point-and-click adventure game with a fantasy theme";
+    version = "1.1";
+    src = fetchurl {
+      url = "mirror://sourceforge/scummvm/lure-${version}.zip";
+      sha256 = "0201i70qcs1m797kvxjx3ygkhg6kcl5yf49sihba2ga8l52q45zk";
+    };
+    docs = [ "README" "*.txt" "*.pdf" "*.PDF" ];
+    files = [ "*.vga" ];
+  };
+}
diff --git a/pkgs/misc/themes/matcha/default.nix b/pkgs/misc/themes/matcha/default.nix
index e23fb7ff47cf..9967de786399 100644
--- a/pkgs/misc/themes/matcha/default.nix
+++ b/pkgs/misc/themes/matcha/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "matcha-${version}";
-  version = "2018-10-12";
+  version = "2018-10-21";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = "matcha";
-    rev = "c1c91db44d9e28cc71af019784a77175a60a7b9d";
-    sha256 = "0sr805ghgh8sr9nncs693b9p756nmi1l4d8mfywj6z219jhy77qv";
+    rev = version;
+    sha256 = "112xfnwlq9ih72qbfrin78ly7bc4i94my3i6s7yhc46qg1lncl73";
   };
 
   buildInputs = [ gdk_pixbuf librsvg ];
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
new file mode 100644
index 000000000000..5aa033348d4e
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -0,0 +1,18 @@
+{ stdenv, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+
+with stdenv.lib;
+
+buildLinux (args // rec {
+  version = "4.19";
+
+  # modDirVersion needs to be x.y.z, will automatically add .0 if needed
+  modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
+
+  # branchVersion needs to be x.y
+  extraMeta.branch = concatStrings (intersperse "." (take 2 (splitString "." version)));
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
+    sha256 = "18a92z17alh5kkvjv7l9z8wk5jgdb6raawdfkpwx9bi8amjzas0c";
+  };
+} // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/nfs-utils/default.nix b/pkgs/os-specific/linux/nfs-utils/default.nix
index 7235d8415f55..19a5184f8962 100644
--- a/pkgs/os-specific/linux/nfs-utils/default.nix
+++ b/pkgs/os-specific/linux/nfs-utils/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchpatch, lib, pkgconfig, utillinux, libcap, libtirpc, libevent
 , sqlite, kerberos, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers
-, buildEnv
+, buildEnv, python3
 }:
 
 let
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libtirpc libcap libevent sqlite lvm2
     libuuid keyutils kerberos tcp_wrappers
+    python3
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/clickhouse/default.nix b/pkgs/servers/clickhouse/default.nix
index 2dcbf6737e66..720898196c85 100644
--- a/pkgs/servers/clickhouse/default.nix
+++ b/pkgs/servers/clickhouse/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   name = "clickhouse-${version}";
-  version = "18.10.3";
+  version = "18.12.17";
 
   src = fetchFromGitHub {
     owner  = "yandex";
     repo   = "ClickHouse";
     rev    = "v${version}-stable";
-    sha256 = "1fm7jh9cxalvlic6pw58gblisvmvb6j0jzf3vr8p6cv7iw9238sp";
+    sha256 = "0gkad6x6jlih30wal8nilhfqr3z22dzgz6m22pza3bhaba2ikk53";
   };
 
   nativeBuildInputs = [ cmake libtool ninja ];
diff --git a/pkgs/servers/corosync/default.nix b/pkgs/servers/corosync/default.nix
index 145052ff8c3a..d1dd7c05929d 100644
--- a/pkgs/servers/corosync/default.nix
+++ b/pkgs/servers/corosync/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, makeWrapper, pkgconfig, nss, nspr, libqb
-, dbus, librdmacm, libibverbs, libstatgrab, net_snmp
+, dbus, rdma-core, libstatgrab, net_snmp
 , enableDbus ? false
 , enableInfiniBandRdma ? false
 , enableMonitoring ? false
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     nss nspr libqb
   ] ++ optional enableDbus dbus
-    ++ optional enableInfiniBandRdma [ librdmacm libibverbs ]
+    ++ optional enableInfiniBandRdma rdma-core
     ++ optional enableMonitoring libstatgrab
     ++ optional enableSnmp net_snmp;
 
@@ -44,6 +44,17 @@ stdenv.mkDerivation rec {
     "LOGROTATEDIR=$(out)/etc/logrotate.d"
   ];
 
+  preConfigure = optionalString enableInfiniBandRdma ''
+    # configure looks for the pkg-config files
+    # of librdmacm and libibverbs
+    # Howver, rmda-core does not provide a pkg-config file
+    # We give the flags manually here:
+    export rdmacm_LIBS=-lrdmacm
+    export rdmacm_CFLAGS=" "
+    export ibverbs_LIBS=-libverbs
+    export ibverbs_CFLAGS=" "
+  '';
+
   postInstall = ''
     wrapProgram $out/bin/corosync-blackbox \
       --prefix PATH ":" "$out/sbin:${libqb}/sbin"
diff --git a/pkgs/servers/coturn/default.nix b/pkgs/servers/coturn/default.nix
index 0891b72cd1e9..9bf461938cdb 100644
--- a/pkgs/servers/coturn/default.nix
+++ b/pkgs/servers/coturn/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "coturn-${version}";
-  version = "4.5.0.7";
+  version = "4.5.0.8";
 
   src = fetchFromGitHub {
     owner = "coturn";
     repo = "coturn";
     rev = "${version}";
-    sha256 = "1781fx8lqgc54j973xzgq9d7k3g2j03va82jb4217gd3a93pa65l";
+    sha256 = "1l2q76lzv2gff832wrqd9dcilyaqx91pixyz335822ypra89mdp8";
   };
 
   buildInputs = [ openssl libevent ];
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     license = with licenses; [ bsd3 ];
     description = "A TURN server";
     platforms = platforms.all;
+    broken = stdenv.isDarwin; # 2018-10-21
     maintainers = [ maintainers.ralith ];
   };
 }
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index ab2ff85939f6..afa0c6c0f938 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, lua }:
 
 stdenv.mkDerivation rec {
-  version = "4.0.11";
+  version = "5.0.0";
   name = "redis-${version}";
 
   src = fetchurl {
     url = "http://download.redis.io/releases/${name}.tar.gz";
-    sha256 = "1fqvxlpaxr80iykyvpf1fia8rxh4zz8paf5nnjncsssqwwxfflzw";
+    sha256 = "194rvj3wzdil2rny93vq9g9vlqnb7gv4vnwaklybgcj00qnqpjbh";
   };
 
   buildInputs = [ lua ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = https://redis.io;
     description = "An open source, advanced key-value store";
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = [ maintainers.berdario ];
   };
diff --git a/pkgs/servers/plex/default.nix b/pkgs/servers/plex/default.nix
index f0f89c3f0fa0..b562df681a06 100644
--- a/pkgs/servers/plex/default.nix
+++ b/pkgs/servers/plex/default.nix
@@ -37,6 +37,7 @@ in stdenv.mkDerivation rec {
     # Now we need to patch up the executables and libraries to work on Nix.
     # Side note: PLEASE don't put spaces in your binary names. This is stupid.
     for bin in "Plex Media Server"              \
+               "Plex Commercial Skipper"        \
                "Plex DLNA Server"               \
                "Plex Media Scanner"             \
                "Plex Relay"                     \
diff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix
index 385674c12a86..032d2cb0855b 100644
--- a/pkgs/servers/samba/4.x.nix
+++ b/pkgs/servers/samba/4.x.nix
@@ -22,11 +22,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   name = "samba-${version}";
-  version = "4.7.9";
+  version = "4.7.10";
 
   src = fetchurl {
     url = "mirror://samba/pub/samba/stable/${name}.tar.gz";
-    sha256 = "1v0pd2k4rfdzcqbzb3g5gjiy8rwqamppwzwy5swz4x5rxyr5567c";
+    sha256 = "0w5y6a7kiw5ap7hd84yglzk7cjax6lxlszd0wz1sxnmqx4a6hn9l";
   };
 
   outputs = [ "out" "dev" "man" ];
diff --git a/pkgs/test/openftd/default.nix b/pkgs/test/openftd/default.nix
deleted file mode 100644
index a5b817de40e9..000000000000
--- a/pkgs/test/openftd/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-
-Systeemvereisten
-
-* libz >= 1.1.4
-* glib >= 2.2.0
-* gtk >= 2.2.0
-
-Glib 2 is een 'dependency' van gtk2. Als je gtk2 op je systeem hebt staan dan heb je ongetwijfeld ook glib2 op je systeem. Zie: www.gtk.org voor meer informatie omtrent Glib/gtk2
-Alhoewel FTD4Linux gtk 2.2 als minimumvereiste heeft raden we toch aan om gtk 2.4 te gebruiken. Dit vanwege een bug in gtk versies 2.2.2 t/m 2.2.4.
-
-* libxml2 >= 2.2.5
-* libxslt >= 1.0.5
-
-* mozilla (gecompileerd met gtk2 support)
-Mozilla is de opensource browser die is voortgekomen uit het vrijgeven van de netscape navigator source code. Als je mozilla reeds op je systeem hebt staan zou je even moeten nagaan of deze tegen gtk2 is gelinkt. Dit kun je doen met behulp van het programma ldd.
-ldd /usr/X11R6/lib/mozilla-gtk2/libgtkembedmoz.so | grep gtk
-/usr/X11R6/lib/mozilla-gtk2/libgtkembedmoz.so:
-libgtk-x11-2.0.so.200 => /usr/X11R6/lib/libgtk-x11-2.0.so.200 (0x282c3000)
-In de output van het ldd programma kun je zien of er inderdaad wordt gelink tegen gtk2. (libgtk-x11-2.0.so.200).
-Heb je geen mozilla, maar heb je wel de firebird/firefox variant geinstalleerd staan dan kun je ook met de mozilla compatible onderdelen van firebird/firefox aan de gang. Je hebt hier echter wel de header (development) bestanden bij nodig. Controleer dus even of jouw firebird/firefox installatie hiermee is geleverd. (gtkembedmoz/gtkmozembed.h) Een 'locate gtkmozembed.h' zou hier snel genoeg uitsluitsel over moeten geven.
-
-* OpenSSL
-* LibCURL
-
-*/
-
-{ stdenv, fetchurl
-, zlib, libxml2, libxslt, firefox, openssl, curl
-, glib, gtk, libgnomeui, libgtkhtml
-, pkgconfig, dbus-glib, realCurl, pcre, libsexy, gtkspell, libnotify
-}:
- 
-stdenv.mkDerivation {
-  name = "openftd-0.98.6";
-  #builder = ./builder.sh;
-
-  src = fetchurl {
-    url = http://speeldoos.eweka.nl/~paul/openftd/openftd-1.0.1.tar.bz2;
-    sha256 = "e0710865f852fdf209949788a1ced65e9ecf82b4eaa0992a7a1dde1511a3b6e7";
-  };
-
-  buildInputs = [
-    zlib libxml2 libxslt firefox openssl curl
-    glib gtk pkgconfig dbus-glib realCurl pcre libsexy libgnomeui gtkspell libnotify libgtkhtml
-  ];
-
-  configureFlags="--with-libcurl-libraries=${curl.out}/lib --with-libcurl-headers=${curl.dev}/include --with-pcre_libraries=${pcre.out}/lib --with-pcre_headers=${pcre.dev}/include";
-}
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index 2fbfff287cb9..09c29517af40 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -1,16 +1,17 @@
 { stdenv, pkgconfig, lxc, buildGoPackage, fetchurl
 , makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq
-, squashfsTools, iproute, iptables, ebtables
+, squashfsTools, iproute, iptables, ebtables, libcap, dqlite
+, sqlite-replication
 }:
 
 buildGoPackage rec {
-  name = "lxd-3.0.0";
+  name = "lxd-3.0.2";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://github.com/lxc/lxd/releases/download/${name}/${name}.tar.gz";
-    sha256 = "0m5prdf9sk8k5bws1zva4n9ycggmy76wnjr6wb423066pszz24ww";
+    sha256 = "1ha8ijzblf15p0kcpgwshswz6s2rdd2b4qnzjw3l72ww620hr84j";
   };
 
   preBuild = ''
@@ -22,6 +23,8 @@ buildGoPackage rec {
     popd
   '';
 
+  buildFlags = [ "-tags libsqlite3" ];
+
   postInstall = ''
     # binaries from test/
     rm $bin/bin/{deps,macaroon-identity}
@@ -32,7 +35,7 @@ buildGoPackage rec {
   '';
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
-  buildInputs = [ lxc acl ];
+  buildInputs = [ lxc acl libcap dqlite sqlite-replication ];
 
   meta = with stdenv.lib; {
     description = "Daemon based on liblxc offering a REST API to manage containers";
diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix
index 53aaf1004906..85b2c280b8f7 100644
--- a/pkgs/tools/compression/zstd/default.nix
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -5,10 +5,10 @@
 
 stdenv.mkDerivation rec {
   name = "zstd-${version}";
-  version = "1.3.6";
+  version = "1.3.7";
 
   src = fetchFromGitHub {
-    sha256 = "1x4a8r4m68m93q52ffxvaip9nnwx9yqvd1m90v80777c11s20a4n";
+    sha256 = "04pdim2bgbbryalim6y8fflm9njpbzxh7148hi4pa828rn9p0jim";
     rev = "v${version}";
     repo = "zstd";
     owner = "facebook";
diff --git a/pkgs/tools/misc/skim/default.nix b/pkgs/tools/misc/skim/default.nix
index 54a6500f7797..f1df06912051 100644
--- a/pkgs/tools/misc/skim/default.nix
+++ b/pkgs/tools/misc/skim/default.nix
@@ -2,23 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   name = "skim-${version}";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "lotabout";
     repo = "skim";
     rev = "v${version}";
-    sha256 = "1k7l93kvf5ad07yn69vjfv6znwb9v38d53xa1ij195x4img9f34j";
+    sha256 = "1b3l0h69cm70669apsgzp7qw1k5fi2gbk9176hjr9iypbdiwjyir";
   };
 
   outputs = [ "out" "vim" ];
 
-  cargoSha256 = "18lgjh1b1wfm9xsd6y6slfj1i3dwrvzkzszdzk3lmqx1f8515gx7";
+  cargoSha256 = "0ksxyivdrrs3z5laxkqzq4lql6w0hqf92daazanxkw8vfcksbzsm";
 
   patchPhase = ''
     sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/skim.vim
-    # fix Cargo.lock version
-    sed -i -e '168s|0.4.0|0.5.1|' Cargo.lock
   '';
 
   postInstall = ''
@@ -36,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Fuzzy Finder in rust!";
+    description = "Command-line fuzzy finder written in Rust";
     homepage = https://github.com/lotabout/skim;
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
diff --git a/pkgs/tools/misc/ttyplot/default.nix b/pkgs/tools/misc/ttyplot/default.nix
new file mode 100644
index 000000000000..9fdac0b8b9cc
--- /dev/null
+++ b/pkgs/tools/misc/ttyplot/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+stdenv.mkDerivation rec {
+  name = "ttyplot-${version}";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "tenox7";
+    repo = "ttyplot";
+    rev = version;
+    sha256 = "1i54hw7fad42gdlrlqg7s0vhsq01yxzdi2s0r3svwbb1sr7ynzn1";
+  };
+
+  buildInputs = [ ncurses ];
+
+  buildPhase = ''
+   ${stdenv.cc}/bin/cc ./ttyplot.c -lncurses -o ttyplot
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ttyplot $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "a simple general purpose plotting utility for tty with data input from stdin.";
+    homepage = https://github.com/tenox7/ttyplot;
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ lassulus ];
+  };
+}
diff --git a/pkgs/tools/networking/network-manager/openvpn/default.nix b/pkgs/tools/networking/network-manager/openvpn/default.nix
index d911acc58f4d..952bbf4999e3 100644
--- a/pkgs/tools/networking/network-manager/openvpn/default.nix
+++ b/pkgs/tools/networking/network-manager/openvpn/default.nix
@@ -3,13 +3,13 @@
 
 let
   pname = "NetworkManager-openvpn";
-  version = "1.8.6";
+  version = "1.8.8";
 in stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1ksij9438f2lrwkg287qjlfaxja6jgmqxqap96585r3nf5zj69ch";
+    sha256 = "19qdl7x5x7f9mj8vm25mck6gg8ljbixi0dw2rqngwl2nzpcxwg52";
   };
 
   patches = [
diff --git a/pkgs/tools/package-management/dpkg/default.nix b/pkgs/tools/package-management/dpkg/default.nix
index 99d59ae65de9..8cb8237c538c 100644
--- a/pkgs/tools/package-management/dpkg/default.nix
+++ b/pkgs/tools/package-management/dpkg/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "dpkg-${version}";
-  version = "1.19.0.5";
+  version = "1.19.2";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/dpkg/dpkg_${version}.tar.xz";
-    sha256 = "1dc5kp3fqy1k66fly6jfxkkg7w6d0jy8szddpfyc2xvzga94d041";
+    sha256 = "0w8vhvwnhvwq3k3cw9d1jiy61v4r81wv6q5rkliq2nq6z0naxwpq";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/typesetting/scdoc/default.nix b/pkgs/tools/typesetting/scdoc/default.nix
index 270fd7da1717..5789f51abd9c 100644
--- a/pkgs/tools/typesetting/scdoc/default.nix
+++ b/pkgs/tools/typesetting/scdoc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "scdoc-${version}";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchurl {
     url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz";
-    sha256 = "0hcwpyy97afwq40qn8jq75f1b2p0172lil1v0hs9a0rislpqk5nm";
+    sha256 = "0a9sxifzsbj24kjnpc0525i91ni2vkwizhgvwx1m9shvfkiisnc6";
   };
 
   postPatch = ''
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 0f243df540da..a0f611dd9611 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -322,6 +322,9 @@ mapAliases ({
   xpraGtk3 = xpra; # added 2018-09-13
   youtubeDL = youtube-dl;  # added 2014-10-26
 
+  # TODO(ekleog): add ‘wasm’ alias to ‘ocamlPackages.wasm’ after 19.03
+  # branch-off
+
   # added 2017-05-27
   wineMinimal = winePackages.minimal;
   wineFull = winePackages.full;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0ce94155af96..3d227e32c3ee 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2368,6 +2368,8 @@ with pkgs;
 
   carp = callPackage ../development/compilers/carp { };
 
+  cholmod-extra = callPackage ../development/libraries/science/math/cholmod-extra { };
+
   emscriptenVersion = "1.37.36";
 
   emscripten = callPackage ../development/compilers/emscripten { };
@@ -5739,6 +5741,8 @@ with pkgs;
 
   tty-clock = callPackage ../tools/misc/tty-clock { };
 
+  ttyplot = callPackage ../tools/misc/ttyplot { };
+
   ttyrec = callPackage ../tools/misc/ttyrec { };
 
   ttylog = callPackage ../tools/misc/ttylog { };
@@ -8569,6 +8573,8 @@ with pkgs;
 
   kubectx = callPackage ../development/tools/kubectx { };
 
+  kube-prompt = callPackage ../development/tools/kube-prompt { };
+
   kustomize = callPackage ../development/tools/kustomize { };
 
   kythe = callPackage ../development/tools/kythe { };
@@ -10246,6 +10252,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreAudio CoreServices AudioUnit;
   };
 
+  libaosd = callPackage ../development/libraries/libaosd { };
+
   libabw = callPackage ../development/libraries/libabw { };
 
   libamqpcpp = callPackage ../development/libraries/libamqpcpp { };
@@ -12304,6 +12312,29 @@ with pkgs;
 
   sqlite-jdbc = callPackage ../servers/sql/sqlite/jdbc { };
 
+  sqlite-replication = sqlite.overrideAttrs (oldAttrs: rec {
+    name = "sqlite-${version}";
+    version = "3.24.0+replication3";
+    src = pkgs.fetchFromGitHub {
+      owner = "CanonicalLtd";
+      repo = "sqlite";
+      rev = "version-${version}";
+      sha256 = "19557b7aick1pxk0gw013cf5jy42i7539qn1ziza8dzy16a6zs8b";
+    };
+    nativeBuildInputs = [ pkgs.tcl ];
+    configureFlags = oldAttrs.configureFlags ++ [
+      "--enable-replication"
+      "--disable-amalgamation"
+      "--disable-tcl"
+    ];
+    preConfigure = ''
+      echo "D 2018-08-01T13:22:18" > manifest
+      echo -n "c94dbda1a570c1ab180e7694afd3cc7116268c06" > manifest.uuid
+    '';
+  });
+
+  dqlite = callPackage ../development/libraries/dqlite { };
+
   sqlcipher = lowPrio (callPackage ../development/libraries/sqlcipher {
     readline = null;
     ncurses = null;
@@ -12903,6 +12934,8 @@ with pkgs;
 
   leaps = callPackage ../development/tools/leaps { };
 
+  vgo2nix = callPackage ../development/tools/vgo2nix { };
+
   ws = callPackage ../development/tools/ws { };
 
   ### DEVELOPMENT / JAVA MODULES
@@ -14212,6 +14245,16 @@ with pkgs;
       ];
   };
 
+  linux_4_19 = callPackage ../os-specific/linux/kernel/linux-4.19.nix {
+    kernelPatches =
+      [ kernelPatches.bridge_stp_helper
+        # See pkgs/os-specific/linux/kernel/cpu-cgroup-v2-patches/README.md
+        # when adding a new linux version
+        # kernelPatches.cpu-cgroup-v2."4.11"
+        kernelPatches.modinst_arg_list_too_long
+      ];
+  };
+
   linux_testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
@@ -14404,7 +14447,7 @@ with pkgs;
   linux = linuxPackages.kernel;
 
   # Update this when adding the newest kernel major version!
-  linuxPackages_latest = linuxPackages_4_18;
+  linuxPackages_latest = linuxPackages_4_19;
   linux_latest = linuxPackages_latest.kernel;
 
   # Build the kernel modules for the some of the kernels.
@@ -14415,6 +14458,7 @@ with pkgs;
   linuxPackages_4_9 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_9);
   linuxPackages_4_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_14);
   linuxPackages_4_18 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_18);
+  linuxPackages_4_19 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_19);
   # Don't forget to update linuxPackages_latest!
 
   # Intentionally lacks recurseIntoAttrs, as -rc kernels will quite likely break out-of-tree modules and cause failed Hydra builds.
@@ -15816,6 +15860,8 @@ with pkgs;
 
   brackets = callPackage ../applications/editors/brackets { gconf = gnome2.GConf; };
 
+  brave = callPackage ../applications/networking/browsers/brave { };
+
   notmuch-bower = callPackage ../applications/networking/mailreaders/notmuch-bower { };
 
   bristol = callPackage ../applications/audio/bristol { };
@@ -18593,7 +18639,7 @@ with pkgs;
   rclone = callPackage ../applications/networking/sync/rclone { };
 
   rclone-browser = libsForQt5.callPackage ../applications/networking/sync/rclone/browser.nix { };
-  
+
   rcs = callPackage ../applications/version-management/rcs { };
 
   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
@@ -20438,6 +20484,12 @@ with pkgs;
 
   scummvm = callPackage ../games/scummvm { };
 
+  inherit (callPackage ../games/scummvm/games.nix { })
+    beneath-a-steel-sky
+    drascula-the-vampire-strikes-back
+    flight-of-the-amazon-queen
+    lure-of-the-temptress;
+
   scorched3d = callPackage ../games/scorched3d { };
 
   scrolls = callPackage ../games/scrolls { };
@@ -21066,6 +21118,8 @@ with pkgs;
   liblapackWithAtlas = liblapack;
 
   liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
+  
+  lrs = callPackage ../development/libraries/science/math/lrs { };
 
   m4ri = callPackage ../development/libraries/science/math/m4ri { };
 
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index c9df0f908ee2..9f9bba933a17 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -753,6 +753,10 @@ let
 
     zed = callPackage ../development/ocaml-modules/zed { };
 
+    zmq = callPackage ../development/ocaml-modules/zmq { };
+
+    zmq-lwt = callPackage ../development/ocaml-modules/zmq/lwt.nix { };
+
     ocsigen_deriving = callPackage ../development/ocaml-modules/ocsigen-deriving {
       oasis = ocaml_oasis;
     };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 023f4eaf3dcc..e1f90d574a35 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -555,8 +555,6 @@ let
     };
   };
 
-  ArchiveZip_1_53 = ArchiveZip;
-
   AudioScan = buildPerlPackage rec {
     name = "Audio-Scan-1.01";
     src = fetchurl {
@@ -4473,7 +4471,6 @@ let
     };
   };
 
-  DigestHMAC_SHA1 = DigestHMAC;
   DigestJHash = buildPerlPackage rec {
     name = "Digest-JHash-0.10";
     src = fetchurl {
@@ -11356,7 +11353,7 @@ let
       url = "mirror://cpan/authors/id/I/IV/IVAN/${name}.tar.gz";
       sha256 = "88a9b2df69e769e5855a408b19f61915b82e8fe070ab5cf4d525dd3b8bbe31c1";
     };
-    propagatedBuildInputs = [ pkgs.openssl Carp Exporter IO NetSSH StringShellQuote ];
+    propagatedBuildInputs = [ pkgs.openssl Carp IO NetSSH StringShellQuote ];
     patchPhase = ''
       sed -i 's|$scp = "scp";|$scp = "${pkgs.openssh}/bin/scp";|' SCP.pm
     '';
@@ -11449,7 +11446,7 @@ let
       url = "mirror://cpan/authors/id/I/IV/IVAN/${name}.tar.gz";
       sha256 = "7c71c7c3cbe953234dfe25bcc1ad7edb0e1f5a0578601f5523bc6070262a3817";
     };
-    propagatedBuildInputs = [ pkgs.openssl Exporter IO ];
+    propagatedBuildInputs = [ pkgs.openssl IO ];
     patchPhase = ''
       sed -i 's|$ssh = "ssh";|$ssh = "${pkgs.openssh}/bin/ssh";|' SSH.pm
     '';
@@ -12114,7 +12111,7 @@ let
       sha256 = "18wxvp7psqrx0zdvg47azrals572hv9fx1s3p0q65s87lnk3q63l";
     };
     outputs = [ "out" ];
-    buildInputs = [ DBDmysql DBI DigestMD5 IOSocketSSL TermReadKey TimeHiRes ];
+    buildInputs = [ DBDmysql DBI IOSocketSSL TermReadKey TimeHiRes ];
     meta = {
       description = ''Collection of advanced command-line tools to perform a variety of MySQL and system tasks.'';
       homepage = http://www.percona.com/software/percona-toolkit;
@@ -13431,7 +13428,6 @@ let
       sha256 = "17syqbq17qw6ajg3w88q9ljdm4c2b7zadq9pwshxxgyijg8dlfh4";
     };
     buildInputs = [ TestDeep TestDifferences TestWarn TestLongString ];
-    propagatedBuildInputs = [ XSLoader ];
     preBuild = ''ls'';
     meta = {
       homepage = https://github.com/Sereal/Sereal;
@@ -13448,7 +13444,7 @@ let
       sha256 = "02hbk5dwq7fpnyb3vp7xxhb41ra48xhghl13p9pjq9lzsqlb6l19";
     };
     buildInputs = [ TestDeep TestDifferences TestWarn TestLongString ];
-    propagatedBuildInputs = [ XSLoader SerealDecoder ];
+    propagatedBuildInputs = [ SerealDecoder ];
     meta = {
       homepage = https://github.com/Sereal/Sereal;
       description = "Fast, compact, powerful binary deserialization";
@@ -14141,7 +14137,7 @@ let
       sha256 = "1y9lfhxgwyysybing72n3hng2db5njpk2dbb80vskdz75r7ffqjp";
     };
 
-    buildInputs = [ ArchiveZip_1_53 pkgs.file ];
+    buildInputs = [ ArchiveZip pkgs.file ];
     meta.broken = true;
   };
 
@@ -14155,7 +14151,7 @@ let
       sha256 = "1y9lfhxgwyysybing72n3hng2db5njpk2dbb80vskdz75r7ffqjp";
     };
 
-    buildInputs = [ ArchiveZip_1_53 libfile-stripnondeterminism pkgs.file ];
+    buildInputs = [ ArchiveZip libfile-stripnondeterminism pkgs.file ];
 
     meta = with stdenv.lib; {
       description = "A Perl module for stripping bits of non-deterministic information";
@@ -14221,7 +14217,6 @@ let
     };
   };
 
-  SubExporterUtil = SubExporter;
   SubIdentify = buildPerlPackage rec {
     name = "Sub-Identify-0.14";
     src = fetchurl {
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index 0f8f8b5dd30c..63c0e36eb370 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -390,11 +390,11 @@ let
 
   php-cs-fixer = pkgs.stdenv.mkDerivation rec {
     name = "php-cs-fixer-${version}";
-    version = "2.12.2";
+    version = "2.13.1";
 
     src = pkgs.fetchurl {
       url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
-      sha256 = "19cq04x1wi489259vyad15zy6y0k3qd7dj77pcf74gxqw92hgg5c";
+      sha256 = "0yy9q140jd63h9qz5jvplh7ls3j7y1hf25dkxk0h4mx9cbxdzkq4";
     };
 
     phases = [ "installPhase" ];
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 6c495cdabdee..6c5870b529c1 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -258,6 +258,8 @@ in {
 
   breathe = callPackage ../development/python-modules/breathe { };
 
+  brotli = callPackage ../development/python-modules/brotli { };
+
   browser-cookie3 = callPackage ../development/python-modules/browser-cookie3 { };
 
   browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy {});
@@ -895,6 +897,8 @@ in {
     enablePython = true;
   });
 
+  boltztrap2 = callPackage ../development/python-modules/boltztrap2 { };
+
   bumps = callPackage ../development/python-modules/bumps {};
 
   cached-property = callPackage ../development/python-modules/cached-property { };
@@ -9315,28 +9319,7 @@ EOF
     };
   };
 
-  Logbook = buildPythonPackage rec {
-    name = "Logbook-${version}";
-    version = "1.0.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/L/Logbook/${name}.tar.gz";
-      sha256 = "0whqbx5p0zkf7gmb5ssnsnhm4kn4drd4x7fbhdi8dnxklqajbnl7";
-    };
-
-    buildInputs = [ self.pytest ] ++ optionals (!isPy3k) [ self.mock ];
-
-    checkPhase = ''
-      find tests -name \*.pyc -delete
-      py.test tests
-    '';
-
-    meta = {
-      homepage = https://pythonhosted.org/Logbook/;
-      description = "A logging replacement for Python";
-      license = licenses.bsd3;
-    };
-  };
+  Logbook = callPackage ../development/python-modules/Logbook { };
 
   libversion = callPackage ../development/python-modules/libversion {
     inherit (pkgs) libversion;