summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/maintainers.nix2
-rw-r--r--nixos/modules/security/pam.nix17
-rw-r--r--nixos/modules/services/networking/lldpd.nix1
-rw-r--r--nixos/modules/services/scheduling/fcron.nix28
-rw-r--r--nixos/modules/services/x11/window-managers/awesome.nix11
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix (renamed from pkgs/applications/audio/bitwig-studio/default.nix)32
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix18
-rw-r--r--pkgs/applications/misc/lxterminal/default.nix46
-rw-r--r--pkgs/applications/misc/lxterminal/respect-xml-catalog-files-var.patch15
-rw-r--r--pkgs/applications/misc/orca/default.nix67
-rw-r--r--pkgs/applications/misc/orca/fix-paths.patch29
-rw-r--r--pkgs/applications/misc/subsurface/default.nix15
-rw-r--r--pkgs/applications/networking/browsers/qutebrowser/default.nix47
-rw-r--r--pkgs/applications/window-managers/awesome/default.nix4
-rw-r--r--pkgs/applications/window-managers/yabar/build.nix4
-rw-r--r--pkgs/applications/window-managers/yabar/unstable.nix22
-rw-r--r--pkgs/development/compilers/ghc/7.10.3-binary.nix4
-rw-r--r--pkgs/development/compilers/ghc/8.2.1-binary.nix4
-rw-r--r--pkgs/development/compilers/go/1.8.nix2
-rw-r--r--pkgs/development/compilers/go/1.9.nix2
-rw-r--r--pkgs/development/compilers/jsonnet/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml2
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix2
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix342
-rw-r--r--pkgs/development/interpreters/php/default.nix13
-rw-r--r--pkgs/development/interpreters/ruby/default.nix20
-rw-r--r--pkgs/development/interpreters/ruby/patchsets.nix5
-rw-r--r--pkgs/development/interpreters/ruby/rvm-patchsets.nix4
-rw-r--r--pkgs/development/libraries/ilmbase/default.nix4
-rw-r--r--pkgs/development/libraries/jemalloc/default.nix12
-rw-r--r--pkgs/development/libraries/openexr/default.nix10
-rw-r--r--pkgs/development/libraries/taglib/default.nix11
-rw-r--r--pkgs/development/libraries/zeromq/4.x.nix4
-rw-r--r--pkgs/development/python-modules/lark-parser/default.nix6
-rw-r--r--pkgs/development/tools/delve/default.nix12
-rw-r--r--pkgs/development/tools/gauge/default.nix23
-rw-r--r--pkgs/development/tools/goconvey/default.nix25
-rw-r--r--pkgs/development/tools/goconvey/deps.nix20
-rw-r--r--pkgs/development/tools/godef/default.nix6
-rw-r--r--pkgs/development/tools/skopeo/default.nix4
-rw-r--r--pkgs/development/tools/skopeo/path.patch13
-rw-r--r--pkgs/development/tools/vndr/default.nix6
-rw-r--r--pkgs/games/cutemaze/default.nix4
-rw-r--r--pkgs/games/steam/chrootenv.nix24
-rw-r--r--pkgs/misc/emulators/mgba/default.nix19
-rw-r--r--pkgs/os-specific/linux/acpi-call/default.nix2
-rw-r--r--pkgs/os-specific/linux/mwprocapture/default.nix2
-rw-r--r--pkgs/tools/backup/borg/default.nix4
-rw-r--r--pkgs/tools/compression/brotli/default.nix2
-rw-r--r--pkgs/tools/misc/brltty/default.nix16
-rw-r--r--pkgs/tools/misc/clipster/default.nix4
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix38
-rw-r--r--pkgs/top-level/perl-packages.nix19
-rw-r--r--pkgs/top-level/php-packages.nix15
-rw-r--r--pkgs/top-level/python-packages.nix2
57 files changed, 865 insertions, 211 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 4b9fc86f67d..f4af4fe366b 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -118,6 +118,7 @@
   ChengCat = "Yucheng Zhang <yu@cheng.cat>";
   choochootrain = "Hurshal Patel <hurshal@imap.cc>";
   chpatrick = "Patrick Chilton <chpatrick@gmail.com>";
+  chreekat = "Bryan Richter <b@chreekat.net>";
   chris-martin = "Chris Martin <ch.martin@gmail.com>";
   chrisjefferson = "Christopher Jefferson <chris@bubblescope.net>";
   chrisrosset = "Christopher Rosset <chris@rosset.org.uk>";
@@ -694,6 +695,7 @@
   vbmithr = "Vincent Bernardoff <vb@luminar.eu.org>";
   vcunat = "Vladimír Čunát <vcunat@gmail.com>";
   vdemeester = "Vincent Demeester <vincent@sbr.pm>";
+  velovix = "Tyler Compton <xaviosx@gmail.com>";
   veprbl = "Dmitry Kalinkin <veprbl@gmail.com>";
   vidbina = "David Asabina <vid@bina.me>";
   vifino = "Adrian Pistol <vifino@tty.sh>";
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index 8d658a20a1f..3fff9e78aa1 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -223,6 +223,17 @@ let
         '';
       };
 
