summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/CODEOWNERS3
-rw-r--r--lib/attrsets.nix8
-rw-r--r--lib/customisation.nix2
-rw-r--r--lib/debug.nix4
-rw-r--r--lib/default.nix173
-rw-r--r--lib/deprecated.nix9
-rw-r--r--lib/fetchers.nix1
-rw-r--r--lib/filesystem.nix1
-rw-r--r--lib/fixed-points.nix1
-rw-r--r--lib/generators.nix7
-rw-r--r--lib/licenses.nix5
-rw-r--r--lib/lists.nix4
-rw-r--r--lib/maintainers.nix1
-rw-r--r--lib/meta.nix3
-rw-r--r--lib/modules.nix16
-rw-r--r--lib/options.nix11
-rw-r--r--lib/sandbox.nix3
-rw-r--r--lib/sources.nix3
-rw-r--r--lib/strings-with-deps.nix7
-rw-r--r--lib/strings.nix4
-rw-r--r--lib/systems/default.nix13
-rw-r--r--lib/systems/doubles.nix9
-rw-r--r--lib/systems/examples.nix4
-rw-r--r--lib/systems/inspect.nix7
-rw-r--r--lib/systems/parse.nix11
-rw-r--r--lib/systems/platforms.nix1
-rw-r--r--lib/trivial.nix3
-rw-r--r--lib/types.nix25
-rw-r--r--nixos/doc/manual/release-notes/rl-1709.xml2
-rw-r--r--nixos/modules/config/networking.nix4
-rw-r--r--nixos/modules/module-list.nix2
-rw-r--r--nixos/modules/services/databases/influxdb.nix2
-rw-r--r--nixos/modules/services/databases/mysql.nix62
-rw-r--r--nixos/modules/services/misc/gogs.nix2
-rw-r--r--nixos/modules/services/misc/gollum.nix92
-rw-r--r--nixos/modules/services/network-filesystems/ipfs.nix52
-rw-r--r--nixos/modules/services/networking/bind.nix9
-rw-r--r--nixos/modules/services/networking/coturn.nix3
-rw-r--r--nixos/modules/services/networking/dhcpcd.nix8
-rw-r--r--nixos/modules/services/networking/dnsmasq.nix2
-rw-r--r--nixos/modules/services/networking/radicale.nix12
-rw-r--r--nixos/modules/services/networking/squid.nix169
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix13
-rw-r--r--nixos/modules/services/networking/tinc.nix6
-rw-r--r--nixos/modules/services/security/hologram-agent.nix2
-rw-r--r--nixos/modules/tasks/network-interfaces-scripted.nix7
-rw-r--r--nixos/release.nix2
-rw-r--r--nixos/tests/grafana.nix25
-rw-r--r--nixos/tests/initrd-network-ssh.nix74
-rw-r--r--nixos/tests/ipfs.nix6
-rw-r--r--nixos/tests/networking.nix4
-rw-r--r--nixos/tests/radicale.nix90
-rw-r--r--pkgs/applications/altcoins/bitcoin.nix4
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix103
-rwxr-xr-xpkgs/applications/editors/jetbrains/update.pl7
-rw-r--r--pkgs/applications/editors/vim/default.nix4
-rw-r--r--pkgs/applications/graphics/potrace/default.nix4
-rw-r--r--pkgs/applications/misc/alacritty/default.nix9
-rw-r--r--pkgs/applications/misc/lenmus/default.nix4
-rw-r--r--pkgs/applications/misc/valauncher/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix4
-rw-r--r--pkgs/applications/networking/feedreaders/newsbeuter/default.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/client.nix18
-rw-r--r--pkgs/applications/networking/mailreaders/claws-mail/default.nix4
-rw-r--r--pkgs/applications/networking/syncthing/default.nix4
-rw-r--r--pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix309
-rw-r--r--pkgs/applications/office/libreoffice/still-primary-src.nix6
-rw-r--r--pkgs/applications/office/libreoffice/still.nix18
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix4
-rw-r--r--pkgs/applications/video/kodi/commons.nix2
-rw-r--r--pkgs/applications/virtualization/runc/default.nix4
-rw-r--r--pkgs/applications/window-managers/awesome/default.nix1
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix13
-rw-r--r--pkgs/build-support/fetchrepoproject/default.nix15
-rw-r--r--pkgs/build-support/gcc-wrapper-old/default.nix10
-rw-r--r--pkgs/data/misc/geolite-legacy/builder.sh4
-rw-r--r--pkgs/data/misc/geolite-legacy/default.nix24
-rw-r--r--pkgs/development/compilers/emscripten-fastcomp/default.nix12
-rw-r--r--pkgs/development/compilers/haxe/default.nix4
-rw-r--r--pkgs/development/compilers/julia/0.6.nix188
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml301
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix8
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix1332
-rw-r--r--pkgs/development/haskell-modules/lib.nix5
-rw-r--r--pkgs/development/libraries/cdo/default.nix8
-rw-r--r--pkgs/development/libraries/gd/default.nix4
-rw-r--r--pkgs/development/libraries/gperftools/default.nix2
-rw-r--r--pkgs/development/libraries/libevent/default.nix21
-rw-r--r--pkgs/development/libraries/libwebsockets/default.nix20
-rw-r--r--pkgs/development/libraries/libxmlxx/default.nix4
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix4
-rw-r--r--pkgs/development/libraries/tcllib/default.nix4
-rw-r--r--pkgs/development/libraries/xmlsec/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/csv/1.5.nix32
-rw-r--r--pkgs/development/ocaml-modules/csv/default.nix60
-rw-r--r--pkgs/development/python-modules/awesome-slugify/default.nix30
-rw-r--r--pkgs/development/python-modules/awesome-slugify/slugify_filename_test.patch13
-rw-r--r--pkgs/development/python-modules/discogs_client/default.nix20
-rw-r--r--pkgs/development/python-modules/dyn/default.nix34
-rw-r--r--pkgs/development/python-modules/eve/default.nix39
-rw-r--r--pkgs/development/python-modules/eve/setup.patch21
-rw-r--r--pkgs/development/python-modules/interruptingcow/default.nix18
-rw-r--r--pkgs/development/python-modules/logilab/common.nix24
-rw-r--r--pkgs/development/python-modules/logilab/constraint.nix23
-rw-r--r--pkgs/development/python-modules/marionette-harness/default.nix2
-rw-r--r--pkgs/development/python-modules/marionette-harness/marionette_driver.nix2
-rw-r--r--pkgs/development/python-modules/mpi4py/default.nix19
-rw-r--r--pkgs/development/python-modules/mpi4py/tests.patch13
-rw-r--r--pkgs/development/python-modules/pomegranate/default.nix23
-rw-r--r--pkgs/development/python-modules/pydub/default.nix24
-rw-r--r--pkgs/development/python-modules/pydub/pyaudioop-python3.patch46
-rw-r--r--pkgs/development/python-modules/pymongo/default.nix20
-rw-r--r--pkgs/development/python-modules/radicale_infcloud/default.nix24
-rw-r--r--pkgs/development/python-modules/trollius/default.nix49
-rw-r--r--pkgs/development/python-modules/trollius/tests.patch13
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix10
-rw-r--r--pkgs/development/tools/analysis/valgrind/valgrind-bzero.patch37
-rw-r--r--pkgs/development/tools/gocode/default.nix6
-rw-r--r--pkgs/misc/vim-plugins/default.nix22
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names2
-rw-r--r--pkgs/os-specific/gnu/default.nix11
-rw-r--r--pkgs/os-specific/linux/bluez/bluez5.nix91
-rw-r--r--pkgs/os-specific/linux/bluez/default.nix86
-rw-r--r--pkgs/os-specific/linux/cryptodev/default.nix1
-rw-r--r--pkgs/os-specific/linux/dmtcp/default.nix5
-rw-r--r--pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch11
-rw-r--r--pkgs/os-specific/linux/hostapd/default.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix32
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.12.nix11
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.13.nix11
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix11
-rw-r--r--pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux-mptcp.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rpi.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-samus-4.12.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix13
-rw-r--r--pkgs/os-specific/linux/mxu11x0/default.nix2
-rw-r--r--pkgs/os-specific/linux/tp_smapi/default.nix2
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix2
-rw-r--r--pkgs/servers/http/apache-httpd/2.4.nix12
-rw-r--r--pkgs/servers/matterbridge/default.nix2
-rw-r--r--pkgs/servers/mattermost/matterircd.nix4
-rw-r--r--pkgs/servers/mirrorbits/default.nix48
-rw-r--r--pkgs/servers/mirrorbits/deps.nix66
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix6
-rw-r--r--pkgs/servers/mqtt/mosquitto/default.nix11
-rw-r--r--pkgs/servers/nosql/arangodb/default.nix4
-rw-r--r--pkgs/servers/nosql/redis/default.nix4
-rw-r--r--pkgs/servers/radicale/default.nix4
-rw-r--r--pkgs/servers/sip/freeswitch/default.nix6
-rw-r--r--pkgs/stdenv/darwin/default.nix4
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix2
-rw-r--r--pkgs/tools/audio/abcm2ps/default.nix30
-rw-r--r--pkgs/tools/backup/obnam/default.nix4
-rw-r--r--pkgs/tools/misc/esptool/default.nix11
-rw-r--r--pkgs/tools/misc/fd/default.nix6
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/ifstat-legacy/default.nix30
-rw-r--r--pkgs/tools/networking/openfortivpn/default.nix10
-rw-r--r--pkgs/tools/package-management/niff/default.nix34
-rw-r--r--pkgs/tools/security/gnupg/22.nix4
-rw-r--r--pkgs/tools/security/keybase/default.nix4
-rw-r--r--pkgs/tools/security/nmap/default.nix7
-rw-r--r--pkgs/tools/security/opensc/default.nix5
-rw-r--r--pkgs/tools/security/tor/default.nix4
-rw-r--r--pkgs/tools/system/journalbeat/default.nix4
-rw-r--r--pkgs/tools/system/netdata/default.nix4
-rw-r--r--pkgs/tools/system/netdata/web_access.patch8
-rw-r--r--pkgs/top-level/all-packages.nix126
-rw-r--r--pkgs/top-level/ocaml-packages.nix5
-rw-r--r--pkgs/top-level/perl-packages.nix13
-rw-r--r--pkgs/top-level/python-packages.nix248
-rw-r--r--pkgs/top-level/splice.nix5
177 files changed, 3376 insertions, 1829 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 4d0a4c5a61c1..6a1cf6e4ee86 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -47,3 +47,6 @@ pkgs/development/interpreters/elixir/*	@gleber
 pkgs/development/tools/build-managers/rebar/*	@gleber
 pkgs/development/tools/build-managers/rebar3/*	@gleber
 pkgs/development/tools/erlang/*	@gleber
+
+# Jetbrains
+pkgs/applications/editors/jetbrains @edwtjo
diff --git a/lib/attrsets.nix b/lib/attrsets.nix
index d2946f6ca9cb..19218cfe8ecb 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -1,11 +1,11 @@
+{ lib }:
 # Operations on attribute sets.
 
 let
   inherit (builtins) head tail length;
-  inherit (import ./trivial.nix) and or;
-  inherit (import ./default.nix) fold;
-  inherit (import ./strings.nix) concatStringsSep;
-  inherit (import ./lists.nix) concatMap concatLists all deepSeqList;
+  inherit (lib.trivial) and or;
+  inherit (lib.strings) concatStringsSep;
+  inherit (lib.lists) fold concatMap concatLists all deepSeqList;
 in
 
 rec {
diff --git a/lib/customisation.nix b/lib/customisation.nix
index 98a46ca6c616..483ef6fd4866 100644
--- a/lib/customisation.nix
+++ b/lib/customisation.nix
@@ -1,6 +1,6 @@
+{ lib }:
 let
 
-  lib = import ./default.nix;
   inherit (builtins) attrNames isFunction;
 
 in
diff --git a/lib/debug.nix b/lib/debug.nix
index 925e0d405a79..646ef220ad0a 100644
--- a/lib/debug.nix
+++ b/lib/debug.nix
@@ -1,4 +1,6 @@
-let lib = import ./default.nix;
+{ lib }:
+
+let
 
 inherit (builtins) trace attrNamesToStr isAttrs isFunction isList isInt
         isString isBool head substring attrNames;
diff --git a/lib/default.nix b/lib/default.nix
index 3893e349db36..3e30ec515fcb 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -5,58 +5,127 @@
  */
 let
 
-  # often used, or depending on very little
-  trivial = import ./trivial.nix;
-  fixedPoints = import ./fixed-points.nix;
-
-  # datatypes
-  attrsets = import ./attrsets.nix;
-  lists = import ./lists.nix;
-  strings = import ./strings.nix;
-  stringsWithDeps = import ./strings-with-deps.nix;
-
-  # packaging
-  customisation = import ./customisation.nix;
-  maintainers = import ./maintainers.nix;
-  meta = import ./meta.nix;
-  sources = import ./sources.nix;
-
-  # module system
-  modules = import ./modules.nix;
-  options = import ./options.nix;
-  types = import ./types.nix;
-
-  # constants
-  licenses = import ./licenses.nix;
-  systems = import ./systems;
-
-  # misc
-  debug = import ./debug.nix;
-  generators = import ./generators.nix;
-  misc = import ./deprecated.nix;
-
-  # domain-specific
-  sandbox = import ./sandbox.nix;
-  fetchers = import ./fetchers.nix;
-
-  # Eval-time filesystem handling
-  filesystem = import ./filesystem.nix;
-
-in
-  { inherit trivial fixedPoints
-            attrsets lists strings stringsWithDeps
-            customisation maintainers meta sources
-            modules options types
-            licenses systems
-            debug generators misc
-            sandbox fetchers filesystem;
+  callLibs = file: import file { inherit lib; };
+
+  lib = rec {
+
+    # often used, or depending on very little
+    trivial = callLibs ./trivial.nix;
+    fixedPoints = callLibs ./fixed-points.nix;
+
+    # datatypes
+    attrsets = callLibs ./attrsets.nix;
+    lists = callLibs ./lists.nix;
+    strings = callLibs ./strings.nix;
+    stringsWithDeps = callLibs ./strings-with-deps.nix;
+
+    # packaging
+    customisation = callLibs ./customisation.nix;
+    maintainers = callLibs ./maintainers.nix;
+    meta = callLibs ./meta.nix;
+    sources = callLibs ./sources.nix;
+
+
+    # module system
+    modules = callLibs ./modules.nix;
+    options = callLibs ./options.nix;
+    types = callLibs ./types.nix;
+
+    # constants
+    licenses = callLibs ./licenses.nix;
+    systems = callLibs ./systems;
+
+    # misc
+    debug = callLibs ./debug.nix;
+
+    generators = callLibs ./generators.nix;
+    misc = callLibs ./deprecated.nix;
+    # domain-specific
+    sandbox = callLibs ./sandbox.nix;
+    fetchers = callLibs ./fetchers.nix;
+
+    # Eval-time filesystem handling
+    filesystem = callLibs ./filesystem.nix;
 
     # back-compat aliases
     platforms = systems.doubles;
-  }
-  # !!! don't include everything at top-level; perhaps only the most
-  # commonly used functions.
-  // trivial // fixedPoints
-  // lists // strings // stringsWithDeps // attrsets // sources
-  // options // types // meta // debug // misc // modules
-  // customisation
+
+    inherit (builtins) add addErrorContext attrNames
+      concatLists deepSeq elem elemAt filter genericClosure genList
+      getAttr hasAttr head isAttrs isBool isFunction isInt isList
+      isString length lessThan listToAttrs pathExists readFile
+      replaceStrings seq stringLength sub substring tail;
+    inherit (trivial) id const concat or and boolToString mergeAttrs
+      flip mapNullable inNixShell min max importJSON warn info
+      nixpkgsVersion mod;
+
+    inherit (fixedPoints) fix fix' extends composeExtensions
+      makeExtensible makeExtensibleWithCustomName;
+    inherit (attrsets) attrByPath hasAttrByPath setAttrByPath
+      getAttrFromPath attrVals attrValues catAttrs filterAttrs
+      filterAttrsRecursive foldAttrs collect nameValuePair mapAttrs
+      mapAttrs' mapAttrsToList mapAttrsRecursive mapAttrsRecursiveCond
+      genAttrs isDerivation toDerivation optionalAttrs
+      zipAttrsWithNames zipAttrsWith zipAttrs recursiveUpdateUntil
+      recursiveUpdate matchAttrs overrideExisting getOutput getBin
+      getLib getDev chooseDevOutputs zipWithNames zip;
+    inherit (lists) singleton foldr fold foldl foldl' imap0 imap1
+      concatMap flatten remove findSingle findFirst any all count
+      optional optionals toList range partition zipListsWith zipLists
+      reverseList listDfs toposort sort take drop sublist last init
+      crossLists unique intersectLists subtractLists
+      mutuallyExclusive;
+    inherit (strings) concatStrings concatMapStrings concatImapStrings
+      intersperse concatStringsSep concatMapStringsSep
+      concatImapStringsSep makeSearchPath makeSearchPathOutput
+      makeLibraryPath makeBinPath makePerlPath optionalString
+      hasPrefix hasSuffix stringToCharacters stringAsChars escape
+      escapeShellArg escapeShellArgs replaceChars lowerChars upperChars
+      toLower toUpper addContextFrom splitString removePrefix
+      removeSuffix versionOlder versionAtLeast getVersion nameFromURL
+      enableFeature fixedWidthString fixedWidthNumber isStorePath
+      toInt readPathsFromFile fileContents;
+    inherit (stringsWithDeps) textClosureList textClosureMap
+      noDepEntry fullDepEntry packEntry stringAfter;
+    inherit (customisation) overrideDerivation makeOverridable
+      callPackageWith callPackagesWith addPassthru hydraJob makeScope;
+    inherit (meta) addMetaAttrs dontDistribute setName updateName
+      appendToName mapDerivationAttrset lowPrio lowPrioSet hiPrio
+      hiPrioSet;
+    inherit (sources) pathType pathIsDirectory cleanSourceFilter
+      cleanSource sourceByRegex sourceFilesBySuffices
+      commitIdFromGitRepo;
+    inherit (modules) evalModules closeModules unifyModuleSyntax
+      applyIfFunction unpackSubmodule packSubmodule mergeModules
+      mergeModules' mergeOptionDecls evalOptionValue mergeDefinitions
+      pushDownProperties dischargeProperties filterOverrides
+      sortProperties fixupOptionType mkIf mkAssert mkMerge mkOverride
+      mkOptionDefault mkDefault mkForce mkVMOverride mkStrict
+      mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions
+      mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule
+      mkRenamedOptionModule mkMergedOptionModule mkChangedOptionModule
+      mkAliasOptionModule doRename filterModules;
+    inherit (options) isOption mkEnableOption mkSinkUndeclaredOptions
+      mergeDefaultOption mergeOneOption mergeEqualOption getValues
+      getFiles optionAttrSetToDocList optionAttrSetToDocList'
+      scrubOptionValue literalExample showOption showFiles
+      unknownModule mkOption;
+    inherit (types) isType setType defaultTypeMerge defaultFunctor
+      isOptionType mkOptionType;
+    inherit (debug) addErrorContextToAttrs traceIf traceVal
+      traceXMLVal traceXMLValMarked traceSeq traceSeqN traceValSeq
+      traceValSeqN traceShowVal traceShowValMarked
+      showVal traceCall traceCall2 traceCall3 traceValIfNot runTests
+      testAllTrue strict traceCallXml attrNamesToStr;
+    inherit (misc) maybeEnv defaultMergeArg defaultMerge foldArgs
+      defaultOverridableDelayableArgs composedArgsAndFun
+      maybeAttrNullable maybeAttr ifEnable checkFlag getValue
+      checkReqs uniqList uniqListExt condConcat lazyGenericClosure
+      innerModifySumArgs modifySumArgs innerClosePropagation
+      closePropagation mapAttrsFlatten nvs setAttr setAttrMerge
+      mergeAttrsWithFunc mergeAttrsConcatenateValues
+      mergeAttrsNoOverride mergeAttrByFunc mergeAttrsByFuncDefaults
+      mergeAttrsByFuncDefaultsClean mergeAttrBy
+      prepareDerivationArgs nixType imap overridableDelayableArgs;
+  };
+in lib
diff --git a/lib/deprecated.nix b/lib/deprecated.nix
index 8cdfab381baf..2a0f5a55bf14 100644
--- a/lib/deprecated.nix
+++ b/lib/deprecated.nix
@@ -1,11 +1,12 @@
-let lib = import ./default.nix;
+{ lib }:
+let
     inherit (builtins) isFunction head tail isList isAttrs isInt attrNames;
 
 in
 
-with import ./lists.nix;
-with import ./attrsets.nix;
-with import ./strings.nix;
+with lib.lists;
+with lib.attrsets;
+with lib.strings;
 
 rec {
 
diff --git a/lib/fetchers.nix b/lib/fetchers.nix
index 21f28c32ef7e..1107353b51dd 100644
--- a/lib/fetchers.nix
+++ b/lib/fetchers.nix
@@ -1,4 +1,5 @@
 # snippets that can be shared by multiple fetchers (pkgs/build-support)
+{ lib }:
 {
 
   proxyImpureEnvVars = [
diff --git a/lib/filesystem.nix b/lib/filesystem.nix
index 3925beb21347..fc35a1a72c64 100644
--- a/lib/filesystem.nix
+++ b/lib/filesystem.nix
@@ -1,3 +1,4 @@
+{ lib }:
 { # haskellPathsInDir : Path -> Map String Path
   # A map of all haskell packages defined in the given path,
   # identified by having a cabal file with the same name as the
diff --git a/lib/fixed-points.nix b/lib/fixed-points.nix
index a11b5a6f4bdc..13e053b5aa7d 100644
--- a/lib/fixed-points.nix
+++ b/lib/fixed-points.nix
@@ -1,3 +1,4 @@
+{ ... }:
 rec {
   # Compute the fixed point of the given function `f`, which is usually an
   # attribute set that expects its final, non-recursive representation as an
diff --git a/lib/generators.nix b/lib/generators.nix
index 4419c3c88917..5f9da234f447 100644
--- a/lib/generators.nix
+++ b/lib/generators.nix
@@ -7,10 +7,11 @@
  * Tests can be found in ./tests.nix
  * Documentation in the manual, #sec-generators
  */
-with import ./trivial.nix;
+{ lib }:
+with (lib).trivial;
 let
-  libStr = import ./strings.nix;
-  libAttr = import ./attrsets.nix;
+  libStr = lib.strings;
+  libAttr = lib.attrsets;
 
   flipMapAttrs = flip libAttr.mapAttrs;
 in
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 964c0966e437..edf35ec035b2 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -1,7 +1,6 @@
+{ lib }:
 let
 
-  lib = import ./default.nix;
-
   spdx = lic: lic // {
     url = "http://spdx.org/licenses/${lic.spdxId}";
   };
@@ -419,7 +418,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
     url = "https://raw.githubusercontent.com/raboof/notion/master/LICENSE";
     fullName = "Notion modified LGPL";
   };
-  
+
   ofl = spdx {
     spdxId = "OFL-1.1";
     fullName = "SIL Open Font License 1.1";
diff --git a/lib/lists.nix b/lib/lists.nix
index 6a8fd8a18408..8f67c6bb0ca3 100644
--- a/lib/lists.nix
+++ b/lib/lists.nix
@@ -1,6 +1,6 @@
 # General list operations.
-
-with import ./trivial.nix;
+{ lib }:
+with lib.trivial;
 
 rec {
 
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 9f4c31a3e4d7..e9cf58c5baaa 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -1,3 +1,4 @@
+{ ...}:
 /* List of NixOS maintainers. The format is:
 
     handle = "Real Name <address@example.org>";
diff --git a/lib/meta.nix b/lib/meta.nix
index 8f77bbe01484..07b1710fff70 100644
--- a/lib/meta.nix
+++ b/lib/meta.nix
@@ -1,8 +1,7 @@
 /* Some functions for manipulating meta attributes, as well as the
    name attribute. */
 
-let lib = import ./default.nix;
-in
+{ lib }:
 
 rec {
 
diff --git a/lib/modules.nix b/lib/modules.nix
index 3da689a6bdb0..eb2f89684f3b 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -1,10 +1,12 @@
-with import ./lists.nix;
-with import ./strings.nix;
-with import ./trivial.nix;
-with import ./attrsets.nix;
-with import ./options.nix;
-with import ./debug.nix;
-with import ./types.nix;
+{ lib }:
+
+with lib.lists;
+with lib.strings;
+with lib.trivial;
+with lib.attrsets;
+with lib.options;
+with lib.debug;
+with lib.types;
 
 rec {
 
diff --git a/lib/options.nix b/lib/options.nix
index 2092b65bbc3a..769d3cc55723 100644
--- a/lib/options.nix
+++ b/lib/options.nix
@@ -1,11 +1,10 @@
 # Nixpkgs/NixOS option handling.
+{ lib }:
 
-let lib = import ./default.nix; in
-
-with import ./trivial.nix;
-with import ./lists.nix;
-with import ./attrsets.nix;
-with import ./strings.nix;
+with lib.trivial;
+with lib.lists;
+with lib.attrsets;
+with lib.strings;
 
 rec {
 
diff --git a/lib/sandbox.nix b/lib/sandbox.nix
index 414bf36f779f..2cdeb40938ad 100644
--- a/lib/sandbox.nix
+++ b/lib/sandbox.nix
@@ -1,4 +1,5 @@
-with import ./strings.nix;
+{ lib }:
+with lib.strings;
 
 /* Helpers for creating lisp S-exprs for the Apple sandbox
 
diff --git a/lib/sources.nix b/lib/sources.nix
index 63b3749d19ec..0fd56d58ddd2 100644
--- a/lib/sources.nix
+++ b/lib/sources.nix
@@ -1,6 +1,5 @@
 # Functions for copying sources to the Nix store.
-
-let lib = import ./default.nix; in
+{ lib }:
 
 rec {
 
diff --git a/lib/strings-with-deps.nix b/lib/strings-with-deps.nix
index a901940ac12b..e3336983428f 100644
--- a/lib/strings-with-deps.nix
+++ b/lib/strings-with-deps.nix
@@ -1,3 +1,4 @@
+{ lib }:
 /*
 Usage:
 
@@ -40,9 +41,9 @@ Usage:
   [1] maybe this behaviour should be removed to keep things simple (?)
 */
 
-with import ./lists.nix;
-with import ./attrsets.nix;
-with import ./strings.nix;
+with lib.lists;
+with lib.attrsets;
+with lib.strings;
 
 rec {
 
diff --git a/lib/strings.nix b/lib/strings.nix
index a03694d1b1d7..aca9ef45e615 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -1,6 +1,6 @@
 /* String manipulation functions. */
-
-let lib = import ./default.nix;
+{ lib }:
+let
 
 inherit (builtins) length;
 
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index b5138a5ba712..b1036b80c4db 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -1,11 +1,12 @@
-let inherit (import ../attrsets.nix) mapAttrs; in
+{ lib }:
+  let inherit (lib.attrsets) mapAttrs; in
 
 rec {
-  doubles = import ./doubles.nix;
-  parse = import ./parse.nix;
-  inspect = import ./inspect.nix;
-  platforms = import ./platforms.nix;
-  examples = import ./examples.nix;
+  doubles = import ./doubles.nix { inherit lib; };
+  parse = import ./parse.nix { inherit lib; };
+  inspect = import ./inspect.nix { inherit lib; };
+  platforms = import ./platforms.nix { inherit lib; };
+  examples = import ./examples.nix { inherit lib; };
 
   # Elaborate a `localSystem` or `crossSystem` so that it contains everything
   # necessary.
diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix
index ac1a199d80c4..0cae8ec56fdf 100644
--- a/lib/systems/doubles.nix
+++ b/lib/systems/doubles.nix
@@ -1,8 +1,9 @@
+{ lib }:
 let
-  lists = import ../lists.nix;
-  parse = import ./parse.nix;
-  inherit (import ./inspect.nix) predicates;
-  inherit (import ../attrsets.nix) matchAttrs;
+  inherit (lib) lists;
+  parse = import ./parse.nix { inherit lib; };
+  inherit (import ./inspect.nix { inherit lib; }) predicates;
+  inherit (lib.attrsets) matchAttrs;
 
   all = [
     "aarch64-linux"
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index e394f43831c9..ff2273febcb0 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -1,8 +1,8 @@
 # These can be passed to nixpkgs as either the `localSystem` or
 # `crossSystem`. They are put here for user convenience, but also used by cross
 # tests and linux cross stdenv building, so handle with care!
-
-let platforms = import ./platforms.nix; in
+{ lib }:
+let platforms = import ./platforms.nix { inherit lib; }; in
 
 rec {
   #
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index 2d5353341f58..a4fa9af4e0a8 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -1,6 +1,7 @@
-with import ./parse.nix;
-with import ../attrsets.nix;
-with import ../lists.nix;
+{ lib }:
+with import ./parse.nix { inherit lib; };
+with lib.attrsets;
+with lib.lists;
 
 rec {
   patterns = rec {
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 438d83685db4..d14ca04bfb9e 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -4,14 +4,13 @@
 # http://llvm.org/docs/doxygen/html/Triple_8cpp_source.html especially
 # Triple::normalize. Parsing should essentially act as a more conservative
 # version of that last function.
-
-with import ../lists.nix;
-with import ../types.nix;
-with import ../attrsets.nix;
-with (import ./inspect.nix).predicates;
+{ lib }:
+with lib.lists;
+with lib.types;
+with lib.attrsets;
+with (import ./inspect.nix { inherit lib; }).predicates;
 
 let
-  lib = import ../default.nix;
   setTypesAssert = type: pred:
     mapAttrs (name: value:
       assert pred value;
diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix
index 54ed8f3c12c1..7aeb4d88e515 100644
--- a/lib/systems/platforms.nix
+++ b/lib/systems/platforms.nix
@@ -1,3 +1,4 @@
+{ lib }:
 rec {
   pcBase = {
     name = "pc";
diff --git a/lib/trivial.nix b/lib/trivial.nix
index a57cf30d171c..c452c7b65bc1 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -1,3 +1,4 @@
+{ lib }:
 rec {
 
   /* The identity function
@@ -55,7 +56,7 @@ rec {
     isInt add sub lessThan
     seq deepSeq genericClosure;
 
-  inherit (import ./strings.nix) fileContents;
+  inherit (lib.strings) fileContents;
 
   # Return the Nixpkgs version number.
   nixpkgsVersion =
diff --git a/lib/types.nix b/lib/types.nix
index a7dcd3f1e1c7..62c6a978af90 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -1,15 +1,16 @@
 # Definitions related to run-time type checking.  Used in particular
 # to type-check NixOS configurations.
-
-with import ./lists.nix;
-with import ./attrsets.nix;
-with import ./options.nix;
-with import ./trivial.nix;
-with import ./strings.nix;
-let inherit (import ./modules.nix) mergeDefinitions filterOverrides; in
-
+{ lib }:
+with lib.lists;
+with lib.attrsets;
+with lib.options;
+with lib.trivial;
+with lib.strings;
+let
+
+  inherit (lib.modules) mergeDefinitions filterOverrides;
+  outer_types =
 rec {
-
   isType = type: x: (x._type or "") == type;
 
   setType = typeName: value: value // {
@@ -95,7 +96,6 @@ rec {
   # When adding new types don't forget to document them in
   # nixos/doc/manual/development/option-types.xml!
   types = rec {
-
     unspecified = mkOptionType {
       name = "unspecified";
     };
@@ -291,7 +291,7 @@ rec {
     submodule = opts:
       let
         opts' = toList opts;
-        inherit (import ./modules.nix) evalModules;
+        inherit (lib.modules) evalModules;
       in
       mkOptionType rec {
         name = "submodule";
@@ -395,5 +395,6 @@ rec {
     addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; };
 
   };
+};
 
-}
+in outer_types // outer_types.types
diff --git a/nixos/doc/manual/release-notes/rl-1709.xml b/nixos/doc/manual/release-notes/rl-1709.xml
index f271451970a2..55b39209f0d5 100644
--- a/nixos/doc/manual/release-notes/rl-1709.xml
+++ b/nixos/doc/manual/release-notes/rl-1709.xml
@@ -107,7 +107,7 @@ rmdir /var/lib/ipfs/.ipfs
       The <literal>mysql</literal> default <literal>dataDir</literal> has changed from <literal>/var/mysql</literal> to <literal>/var/lib/mysql</literal>.
     </para>
     <para>
-      Radicale's default package has changed from 1.x to 2.x. Instructions to migrate can be found <link xlink:href="http://radicale.org/1to2/"> here </link>. It is also possible to use the newer version by setting the <literal>package</literal> to <literal>radicale2</literal>, which is done automatically when <literal>stateVersion</literal> is 17.09 or higher.
+            Radicale's default package has changed from 1.x to 2.x. Instructions to migrate can be found <link xlink:href="http://radicale.org/1to2/"> here </link>. It is also possible to use the newer version by setting the <literal>package</literal> to <literal>radicale2</literal>, which is done automatically when <literal>stateVersion</literal> is 17.09 or higher. The <literal>extraArgs</literal> option has been added to allow passing the data migration arguments specified in the instructions; see the <filename xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/radicale.nix">radicale.nix</filename> NixOS test for an example migration.
     </para>
   </listitem>
   <listitem>
diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix
index 619f36cd5150..5fa91ec9cfbc 100644
--- a/nixos/modules/config/networking.nix
+++ b/nixos/modules/config/networking.nix
@@ -9,7 +9,9 @@ let
   cfg = config.networking;
   dnsmasqResolve = config.services.dnsmasq.enable &&
                    config.services.dnsmasq.resolveLocalQueries;
-  hasLocalResolver = config.services.bind.enable || dnsmasqResolve;
+  bindResolve =    config.services.bind.enable &&
+                   config.services.bind.resolveLocalQueries;
+  hasLocalResolver = bindResolve || dnsmasqResolve;
 
   resolvconfOptions = cfg.resolvconfOptions
     ++ optional cfg.dnsSingleRequest "single-request"
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 22a7ed2d04a3..eb478f66d40f 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -301,6 +301,7 @@
   ./services/misc/gitlab.nix
   ./services/misc/gitolite.nix
   ./services/misc/gogs.nix
+  ./services/misc/gollum.nix
   ./services/misc/gpsd.nix
   #./services/misc/ihaskell.nix
   ./services/misc/irkerd.nix
@@ -512,6 +513,7 @@
   ./services/networking/smokeping.nix
   ./services/networking/softether.nix
   ./services/networking/spiped.nix
+  ./services/networking/squid.nix
   ./services/networking/sslh.nix
   ./services/networking/ssh/lshd.nix
   ./services/networking/ssh/sshd.nix
diff --git a/nixos/modules/services/databases/influxdb.nix b/nixos/modules/services/databases/influxdb.nix
index 9ffe9fdea2ce..eeab33309fda 100644
--- a/nixos/modules/services/databases/influxdb.nix
+++ b/nixos/modules/services/databases/influxdb.nix
@@ -171,7 +171,7 @@ in
         if [ "$(id -u)" = 0 ]; then chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}; fi
       '';
       postStart = mkBefore ''
-        until ${pkgs.curl.bin}/bin/curl -s -o /dev/null 'http://127.0.0.1${toString configOptions.http.bind-address}'/ping; do
+        until ${pkgs.curl.bin}/bin/curl -s -o /dev/null ${if configOptions.http.https-enabled then "-k https" else "http"}://127.0.0.1${toString configOptions.http.bind-address}/ping; do
           sleep 1;
         done
       '';
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index 50766093307d..845e6d4c22ef 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -30,6 +30,10 @@ let
       master-password = ${cfg.replication.masterPassword}
       master-port = ${toString cfg.replication.masterPort}
     ''}
+    ${optionalString (cfg.ensureUsers != [])
+    ''
+      plugin-load-add = auth_socket.so
+    ''}
     ${cfg.extraOptions}
   '';
 
@@ -123,6 +127,46 @@ in
         description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database";
       };
 
+      ensureDatabases = mkOption {
+        default = [];
+        description = ''
+          Ensures that the specified databases exist.
+          This option will never delete existing databases, especially not when the value of this
+          option is changed. This means that databases created once through this option or
+          otherwise have to be removed manually.
+        '';
+        example = [
+          "nextcloud"
+          "piwik"
+        ];
+      };
+
+      ensureUsers = mkOption {
+        default = [];
+        description = ''
+          Ensures that the specified users exist and have at least the ensured permissions.
+          The MySQL users will be identified using Unix socket authentication. This authenticates the Unix user with the
+          same name only, and that without the need for a password.
+          This option will never delete existing users or remove permissions, especially not when the value of this
+          option is changed. This means that users created and permissions assigned once through this option or
+          otherwise have to be removed manually.
+        '';
+        example = [
+          {
+            name = "nextcloud";
+            ensurePermissions = {
+              "nextcloud.*" = "ALL PRIVILEGES";
+            };
+          }
+          {
+            name = "backup";
+            ensurePermissions = {
+              "*.*" = "SELECT, LOCK TABLES";
+            };
+          }
+        ];
+      };
+
       # FIXME: remove this option; it's a really bad idea.
       rootPassword = mkOption {
         default = null;
@@ -305,6 +349,24 @@ in
 
               rm /tmp/mysql_init
             fi
+
+            ${optionalString (cfg.ensureDatabases != []) ''
+              (
+              ${concatMapStrings (database: ''
+                echo "CREATE DATABASE IF NOT EXISTS ${database};"
+              '') cfg.ensureDatabases}
+              ) | ${mysql}/bin/mysql -u root -N
+            ''}
+
+            ${concatMapStrings (user:
+              ''
+                ( echo "CREATE USER IF NOT EXISTS '${user.name}'@'localhost' IDENTIFIED WITH ${if mysql == pkgs.mariadb then "unix_socket" else "auth_socket"};"
+                  ${concatStringsSep "\n" (mapAttrsToList (database: permission: ''
+                  echo "GRANT ${permission} ON ${database} TO '${user.name}'@'localhost';"
+                  '') user.ensurePermissions)}
+                ) | ${mysql}/bin/mysql -u root -N
+              '') cfg.ensureUsers}
+
           ''; # */
       };
 
diff --git a/nixos/modules/services/misc/gogs.nix b/nixos/modules/services/misc/gogs.nix
index ad2e36d04d53..d6e827a53fdf 100644
--- a/nixos/modules/services/misc/gogs.nix
+++ b/nixos/modules/services/misc/gogs.nix
@@ -257,7 +257,7 @@ in
         in the Nix store. Use database.passwordFile instead.'';
 
     # Create database passwordFile default when password is configured.
-    services.gogs.database.passwordFile = mkIf (cfg.database.password != "")
+    services.gogs.database.passwordFile =
       (mkDefault (toString (pkgs.writeTextFile {
         name = "gogs-database-password";
         text = cfg.database.password;
diff --git a/nixos/modules/services/misc/gollum.nix b/nixos/modules/services/misc/gollum.nix
new file mode 100644
index 000000000000..81fb024f9094
--- /dev/null
+++ b/nixos/modules/services/misc/gollum.nix
@@ -0,0 +1,92 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.gollum;
+in
+
+{
+  options.services.gollum = {
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = "Enable the Gollum service.";
+    };
+
+    address = mkOption {
+      type = types.str;
+      default = "0.0.0.0";
+      description = "IP address on which the web server will listen.";
+    };
+
+    port = mkOption {
+      type = types.int;
+      default = 4567;
+      description = "Port on which the web server will run.";
+    };
+
+    extraConfig = mkOption {
+      type = types.lines;
+      default = "";
+      description = "Content of the configuration file";
+    };
+
+    branch = mkOption {
+      type = types.str;
+      default = "master";
+      example = "develop";
+      description = "Git branch to serve";
+    };
+
+    stateDir = mkOption {
+      type = types.path;
+      default = "/var/lib/gollum";
+      description = "Specifies the path of the repository directory. If it does not exist, Gollum will create it on startup.";
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    users.users.gollum = {
+      group = config.users.users.gollum.name;
+      description = "Gollum user";
+      createHome = false;
+    };
+
+    users.groups.gollum = { };
+
+    systemd.services.gollum = {
+      description = "Gollum wiki";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      path = [ pkgs.git ];
+
+      preStart = let
+          userName = config.users.users.gollum.name;
+          groupName = config.users.groups.gollum.name;
+        in ''
+        # All of this is safe to be run on an existing repo
+        mkdir -p ${cfg.stateDir}
+        git init ${cfg.stateDir}
+        chmod 755 ${cfg.stateDir}
+        chown -R ${userName}:${groupName} ${cfg.stateDir}
+      '';
+
+      serviceConfig = {
+        User = config.users.extraUsers.gollum.name;
+        Group = config.users.extraGroups.gollum.name;
+        PermissionsStartOnly = true;
+        ExecStart = ''
+          ${pkgs.gollum}/bin/gollum \
+            --port ${toString cfg.port} \
+            --host ${cfg.address} \
+            --config ${builtins.toFile "gollum-config.rb" cfg.extraConfig} \
+            --ref ${cfg.branch} \
+            ${cfg.stateDir}
+        '';
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix
index cd320c5c4620..36e5efecf431 100644
--- a/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/nixos/modules/services/network-filesystems/ipfs.nix
@@ -6,7 +6,7 @@ let
   cfg = config.services.ipfs;
 
   ipfsFlags = toString ([
-    #(optionalString  cfg.autoMount                   "--mount")
+    (optionalString  cfg.autoMount                   "--mount")
     (optionalString  cfg.autoMigrate                 "--migrate")
     (optionalString  cfg.enableGC                    "--enable-gc")
     (optionalString (cfg.serviceFdlimit != null)     "--manage-fdlimit=false")
@@ -37,9 +37,10 @@ let
   baseService = recursiveUpdate commonEnv {
     wants = [ "ipfs-init.service" ];
     preStart = ''
+      ipfs repo fsck # workaround for BUG #4212 (https://github.com/ipfs/go-ipfs/issues/4214)
       ipfs --local config Addresses.API ${cfg.apiAddress}
       ipfs --local config Addresses.Gateway ${cfg.gatewayAddress}
-    '' + optionalString false/*cfg.autoMount*/ ''
+    '' + optionalString cfg.autoMount ''
       ipfs --local config Mounts.FuseAllowOther --json true
       ipfs --local config Mounts.IPFS ${cfg.ipfsMountDir}
       ipfs --local config Mounts.IPNS ${cfg.ipnsMountDir}
@@ -91,24 +92,22 @@ in {
       };
 
       defaultMode = mkOption {
-        description = "systemd service that is enabled by default";
         type = types.enum [ "online" "offline" "norouting" ];
         default = "online";
+        description = "systemd service that is enabled by default";
       };
 
       autoMigrate = mkOption {
         type = types.bool;
         default = false;
-        description = ''
-          Whether IPFS should try to migrate the file system automatically.
-        '';
+        description = "Whether IPFS should try to migrate the file system automatically";
       };
 
-      #autoMount = mkOption {
-      #  type = types.bool;
-      #  default = false;
-      #  description = "Whether IPFS should try to mount /ipfs and /ipns at startup.";
-      #};
+      autoMount = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether IPFS should try to mount /ipfs and /ipns at startup.";
+      };
 
       ipfsMountDir = mkOption {
         type = types.str;
@@ -137,26 +136,22 @@ in {
       enableGC = mkOption {
         type = types.bool;
         default = false;
-        description = ''
-          Whether to enable automatic garbage collection.
-        '';
+        description = "Whether to enable automatic garbage collection";
       };
 
       emptyRepo = mkOption {
         type = types.bool;
         default = false;
-        description = ''
-          If set to true, the repo won't be initialized with help files
-        '';
+        description = "If set to true, the repo won't be initialized with help files";
       };
 
       extraConfig = mkOption {
         type = types.attrs;
-        description = toString [
-          "Attrset of daemon configuration to set using `ipfs config`, every time the daemon starts."
-          "These are applied last, so may override configuration set by other options in this module."
-          "Keep in mind that this configuration is stateful; i.e., unsetting anything in here does not reset the value to the default!"
-        ];
+        description = ''
+          Attrset of daemon configuration to set using <command>ipfs config</command>, every time the daemon starts.
+          These are applied last, so may override configuration set by other options in this module.
+          Keep in mind that this configuration is stateful; i.e., unsetting anything in here does not reset the value to the default!
+        '';
         default = {};
         example = {
           Datastore.StorageMax = "100GB";
@@ -179,10 +174,8 @@ in {
       serviceFdlimit = mkOption {
         type = types.nullOr types.int;
         default = null;
-        description = ''
-          The fdlimit for the IPFS systemd unit or `null` to have the daemon attempt to manage it.
-        '';
-        example = 256*1024;
+        description = "The fdlimit for the IPFS systemd unit or <literal>null</literal> to have the daemon attempt to manage it";
+        example = 64*1024;
       };
 
     };
@@ -192,6 +185,9 @@ in {
 
   config = mkIf cfg.enable {
     environment.systemPackages = [ wrapped ];
+    environment.etc."fuse.conf" = mkIf cfg.autoMount { text = ''
+      user_allow_other
+    ''; };
 
     users.extraUsers = mkIf (cfg.user == "ipfs") {
       ipfs = {
@@ -211,11 +207,11 @@ in {
       description = "IPFS Initializer";
 
       after = [ "local-fs.target" ];
-      before = [ "ipfs.service" "ipfs-offline.service" ];
+      before = [ "ipfs.service" "ipfs-offline.service" "ipfs-norouting.service" ];
 
       preStart = ''
         install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.dataDir}
-      '' + optionalString false/*cfg.autoMount*/ ''
+      '' + optionalString cfg.autoMount ''
         install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.ipfsMountDir}
         install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.ipnsMountDir}
       '';
diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix
index 763283dfe7a2..9f533eedf6e1 100644
--- a/nixos/modules/services/networking/bind.nix
+++ b/nixos/modules/services/networking/bind.nix
@@ -151,6 +151,15 @@ in
         ";
       };
 
+      resolveLocalQueries = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether bind should resolve local queries (i.e. add 127.0.0.1 to
+          /etc/resolv.conf, overriding networking.nameserver).
+        '';
+      };
+
     };
 
   };
diff --git a/nixos/modules/services/networking/coturn.nix b/nixos/modules/services/networking/coturn.nix
index 65273a4bf939..b3c64490d97e 100644
--- a/nixos/modules/services/networking/coturn.nix
+++ b/nixos/modules/services/networking/coturn.nix
@@ -307,7 +307,8 @@ in {
 
     systemd.services.coturn = {
       description = "coturn TURN server";
-      after = [ "network.target" ];
+      after = [ "network-online.target" ];
+      wants = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
 
       unitConfig = {
diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix
index cdba14be21f0..d283c7624335 100644
--- a/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixos/modules/services/networking/dhcpcd.nix
@@ -153,10 +153,14 @@ in
 
   config = mkIf enableDHCP {
 
-    systemd.services.dhcpcd =
+    systemd.services.dhcpcd = let
+      cfgN = config.networking;
+      hasDefaultGatewaySet = (cfgN.defaultGateway != null && cfgN.defaultGateway.address != "")
+                          || (cfgN.defaultGateway6 != null && cfgN.defaultGateway6.address != "");
+    in
       { description = "DHCP Client";
 
-        wantedBy = [ "network-online.target" ];
+        wantedBy = optional (!hasDefaultGatewaySet) "network-online.target";
         after = [ "network.target" ];
         wants = [ "network.target" ];
 
diff --git a/nixos/modules/services/networking/dnsmasq.nix b/nixos/modules/services/networking/dnsmasq.nix
index fcf5aa5f175b..3d1b931de07e 100644
--- a/nixos/modules/services/networking/dnsmasq.nix
+++ b/nixos/modules/services/networking/dnsmasq.nix
@@ -42,7 +42,7 @@ in
         default = true;
         description = ''
           Whether dnsmasq should resolve local queries (i.e. add 127.0.0.1 to
-          /etc/resolv.conf).
+          /etc/resolv.conf overriding networking.nameservers).
         '';
       };
 
diff --git a/nixos/modules/services/networking/radicale.nix b/nixos/modules/services/networking/radicale.nix
index f1b8edf43713..56f2e976cff5 100644
--- a/nixos/modules/services/networking/radicale.nix
+++ b/nixos/modules/services/networking/radicale.nix
@@ -48,6 +48,12 @@ in
         configuration file.
       '';
     };
+
+    services.radicale.extraArgs = mkOption {
+      type = types.listOf types.string;
+      default = [];
+      description = "Extra arguments passed to the Radicale daemon.";
+    };
   };
 
   config = mkIf cfg.enable {
@@ -71,7 +77,11 @@ in
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       serviceConfig = {
-        ExecStart = "${cfg.package}/bin/radicale -C ${confFile} -f";
+        ExecStart = concatStringsSep " " ([
+          "${cfg.package}/bin/radicale" "-C" confFile
+        ] ++ (
+          map escapeShellArg cfg.extraArgs
+        ));
         User = "radicale";
         Group = "radicale";
       };
diff --git a/nixos/modules/services/networking/squid.nix b/nixos/modules/services/networking/squid.nix
new file mode 100644
index 000000000000..b220c21b604f
--- /dev/null
+++ b/nixos/modules/services/networking/squid.nix
@@ -0,0 +1,169 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.squid;
+
+
+  squidConfig = pkgs.writeText "squid.conf"
+    (if cfg.configText != null then cfg.configText else
+    ''
+    #
+    # Recommended minimum configuration (3.5):
+    #
+
+    # Example rule allowing access from your local networks.
+    # Adapt to list your (internal) IP networks from where browsing
+    # should be allowed
+    acl localnet src 10.0.0.0/8     # RFC 1918 possible internal network
+    acl localnet src 172.16.0.0/12  # RFC 1918 possible internal network
+    acl localnet src 192.168.0.0/16 # RFC 1918 possible internal network
+    acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines
+    acl localnet src fc00::/7       # RFC 4193 local private network range
+    acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
+
+    acl SSL_ports port 443          # https
+    acl Safe_ports port 80          # http
+    acl Safe_ports port 21          # ftp
+    acl Safe_ports port 443         # https
+    acl Safe_ports port 70          # gopher
+    acl Safe_ports port 210         # wais
+    acl Safe_ports port 1025-65535  # unregistered ports
+    acl Safe_ports port 280         # http-mgmt
+    acl Safe_ports port 488         # gss-http
+    acl Safe_ports port 591         # filemaker
+    acl Safe_ports port 777         # multiling http
+    acl CONNECT method CONNECT
+
+    #
+    # Recommended minimum Access Permission configuration:
+    #
+    # Deny requests to certain unsafe ports
+    http_access deny !Safe_ports
+
+    # Deny CONNECT to other than secure SSL ports
+    http_access deny CONNECT !SSL_ports
+
+    # Only allow cachemgr access from localhost
+    http_access allow localhost manager
+    http_access deny manager
+
+    # We strongly recommend the following be uncommented to protect innocent
+    # web applications running on the proxy server who think the only
+    # one who can access services on "localhost" is a local user
+    http_access deny to_localhost
+
+    # Application logs to syslog, access and store logs have specific files
+    cache_log       syslog
+    access_log      stdio:/var/log/squid/access.log
+    cache_store_log stdio:/var/log/squid/store.log
+
+    # Required by systemd service
+    pid_filename    /run/squid.pid
+
+    # Run as user and group squid
+    cache_effective_user squid squid
+
+    #
+    # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
+    #
+    ${cfg.extraConfig}
+
+    # Example rule allowing access from your local networks.
+    # Adapt localnet in the ACL section to list your (internal) IP networks
+    # from where browsing should be allowed
+    http_access allow localnet
+    http_access allow localhost
+
+    # And finally deny all other access to this proxy
+    http_access deny all
+
+    # Squid normally listens to port 3128
+    http_port ${toString cfg.proxyPort}
+
+    # Leave coredumps in the first cache dir
+    coredump_dir /var/cache/squid
+
+    #
+    # Add any of your own refresh_pattern entries above these.
+    #
+    refresh_pattern ^ftp:           1440    20%     10080
+    refresh_pattern ^gopher:        1440    0%      1440
+    refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
+    refresh_pattern .               0       20%     4320
+  '');
+
+in
+
+{
+
+  options = {
+
+    services.squid = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to run squid web proxy.";
+      };
+
+      proxyPort = mkOption {
+        type = types.int;
+        default = 3128;
+        description = "TCP port on which squid will listen.";
+      };
+
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = ''
+          Squid configuration. Contents will be added
+          verbatim to the configuration file.
+        '';
+      };
+
+      configText = mkOption {
+        type = types.nullOr types.lines;
+        default = null;
+        description = ''
+          Verbatim contents of squid.conf. If null (default), use the
+          autogenerated file from NixOS instead.
+        '';
+      };
+
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    users.users.squid = {
+      isSystemUser = true;
+      group = "squid";
+      home = "/var/cache/squid";
+      createHome = true;
+    };
+
+    users.groups.squid = {};
+
+    systemd.services.squid = {
+      description = "Squid caching web proxy";
+      after = [ "network.target" "nss-lookup.target" ];
+      wantedBy = [ "multi-user.target"];
+      preStart = ''
+        mkdir -p "/var/log/squid"
+        chown squid:squid "/var/log/squid"
+      '';
+      serviceConfig = {
+        Type="forking";
+        PIDFile="/run/squid.pid";
+        PermissionsStartOnly = true;
+        ExecStart  = "${pkgs.squid}/bin/squid -YCs -f ${squidConfig}";
+      };
+    };
+
+  };
+
+}
\ No newline at end of file
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index 0f58536b4b73..8828429a8178 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -103,6 +103,15 @@ in
         '';
       };
 
+      sftpFlags = mkOption {
+        type = with types; listOf str;
+        default = [];
+        example = [ "-f AUTHPRIV" "-l INFO" ];
+        description = ''
+          Commandline flags to add to sftp-server.
+        '';
+      };
+
       permitRootLogin = mkOption {
         default = "prohibit-password";
         type = types.enum ["yes" "without-password" "prohibit-password" "forced-commands-only" "no"];
@@ -208,7 +217,7 @@ in
       };
 
       moduliFile = mkOption {
-        example = "services.openssh.moduliFile = /etc/my-local-ssh-moduli;";
+        example = "/etc/my-local-ssh-moduli;";
         type = types.path;
         description = ''
           Path to <literal>moduli</literal> file to install in
@@ -338,7 +347,7 @@ in
         ''}
 
         ${optionalString cfg.allowSFTP ''
-          Subsystem sftp ${cfgc.package}/libexec/sftp-server
+          Subsystem sftp ${cfgc.package}/libexec/sftp-server ${concatStringsSep " " cfg.sftpFlags}
         ''}
 
         PermitRootLogin ${cfg.permitRootLogin}
diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix
index 7a786b54ccbb..d5db328310c1 100644
--- a/nixos/modules/services/networking/tinc.nix
+++ b/nixos/modules/services/networking/tinc.nix
@@ -199,8 +199,10 @@ in
         buildInputs = [ pkgs.makeWrapper ];
         buildCommand = ''
           mkdir -p $out/bin
-          ${concatStringsSep "\n" (mapAttrsToList (network: data: ''
-              makeWrapper ${data.package}/bin/tinc "$out/bin/tinc.${network}" --add-flags "--pidfile=/run/tinc.${network}.pid"
+          ${concatStringsSep "\n" (mapAttrsToList (network: data:
+            optionalString (versionAtLeast data.package.version "1.1pre") ''
+              makeWrapper ${data.package}/bin/tinc "$out/bin/tinc.${network}" \
+                --add-flags "--pidfile=/run/tinc.${network}.pid"
             '') cfg.networks)}
         '';
       };
diff --git a/nixos/modules/services/security/hologram-agent.nix b/nixos/modules/services/security/hologram-agent.nix
index 49b5c935267b..6c53a2df6306 100644
--- a/nixos/modules/services/security/hologram-agent.nix
+++ b/nixos/modules/services/security/hologram-agent.nix
@@ -33,6 +33,8 @@ in {
   };
 
   config = mkIf cfg.enable {
+    boot.kernelModules = [ "dummy" ];
+
     networking.interfaces.dummy0 = {
       ipAddress = "169.254.169.254";
       prefixLength = 32;
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 15b36cfcb113..adc048f3ca2c 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -73,6 +73,9 @@ let
           then [ "${dev}-netdev.service" ]
           else optional (dev != null && dev != "lo" && !config.boot.isContainer) (subsystemDevice dev);
 
+        hasDefaultGatewaySet = (cfg.defaultGateway != null && cfg.defaultGateway.address != "")
+                            || (cfg.defaultGateway6 != null && cfg.defaultGateway6.address != "");
+
         networkLocalCommands = {
           after = [ "network-setup.service" ];
           bindsTo = [ "network-setup.service" ];
@@ -85,7 +88,7 @@ let
             before = [ "network.target" "shutdown.target" ];
             wants = [ "network.target" ];
             conflicts = [ "shutdown.target" ];
-            wantedBy = [ "multi-user.target" ];
+            wantedBy = [ "multi-user.target" ] ++ optional hasDefaultGatewaySet "network-online.target";
 
             unitConfig.ConditionCapability = "CAP_NET_ADMIN";
 
@@ -102,7 +105,7 @@ let
               ''
                 # Set the static DNS configuration, if given.
                 ${pkgs.openresolv}/sbin/resolvconf -m 1 -a static <<EOF
-                ${optionalString (cfg.nameservers != [] && cfg.domain != null) ''
+                ${optionalString (cfg.domain != null) ''
                   domain ${cfg.domain}
                 ''}
                 ${optionalString (cfg.search != []) ("search " + concatStringsSep " " cfg.search)}
diff --git a/nixos/release.nix b/nixos/release.nix
index cbb566af7863..a200535f3f4a 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -254,10 +254,12 @@ in rec {
   tests.gocd-server = callTest tests/gocd-server.nix {};
   tests.gnome3 = callTest tests/gnome3.nix {};
   tests.gnome3-gdm = callTest tests/gnome3-gdm.nix {};
+  tests.grafama = callTest tests/grafana.nix {};
   tests.hardened = callTest tests/hardened.nix { };
   tests.hibernate = callTest tests/hibernate.nix {};
   tests.hound = callTest tests/hound.nix {};
   tests.i3wm = callTest tests/i3wm.nix {};
+  tests.initrd-network-ssh = callTest tests/initrd-network-ssh.nix {};
   tests.installer = callSubTests tests/installer.nix {};
   tests.influxdb = callTest tests/influxdb.nix {};
   tests.ipv6 = callTest tests/ipv6.nix {};
diff --git a/nixos/tests/grafana.nix b/nixos/tests/grafana.nix
new file mode 100644
index 000000000000..16b8181498a6
--- /dev/null
+++ b/nixos/tests/grafana.nix
@@ -0,0 +1,25 @@
+import ./make-test.nix ({ lib, ... }:
+{
+  name = "grafana";
+
+  meta = with lib.maintainers; {
+    maintainers = [ willibutz ];
+  };
+
+  machine = { config, pkgs, ... }: {
+    services.grafana = {
+      enable = true;
+      addr = "localhost";
+      analytics.reporting.enable = false;
+      domain = "localhost";
+      security.adminUser = "testusername";
+    };
+  };
+
+  testScript = ''
+    $machine->start;
+    $machine->waitForUnit("grafana.service");
+    $machine->waitForOpenPort(3000);
+    $machine->succeed("curl -sS http://127.0.0.1:3000/");
+  '';
+})
diff --git a/nixos/tests/initrd-network-ssh.nix b/nixos/tests/initrd-network-ssh.nix
new file mode 100644
index 000000000000..596610493921
--- /dev/null
+++ b/nixos/tests/initrd-network-ssh.nix
@@ -0,0 +1,74 @@
+import ./make-test.nix ({ pkgs, lib, ... }:
+
+let
+  keys = pkgs.runCommand "gen-keys" {
+    outputs = [ "out" "dbPub" "dbPriv" "sshPub" "sshPriv" ];
+    buildInputs = with pkgs; [ dropbear openssh ];
+  }
+  ''
+    touch $out
+    dropbearkey -t rsa -f $dbPriv -s 4096 | sed -n 2p > $dbPub
+    ssh-keygen -q -t rsa -b 4096 -N "" -f client
+    mv client $sshPriv
+    mv client.pub $sshPub
+  '';
+
+in {
+  name = "initrd-network-ssh";
+  meta = with lib.maintainers; {
+    maintainers = [ willibutz ];
+  };
+
+  nodes = with lib; rec {
+    server =
+      { config, pkgs, ... }:
+      {
+        boot.kernelParams = [
+          "ip=${
+            (head config.networking.interfaces.eth1.ip4).address
+          }:::255.255.255.0::eth1:none"
+        ];
+        boot.initrd.network = {
+          enable = true;
+          ssh = {
+            enable = true;
+            authorizedKeys = [ "${readFile keys.sshPub}" ];
+            port = 22;
+            hostRSAKey = keys.dbPriv;
+          };
+        };
+        boot.initrd.preLVMCommands = ''
+          while true; do
+            if [ -f fnord ]; then
+              poweroff
+            fi
+            sleep 1
+          done
+        '';
+      };
+
+    client =
+      { config, pkgs, ... }:
+      {
+        environment.etc.knownHosts = {
+          text = concatStrings [
+            "server,"
+            "${toString (head (splitString " " (
+              toString (elemAt (splitString "\n" config.networking.extraHosts) 2)
+            )))} "
+            "${readFile keys.dbPub}"
+          ];
+        };
+      };
+  };
+
+  testScript = ''
+    startAll;
+    $client->waitForUnit("network.target");
+    $client->copyFileFromHost("${keys.sshPriv}","/etc/sshKey");
+    $client->succeed("chmod 0600 /etc/sshKey");
+    $client->waitUntilSucceeds("ping -c 1 server");
+    $client->succeed("ssh -i /etc/sshKey -o UserKnownHostsFile=/etc/knownHosts server 'touch /fnord'");
+    $client->shutdown;
+  '';
+})
diff --git a/nixos/tests/ipfs.nix b/nixos/tests/ipfs.nix
index a93f8f175c55..c6bc61545245 100644
--- a/nixos/tests/ipfs.nix
+++ b/nixos/tests/ipfs.nix
@@ -23,8 +23,7 @@ import ./make-test.nix ({ pkgs, ...} : {
         services.ipfs = {
           enable = true;
           defaultMode = "norouting";
-          # not yet. See #28621
-          #autoMount = true;
+          autoMount = true;
         };
         networking.firewall.allowedTCPPorts = [ 4001 ];
       };
@@ -51,7 +50,6 @@ import ./make-test.nix ({ pkgs, ...} : {
 
     $getter->mustSucceed("ipfs --api /ip4/127.0.0.1/tcp/5001 swarm connect /ip4/$addrIp/tcp/4001/ipfs/$addrId");
     $getter->mustSucceed("[ -n \"\$(ipfs --api /ip4/127.0.0.1/tcp/5001 cat /ipfs/$ipfsHash | grep fnord)\" ]");
-    # not yet. See #28621
-    # $getter->mustSucceed("[ -n \"$(cat /ipfs/$ipfsHash | grep fnord)\" ]");
+    $getter->mustSucceed("[ -n \"$(cat /ipfs/$ipfsHash | grep fnord)\" ]");
     '';
 })
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index 6a7e628d8ef1..7708775f73f3 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -105,7 +105,7 @@ let
           startAll;
 
           $client->waitForUnit("network.target");
-          $router->waitForUnit("network.target");
+          $router->waitForUnit("network-online.target");
 
           # Make sure dhcpcd is not started
           $client->fail("systemctl status dhcpcd.service");
@@ -157,7 +157,7 @@ let
           startAll;
 
           $client->waitForUnit("network.target");
-          $router->waitForUnit("network.target");
+          $router->waitForUnit("network-online.target");
 
           # Wait until we have an ip address on each interface
           $client->waitUntilSucceeds("ip addr show dev eth1 | grep -q '192.168.1'");
diff --git a/nixos/tests/radicale.nix b/nixos/tests/radicale.nix
index bec86d2cb284..2c888469d0a4 100644
--- a/nixos/tests/radicale.nix
+++ b/nixos/tests/radicale.nix
@@ -2,12 +2,8 @@ let
   user = "someuser";
   password = "some_password";
   port = builtins.toString 5232;
-in
-  import ./make-test.nix ({ pkgs, lib, ... }: {
-  name = "radicale";
-  meta.maintainers = with lib.maintainers; [ aneeshusa infinisil ];
 
-  machine = {
+  common = { pkgs, ... }: {
     services.radicale = {
       enable = true;
       config = ''
@@ -29,11 +25,81 @@ in
       ${pkgs.apacheHttpd}/bin/htpasswd -bcB "$out" ${user} ${password}
     '';
   };
-  
-  # This tests whether the web interface is accessible to an authenticated user
-  testScript = ''
-    $machine->waitForUnit('radicale.service');
-    $machine->waitForOpenPort(${port});
-    $machine->succeed('curl --fail http://${user}:${password}@localhost:${port}/.web/');
-  '';
+
+in
+
+  import ./make-test.nix ({ pkgs, lib, ... }@args: {
+    name = "radicale";
+    meta.maintainers = with lib.maintainers; [ aneeshusa infinisil ];
+
+    nodes = rec {
+      radicale = radicale1; # Make the test script read more nicely
+      radicale1 = lib.recursiveUpdate (common args) {
+        nixpkgs.overlays = [
+          (self: super: {
+            radicale1 = super.radicale1.overrideAttrs (oldAttrs: {
+              propagatedBuildInputs = with self.pythonPackages;
+                (oldAttrs.propagatedBuildInputs or []) ++ [ passlib ];
+            });
+          })
+        ];
+      };
+      radicale1_export = lib.recursiveUpdate radicale1 {
+        services.radicale.extraArgs = [
+          "--export-storage" "/tmp/collections-new"
+        ];
+      };
+      radicale2_verify = lib.recursiveUpdate radicale2 {
+        services.radicale.extraArgs = [ "--verify-storage" ];
+      };
+      radicale2 = lib.recursiveUpdate (common args) {
+        system.stateVersion = "17.09";
+      };
+    };
+
+    # This tests whether the web interface is accessible to an authenticated user
+    testScript = { nodes }: let
+      switchToConfig = nodeName: let
+        newSystem = nodes.${nodeName}.config.system.build.toplevel;
+      in "${newSystem}/bin/switch-to-configuration test";
+    in ''
+      # Check Radicale 1 functionality
+      $radicale->succeed('${switchToConfig "radicale1"} >&2');
+      $radicale->waitForUnit('radicale.service');
+      $radicale->waitForOpenPort(${port});
+      $radicale->succeed('curl --fail http://${user}:${password}@localhost:${port}/someuser/calendar.ics/');
+
+      # Export data in Radicale 2 format
+      $radicale->succeed('systemctl stop radicale');
+      $radicale->succeed('ls -al /tmp/collections');
+      $radicale->fail('ls -al /tmp/collections-new');
+      # Radicale exits immediately after exporting storage
+      $radicale->succeed('${switchToConfig "radicale1_export"} >&2');
+      $radicale->waitUntilFails('systemctl status radicale');
+      $radicale->succeed('ls -al /tmp/collections');
+      $radicale->succeed('ls -al /tmp/collections-new');
+
+      # Verify data in Radicale 2 format
+      $radicale->succeed('rm -r /tmp/collections/${user}');
+      $radicale->succeed('mv /tmp/collections-new/collection-root /tmp/collections');
+      $radicale->succeed('${switchToConfig "radicale2_verify"} >&2');
+      $radicale->waitUntilFails('systemctl status radicale');
+      my ($retcode, $logs) = $radicale->execute('journalctl -u radicale -n 5');
+      if ($retcode != 0 || index($logs, 'Verifying storage') == -1) {
+        die "Radicale 2 didn't verify storage"
+      }
+      if (index($logs, 'failed') != -1 || index($logs, 'exception') != -1) {
+        die "storage verification failed"
+      }
+
+      # Check Radicale 2 functionality
+      $radicale->succeed('${switchToConfig "radicale2"} >&2');
+      $radicale->waitForUnit('radicale.service');
+      $radicale->waitForOpenPort(${port});
+      my ($retcode, $output) = $radicale->execute('curl --fail http://${user}:${password}@localhost:${port}/someuser/calendar.ics/');
+      if ($retcode != 0 || index($output, 'VCALENDAR') == -1) {
+        die "Could not read calendar from Radicale 2"
+      }
+      $radicale->succeed('curl --fail http://${user}:${password}@localhost:${port}/.web/');
+    '';
 })
diff --git a/pkgs/applications/altcoins/bitcoin.nix b/pkgs/applications/altcoins/bitcoin.nix
index 9fb7df9fecdc..d2083f4ecfb2 100644
--- a/pkgs/applications/altcoins/bitcoin.nix
+++ b/pkgs/applications/altcoins/bitcoin.nix
@@ -5,13 +5,13 @@
 with stdenv.lib;
 stdenv.mkDerivation rec{
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version;
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchurl {
     urls = [ "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
              "mirror://sourceforge/bitcoin/Bitcoin/bitcoin-${version}/bitcoin-${version}.tar.gz"
            ];
-    sha256 = "07k4i9r033dsvkp5ii5g3hykidm8b19c8c0mz1bi8k0dda3d8hyp";
+    sha256 = "18gj5gdscarv2a1hdgjps50czwi4hrmrrmhssaag55ysh94zbdjl";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 95f3c0801d2a..9aae3991ae26 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -253,19 +253,6 @@ in
     update-channel = "gogland_1.0_EAP";
   };
 
-  idea14-community = buildIdea rec {
-    name = "idea-community-${version}";
-    version = "14.1.7";
-    description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
-    license = stdenv.lib.licenses.asl20;
-    src = fetchurl {
-      url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "1i4mdjm9dd6zvxlpdgd3bqg45ir0cfc9hl55cdc0hg5qwbz683fz";
-    };
-    wmClass = "jetbrains-idea-ce";
-    update-channel = "IDEA14.1";
-  };
-
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
     version = "2017.2.2"; /* updated by script */
@@ -279,32 +266,6 @@ in
     update-channel = "IDEA_Release";
   };
 
-  idea14-ultimate = buildIdea rec {
-    name = "idea-ultimate-${version}";
-    version = "14.1.7";
-    description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
-    license = stdenv.lib.licenses.unfree;
-    src = fetchurl {
-      url = "https://download.jetbrains.com/idea/ideaIU-${version}.tar.gz";
-      sha256 = "1hhga1i2zbsipgq283gn19kv9n94inhr1bxh2yx19gz7yr4r49d2";
-    };
-    wmClass = "jetbrains-idea";
-    update-channel = "IDEA14.1";
-  };
-
-  idea15-ultimate = buildIdea rec {
-    name = "idea-ultimate-${version}";
-    version = "15.0.6";
-    description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
-    license = stdenv.lib.licenses.unfree;
-    src = fetchurl {
-      url = "https://download.jetbrains.com/idea/ideaIU-${version}.tar.gz";
-      sha256 = "012aap2qn0jx4x34bdv9ivrsr86vvf683srb5vpj27hc4l6rw6ll";
-    };
-    wmClass = "jetbrains-idea";
-    update-channel = null;
-  };
-
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
     version = "2017.2.2"; /* updated by script */
@@ -331,19 +292,6 @@ in
     update-channel = "PS2017.2";
   };
 
-  phpstorm10 = buildPhpStorm rec {
-    name = "phpstorm-${version}";
-    version = "10.0.4";
-    description = "Professional IDE for Web and PHP developers";
-    license = stdenv.lib.licenses.unfree;
-    src = fetchurl {
-      url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "0fi042zvjpg5pn2mnhj3bbrdkl1b9vmhpf2l6ca4nr0rhjjv7dsm";
-    };
-    wmClass = "jetbrains-phpstorm";
-    update-channel = "WI10";
-  };
-
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
     version = "2017.2.2"; /* updated by script */
@@ -396,32 +344,6 @@ in
     update-channel = "rm2017.1";
   };
 
-  ruby-mine7 = buildRubyMine rec {
-    name = "ruby-mine-${version}";
-    version = "7.1.5";
-    description = "The Most Intelligent Ruby and Rails IDE";
-    license = stdenv.lib.licenses.unfree;
-    src = fetchurl {
-      url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "04fcxj1xlap9mxmwf051s926p2darlj5kwl4lms2gy5d8b2lhd5l";
-    };
-    wmClass = "jetbrains-rubymine";
-    update-channel = null;
-  };
-
-  ruby-mine8 = buildRubyMine rec {
-    name = "ruby-mine-${version}";
-    version = "8.0.4";
-    description = "The Most Intelligent Ruby and Rails IDE";
-    license = stdenv.lib.licenses.unfree;
-    src = fetchurl {
-      url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "0hipxib7377232w1jbf8h98bmh0djkllsrq3lq0w3fdxqglma43a";
-    };
-    wmClass = "jetbrains-rubymine";
-    update-channel = null;
-  };
-
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
     version = "2017.2.2"; /* updated by script */
@@ -435,29 +357,4 @@ in
     update-channel = "WS_Release";
   };
 
-  webstorm10 = buildWebStorm rec {
-    name = "webstorm-${version}";
-    version = "10.0.5";
-    description = "Professional IDE for Web and JavaScript development";
-    license = stdenv.lib.licenses.unfree;
-    src = fetchurl {
-      url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "0a5s6f99wyql5pgjl94pf4ljdbviik3b8dbr1s6b7c6jn1gk62ic";
-    };
-    wmClass = "jetbrains-webstorm";
-    update-channel = null;
-  };
-
-  webstorm11 = buildWebStorm rec {
-    name = "webstorm-${version}";
-    version = "11.0.4";
-    description = "Professional IDE for Web and JavaScript development";
-    license = stdenv.lib.licenses.unfree;
-    src = fetchurl {
-      url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "17agyqdyz6naxyx6p0y240ar93gja0ypw01nm2qmfzvh7ch03r24";
-    };
-    wmClass = "jetbrains-webstorm";
-    update-channel = null;
-  };
 }
diff --git a/pkgs/applications/editors/jetbrains/update.pl b/pkgs/applications/editors/jetbrains/update.pl
index fecdeb0cae84..0c551d994a94 100755
--- a/pkgs/applications/editors/jetbrains/update.pl
+++ b/pkgs/applications/editors/jetbrains/update.pl
@@ -60,10 +60,13 @@ sub update_nix_block {
       die "$url still has some interpolation" if $url =~ /\$/;
 
       my ($sha256) = get("$url.sha256") =~ /^([0-9a-f]{64})/;
-      die "invalid sha256 in $url.sha256" unless $sha256;
+      my ($sha256Base32) = readpipe("nix-hash --type sha256 --to-base32 $sha256");
+      chomp $sha256Base32;
+      print "Jetbrains published SHA256: $sha256\n";
+      print "Conversion into base32 yeilds: $sha256Base32\n";
 
       $block =~ s#version\s*=\s*"([^"]+)".+$#version = "$latest_versions{$channel}"; /* updated by script */#m;
-      $block =~ s#sha256\s*=\s*"([^"]+)".+$#sha256 = "$sha256"; /* updated by script */#m;
+      $block =~ s#sha256\s*=\s*"([^"]+)".+$#sha256 = "$sha256Base32"; /* updated by script */#m;
     }
   }
   return $block;
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix
index 4eefb207fd75..2f110749277c 100644
--- a/pkgs/applications/editors/vim/default.nix
+++ b/pkgs/applications/editors/vim/default.nix
@@ -18,9 +18,9 @@ stdenv.mkDerivation rec {
 
   inherit (common) version src postPatch hardeningDisable enableParallelBuilding meta;
 
-  buildInputs = [ ncurses pkgconfig ]
+  nativeBuildInputs = [ gettext pkgconfig ];
+  buildInputs = [ ncurses ]
     ++ stdenv.lib.optionals hostPlatform.isDarwin [ Carbon Cocoa ];
-  nativeBuildInputs = [ gettext ];
 
   configureFlags = [
     "--enable-multibyte"
diff --git a/pkgs/applications/graphics/potrace/default.nix b/pkgs/applications/graphics/potrace/default.nix
index 82fa4d5ee95b..132136da658b 100644
--- a/pkgs/applications/graphics/potrace/default.nix
+++ b/pkgs/applications/graphics/potrace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "potrace-${version}";
-  version = "1.14";
+  version = "1.15";
 
   src = fetchurl {
     url = "http://potrace.sourceforge.net/download/${version}/potrace-${version}.tar.gz";
-    sha256 = "0znr9i0ljb818qiwm22zw63g11a4v08gc5xkh0wbdp6g259vcwnv";
+    sha256 = "17ajildjp14shsy339xarh1lw1p0k60la08ahl638a73mh23kcx9";
   };
 
   configureFlags = [ "--with-libpotrace" ];
diff --git a/pkgs/applications/misc/alacritty/default.nix b/pkgs/applications/misc/alacritty/default.nix
index 2316ce5ab298..79333e7d9fa1 100644
--- a/pkgs/applications/misc/alacritty/default.nix
+++ b/pkgs/applications/misc/alacritty/default.nix
@@ -46,17 +46,24 @@ buildRustPackage rec {
     pkgconfig
   ] ++ rpathLibs;
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace copypasta/src/x11.rs \
       --replace Command::new\(\"xclip\"\) Command::new\(\"${xclip}/bin/xclip\"\)
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
     for f in $(find target/release -maxdepth 1 -type f); do
       cp $f $out/bin
     done;
     patchelf --set-rpath "${stdenv.lib.makeLibraryPath rpathLibs}" $out/bin/alacritty
+
+    mkdir -p $out/share/applications
+    cp Alacritty.desktop $out/share/applications/alacritty.desktop
+
+    runHook postInstall
   '';
 
   dontPatchELF = true;
diff --git a/pkgs/applications/misc/lenmus/default.nix b/pkgs/applications/misc/lenmus/default.nix
index 4ac0dc2eb944..b78a226b6145 100644
--- a/pkgs/applications/misc/lenmus/default.nix
+++ b/pkgs/applications/misc/lenmus/default.nix
@@ -16,10 +16,6 @@ stdenv.mkDerivation rec {
     sha256 = "1n639xr1qxx6rhqs0c6sjxp3bv8cwkmw1vfk1cji7514gj2a9v3p";
   };
 
-  cmakeFlags = [
-    "-DCMAKE_INSALL_PREFIX=$out"
-  ];
-
   enableParallelBuilding = true;
 
   patches = [
diff --git a/pkgs/applications/misc/valauncher/default.nix b/pkgs/applications/misc/valauncher/default.nix
index 7d35f1f64a8e..00a60ae50a48 100644
--- a/pkgs/applications/misc/valauncher/default.nix
+++ b/pkgs/applications/misc/valauncher/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, cmake, gtk3, vala_0_26, pkgconfig, gnome3 }:
+{ stdenv, fetchFromGitHub, cmake, gtk3, vala, pkgconfig, gnome3 }:
 
 stdenv.mkDerivation rec {
-  version = "1.2";
+  version = "1.3.1";
   name = "valauncher-${version}";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "valauncher";
     rev = "v${version}";
-    sha256 = "1d1gfmzmr5ra2rnjc6rbz31mf3hk7q04lh4i1hljgk7fh90dacb6";
+    sha256 = "18969v870737jg1q0l3d05pb9mxsrcpdi0mnyz94rwkspszvxxqi";
   };
 
-  buildInputs = [ cmake gtk3 vala_0_26 pkgconfig gnome3.libgee ];
+  buildInputs = [ cmake gtk3 vala pkgconfig gnome3.libgee ];
 
   meta = with stdenv.lib; {
       description = "A fast dmenu-like gtk3 application launcher";
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index b967777883cd..4f179c29996f 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -10,14 +10,14 @@
 
 stdenv.mkDerivation rec {
   name = "palemoon-${version}";
-  version = "27.4.1";
+  version = "27.4.2";
 
   src = fetchFromGitHub {
     name   = "palemoon-src";
     owner  = "MoonchildProductions";
     repo   = "Pale-Moon";
     rev    = version + "_Release";
-    sha256 = "0sgy0iq038pj676w6k5nwbavrdmrznhydjibdpj6irdz5qxxdgjn";
+    sha256 = "155c1a76kkx9p8cnz9d33xx30asjr32x10cccx0gyq1lm1b9ffbl";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/networking/feedreaders/newsbeuter/default.nix b/pkgs/applications/networking/feedreaders/newsbeuter/default.nix
index e570a6e7c10e..cf7e4fdcb140 100644
--- a/pkgs/applications/networking/feedreaders/newsbeuter/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsbeuter/default.nix
@@ -31,7 +31,12 @@ stdenv.mkDerivation rec {
       url = "https://github.com/akrennmair/newsbeuter/commit/33577f842d9b74c119f3cebda95ef8652304db81.patch";
       sha256 = "1kwhp6k14gk1hclgsr9w47qg7hs60p23zsl6f6vw13mczp2naqlb";
     })
-  ];
+    # https://github.com/akrennmair/newsbeuter/issues/598 / CVE-2017-14500
+    (fetchpatch {
+      url = "https://github.com/akrennmair/newsbeuter/commit/26f5a4350f3ab5507bb8727051c87bb04660f333.patch";
+      sha256 = "1jjxj4z3s4f1n8rfpwyd42a40gjnziykqas6a26s1lsdkklnbp6q";
+    })
+   ];
 
   installFlags = [ "DESTDIR=$(out)" "prefix=" ];
 
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index f36f0956f654..93bc6feff3c2 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -4,7 +4,7 @@
 
 let
 
-  version = "2.7.1";
+  version = "2.8.0";
 
   rpath = stdenv.lib.makeLibraryPath [
     alsaLib
@@ -46,7 +46,7 @@ let
     if stdenv.system == "x86_64-linux" then
       fetchurl {
         url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
-        sha256 = "1na163lr0lfii9z1v4q9a3scqlaxg0s561a9nhadbqj03k74dw6s";
+        sha256 = "02khqi0qf8ryj6bkfla95mr3scvb99zrhihwdprdjqpgvy06wqhm";
       }
     else
       throw "Slack is not supported on ${stdenv.system}";
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
index efafbd9050cd..c14c9ade2dda 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, makeWrapper, makeDesktopItem, zlib, glib, libpng, freetype, openssl
-, xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, xkeyboard_config, alsaLib, libpulseaudio ? null
-, libredirect, quazip, less, which, unzip, llvmPackages
+, xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, qtsvg, xkeyboard_config, alsaLib
+, libpulseaudio ? null, libredirect, quazip, less, which, unzip, llvmPackages
 }:
 
 let
@@ -12,8 +12,8 @@ let
   deps =
     [ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender openssl
       xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama
-      xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsaLib qtbase qtwebengine qtwebchannel libpulseaudio
-      quazip llvmPackages.libcxx llvmPackages.libcxxabi
+      xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsaLib qtbase qtwebengine qtwebchannel qtsvg
+      libpulseaudio quazip llvmPackages.libcxx llvmPackages.libcxxabi
     ];
 
   desktopItem = makeDesktopItem {
@@ -31,7 +31,7 @@ in
 stdenv.mkDerivation rec {
   name = "teamspeak-client-${version}";
 
-  version = "3.1.4";
+  version = "3.1.6";
 
   src = fetchurl {
     urls = [
@@ -39,14 +39,14 @@ stdenv.mkDerivation rec {
       "http://teamspeak.gameserver.gamed.de/ts3/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
     ];
     sha256 = if stdenv.is64bit
-                then "337aec99070366aa3bb82b1bedd8215372b9c74014b198d45d5d6375d1f1c3a8"
-                else "4e126e005b1180655b0847cbdbfc9c47c59c639b7f93f0d988b54a8c4c6ec80f";
+                then "0ncqs5ykk1zsn2lqarf7pr39rbp4h54vaqq1sgqi5irpj6yagzak"
+                else "222e8abb24de9e3ea00fca10be32340ad88859a4d811afa644c5096aada4996d";
   };
 
   # grab the plugin sdk for the desktop icon
   pluginsdk = fetchurl {
-    url = "http://dl.4players.de/ts/client/pluginsdk/pluginsdk_3.0.19.1.zip";
-    sha256 = "1r1ss6zq5axr7h82inlp98zaz50041rizli5bwz3lfyipfr034ya";
+    url = "http://dl.4players.de/ts/client/pluginsdk/pluginsdk_3.1.1.1.zip";
+    sha256 = "1bywmdj54glzd0kffvr27r84n4dsd0pskkbmh59mllbxvj0qwy7f";
   };
 
   buildInputs = [ makeWrapper less which unzip ];
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 8d80da2cdfba..01978a4da7e1 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -32,11 +32,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "claws-mail-${version}";
-  version = "3.15.0";
+  version = "3.15.1";
 
   src = fetchurl {
     url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
-    sha256 = "0bnwd3l04y6j1nw3h861rdy6k6lyjzsi51j04d33vbpq8c6jskaf";
+    sha256 = "0hlm2jipyr4z6izlrpvabpz4ivh49i13avnm848kr1nv68pkq2cd";
   };
 
   patches = [ ./mime.patch ];
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index e82bd462fe32..4e3f0a684239 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -1,14 +1,14 @@
 { stdenv, lib, fetchFromGitHub, go, procps, removeReferencesTo }:
 
 stdenv.mkDerivation rec {
-  version = "0.14.37";
+  version = "0.14.38";
   name = "syncthing-${version}";
 
   src = fetchFromGitHub {
     owner  = "syncthing";
     repo   = "syncthing";
     rev    = "v${version}";
-    sha256 = "0mk09m5wc6g7w65cf86rrvzb2gfzbg4jrkwpsabn732iyhkkaj4z";
+    sha256 = "0afid083azvrihv1v2cas09dprr2fflmj9gi7iy18gvwy2pg0jj8";
   };
 
   buildInputs = [ go removeReferencesTo ];
diff --git a/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix b/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
index 7bcb638b77ec..478c6c4d9062 100644
--- a/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
+++ b/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
@@ -14,18 +14,18 @@
     md5name = "ce977548f1cbf46918e93cd38ac35163-commons-logging-1.2-src.tar.gz";
   }
   {
-    name = "apr-1.4.8.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/apr-1.4.8.tar.gz";
-    sha256 = "1689e415bdfab6aaa41f07836b5dd9ed4901d22ddeb99feffdb2cee3124adf49";
-    md5 = "eff9d741b0999a9bbab96862dd2a2a3d";
-    md5name = "eff9d741b0999a9bbab96862dd2a2a3d-apr-1.4.8.tar.gz";
+    name = "apr-1.5.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/apr-1.5.2.tar.gz";
+    sha256 = "1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb";
+    md5 = "98492e965963f852ab29f9e61b2ad700";
+    md5name = "98492e965963f852ab29f9e61b2ad700-apr-1.5.2.tar.gz";
   }
   {
-    name = "apr-util-1.5.3.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/apr-util-1.5.3.tar.gz";
-    sha256 = "76db34cb508e346e3bf69347c29ed1500bf0b71bcc48d54271ad9d1c25703743";
-    md5 = "71a11d037240b292f824ba1eb537b4e3";
-    md5name = "71a11d037240b292f824ba1eb537b4e3-apr-util-1.5.3.tar.gz";
+    name = "apr-util-1.5.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/apr-util-1.5.4.tar.gz";
+    sha256 = "976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19";
+    md5 = "866825c04da827c6e5f53daff5569f42";
+    md5name = "866825c04da827c6e5f53daff5569f42-apr-util-1.5.4.tar.gz";
   }
   {
     name = "boost_1_60_0.tar.bz2";
@@ -56,18 +56,18 @@
     md5name = "00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
   }
   {
-    name = "cairo-1.10.2.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz";
-    sha256 = "32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41";
-    md5 = "f101a9e88b783337b20b2e26dfd26d5f";
-    md5name = "f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz";
+    name = "cairo-1.14.6.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/23a0b2f0235431d35238df1d3a517fdb-cairo-1.14.6.tar.xz";
+    sha256 = "613cb38447b76a93ff7235e17acd55a78b52ea84a9df128c3f2257f8eaa7b252";
+    md5 = "23a0b2f0235431d35238df1d3a517fdb";
+    md5name = "23a0b2f0235431d35238df1d3a517fdb-cairo-1.14.6.tar.xz";
   }
   {
-    name = "libcdr-0.1.2.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.2.tar.bz2";
-    sha256 = "d05a986dab9f960e64466072653a900d03f8257b084440d9d16599e16060581e";
-    md5 = "6e3062b55b149d7b3c6aedb3bb5b86e2";
-    md5name = "6e3062b55b149d7b3c6aedb3bb5b86e2-libcdr-0.1.2.tar.bz2";
+    name = "libcdr-0.1.3.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.3.tar.bz2";
+    sha256 = "5160bbbfefe52bd4880840fad2b07a512813e37bfaf8ccac062fca238f230f4d";
+    md5 = "e369f30b5b861ee0fc4f9e6cbad701fe";
+    md5name = "e369f30b5b861ee0fc4f9e6cbad701fe-libcdr-0.1.3.tar.bz2";
   }
   {
     name = "clucene-core-2.3.3.4.tar.gz";
@@ -140,18 +140,18 @@
     md5name = "77ff46936dcc83670557274e7dd2aa33-libetonyek-0.1.6.tar.bz2";
   }
   {
-    name = "expat-2.2.0.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/expat-2.2.0.tar.bz2";
-    sha256 = "d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff";
-    md5 = "2f47841c829facb346eb6e3fab5212e2";
-    md5name = "2f47841c829facb346eb6e3fab5212e2-expat-2.2.0.tar.bz2";
+    name = "expat-2.2.3.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/expat-2.2.3.tar.bz2";
+    sha256 = "b31890fb02f85c002a67491923f89bda5028a880fd6c374f707193ad81aace5f";
+    md5 = "f053af63ef5f39bd9b78d01fbc203334";
+    md5name = "f053af63ef5f39bd9b78d01fbc203334-expat-2.2.3.tar.bz2";
   }
   {
-    name = "Firebird-2.5.5.26952-0.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/Firebird-2.5.5.26952-0.tar.bz2";
-    sha256 = "b33e63ede88184d9ef2ae6760537ab75bfe641513821410b83e837946162b7d1";
-    md5 = "b0b5293991fcf07347b38431c80be1d4";
-    md5name = "b0b5293991fcf07347b38431c80be1d4-Firebird-2.5.5.26952-0.tar.bz2";
+    name = "Firebird-3.0.0.32483-0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/Firebird-3.0.0.32483-0.tar.bz2";
+    sha256 = "6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860";
+    md5 = "821260b61dafc22899d1464d4e91ee6a";
+    md5name = "821260b61dafc22899d1464d4e91ee6a-Firebird-3.0.0.32483-0.tar.bz2";
   }
   {
     name = "fontconfig-2.8.0.tar.gz";
@@ -175,18 +175,18 @@
     md5name = "c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
   }
   {
-    name = "dejavu-fonts-ttf-2.35.zip";
-    url = "http://dev-www.libreoffice.org/src/d8b5214d35bcd2bfcb2cffa7795b351d-dejavu-fonts-ttf-2.35.zip";
-    sha256 = "7e0d00f20080784c3a38a845d5858c161af14f0073d9474cdbfdedae883cc747";
-    md5 = "d8b5214d35bcd2bfcb2cffa7795b351d";
-    md5name = "d8b5214d35bcd2bfcb2cffa7795b351d-dejavu-fonts-ttf-2.35.zip";
+    name = "dejavu-fonts-ttf-2.37.zip";
+    url = "http://dev-www.libreoffice.org/src/33e1e61fab06a547851ed308b4ffef42-dejavu-fonts-ttf-2.37.zip";
+    sha256 = "7576310b219e04159d35ff61dd4a4ec4cdba4f35c00e002a136f00e96a908b0a";
+    md5 = "33e1e61fab06a547851ed308b4ffef42";
+    md5name = "33e1e61fab06a547851ed308b4ffef42-dejavu-fonts-ttf-2.37.zip";
   }
   {
-    name = "gentiumbasic-fonts-1.10.zip";
-    url = "http://dev-www.libreoffice.org/src/35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip";
-    sha256 = "f1691e48d02effdee0701622297394451759f13e0e0b36e788847f4b3e2ba11b";
-    md5 = "35efabc239af896dfb79be7ebdd6e6b9";
-    md5name = "35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip";
+    name = "GentiumBasic_1102.zip";
+    url = "http://dev-www.libreoffice.org/src/1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip";
+    sha256 = "2f1a2c5491d7305dffd3520c6375d2f3e14931ee35c6d8ae1e8f098bf1a7b3cc";
+    md5 = "1725634df4bb3dcb1b2c91a6175f8789";
+    md5name = "1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip";
   }
   {
     name = "liberation-fonts-ttf-1.07.4.tar.gz";
@@ -238,6 +238,13 @@
     md5name = "edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
   }
   {
+    name = "EmojiOneColor-SVGinOT-1.3.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/EmojiOneColor-SVGinOT-1.3.tar.gz";
+    sha256 = "d1a08f7c10589f22740231017694af0a7a270760c8dec33d8d1c038e2be0a0c7";
+    md5 = "919389b307ee8696288ea3b8210ab974";
+    md5name = "919389b307ee8696288ea3b8210ab974-EmojiOneColor-SVGinOT-1.3.tar.gz";
+  }
+  {
     name = "libfreehand-0.1.1.tar.bz2";
     url = "http://dev-www.libreoffice.org/src/libfreehand-0.1.1.tar.bz2";
     sha256 = "45dab0e5d632eb51eeb00847972ca03835d6791149e9e714f093a9df2b445877";
@@ -266,25 +273,18 @@
     md5name = "bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
   }
   {
-    name = "glyphy-0.2.0.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/5d303fb955beb9bf112267316ca9d021-glyphy-0.2.0.tar.bz2";
-    sha256 = "9a8f629f7ea40ba118199a37adee8f2dfb084cffa5f7f4db3a47b8b0075777be";
-    md5 = "5d303fb955beb9bf112267316ca9d021";
-    md5name = "5d303fb955beb9bf112267316ca9d021-glyphy-0.2.0.tar.bz2";
-  }
-  {
-    name = "graphite2-minimal-1.3.8.tgz";
-    url = "http://dev-www.libreoffice.org/src/4311dd9ace498b57c85f611e0670df64-graphite2-minimal-1.3.8.tgz";
-    sha256 = "d16940175822760753e9762d0af9679c9726e64f25955677fe7ab68448601c3b";
-    md5 = "4311dd9ace498b57c85f611e0670df64";
-    md5name = "4311dd9ace498b57c85f611e0670df64-graphite2-minimal-1.3.8.tgz";
+    name = "graphite2-minimal-1.3.10.tgz";
+    url = "http://dev-www.libreoffice.org/src/graphite2-minimal-1.3.10.tgz";
+    sha256 = "aa5e58356cd084000609ebbd93fef456a1bc0ab9e46fea20e81552fb286232a9";
+    md5 = "9c499b8ec9f1b81fd0bb6a3b986f4b0f";
+    md5name = "9c499b8ec9f1b81fd0bb6a3b986f4b0f-graphite2-minimal-1.3.10.tgz";
   }
   {
-    name = "harfbuzz-1.2.6.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/harfbuzz-1.2.6.tar.bz2";
-    sha256 = "7537bacccb3524df0cd2a4d5bc7e168bcc10e8171e0324f3cd522583868192c1";
-    md5 = "9f4b6831c86135faef011e991f59f77f";
-    md5name = "9f4b6831c86135faef011e991f59f77f-harfbuzz-1.2.6.tar.bz2";
+    name = "harfbuzz-1.3.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/harfbuzz-1.3.2.tar.bz2";
+    sha256 = "8543a6372f08c5987c632dfaa86210c7edb3f43fbacd96095c609bc3539ce027";
+    md5 = "5986e1bfcd983d1f6caa53ef64c4abc5";
+    md5name = "5986e1bfcd983d1f6caa53ef64c4abc5-harfbuzz-1.3.2.tar.bz2";
   }
   {
     name = "hsqldb_1_8_0.zip";
@@ -294,11 +294,11 @@
     md5name = "17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
   }
   {
-    name = "hunspell-1.4.1.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/33d370f7fe5a030985e445a5672b2067-hunspell-1.4.1.tar.gz";
-    sha256 = "c4476aff0ced52eec334eae1e8d3fdaaebdd90f5ecd0b57cf2a92a6fd220d1bb";
-    md5 = "33d370f7fe5a030985e445a5672b2067";
-    md5name = "33d370f7fe5a030985e445a5672b2067-hunspell-1.4.1.tar.gz";
+    name = "hunspell-1.6.0.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/047c3feb121261b76dc16cdb62f54483-hunspell-1.6.0.tar.gz";
+    sha256 = "512e7d2ee69dad0b35ca011076405e56e0f10963a02d4859dbcc4faf53ca68e2";
+    md5 = "047c3feb121261b76dc16cdb62f54483";
+    md5name = "047c3feb121261b76dc16cdb62f54483-hunspell-1.6.0.tar.gz";
   }
   {
     name = "hyphen-2.8.8.tar.gz";
@@ -308,11 +308,11 @@
     md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
   }
   {
-    name = "icu4c-57_1-src.tgz";
-    url = "http://dev-www.libreoffice.org/src/976734806026a4ef8bdd17937c8898b9-icu4c-57_1-src.tgz";
-    sha256 = "ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581";
-    md5 = "976734806026a4ef8bdd17937c8898b9";
-    md5name = "976734806026a4ef8bdd17937c8898b9-icu4c-57_1-src.tgz";
+    name = "icu4c-58_1-src.tgz";
+    url = "http://dev-www.libreoffice.org/src/1901302aaff1c1633ef81862663d2917-icu4c-58_1-src.tgz";
+    sha256 = "0eb46ba3746a9c2092c8ad347a29b1a1b4941144772d13a88667a7b11ea30309";
+    md5 = "1901302aaff1c1633ef81862663d2917";
+    md5name = "1901302aaff1c1633ef81862663d2917-icu4c-58_1-src.tgz";
   }
   {
     name = "flow-engine-0.9.4.zip";
@@ -406,11 +406,11 @@
     md5name = "86b0d5f7507c2e6c21c00219162c3c44-libjpeg-turbo-1.4.2.tar.gz";
   }
   {
-    name = "language-subtag-registry-2016-07-19.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2016-07-19.tar.bz2";
-    sha256 = "e3dc30bdbfdad442c542dc0e165df9d8d2ba06a357cd55957155d8259d1661dc";
-    md5 = "8a037dc60b16bf8c5fe871b33390a4a2";
-    md5name = "8a037dc60b16bf8c5fe871b33390a4a2-language-subtag-registry-2016-07-19.tar.bz2";
+    name = "language-subtag-registry-2017-04-19.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2017-04-19.tar.bz2";
+    sha256 = "8333809eec6fce852a1d6de68859962106e13a84705417efb03452164da3ee7a";
+    md5 = "59a3595c1052c5b51f996f44fe9994b9";
+    md5name = "59a3595c1052c5b51f996f44fe9994b9-language-subtag-registry-2017-04-19.tar.bz2";
   }
   {
     name = "JLanguageTool-1.7.0.tar.bz2";
@@ -455,18 +455,25 @@
     md5name = "d63a9f47ab048f5009d90693d6aa6424-libgltf-0.0.2.tar.bz2";
   }
   {
-    name = "liblangtag-0.5.8.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/aa899eff126216dafe721149fbdb511b-liblangtag-0.5.8.tar.bz2";
-    sha256 = "08e2f64bfe3f750be7391eb0af53967e164b628c59f02be4d83789eb4f036eaa";
-    md5 = "aa899eff126216dafe721149fbdb511b";
-    md5name = "aa899eff126216dafe721149fbdb511b-liblangtag-0.5.8.tar.bz2";
+    name = "liblangtag-0.6.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/liblangtag-0.6.2.tar.bz2";
+    sha256 = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e";
+    md5 = "284f120247323a35122ab32b4b359c45";
+    md5name = "284f120247323a35122ab32b4b359c45-liblangtag-0.6.2.tar.bz2";
   }
   {
-    name = "xmlsec1-1.2.20.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/ce12af00283eb90d9281956524250d6e-xmlsec1-1.2.20.tar.gz";
-    sha256 = "3221593ca50f362b546a0888a1431ad24be1470f96b2469c0e0df5e1c55e7305";
-    md5 = "ce12af00283eb90d9281956524250d6e";
-    md5name = "ce12af00283eb90d9281956524250d6e-xmlsec1-1.2.20.tar.gz";
+    name = "ltm-1.0.zip";
+    url = "http://dev-www.libreoffice.org/src/ltm-1.0.zip";
+    sha256 = "083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483";
+    md5 = "da283d2e3e72137d0c600ac36b991c9d";
+    md5name = "da283d2e3e72137d0c600ac36b991c9d-ltm-1.0.zip";
+  }
+  {
+    name = "xmlsec1-1.2.23.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/86b1daaa438f5a7bea9a52d7b9799ac0-xmlsec1-1.2.23.tar.gz";
+    sha256 = "41d463d16c9894cd3317098d027c038039c6d896b9cbb9bad9c4e29959e10e9f";
+    md5 = "86b1daaa438f5a7bea9a52d7b9799ac0";
+    md5name = "86b1daaa438f5a7bea9a52d7b9799ac0-xmlsec1-1.2.23.tar.gz";
   }
   {
     name = "libxml2-2.9.4.tar.gz";
@@ -518,11 +525,11 @@
     md5name = "ff9d0f9dd8fbc523408ea1953d5bde41-libmspub-0.1.2.tar.bz2";
   }
   {
-    name = "libmwaw-0.3.7.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.7.tar.bz2";
-    sha256 = "a66b3e45a5ba5dd89849a766e128585cac8aaf9e9c6f037040200e5bf31f1427";
-    md5 = "4a8a53a9d997cf0e2bd208178797dbfb";
-    md5name = "4a8a53a9d997cf0e2bd208178797dbfb-libmwaw-0.3.7.tar.bz2";
+    name = "libmwaw-0.3.9.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.9.tar.bz2";
+    sha256 = "11a1f318431a052e1d623385351c8e659377d36db3e71e188af55da87ce9461f";
+    md5 = "d8532ad5630d3f3b2189a7ec5639151b";
+    md5name = "d8532ad5630d3f3b2189a7ec5639151b-libmwaw-0.3.9.tar.bz2";
   }
   {
     name = "mysql-connector-c++-1.1.4.tar.gz";
@@ -546,11 +553,11 @@
     md5name = "231adebe5c2f78fded3e3df6e958878e-neon-0.30.1.tar.gz";
   }
   {
-    name = "nss-3.27-with-nspr-4.13.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/0e3eee39402386cf16fd7aaa7399ebef-nss-3.27-with-nspr-4.13.tar.gz";
-    sha256 = "c74ad468ed5da0304b58ec56fa627fa388b256451b1a44fd184145c6d8203820";
-    md5 = "0e3eee39402386cf16fd7aaa7399ebef";
-    md5name = "0e3eee39402386cf16fd7aaa7399ebef-nss-3.27-with-nspr-4.13.tar.gz";
+    name = "nss-3.29.5-with-nspr-4.13.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/nss-3.29.5-with-nspr-4.13.1.tar.gz";
+    sha256 = "8cb8624147737d1b4587c50bf058afbb6effc0f3c205d69b5ef4077b3bfed0e4";
+    md5 = "e55ee06b22687df68fafc6a30c0554b2";
+    md5name = "e55ee06b22687df68fafc6a30c0554b2-nss-3.29.5-with-nspr-4.13.1.tar.gz";
   }
   {
     name = "libodfgen-0.1.6.tar.bz2";
@@ -560,6 +567,20 @@
     md5name = "32572ea48d9021bbd6fa317ddb697abc-libodfgen-0.1.6.tar.bz2";
   }
   {
+    name = "odfvalidator-1.1.8-incubating-SNAPSHOT-jar-with-dependencies.jar";
+    url = "http://dev-www.libreoffice.org/src/../extern/a084cd548b586552cb7d3ee51f1af969-odfvalidator-1.1.8-incubating-SNAPSHOT-jar-with-dependencies.jar";
+    sha256 = "a0bd3e0186e043223bfb231a888e2bfb06c78ee2e07c2f0eca434236d173cf34";
+    md5 = "a084cd548b586552cb7d3ee51f1af969";
+    md5name = "a084cd548b586552cb7d3ee51f1af969-odfvalidator-1.1.8-incubating-SNAPSHOT-jar-with-dependencies.jar";
+  }
+  {
+    name = "officeotron-0.7.4-master.jar";
+    url = "http://dev-www.libreoffice.org/src/../extern/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
+    sha256 = "f2443f27561af52324eee03a1892d9f569adc8db9e7bca55614898bc2a13a770";
+    md5 = "8249374c274932a21846fa7629c2aa9b";
+    md5name = "8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
+  }
+  {
     name = "OpenCOLLADA-master-6509aa13af.tar.bz2";
     url = "http://dev-www.libreoffice.org/src/OpenCOLLADA-master-6509aa13af.tar.bz2";
     sha256 = "8f25d429237cde289a448c82a0a830791354ccce5ee40d77535642e46367d6c4";
@@ -567,11 +588,11 @@
     md5name = "4ca8a6ef0afeefc864e9ef21b9f14bd6-OpenCOLLADA-master-6509aa13af.tar.bz2";
   }
   {
-    name = "openldap-2.4.31.tgz";
-    url = "http://dev-www.libreoffice.org/src/804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz";
-    sha256 = "bde845840df4794b869a6efd6a6b1086f80989038e4844b2e4d7d6b57b39c5b6";
-    md5 = "804c6cb5698db30b75ad0ff1c25baefd";
-    md5name = "804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz";
+    name = "openldap-2.4.44.tgz";
+    url = "http://dev-www.libreoffice.org/src/openldap-2.4.44.tgz";
+    sha256 = "d7de6bf3c67009c95525dde3a0212cc110d0a70b92af2af8e3ee800e81b88400";
+    md5 = "693ac26de86231f8dcae2b4e9d768e51";
+    md5name = "693ac26de86231f8dcae2b4e9d768e51-openldap-2.4.44.tgz";
   }
   {
     name = "openssl-1.0.2h.tar.gz";
@@ -581,11 +602,11 @@
     md5name = "9392e65072ce4b614c1392eefc1f23d0-openssl-1.0.2h.tar.gz";
   }
   {
-    name = "liborcus-0.11.2.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/liborcus-0.11.2.tar.gz";
-    sha256 = "10afc617fd7600fa02bd4467d2e3c7bd058f84e4d672d558e1db90e82dafd256";
-    md5 = "205badaee72adf99422add8c4c49d669";
-    md5name = "205badaee72adf99422add8c4c49d669-liborcus-0.11.2.tar.gz";
+    name = "liborcus-0.12.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/liborcus-0.12.1.tar.gz";
+    sha256 = "676b1fedd721f64489650f5e76d7f98b750439914d87cae505b8163d08447908";
+    md5 = "d0ad3a2fcf7008e5b33604bab33df3ad";
+    md5name = "d0ad3a2fcf7008e5b33604bab33df3ad-liborcus-0.12.1.tar.gz";
   }
   {
     name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
@@ -602,11 +623,11 @@
     md5name = "5c4985a68be0b79d3f809da5e12b143c-libpagemaker-0.0.3.tar.bz2";
   }
   {
-    name = "pixman-0.24.4.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/c63f411b3ad147db2bcce1bf262a0e02-pixman-0.24.4.tar.bz2";
-    sha256 = "3d1bf79329be76103c7d9632a79962178364371807104a10e5f63ae0551731dc";
-    md5 = "c63f411b3ad147db2bcce1bf262a0e02";
-    md5name = "c63f411b3ad147db2bcce1bf262a0e02-pixman-0.24.4.tar.bz2";
+    name = "pixman-0.34.0.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz";
+    sha256 = "21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3997aa20a88e";
+    md5 = "e80ebae4da01e77f68744319f01d52a3";
+    md5name = "e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz";
   }
   {
     name = "libpng-1.6.28.tar.gz";
@@ -616,11 +637,11 @@
     md5name = "897ccec1ebfb0922e83c2bfaa1be8748-libpng-1.6.28.tar.gz";
   }
   {
-    name = "poppler-0.46.0.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/poppler-0.46.0.tar.bz2";
-    sha256 = "e3b53c4d1baffb047d4752d68886210fcb279e75cc32c0c61c7165e4d4cf846a";
-    md5 = "38c758d84437378ec4f5aae9f875301d";
-    md5name = "38c758d84437378ec4f5aae9f875301d-poppler-0.46.0.tar.bz2";
+    name = "poppler-0.49.0.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/poppler-0.49.0.tar.xz";
+    sha256 = "14485f0e1e43dcddf49cfc02c2ccb92910ba3e0e91e06f4bd2642ec00cb3a79f";
+    md5 = "9e057ed8eee1f9979fa75d8f044783b8";
+    md5name = "9e057ed8eee1f9979fa75d8f044783b8-poppler-0.49.0.tar.xz";
   }
   {
     name = "postgresql-9.2.1.tar.bz2";
@@ -637,32 +658,32 @@
     md5name = "803a75927f8f241ca78633890c798021-Python-3.3.5.tgz";
   }
   {
-    name = "Python-3.5.0.tgz";
-    url = "http://dev-www.libreoffice.org/src/Python-3.5.0.tgz";
-    sha256 = "584e3d5a02692ca52fce505e68ecd77248a6f2c99adf9db144a39087336b0fe0";
-    md5 = "a56c0c0b45d75a0ec9c6dee933c41c36";
-    md5name = "a56c0c0b45d75a0ec9c6dee933c41c36-Python-3.5.0.tgz";
+    name = "Python-3.5.4.tgz";
+    url = "http://dev-www.libreoffice.org/src/Python-3.5.4.tgz";
+    sha256 = "6ed87a8b6c758cc3299a8b433e8a9a9122054ad5bc8aad43299cff3a53d8ca44";
+    md5 = "2ed4802b7a2a7e40d2e797272bf388ec";
+    md5name = "2ed4802b7a2a7e40d2e797272bf388ec-Python-3.5.4.tgz";
   }
   {
-    name = "raptor2-2.0.9.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz";
-    sha256 = "e26fb9c18e6ebf71100f434070d50196a21d592b715e361850c3b4e789b5f6ef";
-    md5 = "4ceb9316488b0ea01acf011023cf7fff";
-    md5name = "4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz";
+    name = "raptor2-2.0.15.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz";
+    sha256 = "ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed";
+    md5 = "a39f6c07ddb20d7dd2ff1f95fa21e2cd";
+    md5name = "a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz";
   }
   {
-    name = "rasqal-0.9.30.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz";
-    sha256 = "abf0e93d80cc79bdf383fd3e904255bf98bc729356d6cf2f673bce74b08b1cfd";
-    md5 = "b12c5f9cfdb6b04efce5a4a186b8416b";
-    md5name = "b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz";
+    name = "rasqal-0.9.33.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/1f5def51ca0026cd192958ef07228b52-rasqal-0.9.33.tar.gz";
+    sha256 = "6924c9ac6570bd241a9669f83b467c728a322470bf34f4b2da4f69492ccfd97c";
+    md5 = "1f5def51ca0026cd192958ef07228b52";
+    md5name = "1f5def51ca0026cd192958ef07228b52-rasqal-0.9.33.tar.gz";
   }
   {
-    name = "redland-1.0.16.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz";
-    sha256 = "d9a274fc086e61119d5c9beafb8d05527e040ec86f4c0961276ca8de0a049dbd";
-    md5 = "32f8e1417a64d3c6f2c727f9053f55ea";
-    md5name = "32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz";
+    name = "redland-1.0.17.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz";
+    sha256 = "de1847f7b59021c16bdc72abb4d8e2d9187cd6124d69156f3326dd34ee043681";
+    md5 = "e5be03eda13ef68aabab6e42aa67715e";
+    md5name = "e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz";
   }
   {
     name = "librevenge-0.0.4.tar.bz2";
@@ -686,6 +707,13 @@
     md5name = "4f8e76c9c6567aee1d66aba49f76a58b-serf-1.2.1.tar.bz2";
   }
   {
+    name = "libstaroffice-0.0.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libstaroffice-0.0.2.tar.bz2";
+    sha256 = "f06eb29d13357f1aa1944de0be1162de05d9f9333b5f54e9bf762415029a8899";
+    md5 = "4012950240c2bf768c9b29ad376123d7";
+    md5name = "4012950240c2bf768c9b29ad376123d7-libstaroffice-0.0.2.tar.bz2";
+  }
+  {
     name = "swingExSrc.zip";
     url = "http://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
     sha256 = "64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1";
@@ -721,11 +749,11 @@
     md5name = "dfd066658ec9d2fb2262417039a8a1c3-libwpg-0.3.1.tar.bz2";
   }
   {
-    name = "libwps-0.4.3.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/libwps-0.4.3.tar.bz2";
-    sha256 = "0c30407865a873ff76b6d5b2d2aa599f6af68936638c81ca8292449324042a6c";
-    md5 = "027fb17fb9e43553aa6624dc18f830ac";
-    md5name = "027fb17fb9e43553aa6624dc18f830ac-libwps-0.4.3.tar.bz2";
+    name = "libwps-0.4.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libwps-0.4.4.tar.bz2";
+    sha256 = "387c46d9543bb566381fddb8991e2838599fc500ee132fef9631a704c5cbed73";
+    md5 = "dcfd1d18bfa9818cf3ab21663ba857a3";
+    md5name = "dcfd1d18bfa9818cf3ab21663ba857a3-libwps-0.4.4.tar.bz2";
   }
   {
     name = "xsltml_2.1.2.zip";
@@ -741,4 +769,11 @@
     md5 = "44d667c142d7cda120332623eab69f40";
     md5name = "44d667c142d7cda120332623eab69f40-zlib-1.2.8.tar.gz";
   }
+  {
+    name = "libzmf-0.0.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libzmf-0.0.1.tar.bz2";
+    sha256 = "b69f7f6e94cf695c4b672ca65def4825490a1e7dee34c2126309b96d21a19e6b";
+    md5 = "c611df8664240de0276ab95670f413d8";
+    md5name = "c611df8664240de0276ab95670f413d8-libzmf-0.0.1.tar.bz2";
+  }
 ]
diff --git a/pkgs/applications/office/libreoffice/still-primary-src.nix b/pkgs/applications/office/libreoffice/still-primary-src.nix
index d1e87d7de6da..82133cdf6813 100644
--- a/pkgs/applications/office/libreoffice/still-primary-src.nix
+++ b/pkgs/applications/office/libreoffice/still-primary-src.nix
@@ -2,9 +2,9 @@
 
 rec {
   major = "5";
-  minor = "2";
+  minor = "3";
   patch = "6";
-  tweak = "2";
+  tweak = "1";
 
   subdir = "${major}.${minor}.${patch}";
 
@@ -12,6 +12,6 @@ rec {
 
   src = fetchurl {
     url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "0w1myl4l1qhdkwqb3b52xld1sq45xyg8b45q40l6a50iccwy6j9x";
+    sha256 = "023a7hr7v5cf0ipga4ijhyl58ncgbjrp500qq5fwf65j8g2c3apz";
   };
 }
diff --git a/pkgs/applications/office/libreoffice/still.nix b/pkgs/applications/office/libreoffice/still.nix
index 7f564379c660..dfe6e9470808 100644
--- a/pkgs/applications/office/libreoffice/still.nix
+++ b/pkgs/applications/office/libreoffice/still.nix
@@ -4,7 +4,7 @@
 , bison, flex, zip, unzip, gtk3, gtk2, libmspack, getopt, file, cairo, which
 , icu, boost, jdk, ant, cups, xorg, libcmis
 , openssl, gperf, cppunit, GConf, ORBit2, poppler
-, librsvg, gnome_vfs, mesa, bsh, CoinMP, libwps, libabw
+, librsvg, gnome_vfs, mesa, bsh, CoinMP, libwps, libabw, libzmf
 , autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
 , libwpg, dbus_glib, glibc, qt4, kdelibs4, clucene_core, libcdr, lcms, vigra
 , unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
@@ -42,14 +42,14 @@ let
 
     translations = fetchSrc {
       name = "translations";
-      sha256 = "0w77mkxmhxx4qjwdwb8bipcdb4pkvkg202mxbbjrv0aj09k6dhvk";
+      sha256 = "0mvfc33pkyrdd7h4kyi6lnzydaka8b5vw0ns50rw08kg9iirig4i";
     };
 
     # TODO: dictionaries
 
     help = fetchSrc {
       name = "help";
-      sha256 = "12xqzp005dhbh618g3zb30vj7rdmccdqj6ix10jlk0clk66n9kf0";
+      sha256 = "0yflll24yd4nxqxisb6mx1qgqk4awkwwi41wxmdaiq8las59sk95";
     };
 
   };
@@ -72,13 +72,7 @@ in stdenv.mkDerivation rec {
   configureScript = "./autogen.sh";
   dontUseCmakeConfigure = true;
 
-  # ICU 58, included in 5.3.x
   patches = [
-    (fetchurl {
-      url = "https://gerrit.libreoffice.org/gitweb?p=core.git;a=patch;h=3e42714c76b1347babfdea0564009d8d82a83af4";
-      sha256 = "10bid0jdw1rpdsqwzzk3r4rp6bjs2cvi82h7anz2m1amfjdv86my";
-      name = "libreoffice-5.2.x-icu4c-58.patch";}
-    )
     ./xdg-open.patch
   ];
 
@@ -138,7 +132,10 @@ in stdenv.mkDerivation rec {
     sed -e '/CPPUNIT_TEST(testCustomColumnWidthExportXLSX)/d' -i sc/qa/unit/subsequent_export-test.cxx
     sed -e '/CPPUNIT_TEST(testColumnWidthExportFromODStoXLSX)/d' -i sc/qa/unit/subsequent_export-test.cxx
     sed -e '/CPPUNIT_TEST(testChartImportXLS)/d' -i sc/qa/unit/subsequent_filters-test.cxx
+    sed -zre 's/DesktopLOKTest::testGetFontSubset[^{]*[{]/& return; /' -i desktop/qa/desktop_lib/test_desktop_lib.cxx
     sed -z -r -e 's/DECLARE_OOXMLEXPORT_TEST[(]testFlipAndRotateCustomShape,[^)]*[)].[{]/& return;/' -i sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
+    # not sure about this fragile test
+    sed -z -r -e 's/DECLARE_OOXMLEXPORT_TEST[(]testTDF87348,[^)]*[)].[{]/& return;/' -i sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
   '';
 
   makeFlags = "SHELL=${bash}/bin/bash";
@@ -232,6 +229,7 @@ in stdenv.mkDerivation rec {
     "--without-system-libmspub"
     "--without-system-libpagemaker"
     "--without-system-libgltf"
+    "--without-system-libstaroffice"
     # https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
     "--without-system-orcus"
   ];
@@ -252,7 +250,7 @@ in stdenv.mkDerivation rec {
       gst_all_1.gst-plugins-base gsettings_desktop_schemas glib
       neon nspr nss openldap openssl ORBit2 pam perl pkgconfig poppler
       python3 sablotron sane-backends unzip vigra which zip zlib
-      mdds bluez5 glibc libcmis libwps libabw
+      mdds bluez5 glibc libcmis libwps libabw libzmf
       libxshmfence libatomic_ops graphite2 harfbuzz
       librevenge libe-book libmwaw glm glew ncurses
       libodfgen CoinMP librdf_rasqal defaultIconTheme makeWrapper
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 53947a95e9f1..774aa1082bc8 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -4,7 +4,7 @@
 
 let
   # if you bump version, update pkgs.tortoisehg too or ping maintainer
-  version = "4.3.1";
+  version = "4.3.2";
   name = "mercurial-${version}";
   inherit (python2Packages) docutils hg-git dulwich python;
 in python2Packages.buildPythonApplication {
@@ -13,7 +13,7 @@ in python2Packages.buildPythonApplication {
 
   src = fetchurl {
     url = "https://mercurial-scm.org/release/${name}.tar.gz";
-    sha256 = "18hq6vvjsrjsnbs15bvyyfrss35bgc0hgw4wxksdyaj578pg04ib";
+    sha256 = "0j6djq584rcj9ghz59ddqzrfq49lykg3wqwap5fnzp9apa4gcnqg";
   };
 
   inherit python; # pass it so that the same version can be used in hg2git
diff --git a/pkgs/applications/video/kodi/commons.nix b/pkgs/applications/video/kodi/commons.nix
index 7e3446d51dbf..734229eac938 100644
--- a/pkgs/applications/video/kodi/commons.nix
+++ b/pkgs/applications/video/kodi/commons.nix
@@ -77,7 +77,7 @@ rec {
     # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
     installPhase = let n = namespace; in ''
       make install
-      ln -s $out/lib/addons/${n}/${n}.so.${version} $out/${pluginDir}/${n}.so
+      ln -s $out/lib/addons/${n}/${n}.so.${version} $out/${pluginDir}/${n}/${n}.so.${version}
     '';
 
   };
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index 3c7480e51812..f1d850cd62cd 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -5,13 +5,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   name = "runc-${version}";
-  version = "1.0.0-rc3";
+  version = "1.0.0-rc4";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "runc";
     rev = "v${version}";
-    sha256 = "14hdhnni0rz3g0bhcaq95zn2zrhyds0mq2pm2padbamg4bgq4r1c";
+    sha256 = "0dh24x0zw90hs7618pnqvjhd2nx8dpz3b5jwc1vbs8dawj8prir2";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix
index a441de5ed19f..ec73150a5069 100644
--- a/pkgs/applications/window-managers/awesome/default.nix
+++ b/pkgs/applications/window-managers/awesome/default.nix
@@ -39,6 +39,7 @@ with luaPackages; stdenv.mkDerivation rec {
                   xcbutilxrm ];
 
   #cmakeFlags = "-DGENERATE_MANPAGES=ON";
+  cmakeFlags = "-DOVERRIDE_VERSION=${version}";
 
   LD_LIBRARY_PATH = "${stdenv.lib.makeLibraryPath [ cairo pango gobjectIntrospection ]}";
   GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0";
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 0114170b8ebc..866be9cded9e 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -21,8 +21,6 @@ assert !nativeTools ->
 assert !(nativeLibc && noLibc);
 assert (noLibc || nativeLibc) == (libc == null);
 
-assert stdenv.targetPlatform != stdenv.hostPlatform -> runCommand != null;
-
 # For ghdl (the vhdl language provider to gcc) we need zlib in the wrapper.
 assert cc.langVhdl or false -> zlib != null;
 
@@ -66,11 +64,11 @@ let
     else if targetPlatform.system == "i686-linux"     then "${libc_lib}/lib/ld-linux.so.2"
     else if targetPlatform.system == "x86_64-linux"   then "${libc_lib}/lib/ld-linux-x86-64.so.2"
     # ARM with a wildcard, which can be "" or "-armhf".
-    else if targetPlatform.isArm                      then "${libc_lib}/lib/ld-linux*.so.3"
+    else if (with targetPlatform; isArm && isLinux)   then "${libc_lib}/lib/ld-linux*.so.3"
     else if targetPlatform.system == "aarch64-linux"  then "${libc_lib}/lib/ld-linux-aarch64.so.1"
     else if targetPlatform.system == "powerpc-linux"  then "${libc_lib}/lib/ld.so.1"
     else if targetPlatform.system == "mips64el-linux" then "${libc_lib}/lib/ld.so.1"
-    else if targetPlatform.system == "x86_64-darwin"  then "/usr/lib/dyld"
+    else if targetPlatform.isDarwin                   then "/usr/lib/dyld"
     else if stdenv.lib.hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
     else null;
 
@@ -88,7 +86,8 @@ stdenv.mkDerivation {
 
   preferLocalBuild = true;
 
-  inherit cc shell libc_bin libc_dev libc_lib binutils_bin coreutils_bin;
+  inherit cc libc_bin libc_dev libc_lib binutils_bin coreutils_bin;
+  shell = getBin shell + shell.shellPath or "";
   gnugrep_bin = if nativeTools then "" else gnugrep;
 
   binPrefix = prefix;
@@ -386,10 +385,6 @@ stdenv.mkDerivation {
   # for substitution in utils.sh
   expandResponseParams = "${expand-response-params}/bin/expand-response-params";
 
-  crossAttrs = {
-    shell = shell.crossDrv + shell.crossDrv.shellPath;
-  };
-
   meta =
     let cc_ = if cc != null then cc else {}; in
     (if cc_ ? meta then removeAttrs cc.meta ["priority"] else {}) //
diff --git a/pkgs/build-support/fetchrepoproject/default.nix b/pkgs/build-support/fetchrepoproject/default.nix
index 2e5fbe794353..199c029d3b64 100644
--- a/pkgs/build-support/fetchrepoproject/default.nix
+++ b/pkgs/build-support/fetchrepoproject/default.nix
@@ -1,8 +1,9 @@
 { stdenv, gitRepo, cacert, copyPathsToStore }:
 
 { name, manifest, rev ? "HEAD", sha256
+# Optional parameters:
 , repoRepoURL ? "", repoRepoRev ? "", referenceDir ? ""
-, localManifests ? [], createMirror ? false, useArchive ? !createMirror
+, localManifests ? [], createMirror ? false, useArchive ? false
 }:
 
 assert repoRepoRev != "" -> repoRepoURL != "";
@@ -51,6 +52,9 @@ in stdenv.mkDerivation {
     # Path must be absolute (e.g. for GnuPG: ~/.repoconfig/gnupg/pubring.kbx)
     export HOME="$(pwd)"
 
+    mkdir $out
+    cd $out
+
     mkdir .repo
     ${optionalString (local_manifests != []) ''
       mkdir .repo/local_manifests
@@ -61,6 +65,13 @@ in stdenv.mkDerivation {
 
     repo init ${concatStringsSep " " repoInitFlags}
     repo sync --jobs=$NIX_BUILD_CORES --current-branch
-    ${optionalString (!createMirror) "rm -rf $out/.repo"}
+
+    # TODO: The git-index files (and probably the files in .repo as well) have
+    # different contents each time and will therefore change the final hash
+    # (i.e. creating a mirror probably won't work).
+    ${optionalString (!createMirror) ''
+      rm -rf .repo
+      find -type d -name '.git' -prune -exec rm -rf {} +
+    ''}
   '';
 }
diff --git a/pkgs/build-support/gcc-wrapper-old/default.nix b/pkgs/build-support/gcc-wrapper-old/default.nix
index 8d28879fb06f..ae17989d932b 100644
--- a/pkgs/build-support/gcc-wrapper-old/default.nix
+++ b/pkgs/build-support/gcc-wrapper-old/default.nix
@@ -6,7 +6,7 @@
 # variables so that the compiler and the linker just "work".
 
 { name ? "", stdenv, lib, nativeTools, nativeLibc, nativePrefix ? ""
-, gcc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? ""
+, gcc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? stdenv.shell
 , zlib ? null
 , hostPlatform, targetPlatform
 }:
@@ -56,15 +56,9 @@ stdenv.mkDerivation {
   langAda = if nativeTools then false else gcc ? langAda && gcc.langAda;
   langVhdl = if nativeTools then false else gcc ? langVhdl && gcc.langVhdl;
   zlib = if gcc != null && gcc ? langVhdl then zlib else null;
-  shell = if shell == "" then stdenv.shell else
-    if builtins.isAttrs shell then (shell + shell.shellPath)
-    else shell;
+  shell = shell + shell.shellPath or "";
 
   crossAttrs = {
-    shell = shell.crossDrv + shell.crossDrv.shellPath;
-    coreutils = coreutils.crossDrv;
-    binutils = binutils.crossDrv;
-    gcc = gcc.crossDrv;
     #
     # This is not the best way to do this. I think the reference should be
     # the style in the gcc-cross-wrapper, but to keep a stable stdenv now I
diff --git a/pkgs/data/misc/geolite-legacy/builder.sh b/pkgs/data/misc/geolite-legacy/builder.sh
index bf8c9812e924..c3e09e8543c5 100644
--- a/pkgs/data/misc/geolite-legacy/builder.sh
+++ b/pkgs/data/misc/geolite-legacy/builder.sh
@@ -17,4 +17,6 @@ for var in "${!src@}"; do
 done
 
 gzip -dv *.gz
-xz -dv *.xz
+
+ln -s GeoLiteCity.dat GeoIPCity.dat
+ln -s GeoLiteCityv6.dat GeoIPCityv6.dat
diff --git a/pkgs/data/misc/geolite-legacy/default.nix b/pkgs/data/misc/geolite-legacy/default.nix
index 282a0dd1596a..0522de227aa4 100644
--- a/pkgs/data/misc/geolite-legacy/default.nix
+++ b/pkgs/data/misc/geolite-legacy/default.nix
@@ -1,32 +1,32 @@
 { stdenv, fetchurl }:
 
 let
-  fetchDB = src: name: sha256: fetchurl {
-    inherit name sha256;
+  fetchDB = src: sha256: fetchurl {
+    inherit sha256;
     url = "https://geolite.maxmind.com/download/geoip/database/${src}";
   };
 in
 stdenv.mkDerivation rec {
   name = "geolite-legacy-${version}";
-  version = "2017-05-26";
+  version = "2017-09-17";
 
   srcGeoIP = fetchDB
-    "GeoLiteCountry/GeoIP.dat.gz" "GeoIP.dat.gz"
+    "GeoLiteCountry/GeoIP.dat.gz"
     "04akk0jczvki8rdvz6z6v5s26ds0m27953lzvp3v0fsg7rl08q5n";
   srcGeoIPv6 = fetchDB
-    "GeoIPv6.dat.gz" "GeoIPv6.dat.gz"
+    "GeoIPv6.dat.gz"
     "0i0885vvj0s5sysyafvk8pc8gr3znh7gmiy8rp4iiai7qnbylb7y";
   srcGeoLiteCity = fetchDB
-    "GeoLiteCity.dat.xz" "GeoIPCity.dat.xz"
-    "0bgf4kfg4mmqvgmrff27lbiglnnb3pnd7f3i4fxzl68c33bizmbm";
+    "GeoLiteCity.dat.gz"
+    "1yqxqfndnsvqc3hrs0nm6nvs0wp8jh9phs0yzrn48rlb9agcb8gj";
   srcGeoLiteCityv6 = fetchDB
-    "GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz" "GeoIPCityv6.dat.gz"
-    "06slyw2644y2z5bgn4yl79aa4smf94mdcddybldh1glc3ay3p4iz";
+    "GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz"
+    "05grm006r723l9zm7pdmwwycc658ni858hcrcf5mysv0hmc3wqb2";
   srcGeoIPASNum = fetchDB
-    "asnum/GeoIPASNum.dat.gz" "GeoIPASNum.dat.gz"
+    "asnum/GeoIPASNum.dat.gz"
     "1gpvsqvq9z9pg9zfn86i50fb481llfyn79r1jwddwfflp1qqfrrv";
   srcGeoIPASNumv6 = fetchDB
-    "asnum/GeoIPASNumv6.dat.gz" "GeoIPASNumv6.dat.gz"
+    "asnum/GeoIPASNumv6.dat.gz"
     "0nmhz82dn9clm5w2y6z861ifj7i761spy1p1zcam93046cdpqqaa";
 
   meta = with stdenv.lib; {
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     homepage = https://geolite.maxmind.com/download/geoip;
     license = licenses.cc-by-sa-30;
     platforms = platforms.all;
-    maintainers = with maintainers; [ nckx ];
+    maintainers = with maintainers; [ nckx fpletz ];
   };
 
   builder = ./builder.sh;
diff --git a/pkgs/development/compilers/emscripten-fastcomp/default.nix b/pkgs/development/compilers/emscripten-fastcomp/default.nix
index e543f799495f..5d952073740e 100644
--- a/pkgs/development/compilers/emscripten-fastcomp/default.nix
+++ b/pkgs/development/compilers/emscripten-fastcomp/default.nix
@@ -4,10 +4,14 @@ let
 
   self = {
     emscriptenfastcomp-unwrapped = callPackage ./emscripten-fastcomp.nix {};
-    emscriptenfastcomp-wrapped = wrapCCWith stdenv.cc.libc ''
-      # hardening flags break WASM support
-      cat > $out/nix-support/add-hardening.sh
-    '' self.emscriptenfastcomp-unwrapped;
+    emscriptenfastcomp-wrapped = wrapCCWith {
+      cc = self.emscriptenfastcomp-unwrapped;
+      libc = stdenv.cc.libc;
+      extraBuildCommands = ''
+        # hardening flags break WASM support
+        cat > $out/nix-support/add-hardening.sh
+      '';
+    };
     emscriptenfastcomp = symlinkJoin {
       name = "emscriptenfastcomp";
       paths = [ self.emscriptenfastcomp-wrapped self.emscriptenfastcomp-unwrapped ];
diff --git a/pkgs/development/compilers/haxe/default.nix b/pkgs/development/compilers/haxe/default.nix
index ca41545eb451..a937b42c4b59 100644
--- a/pkgs/development/compilers/haxe/default.nix
+++ b/pkgs/development/compilers/haxe/default.nix
@@ -72,8 +72,8 @@ in {
     '';
   };
   haxe_3_4 = generic {
-    version = "3.4.2";
-    sha256 = "1m5fp183agqv8h3ynhxw4kndkpq2d6arysmirv3zl3vz5crmpwqd";
+    version = "3.4.3";
+    sha256 = "1rrbrc81pilq0d691kp22yjwvvg0kw7q9b9npdghga2ks0hzpr02";
     prePatch = ''
       sed -i -e 's|"/usr/lib/haxe/std/";|"'"$out/lib/haxe/std/"'";\n&|g' src/main.ml
       sed -i -e 's|"neko"|"${neko}/bin/neko"|g' extra/haxelib_src/src/haxelib/client/Main.hx
diff --git a/pkgs/development/compilers/julia/0.6.nix b/pkgs/development/compilers/julia/0.6.nix
new file mode 100644
index 000000000000..9d9f0229e56b
--- /dev/null
+++ b/pkgs/development/compilers/julia/0.6.nix
@@ -0,0 +1,188 @@
+{ stdenv, fetchgit, fetchurl, fetchzip
+# build tools
+, gfortran, m4, makeWrapper, patchelf, perl, which, python2
+, runCommand
+, paxctl
+# libjulia dependencies
+, libunwind, readline, utf8proc, zlib
+, llvm, libffi, ncurses
+# standard library dependencies
+, curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2
+# linear algebra
+, openblas, arpack, suitesparse
+# Darwin frameworks
+, CoreServices, ApplicationServices
+}:
+
+with stdenv.lib;
+
+# All dependencies must use the same OpenBLAS.
+let
+  arpack_ = arpack;
+  suitesparse_ = suitesparse;
+in
+let
+  arpack = arpack_.override { inherit openblas; };
+  suitesparse = suitesparse_.override { inherit openblas; };
+in
+
+let
+  dsfmtVersion = "2.2.3";
+  dsfmt = fetchurl {
+    url = "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${dsfmtVersion}.tar.gz";
+    sha256 = "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42";
+  };
+
+  libuvVersion = "52d72a52cc7ccd570929990f010ed16e2ec604c8";
+  libuv = fetchurl {
+    url = "https://api.github.com/repos/JuliaLang/libuv/tarball/${libuvVersion}";
+    sha256 = "1vldy94sfmlfqmi14126g590wi61fv78rzh7afk82zkipaixvak8";
+  };
+
+  rmathVersion = "0.1";
+  rmath-julia = fetchurl {
+    url = "https://api.github.com/repos/JuliaLang/Rmath-julia/tarball/v${rmathVersion}";
+    sha256 = "0ai5dhjc43zcvangz123ryxmlbm51s21rg13bllwyn98w67arhb4";
+  };
+  
+  virtualenvVersion = "15.0.0";
+  virtualenv = fetchurl {
+    url = "mirror://pypi/v/virtualenv/virtualenv-${virtualenvVersion}.tar.gz";
+    sha256 = "06fw4liazpx5vf3am45q2pdiwrv0id7ckv7n6zmpml29x6vkzmkh";
+  };
+in
+
+stdenv.mkDerivation rec {
+  pname = "julia";
+  version = "0.6.0";
+  name = "${pname}-${version}";
+
+  src = fetchzip {
+    url = "https://github.com/JuliaLang/${pname}/releases/download/v${version}/${name}.tar.gz";
+    sha256 = "19xk2cs43lnsy9y0d8wmxj7ich908ipb40vkf7xg9031x272brxw";
+  };
+  prePatch = ''
+    mkdir deps/srccache
+    cp "${dsfmt}" "./deps/srccache/dsfmt-${dsfmtVersion}.tar.gz"
+    cp "${rmath-julia}" "./deps/srccache/Rmath-julia-${rmathVersion}.tar.gz"
+    cp "${libuv}" "./deps/srccache/libuv-${libuvVersion}.tar.gz"
+    cp "${virtualenv}" "./deps/srccache/virtualenv-${virtualenvVersion}.tar.gz"
+  '';
+
+  patches = [
+    ./0001.1-use-system-utf8proc.patch
+    ./0002-use-system-suitesparse.patch
+  ] ++ stdenv.lib.optional stdenv.needsPax ./0004-hardened.patch;
+
+  postPatch = ''
+    patchShebangs . contrib
+    for i in backtrace replutil cmdlineargs compile; do
+      mv test/$i.jl{,.off}
+      touch test/$i.jl
+    done
+  '';
+
+  buildInputs = [
+    arpack fftw fftwSinglePrec gmp libgit2 libunwind mpfr
+    pcre2.dev openblas openlibm openspecfun readline suitesparse utf8proc
+    zlib llvm
+  ]
+  ++ stdenv.lib.optionals stdenv.isDarwin [CoreServices ApplicationServices]
+  ;
+
+  nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python2 which ]
+    ++ stdenv.lib.optional stdenv.needsPax paxctl;
+
+  makeFlags =
+    let
+      arch = head (splitString "-" stdenv.system);
+      march = { "x86_64" = "x86-64"; "i686" = "pentium4"; }."${arch}"
+              or (throw "unsupported architecture: ${arch}");
+      # Julia requires Pentium 4 (SSE2) or better
+      cpuTarget = { "x86_64" = "x86-64"; "i686" = "pentium4"; }."${arch}"
+                  or (throw "unsupported architecture: ${arch}");
+    in [
+      "ARCH=${arch}"
+      "MARCH=${march}"
+      "JULIA_CPU_TARGET=${cpuTarget}"
+      "PREFIX=$(out)"
+      "prefix=$(out)"
+      "SHELL=${stdenv.shell}"
+
+      "USE_SYSTEM_BLAS=1"
+      "USE_BLAS64=${if openblas.blas64 then "1" else "0"}"
+      "LIBBLAS=-lopenblas"
+      "LIBBLASNAME=libopenblas"
+
+      "USE_SYSTEM_LAPACK=1"
+      "LIBLAPACK=-lopenblas"
+      "LIBLAPACKNAME=libopenblas"
+
+      "USE_SYSTEM_SUITESPARSE=1"
+      "SUITESPARSE_LIB=-lsuitesparse"
+      "SUITESPARSE_INC=-I${suitesparse}/include"
+
+      "USE_SYSTEM_ARPACK=1"
+      "USE_SYSTEM_FFTW=1"
+      "USE_SYSTEM_GMP=1"
+      "USE_SYSTEM_LIBGIT2=1"
+      "USE_SYSTEM_LIBUNWIND=1"
+      
+      "USE_SYSTEM_LLVM=1"
+      "LLVM_VER=3.9.1"
+
+      "USE_SYSTEM_MPFR=1"
+      "USE_SYSTEM_OPENLIBM=1"
+      "USE_SYSTEM_OPENSPECFUN=1"
+      "USE_SYSTEM_PATCHELF=1"
+      "USE_SYSTEM_PCRE=1"
+      "PCRE_CONFIG=${pcre2.dev}/bin/pcre2-config"
+      "PCRE_INCL_PATH=${pcre2.dev}/include/pcre2.h"
+      "USE_SYSTEM_READLINE=1"
+      "USE_SYSTEM_UTF8PROC=1"
+      "USE_SYSTEM_ZLIB=1"
+    ];
+
+  NIX_CFLAGS_COMPILE = [ "-fPIC" ];
+
+  LD_LIBRARY_PATH = makeLibraryPath [
+    arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm
+    openspecfun pcre2 suitesparse llvm
+  ];
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  enableParallelBuilding = true;
+
+  doCheck = !stdenv.isDarwin;
+  checkTarget = "testall";
+  # Julia's tests require read/write access to $HOME
+  preCheck = ''
+    export HOME="$NIX_BUILD_TOP"
+    set
+  '';
+
+  preBuild = ''
+    sed -e '/^install:/s@[^ ]*/doc/[^ ]*@@' -i Makefile
+    sed -e '/[$](DESTDIR)[$](docdir)/d' -i Makefile
+    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
+  '';
+
+  postInstall = ''
+    for prog in "$out/bin/julia" "$out/bin/julia-debug"; do
+        wrapProgram "$prog" \
+            --prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH:$out/lib/julia" \
+            --prefix PATH : "${stdenv.lib.makeBinPath [ curl ]}"
+    done
+  '';
+
+  meta = {
+    description = "High-level performance-oriented dynamical language for technical computing";
+    homepage = https://julialang.org/;
+    license = stdenv.lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ raskin ];
+    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+    broken = stdenv.isi686;
+  };
+}
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index fcb67847171a..62686086c27c 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -37,16 +37,16 @@ core-packages:
   - ghcjs-base-0
 
 default-package-overrides:
-  # LTS Haskell 9.4
+  # LTS Haskell 9.5
   - abstract-deque ==0.3
   - abstract-deque-tests ==0.3
   - abstract-par ==0.3.3
-  - AC-Vector ==2.3.2
   - accelerate ==1.0.0.0
   - accuerr ==0.2.0.2
   - ace ==0.6
   - action-permutations ==0.0.0.1
   - active ==0.2.0.13
+  - AC-Vector ==2.3.2
   - ad ==4.3.4
   - adjunctions ==4.3
   - adler32 ==0.1.1.0
@@ -167,22 +167,22 @@ default-package-overrides:
   - amqp ==0.15.1
   - annotated-wl-pprint ==0.7.0
   - anonymous-sums ==0.6.0.0
+  - ansigraph ==0.3.0.3
   - ansi-terminal ==0.6.3.1
   - ansi-wl-pprint ==0.6.7.3
-  - ansigraph ==0.3.0.3
   - api-field-json-th ==0.1.0.2
-  - app-settings ==0.2.0.11
   - appar ==0.1.4
   - apportionment ==0.0.0.2
   - approximate ==0.3.1
+  - app-settings ==0.2.0.11
   - arbtt ==0.9.0.13
   - arithmoi ==0.5.0.0
   - array-memoize ==0.6.0
   - arrow-extras ==0.1.0.1
   - arrow-list ==0.7
   - arrowp-qq ==0.1.1
-  - ascii-progress ==0.3.3.0
   - asciidiagram ==1.3.3
+  - ascii-progress ==0.3.3.0
   - asn1-encoding ==0.9.5
   - asn1-parse ==0.9.4
   - asn1-types ==0.3.2
@@ -206,8 +206,8 @@ default-package-overrides:
   - authenticate ==1.3.3.2
   - authenticate-oauth ==1.6
   - auto ==0.4.3.1
-  - auto-update ==0.1.4
   - autoexporter ==1.1.2
+  - auto-update ==0.1.4
   - avers ==0.0.17.1
   - avers-api ==0.0.18.0
   - avers-api-docs ==0.0.18.0
@@ -219,16 +219,17 @@ default-package-overrides:
   - backprop ==0.0.3.0
   - bake ==0.5
   - bank-holidays-england ==0.1.0.6
-  - base-compat ==0.9.3
-  - base-noprelude ==4.9.1.0
-  - base-orphans ==0.6
-  - base-prelude ==1.2.0.1
-  - base-unicode-symbols ==0.2.2.4
   - base16-bytestring ==0.1.1.6
   - base32string ==0.9.1
   - base58string ==0.10.0
   - base64-bytestring ==1.0.0.1
   - base64-string ==0.2
+  - base-compat ==0.9.3
+  - basement ==0.0.2
+  - base-noprelude ==4.9.1.0
+  - base-orphans ==0.6
+  - base-prelude ==1.2.0.1
+  - base-unicode-symbols ==0.2.2.4
   - basic-prelude ==0.6.1.1
   - bcrypt ==0.0.10
   - bench ==1.0.6
@@ -289,9 +290,9 @@ default-package-overrides:
   - board-games ==0.1.0.6
   - boltzmann-samplers ==0.1.0.0
   - bookkeeping ==0.2.1.4
-  - bool-extras ==0.4.0
   - Boolean ==0.2.4
   - boolean-like ==0.1.1.0
+  - bool-extras ==0.4.0
   - boolsimplifier ==0.1.8
   - boomerang ==1.4.5.3
   - both ==0.1.1.0
@@ -337,8 +338,8 @@ default-package-overrides:
   - call-stack ==0.1.0
   - carray ==0.1.6.8
   - cartel ==0.18.0.2
-  - case-insensitive ==1.2.0.10
   - cased ==0.1.0.0
+  - case-insensitive ==1.2.0.10
   - cases ==0.1.3.2
   - casing ==0.1.2.1
   - cassava ==0.4.5.1
@@ -407,8 +408,8 @@ default-package-overrides:
   - comfort-graph ==0.0.2
   - commutative ==0.0.1.4
   - comonad ==5.0.2
-  - comonad-transformers ==4.0
   - comonads-fd ==4.0
+  - comonad-transformers ==4.0
   - compactmap ==0.1.4.2.1
   - compensated ==0.7.2
   - composable-associations ==0.1.0.0
@@ -454,16 +455,12 @@ default-package-overrides:
   - cql-io ==0.16.0
   - criterion ==1.1.4.0
   - cron ==0.5.0
-  - crypt-sha512 ==0
   - crypto-api ==0.13.2
   - crypto-api-tests ==0.3
+  - cryptocipher ==0.6.2
   - crypto-cipher-tests ==0.0.11
   - crypto-cipher-types ==0.0.9
   - crypto-enigma ==0.0.2.9
-  - crypto-pubkey-types ==0.4.3
-  - crypto-random ==0.0.9
-  - crypto-random-api ==0.2.0
-  - cryptocipher ==0.6.2
   - cryptohash ==0.11.9
   - cryptohash-conduit ==0.1.1
   - cryptohash-cryptoapi ==0.1.4
@@ -474,6 +471,10 @@ default-package-overrides:
   - cryptonite ==0.23
   - cryptonite-conduit ==0.2.0
   - cryptonite-openssl ==0.6
+  - crypto-pubkey-types ==0.4.3
+  - crypto-random ==0.0.9
+  - crypto-random-api ==0.2.0
+  - crypt-sha512 ==0
   - csp ==1.3.1
   - css-syntax ==0.0.5
   - css-text ==0.1.2.2
@@ -525,7 +526,7 @@ default-package-overrides:
   - Decimal ==0.4.2
   - declarative ==0.5.1
   - deepseq-generics ==0.2.0.0
-  - dejafu ==0.7.1.3
+  - dejafu ==0.7.2.0
   - dependent-map ==0.2.4.0
   - dependent-sum ==0.4
   - derive ==2.6.3
@@ -543,15 +544,15 @@ default-package-overrides:
   - diagrams-postscript ==1.4
   - diagrams-rasterific ==1.4
   - diagrams-solve ==0.1.1
-  - diagrams-svg ==1.4.1
+  - diagrams-svg ==1.4.1.1
   - dictionaries ==0.2.0.3
   - Diff ==0.3.4
   - diff3 ==0.3.0
   - digest ==0.0.1.2
   - digits ==0.3.1
   - dimensional ==1.0.1.3
-  - direct-sqlite ==2.3.20
   - directory-tree ==0.12.1
+  - direct-sqlite ==2.3.20
   - discord-gateway ==0.2.2
   - discord-hs ==0.4.2
   - discord-rest ==0.2.2
@@ -575,12 +576,12 @@ default-package-overrides:
   - dmenu-pmount ==0.1.0.1
   - dmenu-search ==0.1.0.1
   - dns ==2.0.13
-  - do-list ==1.0.1
   - dockerfile ==0.1.0.1
   - docopt ==0.7.0.5
   - doctemplates ==0.1.0.2
   - doctest ==0.11.4
   - doctest-discover ==0.1.0.7
+  - do-list ==1.0.1
   - dotenv ==0.3.4.0
   - dotnet-timespan ==0.0.1.0
   - double-conversion ==2.0.2.0
@@ -620,8 +621,8 @@ default-package-overrides:
   - elm-core-sources ==1.0.0
   - elm-export ==0.6.0.1
   - elm-export-persistent ==0.1.2
-  - email-validate ==2.3.1
   - emailaddress ==0.2.0.0
+  - email-validate ==2.3.1
   - enclosed-exceptions ==1.0.2
   - encoding-io ==0.0.1
   - engine-io ==1.2.17
@@ -639,7 +640,7 @@ default-package-overrides:
   - equal-files ==0.0.5.3
   - equivalence ==0.3.2
   - erf ==2.0.0.0
-  - errors ==2.2.1
+  - errors ==2.2.2
   - ersatz ==0.4.1
   - esqueleto ==2.5.3
   - etc ==0.2.0.0
@@ -647,7 +648,6 @@ default-package-overrides:
   - ether ==0.5.1.0
   - euphoria ==0.8.0.0
   - event ==0.1.4
-  - event-list ==0.1.1.3
   - eventful-core ==0.1.3
   - eventful-dynamodb ==0.1.3
   - eventful-memory ==0.1.3
@@ -655,32 +655,33 @@ default-package-overrides:
   - eventful-sql-common ==0.1.3
   - eventful-sqlite ==0.1.3
   - eventful-test-helpers ==0.1.3
+  - event-list ==0.1.1.3
   - eventstore ==0.15.0.2
   - exact-combinatorics ==0.2.0.8
   - exact-pi ==0.4.1.2
-  - exception-mtl ==0.4.0.1
-  - exception-transformers ==0.4.0.5
   - exceptional ==0.3.0.0
+  - exception-mtl ==0.4.0.1
   - exceptions ==0.8.3
+  - exception-transformers ==0.4.0.5
   - executable-hash ==0.2.0.4
   - executable-path ==0.0.3.1
   - exhaustive ==1.1.5
-  - exp-pairs ==0.1.5.2
   - expiring-cache-map ==0.0.6.1
   - explicit-exception ==0.1.9
+  - exp-pairs ==0.1.5.2
   - extensible ==0.4.4
   - extensible-effects ==1.11.1.0
   - extensible-exceptions ==0.1.1.4
   - extra ==1.5.3
-  - extract-dependencies ==0.2.0.1
   - extractable-singleton ==0.0.1
+  - extract-dependencies ==0.2.0.1
   - fail ==4.9.0.0
   - farmhash ==0.1.0.5
+  - fasta ==0.10.4.2
   - fast-builder ==0.0.0.6
   - fast-digits ==0.2.1.0
   - fast-logger ==2.4.10
   - fast-math ==1.0.2
-  - fasta ==0.10.4.2
   - fb ==1.1.1
   - fclabels ==2.0.3.2
   - fdo-notify ==0.3.1
@@ -690,11 +691,11 @@ default-package-overrides:
   - fft ==0.1.8.6
   - fgl ==5.5.4.0
   - fgl-arbitrary ==0.2.0.3
-  - file-embed ==0.0.10
-  - file-modules ==0.1.2.4
   - filecache ==0.2.9
+  - file-embed ==0.0.10
   - filelock ==0.1.1.2
   - filemanip ==0.3.6.3
+  - file-modules ==0.1.2.4
   - fileplow ==0.1.0.0
   - filter-logger ==0.6.0.0
   - find-clumpiness ==0.2.3.0
@@ -715,7 +716,7 @@ default-package-overrides:
   - flow ==1.0.9
   - fmlist ==0.9
   - fmt ==0.3.0.0
-  - fn ==0.3.0.1
+  - fn ==0.3.0.2
   - focus ==0.1.5.2
   - fold-debounce ==0.2.0.6
   - fold-debounce-conduit ==0.1.0.5
@@ -728,15 +729,15 @@ default-package-overrides:
   - ForestStructures ==0.0.0.2
   - forma ==0.2.0
   - format-numbers ==0.1.0.0
-  - formatting ==6.2.4
-  - foundation ==0.0.13
+  - formatting ==6.2.5
+  - foundation ==0.0.15
   - Frames ==0.1.9
   - free ==4.12.4
-  - free-vl ==0.1.4
   - freenect ==1.2.1
   - freer ==0.2.4.1
   - freer-effects ==0.3.0.1
   - freetype2 ==0.1.2
+  - free-vl ==0.1.4
   - friendly-time ==0.4.1
   - frisby ==0.2
   - from-sum ==0.2.1.0
@@ -753,15 +754,19 @@ default-package-overrides:
   - generic-aeson ==0.2.0.9
   - generic-deriving ==1.11.2
   - generic-random ==0.5.0.0
-  - generic-xmlpickler ==0.1.0.5
   - generics-eot ==0.2.1.1
   - generics-sop ==0.3.1.0
   - generics-sop-lens ==0.1.2.1
+  - generic-xmlpickler ==0.1.0.5
   - geniplate-mirror ==0.7.5
   - getopt-generics ==0.13.0.1
   - ghc-events ==0.6.0
   - ghc-exactprint ==0.5.5.0
   - ghc-heap-view ==0.5.10
+  - ghcid ==0.6.6
+  - ghcjs-base-stub ==0.1.0.4
+  - ghcjs-codemirror ==0.0.0.1
+  - ghcjs-perch ==0.3.3.2
   - ghc-paths ==0.1.0.9
   - ghc-prof ==1.4.0.2
   - ghc-syb-utils ==0.2.3.2
@@ -769,10 +774,6 @@ default-package-overrides:
   - ghc-typelits-extra ==0.2.3
   - ghc-typelits-knownnat ==0.3.1
   - ghc-typelits-natnormalise ==0.5.3
-  - ghcid ==0.6.6
-  - ghcjs-base-stub ==0.1.0.2
-  - ghcjs-codemirror ==0.0.0.1
-  - ghcjs-perch ==0.3.3.2
   - gi-atk ==2.0.14
   - gi-cairo ==1.0.14
   - gi-gdk ==3.0.14
@@ -782,12 +783,11 @@ default-package-overrides:
   - gi-gobject ==2.0.15
   - gi-gtk ==3.0.17
   - gi-javascriptcore ==3.0.14
-  - gi-pango ==1.0.15
-  - gi-soup ==2.4.14
-  - gi-webkit ==3.0.14
   - ginger ==0.5.3.0
   - gio ==0.13.3.1
+  - gi-pango ==1.0.15
   - giphy-api ==0.5.2.0
+  - gi-soup ==2.4.14
   - git ==0.2.0
   - github ==0.16.0
   - github-release ==1.0.6
@@ -799,6 +799,7 @@ default-package-overrides:
   - gitlib-test ==3.1.0.3
   - gitrev ==1.3.1
   - gitson ==0.5.2
+  - gi-webkit ==3.0.14
   - gl ==0.8.0
   - glabrous ==0.3.2
   - glaze ==0.3.0.1
@@ -919,9 +920,9 @@ default-package-overrides:
   - GPipe-GLFW ==1.4.1.1
   - gpolyline ==0.1.0.1
   - graph-core ==0.3.0.0
-  - graph-wrapper ==0.2.5.1
   - graphs ==0.7
   - graphviz ==2999.18.1.2
+  - graph-wrapper ==0.2.5.1
   - gravatar ==0.8.0
   - graylog ==0.1.0.1
   - groom ==0.1.2.1
@@ -973,10 +974,12 @@ default-package-overrides:
   - haskell-gi ==0.20.3
   - haskell-gi-base ==0.20.4
   - haskell-gi-overloading ==1.0
-  - haskell-import-graph ==1.0.2
+  - haskell-import-graph ==1.0.3
   - haskell-lexer ==1.0.1
   - haskell-lsp ==0.1.0.0
   - haskell-neo4j-client ==0.3.2.4
+  - HaskellNet ==0.5.1
+  - HaskellNet-SSL ==0.3.4.0
   - haskell-packages ==0.5
   - haskell-spacegoo ==0.2.0.1
   - haskell-src ==1.0.2.0
@@ -992,8 +995,6 @@ default-package-overrides:
   - haskell-tools-prettyprint ==0.8.1.0
   - haskell-tools-refactor ==0.8.1.0
   - haskell-tools-rewrite ==0.8.1.0
-  - HaskellNet ==0.5.1
-  - HaskellNet-SSL ==0.3.4.0
   - haskintex ==0.7.0.1
   - hasmin ==0.3.2.4
   - hasql ==0.19.18.1
@@ -1080,20 +1081,20 @@ default-package-overrides:
   - hreader ==1.1.0
   - hreader-lens ==0.1.3.0
   - hruby ==0.3.4.4
-  - hs-bibutils ==5.5
-  - hs-GeoIP ==0.3
   - hsass ==0.4.2
   - hsb2hs ==0.3.1
+  - hs-bibutils ==5.5
   - hscolour ==1.24.1
   - hscurses ==1.4.2.0
   - hsdev ==0.2.5.1
   - hsdns ==1.7
-  - hse-cpp ==0.2
   - hsebaysdk ==0.4.0.0
+  - hse-cpp ==0.2
   - hsemail ==2
-  - HSet ==0.0.1
   - hset ==2.2.0
-  - hsexif ==0.6.1.3
+  - HSet ==0.0.1
+  - hsexif ==0.6.1.4
+  - hs-GeoIP ==0.3
   - hsignal ==0.2.7.5
   - hsinstall ==1.6
   - hslogger ==1.2.10
@@ -1127,8 +1128,8 @@ default-package-overrides:
   - hstatsd ==0.1
   - HStringTemplate ==0.8.6
   - HSvm ==0.1.0.3.22
-  - hsx-jmacro ==7.3.8
   - hsx2hs ==0.14.1.1
+  - hsx-jmacro ==7.3.8
   - hsyslog ==5.0.1
   - htaglib ==1.1.1
   - HTF ==0.13.2.2
@@ -1137,20 +1138,20 @@ default-package-overrides:
   - html-email-validate ==0.2.0.0
   - htoml ==1.0.0.3
   - HTTP ==4000.3.7
+  - http2 ==1.6.3
   - http-api-data ==0.3.7.1
   - http-client ==0.5.7.0
-  - http-client-openssl ==0.2.0.5
+  - http-client-openssl ==0.2.1.1
   - http-client-tls ==0.3.5.1
   - http-common ==0.8.2.0
   - http-conduit ==2.2.3.2
   - http-date ==0.0.6.1
+  - httpd-shed ==0.4.0.3
   - http-link-header ==1.0.3
   - http-media ==0.6.4
   - http-reverse-proxy ==0.4.5
   - http-streams ==0.8.5.3
   - http-types ==0.9.1
-  - http2 ==1.6.3
-  - httpd-shed ==0.4.0.3
   - human-readable-duration ==0.2.0.3
   - HUnit ==1.5.0.0
   - HUnit-approx ==1.1
@@ -1159,16 +1160,16 @@ default-package-overrides:
   - hw-balancedparens ==0.1.0.2
   - hw-bits ==0.5.0.3
   - hw-diagnostics ==0.0.0.5
+  - hweblib ==0.6.3
   - hw-excess ==0.1.0.1
   - hw-int ==0.0.0.3
+  - hworker ==0.1.0.1
   - hw-parser ==0.0.0.3
   - hw-prim ==0.4.0.5
   - hw-rankselect ==0.8.0.2
   - hw-rankselect-base ==0.2.0.2
   - hw-string-parse ==0.0.0.4
   - hw-succinct ==0.1.0.1
-  - hweblib ==0.6.3
-  - hworker ==0.1.0.1
   - hxt ==9.3.1.16
   - hxt-charproperties ==9.2.0.1
   - hxt-css ==0.1.0.3
@@ -1196,7 +1197,7 @@ default-package-overrides:
   - imagesize-conduit ==1.1
   - Imlib ==0.1.2
   - imm ==1.2.0.0
-  - immortal ==0.2.2
+  - immortal ==0.2.2.1
   - include-file ==0.1.0.3
   - incremental-parser ==0.2.5.1
   - indentation-core ==0.0.0.1
@@ -1244,8 +1245,8 @@ default-package-overrides:
   - iso8601-time ==0.1.4
   - isotope ==0.5.0.1
   - iterable ==3.0
-  - ix-shapable ==0.1.0
   - ixset-typed ==0.3.1.1
+  - ix-shapable ==0.1.0
   - jack ==0.7.1.1
   - jailbreak-cabal ==1.3.2
   - javascript-extras ==0.3.1.0
@@ -1271,7 +1272,7 @@ default-package-overrides:
   - jwt ==0.7.2
   - kan-extensions ==5.0.2
   - kansas-comet ==0.4
-  - katip ==0.5.0.0
+  - katip ==0.5.0.1
   - kawhi ==0.3.0
   - kdt ==0.2.4
   - keter ==1.4.3.2
@@ -1329,9 +1330,9 @@ default-package-overrides:
   - libxml-sax ==0.7.5
   - LibZip ==1.0.1
   - licensor ==0.2.1
-  - lift-generics ==0.1.1
   - lifted-async ==0.9.3
   - lifted-base ==0.2.3.11
+  - lift-generics ==0.1.1
   - line ==3.1.0
   - linear ==1.20.7
   - linear-accelerate ==0.4.1
@@ -1340,10 +1341,10 @@ default-package-overrides:
   - linux-namespaces ==0.1.2.0
   - List ==0.6.0
   - list-fusion-probe ==0.1.0.6
-  - list-prompt ==0.1.1.0
-  - list-t ==1.0.0.1
   - ListLike ==4.5.1
+  - list-prompt ==0.1.1.0
   - listsafe ==0.1.0.1
+  - list-t ==1.0.0.1
   - llvm-hs ==4.2.0
   - llvm-hs-pure ==4.1.0.0
   - lmdb ==0.2.5
@@ -1352,13 +1353,13 @@ default-package-overrides:
   - log-base ==0.7.2.0
   - log-domain ==0.11.2
   - log-elasticsearch ==0.9.1.0
-  - log-postgres ==0.7.0.2
   - logfloat ==0.13.3.3
   - logger-thread ==0.1.0.2
   - logging-effect ==1.2.1
   - logging-facade ==0.3.0
   - logging-facade-syslog ==1
   - logict ==0.6.0.2
+  - log-postgres ==0.7.0.2
   - loop ==0.3.0
   - lrucache ==1.2.0.0
   - lrucaching ==0.3.2
@@ -1382,8 +1383,8 @@ default-package-overrides:
   - markup ==3.1.0
   - marvin ==0.2.3
   - marvin-interpolate ==1.1.2
-  - math-functions ==0.2.1.0
   - mathexpr ==0.3.0.0
+  - math-functions ==0.2.1.0
   - matplotlib ==0.5.0
   - matrices ==0.4.5
   - matrix ==0.3.5.0
@@ -1392,13 +1393,13 @@ default-package-overrides:
   - mbox ==0.3.4
   - mbox-utility ==0.0.1
   - mcmc-types ==1.0.3
-  - med-module ==0.1.1
   - mediabus ==0.4.0.1
   - mediabus-rtp ==0.4.0.1
   - median-stream ==0.7.0.0
-  - mega-sdist ==0.3.0.2
+  - med-module ==0.1.1
   - megaparsec ==5.3.1
-  - memory ==0.14.7
+  - mega-sdist ==0.3.0.2
+  - memory ==0.14.8
   - MemoTrie ==0.6.8
   - mersenne-random-pure64 ==0.2.2.0
   - messagepack ==0.5.4
@@ -1437,9 +1438,12 @@ default-package-overrides:
   - monad-control ==1.0.2.2
   - monad-control-aligned ==0.0.1
   - monad-coroutine ==0.9.0.3
+  - monadcryptorandom ==0.7.1
   - monad-extras ==0.6.0
   - monad-http ==0.1.0.0
+  - monadic-arrays ==0.2.2
   - monad-journal ==0.7.2
+  - monadloc ==0.7.1
   - monad-logger ==0.3.25.1
   - monad-logger-json ==0.1.0.0
   - monad-logger-prefix ==0.1.6
@@ -1447,28 +1451,25 @@ default-package-overrides:
   - monad-loops ==0.4.3
   - monad-metrics ==0.1.0.2
   - monad-par ==0.3.4.8
-  - monad-par-extras ==0.3.3
   - monad-parallel ==0.7.2.2
+  - monad-par-extras ==0.3.3
   - monad-peel ==0.2.1.2
+  - monadplus ==1.4.2
   - monad-products ==4.0.1
+  - MonadPrompt ==1.0.0.5
+  - MonadRandom ==0.5.1
   - monad-skeleton ==0.1.5
+  - monads-tf ==0.1.0.3
   - monad-time ==0.2
   - monad-unlift ==0.2.0
   - monad-unlift-ref ==0.2.0
-  - monadcryptorandom ==0.7.1
-  - monadic-arrays ==0.2.2
-  - monadloc ==0.7.1
-  - monadplus ==1.4.2
-  - MonadPrompt ==1.0.0.5
-  - MonadRandom ==0.5.1
-  - monads-tf ==0.1.0.3
   - mongoDB ==2.3.0
-  - mono-traversable ==1.0.2.1
-  - mono-traversable-instances ==0.1.0.0
+  - monoidal-containers ==0.3.0.2
   - monoid-extras ==0.4.2
   - monoid-subclasses ==0.4.4
   - monoid-transformer ==0.0.3
-  - monoidal-containers ==0.3.0.2
+  - mono-traversable ==1.0.2.1
+  - mono-traversable-instances ==0.1.0.0
   - morte ==1.6.10
   - mountpoints ==1.0.2
   - mstate ==0.2.7
@@ -1490,7 +1491,7 @@ default-package-overrides:
   - mysql ==0.1.4
   - mysql-haskell ==0.8.0.0
   - mysql-haskell-openssl ==0.8.0.0
-  - mysql-simple ==0.4.1.0
+  - mysql-simple ==0.4.2.0
   - nagios-check ==0.3.2
   - names-th ==0.2.0.3
   - nano-erl ==0.1.0.1
@@ -1531,11 +1532,11 @@ default-package-overrides:
   - nicify-lib ==1.0.1
   - NineP ==0.0.2.1
   - nix-paths ==1.0.0.1
+  - nonce ==1.0.4
+  - nondeterminism ==1.4
   - non-empty ==0.3
   - non-empty-sequence ==0.2.0.2
   - non-negative ==0.1.1.2
-  - nonce ==1.0.4
-  - nondeterminism ==1.4
   - NoTrace ==0.3.0.2
   - nsis ==0.3.1
   - numbers ==3000.2.0.1
@@ -1566,15 +1567,15 @@ default-package-overrides:
   - oo-prototypes ==0.1.0.0
   - opaleye ==0.5.4.0
   - opaleye-trans ==0.3.6
-  - open-browser ==0.2.1.0
-  - open-witness ==0.4.0.1
   - OpenAL ==1.7.0.4
+  - open-browser ==0.2.1.0
   - openexr-write ==0.1.0.1
   - OpenGL ==3.0.2.0
   - OpenGLRaw ==3.2.5.0
   - openpgp-asciiarmor ==0.1
   - opensource ==0.1.0.0
   - openssl-streams ==1.2.1.3
+  - open-witness ==0.4.0.1
   - operational ==0.2.3.5
   - operational-class ==0.3.0.0
   - opml-conduit ==0.6.0.3
@@ -1622,10 +1623,10 @@ default-package-overrides:
   - pcre-heavy ==1.0.0.2
   - pcre-light ==0.4.0.4
   - pcre-utils ==0.1.8.1.1
+  - pdfinfo ==1.5.4
   - pdf-toolbox-content ==0.0.5.1
   - pdf-toolbox-core ==0.0.4.1
   - pdf-toolbox-document ==0.0.7.1
-  - pdfinfo ==1.5.4
   - pem ==0.2.2
   - perf ==0.1.2
   - persistable-record ==0.5.1.1
@@ -1639,8 +1640,8 @@ default-package-overrides:
   - persistent-refs ==0.4
   - persistent-sqlite ==2.6.2
   - persistent-template ==2.5.2
-  - pg-transact ==0.1.0.1
   - pgp-wordlist ==0.1.0.2
+  - pg-transact ==0.1.0.1
   - phantom-state ==0.2.1.2
   - picedit ==0.2.3.0
   - picoparsec ==0.1.2.3
@@ -1671,14 +1672,14 @@ default-package-overrides:
   - plan-b ==0.2.1
   - plot ==0.2.3.8
   - plot-gtk ==0.2.0.4
-  - plot-gtk-ui ==0.3.0.2
   - plot-gtk3 ==0.1.0.2
+  - plot-gtk-ui ==0.3.0.2
   - plot-light ==0.2.7
-  - point-octree ==0.5.5.3
   - pointed ==5
   - pointedlist ==0.6.1
   - pointful ==1.0.9
   - pointless-fun ==1.1.0.6
+  - point-octree ==0.5.5.3
   - poll ==0.0
   - poly-arity ==0.1.0
   - polynomials-bernstein ==1.1.2
@@ -1686,7 +1687,6 @@ default-package-overrides:
   - pooled-io ==0.0.2.1
   - posix-paths ==0.2.1.1
   - posix-realtime ==0.0.0.4
-  - post-mess-age ==0.2.1.0
   - postgresql-binary ==0.12.1
   - postgresql-libpq ==0.9.3.1
   - postgresql-schema ==0.1.11
@@ -1697,27 +1697,28 @@ default-package-overrides:
   - postgresql-simple-url ==0.2.0.0
   - postgresql-transactional ==1.1.1
   - postgresql-typed ==0.5.1
+  - post-mess-age ==0.2.1.0
   - pqueue ==1.3.2.3
+  - prednote ==0.36.0.4
   - pred-set ==0.0.1
   - pred-trie ==0.5.1.2
-  - prednote ==0.36.0.4
   - prefix-units ==0.2.0
   - prelude-compat ==0.0.0.1
   - prelude-extras ==0.4.0.3
   - prelude-safeenum ==0.1.1.2
   - preprocessor-tools ==1.0.1
   - present ==4.1.0
+  - prettyclass ==1.0.0.0
   - pretty-class ==1.0.1.1
   - pretty-hex ==1.0
-  - pretty-show ==1.6.13
-  - pretty-simple ==2.0.0.0
-  - pretty-types ==0.2.3.1
-  - prettyclass ==1.0.0.0
   - prettyprinter ==1.1.1
   - prettyprinter-ansi-terminal ==1.1.1.1
   - prettyprinter-compat-annotated-wl-pprint ==1
   - prettyprinter-compat-ansi-wl-pprint ==1.0.1
   - prettyprinter-compat-wl-pprint ==1.0.0.1
+  - pretty-show ==1.6.13
+  - pretty-simple ==2.0.0.0
+  - pretty-types ==0.2.3.1
   - primes ==0.2.1.0
   - primitive ==0.6.2.0
   - printcess ==0.1.0.3
@@ -1728,11 +1729,15 @@ default-package-overrides:
   - profiteur ==0.4.3.0
   - profunctor-extras ==4.0
   - profunctors ==5.2.1
-  - project-template ==0.2.0
   - projectroot ==0.2.0.1
+  - project-template ==0.2.0
   - prometheus-client ==0.2.0
   - prometheus-metrics-ghc ==0.2.0
   - prompt ==0.1.1.2
+  - protobuf ==0.2.1.1
+  - protobuf-simple ==0.1.0.4
+  - protocol-buffers ==2.4.3
+  - protocol-buffers-descriptor ==2.4.3
   - proto-lens ==0.2.1.0
   - proto-lens-arbitrary ==0.1.1.1
   - proto-lens-combinators ==0.1.0.7
@@ -1740,10 +1745,6 @@ default-package-overrides:
   - proto-lens-optparse ==0.1.0.4
   - proto-lens-protobuf-types ==0.2.1.0
   - proto-lens-protoc ==0.2.1.0
-  - protobuf ==0.2.1.1
-  - protobuf-simple ==0.1.0.4
-  - protocol-buffers ==2.4.3
-  - protocol-buffers-descriptor ==2.4.3
   - protolude ==0.1.10
   - proxied ==0.3
   - psql-helpers ==0.1.0.0
@@ -1779,32 +1780,32 @@ default-package-overrides:
   - random-tree ==0.6.0.5
   - range ==0.1.2.0
   - range-set-list ==0.1.2.0
-  - rank-product ==0.2.0.1
   - rank1dynamic ==0.3.3.0
+  - rank-product ==0.2.0.1
   - Rasterific ==0.7.2.1
   - rasterific-svg ==0.3.3
   - ratel ==0.3.5
   - ratel-wai ==0.2.0
   - rattletrap ==2.5.0
-  - raw-strings-qq ==1.1
   - rawfilepath ==0.2.4
   - rawstring-qm ==0.2.3.0
+  - raw-strings-qq ==1.1
   - rdf ==0.1.0.2
   - rdtsc ==1.3.0.1
   - reactive-banana ==1.1.0.1
-  - read-editor ==0.1.0.2
-  - read-env-var ==1.0.0.0
   - readable ==0.3.1
   - ReadArgs ==1.2.3
+  - read-editor ==0.1.0.2
+  - read-env-var ==1.0.0.0
   - readline ==1.0.3.0
   - rebase ==1.0.8.1
   - recursion-schemes ==5.0.2
   - redis-io ==0.7.0
   - redis-resp ==0.4.0
   - reducers ==3.12.1
-  - ref-fd ==0.4.0.1
   - refact ==0.3.0.2
   - references ==0.3.2.2
+  - ref-fd ==0.4.0.1
   - refined ==0.1.2.1
   - reflection ==2.1.2
   - reform ==0.2.7.1
@@ -1865,9 +1866,9 @@ default-package-overrides:
   - rvar ==0.2.0.3
   - s3-signer ==0.3.0.0
   - safe ==0.3.15
+  - safecopy ==0.9.3.3
   - safe-exceptions ==0.1.6.0
   - safe-exceptions-checked ==0.1.0
-  - safecopy ==0.9.3.3
   - safeio ==0.0.4.0
   - SafeSemaphore ==0.10.1
   - sample-frame ==0.0.3
@@ -1932,9 +1933,9 @@ default-package-overrides:
   - serversession-frontend-yesod ==1.0
   - servius ==1.2.0.2
   - set-cover ==0.0.8
-  - set-monad ==0.2.0.0
   - setenv ==0.1.1.3
   - setlocale ==1.0.0.5
+  - set-monad ==0.2.0.0
   - sets ==0.0.5.2
   - SHA ==1.6.4.2
   - shake ==0.15.11
@@ -1997,8 +1998,8 @@ default-package-overrides:
   - Spintax ==0.3.2
   - splice ==0.6.1.1
   - split ==0.2.3.2
-  - split-record ==0.1.1.3
   - splitmix ==0
+  - split-record ==0.1.1.3
   - Spock ==0.12.0.0
   - Spock-api ==0.12.0.0
   - Spock-api-server ==0.12.0.0
@@ -2007,16 +2008,16 @@ default-package-overrides:
   - Spock-worker ==0.3.1.0
   - spool ==0.1
   - spreadsheet ==0.1.3.5
-  - sql-words ==0.1.5.1
   - sqlite-simple ==0.4.14.0
   - sqlite-simple-errors ==0.6.0.0
+  - sql-words ==0.1.5.1
   - srcloc ==0.5.1.1
   - stache ==0.2.2
-  - stack-run-auto ==0.1.1.4
-  - stack-type ==0.1.0.0
   - stackage-curator ==0.14.5
   - stackage-query ==0.1.1
   - stackage-types ==1.2.0
+  - stack-run-auto ==0.1.1.4
+  - stack-type ==0.1.0.0
   - stateref ==0.3
   - statestack ==0.2.0.5
   - StateVar ==1.1.0.4
@@ -2030,10 +2031,10 @@ default-package-overrides:
   - stm-containers ==0.2.16
   - stm-delay ==0.1.1.1
   - stm-extras ==0.1.0.2
+  - STMonadTrans ==0.4.3
   - stm-split ==0.0.2
   - stm-stats ==0.2.0.0
   - stm-supply ==0.2.0.0
-  - STMonadTrans ==0.4.3
   - stopwatch ==0.1.0.4
   - storable-complex ==0.2.2
   - storable-endian ==0.2.6
@@ -2055,13 +2056,13 @@ default-package-overrides:
   - streams ==3.3
   - strict ==0.3.2
   - strict-base-types ==0.5.0
+  - stringable ==0.1.3
+  - stringbuilder ==0.5.0
   - string-class ==0.1.6.5
   - string-combinators ==0.6.0.5
   - string-conv ==0.1.2
   - string-conversions ==0.4.0.1
   - string-qq ==0.0.2
-  - stringable ==0.1.3
-  - stringbuilder ==0.5.0
   - stringsearch ==0.3.6.6
   - strive ==3.0.4
   - stylish-haskell ==0.8.1.0
@@ -2070,8 +2071,8 @@ default-package-overrides:
   - superbuffer ==0.3.1.1
   - superrecord ==0.3.0.0
   - svg-builder ==0.1.0.2
-  - svg-tree ==0.6.2
   - SVGFonts ==1.6.0.2
+  - svg-tree ==0.6.2
   - swagger ==0.3.0
   - swagger2 ==2.1.5
   - syb ==0.7
@@ -2144,7 +2145,7 @@ default-package-overrides:
   - test-framework-smallcheck ==0.2
   - test-framework-th ==0.2.4
   - testing-feat ==0.4.0.3
-  - texmath ==0.9.4.1
+  - texmath ==0.9.4.2
   - text ==1.2.2.2
   - text-all ==0.4.1.1
   - text-binary ==0.2.1.1
@@ -2154,6 +2155,7 @@ default-package-overrides:
   - text-icu ==0.7.0.1
   - text-latin1 ==0.3
   - text-ldap ==0.1.1.8
+  - textlocal ==0.1.0.5
   - text-manipulate ==0.2.0.1
   - text-metrics ==0.3.0
   - text-postgresql ==0.0.2.3
@@ -2162,39 +2164,38 @@ default-package-overrides:
   - text-show ==3.6
   - text-show-instances ==3.6
   - text-zipper ==0.10.1
-  - textlocal ==0.1.0.5
-  - tf-random ==0.5
   - tfp ==1.0.0.2
+  - tf-random ==0.5
   - th-abstraction ==0.2.6.0
   - th-data-compat ==0.0.2.4
   - th-desugar ==1.6
+  - these ==0.7.3
   - th-expand-syns ==0.4.3.0
   - th-extras ==0.0.0.4
   - th-lift ==0.7.7
   - th-lift-instances ==0.1.11
   - th-orphans ==0.13.4
-  - th-reify-compat ==0.0.1.2
-  - th-reify-many ==0.1.8
-  - th-to-exp ==0.0.1.1
-  - th-utilities ==0.2.0.1
-  - these ==0.7.3
   - thread-local-storage ==0.1.1
   - threads ==0.5.1.5
   - threepenny-editors ==0.4.1
   - threepenny-gui ==0.8.1.0
   - threepenny-gui-flexbox ==0.4.2
+  - th-reify-compat ==0.0.1.2
+  - th-reify-many ==0.1.8
   - through-text ==0.1.0.0
-  - throwable-exceptions ==0.1.0.8
+  - throwable-exceptions ==0.1.0.9
+  - th-to-exp ==0.0.1.1
   - thumbnail-plus ==1.0.5
+  - th-utilities ==0.2.0.1
   - thyme ==0.3.5.5
   - tidal ==0.9.4
   - time-compat ==0.1.0.3
-  - time-lens ==0.4.0.1
-  - time-locale-compat ==0.1.1.3
-  - time-parsers ==0.1.2.0
   - timeit ==1.0.0.0
   - timelens ==0.2.0.2
+  - time-lens ==0.4.0.1
+  - time-locale-compat ==0.1.1.3
   - timemap ==0.0.4
+  - time-parsers ==0.1.2.0
   - timerep ==2.0.0.2
   - timespan ==0.3.0.0
   - timezone-olson ==0.1.8
@@ -2226,8 +2227,8 @@ default-package-overrides:
   - ttrie ==0.1.2.1
   - tttool ==1.7.0.3
   - tuple ==0.3.0.2
-  - tuple-th ==0.2.5
   - tuples-homogenous-h98 ==0.1.1.0
+  - tuple-th ==0.2.5
   - turtle ==1.3.6
   - turtle-options ==0.1.0.4
   - twitter-conduit ==0.2.2.2
@@ -2237,25 +2238,25 @@ default-package-overrides:
   - type-aligned ==0.9.6
   - type-assertions ==0.1.0.0
   - type-combinators ==0.2.4.3
+  - TypeCompose ==0.9.12
+  - typed-process ==0.1.1
   - type-fun ==0.1.1
   - type-hint ==0.1
   - type-level-integers ==0.0.1
   - type-level-kv-list ==1.1.0
   - type-level-numbers ==0.1.1.1
   - type-list ==0.5.0.0
+  - typelits-witnesses ==0.2.3.0
   - type-operators ==0.1.0.4
   - type-spec ==0.3.0.1
-  - TypeCompose ==0.9.12
-  - typed-process ==0.1.1
-  - typelits-witnesses ==0.2.3.0
   - typography-geometry ==1.0.0.1
   - tz ==0.1.3.0
   - tzdata ==0.1.20170320.0
   - ua-parser ==0.7.4
   - uglymemo ==0.1.0.1
   - unbound ==0.5.1
-  - unbound-generics ==0.3.1
   - unbounded-delays ==0.1.1.0
+  - unbound-generics ==0.3.1
   - uncertain ==0.3.1.0
   - unexceptionalio ==0.3.0
   - unfoldable ==0.9.4
@@ -2300,10 +2301,10 @@ default-package-overrides:
   - utf8-light ==0.4.2
   - utf8-string ==1.0.1.1
   - utility-ht ==0.0.14
-  - uu-interleaved ==0.2.0.0
-  - uu-parsinglib ==2.9.1.1
   - uuid ==1.3.13
   - uuid-types ==1.0.3
+  - uu-interleaved ==0.2.0.0
+  - uu-parsinglib ==2.9.1.1
   - vado ==0.0.9
   - validate-input ==0.4.0.0
   - validation ==0.5.5
@@ -2359,13 +2360,18 @@ default-package-overrides:
   - wai-session ==0.3.2
   - wai-session-postgresql ==0.2.1.0
   - wai-slack-middleware ==0.2.0
+  - waitra ==0.0.4.0
   - wai-transformers ==0.0.7
   - wai-websockets ==3.0.1.1
-  - waitra ==0.0.4.0
   - warp ==3.2.13
   - warp-tls ==3.2.4
   - wave ==0.1.5
   - wavefront-obj ==0.1.0.1
+  - webdriver ==0.8.5
+  - webdriver-angular ==0.1.11
+  - webkitgtk3 ==0.14.2.1
+  - webkitgtk3-javascriptcore ==0.14.2.1
+  - webpage ==0.0.5
   - web-plugins ==0.2.9
   - web-routes ==0.27.12
   - web-routes-boomerang ==0.28.4.2
@@ -2373,11 +2379,6 @@ default-package-overrides:
   - web-routes-hsp ==0.24.6.1
   - web-routes-th ==0.22.6.2
   - web-routes-wai ==0.24.3
-  - webdriver ==0.8.5
-  - webdriver-angular ==0.1.11
-  - webkitgtk3 ==0.14.2.1
-  - webkitgtk3-javascriptcore ==0.14.2.1
-  - webpage ==0.0.5
   - webrtc-vad ==0.1.0.3
   - websockets ==0.10.0.0
   - websockets-rpc ==0.4.0
@@ -2392,11 +2393,11 @@ default-package-overrides:
   - wild-bind-x11 ==0.1.0.7
   - Win32 ==2.3.1.1
   - Win32-extras ==0.2.0.1
-  - Win32-notify ==0.3.0.1
+  - Win32-notify ==0.3.0.3
   - wire-streams ==0.1.1.0
-  - with-location ==0.1.0
   - withdependencies ==0.2.4.1
   - witherable ==0.1.3.4
+  - with-location ==0.1.0
   - witness ==0.4
   - wizards ==1.0.2
   - wl-pprint ==1.2
@@ -2405,9 +2406,9 @@ default-package-overrides:
   - wl-pprint-extras ==3.5.0.5
   - wl-pprint-terminfo ==3.7.1.4
   - wl-pprint-text ==1.1.1.0
-  - word-trie ==0.3.0
   - word24 ==2.0.1
   - word8 ==0.1.3
+  - word-trie ==0.3.0
   - Workflow ==0.8.3
   - wrap ==0.0.0
   - wreq ==0.5.0.1
@@ -2437,6 +2438,7 @@ default-package-overrides:
   - xml-conduit ==1.5.1
   - xml-conduit-parse ==0.3.1.1
   - xml-conduit-writer ==0.1.1.1
+  - xmlgen ==0.6.2.1
   - xml-hamlet ==0.4.1
   - xml-html-qq ==0.1.0.1
   - xml-indexed-cursor ==0.1.1.0
@@ -2445,7 +2447,6 @@ default-package-overrides:
   - xml-to-json ==2.0.1
   - xml-to-json-fast ==2.0.0
   - xml-types ==0.3.6
-  - xmlgen ==0.6.2.1
   - xmonad ==0.13
   - xmonad-contrib ==0.13
   - xmonad-extras ==0.13.1
@@ -2456,7 +2457,6 @@ default-package-overrides:
   - yaml ==0.8.23.3
   - Yampa ==0.10.6.2
   - YampaSynth ==0.2
-  - yes-precure5-command ==5.5.3
   - yesod ==1.4.5
   - yesod-auth ==1.4.19
   - yesod-auth-account ==1.4.3
@@ -2464,12 +2464,12 @@ default-package-overrides:
   - yesod-auth-fb ==1.8.1
   - yesod-auth-hashdb ==1.6.2
   - yesod-bin ==1.5.2.5
-  - yesod-core ==1.4.36
+  - yesod-core ==1.4.37
   - yesod-default ==1.2.0
   - yesod-eventsource ==1.4.1
   - yesod-fb ==0.4.0
   - yesod-form ==1.4.16
-  - yesod-form-bootstrap4 ==0.1.0.1
+  - yesod-form-bootstrap4 ==0.1.0.2
   - yesod-form-richtext ==0.1.0.2
   - yesod-gitrepo ==0.2.1.0
   - yesod-gitrev ==0.1.0.0
@@ -2477,13 +2477,14 @@ default-package-overrides:
   - yesod-markdown ==0.11.4
   - yesod-newsfeed ==1.6
   - yesod-persistent ==1.4.2
-  - yesod-recaptcha2 ==0.1.0.0
+  - yesod-recaptcha2 ==0.1.0.1
   - yesod-sitemap ==1.4.0.1
   - yesod-static ==1.5.3.1
   - yesod-static-angular ==0.1.8
   - yesod-table ==2.0.3
   - yesod-test ==1.5.8
   - yesod-websockets ==0.2.6
+  - yes-precure5-command ==5.5.3
   - yi-core ==0.14.1
   - yi-frontend-vty ==0.14.1
   - yi-fuzzy-open ==0.14.1
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 60cce56cca02..06903d833588 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -14,7 +14,7 @@ let isCross = (ghc.cross or null) != null; in
 , configureFlags ? []
 , description ? ""
 , doCheck ? !isCross && (stdenv.lib.versionOlder "7.4" ghc.version)
-, withBenchmarkDepends ? false
+, doBenchmark ? false
 , doHoogle ? true
 , editedCabalFile ? null
 , enableLibraryProfiling ? false
@@ -150,7 +150,7 @@ let
   isSystemPkg = x: !isHaskellPkg x;
 
   allPkgconfigDepends = pkgconfigDepends ++ libraryPkgconfigDepends ++ executablePkgconfigDepends ++
-                        optionals doCheck testPkgconfigDepends ++ optionals withBenchmarkDepends benchmarkPkgconfigDepends;
+                        optionals doCheck testPkgconfigDepends ++ optionals doBenchmark benchmarkPkgconfigDepends;
 
   nativeBuildInputs = buildTools ++ libraryToolDepends ++ executableToolDepends ++ [ removeReferencesTo ];
   propagatedBuildInputs = buildDepends ++ libraryHaskellDepends ++ executableHaskellDepends;
@@ -159,7 +159,7 @@ let
                      optionals doCheck (testDepends ++ testHaskellDepends ++ testSystemDepends ++ testToolDepends) ++
                      # ghcjs's hsc2hs calls out to the native hsc2hs
                      optional isGhcjs nativeGhc ++
-                     optionals withBenchmarkDepends (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkToolDepends);
+                     optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkToolDepends);
   allBuildInputs = propagatedBuildInputs ++ otherBuildInputs;
 
   haskellBuildInputs = stdenv.lib.filter isHaskellPkg allBuildInputs;
@@ -401,7 +401,7 @@ stdenv.mkDerivation ({
 // optionalAttrs (preBuild != "")       { inherit preBuild; }
 // optionalAttrs (postBuild != "")      { inherit postBuild; }
 // optionalAttrs (doCheck)              { inherit doCheck; }
-// optionalAttrs (withBenchmarkDepends) { inherit withBenchmarkDepends; }
+// optionalAttrs (doBenchmark)          { inherit doBenchmark; }
 // optionalAttrs (checkPhase != "")     { inherit checkPhase; }
 // optionalAttrs (preCheck != "")       { inherit preCheck; }
 // optionalAttrs (postCheck != "")      { inherit postCheck; }
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 5be4388835bb..54f2b494e1dd 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -4231,8 +4231,8 @@ self: {
     ({ mkDerivation, base, containers, MonadRandom }:
      mkDerivation {
        pname = "Dist";
-       version = "0.4.0.0";
-       sha256 = "120wlh4y3cwbxnkkxhmd8l189h0c36rq992a5mlz336022sczcvi";
+       version = "0.4.1.0";
+       sha256 = "1fmln09jai679lwpxngx8dn0yr2g5dsccvjhacl69s3hy76czd0b";
        libraryHaskellDepends = [ base containers MonadRandom ];
        testHaskellDepends = [ base containers MonadRandom ];
        homepage = "https://github.com/wyager/Dist";
@@ -18651,21 +18651,6 @@ self: {
     ({ mkDerivation, base, containers, directory, Win32 }:
      mkDerivation {
        pname = "Win32-notify";
-       version = "0.3.0.1";
-       sha256 = "0zzbb00rykl8y1prkcm3paaamhmdrqji34070b9zg7sg2pc5k4f4";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base containers directory Win32 ];
-       executableHaskellDepends = [ base directory ];
-       description = "A binding to part of the Win32 library for file notification";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
-  "Win32-notify_0_3_0_3" = callPackage
-    ({ mkDerivation, base, containers, directory, Win32 }:
-     mkDerivation {
-       pname = "Win32-notify";
        version = "0.3.0.3";
        sha256 = "05j10i83354cqbi8yzq5rgkkd6rmxsvy1b0sbwz3pkmidkhdn88c";
        isLibrary = true;
@@ -25845,6 +25830,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) openssl;};
 
+  "apecs" = callPackage
+    ({ mkDerivation, base, containers, criterion, linear, mtl, random
+     , sdl2, vector
+     }:
+     mkDerivation {
+       pname = "apecs";
+       version = "0.2.0.2";
+       sha256 = "177cym1wfkfw2abg3hs17fj569j189vr99a98avh1nnf6bgv8hk9";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers mtl vector ];
+       executableHaskellDepends = [ base linear random sdl2 ];
+       benchmarkHaskellDepends = [ base criterion linear ];
+       homepage = "https://github.com/jonascarpay/apecs#readme";
+       description = "A fast ECS for game engine programming";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "apelsin" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, deepseq
      , directory, filepath, glib, gtk, HTTP, mtl, network, process
@@ -27123,7 +27126,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "arithmoi_0_5_0_1" = callPackage
+  "arithmoi_0_6_0_0" = callPackage
     ({ mkDerivation, array, base, containers, criterion, exact-pi
      , ghc-prim, integer-gmp, integer-logarithms, mtl, QuickCheck
      , random, smallcheck, tasty, tasty-hunit, tasty-quickcheck
@@ -27131,8 +27134,8 @@ self: {
      }:
      mkDerivation {
        pname = "arithmoi";
-       version = "0.5.0.1";
-       sha256 = "1hny1xnkwi0ahzdw4d1pfskdi416wl6k6p4pfzqssj79bhlpp6vg";
+       version = "0.6.0.0";
+       sha256 = "14kcv5n9rm48f9vac333cbazy4hlpb0wqgb4fbv97ivxnjs7g22m";
        configureFlags = [ "-f-llvm" ];
        libraryHaskellDepends = [
          array base containers exact-pi ghc-prim integer-gmp
@@ -27809,8 +27812,8 @@ self: {
     ({ mkDerivation, base, pretty-show, text }:
      mkDerivation {
        pname = "assert-failure";
-       version = "0.1.2.1";
-       sha256 = "1fjn40d555ryz9fffbx3qizrh3y018kalz6b4w8gdxapvpszj0sc";
+       version = "0.1.2.2";
+       sha256 = "17aapnal893awjwfjw8lfk1n688sfkpckpvfb0rnjkvvabyid57n";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base pretty-show text ];
        homepage = "https://github.com/Mikolaj/assert-failure";
@@ -28368,6 +28371,33 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "atom-conduit_0_5_0_0" = callPackage
+    ({ mkDerivation, base, blaze-builder, conduit, conduit-combinators
+     , data-default, hlint, lens-simple, mono-traversable, parsers
+     , quickcheck-instances, resourcet, safe-exceptions, tasty
+     , tasty-hunit, tasty-quickcheck, text, time, timerep
+     , uri-bytestring, xml-conduit, xml-types
+     }:
+     mkDerivation {
+       pname = "atom-conduit";
+       version = "0.5.0.0";
+       sha256 = "06a7g93zhsp8smy5m4c45hjhb3yz3l89a60vb09s31l0idgf4j42";
+       libraryHaskellDepends = [
+         base blaze-builder conduit conduit-combinators lens-simple
+         mono-traversable parsers safe-exceptions text time timerep
+         uri-bytestring xml-conduit xml-types
+       ];
+       testHaskellDepends = [
+         base blaze-builder conduit conduit-combinators data-default hlint
+         lens-simple mono-traversable parsers quickcheck-instances resourcet
+         safe-exceptions tasty tasty-hunit tasty-quickcheck text time
+         uri-bytestring xml-conduit xml-types
+       ];
+       description = "Streaming parser/renderer for the Atom 1.0 standard (RFC 4287).";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "atom-msp430" = callPackage
     ({ mkDerivation, atom, base, mtl }:
      mkDerivation {
@@ -29364,6 +29394,24 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "avers-api_0_1_0" = callPackage
+    ({ mkDerivation, aeson, avers, base, bytestring, cookie
+     , http-api-data, servant, text, time, vector
+     }:
+     mkDerivation {
+       pname = "avers-api";
+       version = "0.1.0";
+       sha256 = "0gjs5msyhd23m8kij3j8r3chy875rcqjwi938124kb6idybna5sw";
+       libraryHaskellDepends = [
+         aeson avers base bytestring cookie http-api-data servant text time
+         vector
+       ];
+       homepage = "http://github.com/wereHamster/avers-api";
+       description = "Types describing the core and extended Avers APIs";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "avers-api-docs" = callPackage
     ({ mkDerivation, aeson, avers, avers-api, base, cookie, lens
      , servant, servant-swagger, swagger2, text, unordered-containers
@@ -29408,6 +29456,30 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "avers-server_0_1_0" = callPackage
+    ({ mkDerivation, aeson, avers, avers-api, base, base64-bytestring
+     , bytestring, bytestring-conversion, containers, cookie, cryptonite
+     , http-types, memory, mtl, resource-pool, rethinkdb-client-driver
+     , servant, servant-server, stm, text, time, transformers, wai
+     , wai-websockets, websockets
+     }:
+     mkDerivation {
+       pname = "avers-server";
+       version = "0.1.0";
+       sha256 = "0m809p50l1bfhnmbwl3ncav8lz7xh38yakqa35z65afb6k1g900z";
+       libraryHaskellDepends = [
+         aeson avers avers-api base base64-bytestring bytestring
+         bytestring-conversion containers cookie cryptonite http-types
+         memory mtl resource-pool rethinkdb-client-driver servant
+         servant-server stm text time transformers wai wai-websockets
+         websockets
+       ];
+       homepage = "http://github.com/wereHamster/avers-server";
+       description = "Server implementation of the Avers API";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "aviation-cessna172-diagrams" = callPackage
     ({ mkDerivation, aviation-cessna172-weight-balance, aviation-units
      , aviation-weight-balance, base, colour, diagrams-cairo
@@ -35287,6 +35359,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "bloodhound_0_15_0_0" = callPackage
+    ({ mkDerivation, aeson, base, blaze-builder, bytestring, containers
+     , data-default-class, errors, exceptions, generics-sop, hashable
+     , hspec, http-client, http-types, mtl, mtl-compat, network-uri
+     , QuickCheck, quickcheck-properties, scientific, semigroups
+     , temporary, text, time, transformers, unix-compat
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "bloodhound";
+       version = "0.15.0.0";
+       sha256 = "05q2zxmrxxqmi4vr98dvgfly8gir5h4iaimb3lwiflk0pw8nfn6n";
+       libraryHaskellDepends = [
+         aeson base blaze-builder bytestring containers data-default-class
+         exceptions hashable http-client http-types mtl mtl-compat
+         network-uri scientific semigroups text time transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers errors exceptions generics-sop
+         hspec http-client http-types mtl network-uri QuickCheck
+         quickcheck-properties semigroups temporary text time unix-compat
+         unordered-containers vector
+       ];
+       homepage = "https://github.com/bitemyapp/bloodhound";
+       description = "ElasticSearch client library for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "bloodhound-amazonka-auth" = callPackage
     ({ mkDerivation, aeson, amazonka, amazonka-core
      , amazonka-elasticsearch, base, bloodhound, exceptions, http-client
@@ -36430,6 +36532,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "bricks" = callPackage
+    ({ mkDerivation, base, containers, doctest, hedgehog, parsec
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "bricks";
+       version = "0.0.0.2";
+       sha256 = "1iyf9dkifl064x74vxnqdlv096qxiyhvqn91jmj090i4r6m4jlhw";
+       libraryHaskellDepends = [ base containers parsec text ];
+       testHaskellDepends = [
+         base containers doctest hedgehog parsec template-haskell text
+       ];
+       homepage = "https://github.com/chris-martin/bricks#readme";
+       description = "Bricks is a lazy functional language based on Nix";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "brillig" = callPackage
     ({ mkDerivation, base, binary, cmdargs, containers, directory
      , filepath, ListZipper, text
@@ -44723,8 +44842,8 @@ self: {
      }:
      mkDerivation {
        pname = "cmv";
-       version = "1.0.3";
-       sha256 = "1ahvr926iwg7r9ljflng28gwm39g2j42r754hbqg8ph5n0h0nlxj";
+       version = "1.0.5";
+       sha256 = "12nkz10i54g7p3a3c9psizd4gjj8d3w4ylps1zwqb7anvy1nqw4c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -46770,6 +46889,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "concurrency_1_2_0_0" = callPackage
+    ({ mkDerivation, array, atomic-primops, base, exceptions
+     , monad-control, mtl, stm, transformers
+     }:
+     mkDerivation {
+       pname = "concurrency";
+       version = "1.2.0.0";
+       sha256 = "08mqacgidcqsr633h4msbq2as8q1j5fim0jz9j46lpd1p1ksygn5";
+       libraryHaskellDepends = [
+         array atomic-primops base exceptions monad-control mtl stm
+         transformers
+       ];
+       homepage = "https://github.com/barrucadu/dejafu";
+       description = "Typeclasses, functions, and data types for concurrency and STM";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "concurrent-barrier" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -48114,17 +48251,24 @@ self: {
      }) {};
 
   "consumers" = callPackage
-    ({ mkDerivation, base, containers, exceptions, hpqtypes
-     , lifted-base, lifted-threads, log-base, monad-control, mtl, stm
-     , time, transformers-base
+    ({ mkDerivation, base, containers, exceptions, extra, hpqtypes
+     , hpqtypes-extras, HUnit, lifted-base, lifted-threads, log-base
+     , monad-control, monad-loops, monad-time, mtl, stm, text, text-show
+     , time, transformers, transformers-base
      }:
      mkDerivation {
        pname = "consumers";
-       version = "2.0.0.1";
-       sha256 = "1hpqn3bd4d08is0lczn1cgr9kl0s5rz719p8a2n1qyjriibrh7k1";
+       version = "2.1.0.0";
+       sha256 = "19pi32g1kpjasapg7bkrn3rxhzwl4ml1ndg5is3pjckm72awkf5y";
        libraryHaskellDepends = [
-         base containers exceptions hpqtypes lifted-base lifted-threads
-         log-base monad-control mtl stm time transformers-base
+         base containers exceptions extra hpqtypes lifted-base
+         lifted-threads log-base monad-control monad-time mtl stm time
+         transformers-base
+       ];
+       testHaskellDepends = [
+         base exceptions hpqtypes hpqtypes-extras HUnit log-base
+         monad-control monad-loops monad-time mtl stm text text-show time
+         transformers transformers-base
        ];
        homepage = "https://github.com/scrive/consumers";
        description = "Concurrent PostgreSQL data consumers";
@@ -53023,8 +53167,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "data-category";
-       version = "0.6.2";
-       sha256 = "0kpcpnczlk4pznimkhji1d073nqx80sgkmirkgchlcy9fsqd10lf";
+       version = "0.7";
+       sha256 = "000x29a8x2ca7m85z0h7snm0297jf9ndr46dh3arv43fjlvfy3ag";
        homepage = "http://github.com/sjoerdvisscher/data-category";
        description = "Category theory";
        license = stdenv.lib.licenses.bsd3;
@@ -53104,6 +53248,22 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "data-constructors" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, QuickCheck
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "data-constructors";
+       version = "0.1.0.0";
+       sha256 = "0mjzhknwhfnd359rzrl3a59vl0mnwpc0j4i3dkl5f04mki0r54cd";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base QuickCheck ];
+       benchmarkHaskellDepends = [ base criterion deepseq QuickCheck ];
+       homepage = "https://github.com/daig/data-constructors#readme";
+       description = "Generically compare data by their constructors";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "data-cycle" = callPackage
     ({ mkDerivation, base, collections-api, collections-base-instances
      }:
@@ -53601,6 +53761,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "data-fix_0_2_0" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "data-fix";
+       version = "0.2.0";
+       sha256 = "14hk6hq5hdb3l5bhmzhw086jpzlvp9qbw9dzw30wlz5jbh2ihmvy";
+       libraryHaskellDepends = [ base ];
+       homepage = "https://github.com/anton-k/data-fix";
+       description = "Fixpoint data types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "data-fix-cse" = callPackage
     ({ mkDerivation, base, containers, data-fix, transformers }:
      mkDerivation {
@@ -56083,8 +56256,8 @@ self: {
      }:
      mkDerivation {
        pname = "dejafu";
-       version = "0.7.1.3";
-       sha256 = "1bb629li526ji0kk3vkyrf5kim5m42k9vfhdhjcizdw85dlbxqgn";
+       version = "0.7.2.0";
+       sha256 = "1jr5k7ky13vvak4jdvfaksil9li1wis0gc1jbaann4pa18y9d358";
        libraryHaskellDepends = [
          base concurrency containers deepseq exceptions leancheck mtl random
          ref-fd semigroups transformers transformers-base
@@ -56955,8 +57128,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-nix";
-       version = "1.0.6";
-       sha256 = "04p6rkqgydv0xg0qia969wyrjjd7xlkk99cyf21xizj50mqrhdga";
+       version = "1.0.7";
+       sha256 = "1ivckxwxcdnvp9cdrq02hr3xr2n6p0lpj43pfi8lznx908jbbb2k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -57518,28 +57691,6 @@ self: {
      }:
      mkDerivation {
        pname = "diagrams-svg";
-       version = "1.4.1";
-       sha256 = "11vzcsqgkc8jzm5dw82swgqzahck541mz2l9jkkwfdaq09w16sff";
-       revision = "1";
-       editedCabalFile = "12cp0898pplap5skhq43xsxh0m2ilv5lz9zw2fhkkjmnr4pbl2dx";
-       libraryHaskellDepends = [
-         base base64-bytestring bytestring colour containers diagrams-core
-         diagrams-lib filepath hashable JuicyPixels lens monoid-extras mtl
-         optparse-applicative semigroups split svg-builder text
-       ];
-       homepage = "http://projects.haskell.org/diagrams/";
-       description = "SVG backend for diagrams drawing EDSL";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "diagrams-svg_1_4_1_1" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, colour
-     , containers, diagrams-core, diagrams-lib, filepath, hashable
-     , JuicyPixels, lens, monoid-extras, mtl, optparse-applicative
-     , semigroups, split, svg-builder, text
-     }:
-     mkDerivation {
-       pname = "diagrams-svg";
        version = "1.4.1.1";
        sha256 = "1ans2lliaxqbx2q2459kiv59ff307vz6plqnh082pxhvmk36h1n8";
        libraryHaskellDepends = [
@@ -57550,7 +57701,6 @@ self: {
        homepage = "http://projects.haskell.org/diagrams/";
        description = "SVG backend for diagrams drawing EDSL";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "diagrams-tikz" = callPackage
@@ -58472,12 +58622,12 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "directory_1_3_1_1" = callPackage
+  "directory_1_3_1_2" = callPackage
     ({ mkDerivation, base, filepath, time, unix }:
      mkDerivation {
        pname = "directory";
-       version = "1.3.1.1";
-       sha256 = "0hlbvrlrh58imrf95qbjdk1pw6n1mph4cd1258pk2z938ivdsm2k";
+       version = "1.3.1.2";
+       sha256 = "1y7dzq7naa0fmhacxwvblwqk6ljn131ggzxq104iy3xk9iknsq07";
        libraryHaskellDepends = [ base filepath time unix ];
        testHaskellDepends = [ base filepath time unix ];
        description = "Platform-agnostic library for filesystem operations";
@@ -60264,6 +60414,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "dollaridoos" = callPackage
+    ({ mkDerivation, base, profunctors, semigroups }:
+     mkDerivation {
+       pname = "dollaridoos";
+       version = "0.1.0.0";
+       sha256 = "1pipbyfpny8mq540rpfkgkwbc3mc13yf6xm1h9vxm0fnaa8kcbw9";
+       libraryHaskellDepends = [ base profunctors semigroups ];
+       homepage = "https://github.com/qfpl/dollaridoos";
+       description = "A newtype for monetary values";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "dom-lt" = callPackage
     ({ mkDerivation, array, base, containers }:
      mkDerivation {
@@ -61458,8 +61620,8 @@ self: {
     ({ mkDerivation, base, transformers, transformers-base }:
      mkDerivation {
        pname = "dunai";
-       version = "0.1.0.0";
-       sha256 = "03ah8qh22pw7vm09gsldiy526z43zn9cq6jz6fnskjll2yz0hsgs";
+       version = "0.1.1.0";
+       sha256 = "1smzf6m5l2ma500r9d51iia994lq8wvq2ryf3gijz3fyll6f5ibn";
        libraryHaskellDepends = [ base transformers transformers-base ];
        description = "Generalised reactive framework supporting classic, arrowized and monadic FRP";
        license = stdenv.lib.licenses.bsd3;
@@ -64662,14 +64824,15 @@ self: {
 
   "equational-reasoning" = callPackage
     ({ mkDerivation, base, containers, singletons, template-haskell
-     , th-desugar, void
+     , th-desugar, th-extras, void
      }:
      mkDerivation {
        pname = "equational-reasoning";
-       version = "0.4.1.1";
-       sha256 = "1h7qrl7k39cclbh1sal0ima1nnvbv5bzrpg2a21zqhrasyzvj807";
+       version = "0.5.0.0";
+       sha256 = "0qskw6dhnr6x7zpfaj246gyiml6w3196ci08i98cl8n2xkyn6n4c";
        libraryHaskellDepends = [
-         base containers singletons template-haskell th-desugar void
+         base containers singletons template-haskell th-desugar th-extras
+         void
        ];
        description = "Proof assistant for Haskell using DataKinds & PolyKinds";
        license = stdenv.lib.licenses.bsd3;
@@ -64932,8 +65095,8 @@ self: {
      }:
      mkDerivation {
        pname = "errors";
-       version = "2.2.1";
-       sha256 = "0cgmalid229snvn788sk2w16bqgfzgwc4ir2p60jvwqbj63yp5s1";
+       version = "2.2.2";
+       sha256 = "13sflhglcm5skwrxb48fw96skdcx7ydiy4zg22200733pxhjncpn";
        libraryHaskellDepends = [
          base exceptions safe text transformers transformers-compat
          unexceptionalio
@@ -66890,8 +67053,8 @@ self: {
      }:
      mkDerivation {
        pname = "expressions";
-       version = "0.1.2";
-       sha256 = "0xl0302n98ijizv30bmj6dkmafam74rnn7n77q176ql22mjr0yfn";
+       version = "0.1.3";
+       sha256 = "0b3f9h0s7ayijkpqk929pgw6lxszbq94c9y69wsfcs7h7awd792h";
        libraryHaskellDepends = [
          attoparsec base containers lattices singletons text transformers
        ];
@@ -66903,6 +67066,21 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "expressions-z3" = callPackage
+    ({ mkDerivation, base, containers, expressions, singletons
+     , transformers, z3
+     }:
+     mkDerivation {
+       pname = "expressions-z3";
+       version = "0.1.0";
+       sha256 = "1ma1g8b25466cpk8fyaf6fajp330wvnd44h2ddjvm9hkgaa8s82x";
+       libraryHaskellDepends = [
+         base containers expressions singletons transformers z3
+       ];
+       description = "Encode and Decode expressions from Z3 ASTs";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "extcore" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, directory
      , filepath, mtl, parsec, pretty, syb
@@ -70903,28 +71081,6 @@ self: {
 
   "fn" = callPackage
     ({ mkDerivation, base, blaze-builder, bytestring, directory
-     , filepath, hspec, http-types, text, unordered-containers, wai
-     , wai-extra
-     }:
-     mkDerivation {
-       pname = "fn";
-       version = "0.3.0.1";
-       sha256 = "1gflcaph9mh5ba4d9nvfxcz0dp33iy7lcdj4584lycjjgrlvpkvj";
-       libraryHaskellDepends = [
-         base blaze-builder bytestring directory filepath http-types text
-         unordered-containers wai wai-extra
-       ];
-       testHaskellDepends = [
-         base directory filepath hspec http-types text unordered-containers
-         wai wai-extra
-       ];
-       homepage = "http://github.com/positiondev/fn#readme";
-       description = "A functional web framework";
-       license = stdenv.lib.licenses.isc;
-     }) {};
-
-  "fn_0_3_0_2" = callPackage
-    ({ mkDerivation, base, blaze-builder, bytestring, directory
      , filepath, hspec, http-types, resourcet, text
      , unordered-containers, wai, wai-extra
      }:
@@ -70943,7 +71099,6 @@ self: {
        homepage = "http://github.com/positiondev/fn#readme";
        description = "A functional web framework";
        license = stdenv.lib.licenses.isc;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fn-extra" = callPackage
@@ -71577,21 +71732,6 @@ self: {
      }:
      mkDerivation {
        pname = "formatting";
-       version = "6.2.4";
-       sha256 = "0rrkydr0zdcwji6grnrm8mlxj67q08sh6vhfnxm35g6k6x0bfba3";
-       libraryHaskellDepends = [
-         base clock old-locale scientific text text-format time
-       ];
-       description = "Combinator-based type-safe formatting (like printf() or FORMAT)";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "formatting_6_2_5" = callPackage
-    ({ mkDerivation, base, clock, old-locale, scientific, text
-     , text-format, time
-     }:
-     mkDerivation {
-       pname = "formatting";
        version = "6.2.5";
        sha256 = "0k4z8b9x91m243kplx9gap1rqyvdszf3241aq7pkqwrybbzgm8yh";
        libraryHaskellDepends = [
@@ -71599,7 +71739,6 @@ self: {
        ];
        description = "Combinator-based type-safe formatting (like printf() or FORMAT)";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "forml" = callPackage
@@ -71809,24 +71948,6 @@ self: {
      }) {};
 
   "foundation" = callPackage
-    ({ mkDerivation, base, criterion, ghc-prim, mtl, QuickCheck, tasty
-     , tasty-hunit, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "foundation";
-       version = "0.0.13";
-       sha256 = "0pvmq3lkbdzj861l7jkf5xsib77j756y0vml8kgr2rckpz5qashh";
-       libraryHaskellDepends = [ base ghc-prim ];
-       testHaskellDepends = [
-         base mtl QuickCheck tasty tasty-hunit tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ base criterion ];
-       homepage = "https://github.com/haskell-foundation/foundation";
-       description = "Alternative prelude with batteries and no dependencies";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "foundation_0_0_15" = callPackage
     ({ mkDerivation, base, basement, criterion, ghc-prim }:
      mkDerivation {
        pname = "foundation";
@@ -71838,7 +71959,6 @@ self: {
        homepage = "https://github.com/haskell-foundation/foundation";
        description = "Alternative prelude with batteries and no dependencies";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "foundation-edge" = callPackage
@@ -73759,6 +73879,19 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "g4ip-prover" = callPackage
+    ({ mkDerivation, array, base }:
+     mkDerivation {
+       pname = "g4ip-prover";
+       version = "0.1.0.0";
+       sha256 = "0sx2qvji1vj8p67bfdj9vdyvyin62r5rh39zfr9njx43m9may48g";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [ array base ];
+       description = "Theorem prover for intuitionistic propositional logic using G4ip";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "gact" = callPackage
     ({ mkDerivation, base, biopsl, bytestring, cmdargs, hashable
      , unordered-containers
@@ -76263,6 +76396,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ghc-syb-utils_0_2_3_3" = callPackage
+    ({ mkDerivation, base, directory, filepath, ghc, ghc-paths, syb }:
+     mkDerivation {
+       pname = "ghc-syb-utils";
+       version = "0.2.3.3";
+       sha256 = "0fj7cqkdkb2kbfsif62bgc17cymnxjr6nnbsd1z4hfw8hz4pchjz";
+       libraryHaskellDepends = [ base ghc syb ];
+       testHaskellDepends = [ base directory filepath ghc ghc-paths ];
+       homepage = "http://github.com/nominolo/ghc-syb";
+       description = "Scrap Your Boilerplate utilities for the GHC API";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ghc-tcplugins-extra" = callPackage
     ({ mkDerivation, base, ghc }:
      mkDerivation {
@@ -76563,6 +76710,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ghcid_0_6_7" = callPackage
+    ({ mkDerivation, ansi-terminal, base, cmdargs, containers
+     , directory, extra, filepath, fsnotify, process, tasty, tasty-hunit
+     , terminal-size, time, unix
+     }:
+     mkDerivation {
+       pname = "ghcid";
+       version = "0.6.7";
+       sha256 = "1drx6nwniflgz0l7szdnnbski03c4jpgqlx45cilyq6s50byvqy6";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base cmdargs directory extra filepath process time unix
+       ];
+       executableHaskellDepends = [
+         ansi-terminal base cmdargs containers directory extra filepath
+         fsnotify process terminal-size time unix
+       ];
+       testHaskellDepends = [
+         ansi-terminal base cmdargs containers directory extra filepath
+         fsnotify process tasty tasty-hunit terminal-size time unix
+       ];
+       homepage = "https://github.com/ndmitchell/ghcid#readme";
+       description = "GHCi based bare bones IDE";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ghcjs-ajax" = callPackage
     ({ mkDerivation, aeson, base, http-types, text }:
      mkDerivation {
@@ -76576,32 +76751,14 @@ self: {
      }) {};
 
   "ghcjs-base-stub" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, deepseq, ghc-prim
-     , primitive, scientific, text, transformers, unordered-containers
-     , vector
-     }:
-     mkDerivation {
-       pname = "ghcjs-base-stub";
-       version = "0.1.0.2";
-       sha256 = "1x8gsv5g6asxh4z3ni7n5zypsrlj6snrp2d376dk9lkz1is8k432";
-       libraryHaskellDepends = [
-         aeson attoparsec base deepseq ghc-prim primitive scientific text
-         transformers unordered-containers vector
-       ];
-       homepage = "https://github.com/louispan/javascript-stub#readme";
-       description = "Allow GHCJS projects to compile under GHC and develop using intero";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghcjs-base-stub_0_1_0_3" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, containers, deepseq
      , ghc-prim, primitive, scientific, text, transformers
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "ghcjs-base-stub";
-       version = "0.1.0.3";
-       sha256 = "1b9hvqzqiaq5f8daahayjh1rw2izpfssq1bvj9iis2v3ihh8hl01";
+       version = "0.1.0.4";
+       sha256 = "1a0jmckbz3346h7mvi1b0r9jx2w1yli3lw9xh4cnqyv7pfcjpar7";
        libraryHaskellDepends = [
          aeson attoparsec base containers deepseq ghc-prim primitive
          scientific text transformers unordered-containers vector
@@ -76609,7 +76766,6 @@ self: {
        homepage = "https://github.com/louispan/javascript-stub#readme";
        description = "Allow GHCJS projects to compile under GHC and develop using intero";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghcjs-codemirror" = callPackage
@@ -82601,6 +82757,24 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "graphite" = callPackage
+    ({ mkDerivation, base, containers, graphviz, hashable, hspec
+     , process, QuickCheck, random, unordered-containers
+     }:
+     mkDerivation {
+       pname = "graphite";
+       version = "0.4.0.0";
+       sha256 = "1xfa0wqgnbwn4wbkxk8hy70gkg20175d7scmvb8brin7ygy6pnxk";
+       libraryHaskellDepends = [
+         base containers graphviz hashable process QuickCheck random
+         unordered-containers
+       ];
+       testHaskellDepends = [ base hspec QuickCheck ];
+       homepage = "https://github.com/alx741/graphite#readme";
+       description = "Graphs and networks library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "graphmod" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, dotgen
      , filepath, haskell-lexer
@@ -83454,11 +83628,12 @@ self: {
      }) {};
 
   "gsl-random" = callPackage
-    ({ mkDerivation, base, vector }:
+    ({ mkDerivation, base, Cabal, vector }:
      mkDerivation {
        pname = "gsl-random";
-       version = "0.5.1";
-       sha256 = "1s26ilz5s82ja103sf9a8dvjs6ah1xwinf7n3694qricid4qskjb";
+       version = "0.5.3";
+       sha256 = "08jrxpgshvygw7m91nvnwynyrrn94iw6k6gp24fzwdkv8dayzqb2";
+       setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base vector ];
        homepage = "http://github.com/patperry/hs-gsl-random";
        description = "Bindings the the GSL random number generation facilities";
@@ -89548,25 +89723,6 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-import-graph";
-       version = "1.0.2";
-       sha256 = "17pfvbs6mkv8iv86qzqsnq45f5scry2xkx4b7y3kf9bcj39xx1z6";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base classy-prelude ghc graphviz process text transformers
-       ];
-       executableHaskellDepends = [ base ];
-       homepage = "https://github.com/ncaq/haskell-import-graph.git#readme";
-       description = "create haskell import graph for graphviz";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "haskell-import-graph_1_0_3" = callPackage
-    ({ mkDerivation, base, classy-prelude, ghc, graphviz, process, text
-     , transformers
-     }:
-     mkDerivation {
-       pname = "haskell-import-graph";
        version = "1.0.3";
        sha256 = "1fh3nn4hqcj6lc3m1zlxykxk2dbchh3cdz63k8zfpl7dr2d91132";
        isLibrary = true;
@@ -89578,7 +89734,6 @@ self: {
        homepage = "https://github.com/ncaq/haskell-import-graph#readme";
        description = "create haskell import graph for graphviz";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-in-space" = callPackage
@@ -89728,8 +89883,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-names";
-       version = "0.8.0";
-       sha256 = "127fjggbgxhpxdh5sdj4pdfgx9xadaw93n0ii07grz0jgbvj0fwn";
+       version = "0.9.0";
+       sha256 = "117nywdif86x11kmv5ibfqxn3bjaxb2flygvhp7d62kglqz2l85x";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring containers data-lens-light filepath
@@ -92363,6 +92518,26 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "haste-app" = callPackage
+    ({ mkDerivation, base, bytestring, containers, data-default
+     , exceptions, filepath, haste-lib, haste-prim, http-types, mtl
+     , text, transformers, utf8-string, wai, wai-websockets, warp
+     , websockets
+     }:
+     mkDerivation {
+       pname = "haste-app";
+       version = "0.1.0.0";
+       sha256 = "1x8pkprprm86f429ndhlkxpziaaagyzimy8kmxmad0c0ynacn04g";
+       libraryHaskellDepends = [
+         base bytestring containers data-default exceptions filepath
+         haste-lib haste-prim http-types mtl text transformers utf8-string
+         wai wai-websockets warp websockets
+       ];
+       homepage = "http://haste-lang.org";
+       description = "Framework for type-safe, distributed web applications";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "haste-compiler" = callPackage
     ({ mkDerivation, array, base, bin-package-db, binary, blaze-builder
      , bytestring, bzlib, Cabal, containers, cryptonite, directory
@@ -92408,6 +92583,25 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "haste-lib" = callPackage
+    ({ mkDerivation, array, base, binary, bytestring, containers
+     , data-binary-ieee754, ghc-prim, haste-prim, integer-gmp, monads-tf
+     , random, time, transformers, utf8-string
+     }:
+     mkDerivation {
+       pname = "haste-lib";
+       version = "0.6.0.0";
+       sha256 = "0bybww5g0dr3x3hr9ibpx6r71nvykmcwzafbmcy6jyhxzqazi9p9";
+       libraryHaskellDepends = [
+         array base binary bytestring containers data-binary-ieee754
+         ghc-prim haste-prim integer-gmp monads-tf random time transformers
+         utf8-string
+       ];
+       homepage = "http://github.com/valderman/haste-compiler";
+       description = "Base libraries for haste-compiler";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "haste-markup" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, haste-lib
      }:
@@ -92421,8 +92615,7 @@ self: {
        homepage = "http://github.com/ajnsit/haste-markup";
        description = "A port of blaze-markup and blaze-html to Haste";
        license = stdenv.lib.licenses.mit;
-       broken = true;
-     }) {haste-lib = null;};
+     }) {};
 
   "haste-perch" = callPackage
     ({ mkDerivation, base, haste-compiler, transformers }:
@@ -92437,6 +92630,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "haste-prim" = callPackage
+    ({ mkDerivation, base, ghc-prim, integer-gmp }:
+     mkDerivation {
+       pname = "haste-prim";
+       version = "0.6.0.0";
+       sha256 = "1gmvvqy0xy396r3jnfmdhh70j7k73qs38cw9znwgl8jjywpzrmw5";
+       libraryHaskellDepends = [ base ghc-prim integer-gmp ];
+       homepage = "http://haste-lang.org";
+       description = "Low level primitives for the Haste compiler";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hastily" = callPackage
     ({ mkDerivation, aeson, base, bytestring, concurrent-extra
      , containers, directory, directory-tree, exceptions, filepath
@@ -95413,6 +95618,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hformat_0_3_1_0" = callPackage
+    ({ mkDerivation, ansi-terminal, base, base-unicode-symbols, hspec
+     , text
+     }:
+     mkDerivation {
+       pname = "hformat";
+       version = "0.3.1.0";
+       sha256 = "1lf6x8y81jxvynid1k3588kbc7xk331bp6c4hnd8x19l0jvp4shd";
+       libraryHaskellDepends = [
+         ansi-terminal base base-unicode-symbols text
+       ];
+       testHaskellDepends = [ base base-unicode-symbols hspec text ];
+       homepage = "http://github.com/mvoidex/hformat";
+       description = "Simple Haskell formatting";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hfov" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -97165,6 +97388,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hjsonpointer_1_3_0" = callPackage
+    ({ mkDerivation, aeson, base, hashable, hspec, http-types
+     , QuickCheck, semigroups, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "hjsonpointer";
+       version = "1.3.0";
+       sha256 = "0cfq6lrwww81hppjdfnj6ys11ajzdz4rrpzlp220mv88cin4jns4";
+       revision = "1";
+       editedCabalFile = "053x0iy7kzmf8b9mqr94lapv95d2rm2zm14lvvviyccqsd3k5gjd";
+       libraryHaskellDepends = [
+         aeson base hashable QuickCheck semigroups text unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         aeson base hspec http-types QuickCheck text unordered-containers
+         vector
+       ];
+       homepage = "https://github.com/seagreen/hjsonpointer";
+       description = "JSON Pointer library";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hjsonschema" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, containers
      , directory, file-embed, filepath, hashable, hjsonpointer, hspec
@@ -97192,6 +97439,34 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hjsonschema_1_7_0" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, containers
+     , directory, file-embed, filepath, hashable, hjsonpointer, hspec
+     , http-client, http-types, pcre-heavy, profunctors, protolude
+     , QuickCheck, scientific, semigroups, text, unordered-containers
+     , vector, wai-app-static, warp
+     }:
+     mkDerivation {
+       pname = "hjsonschema";
+       version = "1.7.0";
+       sha256 = "01k29v8xqw3d8vy3qdf6ppgjmly7ppbg19yjrsiv10szishwigg2";
+       libraryHaskellDepends = [
+         aeson base bytestring containers file-embed filepath hashable
+         hjsonpointer http-client http-types pcre-heavy profunctors
+         protolude QuickCheck scientific semigroups text
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson async base bytestring directory filepath hjsonpointer hspec
+         profunctors protolude QuickCheck semigroups text
+         unordered-containers vector wai-app-static warp
+       ];
+       homepage = "https://github.com/seagreen/hjsonschema";
+       description = "JSON Schema library";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hjugement" = callPackage
     ({ mkDerivation, base, containers, QuickCheck, tasty, tasty-hunit
      , tasty-quickcheck, text, transformers
@@ -98616,6 +98891,28 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {ocilib = null;};
 
+  "hodatime" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers, criterion
+     , directory, filepath, mtl, random, tasty, tasty-hunit
+     , tasty-quickcheck, tasty-smallcheck, time
+     }:
+     mkDerivation {
+       pname = "hodatime";
+       version = "0.1.1.1";
+       sha256 = "021zj3g4phvqdvckr7kzxicrb4dm2fvna3hkf8n0kw3d07qyvq4v";
+       libraryHaskellDepends = [
+         base binary bytestring containers directory filepath mtl
+       ];
+       testHaskellDepends = [
+         base bytestring tasty tasty-hunit tasty-quickcheck tasty-smallcheck
+         time
+       ];
+       benchmarkHaskellDepends = [ base criterion random ];
+       homepage = "https://github.com/jason-johnson/hodatime";
+       description = "A fully featured date/time library based on Nodatime";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hoe" = callPackage
     ({ mkDerivation, base, exceptions, hint, mtl, optparse-declarative
      , regex-posix, split, text, time
@@ -102486,8 +102783,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsexif";
-       version = "0.6.1.3";
-       sha256 = "09d8679m6xgbka36rwjvhr7w355dn6arp7cxkdjgbzm7x9zhi5w8";
+       version = "0.6.1.4";
+       sha256 = "1ip2nyljjka99azygg2sx6a6d00vac6b8rd5y93yyhy6sp5d8m2r";
        libraryHaskellDepends = [
          base binary bytestring containers iconv text time
        ];
@@ -105410,26 +105707,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-client-openssl";
-       version = "0.2.0.5";
-       sha256 = "1kv0f76sa6pkjgm5hjy1zf5p1k60r0crpj00glrjzgh0i1l0gr51";
-       libraryHaskellDepends = [ base HsOpenSSL http-client network ];
-       testHaskellDepends = [
-         base HsOpenSSL hspec http-client http-types
-       ];
-       doCheck = false;
-       homepage = "https://github.com/snoyberg/http-client";
-       description = "http-client backend using the OpenSSL library";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "http-client-openssl_0_2_1_0" = callPackage
-    ({ mkDerivation, base, HsOpenSSL, hspec, http-client, http-types
-     , network
-     }:
-     mkDerivation {
-       pname = "http-client-openssl";
-       version = "0.2.1.0";
-       sha256 = "1k80gljqah2dqiardnzdkgrf5p3wvzrxqgc0gqg2vnnjxxj8paf7";
+       version = "0.2.1.1";
+       sha256 = "173s2m73xcf6ramy680ky4zhxhmrymh98g2hv5xa2pnj489j7vi4";
        libraryHaskellDepends = [ base HsOpenSSL http-client network ];
        testHaskellDepends = [
          base HsOpenSSL hspec http-client http-types
@@ -105438,7 +105717,6 @@ self: {
        homepage = "https://github.com/snoyberg/http-client";
        description = "http-client backend using the OpenSSL library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "http-client-request-modifiers" = callPackage
@@ -106199,8 +106477,8 @@ self: {
      }:
      mkDerivation {
        pname = "http2-client";
-       version = "0.3.0.2";
-       sha256 = "06iw2mi176rwjmmynhjhyl06f3jq832viyl7adbxgdyws36b64jl";
+       version = "0.4.0.0";
+       sha256 = "077qd9pqgyw2ldsl1rjmn9bk04i6pndckdk9wnqiaq8gibl7d6yw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -107521,8 +107799,8 @@ self: {
      }:
      mkDerivation {
        pname = "hw-xml";
-       version = "0.1.0.0";
-       sha256 = "04ld7ny0s43qin92ycw0j1xki7r93cnlw8aq7418m6k17pq9kicc";
+       version = "0.1.0.1";
+       sha256 = "0fhf0l6zpmrj76gkhbym8ds9dg270y22hdpqxrg11gxyrdymdnbd";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -110120,25 +110398,6 @@ self: {
      }:
      mkDerivation {
        pname = "immortal";
-       version = "0.2.2";
-       sha256 = "0fk2qgi33k45nbrbngqr73kaxcd6bf25fk8qh1rwvspm60w8z1dk";
-       libraryHaskellDepends = [
-         base lifted-base monad-control stm transformers-base
-       ];
-       testHaskellDepends = [
-         base lifted-base stm tasty tasty-hunit transformers
-       ];
-       homepage = "https://github.com/feuerbach/immortal";
-       description = "Spawn threads that never die (unless told to do so)";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "immortal_0_2_2_1" = callPackage
-    ({ mkDerivation, base, lifted-base, monad-control, stm, tasty
-     , tasty-hunit, transformers, transformers-base
-     }:
-     mkDerivation {
-       pname = "immortal";
        version = "0.2.2.1";
        sha256 = "13lddk62byx8w41k80d24q31mmijacnqqz64zrrkls9si2ia2jpd";
        libraryHaskellDepends = [
@@ -110150,7 +110409,6 @@ self: {
        homepage = "https://github.com/feuerbach/immortal";
        description = "Spawn threads that never die (unless told to do so)";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "imparse" = callPackage
@@ -114760,8 +115018,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-warp";
-       version = "0.9.4.0";
-       sha256 = "0asl6jw6ymc9iw5g45qihxhfb59fhsxj7bxzgnvsqrxq4kdfv0a6";
+       version = "0.9.5.0";
+       sha256 = "18rvs0m8407piavqvv95dp4bfcgn73c22xjcb75fax0bhf0s6aak";
        libraryHaskellDepends = [
          aeson base bytestring containers foreign-store http-types jsaddle
          stm text time transformers wai wai-websockets warp websockets
@@ -116474,21 +116732,21 @@ self: {
      , bytestring, containers, criterion, deepseq, directory, either
      , filepath, hostname, microlens, microlens-th, monad-control, mtl
      , old-locale, quickcheck-instances, regex-tdfa, resourcet
-     , safe-exceptions, semigroups, stm, string-conv, tasty
+     , safe-exceptions, scientific, semigroups, stm, string-conv, tasty
      , tasty-golden, tasty-hunit, tasty-quickcheck, template-haskell
      , text, time, time-locale-compat, transformers, transformers-base
      , transformers-compat, unix, unordered-containers
      }:
      mkDerivation {
        pname = "katip";
-       version = "0.5.0.0";
-       sha256 = "0wqf5d4hjy6mc050g7hl2m3b66pi3fhyy37w0jwm7q7rrcplyncc";
+       version = "0.5.0.1";
+       sha256 = "085gvjki8ifq83hz9im53yjzwpz9jr01vn09y4gvwlxniys70yc2";
        libraryHaskellDepends = [
          aeson async auto-update base bytestring containers either hostname
          microlens microlens-th monad-control mtl old-locale resourcet
-         safe-exceptions semigroups stm string-conv template-haskell text
-         time transformers transformers-base transformers-compat unix
-         unordered-containers
+         safe-exceptions scientific semigroups stm string-conv
+         template-haskell text time transformers transformers-base
+         transformers-compat unix unordered-containers
        ];
        testHaskellDepends = [
          aeson base bytestring containers directory microlens
@@ -116515,8 +116773,8 @@ self: {
      }:
      mkDerivation {
        pname = "katip-elasticsearch";
-       version = "0.4.0.0";
-       sha256 = "0ypss3ga6xcqwd03y3jbq9mi6ka4h6srlr7ybb8k38bk9ql0bfld";
+       version = "0.4.0.1";
+       sha256 = "0w1iprf3lpnbgil3gzpka5akjc8kl3l6g2knizddjb6xvszy564q";
        libraryHaskellDepends = [
          aeson async base bloodhound bytestring enclosed-exceptions
          exceptions http-client http-types katip retry scientific stm
@@ -122692,6 +122950,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "line_4_0_0" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , cryptohash-sha256, hspec, hspec-wai, http-conduit, http-types
+     , QuickCheck, quickcheck-instances, raw-strings-qq, scotty, text
+     , time, transformers, wai
+     }:
+     mkDerivation {
+       pname = "line";
+       version = "4.0.0";
+       sha256 = "1xg8d1q7y57k615pdqfn0rx94n49qz9d4647dqyg9gjd7qhzcmkx";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring cryptohash-sha256
+         http-conduit http-types scotty text time transformers wai
+       ];
+       testHaskellDepends = [
+         aeson base base64-bytestring bytestring cryptohash-sha256 hspec
+         hspec-wai QuickCheck quickcheck-instances raw-strings-qq scotty
+         text time transformers
+       ];
+       homepage = "https://github.com/noraesae/line";
+       description = "Haskell SDK for the LINE API";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "line-break" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -124123,18 +124406,18 @@ self: {
      }) {};
 
   "llvm-extra" = callPackage
-    ({ mkDerivation, base, containers, cpuid, llvm-tf, non-empty, tfp
-     , transformers, unsafe, utility-ht
+    ({ mkDerivation, base, bifunctors, containers, cpuid, llvm-tf
+     , non-empty, tfp, transformers, unsafe, utility-ht
      }:
      mkDerivation {
        pname = "llvm-extra";
-       version = "0.7.2";
-       sha256 = "19wzfz1jcxvrm2pzniap9kf3c9plj9c5x24wjcbzyslgx0jzip4n";
+       version = "0.7.3";
+       sha256 = "12h3c86i8hps26rgy1s8m7rpmp7v6sms7m3bnq7l22qca7dny58a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers cpuid llvm-tf non-empty tfp transformers unsafe
-         utility-ht
+         base bifunctors containers cpuid llvm-tf non-empty tfp transformers
+         unsafe utility-ht
        ];
        homepage = "https://wiki.haskell.org/LLVM";
        description = "Utility functions for the llvm interface";
@@ -124983,8 +125266,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-warper";
-       version = "1.2.0";
-       sha256 = "0y02wlfw12x2y6hgq9878ynnghyg4xvai806fbapz3vi9xypd5jv";
+       version = "1.2.1";
+       sha256 = "0qy1i40ypjcsvqy63jgn824a8iclvw49bhnkxab4k5vjhypd78ga";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -129837,25 +130120,6 @@ self: {
      }:
      mkDerivation {
        pname = "memory";
-       version = "0.14.7";
-       sha256 = "0snm3kphsrjixg1hpas1rfxaq7id7i5siprqf1p9lz7x1l4vznyj";
-       libraryHaskellDepends = [
-         base bytestring deepseq foundation ghc-prim
-       ];
-       testHaskellDepends = [
-         base foundation tasty tasty-hunit tasty-quickcheck
-       ];
-       homepage = "https://github.com/vincenthz/hs-memory";
-       description = "memory and related abstraction stuff";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "memory_0_14_8" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, foundation, ghc-prim
-     , tasty, tasty-hunit, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "memory";
        version = "0.14.8";
        sha256 = "093jin2yckha0wccswwxqaak2di7fz2v2rid03h1q0pjm4q9vmyk";
        libraryHaskellDepends = [
@@ -129867,7 +130131,6 @@ self: {
        homepage = "https://github.com/vincenthz/hs-memory";
        description = "memory and related abstraction stuff";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "memorypool" = callPackage
@@ -130355,6 +130618,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "microgroove" = callPackage
+    ({ mkDerivation, base, primitive, vector }:
+     mkDerivation {
+       pname = "microgroove";
+       version = "0.1.0.0";
+       sha256 = "0mzgx3ljf7k7b0c6kdryamcyvahhr2q1j836ghhsk58r4j67qh13";
+       libraryHaskellDepends = [ base primitive vector ];
+       homepage = "https://github.com/daig/microgroove";
+       description = "Array-backed extensible records";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "microlens" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -130483,8 +130758,8 @@ self: {
      }:
      mkDerivation {
        pname = "micrologger";
-       version = "0.3.1.1";
-       sha256 = "1rq1ksjrh2xd5f8naq3xqfnir3bbln5cfq019w1a7zvxjsf3qlkc";
+       version = "0.4.0.0";
+       sha256 = "03np1fkbjqa1lnnpb2fci8r9r8nhbixyjljb9i64fnckj3qvfkj9";
        libraryHaskellDepends = [
          aeson base containers text text-format time transformers
        ];
@@ -132688,13 +132963,13 @@ self: {
      }:
      mkDerivation {
        pname = "monad-mock";
-       version = "0.1.1.2";
-       sha256 = "029c8jcw7y3hd1llvfnm85fwxvfh7mlhr7dxnfsx6x8zq1qda12f";
+       version = "0.2.0.0";
+       sha256 = "0yrak2wlgh09pzfs8zqbaysjm8fds62pjsflqwdkxn3i4q6fbbvv";
        libraryHaskellDepends = [
          base constraints exceptions haskell-src-exts haskell-src-meta
          monad-control mtl template-haskell th-orphans transformers-base
        ];
-       testHaskellDepends = [ base hspec ];
+       testHaskellDepends = [ base hspec mtl ];
        homepage = "https://github.com/cjdev/monad-mock#readme";
        description = "A monad transformer for mocking mtl-style typeclasses";
        license = stdenv.lib.licenses.isc;
@@ -133865,8 +134140,8 @@ self: {
      }:
      mkDerivation {
        pname = "monte-carlo";
-       version = "0.6.1";
-       sha256 = "1zk8wyf9bzarnvsxh9a6diyssb78sfq1pl729gq113j0vibs8f0x";
+       version = "0.6.2";
+       sha256 = "1cnbs78i1kbsh04wzsp3yrrs0sywn3cdswqz9b6qg2q275x18yy6";
        libraryHaskellDepends = [
          base gsl-random primitive transformers vector
        ];
@@ -136250,25 +136525,6 @@ self: {
      }:
      mkDerivation {
        pname = "mysql-simple";
-       version = "0.4.1.0";
-       sha256 = "008ygaawqm91323ypsq2ih9bsvm10kld6p80av2p61iaklancgva";
-       libraryHaskellDepends = [
-         attoparsec base base16-bytestring blaze-builder blaze-textual
-         bytestring mysql old-locale pcre-light text time
-       ];
-       testHaskellDepends = [ base hspec ];
-       homepage = "https://github.com/paul-rouse/mysql-simple";
-       description = "A mid-level MySQL client library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "mysql-simple_0_4_2_0" = callPackage
-    ({ mkDerivation, attoparsec, base, base16-bytestring, blaze-builder
-     , blaze-textual, bytestring, hspec, mysql, old-locale, pcre-light
-     , text, time
-     }:
-     mkDerivation {
-       pname = "mysql-simple";
        version = "0.4.2.0";
        sha256 = "0050z2hhdg9zmqczghjc609aaaqjzrxrfly68d4m5046wz4lnkx8";
        libraryHaskellDepends = [
@@ -136279,7 +136535,6 @@ self: {
        homepage = "https://github.com/paul-rouse/mysql-simple";
        description = "A mid-level MySQL client library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "mysql-simple-quasi" = callPackage
@@ -136457,6 +136712,40 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "nakadi-client" = callPackage
+    ({ mkDerivation, aeson, aeson-casing, async, base, bytestring
+     , classy-prelude, conduit, conduit-combinators, conduit-extra
+     , containers, hashable, http-client, http-client-tls, http-conduit
+     , http-types, iso8601-time, lens, lens-aeson, monad-logger, mtl
+     , random, resourcet, retry, safe-exceptions, say, scientific, split
+     , tasty, tasty-hunit, template-haskell, text, time, transformers
+     , unordered-containers, uuid, vector
+     }:
+     mkDerivation {
+       pname = "nakadi-client";
+       version = "0.2.0.0";
+       sha256 = "0s9n5zrn6jncgjnj56ffpfmlhd9pmf6r82cq5xl054rxh5kbr79p";
+       libraryHaskellDepends = [
+         aeson aeson-casing base bytestring conduit conduit-combinators
+         conduit-extra containers hashable http-client http-client-tls
+         http-conduit http-types iso8601-time lens monad-logger mtl
+         resourcet retry safe-exceptions scientific split tasty
+         template-haskell text time transformers unordered-containers uuid
+         vector
+       ];
+       testHaskellDepends = [
+         aeson aeson-casing async base bytestring classy-prelude conduit
+         conduit-combinators conduit-extra containers hashable http-client
+         http-client-tls http-conduit http-types iso8601-time lens
+         lens-aeson monad-logger mtl random resourcet retry safe-exceptions
+         say scientific split tasty tasty-hunit template-haskell text time
+         transformers unordered-containers uuid vector
+       ];
+       homepage = "https://github.com/mtesseract/nakadi-haskell#readme";
+       description = "Client library for the Nakadi Event Broker";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "namecoin-update" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, lens, text, wreq }:
      mkDerivation {
@@ -140585,17 +140874,17 @@ self: {
      }) {};
 
   "numhask-array" = callPackage
-    ({ mkDerivation, adjunctions, base, distributive, doctest
+    ({ mkDerivation, adjunctions, base, deepseq, distributive, doctest
      , ghc-typelits-natnormalise, numhask, protolude, singletons
      , typelits-witnesses, vector
      }:
      mkDerivation {
        pname = "numhask-array";
-       version = "0.0.1";
-       sha256 = "0drxxbzzflgc7z5pjwy6pkrxkzckkj7xqp2icsn8762nwc9iqsp4";
+       version = "0.0.2";
+       sha256 = "0gbmwkpxdp1flzyndsqc5zgm2nlrpc8q4s0d2z8pws8g2gyymyj9";
        libraryHaskellDepends = [
-         adjunctions base distributive ghc-typelits-natnormalise numhask
-         protolude singletons typelits-witnesses vector
+         adjunctions base deepseq distributive ghc-typelits-natnormalise
+         numhask protolude singletons typelits-witnesses vector
        ];
        testHaskellDepends = [ base doctest numhask ];
        homepage = "https://github.com/tonyday567/numhask-array";
@@ -144080,7 +144369,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "pandoc-citeproc_0_11_1" = callPackage
+  "pandoc-citeproc_0_11_1_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , containers, data-default, directory, filepath, hs-bibutils, mtl
      , old-locale, pandoc, pandoc-types, parsec, process, rfc5051
@@ -144089,8 +144378,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc";
-       version = "0.11.1";
-       sha256 = "0si9xc1f1rhli2pqanvbran150mnj465a5d5psd4jxc82y5bha2f";
+       version = "0.11.1.1";
+       sha256 = "00732amji7xlrkxzlwc5rzkq6saxjlvwlvinhkw4hyh1w0d74qwj";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -144106,8 +144395,8 @@ self: {
          yaml
        ];
        testHaskellDepends = [
-         aeson base bytestring directory filepath mtl pandoc pandoc-types
-         process temporary text yaml
+         aeson base bytestring containers directory filepath mtl pandoc
+         pandoc-types process temporary text yaml
        ];
        doCheck = false;
        homepage = "https://github.com/jgm/pandoc-citeproc";
@@ -146508,19 +146797,36 @@ self: {
      }) {};
 
   "pcf-font" = callPackage
-    ({ mkDerivation, base, binary, bytestring, containers, vector }:
+    ({ mkDerivation, base, binary, bytestring, containers, vector, zlib
+     }:
      mkDerivation {
        pname = "pcf-font";
-       version = "0.1.0.0";
-       sha256 = "14ix40vsvax0wklb3bffg99rvhfq1w6w937r4n73kknhjszdhf6g";
+       version = "0.2.1.1";
+       sha256 = "0746y3kqkh13cps9swgf9pp2kbrybxjbhs5wh38aqgpj64dwgcdc";
        libraryHaskellDepends = [
-         base binary bytestring containers vector
+         base binary bytestring containers vector zlib
        ];
        homepage = "https://github.com/michael-swan/pcf-font";
        description = "PCF font parsing and rendering library";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "pcf-font-embed" = callPackage
+    ({ mkDerivation, base, bytestring, pcf-font, template-haskell
+     , vector
+     }:
+     mkDerivation {
+       pname = "pcf-font-embed";
+       version = "0.1.0.0";
+       sha256 = "0qbbsphl39k90j0cg45g9rzv3pnk6kzkjibkaa7qq70xb7i4didy";
+       libraryHaskellDepends = [
+         base bytestring pcf-font template-haskell vector
+       ];
+       homepage = "https://github.com/michael-swan/pcf-font-embed";
+       description = "Template Haskell for embedding text rendered using PCF fonts";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "pcg-random" = callPackage
     ({ mkDerivation, base, bytestring, doctest, entropy, primitive
      , random
@@ -147220,23 +147526,22 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "perf_0_2_0" = callPackage
+  "perf_0_3_0" = callPackage
     ({ mkDerivation, base, containers, doctest, foldl, formatting
      , numhask, optparse-generic, protolude, rdtsc, tdigest, text, time
      , vector
      }:
      mkDerivation {
        pname = "perf";
-       version = "0.2.0";
-       sha256 = "1db6acsszdwdlkz2cp5r0wwrmgam4jl6n91d02b3zdn0jfazp7nn";
+       version = "0.3.0";
+       sha256 = "0l8q2jc3gfyair7x7jlx6aqs25m9f2ib9hdmzc3vfrh91ky67x1q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base containers foldl numhask protolude rdtsc tdigest time
        ];
        executableHaskellDepends = [
-         base containers formatting numhask optparse-generic protolude text
-         vector
+         base formatting numhask optparse-generic protolude text vector
        ];
        testHaskellDepends = [ base doctest protolude ];
        homepage = "https://github.com/tonyday567/perf";
@@ -148965,6 +149270,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "pipes_4_3_5" = callPackage
+    ({ mkDerivation, base, criterion, exceptions, mmorph, mtl
+     , optparse-applicative, QuickCheck, semigroups, test-framework
+     , test-framework-quickcheck2, transformers, void
+     }:
+     mkDerivation {
+       pname = "pipes";
+       version = "4.3.5";
+       sha256 = "1s158p7d14lxk34yh7x0b44g3m57pq096p6k0fg19g7jkl8jcd7p";
+       libraryHaskellDepends = [
+         base exceptions mmorph mtl semigroups transformers void
+       ];
+       testHaskellDepends = [
+         base mtl QuickCheck test-framework test-framework-quickcheck2
+         transformers
+       ];
+       benchmarkHaskellDepends = [
+         base criterion mtl optparse-applicative transformers
+       ];
+       description = "Compositional pipelines";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "pipes-aeson" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, pipes
      , pipes-attoparsec, pipes-bytestring, pipes-parse, transformers
@@ -151706,6 +152035,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "positron" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, postgresql-libpq
+     , scientific, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "positron";
+       version = "0.1.0.0";
+       sha256 = "1bfjlap9942kdxrmyawky5xv15a6qalqp7hz5x88nhqnbazqsy4p";
+       libraryHaskellDepends = [
+         attoparsec base bytestring postgresql-libpq scientific
+         template-haskell text
+       ];
+       testHaskellDepends = [ base ];
+       homepage = "https://github.com/xtendo-org/positron#readme";
+       description = "Experiment";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "posix-acl" = callPackage
     ({ mkDerivation, acl, base, bytestring, containers, lifted-base
      , monad-control, transformers, transformers-base, unix
@@ -152186,6 +152533,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "postgresql-simple-opts_0_3_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, data-default, either
+     , generic-deriving, hspec, optparse-applicative, optparse-generic
+     , postgresql-simple, split, uri-bytestring
+     }:
+     mkDerivation {
+       pname = "postgresql-simple-opts";
+       version = "0.3.0.0";
+       sha256 = "1lr9jj2dv01njjv2iqvirim1gv8bgb5pzaipni04f1dr5bhgkfhd";
+       libraryHaskellDepends = [
+         base bytestring data-default either generic-deriving
+         optparse-applicative optparse-generic postgresql-simple split
+         uri-bytestring
+       ];
+       testHaskellDepends = [
+         base bytestring data-default hspec optparse-applicative
+         postgresql-simple
+       ];
+       homepage = "https://github.com/jfischoff/postgresql-simple-opts#readme";
+       description = "An optparse-applicative parser for postgresql-simple's connection options";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "postgresql-simple-queue" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, exceptions, hspec
      , hspec-discover, hspec-expectations-lifted, hspec-pg-transact
@@ -154235,8 +154606,8 @@ self: {
     ({ mkDerivation, base, template-haskell, th-data-compat }:
      mkDerivation {
        pname = "product-isomorphic";
-       version = "0.0.2.0";
-       sha256 = "01fyzyvcz7gvcjmglzb562dmbdrkm34qg5ba16f2xiw8fmj992yh";
+       version = "0.0.3.1";
+       sha256 = "1vm502d3byxiyd01h3pddar9wvh522awvi3awsb34p8s2w01p70i";
        libraryHaskellDepends = [ base template-haskell th-data-compat ];
        homepage = "http://github.com/khibino/haskell-product-isomorphic";
        description = "Weaken applicative functor on products";
@@ -154481,13 +154852,13 @@ self: {
      , optparse-applicative, parallel, path-pieces, random
      , random-shuffle, resourcet, semigroups, stm, stm-containers
      , template-haskell, temporary, text, time, transformers, unix
-     , unordered-containers, uuid, uuid-aeson, vector
-     , vector-binary-instances, websockets
+     , unordered-containers, uuid, vector, vector-binary-instances
+     , websockets
      }:
      mkDerivation {
        pname = "project-m36";
-       version = "0.1";
-       sha256 = "0g816q602vjkk0ix8wxwlc0w7fx9xaid9qiib9811y7ad4v9zkih";
+       version = "0.2";
+       sha256 = "0kzsc45qglv89ycj5f39kbpdss0r1b6sl39g6ba4v17syfyb3xxq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -154510,8 +154881,8 @@ self: {
          hashable-time haskeline http-api-data HUnit list-t megaparsec
          MonadRandom mtl network-transport-tcp optparse-applicative parallel
          path-pieces random semigroups stm stm-containers template-haskell
-         temporary text time transformers unordered-containers uuid
-         uuid-aeson vector vector-binary-instances websockets
+         temporary text time transformers unordered-containers uuid vector
+         vector-binary-instances websockets
        ];
        testHaskellDepends = [
          aeson attoparsec base base64-bytestring binary bytestring Cabal
@@ -154521,8 +154892,7 @@ self: {
          network-transport network-transport-tcp optparse-applicative
          parallel path-pieces random semigroups stm stm-containers
          template-haskell temporary text time transformers
-         unordered-containers uuid uuid-aeson vector vector-binary-instances
-         websockets
+         unordered-containers uuid vector vector-binary-instances websockets
        ];
        benchmarkHaskellDepends = [
          attoparsec base base64-bytestring binary bytestring Cabal cassava
@@ -156315,22 +156685,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "pusher-http-haskell_1_3_0_0" = callPackage
+  "pusher-http-haskell_1_4_0_0" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring
-     , cryptohash, hashable, hspec, http-client, http-types, QuickCheck
-     , text, time, transformers, unordered-containers
+     , cryptonite, hashable, hspec, http-client, http-types, memory
+     , QuickCheck, scientific, text, time, transformers
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "1.3.0.0";
-       sha256 = "1pppzhr6507y1fl2w3w876bhwbbm5mvss4qfavrbhzi9ycqk2hrp";
+       version = "1.4.0.0";
+       sha256 = "0mqv3h2c20p9zzhq87xysjx7fyf3w5ggss975pxdblr5y7x18bmc";
        libraryHaskellDepends = [
-         aeson base base16-bytestring bytestring cryptohash hashable
-         http-client http-types text time transformers unordered-containers
+         aeson base base16-bytestring bytestring cryptonite hashable
+         http-client http-types memory text time transformers
+         unordered-containers vector
        ];
        testHaskellDepends = [
-         aeson base bytestring hspec http-client http-types QuickCheck text
-         transformers unordered-containers
+         aeson base bytestring hspec http-client http-types QuickCheck
+         scientific text transformers unordered-containers vector
        ];
        homepage = "https://github.com/pusher-community/pusher-http-haskell";
        description = "Haskell client library for the Pusher HTTP API";
@@ -160550,6 +160922,19 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "red-black-tree" = callPackage
+    ({ mkDerivation, base, hspec, QuickCheck }:
+     mkDerivation {
+       pname = "red-black-tree";
+       version = "0.1.0.0";
+       sha256 = "0wz3afh2d2rzhp76whbn607pzmpkd28imycrdrdbk1pxrk1psbxf";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec QuickCheck ];
+       homepage = "https://github.com/GAumala/red-black-tree";
+       description = "Red Black Trees implemented in Haskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "redHandlers" = callPackage
     ({ mkDerivation, array, base, bytestring, cgi, containers
      , haskell98, MaybeT, mtl, network, old-time, parsec, stm, unix
@@ -166616,8 +167001,8 @@ self: {
      }:
      mkDerivation {
        pname = "salve";
-       version = "0.0.7";
-       sha256 = "13qrxn5h0pind32wc7sw9i026g8lw91k71i8prrdzdzc656nhiq5";
+       version = "0.0.8";
+       sha256 = "0hss6fqzp3307v52g0n3ryx2grs7v1rh2haxjs4hyi60acrnycb1";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest microlens ];
        benchmarkHaskellDepends = [
@@ -171244,19 +171629,19 @@ self: {
      , io-streams, lens, map-syntax, mmorph, mtl, network, network-uri
      , parsec, process, QuickCheck, servant, snap, snap-core
      , snap-server, string-conversions, temporary, text, time
-     , transformers
+     , transformers, word8
      }:
      mkDerivation {
        pname = "servant-snap";
-       version = "0.7.3";
-       sha256 = "0ahk3slcl25c4ykxix8j8nqf1mxqc4gnrzx6hpll3ab9m02g1qzf";
+       version = "0.8";
+       sha256 = "00wc6kzk01jj1kfapqijffbws9x7cwvddxir0b5yy9dpbz56zfg8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring case-insensitive containers either
-         filepath http-api-data http-types io-streams mmorph mtl network-uri
-         servant snap snap-core snap-server string-conversions text
-         transformers
+         aeson attoparsec base base64-bytestring bytestring case-insensitive
+         containers either filepath http-api-data http-types io-streams
+         mmorph mtl network-uri servant snap snap-core snap-server
+         string-conversions text transformers word8
        ];
        executableHaskellDepends = [
          aeson base bytestring either errors heist lens map-syntax servant
@@ -171265,9 +171650,9 @@ self: {
        testHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive containers
          digestive-functors directory either exceptions hspec hspec-core
-         hspec-snap http-types HUnit mtl network parsec process QuickCheck
-         servant snap snap-core snap-server string-conversions temporary
-         text time transformers
+         hspec-snap http-types HUnit lens mtl network parsec process
+         QuickCheck servant snap snap-core snap-server string-conversions
+         temporary text time transformers
        ];
        homepage = "http://haskell-servant.github.io/";
        description = "A family of combinators for defining webservices APIs and serving them";
@@ -174836,8 +175221,8 @@ self: {
      }:
      mkDerivation {
        pname = "sized";
-       version = "0.2.1.0";
-       sha256 = "06kkscjin8pgk2x3ixxfaswmgk22qxgz2l1vidm7d9vlp3d3dsg5";
+       version = "0.2.1.1";
+       sha256 = "1agy5yyj6ci89v1jp6k2lj2316h9sap7x65j8n5w7d4ldqsb3i7z";
        libraryHaskellDepends = [
          base constraints containers deepseq equational-reasoning hashable
          lens ListLike mono-traversable monomorphic singletons type-natural
@@ -175110,28 +175495,28 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
-  "skylighting_0_3_4_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, binary, blaze-html
-     , bytestring, case-insensitive, containers, criterion, Diff
-     , directory, filepath, HUnit, hxt, mtl, pretty-show, random
+  "skylighting_0_4" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring, binary
+     , blaze-html, bytestring, case-insensitive, containers, criterion
+     , Diff, directory, filepath, HUnit, hxt, mtl, pretty-show, random
      , regex-pcre-builtin, safe, tasty, tasty-golden, tasty-hunit, text
      , utf8-string
      }:
      mkDerivation {
        pname = "skylighting";
-       version = "0.3.4.1";
-       sha256 = "09hw6dqsk859gwkn4p5gh3n75lxix76a6kwyzzdml9yqr973jgbz";
+       version = "0.4";
+       sha256 = "12zr4baf755y1v842mfb17wkv6bfjw46r650yzl29ji5s8fm6v3j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base binary blaze-html bytestring case-insensitive
-         containers directory filepath hxt mtl regex-pcre-builtin safe text
-         utf8-string
+         aeson attoparsec base base64-bytestring binary blaze-html
+         bytestring case-insensitive containers directory filepath hxt mtl
+         regex-pcre-builtin safe text utf8-string
        ];
        executableHaskellDepends = [
-         aeson base binary blaze-html bytestring case-insensitive containers
-         directory filepath hxt pretty-show regex-pcre-builtin safe text
-         utf8-string
+         aeson base base64-bytestring binary blaze-html bytestring
+         case-insensitive containers directory filepath hxt pretty-show
+         regex-pcre-builtin safe text utf8-string
        ];
        testHaskellDepends = [
          aeson base bytestring containers Diff directory filepath HUnit
@@ -180881,7 +181266,7 @@ self: {
      }) {applicative = null;};
 
   "statgrab" = callPackage
-    ({ mkDerivation, async, base, bytestring, statgrab, time
+    ({ mkDerivation, async, base, bytestring, libstatgrab, time
      , transformers
      }:
      mkDerivation {
@@ -180891,12 +181276,12 @@ self: {
        libraryHaskellDepends = [
          async base bytestring time transformers
        ];
-       librarySystemDepends = [ statgrab ];
+       librarySystemDepends = [ libstatgrab ];
        homepage = "http://github.com/brendanhay/statgrab";
        description = "Collect system level metrics and statistics";
        license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {statgrab = null;};
+     }) {inherit (pkgs) libstatgrab;};
 
   "static-canvas" = callPackage
     ({ mkDerivation, base, double-conversion, free, mtl, text }:
@@ -180942,6 +181327,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "static-tensor" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, Diff, lens, linear
+     , mono-traversable, mwc-random, singletons, split, tasty
+     , tasty-golden, template-haskell, text, typed-process, vector
+     }:
+     mkDerivation {
+       pname = "static-tensor";
+       version = "0.1.0.0";
+       sha256 = "118srwpc648s2472mbr14y7pkf7swfd19p4na0s3b4jxqzrxf4wj";
+       libraryHaskellDepends = [
+         base deepseq lens mono-traversable singletons split
+         template-haskell
+       ];
+       testHaskellDepends = [
+         base Diff tasty tasty-golden text typed-process
+       ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq linear mwc-random vector
+       ];
+       homepage = "https://github.com/vagarenko/static-tensor";
+       description = "Tensors of statically known size";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "staticanalysis" = callPackage
     ({ mkDerivation, base, MissingH }:
      mkDerivation {
@@ -181319,6 +181728,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "stemmer-german" = callPackage
+    ({ mkDerivation, base, text }:
+     mkDerivation {
+       pname = "stemmer-german";
+       version = "0.1.1.0";
+       sha256 = "1m0jhmdh51g7cqy51h1xqkdiz8il22xkfq5h4vzabllvyiii3anm";
+       libraryHaskellDepends = [ base text ];
+       description = "Extract the stem of a German inflected word form";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "step-function" = callPackage
     ({ mkDerivation, base, Cabal, cabal-test-quickcheck, QuickCheck }:
      mkDerivation {
@@ -182046,15 +182466,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "stratosphere_0_8_0" = callPackage
+  "stratosphere_0_9_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, hashable
      , hspec, hspec-discover, lens, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.8.0";
-       sha256 = "0wv4anpxf6fmhhyw38wb7s3jbbhyn9vvhs912kls786gxs8xdlg5";
+       version = "0.9.0";
+       sha256 = "12fx6c6z1fj13y0p6limmfz80ga5xvpz474lnqi5fz5sgnp1cpxa";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -182965,14 +183385,14 @@ self: {
      }:
      mkDerivation {
        pname = "string-transform";
-       version = "0.0.1";
-       sha256 = "1hm360yyh700wwjaf5xlmnla8i8vcm3vk4isgs29yavkq81pwm7x";
+       version = "0.1.0";
+       sha256 = "1hcb1mx2n01gxlfh3ndgsi8phjl1n04xxmhpr6175p9mxc61rsb4";
        libraryHaskellDepends = [ base bytestring text utf8-string ];
        testHaskellDepends = [
          base bytestring tasty tasty-hunit tasty-smallcheck text utf8-string
        ];
        homepage = "https://github.com/ncaq/string-transform#readme";
-       description = "simple and easy haskell string transform";
+       description = "simple and easy haskell string transform wrapper";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -184496,8 +184916,8 @@ self: {
      }:
      mkDerivation {
        pname = "sws";
-       version = "0.4.0.0";
-       sha256 = "02x2dh8nc1ci9n4mzhvq3wxvq5802mghs3kpqi6vhbglai60cj6g";
+       version = "0.4.0.1";
+       sha256 = "072njwc5b5jmlh50520nd9ck60xhni6mk3x7c9m8c0bv3h67rnn8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -186757,6 +187177,29 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) z3;};
 
+  "tart" = callPackage
+    ({ mkDerivation, array, base, binary, brick, bytestring, containers
+     , directory, microlens-platform, microlens-th, mtl, text
+     , text-zipper, vector, vty
+     }:
+     mkDerivation {
+       pname = "tart";
+       version = "0.1.1";
+       sha256 = "1a1nh093lklih1hq7lhkqp9l48wf66axlf1hsb8h2zmkv09z517h";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base binary bytestring microlens-platform mtl vty
+       ];
+       executableHaskellDepends = [
+         base brick containers directory microlens-platform microlens-th mtl
+         text text-zipper vector vty
+       ];
+       homepage = "https://github.com/jtdaugherty/tart/";
+       description = "Terminal Art";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "task" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
      , csv-enumerator, directory, filepath, old-locale, random, text
@@ -189237,30 +189680,6 @@ self: {
      }:
      mkDerivation {
        pname = "texmath";
-       version = "0.9.4.1";
-       sha256 = "014xka6vz8qc043icrhf5m47g8jwlr608qzymrikjh4nr2r048ih";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base containers mtl pandoc-types parsec syb xml
-       ];
-       executableHaskellDepends = [ network-uri ];
-       testHaskellDepends = [
-         base bytestring directory filepath process split temporary text
-         utf8-string xml
-       ];
-       homepage = "http://github.com/jgm/texmath";
-       description = "Conversion between formats used to represent mathematics";
-       license = "GPL";
-     }) {};
-
-  "texmath_0_9_4_2" = callPackage
-    ({ mkDerivation, base, bytestring, containers, directory, filepath
-     , mtl, network-uri, pandoc-types, parsec, process, split, syb
-     , temporary, text, utf8-string, xml
-     }:
-     mkDerivation {
-       pname = "texmath";
        version = "0.9.4.2";
        sha256 = "1xx3yp5m0rjs8bi1gb4r0xk0mjh5gm4x2pdsgfmbrisw0pl5x0mv";
        isLibrary = true;
@@ -189276,7 +189695,6 @@ self: {
        homepage = "http://github.com/jgm/texmath";
        description = "Conversion between formats used to represent mathematics";
        license = "GPL";
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "texrunner" = callPackage
@@ -191391,24 +191809,6 @@ self: {
      }:
      mkDerivation {
        pname = "throwable-exceptions";
-       version = "0.1.0.8";
-       sha256 = "0d8dxrd922rxnn417yn2ij71v6vb9c5i37qvcmdixfh773p9sm8r";
-       libraryHaskellDepends = [ base safe-exceptions template-haskell ];
-       testHaskellDepends = [
-         base doctest either safe-exceptions silently tasty tasty-discover
-         tasty-hunit text
-       ];
-       homepage = "https://github.com/aiya000/hs-throwable-exceptions#README.md";
-       description = "throwable-exceptions gives the easy way to throw exceptions";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "throwable-exceptions_0_1_0_9" = callPackage
-    ({ mkDerivation, base, doctest, either, safe-exceptions, silently
-     , tasty, tasty-discover, tasty-hunit, template-haskell, text
-     }:
-     mkDerivation {
-       pname = "throwable-exceptions";
        version = "0.1.0.9";
        sha256 = "1ab9qx87r0wxrvx9fk77cpimj0pm1qa2pvcv4b8sadj0s8fkrcis";
        libraryHaskellDepends = [ base safe-exceptions template-haskell ];
@@ -191419,7 +191819,6 @@ self: {
        homepage = "https://github.com/aiya000/hs-throwable-exceptions#README.md";
        description = "throwable-exceptions gives the easy way to throw exceptions";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "thumbnail" = callPackage
@@ -196494,8 +196893,8 @@ self: {
      }:
      mkDerivation {
        pname = "type-of-html";
-       version = "0.5.1.0";
-       sha256 = "01j4kk5c8qiqcgnymx26csj38aa76zg3vl8nwiwxcjbfng87xvmk";
+       version = "1.0.0.0";
+       sha256 = "0yknmw9xfi0pdg0ps2wg966i5k9y3nrqr38srj4lifng9bcgahx0";
        libraryHaskellDepends = [ base bytestring ghc-prim text ];
        testHaskellDepends = [ base hspec QuickCheck text ];
        benchmarkHaskellDepends = [
@@ -202149,6 +202548,25 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "visualize-cbn" = callPackage
+    ({ mkDerivation, ansi-terminal, base, blaze-html, blaze-markup
+     , containers, data-default, mtl, optparse-applicative, parsec
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "visualize-cbn";
+       version = "0.1.0.0";
+       sha256 = "146rqrsmvclhykx6l2pljjl97340zx89zknwisrav9rz88rcjrx2";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         ansi-terminal base blaze-html blaze-markup containers data-default
+         mtl optparse-applicative parsec template-haskell
+       ];
+       description = "Visualize CBN reduction";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "vivid" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
      , hashable, MonadRandom, mtl, network, process, random
@@ -204514,8 +204932,8 @@ self: {
      }:
      mkDerivation {
        pname = "wavefront";
-       version = "0.7.1";
-       sha256 = "0vrg8kn85fkdqrlzjyqb165k098nvi7k4fy3ya601ffv6x18lnd7";
+       version = "0.7.1.1";
+       sha256 = "1d9hh3si3fwbb42y9nlqwp3ccl8gpip65fh75gidfzzricjyw7fw";
        libraryHaskellDepends = [
          attoparsec base dlist filepath mtl text transformers vector
        ];
@@ -204966,8 +205384,8 @@ self: {
      }:
      mkDerivation {
        pname = "web3";
-       version = "0.5.4.0";
-       sha256 = "00cylsnxmsnrkhcjjzql1rm1sacaibnzy3wf3j0pyvwxad26jgd3";
+       version = "0.5.5.0";
+       sha256 = "0cnkrkjwmn8mz559nbfaxq3s1wksb2p5p68djgyjz5d3cz8icpq4";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring cryptonite
          http-client http-client-tls memory template-haskell text
@@ -206990,8 +207408,8 @@ self: {
      }:
      mkDerivation {
        pname = "wrecker-ui";
-       version = "2.3.0.2";
-       sha256 = "0bfpcc464fgcgzp5h20d2q7p79z3mkxi6c0i3cc4mmzspgvnsjk3";
+       version = "2.4.0.0";
+       sha256 = "1229wwbp9ml5l36n9z0cmhx4fx70mhgf01jw26w0m66q1g3gxb1n";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -211102,49 +211520,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-core";
-       version = "1.4.36";
-       sha256 = "0pjhpqqsgkkccg269i5q8xngzk1lh945acnlfdjd429xjrpcmfir";
-       libraryHaskellDepends = [
-         aeson auto-update base blaze-builder blaze-html blaze-markup
-         byteable bytestring case-insensitive cereal clientsession conduit
-         conduit-extra containers cookie data-default deepseq
-         deepseq-generics directory exceptions fast-logger http-types
-         lifted-base monad-control monad-logger mtl mwc-random old-locale
-         parsec path-pieces primitive random resourcet safe semigroups
-         shakespeare template-haskell text time transformers
-         transformers-base unix-compat unordered-containers vector wai
-         wai-extra wai-logger warp word8
-       ];
-       testHaskellDepends = [
-         async base blaze-builder bytestring clientsession conduit
-         conduit-extra containers cookie hspec hspec-expectations http-types
-         HUnit lifted-base mwc-random network path-pieces QuickCheck random
-         resourcet shakespeare streaming-commons template-haskell text
-         transformers wai wai-extra
-       ];
-       benchmarkHaskellDepends = [
-         base blaze-html bytestring criterion shakespeare text transformers
-       ];
-       homepage = "http://www.yesodweb.com/";
-       description = "Creation of type-safe, RESTful web applications";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "yesod-core_1_4_37" = callPackage
-    ({ mkDerivation, aeson, async, auto-update, base, blaze-builder
-     , blaze-html, blaze-markup, byteable, bytestring, case-insensitive
-     , cereal, clientsession, conduit, conduit-extra, containers, cookie
-     , criterion, data-default, deepseq, deepseq-generics, directory
-     , exceptions, fast-logger, hspec, hspec-expectations, http-types
-     , HUnit, lifted-base, monad-control, monad-logger, mtl, mwc-random
-     , network, old-locale, parsec, path-pieces, primitive, QuickCheck
-     , random, resourcet, safe, semigroups, shakespeare
-     , streaming-commons, template-haskell, text, time, transformers
-     , transformers-base, unix-compat, unordered-containers, vector, wai
-     , wai-extra, wai-logger, warp, word8
-     }:
-     mkDerivation {
-       pname = "yesod-core";
        version = "1.4.37";
        sha256 = "0ww8hl0cx2g58zrdx3j6d5m2xwhssbajdqws1xk6rzl7rpfm1b9j";
        libraryHaskellDepends = [
@@ -211171,7 +211546,6 @@ self: {
        homepage = "http://www.yesodweb.com/";
        description = "Creation of type-safe, RESTful web applications";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yesod-crud" = callPackage
@@ -211439,25 +211813,12 @@ self: {
     ({ mkDerivation, base, classy-prelude-yesod, yesod-form }:
      mkDerivation {
        pname = "yesod-form-bootstrap4";
-       version = "0.1.0.1";
-       sha256 = "0z555456ryfgs3ir0h139cfap61hmshywbd8wq7xsc4kf52yl44a";
-       libraryHaskellDepends = [ base classy-prelude-yesod yesod-form ];
-       homepage = "https://github.com/ncaq/yesod-form-bootstrap4.git#readme";
-       description = "renderBootstrap4";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "yesod-form-bootstrap4_0_1_0_2" = callPackage
-    ({ mkDerivation, base, classy-prelude-yesod, yesod-form }:
-     mkDerivation {
-       pname = "yesod-form-bootstrap4";
        version = "0.1.0.2";
        sha256 = "0lsdvs33xsy7ipr44calfhyf375mkq7h3axi39q91f28r76iy6cf";
        libraryHaskellDepends = [ base classy-prelude-yesod yesod-form ];
        homepage = "https://github.com/ncaq/yesod-form-bootstrap4#readme";
        description = "renderBootstrap4";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yesod-form-json" = callPackage
@@ -212047,22 +212408,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-recaptcha2";
-       version = "0.1.0.0";
-       sha256 = "0cmhw0wlbs8r4wpcyywgsizl86l3y0hrngl711sr2yl51vxhgh2f";
-       libraryHaskellDepends = [
-         base classy-prelude-yesod http-conduit yesod-auth
-       ];
-       homepage = "https://github.com/ncaq/yesod-recaptcha2#readme";
-       description = "yesod recaptcha2";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "yesod-recaptcha2_0_1_0_1" = callPackage
-    ({ mkDerivation, base, classy-prelude-yesod, http-conduit
-     , yesod-auth
-     }:
-     mkDerivation {
-       pname = "yesod-recaptcha2";
        version = "0.1.0.1";
        sha256 = "0avlm1jchp0j65c3f6bj9gv9kba0cvvk77sq918dzjvx54hnygf3";
        libraryHaskellDepends = [
@@ -212071,7 +212416,6 @@ self: {
        homepage = "https://github.com/ncaq/yesod-recaptcha2#readme";
        description = "yesod recaptcha2";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yesod-routes" = callPackage
@@ -213602,8 +213946,8 @@ self: {
      }:
      mkDerivation {
        pname = "z3";
-       version = "4.1.1";
-       sha256 = "07nmaaa6dldvysvh9jbx3m2cakx1x824hgnbh22w4nyia9hqjd8a";
+       version = "4.1.2";
+       sha256 = "09wph5hp5835npfib07852x4d122p8nh35cbwyr80a83a77l7yym";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers mtl ];
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index fcb4258deb14..96520dce2b2d 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -23,6 +23,9 @@ rec {
   doCheck = drv: overrideCabal drv (drv: { doCheck = true; });
   dontCheck = drv: overrideCabal drv (drv: { doCheck = false; });
 
+  doBenchmark = drv: overrideCabal drv (drv: { doBenchmark = true; });
+  dontBenchmark = drv: overrideCabal drv (drv: { doBenchmark = false; });
+
   doDistribute = drv: overrideCabal drv (drv: { hydraPlatforms = drv.platforms or ["i686-linux" "x86_64-linux" "x86_64-darwin"]; });
   dontDistribute = drv: overrideCabal drv (drv: { hydraPlatforms = []; });
 
@@ -77,7 +80,7 @@ rec {
   doStrip = drv: overrideCabal drv (drv: { dontStrip = false; });
   dontStrip = drv: overrideCabal drv (drv: { dontStrip = true; });
 
-  # Useful for debugging segfaults with gdb. 
+  # Useful for debugging segfaults with gdb.
   # -g: enables debugging symbols
   # --disable-*-stripping: tell GHC not to strip resulting binaries
   # dontStrip: see above
diff --git a/pkgs/development/libraries/cdo/default.nix b/pkgs/development/libraries/cdo/default.nix
index b7768a3d2455..af69e23ca1f4 100644
--- a/pkgs/development/libraries/cdo/default.nix
+++ b/pkgs/development/libraries/cdo/default.nix
@@ -5,15 +5,15 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.7.2";
+  version = "1.9.0";
   name = "cdo-${version}";
 
   # Dependencies
   buildInputs = [ curl netcdf hdf5 ];
 
   src = fetchurl {
-    url = "https://code.zmaw.de/attachments/download/12760/${name}.tar.gz";
-    sha256 = "4c43eba7a95f77457bfe0d30fb82382b3b5f2b0cf90aca6f0f0a008f6cc7e697";
+    url = "https://code.mpimet.mpg.de/attachments/download/15187/${name}.tar.gz";
+    sha256 = "024hsr6qfg2dicwvm0vvkg3fr998bchf0qgwpj2v0jmz7a67ydnz";
   };
 
  # Configure phase
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
       Supported data formats are GRIB 1/2, netCDF 3/4, SERVICE, EXTRA and IEG.
       There are more than 600 operators available.
     '';
-    homepage = https://code.zmaw.de/projects/cdo/;
+    homepage = https://code.mpimet.mpg.de/projects/cdo/;
     license = stdenv.lib.licenses.gpl2;
     maintainers = [ stdenv.lib.maintainers.ltavard ];
     platforms = with stdenv.lib.platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/gd/default.nix b/pkgs/development/libraries/gd/default.nix
index c87e344ae558..77fe948e003a 100644
--- a/pkgs/development/libraries/gd/default.nix
+++ b/pkgs/development/libraries/gd/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   name = "gd-${version}";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchurl {
     url = "https://github.com/libgd/libgd/releases/download/${name}/libgd-${version}.tar.xz";
-    sha256 = "1rp4v7n1dq38b92kl7gkvpvqqkw7nvdfnz6d5kip5klkxfki6zqk";
+    sha256 = "0lfy5f241sbv8s3splm2zqiaxv7lxrcshh875xryryk7yk5jqc4c";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix
index 47c6134dd201..e6d1fd3b6403 100644
--- a/pkgs/development/libraries/gperftools/default.nix
+++ b/pkgs/development/libraries/gperftools/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
     substituteInPlace libtool --replace stdc++ c++
   '';
 
+  NIX_CFLAGS_COMPILE = stdenv.lib.optional stdenv.isDarwin "-D_XOPEN_SOURCE";
+
   # some packages want to link to the static tcmalloc_minimal
   # to drop the runtime dependency on gperftools
   dontDisableStatic = true;
diff --git a/pkgs/development/libraries/libevent/default.nix b/pkgs/development/libraries/libevent/default.nix
index 6fa0caa97e91..e14f4cbf5d63 100644
--- a/pkgs/development/libraries/libevent/default.nix
+++ b/pkgs/development/libraries/libevent/default.nix
@@ -1,4 +1,8 @@
-{ stdenv, fetchurl, openssl, findutils }:
+{ stdenv, fetchurl, findutils
+, sslSupport? true, openssl
+}:
+
+assert sslSupport -> openssl != null;
 
 stdenv.mkDerivation rec {
   name = "libevent-${version}";
@@ -11,13 +15,20 @@ stdenv.mkDerivation rec {
 
   # libevent_openssl is moved into its own output, so that openssl isn't present
   # in the default closure.
-  outputs = [ "out" "dev" "openssl" ];
+  outputs = [ "out" "dev" ]
+    ++ stdenv.lib.optional sslSupport "openssl"
+    ;
   outputBin = "dev";
-  propagatedBuildOutputs = [ "out" "openssl" ];
+  propagatedBuildOutputs = [ "out" ]
+    ++ stdenv.lib.optional sslSupport "openssl"
+    ;
 
-  buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isCygwin findutils;
+  buildInputs = []
+    ++ stdenv.lib.optional sslSupport openssl
+    ++ stdenv.lib.optional stdenv.isCygwin findutils
+    ;
 
-  postInstall = ''
+  postInstall = stdenv.lib.optionalString sslSupport ''
     moveToOutput "lib/libevent_openssl*" "$openssl"
     substituteInPlace "$dev/lib/pkgconfig/libevent_openssl.pc" \
       --replace "$out" "$openssl"
diff --git a/pkgs/development/libraries/libwebsockets/default.nix b/pkgs/development/libraries/libwebsockets/default.nix
index 6ce183889043..98f3ea1679cb 100644
--- a/pkgs/development/libraries/libwebsockets/default.nix
+++ b/pkgs/development/libraries/libwebsockets/default.nix
@@ -1,15 +1,18 @@
-{ fetchgit, stdenv, cmake, openssl, zlib }:
+{ fetchFromGitHub, stdenv, cmake, openssl, zlib, libuv }:
 
 stdenv.mkDerivation rec {
-  name = "libwebsockets-1.4";
+  name = "libwebsockets-${version}";
+  version = "2.3.0";
 
-  src = fetchgit {
-    url = "git://git.libwebsockets.org/libwebsockets";
-    rev = "16fb0132cec0fcced29bce6d86eaf94a9beb9785";
-    sha256 = "0gk4dgx125nz7wl59bx0kgxxg261r9kyxvdff5ld98slr9f08d0l";
+  src = fetchFromGitHub {
+    owner = "warmcat";
+    repo = "libwebsockets";
+    rev = "v${version}";
+    sha256 = "1hv2b5r6sg42xnqhm4ysjvyiz3cqpfmwaqm33vpbx0k7arj4ixvy";
   };
 
-  buildInputs = [ cmake openssl zlib ];
+  buildInputs = [ cmake openssl zlib libuv ];
+  cmakeFlags = [ "-DLWS_WITH_PLUGINS=ON" ];
 
   meta = {
     description = "Light, portable C library for websockets";
@@ -19,8 +22,7 @@ stdenv.mkDerivation rec {
       throughput in both directions.
     '';
     homepage = https://libwebsockets.org/trac/libwebsockets;
-    # See http://git.libwebsockets.org/cgi-bin/cgit/libwebsockets/tree/LICENSE
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = stdenv.lib.licenses.lgpl21;
     maintainers = [ ];
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/development/libraries/libxmlxx/default.nix b/pkgs/development/libraries/libxmlxx/default.nix
index 65e10c5a3995..23b36db8fe10 100644
--- a/pkgs/development/libraries/libxmlxx/default.nix
+++ b/pkgs/development/libraries/libxmlxx/default.nix
@@ -12,9 +12,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig perl ];
 
-  buildInputs = [ glibmm ];
-
-  propagatedBuildInputs = [ libxml2 ];
+  propagatedBuildInputs = [ libxml2 glibmm ];
 
   meta = with stdenv.lib; {
     homepage = http://libxmlplusplus.sourceforge.net/;
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 1b87b1b0a27b..2be2f501518e 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -89,6 +89,10 @@ stdenv.mkDerivation rec {
         gtk = gtk2.out;
         gdk_pixbuf = gdk_pixbuf.out;
       })
+    ++ stdenv.lib.optional stdenv.isAarch64 (fetchpatch {
+        url = "https://src.fedoraproject.org/rpms/qt/raw/ecf530486e0fb7fe31bad26805cde61115562b2b/f/qt-aarch64.patch";
+        sha256 = "1fbjh78nmafqmj7yk67qwjbhl3f6ylkp6x33b1dqxfw9gld8b3gl";
+      })
     ++ [
       (fetchpatch {
         name = "fix-medium-font.patch";
diff --git a/pkgs/development/libraries/tcllib/default.nix b/pkgs/development/libraries/tcllib/default.nix
index e0354bf01ebd..75b811df30c3 100644
--- a/pkgs/development/libraries/tcllib/default.nix
+++ b/pkgs/development/libraries/tcllib/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "tcllib-${version}";
-  version = "1.15";
+  version = "1.18";
 
   src = fetchurl {
     url = "mirror://sourceforge/tcllib/tcllib-${version}.tar.gz";
-    sha256 = "1zdzaqdpxljsaabgknq3paakgs262qy255ib4p329knsv608jc3d";
+    sha256 = "05dmrk9qsryah2n17z6z85dj9l9lfyvnsd7faw0p9bs1pp5pwrkj";
   };
 
   passthru = {
diff --git a/pkgs/development/libraries/xmlsec/default.nix b/pkgs/development/libraries/xmlsec/default.nix
index a0df28edb9b5..c64970f8f86e 100644
--- a/pkgs/development/libraries/xmlsec/default.nix
+++ b/pkgs/development/libraries/xmlsec/default.nix
@@ -16,6 +16,10 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
   doCheck = true;
 
+  # enable deprecated soap headers required by lasso
+  # https://dev.entrouvert.org/issues/18771
+  configureFlags = [ "--enable-soap" ];
+
   # otherwise libxmlsec1-gnutls.so won't find libgcrypt.so, after #909
   NIX_LDFLAGS = [ "-lgcrypt" ];
 
diff --git a/pkgs/development/ocaml-modules/csv/1.5.nix b/pkgs/development/ocaml-modules/csv/1.5.nix
new file mode 100644
index 000000000000..a7505f6f51cd
--- /dev/null
+++ b/pkgs/development/ocaml-modules/csv/1.5.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchzip, ocaml, findlib, ocamlbuild }:
+
+stdenv.mkDerivation {
+
+  name = "ocaml${ocaml.version}-csv-1.5";
+
+  src = fetchzip {
+    url = "https://github.com/Chris00/ocaml-csv/releases/download/1.5/csv-1.5.tar.gz";
+    sha256 = "1ca7jgg58j24pccs5fshis726s06fdcjshnwza5kwxpjgdbvc63g";
+  };
+
+  buildInputs = [ ocaml findlib ocamlbuild ];
+
+  createFindlibDestdir = true;
+
+  configurePhase = "ocaml setup.ml -configure --prefix $out --enable-tests";
+
+  buildPhase = "ocaml setup.ml -build";
+
+  doCheck = true;
+  checkPhase = "ocaml setup.ml -test";
+
+  installPhase = "ocaml setup.ml -install";
+
+  meta = with stdenv.lib; {
+    description = "A pure OCaml library to read and write CSV files";
+    homepage = https://github.com/Chris00/ocaml-csv;
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.vbgl ];
+    platforms = ocaml.meta.platforms or [];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/csv/default.nix b/pkgs/development/ocaml-modules/csv/default.nix
index 751d40ff706d..ba4f982222b4 100644
--- a/pkgs/development/ocaml-modules/csv/default.nix
+++ b/pkgs/development/ocaml-modules/csv/default.nix
@@ -1,48 +1,26 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, ocaml_lwt }:
+{ stdenv, fetchurl, ocaml, findlib, jbuilder }:
 
-let param =
-  if stdenv.lib.versionAtLeast ocaml.version "4.2"
-  then {
-    version = "1.7";
-    url = https://math.umons.ac.be/anum/software/csv/csv-1.7.tar.gz;
-    sha256 = "1mmcjiiz0jppgipavpph5kn04xcpalw4scbjrw2z3drghvr3qqwf";
-    lwtSupport = true;
-  } else {
-    version = "1.5";
-    url = https://github.com/Chris00/ocaml-csv/releases/download/1.5/csv-1.5.tar.gz;
-    sha256 = "1ca7jgg58j24pccs5fshis726s06fdcjshnwza5kwxpjgdbvc63g";
-    lwtSupport = false;
-  };
-in
+stdenv.mkDerivation rec {
+	version = "2.0";
+	name = "ocaml${ocaml.version}-csv-${version}";
+	src = fetchurl {
+		url = "https://github.com/Chris00/ocaml-csv/releases/download/2.0/csv-2.0.tbz";
+		sha256 = "1g6xsybwc5ifr7n4hkqlh3294njzca12xg86ghh6pqy350wpq1zp";
+	};
 
-stdenv.mkDerivation {
+	unpackCmd = "tar -xjf $src";
 
-  name = "ocaml${ocaml.version}-csv-${param.version}";
+	buildInputs = [ ocaml findlib jbuilder ];
 
-  src = fetchzip {
-    inherit (param) url sha256;
-  };
+	buildPhase = "jbuilder build -p csv";
 
-  buildInputs = [ ocaml findlib ocamlbuild ]
-  ++ stdenv.lib.optional param.lwtSupport ocaml_lwt;
+	inherit (jbuilder) installPhase;
 
-  createFindlibDestdir = true;
-
-  configurePhase = "ocaml setup.ml -configure --prefix $out --enable-tests"
-  + stdenv.lib.optionalString param.lwtSupport " --enable-lwt";
-
-  buildPhase = "ocaml setup.ml -build";
-
-  doCheck = true;
-  checkPhase = "ocaml setup.ml -test";
-
-  installPhase = "ocaml setup.ml -install";
-
-  meta = with stdenv.lib; {
-    description = "A pure OCaml library to read and write CSV files";
-    homepage = https://github.com/Chris00/ocaml-csv;
-    license = licenses.lgpl21;
-    maintainers = [ maintainers.vbgl ];
-    platforms = ocaml.meta.platforms or [];
-  };
+	meta = {
+		description = "A pure OCaml library to read and write CSV files";
+		license = stdenv.lib.licenses.lgpl21;
+		maintainers = [ stdenv.lib.maintainers.vbgl ];
+		inherit (src.meta) homepage;
+		inherit (ocaml.meta) platforms;
+	};
 }
diff --git a/pkgs/development/python-modules/awesome-slugify/default.nix b/pkgs/development/python-modules/awesome-slugify/default.nix
new file mode 100644
index 000000000000..105c70c28b34
--- /dev/null
+++ b/pkgs/development/python-modules/awesome-slugify/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildPythonPackage, fetchPypi, unidecode, regex, python }:
+
+buildPythonPackage rec {
+  pname = "awesome-slugify";
+  version = "1.6.5";
+  name  = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wgxrhr8s5vk2xmcz9s1z1aml4ppawmhkbggl9rp94c747xc7pmv";
+  };
+
+  patches = [
+    ./slugify_filename_test.patch # fixes broken test by new unidecode
+  ];
+
+  propagatedBuildInputs = [ unidecode regex ];
+
+  checkPhase = ''
+      ${python.interpreter} -m unittest discover
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/dimka665/awesome-slugify";
+    description = "Python flexible slugify function";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/development/python-modules/awesome-slugify/slugify_filename_test.patch b/pkgs/development/python-modules/awesome-slugify/slugify_filename_test.patch
new file mode 100644
index 000000000000..3283d76eae05
--- /dev/null
+++ b/pkgs/development/python-modules/awesome-slugify/slugify_filename_test.patch
@@ -0,0 +1,13 @@
+diff --git i/slugify/tests.py w/slugify/tests.py
+index 4c9fa1c..3e14328 100644
+--- i/slugify/tests.py
++++ w/slugify/tests.py
+@@ -57,7 +57,7 @@ class PredefinedSlugifyTestCase(unittest.TestCase):
+         self.assertEqual(slugify_url('The Über article'), 'uber-article')
+ 
+     def test_slugify_filename(self):
+-        self.assertEqual(slugify_filename(u'Дrаft №2.txt'), u'Draft_2.txt')
++        self.assertEqual(slugify_filename(u'Дrаft №2.txt'), u'Draft_No._2.txt')
+ 
+ 
+ class ToLowerTestCase(unittest.TestCase):
diff --git a/pkgs/development/python-modules/discogs_client/default.nix b/pkgs/development/python-modules/discogs_client/default.nix
new file mode 100644
index 000000000000..d6891b0e157f
--- /dev/null
+++ b/pkgs/development/python-modules/discogs_client/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonPackage, fetchPypi, requests, oauthlib }:
+
+buildPythonPackage rec {
+  pname = "discogs-client";
+  version = "2.2.0";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1kjm4zyxlkv8cjyd4zl0yslbkmfz4ga9nm3d2glpw3nmvmvajn40";
+  };
+
+  propagatedBuildInputs = [ requests oauthlib ];
+
+  meta = with stdenv.lib; {
+    description = "Official Python API client for Discogs";
+    license = licenses.bsd2;
+    homepage = "https://github.com/discogs/discogs_client";
+  };
+}
diff --git a/pkgs/development/python-modules/dyn/default.nix b/pkgs/development/python-modules/dyn/default.nix
new file mode 100644
index 000000000000..e4bbe4e071d9
--- /dev/null
+++ b/pkgs/development/python-modules/dyn/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildPythonPackage, fetchPypi, pytest, pytestcov, mock, pytestpep8
+, pytest_xdist, covCore, glibcLocales }:
+
+buildPythonPackage rec {
+  pname = "dyn";
+  version = "1.6.3";
+  name  = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1xq90fliix5nbv934s3wf2pahmx6m2b9y0kqwn192c76qh7xlzib";
+  };
+
+  buildInputs = [ glibcLocales ];
+
+  checkInputs = [
+    pytest
+    pytestcov
+    mock
+    pytestpep8
+    pytest_xdist
+    covCore
+  ];
+  # Disable checks because they are not stateless and require internet access.
+  doCheck = false;
+
+  LC_ALL="en_US.UTF-8";
+
+  meta = with stdenv.lib; {
+    description = "Dynect dns lib";
+    homepage = "http://dyn.readthedocs.org/en/latest/intro.html";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/eve/default.nix b/pkgs/development/python-modules/eve/default.nix
new file mode 100644
index 000000000000..1a9b684a9f34
--- /dev/null
+++ b/pkgs/development/python-modules/eve/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, buildPythonPackage, fetchPypi, flask, jinja2, itsdangerous, events
+, markupsafe, pymongo, flask-pymongo, werkzeug, simplejson, cerberus }:
+
+buildPythonPackage rec {
+  pname = "Eve";
+  version = "0.7.4";
+  name  = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xihl5w2m4vkp0515qjibiy88pk380n5jmj8n9hh7q40b1vx1kwb";
+  };
+
+  patches = [
+    ./setup.patch
+  ];
+
+  propagatedBuildInputs = [
+    cerberus
+    events
+    flask-pymongo
+    flask
+    itsdangerous
+    jinja2
+    markupsafe
+    pymongo
+    simplejson
+    werkzeug
+  ];
+
+  # tests call a running mongodb instance
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "http://python-eve.org/";
+    description = "Open source Python REST API framework designed for human beings";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/eve/setup.patch b/pkgs/development/python-modules/eve/setup.patch
new file mode 100644
index 000000000000..8e5ca27757e1
--- /dev/null
+++ b/pkgs/development/python-modules/eve/setup.patch
@@ -0,0 +1,21 @@
+diff --git i/setup.py w/setup.py
+index 0176467..2b74988 100755
+--- i/setup.py
++++ w/setup.py
+@@ -9,11 +9,11 @@ install_requires = [
+     'cerberus>=0.9.2,<0.10',
+     'events>=0.2.1,<0.3',
+     'simplejson>=3.3.0,<4.0',
+-    'werkzeug>=0.9.4,<=0.11.15',
+-    'markupsafe>=0.23,<1.0',
+-    'jinja2>=2.8,<3.0',
+-    'itsdangerous>=0.24,<1.0',
+-    'flask>=0.10.1,<=0.12',
++    'werkzeug>=0.9.4',
++    'markupsafe>=0.23',
++    'jinja2>=2.8',
++    'itsdangerous>=0.24',
++    'flask>=0.10.1',
+     'pymongo>=3.4',
+     'flask-pymongo>=0.4',
+ ]
diff --git a/pkgs/development/python-modules/interruptingcow/default.nix b/pkgs/development/python-modules/interruptingcow/default.nix
new file mode 100644
index 000000000000..24a9abb625ff
--- /dev/null
+++ b/pkgs/development/python-modules/interruptingcow/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+buildPythonPackage rec {
+  pname = "interruptingcow";
+  version = "0.7";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0j6d0rbh8xjfw7bf8vcjld6q45i7vr9xsw5b9q6j87nhf4qhzx53";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A watchdog that interrupts long running code";
+    homepage = https://bitbucket.org/evzijst/interruptingcow;
+    license = licenses.mit;
+    maintainers = with maintainers; [ benley ];
+  };
+}
diff --git a/pkgs/development/python-modules/logilab/common.nix b/pkgs/development/python-modules/logilab/common.nix
new file mode 100644
index 000000000000..f64c309cc35b
--- /dev/null
+++ b/pkgs/development/python-modules/logilab/common.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi, unittest2, six }:
+
+buildPythonPackage rec {
+  pname = "logilab-common";
+  version = "1.4.1";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02in5555iak50gzn35bnnha9s85idmh0wwxaxz13v81z5krn077d";
+  };
+
+  propagatedBuildInputs = [ unittest2 six ];
+
+  # package supports 3.x but tests require egenix-mx-base which is python 2.x only
+  # and is not currently in nixos
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python packages and modules used by Logilab ";
+    homepage = https://www.logilab.org/project/logilab-common;
+    license = licenses.lgpl21;
+  };
+}
diff --git a/pkgs/development/python-modules/logilab/constraint.nix b/pkgs/development/python-modules/logilab/constraint.nix
new file mode 100644
index 000000000000..952cc03e454e
--- /dev/null
+++ b/pkgs/development/python-modules/logilab/constraint.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildPythonPackage, fetchPypi, logilab_common, six }:
+
+buildPythonPackage rec {
+  pname = "logilab-constraint";
+  version = "0.6.0";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n0xim4ij1n4yvyqqvyc0wllhjs22szglsd5av0j8k2qmck4njcg";
+  };
+
+  propagatedBuildInputs = [
+    logilab_common six
+  ];
+
+
+  meta = with stdenv.lib; {
+    description = "logilab-database provides some classes to make unified access to different";
+    homepage = "http://www.logilab.org/project/logilab-database";
+  };
+}
+
diff --git a/pkgs/development/python-modules/marionette-harness/default.nix b/pkgs/development/python-modules/marionette-harness/default.nix
index da8949f9f6e4..fbdd13a7f385 100644
--- a/pkgs/development/python-modules/marionette-harness/default.nix
+++ b/pkgs/development/python-modules/marionette-harness/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , mozprofile
 , mozversion
 , moztest
@@ -15,6 +16,7 @@ buildPythonPackage rec {
   pname = "marionette-harness";
   version = "4.1.0";
   name = "${pname}-${version}";
+  disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/marionette-harness/marionette_driver.nix b/pkgs/development/python-modules/marionette-harness/marionette_driver.nix
index 3f4e4e175816..d3eab83eea86 100644
--- a/pkgs/development/python-modules/marionette-harness/marionette_driver.nix
+++ b/pkgs/development/python-modules/marionette-harness/marionette_driver.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , mozversion
 , mozrunner
 }:
@@ -10,6 +11,7 @@ buildPythonPackage rec {
   pname = "marionette_driver";
   version = "2.3.0";
   name = "${pname}-${version}";
+  disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/mpi4py/default.nix b/pkgs/development/python-modules/mpi4py/default.nix
index 068162dd6922..7e54240941d6 100644
--- a/pkgs/development/python-modules/mpi4py/default.nix
+++ b/pkgs/development/python-modules/mpi4py/default.nix
@@ -1,26 +1,32 @@
-{ stdenv, fetchurl, python, buildPythonPackage, mpi, openssh, isPy3k, isPyPy }:
+{ stdenv, fetchPypi, python, buildPythonPackage, mpi, openssh, isPy3k, isPyPy }:
 
 buildPythonPackage rec {
   pname = "mpi4py";
   version = "2.0.0";
   name = "${pname}-${version}";
 
-  src = fetchurl {
-    url = "https://bitbucket.org/mpi4py/mpi4py/downloads/${name}.tar.gz";
-    sha256 = "6543a05851a7aa1e6d165e673d422ba24e45c41e4221f0993fe1e5924a00cb81";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10fb01595rg17ycz08a23v24akm25d13srsy2rnixam7a5ca0hv5";
   };
 
   passthru = {
     inherit mpi;
   };
 
+  # Rename libm.so -> libm.so.6 in test
+  # See: https://bitbucket.org/mpi4py/mpi4py/issues/28/test_dltestdl-test-failure
+  patches = [
+    ./tests.patch
+  ];
+
   # The tests in the `test_spawn` module fail in the chroot build environment.
   # However, they do pass in a pure, or non-pure nix-shell. Hence, we
   # deactivate these particular tests.
   # Unfortunately, the command-line arguments to `./setup.py test` are not
   # correctly passed to the test-runner. Hence, these arguments are patched
   # directly into `setup.py`.
-  patchPhase = ''
+  prePatch = ''
     sed 's/err = main(cmd.args or \[\])/err = main(cmd.args or ["-v", "-e", "test_spawn"])/' -i setup.py
   '';
 
@@ -49,6 +55,9 @@ buildPythonPackage rec {
 
   disabled = isPy3k || isPyPy;
 
+  # Timing out communicating between processes when sandboxing enabled.
+  doCheck = false;
+
   meta = {
     description =
       "Python bindings for the Message Passing Interface standard";
diff --git a/pkgs/development/python-modules/mpi4py/tests.patch b/pkgs/development/python-modules/mpi4py/tests.patch
new file mode 100644
index 000000000000..168e3b4b38d3
--- /dev/null
+++ b/pkgs/development/python-modules/mpi4py/tests.patch
@@ -0,0 +1,13 @@
+diff --git i/test/test_dl.py w/test/test_dl.py
+index a3211a3..9d25569 100644
+--- i/test/test_dl.py
++++ w/test/test_dl.py
+@@ -12,7 +12,7 @@ class TestDL(unittest.TestCase):
+         if sys.platform == 'darwin':
+             libm = 'libm.dylib'
+         else:
+-            libm = 'libm.so'
++            libm = 'libm.so.6'
+ 
+         handle = dl.dlopen(libm, dl.RTLD_LOCAL|dl.RTLD_LAZY)
+         self.assertTrue(handle != 0)
diff --git a/pkgs/development/python-modules/pomegranate/default.nix b/pkgs/development/python-modules/pomegranate/default.nix
new file mode 100644
index 000000000000..94c3295f029c
--- /dev/null
+++ b/pkgs/development/python-modules/pomegranate/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildPythonPackage, fetchPypi, numpy, scipy, cython, networkx, joblib, nose }:
+
+buildPythonPackage rec {
+  pname = "pomegranate";
+  version = "0.7.7";
+  name  = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b5b7a6256778fc4097ee77caec28ec845ec1fee3d701f3f26f83860b2d45c453";
+  };
+
+  propagatedBuildInputs = [ numpy scipy cython networkx joblib ];
+
+  checkInputs = [ nose ];
+
+  meta = with stdenv.lib; {
+    description = "Probabilistic and graphical models for Python, implemented in cython for speed";
+    homepage = https://github.com/jmschrei/pomegranate;
+    license = licenses.mit;
+    maintainers = with maintainers; [ rybern ];
+  };
+}
diff --git a/pkgs/development/python-modules/pydub/default.nix b/pkgs/development/python-modules/pydub/default.nix
new file mode 100644
index 000000000000..819c6ffe4892
--- /dev/null
+++ b/pkgs/development/python-modules/pydub/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi, scipy, ffmpeg-full }:
+
+buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "pydub";
+  version = "0.20.0";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hqsvvph6ks4kxj0m2q1xvl5bllqmpk78rlqpqhh79schl344xkv";
+  };
+
+  patches = [
+    ./pyaudioop-python3.patch
+  ];
+
+  checkInputs = [ scipy ffmpeg-full ];
+
+  meta = with stdenv.lib; {
+    description = "Manipulate audio with a simple and easy high level interface.";
+    homepage    = "http://pydub.com/";
+    license     = licenses.mit;
+    platforms   = platforms.all;
+  };
+}
diff --git a/pkgs/development/python-modules/pydub/pyaudioop-python3.patch b/pkgs/development/python-modules/pydub/pyaudioop-python3.patch
new file mode 100644
index 000000000000..58c56db5b8a5
--- /dev/null
+++ b/pkgs/development/python-modules/pydub/pyaudioop-python3.patch
@@ -0,0 +1,46 @@
+diff --git i/pydub/pyaudioop.py w/pydub/pyaudioop.py
+index 8f8f017..aa6bb8c 100644
+--- i/pydub/pyaudioop.py
++++ w/pydub/pyaudioop.py
+@@ -1,4 +1,4 @@
+-import __builtin__
++import builtins
+ import math
+ import struct
+ from fractions import gcd
+@@ -79,7 +79,7 @@ def _get_minval(size, signed=True):
+ def _get_clipfn(size, signed=True):
+     maxval = _get_maxval(size, signed)
+     minval = _get_minval(size, signed)
+-    return lambda val: __builtin__.max(min(val, maxval), minval)
++    return lambda val: builtins.max(min(val, maxval), minval)
+ 
+ 
+ def _overflow(val, size, signed=True):
+@@ -109,7 +109,7 @@ def max(cp, size):
+     if len(cp) == 0:
+         return 0
+ 
+-    return __builtin__.max(abs(sample) for sample in _get_samples(cp, size))
++    return builtins.max(abs(sample) for sample in _get_samples(cp, size))
+ 
+ 
+ def minmax(cp, size):
+@@ -117,8 +117,8 @@ def minmax(cp, size):
+ 
+     max_sample, min_sample = 0, 0
+     for sample in _get_samples(cp, size):
+-        max_sample = __builtin__.max(sample, max_sample)
+-        min_sample = __builtin__.min(sample, min_sample)
++        max_sample = builtins.max(sample, max_sample)
++        min_sample = builtins.min(sample, min_sample)
+ 
+     return min_sample, max_sample
+ 
+@@ -542,4 +542,4 @@ def lin2adpcm(cp, size, state):
+ 
+ 
+ def adpcm2lin(cp, size, state):
+-    raise NotImplementedError()
+\ No newline at end of file
++    raise NotImplementedError()
diff --git a/pkgs/development/python-modules/pymongo/default.nix b/pkgs/development/python-modules/pymongo/default.nix
new file mode 100644
index 000000000000..5b400e1521e0
--- /dev/null
+++ b/pkgs/development/python-modules/pymongo/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "pymongo";
+  version = "3.5.1";
+  name  = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0939bl3brrklvccicck62gs3zd7i9aysz13c8pxc3gpk2hsdj878";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "http://github.com/mongodb/mongo-python-driver";
+    license = licenses.asl20;
+    description = "Python driver for MongoDB ";
+  };
+}
diff --git a/pkgs/development/python-modules/radicale_infcloud/default.nix b/pkgs/development/python-modules/radicale_infcloud/default.nix
new file mode 100644
index 000000000000..afa1895e5404
--- /dev/null
+++ b/pkgs/development/python-modules/radicale_infcloud/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, buildPythonPackage }:
+
+buildPythonPackage rec {
+  pname = "radicale_infcloud";
+  name = "${pname}-${version}";
+  version = "2017-07-27";
+
+  src = fetchFromGitHub {
+    owner = "Unrud";
+    repo = "RadicaleInfCloud";
+    rev = "972757bf4c6be8b966ee063e3741ced29ba8169f";
+    sha256 = "1c9ql9nv8kwi791akwzd19dcqzd916i7yxzbnrismzw4f5bhgzsk";
+  };
+
+  doCheck = false; # Tries to import radicale, circular dependency
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/Unrud/RadicaleInfCloud/;
+    description = "Integrate InfCloud into Radicale's web interface";
+    license = with licenses; [ agpl3 gpl3 ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ aneeshusa ];
+  };
+}
diff --git a/pkgs/development/python-modules/trollius/default.nix b/pkgs/development/python-modules/trollius/default.nix
new file mode 100644
index 000000000000..ef367c3525d3
--- /dev/null
+++ b/pkgs/development/python-modules/trollius/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, isPy26, isPyPy, mock, futures  }:
+buildPythonPackage rec {
+  pname = "trollius";
+  version = "1.0.4";
+  name  = "${pname}-${version}";
+
+  disabled = isPy26;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xny8y12x3wrflmyn6xi8a7n3m3ac80fgmgzphx5jbbaxkjcm148";
+  };
+
+  buildInputs = [ mock ];
+
+  propagatedBuildInputs = lib.optional (isPy27 || isPyPy) [ futures ];
+
+  patches = [
+    ./tests.patch
+  ];
+
+  # Some of the tests fail on darwin with `error: AF_UNIX path too long'
+  # because of the *long* path names for sockets
+  patchPhase = lib.optionalString stdenv.isDarwin ''
+      sed -i -e "s|test_create_ssl_unix_connection|skip_test_create_ssl_unix_connection|g" tests/test_events.py
+      sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|g" tests/test_events.py
+      sed -i -e "s|test_create_unix_server_existing_path_nonsock|skip_test_create_unix_server_existing_path_nonsock|g" tests/test_unix_events.py
+      sed -i -e "s|test_create_unix_server_existing_path_sock|skip_test_create_unix_server_existing_path_sock|g" tests/test_unix_events.py
+      sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|g" tests/test_events.py
+      sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|g" tests/test_events.py
+      sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|g" tests/test_events.py
+      sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|g" tests/test_events.py
+      sed -i -e "s|test_open_unix_connection_error|skip_test_open_unix_connection_error|g" tests/test_streams.py
+      sed -i -e "s|test_open_unix_connection_no_loop_ssl|skip_test_open_unix_connection_no_loop_ssl|g" tests/test_streams.py
+      sed -i -e "s|test_open_unix_connection|skip_test_open_unix_connection|g" tests/test_streams.py
+      sed -i -e "s|test_pause_reading|skip_test_pause_reading|g" tests/test_subprocess.py
+      sed -i -e "s|test_read_pty_output|skip_test_read_pty_output|g" tests/test_events.py
+      sed -i -e "s|test_start_unix_server|skip_test_start_unix_server|g" tests/test_streams.py
+      sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|g" tests/test_events.py
+      sed -i -e "s|test_write_pty|skip_test_write_pty|g" tests/test_events.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Port of the Tulip project (asyncio module, PEP 3156) on Python 2";
+    homepage = "https://bitbucket.org/enovance/trollius";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ garbas ];
+  };
+}
diff --git a/pkgs/development/python-modules/trollius/tests.patch b/pkgs/development/python-modules/trollius/tests.patch
new file mode 100644
index 000000000000..4923bded9493
--- /dev/null
+++ b/pkgs/development/python-modules/trollius/tests.patch
@@ -0,0 +1,13 @@
+diff --git i/tests/test_asyncio.py w/tests/test_asyncio.py
+index 39d9e1a..05b7e6f 100644
+--- i/tests/test_asyncio.py
++++ w/tests/test_asyncio.py
+@@ -69,7 +69,7 @@ class AsyncioTests(test_utils.TestCase):
+             def step_future():
+                 future = asyncio.Future()
+                 self.loop.call_soon(future.set_result, "asyncio.Future")
+-                return (yield from future)
++                return (yield From(future))
+ 
+             # test in release mode
+             trollius.coroutines._DEBUG = False
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 26e81916774b..cbf890ab1ec6 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -3,14 +3,14 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "0.54.0";
+  version = "0.55.0";
   name = "flow-${version}";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    sha256 = "02z3jrfrr6gn056wplwkhymd1nyncjs67yl3vhv6n27jr3572npn";
+    sha256 = "042q2197m9l7r6j053dd4hqaqv7dsc5wh8h6aifkcmqa4ypp4w5r";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index 21dba34e8843..875feea84d47 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -18,7 +18,15 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  patches = stdenv.lib.optionals (stdenv.isDarwin) [ ./valgrind-bzero.patch ];
+  preConfigure = stdenv.lib.optionalString stdenv.isDarwin (
+    let OSRELEASE = ''
+      $(awk -F '"' '/#define OSRELEASE/{ print $2 }' \
+      <${xnu}/Library/Frameworks/Kernel.framework/Headers/libkern/version.h)'';
+    in ''
+      echo "Don't derive our xnu version using uname -r."
+      substituteInPlace configure --replace "uname -r" "echo ${OSRELEASE}"
+    ''
+  );
 
   postPatch = stdenv.lib.optionalString (stdenv.isDarwin)
     # Apple's GCC doesn't recognize `-arch' (as of version 4.2.1, build 5666).
diff --git a/pkgs/development/tools/analysis/valgrind/valgrind-bzero.patch b/pkgs/development/tools/analysis/valgrind/valgrind-bzero.patch
deleted file mode 100644
index f56a277ad717..000000000000
--- a/pkgs/development/tools/analysis/valgrind/valgrind-bzero.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Index: coregrind/m_main.c
-===================================================================
---- a/coregrind/m_main.c (revision 16102)
-+++ b/coregrind/m_main.c (revision 16103)
-@@ -3489,6 +3489,10 @@
-     // skip check
-   return VG_(memset)(s,c,n);
- }
-+void __bzero(void* s, UWord n);
-+void __bzero(void* s, UWord n) {
-+    (void)VG_(memset)(s,0,n);
-+}
- void bzero(void *s, SizeT n);
- void bzero(void *s, SizeT n) {
-     VG_(memset)(s,0,n);
-@@ -4058,20 +4062,7 @@
- 
- #endif
- 
--#if defined(VGO_darwin) && DARWIN_VERS == DARWIN_10_10
- 
--/* This might also be needed for > DARWIN_10_10, but I have no way
--   to test for that.  Hence '==' rather than '>=' in the version
--   test above. */
--void __bzero ( void* s, UWord n );
--void __bzero ( void* s, UWord n )
--{
--   (void) VG_(memset)( s, 0, n );
--}
--
--#endif
--
--
- /*--------------------------------------------------------------------*/
- /*--- end                                                          ---*/
- /*--------------------------------------------------------------------*/
-
diff --git a/pkgs/development/tools/gocode/default.nix b/pkgs/development/tools/gocode/default.nix
index fe6bfc711e63..2501c36dd5cd 100644
--- a/pkgs/development/tools/gocode/default.nix
+++ b/pkgs/development/tools/gocode/default.nix
@@ -2,8 +2,8 @@
 
 buildGoPackage rec {
   name = "gocode-${version}";
-  version = "20170530-${stdenv.lib.strings.substring 0 7 rev}";
-  rev = "f1eef9a6ba005abb145d7b58fdd225e83a3c6a05";
+  version = "20170903-${stdenv.lib.strings.substring 0 7 rev}";
+  rev = "c7fddb39ecbc9ebd1ebe7d2a3af473ed0fffffa1";
 
   goPackagePath = "github.com/nsf/gocode";
 
@@ -15,6 +15,6 @@ buildGoPackage rec {
   src = fetchgit {
     inherit rev;
     url = "https://github.com/nsf/gocode";
-    sha256 = "1hkr46ikrprx203i2yr6xds1bzxggblh7bg026m2cda6dxgpnsgw";
+    sha256 = "0qx8pq38faig41xkl1a4hrgp3ziyjyn6g53vn5wj7cdgm5kk67nb";
   };
 }
diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index ee6b0fe8c375..24dd868d64dc 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -495,6 +495,17 @@ rec {
 
   };
 
+  LanguageClient-neovim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "LanguageClient-neovim-2017-09-05";
+    src = fetchgit {
+      url = "https://github.com/autozimu/LanguageClient-neovim";
+      rev = "5bfc3492d50c3c48c6e0b0d1899ed2bbca2cf48f";
+      sha256 = "1zi3v4yx4hgzfr23377z84yngiqvdwjpdpkn12lpi6irb04q6641";
+    };
+    dependencies = [];
+
+  };
+
   clighter8 = buildVimPluginFrom2Nix { # created by nix#NixDerivation
     name = "clighter8-2017-07-23";
     src = fetchgit {
@@ -1363,6 +1374,17 @@ rec {
 
   };
 
+  nvim-cm-racer = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "nvim-cm-racer-2017-07-27";
+    src = fetchgit {
+      url = "https://github.com/roxma/nvim-cm-racer";
+      rev = "2a8a4a49fa58c5dac9e0bed9511f6928930cacd2";
+      sha256 = "1yljxwypgn91084yyicbc2qprn31ld7s4drvnddzczyhzq5m2gpx";
+    };
+    dependencies = [];
+
+  };
+
   nvim-completion-manager = buildVimPluginFrom2Nix { # created by nix#NixDerivation
     name = "nvim-completion-manager-2017-09-05";
     src = fetchgit {
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 8dd187fe5223..f1983e3eeb6a 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -31,6 +31,7 @@
 "github:alvan/vim-closetag"
 "github:andviro/flake8-vim"
 "github:ap/vim-css-color"
+"github:autozimu/LanguageClient-neovim"
 "github:bbchung/clighter8"
 "github:benekastah/neomake"
 "github:bitc/vim-hdevtools"
@@ -109,6 +110,7 @@
 "github:rhysd/vim-grammarous"
 "github:rodjek/vim-puppet"
 "github:roxma/nvim-completion-manager"
+"github:roxma/nvim-cm-racer"
 "github:ryanoasis/vim-devicons"
 "github:rust-lang/rust.vim"
 "github:sbdchd/neoformat"
diff --git a/pkgs/os-specific/gnu/default.nix b/pkgs/os-specific/gnu/default.nix
index 247c73e468d0..fb3796394e81 100644
--- a/pkgs/os-specific/gnu/default.nix
+++ b/pkgs/os-specific/gnu/default.nix
@@ -3,15 +3,22 @@
 args@{ fetchgit, stdenv, autoconf, automake, automake111x, libtool
 , texinfo, glibcCross, hurdPartedCross, libuuid, samba
 , gccCrossStageStatic, gccCrossStageFinal
-, forcedNativePackages, forceSystem, newScope, platform, config
+, forceSystem, newScope, platform, config
 , targetPlatform, buildPlatform
-, overrides ? {} }:
+, overrides ? {}
+, buildPackages, pkgs
+}:
 
 with args;
 
 let
   callPackage = newScope gnu;
 
+  forcedNativePackages =
+    if stdenv.hostPlatform == stdenv.buildPlatform
+    then pkgs
+    else buildPackages;
+
   gnu = {
     hurdCross = forcedNativePackages.callPackage ./hurd {
       inherit fetchgit stdenv autoconf libtool texinfo
diff --git a/pkgs/os-specific/linux/bluez/bluez5.nix b/pkgs/os-specific/linux/bluez/bluez5.nix
deleted file mode 100644
index 89734b321fc0..000000000000
--- a/pkgs/os-specific/linux/bluez/bluez5.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, dbus, glib, alsaLib,
-  pythonPackages, readline, libsndfile, udev, libical,
-  systemd, enableWiimote ? false }:
-
-assert stdenv.isLinux;
-
-stdenv.mkDerivation rec {
-  name = "bluez-5.43";
-
-  src = fetchurl {
-    url = "mirror://kernel/linux/bluetooth/${name}.tar.xz";
-    sha256 = "05cdnpz0w2lwq2x5ba87q1h2wgb4lfnpbnbh6p7499hx59fw1j8n";
-  };
-
-  pythonPath = with pythonPackages;
-    [ dbus pygobject2 pygobject3 recursivePthLoader ];
-
-  buildInputs =
-    [ pkgconfig dbus glib alsaLib pythonPackages.python pythonPackages.wrapPython
-      readline libsndfile udev libical
-      # Disables GStreamer; not clear what it gains us other than a
-      # zillion extra dependencies.
-      # gstreamer gst-plugins-base
-    ];
-
-  outputs = [ "out" "dev" "test" ];
-
-  patches = [ ./bluez-5.37-obexd_without_systemd-1.patch ];
-
-  preConfigure = ''
-      substituteInPlace tools/hid2hci.rules --replace /sbin/udevadm ${systemd}/bin/udevadm
-      substituteInPlace tools/hid2hci.rules --replace "hid2hci " "$out/lib/udev/hid2hci "
-    '';
-
-  configureFlags = [
-    "--localstatedir=/var"
-    "--enable-library"
-    "--enable-cups"
-    "--with-dbusconfdir=$(out)/etc"
-    "--with-dbussystembusdir=$(out)/share/dbus-1/system-services"
-    "--with-dbussessionbusdir=$(out)/share/dbus-1/services"
-    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
-    "--with-systemduserunitdir=$(out)/etc/systemd/user"
-    "--with-udevdir=$(out)/lib/udev"
-    ] ++
-    stdenv.lib.optional enableWiimote [ "--enable-wiimote" ];
-
-  # Work around `make install' trying to create /var/lib/bluetooth.
-  installFlags = "statedir=$(TMPDIR)/var/lib/bluetooth";
-
-  makeFlags = "rulesdir=$(out)/lib/udev/rules.d";
-
-  # FIXME: Move these into a separate package to prevent Bluez from
-  # depending on Python etc.
-  postInstall = ''
-    cp ./attrib/gatttool $out/bin/gatttool
-    mkdir -p $test/test
-    cp -a test $test
-    pushd $test/test
-    for a in \
-            simple-agent \
-            test-adapter \
-            test-device \
-            test-thermometer \
-            list-devices \
-            monitor-bluetooth \
-            ; do
-      ln -s ../test/$a $out/bin/bluez-$a
-    done
-    popd
-    wrapPythonProgramsIn $test/test "$test/test $pythonPath"
-
-    # for bluez4 compatibility for NixOS
-    mkdir $out/sbin
-    ln -s ../libexec/bluetooth/bluetoothd $out/sbin/bluetoothd
-    ln -s ../libexec/bluetooth/obexd $out/sbin/obexd
-
-    # Add extra configuration
-    mkdir $out/etc/bluetooth
-    ln -s /etc/bluetooth/main.conf $out/etc/bluetooth/main.conf
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    homepage = http://www.bluez.org/;
-    repositories.git = https://git.kernel.org/pub/scm/bluetooth/bluez.git;
-    description = "Bluetooth support for Linux";
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/bluez/default.nix b/pkgs/os-specific/linux/bluez/default.nix
index 20b8d01db2d3..f0a59f36e433 100644
--- a/pkgs/os-specific/linux/bluez/default.nix
+++ b/pkgs/os-specific/linux/bluez/default.nix
@@ -1,53 +1,91 @@
-{ stdenv, fetchurl, pkgconfig, dbus, glib, libusb, alsaLib, pythonPackages, makeWrapper
-, readline, libsndfile }:
+{ stdenv, fetchurl, pkgconfig, dbus, glib, alsaLib,
+  pythonPackages, readline, libsndfile, udev, libical,
+  systemd, enableWiimote ? false }:
 
 assert stdenv.isLinux;
 
-let
-  inherit (pythonPackages) python;
-  pythonpath = "${pythonPackages.dbus-python}/lib/${python.libPrefix}/site-packages:"
-    + "${pythonPackages.pygobject2}/lib/${python.libPrefix}/site-packages";
-in stdenv.mkDerivation rec {
-  name = "bluez-4.101";
-   
+stdenv.mkDerivation rec {
+  name = "bluez-5.47";
+
   src = fetchurl {
-    url = "mirror://kernel/linux/bluetooth/${name}.tar.gz";
-    sha256 = "11vldy255zkmmpj0g0a1m6dy9bzsmyd7vxy02cdfdw79ml888wsr";
+    url = "mirror://kernel/linux/bluetooth/${name}.tar.xz";
+    sha256 = "1j22hfjz0fp4pgclgz9mfcwjbr4wqgah3gd2qhfg4r6msmybyxfg";
   };
 
+  pythonPath = with pythonPackages;
+    [ dbus pygobject2 pygobject3 recursivePthLoader ];
+
   buildInputs =
-    [ pkgconfig dbus glib libusb alsaLib python makeWrapper
-      readline libsndfile
+    [ pkgconfig dbus glib alsaLib pythonPackages.python pythonPackages.wrapPython
+      readline libsndfile udev libical
       # Disables GStreamer; not clear what it gains us other than a
       # zillion extra dependencies.
-      # gstreamer gst-plugins-base 
+      # gstreamer gst-plugins-base
     ];
 
+  outputs = [ "out" "dev" "test" ];
+
+  patches = [ ./bluez-5.37-obexd_without_systemd-1.patch ];
+
+  preConfigure = ''
+      substituteInPlace tools/hid2hci.rules --replace /sbin/udevadm ${systemd}/bin/udevadm
+      substituteInPlace tools/hid2hci.rules --replace "hid2hci " "$out/lib/udev/hid2hci "
+    '';
+
   configureFlags = [
     "--localstatedir=/var"
+    "--enable-library"
     "--enable-cups"
-    "--with-systemdunitdir=$(out)/etc/systemd/system"
-    ];
+    "--enable-pie"
+    "--with-dbusconfdir=$(out)/etc"
+    "--with-dbussystembusdir=$(out)/share/dbus-1/system-services"
+    "--with-dbussessionbusdir=$(out)/share/dbus-1/services"
+    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+    "--with-systemduserunitdir=$(out)/etc/systemd/user"
+    "--with-udevdir=$(out)/lib/udev"
+    ] ++
+    stdenv.lib.optional enableWiimote [ "--enable-wiimote" ];
 
   # Work around `make install' trying to create /var/lib/bluetooth.
   installFlags = "statedir=$(TMPDIR)/var/lib/bluetooth";
 
   makeFlags = "rulesdir=$(out)/lib/udev/rules.d";
 
-  /* !!! Move these into a separate package to prevent Bluez from
-    depending on Python etc. */
+  # FIXME: Move these into a separate package to prevent Bluez from
+  # depending on Python etc.
   postInstall = ''
-    pushd test
-    for a in simple-agent test-adapter test-device test-input; do
-      cp $a $out/bin/bluez-$a
-      wrapProgram $out/bin/bluez-$a --prefix PYTHONPATH : ${pythonpath}
+    mkdir -p $test/test
+    cp -a test $test
+    pushd $test/test
+    for a in \
+            simple-agent \
+            test-adapter \
+            test-device \
+            test-thermometer \
+            list-devices \
+            monitor-bluetooth \
+            ; do
+      ln -s ../test/$a $out/bin/bluez-$a
     done
     popd
+    wrapPythonProgramsIn $test/test "$test/test $pythonPath"
+
+    # for bluez4 compatibility for NixOS
+    mkdir $out/sbin
+    ln -s ../libexec/bluetooth/bluetoothd $out/sbin/bluetoothd
+    ln -s ../libexec/bluetooth/obexd $out/sbin/obexd
+
+    # Add extra configuration
+    mkdir $out/etc/bluetooth
+    ln -s /etc/bluetooth/main.conf $out/etc/bluetooth/main.conf
   '';
 
-  meta = {
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
     homepage = http://www.bluez.org/;
+    repositories.git = https://git.kernel.org/pub/scm/bluetooth/bluez.git;
     description = "Bluetooth support for Linux";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/cryptodev/default.nix b/pkgs/os-specific/linux/cryptodev/default.nix
index 4ffd8fadd121..d25692b6cdf6 100644
--- a/pkgs/os-specific/linux/cryptodev/default.nix
+++ b/pkgs/os-specific/linux/cryptodev/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     homepage = http://home.gna.org/cryptodev-linux/;
     license = stdenv.lib.licenses.gpl2Plus;
     platforms = stdenv.lib.platforms.linux;
+    broken = !stdenv.lib.versionOlder kernel.version "4.13";
   };
 }
diff --git a/pkgs/os-specific/linux/dmtcp/default.nix b/pkgs/os-specific/linux/dmtcp/default.nix
index cedd5a1cb761..76f9d8c128c3 100644
--- a/pkgs/os-specific/linux/dmtcp/default.nix
+++ b/pkgs/os-specific/linux/dmtcp/default.nix
@@ -13,15 +13,14 @@ stdenv.mkDerivation rec {
 
   dontDisableStatic = true;
 
+  patches = [ ./ld-linux-so-buffer-size.patch ];
+
   postPatch = ''
     patchShebangs .
 
     substituteInPlace configure \
       --replace '#define ELF_INTERPRETER "$interp"' \
                 "#define ELF_INTERPRETER \"$(cat $NIX_CC/nix-support/dynamic-linker)\""
-  '';
-
-  preConfigure = ''
     substituteInPlace src/dmtcp_coordinator.cpp \
       --replace /bin/bash ${stdenv.shell}
     substituteInPlace util/gdb-add-symbol-file \
diff --git a/pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch b/pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch
new file mode 100644
index 000000000000..5a81dad0cc90
--- /dev/null
+++ b/pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch
@@ -0,0 +1,11 @@
+--- dmtcp-2.5.1-src/src/util_exec.cpp	2017-09-19 13:36:22.947587034 +0200
++++ dmtcp-2.5.1-src/src/util_exec.cpp	2017-09-19 13:36:32.221313460 +0200
+@@ -178,7 +178,7 @@
+ 
+ static string ld_linux_so_path(int version, bool is32bitElf = false)
+ {
+-  char buf[80];
++  char buf[128];
+ #if (defined(__x86_64__) || defined(__aarch64__)) && !defined(CONFIG_M32)
+   if (is32bitElf) {
+     sprintf(buf, "/lib/ld-linux.so.%d", version);
diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix
index 6822d7cba5a7..c2320f8d7c78 100644
--- a/pkgs/os-specific/linux/hostapd/default.nix
+++ b/pkgs/os-specific/linux/hostapd/default.nix
@@ -6,21 +6,21 @@ stdenv.mkDerivation rec {
   version = "2.6";
 
   src = fetchurl {
-    url = "http://hostap.epitest.fi/releases/${name}.tar.gz";
+    url = "https://w1.fi/releases/${name}.tar.gz";
     sha256 = "0z8ilypad82q3l6q6kbv6hczvhjn8k63j8051x5yqfyjq686nlh1";
   };
 
   patches = [
     (fetchurl {
-      url = "http://w1.fi/cgit/hostap/patch/?id=0d42179e1246f996d334c8bd18deca469fdb1add";
+      url = "https://w1.fi/cgit/hostap/patch/?id=0d42179e1246f996d334c8bd18deca469fdb1add";
       sha256 = "0w5n3ypwavq5zlyfxpcyvbaf96g59xkwbw9xwpjyzb7h5j264615";
     })
     (fetchurl {
-      url = "http://w1.fi/cgit/hostap/patch/?id=df426738fb212d62b132d9bb447f0128194e00ab";
+      url = "https://w1.fi/cgit/hostap/patch/?id=df426738fb212d62b132d9bb447f0128194e00ab";
       sha256 = "0ps2prjijlcgv1i97xb5ypw840dhkc7ja1aw8zhlbrap7pbgi1mm";
     })
     (fetchurl {
-      url = "http://w1.fi/cgit/hostap/patch/?id=b70d508c50e8e2d2b8fb96ae44ae10f84cf0c1ae";
+      url = "https://w1.fi/cgit/hostap/patch/?id=b70d508c50e8e2d2b8fb96ae44ae10f84cf0c1ae";
       sha256 = "0pslmsbay2cy1k07w1mdcr0b8w059jkrqrr9zi1aljvkm3vbwhj1";
     })
   ];
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 4a97a466e0f0..6d04340ab46b 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -565,7 +565,9 @@ with stdenv.lib;
   # Media support.
   MEDIA_DIGITAL_TV_SUPPORT y
   MEDIA_CAMERA_SUPPORT y
-  MEDIA_RC_SUPPORT y
+  ${optionalString (versionOlder version "4.14") ''
+    MEDIA_RC_SUPPORT y
+  ''}
   MEDIA_USB_SUPPORT y
   MEDIA_PCI_SUPPORT y
 
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 379d3cad9705..3912d9d10f5e 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -36,6 +36,22 @@ let
 
   lib = stdenv.lib;
 
+  # Combine the `features' attribute sets of all the kernel patches.
+  kernelFeatures = lib.fold (x: y: (x.features or {}) // y) ({
+    iwlwifi = true;
+    efiBootStub = true;
+    needsCifsUtils = true;
+    netfilterRPFilter = true;
+  } // features) kernelPatches;
+
+  configWithPlatform = kernelPlatform: import ./common-config.nix {
+    inherit stdenv version kernelPlatform extraConfig;
+    features = kernelFeatures; # Ensure we know of all extra patches, etc.
+  };
+
+  config = configWithPlatform stdenv.platform;
+  configCross = configWithPlatform hostPlatform.platform;
+
   kernelConfigFun = baseConfig:
     let
       configFromPatches =
@@ -115,23 +131,17 @@ let
   };
 
   passthru = {
-    # Combine the `features' attribute sets of all the kernel patches.
-    features = lib.fold (x: y: (x.features or {}) // y) features kernelPatches;
+    features = kernelFeatures;
 
     meta = kernel.meta // extraMeta;
 
     passthru = kernel.passthru // (removeAttrs passthru [ "passthru" "meta" ]);
   };
 
-  configWithPlatform = kernelPlatform: import ./common-config.nix
-    { inherit stdenv version kernelPlatform extraConfig;
-      features = passthru.features; # Ensure we know of all extra patches, etc.
-    };
-
-  config = configWithPlatform stdenv.platform;
-  configCross = configWithPlatform hostPlatform.platform;
-
   nativeDrv = lib.addPassthru kernel.nativeDrv passthru;
 
   crossDrv = lib.addPassthru kernel.crossDrv passthru;
-in if kernel ? crossDrv then nativeDrv // { inherit nativeDrv crossDrv; } else lib.addPassthru kernel passthru
+
+in if kernel ? crossDrv
+   then nativeDrv // { inherit nativeDrv crossDrv; }
+   else lib.addPassthru kernel passthru
diff --git a/pkgs/os-specific/linux/kernel/linux-4.12.nix b/pkgs/os-specific/linux/kernel/linux-4.12.nix
index 876bbff119fe..bff0f5db9538 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.12.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.12.nix
@@ -1,18 +1,11 @@
 { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.12.13";
+  version = "4.12.14";
   extraMeta.branch = "4.12";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "18sxw7mw4fya7381mkah70s3di6b8xxfigjhrhb7zcczrffb4vl9";
+    sha256 = "09zxmknh6awhqmj8dyq95bdlwcasryy35hkjxjlzixdgn52kzaw6";
   };
-
-  kernelPatches = args.kernelPatches;
-
-  features.iwlwifi = true;
-  features.efiBootStub = true;
-  features.needsCifsUtils = true;
-  features.netfilterRPFilter = true;
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.13.nix b/pkgs/os-specific/linux/kernel/linux-4.13.nix
index fb53a278bd14..d1c4d8ba8e7d 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.13.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.13.nix
@@ -1,18 +1,11 @@
 { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.13.2";
+  version = "4.13.3";
   extraMeta.branch = "4.13";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1lgwgw9yp5ywbylnmahsmqzs98yfq53mvvqqdgp7ljiqg8bxqjh6";
+    sha256 = "1ayai3i0jakxzszpijhknjiwwi055wa74bpmnr0n7dh2l5s2rlh3";
   };
-
-  kernelPatches = args.kernelPatches;
-
-  features.iwlwifi = true;
-  features.efiBootStub = true;
-  features.needsCifsUtils = true;
-  features.netfilterRPFilter = true;
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 7e959241b9c2..5033bb88f79a 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,18 +1,11 @@
 { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.9.50";
+  version = "4.9.51";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0dhm5w7qa1hyqp254r41b4nhf10a8w7sv1mhd16f61inpb41829c";
+    sha256 = "12mag09scyzi5a352y39y4b6rjh89qqca53hhmjc396q09hsdyl3";
   };
-
-  kernelPatches = args.kernelPatches;
-
-  features.iwlwifi = true;
-  features.efiBootStub = true;
-  features.needsCifsUtils = true;
-  features.netfilterRPFilter = true;
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix b/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix
index d5d4ebcdae51..3b9357ae35ed 100644
--- a/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix
+++ b/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix
@@ -27,11 +27,4 @@ import ./generic.nix (args // {
     repo = "linux-hardened";
     rev = "${version}.${revision}";
   };
-
-  kernelPatches = args.kernelPatches;
-
-  features.iwlwifi = true;
-  features.efiBootStub = true;
-  features.needsCifsUtils = true;
-  features.netfilterRPFilter = true;
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-mptcp.nix b/pkgs/os-specific/linux/kernel/linux-mptcp.nix
index 7e6110bf4a39..dc4d10a04125 100644
--- a/pkgs/os-specific/linux/kernel/linux-mptcp.nix
+++ b/pkgs/os-specific/linux/kernel/linux-mptcp.nix
@@ -15,8 +15,6 @@ import ./generic.nix (args // rec {
     sha256 = "0vqjnkzcbbvyq24w3cryfmw7hhws1xqkkxqcv71szkbqqs6mcr14";
   };
 
-  kernelPatches = args.kernelPatches;
-
   extraConfig = ''
     IPV6 y
     MPTCP y
@@ -41,10 +39,6 @@ import ./generic.nix (args // rec {
     TCP_CONG_OLIA m
     TCP_CONG_WVEGAS m
     TCP_CONG_BALIA m
-  '';
 
-  features.iwlwifi = true;
-  features.efiBootStub = true;
-  features.needsCifsUtils = true;
-  features.netfilterRPFilter = true;
+  '' + (args.extraConfig or "");
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-rpi.nix b/pkgs/os-specific/linux/kernel/linux-rpi.nix
index 4985e40f51d6..2d8a3f0afcdd 100644
--- a/pkgs/os-specific/linux/kernel/linux-rpi.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rpi.nix
@@ -15,9 +15,9 @@ stdenv.lib.overrideDerivation (import ./generic.nix (args // rec {
     sha256 = "1ly0x7a43zvig0fv7lc6rpq49pcdb7i9sdb78p4gi5485zap40kb";
   };
 
-  features.iwlwifi = true;
-  features.needsCifsUtils = true;
-  features.netfilterRPFilter = true;
+  features = {
+    efiBootStub = false;
+  } // (args.features or {});
 
   extraMeta.hydraPlatforms = [];
 })) (oldAttrs: {
diff --git a/pkgs/os-specific/linux/kernel/linux-samus-4.12.nix b/pkgs/os-specific/linux/kernel/linux-samus-4.12.nix
index 5599e1325d98..f262dfe34b79 100644
--- a/pkgs/os-specific/linux/kernel/linux-samus-4.12.nix
+++ b/pkgs/os-specific/linux/kernel/linux-samus-4.12.nix
@@ -14,10 +14,5 @@ import ./generic.nix (args // rec {
       sha256 = "1dr74i79p8r13522w2ppi8gnjd9bhngc9d2hsn91ji6f5a8fbxx9";
     }; in "${upstream}/build/linux";
 
-  features.iwlwifi = true;
-  features.efiBootStub = true;
-  features.needsCifsUtils = true;
-  features.netfilterRPFilter = true;
-
   extraMeta.hydraPlatforms = [];
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
index 77a2b62dbb4f..a104cc5393c3 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
@@ -16,11 +16,6 @@ import ./generic.nix (args // rec {
     BCACHEFS_FS m
   '';
 
-  features.iwlwifi = true;
-  features.efiBootStub = true;
-  features.needsCifsUtils = true;
-  features.netfilterRPFilter = true;
-
   # Should the testing kernels ever be built on Hydra?
   extraMeta.hydraPlatforms = [];
 
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 6778e11710fe..e97d5c47da25 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,20 +1,15 @@
 { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.13-rc7";
-  modDirVersion = "4.13.0-rc7";
-  extraMeta.branch = "4.13";
+  version = "4.14-rc1";
+  modDirVersion = "4.14.0-rc1";
+  extraMeta.branch = "4.14";
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "1xkfxsvdhd0xcfjcr78222sa58i02z2ca9fv804jbyp7w9g628rm";
+    sha256 = "0dhcsjgcy28pyyzwf2s0862p92bwb324kapli2y9n90bw0kl53gi";
   };
 
-  features.iwlwifi = true;
-  features.efiBootStub = true;
-  features.needsCifsUtils = true;
-  features.netfilterRPFilter = true;
-
   # Should the testing kernels ever be built on Hydra?
   extraMeta.hydraPlatforms = [];
 
diff --git a/pkgs/os-specific/linux/mxu11x0/default.nix b/pkgs/os-specific/linux/mxu11x0/default.nix
index d21bed7cbe4a..1bf7c8467326 100644
--- a/pkgs/os-specific/linux/mxu11x0/default.nix
+++ b/pkgs/os-specific/linux/mxu11x0/default.nix
@@ -34,6 +34,6 @@ stdenv.mkDerivation {
     license = licenses.gpl1;
     maintainers = with maintainers; [ uralbash ];
     platforms = platforms.linux;
-    broken = (versionOlder kernel.version "4.9");
+    broken = versionOlder kernel.version "4.9" || !versionOlder kernel.version "4.13";
   };
 }
diff --git a/pkgs/os-specific/linux/tp_smapi/default.nix b/pkgs/os-specific/linux/tp_smapi/default.nix
index 510f781e3936..4fc14a04eeab 100644
--- a/pkgs/os-specific/linux/tp_smapi/default.nix
+++ b/pkgs/os-specific/linux/tp_smapi/default.nix
@@ -18,11 +18,13 @@ stdenv.mkDerivation rec {
   makeFlags = [
     "KBASE=${kernel.dev}/lib/modules/${kernel.modDirVersion}"
     "SHELL=/bin/sh"
+    "HDAPS=1"
   ];
 
   installPhase = ''
     install -v -D -m 644 thinkpad_ec.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/thinkpad_ec.ko"
     install -v -D -m 644 tp_smapi.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/tp_smapi.ko"
+    install -v -D -m 644 hdaps.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/hdapsd.ko"
   '';
 
   dontStrip = true;
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index 1530d20667e3..25160fb0c958 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   name = "wpa_supplicant-${version}";
 
   src = fetchurl {
-    url = "http://hostap.epitest.fi/releases/${name}.tar.gz";
+    url = "https://w1.fi/releases/${name}.tar.gz";
     sha256 = "0l0l5gz3d5j9bqjsbjlfcv4w4jwndllp9fmyai4x9kg6qhs6v4xl";
   };
 
diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix
index 3393d0cf58b6..ecf9ee9d84a4 100644
--- a/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/pkgs/servers/http/apache-httpd/2.4.nix
@@ -5,6 +5,7 @@
 , ldapSupport ? true, openldap
 , libxml2Support ? true, libxml2
 , luaSupport ? false, lua5
+, fetchpatch
 }:
 
 let optional       = stdenv.lib.optional;
@@ -35,10 +36,19 @@ stdenv.mkDerivation rec {
     optional http2Support nghttp2 ++
     optional stdenv.isDarwin libiconv;
 
-  patchPhase = ''
+  prePatch = ''
     sed -i config.layout -e "s|installbuilddir:.*|installbuilddir: $dev/share/build|"
   '';
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2017-9798.patch";
+      url = "https://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/server/core.c?r1=1805223&r2=1807754&pathrev=1807754&view=patch";
+      sha256 = "00hbq5szgav91kwsc30jdjvgd3vbgm8n198yna8bcs33p434v25k";
+      stripLen = 3;
+     })
+  ];
+
   # Required for ‘pthread_cancel’.
   NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
 
diff --git a/pkgs/servers/matterbridge/default.nix b/pkgs/servers/matterbridge/default.nix
index ee895ba3fe4b..1fe07a74f839 100644
--- a/pkgs/servers/matterbridge/default.nix
+++ b/pkgs/servers/matterbridge/default.nix
@@ -8,7 +8,7 @@ buildGoPackage rec {
 
   src = fetchurl {
     url = "https://github.com/42wim/matterbridge/archive/v${version}.tar.gz";
-    sha256 = "0nn3929wyjdpkk8azp6wd6mkcg8h0jb1fjxm6jmb74xvdknrzv3k";
+    sha256 = "1br3rf500jdklzpxg1lkagglvmqshhligfkhndi8plg9hmzpd8qp";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/mattermost/matterircd.nix b/pkgs/servers/mattermost/matterircd.nix
index 549ec289d6bd..02a4e3bd66f7 100644
--- a/pkgs/servers/mattermost/matterircd.nix
+++ b/pkgs/servers/mattermost/matterircd.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   name = "matterircd-${version}";
-  version = "0.11.4";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "42wim";
     repo = "matterircd";
     rev = "v${version}";
-    sha256 = "0mnfay6bh9ls2fi3k96hmw4gr7q11lw4rd466lidi4jyjpc7q42x";
+    sha256 = "1fgpfyb78l1kl0kja2fjqc4ik1q869cmhx6xdmp9ff2qcqk22cj0";
   };
 
   goPackagePath = "github.com/42vim/matterircd";
diff --git a/pkgs/servers/mirrorbits/default.nix b/pkgs/servers/mirrorbits/default.nix
new file mode 100644
index 000000000000..98ac1534cf8a
--- /dev/null
+++ b/pkgs/servers/mirrorbits/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, fetchpatch
+, pkgconfig, zlib, geoip }:
+
+buildGoPackage rec {
+  name = "mirrorbits-${version}";
+  version = "0.4";
+  rev = "v${version}";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "etix";
+    repo = "mirrorbits";
+    sha256 = "11f9wczajba147qk5j73pxjrvlxkgr598sjvgjn2b8nxm49g2pan";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/etix/mirrorbits/commit/03a4e02214bdb7bb60240ddf25b887ccac5fb118.patch";
+      sha256 = "08332cfxmp2nsfdj2ymg3lxkav8h44f6cf2h6g9jkn03mkliblm5";
+    })
+  ];
+
+  postPatch = ''
+    rm -rf testing
+  '';
+
+  goPackagePath = "github.com/etix/mirrorbits";
+  goDeps = ./deps.nix;
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ zlib geoip ];
+
+  meta = {
+    description = "geographical download redirector for distributing files efficiently across a set of mirrors";
+    homepage = "https://github.com/etix/mirrorbits";
+    longDescription = ''
+      Mirrorbits is a geographical download redirector written in Go for
+      distributing files efficiently across a set of mirrors. It offers
+      a simple and economic way to create a Content Delivery Network
+      layer using a pure software stack. It is primarily designed for
+      the distribution of large-scale Open-Source projects with a lot
+      of traffic.
+    '';
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ fpletz ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/servers/mirrorbits/deps.nix b/pkgs/servers/mirrorbits/deps.nix
new file mode 100644
index 000000000000..373654126614
--- /dev/null
+++ b/pkgs/servers/mirrorbits/deps.nix
@@ -0,0 +1,66 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/etix/geoip";
+    fetch = {
+      type = "git";
+      url = "https://github.com/etix/geoip";
+      rev = "db8457352061099b2a1840c712b3223900216588";
+      sha256 = "1768237bngcjgw0s8wba0f4nw1xahg28cq2nd6vrbmhavd1ppim9";
+    };
+  }
+  {
+    goPackagePath = "github.com/etix/goftp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/etix/goftp";
+      rev = "0c13163a1028e83f0f1cce113dddd3900e935bc7";
+      sha256 = "15kwk57yk63j28d1lwrykc9nr7ickqgk2fpw4g0b0404b95l101k";
+    };
+  }
+  {
+    goPackagePath = "github.com/garyburd/redigo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/garyburd/redigo";
+      rev = "70e1b1943d4fc9c56791abaa6f4d1e727b9ab925";
+      sha256 = "1nw22r0vagmayjg51rz55yi9ppkd60ya0nzmp113mcz25vhxa0d0";
+    };
+  }
+  {
+    goPackagePath = "github.com/op/go-logging";
+    fetch = {
+      type = "git";
+      url = "https://github.com/op/go-logging";
+      rev = "970db520ece77730c7e4724c61121037378659d9";
+      sha256 = "1cpna2x5l071z1vrnk7zipdkka8dzwsjyx7m79xk0lr08rip0kcj";
+    };
+  }
+  {
+    goPackagePath = "github.com/youtube/vitess";
+    fetch = {
+      type = "git";
+      url = "https://github.com/youtube/vitess";
+      rev = "6cf14dbf97f28eebd37dc2bc36374852946336a8";
+      sha256 = "1g76q84wipyprn05brpjxf8xri87293r7nyf647crjy5d9k950lz";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/tylerb/graceful.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/tylerb/graceful.v1";
+      rev = "4654dfbb6ad53cb5e27f37d99b02e16c1872fbbb";
+      sha256 = "1qspbrzr3h6c89v75c99avn7iizkfnjh901wp650vyy0j3p6ydnd";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "eb3733d160e74a9c7e442f435eb3bea458e1d19f";
+      sha256 = "1srhvcaa9db3a6xj29mkjr5kg33y71pclrlx4vcwz5m1lgb5c7q6";
+    };
+  }
+]
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 594c0cfad179..f2df0e4f9c3d 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoPackage, fetchurl, fetchFromGitHub, phantomjs2 }:
 
 buildGoPackage rec {
-  version = "4.5.0";
+  version = "4.5.1";
   name = "grafana-v${version}";
   goPackagePath = "github.com/grafana/grafana";
 
@@ -9,12 +9,12 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "00n58v3a5amkj9r2nsbzmifbnch9rq1cpcqc5ws0bz3x004z43cs";
+    sha256 = "0w4ldihs6j508ql7c0v2wsysrlf3n93iikvjwsszj6g5a4bz2f93";
   };
 
   srcStatic = fetchurl {
     url = "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-${version}.linux-x64.tar.gz";
-    sha256 = "0fm69r1qb2fn8zwfsiwss8vc7nx0ql98pk0a3d2vjgpdyvk5jmw7";
+    sha256 = "0l96f03ghvadcba7yi22wsx16chff4ffjgnm2g3mcyigbhp57zk2";
   };
 
   preBuild = "export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/${goPackagePath}/Godeps/_workspace";
diff --git a/pkgs/servers/mqtt/mosquitto/default.nix b/pkgs/servers/mqtt/mosquitto/default.nix
index a136c94aa575..b0e05aa8bc0a 100644
--- a/pkgs/servers/mqtt/mosquitto/default.nix
+++ b/pkgs/servers/mqtt/mosquitto/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, openssl, libuuid, cmake, libwebsockets }:
+{ stdenv, fetchurl, openssl, libuuid, cmake, libwebsockets, c-ares, libuv }:
 
 stdenv.mkDerivation rec {
   pname = "mosquitto";
-  version = "1.4";
+  version = "1.4.14";
 
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = http://mosquitto.org/files/source/mosquitto-1.4.tar.gz;
-    sha256 = "1imw5ps0cqda41b574k8hgz9gdr8yy58f76fg8gw14pdnvf3l7sr";
+    url = "http://mosquitto.org/files/source/mosquitto-${version}.tar.gz";
+    sha256 = "1la2577h7hcyj7lq26vizj0sh2zmi9m7nbxjp3aalayi66kiysqm";
   };
 
-  buildInputs = [ openssl libuuid libwebsockets ]
+  buildInputs = [ openssl libuuid libwebsockets c-ares libuv ]
     ++ stdenv.lib.optional stdenv.isDarwin cmake;
 
   makeFlags = [
@@ -24,7 +24,6 @@ stdenv.mkDerivation rec {
       --replace "/usr/local" ""
     substituteInPlace config.mk \
       --replace "WITH_WEBSOCKETS:=no" "WITH_WEBSOCKETS:=yes"
-
   '';
 
   meta = {
diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix
index c4a616856ad2..786b142c7329 100644
--- a/pkgs/servers/nosql/arangodb/default.nix
+++ b/pkgs/servers/nosql/arangodb/default.nix
@@ -3,14 +3,14 @@
 
 let
 in stdenv.mkDerivation rec {
-  version = "3.2.2";
+  version = "3.2.3";
   name    = "arangodb-${version}";
 
   src = fetchFromGitHub {
     repo = "arangodb";
     owner = "arangodb";
     rev = "v${version}";
-    sha256 = "0f87r0fr3i09fnmwjqz6q1lwd5k32a2knrls0nv0zhqrma7sdy01";
+    sha256 = "1ndd7wxw2lz1ywnz3kp0pz1jmby2jakhl00kn8jwghcbipvnx9b5";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index 2666ddc5a43e..436023428ff5 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, lua }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.9";
+  version = "4.0.1";
   name = "redis-${version}";
 
   src = fetchurl {
     url = "http://download.redis.io/releases/${name}.tar.gz";
-    sha256 = "09pzb468jfps1w7bx2xpsvalj5r3q8hav7l3s10f91xjhflwzakf";
+    sha256 = "14bm8lkhylc93r4dgl7kkzzpw2xq7gr6w6h80n3jazqnx5mcsj90";
   };
 
   buildInputs = [ lua ];
diff --git a/pkgs/servers/radicale/default.nix b/pkgs/servers/radicale/default.nix
index ee38783a899e..9c8ad94f61cb 100644
--- a/pkgs/servers/radicale/default.nix
+++ b/pkgs/servers/radicale/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, python3Packages }:
 
 let
-  version = "2.1.2";
-  sha256 = "0gmbnvm17j0ilcnci1k2jh0vkbz5g8xlk9lgia5mlx790048hlm8";
+  version = "2.1.6";
+  sha256 = "1x76nvxjhjpagniyh075hqia4sl06972alnhi7628cjrq3pr4v9i";
 in
 
 python3Packages.buildPythonApplication {
diff --git a/pkgs/servers/sip/freeswitch/default.nix b/pkgs/servers/sip/freeswitch/default.nix
index 97e7a9daf658..9f7e2b297ee3 100644
--- a/pkgs/servers/sip/freeswitch/default.nix
+++ b/pkgs/servers/sip/freeswitch/default.nix
@@ -9,7 +9,11 @@ stdenv.mkDerivation rec {
     url = "http://files.freeswitch.org/freeswitch-releases/${name}.tar.bz2";
     sha256 = "071g7229shr9srwzspx29fcx3ccj3rwakkydpc4vdf1q3lldd2ld";
   };
-  postPatch = "patchShebangs libs/libvpx/build/make/rtcd.pl";
+  postPatch = ''
+    patchShebangs     libs/libvpx/build/make/rtcd.pl
+    substituteInPlace libs/libvpx/build/make/configure.sh \
+      --replace AS=\''${AS} AS=yasm
+  '';
 
   buildInputs = [
     openssl ncurses curl pkgconfig gnutls readline perl libjpeg
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index f4801d674e8a..b7f750508e8c 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -294,7 +294,9 @@ in rec {
       };
 
       darwin = super.darwin // {
-        inherit (darwin) dyld ICU Libsystem cctools libiconv;
+        inherit (darwin) dyld ICU Libsystem libiconv;
+      } // lib.optionalAttrs (super.targetPlatform == localSystem) {
+        inherit (darwin) cctools;
       };
     } // lib.optionalAttrs (super.targetPlatform == localSystem) {
       # Need to get rid of these when cross-compiling.
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 23a77719fa0a..eb8545c6999e 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -97,7 +97,7 @@ rec {
         {
           name = name + lib.optionalString
             (stdenv.hostPlatform != stdenv.buildPlatform)
-            stdenv.hostPlatform.config;
+            ("-" + stdenv.hostPlatform.config);
           builder = attrs.realBuilder or stdenv.shell;
           args = attrs.args or ["-e" (attrs.builder or ./default-builder.sh)];
           inherit stdenv;
diff --git a/pkgs/tools/audio/abcm2ps/default.nix b/pkgs/tools/audio/abcm2ps/default.nix
new file mode 100644
index 000000000000..6fad1f755aa9
--- /dev/null
+++ b/pkgs/tools/audio/abcm2ps/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pkgconfig, which, freetype, pango }:
+
+stdenv.mkDerivation rec {
+  name = "abcm2ps-${version}";
+  version = "8.13.15";
+
+  src = fetchFromGitHub {
+    owner = "leesavide";
+    repo = "abcm2ps";
+    rev = "v${version}";
+    sha256 = "04j1s4ycd8siidj7xn7s0vwm5sj0qrhqr5qzpila2g8kjc4ldxml";
+  };
+
+  patchPhase = ''
+    chmod +x configure
+  '';
+
+  configureFlags = [
+    "--INSTALL=install"
+  ];
+
+  buildInputs = [ which pkgconfig freetype pango ];
+
+  meta = with stdenv.lib; {
+    homepage = http://moinejf.free.fr/;
+    license = licenses.gpl3;
+    description = "abcm2ps is a command line program which converts ABC to music sheet in PostScript or SVG format";
+    maintainers = [ maintainers.dotlambda ];
+  };
+}
diff --git a/pkgs/tools/backup/obnam/default.nix b/pkgs/tools/backup/obnam/default.nix
index 06c44aa2cd96..5e1d1ab30687 100644
--- a/pkgs/tools/backup/obnam/default.nix
+++ b/pkgs/tools/backup/obnam/default.nix
@@ -2,11 +2,11 @@
 
 pythonPackages.buildPythonApplication rec {
   name = "obnam-${version}";
-  version = "1.21";
+  version = "1.22";
 
   src = fetchurl rec {
     url = "http://code.liw.fi/debian/pool/main/o/obnam/obnam_${version}.orig.tar.xz";
-    sha256 = "0qlipsq50hca71zc0dp1mg9zs12qm0sbblw7qfzl0hj6mk2rv1by";
+    sha256 = "0z3absbcpdk8zmmi6n3vwmwyv0pnzy7lp1rcsymb292p04alcn3x";
   };
 
   buildInputs = [ pythonPackages.sphinx attr ];
diff --git a/pkgs/tools/misc/esptool/default.nix b/pkgs/tools/misc/esptool/default.nix
index 04ba5788cd91..427ddea2f36e 100644
--- a/pkgs/tools/misc/esptool/default.nix
+++ b/pkgs/tools/misc/esptool/default.nix
@@ -1,19 +1,18 @@
-{ stdenv, fetchFromGitHub, python3 }:
+{ stdenv, fetchFromGitHub, python3, openssl }:
 
 python3.pkgs.buildPythonApplication rec {
   name = "esptool-${version}";
-  version = "1.3";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner = "espressif";
     repo = "esptool";
     rev = "v${version}";
-    sha256 = "0112fybkz4259gyvhcs18wa6938jp6w7clk66kpd0d1dg70lz1h6";
+    sha256 = "137p0kcscly95qpjzgx1yxm8k2wf5y9v3srvlhp2ajniirgv8ijv";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [ pyserial ];
-
-  doCheck = false; # FIXME: requires packaging some new deps
+  buildInputs = with python3.pkgs; [ flake8 ];
+  propagatedBuildInputs = with python3.pkgs; [ pyserial pyaes ecdsa openssl ];
 
   meta = with stdenv.lib; {
     description = "ESP8266 and ESP32 serial bootloader utility";
diff --git a/pkgs/tools/misc/fd/default.nix b/pkgs/tools/misc/fd/default.nix
index 047840c5a18d..c46566aeabe5 100644
--- a/pkgs/tools/misc/fd/default.nix
+++ b/pkgs/tools/misc/fd/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   name = "fd-${version}";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = "fd";
     rev = "v${version}";
-    sha256 = "0d6xfcsz2xxggk4k7xsjhhzrkd5lj6h36h97krwdxpj4n0w6py93";
+    sha256 = "0sv7iwl44a86n92i3mib2vlzd44q9ncif34yh1s0vqffai5s1rr6";
   };
 
-  depsSha256 = "1icfv3v2s4wgpnp2n74ws6xl449ilgdm08balxb0m1cq9ypy744f";
+  depsSha256 = "1irfx78k899qphzj8i8vr34pb6zaf9p5nx5c4zpgsrbknvn0ag5l";
 
   meta = {
     description = "A simple, fast and user-friendly alternative to find";
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index c52efc546af4..3af0c5435604 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -15,11 +15,11 @@ with stdenv.lib;
 buildPythonApplication rec {
 
   name = "youtube-dl-${version}";
-  version = "2017.08.27";
+  version = "2017.09.15";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${name}.tar.gz";
-    sha256 = "1xna277m1vqb6gl1w8mf5vr69c7kvmdsn8mrrqcrmhi7gvr9j03i";
+    sha256 = "1kw8pqzvhbpyxcz2jb692j4cgzd3vmd81mra09xvpzkq974jkx7f";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/ifstat-legacy/default.nix b/pkgs/tools/networking/ifstat-legacy/default.nix
new file mode 100644
index 000000000000..8b7f4e1c2a04
--- /dev/null
+++ b/pkgs/tools/networking/ifstat-legacy/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, autoreconfHook, net_snmp }:
+
+stdenv.mkDerivation rec {
+  name = "ifstat-legacy-${version}";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "http://gael.roualland.free.fr/ifstat/ifstat-${version}.tar.gz";
+    sha256 = "01zmv6vk5kh5xmd563xws8a1qnxjb6b6kv59yzz9r3rrghxhd6c5";
+  };
+
+  buildInputs = [ net_snmp ];
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    mv $out/bin/ifstat $out/bin/ifstat-legacy
+    mv $out/share/man/man1/ifstat.1 $out/share/man/man1/ifstat-legacy.1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Report network interfaces bandwith just like vmstat/iostat do for other system counters - legacy version";
+    homepage    = http://gael.roualland.free.fr/ifstat/;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms   = platforms.unix;
+    license     = licenses.gpl2;
+  };
+}
diff --git a/pkgs/tools/networking/openfortivpn/default.nix b/pkgs/tools/networking/openfortivpn/default.nix
index 3854d94f9093..48abd9a33742 100644
--- a/pkgs/tools/networking/openfortivpn/default.nix
+++ b/pkgs/tools/networking/openfortivpn/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, openssl, ppp }:
+{ stdenv, fetchFromGitHub, autoreconfHook, openssl, ppp, pkgconfig }:
 
 with stdenv.lib;
 
 let repo = "openfortivpn";
-    version = "1.2.0";
+    version = "1.5.0";
 
 in stdenv.mkDerivation {
   name = "${repo}-${version}";
@@ -12,10 +12,10 @@ in stdenv.mkDerivation {
     owner = "adrienverge";
     inherit repo;
     rev = "v${version}";
-    sha256 = "1a1l9f6zivfyxg9g2x7kzkvcyh84s7l6v0kimihhrd19zl0m41jn";
+    sha256 = "0fm0z73afghwmbshpsn5jfbyyfzz1v8s7scwycnvsk2cgv5f4r86";
   };
-
-  buildInputs = [ openssl ppp autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ openssl ppp ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error=unused-function";
 
diff --git a/pkgs/tools/package-management/niff/default.nix b/pkgs/tools/package-management/niff/default.nix
new file mode 100644
index 000000000000..8c6a72cf131e
--- /dev/null
+++ b/pkgs/tools/package-management/niff/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, python3
+, fetchFromGitHub
+}:
+
+let
+  pname = "niff";
+  version = "0.1";
+in stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "FRidh";
+    repo = "niff";
+    rev = "v${version}";
+    sha256 = "1ziv5r57jzg2qg61izvkkyq1bz4p5nb6652dzwykfj3l2r3db4bi";
+  };
+
+  buildInputs = [ python3 ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp niff $out/bin/niff
+  '';
+
+  meta = {
+    description = "A program that compares two Nix expressions and determines which attributes changed";
+    homepage = https://github.com/FRidh/niff;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.fridh ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/security/gnupg/22.nix b/pkgs/tools/security/gnupg/22.nix
index 7080cda57f41..87686cd52c12 100644
--- a/pkgs/tools/security/gnupg/22.nix
+++ b/pkgs/tools/security/gnupg/22.nix
@@ -15,11 +15,11 @@ assert guiSupport -> pinentry != null;
 stdenv.mkDerivation rec {
   name = "gnupg-${version}";
 
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "1rj538kp3wsdq7rhl8sy1wpwhlsbxcch0cwk64kgz8gpw05lllfl";
+    sha256 = "1yv2pwf3vhv9dpbf51fnm0wy03va1cg5r7qaz7rg75cwbgb0rmrl";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/security/keybase/default.nix b/pkgs/tools/security/keybase/default.nix
index 5294f32864d1..8f19b2577475 100644
--- a/pkgs/tools/security/keybase/default.nix
+++ b/pkgs/tools/security/keybase/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "keybase-${version}";
-  version = "1.0.28";
+  version = "1.0.30";
 
   goPackagePath = "github.com/keybase/client";
   subPackages = [ "go/keybase" ];
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner  = "keybase";
     repo   = "client";
     rev    = "v${version}";
-    sha256 = "03ldg7r0d9glccbx2xb3g3xyla82j5hkmmwfvzdqg43740l51mci";
+    sha256 = "0vivc71xfi4y3ydd29b17qxzi10r3a1ppmjjws6vrs0gz58bz1j8";
   };
 
   buildFlags = [ "-tags production" ];
diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix
index cce737af9c1e..b3c1a32f22be 100644
--- a/pkgs/tools/security/nmap/default.nix
+++ b/pkgs/tools/security/nmap/default.nix
@@ -28,6 +28,13 @@ in stdenv.mkDerivation rec {
 
   patches = ./zenmap.patch;
 
+  prePatch = optionalString stdenv.isDarwin ''
+    substituteInPlace libz/configure \
+        --replace /usr/bin/libtool ar \
+        --replace 'AR="libtool"' 'AR="ar"' \
+        --replace 'ARFLAGS="-o"' 'ARFLAGS="-r"'
+  '';
+
   configureFlags = []
     ++ optional (!pythonSupport) "--without-ndiff"
     ++ optional (!graphicalSupport) "--without-zenmap"
diff --git a/pkgs/tools/security/opensc/default.nix b/pkgs/tools/security/opensc/default.nix
index 302a5e251b03..2b606d505bdc 100644
--- a/pkgs/tools/security/opensc/default.nix
+++ b/pkgs/tools/security/opensc/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, zlib, readline, openssl
 , libiconv, pcsclite, libassuan, libXt
 , docbook_xsl, libxslt, docbook_xml_dtd_412
+, Carbon
 }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     autoreconfHook pkgconfig zlib readline openssl pcsclite libassuan
     libXt libxslt libiconv docbook_xml_dtd_412
-  ];
+  ] ++ stdenv.lib.optional stdenv.isDarwin Carbon;
 
   configureFlags = [
     "--enable-zlib"
@@ -37,8 +38,6 @@ stdenv.mkDerivation rec {
     "sysconfdir=$(out)/etc"
   ];
 
-  
-
   meta = with stdenv.lib; {
     description = "Set of libraries and utilities to access smart cards";
     homepage = https://github.com/OpenSC/OpenSC/wiki;
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 62438d1843bd..ad94192d14f5 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "tor-0.3.0.10";
+  name = "tor-0.3.1.7";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${name}.tar.gz";
-    sha256 = "1cas30wk4bhcivi6l9dj7wwlz6pc2jj883x1vijax3b8l54nx3ls";
+    sha256 = "13y0v4zfla0vziy9kkahmhrwylv32ianjikcr46mwbxvji4dvx8x";
   };
 
   outputs = [ "out" "geoip" ];
diff --git a/pkgs/tools/system/journalbeat/default.nix b/pkgs/tools/system/journalbeat/default.nix
index de4687a6a57f..5d60f4c7c5c3 100644
--- a/pkgs/tools/system/journalbeat/default.nix
+++ b/pkgs/tools/system/journalbeat/default.nix
@@ -7,7 +7,7 @@ let
 in buildGoPackage rec {
 
   name = "journalbeat-${version}";
-  version = "5.5.0";
+  version = "5.6.0";
 
   goPackagePath = "github.com/mheese/journalbeat";
 
@@ -22,7 +22,7 @@ in buildGoPackage rec {
     owner = "mheese";
     repo = "journalbeat";
     rev = "v${version}";
-    sha256 = "134n1kg6nx5yycn2cyldiayaqm8zps94hz4zfz9klp2jzq68m35y";
+    sha256 = "0b5yqzw1h945mwwyy7cza6bc7kzv3x1p9w2xkzmvr7rw3pd32r06";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix
index df04ef48730d..236474343b4a 100644
--- a/pkgs/tools/system/netdata/default.nix
+++ b/pkgs/tools/system/netdata/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, autoreconfHook, zlib, pkgconfig, libuuid }:
 
 stdenv.mkDerivation rec{
-  version = "1.5.0";
+  version = "1.7.0";
   name = "netdata-${version}";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "firehol";
     repo = "netdata";
-    sha256 = "1nsv0s11ai1kvig9xr4cz2f2lalvilpbfjpd8fdfqk9fak690zhz";
+    sha256 = "1fv01jnbgwbafsxavlji90zdqizn8m4nfg9ivc4sbi05j036bg6n";
   };
 
   buildInputs = [ autoreconfHook zlib pkgconfig libuuid ];
diff --git a/pkgs/tools/system/netdata/web_access.patch b/pkgs/tools/system/netdata/web_access.patch
index f1e4bd64cbb5..ae4d29185de4 100644
--- a/pkgs/tools/system/netdata/web_access.patch
+++ b/pkgs/tools/system/netdata/web_access.patch
@@ -1,7 +1,7 @@
 --- a/src/web_client.c.orig
 +++ b/src/web_client.c
-@@ -331,7 +331,7 @@
-         buffer_sprintf(w->response.data, "File '%s' does not exist, or is not accessible.", webfilename);
+@@ -302,7 +302,7 @@
+         buffer_strcat_htmlescape(w->response.data, webfilename);
          return 404;
      }
 -
@@ -9,8 +9,8 @@
      // check if the file is owned by expected user
      if(stat.st_uid != web_files_uid()) {
          error("%llu: File '%s' is owned by user %u (expected user %u). Access Denied.", w->id, webfilename, stat.st_uid, web_files_uid());
-@@ -345,7 +345,7 @@
-         buffer_sprintf(w->response.data, "Access to file '%s' is not permitted.", webfilename);
+@@ -320,7 +320,7 @@
+         buffer_strcat_htmlescape(w->response.data, webfilename);
          return 403;
      }
 -
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8d9365213b86..60a3bc8394df 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -29,8 +29,6 @@ with pkgs;
 
   callPackage_i686 = pkgsi686Linux.callPackage;
 
-  forcedNativePackages = if hostPlatform == buildPlatform then pkgs else buildPackages;
-
   # A stdenv capable of building 32-bit binaries.  On x86_64-linux,
   # it uses GCC compiled with multilib support; on i686-linux, it's
   # just the plain stdenv.
@@ -362,6 +360,8 @@ with pkgs;
 
   a2ps = callPackage ../tools/text/a2ps { };
 
+  abcm2ps = callPackage ../tools/audio/abcm2ps { };
+
   abcmidi = callPackage ../tools/audio/abcmidi { };
 
   abduco = callPackage ../tools/misc/abduco { };
@@ -3286,6 +3286,8 @@ with pkgs;
 
   miredo = callPackage ../tools/networking/miredo { };
 
+  mirrorbits = callPackage ../servers/mirrorbits { };
+
   mitmproxy = callPackage ../tools/networking/mitmproxy { };
 
   mjpegtoolsFull = callPackage ../tools/video/mjpegtools { };
@@ -3501,6 +3503,8 @@ with pkgs;
     wxGTK = wxGTK30;
   };
 
+  niff = callPackage ../tools/package-management/niff { };
+
   nifskope = callPackage ../tools/graphics/nifskope { };
 
   nilfs-utils = callPackage ../tools/filesystems/nilfs-utils {};
@@ -3632,7 +3636,9 @@ with pkgs;
 
   openresolv = callPackage ../tools/networking/openresolv { };
 
-  opensc = callPackage ../tools/security/opensc { };
+  opensc = callPackage ../tools/security/opensc {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
 
   openssh =
     callPackage ../tools/networking/openssh {
@@ -5374,18 +5380,30 @@ with pkgs;
   gcc = gcc6;
   gcc-unwrapped = gcc.cc;
 
+  gccStdenv = if (!stdenv.isDarwin) then stdenv else stdenv.override {
+    allowedRequisites = null;
+    cc = gcc;
+    # Include unwrapped binaries like AS, etc. and remove libcxx/libcxxabi
+    extraBuildInputs = [ stdenv.cc.cc ];
+  };
+
   wrapCCMulti = cc:
-    if system == "x86_64-linux" then lowPrio (
-      let
-        extraBuildCommands = ''
-          echo "dontMoveLib64=1" >> $out/nix-support/setup-hook
-        '';
-      in wrapCCWith glibc_multi extraBuildCommands (cc.cc.override {
-        stdenv = overrideCC stdenv (wrapCCWith glibc_multi "" cc.cc);
+    if system == "x86_64-linux" then lowPrio (wrapCCWith {
+      cc = cc.cc.override {
+        stdenv = overrideCC stdenv (wrapCCWith {
+          cc = cc.cc;
+          libc = glibc_multi;
+        });
         profiledCompiler = false;
         enableMultilib = true;
-      }))
-    else throw "Multilib ${cc.name} not supported on ‘${system}’";
+      };
+
+      libc = glibc_multi;
+
+      extraBuildCommands = ''
+        echo "dontMoveLib64=1" >> $out/nix-support/setup-hook
+      '';
+  }) else throw "Multilib ${cc.name} not supported on ‘${system}’";
 
   gcc_multi = wrapCCMulti gcc;
 
@@ -5412,35 +5430,31 @@ with pkgs;
       if targetPlatform.libc == "msvcrt" then __targetPackages.windows.mingw_w64_headers
       else if targetPlatform.libc == "libSystem" then darwin.xcode
       else null;
-    in wrapCCCross {
-      cc = forcedNativePackages.gcc.cc.override {
+    in wrapCCWith {
+      name = "gcc-cross-wrapper";
+      cc = gcc.cc.override {
         crossStageStatic = true;
         langCC = false;
         libcCross = libcCross1;
         enableShared = false;
         # Why is this needed?
-        inherit (forcedNativePackages) binutils;
       };
       libc = libcCross1;
-      inherit (forcedNativePackages) binutils;
   };
 
   # Only needed for mingw builds
-  gccCrossMingw2 = assert targetPlatform != buildPlatform; wrapCCCross {
+  gccCrossMingw2 = assert targetPlatform != buildPlatform; wrapCCWith {
+    name = "gcc-cross-wrapper";
     cc = gccCrossStageStatic.gcc;
     libc = windows.mingw_headers2;
-    inherit (forcedNativePackages) binutils;
   };
 
-  gccCrossStageFinal = assert targetPlatform != buildPlatform; wrapCCCross {
-    cc = forcedNativePackages.gcc.cc.override {
+  gccCrossStageFinal = assert targetPlatform != buildPlatform; wrapCCWith {
+    name = "gcc-cross-wrapper";
+    cc = gcc.cc.override {
       crossStageStatic = false;
-
-      # Why is this needed?
-      inherit (forcedNativePackages) binutils;
     };
     libc = libcCross;
-    inherit (forcedNativePackages) binutils;
   };
 
   gcc45 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.5 {
@@ -5861,7 +5875,7 @@ with pkgs;
 
   jikes = callPackage ../development/compilers/jikes { };
 
-  julia = callPackage ../development/compilers/julia {
+  julia_04 = callPackage ../development/compilers/julia {
     gmp = gmp6;
     openblas = openblasCompat;
     inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
@@ -5875,6 +5889,13 @@ with pkgs;
     llvm = llvm_38;
   };
 
+  julia_06 = callPackage ../development/compilers/julia/0.6.nix {
+    gmp = gmp6;
+    openblas = openblasCompat;
+    inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
+    llvm = llvm_39;
+  };
+
   julia-git = lowPrio (callPackage ../development/compilers/julia/git.nix {
     gmp = gmp6;
     openblas = openblasCompat;
@@ -5882,6 +5903,8 @@ with pkgs;
     llvm = llvm_39;
   });
 
+  julia = julia_06;
+
   kotlin = callPackage ../development/compilers/kotlin { };
 
   lazarus = callPackage ../development/compilers/fpc/lazarus.nix {
@@ -6183,19 +6206,24 @@ with pkgs;
 
   wla-dx = callPackage ../development/compilers/wla-dx { };
 
-  wrapCCWith = libc: extraBuildCommands: baseCC: ccWrapperFun {
-    nativeTools = stdenv.cc.nativeTools or false;
-    nativeLibc = stdenv.cc.nativeLibc or false;
+  wrapCCWith = { name ? "", cc, libc, extraBuildCommands ? "" }: ccWrapperFun {
+    nativeTools = targetPlatform == hostPlatform && stdenv.cc.nativeTools or false;
+    nativeLibc = targetPlatform == hostPlatform && stdenv.cc.nativeLibc or false;
     nativePrefix = stdenv.cc.nativePrefix or "";
-    cc = baseCC;
-    isGNU = baseCC.isGNU or false;
-    isClang = baseCC.isClang or false;
-    inherit libc extraBuildCommands;
+    noLibc = (libc == null);
+
+    isGNU = cc.isGNU or false;
+    isClang = cc.isClang or false;
+
+    inherit name cc libc extraBuildCommands;
   };
 
   ccWrapperFun = callPackage ../build-support/cc-wrapper;
 
-  wrapCC = wrapCCWith stdenv.cc.libc "";
+  wrapCC = cc: wrapCCWith {
+    inherit cc;
+    inherit (stdenv.cc) libc;
+  };
   # legacy version, used for gnat bootstrapping
   wrapGCC-old = baseGCC: callPackage ../build-support/gcc-wrapper-old {
     nativeTools = stdenv.cc.nativeTools or false;
@@ -6205,20 +6233,6 @@ with pkgs;
     libc = glibc;
   };
 
-  wrapCCCross =
-    {cc, libc, binutils, shell ? "", name ? "gcc-cross-wrapper"}:
-
-    forcedNativePackages.ccWrapperFun {
-      nativeTools = false;
-      nativeLibc = false;
-      noLibc = (libc == null);
-
-      isGNU = cc.isGNU or false;
-      isClang = cc.isClang or false;
-
-      inherit cc binutils libc shell name;
-    };
-
   # prolog
   yap = callPackage ../development/compilers/yap { };
 
@@ -7310,7 +7324,7 @@ with pkgs;
      cross_renaming: we should make all programs use pkgconfig as
      nativeBuildInput after the renaming.
      */
-  pkgconfig = forcedNativePackages.callPackage ../development/tools/misc/pkgconfig {
+  pkgconfig = callPackage ../development/tools/misc/pkgconfig {
     fetchurl = fetchurlBoot;
   };
   pkgconfigUpstream = lowPrio (pkgconfig.override { vanilla = true; });
@@ -11902,9 +11916,7 @@ with pkgs;
 
   blktrace = callPackage ../os-specific/linux/blktrace { };
 
-  bluez5 = callPackage ../os-specific/linux/bluez/bluez5.nix { };
-
-  bluez4 = callPackage ../os-specific/linux/bluez { };
+  bluez5 = callPackage ../os-specific/linux/bluez { };
 
   # Needed for LibreOffice
   bluez5_28 = lowPrio (callPackage ../os-specific/linux/bluez/bluez5_28.nix { });
@@ -14364,6 +14376,10 @@ with pkgs;
     withGtk = false;
     inherit (darwin.apple_sdk.frameworks) ApplicationServices SystemConfiguration;
   };
+
+  # the cli binary is actually called tshark and often packaged under this name
+  tshark = wireshark-cli;
+
   # The GTK UI is deprecated by upstream. You probably want the QT version.
   wireshark-gtk = wireshark-cli.override { withGtk = true; };
   wireshark-qt = wireshark-cli.override { withQt = true; };
@@ -15675,7 +15691,10 @@ with pkgs;
 
   osquery = callPackage ../tools/system/osquery { };
 
-  palemoon = callPackage ../applications/networking/browsers/palemoon { };
+  palemoon = callPackage ../applications/networking/browsers/palemoon {
+    # https://forum.palemoon.org/viewtopic.php?f=57&t=15296#p111146
+    stdenv = overrideCC stdenv gcc49;
+  };
 
   pamix = callPackage ../applications/audio/pamix { };
 
@@ -18336,6 +18355,8 @@ with pkgs;
 
   tini = callPackage ../applications/virtualization/tini {};
 
+  ifstat-legacy = callPackage ../tools/networking/ifstat-legacy { };
+
   isabelle = callPackage ../applications/science/logic/isabelle {
     polyml = polyml56;
     java = if stdenv.isLinux then jre else jdk;
@@ -19408,6 +19429,7 @@ with pkgs;
   # `recurseIntoAttrs` for sake of hydra, not nix-env
   tests = recurseIntoAttrs {
     cc-wrapper = callPackage ../test/cc-wrapper { };
+    cc-wrapper-gcc = callPackage ../test/cc-wrapper { stdenv = gccStdenv; };
     cc-wrapper-clang = callPackage ../test/cc-wrapper { stdenv = llvmPackages.stdenv; };
     cc-wrapper-libcxx = callPackage ../test/cc-wrapper { stdenv = llvmPackages.libcxxStdenv; };
     cc-wrapper-clang-39 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_39.stdenv; };
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index cccb378068d8..4af5a810fd06 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -172,7 +172,10 @@ let
       lwt = ocaml_lwt;
     };
 
-    csv = callPackage ../development/ocaml-modules/csv { };
+    csv =
+      if lib.versionAtLeast ocaml.version "4.2"
+      then callPackage ../development/ocaml-modules/csv { }
+      else callPackage ../development/ocaml-modules/csv/1.5.nix { };
 
     curses = callPackage ../development/ocaml-modules/curses { };
 
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 627c585ea8b6..83175a4ee4cc 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -13172,6 +13172,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TermAnimation = buildPerlPackage rec {
+    name = "Term-Animation-2.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KB/KBAUCOM/${name}.tar.gz";
+      sha256 = "7d5c3c2d4f9b657a8b1dce7f5e2cbbe02ada2e97c72f3a0304bf3c99d084b045";
+    };
+    propagatedBuildInputs = [ Curses ];
+    meta = {
+      description = "ASCII sprite animation framework";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Test = buildPerlPackage {
     name = "Test-1.26";
     src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index ccc9e4598437..2584b6f2810b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -743,29 +743,7 @@ in {
 
   python-slugify = callPackage ../development/python-modules/python-slugify { };
 
-  awesome-slugify = buildPythonPackage rec {
-    name = "awesome-slugify-${version}";
-    version = "1.6.5";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/a/awesome-slugify/${name}.tar.gz";
-      sha256 = "0wgxrhr8s5vk2xmcz9s1z1aml4ppawmhkbggl9rp94c747xc7pmv";
-    };
-
-    propagatedBuildInputs = with self; [ unidecode regex ];
-
-    checkPhase = ''
-      ${python.interpreter} -m unittest discover
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = "https://github.com/dimka665/awesome-slugify";
-      description = "Python flexible slugify function";
-      license = licenses.gpl3;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ abbradar ];
-    };
-  };
+  awesome-slugify = callPackage ../development/python-modules/awesome-slugify {};
 
   noise = buildPythonPackage rec {
     name = "noise-${version}";
@@ -3784,22 +3762,7 @@ in {
     };
   };
 
-  pydub = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "pydub";
-    version = "0.16.7";
-    src = pkgs.fetchurl {
-      url = "https://pypi.python.org/packages/05/e0/8d2496c8ef1d7f2c8ff625be3849f550da42809b862879a8fb137c6baa11/${name}.tar.gz";
-      sha256 = "10rmbvsld5fni9wsvb7la8lblrglsnzd2l1159rcxqf6b8k441dx";
-    };
-
-    meta = {
-      description = "Manipulate audio with a simple and easy high level interface.";
-      homepage    = "http://pydub.com/";
-      license     = licenses.mit;
-      platforms   = platforms.all;
-    };
-  };
+  pydub = callPackage ../development/python-modules/pydub {};
 
   pyjade = buildPythonPackage rec {
     name = "${pname}-${version}";
@@ -4886,22 +4849,7 @@ in {
 
   dill = callPackage ../development/python-modules/dill { };
 
-  discogs_client = buildPythonPackage rec {
-    name = "discogs-client-2.0.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/discogs-client/${name}.tar.gz";
-      sha256 = "0a3616a818dd9fa61a61c3d9731d176e9123130d1b1b97a6beee63b4c72306b7";
-    };
-
-    propagatedBuildInputs = with self; [ oauth2 requests ];
-
-    meta = {
-      description = "Official Python API client for Discogs";
-      license = licenses.bsd2;
-      homepage = "https://github.com/discogs/discogs_client";
-    };
-  };
+  discogs_client = callPackage ../development/python-modules/discogs_client { };
 
   dns = callPackage ../development/python-modules/dns { };
 
@@ -5123,33 +5071,7 @@ in {
     inherit (pkgs) fetchFromGitHub bluez;
   };
 
-  dyn = buildPythonPackage rec {
-    version = "1.5.0";
-    name = "dyn-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/d/dyn/${name}.tar.gz";
-      sha256 = "dc4b4b2a5d9d26f683230fd822641b39494df5fcbfa716281d126ea6425dd4c3";
-    };
-
-    buildInputs = with self; [
-      pytest
-      pytestcov
-      mock
-      pytestpep8
-      pytest_xdist
-      covCore
-      pkgs.glibcLocales
-    ];
-
-    LC_ALL="en_US.UTF-8";
-
-    meta = {
-      description = "Dynect dns lib";
-      homepage = "http://dyn.readthedocs.org/en/latest/intro.html";
-      license = licenses.bsd3;
-    };
-  };
+  dyn = callPackage ../development/python-modules/dyn { };
 
   easydict = callPackage ../development/python-modules/easydict { };
 
@@ -5329,38 +5251,7 @@ in {
     };
   };
 
-  eve = buildPythonPackage rec {
-    version = "0.6.1";
-    name = "Eve-${version}";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/E/Eve/${name}.tar.gz";
-      sha256 = "0wf1x8qixkld6liz5syqi8i9nrfrhq4lpmh0p9cy3jbkhk34km69";
-    };
-
-    propagatedBuildInputs = with self; [
-      cerberus
-      events
-      flask-pymongo
-      flask
-      itsdangerous
-      jinja2
-      markupsafe
-      pymongo_2_9_1
-      simplejson
-      werkzeug
-    ];
-
-    # tests call a running mongodb instance
-    doCheck = false;
-
-    meta = {
-      homepage = "http://python-eve.org/";
-      description = "Open source Python REST API framework designed for human beings";
-      license = licenses.bsd3;
-    };
-  };
-
+  eve = callPackage ../development/python-modules/eve {};
 
   eventlib = buildPythonPackage rec {
     pname = "python-eventlib";
@@ -7119,6 +7010,8 @@ in {
 
   podcastparser = callPackage ../development/python-modules/podcastparser { };
 
+  pomegranate = callPackage ../development/python-modules/pomegranate { };
+
   poppler-qt4 = buildPythonPackage rec {
     name = "poppler-qt4-${version}";
     version = "0.18.1";
@@ -10550,22 +10443,7 @@ in {
     };
   };
 
-  interruptingcow = buildPythonPackage rec {
-    name = "interruptingcow-${version}";
-    version = "0.6";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/i/interruptingcow/${name}.tar.gz";
-      sha256 = "1cv4pm2h0f87n9w4r3l1f96skwmng95sawn7j00ns0rdp1zshr9d";
-    };
-
-    meta = {
-      description = "A watchdog that interrupts long running code";
-      homepage = https://bitbucket.org/evzijst/interruptingcow;
-      license = licenses.mit;
-      maintainers = with maintainers; [ benley ];
-    };
-  };
+  interruptingcow = callPackage ../development/python-modules/interruptingcow {};
 
   iptools = buildPythonPackage rec {
     version = "0.6.1";
@@ -11376,36 +11254,9 @@ in {
     };
   };
 
-  logilab_common = buildPythonPackage rec {
-    name = "logilab-common-0.63.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/l/logilab-common/${name}.tar.gz";
-      sha256 = "1rr81zlmlgdma3s75i5c1l8q2m25v4ac41i9pniik4mhkc6a0fv0";
-    };
-
-    propagatedBuildInputs = with self; [ unittest2 six ];
-  };
-
-  logilab-constraint = buildPythonPackage rec {
-    name = "logilab-constraint-${version}";
-    version = "0.6.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/l/logilab-constraint/${name}.tar.gz";
-      sha256 = "1n0xim4ij1n4yvyqqvyc0wllhjs22szglsd5av0j8k2qmck4njcg";
-    };
-
-    propagatedBuildInputs = with self; [
-      logilab_common six
-    ];
-
-    meta = with stdenv.lib; {
-      description = "logilab-database provides some classes to make unified access to different";
-      homepage = "http://www.logilab.org/project/logilab-database";
-    };
-  };
+  logilab_common = callPackage ../development/python-modules/logilab/common.nix {};
 
+  logilab-constraint = callPackage ../development/python-modules/logilab/constraint.nix {};
 
   lxml = buildPythonPackage ( rec {
     name = "lxml-3.8.0";
@@ -17968,22 +17819,7 @@ in {
     };
   };
 
-  pymongo = buildPythonPackage rec {
-    name = "pymongo-3.0.3";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pymongo/${name}.tar.gz";
-      sha256 = "3c6b2317f8031bc1e200fd1ea35f00a96f4569e3f3f220a5e66ab6227d96ccaf";
-    };
-
-    doCheck = false;
-
-    meta = {
-      homepage = "http://github.com/mongodb/mongo-python-driver";
-      license = licenses.asl20;
-      description = "Python driver for MongoDB ";
-    };
-  };
+  pymongo = callPackage ../development/python-modules/pymongo {};
 
   pymongo_2_9_1 = buildPythonPackage rec {
     name = "pymongo-2.9.1";
@@ -18346,6 +18182,8 @@ in {
     };
   };
 
+  radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud {};
+
   recaptcha_client = buildPythonPackage rec {
     name = "recaptcha-client-1.0.6";
 
@@ -25160,65 +24998,7 @@ EOF
     };
   };
 
-  trollius = buildPythonPackage rec {
-    version = "1.0.4";
-    name = "trollius-${version}";
-    disabled = isPy34;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/trollius/${name}.tar.gz";
-      sha256 = "8884cae4ec6a2d593abcffd5e700626ad4618f42b11beb2b75998f2e8247de76";
-    };
-
-    buildInputs = with self; [ mock ]
-      ++ optional isPy26 unittest2;
-
-    propagatedBuildInputs = with self; []
-      ++ optional isPy26 ordereddict
-      ++ optional (isPy26 || isPy27 || isPyPy) futures;
-
-    # Some of the tests fail on darwin with `error: AF_UNIX path too long'
-    # because of the *long* path names for sockets
-    patchPhase = optionalString stdenv.isDarwin ''
-      sed -i -e "s|test_create_ssl_unix_connection|skip_test_create_ssl_unix_connection|" tests/test_events.py
-      sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|" tests/test_events.py
-      sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|" tests/test_events.py
-      sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_existing_path_nonsock|skip_test_create_unix_server_existing_path_nonsock|" tests/test_unix_events.py
-      sed -i -e "s|test_create_unix_server_existing_path_sock|skip_test_create_unix_server_existing_path_sock|" tests/test_unix_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|" tests/test_events.py
-      sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|" tests/test_events.py
-      sed -i -e "s|test_open_unix_connection_error|skip_test_open_unix_connection_error|" tests/test_streams.py
-      sed -i -e "s|test_open_unix_connection_no_loop_ssl|skip_test_open_unix_connection_no_loop_ssl|" tests/test_streams.py
-      sed -i -e "s|test_open_unix_connection|skip_test_open_unix_connection|" tests/test_streams.py
-      sed -i -e "s|test_pause_reading|skip_test_pause_reading|" tests/test_subprocess.py
-      sed -i -e "s|test_read_pty_output|skip_test_read_pty_output|" tests/test_events.py
-      sed -i -e "s|test_start_unix_server|skip_test_start_unix_server|" tests/test_streams.py
-      sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|" tests/test_events.py
-      sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|" tests/test_events.py
-      sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|" tests/test_events.py
-      sed -i -e "s|test_write_pty|skip_test_write_pty|" tests/test_events.py
-    '' + optionalString isPy26 ''
-      sed -i -e "s|test_env_var_debug|skip_test_env_var_debug|" tests/test_tasks.py
-    '';
-
-    meta = {
-      description = "Port of the Tulip project (asyncio module, PEP 3156) on Python 2";
-      homepage = "https://bitbucket.org/enovance/trollius";
-      license = licenses.asl20;
-      maintainers = with maintainers; [ garbas ];
-    };
-  };
+  trollius = callPackage ../development/python-modules/trollius {};
 
   neovim = buildPythonPackage rec {
     version = "0.1.13";
diff --git a/pkgs/top-level/splice.nix b/pkgs/top-level/splice.nix
index 43951100de3d..44a46b7b6929 100644
--- a/pkgs/top-level/splice.nix
+++ b/pkgs/top-level/splice.nix
@@ -43,8 +43,9 @@ let
           // (lib.optionalAttrs (buildPkgs ? ${name}) { nativeDrv = buildValue; })
           // (lib.optionalAttrs (runPkgs ? ${name}) { crossDrv = runValue; });
         # Get the set of outputs of a derivation
-        getOutputs = value:
-          lib.genAttrs (value.outputs or []) (output: value.${output});
+        getOutputs = value: lib.genAttrs
+          (value.outputs or (lib.optional (value ? out) "out"))
+          (output: value.${output});
       in
         # Certain *Cross derivations will fail assertions, but we need their
         # nativeDrv. We are assuming anything that fails to evaluate is an