about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/maintainers.nix2
-rwxr-xr-xmaintainers/scripts/update-python-libraries160
-rw-r--r--nixos/modules/programs/tmux.nix11
-rw-r--r--pkgs/applications/editors/emacs-modes/melpa-packages.nix6
-rw-r--r--pkgs/applications/graphics/feh/default.nix4
-rw-r--r--pkgs/applications/graphics/leocad/default.nix6
-rw-r--r--pkgs/applications/graphics/renderdoc/custom_swig.patch32
-rw-r--r--pkgs/applications/graphics/renderdoc/default.nix30
-rw-r--r--pkgs/applications/misc/electrum-ltc/default.nix7
-rw-r--r--pkgs/applications/misc/hugo/default.nix4
-rw-r--r--pkgs/applications/misc/hugo/deps.nix178
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix6
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix8
-rw-r--r--pkgs/applications/video/motion/default.nix7
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix2
-rw-r--r--pkgs/desktops/enlightenment/rage.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gtksourceview/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix26
-rw-r--r--pkgs/development/compilers/ghc/7.8.3.nix59
-rw-r--r--pkgs/development/compilers/mit-scheme/default.nix7
-rw-r--r--pkgs/development/compilers/uhc/default.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix30
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix171
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml39
-rw-r--r--pkgs/development/haskell-modules/default.nix2
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix4
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix580
-rw-r--r--pkgs/development/haskell-modules/hie-packages.nix459
-rw-r--r--pkgs/development/haskell-modules/initial-packages.nix2
-rw-r--r--pkgs/development/haskell-modules/lib.nix80
-rw-r--r--pkgs/development/haskell-modules/patches/hie-testsuite.patch40
-rw-r--r--pkgs/development/libraries/fastpbkdf2/default.nix31
-rw-r--r--pkgs/development/libraries/libcollectdclient/default.nix11
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix8
-rw-r--r--pkgs/development/libraries/webkitgtk/2.18.nix4
-rw-r--r--pkgs/development/python-modules/django/2_0.nix44
-rw-r--r--pkgs/development/python-modules/libusb1/default.nix26
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix43
-rw-r--r--pkgs/development/python-modules/pelican/default.nix5
-rw-r--r--pkgs/development/python-modules/protocol/default.nix20
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix6
-rw-r--r--pkgs/development/tools/haskell/intero-nix-shim/default.nix1
-rw-r--r--pkgs/development/tools/haskell/vaultenv/default.nix1
-rw-r--r--pkgs/games/dwarf-fortress/dfhack/default.nix8
-rw-r--r--pkgs/games/dwarf-fortress/dwarf-therapist/default.nix6
-rw-r--r--pkgs/games/dwarf-fortress/game.nix6
-rw-r--r--pkgs/games/dwarf-fortress/soundsense.nix2
-rw-r--r--pkgs/games/dwarf-fortress/themes/cla.nix2
-rw-r--r--pkgs/games/dwarf-fortress/themes/phoebus.nix6
-rw-r--r--pkgs/games/dwarf-fortress/unfuck.nix4
-rw-r--r--pkgs/misc/drivers/steamcontroller/default.nix35
-rw-r--r--pkgs/misc/emulators/wine/base.nix2
-rw-r--r--pkgs/misc/emulators/wine/sources.nix11
-rw-r--r--pkgs/os-specific/linux/bbswitch/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix5
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/generic.nix6
-rw-r--r--pkgs/os-specific/linux/rtlwifi_new/default.nix2
-rw-r--r--pkgs/os-specific/linux/spl/default.nix25
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix2
-rw-r--r--pkgs/os-specific/linux/tp_smapi/default.nix2
-rw-r--r--pkgs/os-specific/linux/virtualbox/default.nix2
-rw-r--r--pkgs/os-specific/linux/wireguard/default.nix4
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix13
-rw-r--r--pkgs/servers/web-apps/wallabag/default.nix8
-rw-r--r--pkgs/tools/compression/brotli/default.nix4
-rw-r--r--pkgs/tools/package-management/home-manager/default.nix38
-rw-r--r--pkgs/tools/system/collectd/default.nix26
-rw-r--r--pkgs/tools/text/miller/default.nix24
-rw-r--r--pkgs/top-level/all-packages.nix26
-rw-r--r--pkgs/top-level/haskell-packages.nix7
-rw-r--r--pkgs/top-level/perl-packages.nix4
-rw-r--r--pkgs/top-level/python-packages.nix45
73 files changed, 1946 insertions, 570 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 816917397fc5..a82582843ec0 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -361,6 +361,7 @@
   ldesgoui = "Lucas Desgouilles <ldesgoui@gmail.com>";
   league = "Christopher League <league@contrapunctus.net>";
   lebastr = "Alexander Lebedev <lebastr@gmail.com>";
+  ledif = "Adam Fidel <refuse@gmail.com>";
   leemachin = "Lee Machin <me@mrl.ee>";
   leenaars = "Michiel Leenaars <ml.software@leenaa.rs>";
   leonardoce = "Leonardo Cecchi <leonardo.cecchi@gmail.com>";
@@ -451,6 +452,7 @@
   mrVanDalo = "Ingolf Wanger <contact@ingolf-wagner.de>";
   msackman = "Matthew Sackman <matthew@wellquite.org>";
   mschristiansen = "Mikkel Christiansen <mikkel@rheosystems.com>";
+  mstarzyk = "Maciek Starzyk <mstarzyk@gmail.com>";
   msteen = "Matthijs Steen <emailmatthijs@gmail.com>";
   mt-caret = "Masayuki Takeda <mtakeda.enigsol@gmail.com>";
   mtreskin = "Max Treskin <zerthurd@gmail.com>";
diff --git a/maintainers/scripts/update-python-libraries b/maintainers/scripts/update-python-libraries
index 3ddc8c23a79b..ec2691ff617c 100755
--- a/maintainers/scripts/update-python-libraries
+++ b/maintainers/scripts/update-python-libraries
@@ -1,5 +1,5 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -i python3 -p 'python3.withPackages(ps: with ps; [ requests toolz ])'
+#! nix-shell -i python3 -p 'python3.withPackages(ps: with ps; [ packaging requests toolz ])' -p git
 
 """
 Update a Python package expression by passing in the `.nix` file, or the directory containing it.
@@ -18,7 +18,12 @@ import os
 import re
 import requests
 import toolz
-from concurrent.futures import ThreadPoolExecutor as pool
+from concurrent.futures import ThreadPoolExecutor as Pool
+from packaging.version import Version as _Version
+from packaging.version import InvalidVersion
+from packaging.specifiers import SpecifierSet
+import collections
+import subprocess
 
 INDEX = "https://pypi.io/pypi"
 """url of PyPI"""
@@ -26,10 +31,30 @@ INDEX = "https://pypi.io/pypi"
 EXTENSIONS = ['tar.gz', 'tar.bz2', 'tar', 'zip', '.whl']
 """Permitted file extensions. These are evaluated from left to right and the first occurance is returned."""
 
+PRERELEASES = False
+
 import logging
 logging.basicConfig(level=logging.INFO)
 
 
+class Version(_Version, collections.abc.Sequence):
+
+    def __init__(self, version):
+        super().__init__(version)
+        # We cannot use `str(Version(0.04.21))` because that becomes `0.4.21`
+        # https://github.com/avian2/unidecode/issues/13#issuecomment-354538882
+        self.raw_version = version
+
+    def __getitem__(self, i):
+        return self._version.release[i]
+
+    def __len__(self):
+        return len(self._version.release)
+
+    def __iter__(self):
+        yield from self._version.release
+
+
 def _get_values(attribute, text):
     """Match attribute in text and return all matches.
 
@@ -82,13 +107,59 @@ def _fetch_page(url):
     else:
         raise ValueError("request for {} failed".format(url))
 
-def _get_latest_version_pypi(package, extension):
+
+SEMVER = {
+    'major' : 0,
+    'minor' : 1,
+    'patch' : 2,
+}
+
+
+def _determine_latest_version(current_version, target, versions):
+    """Determine latest version, given `target`.
+    """
+    current_version = Version(current_version)
+
+    def _parse_versions(versions):
+        for v in versions:
+            try:
+                yield Version(v)
+            except InvalidVersion:
+                pass
+
+    versions = _parse_versions(versions)
+
+    index = SEMVER[target]
+
+    ceiling = list(current_version[0:index])
+    if len(ceiling) == 0:
+        ceiling = None
+    else:
+        ceiling[-1]+=1
+        ceiling = Version(".".join(map(str, ceiling)))
+
+    # We do not want prereleases
+    versions = SpecifierSet(prereleases=PRERELEASES).filter(versions)
+
+    if ceiling is not None:
+        versions = SpecifierSet(f"<{ceiling}").filter(versions)
+
+    return (max(sorted(versions))).raw_version
+
+
+def _get_latest_version_pypi(package, extension, current_version, target):
     """Get latest version and hash from PyPI."""
     url = "{}/{}/json".format(INDEX, package)
     json = _fetch_page(url)
 
-    version = json['info']['version']
-    for release in json['releases'][version]:
+    versions = json['releases'].keys()
+    version = _determine_latest_version(current_version, target, versions)
+
+    try:
+        releases = json['releases'][version]
+    except KeyError as e:
+        raise KeyError('Could not find version {} for {}'.format(version, package)) from e
+    for release in releases:
         if release['filename'].endswith(extension):
             # TODO: In case of wheel we need to do further checks!
             sha256 = release['digests']['sha256']
@@ -98,7 +169,7 @@ def _get_latest_version_pypi(package, extension):
     return version, sha256
 
 
-def _get_latest_version_github(package, extension):
+def _get_latest_version_github(package, extension, current_version, target):
     raise ValueError("updating from GitHub is not yet supported.")
 
 