+      enableGnomeKeyring = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          If enabled, pam_gnome_keyring will attempt to automatically unlock the
+          user's default Gnome keyring upon login. If the user login password does
+          not match their keyring password, Gnome Keyring will prompt separately
+          after login.
+        '';
+      };
+
       text = mkOption {
         type = types.nullOr types.lines;
         description = "Contents of the PAM service file.";
@@ -273,7 +284,7 @@ let
           # prompts the user for password so we run it once with 'required' at an
           # earlier point and it will run again with 'sufficient' further down.
           # We use try_first_pass the second time to avoid prompting password twice
-          (optionalString (cfg.unixAuth && (config.security.pam.enableEcryptfs || cfg.pamMount || cfg.enableKwallet)) ''
+          (optionalString (cfg.unixAuth && (config.security.pam.enableEcryptfs || cfg.pamMount || cfg.enableKwallet || cfg.enableGnomeKeyring)) ''
               auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth
               ${optionalString config.security.pam.enableEcryptfs
                 "auth optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
@@ -282,6 +293,8 @@ let
               ${optionalString cfg.enableKwallet
                 ("auth optional ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so" +
                  " kwalletd=${pkgs.libsForQt5.kwallet.bin}/bin/kwalletd5")}
+              ${optionalString cfg.enableGnomeKeyring
+                ("auth optional ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so")}
             '') + ''
           ${optionalString cfg.unixAuth
               "auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth try_first_pass"}
@@ -351,6 +364,8 @@ let
           ${optionalString (cfg.enableKwallet)
               ("session optional ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so" +
                " kwalletd=${pkgs.libsForQt5.kwallet.bin}/bin/kwalletd5")}
+          ${optionalString (cfg.enableGnomeKeyring)
+              "session optional ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start"}
           ${optionalString (config.virtualisation.lxc.lxcfs.enable)
                "session optional ${pkgs.lxcfs}/lib/security/pam_cgfs.so -c freezer,memory,name=systemd,unified,cpuset"}
         '');
diff --git a/nixos/modules/services/networking/lldpd.nix b/nixos/modules/services/networking/lldpd.nix
index ba4e1b1542f..db1534edfd7 100644
--- a/nixos/modules/services/networking/lldpd.nix
+++ b/nixos/modules/services/networking/lldpd.nix
@@ -24,6 +24,7 @@ in
       description = "lldpd user";
       group = "_lldpd";
       home = "/var/run/lldpd";
+      isSystemUser = true;
     };
     users.extraGroups._lldpd = {};
 
diff --git a/nixos/modules/services/scheduling/fcron.nix b/nixos/modules/services/scheduling/fcron.nix
index ac589be5773..e3b6b638f5a 100644
--- a/nixos/modules/services/scheduling/fcron.nix
+++ b/nixos/modules/services/scheduling/fcron.nix
@@ -90,16 +90,24 @@ in
       [ (allowdeny "allow" (cfg.allow))
         (allowdeny "deny" cfg.deny)
         # see man 5 fcron.conf
-        { source = pkgs.writeText "fcron.conf" ''
-            fcrontabs   =       /var/spool/fcron
-            pidfile     =       /var/run/fcron.pid
-            fifofile    =       /var/run/fcron.fifo
-            fcronallow  =       /etc/fcron.allow
-            fcrondeny   =       /etc/fcron.deny
-            shell       =       /bin/sh
-            sendmail    =       /run/wrappers/bin/sendmail
-            editor      =       ${pkgs.vim}/bin/vim
-          '';
+        { source =
+            let
+              isSendmailWrapped =
+                lib.hasAttr "sendmail" config.security.wrappers;
+              sendmailPath =
+                if isSendmailWrapped then "/run/wrappers/bin/sendmail"
+                else "${config.system.path}/bin/sendmail";
+            in
+            pkgs.writeText "fcron.conf" ''
+              fcrontabs   =       /var/spool/fcron
+              pidfile     =       /var/run/fcron.pid
+              fifofile    =       /var/run/fcron.fifo
+              fcronallow  =       /etc/fcron.allow
+              fcrondeny   =       /etc/fcron.deny
+              shell       =       /bin/sh
+              sendmail    =       ${sendmailPath}
+              editor      =       ${pkgs.vim}/bin/vim
+            '';
           target = "fcron.conf";
           gid = config.ids.gids.fcron;
           mode = "0644";
diff --git a/nixos/modules/services/x11/window-managers/awesome.nix b/nixos/modules/services/x11/window-managers/awesome.nix
index eb97449c6bd..71eb02ec595 100644
--- a/nixos/modules/services/x11/window-managers/awesome.nix
+++ b/nixos/modules/services/x11/window-managers/awesome.nix
@@ -6,7 +6,11 @@ let
 
   cfg = config.services.xserver.windowManager.awesome;
   awesome = cfg.package;
-  inherit (pkgs.luaPackages) getLuaPath getLuaCPath;
+  getLuaPath = lib : dir : "${lib}/${dir}/lua/${pkgs.luaPackages.lua.luaversion}";
+  makeSearchPath = lib.concatMapStrings (path:
+    " --search " + (getLuaPath path "share") +
+    " --search " + (getLuaPath path "lib")
+  );
 in
 
 {
@@ -46,10 +50,7 @@ in
       { name = "awesome";
         start =
           ''
-            export LUA_CPATH="${lib.concatStringsSep ";" (map getLuaCPath cfg.luaModules)}"
-            export LUA_PATH="${lib.concatStringsSep ";" (map getLuaPath cfg.luaModules)}"
-
-            ${awesome}/bin/awesome &
+            ${awesome}/bin/awesome ${makeSearchPath cfg.luaModules} &
             waitPID=$!
           '';
       };
diff --git a/pkgs/applications/audio/bitwig-studio/default.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
index bc87254cf18..8b26ba0959d 100644
--- a/pkgs/applications/audio/bitwig-studio/default.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
@@ -1,35 +1,35 @@
-{ stdenv, fetchurl, alsaLib, bzip2, cairo, dpkg, ffmpeg, freetype, gdk_pixbuf
-, glib, gtk2, harfbuzz, jdk, lib, libX11, libXau, libXcursor, libXdmcp
-, libXext, libXfixes, libXrender, libbsd, libjack2, libpng, libxcb
-, libxkbcommon, libxkbfile, makeWrapper, pixman, xcbutil, xcbutilwm
+{ stdenv, fetchurl, alsaLib, bzip2, cairo, dpkg, freetype, gdk_pixbuf
+, glib, gtk2, harfbuzz, jdk, lib, xorg
+, libbsd, libjack2, libpng
+, libxkbcommon
+, makeWrapper, pixman
 , xdg_utils, zenity, zlib }:
 
 stdenv.mkDerivation rec {
   name = "bitwig-studio-${version}";
-  version = "2.2.2";
+  version = "1.3.16";
 
   src = fetchurl {
-    url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
-    sha256 = "1x4wka32xlygmhdh9rb15s37zh5qjrgap2qk35y34c52lf5aak22";
+    url    = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
+    sha256 = "0n0fxh9gnmilwskjcayvjsjfcs3fz9hn00wh7b3gg0cv3qqhich8";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper ];
 
   unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
 
-  dontBuild = true;
+  dontBuild    = true;
   dontPatchELF = true;
-  dontStrip = true;
+  dontStrip    = true;
 
-  libPath = lib.makeLibraryPath [
-    alsaLib bzip2.out cairo freetype gdk_pixbuf glib gtk2 harfbuzz
-    libX11 libXau libXcursor libXdmcp libXext libXfixes libXrender
-    libbsd libjack2 libpng libxcb libxkbfile pixman xcbutil xcbutilwm
-    zlib
+  libPath = with xorg; lib.makeLibraryPath [
+    alsaLib bzip2.out cairo freetype gdk_pixbuf glib gtk2 harfbuzz libX11 libXau
+    libXcursor libXdmcp libXext libXfixes libXrender libbsd libjack2 libpng libxcb
+    libxkbfile pixman xcbutil xcbutilwm zlib
   ];
 
   binPath = lib.makeBinPath [
-    ffmpeg xdg_utils zenity
+    xdg_utils zenity
   ];
 
   installPhase = ''
@@ -95,6 +95,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.bitwig.com/;
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ michalrus ];
+    maintainers = with maintainers; [ michalrus mrVanDalo ];
   };
 }
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix
new file mode 100644
index 00000000000..e5a5cc7c9c6
--- /dev/null
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, bitwig-studio1,
+  xdg_utils, zenity, ffmpeg }:
+
+bitwig-studio1.overrideAttrs (oldAttrs: rec {
+  name = "bitwig-studio-${version}";
+  version = "2.2.2";
+
+  src = fetchurl {
+    url    = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
+    sha256 = "1x4wka32xlygmhdh9rb15s37zh5qjrgap2qk35y34c52lf5aak22";
+  };
+
+  buildInputs = bitwig-studio1.buildInputs ++ [ ffmpeg ];
+
+  binPath = stdenv.lib.makeBinPath [
+    ffmpeg xdg_utils zenity
+  ];
+})
diff --git a/pkgs/applications/misc/lxterminal/default.nix b/pkgs/applications/misc/lxterminal/default.nix
new file mode 100644
index 00000000000..145672cad38
--- /dev/null
+++ b/pkgs/applications/misc/lxterminal/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, automake, autoconf, intltool, pkgconfig, gtk2, vte
+, libxslt, docbook_xml_dtd_412, docbook_xml_xslt, libxml2, findXMLCatalogs
+}:
+
+let version = "0.3.1"; in
+
+stdenv.mkDerivation rec {
+  name = "lxterminal-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/lxde/lxterminal/archive/${version}.tar.gz";
+    sha256 = "e91f15c8a726d5c13227263476583137a2639d4799c021ca0726c9805021b54c";
+  };
+
+  configureFlags = [
+    "--enable-man"
+  ];
+
+  buildInputs = [
+    automake autoconf intltool pkgconfig gtk2 vte libxslt docbook_xml_dtd_412
+    docbook_xml_xslt libxml2 findXMLCatalogs
+  ];
+
+  patches = [
+    ./respect-xml-catalog-files-var.patch
+  ];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  doCheck = true;
+
+  meta = {
+    description = "The standard terminal emulator of LXDE";
+    longDescription = ''
+      LXTerminal is the standard terminal emulator of LXDE. The terminal is a
+      desktop-independent VTE-based terminal emulator for LXDE without any
+      unnecessary dependencies.
+    '';
+    homepage = https://wiki.lxde.org/en/LXTerminal;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.velovix ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/lxterminal/respect-xml-catalog-files-var.patch b/pkgs/applications/misc/lxterminal/respect-xml-catalog-files-var.patch
new file mode 100644
index 00000000000..598f506118f
--- /dev/null
+++ b/pkgs/applications/misc/lxterminal/respect-xml-catalog-files-var.patch
@@ -0,0 +1,15 @@
+diff --git a/acinclude.m4 b/acinclude.m4
+index be626c5..b449b1b 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -40,8 +40,8 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
+ [
+   AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
+   AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
+-  if $jh_found_xmlcatalog && \
+-     AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
++  # empty argument forces libxml to use XML_CATALOG_FILES variable
++  if AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then
+     AC_MSG_RESULT([found])
+     ifelse([$3],,,[$3
+ ])dnl
diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix
new file mode 100644
index 00000000000..fc7fd95bbb9
--- /dev/null
+++ b/pkgs/applications/misc/orca/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, lib, pkgconfig, fetchurl, buildPythonApplication
+, autoreconfHook, wrapGAppsHook
+, intltool, yelp_tools, itstool, libxmlxx3
+, python, pygobject3, gtk3, gnome3, substituteAll
+, at_spi2_atk, at_spi2_core, pyatspi, dbus, dbus-python, pyxdg
+, xkbcomp, gsettings_desktop_schemas, liblouis
+, speechd, brltty, setproctitle, gst_all_1, gst-python
+}:
+
+with lib;
+let
+  version = "3.26.0";
+  majorVersion = builtins.concatStringsSep "." (take 2 (splitString "." version));
+in buildPythonApplication rec {
+  name = "orca-${version}";
+
+  format = "other";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/orca/${majorVersion}/${name}.tar.xz";
+    sha256 = "0xk5k9cbswymma60nrfj00dl97wypx59c107fb1hwi75gm0i07a7";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      xkbcomp = "${xkbcomp}/bin/xkbcomp";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook wrapGAppsHook pkgconfig libxmlxx3
+    intltool yelp_tools itstool
+  ];
+
+  propagatedBuildInputs = [
+    pygobject3 pyatspi dbus-python pyxdg brltty liblouis speechd gst-python setproctitle
+  ];
+
+  buildInputs = [
+    python gtk3 at_spi2_atk at_spi2_core dbus gsettings_desktop_schemas
+    gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+  ];
+
+  # Run intltoolize to create po/Makefile.in.in
+  preConfigure = ''
+    intltoolize
+  '';
+
+  meta = {
+    homepage = https://wiki.gnome.org/Projects/Orca;
+    description = "Screen reader";
+    longDescription = ''
+      A free, open source, flexible and extensible screen reader that provides
+      access to the graphical desktop via speech and refreshable braille.
+      It works with applications and toolkits that support the Assistive
+      Technology Service Provider Interface (AT-SPI). That includes the GNOME
+      Gtk+ toolkit, the Java platform's Swing toolkit, LibreOffice, Gecko, and
+      WebKitGtk. AT-SPI support for the KDE Qt toolkit is being pursued.
+
+      Needs `services.gnome3.at-spi2-core.enable = true;` in `configuration.nix`.
+    '';
+    maintainers = with maintainers; [ berce ] ++ gnome3.maintainers;
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/orca/fix-paths.patch b/pkgs/applications/misc/orca/fix-paths.patch
new file mode 100644
index 00000000000..d3e77773f28
--- /dev/null
+++ b/pkgs/applications/misc/orca/fix-paths.patch
@@ -0,0 +1,29 @@
+--- a/src/orca/orca.py
++++ b/src/orca/orca.py
+@@ -239,7 +239,7 @@
+ 
+ def _setXmodmap(xkbmap):
+     """Set the keyboard map using xkbcomp."""
+-    p = subprocess.Popen(['xkbcomp', '-w0', '-', os.environ['DISPLAY']],
++    p = subprocess.Popen(['@xkbcomp@', '-w0', '-', os.environ['DISPLAY']],
+         stdin=subprocess.PIPE, stdout=None, stderr=None)
+     p.communicate(xkbmap)
+ 
+@@ -297,7 +297,7 @@
+     """
+ 
+     global _originalXmodmap
+-    _originalXmodmap = subprocess.check_output(['xkbcomp', os.environ['DISPLAY'], '-'])
++    _originalXmodmap = subprocess.check_output(['@xkbcomp@', os.environ['DISPLAY'], '-'])
+ 
+ def _restoreXmodmap(keyList=[]):
+     """Restore the original xmodmap values for the keys in keyList.
+@@ -309,7 +309,7 @@
+ 
+     global _capsLockCleared
+     _capsLockCleared = False
+-    p = subprocess.Popen(['xkbcomp', '-w0', '-', os.environ['DISPLAY']],
++    p = subprocess.Popen(['@xkbcomp@', '-w0', '-', os.environ['DISPLAY']],
+         stdin=subprocess.PIPE, stdout=None, stderr=None)
+     p.communicate(_originalXmodmap)
+ 
diff --git a/pkgs/applications/misc/subsurface/default.nix b/pkgs/applications/misc/subsurface/default.nix
index aaf2f488c38..376ea9e293a 100644
--- a/pkgs/applications/misc/subsurface/default.nix
+++ b/pkgs/applications/misc/subsurface/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchFromGitHub, autoreconfHook, cmake, makeWrapper, pkgconfig, qmake
 , curl, grantlee, libgit2, libusb, libssh2, libxml2, libxslt, libzip, zlib
-, qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit
+, qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit, libXcomposite
 }:
 
 let
@@ -32,24 +32,25 @@ let
   googlemaps = stdenv.mkDerivation rec {
     name = "googlemaps-${version}";
 
-    version = "2017-09-17";
+    version = "2017-12-18";
 
     src = fetchFromGitHub {
       owner = "vladest";
       repo = "googlemaps";
-      rev = "1b857c02504dd52b1aa442418b8dcea78ced3f35";
-      sha256 = "14icmc925g4abwwdrldjc387aiyvcp3ia5z7mfh9qa09bv829a84";
+      rev = "79f3511d60dc9640de02a5f24656094c8982b26d";
+      sha256 = "11334w0bnfb97sv23vvj2b5hcwvr0171hxldn91jms9y12l5j15d";
     };
 
     nativeBuildInputs = [ qmake ];
 
-    buildInputs = [ qtbase qtlocation ];
+    buildInputs = [ qtbase qtlocation libXcomposite ];
 
     pluginsSubdir = "lib/qt-${qtbase.qtCompatVersion}/plugins";
 
     installPhase = ''
-      mkdir $out $(dirname ${pluginsSubdir})
-      mv plugins ${pluginsSubdir}
+      mkdir -p $out $(dirname ${pluginsSubdir})
+      mkdir -p ${pluginsSubdir}
+      mv *.so ${pluginsSubdir}
       mv lib $out/
     '';
 
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index f4beb70f40d..fb8c16abd53 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -1,37 +1,36 @@
-{ stdenv, lib, fetchurl, unzip, buildPythonApplication, makeWrapper, wrapGAppsHook
-, qtbase, pyqt5, jinja2, pygments, pyyaml, pypeg2, pyopengl, cssutils, glib_networking
-, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, libxslt
-, gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav
-, qtwebkit-plugins ? null
-, attrs
+{ stdenv, lib, fetchurl, fetchzip, python3Packages
+, makeWrapper, wrapGAppsHook, qtbase, glib_networking
+, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
+, libxslt, gst_all_1 ? null
+, withPdfReader        ? true
+, withMediaPlayback    ? true
 , withWebEngineDefault ? true
 }:
 
-assert (! withWebEngineDefault) -> qtwebkit-plugins != null;
+assert withMediaPlayback -> gst_all_1 != null;
 
 let
   pdfjs = stdenv.mkDerivation rec {
     name = "pdfjs-${version}";
     version = "1.7.225";
 
-    src = fetchurl {
+    src = fetchzip {
       url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
-      sha256 = "1n8ylmv60r0qbw2vilp640a87l4lgnrsi15z3iihcs6dj1n1yy67";
+      sha256 = "0bsmbz7bbh0zpd70dlhss4fjdw7zq356091wld9s7kxnb2rixqd8";
+      stripRoot = false;
     };
 
-    nativeBuildInputs = [ unzip ];
-
     buildCommand = ''
       mkdir $out
-      unzip -d $out $src
+      cp -r $src $out
     '';
   };
 
-in buildPythonApplication rec {
-  name = "qutebrowser-${version}${fix_postfix}";
-  fix_postfix = "";
-  version = "1.0.4";
+in python3Packages.buildPythonApplication rec {
+  name = "qutebrowser-${version}${versionPostfix}";
   namePrefix = "";
+  version = "1.0.4";
+  versionPostfix = "";
 
   src = fetchurl {
     url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${name}.tar.gz";
@@ -43,21 +42,25 @@ in buildPythonApplication rec {
 
   buildInputs = [
     qtbase
-    gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav
     glib_networking
-  ]
-    ++ lib.optional (! withWebEngineDefault) qtwebkit-plugins;
+  ] ++ lib.optionals withMediaPlayback (with gst_all_1; [
+    gst-plugins-base gst-plugins-good
+    gst-plugins-bad gst-plugins-ugly gst-libav
+  ]) ++ lib.optional (!withWebEngineDefault) python3Packages.qtwebkit-plugins;
 
   nativeBuildInputs = [
-    makeWrapper wrapGAppsHook asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
+    makeWrapper wrapGAppsHook asciidoc
+    docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
   ];
 
-  propagatedBuildInputs = [
-    pyyaml pyqt5 jinja2 pygments pypeg2 cssutils pyopengl attrs
+  propagatedBuildInputs = with python3Packages; [
+    pyyaml pyqt5 jinja2 pygments
+    pypeg2 cssutils pyopengl attrs
   ];
 
   postPatch = ''
     sed -i "s,/usr/share/qutebrowser,$out/share/qutebrowser,g" qutebrowser/utils/standarddir.py
+  '' + lib.optionalString withPdfReader ''
     sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py
   '';
 
diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix
index 4043c05e3d6..ca596cdfddc 100644
--- a/pkgs/applications/window-managers/awesome/default.nix
+++ b/pkgs/applications/window-managers/awesome/default.nix
@@ -49,8 +49,8 @@ with luaPackages; stdenv.mkDerivation rec {
   postInstall = ''
     wrapProgram $out/bin/awesome \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix LUA_CPATH ";" '${lgi}/lib/lua/${lua.luaversion}/?.so' \
-      --prefix LUA_PATH ";" '${lgi}/share/lua/${lua.luaversion}/?.lua' \
+      --add-flags '--search ${lgi}/lib/lua/${lua.luaversion}' \
+      --add-flags '--search ${lgi}/share/lua/${lua.luaversion}' \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH" \
       --prefix PATH : "${stdenv.lib.makeBinPath [ compton unclutter procps iproute coreutils curl alsaUtils findutils xterm ]}"
diff --git a/pkgs/applications/window-managers/yabar/build.nix b/pkgs/applications/window-managers/yabar/build.nix
index 5e92c52e521..a5d02093e3f 100644
--- a/pkgs/applications/window-managers/yabar/build.nix
+++ b/pkgs/applications/window-managers/yabar/build.nix
@@ -2,7 +2,6 @@
 , xcbutilwm, alsaLib, wirelesstools, asciidoc, libxslt, makeWrapper, docbook_xsl
 , configFile ? null, lib
 , rev, sha256, version
-, playerctl
 }:
 
 stdenv.mkDerivation {
@@ -21,7 +20,6 @@ stdenv.mkDerivation {
   buildInputs = [
     cairo gdk_pixbuf libconfig pango xcbutilwm docbook_xsl
     alsaLib wirelesstools asciidoc libxslt makeWrapper
-    playerctl
   ];
 
   postPatch = ''
@@ -30,7 +28,7 @@ stdenv.mkDerivation {
       --replace "a2x" "${asciidoc}/bin/a2x --no-xmllint"
   '';
 
-  makeFlags = [ "DESTDIR=$(out)" "PREFIX=/" "PLAYERCTL=1" ];
+  makeFlags = [ "DESTDIR=$(out)" "PREFIX=/" ];
 
   postInstall = ''
     mkdir -p $out/share/yabar/examples
diff --git a/pkgs/applications/window-managers/yabar/unstable.nix b/pkgs/applications/window-managers/yabar/unstable.nix
index b704c480d66..842e10ad83b 100644
--- a/pkgs/applications/window-managers/yabar/unstable.nix
+++ b/pkgs/applications/window-managers/yabar/unstable.nix
@@ -1,10 +1,18 @@
-{ callPackage, attrs ? {} }:
+{ playerctl, libxkbcommon, callPackage, attrs ? {} }:
 
 let
-  overrides = {
-    version = "unstable-2017-10-12";
+  pkg = callPackage ./build.nix ({
+    version = "unstable-2018-01-02";
 
-    rev    = "cbecc7766e37f29d50705da0a82dc76ce7c3b86e";
-    sha256 = "1wprjas3k14rxfl06mgr0xq2ra735w1c7dq4xrdvii887wnl37xb";
-  } // attrs;
-in callPackage ./build.nix overrides
+    rev    = "d9f75933f1fdd7bec24bf7db104c7e1df2728b98";
+    sha256 = "0ry2pgqsnl6cmvkhakm73cjqdnirkimldnmbngl6hbvggx32z8c9";
+  } // attrs);
+in pkg.overrideAttrs (o: {
+  buildInputs = o.buildInputs ++ [
+    playerctl libxkbcommon
+  ];
+
+  makeFlags = o.makeFlags ++ [
+    "PLAYERCTL=1"
+  ];
+})
diff --git a/pkgs/development/compilers/ghc/7.10.3-binary.nix b/pkgs/development/compilers/ghc/7.10.3-binary.nix
index a0ee96829f6..84b6157c865 100644
--- a/pkgs/development/compilers/ghc/7.10.3-binary.nix
+++ b/pkgs/development/compilers/ghc/7.10.3-binary.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
       url = "http://haskell.org/ghc/dist/${version}/ghc-${version}b-x86_64-deb8-linux.tar.bz2";
       sha256 = "5e163c557e9236cce68be41c984eab0fcdbdc1602e39040ca9ae325e6bdec1c3";
     };
-    "armv7-linux" = {
+    "armv7l-linux" = {
       url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-armv7-deb8-linux.tar.bz2";
       sha256 = "2913763eef88e4d1843a1e4c34225afb1866310d1a1956c08a4131f4593518f6";
     };
@@ -149,5 +149,5 @@ stdenv.mkDerivation rec {
   '';
 
   meta.license = stdenv.lib.licenses.bsd3;
-  meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"];
+  meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux"];
 }
diff --git a/pkgs/development/compilers/ghc/8.2.1-binary.nix b/pkgs/development/compilers/ghc/8.2.1-binary.nix
index de02ac79aa3..1242c6ae1b0 100644
--- a/pkgs/development/compilers/ghc/8.2.1-binary.nix
+++ b/pkgs/development/compilers/ghc/8.2.1-binary.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
       url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-deb8-linux.tar.xz";
       sha256 = "543b81bf610240bd0398111d6c6607a9094dc2d159b564057d46c8a3d1aaa130";
     };
-    "armv7-linux" = {
+    "armv7l-linux" = {
       url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-armv7-deb8-linux.tar.xz";
       sha256 = "0f0e5e1d4fad3fa1a87ca1fe0d19242f4a94d158b7b8a08f99efefd98b51b019";
     };
@@ -152,5 +152,5 @@ stdenv.mkDerivation rec {
   '';
 
   meta.license = stdenv.lib.licenses.bsd3;
-  meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"];
+  meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux" "aarch64-linux"];
 }
diff --git a/pkgs/development/compilers/go/1.8.nix b/pkgs/development/compilers/go/1.8.nix
index 210f259df89..23fd3b0f291 100644
--- a/pkgs/development/compilers/go/1.8.nix
+++ b/pkgs/development/compilers/go/1.8.nix
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
     sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
   '' + optionalString stdenv.isArm ''
     sed -i '/TestCurrent/areturn' src/os/user/user_test.go
-    echo '#!/usr/bin/env bash' > misc/cgo/testplugin/test.bash
+    echo '#!${stdenv.shell}' > misc/cgo/testplugin/test.bash
   '' + optionalString stdenv.isDarwin ''
     substituteInPlace src/race.bash --replace \
       "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
diff --git a/pkgs/development/compilers/go/1.9.nix b/pkgs/development/compilers/go/1.9.nix
index 8708bd762c4..e908a8725e2 100644
--- a/pkgs/development/compilers/go/1.9.nix
+++ b/pkgs/development/compilers/go/1.9.nix
@@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
     sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
   '' + optionalString stdenv.isArm ''
     sed -i '/TestCurrent/areturn' src/os/user/user_test.go
-    echo '#!/usr/bin/env bash' > misc/cgo/testplugin/test.bash
+    echo '#!${stdenv.shell}' > misc/cgo/testplugin/test.bash
   '' + optionalString stdenv.isDarwin ''
     substituteInPlace src/race.bash --replace \
       "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
diff --git a/pkgs/development/compilers/jsonnet/default.nix b/pkgs/development/compilers/jsonnet/default.nix
index 790f9a4827a..d4664673306 100644
--- a/pkgs/development/compilers/jsonnet/default.nix
+++ b/pkgs/development/compilers/jsonnet/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, emscripten }:
 
-let version = "0.9.4"; in
+let version = "0.9.5"; in
 
 stdenv.mkDerivation {
   name = "jsonnet-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     rev = "v${version}";
     owner = "google";
     repo = "jsonnet";
-    sha256 = "1bh9x8d3mxnic31b6gh4drn5l6qpyqfgsn2l48sv0jknhinm1a7l";
+    sha256 = "193sa4hdhvml0c32nmdkjii41hbyc5l0zisdn699ar0gaq7yiqan";
   };
 
   buildInputs = [ emscripten ];
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix
index 30ecbe92f16..804da79f568 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix
@@ -65,4 +65,7 @@ self: super: {
   # Add appropriate Cabal library to build this code.
   stack = addSetupDepend super.stack self.Cabal_2_0_1_1;
 
+  # inline-c > 0.5.6.0 requires template-haskell >= 2.12
+  inline-c = super.inline-c_0_5_6_1;
+  inline-c-cpp = super.inline-c-cpp_0_1_0_0;
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 573d256f42c..97d6d9960e0 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -2689,6 +2689,8 @@ extra-packages:
   - haskell-gi-overloading == 0.0       # gi-* packages use this dependency to disable overloading support
   - haskell-src-exts == 1.19.*          # required by hindent and structured-haskell-mode
   - hpack == 0.20.*                     # required by stack-1.6.1
+  - inline-c < 0.6                      # required on GHC 8.0.x
+  - inline-c-cpp < 0.2                  # required on GHC 8.0.x
   - language-c == 0.7.0                 # required by c2hs hack to work around https://github.com/haskell/c2hs/issues/192.
   - mtl < 2.2                           # newer versions require transformers > 0.4.x, which we cannot provide in GHC 7.8.x
   - mtl-prelude < 2                     # required for to build postgrest on mtl 2.1.x platforms
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index c0c8e46fbb0..4df554a6b39 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -243,7 +243,7 @@ stdenv.mkDerivation ({
     # libraries) from all the dependencies.
     local dynamicLinksDir="$out/lib/links"
     mkdir -p $dynamicLinksDir
-    for d in $(grep dynamic-library-dirs "$packageConfDir/"*|awk '{print $2}'); do
+    for d in $(grep dynamic-library-dirs "$packageConfDir/"*|awk '{print $2}'|sort -u); do
       ln -s "$d/"*.dylib $dynamicLinksDir
     done
     # Edit the local package DB to reference the links directory.
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 3094d3bbc87..c4d9e490336 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -10692,6 +10692,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "JuicyPixels_3_2_9_3" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers, deepseq, mtl
+     , primitive, transformers, vector, zlib
+     }:
+     mkDerivation {
+       pname = "JuicyPixels";
+       version = "3.2.9.3";
+       sha256 = "14s57fgf6kd5n5al2kcvk1aaxbq1ph0r5h8blflrjkx83yl6r8yn";
+       libraryHaskellDepends = [
+         base binary bytestring containers deepseq mtl primitive
+         transformers vector zlib
+       ];
+       homepage = "https://github.com/Twinside/Juicy.Pixels";
+       description = "Picture loading/serialization (in png, jpeg, bitmap, gif, tga, tiff and radiance)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "JuicyPixels-canvas" = callPackage
     ({ mkDerivation, base, containers, JuicyPixels }:
      mkDerivation {
@@ -20727,6 +20745,20 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "acme-mutable-package" = callPackage
+    ({ mkDerivation, base, Cabal }:
+     mkDerivation {
+       pname = "acme-mutable-package";
+       version = "0";
+       sha256 = "16da6pkkdr2g77dn3n4v9x6mwi6yz3xlpisvpn0id2xz0bayipmr";
+       revision = "2";
+       editedCabalFile = "03qif3idd7s5ldk0fm89ii6gnw1qkwpgcwkg35raqawsfsvn4sbg";
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [ base ];
+       description = "A mutable package";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "acme-now" = callPackage
     ({ mkDerivation, base, time }:
      mkDerivation {
@@ -29034,8 +29066,8 @@ self: {
      }:
      mkDerivation {
        pname = "ats-format";
-       version = "0.1.0.14";
-       sha256 = "020gbvh8wj5xnldmc1l2dib26bwinqdq66pn4z3xdpl3zf4zj1in";
+       version = "0.1.0.16";
+       sha256 = "1cvhbzjsqdzq758hz3fms32nn87dzbdsw6qz46ax957hfwp3wimw";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -39653,8 +39685,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2nix";
-       version = "2.7.1";
-       sha256 = "0skwm7fds2m7gkzd0af59bbgj09cwr0vapz8gxl6cb9m5cjsd05x";
+       version = "2.7.2";
+       sha256 = "1376a97pmhpxf78lhl4b6glraajjwhk99cvvrz4p7nmdc1qq9zhy";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -45501,6 +45533,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cmdargs_0_10_19" = callPackage
+    ({ mkDerivation, base, filepath, process, template-haskell
+     , transformers
+     }:
+     mkDerivation {
+       pname = "cmdargs";
+       version = "0.10.19";
+       sha256 = "1m1a2zl5ijjkjfrl5zqdqbbdf883y81zlq8qaiy2pww52cai3snf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base filepath process template-haskell transformers
+       ];
+       executableHaskellDepends = [
+         base filepath process template-haskell transformers
+       ];
+       homepage = "https://github.com/ndmitchell/cmdargs#readme";
+       description = "Command line argument processing";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cmdargs-browser" = callPackage
     ({ mkDerivation, base, bytestring, cmdargs, directory, filepath
      , http-types, process, text, transformers, wai, wai-handler-launch
@@ -51288,8 +51342,8 @@ self: {
      }:
      mkDerivation {
        pname = "credential-store";
-       version = "0.1.1";
-       sha256 = "1qim9hqyak3c7giqjrkvdvlpgwlbgnyz418q6pndwvyrhzm7n21m";
+       version = "0.1.2";
+       sha256 = "114jdbpiyx8xnjxnpz05nqpnb5s29y1iv330b0i491vik8hvrbad";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -55917,8 +55971,8 @@ self: {
     ({ mkDerivation, base, dates, hspec, QuickCheck, time }:
      mkDerivation {
        pname = "date-conversions";
-       version = "0.1.0.0";
-       sha256 = "0348mi754n9611hzs62v17f3qba4vyls9x82capjasy8f2mw1cqn";
+       version = "0.2.0.0";
+       sha256 = "1bx8r66wfghrfbmcyddsi6z5b66kc9skrq0hnk2mvz4gx2cl0gdq";
        libraryHaskellDepends = [ base dates time ];
        testHaskellDepends = [ base dates hspec QuickCheck time ];
        homepage = "https://github.com/thoughtbot/date-conversions#readme";
@@ -69075,8 +69129,8 @@ self: {
      }:
      mkDerivation {
        pname = "fast-combinatorics";
-       version = "0.1.0.6";
-       sha256 = "1bkrdqlqhccp0scz7ww7xp08sjx2fjrsgdhmk8n1l2qxnvag0wpm";
+       version = "0.1.0.7";
+       sha256 = "06c5m5rd4xw7nl5x2f75xbky4f16nr3wk10cvx23pf5l9987rrvq";
        setupHaskellDepends = [
          base Cabal directory http-client http-client-tls tar zlib
        ];
@@ -76567,6 +76621,20 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "generic-random_1_1_0_1" = callPackage
+    ({ mkDerivation, base, QuickCheck }:
+     mkDerivation {
+       pname = "generic-random";
+       version = "1.1.0.1";
+       sha256 = "0axbsrxcczhlci4zm4brq2lmd7cjgmixl9hk6jnd86w4v107xiph";
+       libraryHaskellDepends = [ base QuickCheck ];
+       testHaskellDepends = [ base QuickCheck ];
+       homepage = "http://github.com/lysxia/generic-random";
+       description = "Generic random generators";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "generic-records" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -79748,8 +79816,8 @@ self: {
      }:
      mkDerivation {
        pname = "gio";
-       version = "0.13.4.0";
-       sha256 = "1jjkz7d81dljhgdcpc5zr5bn1jxnlb23f8hpzx4xz5v9jfy0bflr";
+       version = "0.13.4.1";
+       sha256 = "11w567c4zafcdm5i6wpi1dr4m6mpfvyqyda4llq7wgvjbshy5fqk";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -99696,8 +99764,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-iadd";
-       version = "1.3.0";
-       sha256 = "0kr0s2zdi1453cfbwm5i99ajybk72q012k9bd13lwc22fksph9xq";
+       version = "1.3.1";
+       sha256 = "0z7f9bm7xkq8a9kbhf3bd6fxhfaab08ddgghpbg5z460l4lhcczv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -112401,8 +112469,8 @@ self: {
      }:
      mkDerivation {
        pname = "imap";
-       version = "0.3.0.4";
-       sha256 = "021ya9pkf8q1nk805ck5hhm06q9lnp22d78hr0nz112xbxm5rqkw";
+       version = "0.3.0.5";
+       sha256 = "1wkm6agp0gsqg8lqfqp7sm0aq64426lpfw56nmnzvfk1hkq2gwmp";
        libraryHaskellDepends = [
          attoparsec base bytestring connection containers derive either
          exceptions hslogger list-t network pipes random rolling-queue stm
@@ -112480,6 +112548,93 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "imj-animation" = callPackage
+    ({ mkDerivation, base, imj-base, imj-prelude, mtl }:
+     mkDerivation {
+       pname = "imj-animation";
+       version = "0.1.0.2";
+       sha256 = "1v0rji1b45n309wn4ld5fs60rri8gn4xg0wz319f2mcqqrih6ir4";
+       libraryHaskellDepends = [ base imj-base imj-prelude mtl ];
+       testHaskellDepends = [ base ];
+       homepage = "https://github.com/OlivierSohn/hamazed/blob/master/imj-animation/README.md";
+       description = "Animation Framework";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "imj-base" = callPackage
+    ({ mkDerivation, ansi-terminal, base, imj-prelude, mtl, primitive
+     , random, terminal-size, text, time, vector, vector-algorithms
+     }:
+     mkDerivation {
+       pname = "imj-base";
+       version = "0.1.0.2";
+       sha256 = "1b42xqzbgr47r2rkhy9299p68z9imgx19xc1d5rvfc3qyg8ciph2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal base imj-prelude mtl primitive random terminal-size
+         text time vector vector-algorithms
+       ];
+       executableHaskellDepends = [
+         ansi-terminal base imj-prelude mtl text time
+       ];
+       testHaskellDepends = [
+         ansi-terminal base imj-prelude mtl text time
+       ];
+       homepage = "https://github.com/OlivierSohn/hamazed/blob/master/imj-base/README.md";
+       description = "Game engine with geometry, easing, animated text, delta rendering";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "imj-game-hamazed" = callPackage
+    ({ mkDerivation, base, containers, imj-animation, imj-base
+     , imj-prelude, matrix, mtl, terminal-size, text, vector
+     }:
+     mkDerivation {
+       pname = "imj-game-hamazed";
+       version = "0.1.0.2";
+       sha256 = "0s0a2c1pfp5mwfmh1fjbq83ws68d8k5r526b7qmq36p4n78hx22g";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers imj-animation imj-base imj-prelude matrix mtl
+         terminal-size text vector
+       ];
+       executableHaskellDepends = [ base imj-prelude ];
+       testHaskellDepends = [ base imj-base mtl text ];
+       homepage = "https://github.com/OlivierSohn/hamazed/blob/master/imj-game-hamazed//README.md";
+       description = "A game with flying numbers and 8-bit color animations";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "imj-measure-stdout" = callPackage
+    ({ mkDerivation, base, imj-prelude, optparse-applicative }:
+     mkDerivation {
+       pname = "imj-measure-stdout";
+       version = "0.1.0.2";
+       sha256 = "15s7dd241z9lzm0nb46yr0y7rjryy6jydwfgigcsalv5my4p2j6x";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base imj-prelude optparse-applicative
+       ];
+       homepage = "https://github.com/OlivierSohn/hamazed/blob/master/imj-measure-stdout/README.md";
+       description = "An application to determine the maximum capacity of stdout buffer";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "imj-prelude" = callPackage
+    ({ mkDerivation, base, mtl, text }:
+     mkDerivation {
+       pname = "imj-prelude";
+       version = "0.1.0.2";
+       sha256 = "1nv3fxps3i4znibv98qygxdl22dzri5zkw6hjaqajb4nlnh4bd0v";
+       libraryHaskellDepends = [ base mtl text ];
+       homepage = "https://github.com/OlivierSohn/hamazed/blob/master/imj-prelude/README.md";
+       description = "Prelude library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "imm" = callPackage
     ({ mkDerivation, aeson, ansi-wl-pprint, atom-conduit, base
      , blaze-html, blaze-markup, bytestring, case-insensitive
@@ -113458,6 +113613,34 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "inline-c_0_5_6_1" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, binary, bytestring
+     , containers, cryptohash, directory, filepath, gsl, gslcblas
+     , hashable, hspec, mtl, parsec, parsers, QuickCheck, raw-strings-qq
+     , regex-posix, stdenv, template-haskell, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "inline-c";
+       version = "0.5.6.1";
+       sha256 = "0kpbwrri9idllwd7gfamghrdrz16zqjphmb3cp5nq160dxz73brd";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-wl-pprint base binary bytestring containers cryptohash
+         directory filepath hashable mtl parsec parsers QuickCheck
+         template-haskell transformers unordered-containers vector
+       ];
+       executableSystemDepends = [ gsl gslcblas ];
+       testHaskellDepends = [
+         ansi-wl-pprint base containers hashable hspec parsers QuickCheck
+         raw-strings-qq regex-posix template-haskell transformers
+         unordered-containers vector
+       ];
+       description = "Write Haskell source files including C code inline. No FFI required.";
+       license = stdenv.lib.licenses.mit;
+     }) {inherit (pkgs) gsl; gslcblas = null;};
+
   "inline-c" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, containers, gsl
      , gslcblas, hashable, hspec, mtl, parsec, parsers, QuickCheck
@@ -113484,6 +113667,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {inherit (pkgs) gsl; gslcblas = null;};
 
+  "inline-c-cpp_0_1_0_0" = callPackage
+    ({ mkDerivation, base, inline-c, stdenv, template-haskell }:
+     mkDerivation {
+       pname = "inline-c-cpp";
+       version = "0.1.0.0";
+       sha256 = "0iba77p2ncxbg5sb4ks8f3lgp6zdnjhzvrr2ap3yg49is5b9f5rf";
+       libraryHaskellDepends = [ base inline-c template-haskell ];
+       testHaskellDepends = [ base ];
+       description = "Lets you embed C++ code into Haskell";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "inline-c-cpp" = callPackage
     ({ mkDerivation, base, hspec, inline-c, safe-exceptions
      , template-haskell
@@ -134324,7 +134519,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "mmark_0_0_4_1" = callPackage
+  "mmark_0_0_4_2" = callPackage
     ({ mkDerivation, aeson, base, case-insensitive, containers
      , criterion, data-default-class, deepseq, dlist, email-validate
      , foldl, hashable, hspec, hspec-megaparsec, html-entity-map, lucid
@@ -134334,8 +134529,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmark";
-       version = "0.0.4.1";
-       sha256 = "0m2naq38ijmxnd9kdr77qb5h5z1bnfsbvy1g1mz54yj1y44jr4ra";
+       version = "0.0.4.2";
+       sha256 = "0jkcgk8m9dc98cvkc7j6din5nl92n9whvsv144zdgn4fjjlcl2zl";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base case-insensitive containers data-default-class deepseq
@@ -145119,8 +145314,8 @@ self: {
      }:
      mkDerivation {
        pname = "opencv";
-       version = "0.0.2.0";
-       sha256 = "1v3a97qrqxssl56bwip98ifkism9lzjhmizbgxbdhn8dbrmn8jgg";
+       version = "0.0.2.1";
+       sha256 = "1bwl3csl2bsgz32i7s59hb25hxj05vn9g3fa8xix9klz8kyrzam1";
        configureFlags = [
          "--with-gcc=${stdenv.cc}/bin/c++" "--with-ld=${stdenv.cc}/bin/c++"
        ];
@@ -145153,8 +145348,8 @@ self: {
      }:
      mkDerivation {
        pname = "opencv-extra";
-       version = "0.2.0.0";
-       sha256 = "0qdcikwr3shxjx3sdsnawwbg0h6pc1pn29cxq15hpjbv37yg2fc1";
+       version = "0.2.0.1";
+       sha256 = "0l4bphpsc9nv6kjvbyjqx0345mq4ryigi93ak64vv0bwp84xk5xz";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          base bindings-DSL bytestring containers inline-c inline-c-cpp
@@ -151018,8 +151213,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-redis";
-       version = "2.5.2";
-       sha256 = "04rbszmdykk3ks5qpfbvw6gpgqic6lqyyw49rjf3g4p1yhlmd9kv";
+       version = "2.5.2.1";
+       sha256 = "1vbrbgvjymrf3r6x3lix2yvb81iakdq7w8n3g2cq68l0vp8bryah";
        libraryHaskellDepends = [
          aeson attoparsec base binary bytestring hedis http-api-data
          monad-control mtl path-pieces persistent scientific text time
@@ -180631,10 +180826,8 @@ self: {
      }:
      mkDerivation {
        pname = "snap-templates";
-       version = "1.0.0.0";
-       sha256 = "06sns89y2b2y8ln9ci99vph9v67yphcvw7fwdqgp41wx2x496a7n";
-       revision = "1";
-       editedCabalFile = "0y86zbaw4ain6ia15b7fpr48sxxz37x230qvrf28dicxcxm8jmva";
+       version = "1.0.0.1";
+       sha256 = "1l6gc2ppsvbaf783namglpyzghhynlg97q3ajc2ralibs21vsn7c";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -184887,8 +185080,8 @@ self: {
      }:
      mkDerivation {
        pname = "stackage2nix";
-       version = "0.3.0";
-       sha256 = "1cgcdgsw8qbc7dcfvj2jhwaja5x03fqa8f67c8f86fzrn0wcvw47";
+       version = "0.4.0";
+       sha256 = "0qj8v7kdyqsgm518gfrpdsvv7njwzrg2lm3k6cwd3lh50l9vsgcd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -184902,7 +185095,7 @@ self: {
        testHaskellDepends = [
          base bytestring Cabal hspec pretty shakespeare text yaml
        ];
-       homepage = "https://github.com/4e6/stackage2nix#readme";
+       homepage = "https://github.com/typeable/stackage2nix#readme";
        description = "Convert Stack files into Nix build instructions";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -201309,6 +201502,27 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "typed-process_0_2_1_0" = callPackage
+    ({ mkDerivation, async, base, base64-bytestring, bytestring, hspec
+     , process, stm, temporary, transformers
+     }:
+     mkDerivation {
+       pname = "typed-process";
+       version = "0.2.1.0";
+       sha256 = "1l6wpkwnz4lriq1n0hxv3mdvzmrf44ddkb1ys8cyj3ywfn2xh56j";
+       libraryHaskellDepends = [
+         async base bytestring process stm transformers
+       ];
+       testHaskellDepends = [
+         async base base64-bytestring bytestring hspec process stm temporary
+         transformers
+       ];
+       homepage = "https://haskell-lang.org/library/typed-process";
+       description = "Run external processes, with strong typing of streams";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "typed-spreadsheet" = callPackage
     ({ mkDerivation, async, base, diagrams-cairo, diagrams-gtk
      , diagrams-lib, foldl, gtk, microlens, stm, text, transformers
@@ -201904,27 +202118,27 @@ self: {
      }) {};
 
   "uhc-light" = callPackage
-    ({ mkDerivation, array, base, binary, bytestring, containers
-     , directory, fgl, filepath, hashable, mtl, network, old-locale
-     , primitive, process, syb, transformers, uhc-util, utf8-string
-     , uulib, vector
+    ({ mkDerivation, array, base, binary, bytestring, chr-data
+     , containers, directory, fgl, filepath, hashable, mtl, network
+     , old-locale, primitive, process, syb, transformers, uhc-util
+     , utf8-string, uulib, vector
      }:
      mkDerivation {
        pname = "uhc-light";
-       version = "1.1.9.5";
-       sha256 = "07b8hvam9n801ldwrm6jjds691gxjw4yp33zsg4bbbv2mk6z7fpa";
+       version = "1.1.10.0";
+       sha256 = "0l8p6jn5f2lakdq5lvish0w62cpc0dsx7xm0jcwy6bml3ivlpzw9";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array base binary bytestring containers directory fgl filepath
-         hashable mtl network old-locale primitive process syb transformers
-         uhc-util utf8-string uulib vector
+         array base binary bytestring chr-data containers directory fgl
+         filepath hashable mtl network old-locale primitive process syb
+         transformers uhc-util utf8-string uulib vector
        ];
        executableHaskellDepends = [
-         array base binary bytestring containers directory fgl filepath
-         hashable mtl network old-locale primitive process syb transformers
-         uhc-util utf8-string uulib vector
+         array base binary bytestring chr-data containers directory fgl
+         filepath hashable mtl network old-locale primitive process syb
+         transformers uhc-util utf8-string uulib vector
        ];
        homepage = "https://github.com/UU-ComputerScience/uhc";
        description = "Part of UHC packaged as cabal/hackage installable library";
@@ -211707,6 +211921,46 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "wreq_0_5_2_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, attoparsec
+     , authenticate-oauth, base, base16-bytestring, base64-bytestring
+     , byteable, bytestring, Cabal, cabal-doctest, case-insensitive
+     , containers, cryptohash, directory, doctest, exceptions, filepath
+     , ghc-prim, hashable, http-client, http-client-tls, http-types
+     , HUnit, lens, lens-aeson, mime-types, network-info, psqueues
+     , QuickCheck, snap-core, snap-server, template-haskell, temporary
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, time, time-locale-compat, transformers, unix-compat
+     , unordered-containers, uuid, vector
+     }:
+     mkDerivation {
+       pname = "wreq";
+       version = "0.5.2.0";
+       sha256 = "06v70dpnh7lp1sr0i0fvl2b2cx0z57dfwi8i2fxva0gcdwan0fki";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson attoparsec authenticate-oauth base base16-bytestring byteable
+         bytestring case-insensitive containers cryptohash exceptions
+         ghc-prim hashable http-client http-client-tls http-types lens
+         lens-aeson mime-types psqueues template-haskell text time
+         time-locale-compat unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty base base64-bytestring bytestring
+         case-insensitive containers directory doctest filepath hashable
+         http-client http-types HUnit lens lens-aeson network-info
+         QuickCheck snap-core snap-server temporary test-framework
+         test-framework-hunit test-framework-quickcheck2 text time
+         transformers unix-compat unordered-containers uuid vector
+       ];
+       homepage = "http://www.serpentine.com/wreq";
+       description = "An easy-to-use HTTP client library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "wreq-sb" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec
      , authenticate-oauth, base, base16-bytestring, base64-bytestring
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index 3eedf19a312..40c01b15e5a 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -4,7 +4,7 @@
 , mysql, libxml2, readline, zlib, curl, postgresql, gettext
 , openssl, pcre, pkgconfig, sqlite, config, libjpeg, libpng, freetype
 , libxslt, libmcrypt, bzip2, icu, openldap, cyrus_sasl, libmhash, freetds
-, uwimap, pam, gmp, apacheHttpd, libiconv, systemd }:
+, uwimap, pam, gmp, apacheHttpd, libiconv, systemd, libsodium }:
 
 let
 
@@ -225,6 +225,11 @@ let
         calendar = {
           configureFlags = ["--enable-calendar"];
         };
+
+        sodium = {
+          configureFlags = ["--with-sodium=${libsodium.dev}"];
+          buildInputs = [libsodium];
+        };
       };
 
       cfg = {
@@ -264,6 +269,7 @@ let
         mssqlSupport = (!php7) && (config.php.mssql or (!stdenv.isDarwin));
         ztsSupport = config.php.zts or false;
         calendarSupport = config.php.calendar or true;
+        sodiumSupport = (lib.versionAtLeast version "7.2") && config.php.sodium or true;
       };
 
       hardeningDisable = [ "bindnow" ];
@@ -345,4 +351,9 @@ in {
     version = "7.1.11";
     sha256 = "0ww5493w8w3jlks0xqlfm3v6mm53vpnv5vjy63inkj8zf3gdfikn";
   };
+
+  php72 = generic {
+    version = "7.2.0";
+    sha256 = "0jn642bm4ah6a5cjavpz8mzw3ddxa270fcwxkj3rg6vb4bjgmzib";
+  };
 }
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index 478c2b45b26..6a49107361a 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, fetchpatch, fetchFromSavannah, fetchFromGitHub
 , zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison
 , autoconf, darwin ? null
-, buildEnv, bundler, bundix
+, buildEnv, bundler, bundix, Foundation
 } @ args:
 
 let
@@ -27,6 +27,7 @@ let
     tag = ver.gitTag;
     isRuby20 = ver.majMin == "2.0";
     isRuby21 = ver.majMin == "2.1";
+    isRuby25 = ver.majMin == "2.5";
     baseruby = self.override { useRailsExpress = false; };
     self = lib.makeOverridable (
       { stdenv, lib, fetchurl, fetchpatch, fetchFromSavannah, fetchFromGitHub
@@ -40,7 +41,7 @@ let
       , libffi, fiddleSupport ? true
       , autoreconfHook, bison, autoconf
       , darwin ? null
-      , buildEnv, bundler, bundix
+      , buildEnv, bundler, bundix, Foundation
       }:
       let rubySrc =
         if useRailsExpress then fetchFromGitHub {
@@ -75,11 +76,13 @@ let
           ++ (op opensslSupport openssl)
           ++ (op gdbmSupport gdbm)
           ++ (op yamlSupport libyaml)
+          ++ (op isRuby25 autoconf)
           # Looks like ruby fails to build on darwin without readline even if curses
           # support is not enabled, so add readline to the build inputs if curses
           # support is disabled (if it's enabled, we already have it) and we're
           # running on darwin
           ++ (op (!cursesSupport && stdenv.isDarwin) readline)
+          ++ (op (isRuby25 && stdenv.isDarwin) Foundation)
           ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ]));
 
         enableParallelBuilding = true;
@@ -106,6 +109,11 @@ let
           cp ${config}/config.guess tool/
           cp ${config}/config.sub tool/
         ''
+        else if isRuby25 then ''
+          sed -i configure.ac -e '/config.guess/d'
+          cp ${config}/config.guess tool/
+          cp ${config}/config.sub tool/
+        ''
         else opString useRailsExpress ''
           sed -i configure.in -e '/config.guess/d'
           cp ${config}/config.guess tool/
@@ -220,4 +228,12 @@ in {
       git = "1w83kzak3m6vv3k09ynfw9vpgc7vpmij3x3zmgrhwm4ds1sp5irl";
     };
   };
+
+  ruby_2_5_0 = generic {
+    version = rubyVersion "2" "5" "0" "";
+    sha256 = {
+      src = "1azj0d2lzziw6iml7bx3sxpxzcdmfwfq3yhm7djyp20q1xiz7rj6";
+      git = "0d436nqmp3ykdkp4sck5bb8sf3qvx30x1p58xh8axv66mvsyc2jd";
+    };
+  };
 }
diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix
index 3d3b17cd2f7..858bc0a13f3 100644
--- a/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/pkgs/development/interpreters/ruby/patchsets.nix
@@ -39,4 +39,9 @@ rec {
     "${patchSet}/patches/ruby/2.4/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.4/head/railsexpress/03-display-more-detailed-stack-trace.patch"
   ];
+  "2.5.0" = ops useRailsExpress [
+    "${patchSet}/patches/ruby/2.5/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
+    "${patchSet}/patches/ruby/2.5/head/railsexpress/02-improve-gc-stats.patch"
+    "${patchSet}/patches/ruby/2.5/head/railsexpress/03-more-detailed-stacktrace.patch"
+  ];
 }
diff --git a/pkgs/development/interpreters/ruby/rvm-patchsets.nix b/pkgs/development/interpreters/ruby/rvm-patchsets.nix
index c60d6e3728d..1598cbc56e1 100644
--- a/pkgs/development/interpreters/ruby/rvm-patchsets.nix
+++ b/pkgs/development/interpreters/ruby/rvm-patchsets.nix
@@ -3,6 +3,6 @@
 fetchFromGitHub {
   owner  = "skaes";
   repo   = "rvm-patchsets";
-  rev    = "15f5df0fba0e2fb489856b5bdb67a52fb9745f94";
-  sha256 = "0vdgr7xp3gbmsyaz4q78qlbwmp006b1gkgj0kwi6h8d80dclbzny";
+  rev    = "ba5a3c6f972e1b957b4b3fe28b5730ef0e27bff3";
+  sha256 = "0sjmhhb8hshxa58x062j44w0xdck8ykgpsg33wjr0wv9npwpkwrz";
 }
diff --git a/pkgs/development/libraries/ilmbase/default.nix b/pkgs/development/libraries/ilmbase/default.nix
index 21c2c46105e..956a8667be5 100644
--- a/pkgs/development/libraries/ilmbase/default.nix
+++ b/pkgs/development/libraries/ilmbase/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, automake, autoconf, libtool, which }:
 
 stdenv.mkDerivation rec {
-  name = "ilmbase-2.2.0";
+  name = "ilmbase-2.2.1";
 
   src = fetchurl {
     url = "http://download.savannah.nongnu.org/releases/openexr/${name}.tar.gz";
-    sha256 = "1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c";
+    sha256 = "17k0hq19wplx9s029kjrq6c51x2ryrfmaavcappkd0g67gk0dhna";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/jemalloc/default.nix b/pkgs/development/libraries/jemalloc/default.nix
index 8c8c181409d..d11ec0a7823 100644
--- a/pkgs/development/libraries/jemalloc/default.nix
+++ b/pkgs/development/libraries/jemalloc/default.nix
@@ -2,21 +2,23 @@
 
 stdenv.mkDerivation rec {
   name = "jemalloc-${version}";
-  version = "4.5.0";
+  version = "5.0.1";
 
   src = fetchurl {
     url = "https://github.com/jemalloc/jemalloc/releases/download/${version}/${name}.tar.bz2";
-    sha256 = "9409d85664b4f135b77518b0b118c549009dc10f6cba14557d170476611f6780";
+    sha256 = "4814781d395b0ef093b21a08e8e6e0bd3dab8762f9935bbfb71679b0dea7c3e9";
   };
 
   # By default, jemalloc puts a je_ prefix onto all its symbols on OSX, which
   # then stops downstream builds (mariadb in particular) from detecting it. This
   # option should remove the prefix and give us a working jemalloc.
-  configureFlags = stdenv.lib.optional stdenv.isDarwin "--with-jemalloc-prefix=";
-
+  configureFlags = stdenv.lib.optional stdenv.isDarwin "--with-jemalloc-prefix="
+                   # jemalloc is unable to correctly detect transparent hugepage support on
+                   # ARM (https://github.com/jemalloc/jemalloc/issues/526), and the default
+                   # kernel ARMv6/7 kernel does not enable it, so we explicitly disable support
+                   ++ stdenv.lib.optional stdenv.isArm "--disable-thp";
   doCheck = true;
 
-
   meta = with stdenv.lib; {
     homepage = http://jemalloc.net;
     description = "General purpose malloc(3) implementation";
diff --git a/pkgs/development/libraries/openexr/default.nix b/pkgs/development/libraries/openexr/default.nix
index d2d8b686f35..8d5a6bb65a9 100644
--- a/pkgs/development/libraries/openexr/default.nix
+++ b/pkgs/development/libraries/openexr/default.nix
@@ -5,19 +5,11 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.savannah.nongnu.org/releases/openexr/${name}.tar.gz";
-    sha256 = "0ca2j526n4wlamrxb85y2jrgcv0gf21b3a19rr0gh4rjqkv1581n";
+    sha256 = "1kdf2gqznsdinbd5vcmqnif442nyhdf9l7ckc51410qm2gv5m6lg";
   };
 
   patches = [
     ./bootstrap.patch
-    (fetchpatch {
-      # https://github.com/openexr/openexr/issues/232
-      # https://github.com/openexr/openexr/issues/238
-      name = "CVE-2017-12596.patch";
-      url = "https://github.com/openexr/openexr/commit/f09f5f26c1924.patch";
-      sha256 = "1d014da7c8cgbak5rgr4mq6wzm7kwznb921pr7nlb52vlfvqp4rs";
-      stripLen = 1;
-    })
   ];
 
   outputs = [ "bin" "dev" "out" "doc" ];
diff --git a/pkgs/development/libraries/taglib/default.nix b/pkgs/development/libraries/taglib/default.nix
index e4d7b426854..67db6e5097d 100644
--- a/pkgs/development/libraries/taglib/default.nix
+++ b/pkgs/development/libraries/taglib/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, zlib, cmake}:
+{stdenv, fetchurl, zlib, cmake, fetchpatch}:
 
 stdenv.mkDerivation rec {
   name = "taglib-1.11.1";
@@ -8,6 +8,15 @@ stdenv.mkDerivation rec {
     sha256 = "0ssjcdjv4qf9liph5ry1kngam1y7zp8fzr9xv4wzzrma22kabldn";
   };
 
+  patches = [
+    (fetchpatch {
+      # https://github.com/taglib/taglib/issues/829
+      name = "CVE-2017-12678.patch";
+      url = "https://github.com/taglib/taglib/commit/eb9ded1206f18.patch";
+      sha256 = "1bvpxsvmlpi3by7myzss9kkpdkv405612n8ff68mw1ambj8h1m90";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ zlib ];
diff --git a/pkgs/development/libraries/zeromq/4.x.nix b/pkgs/development/libraries/zeromq/4.x.nix
index 030246db318..eea0fb727b0 100644
--- a/pkgs/development/libraries/zeromq/4.x.nix
+++ b/pkgs/development/libraries/zeromq/4.x.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "zeromq-${version}";
-  version = "4.2.2";
+  version = "4.2.3";
 
   src = fetchFromGitHub {
     owner = "zeromq";
     repo = "libzmq";
     rev = "v${version}";
-    sha256 = "09317g4zkalp3k11x6vbidcm4qf02ciml1wxgp3742lrlgcblgxy";
+    sha256 = "1yadf4vz4m49lpwwwscxs6wf4v9dgqgxkwgwpby9lvb4pv8qbmaf";
   };
 
   nativeBuildInputs = [ cmake asciidoc ];
diff --git a/pkgs/development/python-modules/lark-parser/default.nix b/pkgs/development/python-modules/lark-parser/default.nix
index b81cc132a2d..a1b58a4eb05 100644
--- a/pkgs/development/python-modules/lark-parser/default.nix
+++ b/pkgs/development/python-modules/lark-parser/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "lark-parser"; # PyPI name
-  version = "2017-12-10";
+  version = "2017-12-18";
 
   src = fetchFromGitHub {
     owner = "erezsh";
     repo = "lark";
-    rev = "852607b978584ecdec68ac115dd8554cdb0a2305";
-    sha256 = "1clzmvbp1b4zamcm6ldak0hkw46n3lhw4b28qq9xdl0n4va6zig7";
+    rev = "9d6cde9b1ba971f02ea8106fa3b71a934e83d6fa";
+    sha256 = "0nv6nxd8wx9dwhn37m94fkc10gknckrjs1hzajxygla3dpql455j";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/tools/delve/default.nix b/pkgs/development/tools/delve/default.nix
index 06b6a0993be..3671a3dcca9 100644
--- a/pkgs/development/tools/delve/default.nix
+++ b/pkgs/development/tools/delve/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "delve-${version}";
-  version = "0.12.1";
+  version = "0.12.2";
 
   goPackagePath = "github.com/derekparker/delve";
   excludedPackages = "\\(_fixtures\\|scripts\\|service/test\\)";
@@ -11,14 +11,14 @@ buildGoPackage rec {
     owner = "derekparker";
     repo = "delve";
     rev = "v${version}";
-    sha256 = "0vkyx9sd66yrqz9sa4pysmpjv6gdgpfk1icrbjk93h2ry15ma8d6";
+    sha256 = "1241zqyimgqil4qd72f0yiw935lkdmfr88kvqbkn9n05k7xhdg30";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "debugger for the Go programming language";
     homepage = https://github.com/derekparker/delve;
-    maintainers = with stdenv.lib.maintainers; [ vdemeester ];
-    license = stdenv.lib.licenses.mit;
-    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ vdemeester ];
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" ] ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/gauge/default.nix b/pkgs/development/tools/gauge/default.nix
new file mode 100644
index 00000000000..f1533f551b2
--- /dev/null
+++ b/pkgs/development/tools/gauge/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "gauge-${version}";
+  version = "0.9.6";
+
+  goPackagePath = "github.com/getgauge/gauge";
+
+  src = fetchFromGitHub {
+    owner = "getgauge";
+    repo = "gauge";
+    rev = "v${version}";
+    sha256 = "0p2bnrzgx616jbyr9h4h9azaq7ry63z4qkwgy0ivwrpmhfqfqwmh";
+  };
+
+  meta = with stdenv.lib; {
+   description = "Light weight cross-platform test automation";
+   homepage    = http://gauge.org;
+   license     = licenses.gpl3;
+   maintainers = [ maintainers.vdemeester ];
+   platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/goconvey/default.nix b/pkgs/development/tools/goconvey/default.nix
new file mode 100644
index 00000000000..e4ef9d26da2
--- /dev/null
+++ b/pkgs/development/tools/goconvey/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "goconvey-${version}";
+  version = "1.6.3";
+
+  goPackagePath = "github.com/smartystreets/goconvey";
+  excludedPackages = "web/server/watch/integration_testing";
+
+  goDeps = ./deps.nix;
+
+  src = fetchFromGitHub {
+    owner = "smartystreets";
+    repo = "goconvey";
+    rev = "${version}";
+    sha256 = "1ph18rkl3ns3fgin5i4j54w5a69grrmf3apcsmnpdn1wlrbs3dxh";
+  };
+
+  meta = {
+    description = "Go testing in the browser. Integrates with `go test`. Write behavioral tests in Go.";
+    homepage = https://github.com/smartystreets/goconvey;
+    maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/tools/goconvey/deps.nix b/pkgs/development/tools/goconvey/deps.nix
new file mode 100644
index 00000000000..d329359da70
--- /dev/null
+++ b/pkgs/development/tools/goconvey/deps.nix
@@ -0,0 +1,20 @@
+[
+  {
+    goPackagePath = "github.com/jtolds/gls";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jtolds/gls";
+      rev = "77f18212c9c7edc9bd6a33d383a7b545ce62f064";
+      sha256 = "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h";
+    };
+  }
+  {
+    goPackagePath = "github.com/smartystreets/assertions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/smartystreets/assertions";
+      rev = "0b37b35ec7434b77e77a4bb29b79677cced992ea";
+      sha256 = "1j0adgbykl55rf2945g0n5bmqdsnjcqlx5dcmpfh4chki43hiwg9";
+    };
+  }
+]
diff --git a/pkgs/development/tools/godef/default.nix b/pkgs/development/tools/godef/default.nix
index fdb53dd288f..6644c8fcfc4 100644
--- a/pkgs/development/tools/godef/default.nix
+++ b/pkgs/development/tools/godef/default.nix
@@ -2,8 +2,8 @@
 
 buildGoPackage rec {
   name = "godef-${version}";
-  version = "20160620-${stdenv.lib.strings.substring 0 7 rev}";
-  rev = "ee532b944160bb27b6f23e4f5ef38b8fdaa2a6bd";
+  version = "20170920-${stdenv.lib.strings.substring 0 7 rev}";
+  rev = "b692db1de5229d4248e23c41736b431eb665615d";
 
   goPackagePath = "github.com/rogpeppe/godef";
   excludedPackages = "go/printer/testdata";
@@ -11,7 +11,7 @@ buildGoPackage rec {
   src = fetchgit {
     inherit rev;
     url = "https://github.com/rogpeppe/godef";
-    sha256 = "1r8c4ijjnwvb9pci4wasmq88yj0ginwly2542kw4hyg2c87j613l";
+    sha256 = "0xqp9smfyznm8v2iy4wyy3kd24mga12fx0y0896qimac4hj2al15";
   };
 
   meta = {
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index d05706a7fad..0f720f1f7e3 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -4,7 +4,7 @@ with stdenv.lib;
 
 buildGoPackage rec {
   name = "skopeo-${version}";
-  version = "0.1.23";
+  version = "0.1.27";
   rev = "v${version}";
 
   goPackagePath = "github.com/projectatomic/skopeo";
@@ -17,7 +17,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "projectatomic";
     repo = "skopeo";
-    sha256 = "1axxnm87fpsd7q28v951ilhmzd42k8wyh741gdfdcajjwglfj0nn";
+    sha256 = "1xwwzxjczz8qdk1rf0h78qd3vk9mxxb8yi6f8kfqvcdcsvkajd5g";
   };
 
   patches = [
diff --git a/pkgs/development/tools/skopeo/path.patch b/pkgs/development/tools/skopeo/path.patch
index eb3c54ae66c..fe456b58e54 100644
--- a/pkgs/development/tools/skopeo/path.patch
+++ b/pkgs/development/tools/skopeo/path.patch
@@ -22,17 +22,4 @@ index 50e29b2..7108df5 100644
  	if c.GlobalBool("insecure-policy") {
  		policy = &signature.Policy{Default: []signature.PolicyRequirement{signature.NewPRInsecureAcceptAnything()}}
  	} else if policyPath == "" {
-diff --git a/vendor/github.com/containers/image/docker/docker_client.go b/vendor/github.com/containers/image/docker/docker_client.go
-index b989770..697d2ee 100644
---- a/vendor/github.com/containers/image/docker/docker_client.go
-+++ b/vendor/github.com/containers/image/docker/docker_client.go
-@@ -154,6 +154,9 @@ func setupCertificates(dir string, tlsc *tls.Config) error {
- 		if os.IsNotExist(err) {
- 			return nil
- 		}
-+		if os.IsPermission(err) {
-+			return nil
-+		}
- 		return err
- 	}
  
diff --git a/pkgs/development/tools/vndr/default.nix b/pkgs/development/tools/vndr/default.nix
index 66fdb1841e4..2a4ddaf8039 100644
--- a/pkgs/development/tools/vndr/default.nix
+++ b/pkgs/development/tools/vndr/default.nix
@@ -2,8 +2,8 @@
 
 buildGoPackage rec {
   name = "vndr-${version}";
-  version = "20170511-${lib.strings.substring 0 7 rev}";
-  rev = "0cb33a0eb64c8ca73b8e2939a3430b22fbb8d3e3";
+  version = "20171005-${lib.strings.substring 0 7 rev}";
+  rev = "b57c5799efd5ed743f347a025482babf01ba963e";
 
   goPackagePath = "github.com/LK4D4/vndr";
   excludedPackages = "test";
@@ -12,7 +12,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "LK4D4";
     repo = "vndr";
-    sha256 = "02vdr59xn79hffayfcxg29nf62rdc33a60i104fgj746kcswgy5n";
+    sha256 = "15mmy4a06jgzvlbjbmd89f0xx695x8wg7jqi76kiz495i6figk2v";
   };
 
   meta = {
diff --git a/pkgs/games/cutemaze/default.nix b/pkgs/games/cutemaze/default.nix
index 19fcbb2443d..253a7fcbf30 100644
--- a/pkgs/games/cutemaze/default.nix
+++ b/pkgs/games/cutemaze/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "cutemaze-${version}";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchurl {
     url = "https://gottcode.org/cutemaze/${name}-src.tar.bz2";
-    sha256 = "841f2a208770c9de6009fed64e24a059a878686c444c4b572c56b564e4cfa66e";
+    sha256 = "1a2jmkm7fjzdrvzgvbqfq20k0vvpwfcycagsm0haxb3fpv86950y";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix
index a7392bbc34e..49d786284da 100644
--- a/pkgs/games/steam/chrootenv.nix
+++ b/pkgs/games/steam/chrootenv.nix
@@ -69,6 +69,9 @@ in buildFHSUserEnv rec {
     xlibs.libX11
     xlibs.libXfixes
 
+    # Needed to properly check for libGL.so.1 in steam-wrapper.sh
+    pkgsi686Linux.glxinfo
+
     # Not formally in runtime but needed by some games
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-ugly
@@ -103,7 +106,26 @@ in buildFHSUserEnv rec {
     export TZDIR=/etc/zoneinfo
   '';
 
-  runScript = "steam";
+  runScript = writeScript "steam-wrapper.sh" ''
+    #!${stdenv.shell}
+    if [ -f /host/etc/NIXOS ]; then   # Check only useful on NixOS
+      glxinfo >/dev/null 2>&1
+      # If there was an error running glxinfo, we know something is wrong with the configuration
+      if [ $? -ne 0 ]; then
+        cat <<EOF > /dev/stderr
+    **
+    WARNING: Steam is not set up. Add the following options to /etc/nixos/configuration.nix
+    and then run \`sudo nixos-rebuild switch\`:
+    { 
+      hardware.opengl.driSupport32Bit = true;
+      hardware.pulseaudio.support32Bit = true;
+    }
+    **
+    EOF
+      fi
+    fi
+    steam
+  '';
 
   passthru.run = buildFHSUserEnv {
     name = "steam-run";
diff --git a/pkgs/misc/emulators/mgba/default.nix b/pkgs/misc/emulators/mgba/default.nix
index f14608fd93e..64e29f59a18 100644
--- a/pkgs/misc/emulators/mgba/default.nix
+++ b/pkgs/misc/emulators/mgba/default.nix
@@ -1,21 +1,34 @@
-{ stdenv, fetchFromGitHub
+{ stdenv, fetchFromGitHub, fetchpatch
 , pkgconfig, cmake, libzip, epoxy, ffmpeg, imagemagick, SDL2
 , qtbase, qtmultimedia }:
 
 stdenv.mkDerivation rec {
   name = "mgba-${version}";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "mgba-emu";
     repo = "mgba";
     rev = version;
-    sha256 = "1kzb6zj2lxfaiyfq9h7q26fh7xh1ggybmh5pin5rcgs7jyygrsjb";
+    sha256 = "1fgxn3j6wc5mcgb81sc6fzy5m4saz02jz4zlms51dgycvy0flbz7";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
+
   buildInputs = [ libzip epoxy ffmpeg imagemagick SDL2 qtbase qtmultimedia ];
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/mgba-emu/mgba/commit/e31373560535203d826687044290a4994706c2dd.patch";
+      sha256 = "07582vj0fqgsgryx28pnshiwri9dn88l1rr4vkraib7bzx7cs4f9";
+    })
+
+    (fetchpatch {
+      url = "https://github.com/mgba-emu/mgba/commit/baabe0090bb1fd5997e531fd9568c2de09b5fc21.patch";
+      sha256 = "1kv9dxxna35s050q9af9nzskplz2x1aq8avg0ihbznhxjl8vmxz9";
+    })
+  ];
+
   meta = with stdenv.lib; {
     homepage = https://mgba.io;
     description = "A modern GBA emulator with a focus on accuracy";
diff --git a/pkgs/os-specific/linux/acpi-call/default.nix b/pkgs/os-specific/linux/acpi-call/default.nix
index a04d1decbd8..bd12373da88 100644
--- a/pkgs/os-specific/linux/acpi-call/default.nix
+++ b/pkgs/os-specific/linux/acpi-call/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation {
 
   hardeningDisable = [ "pic" ];
 
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
   preBuild = ''
     sed -e 's/break/true/' -i examples/turn_off_gpu.sh
     sed -e 's@/bin/bash@.bin/sh@' -i examples/turn_off_gpu.sh
diff --git a/pkgs/os-specific/linux/mwprocapture/default.nix b/pkgs/os-specific/linux/mwprocapture/default.nix
index 322d0260f7b..e2abbd7335e 100644
--- a/pkgs/os-specific/linux/mwprocapture/default.nix
+++ b/pkgs/os-specific/linux/mwprocapture/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
     sha256 = "1ri7c4l4xgkhpz0f15jra1p7mpzi8ir6lpwjm7q7hc9m4cvxcs1g";
   };
 
+  nativeBuildInputs = [ kernel.moduleBuildDependencies ];
+
   patches = [ ./linux_4_14_fix.patch ];
 
   preConfigure =
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index 2dc84069d62..12a7d484bf7 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   name = "borgbackup-${version}";
-  version = "1.1.3";
+  version = "1.1.4";
   namePrefix = "";
 
   src = fetchurl {
     url = "https://github.com/borgbackup/borg/releases/download/"
       + "${version}/${name}.tar.gz";
-    sha256 = "1rvn8b6clzd1r317r9jkvk34r31risi0dxfjc7jffhnwasck4anc";
+    sha256 = "1cicqwh85wfp65y00qaq6q4i4jcyy9b66qz5gpl80qc880wab912";
   };
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/compression/brotli/default.nix b/pkgs/tools/compression/brotli/default.nix
index 86ba3ffe78f..92146f1f178 100644
--- a/pkgs/tools/compression/brotli/default.nix
+++ b/pkgs/tools/compression/brotli/default.nix
@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ cmake ];
 
+  outputs = [ "out" "dev" "lib" ];
+
   # This breaks on Darwin because our cmake hook tries to make a build folder
   # and the wonderful bazel BUILD file is already there (yay case-insensitivity?)
   prePatch = "rm BUILD";
diff --git a/pkgs/tools/misc/brltty/default.nix b/pkgs/tools/misc/brltty/default.nix
index ea1ac6d116b..8dbcd08fba6 100644
--- a/pkgs/tools/misc/brltty/default.nix
+++ b/pkgs/tools/misc/brltty/default.nix
@@ -1,35 +1,37 @@
-{ stdenv, fetchurl, pkgconfig, alsaSupport, alsaLib ? null, bluez, systemdSupport, systemd ? null }:
+{ stdenv, fetchurl, pkgconfig, python3, alsaSupport, alsaLib ? null, bluez, systemdSupport, systemd ? null }:
 
 assert alsaSupport -> alsaLib != null;
 assert systemdSupport -> systemd != null;
 
 stdenv.mkDerivation rec {
   name = "brltty-5.5";
-  
+
   src = fetchurl {
     url = "http://brltty.com/archive/${name}.tar.gz";
     sha256 = "0slrqanwj9cm7ql0rpb296xq676zrc1sjyr13lh5lygp4b8qfpci";
   };
-  
-  nativeBuildInputs = [ pkgconfig ];
+
+  nativeBuildInputs = [ pkgconfig python3.pkgs.cython ];
   buildInputs = [ bluez ]
     ++ stdenv.lib.optional alsaSupport alsaLib
     ++ stdenv.lib.optional systemdSupport systemd;
-  
+
   meta = {
     description = "Access software for a blind person using a braille display";
     longDescription = ''
       BRLTTY is a background process (daemon) which provides access to the Linux/Unix
       console (when in text mode) for a blind person using a refreshable braille display.
       It drives the braille display, and provides complete screen review functionality.
-      Some speech capability has also been incorporated. 
+      Some speech capability has also been incorporated.
     '';
     homepage = http://www.brltty.com/;
     license = stdenv.lib.licenses.gpl2;
     maintainers = [ stdenv.lib.maintainers.bramd ];
     platforms = stdenv.lib.platforms.all;
   };
-  
+
+  makeFlags = [ "PYTHON_PREFIX=$(out)" ];
+
   preConfigurePhases = [ "preConfigure" ];
 
   preConfigure = ''
diff --git a/pkgs/tools/misc/clipster/default.nix b/pkgs/tools/misc/clipster/default.nix
index a70cba3f3d0..df638f2b556 100644
--- a/pkgs/tools/misc/clipster/default.nix
+++ b/pkgs/tools/misc/clipster/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation  rec {
   name = "clipster-${version}";
-  version = "1.2.5";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "mrichar1";
     repo = "clipster";
     rev = "${version}";
-    sha256 = "0yjljpqpcbi84ibbrxbm5cbgs16ada4cmvir744hygrdl948zzk3";
+    sha256 = "16gdrm985qwbrsmsqjfyh33glcmx678abl2jpq49djk2qrbhm49k";
   };
 
   pythonEnv = python3.withPackages(ps: with ps; [ pygobject3 ]);
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index d8316c66203..adbd4e87c1e 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, udev }:
 
 stdenv.mkDerivation rec {
-  name = "dhcpcd-6.11.5";
+  name = "dhcpcd-7.0.0";
 
   src = fetchurl {
     url = "mirror://roy/dhcpcd/${name}.tar.xz";
-    sha256 = "17nnhxmbdcc7k2mh6sgvxisqcqbic5540xbig363ds97gvf795kg";
+    sha256 = "1m90wsg4m9bcaavh36vlhjghrbdsi5x2yy92ixhgynmzrgnwlqdb";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index eb1ed030f79..c19d9a8afc1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2237,6 +2237,8 @@ with pkgs;
 
   garmintools = callPackage ../development/libraries/garmintools {};
 
+  gauge = callPackage ../development/tools/gauge { };
+
   gawk = callPackage ../tools/text/gawk {
     inherit (darwin) locale;
   };
@@ -6770,10 +6772,16 @@ with pkgs;
     php = php71;
   });
 
+  php72Packages = recurseIntoAttrs (callPackage ./php-packages.nix {
+    php = php72;
+  });
+
+
   inherit (callPackages ../development/interpreters/php { })
     php56
     php70
-    php71;
+    php71
+    php72;
 
   php-embed = php71-embed;
 
@@ -6910,12 +6918,13 @@ with pkgs;
   bundlerEnv = callPackage ../development/ruby-modules/bundler-env { };
   bundlerApp = callPackage ../development/ruby-modules/bundler-app { };
 
-  inherit (callPackage ../development/interpreters/ruby {})
+  inherit (callPackage ../development/interpreters/ruby { inherit (darwin.apple_sdk.frameworks) Foundation; })
     ruby_2_0_0
     ruby_2_1_10
     ruby_2_2_8
     ruby_2_3_5
-    ruby_2_4_2;
+    ruby_2_4_2
+    ruby_2_5_0;
 
   # Ruby aliases
   ruby = ruby_2_3;
@@ -6924,6 +6933,7 @@ with pkgs;
   ruby_2_2 = ruby_2_2_8;
   ruby_2_3 = ruby_2_3_5;
   ruby_2_4 = ruby_2_4_2;
+  ruby_2_5 = ruby_2_5_0;
 
   scsh = callPackage ../development/interpreters/scsh { };
 
@@ -13102,6 +13112,8 @@ with pkgs;
 
   gocode = callPackage ../development/tools/gocode { };
 
+  goconvey = callPackage ../development/tools/goconvey { };
+
   gotags = callPackage ../development/tools/gotags { };
 
   golint = callPackage ../development/tools/golint { };
@@ -14185,9 +14197,14 @@ with pkgs;
 
   bitscope = callPackage ../applications/science/electronics/bitscope/packages.nix { };
 
-  bitwig-studio =  callPackage ../applications/audio/bitwig-studio {
+  bitwig-studio1 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio1.nix {
+    inherit (gnome2) zenity;
+  };
+  bitwig-studio2 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio2.nix {
     inherit (gnome2) zenity;
+    inherit (self) bitwig-studio1;
   };
+  bitwig-studio = bitwig-studio2;
 
   bgpdump = callPackage ../tools/networking/bgpdump { };
 
@@ -16302,6 +16319,10 @@ with pkgs;
 
   opera = callPackage ../applications/networking/browsers/opera {};
 
+  orca = python3Packages.callPackage ../applications/misc/orca {
+    inherit (gnome3) yelp_tools;
+  };
+
   osmctools = callPackage ../applications/misc/osmctools { };
 
   vivaldi = callPackage ../applications/networking/browsers/vivaldi {};
@@ -16641,10 +16662,7 @@ with pkgs;
 
   quodlibet-xine-full = quodlibet-full.override { xineBackend = true; tag = "-xine-full"; };
 
-  qutebrowser = libsForQt5.callPackage ../applications/networking/browsers/qutebrowser {
-    inherit (python3Packages) buildPythonApplication pyqt5 jinja2 pygments pyyaml pypeg2 cssutils pyopengl attrs;
-    inherit (gst_all_1) gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav;
-  };
+  qutebrowser = libsForQt5.callPackage ../applications/networking/browsers/qutebrowser { };
 
   rabbitvcs = callPackage ../applications/version-management/rabbitvcs {};
 
@@ -17102,6 +17120,10 @@ with pkgs;
     vte = gnome2.vte.override { pythonSupport = true; };
   };
 
+  lxterminal = callPackage ../applications/misc/lxterminal {
+    vte = gnome2.vte;
+  };
+
   deepin-terminal = callPackage ../applications/misc/deepin-terminal {
     inherit (gnome3) libgee vte;
     wnck = libwnck3;
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index ed13a00b6fc..cf421c6e88d 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -15645,6 +15645,25 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  vidir = buildPerlPackage rec {
+    name = "vidir-0.040";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WO/WOLDRICH/App-${name}-woldrich.tar.gz";
+      sha256 = "0c97yx33pyhskbmwpqbwlkxr85awd6kg1baibvqkarhhvc8v7l0h";
+    };
+    # NB: This preInstall a workaround for a problem that is fixed in HEAD.
+    preInstall = ''
+      sed -i -e '/^use encoding/d' bin/vidir
+    '';
+    outputs = [ "out" ];
+    meta = {
+      maintainers = [ maintainers.chreekat ];
+      homepage = "http://search.cpan.org/~woldrich/App-vidir/bin/vidir";
+      description = "Edit a directory in $EDITOR";
+      license = with stdenv.lib.licenses; [ gpl1 ];
+    };
+  };
+
   VMEC2 = buildPerlModule rec {
     name = "VM-EC2-1.28";
     src = fetchurl {
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index 5af4b6f0c09..d297496c81e 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -8,6 +8,8 @@ let
     };
   isPhpOlder55 = pkgs.lib.versionOlder php.version "5.5";
   isPhp7 = pkgs.lib.versionAtLeast php.version "7.0";
+  isPhp72 = pkgs.lib.versionAtLeast php.version "7.2";
+  isPhpOlder7 = pkgs.lib.versionOlder php.version "7.0";
 
   apcu = if isPhp7 then apcu51 else apcu40;
 
@@ -179,7 +181,7 @@ let
     buildInputs = [ pkgs.spidermonkey_1_8_5 ];
   };
 
-  xdebug = if isPhp7 then xdebug25 else xdebug23;
+  xdebug = if isPhp72 then xdebug26 else if isPhp7 then xdebug25 else xdebug23;
 
   xdebug23 = assert !isPhp7; buildPecl {
     name = "xdebug-2.3.1";
@@ -190,7 +192,7 @@ let
     checkTarget = "test";
   };
 
-  xdebug25 = buildPecl {
+  xdebug25 = assert !isPhp72; buildPecl {
     name = "xdebug-2.5.0";
 
     sha256 = "03c9y25a3gc3kpav0cdgmhjixcaly6974hx7wgihi0wlchgavmlb";
@@ -199,6 +201,15 @@ let
     checkTarget = "test";
   };
 
+  xdebug26 = assert !isPhpOlder7; buildPecl {
+    name = "xdebug-2.6.0beta1";
+
+    sha256 = "0zaj821jbpaqqcbr9a64sa27my9n980pmyy9kxrvvjqq3qg6dpj9";
+
+    doCheck = true;
+    checkTarget = "test";
+  };
+
   yaml = if isPhp7 then yaml20 else yaml13;
 
   yaml13 = assert !isPhp7; buildPecl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index b86efd7fd56..f2f43163c8e 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -9578,8 +9578,6 @@ in {
 
   jsonnet = buildPythonPackage {
     inherit (pkgs.jsonnet) name src;
-    # Python 3 is not yet supported https://github.com/google/jsonnet/pull/335
-    disabled = isPy3k;
   };
 
   jupyter_client = callPackage ../development/python-modules/jupyter_client { };