@@ -141,9 +212,9 @@ def _determine_extension(text, fetcher):
     """
     if fetcher == 'fetchPypi':
         try:
-            format = _get_unique_value('format', text)
+            src_format = _get_unique_value('format', text)
         except ValueError as e:
-            format = None   # format was not given
+            src_format = None   # format was not given
 
         try:
             extension = _get_unique_value('extension', text)
@@ -151,9 +222,11 @@ def _determine_extension(text, fetcher):
             extension = None    # extension was not given
 
         if extension is None:
-            if format is None:
-                format = 'setuptools'
-            extension = FORMATS[format]
+            if src_format is None:
+                src_format = 'setuptools'
+            elif src_format == 'flit':
+                raise ValueError("Don't know how to update a Flit package.")
+            extension = FORMATS[src_format]
 
     elif fetcher == 'fetchurl':
         url = _get_unique_value('url', text)
@@ -167,9 +240,7 @@ def _determine_extension(text, fetcher):
     return extension
 
 
-def _update_package(path):
-
-
+def _update_package(path, target):
 
     # Read the expression
     with open(path, 'r') as f:
@@ -186,11 +257,13 @@ def _update_package(path):
 
     extension = _determine_extension(text, fetcher)
 
-    new_version, new_sha256 = _get_latest_version_pypi(pname, extension)
+    new_version, new_sha256 = FETCHERS[fetcher](pname, extension, version, target)
 
     if new_version == version:
         logging.info("Path {}: no update available for {}.".format(path, pname))
         return False
+    elif new_version <= version:
+        raise ValueError("downgrade for {}.".format(pname))
     if not new_sha256:
         raise ValueError("no file available for {}.".format(pname))
 
@@ -202,10 +275,19 @@ def _update_package(path):
 
         logging.info("Path {}: updated {} from {} to {}".format(path, pname, version, new_version))
 
-    return True
+    result = {
+        'path'  : path,
+        'target': target,
+        'pname': pname,
+        'old_version'   : version,
+        'new_version'   : new_version,
+        #'fetcher'       : fetcher,
+        }
 
+    return result
 
-def _update(path):
+
+def _update(path, target):
 
     # We need to read and modify a Nix expression.
     if os.path.isdir(path):
@@ -222,24 +304,58 @@ def _update(path):
         return False
 
     try:
-        return _update_package(path)
+        return _update_package(path, target)
     except ValueError as e:
         logging.warning("Path {}: {}".format(path, e))
         return False
 
+
+def _commit(path, pname, old_version, new_version, **kwargs):
+    """Commit result.
+    """
+
+    msg = f'python: {pname}: {old_version} -> {new_version}'
+
+    try:
+        subprocess.check_call(['git', 'add', path])
+        subprocess.check_call(['git', 'commit', '-m', msg])
+    except subprocess.CalledProcessError as e:
+        subprocess.check_call(['git', 'checkout', path])
+        raise subprocess.CalledProcessError(f'Could not commit {path}') from e
+
+    return True
+
+
 def main():
 
     parser = argparse.ArgumentParser()
     parser.add_argument('package', type=str, nargs='+')
+    parser.add_argument('--target', type=str, choices=SEMVER.keys(), default='major')
+    parser.add_argument('--commit', action='store_true', help='Create a commit for each package update')
 
     args = parser.parse_args()
+    target = args.target
+
+    packages = list(map(os.path.abspath, args.package))
+
+    logging.info("Updating packages...")
+
+    # Use threads to update packages concurrently
+    with Pool() as p:
+        results = list(p.map(lambda pkg: _update(pkg, target), packages))
+
+    logging.info("Finished updating packages.")
+
+    # Commits are created sequentially.
+    if args.commit:
+        logging.info("Committing updates...")
+        list(map(lambda x: _commit(**x), filter(bool, results)))
+        logging.info("Finished committing updates")
 
-    packages = map(os.path.abspath, args.package)
+    count = sum(map(bool, results))
+    logging.info("{} package(s) updated".format(count))
 
-    with pool() as p:
-        count = list(p.map(_update, packages))
 
-    logging.info("{} package(s) updated".format(sum(count)))
 
 if __name__ == '__main__':
     main()
\ No newline at end of file
diff --git a/nixos/modules/programs/tmux.nix b/nixos/modules/programs/tmux.nix
index ed1d88a420a2..1eb6fa6bf2fa 100644
--- a/nixos/modules/programs/tmux.nix
+++ b/nixos/modules/programs/tmux.nix
@@ -151,6 +151,15 @@ in {
         type = types.str;
         description = "Set the $TERM variable.";
       };
+
+      secureSocket = mkOption {
+        default = true;
+        type = types.bool;
+        description = ''
+          Store tmux socket under /run, which is more secure than /tmp, but as a
+          downside it doesn't survive user logout.
+        '';
+      };
     };
   };
 
@@ -163,7 +172,7 @@ in {
       systemPackages = [ pkgs.tmux ];
 
       variables = {
-        TMUX_TMPDIR = ''''${XDG_RUNTIME_DIR:-"/run/user/\$(id -u)"}'';
+        TMUX_TMPDIR = lib.optional cfg.secureSocket ''''${XDG_RUNTIME_DIR:-"/run/user/\$(id -u)"}'';
       };
     };
   };
diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index 90b885d683de..61257c5b5735 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -137,6 +137,12 @@ self:
       # upstream issue: missing file header
       maxframe = markBroken super.maxframe;
 
+      # version of magit-popup needs to match magit
+      # https://github.com/magit/magit/issues/3286
+      magit = super.magit.override {
+        inherit (self.melpaPackages) magit-popup;
+      };
+
       # missing OCaml
       merlin = markBroken super.merlin;
 
diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix
index b447fa7810f4..478e9d2b4530 100644
--- a/pkgs/applications/graphics/feh/default.nix
+++ b/pkgs/applications/graphics/feh/default.nix
@@ -6,11 +6,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "feh-${version}";
-  version = "2.22.2";
+  version = "2.23";
 
   src = fetchurl {
     url = "https://feh.finalrewind.org/${name}.tar.bz2";
-    sha256 = "1kcflv4jb4250g94nqn28i98xqvvci8w7vqpfr62gxlp16z1za05";
+    sha256 = "18922zv8ckm82r1ap1yn7plbk6djpj02za2ahng58sjj2fw3rpqn";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/pkgs/applications/graphics/leocad/default.nix b/pkgs/applications/graphics/leocad/default.nix
index 5f27cb446994..4b5c4517deab 100644
--- a/pkgs/applications/graphics/leocad/default.nix
+++ b/pkgs/applications/graphics/leocad/default.nix
@@ -7,13 +7,13 @@ set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/
 
 stdenv.mkDerivation rec {
   name = "leocad-${version}";
-  version = "17.02";
+  version = "17.07";
 
   src = fetchFromGitHub {
     owner = "leozide";
     repo = "leocad";
     rev = "v${version}";
-    sha256 = "0d7l2il6r4swnmrmaf1bsrgpjgai5xwhwk2mkpcsddnk59790mmc";
+    sha256 = "1j361pvxywi4nb2alhnnd4qpqrpg6503gbi17cadcdi434gbqbsd";
   };
 
   nativeBuildInputs = [ qmake4Hook ];
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
     description = "CAD program for creating virtual LEGO models";
     homepage = http://www.leocad.org/;
     license = licenses.gpl2;
-    inherit (qt4.meta) platforms;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/renderdoc/custom_swig.patch b/pkgs/applications/graphics/renderdoc/custom_swig.patch
new file mode 100644
index 000000000000..e6ed05ea97a5
--- /dev/null
+++ b/pkgs/applications/graphics/renderdoc/custom_swig.patch
@@ -0,0 +1,32 @@
+diff --git a/qrenderdoc/CMakeLists.txt b/qrenderdoc/CMakeLists.txt
+index 2df9ffa5..66bafaba 100644
+--- a/qrenderdoc/CMakeLists.txt
++++ b/qrenderdoc/CMakeLists.txt
+@@ -65,16 +65,6 @@ include(ExternalProject)
+ # Need bison for swig
+ find_package(BISON)
+ 
+-# Compile our custom SWIG that will do scoped/strong enum classes
+-ExternalProject_Add(custom_swig
+-    # using an URL to a zip directly so we don't clone the history etc
+-    URL ${RENDERDOC_SWIG_PACKAGE}
+-    BUILD_IN_SOURCE 1
+-    CONFIGURE_COMMAND ./autogen.sh > /dev/null 2>&1
+-    COMMAND CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} ./configure --with-pcre=yes --prefix=${CMAKE_BINARY_DIR} > /dev/null
+-    BUILD_COMMAND $(MAKE) > /dev/null 2>&1
+-    INSTALL_COMMAND $(MAKE) install > /dev/null 2>&1)
+-
+ # Lastly find PySide 2, optionally, for Qt5 Python bindings
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
+ 
+@@ -186,9 +176,8 @@ foreach(in ${swig_interfaces})
+     get_filename_component(swig_file ${in} NAME_WE)
+ 
+     add_custom_command(OUTPUT ${swig_file}_python.cxx ${swig_file}.py
+-            COMMAND ${CMAKE_BINARY_DIR}/bin/swig -v -Wextra -Werror -O -c++ -python -modern -modernargs -enumclass -fastunpack -py3 -builtin -I${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_SOURCE_DIR}/renderdoc/api/replay -outdir ${CMAKE_CURRENT_BINARY_DIR} -o ${CMAKE_CURRENT_BINARY_DIR}/${swig_file}_python.cxx ${CMAKE_CURRENT_SOURCE_DIR}/${in}
++	    COMMAND $ENV{NIXOS_CUSTOM_SWIG} -v -Wextra -Werror -O -c++ -python -modern -modernargs -enumclass -fastunpack -py3 -builtin -I${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_SOURCE_DIR}/renderdoc/api/replay -outdir ${CMAKE_CURRENT_BINARY_DIR} -o ${CMAKE_CURRENT_BINARY_DIR}/${swig_file}_python.cxx ${CMAKE_CURRENT_SOURCE_DIR}/${in}
+             DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${in}
+-            DEPENDS custom_swig
+             DEPENDS ${RDOC_REPLAY_FILES}
+             DEPENDS ${QRD_INTERFACE_FILES})
+ 
diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix
index 2a5bbb9401a4..2bd3ab89161f 100644
--- a/pkgs/applications/graphics/renderdoc/default.nix
+++ b/pkgs/applications/graphics/renderdoc/default.nix
@@ -1,8 +1,26 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig
 , qtbase, qtx11extras, qtsvg, makeWrapper, python3, bison
-, autoconf, automake, pcre, vulkan-loader, xorg
+, pcre, vulkan-loader, xorg, autoreconfHook
 }:
 
+let
+  custom_swig = stdenv.mkDerivation {
+    name = "renderdoc-custom-swig";
+    src = fetchFromGitHub {
+      owner = "baldurk";
+      repo = "swig";
+      rev = "renderdoc-modified-1";
+      sha256 = "1whymd3vamwnp4jqfc9asls3dw9wsdi21xhm1d2a4vx9nql8if1x";
+    };
+
+    nativeBuildInputs = [ autoreconfHook pcre ];
+
+    autoreconfPhase = ''
+      patchShebangs autogen.sh
+      ./autogen.sh
+    '';
+  };
+in
 stdenv.mkDerivation rec {
   name = "renderdoc-${version}";
   version = "0.91";
@@ -17,7 +35,8 @@ stdenv.mkDerivation rec {
   buildInputs = [
     qtbase qtsvg xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader
   ];
-  nativeBuildInputs = [ cmake makeWrapper pkgconfig python3 bison autoconf automake pcre ];
+
+  nativeBuildInputs = [ cmake makeWrapper pkgconfig python3 bison ];
 
   cmakeFlags = [
     "-DBUILD_VERSION_HASH=${src.rev}"
@@ -28,6 +47,7 @@ stdenv.mkDerivation rec {
     # TODO: use this instead of preConfigure once placeholders land
     #"-DVULKAN_LAYER_FOLDER=${placeholder out}/share/vulkan/implicit_layer.d/"
   ];
+
   preConfigure = ''
     cmakeFlags+=" -DVULKAN_LAYER_FOLDER=$out/share/vulkan/implicit_layer.d/"
   '';
@@ -41,8 +61,14 @@ stdenv.mkDerivation rec {
     ln -s $out/bin/.bin/renderdoccmd $out/bin/renderdoccmd
     wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib
   '';
+
+  # Set path to custom swig binary
+  NIXOS_CUSTOM_SWIG = "${custom_swig}/bin/swig";
+
   enableParallelBuilding = true;
 
+  patches = [ ./custom_swig.patch ];
+
   meta = with stdenv.lib; {
     description = "A single-frame graphics debugger";
     homepage = https://renderdoc.org/;
diff --git a/pkgs/applications/misc/electrum-ltc/default.nix b/pkgs/applications/misc/electrum-ltc/default.nix
index 58844500195e..a4d900f40729 100644
--- a/pkgs/applications/misc/electrum-ltc/default.nix
+++ b/pkgs/applications/misc/electrum-ltc/default.nix
@@ -5,16 +5,15 @@
 
 python2Packages.buildPythonApplication rec {
   name = "electrum-ltc-${version}";
-  version = "2.6.4.2";
+  version = "2.9.3.1";
 
   src = fetchurl {
     url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz";
-    sha256 = "0sqcyk6n6kgaiinnwh6mzbbn4whk3ga59r5bw5rqmnnfqk1xdnb4";
+    sha256 = "d931a5376b7f38fba7221b01b1010f172c4d662668adae5c38885a646d5ee530";
   };
 
   propagatedBuildInputs = with python2Packages; [
     pyqt4
-    slowaes
     ecdsa
     pbkdf2
     requests
@@ -23,6 +22,8 @@ python2Packages.buildPythonApplication rec {
     protobuf
     dnspython
     jsonrpclib
+    pyaes
+    pysocks
   ];
 
   preBuild = ''
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index 0dfc725b9ea6..183a609a31ab 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "hugo-${version}";
-  version = "0.29";
+  version = "0.30.2";
 
   goPackagePath = "github.com/gohugoio/hugo";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "gohugoio";
     repo = "hugo";
     rev = "v${version}";
-    sha256 = "1vklws05534ig9rj55cqnxpqfsvns64kfdg6zjyrcpz7l0z07a33";
+    sha256 = "12dii2d0pirkj264857d5y83bdllk1knk5sjf31v0m9c25fapci0";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/applications/misc/hugo/deps.nix b/pkgs/applications/misc/hugo/deps.nix
index 35faf6b57047..6c870833d1af 100644
--- a/pkgs/applications/misc/hugo/deps.nix
+++ b/pkgs/applications/misc/hugo/deps.nix
@@ -1,3 +1,4 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
 [
   {
     goPackagePath = "github.com/BurntSushi/toml";
@@ -13,8 +14,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/PuerkitoBio/purell";
-      rev = "b938d81255b5473c57635324295cb0fe398c7a58";
-      sha256 = "0d44lrg04g9nibhdlagwq9n8g5ka1784pm0jzyl6cfpq8nc1ppj8";
+      rev = "1c4bec281e4bbc75b4f4a1bd923bdf1bd989a969";
+      sha256 = "05aif0xf3i6j6r0ivas8ywagkz92iynsa0xnkbrif4w1chzalx0f";
     };
   }
   {
@@ -22,8 +23,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/PuerkitoBio/urlesc";
-      rev = "bbf7a2afc14f93e1e0a5c06df524fbd75e5031e5";
-      sha256 = "13r896yy71i6jj1cwv2pjp53wjfxkg7bh884fggv6y79ly0qr63j";
+      rev = "de5bf2ad457846296e2031421a34e2568e304e35";
+      sha256 = "0n0srpqwbaan1wrhh2b7ysz543pjs1xw2rghvqyffg9l0g8kzgcw";
     };
   }
   {
@@ -31,8 +32,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/alecthomas/chroma";
-      rev = "b0295f66bdb7c61d54906003d7649185794e21b4";
-      sha256 = "1hnvv13nphbzr9xm21fys7lgm0kd6qlbk58vc8fi802lxzsfmdis";
+      rev = "c9f612c1940a4951cd2b55811744632a7b3b3bb2";
+      sha256 = "0s1mzb175s96adxfx5vhyazpzfq9j4dzx4sr4n8gj7r8afkqys8h";
     };
   }
   {
@@ -49,8 +50,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/chaseadamsio/goorgeous";
-      rev = "098da33fde5f9220736531b3cb26a2dec86a8367";
-      sha256 = "1cwag5vzgrzy22rvcp12whzgqbgrmdmaxar0fl4nwqxdhy90s67k";
+      rev = "dcf1ef873b8987bf12596fe6951c48347986eb2f";
+      sha256 = "07qdqi46klizq3wigxqbiksnlgbrdc8hvmizgzg0aas5iqy88dcb";
     };
   }
   {
@@ -58,8 +59,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/cpuguy83/go-md2man";
-      rev = "23709d0847197db6021a51fdb193e66e9222d4e7";
-      sha256 = "1a87v4cnd5y5whcdkjcqjpg1s5pxqhrspdxrsk2af49zsw9fsj9f";
+      rev = "8d868be6e9bf9d5350910bab97a050e49887600f";
+      sha256 = "0vy096wzkq1z59in1if486k0adaj1idvma0ax9z1igh9qpq53vd9";
     };
   }
   {
@@ -81,30 +82,30 @@
     };
   }
   {
-    goPackagePath = "github.com/dlclark/regexp2";
+    goPackagePath = "github.com/disintegration/imaging";
     fetch = {
       type = "git";
-      url = "https://github.com/dlclark/regexp2";
-      rev = "487489b64fb796de2e55f4e8a4ad1e145f80e957";
-      sha256 = "144s81ndviwhyy20ipxvvfvap8phv5p762glxrz6aqxprkxfarj5";
+      url = "https://github.com/disintegration/imaging";
+      rev = "1884593a19ddc6f2ea050403430d02c1d0fc1283";
+      sha256 = "13wlkidihz7gc36hd1vy7i81d0v1rbnw97118z3slq1kv1j56zll";
     };
   }
   {
-    goPackagePath = "github.com/eknkc/amber";
+    goPackagePath = "github.com/dlclark/regexp2";
     fetch = {
       type = "git";
-      url = "https://github.com/eknkc/amber";
-      rev = "b8bd8b03e4f747e33f092617225e9fa8076c0448";
-      sha256 = "0qp5y9zhr6hi9ck33p7cnwla7d7p8vi4hj9llhg3bn1a69g21y0a";
+      url = "https://github.com/dlclark/regexp2";
+      rev = "7632a260cbaf5e7594fc1544a503456ecd0827f1";
+      sha256 = "0vhp5r0ywv9p1c74fm8xzclnwx2mg9f0764b3id7a9nwh0plisx2";
     };
   }
   {
-    goPackagePath = "github.com/fortytw2/leaktest";
+    goPackagePath = "github.com/eknkc/amber";
     fetch = {
       type = "git";
-      url = "https://github.com/fortytw2/leaktest";
-      rev = "3b724c3d7b8729a35bf4e577f71653aec6e53513";
-      sha256 = "0dmf7dp6b86nbfaq0s1mpjzd8q7jwrxvyxc0r6dhx3qx4dhddwpz";
+      url = "https://github.com/eknkc/amber";
+      rev = "cdade1c073850f4ffc70a829e31235ea6892853b";
+      sha256 = "152w97yckwncgw7lwjvgd8d00wy6y0nxzlvx72kl7nqqxs9vhxd9";
     };
   }
   {
@@ -121,8 +122,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/gorilla/websocket";
-      rev = "a69d9f6de432e2c6b296a947d8a5ee88f68522cf";
-      sha256 = "01y3ni7xzazsdzq2xqyjr69q9m4w1668zkrcbf58yp3q99jvckhi";
+      rev = "d965e9adc66deebadcc7d0c6c7598e2a4baa7838";
+      sha256 = "0ka8pvby06farlji7pixlrk3zb962qp5xarvy2vxnfrdzlarv7xb";
     };
   }
   {
@@ -148,17 +149,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/hashicorp/hcl";
-      rev = "392dba7d905ed5d04a5794ba89f558b27e2ba1ca";
-      sha256 = "1rfm67kma2hpakabf7hxlj196jags4rpjpcirwg4kan4g9b6j0kb";
-    };
-  }
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
+      rev = "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8";
+      sha256 = "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc";
     };
   }
   {
@@ -166,8 +158,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/jdkato/prose";
-      rev = "c24611cae00c16858e611ef77226dd2f7502759f";
-      sha256 = "0xdrjwbcnwiwbqyrxfknb9bskrsrbnqp0nza44bycwaj23by9bs1";
+      rev = "e27abfd3f31b84c37bbce37179b0428fcb1384be";
+      sha256 = "04rjqh3jdxaqr9czp4vcj14hqfv7yppv4nb7ynb04c9jcq23ajw7";
     };
   }
   {
@@ -184,8 +176,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/kyokomi/emoji";
-      rev = "ddd4753eac3f6480ca86b16cc6c98d26a0935d17";
-      sha256 = "16vnpj8zxg3gg9ljwmvrlmdf4dqbxjagi8mldpq1cr481r35dsqh";
+      rev = "2e9a9507333f3ee28f3fab88c2c3aba34455d734";
+      sha256 = "005rxyxlqcd2sfjn686xb52l11wn2w0g5jv042ka6pnsx24r812a";
     };
   }
   {
@@ -193,8 +185,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/magiconair/properties";
-      rev = "be5ece7dd465ab0765a9682137865547526d1dfb";
-      sha256 = "0spk58x9b0hj29cw6wy6rlvc6s9xk4r0gmlxgsc194pkzqcg1my8";
+      rev = "49d762b9817ba1c2e9d0c69183c2b4a8b8f1d934";
+      sha256 = "0cnvcd4q88nvxk3q9617dcis2kng2xxsx3iivi5xs8azk290lpyy";
     };
   }
   {
@@ -202,8 +194,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/markbates/inflect";
-      rev = "6cacb66d100482ef7cc366289ccb156020e57e76";
-      sha256 = "1cglvw75qagnz6bnaxpkfyq9j4j0vw377a8ywa9i1vskxlssj1b2";
+      rev = "a12c3aec81a6a938bf584a4bac567afed9256586";
+      sha256 = "0mawr6z9nav4f5j0nmjdxg9lbfhr7wz8zi34g7b6wndmzyf8jbsd";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "97311d9f7767e3d6f422ea06661bc2c7a19e8a5d";
+      sha256 = "0dxlrzn570xl7gb11hjy1v4p3gw3r41yvqhrffgw95ha3q9p50cg";
     };
   }
   {
@@ -211,8 +212,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/miekg/mmark";
-      rev = "fd2f6c1403b37925bd7fe13af05853b8ae58ee5f";
-      sha256 = "0q2zrwa2vwk7a0zhmi000zpqrc01zssrj9c5n3573rg68fksg77m";
+      rev = "057eb9e3ae87944c038036d046101dec0c56e21f";
+      sha256 = "0hlqcwx6qqgy3vs13r10wn0d9x0xmww1v9jm09y2dp1ykgbampnk";
     };
   }
   {
@@ -220,8 +221,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/mitchellh/mapstructure";
-      rev = "d0303fe809921458f417bcf828397a65db30a7e4";
-      sha256 = "1fjwi5ghc1ibyx93apz31n4hj6gcq1hzismpdfbg2qxwshyg0ya8";
+      rev = "06020f85339e21b2478f756a78e295255ffa4d6a";
+      sha256 = "12zb5jh7ri4vna3f24y9g10nzrnz9wbvwnk29wjk3vg0ljia64s9";
     };
   }
   {
@@ -229,8 +230,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/nicksnyder/go-i18n";
-      rev = "3e70a1a463008cea6726380c908b1a6a8bdf7b24";
-      sha256 = "0fxjgmwn9927wckl2xx8byv64cxgc0yxdwpfzval5n3wm5l5ij1i";
+      rev = "aa0ce51472e0a9982717fd19cf02cb08b1e433aa";
+      sha256 = "0355fxpd69wnw56m6dak8k7rlw3q36bql8algg3jkjnxjpgfii4p";
+    };
+  }
+  {
+    goPackagePath = "github.com/olekukonko/tablewriter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/olekukonko/tablewriter";
+      rev = "65fec0d89a572b4367094e2058d3ebe667de3b60";
+      sha256 = "116waspmr33dqq3zxj2msnqp2f5v2b6ihk3rxqj7gz25rmcxh5wp";
     };
   }
   {
@@ -238,8 +248,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/pelletier/go-toml";
-      rev = "69d355db5304c0f7f809a2edc054553e7142f016";
-      sha256 = "1ay861x1bqcs629rqb3nq4f347y80phmgm8w7w8kjfdlgpy1v9dm";
+      rev = "0131db6d737cfbbfb678f8b7d92e55e27ce46224";
+      sha256 = "10sz1bh45346wdv8i3nffdmpfh8fb6xd0b3r474cs2mk961pw73v";
     };
   }
   {
@@ -247,8 +257,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/russross/blackfriday";
-      rev = "4048872b16cc0fc2c5fd9eacf0ed2c2fedaa0c8c";
-      sha256 = "17zg26ia43c8axrxp5q2bxh1asiqfhin4ah7h5d8ibil6pv7xbx4";
+      rev = "6d1ef893fcb01b4f50cb6e57ed7df3e2e627b6b2";
+      sha256 = "13p2xq5624b9j2f6j6j76j1h4l2lvmh7w6vcv2f5xsvzjy779r27";
     };
   }
   {
@@ -256,8 +266,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/shurcooL/sanitized_anchor_name";
-      rev = "541ff5ee47f1dddf6a5281af78307d921524bcb5";
-      sha256 = "1fslblamqkd0yrvl1kbq95hnnji78bq9m33nnxiqs7y9w32zylv5";
+      rev = "86672fcb3f950f35f2e675df2240550f2a50762f";
+      sha256 = "142m507s9971cl8qdmbcw7sqxnkgi3xqd8wzvfq15p0w7w8i4a3h";
     };
   }
   {
@@ -265,8 +275,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/spf13/afero";
-      rev = "9be650865eab0c12963d8753212f4f9c66cdcf12";
-      sha256 = "12dhh6d07304lsjv7c4p95hkip0hnshqhwivdw39pbypgg0p8y34";
+      rev = "57afd63c68602b63ed976de00dd066ccb3c319db";
+      sha256 = "0jf9v16m7k46j3mgw469yilhs5p3i32qvzi5954cqyigs6zzqbnk";
     };
   }
   {
@@ -283,8 +293,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/spf13/cobra";
-      rev = "34594c771f2c18301dc152640ad40ece28795373";
-      sha256 = "0cgyba80gbw4vq2zp1chjz5zil3rapv65y7883f7va2ygcy57s38";
+      rev = "ccaecb155a2177302cb56cae929251a256d0f646";
+      sha256 = "1zm89akryx6x0vzvn50736z732gdm3jsx5898annr0zr1cfpf443";
     };
   }
   {
@@ -301,8 +311,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/spf13/jwalterweatherman";
-      rev = "0efa5202c04663c757d84f90f5219c1250baf94f";
-      sha256 = "1sfd72zvw9lrzfc8haswhqf93bzm20q4yhbynm6n5fnnc56zn4gs";
+      rev = "12bd96e66386c1960ab0f74ced1362f66f552f7b";
+      sha256 = "1abvqd1dl3m7mxv44wvl0vwd50l6qpndzrxk28vyb77x41rc8b2g";
     };
   }
   {
@@ -319,8 +329,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/spf13/pflag";
-      rev = "e57e3eeb33f795204c1ca35f56c44f83227c6e66";
-      sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2";
+      rev = "4c012f6dcd9546820e378d0bdda4d8fc772cdfea";
+      sha256 = "0plmm67lkm25ir0lczwh7hmanyilrs1vxmbp8a0dyr282ji1dqm5";
     };
   }
   {
@@ -328,17 +338,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/spf13/viper";
-      rev = "25b30aa063fc18e48662b86996252eabdcf2f0c7";
-      sha256 = "1a1xxsn39sgiyhz3pd9v5qhi7d5p4z4cml0mcdgm65n3f8vgkdv3";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "05e8a0eda380579888eb53c394909df027f06991";
-      sha256 = "03l83nrgpbyc2hxxfi928gayj16fsclbr88dja6r9kikq19a6yhv";
+      rev = "aafc9e6bc7b7bb53ddaa75a5ef49a17d6e654be5";
+      sha256 = "089balmspfs2x68wr4riwh7qvhf0b061wqqqfw8j4p9pxvwrxsdc";
     };
   }
   {
@@ -355,8 +356,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/image";
-      rev = "426cfd8eeb6e08ab1932954e09e3c2cb2bc6e36d";
-      sha256 = "0zbqvkn7amq9bnq38pxjqyn1xggphrisaw98x7diw3i0a5phk93r";
+      rev = "12117c17ca67ffa1ce22e9409f3b0b0a93ac08c7";
+      sha256 = "017xpcshrj1r2w20xvpcx0rklpfmbz6h16msv12l3x0w6vy0800s";
     };
   }
   {
@@ -364,8 +365,17 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev = "f5079bd7f6f74e23c4d65efa0f4ce14cbd6a3c0f";
-      sha256 = "0sck2mq4bwyh5iv51jpbywzwhc47ci1q5yd7pqr68xnsz7b3b55k";
+      rev = "d866cfc389cec985d6fda2859936a575a55a3ab6";
+      sha256 = "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev = "fd80eb99c8f653c847d294a001bdf2a3a6f768f5";
+      sha256 = "12lzldlj1cqc1babp1hkkn76fglzn5abkqvmbpr4f2j95mf9x836";
     };
   }
   {
@@ -373,8 +383,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/sys";
-      rev = "35ef4487ce0a1ea5d4b616ffe71e34febe723695";
-      sha256 = "1gxxj4vcsds5aiphv39d3x5jgyfscwxylf10hxgsmzs5m7jzr47n";
+      rev = "83801418e1b59fb1880e363299581ee543af32ca";
+      sha256 = "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji";
     };
   }
   {
@@ -382,8 +392,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/text";
-      rev = "836efe42bb4aa16aaa17b9c155d8813d336ed720";
-      sha256 = "11s7bjk0karl1lx8v4n6dvdnsh702x4f2qlmnqac2qdz8hdswmi1";
+      rev = "e19ae1496984b1c655b8044a65c0300a3c878dd3";
+      sha256 = "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w";
     };
   }
   {
@@ -391,8 +401,8 @@
     fetch = {
       type = "git";
       url = "https://gopkg.in/yaml.v2";
-      rev = "25c4ec802a7d637f88d584ab26798e94ad14c13b";
-      sha256 = "053mknsl3xhjscmd552005xnwbfcg0z2iphvbvj3wi0w3pvmlw44";
+      rev = "287cf08546ab5e7e37d55a84f7ed3fd1db036de5";
+      sha256 = "15502klds9wwv567vclb9kx95gs8lnyzn4ybsk6l9fc7a67lk831";
     };
   }
 ]
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index 6c866a8d2164..c7f74071c24f 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub
-, wrapGAppsHook, autoreconfHook, gettext
+, wrapGAppsHook, cmake, gettext
 , maxima, wxGTK, gnome3 }:
 
 stdenv.mkDerivation rec {
@@ -15,14 +15,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ wxGTK maxima gnome3.defaultIconTheme ];
 
-  nativeBuildInputs = [ wrapGAppsHook autoreconfHook gettext ];
+  nativeBuildInputs = [ wrapGAppsHook cmake gettext ];
 
   preConfigure = ''
     gappsWrapperArgs+=(--prefix PATH ":" ${maxima}/bin)
   '';
 
-  doCheck = true;
-
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 774aa1082bc8..1de1fda2a5e5 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -18,12 +18,12 @@ in python2Packages.buildPythonApplication {
 
   inherit python; # pass it so that the same version can be used in hg2git
 
-  buildInputs = [ makeWrapper docutils unzip ];
+  buildInputs = [ makeWrapper docutils unzip ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices ];
 
-  propagatedBuildInputs = [ hg-git dulwich ]
-    ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices cf-private ];
+  propagatedBuildInputs = [ hg-git dulwich ];
 
-  makeFlags = "PREFIX=$(out)";
+  makeFlags = [ "PREFIX=$(out)" ];
 
   postInstall = (stdenv.lib.optionalString guiSupport
     ''
diff --git a/pkgs/applications/video/motion/default.nix b/pkgs/applications/video/motion/default.nix
index d52154887071..67c91168fa2d 100644
--- a/pkgs/applications/video/motion/default.nix
+++ b/pkgs/applications/video/motion/default.nix
@@ -2,15 +2,18 @@
 
 stdenv.mkDerivation rec {
   name = "motion-${version}";
-  version = "4.0.1";
+  version = "4.1.1";
+
   src = fetchFromGitHub {
     owner = "Motion-Project";
     repo = "motion";
     rev = "release-${version}";
-    sha256 = "172bn2ny5r9fcb4kn9bjq3znpgl8ai84w4b99vhk5jggp2haa3bb";
+    sha256 = "1prbgl9wb9q7igsb6n11c25m0p0z246fxr1q8n1vcjr4rcb65y38";
   };
+
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
   buildInputs = [ libjpeg ffmpeg ];
+
   meta = with stdenv.lib; {
     homepage = http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome;
     description = "Monitors the video signal from cameras";
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 409187a99fbd..8f789cdf1707 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
 
   NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
 
-  buildInputs = [ patchelf cdrkit makeWrapper dbus ];
+  buildInputs = [ patchelf cdrkit makeWrapper dbus ] ++ kernel.moduleBuildDependencies;
 
   installPhase = ''
     mkdir -p $out
diff --git a/pkgs/desktops/enlightenment/rage.nix b/pkgs/desktops/enlightenment/rage.nix
index 5f6a451d0655..9b3bdc90eb53 100644
--- a/pkgs/desktops/enlightenment/rage.nix
+++ b/pkgs/desktops/enlightenment/rage.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchurl, pkgconfig, efl, gst_all_1, pcre, curl, wrapGAppsHook }:
+{ stdenv, fetchurl, meson, ninja, pkgconfig, efl, gst_all_1, pcre, curl, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   name = "rage-${version}";
-  version = "0.2.1";
+  version = "0.3.0";
   
   src = fetchurl {
-    url = "http://download.enlightenment.org/rel/apps/rage/${name}.tar.gz";
-    sha256 = "0xlxb1hmbnqcy088cqpj2i87hsd5h3da7d2f9afiavz0ssw4ll94";
+    url = "http://download.enlightenment.org/rel/apps/rage/${name}.tar.xz";
+    sha256 = "0gfzdd4jg78bkmj61yg49w7bzspl5m1nh6agqgs8k7qrq9q26xqy";
   };
 
   nativeBuildInputs = [
+    meson
+    ninja
     (pkgconfig.override { vanilla = true; })
     wrapGAppsHook
   ];
diff --git a/pkgs/desktops/gnome-3/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
index ca63cbd6cb89..45001e551273 100644
--- a/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
+++ b/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
@@ -1,7 +1,9 @@
 { stdenv, fetchurl, pkgconfig, atk, cairo, glib, gtk3, pango
 , libxml2, perl, intltool, gettext, gnome3, gobjectIntrospection, dbus, xvfb_run, shared_mime_info }:
 
-stdenv.mkDerivation rec {
+let
+  checkInputs = [ xvfb_run dbus ];
+in stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   propagatedBuildInputs = [
@@ -15,8 +17,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig intltool gettext perl gobjectIntrospection ]
     ++ stdenv.lib.optionals doCheck checkInputs;
+
   buildInputs = [ atk cairo glib pango libxml2 ];
-  checkInputs = [ xvfb_run dbus ];
 
   preBuild = ''
     substituteInPlace gtksourceview/gtksourceview-utils.c --replace "@NIX_SHARE_PATH@" "$out/share"
@@ -24,7 +26,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./nix_share_path.patch ];
 
-  doCheck = true;
+  doCheck = stdenv.isLinux;
   checkPhase = ''
     export NO_AT_BRIDGE=1
     xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
diff --git a/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix b/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
new file mode 100644
index 000000000000..3baedbf0c594
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, glib, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-shell-dash-to-panel-${version}";
+  version = "11";
+
+  src = fetchFromGitHub {
+    owner = "jderose9";
+    repo = "dash-to-panel";
+    rev = "v${version}";
+    sha256 = "1bfcnrhw6w8yrz8sw520kwwshmplkg4awpvz07kg4d73m6zn4mw2";
+  };
+
+  buildInputs = [
+    glib gettext
+  ];
+
+  makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ];
+
+  meta = with stdenv.lib; {
+    description = "An icon taskbar for Gnome Shell";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ mounium ];
+    homepage = https://github.com/jderose9/dash-to-panel;
+  };
+}
diff --git a/pkgs/development/compilers/ghc/7.8.3.nix b/pkgs/development/compilers/ghc/7.8.3.nix
deleted file mode 100644
index 50b0108861f0..000000000000
--- a/pkgs/development/compilers/ghc/7.8.3.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ stdenv, fetchurl, ghc, perl, ncurses, libiconv
-
-  # If enabled GHC will be build with the GPL-free but slower integer-simple
-  # library instead of the faster but GPLed integer-gmp library.
-, enableIntegerSimple ? false, gmp
-}:
-
-stdenv.mkDerivation rec {
-  version = "7.8.3";
-  name = "ghc-${version}";
-
-  src = fetchurl {
-    url = "http://www.haskell.org/ghc/dist/${version}/${name}-src.tar.xz";
-    sha256 = "0n5rhwl83yv8qm0zrbaxnyrf8x1i3b6si927518mwfxs96jrdkdh";
-  };
-
-  patches = [ ./relocation.patch ];
-
-  buildInputs = [ ghc perl ncurses ]
-                ++ stdenv.lib.optional (!enableIntegerSimple) gmp;
-
-  enableParallelBuilding = true;
-
-  buildMK = ''
-    libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses.dev}/include"
-    libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses.out}/lib"
-    DYNAMIC_BY_DEFAULT = NO
-    ${stdenv.lib.optionalString stdenv.isDarwin ''
-      libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes="${libiconv}/include"
-      libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-libraries="${libiconv}/lib"
-    ''}
-  '' + (if enableIntegerSimple then ''
-    INTEGER_LIBRARY=integer-simple
-  '' else ''
-    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp.out}/lib"
-    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp.dev}/include"
-  '');
-
-  preConfigure = ''
-    echo "${buildMK}" > mk/build.mk
-    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
-  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
-    export NIX_LDFLAGS+=" -no_dtrace_dof"
-  '';
-
-  # required, because otherwise all symbols from HSffi.o are stripped, and
-  # that in turn causes GHCi to abort
-  stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!stdenv.isDarwin) "--keep-file-symbols";
-
-  meta = {
-    homepage = http://haskell.org/ghc;
-    description = "The Glasgow Haskell Compiler";
-    maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
-    inherit (ghc.meta) license platforms;
-  };
-
-}
diff --git a/pkgs/development/compilers/mit-scheme/default.nix b/pkgs/development/compilers/mit-scheme/default.nix
index 076f3c956750..4670f39eac18 100644
--- a/pkgs/development/compilers/mit-scheme/default.nix
+++ b/pkgs/development/compilers/mit-scheme/default.nix
@@ -1,4 +1,5 @@
-{ fetchurl, stdenv, makeWrapper, gnum4, texinfo, texLive, automake }:
+{ fetchurl, stdenv, makeWrapper, gnum4, texinfo, texLive, automake,
+  enableX11 ? false, xlibsWrapper ? null }:
 
 let
   version = "9.2";
@@ -9,7 +10,7 @@ let
          else                         "";
 in
 stdenv.mkDerivation {
-  name = "mit-scheme-${version}";
+  name = if enableX11 then "mit-scheme-x11-${version}" else "mit-scheme-${version}";
 
   # MIT/GNU Scheme is not bootstrappable, so it's recommended to compile from
   # the platform-specific tarballs, which contain pre-built binaries.  It
@@ -29,6 +30,8 @@ stdenv.mkDerivation {
       sha256 = "0w5ib5vsidihb4hb6fma3sp596ykr8izagm57axvgd6lqzwicsjg";
     };
 
+  buildInputs = if enableX11 then [xlibsWrapper] else [];
+
   configurePhase =
     '' (cd src && ./configure)
        (cd doc && ./configure)
diff --git a/pkgs/development/compilers/uhc/default.nix b/pkgs/development/compilers/uhc/default.nix
index 79b22214eccd..bf48abb923fb 100644
--- a/pkgs/development/compilers/uhc/default.nix
+++ b/pkgs/development/compilers/uhc/default.nix
@@ -49,5 +49,6 @@ in stdenv.mkDerivation rec {
     # On Darwin, the GNU libtool is used, which does not
     # support the -static flag and thus breaks the build.
     platforms = ["x86_64-linux"];
+    broken = true;
   };
 }
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 9298aa84a897..cc86252a1aff 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -1012,4 +1012,10 @@ self: super: {
       { patches = (drv.patches or []) ++ [ patch ];
         editedCabalFile = null;
       });
+
+  # https://github.com/haskell/cabal/issues/4969
+  haddock-library_1_4_4 = dontHaddock super.haddock-library_1_4_4;
+
+  haddock-api = super.haddock-api.override
+    { haddock-library = self.haddock-library_1_4_4; };
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
index 1a9158fa6651..fc41fc0b3d30 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
@@ -161,8 +161,7 @@ self: super: {
   vty-ui = enableCabalFlag super.vty-ui "no-tests";
 
   # https://github.com/fpco/stackage/issues/1112
-  vector-algorithms = addBuildDepends (dontCheck super.vector-algorithms)
-    [ self.mtl self.mwc-random ];
+  vector-algorithms = addBuildDepends (dontCheck super.vector-algorithms) [ self.mtl self.mwc-random ];
 
   # vector with ghc < 8.0 needs semigroups
   vector = addBuildDepend super.vector self.semigroups;
@@ -182,30 +181,39 @@ self: super: {
   unordered-containers = dontCheck super.unordered-containers;
 
   # GHC versions prior to 8.x require additional build inputs.
-  dependent-map = addBuildDepend super.dependent-map self.semigroups;
-  distributive = addBuildDepend (dontCheck super.distributive) self.semigroups;
-  mono-traversable = addBuildDepend super.mono-traversable self.semigroups;
-  attoparsec = addBuildDepends super.attoparsec (with self; [semigroups fail]);
-  Glob = addBuildDepends super.Glob (with self; [semigroups]);
   aeson = disableCabalFlag (addBuildDepend super.aeson self.semigroups) "old-locale";
+  ansi-wl-pprint = addBuildDepend super.ansi-wl-pprint self.semigroups;
+  attoparsec = addBuildDepends super.attoparsec (with self; [semigroups fail]);
   bytes = addBuildDepend super.bytes self.doctest;
   case-insensitive = addBuildDepend super.case-insensitive self.semigroups;
+  dependent-map = addBuildDepend super.dependent-map self.semigroups;
+  distributive = addBuildDepend (dontCheck super.distributive) self.semigroups;
+  Glob = addBuildDepends super.Glob (with self; [semigroups]);
   hoauth2 = overrideCabal super.hoauth2 (drv: { testDepends = (drv.testDepends or []) ++ [ self.wai self.warp ]; });
   hslogger = addBuildDepend super.hslogger self.HUnit;
   intervals = addBuildDepends super.intervals (with self; [doctest QuickCheck]);
   lens = addBuildDepend super.lens self.generic-deriving;
-  optparse-applicative = addBuildDepend super.optparse-applicative self.semigroups;
+  mono-traversable = addBuildDepend super.mono-traversable self.semigroups;
+  natural-transformation = addBuildDepend super.natural-transformation self.semigroups;
+  optparse-applicative = addBuildDepends super.optparse-applicative [self.semigroups self.fail];
   QuickCheck = addBuildDepend super.QuickCheck self.semigroups;
   semigroups = addBuildDepends (dontCheck super.semigroups) (with self; [hashable tagged text unordered-containers]);
   texmath = addBuildDepend super.texmath self.network-uri;
   yesod-auth-oauth2 = overrideCabal super.yesod-auth-oauth2 (drv: { testDepends = (drv.testDepends or []) ++ [ self.load-env self.yesod ]; });
-  natural-transformation = addBuildDepend super.natural-transformation self.semigroups;
-  # cereal must have `fail` in pre-ghc-8.0.x versions
-  # also tests require bytestring>=0.10.8.1
+
+  # cereal must have `fail` in pre-ghc-8.0.x versions and tests require
+  # bytestring>=0.10.8.1.
   cereal = dontCheck (addBuildDepend super.cereal self.fail);
 
   # The test suite requires Cabal 1.24.x or later to compile.
   comonad = dontCheck super.comonad;
   semigroupoids = dontCheck super.semigroupoids;
 
+  # Newer versions require base >=4.9 && <5.
+  colour = self.colour_2_3_3;
+
+  # https://github.com/atzedijkstra/chr/issues/1
+  chr-pretty = doJailbreak super.chr-pretty;
+  chr-parse = doJailbreak super.chr-parse;
+
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix
deleted file mode 100644
index 372155a8791c..000000000000
--- a/pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix
+++ /dev/null
@@ -1,171 +0,0 @@
-{ pkgs, haskellLib }:
-
-with haskellLib;
-
-self: super: {
-
-  # Suitable LLVM version.
-  llvmPackages = pkgs.llvmPackages_34;
-
-  # Disable GHC 7.8.x core libraries.
-  array = null;
-  base = null;
-  binary = null;
-  bin-package-db = null;
-  bytestring = null;
-  Cabal = null;
-  containers = null;
-  deepseq = null;
-  directory = null;
-  filepath = null;
-  ghc-prim = null;
-  haskeline = null;
-  haskell2010 = null;
-  haskell98 = null;
-  hoopl = null;
-  hpc = null;
-  integer-gmp = null;
-  old-locale = null;
-  old-time = null;
-  pretty = null;
-  process = null;
-  rts = null;
-  template-haskell = null;
-  terminfo = null;
-  time = null;
-  transformers = null;
-  unix = null;
-  xhtml = null;
-
-  # Requires ghc 8.2
-  ghc-proofs = dontDistribute super.ghc-proofs;
-
-  # https://github.com/peti/jailbreak-cabal/issues/9
-  jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_1_20_0_4; };
-
-  # mtl 2.2.x needs the latest transformers.
-  mtl_2_2_1 = super.mtl.override { transformers = self.transformers_0_4_3_0; };
-
-  # Configure mtl 2.1.x.
-  mtl = self.mtl_2_1_3_1;
-  transformers-compat = addBuildDepend (enableCabalFlag super.transformers-compat "three") self.mtl;
-  mtl-compat = addBuildDepend (enableCabalFlag super.mtl-compat "two-point-one") self.transformers-compat;
-
-  # haddock-api 2.16 requires ghc>=7.10
-  haddock-api = super.haddock-api_2_15_0_2;
-
-  # This is part of bytestring in our compiler.
-  bytestring-builder = dontHaddock super.bytestring-builder;
-
-  # Won't compile against mtl 2.1.x.
-  imports = super.imports.override { mtl = self.mtl_2_2_1; };
-
-  # Newer versions require mtl 2.2.x.
-  mtl-prelude = self.mtl-prelude_1_0_3;
-
-  # purescript requires mtl 2.2.x.
-  purescript = overrideCabal (super.purescript.overrideScope (self: super: {
-    mkDerivation = drv: super.mkDerivation (drv // { doCheck = false; });
-    mtl = super.mtl_2_2_1;
-    transformers = super.transformers_0_4_3_0;
-    haskeline = self.haskeline_0_7_3_1;
-    transformers-compat = disableCabalFlag super.transformers-compat "three";
-  })) (drv: {});
-
-  # The test suite pulls in mtl 2.2.x
-  command-qq = dontCheck super.command-qq;
-
-  # Doesn't support GHC < 7.10.x.
-  bound-gen = dontDistribute super.bound-gen;
-  ghc-exactprint = dontDistribute super.ghc-exactprint;
-  ghc-typelits-natnormalise = dontDistribute super.ghc-typelits-natnormalise;
-
-  # Needs directory >= 1.2.2.0.
-  idris = markBroken super.idris;
-
-  # Newer versions require transformers 0.4.x.
-  seqid = super.seqid_0_1_0;
-  seqid-streams = super.seqid-streams_0_1_0;
-
-  # These packages need mtl 2.2.x directly or indirectly via dependencies.
-  amazonka = markBroken super.amazonka;
-  apiary-purescript = markBroken super.apiary-purescript;
-  clac = dontDistribute super.clac;
-  highlighter2 = markBroken super.highlighter2;
-  hypher = markBroken super.hypher;
-  miniforth = markBroken super.miniforth;
-  xhb-atom-cache = markBroken super.xhb-atom-cache;
-  xhb-ewmh = markBroken super.xhb-ewmh;
-  yesod-purescript = markBroken super.yesod-purescript;
-  yet-another-logger = markBroken super.yet-another-logger;
-
-  # https://github.com/frosch03/arrowVHDL/issues/2
-  ArrowVHDL = markBroken super.ArrowVHDL;
-
-  # https://ghc.haskell.org/trac/ghc/ticket/9625
-  wai-middleware-preprocessor = dontCheck super.wai-middleware-preprocessor;
-  incremental-computing = dontCheck super.incremental-computing;
-
-  # Newer versions require base > 4.7
-  gloss = super.gloss_1_9_2_1;
-
-  # Workaround for a workaround, see comment for "ghcjs" flag.
-  jsaddle = let jsaddle' = disableCabalFlag super.jsaddle "ghcjs";
-            in addBuildDepends jsaddle' [ self.glib self.gtk3 self.webkitgtk3
-                                          self.webkitgtk3-javascriptcore ];
-
-  # Needs hashable on pre 7.10.x compilers.
-  nats_1 = addBuildDepend super.nats_1 self.hashable;
-  nats = addBuildDepend super.nats self.hashable;
-
-  # needs mtl-compat to build with mtl 2.1.x
-  cgi = addBuildDepend super.cgi self.mtl-compat;
-
-  # https://github.com/magthe/sandi/issues/7
-  sandi = overrideCabal super.sandi (drv: {
-    postPatch = "sed -i -e 's|base ==4.8.*,|base,|' sandi.cabal";
-  });
-
-  # Overriding mtl 2.2.x is fine here because ghc-events is an stand-alone executable.
-  ghc-events = super.ghc-events.override { mtl = self.mtl_2_2_1; };
-
-  # The network library is required in configurations that don't have network-uri.
-  hxt = addBuildDepend super.hxt self.network;
-  hxt_9_3_1_7 = addBuildDepend super.hxt_9_3_1_7 self.network;
-  hxt_9_3_1_10 = addBuildDepend super.hxt_9_3_1_10 self.network;
-  hxt_9_3_1_12 = addBuildDepend super.hxt_9_3_1_12 self.network;
-  xss-sanitize = addBuildDepend super.xss-sanitize self.network;
-  xss-sanitize_0_3_5_4 = addBuildDepend super.xss-sanitize_0_3_5_4 self.network;
-  xss-sanitize_0_3_5_5 = addBuildDepend super.xss-sanitize_0_3_5_5 self.network;
-
-  # Needs void on pre 7.10.x compilers.
-  conduit = addBuildDepend super.conduit self.void;
-  conduit_1_2_5 = addBuildDepend super.conduit_1_2_5 self.void;
-
-  # Breaks a dependency cycle between QuickCheck and semigroups
-  hashable = dontCheck super.hashable;
-  unordered-containers = dontCheck super.unordered-containers;
-
-  # Needs additional inputs on old compilers.
-  semigroups = addBuildDepends (dontCheck super.semigroups) (with self; [nats tagged unordered-containers]);
-  lens = addBuildDepends super.lens (with self; [doctest generic-deriving nats simple-reflect]);
-  distributive = addBuildDepend (dontCheck super.distributive) self.semigroups;
-  QuickCheck = addBuildDepends super.QuickCheck (with self; [nats semigroups]);
-  void = addBuildDepends super.void (with self; [hashable semigroups]);
-  optparse-applicative = addBuildDepend super.optparse-applicative self.semigroups;
-  vector = addBuildDepend super.vector self.semigroups;
-
-  # Haddock doesn't cope with the new markup.
-  bifunctors = dontHaddock super.bifunctors;
-
-  # extra-test: <stdout>: hFlush: invalid argument (Bad file descriptor)
-  extra = dontCheck super.extra;
-
-  # The test suite requires Cabal 1.24.x or later to compile.
-  comonad = dontCheck super.comonad;
-  semigroupoids = dontCheck super.semigroupoids;
-
-  # https://github.com/simonmar/happy/issues/103
-  happy = super.happy.override { mtl = self.mtl_2_2_1; };
-
-}
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index c831106b9612..55d40020f8be 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -2674,6 +2674,7 @@ extra-packages:
   - Cabal == 1.18.*                     # required for cabal-install et al on old GHC versions
   - Cabal == 1.20.*                     # required for cabal-install et al on old GHC versions
   - Cabal == 1.24.*                     # required for jailbreak-cabal etc.
+  - colour < 2.3.4                      # newer versions don't support GHC 7.10.x
   - containers < 0.5                    # required to build alex with GHC 6.12.3
   - control-monad-free < 0.6            # newer versions don't compile with anything but GHC 7.8.x
   - deepseq == 1.3.0.1                  # required to build Cabal with GHC 6.12.3
@@ -2747,7 +2748,6 @@ package-maintainers:
     - path-pieces
     - persistent
     - persistent-postgresql
-    - persistent-redis
     - persistent-sqlite
     - persistent-template
     - shakespeare
@@ -2903,6 +2903,7 @@ dont-distribute-packages:
   AC-MiniTest:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   AC-Terminal:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   AC-VanillaArray:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  accelerate-fourier:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-llvm-native:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-llvm:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-random:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2953,6 +2954,8 @@ dont-distribute-packages:
   AERN-Real:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   AERN-RnToRm-Plot:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   AERN-RnToRm:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  aern2-mp:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  aern2-real:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-applicative:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-bson:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-extra:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3330,6 +3333,7 @@ dont-distribute-packages:
   bla:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   blakesum-demo:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   blakesum:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  blank-canvas:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   blas-carray:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   blas-ffi:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   blas-hs:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3338,6 +3342,7 @@ dont-distribute-packages:
   blaze-builder-enumerator:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   blaze-html-contrib:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   blaze-html-hexpat:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  blaze-html-truncate:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   blaze-json:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   blaze-textual-native:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   ble:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3587,6 +3592,8 @@ dont-distribute-packages:
   chp-spec:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   chp-transformers:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   chp:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  chr-core:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  chr-lang:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ChristmasTree:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   chronograph:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   chu2:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3603,6 +3610,8 @@ dont-distribute-packages:
   citeproc-hs:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   cjk:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   clac:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  clafer:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  claferIG:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   claferwiki:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   clang-pure:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   clanki:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3641,6 +3650,7 @@ dont-distribute-packages:
   click-clack:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   clif:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   clifford:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  clingo:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   clippard:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   clipper:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   clippings:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3678,6 +3688,7 @@ dont-distribute-packages:
   codecov-haskell:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   codemonitor:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   codepad:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  codeworld-api:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   codex:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   cognimeta-utils:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   coin:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3831,6 +3842,7 @@ dont-distribute-packages:
   couchdb-enumerator:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   CouchDB:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   countable-inflections:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  courier:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   court:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   coverage:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   cparsing:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4069,6 +4081,7 @@ dont-distribute-packages:
   dhcp-lease-parser:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-boolean:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-builder:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  diagrams-canvas:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-graphviz:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-gtk:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-haddock:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4175,6 +4188,7 @@ dont-distribute-packages:
   domain-auth:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   domplate:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   dot-linker:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  dotenv:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   dotfs:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   doublify-toolkit:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   download-media-content:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4251,6 +4265,7 @@ dont-distribute-packages:
   eccrypto:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ecdsa:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   ecma262:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ecstasy:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ecu:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   eddie:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   edenmodules:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4967,6 +4982,7 @@ dont-distribute-packages:
   gyah-bin:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   h-booru:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   h-gpgme:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  h-reversi:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   h2048:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   h2c:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   haar:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5680,6 +5696,7 @@ dont-distribute-packages:
   hsdns-cache:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hsed:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsenv:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hsfacter:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsfcsh:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   HSFFIG:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsfilt:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5810,6 +5827,8 @@ dont-distribute-packages:
   hunit-gui:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hunit-rematch:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   hunp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hunt-searchengine:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hunt-server:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hup:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hurdle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hurriyet:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5824,6 +5843,9 @@ dont-distribute-packages:
   hworker-ses:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hworker:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hws:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hwsl2-bytevector:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hwsl2-reducers:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hwsl2:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   HXMPP:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hxmppc:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hxournal:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5893,6 +5915,7 @@ dont-distribute-packages:
   ihaskell-charts:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-diagrams:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-display:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ihaskell-gnuplot:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-hatex:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-inline-r:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-juicypixels:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5955,7 +5978,6 @@ dont-distribute-packages:
   interleavableIO:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   interlude-l:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   internetmarke:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  intero-nix-shim:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   interpol:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   interpolatedstring-qq-mwotton:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   interpolatedstring-qq:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6360,6 +6382,7 @@ dont-distribute-packages:
   liquid:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   liquidhaskell-cabal-demo:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   liquidhaskell-cabal:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  liquidhaskell:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-mux:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-prompt:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-remote-forwards:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7079,6 +7102,7 @@ dont-distribute-packages:
   panda:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-crossref:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-csv2table:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pandoc-emphasize-code:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-include-code:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-include:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-japanese-filters:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7177,6 +7201,7 @@ dont-distribute-packages:
   persistent-map:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-mysql-haskell:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-protobuf:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  persistent-redis:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-relational-record:                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-zookeeper:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   persona-idp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7236,6 +7261,7 @@ dont-distribute-packages:
   pipes-s3:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-shell:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-sqlite-simple:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pipes-transduce:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-zeromq4:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-zlib:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pisigma:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7371,6 +7397,7 @@ dont-distribute-packages:
   process-listlike:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   process-progress:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   process-qq:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  process-streaming:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   processing:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   procrastinating-structure:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   procrastinating-variable:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7425,6 +7452,7 @@ dont-distribute-packages:
   PUH-Project:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   punkt:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Pup-Events-Demo:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  puppetresources:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   pure-cdb:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   pure-priority-queue-tests:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   pure-priority-queue:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7607,6 +7635,7 @@ dont-distribute-packages:
   reflex-sdl2:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   reflex-transformers:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   reflex:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  reformat:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   refresht:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   refurb:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-deriv:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7935,6 +7964,7 @@ dont-distribute-packages:
   servant-mock:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-pool:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-postgresql:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  servant-proto-lens:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-pushbullet-client:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-py:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-router:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8344,6 +8374,7 @@ dont-distribute-packages:
   stutter:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   stylized:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   sub-state:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  subhask:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   subleq-toolchain:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   submark:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   successors:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8450,6 +8481,7 @@ dont-distribute-packages:
   tamarin-prover-utils:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   tamarin-prover:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   Tape:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  target:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   tart:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   task-distribution:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   task:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8553,6 +8585,7 @@ dont-distribute-packages:
   th-alpha:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-build:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-context:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  th-dict-discovery:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-fold:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-instance-reification:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-instances:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8875,7 +8908,6 @@ dont-distribute-packages:
   variables:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   vault-tool-server:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   vaultaire-common:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  vaultenv:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   vcatt:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   vcsgui:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Vec-Boolean:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -9167,6 +9199,7 @@ dont-distribute-packages:
   yaml-rpc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   yaml2owl:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   yamlkeysdiff:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yampa-canvas:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   yampa-glfw:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   yampa-glut:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   yampa2048:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
diff --git a/pkgs/development/haskell-modules/default.nix b/pkgs/development/haskell-modules/default.nix
index 1658ce793936..4db418a7775b 100644
--- a/pkgs/development/haskell-modules/default.nix
+++ b/pkgs/development/haskell-modules/default.nix
@@ -2,7 +2,7 @@
 , compilerConfig ? (self: super: {})
 , packageSetConfig ? (self: super: {})
 , overrides ? (self: super: {})
-, initialPackages ? import ./hackage-packages.nix
+, initialPackages ? import ./initial-packages.nix
 , configurationCommon ? import ./configuration-common.nix
 , configurationNix ? import ./configuration-nix.nix
 }:
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index b80c5df68aa0..c633310a37a4 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -276,7 +276,7 @@ stdenv.mkDerivation ({
 
     echo configureFlags: $configureFlags
     ${setupCommand} configure $configureFlags 2>&1 | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log"
-    if ${gnugrep}/bin/egrep -q '^Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then
+    if ${gnugrep}/bin/egrep -q -z 'Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then
       echo >&2 "*** abort because of serious configure-time warning from Cabal"
       exit 1
     fi
@@ -356,6 +356,8 @@ stdenv.mkDerivation ({
 
     inherit pname version;
 
+    compiler = ghc;
+
     isHaskellLibrary = hasActiveLibrary;
 
     # TODO: ask why the split outputs are configurable at all?
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index f163abc47a06..e80879fb9f61 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -8461,8 +8461,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "HSlippyMap";
-       version = "2.5";
-       sha256 = "10n69p8ka1ri54in7yh1gjwh7fcw8nx4rvfhs9gcxmvawj96fyab";
+       version = "3.0";
+       sha256 = "1kqyahisqzilndargvyh0gqln3471ll1jkpnayirfi9am1by4f93";
        libraryHaskellDepends = [ base ];
        homepage = "https://github.com/apeyroux/HSlippyMap";
        description = "OpenStreetMap Slippy Map";
@@ -20125,6 +20125,7 @@ self: {
        homepage = "http://hub.darcs.net/thielema/accelerate-fourier/";
        description = "Fast Fourier transform and convolution using the Accelerate framework";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "accelerate-fourier-benchmark" = callPackage
@@ -21304,6 +21305,7 @@ self: {
        homepage = "https://github.com/michalkonecny/aern2";
        description = "Multi-precision floats via MPFR";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "aern2-real" = callPackage
@@ -21328,6 +21330,7 @@ self: {
        homepage = "https://github.com/michalkonecny/aern2";
        description = "Exact real numbers via Cauchy sequences and MPFR";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "aeson_0_7_0_6" = callPackage
@@ -29046,8 +29049,8 @@ self: {
      }:
      mkDerivation {
        pname = "ats-format";
-       version = "0.1.0.7";
-       sha256 = "03ps4c40zf4mipdkg3cmr5x656xjdqfb5466h0prcywbh076ry2l";
+       version = "0.1.0.8";
+       sha256 = "0hgzcgdpi9y039f45slaali0az3mjzvm2vv49iw3yglm1gvqkfzj";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -35345,6 +35348,7 @@ self: {
        homepage = "https://github.com/ku-fpg/blank-canvas/wiki";
        description = "HTML5 Canvas Graphics Library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "blas" = callPackage
@@ -35614,6 +35618,7 @@ self: {
        homepage = "http://github.com/mruegenberg/blaze-html-truncate";
        description = "A truncator for blaze-html";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "blaze-json" = callPackage
@@ -43069,6 +43074,7 @@ self: {
        homepage = "https://github.com/atzedijkstra/chr";
        description = "Constraint Handling Rules";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "chr-data" = callPackage
@@ -43108,6 +43114,7 @@ self: {
        homepage = "https://github.com/atzedijkstra/chr";
        description = "AST + surface language around chr";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "chr-parse" = callPackage
@@ -43795,6 +43802,7 @@ self: {
        homepage = "http://clafer.org";
        description = "Compiles Clafer models to other formats: Alloy, JavaScript, JSON, HTML, Dot";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "claferIG" = callPackage
@@ -43828,6 +43836,7 @@ self: {
        homepage = "http://clafer.org";
        description = "claferIG is an interactive tool that generates instances of Clafer models";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "claferwiki" = callPackage
@@ -44748,6 +44757,7 @@ self: {
        homepage = "https://github.com/tsahyt/clingo-haskell#readme";
        description = "Haskell bindings to the Clingo ASP solver";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) clingo;};
 
   "clippard" = callPackage
@@ -45856,6 +45866,7 @@ self: {
        ];
        description = "Graphics library for CodeWorld";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "codex" = callPackage
@@ -46351,6 +46362,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "colour_2_3_3" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "colour";
+       version = "2.3.3";
+       sha256 = "1qmn1778xzg07jg9nx4k1spdz2llivpblf6wwrps1qpqjhsac5cd";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base ];
+       homepage = "http://www.haskell.org/haskellwiki/Colour";
+       description = "A model for human colour/color perception";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "colour" = callPackage
     ({ mkDerivation, base, QuickCheck, random, test-framework
      , test-framework-quickcheck2
@@ -50564,6 +50589,7 @@ self: {
        homepage = "http://github.com/hargettp/courier";
        description = "A message-passing library for simplifying network applications";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "court" = callPackage
@@ -56842,6 +56868,19 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "debug-pp" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "debug-pp";
+       version = "0.1.0.0";
+       sha256 = "05cq6qlp014a9d7zvi7kablswxdf0801ybi29c4m2v9vkqakhwcj";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [ base ];
+       homepage = "https://github.com/pepeiborra/debug-hoed-pp#readme";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "debug-time" = callPackage
     ({ mkDerivation, base, clock, containers }:
      mkDerivation {
@@ -58454,6 +58493,7 @@ self: {
        homepage = "http://projects.haskell.org/diagrams/";
        description = "HTML5 canvas backend for diagrams drawing EDSL";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "diagrams-contrib" = callPackage
@@ -61819,6 +61859,37 @@ self: {
        homepage = "https://github.com/stackbuilders/dotenv-hs";
        description = "Loads environment variables from dotenv files";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "dotenv_0_5_2_1" = callPackage
+    ({ mkDerivation, base, base-compat, directory, exceptions, hspec
+     , hspec-megaparsec, megaparsec, optparse-applicative, process, text
+     , transformers, yaml
+     }:
+     mkDerivation {
+       pname = "dotenv";
+       version = "0.5.2.1";
+       sha256 = "0nd4d12sj93gs0n7pgdhailrwd56h33xy894n5m6zfi4ay43s62r";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base base-compat directory exceptions megaparsec process text
+         transformers yaml
+       ];
+       executableHaskellDepends = [
+         base base-compat megaparsec optparse-applicative process text
+         transformers yaml
+       ];
+       testHaskellDepends = [
+         base base-compat directory exceptions hspec hspec-megaparsec
+         megaparsec process text transformers yaml
+       ];
+       homepage = "https://github.com/stackbuilders/dotenv-hs";
+       description = "Loads environment variables from dotenv files";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "dotfs" = callPackage
@@ -63683,6 +63754,7 @@ self: {
        homepage = "http://github.com/isovector/ecstasy/";
        description = "A GHC.Generics based entity component system.";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ecu" = callPackage
@@ -72049,8 +72121,8 @@ self: {
        pname = "flock";
        version = "0.3.1.8";
        sha256 = "1g1gf7qnlqkl57h28nzxnbzj7v2h73czffp5y7s7jm9vbihcwd4n";
-       revision = "2";
-       editedCabalFile = "0xsi6bwqd57qwr9bjd2nck7q3gbmbsl9pb1rk6h4bbmm1ciybv19";
+       revision = "3";
+       editedCabalFile = "06hdirzgghlxpdymb5b5l58v20m34lmn2z8hmp9lwcskc8xfqqfn";
        libraryHaskellDepends = [
          base lifted-base monad-control transformers unix
        ];
@@ -76461,6 +76533,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "generic-lens_0_5_1_0" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, doctest
+     , inspection-testing, lens, profunctors, QuickCheck, tagged
+     }:
+     mkDerivation {
+       pname = "generic-lens";
+       version = "0.5.1.0";
+       sha256 = "09q13axb00kgy2w9c7lq84sh113vhxlw0g8zcjg07a1kp9wj7l47";
+       libraryHaskellDepends = [ base profunctors tagged ];
+       testHaskellDepends = [ base doctest inspection-testing lens ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq lens QuickCheck
+       ];
+       homepage = "https://github.com/kcsongor/generic-lens";
+       description = "Generic data-structure operations exposed as lenses";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "generic-lucid-scaffold" = callPackage
     ({ mkDerivation, base, lucid, text }:
      mkDerivation {
@@ -86185,6 +86276,7 @@ self: {
        homepage = "https://github.com/apoorvingle/h-reversi";
        description = "Reversi game in haskell/blank-canvas";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "h2048" = callPackage
@@ -91794,6 +91886,28 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
+  "haskell-lsp-client_1_0_0_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , haskell-lsp, lens, process, text, unix
+     }:
+     mkDerivation {
+       pname = "haskell-lsp-client";
+       version = "1.0.0.1";
+       sha256 = "06zx80nhhf5fik84rijaxzjy9yv1c29g6hwfx73axlav80g176qw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers haskell-lsp lens process text
+       ];
+       executableHaskellDepends = [
+         base directory haskell-lsp lens process text unix
+       ];
+       homepage = "https://github.com/noughtmare/haskell-lsp-client#readme";
+       description = "A haskell package to build your own Language Server client";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-menu" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -97883,22 +97997,21 @@ self: {
      }) {geos_c = null;};
 
   "hgettext" = callPackage
-    ({ mkDerivation, base, Cabal, containers, directory, filepath
-     , haskell-src-exts, process, setlocale, uniplate
+    ({ mkDerivation, base, Cabal, containers, deepseq, directory
+     , filepath, haskell-src-exts, process, setlocale, uniplate
      }:
      mkDerivation {
        pname = "hgettext";
-       version = "0.1.30";
-       sha256 = "1pgzyd1nqzl7g88pcw7sncija5sd2k4zif9d8qfw96cw6m6kli96";
-       revision = "3";
-       editedCabalFile = "1cxc4jqkngabnramva9s718mavk1082pjkkq2z8x326k0v269w2g";
+       version = "0.1.31.0";
+       sha256 = "0s7kgpjlkkw32rbksic099m9g07czi0vrhcn7mbiyi0lyhcbc7ym";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base Cabal containers directory filepath process setlocale
        ];
-       executableHaskellDepends = [ base haskell-src-exts uniplate ];
-       homepage = "https://github.com/vasylp/hgettext";
+       executableHaskellDepends = [
+         base Cabal containers deepseq filepath haskell-src-exts uniplate
+       ];
        description = "Bindings to libintl.h (gettext, bindtextdomain)";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -98221,6 +98334,20 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hidden-char_0_1_0_2" = callPackage
+    ({ mkDerivation, base, hspec }:
+     mkDerivation {
+       pname = "hidden-char";
+       version = "0.1.0.2";
+       sha256 = "167l83cn37mkq394pbanybz1kghnbim1m74fxskws1nclxr9747a";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
+       homepage = "https://github.com/rcook/hidden-char#readme";
+       description = "Provides getHiddenChar function";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hieraclus" = callPackage
     ({ mkDerivation, base, containers, HUnit, mtl, multiset }:
      mkDerivation {
@@ -100017,6 +100144,21 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "hlint-test" = callPackage
+    ({ mkDerivation, base, hlint }:
+     mkDerivation {
+       pname = "hlint-test";
+       version = "0.1.0.0";
+       sha256 = "1lvbhhcxs9axvpm5m3axni30aafa9d32jrx00072kywm536gnnny";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base hlint ];
+       executableHaskellDepends = [ base hlint ];
+       homepage = "https://github.com/Siprj/hlint-test#readme";
+       description = "Run hlint in test suite";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hlogger" = callPackage
     ({ mkDerivation, base, old-locale, time }:
      mkDerivation {
@@ -104995,6 +105137,7 @@ self: {
        homepage = "http://lpuppet.banquise.net";
        description = "A small and ugly library that emulates the output of the puppet facter program";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hsfcsh" = callPackage
@@ -108495,6 +108638,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "http-reverse-proxy_0_5_0" = callPackage
+    ({ mkDerivation, async, base, blaze-builder, bytestring
+     , case-insensitive, conduit, conduit-extra, containers
+     , data-default-class, hspec, http-client, http-conduit, http-types
+     , lifted-base, monad-control, network, resourcet, streaming-commons
+     , text, transformers, wai, wai-logger, warp, word8
+     }:
+     mkDerivation {
+       pname = "http-reverse-proxy";
+       version = "0.5.0";
+       sha256 = "10j58i0xkbf84ypk5q8pxz2a85kk24s4xqhkprr6j12d4hx1zl6i";
+       libraryHaskellDepends = [
+         async base blaze-builder bytestring case-insensitive conduit
+         conduit-extra containers data-default-class http-client http-types
+         lifted-base monad-control network resourcet streaming-commons text
+         transformers wai wai-logger word8
+       ];
+       testHaskellDepends = [
+         base blaze-builder bytestring conduit conduit-extra hspec
+         http-conduit http-types lifted-base network resourcet
+         streaming-commons transformers wai warp
+       ];
+       homepage = "https://github.com/fpco/http-reverse-proxy";
+       description = "Reverse proxy HTTP requests, either over raw sockets or with WAI";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "http-server" = callPackage
     ({ mkDerivation, base, HTTP, mime, network, network-uri, text, unix
      , url, utf8-string
@@ -109192,6 +109363,7 @@ self: {
        homepage = "http://github.com/hunt-framework/";
        description = "A search and indexing engine";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hunt-server" = callPackage
@@ -109216,6 +109388,7 @@ self: {
        homepage = "http://github.com/hunt-framework";
        description = "A search and indexing engine server";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hunt-server-cli" = callPackage
@@ -110093,6 +110266,7 @@ self: {
        homepage = "https://github.com/srijs/hwsl2";
        description = "Hashing with SL2";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hwsl2-bytevector" = callPackage
@@ -110105,6 +110279,7 @@ self: {
        homepage = "https://github.com/srijs/hwsl2-haskell-bytevector";
        description = "A hashed byte-vector based on algebraic hashes and finger trees";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hwsl2-reducers" = callPackage
@@ -110119,6 +110294,7 @@ self: {
        homepage = "https://github.com/srijs/hwsl2-reducers";
        description = "Semigroup and Reducer instances for Data.Hash.SL2";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hx" = callPackage
@@ -112049,6 +112225,7 @@ self: {
        homepage = "http://www.github.com/gibiansky/ihaskell";
        description = "IHaskell display instance for Gnuplot (from gnuplot package)";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ihaskell-hatex" = callPackage
@@ -125961,8 +126138,8 @@ self: {
      }:
      mkDerivation {
        pname = "liquid-fixpoint";
-       version = "0.7.0.5";
-       sha256 = "081z90vcqrmfjc3jna419a8ziif2rcrag4ba4h902lrjh5hpvpaj";
+       version = "0.7.0.6";
+       sha256 = "1sbvnj2as93dywh43zcsb23hr1mqlia5gr2sw08ynqh48dcx181p";
        configureFlags = [ "-fbuild-external" ];
        isLibrary = true;
        isExecutable = true;
@@ -125991,17 +126168,16 @@ self: {
     ({ mkDerivation, aeson, array, base, bifunctors, binary, bytestring
      , Cabal, cereal, cmdargs, containers, data-default, deepseq, Diff
      , directory, exceptions, filepath, fingertree, ghc, ghc-boot
-     , ghc-paths, ghc-prim, hashable, hint, hpc, hscolour
-     , liquid-fixpoint, located-base, mtl, optparse-applicative, parsec
-     , pretty, process, QuickCheck, stm, syb, tagged, tasty
-     , tasty-ant-xml, tasty-hunit, tasty-rerun, template-haskell
-     , temporary, text, text-format, th-lift, time, transformers
-     , unordered-containers, vector, z3
+     , ghc-paths, ghc-prim, hashable, hpc, hscolour, liquid-fixpoint
+     , located-base, mtl, optparse-applicative, parsec, pretty, process
+     , QuickCheck, stm, syb, tagged, tasty, tasty-ant-xml, tasty-hunit
+     , tasty-rerun, template-haskell, temporary, text, text-format
+     , th-lift, time, transformers, unordered-containers, vector, z3
      }:
      mkDerivation {
        pname = "liquidhaskell";
-       version = "0.8.2.0";
-       sha256 = "17fm1jn00wns6nkwvxm96j85jwiiaqmw3s7w4ilkslzgr9wslp8f";
+       version = "0.8.2.2";
+       sha256 = "0rq0fs5ydwiqi2f3pn9q4d1agbmz0z46ws2q5w8y7lrsb2mr4zf3";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -126014,8 +126190,8 @@ self: {
          transformers unordered-containers vector
        ];
        executableHaskellDepends = [
-         base cmdargs deepseq ghc ghc-boot hint hpc liquid-fixpoint
-         located-base pretty process time
+         base cmdargs deepseq ghc ghc-boot hpc liquid-fixpoint located-base
+         pretty process time
        ];
        testHaskellDepends = [
          array base bytestring containers directory filepath ghc ghc-boot
@@ -126027,6 +126203,7 @@ self: {
        homepage = "https://github.com/ucsd-progsys/liquidhaskell";
        description = "Liquid Types for Haskell";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) z3;};
 
   "liquidhaskell-cabal" = callPackage
@@ -132088,6 +132265,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "mega-sdist_0_3_0_6" = callPackage
+    ({ mkDerivation, base, bytestring, classy-prelude-conduit
+     , conduit-extra, directory, filepath, http-conduit, optparse-simple
+     , tar-conduit, temporary, text, typed-process, yaml
+     }:
+     mkDerivation {
+       pname = "mega-sdist";
+       version = "0.3.0.6";
+       sha256 = "0cgak9hp1j9ybcpbqjs56pq7h9wn0my46mlx6nqv3fvidwdp5vl7";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring classy-prelude-conduit conduit-extra directory
+         filepath http-conduit optparse-simple tar-conduit temporary text
+         typed-process yaml
+       ];
+       homepage = "https://github.com/snoyberg/mega-sdist#readme";
+       description = "Handles uploading to Hackage from mega repos";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "megaparsec" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , criterion, deepseq, hspec, hspec-expectations, mtl
@@ -134323,6 +134522,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "mmark_0_0_4_0" = callPackage
+    ({ mkDerivation, aeson, base, case-insensitive, containers
+     , criterion, data-default-class, deepseq, dlist, email-validate
+     , foldl, hashable, hspec, hspec-megaparsec, html-entity-map, lucid
+     , megaparsec, microlens, microlens-th, modern-uri, mtl
+     , parser-combinators, QuickCheck, text, text-metrics
+     , unordered-containers, weigh, yaml
+     }:
+     mkDerivation {
+       pname = "mmark";
+       version = "0.0.4.0";
+       sha256 = "05dslarsdfcp2im9w80ks52wzqcqq8ma23b69wdl8nyfbkmaj5ch";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base case-insensitive containers data-default-class deepseq
+         dlist email-validate foldl hashable html-entity-map lucid
+         megaparsec microlens microlens-th modern-uri mtl parser-combinators
+         text text-metrics unordered-containers yaml
+       ];
+       testHaskellDepends = [
+         aeson base foldl hspec hspec-megaparsec lucid megaparsec modern-uri
+         QuickCheck text
+       ];
+       benchmarkHaskellDepends = [ base criterion text weigh ];
+       homepage = "https://github.com/mrkkrp/mmark";
+       description = "Strict markdown processor for writers";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "mmark-ext" = callPackage
     ({ mkDerivation, base, data-default-class, foldl, hspec, lucid
      , mmark, modern-uri, text
@@ -141796,8 +142025,8 @@ self: {
        pname = "networked-game";
        version = "0.1.0.1";
        sha256 = "12sy97cgqrsmqywh0cznp8wbsw8z2yahlfalsjy32qarcz44banz";
-       revision = "2";
-       editedCabalFile = "0bnf9c2f176f0sgxa7h78ikd6hn3rxz0xz31sjm0yzx1r7gaxzrw";
+       revision = "4";
+       editedCabalFile = "1rcqsw6f6b1a7sfk38hvil0278cxsq071jwwvfcsi6qhy6kb4jh0";
        libraryHaskellDepends = [
          base binary bytestring containers network time transformers
        ];
@@ -143200,6 +143429,28 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "nqe" = callPackage
+    ({ mkDerivation, async, base, bytestring, conduit, conduit-extra
+     , containers, exceptions, hspec, lifted-async, lifted-base
+     , monad-control, stm, stm-conduit, text, transformers-base
+     }:
+     mkDerivation {
+       pname = "nqe";
+       version = "0.1.0.0";
+       sha256 = "1cg9f0bjf8sar3scln73ij0av4jwwv8ki44fdh1dbhcy1c9fn5d4";
+       libraryHaskellDepends = [
+         async base bytestring conduit conduit-extra containers lifted-async
+         lifted-base monad-control stm transformers-base
+       ];
+       testHaskellDepends = [
+         async base bytestring conduit conduit-extra exceptions hspec stm
+         stm-conduit text
+       ];
+       homepage = "https://github.com/xenog/nqe#readme";
+       description = "Concurrency library in the style of Erlang/OTP";
+       license = stdenv.lib.licenses.publicDomain;
+     }) {};
+
   "nsis" = callPackage
     ({ mkDerivation, base, directory, process, transformers, uniplate
      }:
@@ -144170,8 +144421,8 @@ self: {
      }:
      mkDerivation {
        pname = "ocaml-export";
-       version = "0.1.1.0";
-       sha256 = "1rj2pq87i9jlg74pxqc6npsskfv1p8my1572kmmb98nd7a2qxdp1";
+       version = "0.2.0.0";
+       sha256 = "043vpjj3y8s0jyg5dfbbmxl6hypywn97m4f7ka7svkr84clzpjc7";
        libraryHaskellDepends = [
          aeson base bytestring containers directory file-embed filepath
          formatting hspec-golden-aeson mtl QuickCheck
@@ -145058,8 +145309,8 @@ self: {
     ({ mkDerivation, aeson, base, data-default, text, time }:
      mkDerivation {
        pname = "opench-meteo";
-       version = "0.2.0.0";
-       sha256 = "1h3slv334cx571l1k113qq0fg9ggznp0f0cabrdm7lr1jldn94wy";
+       version = "0.2.0.2";
+       sha256 = "0xj9v7xl11j6p4kk5dz64kqpmyc5d68sldakiaby0j8qvyw7sf9r";
        libraryHaskellDepends = [ aeson base data-default text time ];
        homepage = "https://github.com/hansroland/opench";
        description = "A Haskell implementation of the Swiss Meteo Net data API";
@@ -147287,6 +147538,43 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "pandoc-citeproc_0_12_2_2" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
+     , Cabal, containers, data-default, directory, filepath, hs-bibutils
+     , mtl, old-locale, pandoc, pandoc-types, parsec, process, rfc5051
+     , setenv, split, syb, tagsoup, temporary, text, time
+     , unordered-containers, vector, xml-conduit, yaml
+     }:
+     mkDerivation {
+       pname = "pandoc-citeproc";
+       version = "0.12.2.2";
+       sha256 = "00cz17pkpkm5xwmrvjrzz9bwybiqxyymcz1mic7955hlzhfk82c2";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [
+         aeson base bytestring containers data-default directory filepath
+         hs-bibutils mtl old-locale pandoc pandoc-types parsec rfc5051
+         setenv split syb tagsoup text time unordered-containers vector
+         xml-conduit yaml
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty attoparsec base bytestring containers directory
+         filepath mtl pandoc pandoc-types process syb temporary text vector
+         yaml
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers directory filepath mtl pandoc
+         pandoc-types process temporary text yaml
+       ];
+       doCheck = false;
+       homepage = "https://github.com/jgm/pandoc-citeproc";
+       description = "Supports using pandoc with citeproc";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "pandoc-citeproc-preamble" = callPackage
     ({ mkDerivation, base, directory, filepath, pandoc-types, process
      }:
@@ -147366,8 +147654,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-emphasize-code";
-       version = "0.2.1";
-       sha256 = "13i9smymv24k3vssz49fhv33qd99lqyf081q5p613wgcmg21iakg";
+       version = "0.2.2";
+       sha256 = "05vf3fli3glq013c9w9bbjggndfwhjb1rqxqspxyfh8pi14sbj9v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -147382,6 +147670,7 @@ self: {
        homepage = "https://github.com/owickstrom/pandoc-emphasize-code";
        description = "A Pandoc filter for emphasizing code in fenced blocks";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pandoc-filter-graphviz" = callPackage
@@ -147432,8 +147721,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-include-code";
-       version = "1.2.0.1";
-       sha256 = "1qcmhdx47grgjydq0dzcz6iss247p0y8432bpw908ygr222gkqhp";
+       version = "1.2.0.2";
+       sha256 = "0mnk6ld2d1bka2wmz9718k8rfdbzhp4ym3axn4js4m0ka51w50h9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -151076,7 +151365,7 @@ self: {
        ];
        description = "Backend for persistent library using Redis";
        license = stdenv.lib.licenses.bsd3;
-       maintainers = with stdenv.lib.maintainers; [ psibi ];
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "persistent-refs" = callPackage
@@ -152864,8 +153153,8 @@ self: {
      }:
      mkDerivation {
        pname = "pipes-key-value-csv";
-       version = "0.4.0.2";
-       sha256 = "0v7gqic7d4prdgwjkncnx1fzk38nxwfij9pnpnp7d8n0kwdcnbix";
+       version = "0.4.0.3";
+       sha256 = "02wdna1kjjz0pkap3pfvzl336aapjv6ylmg5qwa6hr07d7sfbh3l";
        libraryHaskellDepends = [
          base bifunctors containers data-default-class lens mtl pipes
          pipes-bytestring pipes-group pipes-parse pipes-safe pipes-text
@@ -153224,6 +153513,7 @@ self: {
        ];
        description = "Interfacing pipes with foldl folds";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pipes-vector" = callPackage
@@ -153307,6 +153597,8 @@ self: {
        pname = "pipes-zlib";
        version = "0.4.4.1";
        sha256 = "1sdxhb3000k57ck1mbasdwaxmkmw2bbh2m1ry3fvpgsilq91xb4g";
+       revision = "1";
+       editedCabalFile = "1vjvbww9b0892p1r1vz3biim3r5zaxkg8ks8w9cj2nc6i0bs7qy1";
        libraryHaskellDepends = [
          base bytestring pipes streaming-commons transformers
        ];
@@ -157734,6 +158026,7 @@ self: {
        ];
        description = "Streaming interface to system processes";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "processing" = callPackage
@@ -159251,6 +159544,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "publicsuffix_0_20171229" = callPackage
+    ({ mkDerivation, base, criterion, filepath, hspec, random
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "publicsuffix";
+       version = "0.20171229";
+       sha256 = "03qvd0a13r4b45rz2wbf7kad17v0x3f6mrcv2slhyh0x4a1ca2s0";
+       libraryHaskellDepends = [ base filepath template-haskell ];
+       testHaskellDepends = [ base hspec ];
+       benchmarkHaskellDepends = [ base criterion random ];
+       homepage = "https://github.com/wereHamster/publicsuffix-haskell/";
+       description = "The publicsuffix list exposed as proper Haskell types";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "publicsuffixlist" = callPackage
     ({ mkDerivation, base, bytestring, cereal, containers, data-default
      , HUnit, idna, text, utf8-string
@@ -159557,6 +159867,7 @@ self: {
        homepage = "http://lpuppet.banquise.net";
        description = "A program that displays the puppet resources associated to a node given .pp files.";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pure-cdb" = callPackage
@@ -159968,6 +160279,32 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "pusher-http-haskell_1_5_1_0" = callPackage
+    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
+     , cryptonite, hashable, hspec, http-client, http-types, memory
+     , QuickCheck, scientific, text, time, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "pusher-http-haskell";
+       version = "1.5.1.0";
+       sha256 = "1mnigsf10jxqsvjr1vbizxjrf97w3cx54xy850mj3b8i34929bmh";
+       libraryHaskellDepends = [
+         aeson base base16-bytestring bytestring cryptonite hashable
+         http-client http-types memory text time transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base base16-bytestring bytestring cryptonite hspec
+         http-client http-types QuickCheck scientific text time transformers
+         unordered-containers vector
+       ];
+       homepage = "https://github.com/pusher-community/pusher-http-haskell";
+       description = "Haskell client library for the Pusher HTTP API";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "pusher-ws" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, deepseq
      , hashable, http-conduit, lens, lens-aeson, network, scientific
@@ -165092,6 +165429,7 @@ self: {
        homepage = "https://github.com/Qinka/reformat";
        description = "The parser and render to parsec and render the string";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "refresht" = callPackage
@@ -174056,7 +174394,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-auth-cookie_0_6_0" = callPackage
+  "servant-auth-cookie_0_6_0_1" = callPackage
     ({ mkDerivation, base, base64-bytestring, blaze-builder, bytestring
      , cereal, cereal-time, cookie, criterion, cryptonite, data-default
      , deepseq, exceptions, hspec, http-api-data, http-types, memory
@@ -174065,8 +174403,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-auth-cookie";
-       version = "0.6.0";
-       sha256 = "04pyy8534hnwwa5z423d6p5j2d5mzwbgls2q11hcma35nkz8y0xw";
+       version = "0.6.0.1";
+       sha256 = "0fbzcqav3cgnjvbfw0yrqlp36c8fk3ab3ff0am5cwvic8db1kqhb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -175166,6 +175504,7 @@ self: {
        homepage = "https://github.com/plredmond/servant-proto-lens";
        description = "Servant Content-Type for proto-lens protobuf modules";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-purescript" = callPackage
@@ -175489,8 +175828,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-snap";
-       version = "0.8.0.1";
-       sha256 = "06n9zvz18hwizi5iqldlhgwr1m83fg5l3dzlaarl2rgvr1dnkh2i";
+       version = "0.8.1";
+       sha256 = "0l85gs987g6z3r6pqrf79279l1jmxq3pl8xjz62ps0p3ww1rp296";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -175501,7 +175840,7 @@ self: {
        ];
        executableHaskellDepends = [
          aeson base bytestring either errors heist lens map-syntax servant
-         snap snap-core snap-server text transformers
+         snap snap-core snap-cors snap-server text transformers
        ];
        testHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive containers
@@ -179560,8 +179899,8 @@ self: {
     ({ mkDerivation, base, directory, filepath, optparse-applicative }:
      mkDerivation {
        pname = "slate";
-       version = "0.3.0.0";
-       sha256 = "0whwsaxxz43ahz3x0l0vhq9m1mw2sxzh26mpxf8wzjka4xdizrwm";
+       version = "0.4.0.0";
+       sha256 = "0j2n2wix01ildnpy6k289j5dlf9i7zbi1yd4k5hdvamwlvibqzjl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -187866,7 +188205,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "stylish-haskell_0_9_0_0" = callPackage
+  "stylish-haskell_0_9_0_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , file-embed, filepath, haskell-src-exts, HUnit, mtl
      , optparse-applicative, strict, syb, test-framework
@@ -187874,8 +188213,8 @@ self: {
      }:
      mkDerivation {
        pname = "stylish-haskell";
-       version = "0.9.0.0";
-       sha256 = "1drpd63igjp5inlxz2a7xz43v0lhbg4cx07wil82bw2bp1jgbm90";
+       version = "0.9.0.1";
+       sha256 = "1qv5apapb2in7fdq68pn3v5g4i40ml6nc14d5kvsbxfq24y0flpm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -187971,6 +188310,7 @@ self: {
        homepage = "http://github.com/mikeizbicki/subhask";
        description = "Type safe interface for programming in subcategories of Hask";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "subleq-toolchain" = callPackage
@@ -191228,6 +191568,7 @@ self: {
        ];
        description = "Generate test-suites from refinement types";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) z3;};
 
   "tart" = callPackage
@@ -191800,6 +192141,31 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty-silver_3_1_11" = callPackage
+    ({ mkDerivation, ansi-terminal, async, base, bytestring, containers
+     , deepseq, directory, filepath, mtl, optparse-applicative, process
+     , process-extras, regex-tdfa, semigroups, stm, tagged, tasty
+     , tasty-hunit, temporary, text, transformers
+     }:
+     mkDerivation {
+       pname = "tasty-silver";
+       version = "3.1.11";
+       sha256 = "1rvky2661s77wnm8c0jh0hkp3jjp5c1vndv9ilg4s47kw77708az";
+       libraryHaskellDepends = [
+         ansi-terminal async base bytestring containers deepseq directory
+         filepath mtl optparse-applicative process process-extras regex-tdfa
+         semigroups stm tagged tasty temporary text
+       ];
+       testHaskellDepends = [
+         base directory filepath process tasty tasty-hunit temporary
+         transformers
+       ];
+       homepage = "https://github.com/phile314/tasty-silver";
+       description = "A fancy test runner, including support for golden tests";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tasty-smallcheck" = callPackage
     ({ mkDerivation, async, base, smallcheck, tagged, tasty }:
      mkDerivation {
@@ -194920,6 +195286,7 @@ self: {
        homepage = "http://github.com/isovector/th-dict-discovery/";
        description = "Automatically discover available dictionaries at compile time";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "th-expand-syns" = callPackage
@@ -203138,6 +203505,31 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "universum_1_0_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion, deepseq
+     , ghc-prim, hashable, microlens, microlens-mtl, mtl
+     , safe-exceptions, semigroups, stm, text, text-format, transformers
+     , type-operators, unordered-containers, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "universum";
+       version = "1.0.2";
+       sha256 = "09pd637vxwnqhq8464bvv0y3nmdac289rxzbzdxz3cpj8xv9nhf4";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq ghc-prim hashable microlens
+         microlens-mtl mtl safe-exceptions stm text text-format transformers
+         type-operators unordered-containers utf8-string vector
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion deepseq hashable mtl semigroups text
+         unordered-containers
+       ];
+       homepage = "https://github.com/serokell/universum";
+       description = "Custom prelude used in Serokell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "unix_2_7_2_2" = callPackage
     ({ mkDerivation, base, bytestring, time }:
      mkDerivation {
@@ -203337,6 +203729,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "unliftio_0_2_2_0" = callPackage
+    ({ mkDerivation, async, base, deepseq, directory, filepath, hspec
+     , stm, transformers, unix, unliftio-core
+     }:
+     mkDerivation {
+       pname = "unliftio";
+       version = "0.2.2.0";
+       sha256 = "0qqacdzwbrynk2ma49q830irpya1il8m5b9rkklm906k60yjz9b9";
+       libraryHaskellDepends = [
+         async base deepseq directory filepath stm transformers unix
+         unliftio-core
+       ];
+       testHaskellDepends = [
+         async base deepseq directory filepath hspec stm transformers unix
+         unliftio-core
+       ];
+       homepage = "https://github.com/fpco/unliftio/tree/master/unliftio#readme";
+       description = "The MonadUnliftIO typeclass for unlifting monads to IO (batteries included)";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "unliftio-core" = callPackage
     ({ mkDerivation, base, transformers }:
      mkDerivation {
@@ -210197,15 +210611,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "weeder_0_1_10" = callPackage
+  "weeder_0_1_11" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cmdargs, deepseq
      , directory, extra, filepath, foundation, hashable, process, text
      , unordered-containers, vector, yaml
      }:
      mkDerivation {
        pname = "weeder";
-       version = "0.1.10";
-       sha256 = "0mcxp8jrhyd98fz29i6rzwi8h4vd8w32nqw1qarbw2qbyrq03a72";
+       version = "0.1.11";
+       sha256 = "072gz2pwmzy7y4fnqgwwghgmcn5qy5aw8n9mhzwdspqjwyxr4rmh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -214635,6 +215049,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) libyaml;};
 
+  "yaml_0_8_25_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring
+     , conduit, containers, directory, filepath, hspec, HUnit, libyaml
+     , mockery, resourcet, scientific, semigroups, template-haskell
+     , temporary, text, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "yaml";
+       version = "0.8.25.1";
+       sha256 = "0s5db3ayjb9cs1pah1dggy9v95jnxis6v038jkh6229vi1piq4gz";
+       configureFlags = [ "-fsystem-libyaml" ];
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring conduit containers directory
+         filepath resourcet scientific semigroups template-haskell text
+         transformers unordered-containers vector
+       ];
+       libraryPkgconfigDepends = [ libyaml ];
+       executableHaskellDepends = [ aeson base bytestring ];
+       testHaskellDepends = [
+         aeson base base-compat bytestring conduit directory hspec HUnit
+         mockery resourcet temporary text transformers unordered-containers
+         vector
+       ];
+       homepage = "http://github.com/snoyberg/yaml/";
+       description = "Support for parsing and rendering YAML documents";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) libyaml;};
+
   "yaml-combinators" = callPackage
     ({ mkDerivation, aeson, base, bytestring, doctest, generics-sop
      , scientific, tasty, tasty-hunit, text, transformers
@@ -214838,6 +215283,7 @@ self: {
        executableHaskellDepends = [ base blank-canvas text Yampa ];
        description = "blank-canvas frontend for Yampa";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yampa-glfw" = callPackage
@@ -216995,6 +217441,34 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "yesod-test_1_5_9" = callPackage
+    ({ mkDerivation, attoparsec, base, blaze-builder, blaze-html
+     , blaze-markup, bytestring, case-insensitive, containers, cookie
+     , hspec, hspec-core, html-conduit, http-types, HUnit, lifted-base
+     , monad-control, network, persistent, pretty-show, text, time
+     , transformers, wai, wai-extra, xml-conduit, xml-types, yesod-core
+     , yesod-form
+     }:
+     mkDerivation {
+       pname = "yesod-test";
+       version = "1.5.9";
+       sha256 = "1kmqrm5qk3wnmrqsq0jmglabs731dw4d7b0jp3sn1z5lqgxm7kzm";
+       libraryHaskellDepends = [
+         attoparsec base blaze-builder blaze-html blaze-markup bytestring
+         case-insensitive containers cookie hspec-core html-conduit
+         http-types HUnit monad-control network persistent pretty-show text
+         time transformers wai wai-extra xml-conduit xml-types yesod-core
+       ];
+       testHaskellDepends = [
+         base bytestring containers hspec html-conduit http-types HUnit
+         lifted-base text wai xml-conduit yesod-core yesod-form
+       ];
+       homepage = "http://www.yesodweb.com";
+       description = "integration testing for WAI/Yesod Applications";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "yesod-test-json" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, hspec
      , http-types, HUnit, text, transformers, wai, wai-test
diff --git a/pkgs/development/haskell-modules/hie-packages.nix b/pkgs/development/haskell-modules/hie-packages.nix
new file mode 100644
index 000000000000..41b28023348d
--- /dev/null
+++ b/pkgs/development/haskell-modules/hie-packages.nix
@@ -0,0 +1,459 @@
+{ pkgs, stdenv, callPackage }: self:
+let src = pkgs.fetchFromGitHub
+      { owner = "haskell";
+        repo = "haskell-ide-engine";
+        rev = "3ec8e93e9ca751cf282556998851ffa65f32e06b";
+        sha256 = "1wzqzvsa39c1cngmmjryqrq4vqdg6d4wp5wdf17vp96ljvz1cczw";
+      };
+    cabal-helper-src = pkgs.fetchgit
+      { url = "https://gitlab.com/dxld/cabal-helper.git";
+        rev = "4bfc6b916fcc696a5d82e7cd35713d6eabcb0533";
+        sha256 = "1a8231as0wdvi0q73ha9lc0qrx23kmcwf910qaicvmdar5p2b15m";
+      };
+    ghc-dump-tree-src = pkgs.fetchgit
+      { url = "https://gitlab.com/alanz/ghc-dump-tree.git";
+        rev = "50f8b28fda675cca4df53909667c740120060c49";
+        sha256 = "0v3r81apdqp91sv7avy7f0s3im9icrakkggw8q5b7h0h4js6irqj";
+      };
+    ghc-mod-src = pkgs.fetchFromGitHub
+      { owner = "wz1000";
+        repo = "ghc-mod";
+        rev = "03c91ea53b6389e7a1fcf4e471171aa3d6c8de41";
+        sha256 = "11iic93klsh5izp8v4mhl7vnnlib821cfhdymlpg4drx7zbm9il6";
+      };
+    HaRe-src = pkgs.fetchgit
+      { url = "https://gitlab.com/alanz/HaRe.git";
+        rev = "e325975450ce89d790ed3f92de3ef675967d9538";
+        sha256 = "0z7r3l4j5a1brz7zb2rgd985m58rs0ki2p59y1l9i46fcy8r9y4g";
+      };
+    cabal-helper = self.cabal-helper_hie;
+    haddock-library = self.haddock-library_1_4_4;
+    ghc-dump-tree = self.ghc-dump-tree_hie;
+    ghc-mod = self.ghc-mod_hie;
+    HaRe = self.HaRe_hie;
+in
+  { ### Overrides required by hie
+    cabal-helper_hie = callPackage
+      ({ mkDerivation, base, bytestring, Cabal, cabal-install, containers
+       , directory, exceptions, filepath, ghc-prim, mtl, process
+       , semigroupoids, template-haskell, temporary, transformers
+       , unix, unix-compat, utf8-string
+       }:
+       mkDerivation {
+         pname = "cabal-helper";
+         version = "0.8.0.0";
+         src = cabal-helper-src;
+         isLibrary = true;
+         isExecutable = true;
+         jailbreak = true;
+         setupHaskellDepends = [ base Cabal directory filepath ];
+         libraryHaskellDepends = [
+           base Cabal directory filepath ghc-prim mtl process semigroupoids
+           transformers unix unix-compat
+         ];
+         executableHaskellDepends = [
+           base bytestring Cabal containers directory exceptions filepath
+           ghc-prim mtl process template-haskell temporary transformers unix
+           unix-compat utf8-string
+         ];
+         testHaskellDepends = [
+           base bytestring Cabal directory exceptions filepath ghc-prim mtl
+           process template-haskell temporary transformers unix unix-compat
+           utf8-string
+         ];
+         testToolDepends = [ cabal-install ];
+         postInstall =
+           ''
+             libexec="$out/libexec/$(basename $out/lib/ghc*/*ghc*)/$name"
+             mkdir -p "$libexec"
+             ln -sv $out/bin/cabal-helper-wrapper "$libexec"
+           '';
+         doCheck = false;
+         description = "Simple interface to some of Cabal's configuration state, mainly used by ghc-mod";
+         license = stdenv.lib.licenses.agpl3;
+       }) {};
+    ghc-dump-tree_hie = callPackage
+      ({ mkDerivation, aeson, base, bytestring, ghc, optparse-applicative
+       , pretty, pretty-show, process, unordered-containers
+       , vector
+       }:
+       mkDerivation {
+         pname = "ghc-dump-tree";
+         version = "0.2.0.1";
+         src = ghc-dump-tree-src;
+         isLibrary = true;
+         isExecutable = true;
+         libraryHaskellDepends = [
+           aeson base bytestring ghc pretty pretty-show process
+           unordered-containers vector
+         ];
+         executableHaskellDepends = [
+           aeson base bytestring ghc optparse-applicative pretty pretty-show
+           process unordered-containers vector
+         ];
+         homepage = "https://github.com/edsko/ghc-dump-tree";
+         description = "Dump GHC's parsed, renamed, and type checked ASTs";
+         license = stdenv.lib.licenses.bsd3;
+       }) {};
+    ghc-mod-core = callPackage
+      ({ mkDerivation, base, binary, bytestring, Cabal, cabal-helper
+       , containers, deepseq, directory, djinn-ghc, extra, fclabels
+       , filepath, fingertree, ghc, ghc-boot, ghc-paths, ghc-syb-utils
+       , haskell-src-exts, hlint, monad-control, monad-journal, mtl
+       , old-time, optparse-applicative, pipes, process, safe, semigroups
+       , split, syb, template-haskell, temporary, text, time
+       , transformers, transformers-base
+       }:
+       mkDerivation {
+         pname = "ghc-mod-core";
+         version = "5.9.0.0";
+         src = "${ghc-mod-src}/core";
+         setupHaskellDepends = [
+           base Cabal containers directory filepath process template-haskell
+           transformers
+         ];
+         libraryHaskellDepends = [
+           base binary bytestring cabal-helper containers deepseq directory
+           djinn-ghc extra fclabels filepath fingertree ghc ghc-boot ghc-paths
+           ghc-syb-utils haskell-src-exts hlint monad-control monad-journal
+           mtl old-time optparse-applicative pipes process safe semigroups
+           split syb template-haskell temporary text time transformers
+           transformers-base
+         ];
+         homepage = "https://github.com/DanielG/ghc-mod";
+         description = "Happy Haskell Hacking";
+         license = stdenv.lib.licenses.agpl3;
+       }) { inherit cabal-helper; };
+    ghc-mod_hie = callPackage
+      ({ mkDerivation, base, binary, bytestring, Cabal, cabal-doctest
+       , cabal-helper, containers, criterion, deepseq, directory
+       , djinn-ghc, doctest, extra, fclabels, filepath, ghc, ghc-boot
+       , ghc-mod-core, ghc-paths, ghc-syb-utils, haskell-src-exts, hlint
+       , hspec, monad-control, monad-journal, mtl, old-time
+       , optparse-applicative, pipes, process, safe, semigroups, shelltest
+       , split, syb, template-haskell, temporary, text, time
+       , transformers, transformers-base
+       }:
+       mkDerivation {
+         pname = "ghc-mod";
+         version = "5.9.0.0";
+         src = ghc-mod-src;
+         isLibrary = true;
+         isExecutable = true;
+         enableSeparateDataOutput = true;
+         setupHaskellDepends = [
+           base Cabal cabal-doctest containers directory filepath process
+           template-haskell transformers
+         ];
+         libraryHaskellDepends = [
+           base binary bytestring cabal-helper containers deepseq directory
+           djinn-ghc extra fclabels filepath ghc ghc-boot ghc-mod-core
+           ghc-paths ghc-syb-utils haskell-src-exts hlint monad-control
+           monad-journal mtl old-time optparse-applicative pipes process safe
+           semigroups split syb template-haskell temporary text time
+           transformers transformers-base
+         ];
+         executableHaskellDepends = [
+           base binary deepseq directory fclabels filepath ghc ghc-mod-core
+           monad-control mtl old-time optparse-applicative process semigroups
+           split time
+         ];
+         testHaskellDepends = [
+           base cabal-helper containers directory doctest fclabels filepath
+           ghc ghc-boot ghc-mod-core hspec monad-journal mtl process split
+           temporary transformers
+         ];
+         testToolDepends = [ shelltest ];
+         # Doesn't work with our doctest
+         doCheck = false;
+         benchmarkHaskellDepends = [
+           base criterion directory filepath ghc-mod-core temporary
+         ];
+         homepage = "https://github.com/DanielG/ghc-mod";
+         description = "Happy Haskell Hacking";
+         license = stdenv.lib.licenses.agpl3;
+       }) { shelltest = null; inherit cabal-helper; };
+    HaRe_hie = callPackage
+      ({ mkDerivation, attoparsec, base, base-prelude, Cabal, cabal-helper
+       , case-insensitive, containers, conversion
+       , conversion-case-insensitive, conversion-text, Diff, directory
+       , filepath, foldl, ghc, ghc-exactprint, ghc-mod-core, ghc-syb-utils
+       , gitrev, hslogger, hspec, HUnit, monad-control, mtl
+       , optparse-applicative, optparse-simple, parsec, stdenv
+       , Strafunski-StrategyLib, syb, syz, turtle
+       }:
+       mkDerivation {
+         pname = "HaRe";
+         version = "0.8.4.1";
+         src = HaRe-src;
+         isLibrary = true;
+         isExecutable = true;
+         enableSeparateDataOutput = true;
+         libraryHaskellDepends = [
+           base cabal-helper containers directory filepath ghc ghc-exactprint
+           ghc-mod-core ghc-syb-utils hslogger monad-control mtl
+           Strafunski-StrategyLib syb syz
+         ];
+         executableHaskellDepends = [
+           base Cabal ghc-mod-core gitrev mtl optparse-applicative
+           optparse-simple
+         ];
+         testHaskellDepends = [
+           attoparsec base base-prelude cabal-helper case-insensitive
+           containers conversion conversion-case-insensitive conversion-text
+           Diff directory filepath foldl ghc ghc-exactprint ghc-mod-core
+           ghc-syb-utils hslogger hspec HUnit monad-control mtl parsec
+           Strafunski-StrategyLib syb syz turtle
+         ];
+         # Test directory doesn't exist
+         doCheck = false;
+         homepage = "https://github.com/RefactoringTools/HaRe/wiki";
+         description = "the Haskell Refactorer";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit cabal-helper; };
+    ### hie packages
+    haskell-ide-engine = callPackage
+      ({ mkDerivation, aeson, async, base, bytestring, Cabal, cabal-install
+       , containers, data-default, Diff, directory, either, ekg, filepath, ghc
+       , ghc-mod-core, gitrev, haskell-lsp, hie-apply-refact, hie-base
+       , hie-brittany, hie-build-plugin, hie-eg-plugin-async
+       , hie-example-plugin2, hie-ghc-mod, hie-ghc-tree, hie-haddock
+       , hie-hare, hie-hoogle, hie-plugin-api, hoogle, hslogger, hspec
+       , lens, mtl, optparse-simple, QuickCheck, quickcheck-instances
+       , sorted-list, stm, text, time, transformers
+       , unordered-containers, vector, vinyl, yaml, yi-rope
+       }:
+       mkDerivation {
+         pname = "haskell-ide-engine";
+         version = "0.1.0.0";
+         inherit src;
+         isLibrary = true;
+         isExecutable = true;
+         libraryHaskellDepends = [
+           aeson async base bytestring Cabal containers data-default directory
+           either filepath ghc ghc-mod-core gitrev haskell-lsp
+           hie-apply-refact hie-base hie-brittany hie-ghc-mod hie-haddock
+           hie-hare hie-hoogle hie-plugin-api hslogger lens mtl
+           optparse-simple sorted-list stm text transformers
+           unordered-containers vector yi-rope
+         ];
+         executableHaskellDepends = [
+           base Cabal containers directory ekg ghc-mod-core gitrev haskell-lsp
+           hie-apply-refact hie-build-plugin hie-eg-plugin-async
+           hie-example-plugin2 hie-ghc-mod hie-ghc-tree hie-hare hie-hoogle
+           hie-plugin-api hslogger optparse-simple stm text time transformers
+           unordered-containers vinyl
+         ];
+         testHaskellDepends = [
+           aeson base containers Diff directory filepath ghc-mod-core
+           haskell-lsp hie-apply-refact hie-base hie-eg-plugin-async
+           hie-example-plugin2 hie-ghc-mod hie-ghc-tree hie-hare hie-hoogle
+           hie-plugin-api hoogle hslogger hspec QuickCheck
+           quickcheck-instances stm text transformers unordered-containers
+           vector vinyl yaml
+         ];
+         preCheck = "export HOME=$NIX_BUILD_TOP/home; mkdir $HOME";
+         # https://github.com/haskell/haskell-ide-engine/issues/425
+         # The disabled tests do work in a local nix-shell with cabal available.
+         patches = [ ./patches/hie-testsuite.patch ];
+         homepage = "http://github.com/githubuser/haskell-ide-engine#readme";
+         description = "Provide a common engine to power any Haskell IDE";
+         license = stdenv.lib.licenses.bsd3;
+      }) {};
+    hie-apply-refact = callPackage
+      ({ mkDerivation, aeson, apply-refact, base, either, extra, ghc-mod
+       , ghc-mod-core, haskell-src-exts, hie-base, hie-plugin-api, hlint
+       , text, transformers
+       }:
+       mkDerivation {
+         pname = "hie-apply-refact";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-apply-refact";
+         libraryHaskellDepends = [
+           aeson apply-refact base either extra ghc-mod ghc-mod-core
+           haskell-src-exts hie-base hie-plugin-api hlint text transformers
+         ];
+         description = "Haskell IDE Apply Refact plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-mod; };
+    hie-base = callPackage
+      ({ mkDerivation, aeson, base, haskell-lsp, text }:
+       mkDerivation {
+         pname = "hie-base";
+         version = "0.1.0.0";
+         inherit src;
+         preUnpack = "sourceRoot=source/hie-base";
+         libraryHaskellDepends = [ aeson base haskell-lsp text ];
+         description = "Haskell IDE API base types";
+         license = stdenv.lib.licenses.bsd3;
+       }) {};
+    hie-brittany = callPackage
+      ({ mkDerivation, aeson, base, brittany, ghc-mod, ghc-mod-core
+       , haskell-lsp, hie-plugin-api, lens, text
+       }:
+       mkDerivation {
+         pname = "hie-brittany";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-brittany";
+         libraryHaskellDepends = [
+           aeson base brittany ghc-mod ghc-mod-core haskell-lsp hie-plugin-api
+           lens text
+         ];
+         description = "Haskell IDE Hoogle plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-mod; };
+    hie-build-plugin = callPackage
+      ({ mkDerivation, aeson, base, bytestring, Cabal, cabal-helper
+       , containers, directory, filepath, haskell-lsp, hie-plugin-api
+       , process, stm, text, transformers, yaml
+       }:
+       mkDerivation {
+         pname = "hie-build-plugin";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-build-plugin";
+         libraryHaskellDepends = [
+           aeson base bytestring Cabal cabal-helper containers directory
+           filepath haskell-lsp hie-plugin-api process stm text transformers
+           yaml
+         ];
+         description = "Haskell IDE build plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit cabal-helper; };
+    hie-eg-plugin-async = callPackage
+      ({ mkDerivation, base, ghc-mod-core, hie-plugin-api, stm
+       , text
+       }:
+       mkDerivation {
+         pname = "hie-eg-plugin-async";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-eg-plugin-async";
+         libraryHaskellDepends = [
+           base ghc-mod-core hie-plugin-api stm text
+         ];
+         description = "Haskell IDE example plugin, using async processes";
+         license = stdenv.lib.licenses.bsd3;
+       }) {};
+    hie-example-plugin2 = callPackage
+      ({ mkDerivation, base, hie-plugin-api, text }:
+       mkDerivation {
+         pname = "hie-example-plugin2";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-example-plugin2";
+         libraryHaskellDepends = [ base hie-plugin-api text ];
+         description = "Haskell IDE example plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) {};
+    hie-ghc-mod = callPackage
+      ({ mkDerivation, aeson, base, containers, ghc, ghc-mod, ghc-mod-core
+       , hie-base, hie-plugin-api, text, transformers
+       }:
+       mkDerivation {
+         pname = "hie-ghc-mod";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-ghc-mod";
+         libraryHaskellDepends = [
+           aeson base containers ghc ghc-mod ghc-mod-core hie-base
+           hie-plugin-api text transformers
+         ];
+         description = "Haskell IDE ghc-mod plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-mod; };
+    hie-ghc-tree = callPackage
+      ({ mkDerivation, aeson, base, ghc-dump-tree, ghc-mod, ghc-mod-core
+       , hie-base, hie-plugin-api, text
+       }:
+       mkDerivation {
+         pname = "hie-ghc-tree";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-ghc-tree";
+         libraryHaskellDepends = [
+           aeson base ghc-dump-tree ghc-mod ghc-mod-core hie-base
+           hie-plugin-api text
+         ];
+         description = "Haskell IDE GHC Tree plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-dump-tree ghc-mod; };
+    hie-haddock = callPackage
+      ({ mkDerivation, aeson, base, containers, directory, either
+       , filepath, ghc, ghc-exactprint, ghc-mod, ghc-mod-core, haddock-api
+       , haddock-library, HaRe, haskell-lsp, hie-base, hie-ghc-mod
+       , hie-hare, hie-plugin-api, lens, monad-control, mtl, text
+       , transformers
+       }:
+       mkDerivation {
+         pname = "hie-haddock";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-haddock";
+         libraryHaskellDepends = [
+           aeson base containers directory either filepath ghc ghc-exactprint
+           ghc-mod ghc-mod-core haddock-api haddock-library HaRe haskell-lsp
+           hie-base hie-ghc-mod hie-hare hie-plugin-api lens monad-control mtl
+           text transformers
+         ];
+         description = "Haskell IDE Haddock plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit haddock-library HaRe ghc-mod; };
+    hie-hare = callPackage
+      ({ mkDerivation, aeson, base, containers, Diff, either, ghc
+       , ghc-exactprint, ghc-mod, ghc-mod-core, HaRe, haskell-lsp
+       , hie-base, hie-ghc-mod, hie-plugin-api, lens, monad-control, mtl
+       , text, transformers
+       }:
+       mkDerivation {
+         pname = "hie-hare";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-hare";
+         libraryHaskellDepends = [
+           aeson base containers Diff either ghc ghc-exactprint ghc-mod
+           ghc-mod-core HaRe haskell-lsp hie-base hie-ghc-mod hie-plugin-api
+           lens monad-control mtl text transformers
+         ];
+         description = "Haskell IDE HaRe plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-mod HaRe; };
+    hie-hoogle = callPackage
+      ({ mkDerivation, aeson, base, directory, filepath, ghc-mod
+       , ghc-mod-core, hie-plugin-api, hoogle, tagsoup, text
+       }:
+       mkDerivation {
+         pname = "hie-hoogle";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-hoogle";
+         libraryHaskellDepends = [
+           aeson base directory filepath ghc-mod ghc-mod-core hie-plugin-api
+           hoogle tagsoup text
+         ];
+         description = "Haskell IDE Hoogle plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-mod; };
+    hie-plugin-api = callPackage
+      ({ mkDerivation, aeson, base, containers, Diff, directory, either
+       , filepath, fingertree, ghc, ghc-mod-core, haskell-lsp, hie-base
+       , hslogger, lifted-base, monad-control, mtl, stdenv, stm, syb, text
+       , time, transformers, unordered-containers
+       }:
+       mkDerivation {
+         pname = "hie-plugin-api";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-plugin-api";
+         libraryHaskellDepends = [
+           aeson base containers Diff directory either filepath fingertree ghc
+           ghc-mod-core haskell-lsp hie-base hslogger lifted-base
+           monad-control mtl stm syb text time transformers
+           unordered-containers
+         ];
+         description = "Haskell IDE API for plugin communication";
+         license = stdenv.lib.licenses.bsd3;
+       }) {};
+  }
diff --git a/pkgs/development/haskell-modules/initial-packages.nix b/pkgs/development/haskell-modules/initial-packages.nix
new file mode 100644
index 000000000000..8e8712d90967
--- /dev/null
+++ b/pkgs/development/haskell-modules/initial-packages.nix
@@ -0,0 +1,2 @@
+args@{ pkgs, stdenv, callPackage }: self:
+   (import ./hie-packages.nix args self) // (import ./hackage-packages.nix args self)
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index 96520dce2b2d..6a724130d254 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -147,4 +147,84 @@ rec {
   overrideSrc = drv: { src, version ? drv.version }:
     overrideCabal drv (_: { inherit src version; editedCabalFile = null; });
 
+  # Extract the haskell build inputs of a haskell package.
+  # This is useful to build environments for developing on that
+  # package.
+  getHaskellBuildInputs = p:
+    (p.override { mkDerivation = extractBuildInputs p.compiler;
+                }).haskellBuildInputs;
+
+  ghcInfo = ghc:
+    rec { isCross = (ghc.cross or null) != null;
+          isGhcjs = ghc.isGhcjs or false;
+          nativeGhc = if isCross || isGhcjs
+                        then ghc.bootPkgs.ghc
+                        else ghc;
+        };
+
+  ### mkDerivation helpers
+  # These allow external users of a haskell package to extract
+  # information about how it is built in the same way that the
+  # generic haskell builder does, by reusing the same functions.
+  # Each function here has the same interface as mkDerivation and thus
+  # can be called for a given package simply by overriding the
+  # mkDerivation argument it used. See getHaskellBuildInputs above for
+  # an example of this.
+
+  # Some information about which phases should be run.
+  controlPhases = ghc: let inherit (ghcInfo ghc) isCross; in
+                  { doCheck ? !isCross && (lib.versionOlder "7.4" ghc.version)
+                  , doBenchmark ? false
+                  , ...
+                  }: { inherit doCheck doBenchmark; };
+
+  # Divide the build inputs of the package into useful sets.
+  extractBuildInputs = ghc:
+    { setupHaskellDepends ? [], extraLibraries ? []
+    , librarySystemDepends ? [], executableSystemDepends ? []
+    , pkgconfigDepends ? [], libraryPkgconfigDepends ? []
+    , executablePkgconfigDepends ? [], testPkgconfigDepends ? []
+    , benchmarkPkgconfigDepends ? [], testDepends ? []
+    , testHaskellDepends ? [], testSystemDepends ? []
+    , testToolDepends ? [], benchmarkDepends ? []
+    , benchmarkHaskellDepends ? [], benchmarkSystemDepends ? []
+    , benchmarkToolDepends ? [], buildDepends ? []
+    , libraryHaskellDepends ? [], executableHaskellDepends ? []
+    , ...
+    }@args:
+    let inherit (ghcInfo ghc) isGhcjs nativeGhc;
+        inherit (controlPhases ghc args) doCheck doBenchmark;
+        isHaskellPkg = x: x ? isHaskellLibrary;
+        allPkgconfigDepends =
+          pkgconfigDepends ++ libraryPkgconfigDepends ++
+          executablePkgconfigDepends ++
+          lib.optionals doCheck testPkgconfigDepends ++
+          lib.optionals doBenchmark benchmarkPkgconfigDepends;
+        otherBuildInputs =
+          setupHaskellDepends ++ extraLibraries ++
+          librarySystemDepends ++ executableSystemDepends ++
+          allPkgconfigDepends ++
+          lib.optionals doCheck ( testDepends ++ testHaskellDepends ++
+                                  testSystemDepends ++ testToolDepends
+                                ) ++
+          # ghcjs's hsc2hs calls out to the native hsc2hs
+          lib.optional isGhcjs nativeGhc ++
+          lib.optionals doBenchmark ( benchmarkDepends ++
+                                      benchmarkHaskellDepends ++
+                                      benchmarkSystemDepends ++
+                                      benchmarkToolDepends
+                                    );
+        propagatedBuildInputs =
+          buildDepends ++ libraryHaskellDepends ++
+          executableHaskellDepends;
+        allBuildInputs = propagatedBuildInputs ++ otherBuildInputs;
+        isHaskellPartition =
+          lib.partition isHaskellPkg allBuildInputs;
+    in
+      { haskellBuildInputs = isHaskellPartition.right;
+        systemBuildInputs = isHaskellPartition.wrong;
+        inherit propagatedBuildInputs otherBuildInputs
+          allPkgconfigDepends;
+      };
+
 }
diff --git a/pkgs/development/haskell-modules/patches/hie-testsuite.patch b/pkgs/development/haskell-modules/patches/hie-testsuite.patch
new file mode 100644
index 000000000000..86cac15c2464
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/hie-testsuite.patch
@@ -0,0 +1,40 @@
+diff --git a/test/HaRePluginSpec.hs b/test/HaRePluginSpec.hs
+index 039c094..d0d1fa4 100644
+--- a/test/HaRePluginSpec.hs
++++ b/test/HaRePluginSpec.hs
+@@ -326,35 +326,6 @@ hareSpec = do
+                               $ List [TextEdit (Range (Position 4 0) (Position 8 12))
+                                        "parseStr = char '\"' *> (many1 (noneOf \"\\\"\")) <* char '\"'"])
+           Nothing)
+-    it "finds definition across components" $ do
+-      let u = filePathToUri "./app/Main.hs"
+-      let lreq = setTypecheckedModule u
+-      let req = findDef u (toPos (7,8))
+-      r <- dispatchRequestPGoto $ lreq >> req
+-      r `shouldBe` IdeResponseOk [Location (filePathToUri $ cwd </> "test/testdata/gototest/src/Lib.hs")
+-                                           (Range (toPos (6,1)) (toPos (6,9)))]
+-      let req2 = findDef u (toPos (7,20))
+-      r2 <- dispatchRequestPGoto $ lreq >> req2
+-      r2 `shouldBe` IdeResponseOk [Location (filePathToUri $ cwd </> "test/testdata/gototest/src/Lib2.hs")
+-                                            (Range (toPos (5,1)) (toPos (5,2)))]
+-    it "finds definition in the same component" $ do
+-      let u = filePathToUri "./src/Lib2.hs"
+-      let lreq = setTypecheckedModule u
+-      let req = findDef u (toPos (6,5))
+-      r <- dispatchRequestPGoto $ lreq >> req
+-      r `shouldBe` IdeResponseOk [Location (filePathToUri $ cwd </> "test/testdata/gototest/src/Lib.hs")
+-                                           (Range (toPos (6,1)) (toPos (6,9)))]
+-    it "finds local definitions" $ do
+-      let u = filePathToUri "./src/Lib2.hs"
+-      let lreq = setTypecheckedModule u
+-      let req = findDef u (toPos (7,11))
+-      r <- dispatchRequestPGoto $ lreq >> req
+-      r `shouldBe` IdeResponseOk [Location (filePathToUri $ cwd </> "test/testdata/gototest/src/Lib2.hs")
+-                                           (Range (toPos (10,9)) (toPos (10,10)))]
+-      let req2 = findDef u (toPos (10,13))
+-      r2 <- dispatchRequestPGoto $ lreq >> req2
+-      r2 `shouldBe` IdeResponseOk [Location (filePathToUri $ cwd </> "test/testdata/gototest/src/Lib2.hs")
+-                                            (Range (toPos (9,9)) (toPos (9,10)))]
+ 
+ 
+     -- ---------------------------------
diff --git a/pkgs/development/libraries/fastpbkdf2/default.nix b/pkgs/development/libraries/fastpbkdf2/default.nix
new file mode 100644
index 000000000000..e781e2aab838
--- /dev/null
+++ b/pkgs/development/libraries/fastpbkdf2/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, openssl }:
+
+stdenv.mkDerivation {
+  name = "fastpbkdf2-1.0.0";
+  
+  src = fetchFromGitHub {
+    owner = "ctz";
+    repo = "fastpbkdf2";
+    rev = "v1.0.0";
+    sha256 = "09ax0h4ik3vhvp3s98lic93l3g9f4v1jkr5k6z4g1lvm7s3lrha2";
+  };
+  
+  buildInputs = [ openssl ];
+
+  preBuild = ''
+    makeFlagsArray=(CFLAGS="-std=c99 -O3 -g")
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{lib,include/fastpbkdf2}
+    cp *.a $out/lib
+    cp fastpbkdf2.h $out/include/fastpbkdf2
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A fast PBKDF2-HMAC-{SHA1,SHA256,SHA512} implementation in C";
+    homepage = https://github.com/ctz/fastpbkdf2;
+    license = licenses.cc0;
+    maintainers = with maintainers; [ ledif ];
+  };
+}
diff --git a/pkgs/development/libraries/libcollectdclient/default.nix b/pkgs/development/libraries/libcollectdclient/default.nix
index f6d9d7ca69b8..e4e61c942836 100644
--- a/pkgs/development/libraries/libcollectdclient/default.nix
+++ b/pkgs/development/libraries/libcollectdclient/default.nix
@@ -5,14 +5,17 @@ overrideDerivation collectd (oldAttrs: {
   name = "libcollectdclient-${collectd.version}";
   buildInputs = [ ];
 
-  configureFlags = [
-    "--without-daemon"
+  NIX_CFLAGS_COMPILE = oldAttrs.NIX_CFLAGS_COMPILE ++ [
+    "-Wno-error=unused-function"
   ];
 
-  makeFlags = [
-    "-C src/libcollectdclient/"
+  configureFlags = oldAttrs.configureFlags ++ [
+    "--disable-daemon"
+    "--disable-all-plugins"
   ];
 
+  postInstall = "rm -rf $out/{bin,etc,sbin,share}";
+
 }) // {
   meta = with stdenv.lib; {
     description = "C Library for collectd, a daemon which collects system performance statistics periodically";
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index 82f51bffa8e8..42eaf71942e7 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -12,6 +12,14 @@ let blas64_ = blas64; in
 let
   # To add support for a new platform, add an element to this set.
   configs = {
+    armv6l-linux = {
+      BINARY = "32";
+      TARGET = "ARMV6";
+      DYNAMIC_ARCH = "0";
+      CC = "gcc";
+      USE_OPENMP = "1";
+    };
+
     armv7l-linux = {
       BINARY = "32";
       TARGET = "ARMV7";
diff --git a/pkgs/development/libraries/webkitgtk/2.18.nix b/pkgs/development/libraries/webkitgtk/2.18.nix
index 946f032f0f7c..1899234fc560 100644
--- a/pkgs/development/libraries/webkitgtk/2.18.nix
+++ b/pkgs/development/libraries/webkitgtk/2.18.nix
@@ -15,7 +15,7 @@ assert stdenv.isDarwin -> !enableGtk2Plugins;
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "webkitgtk-${version}";
-  version = "2.18.3";
+  version = "2.18.4";
 
   meta = {
     description = "Web content rendering engine, GTK+ port";
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://webkitgtk.org/releases/${name}.tar.xz";
-    sha256 = "17lgn7qwrwqxl1lgmq5icvzmna6aymx4c7al47rp0vvac7hj0m71";
+    sha256 = "1f1j0r996l20cgkvbwpizn7d4yp58cy334b1pvn4kfb5c2dbpdl7";
   };
 
   # see if we can clean this up....
diff --git a/pkgs/development/python-modules/django/2_0.nix b/pkgs/development/python-modules/django/2_0.nix
new file mode 100644
index 000000000000..990460ade55a
--- /dev/null
+++ b/pkgs/development/python-modules/django/2_0.nix
@@ -0,0 +1,44 @@
+{ stdenv, buildPythonPackage, fetchPypi, substituteAll,
+  isPy3k,
+  geos, gdal, pytz,
+  withGdal ? false
+}:
+
+buildPythonPackage rec {
+  pname = "Django";
+  name = "${pname}-${version}";
+  version = "2.0";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0iqzqd1jrc4gg5qygxxzbddc8xzk85j0gikk5g9wpy3z98fqa54n";
+  };
+
+  patches = stdenv.lib.optionals withGdal [
+    (substituteAll {
+      src = ./1.10-gis-libs.template.patch;
+      geos = geos;
+      gdal = gdal;
+      extension = stdenv.hostPlatform.extensions.sharedLibrary;
+    })
+  ];
+
+  # patch only $out/bin to avoid problems with starter templates (see #3134)
+  postFixup = ''
+    wrapPythonProgramsIn $out/bin "$out $pythonPath"
+  '';
+
+  propagatedBuildInputs = [ pytz ];
+
+  # too complicated to setup
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A high-level Python Web framework";
+    homepage = https://www.djangoproject.com/;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ georgewhewell ];
+  };
+}
diff --git a/pkgs/development/python-modules/libusb1/default.nix b/pkgs/development/python-modules/libusb1/default.nix
new file mode 100644
index 000000000000..adf1bc236183
--- /dev/null
+++ b/pkgs/development/python-modules/libusb1/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, buildPythonPackage, fetchPypi, libusb1 }:
+
+buildPythonPackage rec {
+  pname = "libusb1";
+  version = "1.6.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "03b7xrz8vqg8w0za5r503jhcmbd1ls5610jcja1rqz833nf0v4wc";
+  };
+
+  postPatch = lib.optionalString stdenv.isLinux ''
+    substituteInPlace usb1/libusb1.py --replace \
+      "ctypes.util.find_library(base_name)" \
+      "'${libusb1}/lib/libusb${stdenv.hostPlatform.extensions.sharedLibrary}'"
+  '';
+
+  buildInputs = [ libusb1 ];
+
+  meta = with stdenv.lib; {
+    homepage    = https://github.com/vpelletier/python-libusb1;
+    description = "Python ctype-based wrapper around libusb1";
+    license     = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ rnhmjoj ];
+  };
+}
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
new file mode 100644
index 000000000000..e6fc5888feaf
--- /dev/null
+++ b/pkgs/development/python-modules/numexpr/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "numexpr";
+  version = "2.6.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f0bef9a3a5407fb8d6344cf91b658bef7c13ec8a8eb13f423822d9d2ca5af6ce";
+  };
+
+  propagatedBuildInputs = [ numpy ];
+
+  # Run the test suite.
+  # It requires the build path to be in the python search path.
+  checkPhase = ''
+    ${python}/bin/${python.executable} <<EOF
+    import sysconfig
+    import sys
+    import os
+    f = "lib.{platform}-{version[0]}.{version[1]}"
+    lib = f.format(platform=sysconfig.get_platform(),
+                   version=sys.version_info)
+    build = os.path.join(os.getcwd(), 'build', lib)
+    sys.path.insert(0, build)
+    import numexpr
+    r = numexpr.test()
+    if not r.wasSuccessful():
+        sys.exit(1)
+    EOF
+  '';
+
+  meta = {
+    description = "Fast numerical array expression evaluator for NumPy";
+    homepage = "https://github.com/pydata/numexpr";
+    license = lib.licenses.mit;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/pelican/default.nix b/pkgs/development/python-modules/pelican/default.nix
index e48623ef5b3d..c13be981f095 100644
--- a/pkgs/development/python-modules/pelican/default.nix
+++ b/pkgs/development/python-modules/pelican/default.nix
@@ -25,7 +25,10 @@ buildPythonPackage rec {
 
   buildInputs = [
     glibcLocales
-    pandoc
+    # Note: Pelican has to adapt to a changed CLI of pandoc before enabling this
+    # again. Compare https://github.com/getpelican/pelican/pull/2252.
+    # Version 3.7.1 is incompatible with our current pandoc version.
+    # pandoc
     git
     mock
     nose
diff --git a/pkgs/development/python-modules/protocol/default.nix b/pkgs/development/python-modules/protocol/default.nix
new file mode 100644
index 000000000000..f8ff177437c3
--- /dev/null
+++ b/pkgs/development/python-modules/protocol/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub }:
+
+buildPythonPackage rec {
+  pname = "protocol";
+  version = "20171226";
+
+  src = fetchFromGitHub {
+    owner = "luismartingarcia";
+    repo = "protocol";
+    rev = "d450da7d8a58595d8ef82f1d199a80411029fc7d";
+    sha256 = "1g31s2xx0bw8ak5ag1c6mv0p0b8bj5dp3lkk9mxaf2ndj1m1qdkw";
+  };
+
+  meta = with stdenv.lib; {
+    description = "An ASCII Header Generator for Network Protocols";
+    homepage = https://github.com/luismartingarcia/protocol;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ teto ];
+  };
+}
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index c7338212bdb9..49f6aeb72799 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -13,14 +13,14 @@ let
   inherit (stdenv.lib) optional;
 in
 stdenv.mkDerivation rec {
-  version = "2.1.0";
+  version = "2.2.0";
   name = "radare2-${version}";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
     rev = version;
-    sha256 = "1mny0iw2dgszvvx0yb0z5vlygz4f3jblzi9byybczm8wdqs1vhb1";
+    sha256 = "0rd1dfgwdpn3x1pzi67sw040vxywbg5h6yw0mj317p0p1cvlyihl";
   };
 
   postPatch = let
@@ -36,6 +36,8 @@ stdenv.mkDerivation rec {
 
   '';
 
+  enableParallelBuilding = true;
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ readline libusb libewf perl zlib openssl]
     ++ optional useX11 [gtkdialog vte gtk2]
diff --git a/pkgs/development/tools/haskell/intero-nix-shim/default.nix b/pkgs/development/tools/haskell/intero-nix-shim/default.nix
index a7ea5b9d5770..379d6b7e472d 100644
--- a/pkgs/development/tools/haskell/intero-nix-shim/default.nix
+++ b/pkgs/development/tools/haskell/intero-nix-shim/default.nix
@@ -24,4 +24,5 @@ mkDerivation {
   '';
   homepage = https://github.com/michalrus/intero-nix-shim;
   license = stdenv.lib.licenses.asl20;
+  broken = true; # https://hydra.nixos.org/build/66703340
 }
diff --git a/pkgs/development/tools/haskell/vaultenv/default.nix b/pkgs/development/tools/haskell/vaultenv/default.nix
index 9b5a19700ff6..9bd818255c78 100644
--- a/pkgs/development/tools/haskell/vaultenv/default.nix
+++ b/pkgs/development/tools/haskell/vaultenv/default.nix
@@ -23,4 +23,5 @@ mkDerivation rec {
   description = "Runs processes with secrets from HashiCorp Vault";
   license = stdenv.lib.licenses.bsd3;
   maintainers = with stdenv.lib.maintainers; [ lnl7 ];
+  broken = true;  # https://hydra.nixos.org/build/66706385
 }
diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix
index 698d2924bfec..ff2c471e137d 100644
--- a/pkgs/games/dwarf-fortress/dfhack/default.nix
+++ b/pkgs/games/dwarf-fortress/dfhack/default.nix
@@ -4,13 +4,13 @@
 }:
 
 let
-  dfVersion = "0.44.02";
-  version = "${dfVersion}-alpha1";
+  dfVersion = "0.44.03";
+  version = "${dfVersion}-beta1";
   rev = "refs/tags/${version}";
-  sha256 = "1cdp2jwhxl54ym92jm58xyrz942ajp6idl31qrmzcqzawp2fl620";
+  sha256 = "1gyaq6krm0cvccyw7rdy6afh9vy983dl86d0wnpr25dl3jky27xw";
 
   # revision of library/xml submodule
-  xmlRev = "e2e256066cc4a5c427172d9d27db25b7823e4e86";
+  xmlRev = "7e23a328fd81e3d6db794c0c18b8b2e7bd235649";
 
   arch =
     if stdenv.system == "x86_64-linux" then "64"
diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
index c330471f430c..affb364b26f2 100644
--- a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
+++ b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "dwarf-therapist-original-${version}";
-  version = "39.0.0";
+  version = "39.1.2";
 
   src = fetchFromGitHub {
     owner = "Dwarf-Therapist";
     repo = "Dwarf-Therapist";
-    rev = "8ae293a6b45333bbf30644d11d1987651e53a307";
-    sha256 = "0p1127agr2a97gp5chgdkaa0wf02hqgx82yid1cvqpyj8amal6yg";
+    rev = "v${version}";
+    sha256 = "0j5pldc184xv1mhdrhsmp23g58cy9a2bba27djigkh2sd5rksgji";
   };
 
   outputs = [ "out" "layouts" ];
diff --git a/pkgs/games/dwarf-fortress/game.nix b/pkgs/games/dwarf-fortress/game.nix
index 54666e86cc14..4c8712fd40ec 100644
--- a/pkgs/games/dwarf-fortress/game.nix
+++ b/pkgs/games/dwarf-fortress/game.nix
@@ -4,7 +4,7 @@
 
 let
   baseVersion = "44";
-  patchVersion = "02";
+  patchVersion = "03";
   dfVersion = "0.${baseVersion}.${patchVersion}";
   libpath = lib.makeLibraryPath [ stdenv.cc.cc stdenv.glibc dwarf-fortress-unfuck SDL ];
   platform =
@@ -12,8 +12,8 @@ let
     else if stdenv.system == "i686-linux" then "linux32"
     else throw "Unsupported platform";
   sha256 =
-    if stdenv.system == "x86_64-linux" then "1w2b6sxjxb5cvmv15fxmzfkxvby4kdcf4kj4w35687filyg0skah"
-    else if stdenv.system == "i686-linux" then "1yqzkgyl1adwysqskc2v4wlp1nkgxc7w6m37nwllghgwfzaiqwnh"
+    if stdenv.system == "x86_64-linux" then "0bgrkwcdghwch96krqdwq8lcjwr6svw0xl53d2jysyszfy7nfl88"
+    else if stdenv.system == "i686-linux" then "1mvnbkjvm68z2q7h81jrh70qy9458b1spv0m3nlc680fm19hpz40"
     else throw "Unsupported platform";
 
 in
diff --git a/pkgs/games/dwarf-fortress/soundsense.nix b/pkgs/games/dwarf-fortress/soundsense.nix
index 17448d87f407..8e1742663c77 100644
--- a/pkgs/games/dwarf-fortress/soundsense.nix
+++ b/pkgs/games/dwarf-fortress/soundsense.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   version = "2016-1_196";
-  dfVersion = "0.44.02";
+  dfVersion = "0.44.03";
   inherit soundPack;
   name = "soundsense-${version}";
   src = fetchzip {
diff --git a/pkgs/games/dwarf-fortress/themes/cla.nix b/pkgs/games/dwarf-fortress/themes/cla.nix
index 78ebd4307272..90e67eb41952 100644
--- a/pkgs/games/dwarf-fortress/themes/cla.nix
+++ b/pkgs/games/dwarf-fortress/themes/cla.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     cp -r data raw $out
   '';
 
-  passthru.dfVersion = "0.44.02";
+  passthru.dfVersion = "0.44.03";
 
   preferLocalBuild = true;
 
diff --git a/pkgs/games/dwarf-fortress/themes/phoebus.nix b/pkgs/games/dwarf-fortress/themes/phoebus.nix
index 57881686eaa9..97d2c2b20ef4 100644
--- a/pkgs/games/dwarf-fortress/themes/phoebus.nix
+++ b/pkgs/games/dwarf-fortress/themes/phoebus.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   name = "phoebus-theme-${version}";
-  version = "44.02a";
+  version = "44.03";
 
   src = fetchFromGitHub {
     owner = "DFgraphics";
     repo = "Phoebus";
     rev = version;
-    sha256 = "10qd8fbn75fvhkyxqljn4w52kbhfp9xh1ybanjzc57bz79sdzvfp";
+    sha256 = "0jpklikg2bf315m45kdkhd1n1plzb4jwzsg631gqfm9dwnrcs4w3";
   };
 
   installPhase = ''
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     cp -r data raw $out
   '';
 
-  passthru.dfVersion = "0.44.02";
+  passthru.dfVersion = "0.44.03";
 
   preferLocalBuild = true;
 
diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix
index 3b0df3ce28cf..1831b2b60620 100644
--- a/pkgs/games/dwarf-fortress/unfuck.nix
+++ b/pkgs/games/dwarf-fortress/unfuck.nix
@@ -3,7 +3,7 @@
 , ncurses, glib, gtk2, libsndfile, zlib
 }:
 
-let dfVersion = "0.44.02"; in
+let dfVersion = "0.44.03"; in
 
 stdenv.mkDerivation {
   name = "dwarf_fortress_unfuck-${dfVersion}";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "svenstaro";
     repo = "dwarf_fortress_unfuck";
     rev = dfVersion;
-    sha256 = "0gfchfqrzx0h59mdv01hik8q2a2yx170q578agfck0nv39yhi6i5";
+    sha256 = "0rd8d2ilhhks9kdi9j73bpyf8j56fhmmsj21yzdc0a4v2hzyxn2w";
   };
 
   cmakeFlags = [
diff --git a/pkgs/misc/drivers/steamcontroller/default.nix b/pkgs/misc/drivers/steamcontroller/default.nix
new file mode 100644
index 000000000000..d44c90d198a9
--- /dev/null
+++ b/pkgs/misc/drivers/steamcontroller/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, python3Packages, libusb1, linuxHeaders
+, GyroplotSupport ? false
+}:
+
+with python3Packages;
+
+buildPythonApplication rec {
+  name = "steamcontroller-${version}";
+  version = "2017-08-11";
+
+  src = fetchFromGitHub {
+    owner  = "ynsta";
+    repo   = "steamcontroller";
+    rev    = "80928ce237925e0d0d7a65a45b481435ba6b931e";
+    sha256 = "0lv9j2zv8fmkmc0x9r7fa8zac2xrwfczms35qz1nfa1hr84wniid";
+  };
+
+  postPatch = ''
+    substituteInPlace src/uinput.py --replace \
+      "/usr/include" "${linuxHeaders}/include"
+  '';
+
+  buildInputs = [ libusb1 ];
+  propagatedBuildInputs =
+    [ psutil python3Packages.libusb1 ]
+    ++ lib.optionals GyroplotSupport [ pyqtgraph pyside ];
+
+  meta = with stdenv.lib; {
+    description = "A standalone Steam controller driver";
+    homepage    = https://github.com/ynsta/steamcontroller;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ rnhmjoj ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix
index 64bb8b4e356d..82e2384cf0bd 100644
--- a/pkgs/misc/emulators/wine/base.nix
+++ b/pkgs/misc/emulators/wine/base.nix
@@ -92,7 +92,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) {
           ((map (links "share/wine/gecko") geckos)
         ++ (map (links "share/wine/mono")  monos))}
   '' + lib.optionalString supportFlags.gstreamerSupport ''
-    for i in wine wine64; do
+    for i in wine ; do
       if [ -e "$out/bin/$i" ]; then
         wrapProgram "$out/bin/$i" \
           --argv0 "" \
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index 39bd26714e78..cb0561f76550 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -1,4 +1,11 @@
 { pkgs ? import <nixpkgs> {} }:
+## we default to importing <nixpkgs> here, so that you can use
+## a simple shell command to insert new sha256's into this file
+## e.g. with emacs C-u M-x shell-command
+##
+##     nix-prefetch-url sources.nix -A {stable{,.mono,.gecko64,.gecko32}, unstable, staging, winetricks}
+
+# here we wrap fetchurl and fetchFromGitHub, in order to be able to pass additional args around it
 let fetchurl = args@{url, sha256, ...}:
   pkgs.fetchurl { inherit url sha256; } // args;
     fetchFromGitHub = args@{owner, repo, rev, sha256, ...}:
@@ -6,9 +13,9 @@ let fetchurl = args@{url, sha256, ...}:
 in rec {
 
   stable = fetchurl rec {
-    version = "2.0.2";
+    version = "2.0.3";
     url = "https://dl.winehq.org/wine/source/2.0/wine-${version}.tar.xz";
-    sha256 = "16iwf48cfi39aqyy8131jz4x7lr551c9yc0mnks7g24j77sq867p";
+    sha256 = "0mmyc94r5drffir8zr8jx6iawhgfzjk96fj494aa18vhz1jcc4d8";
 
     ## see http://wiki.winehq.org/Gecko
     gecko32 = fetchurl rec {
diff --git a/pkgs/os-specific/linux/bbswitch/default.nix b/pkgs/os-specific/linux/bbswitch/default.nix
index eacddc715efa..ade9b8f750f2 100644
--- a/pkgs/os-specific/linux/bbswitch/default.nix
+++ b/pkgs/os-specific/linux/bbswitch/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, kernel, libelf }:
+{ stdenv, fetchurl, fetchpatch, kernel }:
 
 let
   baseName = "bbswitch";
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
     sha256 = "1lbr6pyyby4k9rn2ry5qc38kc738d0442jhhq57vmdjb6hxjya7m";
   }) ];
 
-  buildInputs = [ libelf ];
+  nativeBuildInputs = kernel.moduleBuildDependencies;
 
   hardeningDisable = [ "pic" ];
 
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index 355fbde62680..e1936495921d 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -49,6 +49,9 @@ let
   inherit (stdenv.lib)
     hasAttr getAttr optional optionalString optionalAttrs maintainers platforms;
 
+  # Dependencies that are required to build kernel modules
+  moduleBuildDependencies = stdenv.lib.optional (stdenv.lib.versionAtLeast version "4.14") libelf;
+
   installkernel = writeTextFile { name = "installkernel"; executable=true; text = ''
     #!${stdenv.shell} -e
     mkdir -p $4
@@ -85,7 +88,7 @@ let
         (isModular || (config.isDisabled "FIRMWARE_IN_KERNEL"));
     in (optionalAttrs isModular { outputs = [ "out" "dev" ]; }) // {
       passthru = {
-        inherit version modDirVersion config kernelPatches configfile;
+        inherit version modDirVersion config kernelPatches configfile moduleBuildDependencies;
       };
 
       inherit src;
diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix
index 74936a02ce7d..3b1b6f9863f8 100644
--- a/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -12,7 +12,7 @@
 }:
 
 { stdenv, callPackage, callPackage_i686, fetchurl, fetchpatch
-, kernel ? null, libelf, xorg, zlib, perl, nukeReferences
+, kernel ? null, xorg, zlib, perl, nukeReferences
 , # Whether to build the libraries only (i.e. not the kernel module or
   # nvidia-settings).  Used to support 32-bit binaries on 64-bit
   # Linux.
@@ -62,9 +62,7 @@ let
 
     libPath = makeLibraryPath [ xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib stdenv.cc.cc ];
 
-    nativeBuildInputs = [ perl nukeReferences ];
-
-    buildInputs = [ libelf ];
+    nativeBuildInputs = [ perl nukeReferences ] ++ kernel.moduleBuildDependencies;
 
     disallowedReferences = optional (!libsOnly) [ kernel.dev ];
 
diff --git a/pkgs/os-specific/linux/rtlwifi_new/default.nix b/pkgs/os-specific/linux/rtlwifi_new/default.nix
index 25548e0f962d..4bf3ef82978e 100644
--- a/pkgs/os-specific/linux/rtlwifi_new/default.nix
+++ b/pkgs/os-specific/linux/rtlwifi_new/default.nix
@@ -17,6 +17,8 @@ in stdenv.mkDerivation rec {
 
   hardeningDisable = [ "pic" "format" ];
 
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
   makeFlags = "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
 
   enableParallelBuilding = true;
diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix
index 387dc2b7c675..e0d1754dd749 100644
--- a/pkgs/os-specific/linux/spl/default.nix
+++ b/pkgs/os-specific/linux/spl/default.nix
@@ -1,21 +1,18 @@
 { fetchFromGitHub, stdenv, autoreconfHook, coreutils, gawk
-, configFile ? "all"
 
 # Kernel dependencies
-, kernel ? null
+, kernel
 }:
 
 with stdenv.lib;
 
 let
-  buildKernel = any (n: n == configFile) [ "kernel" "all" ];
-  buildUser = any (n: n == configFile) [ "user" "all" ];
   common = { version
     , sha256
     , rev ? "spl-${version}"
     , broken ? false
     } @ args : stdenv.mkDerivation rec {
-      name = "spl-${configFile}-${version}${optionalString buildKernel "-${kernel.version}"}";
+      name = "spl-${version}-${kernel.version}";
 
       src = fetchFromGitHub {
         owner = "zfsonlinux";
@@ -25,7 +22,7 @@ let
 
       patches = [ ./const.patch ./install_prefix.patch ];
 
-      nativeBuildInputs = [ autoreconfHook ];
+      nativeBuildInputs = [ autoreconfHook ] ++ kernel.moduleBuildDependencies;
 
       hardeningDisable = [ "pic" ];
 
@@ -37,8 +34,7 @@ let
       '';
 
       configureFlags = [
-        "--with-config=${configFile}"
-      ] ++ optionals buildKernel [
+        "--with-config=kernel"
         "--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
         "--with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
       ];
@@ -62,17 +58,16 @@ let
       };
   };
 in
-  assert any (n: n == configFile) [ "kernel" "user" "all" ];
-  assert buildKernel -> kernel != null;
+  assert kernel != null;
 {
     splStable = common {
-      version = "0.7.4";
-      sha256 = "0vmakqi3zm8ka5cglif45ll2m6ynq7r55mhk8d1rzjkgi191cddh";
+      version = "0.7.5";
+      sha256 = "0njb3274bc5pfr80pzj94sljq457pr71n50s0gsccbz8ghk28rlr";
     };
 
     splUnstable = common {
-      version = "2017-11-16";
-      rev = "ed19bccfb651843fa208232b3a2d3d22a4152bc8";
-      sha256 = "08ihjbf5fhcnhq9zavcwswg9djlbalbx1bil4rcv6i3d617wammb";
+      version = "2017-12-21";
+      rev = "c9821f1ccc647dfbd506f381b736c664d862d126";
+      sha256 = "08r6sa36jaj6n54ap18npm6w85v5yn3x8ljg792h37f49b8kir6c";
     };
 }
diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
index 18d473e21941..71d7e9e1b785 100644
--- a/pkgs/os-specific/linux/sysdig/default.nix
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cmake zlib luajit ncurses perl jsoncpp libb64 openssl curl jq gcc
-  ];
+  ] ++ optional (kernel != null) kernel.moduleBuildDependencies;
 
   hardeningDisable = [ "pic" ];
 
diff --git a/pkgs/os-specific/linux/tp_smapi/default.nix b/pkgs/os-specific/linux/tp_smapi/default.nix
index 4fc14a04eeab..c3adcc6cdba9 100644
--- a/pkgs/os-specific/linux/tp_smapi/default.nix
+++ b/pkgs/os-specific/linux/tp_smapi/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
     name = "tp-smapi-${version}";
   };
 
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
   hardeningDisable = [ "pic" ];
 
   makeFlags = [
diff --git a/pkgs/os-specific/linux/virtualbox/default.nix b/pkgs/os-specific/linux/virtualbox/default.nix
index 5bec71a10907..72d7690d2f8a 100644
--- a/pkgs/os-specific/linux/virtualbox/default.nix
+++ b/pkgs/os-specific/linux/virtualbox/default.nix
@@ -7,6 +7,8 @@ stdenv.mkDerivation {
     "fortify" "pic" "stackprotector"
   ];
 
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
   patches = [
     ./fix_kerndir.patch
     ./fix_kbuild.patch
diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix
index 509f8a948188..70811347be52 100644
--- a/pkgs/os-specific/linux/wireguard/default.nix
+++ b/pkgs/os-specific/linux/wireguard/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libmnl, libelf, kernel ? null }:
+{ stdenv, fetchurl, libmnl, kernel ? null }:
 
 # module requires Linux >= 3.10 https://www.wireguard.io/install/#kernel-requirements
 assert kernel != null -> stdenv.lib.versionAtLeast kernel.version "3.10";
@@ -37,7 +37,7 @@ let
 
     NIX_CFLAGS = ["-Wno-error=cpp"];
 
-    buildInputs = [ libelf ];
+    nativeBuildInputs = kernel.moduleBuildDependencies;
 
     buildPhase = "make module";
   };
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 5ede0a91b291..75e281281d33 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -38,7 +38,8 @@ let
 
       patches = extraPatches;
 
-      nativeBuildInputs = [ autoreconfHook nukeReferences ];
+      nativeBuildInputs = [ autoreconfHook nukeReferences ]
+         ++ optional buildKernel kernel.moduleBuildDependencies;
       buildInputs =
            optionals buildKernel [ spl ]
         ++ optionals buildUser [ zlib libuuid python attr ]
@@ -140,9 +141,9 @@ in {
     incompatibleKernelVersion = null;
 
     # this package should point to the latest release.
-    version = "0.7.4";
+    version = "0.7.5";
 
-    sha256 = "1djm97nlipn0fch1vcvpw94bnfvg9ylv9i2hp46dzaxhdh7bm265";
+    sha256 = "086g4xjx05sy4fwn5709sm46m2yv35wb915xfmqjvpry46245nig";
 
     extraPatches = [
       (fetchpatch {
@@ -159,10 +160,10 @@ in {
     incompatibleKernelVersion = null;
 
     # this package should point to a version / git revision compatible with the latest kernel release
-    version = "2017-11-16";
+    version = "2017-12-28";
 
-    rev = "d4a72f23863382bdf6d0ae33196f5b5decbc48fd";
-    sha256 = "0q2gkkj11hy8m8cjd70g99bs69ldxvc17ym0x1pgwvs4722hzpha";
+    rev = "390d679acdfa6a2498280a4dcd33b7600ace27ce";
+    sha256 = "09lh1cpsf87yl1sr6inam5av60cy5wv89x6a952vfxrs64ph2m6n";
     isUnstable = true;
 
     extraPatches = [
diff --git a/pkgs/servers/web-apps/wallabag/default.nix b/pkgs/servers/web-apps/wallabag/default.nix
index 215e9fade0aa..e6137a2db7c2 100644
--- a/pkgs/servers/web-apps/wallabag/default.nix
+++ b/pkgs/servers/web-apps/wallabag/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   name = "wallabag-${version}";
-  version = "2.2.3";
+  version = "2.3.1";
 
   # remember to rm -r var/cache/* after a rebuild or unexpected errors will occur
 
   src = fetchurl {
     url = "https://static.wallabag.org/releases/wallabag-release-${version}.tar.gz";
-    sha256 = "0myqarwny9p53g2gmwmg1mcn17jlx5ah0bri13panhf7ryvmrzhk";
+    sha256 = "1qk7jicni5g8acpjybrwnwf7zknk3b0mxiv5876lrsajcxdxwnf4";
   };
 
-  outputs = [ "out" "doc" ];
+  outputs = [ "out" ];
 
   patchPhase = ''
     rm Makefile # use the "shared hosting" package with bundled dependencies
@@ -22,8 +22,6 @@ stdenv.mkDerivation rec {
   ''; # exposes $WALLABAG_DATA
 
   installPhase = ''
-    mkdir -p $doc/share/doc
-    mv docs $doc/share/doc/wallabag
     mkdir $out/
     cp -R * $out/
   '';
diff --git a/pkgs/tools/compression/brotli/default.nix b/pkgs/tools/compression/brotli/default.nix
index bd33eb4d437a..86ba3ffe78f6 100644
--- a/pkgs/tools/compression/brotli/default.nix
+++ b/pkgs/tools/compression/brotli/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "brotli-${version}";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "brotli";
     rev = "v" + version;
-    sha256 = "1rqgp8xi1k4sjy9sngg1vw0v8q2mm46dhyya4d35n3k6yk7pk0qv";
+    sha256 = "1rpg16zpr7h6vs7qr6npmqhyw4w5nkp24iq70s4dryn77m0r4mcv";
   };
 
   buildInputs = [ cmake ];
diff --git a/pkgs/tools/package-management/home-manager/default.nix b/pkgs/tools/package-management/home-manager/default.nix
new file mode 100644
index 000000000000..8eb266a9e654
--- /dev/null
+++ b/pkgs/tools/package-management/home-manager/default.nix
@@ -0,0 +1,38 @@
+#Adapted from
+#https://github.com/rycee/home-manager/blob/9c1b3735b402346533449efc741f191d6ef578dd/home-manager/default.nix
+
+{ bash, coreutils, less, stdenv, makeWrapper, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+
+  name = "home-manager-${version}";
+  version = "2017-12-7";
+
+  src = fetchFromGitHub{
+    owner = "rycee";
+    repo = "home-manager";
+    rev = "0be32c9d42e3a8739263ae7886dc2448c833c19c";
+    sha256 = "06lmnzlf5fmiicbgai27ad9m3bj980xf8ifdpc5lzbsy77pfcfap";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  dontBuild = true;
+
+  installPhase = ''
+    install -v -D -m755 ${src}/home-manager/home-manager $out/bin/home-manager
+
+    substituteInPlace $out/bin/home-manager \
+      --subst-var-by bash "${bash}" \
+      --subst-var-by coreutils "${coreutils}" \
+      --subst-var-by less "${less}" \
+      --subst-var-by HOME_MANAGER_PATH '${src}'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A user environment configurator";
+    maintainers = with maintainers; [ rycee ];
+    platforms = platforms.linux;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/tools/system/collectd/default.nix b/pkgs/tools/system/collectd/default.nix
index 4c9ebc460819..e9ce2913a6cb 100644
--- a/pkgs/tools/system/collectd/default.nix
+++ b/pkgs/tools/system/collectd/default.nix
@@ -25,7 +25,7 @@
 , protobufc ? null
 , python ? null
 , rabbitmq-c ? null
-, riemann ? null
+, riemann_c_client ? null
 , rrdtool ? null
 , udev ? null
 , varnish ? null
@@ -33,18 +33,21 @@
 , net_snmp ? null
 , hiredis ? null
 , libmnl ? null
+, mosquitto ? null
+, rdkafka ? null
+, mongoc ? null
 }:
 stdenv.mkDerivation rec {
-  version = "5.7.2";
+  version = "5.8.0";
   name = "collectd-${version}";
 
   src = fetchurl {
     url = "http://collectd.org/files/${name}.tar.bz2";
-    sha256 = "14p5cc3ys3qfg71xzxfvmxdmz5l4brpbhlmw1fwdda392lia084x";
+    sha256 = "1j8mxgfq8039js2bscphd6cnriy35hk4jrxfjz5k6mghpdvg8vxh";
   };
 
-  # on 5.7.2: lvm2app.h:21:2: error: #warning "liblvm2app is deprecated, use D-Bus API instead." [-Werror=cpp]
-  NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
+  # on 5.8.0: lvm2app.h:21:2: error: #warning "liblvm2app is deprecated, use D-Bus API instead." [-Werror=cpp]
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=cpp" ];
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
@@ -52,8 +55,9 @@ stdenv.mkDerivation rec {
     cyrus_sasl libnotify gdk_pixbuf liboping libpcap libvirt
     libxml2 postgresql protobufc rrdtool
     varnish yajl jdk libtool python hiredis libmicrohttpd
-  ] ++ stdenv.lib.optional (mysql != null) mysql.connector-c
-  ++ stdenv.lib.optionals stdenv.isLinux [
+    riemann_c_client mosquitto rdkafka mongoc
+  ] ++ stdenv.lib.optionals (mysql != null) [ mysql.connector-c
+  ] ++ stdenv.lib.optionals stdenv.isLinux [
     iptables libatasmart libcredis libmodbus libsigrok
     lm_sensors lvm2 rabbitmq-c udev net_snmp libmnl
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
@@ -61,11 +65,7 @@ stdenv.mkDerivation rec {
     darwin.apple_sdk.frameworks.ApplicationServices
   ];
 
-  # for some reason libsigrok isn't auto-detected
-  configureFlags =
-    [ "--localstatedir=/var" ] ++
-    stdenv.lib.optional (stdenv.isLinux && libsigrok != null) "--with-libsigrok" ++
-    stdenv.lib.optional (python != null) "--with-python=${python}/bin/python";
+  configureFlags = [ "--localstatedir=/var" ];
 
   # do not create directories in /var during installPhase
   postConfigure = ''
@@ -78,6 +78,8 @@ stdenv.mkDerivation rec {
     fi
   '';
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "Daemon which collects system performance statistics periodically";
     homepage = https://collectd.org;
diff --git a/pkgs/tools/text/miller/default.nix b/pkgs/tools/text/miller/default.nix
new file mode 100644
index 000000000000..7e0d2b4a14c2
--- /dev/null
+++ b/pkgs/tools/text/miller/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, flex, libtool }:
+
+stdenv.mkDerivation rec {
+  name = "miller-${version}";
+
+  version = "5.2.2";
+
+  src = fetchFromGitHub {
+    owner = "johnkerl";
+    repo = "miller";
+    rev = "v${version}";
+    sha256 = "1i5lyknsf4vif601l070xh5sz8jy2h359jrb0kc0s0pl8lypxs4i";
+  };
+
+  nativeBuildInputs = [ autoreconfHook flex libtool ];
+
+  meta = with stdenv.lib; {
+    description = "Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON.";
+    homepage    = "http://johnkerl.org/miller/";
+    license     = licenses.bsd2;
+    maintainers = with maintainers; [ mstarzyk ];
+    platforms   = platforms.all;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7bc88e6ae9e0..75d0e46a35e3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1173,6 +1173,8 @@ with pkgs;
 
   hid-listen = callPackage ../tools/misc/hid-listen { };
 
+  home-manager = callPackage ../tools/package-management/home-manager {};
+
   hostsblock = callPackage ../tools/misc/hostsblock { };
 
   hr = callPackage ../applications/misc/hr { };
@@ -2026,6 +2028,8 @@ with pkgs;
       pillow;
   };
 
+  fastpbkdf2 = callPackage ../development/libraries/fastpbkdf2 { };
+
   fanficfare = callPackage ../tools/text/fanficfare { };
 
   fastd = callPackage ../tools/networking/fastd { };
@@ -3645,6 +3649,8 @@ with pkgs;
 
   nomad = callPackage ../applications/networking/cluster/nomad { };
 
+  miller = callPackage ../tools/text/miller { };
+
   milu = callPackage ../applications/misc/milu { };
 
   mpack = callPackage ../tools/networking/mpack { };
@@ -6274,6 +6280,13 @@ with pkgs;
   mitscheme = callPackage ../development/compilers/mit-scheme {
    texLive = texlive.combine { inherit (texlive) scheme-small; };
    texinfo = texinfo5;
+   xlibsWrapper = null;
+  };
+
+  mitschemeX11 = callPackage ../development/compilers/mit-scheme {
+   texLive = texlive.combine { inherit (texlive) scheme-small; };
+   texinfo = texinfo5;
+   enableX11 = true;
   };
 
   mkcl = callPackage ../development/compilers/mkcl {};
@@ -12886,10 +12899,8 @@ with pkgs;
 
     sch_cake = callPackage ../os-specific/linux/sch_cake { };
 
-    inherit (callPackage ../os-specific/linux/spl {
-      configFile = "kernel";
-      inherit kernel;
-    }) splStable splUnstable;
+    inherit (callPackage ../os-specific/linux/spl {})
+      splStable splUnstable;
 
     spl = splStable;
 
@@ -13220,10 +13231,6 @@ with pkgs;
 
   statifier = callPackage ../os-specific/linux/statifier { };
 
-  inherit (callPackage ../os-specific/linux/spl {
-    configFile = "user";
-  }) splStable splUnstable;
-
   sysdig = callPackage ../os-specific/linux/sysdig {
     kernel = null;
   }; # pkgs.sysdig is a client, for a driver look at linuxPackagesFor
@@ -18583,6 +18590,7 @@ with pkgs;
   gnomeExtensions = {
     caffeine = callPackage ../desktops/gnome-3/extensions/caffeine { };
     dash-to-dock = callPackage ../desktops/gnome-3/extensions/dash-to-dock { };
+    dash-to-panel = callPackage ../desktops/gnome-3/extensions/dash-to-panel { };
     topicons-plus = callPackage ../desktops/gnome-3/extensions/topicons-plus { };
   };
 
@@ -19724,6 +19732,8 @@ with pkgs;
 
   splix = callPackage ../misc/cups/drivers/splix { };
 
+  steamcontroller = callPackage ../misc/drivers/steamcontroller { };
+
   streamripper = callPackage ../applications/audio/streamripper { };
 
   sqsh = callPackage ../development/tools/sqsh { };
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 36d719fd2639..fc4074dd8cd9 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -59,9 +59,6 @@ in rec {
     ghc763 = callPackage ../development/compilers/ghc/7.6.3.nix {
       ghc = compiler.ghc704Binary;
     };
-    ghc783 = callPackage ../development/compilers/ghc/7.8.3.nix {
-      ghc = compiler.ghc742Binary;
-    };
     ghc784 = callPackage ../development/compilers/ghc/7.8.4.nix {
       ghc = compiler.ghc742Binary;
     };
@@ -119,10 +116,6 @@ in rec {
 
   packages = {
 
-    ghc784 = callPackage ../development/haskell-modules {
-      ghc = compiler.ghc784;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.8.x.nix { };
-    };
     ghc7103 = callPackage ../development/haskell-modules {
       ghc = compiler.ghc7103;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index a55ef256b7a7..ed13a00b6fc7 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -5882,10 +5882,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   FinanceQuote = buildPerlPackage rec {
-    name = "Finance-Quote-1.38";
+    name = "Finance-Quote-1.47";
     src = fetchurl {
       url = "mirror://cpan/authors/id/E/EC/ECOCODE/${name}.tar.gz";
-      sha256 = "0zhqb27y4vdxn476s2kwm9zl2f970yjcyyybnjm9b406krr2fm59";
+      sha256 = "0gzbq85738f299jaw4nj3ljnka380j2y6yspmyl71rgfypqjvbr7";
     };
     propagatedBuildInputs = [
       CGI CryptSSLeay HTMLTableExtract HTMLTree HTTPMessage LWP LWPProtocolHttps MozillaCA
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 6010cc84a0e5..10eeca9b8b89 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -4016,6 +4016,8 @@ in {
 
   libtmux = callPackage ../development/python-modules/libtmux { };
 
+  libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
+
   linuxfd = callPackage ../development/python-modules/linuxfd { };
 
   locket = buildPythonPackage rec {
@@ -7470,6 +7472,10 @@ in {
     gdal = self.gdal;
   };
 
+  django_2_0 = callPackage ../development/python-modules/django/2_0.nix {
+    gdal = self.gdal;
+  };
+
   django_1_8 = buildPythonPackage rec {
     name = "Django-${version}";
     version = "1.8.18";
@@ -12119,42 +12125,7 @@ in {
 
   numba = callPackage ../development/python-modules/numba { };
 
-  numexpr = buildPythonPackage rec {
-    version = "2.6.2";
-    name = "numexpr-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/n/numexpr/${name}.tar.gz";
-      sha256 = "6ab8ff5c19e7f452966bf5a3220b845cf3244fe0b96544f7f9acedcc2db5c705";
-    };
-
-    propagatedBuildInputs = with self; [ numpy ];
-
-    # Run the test suite.
-    # It requires the build path to be in the python search path.
-    checkPhase = ''
-      ${python}/bin/${python.executable} <<EOF
-      import sysconfig
-      import sys
-      import os
-      f = "lib.{platform}-{version[0]}.{version[1]}"
-      lib = f.format(platform=sysconfig.get_platform(),
-                     version=sys.version_info)
-      build = os.path.join(os.getcwd(), 'build', lib)
-      sys.path.insert(0, build)
-      import numexpr
-      r = numexpr.test()
-      if not r.wasSuccessful():
-          sys.exit(1)
-      EOF
-    '';
-
-    meta = {
-      description = "Fast numerical array expression evaluator for NumPy";
-      homepage = "https://github.com/pydata/numexpr";
-      license = licenses.mit;
-    };
-  };
+  numexpr = callPackage ../development/python-modules/numexpr { };
 
   Nuitka = let
     # scons is needed but using it requires Python 2.7
@@ -22401,6 +22372,8 @@ EOF
 
   trezor = callPackage ../development/python-modules/trezor { };
 
+  protocol = callPackage ../development/python-modules/protocol { };
+
   trezor_agent = buildPythonPackage rec{
     name = "${pname}-${version}";
     pname = "trezor_agent";