summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/CONTRIBUTING.md9
-rw-r--r--doc/languages-frameworks/python.section.md77
-rw-r--r--lib/attrsets.nix2
-rw-r--r--lib/modules.nix3
-rw-r--r--lib/sources.nix10
-rw-r--r--lib/types.nix2
-rw-r--r--maintainers/maintainer-list.nix46
-rw-r--r--nixos/doc/manual/configuration/declarative-packages.xml6
-rw-r--r--nixos/doc/manual/release-notes/rl-2003.xml44
-rw-r--r--nixos/lib/test-driver/test-driver.py22
-rw-r--r--nixos/modules/hardware/opengl.nix6
-rw-r--r--nixos/modules/installer/tools/nixos-rebuild.sh16
-rw-r--r--nixos/modules/module-list.nix5
-rw-r--r--nixos/modules/programs/liboping.nix22
-rw-r--r--nixos/modules/programs/traceroute.nix26
-rw-r--r--nixos/modules/programs/way-cooler.nix78
-rw-r--r--nixos/modules/rename.nix7
-rw-r--r--nixos/modules/services/amqp/rabbitmq.nix5
-rw-r--r--nixos/modules/services/cluster/kubernetes/pki.nix10
-rw-r--r--nixos/modules/services/continuous-integration/buildkite-agent.nix98
-rw-r--r--nixos/modules/services/continuous-integration/hydra/default.nix4
-rw-r--r--nixos/modules/services/networking/corerad.nix46
-rw-r--r--nixos/modules/services/networking/matterbridge.nix2
-rw-r--r--nixos/modules/services/networking/syncthing.nix18
-rw-r--r--nixos/modules/services/networking/zerotierone.nix10
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/default.nix3
-rw-r--r--nixos/modules/services/web-servers/nginx/gitweb.nix53
-rw-r--r--nixos/modules/services/web-servers/unit/default.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome3.nix12
-rw-r--r--nixos/modules/services/x11/display-managers/gdm.nix4
-rw-r--r--nixos/modules/services/x11/hardware/multitouch.nix94
-rw-r--r--nixos/modules/services/x11/unclutter.nix7
-rw-r--r--nixos/modules/system/boot/networkd.nix40
-rw-r--r--nixos/modules/system/boot/systemd-lib.nix8
-rw-r--r--nixos/tests/all-tests.nix2
-rw-r--r--nixos/tests/buildkite-agent.nix36
-rw-r--r--nixos/tests/certmgr.nix12
-rw-r--r--nixos/tests/corerad.nix71
-rw-r--r--nixos/tests/elk.nix8
-rw-r--r--pkgs/applications/audio/bshapr/default.nix4
-rw-r--r--pkgs/applications/audio/bslizr/default.nix4
-rw-r--r--pkgs/applications/audio/distrho/default.nix6
-rw-r--r--pkgs/applications/audio/ecasound/default.nix4
-rw-r--r--pkgs/applications/audio/giada/default.nix4
-rw-r--r--pkgs/applications/audio/ingen/default.nix17
-rw-r--r--pkgs/applications/audio/jalv/default.nix8
-rw-r--r--pkgs/applications/audio/noise-repellent/default.nix6
-rw-r--r--pkgs/applications/audio/rofi-mpd/default.nix6
-rw-r--r--pkgs/applications/audio/rosegarden/default.nix3
-rw-r--r--pkgs/applications/blockchains/wasabiwallet/default.nix4
-rw-r--r--pkgs/applications/editors/bviplus/default.nix4
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix2
-rw-r--r--pkgs/applications/editors/focuswriter/default.nix4
-rw-r--r--pkgs/applications/editors/kakoune/default.nix4
-rw-r--r--pkgs/applications/editors/quartus-prime/default.nix119
-rw-r--r--pkgs/applications/editors/quartus-prime/vsim.patch11
-rw-r--r--pkgs/applications/editors/texstudio/default.nix12
-rw-r--r--pkgs/applications/editors/uberwriter/default.nix54
-rw-r--r--pkgs/applications/graphics/apngasm/2.nix35
-rw-r--r--pkgs/applications/graphics/apngasm/default.nix26
-rw-r--r--pkgs/applications/graphics/avocode/default.nix4
-rw-r--r--pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--pkgs/applications/graphics/gthumb/default.nix4
-rw-r--r--pkgs/applications/graphics/imlibsetroot/default.nix2
-rw-r--r--pkgs/applications/graphics/krop/default.nix7
-rw-r--r--pkgs/applications/graphics/renderdoc/default.nix4
-rw-r--r--pkgs/applications/graphics/sxiv/default.nix14
-rw-r--r--pkgs/applications/graphics/tesseract/tesseract4.nix4
-rw-r--r--pkgs/applications/kde/default.nix2
-rw-r--r--pkgs/applications/kde/kmahjongg.nix19
-rw-r--r--pkgs/applications/kde/libkmahjongg.nix18
-rw-r--r--pkgs/applications/misc/bashSnippets/default.nix4
-rw-r--r--pkgs/applications/misc/calibre/default.nix86
-rw-r--r--pkgs/applications/misc/cbatticon/default.nix4
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix4
-rw-r--r--pkgs/applications/misc/girara/default.nix4
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--pkgs/applications/misc/ikiwiki/default.nix13
-rw-r--r--pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch37
-rw-r--r--pkgs/applications/misc/keepassx/community.nix4
-rw-r--r--pkgs/applications/misc/marktext/default.nix35
-rw-r--r--pkgs/applications/misc/nnn/default.nix12
-rw-r--r--pkgs/applications/misc/notejot/default.nix4
-rw-r--r--pkgs/applications/misc/qolibri/default.nix2
-rw-r--r--pkgs/applications/misc/syncthingtray/default.nix4
-rw-r--r--pkgs/applications/misc/tmatrix/default.nix19
-rw-r--r--pkgs/applications/misc/todoist/default.nix4
-rw-r--r--pkgs/applications/misc/toot/default.nix4
-rw-r--r--pkgs/applications/misc/vit/default.nix2
-rw-r--r--pkgs/applications/misc/xmrig/default.nix4
-rw-r--r--pkgs/applications/misc/xygrib/default.nix9
-rw-r--r--pkgs/applications/networking/browsers/captive-browser/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix2
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix770
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix8
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/fluxctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/luigi/default.nix11
-rw-r--r--pkgs/applications/networking/flexget/default.nix5
-rw-r--r--pkgs/applications/networking/gns3/default.nix15
-rw-r--r--pkgs/applications/networking/gns3/gui.nix29
-rw-r--r--pkgs/applications/networking/gns3/server.nix28
-rw-r--r--pkgs/applications/networking/instant-messengers/psi-plus/default.nix18
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix91
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/spectral/default.nix18
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix138
-rw-r--r--pkgs/applications/networking/irc/tiny/default.nix35
-rw-r--r--pkgs/applications/networking/p2p/magnetico/default.nix4
-rw-r--r--pkgs/applications/networking/protonvpn-cli-ng/default.nix34
-rw-r--r--pkgs/applications/networking/seafile-client/default.nix22
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix4
-rw-r--r--pkgs/applications/networking/sync/onedrive/default.nix30
-rw-r--r--pkgs/applications/office/atlassian-cli/default.nix4
-rw-r--r--pkgs/applications/office/csv2odf/default.nix28
-rw-r--r--pkgs/applications/office/kmymoney/default.nix4
-rw-r--r--pkgs/applications/office/paperless/default.nix2
-rw-r--r--pkgs/applications/office/skanlite/default.nix6
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix12
-rw-r--r--pkgs/applications/radio/flrig/default.nix4
-rw-r--r--pkgs/applications/radio/svxlink/default.nix71
-rw-r--r--pkgs/applications/radio/urh/default.nix4
-rw-r--r--pkgs/applications/science/astronomy/gildas/default.nix22
-rw-r--r--pkgs/applications/science/astronomy/gildas/imager-py3.patch12
-rw-r--r--pkgs/applications/science/biology/samtools/default.nix4
-rw-r--r--pkgs/applications/science/logic/cubicle/default.nix2
-rw-r--r--pkgs/applications/search/doodle/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/hub/default.nix4
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix1
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix4
-rw-r--r--pkgs/applications/video/mpv/default.nix2
-rw-r--r--pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch33
-rw-r--r--pkgs/applications/video/shotcut/default.nix2
-rw-r--r--pkgs/applications/virtualization/docker-compose/default.nix4
-rw-r--r--pkgs/applications/virtualization/open-vm-tools/default.nix4
-rw-r--r--pkgs/applications/window-managers/i3/layout-manager.nix6
-rw-r--r--pkgs/applications/window-managers/way-cooler/bar.diff37
-rw-r--r--pkgs/applications/window-managers/way-cooler/crates-io.nix3004
-rw-r--r--pkgs/applications/window-managers/way-cooler/default.nix113
-rw-r--r--pkgs/applications/window-managers/way-cooler/way-cooler.nix314
-rw-r--r--pkgs/applications/window-managers/way-cooler/wc-bg.nix1372
-rw-r--r--pkgs/applications/window-managers/way-cooler/wc-grab.nix794
-rw-r--r--pkgs/applications/window-managers/way-cooler/wc-lock.nix1479
-rw-r--r--pkgs/applications/window-managers/way-cooler/wlc.nix39
-rw-r--r--pkgs/build-support/docker-slim/default.nix67
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix4
-rw-r--r--pkgs/build-support/rust/build-rust-crate/build-crate.nix3
-rw-r--r--pkgs/build-support/rust/build-rust-crate/test/default.nix33
-rw-r--r--pkgs/data/fonts/jetbrains-mono/default.nix27
-rw-r--r--pkgs/data/fonts/sudo/default.nix4
-rw-r--r--pkgs/data/icons/bibata-cursors/default.nix13
-rw-r--r--pkgs/data/misc/hackage/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-desktop/default.nix76
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-menus/default.nix40
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch48
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix111
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-translations/default.nix31
-rw-r--r--pkgs/desktops/cinnamon/cjs/default.nix84
-rw-r--r--pkgs/desktops/cinnamon/cjs/fix-werror.patch39
-rw-r--r--pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix95
-rw-r--r--pkgs/desktops/cinnamon/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-notes/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/dconf-editor/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/games/four-in-a-row/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-klotski/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-taquin/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/iagno/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-code/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-terminal/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/default.nix4
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix4
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix8
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix4
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex6
-rw-r--r--pkgs/development/compilers/bs-platform/build-bs-platform.nix5
-rw-r--r--pkgs/development/compilers/computecpp/default.nix52
-rw-r--r--pkgs/development/compilers/dotnet/buildDotnet.nix67
-rw-r--r--pkgs/development/compilers/dotnet/combinePackages.nix20
-rw-r--r--pkgs/development/compilers/dotnet/default.nix68
-rw-r--r--pkgs/development/compilers/dotnet/sdk/default.nix54
-rw-r--r--pkgs/development/compilers/ghc/8.8.2.nix6
-rw-r--r--pkgs/development/compilers/ocaml/4.10.nix6
-rw-r--r--pkgs/development/compilers/purescript/purescript/default.nix8
-rw-r--r--pkgs/development/compilers/swift/default.nix160
-rw-r--r--pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch16
-rw-r--r--pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch20
-rw-r--r--pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch10
-rw-r--r--pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch16
-rw-r--r--pkgs/development/compilers/swift/patches/glibc-arch-headers.patch2
-rw-r--r--pkgs/development/compilers/swift/patches/libdispatch-fortify-fix.patch13
-rw-r--r--pkgs/development/compilers/swift/patches/llvm-include-dirs.patch13
-rw-r--r--pkgs/development/compilers/swift/patches/llvm-toolchain-dir.patch24
-rw-r--r--pkgs/development/compilers/swift/purity.patch16
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix17
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml53
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix148
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix1838
-rw-r--r--pkgs/development/haskell-modules/make-package-set.nix82
-rw-r--r--pkgs/development/interpreters/quickjs/default.nix2
-rw-r--r--pkgs/development/interpreters/wasmer/default.nix40
-rw-r--r--pkgs/development/libraries/assimp/default.nix4
-rw-r--r--pkgs/development/libraries/audio/libmysofa/default.nix4
-rw-r--r--pkgs/development/libraries/audio/lilv/default.nix4
-rw-r--r--pkgs/development/libraries/audio/lv2/unstable.nix23
-rw-r--r--pkgs/development/libraries/audio/raul/default.nix12
-rw-r--r--pkgs/development/libraries/audio/suil/default.nix4
-rw-r--r--pkgs/development/libraries/blitz/blitz-gcc47.patch33
-rw-r--r--pkgs/development/libraries/blitz/blitz-testsuite-stencil-et.patch13
-rw-r--r--pkgs/development/libraries/blitz/default.nix81
-rw-r--r--pkgs/development/libraries/cpp-utilities/default.nix4
-rw-r--r--pkgs/development/libraries/dyncall/default.nix10
-rw-r--r--pkgs/development/libraries/faudio/default.nix4
-rw-r--r--pkgs/development/libraries/fplll/default.nix4
-rw-r--r--pkgs/development/libraries/ganv/default.nix13
-rw-r--r--pkgs/development/libraries/gcab/default.nix4
-rw-r--r--pkgs/development/libraries/gjs/default.nix4
-rw-r--r--pkgs/development/libraries/grilo/default.nix4
-rw-r--r--pkgs/development/libraries/hpx/default.nix4
-rw-r--r--pkgs/development/libraries/leatherman/default.nix4
-rw-r--r--pkgs/development/libraries/libamqpcpp/default.nix4
-rw-r--r--pkgs/development/libraries/libevdevplus/default.nix2
-rw-r--r--pkgs/development/libraries/libimobiledevice/default.nix6
-rw-r--r--pkgs/development/libraries/liblinear/default.nix14
-rw-r--r--pkgs/development/libraries/libsixel/default.nix10
-rw-r--r--pkgs/development/libraries/olm/default.nix14
-rw-r--r--pkgs/development/libraries/openssl/default.nix8
-rw-r--r--pkgs/development/libraries/sentencepiece/default.nix4
-rw-r--r--pkgs/development/libraries/trompeloeil/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/janestreet/0.12.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/sedlex/2.nix69
-rw-r--r--pkgs/development/ocaml-modules/stdint/default.nix8
-rw-r--r--pkgs/development/python-modules/authheaders/default.nix22
-rw-r--r--pkgs/development/python-modules/avro-python3/default.nix4
-rw-r--r--pkgs/development/python-modules/binwalk/default.nix25
-rw-r--r--pkgs/development/python-modules/coreapi/default.nix44
-rw-r--r--pkgs/development/python-modules/coreschema/default.nix34
-rw-r--r--pkgs/development/python-modules/dash-core-components/default.nix24
-rw-r--r--pkgs/development/python-modules/dash-html-components/default.nix24
-rw-r--r--pkgs/development/python-modules/dash-renderer/default.nix24
-rw-r--r--pkgs/development/python-modules/dash-table/default.nix24
-rw-r--r--pkgs/development/python-modules/dash/default.nix63
-rw-r--r--pkgs/development/python-modules/denonavr/default.nix29
-rw-r--r--pkgs/development/python-modules/django/2_1.nix38
-rw-r--r--pkgs/development/python-modules/drf-yasg/default.nix40
-rw-r--r--pkgs/development/python-modules/flask-sockets/default.nix37
-rw-r--r--pkgs/development/python-modules/fluidasserts/default.nix167
-rw-r--r--pkgs/development/python-modules/flux-led/default.nix24
-rw-r--r--pkgs/development/python-modules/getmac/default.nix26
-rw-r--r--pkgs/development/python-modules/itypes/default.nix31
-rw-r--r--pkgs/development/python-modules/mailmanclient/default.nix3
-rw-r--r--pkgs/development/python-modules/mixpanel/default.nix50
-rw-r--r--pkgs/development/python-modules/mysql-connector/default.nix18
-rw-r--r--pkgs/development/python-modules/nest-asyncio/default.nix5
-rw-r--r--pkgs/development/python-modules/plexapi/default.nix26
-rw-r--r--pkgs/development/python-modules/plexauth/default.nix31
-rw-r--r--pkgs/development/python-modules/plexwebsocket/default.nix31
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix20
-rw-r--r--pkgs/development/python-modules/pycurl/default.nix4
-rw-r--r--pkgs/development/python-modules/pydicom/default.nix28
-rw-r--r--pkgs/development/python-modules/pyezminc/default.nix33
-rw-r--r--pkgs/development/python-modules/pyicloud/default.nix51
-rw-r--r--pkgs/development/python-modules/pypandoc/default.nix34
-rw-r--r--pkgs/development/python-modules/runway-python/default.nix15
-rw-r--r--pkgs/development/python-modules/rxv/default.nix40
-rw-r--r--pkgs/development/python-modules/snitun/default.nix5
-rw-r--r--pkgs/development/python-modules/solo-python/default.nix4
-rw-r--r--pkgs/development/python-modules/sysv_ipc/default.nix22
-rw-r--r--pkgs/development/tools/analysis/coz/default.nix4
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix12
-rw-r--r--pkgs/development/tools/build-managers/rebar/default.nix4
-rw-r--r--pkgs/development/tools/buildah/default.nix10
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-agent/2.x.nix12
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-agent/3.x.nix15
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-agent/default.nix48
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--pkgs/development/tools/database/pg_checksums/default.nix37
-rw-r--r--pkgs/development/tools/dive/default.nix6
-rw-r--r--pkgs/development/tools/geckodriver/cargo-lock.patch1846
-rw-r--r--pkgs/development/tools/geckodriver/default.nix29
-rw-r--r--pkgs/development/tools/git-quick-stats/default.nix4
-rw-r--r--pkgs/development/tools/kind/default.nix4
-rw-r--r--pkgs/development/tools/kind/deps.nix24
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix4
-rw-r--r--pkgs/development/tools/misc/elfinfo/default.nix4
-rw-r--r--pkgs/development/tools/misc/pwndbg/default.nix4
-rw-r--r--pkgs/development/tools/misc/reviewdog/default.nix6
-rw-r--r--pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch139
-rw-r--r--pkgs/development/tools/ocaml/dune/2.nix4
-rw-r--r--pkgs/development/tools/ocaml/opam/default.nix14
-rwxr-xr-xpkgs/development/tools/ocaml/opam/opam.nix.pl6
-rw-r--r--pkgs/development/tools/purescript/spago/spago.nix6
-rw-r--r--pkgs/development/tools/pypi2nix/default.nix4
-rw-r--r--pkgs/development/tools/rust/cargo-bloat/default.nix4
-rw-r--r--pkgs/development/tools/rust/cargo-crev/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-make/Cargo.lock199
-rw-r--r--pkgs/development/tools/rust/cargo-make/default.nix6
-rw-r--r--pkgs/development/tools/wabt/default.nix20
-rw-r--r--pkgs/development/tools/wabt/version.patch28
-rw-r--r--pkgs/games/crispy-doom/default.nix4
-rw-r--r--pkgs/games/nudoku/default.nix31
-rw-r--r--pkgs/games/quakespasm/vulkan.nix4
-rw-r--r--pkgs/games/stockfish/default.nix4
-rw-r--r--pkgs/games/teeworlds/default.nix8
-rw-r--r--pkgs/misc/drivers/hplip/default.nix13
-rw-r--r--pkgs/misc/drivers/hplip/image-processor.patch59
-rw-r--r--pkgs/misc/emulators/wine/sources.nix28
-rw-r--r--pkgs/misc/scream-receivers/default.nix6
-rw-r--r--pkgs/misc/seafile-shared/default.nix35
-rw-r--r--pkgs/misc/vim-plugins/generated.nix55
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names5
-rw-r--r--pkgs/misc/vscode-extensions/python/default.nix6
-rw-r--r--pkgs/os-specific/linux/evdi/default.nix4
-rw-r--r--pkgs/os-specific/linux/facetimehd/default.nix6
-rw-r--r--pkgs/os-specific/linux/firejail/default.nix6
-rw-r--r--pkgs/os-specific/linux/health-check/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix4
-rw-r--r--pkgs/os-specific/linux/syslinux/default.nix32
-rw-r--r--pkgs/os-specific/linux/syslinux/perl-deps.patch81
-rw-r--r--pkgs/os-specific/linux/unstick/default.nix26
-rw-r--r--pkgs/os-specific/linux/v4l2loopback/default.nix4
-rw-r--r--pkgs/os-specific/linux/xf86-input-mtrack/default.nix42
-rw-r--r--pkgs/os-specific/linux/xf86-input-multitouch/default.nix48
-rw-r--r--pkgs/os-specific/linux/zenpower/default.nix32
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix33
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix2
-rw-r--r--pkgs/servers/home-assistant/esphome.nix17
-rw-r--r--pkgs/servers/http/apache-httpd/2.4.nix1
-rw-r--r--pkgs/servers/http/jetty/default.nix4
-rw-r--r--pkgs/servers/http/lwan/default.nix4
-rw-r--r--pkgs/servers/http/unit/default.nix9
-rw-r--r--pkgs/servers/http/unit/drop_cap.patch79
-rw-r--r--pkgs/servers/jellyfin/default.nix6
-rw-r--r--pkgs/servers/mail/mailman/core.nix47
-rw-r--r--pkgs/servers/mail/mailman/default.nix57
-rw-r--r--pkgs/servers/mail/mailman/hyperkitty.nix23
-rw-r--r--pkgs/servers/mail/mailman/postorius.nix16
-rw-r--r--pkgs/servers/mail/mailman/web.nix3
-rw-r--r--pkgs/servers/mautrix-whatsapp/default.nix6
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix6
-rw-r--r--pkgs/servers/nginx-sso/default.nix4
-rw-r--r--pkgs/servers/search/groonga/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/timescaledb.nix4
-rw-r--r--pkgs/servers/tt-rss/theme-feedly/default.nix4
-rw-r--r--pkgs/servers/web-apps/matomo/default.nix4
-rw-r--r--pkgs/servers/web-apps/shaarli/material-theme.nix5
-rw-r--r--pkgs/servers/zoneminder/default.nix4
-rw-r--r--pkgs/shells/fish/default.nix10
-rw-r--r--pkgs/shells/mrsh/default.nix4
-rw-r--r--pkgs/shells/oil/default.nix4
-rw-r--r--pkgs/shells/zsh/zsh-bd/default.nix31
-rw-r--r--pkgs/shells/zsh/zsh-powerlevel10k/default.nix6
-rw-r--r--pkgs/shells/zsh/zsh-you-should-use/default.nix4
-rw-r--r--pkgs/test/default.nix2
-rw-r--r--pkgs/test/haskell-shellFor/default.nix24
-rw-r--r--pkgs/tools/X11/jumpapp/default.nix4
-rw-r--r--pkgs/tools/X11/xcape/default.nix2
-rw-r--r--pkgs/tools/X11/xlayoutdisplay/default.nix4
-rw-r--r--pkgs/tools/X11/xsecurelock/default.nix4
-rw-r--r--pkgs/tools/admin/acme.sh/default.nix4
-rw-r--r--pkgs/tools/admin/sewer/default.nix5
-rw-r--r--pkgs/tools/admin/vncdo/default.nix8
-rw-r--r--pkgs/tools/backup/dar/default.nix4
-rw-r--r--pkgs/tools/backup/zfs-replicate/default.nix4
-rw-r--r--pkgs/tools/backup/zfsnap/default.nix42
-rw-r--r--pkgs/tools/compression/zopfli/default.nix17
-rw-r--r--pkgs/tools/filesystems/bindfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix4
-rw-r--r--pkgs/tools/filesystems/fuse-overlayfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix20
-rw-r--r--pkgs/tools/filesystems/gcsfuse/go.mod.patch28
-rw-r--r--pkgs/tools/filesystems/gcsfuse/go.sum.patch38
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/blivet.nix2
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/default.nix4
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix4
-rw-r--r--pkgs/tools/graphics/grim/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix6
-rw-r--r--pkgs/tools/misc/broot/default.nix7
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/dust/default.nix6
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix4
-rw-r--r--pkgs/tools/misc/fpart/default.nix7
-rw-r--r--pkgs/tools/misc/fsmon/default.nix4
-rw-r--r--pkgs/tools/misc/graylog/default.nix4
-rw-r--r--pkgs/tools/misc/hakuneko/default.nix6
-rw-r--r--pkgs/tools/misc/html-proofer/Gemfile.lock10
-rw-r--r--pkgs/tools/misc/html-proofer/gemset.nix20
-rw-r--r--pkgs/tools/misc/jdupes/default.nix13
-rw-r--r--pkgs/tools/misc/mcfly/default.nix5
-rw-r--r--pkgs/tools/misc/mutagen/default.nix24
-rw-r--r--pkgs/tools/misc/pfetch/default.nix11
-rw-r--r--pkgs/tools/misc/pg_flame/default.nix4
-rw-r--r--pkgs/tools/misc/pipreqs/default.nix4
-rw-r--r--pkgs/tools/misc/pspg/default.nix10
-rw-r--r--pkgs/tools/misc/skim/default.nix8
-rw-r--r--pkgs/tools/misc/starship/default.nix6
-rw-r--r--pkgs/tools/misc/tmuxinator/default.nix12
-rw-r--r--pkgs/tools/misc/topgrade/default.nix8
-rw-r--r--pkgs/tools/misc/txr/default.nix9
-rw-r--r--pkgs/tools/misc/usbmuxd/default.nix6
-rw-r--r--pkgs/tools/misc/vmtouch/default.nix5
-rw-r--r--pkgs/tools/misc/wakatime/default.nix4
-rw-r--r--pkgs/tools/misc/yle-dl/default.nix4
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix4
-rw-r--r--pkgs/tools/networking/cassowary/default.nix23
-rw-r--r--pkgs/tools/networking/corerad/default.nix6
-rw-r--r--pkgs/tools/networking/httpie/default.nix10
-rw-r--r--pkgs/tools/networking/httpie/strip-venv.patch19
-rw-r--r--pkgs/tools/networking/iperf/3.nix3
-rw-r--r--pkgs/tools/networking/lftp/default.nix4
-rw-r--r--pkgs/tools/networking/mu/default.nix2
-rw-r--r--pkgs/tools/networking/nebula/default.nix6
-rw-r--r--pkgs/tools/networking/saldl/default.nix48
-rw-r--r--pkgs/tools/networking/subfinder/default.nix4
-rw-r--r--pkgs/tools/networking/wavemon/default.nix4
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-bundle/default.nix4
-rw-r--r--pkgs/tools/package-management/nix-prefetch/default.nix18
-rw-r--r--pkgs/tools/package-management/packagekit/default.nix9
-rw-r--r--pkgs/tools/package-management/rpm/default.nix5
-rw-r--r--pkgs/tools/security/chrome-token-signing/default.nix4
-rw-r--r--pkgs/tools/security/fail2ban/default.nix15
-rw-r--r--pkgs/tools/security/nmap/default.nix43
-rw-r--r--pkgs/tools/security/nmap/qt.nix4
-rw-r--r--pkgs/tools/security/rage/default.nix24
-rw-r--r--pkgs/tools/system/bfs/default.nix4
-rw-r--r--pkgs/tools/system/facter/default.nix4
-rw-r--r--pkgs/tools/text/fanficfare/default.nix6
-rw-r--r--pkgs/tools/text/unoconv/default.nix19
-rw-r--r--pkgs/tools/text/unoconv/unoconv-python3.patch374
-rw-r--r--pkgs/tools/typesetting/asciidoctorj/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/UPGRADING.md21
-rw-r--r--pkgs/top-level/aliases.nix3
-rw-r--r--pkgs/top-level/all-packages.nix111
-rw-r--r--pkgs/top-level/ocaml-packages.nix4
-rw-r--r--pkgs/top-level/python-packages.nix60
-rw-r--r--pkgs/top-level/release.nix2
-rw-r--r--pkgs/top-level/static.nix12
454 files changed, 9491 insertions, 10639 deletions
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 706952b208d..a50a8a507de 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -48,6 +48,15 @@ In addition to writing properly formatted commit messages, it's important to inc
 
 For package version upgrades and such a one-line commit message is usually sufficient.
 
+## Backporting changes
+
+To [backport a change into a release branch](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches):
+
+1. Take note of the commit in which the change was introduced into `master`.
+2. Check out the target _release branch_, e.g. `release-19.09`. Do not use a _channel branch_ like `nixos-19.09` or `nixpkgs-19.09`.
+3. Use `git cherry-pick -x <original commit>`.
+4. Open your backport PR. Make sure to select the release branch (e.g. `release-19.09`) as the target branch of the PR, and link to the PR in which the original change was made to `master`.
+
 ## Reviewing contributions
 
 See the nixpkgs manual for more details on how to [Review contributions](https://nixos.org/nixpkgs/manual/#chap-reviewing-contributions).
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index bbcf82f7ed6..9b6de47c8e8 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -1029,36 +1029,43 @@ If you want to create a Python environment for development, then the recommended
 method is to use `nix-shell`, either with or without the `python.buildEnv`
 function.
 
-### How to consume python modules using pip in a virtualenv like I am used to on other Operating Systems ?
+### How to consume python modules using pip in a virtual environment like I am used to on other Operating Systems?
 
-This is an example of a `default.nix` for a `nix-shell`, which allows to consume a `virtualenv` environment,
+While this approach is not very idiomatic from Nix perspective, it can still be useful when dealing with pre-existing
+projects or in situations where it's not feasible or desired to write derivations for all required dependencies.
+
+This is an example of a `default.nix` for a `nix-shell`, which allows to consume a virtual environment created by `venv`,
 and install python modules through `pip` the traditional way.
 
 Create this `default.nix` file, together with a `requirements.txt` and simply execute `nix-shell`.
 
 ```nix
-with import <nixpkgs> {};
+with import <nixpkgs> { };
 
 let
-  pythonPackages = python27Packages;
-in
-
-stdenv.mkDerivation {
+  pythonPackages = python3Packages;
+in pkgs.mkShell rec {
   name = "impurePythonEnv";
+  venvDir = "./.venv";
+  buildInputs = [
+    # A python interpreter including the 'venv' module is required to bootstrap
+    # the environment.
+    pythonPackages.python
 
-  src = null;
+    # This execute some shell code to initialize a venv in $venvDir before
+    # dropping into the shell
+    pythonPackages.venvShellHook
+
+    # Those are dependencies that we would like to use from nixpkgs, which will
+    # add them to PYTHONPATH and thus make them accessible from within the venv.
+    pythonPackages.numpy
+    pythonPackages.requests
 
-  buildInputs = [
-    # these packages are required for virtualenv and pip to work:
-    #
-    pythonPackages.virtualenv
-    pythonPackages.pip
     # the following packages are related to the dependencies of your python
     # project.
     # In this particular example the python modules listed in the
     # requirements.txt require the following packages to be installed locally
     # in order to compile any binary extensions they may require.
-    #
     taglib
     openssl
     git
@@ -1068,11 +1075,47 @@ stdenv.mkDerivation {
     zlib
   ];
 
+  # Now we can execute any commands within the virtual environment
+  postShellHook = ''
+    pip install -r requirements.txt
+  '';
+
+}
+```
+
+In case the supplied venvShellHook is insufficient, or when python 2 support is needed,
+you can define your own shell hook and adapt to your needs like in the following example:
+
+```nix
+with import <nixpkgs> { };
+
+let
+  venvDir = "./.venv";
+in pkgs.mkShell rec {
+  name = "impurePythonEnv";
+  buildInputs = [
+    python3Packages.python
+    python3Packages.virtualenv
+    ...
+  ];
+
+  # This is very close to how venvShellHook is implemented, but
+  # adapted to use 'virtualenv'
   shellHook = ''
-    # set SOURCE_DATE_EPOCH so that we can use python wheels
     SOURCE_DATE_EPOCH=$(date +%s)
-    virtualenv --python=${pythonPackages.python.interpreter} --no-setuptools venv
-    export PATH=$PWD/venv/bin:$PATH
+
+    if [ -d "${venvDir}" ]; then
+      echo "Skipping venv creation, '${venvDir}' already exists"
+    else
+      echo "Creating new venv environment in path: '${venvDir}'"
+      ${pythonPackages.python.interpreter} -m venv "${venvDir}"
+    fi
+
+    # Under some circumstances it might be necessary to add your virtual
+    # environment to PYTHONPATH, which you can do here too;
+    # PYTHONPATH=$PWD/${venvDir}/${python.sitePackages}/:$PYTHONPATH
+
+    source "${venvDir}/bin/activate"
     pip install -r requirements.txt
   '';
 }
diff --git a/lib/attrsets.nix b/lib/attrsets.nix
index 086c3d746fc..32994432d53 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -60,7 +60,7 @@ rec {
       [ { name = head attrPath; value = setAttrByPath (tail attrPath) value; } ];
 
 
-  /* Like `getAttrPath' without a default value. If it doesn't find the
+  /* Like `attrByPath' without a default value. If it doesn't find the
      path it will throw.
 
      Example:
diff --git a/lib/modules.nix b/lib/modules.nix
index e2315290ff0..2b1faf4f0c2 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -764,12 +764,15 @@ rec {
       fromOpt = getAttrFromPath from options;
       toOf = attrByPath to
         (abort "Renaming error: option `${showOption to}' does not exist.");
+      toType = let opt = attrByPath to {} options; in opt.type or null;
     in
     {
       options = setAttrByPath from (mkOption {
         inherit visible;
         description = "Alias of <option>${showOption to}</option>.";
         apply = x: use (toOf config);
+      } // optionalAttrs (toType != null) {
+        type = toType;
       });
       config = mkMerge [
         {
diff --git a/lib/sources.nix b/lib/sources.nix
index 0fd172c42b7..a5765c0fda5 100644
--- a/lib/sources.nix
+++ b/lib/sources.nix
@@ -113,6 +113,10 @@ rec {
       with builtins;
         let fileName       = toString path + "/" + file;
             packedRefsName = toString path + "/packed-refs";
+            absolutePath   = base: path:
+              if lib.hasPrefix "/" path
+              then path
+              else toString (/. + "${base}/${path}");
         in if pathIsRegularFile path
            # Resolve git worktrees. See gitrepository-layout(5)
            then
@@ -120,13 +124,11 @@ rec {
              in if m == null
                 then throw ("File contains no gitdir reference: " + path)
                 else
-                  let gitDir     = lib.head m;
+                  let gitDir     = absolutePath (dirOf path) (lib.head m);
                       commonDir' = if pathIsRegularFile "${gitDir}/commondir"
                                    then lib.fileContents "${gitDir}/commondir"
                                    else gitDir;
-                      commonDir  = if lib.hasPrefix "/" commonDir'
-                                   then commonDir'
-                                   else toString (/. + "${gitDir}/${commonDir'}");
+                      commonDir  = absolutePath gitDir commonDir';
                       refFile    = lib.removePrefix "${commonDir}/" "${gitDir}/${file}";
                   in readCommitFromFile refFile commonDir
 
diff --git a/lib/types.nix b/lib/types.nix
index d8a5db0c89f..6fd6de7e1fd 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -406,7 +406,7 @@ rec {
                 In file ${def.file}
                 a list is being assigned to the option config.${option}.
                 This will soon be an error as type loaOf is deprecated.
-                See https://git.io/fj2zm for more information.
+                See https://github.com/NixOS/nixpkgs/pull/63103 for more information.
                 Do
                   ${option} =
                     { ${set}${more}}
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index bdeed800890..2730218f48f 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -517,6 +517,12 @@
     githubId = 5327697;
     name = "Anatolii Prylutskyi";
   };
+  antoinerg = {
+    email = "roygobeil.antoine@gmail.com";
+    github = "antoinerg";
+    githubId = 301546;
+    name = "Antoine Roy-Gobeil";
+  };
   anton-dessiatov = {
     email = "anton.dessiatov@gmail.com";
     github = "anton-dessiatov";
@@ -1919,6 +1925,12 @@
       fingerprint = "5DD7 C6F6 0630 F08E DAE7  4711 1525 585D 1B43 C62A";
     }];
   };
+  dwarfmaster = {
+    email = "nixpkgs@dwarfmaster.net";
+    github = "dwarfmaster";
+    githubId = 2025623;
+    name = "Luc Chabassier";
+  };
   dxf = {
     email = "dingxiangfei2009@gmail.com";
     github = "dingxiangfei2009";
@@ -3510,6 +3522,16 @@
     githubId = 4611077;
     name = "Raymond Gauthier";
   };
+  jtcoolen = {
+    email = "jtcoolen@pm.me";
+    name = "Julien Coolen";
+    github = "jtcoolen";
+    githubId = 54635632;
+    keys = [{
+      longkeyid = "rsa4096/0x19642151C218F6F5";
+      fingerprint = "4C68 56EE DFDA 20FB 77E8  9169 1964 2151 C218 F6F5";
+    }];
+  };
   jtobin = {
     email = "jared@jtobin.io";
     github = "jtobin";
@@ -3844,6 +3866,12 @@
     githubId = 449813;
     name = "Roman Kuznetsov";
   };
+  kwohlfahrt = {
+    email = "kai.wohlfahrt@gmail.com";
+    github = "kwohlfahrt";
+    githubId = 2422454;
+    name = "Kai Wohlfahrt";
+  };
   kylesferrazza = {
     name = "Kyle Sferrazza";
     email = "kyle.sferrazza@gmail.com";
@@ -4153,12 +4181,6 @@
     github = "ltavard";
     name = "Laure Tavard";
   };
-  lucas8 = {
-    email = "luc.linux@mailoo.org";
-    github = "lucas8";
-    githubId = 2025623;
-    name = "Luc Chabassier";
-  };
   lucus16 = {
     email = "lars.jellema@gmail.com";
     github = "Lucus16";
@@ -6260,6 +6282,12 @@
     github = "scubed2";
     name = "Sterling Stein";
   };
+  sdier = {
+    email = "scott@dier.name";
+    github = "sdier";
+    githubId = 11613056;
+    name = "Scott Dier";
+  };
   sdll = {
     email = "sasha.delly@gmail.com";
     github = "sdll";
@@ -7834,6 +7862,12 @@
     githubId = 1069303;
     name = "Kim Simmons";
   };
+  zowoq = {
+    email = "59103226+zowoq@users.noreply.github.com";
+    github = "zowoq";
+    githubId = 59103226;
+    name = "zowoq";
+  };
   zraexy = {
     email = "zraexy@gmail.com";
     github = "zraexy";
diff --git a/nixos/doc/manual/configuration/declarative-packages.xml b/nixos/doc/manual/configuration/declarative-packages.xml
index 5fb3bcb9f8f..cd84d1951d2 100644
--- a/nixos/doc/manual/configuration/declarative-packages.xml
+++ b/nixos/doc/manual/configuration/declarative-packages.xml
@@ -19,6 +19,12 @@
   <command>nixos-rebuild switch</command>.
  </para>
 
+ <note>
+  <para>
+   Some packages require additional global configuration such as D-Bus or systemd service registration so adding them to <xref linkend="opt-environment.systemPackages"/> might not be sufficient. You are advised to check the <link xlink:href="#ch-options">list of options</link> whether a NixOS module for the package does not exist.
+  </para>
+ </note>
+
  <para>
   You can get a list of the available packages as follows:
 <screen>
diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml
index 51f91268eff..1eef4f08c4f 100644
--- a/nixos/doc/manual/release-notes/rl-2003.xml
+++ b/nixos/doc/manual/release-notes/rl-2003.xml
@@ -170,6 +170,12 @@ services.xserver.displayManager.defaultSession = "xfce+icewm";
    </listitem>
    <listitem>
     <para>
+     The Way Cooler wayland compositor has been removed, as the project has been officially canceled.
+     There are no more <literal>way-cooler</literal> attribute and <literal>programs.way-cooler</literal> options.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
       The BEAM package set has been deleted. You will only find there the different interpreters.
       You should now use the different build tools coming with the languages with sandbox mode disabled.
     </para>
@@ -401,6 +407,44 @@ users.users.me =
      the type to <literal>either path (submodule ...)</literal>.
     </para>
    </listitem>
+   <listitem>
+    <para>
+      The <link linkend="opt-services.buildkite-agent.enable">Buildkite Agent</link>
+      module and corresponding packages have been updated to 3.x.
+      While doing so, the following options have been changed:
+    </para>
+    <itemizedlist>
+      <listitem>
+       <para>
+         <literal>services.buildkite-agent.meta-data</literal> has been renamed to
+         <link linkend="opt-services.buildkite-agent.tags">services.buildkite-agent.tags</link>,
+         to match upstreams naming for 3.x.
+         Its type has also changed - it now accepts an attrset of strings.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+         The<literal>services.buildkite-agent.openssh.publicKeyPath</literal> option
+         has been removed, as it's not necessary to deploy public keys to clone private
+         repositories.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+         <literal>services.buildkite-agent.openssh.privateKeyPath</literal>
+         has been renamed to
+         <link linkend="opt-services.buildkite-agent.privateSshKeyPath">buildkite-agent.privateSshKeyPath</link>,
+         as the whole <literal>openssh</literal> now only contained that single option.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+         <link linkend="opt-services.buildkite-agent.shell">services.buildkite-agent.shell</link>
+         has been introduced, allowing to specify a custom shell to be used.
+       </para>
+      </listitem>
+    </itemizedlist>
+   </listitem>
   </itemizedlist>
  </section>
 
diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py
index c2cbedc5e3e..cf204a2619f 100644
--- a/nixos/lib/test-driver/test-driver.py
+++ b/nixos/lib/test-driver/test-driver.py
@@ -84,7 +84,7 @@ CHAR_TO_KEY = {
 
 # Forward references
 nr_tests: int
-nr_succeeded: int
+failed_tests: list
 log: "Logger"
 machines: "List[Machine]"
 
@@ -221,7 +221,7 @@ class Machine:
             return path
 
         self.state_dir = create_dir("vm-state-{}".format(self.name))
-        self.shared_dir = create_dir("{}/xchg".format(self.state_dir))
+        self.shared_dir = create_dir("shared-xchg")
 
         self.booted = False
         self.connected = False
@@ -576,7 +576,7 @@ class Machine:
         vm_src = pathlib.Path(source)
         with tempfile.TemporaryDirectory(dir=self.shared_dir) as shared_td:
             shared_temp = pathlib.Path(shared_td)
-            vm_shared_temp = pathlib.Path("/tmp/xchg") / shared_temp.name
+            vm_shared_temp = pathlib.Path("/tmp/shared") / shared_temp.name
             vm_intermediate = vm_shared_temp / vm_src.name
             intermediate = shared_temp / vm_src.name
             # Copy the file to the shared directory inside VM
@@ -842,23 +842,31 @@ def run_tests() -> None:
             machine.execute("sync")
 
     if nr_tests != 0:
+        nr_succeeded = nr_tests - len(failed_tests)
         eprint("{} out of {} tests succeeded".format(nr_succeeded, nr_tests))
-        if nr_tests > nr_succeeded:
+        if len(failed_tests) > 0:
+            eprint(
+                "The following tests have failed:\n - {}".format(
+                    "\n - ".join(failed_tests)
+                )
+            )
             sys.exit(1)
 
 
 @contextmanager
 def subtest(name: str) -> Iterator[None]:
     global nr_tests
-    global nr_succeeded
+    global failed_tests
 
     with log.nested(name):
         nr_tests += 1
         try:
             yield
-            nr_succeeded += 1
             return True
         except Exception as e:
+            failed_tests.append(
+                'Test "{}" failed with error: "{}"'.format(name, str(e))
+            )
             log.log("error: {}".format(str(e)))
 
     return False
@@ -880,7 +888,7 @@ if __name__ == "__main__":
     exec("\n".join(machine_eval))
 
     nr_tests = 0
-    nr_succeeded = 0
+    failed_tests = []
 
     @atexit.register
     def clean_up() -> None:
diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix
index 89dc5008df5..28cddea8b79 100644
--- a/nixos/modules/hardware/opengl.nix
+++ b/nixos/modules/hardware/opengl.nix
@@ -43,11 +43,11 @@ in
         description = ''
           Whether to enable OpenGL drivers. This is needed to enable
           OpenGL support in X11 systems, as well as for Wayland compositors
-          like sway, way-cooler and Weston. It is enabled by default
+          like sway and Weston. It is enabled by default
           by the corresponding modules, so you do not usually have to
           set it yourself, only if there is no module for your wayland
-          compositor of choice. See services.xserver.enable,
-          programs.sway.enable, and programs.way-cooler.enable.
+          compositor of choice. See services.xserver.enable and
+          programs.sway.enable.
         '';
         type = types.bool;
         default = false;
diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh
index c53dc1000c4..61b4af11027 100644
--- a/nixos/modules/installer/tools/nixos-rebuild.sh
+++ b/nixos/modules/installer/tools/nixos-rebuild.sh
@@ -22,7 +22,7 @@ repair=
 profile=/nix/var/nix/profiles/system
 buildHost=
 targetHost=
-maybeSudo=
+maybeSudo=()
 
 while [ "$#" -gt 0 ]; do
     i="$1"; shift 1
@@ -92,7 +92,7 @@ while [ "$#" -gt 0 ]; do
         ;;
       --use-remote-sudo)
         # note the trailing space
-        maybeSudo="sudo "
+        maybeSudo=(sudo --)
         shift 1
         ;;
       *)
@@ -102,6 +102,10 @@ while [ "$#" -gt 0 ]; do
     esac
 done
 
+if [ -n "$SUDO_USER" ]; then
+    maybeSudo=(sudo --)
+fi
+
 if [ -z "$buildHost" -a -n "$targetHost" ]; then
     buildHost="$targetHost"
 fi
@@ -116,17 +120,17 @@ buildHostCmd() {
     if [ -z "$buildHost" ]; then
         "$@"
     elif [ -n "$remoteNix" ]; then
-        ssh $SSHOPTS "$buildHost" env PATH="$remoteNix:$PATH" "$maybeSudo$@"
+        ssh $SSHOPTS "$buildHost" env PATH="$remoteNix:$PATH" "${maybeSudo[@]}" "$@"
     else
-        ssh $SSHOPTS "$buildHost" "$maybeSudo$@"
+        ssh $SSHOPTS "$buildHost" "${maybeSudo[@]}" "$@"
     fi
 }
 
 targetHostCmd() {
     if [ -z "$targetHost" ]; then
-        "$@"
+        "${maybeSudo[@]}" "$@"
     else
-        ssh $SSHOPTS "$targetHost" "$maybeSudo$@"
+        ssh $SSHOPTS "$targetHost" "${maybeSudo[@]}" "$@"
     fi
 }
 
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index a48434641b0..eadf1d2d89b 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -127,6 +127,7 @@
   ./programs/java.nix
   ./programs/kbdlight.nix
   ./programs/less.nix
+  ./programs/liboping.nix
   ./programs/light.nix
   ./programs/mosh.nix
   ./programs/mininet.nix
@@ -152,13 +153,13 @@
   ./programs/system-config-printer.nix
   ./programs/thefuck.nix
   ./programs/tmux.nix
+  ./programs/traceroute.nix
   ./programs/tsm-client.nix
   ./programs/udevil.nix
   ./programs/usbtop.nix
   ./programs/venus.nix
   ./programs/vim.nix
   ./programs/wavemon.nix
-  ./programs/way-cooler.nix
   ./programs/waybar.nix
   ./programs/wireshark.nix
   ./programs/x2goserver.nix
@@ -577,6 +578,7 @@
   ./services/networking/connman.nix
   ./services/networking/consul.nix
   ./services/networking/coredns.nix
+  ./services/networking/corerad.nix
   ./services/networking/coturn.nix
   ./services/networking/dante.nix
   ./services/networking/ddclient.nix
@@ -870,7 +872,6 @@
   ./services/x11/display-managers/xpra.nix
   ./services/x11/fractalart.nix
   ./services/x11/hardware/libinput.nix
-  ./services/x11/hardware/multitouch.nix
   ./services/x11/hardware/synaptics.nix
   ./services/x11/hardware/wacom.nix
   ./services/x11/hardware/digimend.nix
diff --git a/nixos/modules/programs/liboping.nix b/nixos/modules/programs/liboping.nix
new file mode 100644
index 00000000000..4e4c235ccde
--- /dev/null
+++ b/nixos/modules/programs/liboping.nix
@@ -0,0 +1,22 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.liboping;
+in {
+  options.programs.liboping = {
+    enable = mkEnableOption "liboping";
+  };
+  config = mkIf cfg.enable {
+    environment.systemPackages = with pkgs; [ liboping ];
+    security.wrappers = mkMerge (map (
+      exec: {
+        "${exec}" = {
+          source = "${pkgs.liboping}/bin/${exec}";
+          capabilities = "cap_net_raw+p";
+        };
+      }
+    ) [ "oping" "noping" ]);
+  };
+}
diff --git a/nixos/modules/programs/traceroute.nix b/nixos/modules/programs/traceroute.nix
new file mode 100644
index 00000000000..4eb0be3f0e0
--- /dev/null
+++ b/nixos/modules/programs/traceroute.nix
@@ -0,0 +1,26 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.traceroute;
+in {
+  options = {
+    programs.traceroute = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to configure a setcap wrapper for traceroute.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    security.wrappers.traceroute = {
+      source = "${pkgs.traceroute}/bin/traceroute";
+      capabilities = "cap_net_raw+p";
+    };
+  };
+}
diff --git a/nixos/modules/programs/way-cooler.nix b/nixos/modules/programs/way-cooler.nix
deleted file mode 100644
index f27bd42bd76..00000000000
--- a/nixos/modules/programs/way-cooler.nix
+++ /dev/null
@@ -1,78 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-with lib;
-
-let
-  cfg = config.programs.way-cooler;
-  way-cooler = pkgs.way-cooler;
-
-  wcWrapped = pkgs.writeShellScriptBin "way-cooler" ''
-    ${cfg.extraSessionCommands}
-    exec ${pkgs.dbus}/bin/dbus-run-session ${way-cooler}/bin/way-cooler
-  '';
-  wcJoined = pkgs.symlinkJoin {
-    name = "way-cooler-wrapped";
-    paths = [ wcWrapped way-cooler ];
-  };
-  configFile = readFile "${way-cooler}/etc/way-cooler/init.lua";
-  spawnBar = ''
-    util.program.spawn_at_startup("lemonbar");
-  '';
-in
-{
-  options.programs.way-cooler = {
-    enable = mkEnableOption "way-cooler";
-
-    extraSessionCommands = mkOption {
-      default     = "";
-      type        = types.lines;
-      example = ''
-        export XKB_DEFAULT_LAYOUT=us,de
-        export XKB_DEFAULT_VARIANT=,nodeadkeys
-        export XKB_DEFAULT_OPTIONS=grp:caps_toggle,
-      '';
-      description = ''
-        Shell commands executed just before way-cooler is started.
-      '';
-    };
-
-    extraPackages = mkOption {
-      type = with types; listOf package;
-      default = with pkgs; [
-        westonLite xwayland dmenu
-      ];
-      example = literalExample ''
-        with pkgs; [
-          westonLite xwayland dmenu
-        ]
-      '';
-      description = ''
-        Extra packages to be installed system wide.
-      '';
-    };
-
-    enableBar = mkOption {
-      type = types.bool;
-      default = true;
-      description = ''
-        Whether to enable an unofficial bar.
-      '';
-    };
-  };
-
-  config = mkIf cfg.enable {
-    environment.systemPackages = [ wcJoined ] ++ cfg.extraPackages;
-
-    security.pam.services.wc-lock = {};
-    environment.etc."way-cooler/init.lua".text = ''
-      ${configFile}
-      ${optionalString cfg.enableBar spawnBar}
-    '';
-
-    hardware.opengl.enable = mkDefault true;
-    fonts.enableDefaultFonts = mkDefault true;
-    programs.dconf.enable = mkDefault true;
-  };
-
-  meta.maintainers = with maintainers; [ gnidorah ];
-}
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 7109ab5a109..26de8a18d92 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -27,6 +27,13 @@ with lib;
     (mkRemovedOptionModule [ "services.osquery" ] "The osquery module has been removed")
     (mkRemovedOptionModule [ "services.fourStore" ] "The fourStore module has been removed")
     (mkRemovedOptionModule [ "services.fourStoreEndpoint" ] "The fourStoreEndpoint module has been removed")
+    (mkRemovedOptionModule [ "programs" "way-cooler" ] ("way-cooler is abandoned by its author: " +
+      "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"))
+    (mkRemovedOptionModule [ "services" "xserver" "multitouch" ] ''
+      services.xserver.multitouch (which uses xf86_input_mtrack) has been removed
+      as the underlying package isn't being maintained. Working alternatives are
+      libinput and synaptics.
+    '')
 
     # Do NOT add any option renames here, see top of the file
   ];
diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix
index 697732426cc..35fb49f709a 100644
--- a/nixos/modules/services/amqp/rabbitmq.nix
+++ b/nixos/modules/services/amqp/rabbitmq.nix
@@ -165,7 +165,10 @@ in {
       after = [ "network.target" "epmd.socket" ];
       wants = [ "network.target" "epmd.socket" ];
 
-      path = [ cfg.package pkgs.procps ];
+      path = [
+        cfg.package
+        pkgs.coreutils # mkdir/chown/chmod for preStart
+      ];
 
       environment = {
         RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
diff --git a/nixos/modules/services/cluster/kubernetes/pki.nix b/nixos/modules/services/cluster/kubernetes/pki.nix
index 733479e24c9..4275563f1a3 100644
--- a/nixos/modules/services/cluster/kubernetes/pki.nix
+++ b/nixos/modules/services/cluster/kubernetes/pki.nix
@@ -20,6 +20,7 @@ let
         size = 2048;
     };
     CN = top.masterAddress;
+    hosts = cfg.cfsslAPIExtraSANs;
   });
 
   cfsslAPITokenBaseName = "apitoken.secret";
@@ -66,6 +67,15 @@ in
       type = bool;
     };
 
+    cfsslAPIExtraSANs = mkOption {
+      description = ''
+        Extra x509 Subject Alternative Names to be added to the cfssl API webserver TLS cert.
+      '';
+      default = [];
+      example = [ "subdomain.example.com" ];
+      type = listOf str;
+    };
+
     genCfsslAPIToken = mkOption {
       description = ''
         Whether to automatically generate cfssl API-token secret,
diff --git a/nixos/modules/services/continuous-integration/buildkite-agent.nix b/nixos/modules/services/continuous-integration/buildkite-agent.nix
index 32f361454bc..58bce654941 100644
--- a/nixos/modules/services/continuous-integration/buildkite-agent.nix
+++ b/nixos/modules/services/continuous-integration/buildkite-agent.nix
@@ -50,8 +50,8 @@ in
       };
 
       runtimePackages = mkOption {
-        default = [ pkgs.bash pkgs.nix ];
-        defaultText = "[ pkgs.bash pkgs.nix ]";
+        default = [ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ];
+        defaultText = "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]";
         description = "Add programs to the buildkite-agent environment";
         type = types.listOf types.package;
       };
@@ -74,13 +74,12 @@ in
         '';
       };
 
-      meta-data = mkOption {
-        type = types.str;
-        default = "";
-        example = "queue=default,docker=true,ruby2=true";
+      tags = mkOption {
+        type = types.attrsOf types.str;
+        default = {};
+        example = { queue = "default"; docker = "true"; ruby2 ="true"; };
         description = ''
-          Meta data for the agent. This is a comma-separated list of
-          <code>key=value</code> pairs.
+          Tags for the agent.
         '';
       };
 
@@ -93,26 +92,20 @@ in
         '';
       };
 
-      openssh =
-        { privateKeyPath = mkOption {
-            type = types.path;
-            description = ''
-              Private agent key.
+      privateSshKeyPath = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        ## maximum care is taken so that secrets (ssh keys and the CI token)
+        ## don't end up in the Nix store.
+        apply = final: if final == null then null else toString final;
 
-              A run-time path to the key file, which is supposed to be provisioned
-              outside of Nix store.
-            '';
-          };
-          publicKeyPath = mkOption {
-            type = types.path;
-            description = ''
-              Public agent key.
-
-              A run-time path to the key file, which is supposed to be provisioned
-              outside of Nix store.
-            '';
-          };
-        };
+        description = ''
+          OpenSSH private key
+
+          A run-time path to the key file, which is supposed to be provisioned
+          outside of Nix store.
+        '';
+      };
 
       hooks = mkHookOptions [
         { name = "checkout";
@@ -181,18 +174,26 @@ in
           instead.
         '';
       };
+
+      shell = mkOption {
+        type = types.str;
+        default = "${pkgs.bash}/bin/bash -e -c";
+        description = ''
+          Command that buildkite-agent 3 will execute when it spawns a shell.
+        '';
+      };
     };
   };
 
   config = mkIf config.services.buildkite-agent.enable {
-    users.users.buildkite-agent =
-      { name = "buildkite-agent";
-        home = cfg.dataDir;
-        createHome = true;
-        description = "Buildkite agent user";
-        extraGroups = [ "keys" ];
-        isSystemUser = true;
-      };
+    users.users.buildkite-agent = {
+      name = "buildkite-agent";
+      home = cfg.dataDir;
+      createHome = true;
+      description = "Buildkite agent user";
+      extraGroups = [ "keys" ];
+      isSystemUser = true;
+    };
 
     environment.systemPackages = [ cfg.package ];
 
@@ -210,17 +211,18 @@ in
         ##     don't end up in the Nix store.
         preStart = let
           sshDir = "${cfg.dataDir}/.ssh";
+          tagStr = lib.concatStringsSep "," (lib.mapAttrsToList (name: value: "${name}=${value}") cfg.tags);
         in
-          ''
+          optionalString (cfg.privateSshKeyPath != null) ''
             mkdir -m 0700 -p "${sshDir}"
-            cp -f "${toString cfg.openssh.privateKeyPath}" "${sshDir}/id_rsa"
-            cp -f "${toString cfg.openssh.publicKeyPath}"  "${sshDir}/id_rsa.pub"
-            chmod 600 "${sshDir}"/id_rsa*
-
+            cp -f "${toString cfg.privateSshKeyPath}" "${sshDir}/id_rsa"
+            chmod 600 "${sshDir}"/id_rsa
+          '' + ''
             cat > "${cfg.dataDir}/buildkite-agent.cfg" <<EOF
             token="$(cat ${toString cfg.tokenPath})"
             name="${cfg.name}"
-            meta-data="${cfg.meta-data}"
+            shell="${cfg.shell}"
+            tags="${tagStr}"
             build-path="${cfg.dataDir}/builds"
             hooks-path="${cfg.hooksPath}"
             ${cfg.extraConfig}
@@ -228,11 +230,14 @@ in
           '';
 
         serviceConfig =
-          { ExecStart = "${pkgs.buildkite-agent}/bin/buildkite-agent start --config /var/lib/buildkite-agent/buildkite-agent.cfg";
+          { ExecStart = "${cfg.package}/bin/buildkite-agent start --config /var/lib/buildkite-agent/buildkite-agent.cfg";
             User = "buildkite-agent";
             RestartSec = 5;
             Restart = "on-failure";
             TimeoutSec = 10;
+            # set a long timeout to give buildkite-agent a chance to finish current builds
+            TimeoutStopSec = "2 min";
+            KillMode = "mixed";
           };
       };
 
@@ -246,8 +251,11 @@ in
     ];
   };
   imports = [
-    (mkRenamedOptionModule [ "services" "buildkite-agent" "token" ]                [ "services" "buildkite-agent" "tokenPath" ])
-    (mkRenamedOptionModule [ "services" "buildkite-agent" "openssh" "privateKey" ] [ "services" "buildkite-agent" "openssh" "privateKeyPath" ])
-    (mkRenamedOptionModule [ "services" "buildkite-agent" "openssh" "publicKey" ]  [ "services" "buildkite-agent" "openssh" "publicKeyPath" ])
+    (mkRenamedOptionModule [ "services" "buildkite-agent" "token" ]                    [ "services" "buildkite-agent" "tokenPath" ])
+    (mkRenamedOptionModule [ "services" "buildkite-agent" "openssh" "privateKey" ]     [ "services" "buildkite-agent" "privateSshKeyPath" ])
+    (mkRenamedOptionModule [ "services" "buildkite-agent" "openssh" "privateKeyPath" ] [ "services" "buildkite-agent" "privateSshKeyPath" ])
+    (mkRemovedOptionModule [ "services" "buildkite-agent" "openssh" "publicKey" ]      "SSH public keys aren't necessary to clone private repos.")
+    (mkRemovedOptionModule [ "services" "buildkite-agent" "openssh" "publicKeyPath" ]  "SSH public keys aren't necessary to clone private repos.")
+    (mkRenamedOptionModule [ "services" "buildkite-agent" "meta-data"]                 [ "services" "buildkite-agent" "tags" ])
   ];
 }
diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix
index 30c5550f71c..8b56207590a 100644
--- a/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -167,7 +167,7 @@ in
 
       buildMachinesFiles = mkOption {
         type = types.listOf types.path;
-        default = [ "/etc/nix/machines" ];
+        default = optional (config.nix.buildMachines != []) "/etc/nix/machines";
         example = [ "/etc/nix/machines" "/var/lib/hydra/provisioner/machines" ];
         description = "List of files containing build machines.";
       };
@@ -333,7 +333,7 @@ in
           IN_SYSTEMD = "1"; # to get log severity levels
         };
         serviceConfig =
-          { ExecStart = "@${cfg.package}/bin/hydra-queue-runner hydra-queue-runner -v --option build-use-substitutes ${boolToString cfg.useSubstitutes}";
+          { ExecStart = "@${cfg.package}/bin/hydra-queue-runner hydra-queue-runner -v";
             ExecStopPost = "${cfg.package}/bin/hydra-queue-runner --unlock";
             User = "hydra-queue-runner";
             Restart = "always";
diff --git a/nixos/modules/services/networking/corerad.nix b/nixos/modules/services/networking/corerad.nix
new file mode 100644
index 00000000000..1a2c4aec665
--- /dev/null
+++ b/nixos/modules/services/networking/corerad.nix
@@ -0,0 +1,46 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.corerad;
+in {
+  meta = {
+    maintainers = with maintainers; [ mdlayher ];
+  };
+
+  options.services.corerad = {
+    enable = mkEnableOption "CoreRAD IPv6 NDP RA daemon";
+
+    configFile = mkOption {
+      type = types.path;
+      example = literalExample "\"\${pkgs.corerad}/etc/corerad/corerad.toml\"";
+      description = "Path to CoreRAD TOML configuration file.";
+    };
+
+    package = mkOption {
+      default = pkgs.corerad;
+      defaultText = literalExample "pkgs.corerad";
+      type = types.package;
+      description = "CoreRAD package to use.";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.corerad = {
+      description = "CoreRAD IPv6 NDP RA daemon";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        LimitNPROC = 512;
+        LimitNOFILE = 1048576;
+        CapabilityBoundingSet = "CAP_NET_ADMIN CAP_NET_RAW";
+        AmbientCapabilities = "CAP_NET_ADMIN CAP_NET_RAW";
+        NoNewPrivileges = true;
+        DynamicUser = true;
+        ExecStart = "${getBin cfg.package}/bin/corerad -c=${cfg.configFile}";
+        Restart = "on-failure";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/matterbridge.nix b/nixos/modules/services/networking/matterbridge.nix
index bad35133459..b8b4f37c84a 100644
--- a/nixos/modules/services/networking/matterbridge.nix
+++ b/nixos/modules/services/networking/matterbridge.nix
@@ -111,7 +111,7 @@ in
       serviceConfig = {
         User = cfg.user;
         Group = cfg.group;
-        ExecStart = "${pkgs.matterbridge.bin}/bin/matterbridge -conf ${matterbridgeConfToml}";
+        ExecStart = "${pkgs.matterbridge}/bin/matterbridge -conf ${matterbridgeConfToml}";
         Restart = "always";
         RestartSec = "10";
       };
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index 47b10e408c0..5b3eb6f04b4 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -484,6 +484,24 @@ in {
               -gui-address=${cfg.guiAddress} \
               -home=${cfg.configDir}
           '';
+          MemoryDenyWriteExecute = true;
+          NoNewPrivileges = true;
+          PrivateDevices = true;
+          PrivateMounts = true;
+          PrivateTmp = true;
+          PrivateUsers = true;
+          ProtectControlGroups = true;
+          ProtectHostname = true;
+          ProtectKernelModules = true;
+          ProtectKernelTunables = true;
+          RestrictNamespaces = true;
+          RestrictRealtime = true;
+          RestrictSUIDSGID = true;
+          CapabilityBoundingSet = [
+            "~CAP_SYS_PTRACE" "~CAP_SYS_ADMIN"
+            "~CAP_SETGID" "~CAP_SETUID" "~CAP_SETPCAP"
+            "~CAP_SYS_TIME" "~CAP_KILL"
+          ];
         };
       };
       syncthing-init = mkIf (
diff --git a/nixos/modules/services/networking/zerotierone.nix b/nixos/modules/services/networking/zerotierone.nix
index 764af3846fe..069e15a909b 100644
--- a/nixos/modules/services/networking/zerotierone.nix
+++ b/nixos/modules/services/networking/zerotierone.nix
@@ -38,10 +38,13 @@ in
   config = mkIf cfg.enable {
     systemd.services.zerotierone = {
       description = "ZeroTierOne";
-      path = [ cfg.package ];
-      bindsTo = [ "network-online.target" ];
-      after = [ "network-online.target" ];
+
       wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      wants = [ "network-online.target" ];
+
+      path = [ cfg.package ];
+
       preStart = ''
         mkdir -p /var/lib/zerotier-one/networks.d
         chmod 700 /var/lib/zerotier-one
@@ -53,6 +56,7 @@ in
         ExecStart = "${cfg.package}/bin/zerotier-one -p${toString cfg.port}";
         Restart = "always";
         KillMode = "process";
+        TimeoutStopSec = 5;
       };
     };
 
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index 4460f89ec5c..fd17e4b54f0 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -629,6 +629,9 @@ in
 
     environment.systemPackages = [httpd];
 
+    # required for "apachectl configtest"
+    environment.etc."httpd/httpd.conf".source = httpdConf;
+
     services.httpd.phpOptions =
       ''
         ; Needed for PHP's mail() function.
diff --git a/nixos/modules/services/web-servers/nginx/gitweb.nix b/nixos/modules/services/web-servers/nginx/gitweb.nix
index 272fd148018..f7fb07bb797 100644
--- a/nixos/modules/services/web-servers/nginx/gitweb.nix
+++ b/nixos/modules/services/web-servers/nginx/gitweb.nix
@@ -3,8 +3,9 @@
 with lib;
 
 let
-  cfg = config.services.gitweb;
-  package = pkgs.gitweb.override (optionalAttrs cfg.gitwebTheme {
+  cfg = config.services.nginx.gitweb;
+  gitwebConfig = config.services.gitweb;
+  package = pkgs.gitweb.override (optionalAttrs gitwebConfig.gitwebTheme {
     gitwebTheme = true;
   });
 
@@ -17,13 +18,45 @@ in
       default = false;
       type = types.bool;
       description = ''
-        If true, enable gitweb in nginx. Access it at http://yourserver/gitweb
+        If true, enable gitweb in nginx.
+      '';
+    };
+
+    location = mkOption {
+      default = "/gitweb";
+      type = types.str;
+      description = ''
+        Location to serve gitweb on.
+      '';
+    };
+
+    user = mkOption {
+      default = "nginx";
+      type = types.str;
+      description = ''
+        Existing user that the CGI process will belong to. (Default almost surely will do.)
+      '';
+    };
+
+    group = mkOption {
+      default = "nginx";
+      type = types.str;
+      description = ''
+        Group that the CGI process will belong to. (Set to <literal>config.services.gitolite.group</literal> if you are using gitolite.)
+      '';
+    };
+
+    virtualHost = mkOption {
+      default = "_";
+      type = types.str;
+      description = ''
+        VirtualHost to serve gitweb on. Default is catch-all.
       '';
     };
 
   };
 
-  config = mkIf config.services.nginx.gitweb.enable {
+  config = mkIf cfg.enable {
 
     systemd.services.gitweb = {
       description = "GitWeb service";
@@ -32,22 +65,22 @@ in
         FCGI_SOCKET_PATH = "/run/gitweb/gitweb.sock";
       };
       serviceConfig = {
-        User = "nginx";
-        Group = "nginx";
+        User = cfg.user;
+        Group = cfg.group;
         RuntimeDirectory = [ "gitweb" ];
       };
       wantedBy = [ "multi-user.target" ];
     };
 
     services.nginx = {
-      virtualHosts.default = {
-        locations."/gitweb/static/" = {
+      virtualHosts.${cfg.virtualHost} = {
+        locations."${cfg.location}/static/" = {
           alias = "${package}/static/";
         };
-        locations."/gitweb/" = {
+        locations."${cfg.location}/" = {
           extraConfig = ''
             include ${pkgs.nginx}/conf/fastcgi_params;
-            fastcgi_param GITWEB_CONFIG ${cfg.gitwebConfigFile};
+            fastcgi_param GITWEB_CONFIG ${gitwebConfig.gitwebConfigFile};
             fastcgi_pass unix:/run/gitweb/gitweb.sock;
           '';
         };
diff --git a/nixos/modules/services/web-servers/unit/default.nix b/nixos/modules/services/web-servers/unit/default.nix
index 2303dfa9540..b0b837cd192 100644
--- a/nixos/modules/services/web-servers/unit/default.nix
+++ b/nixos/modules/services/web-servers/unit/default.nix
@@ -111,7 +111,7 @@ in {
         AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" "CAP_SETGID" "CAP_SETUID" ];
         # Security
         NoNewPrivileges = true;
-        # Sanboxing
+        # Sandboxing
         ProtectSystem = "full";
         ProtectHome = true;
         RuntimeDirectory = "unit";
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
index 6d9bd284bc7..ba9906072b3 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -144,7 +144,7 @@ in
       services.gnome3.core-shell.enable = true;
       services.gnome3.core-utilities.enable = mkDefault true;
 
-      services.xserver.displayManager.sessionPackages = [ pkgs.gnome3.gnome-session ];
+      services.xserver.displayManager.sessionPackages = [ pkgs.gnome3.gnome-session.sessions ];
 
       environment.extraInit = ''
         ${concatMapStrings (p: ''
@@ -249,11 +249,17 @@ in
       services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
       services.telepathy.enable = mkDefault true;
 
-      systemd.packages = with pkgs.gnome3; [ vino gnome-session ];
+      systemd.packages = with pkgs.gnome3; [
+        gnome-session
+        gnome-shell
+        vino
+      ];
 
       services.avahi.enable = mkDefault true;
 
-      xdg.portal.extraPortals = [ pkgs.gnome3.gnome-shell ];
+      xdg.portal.extraPortals = [
+        pkgs.gnome3.gnome-shell
+      ];
 
       services.geoclue2.enable = mkDefault true;
       services.geoclue2.enableDemoAgent = false; # GNOME has its own geoclue agent
diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix
index 2f8c8cc9013..325023f4121 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -174,6 +174,10 @@ in
       "f /run/gdm/.config/gnome-initial-setup-done 0711 gdm gdm - yes"
     ];
 
+    # Otherwise GDM will not be able to start correctly and display Wayland sessions
+    systemd.packages = with pkgs.gnome3; [ gnome-session gnome-shell ];
+    environment.systemPackages = [ pkgs.gnome3.adwaita-icon-theme ];
+
     systemd.services.display-manager.wants = [
       # Because sd_login_monitor_new requires /run/systemd/machines
       "systemd-machined.service"
diff --git a/nixos/modules/services/x11/hardware/multitouch.nix b/nixos/modules/services/x11/hardware/multitouch.nix
deleted file mode 100644
index c03bb3b494f..00000000000
--- a/nixos/modules/services/x11/hardware/multitouch.nix
+++ /dev/null
@@ -1,94 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let cfg = config.services.xserver.multitouch;
-    disabledTapConfig = ''
-      Option "MaxTapTime" "0"
-      Option "MaxTapMove" "0"
-      Option "TapButton1" "0"
-      Option "TapButton2" "0"
-      Option "TapButton3" "0"
-    '';
-in {
-
-  options = {
-
-    services.xserver.multitouch = {
-
-      enable = mkOption {
-        default = false;
-        description = "Whether to enable multitouch touchpad support.";
-      };
-
-      invertScroll = mkOption {
-        default = false;
-        type = types.bool;
-        description = "Whether to invert scrolling direction à la OSX Lion";
-      };
-
-      ignorePalm = mkOption {
-        default = false;
-        type = types.bool;
-        description = "Whether to ignore touches detected as being the palm (i.e when typing)";
-      };
-
-      tapButtons = mkOption {
-        type = types.bool;
-        default = true;
-        description = "Whether to enable tap buttons.";
-      };
-
-      buttonsMap = mkOption {
-        type = types.listOf types.int;
-        default = [3 2 0];
-        example = [1 3 2];
-        description = "Remap touchpad buttons.";
-        apply = map toString;
-      };
-
-      additionalOptions = mkOption {
-        type = types.str;
-        default = "";
-        example = ''
-          Option "ScaleDistance" "50"
-          Option "RotateDistance" "60"
-        '';
-        description = ''
-          Additional options for mtrack touchpad driver.
-        '';
-      };
-
-    };
-
-  };
-
-  config = mkIf cfg.enable {
-
-    services.xserver.modules = [ pkgs.xf86_input_mtrack ];
-
-    services.xserver.config =
-      ''
-        # Automatically enable the multitouch driver
-        Section "InputClass"
-          MatchIsTouchpad "on"
-          Identifier "Touchpads"
-          Driver "mtrack"
-          Option "IgnorePalm" "${boolToString cfg.ignorePalm}"
-          Option "ClickFinger1" "${builtins.elemAt cfg.buttonsMap 0}"
-          Option "ClickFinger2" "${builtins.elemAt cfg.buttonsMap 1}"
-          Option "ClickFinger3" "${builtins.elemAt cfg.buttonsMap 2}"
-          ${optionalString (!cfg.tapButtons) disabledTapConfig}
-          ${optionalString cfg.invertScroll ''
-            Option "ScrollUpButton" "5"
-            Option "ScrollDownButton" "4"
-            Option "ScrollLeftButton" "7"
-            Option "ScrollRightButton" "6"
-          ''}
-          ${cfg.additionalOptions}
-        EndSection
-      '';
-
-  };
-
-}
diff --git a/nixos/modules/services/x11/unclutter.nix b/nixos/modules/services/x11/unclutter.nix
index 2478aaabb79..c0868604a68 100644
--- a/nixos/modules/services/x11/unclutter.nix
+++ b/nixos/modules/services/x11/unclutter.nix
@@ -32,7 +32,7 @@ in {
       default = 1;
     };
 
-    threeshold = mkOption {
+    threshold = mkOption {
       description = "Minimum number of pixels considered cursor movement";
       type = types.int;
       default = 1;
@@ -72,6 +72,11 @@ in {
     };
   };
 
+  imports = [
+    (mkRenamedOptionModule [ "services" "unclutter" "threeshold" ]
+                           [ "services"  "unclutter" "threshold" ])
+  ];
+
   meta.maintainers = with lib.maintainers; [ rnhmjoj ];
 
 }
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index 3e289a63139..56a9d6b1138 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -49,7 +49,7 @@ let
     (assertValueOneOf "Kind" [
       "bond" "bridge" "dummy" "gre" "gretap" "ip6gre" "ip6tnl" "ip6gretap" "ipip"
       "ipvlan" "macvlan" "macvtap" "sit" "tap" "tun" "veth" "vlan" "vti" "vti6"
-      "vxlan" "geneve" "vrf" "vcan" "vxcan" "wireguard" "netdevsim"
+      "vxlan" "geneve" "vrf" "vcan" "vxcan" "wireguard" "netdevsim" "xfrm"
     ])
     (assertByteFormat "MTUBytes")
     (assertMacAddress "MACAddress")
@@ -172,6 +172,14 @@ let
     (assertValueOneOf "AllSlavesActive" boolValues)
   ];
 
+  checkXfrm = checkUnitConfig "Xfrm" [
+    (assertOnlyFields [
+      "InterfaceId" "Independent"
+    ])
+    (assertRange "InterfaceId" 1 4294967295)
+    (assertValueOneOf "Independent" boolValues)
+  ];
+
   checkNetwork = checkUnitConfig "Network" [
     (assertOnlyFields [
       "Description" "DHCP" "DHCPServer" "LinkLocalAddressing" "IPv4LLRoute"
@@ -182,7 +190,7 @@ let
       "IPv6HopLimit" "IPv4ProxyARP" "IPv6ProxyNDP" "IPv6ProxyNDPAddress"
       "IPv6PrefixDelegation" "IPv6MTUBytes" "Bridge" "Bond" "VRF" "VLAN"
       "IPVLAN" "MACVLAN" "VXLAN" "Tunnel" "ActiveSlave" "PrimarySlave"
-      "ConfigureWithoutCarrier"
+      "ConfigureWithoutCarrier" "Xfrm"
     ])
     # Note: For DHCP the values both, none, v4, v6 are deprecated
     (assertValueOneOf "DHCP" ["yes" "no" "ipv4" "ipv6" "both" "none" "v4" "v6"])
@@ -477,6 +485,18 @@ let
       '';
     };
 
+    xfrmConfig = mkOption {
+      default = {};
+      example = { InterfaceId = 1; };
+      type = types.addCheck (types.attrsOf unitOption) checkXfrm;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[Xfrm]</literal> section of the unit.  See
+        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+      '';
+    };
+
   };
 
   addressOptions = {
@@ -712,6 +732,16 @@ let
       '';
     };
 
+    xfrm = mkOption {
+      default = [ ];
+      type = types.listOf types.str;
+      description = ''
+        A list of xfrm interfaces to be added to the network section of the
+        unit.  See <citerefentry><refentrytitle>systemd.network</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+      '';
+    };
+
     addresses = mkOption {
       default = [ ];
       type = with types; listOf (submodule addressOptions);
@@ -810,6 +840,11 @@ let
             ${attrsToSection def.bondConfig}
 
           ''}
+          ${optionalString (def.xfrmConfig != { }) ''
+            [Xfrm]
+            ${attrsToSection def.xfrmConfig}
+
+          ''}
           ${optionalString (def.wireguardConfig != { }) ''
             [WireGuard]
             ${attrsToSection def.wireguardConfig}
@@ -847,6 +882,7 @@ let
           ${concatStringsSep "\n" (map (s: "MACVLAN=${s}") def.macvlan)}
           ${concatStringsSep "\n" (map (s: "VXLAN=${s}") def.vxlan)}
           ${concatStringsSep "\n" (map (s: "Tunnel=${s}") def.tunnel)}
+          ${concatStringsSep "\n" (map (s: "Xfrm=${s}") def.xfrm)}
 
           ${optionalString (def.dhcpConfig != { }) ''
             [DHCP]
diff --git a/nixos/modules/system/boot/systemd-lib.nix b/nixos/modules/system/boot/systemd-lib.nix
index 28ad4f121bb..fd1a5b9f62c 100644
--- a/nixos/modules/system/boot/systemd-lib.nix
+++ b/nixos/modules/system/boot/systemd-lib.nix
@@ -147,7 +147,13 @@ in rec {
       done
 
       # Symlink all units provided listed in systemd.packages.
-      for i in ${toString cfg.packages}; do
+      packages="${toString cfg.packages}"
+
+      # Filter duplicate directories
+      declare -A unique_packages
+      for k in $packages ; do unique_packages[$k]=1 ; done
+
+      for i in ''${!unique_packages[@]}; do
         for fn in $i/etc/systemd/${type}/* $i/lib/systemd/${type}/*; do
           if ! [[ "$fn" =~ .wants$ ]]; then
             if [[ -d "$fn" ]]; then
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 67dfd931d4b..eb69457fb7e 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -33,6 +33,7 @@ in
   bind = handleTest ./bind.nix {};
   bittorrent = handleTest ./bittorrent.nix {};
   #blivet = handleTest ./blivet.nix {};   # broken since 2017-07024
+  buildkite-agent = handleTest ./buildkite-agent.nix {};
   boot = handleTestOn ["x86_64-linux"] ./boot.nix {}; # syslinux is unsupported on aarch64
   boot-stage1 = handleTest ./boot-stage1.nix {};
   borgbackup = handleTest ./borgbackup.nix {};
@@ -61,6 +62,7 @@ in
   containers-portforward = handleTest ./containers-portforward.nix {};
   containers-restart_networking = handleTest ./containers-restart_networking.nix {};
   containers-tmpfs = handleTest ./containers-tmpfs.nix {};
+  corerad = handleTest ./corerad.nix {};
   couchdb = handleTest ./couchdb.nix {};
   deluge = handleTest ./deluge.nix {};
   dhparams = handleTest ./dhparams.nix {};
diff --git a/nixos/tests/buildkite-agent.nix b/nixos/tests/buildkite-agent.nix
new file mode 100644
index 00000000000..3c824c9aedf
--- /dev/null
+++ b/nixos/tests/buildkite-agent.nix
@@ -0,0 +1,36 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+{
+  name = "buildkite-agent";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ flokli ];
+  };
+
+  nodes = {
+    node1 = { pkgs, ... }: {
+      services.buildkite-agent = {
+        enable = true;
+        privateSshKeyPath = (import ./ssh-keys.nix pkgs).snakeOilPrivateKey;
+        tokenPath = (pkgs.writeText "my-token" "5678");
+      };
+    };
+    # don't configure ssh key, run as a separate user
+    node2 = { pkgs, ...}: {
+      services.buildkite-agent = {
+        enable = true;
+        tokenPath = (pkgs.writeText "my-token" "1234");
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+    # we can't wait on the unit to start up, as we obviously can't connect to buildkite,
+    # but we can look whether files are set up correctly
+
+    node1.wait_for_file("/var/lib/buildkite-agent/buildkite-agent.cfg")
+    node1.wait_for_file("/var/lib/buildkite-agent/.ssh/id_rsa")
+
+    node2.wait_for_file("/var/lib/buildkite-agent/buildkite-agent.cfg")
+  '';
+})
diff --git a/nixos/tests/certmgr.nix b/nixos/tests/certmgr.nix
index cb69f35e862..ef32f54400e 100644
--- a/nixos/tests/certmgr.nix
+++ b/nixos/tests/certmgr.nix
@@ -9,8 +9,8 @@ let
     inherit action;
     authority = {
       file = {
-        group = "nobody";
-        owner = "nobody";
+        group = "nginx";
+        owner = "nginx";
         path = "/tmp/${host}-ca.pem";
       };
       label = "www_ca";
@@ -18,14 +18,14 @@ let
       remote = "localhost:8888";
     };
     certificate = {
-      group = "nobody";
-      owner = "nobody";
+      group = "nginx";
+      owner = "nginx";
       path = "/tmp/${host}-cert.pem";
     };
     private_key = {
-      group = "nobody";
+      group = "nginx";
       mode = "0600";
-      owner = "nobody";
+      owner = "nginx";
       path = "/tmp/${host}-key.pem";
     };
     request = {
diff --git a/nixos/tests/corerad.nix b/nixos/tests/corerad.nix
new file mode 100644
index 00000000000..68b698857b4
--- /dev/null
+++ b/nixos/tests/corerad.nix
@@ -0,0 +1,71 @@
+import ./make-test-python.nix (
+  {
+    nodes = {
+      router = {config, pkgs, ...}: { 
+        config = {
+          # This machines simulates a router with IPv6 forwarding and a static IPv6 address.
+          boot.kernel.sysctl = {
+            "net.ipv6.conf.all.forwarding" = true;
+          };
+          networking.interfaces.eth1 = {
+            ipv6.addresses = [ { address = "fd00:dead:beef:dead::1"; prefixLength = 64; } ];
+          };
+          services.corerad = {
+            enable = true;
+            # Serve router advertisements to the client machine with prefix information matching
+            # any IPv6 /64 prefixes configured on this interface.
+            configFile = pkgs.writeText "corerad.toml" ''
+              [[interfaces]]
+              name = "eth1"
+              send_advertisements = true
+                [[interfaces.plugins]]
+                name = "prefix"
+                prefix = "::/64"
+            '';
+          };
+        };
+      };
+      client = {config, pkgs, ...}: {
+        # Use IPv6 SLAAC from router advertisements, and install rdisc6 so we can
+        # trigger one immediately.
+        config = {
+          boot.kernel.sysctl = {
+            "net.ipv6.conf.all.autoconf" = true;
+          };
+          environment.systemPackages = with pkgs; [
+            ndisc6
+          ];
+        };
+      };
+    };
+
+    testScript = ''
+      start_all()
+
+      with subtest("Wait for CoreRAD and network ready"):
+          # Ensure networking is online and CoreRAD is ready.
+          router.wait_for_unit("network-online.target")
+          client.wait_for_unit("network-online.target")
+          router.wait_for_unit("corerad.service")
+
+          # Ensure the client can reach the router.
+          client.wait_until_succeeds("ping -c 1 fd00:dead:beef:dead::1")
+
+      with subtest("Verify SLAAC on client"):
+          # Trigger a router solicitation and verify a SLAAC address is assigned from
+          # the prefix configured on the router.
+          client.wait_until_succeeds("rdisc6 -1 -r 10 eth1")
+          client.wait_until_succeeds(
+              "ip -6 addr show dev eth1 | grep -q 'fd00:dead:beef:dead:'"
+          )
+
+          addrs = client.succeed("ip -6 addr show dev eth1")
+
+          assert (
+              "fd00:dead:beef:dead:" in addrs
+          ), "SLAAC prefix was not found in client addresses after router advertisement"
+          assert (
+              "/64 scope global temporary" in addrs
+          ), "SLAAC temporary address was not configured on client after router advertisement"
+    '';
+  })
diff --git a/nixos/tests/elk.nix b/nixos/tests/elk.nix
index 80db0967d40..d3dc6dde135 100644
--- a/nixos/tests/elk.nix
+++ b/nixos/tests/elk.nix
@@ -10,8 +10,7 @@ let
   esUrl = "http://localhost:9200";
 
   mkElkTest = name : elk :
-   let elasticsearchGe7 = builtins.compareVersions elk.elasticsearch.version "7" >= 0;
-   in import ./make-test-python.nix ({
+    import ./make-test-python.nix ({
     inherit name;
     meta = with pkgs.stdenv.lib.maintainers; {
       maintainers = [ eelco offline basvandijk ];
@@ -91,8 +90,7 @@ let
               };
 
               elasticsearch-curator = {
-                # The current version of curator (5.6) doesn't support elasticsearch >= 7.0.0.
-                enable = !elasticsearchGe7;
+                enable = true;
                 actionYAML = ''
                 ---
                 actions:
@@ -173,7 +171,7 @@ let
           one.wait_until_succeeds(
               total_hits("Supercalifragilisticexpialidocious") + " | grep -v 0"
           )
-    '' + pkgs.lib.optionalString (!elasticsearchGe7) ''
+
       with subtest("Elasticsearch-curator works"):
           one.systemctl("stop logstash")
           one.systemctl("start elasticsearch-curator")
diff --git a/pkgs/applications/audio/bshapr/default.nix b/pkgs/applications/audio/bshapr/default.nix
index 732a8cf1ce2..88a671495c3 100644
--- a/pkgs/applications/audio/bshapr/default.nix
+++ b/pkgs/applications/audio/bshapr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BShapr";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mi8f0svq1h9cmmxyskcazr5x2q4dls3j9jc6ahi5rlk7i0bpa74";
+    sha256 = "1422xay28jkmqlj5y4vhb57kljy6ysvxh20cxpfxm980m8n54gq5";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/bslizr/default.nix b/pkgs/applications/audio/bslizr/default.nix
index 3273d7de68c..97a9d60ec27 100644
--- a/pkgs/applications/audio/bslizr/default.nix
+++ b/pkgs/applications/audio/bslizr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BSlizr";
-  version = "1.2.2";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "${version}";
-    sha256 = "0q92ygz17iiriwzqylmaxd5ml2bhqy3n6c3f7g71n4hn9z3bl3s1";
+    sha256 = "0gyczxhd1jch7lwz3y1nrbpc0dycw9cc5i144rpif6b9gd2y1h1j";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/distrho/default.nix b/pkgs/applications/audio/distrho/default.nix
index 0d2858713eb..53d5330fb74 100644
--- a/pkgs/applications/audio/distrho/default.nix
+++ b/pkgs/applications/audio/distrho/default.nix
@@ -9,13 +9,13 @@ let
               else "linux";
 in stdenv.mkDerivation rec {
   pname = "distrho-ports";
-  version = "2018-04-16";
+  version = "unstable-2019-10-09";
 
   src = fetchFromGitHub {
     owner = "DISTRHO";
     repo = "DISTRHO-Ports";
-    rev = version;
-    sha256 = "0l4zwl4mli8jzch32a1fh7c88r9q17xnkxsdw17ds5hadnxlk12v";
+    rev = "7e62235e809e59770d0d91d2c48c3f50ce7c027a";
+    sha256 = "10hpsjcmk0cgcsic9r1wxyja9x6q9wb8w8254dlrnzyswl54r1f8";
   };
 
   configurePhase = ''
diff --git a/pkgs/applications/audio/ecasound/default.nix b/pkgs/applications/audio/ecasound/default.nix
index 6c9cd628a51..c17f6b745b3 100644
--- a/pkgs/applications/audio/ecasound/default.nix
+++ b/pkgs/applications/audio/ecasound/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ecasound";
-  version = "2.9.2";
+  version = "2.9.3";
 
   src = fetchurl {
     url = "https://ecasound.seul.org/download/ecasound-${version}.tar.gz";
-    sha256 = "15rcs28fq2wfvfs66p5na7adq88b55qszbhshpizgdbyqzgr2jf1";
+    sha256 = "1m7njfjdb7sqf0lhgc4swihgdr4snkg8v02wcly08wb5ar2fr2s6";
   };
 
   buildInputs = [ alsaLib audiofile libjack2 liblo liboil libsamplerate libsndfile lilv lv2 ];
diff --git a/pkgs/applications/audio/giada/default.nix b/pkgs/applications/audio/giada/default.nix
index 8907011c16f..eff1d6411a1 100644
--- a/pkgs/applications/audio/giada/default.nix
+++ b/pkgs/applications/audio/giada/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "giada";
-  version = "0.16.0";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "monocasual";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1lbxqa4kwzjdd79whrjgh8li453z4ckkjx4s4qzmrv7aqa2xmfsf";
+    sha256 = "0b3lhjs6myml5r5saky15523sbc3qr43r9rh047vhsiafmqdvfq1";
   };
 
   configureFlags = [ "--target=linux" ];
diff --git a/pkgs/applications/audio/ingen/default.nix b/pkgs/applications/audio/ingen/default.nix
index 1e249b51fb7..9d3fb6aae40 100644
--- a/pkgs/applications/audio/ingen/default.nix
+++ b/pkgs/applications/audio/ingen/default.nix
@@ -1,23 +1,24 @@
 { stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv
-, lv2Unstable, makeWrapper, pkgconfig, python, raul, rdflib, serd, sord, sratom
+, lv2, makeWrapper, pkgconfig, python, raul, rdflib, serd, sord, sratom
 , wafHook
 , suil
 }:
 
 stdenv.mkDerivation  rec {
-  name = "ingen-unstable-${rev}";
-  rev = "2017-07-22";
+  pname = "ingen";
+  version = "unstable-2019-12-09";
+  name = "${pname}-${version}";
 
   src = fetchgit {
-    url = "https://git.drobilla.net/cgit.cgi/ingen.git";
-    rev = "cc4a4db33f4d126a07a4a498e053c5fb9a883be3";
-    sha256 = "1gmwmml486r9zq4w65v91mfaz36af9zzyjkmi74m8qmh67ffqn3w";
+    url = "https://gitlab.com/drobilla/ingen.git";
+    rev = "e32f32a360f2bf8f017ea347b6d1e568c0beaf68";
+    sha256 = "0wjn2i3j7jb0bmxymg079xpk4iplb91q0xqqnvnpvyldrr7gawlb";
     deepClone = true;
   };
 
   nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [
-    boost ganv glibmm gtkmm2 libjack2 lilv lv2Unstable makeWrapper
+    boost ganv glibmm gtkmm2 libjack2 lilv lv2 makeWrapper
     python raul serd sord sratom suil
   ];
 
@@ -38,7 +39,7 @@ stdenv.mkDerivation  rec {
   meta = with stdenv.lib; {
     description = "A modular audio processing system using JACK and LV2 or LADSPA plugins";
     homepage = http://drobilla.net/software/ingen;
-    license = licenses.gpl3;
+    license = licenses.agpl3Plus;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix
index a40d5101b34..51ec102dbfd 100644
--- a/pkgs/applications/audio/jalv/default.nix
+++ b/pkgs/applications/audio/jalv/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkgconfig, python
+{ stdenv, fetchurl, gtk3, libjack2, lilv, lv2, pkgconfig, python
 , serd, sord , sratom, suil, wafHook }:
 
 stdenv.mkDerivation  rec {
   pname = "jalv";
-  version = "1.6.2";
+  version = "1.6.4";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "13al2hb9s3m7jgbg051x704bmzmcg4wb56cfh8z588kiyh0mxpaa";
+    sha256 = "1wwfn7yzbs37s2rdlfjgks63svd5g14yyzd2gdl7h0z12qncwsy2";
   };
 
   nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [
-    gtk2 libjack2 lilv lv2 python serd sord sratom suil
+    gtk3 libjack2 lilv lv2 python serd sord sratom suil
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/noise-repellent/default.nix b/pkgs/applications/audio/noise-repellent/default.nix
index 146e13f34de..bc5b35396e2 100644
--- a/pkgs/applications/audio/noise-repellent/default.nix
+++ b/pkgs/applications/audio/noise-repellent/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "noise-repellent";
-  version = "unstable-2018-12-29";
+  version = "0.1.5";
 
   src = fetchFromGitHub {
     owner = "lucianodato";
     repo = pname;
-    rev = "9efdd0b41ec184a792087c87cbf5382f455e33ec";
-    sha256 = "0pn9cxapfvb5l62q86bchyfll1290vi0rhrzarb1jpc4ix7kz53c";
+    rev = version;
+    sha256 = "0hb89x9i2knzan46q4nwscf5zmnb2nwf4w13xl2c0y1mx1ls1mwl";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/rofi-mpd/default.nix b/pkgs/applications/audio/rofi-mpd/default.nix
index 9def4a292f6..97c737675ad 100644
--- a/pkgs/applications/audio/rofi-mpd/default.nix
+++ b/pkgs/applications/audio/rofi-mpd/default.nix
@@ -2,16 +2,16 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "rofi-mpd";
-  version = "1.1.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "JakeStanger";
     repo = "Rofi_MPD";
     rev = "v${version}";
-    sha256 = "0pdra1idgas3yl9z9v7b002igwg2c1mv0yw2ffb8rsbx88x4gbai";
+    sha256 = "12zzx0m2nwyzxzzqgzq30a27k015kcw4ylvs7cyalf5gf6sg27kl";
   };
 
-  propagatedBuildInputs = with python3Packages; [ mutagen mpd2 ];
+  propagatedBuildInputs = with python3Packages; [ mutagen mpd2 toml appdirs ];
 
   # upstream doesn't contain a test suite
   doCheck = false;
diff --git a/pkgs/applications/audio/rosegarden/default.nix b/pkgs/applications/audio/rosegarden/default.nix
index 7c4cefb6ba4..aaceab6dc08 100644
--- a/pkgs/applications/audio/rosegarden/default.nix
+++ b/pkgs/applications/audio/rosegarden/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cmake, makedepend, perl, pkgconfig, qttools, wrapQtAppsHook
-, dssi, fftwSinglePrec, ladspaH, ladspaPlugins, libjack2
+, dssi, fftwSinglePrec, ladspaH, ladspaPlugins, libjack2, alsaLib
 , liblo, liblrdf, libsamplerate, libsndfile, lirc ? null, qtbase }:
 
 stdenv.mkDerivation (rec {
@@ -30,6 +30,7 @@ stdenv.mkDerivation (rec {
     libsndfile
     lirc
     qtbase
+    alsaLib
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index 9599dc9407c..6b9630fa6b7 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeDesktopItem, openssl, xorg, curl, fontconfig, krb5, zlib, dotnet-sdk }:
+{ stdenv, fetchurl, makeDesktopItem, openssl, xorg, curl, fontconfig, krb5, zlib, dotnet-netcore }:
 
 stdenv.mkDerivation rec {
   pname = "wasabiwallet";
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     cd $out/opt/${pname}
     for i in $(find . -type f -name '*.so') wassabee
       do
-        patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ openssl stdenv.cc.cc.lib xorg.libX11 curl fontconfig.lib krb5 zlib dotnet-sdk ]} $i
+        patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ openssl stdenv.cc.cc.lib xorg.libX11 curl fontconfig.lib krb5 zlib dotnet-netcore ]} $i
       done
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" wassabee
     ln -s $out/opt/${pname}/wassabee $out/bin/${pname}
diff --git a/pkgs/applications/editors/bviplus/default.nix b/pkgs/applications/editors/bviplus/default.nix
index 7d70ad14b5d..5fab7fe9da6 100644
--- a/pkgs/applications/editors/bviplus/default.nix
+++ b/pkgs/applications/editors/bviplus/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bviplus";
-  version = "0.9.4";
+  version = "1.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/bviplus/bviplus/${version}/bviplus-${version}.tgz";
-    sha256 = "10x6fbn8v6i0y0m40ja30pwpyqksnn8k2vqd290vxxlvlhzah4zb";
+    sha256 = "08q2fdyiirabbsp5qpn3v8jxp4gd85l776w6gqvrbjwqa29a8arg";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 364d432f1e3..dea00c99d7e 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -479,7 +479,7 @@ rec {
     src = fetchzip {
       stripRoot = false;
       url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.14-201912100610/org.eclipse.jdt-4.14.zip;
-      sha256 = "16c5v59mkb0cyfhf2475ds1ajma65bhqfxjr6v59hianqxq9h9la";
+      sha256 = "1c2a23qviv58xljpq3yb37ra8cqw7jh52hmzqlg1nij2sdxb6hm5";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/focuswriter/default.nix b/pkgs/applications/editors/focuswriter/default.nix
index b08e3b5fa23..ccda1b4d4cb 100644
--- a/pkgs/applications/editors/focuswriter/default.nix
+++ b/pkgs/applications/editors/focuswriter/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "focuswriter";
-  version = "1.7.3";
+  version = "1.7.4";
 
   src = fetchurl {
     url = "https://gottcode.org/focuswriter/focuswriter-${version}-src.tar.bz2";
-    sha256 = "155wf7z1g2yx6fb41w29kcb0m2rhnk9ci5yw882yy86s4x20b1jq";
+    sha256 = "1fli85p9d58gsg2kwmncqdcw1nmx062kddbrhr50mnsn04dc4j3g";
   };
 
   nativeBuildInputs = [ pkgconfig qmake qttools ];
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index a6580581f85..8cb70af40e0 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -4,12 +4,12 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "kakoune-unwrapped";
-  version = "2019.12.10";
+  version = "2020.01.16";
   src = fetchFromGitHub {
     repo = "kakoune";
     owner = "mawww";
     rev = "v${version}";
-    sha256 = "0cb3ndlczxvxnzb91s4idxx0cy30mnrc4znsbjpnch68fvpm0x2f";
+    sha256 = "16v6z1nzj54j19fraxhb18jdby4zfs1br91gxpg9s2s4nsk0km0b";
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
diff --git a/pkgs/applications/editors/quartus-prime/default.nix b/pkgs/applications/editors/quartus-prime/default.nix
new file mode 100644
index 00000000000..6a6ea80ca45
--- /dev/null
+++ b/pkgs/applications/editors/quartus-prime/default.nix
@@ -0,0 +1,119 @@
+{ buildFHSUserEnv, makeDesktopItem, stdenv, lib, requireFile, unstick, cycloneVSupport ? true }:
+
+let
+  quartus = stdenv.mkDerivation rec {
+    version = "19.1.0.670";
+    pname = "quartus-prime-lite";
+
+    src = let
+      require = {name, sha256}: requireFile {
+        inherit name sha256;
+        url = "${meta.homepage}/${lib.versions.majorMinor version}/?edition=lite&platform=linux";
+      };
+    in map require ([{
+      name = "QuartusLiteSetup-${version}-linux.run";
+      sha256 = "15vxvqxqdk29ahlw3lkm1nzxyhzy4626wb9s5f2h6sjgq64r8m7f";
+    } {
+      name = "ModelSimSetup-${version}-linux.run";
+      sha256 = "0j1vfr91jclv88nam2plx68arxmz4g50sqb840i60wqd5b0l3y6r";
+    }] ++ lib.optional cycloneVSupport {
+      name = "cyclonev-${version}.qdz";
+      sha256 = "0bqxpvjgph0y6slk0jq75mcqzglmqkm0jsx10y9xz5llm6zxzqab";
+    });
+
+    nativeBuildInputs = [ unstick ];
+
+    buildCommand = let
+      installers = lib.sublist 0 2 src;
+      components = lib.sublist 2 ((lib.length src) - 2) src;
+      copyInstaller = installer: ''
+        # `$(cat $NIX_CC/nix-support/dynamic-linker) $src[0]` often segfaults, so cp + patchelf
+        cp ${installer} $TEMP/${installer.name}
+        chmod u+w,+x $TEMP/${installer.name}
+        patchelf --interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $TEMP/${installer.name}
+      '';
+      copyComponent = component: "cp ${component} $TEMP/${component.name}";
+      # leaves enabled: quartus, modelsim_ase, devinfo
+      disabledComponents = [
+        "quartus_help"
+        "quartus_update"
+        "modelsim_ae"
+        # Devices
+        "arria_lite"
+        "cyclone"
+        "cyclone10lp"
+        "max"
+        "max10"
+      ] ++ lib.optional (!cycloneVSupport) "cyclonev";
+    in ''
+    ${lib.concatMapStringsSep "\n" copyInstaller installers}
+    ${lib.concatMapStringsSep "\n" copyComponent components}
+
+    unstick $TEMP/${(builtins.head installers).name} \
+      --disable-components ${lib.concatStringsSep "," disabledComponents} \
+      --mode unattended --installdir $out --accept_eula 1
+
+    # This patch is from https://wiki.archlinux.org/index.php/Altera_Design_Software
+    patch --force --strip 0 --directory $out < ${./vsim.patch}
+
+    rm -r $out/uninstall $out/logs
+  '';
+
+    meta = {
+      homepage = "https://fpgasoftware.intel.com";
+      description = "FPGA design and simulation software";
+      license = lib.licenses.unfree;
+      platforms = lib.platforms.linux;
+      maintainers = with lib.maintainers; [ kwohlfahrt ];
+    };
+  };
+
+  desktopItem = makeDesktopItem {
+    name = quartus.name;
+    exec = "quartus";
+    icon = "quartus";
+    desktopName = "Quartus";
+    genericName = "Quartus FPGA IDE";
+    categories = "Development;";
+  };
+
+# I think modelsim_ase/linux/vlm checksums itself, so use FHSUserEnv instead of `patchelf`
+in buildFHSUserEnv {
+  name = "quartus-prime-lite";
+
+  targetPkgs = pkgs: with pkgs; [
+    # quartus requirements
+    glib
+    xorg.libICE
+    xorg.libSM
+    zlib
+    # qsys requirements
+    xorg.libXtst
+    xorg.libXi
+  ];
+  multiPkgs = pkgs: with pkgs; let
+    # This seems ugly - can we override `libpng = libpng12` for all `pkgs`?
+    freetype = pkgs.freetype.override { libpng = libpng12; };
+    fontconfig = pkgs.fontconfig.override { inherit freetype; };
+    libXft = pkgs.xorg.libXft.override { inherit freetype fontconfig; };
+  in [
+    # modelsim requirements
+    libxml2
+    ncurses5
+    unixODBC
+    libXft
+    # common requirements
+    freetype
+    fontconfig
+    xorg.libX11
+    xorg.libXext
+    xorg.libXrender
+  ];
+
+  extraInstallCommands = ''
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+  '';
+
+  runScript = "${quartus}/quartus/bin/quartus";
+}
diff --git a/pkgs/applications/editors/quartus-prime/vsim.patch b/pkgs/applications/editors/quartus-prime/vsim.patch
new file mode 100644
index 00000000000..36dc41b7ef1
--- /dev/null
+++ b/pkgs/applications/editors/quartus-prime/vsim.patch
@@ -0,0 +1,11 @@
+--- modelsim_ase/vco     	1970-01-01 01:00:01.000000000 +0100
++++ modelsim_ase/vco      	1970-01-01 01:00:01.000000000 +0100
+@@ -207,7 +207,7 @@
+           2.[5-9]*)         vco="linux" ;;
+           2.[1-9][0-9]*)    vco="linux" ;;
+           3.[0-9]*)    		vco="linux" ;;
+-          *)                vco="linux_rh60" ;;
++          *)                vco="linux" ;;
+         esac
+         if [ ! -x "$dir/$vco/vsim" ]; then
+           if [ -x "$dir/linuxle/vsim" ]; then
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index 13b7f4db0c5..372d9508174 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "texstudio";
-  version = "2.12.16";
+  version = "2.12.20";
 
   src = fetchFromGitHub {
     owner = "${pname}-org";
     repo = pname;
     rev = version;
-    sha256 = "0ck65fvz6mzfpqdb1ndgyvgxdnslrwhdr1swgck4gaghcrgbg3gq";
+    sha256 = "0hywx2knqdrslzmm4if476ryf4ma0aw5j8kdp6lyrz2jx7az2gqa";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
@@ -20,10 +20,10 @@ mkDerivation rec {
   meta = with lib; {
     description = "TeX and LaTeX editor";
     longDescription=''
-	Fork of TeXMaker, this editor is a full fledged IDE for
-	LaTeX editing with completion, structure viewer, preview,
-	spell checking and support of any compilation chain.
-	'';
+      Fork of TeXMaker, this editor is a full fledged IDE for
+      LaTeX editing with completion, structure viewer, preview,
+      spell checking and support of any compilation chain.
+    '';
     homepage = http://texstudio.sourceforge.net;
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/editors/uberwriter/default.nix b/pkgs/applications/editors/uberwriter/default.nix
new file mode 100644
index 00000000000..ac3fb920da0
--- /dev/null
+++ b/pkgs/applications/editors/uberwriter/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchFromGitHub, meson, ninja, cmake
+, wrapGAppsHook, pkgconfig, desktop-file-utils
+, appstream-glib, pythonPackages, glib, gobject-introspection
+, gtk3, webkitgtk, glib-networking, gnome3, gspell, texlive
+, haskellPackages}:
+
+let
+  pythonEnv = pythonPackages.python.withPackages(p: with p;
+    [ regex setuptools python-Levenshtein pyenchant pygobject3 pycairo pypandoc ]);
+  texliveDist = texlive.combined.scheme-medium;
+
+in stdenv.mkDerivation rec {
+  pname = "uberwriter";
+  version = "unstable-2019-11-29";
+
+  src = fetchFromGitHub {
+    owner  = pname;
+    repo   = pname;
+    rev    = "7606a55389f8516d9fed7927fa50ff8822ee9e38";
+    sha256 = "0ky001vs9nfvqf05h4q7fl0n8vsgim59z22i66a8sw6bqipv62sg";
+  };
+
+  nativeBuildInputs = [ meson ninja cmake pkgconfig desktop-file-utils
+    appstream-glib wrapGAppsHook ];
+
+  buildInputs = [ glib pythonEnv gobject-introspection gtk3
+    gnome3.adwaita-icon-theme webkitgtk gspell texliveDist
+    glib-networking ];
+
+  postPatch = ''
+    patchShebangs --build build-aux/meson_post_install.py
+
+    substituteInPlace uberwriter/config.py --replace "/usr/share/uberwriter" "$out/share/uberwriter"
+
+    # get rid of unused distributed dependencies
+    rm -r uberwriter/{pylocales,pressagio}
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PYTHONPATH : "$out/lib/python${pythonEnv.pythonVersion}/site-packages/"
+      --prefix PATH : "${texliveDist}/bin"
+      --prefix PATH : "${haskellPackages.pandoc-citeproc}/bin"
+    )
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://uberwriter.github.io/uberwriter/;
+    description = "A distraction free Markdown editor for GNU/Linux";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/applications/graphics/apngasm/2.nix b/pkgs/applications/graphics/apngasm/2.nix
new file mode 100644
index 00000000000..166bc135c19
--- /dev/null
+++ b/pkgs/applications/graphics/apngasm/2.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip, libpng, zlib, zopfli }:
+
+stdenv.mkDerivation rec {
+  pname = "apngasm";
+  version = "2.91";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/${pname}/${pname}-${version}-src.zip";
+    stripRoot = false;
+    sha256 = "0qhljqql159xkn1l83vz0q8wvzr7rjz4jnhiy0zn36pgvacg0zn1";
+  };
+
+  buildInputs = [ libpng zlib zopfli ];
+
+  postPatch = ''
+    rm -rf libpng zlib zopfli
+  '';
+
+  NIX_CFLAGS_LINK = "-lzopfli";
+
+  installPhase = ''
+    install -Dt $out/bin apngasm
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Create highly optimized Animated PNG files from PNG/TGA images";
+    homepage = "http://apngasm.sourceforge.net/";
+    license = licenses.zlib;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/applications/graphics/apngasm/default.nix b/pkgs/applications/graphics/apngasm/default.nix
new file mode 100644
index 00000000000..8d50696efcb
--- /dev/null
+++ b/pkgs/applications/graphics/apngasm/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, boost, libpng, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "apngasm";
+  version = "3.1.9";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "d50bfb0cf14c376f4cfb94eb91c61d795a76b715"; # not tagged, but in debian/changelog
+    sha256 = "0pk0r8x1950pm6j3d5wgryvy3ldm7a9gl59jmnwnjmg1sf9mzf97";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ boost libpng zlib ];
+
+  meta = with stdenv.lib; {
+    description = "Create an APNG from multiple PNG files";
+    homepage = "https://github.com/apngasm/apngasm";
+    license = licenses.zlib;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index 3595908f143..f15804038e7 100644
--- a/pkgs/applications/graphics/avocode/default.nix
+++ b/pkgs/applications/graphics/avocode/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "avocode";
-  version = "4.2.1";
+  version = "4.2.2";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "06g12gqri1sgfklla6jfpi7wm2qjazakcjs2w2rhrphnl50r6ca7";
+    sha256 = "0f4cmai2d1x7wbqllxp9na6gxgqfxqav8n4g9azyvm6ymd8zjnx8";
   };
 
   libPath = stdenv.lib.makeLibraryPath (with xorg; [
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index c71e95b21af..c81ad47db84 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "12.4.2";
+  version = "12.5.3";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
-    sha256 = "1mngn90cn9hixa0xkhk7mb02gjp480wnipjy2jzkq8kwpai1gm1m";
+    sha256 = "048lksq2akkyi5jg1fiz455n2nv6w58kv8xb9y41qms5dshpww2q";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/gthumb/default.nix b/pkgs/applications/graphics/gthumb/default.nix
index f0057f3a1a8..b51db1e945f 100644
--- a/pkgs/applications/graphics/gthumb/default.nix
+++ b/pkgs/applications/graphics/gthumb/default.nix
@@ -33,11 +33,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gthumb";
-  version = "3.8.2";
+  version = "3.8.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q";
+    sha256 = "1a0gss9cjcwayrcpkam5kc1giwbfy38jgqxvh33in9gfq9dgrygg";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/imlibsetroot/default.nix b/pkgs/applications/graphics/imlibsetroot/default.nix
index 49868bbd831..8ca4d71bb56 100644
--- a/pkgs/applications/graphics/imlibsetroot/default.nix
+++ b/pkgs/applications/graphics/imlibsetroot/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation {
     homepage = http://robotmonkeys.net/2010/03/30/imlibsetroot/;
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ lucas8 ];
+    maintainers = with maintainers; [ dwarfmaster ];
   };
 }
diff --git a/pkgs/applications/graphics/krop/default.nix b/pkgs/applications/graphics/krop/default.nix
index c4c889cdba5..401e5f6fc57 100644
--- a/pkgs/applications/graphics/krop/default.nix
+++ b/pkgs/applications/graphics/krop/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python3Packages, libsForQt5, ghostscript }:
+{ stdenv, fetchFromGitHub, python3Packages, libsForQt5, ghostscript, qt5}:
 
 python3Packages.buildPythonApplication rec {
   pname = "krop";
@@ -19,6 +19,11 @@ python3Packages.buildPythonApplication rec {
     ghostscript
   ];
 
+  nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+  makeWrapperArgs = [
+   "\${qtWrapperArgs[@]}"
+  ];
+
   # Disable checks because of interference with older Qt versions // xcb
   doCheck = false;
 
diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix
index 426985d312c..843801011f7 100644
--- a/pkgs/applications/graphics/renderdoc/default.nix
+++ b/pkgs/applications/graphics/renderdoc/default.nix
@@ -13,14 +13,14 @@ let
   pythonPackages = python3Packages;
 in
 mkDerivation rec {
-  version = "1.5";
+  version = "1.6";
   pname = "renderdoc";
 
   src = fetchFromGitHub {
     owner = "baldurk";
     repo = "renderdoc";
     rev = "v${version}";
-    sha256 = "0a05f6qfq90wrf4fixchp9knx4nhqhwjxl02n03a7k56xzxxnlci";
+    sha256 = "0b2f9m5azzvcjbmxkwcl1d7jvvp720b81zwn19rrskznfcc2r1i8";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/graphics/sxiv/default.nix b/pkgs/applications/graphics/sxiv/default.nix
index 99c151f8c80..f5429958328 100644
--- a/pkgs/applications/graphics/sxiv/default.nix
+++ b/pkgs/applications/graphics/sxiv/default.nix
@@ -4,28 +4,24 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "sxiv";
-  version = "25";
+  version = "26";
 
   src = fetchFromGitHub {
     owner = "muennich";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13s1lfar142hq1j7xld0ri616p4bqs57b17yr4d0b9a9w7liz4hp";
+    sha256 = "0xaawlfdy7b277m38mgg4423kd7p1ffn0dq4hciqs6ivbb3q9c4f";
   };
 
-  postUnpack = ''
-    substituteInPlace $sourceRoot/Makefile \
-      --replace /usr/local $out
-  '';
-
   configFile = optionalString (conf!=null) (builtins.toFile "config.def.h" conf);
   preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
 
   buildInputs = [ libXft imlib2 giflib libexif ];
 
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
   postInstall = ''
-    mkdir -p $out/share/applications/
-    cp -v sxiv.desktop $out/share/applications/
+    install -Dt $out/share/applications sxiv.desktop
   '';
 
   meta = {
diff --git a/pkgs/applications/graphics/tesseract/tesseract4.nix b/pkgs/applications/graphics/tesseract/tesseract4.nix
index 548f58a50fb..95896337720 100644
--- a/pkgs/applications/graphics/tesseract/tesseract4.nix
+++ b/pkgs/applications/graphics/tesseract/tesseract4.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tesseract";
-  version = "4.1.0";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "tesseract-ocr";
     repo = "tesseract";
     rev = version;
-    sha256 = "06i7abxy2ifmdx1fak81cx0kns85n8hvp0339jk6242fhshibljx";
+    sha256 = "1ca27zbjpx35nxh9fha410z3jskwyj06i5hqiqdc08s2d7kdivwn";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 0bfa850cb26..3c45b05e9e8 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -121,6 +121,7 @@ let
       kio-extras = callPackage ./kio-extras.nix {};
       kldap = callPackage ./kldap.nix {};
       kleopatra = callPackage ./kleopatra.nix {};
+      kmahjongg = callPackage ./kmahjongg.nix {};
       kmail = callPackage ./kmail.nix {};
       kmail-account-wizard = callPackage ./kmail-account-wizard.nix {};
       kmailtransport = callPackage ./kmailtransport.nix {};
@@ -160,6 +161,7 @@ let
       libkgapi = callPackage ./libkgapi.nix {};
       libkipi = callPackage ./libkipi.nix {};
       libkleo = callPackage ./libkleo.nix {};
+      libkmahjongg = callPackage ./libkmahjongg.nix {};
       libkomparediff2 = callPackage ./libkomparediff2.nix {};
       libksane = callPackage ./libksane.nix {};
       libksieve = callPackage ./libksieve.nix {};
diff --git a/pkgs/applications/kde/kmahjongg.nix b/pkgs/applications/kde/kmahjongg.nix
new file mode 100644
index 00000000000..b51d0d147e2
--- /dev/null
+++ b/pkgs/applications/kde/kmahjongg.nix
@@ -0,0 +1,19 @@
+{ lib
+, mkDerivation
+, extra-cmake-modules
+, kdoctools
+, kdeclarative
+, knewstuff
+, libkdegames
+, libkmahjongg
+}:
+
+mkDerivation {
+  name = "kmahjongg";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ kdeclarative libkmahjongg knewstuff libkdegames ];
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ genesis ];
+  };
+}
diff --git a/pkgs/applications/kde/libkmahjongg.nix b/pkgs/applications/kde/libkmahjongg.nix
new file mode 100644
index 00000000000..4b7b8538290
--- /dev/null
+++ b/pkgs/applications/kde/libkmahjongg.nix
@@ -0,0 +1,18 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  kcompletion, kconfig, kconfigwidgets, kcoreaddons, ki18n,
+  kwidgetsaddons
+}:
+
+mkDerivation {
+  name = "libkmahjongg";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ genesis ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ kcompletion kconfig kconfigwidgets kcoreaddons ki18n
+    kwidgetsaddons ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/pkgs/applications/misc/bashSnippets/default.nix b/pkgs/applications/misc/bashSnippets/default.nix
index b0af34ec760..0976e7625bc 100644
--- a/pkgs/applications/misc/bashSnippets/default.nix
+++ b/pkgs/applications/misc/bashSnippets/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
 , curl, python, bind, iproute, bc, gitMinimal }:
 let
-  version = "1.17.3";
+  version = "1.23.0";
   deps = lib.makeBinPath [
     curl
     python
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
     owner = "alexanderepstein";
     repo = "Bash-Snippets";
     rev = "v${version}";
-    sha256 = "1xdjk8bjh7l6h7gdqrra1dh4wdq89wmd0jsirsvqa3bmcsb2wz1r";
+    sha256 = "044nxgd3ic2qr6hgq5nymn3dyf5i4s8mv5z4az6jvwlrjnvbg8cp";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 9701db3c0b7..fd86f21dff0 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -1,7 +1,27 @@
-{ lib, mkDerivation, fetchurl, poppler_utils, pkgconfig, libpng
-, imagemagick, libjpeg, fontconfig, podofo, qtbase, qmake, icu, sqlite
-, unrarSupport ? false, chmlib, python2Packages, libusb1, libmtp
-, xdg_utils, makeDesktopItem, removeReferencesTo
+{ lib
+, mkDerivation
+, fetchurl
+, poppler_utils
+, pkgconfig
+, libpng
+, imagemagick
+, libjpeg
+, fontconfig
+, podofo
+, qtbase
+, qmake
+, icu
+, sqlite
+, hunspell
+, hyphen
+, unrarSupport ? false
+, chmlib
+, python2Packages
+, libusb1
+, libmtp
+, xdg_utils
+, makeDesktopItem
+, removeReferencesTo
 }:
 
 let
@@ -10,11 +30,11 @@ let
 in
 mkDerivation rec {
   pname = "calibre";
-  version = "3.48.0";
+  version = "4.8.0";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
-    sha256 = "034m89h7j2088p324i1kya33dfldmqyynjxk3w98xiqkz7q2hi82";
+    sha256 = "1lk44qh3hzqhpz2b00iik7cgjg4xm36qjh2pxflkjnbk691gbpqk";
   };
 
   patches = [
@@ -44,17 +64,49 @@ mkDerivation rec {
   CALIBRE_PY3_PORT = builtins.toString pypkgs.isPy3k;
 
   buildInputs = [
-    poppler_utils libpng imagemagick libjpeg
-    fontconfig podofo qtbase chmlib icu sqlite libusb1 libmtp xdg_utils
-  ] ++ (with pypkgs; [
-    apsw cssselect css-parser dateutil dnspython feedparser html5-parser lxml markdown netifaces pillow
-    python pyqt5_with_qtwebkit sip
-    regex msgpack beautifulsoup4 html2text
-    # the following are distributed with calibre, but we use upstream instead
-    odfpy
-  ]) ++ lib.optionals (!pypkgs.isPy3k) (with pypkgs; [
-    mechanize
-  ]);
+    poppler_utils
+    libpng
+    imagemagick
+    libjpeg
+    fontconfig
+    podofo
+    qtbase
+    chmlib
+    icu
+    hunspell
+    hyphen
+    sqlite
+    libusb1
+    libmtp
+    xdg_utils
+  ] ++ (
+    with pypkgs; [
+      apsw
+      cssselect
+      css-parser
+      dateutil
+      dnspython
+      feedparser
+      html5-parser
+      lxml
+      markdown
+      netifaces
+      pillow
+      python
+      pyqt5_with_qtwebkit
+      sip
+      regex
+      msgpack
+      beautifulsoup4
+      html2text
+      # the following are distributed with calibre, but we use upstream instead
+      odfpy
+    ]
+  ) ++ lib.optionals (!pypkgs.isPy3k) (
+    with pypkgs; [
+      mechanize
+    ]
+  );
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/applications/misc/cbatticon/default.nix b/pkgs/applications/misc/cbatticon/default.nix
index d6680c61eb9..ac2948c2d6e 100644
--- a/pkgs/applications/misc/cbatticon/default.nix
+++ b/pkgs/applications/misc/cbatticon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, gettext, glib, gtk3, libnotify }:
+{ stdenv, fetchFromGitHub, pkgconfig, gettext, glib, gtk3, libnotify, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "cbatticon";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ivm2dzhsa9ir25ry418r2qg2llby9j7a6m3arbvq5c3kaj8m9jr";
   };
 
-  nativeBuildInputs = [ pkgconfig gettext ];
+  nativeBuildInputs = [ pkgconfig gettext wrapGAppsHook ];
 
   buildInputs =  [ glib gtk3 libnotify ];
 
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index d0011eee9c1..f6236a301db 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dbeaver-ce";
-  version = "6.3.2";
+  version = "6.3.3";
 
   desktopItem = makeDesktopItem {
     name = "dbeaver";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "0yr79p4vdg6s6c8sry6qnf2ifjcjdapn0sff2crsnz331rsh27sm";
+    sha256 = "08rf7igfzh5g40bapsj0f424jxfx62y97syr3fxmqv3ik7iav9k4";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/misc/girara/default.nix b/pkgs/applications/misc/girara/default.nix
index 6bfb4907807..45bca7d3fbf 100644
--- a/pkgs/applications/misc/girara/default.nix
+++ b/pkgs/applications/misc/girara/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "girara";
-  version = "0.3.3";
+  version = "0.3.4";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://git.pwmt.org/pwmt/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
-    sha256 = "13vr62kkkqs2xsrmsn114n6c6084ix1qyjksczqsc3s2y3bdsmj4";
+    sha256 = "08zdsr4zwi49facsl5596l0g1xqqv2jk3sqk841gkxwawcggim44";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext check dbus xvfb_run ];
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 9a9edba512a..9a4e765a1d6 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "gpxsee";
-  version = "7.18";
+  version = "7.19";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "1z3knfqfv0rwsq66adk0qngw1r500yvy4z259bygqkzbn2l5fcjk";
+    sha256 = "0mfmj0g6q6p2i6bd64ik1hq2l1ddqxnc6i9m30dnfl4v1zyvlc38";
   };
 
   nativeBuildInputs = [ qmake ];
diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix
index 957f0f7f68b..8b908f1f9cf 100644
--- a/pkgs/applications/misc/ikiwiki/default.nix
+++ b/pkgs/applications/misc/ikiwiki/default.nix
@@ -19,7 +19,7 @@ assert mercurialSupport -> (mercurial != null);
 
 let
   name = "ikiwiki";
-  version = "3.20170111";
+  version = "3.20190228";
 
   lib = stdenv.lib;
 in
@@ -27,8 +27,8 @@ stdenv.mkDerivation {
   name = "${name}-${version}";
 
   src = fetchurl {
-    url = "mirror://debian/pool/main/i/ikiwiki/${name}_${version}.tar.xz";
-    sha256 = "00d7yzv426fvqbhvzyafddv7fa6b4j2647b0wi371wd5yjj9j3sz";
+    url = "mirror://debian/pool/main/i/ikiwiki/${name}_${version}.orig.tar.xz";
+    sha256 = "17pyblaqhkb61lxl63bzndiffism8k859p54k3k4sghclq6lsynh";
   };
 
   buildInputs = [ which ]
@@ -44,7 +44,11 @@ stdenv.mkDerivation {
     ++ lib.optionals subversionSupport [subversion]
     ++ lib.optionals mercurialSupport [mercurial];
 
-  patchPhase = ''
+  # A few markdown tests fail, but this is expected when using Text::Markdown
+  # instead of Text::Markdown::Discount.
+  patches = [ ./remove-markdown-tests.patch ];
+
+  postPatch = ''
     sed -i s@/usr/bin/perl@${perlPackages.perl}/bin/perl@ pm_filter mdwn2man
     sed -i s@/etc/ikiwiki@$out/etc@ Makefile.PL
     sed -i /ENV{PATH}/d ikiwiki.in
@@ -83,6 +87,5 @@ stdenv.mkDerivation {
     license = stdenv.lib.licenses.gpl2Plus;
     platforms = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.peti ];
-    broken = true; # https://ikiwiki.info/bugs/imagemagick_6.9.8_test_suite_failure/
   };
 }
diff --git a/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch b/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch
new file mode 100644
index 00000000000..c981857a248
--- /dev/null
+++ b/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch
@@ -0,0 +1,37 @@
+diff --git a/t/mdwn.t b/t/mdwn.t
+index ca3180139..d64750403 100755
+--- a/t/mdwn.t
++++ b/t/mdwn.t
+@@ -16,32 +16,17 @@ is(IkiWiki::htmlize("foo", "foo", "mdwn",
+ 	"C. S. Lewis wrote books\n"),
+ 	"<p>C. S. Lewis wrote books</p>\n", "alphalist off by default");
+ 
+-$config{mdwn_alpha_lists} = 1;
+-like(IkiWiki::htmlize("foo", "foo", "mdwn",
+-	"A. One\n".
+-	"B. Two\n"),
+-	qr{<ol\W}, "alphalist can be enabled");
+-
+ $config{mdwn_alpha_lists} = 0;
+ like(IkiWiki::htmlize("foo", "foo", "mdwn",
+ 	"A. One\n".
+ 	"B. Two\n"),
+ 	qr{<p>A. One\sB. Two</p>\n}, "alphalist can be disabled");
+ 
+-like(IkiWiki::htmlize("foo", "foo", "mdwn",
+-	"This works[^1]\n\n[^1]: Sometimes it doesn't.\n"),
+-	qr{<p>This works<sup\W}, "footnotes on by default");
+-
+ $config{mdwn_footnotes} = 0;
+ like(IkiWiki::htmlize("foo", "foo", "mdwn",
+ 	"An unusual link label: [^1]\n\n[^1]: http://example.com/\n"),
+ 	qr{<a href="http://example\.com/">\^1</a>}, "footnotes can be disabled");
+ 
+-$config{mdwn_footnotes} = 1;
+-like(IkiWiki::htmlize("foo", "foo", "mdwn",
+-	"This works[^1]\n\n[^1]: Sometimes it doesn't.\n"),
+-	qr{<p>This works<sup\W}, "footnotes can be enabled");
+-
+ SKIP: {
+ 	skip 'set $IKIWIKI_TEST_ASSUME_MODERN_DISCOUNT if you have Discount 2.2.0+', 4
+ 		unless $ENV{IKIWIKI_TEST_ASSUME_MODERN_DISCOUNT};
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index bab4c2d0b7d..c6bcd56167c 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -33,13 +33,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "keepassxc";
-  version = "2.5.1";
+  version = "2.5.2";
 
   src = fetchFromGitHub {
     owner = "keepassxreboot";
     repo = "keepassxc";
     rev = version;
-    sha256 = "0dkya9smx81c5cgcwk2gi2m1pabfff1v9gd3ngl42sdvyb63wgdq";
+    sha256 = "0z5bd17qaq7zpv96gw6qwv6rb4xx7xjq86ss6wm5zskcrraf7r7n";
   };
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [
diff --git a/pkgs/applications/misc/marktext/default.nix b/pkgs/applications/misc/marktext/default.nix
new file mode 100644
index 00000000000..5813fc15c0d
--- /dev/null
+++ b/pkgs/applications/misc/marktext/default.nix
@@ -0,0 +1,35 @@
+{ appimageTools, fetchurl, lib }:
+
+let
+  pname = "marktext";
+  version = "v0.16.0-rc.2";
+in
+appimageTools.wrapType2 rec {
+  name = "${pname}-${version}-binary";
+
+  src = fetchurl {
+    url = "https://github.com/marktext/marktext/releases/download/${version}/marktext-x86_64.AppImage";
+    sha256 = "1w1mxa1j94zr36xhvlhzq8d77pi359vdxqb2j8mnz2bib9khxk9k";
+  };
+
+  profile = ''
+    export LC_ALL=C.UTF-8
+  '';
+
+  multiPkgs = null; # no 32bit needed
+  extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
+    p.libsecret
+    p.xlibs.libxkbfile
+  ];
+
+  # Strip version from binary name.
+  extraInstallCommands = "mv $out/bin/${name} $out/bin/${pname}";
+
+  meta = with lib; {
+    description = "A simple and elegant markdown editor, available for Linux, macOS and Windows.";
+    homepage = "https://marktext.app";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nh2 ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/misc/nnn/default.nix b/pkgs/applications/misc/nnn/default.nix
index e7c32c13095..f2df8a09ff2 100644
--- a/pkgs/applications/misc/nnn/default.nix
+++ b/pkgs/applications/misc/nnn/default.nix
@@ -4,17 +4,17 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "nnn";
-  version = "2.8.1";
+  version = "2.9";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0h7j0wcpwwd2fibggr1nwkqpvhv2i1qnk54c4x6hixx31yidy2l0";
+    sha256 = "1pifrcrc8fh85b8h8x01hih9wfclb95sf38s443bs3gip1zdrlk3";
   };
 
-  configFile = optionalString (conf!=null) (builtins.toFile "nnn.h" conf);
-  preBuild = optionalString (conf!=null) "cp ${configFile} nnn.h";
+  configFile = optionalString (conf != null) (builtins.toFile "nnn.h" conf);
+  preBuild = optionalString (conf != null) "cp ${configFile} nnn.h";
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ readline ncurses ];
@@ -30,9 +30,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Small ncurses-based file browser forked from noice";
-    homepage = https://github.com/jarun/nnn;
+    homepage = "https://github.com/jarun/nnn";
     license = licenses.bsd2;
     platforms = platforms.all;
-    maintainers = with maintainers; [ jfrankenau ];
+    maintainers = with maintainers; [ jfrankenau filalex77 ];
   };
 }
diff --git a/pkgs/applications/misc/notejot/default.nix b/pkgs/applications/misc/notejot/default.nix
index b91f8018c57..1c02441474c 100644
--- a/pkgs/applications/misc/notejot/default.nix
+++ b/pkgs/applications/misc/notejot/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "notejot";
-  version = "1.5.8";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "lainsce";
     repo = pname;
     rev = version;
-    sha256 = "1v7f4xy5iwdjyf4416qpiwzifi68n466faia1hxzsq18fb1ri0af";
+    sha256 = "1b65m9gvq8ziqqgnw3vgjpjb1qw7bww40ngd3gardsjg9lcwpxaf";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/qolibri/default.nix b/pkgs/applications/misc/qolibri/default.nix
index b7c137258fd..c96fbab4d81 100644
--- a/pkgs/applications/misc/qolibri/default.nix
+++ b/pkgs/applications/misc/qolibri/default.nix
@@ -23,7 +23,7 @@ mkDerivation {
     homepage = https://github.com/ludios/qolibri;
     description = "EPWING reader for viewing Japanese dictionaries";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ivan ];
+    maintainers = with maintainers; [ ];
     license = licenses.gpl2;
   };
 }
diff --git a/pkgs/applications/misc/syncthingtray/default.nix b/pkgs/applications/misc/syncthingtray/default.nix
index 5a722ffe111..907a2e046df 100644
--- a/pkgs/applications/misc/syncthingtray/default.nix
+++ b/pkgs/applications/misc/syncthingtray/default.nix
@@ -20,14 +20,14 @@
 }:
 
 mkDerivation rec {
-  version = "0.10.4";
+  version = "0.10.5";
   pname = "syncthingtray";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "syncthingtray";
     rev = "v${version}";
-    sha256 = "068v63bb1bq6vz7byhnd28l6dmr4jmivailxmjv86wakbsqvlhbi";
+    sha256 = "177ywk1dfdfwz7kvlxx3an1q4vv2c27d7qivy0463a3hvkacybxn";
   };
 
   buildInputs = [ qtbase cpp-utilities qtutilities ]
diff --git a/pkgs/applications/misc/tmatrix/default.nix b/pkgs/applications/misc/tmatrix/default.nix
index ead8d7298e6..c03918c4875 100644
--- a/pkgs/applications/misc/tmatrix/default.nix
+++ b/pkgs/applications/misc/tmatrix/default.nix
@@ -1,22 +1,27 @@
-{ stdenv, lib, fetchFromGitHub, cmake, ncurses }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, installShellFiles
+, ncurses
+}:
 
 stdenv.mkDerivation rec {
   pname = "tmatrix";
-  version = "1.1";
+  version = "1.3";
 
   src = fetchFromGitHub {
     owner = "M4444";
     repo = "TMatrix";
     rev = "v${version}";
-    sha256 = "1x9drk3wdsd6vzcypk3x068sqcbgis488s9fhcpsv8xgb496rd6y";
+    sha256 = "1cvgxmdpdzpl8w4z3sh4g5pbd15rd8s1kcspi9v95yf9rydyy69s";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake installShellFiles ];
   buildInputs = [ ncurses ];
 
   postInstall = ''
-    mkdir -p $out/share/man/man6
-    install -m 0644 ../tmatrix.6 $out/share/man/man6
+    installManPage ../tmatrix.6
   '';
 
   meta = with lib; {
@@ -30,6 +35,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/M4444/TMatrix";
     license = licenses.gpl2;
     platforms = platforms.all;
-    maintainers = with maintainers; [ infinisil ];
+    maintainers = with maintainers; [ infinisil filalex77 ];
   };
 }
diff --git a/pkgs/applications/misc/todoist/default.nix b/pkgs/applications/misc/todoist/default.nix
index eaedad16748..74b2b770215 100644
--- a/pkgs/applications/misc/todoist/default.nix
+++ b/pkgs/applications/misc/todoist/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "todoist";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "sachaos";
     repo = "todoist";
     rev = "v${version}";
-    sha256 = "0qhmv65il14lns817yxhma784jw5bz629svzh2ykrmilx5f7dxqc";
+    sha256 = "0d3c621jaqxd6i58xm6nvi0avrh5mk23r169i95bn73igzw62w33";
   };
 
   modSha256 = "1nnp5ijz4n34gc97rar4wlvlbx21ndpjyb2mc6gxdk1wzx3mgswp";
diff --git a/pkgs/applications/misc/toot/default.nix b/pkgs/applications/misc/toot/default.nix
index 13e0cdfb260..bfae97027c4 100644
--- a/pkgs/applications/misc/toot/default.nix
+++ b/pkgs/applications/misc/toot/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
-  version = "0.24.0";
+  version = "0.25.0";
   name    = "toot-${version}";
 
   src = fetchFromGitHub {
     owner  = "ihabunek";
     repo   = "toot";
     rev    = version;
-    sha256 = "1szpmkxc1lqfphicfcj0z7b1nq97xmb4ppwf806p8w0fxj1shil3";
+    sha256 = "0padc5jbr55spgbp4avk2kj3if52vzn8dg4ch5jc3h5fvb9l8xz1";
   };
 
   checkInputs = with python3Packages; [ pytest ];
diff --git a/pkgs/applications/misc/vit/default.nix b/pkgs/applications/misc/vit/default.nix
index 9953af19d90..cb71ec1524b 100644
--- a/pkgs/applications/misc/vit/default.nix
+++ b/pkgs/applications/misc/vit/default.nix
@@ -1,5 +1,6 @@
 { lib
 , python3Packages
+, glibcLocales
 , taskwarrior }:
 
 with python3Packages;
@@ -20,6 +21,7 @@ buildPythonApplication rec {
     tzlocal
     urwid
   ];
+  checkInputs = [ glibcLocales ];
 
   makeWrapperArgs = [ "--suffix" "PATH" ":" "${taskwarrior}/bin" ];
 
diff --git a/pkgs/applications/misc/xmrig/default.nix b/pkgs/applications/misc/xmrig/default.nix
index b1bf98704c5..2f4c7828134 100644
--- a/pkgs/applications/misc/xmrig/default.nix
+++ b/pkgs/applications/misc/xmrig/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xmrig";
-  version = "5.4.0";
+  version = "5.5.1";
 
   src = fetchFromGitHub {
     owner = "xmrig";
     repo = "xmrig";
     rev = "v${version}";
-    sha256 = "1rwnlhzhasfa2iklrp897c0z7nvav2bz2z6nk41fvwwd3bsay2sf";
+    sha256 = "0b9wfv56s5696q493hid2ikaa0ycgkx35pyyvxsdrcf94rbxyd1x";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/xygrib/default.nix b/pkgs/applications/misc/xygrib/default.nix
index 4f1ecbaf8b3..c7f449d97cd 100644
--- a/pkgs/applications/misc/xygrib/default.nix
+++ b/pkgs/applications/misc/xygrib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, bzip2, qtbase, qttools, libnova, proj, libpng, openjpeg } :
+{ stdenv, fetchFromGitHub, wrapQtAppsHook, cmake, bzip2, qtbase, qttools, libnova, proj, libpng, openjpeg } :
 
 stdenv.mkDerivation rec {
   version = "1.2.6.1";
@@ -11,13 +11,14 @@ stdenv.mkDerivation rec {
     sha256 = "0xzsm8pr0zjk3f8j880fg5n82jyxn8xf1330qmmq1fqv7rsrg9ia";
   };
 
-  nativeBuildInputs = [ cmake qttools ];
+  nativeBuildInputs = [ cmake qttools wrapQtAppsHook ];
   buildInputs = [ bzip2 qtbase libnova proj openjpeg libpng ];
   cmakeFlags = [ "-DOPENJPEG_INCLUDE_DIR=${openjpeg.dev}/include/openjpeg-2.3" ];
 
   postInstall = ''
-    mkdir $out/bin
-    ln -s $out/XyGrib/XyGrib $out/bin/XyGrib
+    wrapQtApp $out/XyGrib/XyGrib
+    mkdir -p $out/bin
+    ln -s $out/XyGrib/XyGrib $out/bin/xygrib
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/browsers/captive-browser/default.nix b/pkgs/applications/networking/browsers/captive-browser/default.nix
index e7bec997119..88bd32da8f1 100644
--- a/pkgs/applications/networking/browsers/captive-browser/default.nix
+++ b/pkgs/applications/networking/browsers/captive-browser/default.nix
@@ -16,7 +16,7 @@ buildGoPackage rec {
     description = "Dedicated Chrome instance to log into captive portals without messing with DNS settings";
     homepage = https://blog.filippo.io/captive-browser;
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ volth ];
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index bbfce71a115..b8160a682e6 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -61,7 +61,7 @@ mkChromiumDerivation (base: rec {
   meta = {
     description = "An open source web browser from Google";
     homepage = http://www.chromium.org/;
-    maintainers = with maintainers; [ bendlas ivan thefloweringash ];
+    maintainers = with maintainers; [ bendlas thefloweringash ];
     license = if enableWideVine then licenses.unfree else licenses.bsd3;
     platforms = platforms.linux;
     hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 567c57aab2c..0e339253ade 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "72.0.1";
+  version = "72.0.2";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ach/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ach/firefox-72.0.2.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha512 = "43f16a510e67ba4bb836ebf3dd570503b902ec1ae900a9e89c551ea6bdca6bab1a716e92877c16b738b871cb4d1660ad5c26baff3d57d455845f47f22b53bca7";
+      sha512 = "0d7e31be07e67a439754848dd7b2ae0dca7fdb172cc7900db84a90ce15a40bd2c2e80127700195f4b54e3c3008d4541785c58c0fd0bbce060eae6ece77d38b8f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/af/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/af/firefox-72.0.2.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha512 = "72f3fc490ada32629f555e0245056e6f328c05048dada3cd286292d7a8a891f9fa9303ff701a66734f04f1375aebc2c0574637df766f8ae9bd5036db3e81ec15";
+      sha512 = "1ee09340d97967d956d484bb217c5fd7ac3c26ad28714889c18b860f1d03baabc93ea00567743bb0c1650cc7c6934ba56e184e734e89fc0c602cfdbf6366ace8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/an/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/an/firefox-72.0.2.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha512 = "3afb1f5a6da6d7a4bb4ac047405b511501a1429602f9c1ecc92bfd17d37ae425c7255101598692084a68591c4bcd27c5f94f0cbc10881f6ab4b77b2525521b25";
+      sha512 = "0a50c181a81823b80c67619d97bb1d371544a7b2109fbe02822a44070088247fc11fffe920e0f7290186f85719567114797720fae780f2c6eaf3d1c2462c87fd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ar/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ar/firefox-72.0.2.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "99a0390d39e6a49ba635cad30466c3c7a55e0aedac25ae13a9ba2f1faff5e8b26813d198e072fa4725028ee526647649b49ad0416cba470619692aff530dbf05";
+      sha512 = "ca36d482348ffb63af556076e2c3ee159e084837c3e3186f4162856ba573dc0fa8849bdef581440bdfe2e12fbec05b0dca4ba294d9483d99020e26b40be4a5d9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ast/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ast/firefox-72.0.2.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "7636e9d0c70267100a0bbb0bfbdae3bb308e2c38fd3d38bf8b13c4112a98aac298fb57391c7e985b5d76b7205b1d180e8d9eb1f73264b44758ab5c56d2ebaccb";
+      sha512 = "9f9e3a9fe29a83a37f09e4b25cb65ad76f30d7312a79d27455d1e9fd51bfcba6db7b25e15a0d8442e1ca26c6f5aa1614c6e1815a0aef56547e81ea8458b89c94";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/az/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/az/firefox-72.0.2.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha512 = "47d667d87a32e9ab1cd33814b3d231324ef3a1ad302d9372476347c118230b8a85b038a04fbf704e93fe4dfd40f9070ee7e61f00d5503884f8c798832d034629";
+      sha512 = "95ee55c2802c4ea246ef3da4121f382d05c60354fae641485c92d7ca05c4c08e1d41b9fe6e5e5109d8e16a14ceed9692ff96d32a81a29770d937c65b5378128e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/be/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/be/firefox-72.0.2.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "1a3d6654e9f804fb5eda6700cf6c183fb72dced8d90236a860da636a8856040ad33095e41858b3ae7028d02278998b9aa9adb2ee0daee2600e213185cf43f374";
+      sha512 = "fcc595ddec94a0f5eb4106b1b462a8aad2d8d030bf5288ca08a3b56ee8138ad019457eaecc891175229a00b94d786633f5e1dd501470e94ed6a5e4b9b8d332f3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/bg/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/bg/firefox-72.0.2.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "8bb9c4eb8886f6d0ce5a284e09f77587f6bb091a02209a86c60e8c4f0d807a4c78779494db1fa81c10fb9463b9e6a24be7e47de4f52ea239bcaef07198ee9f15";
+      sha512 = "ce4ab1fd20bf0aa69a7cae0af232c9d6c7496b1e63469709f0b8914a2ca7a5dc295ca22f59e368b92b6938b22e582d308ed4c5d7b234350b25a4cb8e9e010cdd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/bn/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/bn/firefox-72.0.2.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha512 = "e9459e8cca78bbc048b26f0610c58e607896588d762b6ca59ed078867932cb35ae2abee79e8271885d7b10a7fb802e1aee73daa65abad64916f25dfd4bd9a7f0";
+      sha512 = "62db7f66b5ebb802243b429a90a368e6d0c1cc27e0382273b627bde7a9db48e32b3e3d7359cbeccc2bf70447534b3ec6a1cb4abcc66d715d971cc8cf1e8cc659";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/br/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/br/firefox-72.0.2.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "62c740962f855f22aad7c63b346fdb224a55cf3f7ee1935ee9103f2ab2a638c1f2dd1482cf8d4965f70dd8a56852f6dd676fbd84f5976d6a03c0142468f3b70a";
+      sha512 = "b7836b77b8311989167dc1bbe1b90994c27c03c555134be9df45b160d785b506ed8f7ed0d851f7e2a26ae14e8f8651ea87c077e012836bbeb5e06596dd7498db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/bs/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/bs/firefox-72.0.2.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha512 = "71078c35c8ad3fd131529178b75c8a9e3f57f398ff61e230f79fae38e44dfe72d6b9657adf1a636b082a4592ca62d89699e726f9f2bae0f1d5bb3399a8b7362d";
+      sha512 = "2a7dfc194c72143401fdefa4f4df4a414bed4d1fb370b82d0d7bf144c77707211b431314cbf409f07d43ba1cb28e43b78e5278b9cd7548191c09c71240c634d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ca-valencia/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ca-valencia/firefox-72.0.2.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha512 = "807c234fd009bd25dc069be095eb13f499432eb94590c4bb5cf7d84d48cf97f713465b5f56f0ed9f56e30fb94a3aec1a83868b61c6b7a5113d88470c645e2534";
+      sha512 = "db3dfc0414f66330d9a60bb545c92bb01c20dd4872436b30b4a27da3706870a9f40377ad40987850c556e2e14c13081a73fc8382b0bf45c356818f1c30e325ec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ca/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ca/firefox-72.0.2.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "5a26962f759f9c2c12cb7e58d2ed6063224625011dae1a90b9cd27e4b55e47cf9b7c665a8da16ef1a22d8b70fdec4e8902b7d118e62698417905b9f5527ed4e6";
+      sha512 = "d741e0fe55cb9d261832c8cfd5a51e5e88753c2c9483eb5744d80e0885d129a464530771fd5eb1ffba040ac46823fefd74efbadb63935e6d2773a398da160925";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/cak/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/cak/firefox-72.0.2.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "7e51187c51560ff612a9b3c7b06209bb64140e191a4b5cf7b1b2fe3e53450e2020e13e0be096f548cda747b910be038e53ddaa3b969d46e10ce4c163d771c42a";
+      sha512 = "98ac16f8771357d9999789bf2df39f0b4e4d28a32be13c07574fba303ede71b6267f991a1112d83cc95de295383d92a865e3ea5173102466b3d1ed0b2d082faf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/cs/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/cs/firefox-72.0.2.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "09d239079128ac8b6102671cd9d3d2b03989d358f191ae56c11a6639797ba49caf6519ebbdeddd836927fbb7f0df029da055b6d98d4efe1700ba689508c45a1e";
+      sha512 = "c959a5b4008c95923ab0cc6ab669811d700c1b4f5dd0de47ce2d519d7acc1ffc98595a1e8948f6ee7563b2b025307b702595d01365daa57c3552a0e61c85a5da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/cy/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/cy/firefox-72.0.2.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "e8e2cb301c022db5944e4b5fddc55e0a4a27aa591e4d9deee5e170136f48df956b0bde64311539743f430484035e88e28f080fde3e967d31b424cac0db1d6c41";
+      sha512 = "82b1620bebfac41d498c4ba6bd9d89754dba3c7b48f5073bd41558e735e49a7b95b662efdb247f0eefef8055e07bdea31efbdf579dd17ae7738711fb9679d85d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/da/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/da/firefox-72.0.2.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "072063ae9757d3f06d4f12439641f8b78b38ec0328cc501db67b13f3c0c5965ef5d170ea22534d9f4804fb66a23fab21b3771391f35aff98d4da3030e5aabb0d";
+      sha512 = "71d5d3192f115df501dd889234e33ebe7b9f101bda2f4b604932fb66d172ea2adb475da408e9774466b1d9c379991895787b441c8af11ac36504d96e63eba402";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/de/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/de/firefox-72.0.2.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "4ef88f33a507e8ad65f3f49080e58515b77b09b799d99ae45a725309fe0f4e4b596005c1cb84c22cd815b411c98e4d23494ed454222514ade3fce16fc9b67109";
+      sha512 = "013bac3db996fb3e4bab75c072b02ab0bd04cf6731cc95757b51df9b28c3ac46fdbdc3a17b61388aea842eb0d00dbefe2e9f32d5d758e207995c39338c82c7d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/dsb/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/dsb/firefox-72.0.2.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "a7b8c9b4328d5c6c6b53dd9226ca469ac75360d71b3bf6ea987e7d1fc7f5d1a270a408dfed4ff3e8d6be557a520c45b2f019d88d62dd007dbb57cc852e6e751e";
+      sha512 = "49ff30d580b38749d8f46b9db90037f844305a3fd716d7f276910475f416d2fc9bc1f0e8fd82544572b4c7840437076f5b194cb37bf0cd39fe7b3b3d355fee05";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/el/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/el/firefox-72.0.2.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "ab31775e09085690623c31c33bdd22a73d2d3d2f5bb13be0bbfdcfcd98d5fb5a16490b705fd42e30cfadaf96026ec147ef758630fd40e1ff3703f14317713e52";
+      sha512 = "7c5e3c97fed944852c3888ccdcdefa9c156712f3aa70c8ca6c3744e7ae32c7fe85e2fcb57c7707e7e4456d7e0cf2d131818552bcc507f082aa9da2ad89267180";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/en-CA/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/en-CA/firefox-72.0.2.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha512 = "6d20bb65de74571c233cc424dd2442c8fbc7a77347ee1b0ca6e0d6f5d11ff2a21f23c6a0ca9509836b19d75ac88186f17513cf3cd99696ac4f7b16a42f434f17";
+      sha512 = "5dceff7aefa5eb668a38487e44fcfdf2d72e4717cd9f6a0beb58bb25c8826086a960a67a70a5d563af0db2865c001ed23eaf7414000d1cf184d10a9267473740";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/en-GB/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/en-GB/firefox-72.0.2.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "058654254505d6be377fe9de989638d1c758ac05ad9244a4ebf0d9a233dea9e7be4dacd35d1b12a20e3b8deb53b474f13e0fb38e3e7ad85c64e48d664b85bcd3";
+      sha512 = "1f47f38344683e1e0afb5f5aeb46f3a7cb1aa80b38730a88cdc9904e66f35c14cbd9b3002deeee2f7387aec9f30ffbc306a3a655296f15650272b7185e6fb0fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/en-US/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/en-US/firefox-72.0.2.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "8ebdc0eff1e8e0fe269680041276268775e1d6cfa45cf0139593082275abe1486b8be9dc6989811b30ba8bde7453e1ae7b37ccfb9712482815ece731fa07e396";
+      sha512 = "009e4569271e6ffff2325a04ee6b337804c69bf96d3d74682da0a8abc5adf42959658237a01feff736b8336df0c69445fac2d9a8292680173d5f82ecbc262043";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/eo/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/eo/firefox-72.0.2.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha512 = "02242eab6cac30f19d5333458e1a0eafead00338ed33007387430739a628aba1928a4dd10cea2ab4c828b98840d55c2616d573f1ba09a9f9b26c01e79bff8613";
+      sha512 = "a61206783846e1fbe55b065c02c8217905222fa92de0290bf42ba2b06745d6903aea5bd575a318b83c2fc1f1aea149040b6b68d9ff98ad3c0d537081951ffcea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/es-AR/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/es-AR/firefox-72.0.2.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "b60242c35164d66efab4a72b7351982465a03498be29f9a994f3397138b9aad37a7c1f8158f3dfb8b1166f8db0ade5b45f1077257dc3f2f5f5712e31f98618d9";
+      sha512 = "14d6c0cd17e6560e2f4193e8cd182b8dba0b94edc3fc9e407ba3b9423e153f8d74fa0c797a431ef03586a0c8ed8193f3a8b26bc2683c1cb45a27d9c21401ec41";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/es-CL/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/es-CL/firefox-72.0.2.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha512 = "f5e388ce9e6edc6ac081b672131a1df5c761a79cd303b5cb5eb22b870e6e3fd0425240707d97a0ecc46e008b913276cb63a88ee7640e4ae7aff81612876177f2";
+      sha512 = "cef6af646f98a5ba5b5e01dc49317dd54efe392b88d3ce93ee220fe880c0b1dd7855c5a004f1b93ae27583df1fae030f4b90031312bd92443cf77e08e746c844";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/es-ES/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/es-ES/firefox-72.0.2.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "07698512c0d024483b169c75bd2ec8e434bf3c91e47ecf80e73c8c8a982d9eb803dfd6fede85651abbb50226aea185deeea4f6c0c42144c96c59040ed2a24e4c";
+      sha512 = "ff17aa9c3c804539d6bcce2e760da2603d914e9d345c7d6e3465d7856a1ee9f581147505779fa81e4d512252fd72334abccd9f2fb1fbbf4ae6ddb47e02561483";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/es-MX/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/es-MX/firefox-72.0.2.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha512 = "4448dbe8bf8bee11d0c7b7b5321dbd6c1fea6d594150539b6c6ea8abdddb96100fce21ac1cbf01aa226b95b2f6db8a76faa6c11089abac2732d44b376e63862f";
+      sha512 = "b587ab2e8daa659011f8001b2b5ee544462e789f1bb46d9f32073f5a3a3cc34e34708035e1dbef6d6385673afecae66c4db18d86056f2fe81d0ddd06314b8164";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/et/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/et/firefox-72.0.2.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "fc8db28e2abd979d4a87bc875948412db6e8ec41571d34d397717f35abd4638234108cb5011c8ad6380a48886f6fd3d891a18d1bc2e7e5967ef128f386c91121";
+      sha512 = "b92b11d2ac93c67b858536533794e8da01846485b9dc300b74fc8da3f6856c9278f2cee1599da354bb374a22bd3adfe24924c0c33d080fa9c05c70006a9fe347";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/eu/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/eu/firefox-72.0.2.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "9af8073945a2f554be15fae8c7788ee9fff0da2e1232fe9dbf72150c9076c55260c0c0a30363be02e6b1b5da8d216e2edb2712287d55537e3755a3124e7d6179";
+      sha512 = "30b34427404fdc43c09b5ff6cbc1ef27caec99f8b258ae0d227b0f38383d9b3dc95d7454ce344584706c0340a3859e6fedf125bb87e4f9f11fd1005647b42f8f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/fa/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/fa/firefox-72.0.2.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha512 = "b8832d7bbd64fbd3900595c4f66fd79458577bbf944c15794920d244db24de7541c3bcc2911719a3dbd2f5beb36ebfb2629bd6961cbcb9b4a2a37ec451373759";
+      sha512 = "f04b9d5205fb63f8a6d8cf83d5845bdcd7d9b9b1b01f59cff61b3a1042f9cd23b077ed1fc10b6484b87bf019e72fdba313568306bf9e19f7e98ea54cf58b5b9b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ff/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ff/firefox-72.0.2.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha512 = "6ba67b46cb76ab9e75dfd07d7ae6dc81bca9f6bca3d6650efbcf4115ba5b9f09135318c547b0785f4d6330987683d436f3f8881920ab823a33402326a659fda5";
+      sha512 = "789a7dc7ce2d13edce2ad38a64507af6e840426665dd98b072271d4da49d9fae34786c7e64f8f0baba0ed70efa784b40d45537ef1f17a019043dbb65fffc7df0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/fi/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/fi/firefox-72.0.2.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "f538e71986429f574ca7fc5020911f52016b276a703ec2fc061665cd83728590b30e2bc1cc1d3fd60c5d1ef2919c78036291300894a4a538e1d81f2c319c32a0";
+      sha512 = "b4562cfd54bbfac093e872798fc503fc8f05952248f448a86a8a30a31998d4cab531b42ad8b894da41b8cc1b88d6c1e0b39b8e92cfb999e2c99057abfdce6479";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/fr/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/fr/firefox-72.0.2.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "f739e9f34d61c2ba11968cd1343b6292844cbe1237fca0335a7398f46f7654cc8531bb0f22cb0ac104ba00f419e154baf9202ab129ee8028a09d09e35a3c90df";
+      sha512 = "da6c9cec5089be3acba9d0ee4ec5456aa3027f8193478e122c71453c109a4356b8cbd9118a170f037a29cbedeeab99b1bfc213e57cc3aebaed907fde31fa5e2b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/fy-NL/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/fy-NL/firefox-72.0.2.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "46c460d1329899a8ed165f13173fa8b80a9c3a557a876a8baaca1e344d1e8337cebc736c0c147494806cc0efcafe18baf8225e40253d5a995ca0d38354d013a6";
+      sha512 = "29b83043e60ef499e75becf12f8b60b855304db7de724120dbcbcb440b0379cabb766bb492c1d5f9eafa2f397cdbc79bc7806793dcba28666597746d743810ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ga-IE/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ga-IE/firefox-72.0.2.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "bd94bf1a7eb0e99c11d59dddca802b85b83ff1b422f947062960c22728f2f04574ab90ecbf5ca0eb82ceb463364d5a64021bf0bf061c5b95a35b661e3d57c93c";
+      sha512 = "22597f1feb06e89286fca9692c4730ae570ec71f2558ab32d4eb0276d970944afe75cf427abc95d1192c37eca29a27fd7cc6c917eb70c983b436daf79432643c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/gd/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/gd/firefox-72.0.2.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "bdde214b7e2d4183b59e10d6613136761a6b661dd51e7827e1277be2e05726314657687cf95329f56fff5bf596079739915a71ffdf97b601b85c5d71979353f3";
+      sha512 = "96273c0ab26d305dbeabce65e0b7650113edde2882297079527a9802fa5868ded25b5f21af07fce19992b3b3821014f5f611ce2b264c952080e0b8e7867db389";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/gl/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/gl/firefox-72.0.2.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "c742b5e17077ac77f8711a38797e484768f2f7f5fe5e533a63cea430ffbdfca54a3df2d0abb2a584a94b8530fe4b5a39b44500b5c1c3c9dcf073eb3881c212e3";
+      sha512 = "0167a4bb9874e1b0016c464202f14a9c1057a691b6786fd15e8ad44816a2e047728edb987f2fa68bd993583e9d390cf9e1553a8df7d19af0b2a303c10182ed27";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/gn/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/gn/firefox-72.0.2.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha512 = "dc18ac9afd198558e9cef1bf51f2dda659756843ea77263c3be844a326f12a8df011c0c0f0e9553f13e8d4a9ef5c54a1a55103fa37f5222e4664911a87615f22";
+      sha512 = "e58fe8062a18a08d57c20d81ceb2c8c76c210d0fa4e00b10a2aae3bf3e6fd548350cb42e9f4f27aa06a21608976520c2c00533f060a30310e8cf78d218bf08b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/gu-IN/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/gu-IN/firefox-72.0.2.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha512 = "2264baa47305e992e4d0e357029f3329736f7510da2f375b1d327e63f60f46996402107baf30baa7800c73162e43756f62fe8606502e25ecb5a5471a38687b00";
+      sha512 = "13cd81296562b497b69df87961fc7a16b701d14fd35e8742f3bf15ccfa144745929323e07c2d4d121940aee589a281e0e90d8007faa638b34193a401892b67fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/he/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/he/firefox-72.0.2.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "6212701e3a6f724b0b022f6f8daf39800227736863ee9ed8c5523e56636514a4ff9bf58ec7581ccade4dd132acf6d24b986a2e356a2401a41a93c544a1a91bca";
+      sha512 = "6ecc9a96ee3157bc183bf3e6cc252f87e84906efd7072a413c392df27869514e41d37bb1a384b3b1e107281830a0ed9d74339cb4acb5001e98c56271a3b57fd0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/hi-IN/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/hi-IN/firefox-72.0.2.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha512 = "b586f9e5f621a4c284973043f306f2681d9b324a36cb6f0e566b871037452b3497dcbd55e7fd48f5897f2232454fcacdd4070cbbfe36e458175effb42611556b";
+      sha512 = "23dc8a041f08424c6895c151584c7db9d4dacc76f9fedb2adf91d0fbdff7ef43bdffefdbc06a11d565d15629f3794e40b07d39797289d51394c47113d8054d6c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/hr/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/hr/firefox-72.0.2.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "ac0b3ab1a085988a51f3c804d79077bad791e45295c54690f04bde1bef2c220b227d4d33055ad595785c67e2c3c398d61b9df379da32556294ceb2088549adff";
+      sha512 = "e9cd1ae6a782965a4e79b7fb3ee17b2f0d09d2faa659cad1d34add2ecd2645e88006980a8c2a628ecd7622515b1c50c23203c3bbe41801493f767e2c5885932e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/hsb/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/hsb/firefox-72.0.2.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "96abaddab6c5239a411514e14443a1e823886ad3d374fbcca321093f390907fdf28af8bdceab31f50e5127ae1e2fc5b37399c323ffbf20e469a390a04d5f561e";
+      sha512 = "24fff6f98710a3729cb4a82a765a3bb4672c4cf5f067845732b6656d2d5c5f08b7035b6cbb341f00385bb0119d7d81cb5ab275f42f4a92533b4fabda161d2967";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/hu/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/hu/firefox-72.0.2.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "097f822ec0db715846b582bee49a65f611b89409365bbe05dd8c4b066e066a76960966984f44dea090d58678a35ec44b350a9263f50250f3ee1dc7fe6de0169a";
+      sha512 = "0b02c3e55ed81c1a07faf11e159b00987c46cb2225f3c414b824df4fd89bee8d199aafe7f2b9ab78fa8683364a8c30ef9a4b33103310bae32d3fb4fd0b2708de";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/hy-AM/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/hy-AM/firefox-72.0.2.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "874761d38dff94c038801a8ade916d40772ddf5e571d434622b8510fc21653591b295ba188aede50869452121af5b4e611ed305a6bc3044e683548865096792d";
+      sha512 = "48d3b6e4f06067e76e7c33daff9dd04b1b1e4745b4c6814880dfdcfac64ec71e378271e963b05cb48a89d3e546fc8bfd607506c783b5bc1624908beac89c2588";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ia/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ia/firefox-72.0.2.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha512 = "e9349a4ec589f73d3b70395afc3fa678817322b87a97c3212a436b768b7edad8a6821784b920eece1dc7c17fe310f1d8cab33ea65e780657d87116d5ccebecd4";
+      sha512 = "1f99776f7c6f5b3786d3806c838a6790e944ed83c42411f79629ddd54b0906fefce18c355b6c04b7799911fef1f90cb9296a0bf1d17ab489370a1e274be6eb9f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/id/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/id/firefox-72.0.2.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "1cd006c3ef0e0c45a91a390612cdacc46f6983b58ccb746431ba0dcb94c22ab4a36d2bf4e7652bbfa04b9ea0e50c17e72c501794a11e8dfd9a6389497804b5d6";
+      sha512 = "90cfcfa0a6b4d791dee1016fd64af7b195a078c57c4ddb0e2b0e81372d71d0266f592b49cf6509a02aed6e044e0f50f898f09be18c4b5d1d1611789ddcb3b6da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/is/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/is/firefox-72.0.2.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "616eec8671a725689e730549ab959f054a32ef6d7c3cf5a9cac0826dcb3e0d5a70a14018cc7a126378d3b623050df763a94ffde481c40e19c4b8dd0e4a7b353e";
+      sha512 = "fb9b33dd73e81c80f035f7a47f49a45c7aafcca93dff1f451107a86e9dc566159d2a15fa3a4045ef6a095e2d329956d02e9fe1ceeb29f6ce0d6527d6a383af3a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/it/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/it/firefox-72.0.2.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "b3a1204d5eb1203e0d2f430ba7b7823e24beb44563c8e7eaf225bf2635377107170dd710e945327f07b21ba14b4a597221dd58880d6500c9997fb0fac35ab2c3";
+      sha512 = "cd73f16f1f01f4eb3e1f121a054958c32147baf7f3f7f856e4f5d80515efdb38bb901814734e5825e63c19dec7dc27ba25b4a682430aa8de64d1a72bb24e4533";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ja/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ja/firefox-72.0.2.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "19b0ffb5b790faccdafc528ab43e91d3b542e71db206a280f83bfd748a7aacd808df043c6acab22c51a668cd2a0963523bbf23b375212957bc55e2b2a753e355";
+      sha512 = "0deea9508673300957dbb33b644f4dabef47a4f502431ee51ca7e4844c7fc5504f59bea5416c70eaa713685091c9af9bb336f0416d3cb78d251f87a3b1d6d194";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ka/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ka/firefox-72.0.2.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "009385b68f28f3a5e5b7a700d97c01f42c84085bde4d92b0079d3b8f3046608a61663f80c4bbed6de8e998c6cb1c0d0cb228dc8ca35382b13f669a2d9e7d8d0e";
+      sha512 = "00106e34b8353c4e19570e284364d27765f2afda9de181518f33eb5a83b703073c3bbc8a3ecc59f5828a91ae78867db0cfdc1fdae6b3393a3c1d63668d70732a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/kab/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/kab/firefox-72.0.2.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "30c95436c4431208ad491fc500d97b5f0afaeec0f22e8ffd39c5a07cd3554e47db2d7ca93db13caff667b9ef8ce048501d5121fe61d07070e5e69f66614f2a01";
+      sha512 = "e993314ae7d3e23662b8dd52fc33922bc25c29d732217e7c3bce051faf0aff43cc7ede1b91f8995e51e6d20eab8c1cdde980f35d40b0105312e215d2509f7504";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/kk/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/kk/firefox-72.0.2.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "c44c7387a4f700af64fa23c4b643f57098f840cacbb149dc68a517851f2087c2d882d1cadf9b147a318185f3b657fd3aef5a3b22584b4de0fef30e7bc8e31417";
+      sha512 = "ac0f49449f4b296ca3de4a905c667c0eedb7557b54c3b1c27d6494cbd952ce0d1aa61d73271d88ac0a8520ebe4c2d4454ae9742bfa2b5c7e32443a6920850d6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/km/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/km/firefox-72.0.2.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha512 = "edc5616a85b309c390c426b96a60658be350a0ebda009f25067c9c7ed94d5c0e1af67b7c8d4d6cd4df8e34e9296f04879f5912a8f6b743bc0ae07297fae5735d";
+      sha512 = "e5709bcbd40481c3198758813ef5e5a9cdad6e256396174cbb006eafcaa6165efbcd920fb91dab5ab415d19e85b5f7a3cb649f4f3ad9035ad773ab51a5a41009";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/kn/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/kn/firefox-72.0.2.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha512 = "47f33f81864ca7dd61d3bdc2679a556f0f42df95dde60327b09a6cd1815ee989518da2ccb61104e258e404dbfb68dae99f9afcd20ac835d010674aea4e44d820";
+      sha512 = "6dc7045adb63e54374dbb6f288bafd710f54f1a637a3849f0c2dd243043e6373ddae941d88a8ec25cde643d0ac856dcc57b75d97356eab29ca01831d0e042724";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ko/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ko/firefox-72.0.2.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "51c6aa7bd08a4326f4e835618ed8841568f731f6b4a11de2b39a989670e50bbb094f54e602484b7bbbab46e7c55ff844d02f1e56897993a54ed1a26f503e749b";
+      sha512 = "f3246f4a1da0d019c0456b03d8837244c59cd7931f3766c3f513c9ff9d55d390869ae508c0713bd8236fff562b9becba4bb4046a50e6c2f23549b6b06c800688";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/lij/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/lij/firefox-72.0.2.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha512 = "5109dffec7feb6e98b309b97dec3fa4c5ef11e506bb28cff8bdabd61a3385267f885f68b0c67ac269feddfba6fa107de7af0c95e9d38093fab2e52af7f294e77";
+      sha512 = "7a7aa021c32790fe844f258a55edb51ea4b13ef26d1d7cb2fba609cbd1f09a4b02c227eba639971bf4663d1fc8b943403eeb95839d9ec53d15fd6316c84aec20";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/lt/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/lt/firefox-72.0.2.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "2af5965fb3b73af30d1088e599020ba7dd9fd00cc63c9f7ec3d706b953d92768975e5e78cd1bb5729194db359f33ba59672cd6a01fd0d7799902ba1017cf4fd5";
+      sha512 = "d3c8d20b7311586dc0693d169b6d47612136d8ca40b31a35641e61f7965778d52bcfe68abcced8356e31d66c2fa208560e8f37f1d7e3621f511721fd7162ce58";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/lv/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/lv/firefox-72.0.2.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha512 = "08220de53bba3519db1c2155189234b822082763768615075396bb23ab970962bc6a5602486db2d9240ed3051b4bb11b85a1ef95e10dbee67781962a66e10abe";
+      sha512 = "3e770d4f829abd903dae078526918dcd29fbb0b214b1e44017b32cc273cfc9a6cf626f61d6a805e508d37eedf2ab7eb51fc185d0c34be57fefd842b5f3a083b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/mk/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/mk/firefox-72.0.2.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha512 = "fc8869cc3e696356707b846dbbe55b0faebfbf3e8c0eb8ab498bcf548d0b12c04f74413e8a5512c15aea0e7e5ad51d193e88547dadb921fa6af98010a8f620f4";
+      sha512 = "d6b5deb5cef689500f2ded676145a6efb55e301b6718596e127f45b1e3743a0b7606006994f62a978f0d94789f45d60006f0b45e6f4e5444948388a37a1db19c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/mr/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/mr/firefox-72.0.2.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha512 = "303af61561fd54638c1371d449ba23df16eddb4d18a83ddd997d99652e040ce5fa2208ccdee0242e47b25d609fa2cdb391de124340a3782dda965d1eded3d303";
+      sha512 = "4def7628770de7a67cce3c5aea45c718ea3f723ae7574d97bc87a4ef41350034abb0081887c3f335699c45a381e0634b1d4b41984a479dc0f0d5ced667e876ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ms/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ms/firefox-72.0.2.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "c9ce87194ac3bbfd30b8702fe2496be9165359eb1ffccd6bbe0bf98850de9a3e2798a921d9996546bf59fdcd9c4b1132d55fc6a62ad671baca5143617dbd3fb7";
+      sha512 = "9713ba2651191cac976aefc43afb3cb640092dd738d9ee9e7518839170281e5f769d0f11b643f70d98b5cb74eac211e78c086787f63ec583636b0b02058461e5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/my/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/my/firefox-72.0.2.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha512 = "0c31569c512e84aa052cd7ae5dceb164e0f3d48d303848dec80c4490dd157c08889b126ed354075d06d375b3f838437da56d018ae1288a28c30b50e34b4bffba";
+      sha512 = "79ed96b7225facd3c759ca36874c42bebc8ed21856a8d46b7170efece2eb48e860065f21295a12561e8e20c2f56734189862420b1278fbf722b36e21d0e2100b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/nb-NO/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/nb-NO/firefox-72.0.2.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "4632a857180e2df8960eb343727970d6da5eb2d0d82d270f13c337629217a959897b2cd013d9f0c6d93eee54e0245f0ea6bfe9a9bdd12f8f84455cd961d53631";
+      sha512 = "12d0b02ae7953997514629a739d7df4c0e5d0b4006dd4b09447ac0710ca5d043605a5f060499f2b5f51689f101f580e7565810a4c1d0782ee408fbfe6925aa2a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ne-NP/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ne-NP/firefox-72.0.2.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha512 = "e485ee72e51359136c3aa0d9c63821ccab4d547d61d15d7db2ae92c139119ee09207135afee13e63e4d651edc407d7aac2e068f559162db0fd32c4850259859e";
+      sha512 = "7d3512fc9cb2f6af9c47c27f54595c957515dea077a5624685f95060783fce7a23bd11ad0f4f74da52345de6704582c5bcb9a162aa29d700adf3feb90b0547b5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/nl/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/nl/firefox-72.0.2.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "5e62d06d92784522d3cd38b9ff584556984d3271c21ba89fad8f92b74bfb7f536aaa26fe86d24a8bb8af5123865af1e9cc801459fa9bce41281ea602e5495323";
+      sha512 = "5a74e2ab73546a3754933adfc5846ce7cb81fbf0f955ef10189f5da86e36cd4a919cfcbf5b34f0e49dd9a0736b402c005591d9f3270ffd5dadec887df63c272c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/nn-NO/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/nn-NO/firefox-72.0.2.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "fc2c4a165b65686b0e7e6d82bfe1fad78fec6cba85f387348f3eaffe99401ed4e1aff1b1515fc12030351943fcb7bb621b7c4ec3e7a8dae9d51719ee69cf1e16";
+      sha512 = "59684dbc041f9cb97cf1dc6b62cf075c9e09c27a213d79faa2da7e3c76120249f9dd668036926cace1bac2e386ed2e5f2477dfd29a16d4628cd3492df3dc1e69";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/oc/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/oc/firefox-72.0.2.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha512 = "6a65cfcd9f69a14d7e0f3a95e0594744169bfcb34a77b5cbac3475f79c134d5fc7d2c77a868fb9780d271cfdc5a0e487e35cd20a5b61f7f7da2c0109f1399f19";
+      sha512 = "13aec175cfb0e99ebc64a3fa00d96373f578c0b40e9fb748cee39a6e0e38b884c99010426a47835b04ca76f7e14ae690425226eeba0cca828c4e03f9ea9478a3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/pa-IN/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/pa-IN/firefox-72.0.2.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha512 = "c5be85c65e1feaa358ff2e51481a2512c3ca8c8d3ad306da749a9abbf906c7e49a7f0fc88f612ea4e0c19c7f3ccb860dbc5ff2af01e10fb71783d9ca9d257af8";
+      sha512 = "5350381fd1490a9d77bce592b5fe5bb16ea806a19a11b90a6d4458dd5804e291be61981ca6358db4f1c61e7b221bf6032ebd74328080b72c7ce7c69b5dc8c6f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/pl/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/pl/firefox-72.0.2.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "1b824c4d039c0766be5206436a2b5705eea9aea423b8e9d83fe95d13151cf41d8178b2e7005a81b868a40d3c29f9ae7966c62a974a55191985a60ee362a2ab22";
+      sha512 = "73ff9ebe12ceca06c338c75d01f187b3c680d33b7a1ccb9ee9206b97f6249d95eba3047d7e87f01651e4c5e112c5c59be7c50ef5451b6f9e6c384d94d3ec23b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/pt-BR/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/pt-BR/firefox-72.0.2.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "2004bd2c6c70153b93f809c3e4e0bb37fb178e49751cd9a8cc42267c74ec94a3fc4f6c9d8540d36cac629e03196dfca1a3e4c42e2669d2301ef4ee55a68019c1";
+      sha512 = "3660b8376970fb9b70a6d99f68225420b681900e3c3184a503f577cde29e05c94dca80ed3bdfd991497875006769ce8a1e973276dc302e6bc0a8b68472c223c3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/pt-PT/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/pt-PT/firefox-72.0.2.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "28281392897802a403191e42c315020325f1bbde8f8a1314e460d49d55537bf806e2e88de6775824815124bfe6870fb96f790c992c9bfea8d9a43a4c678df71c";
+      sha512 = "fdcf089be16988c3b31b9628a08a7c60e87913b0bb44a21abd9267358b881c5963694bb956c0f7c075ece3e6f1ee89f814d427d0965537fb75981475806ab6fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/rm/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/rm/firefox-72.0.2.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "6a09c1a14f9c53248d7b6d78efdf16d5d7f9ba83ac572c6b9b53b1cdbf393f0a2d0d9674b3e351fb2376ce13f250afcff0b9b3827bd01d64909c4b4c375688dc";
+      sha512 = "b38abcbd3da1b481bbcec3caf1dd948e7f696099740e2386fcadd13f628cdc45177176915a8bee6d5024b19e08a43de99fec7f8296839a3af14f4e80c2c69406";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ro/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ro/firefox-72.0.2.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "925ea33212f3208091413f5d5507f2efb0351c6aaaf1a3b58664e85fd3e7d7cf4917411c47bf8473d9f406c2ea6d5c0b82f9d78f0396b785d05d555c6e3df32f";
+      sha512 = "e0b4a164c9a8199309890c541a72377b852638ba1f2bf134b367b5b82945008e72b9d12db49fce800ca0a5bac3d10207b75059a9463b9f19d9570299f66a8c5f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ru/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ru/firefox-72.0.2.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "7a39ff663334c4c5bc4e2c6c03cfba37cca615b0927773a94fcaaf3461367c87953ad9ff429139430a1944971c7a88180f3889b5798f65044ab5daa751a42055";
+      sha512 = "ce71732d95d5dda49e80d69b1e363e6e623a81917d0babc01e24fb5e81aff3453e368ec901898c22805587958d833fa9a2dd2e96f73fcb37741ea518685f5df5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/si/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/si/firefox-72.0.2.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "408be66f1c77ada2d80ad80b8c537e93156dab48f10f732eb1e680934e0bb5c3995cbc63269f60080134cb53d8ba95c3243f66c6f7dc1cef1b80161afd6be609";
+      sha512 = "aaaedbf3901a8047cce09f27f05a7e50b395dae2cf31a155d7b3e027e8edc35ffb5d580c03f8c6a56ddad829da2b52ec1b42f146be183eed022a0768c818cd45";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/sk/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/sk/firefox-72.0.2.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "001e0326a8e090b3f4994da9a8f09ca70cb87759f3a5f1eb488724b6070f2c62f38e7eda8345bb7f0b8d168982b564ed74b8eca0bce6e099931f16489137add2";
+      sha512 = "a5a1296e053524ff1aa3779b123406e179a0eae38d7a5b34fed1acc6f70df176cdac22050afee59a7e80c79cedb7b86ec0549726dec9044c7e3bd0a087587b89";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/sl/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/sl/firefox-72.0.2.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "ef769cdf9721ece1915e4064e7c4f0a28da1c061e8c8dd9fa6e7b5dd7c88e4fd73f7a6dfae4b6a9ae3bdce8688442836040a5d190e44a912d3bf1fb5bc520745";
+      sha512 = "b360d85da7d2d8236dd4c731f43417364393b3c379f0b4b88b7521598a7cdc5ea73ecc4c58ed71245e53fa8b2d9b0345f054c27d55d7d1979ed3d97681578314";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/son/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/son/firefox-72.0.2.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha512 = "3c15fab6139ab38d3d2dc530681de715eea187b6c86dd84d9b50035cfbb9ea040c2f80c8572c7a7448efee2f47dd51e3d06a3521d787e2902ff7d55cbf191e36";
+      sha512 = "b92eaba0eb03801064258eb5528ffe46115ebd6b6c7efa6d174b48984da527bd542804c7a5edbf565d724dc1c66b464acb0b83160b4a01e1f845b37a82eb5624";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/sq/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/sq/firefox-72.0.2.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "9c96c28c094fa58d41c7d3aa1dbc635e8b1dd960083ec0fbb74b7d15267276f1626dc16283083fd3537ffd35ddb5265713d6055590e02e84b55144c9a0794a48";
+      sha512 = "5620a2d17500a7a6385d93dfe8496dfad466ac415ddd871f82baceec799c02b6dc9291aab8799d1938462c83507d54ce3807de42a5a1e2fc41ac780079a27160";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/sr/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/sr/firefox-72.0.2.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "d608f85aaee8262e7dd5988f524dffcd0a3067992aec04b5260c5049cc130f3bf057326aaa52b569d851948eaea2fb28ef9d83aa4c4a60f0ef4c9802dabe4a6a";
+      sha512 = "79a01eec8ab15e0f3b7cbffa408245abce4e48f91ad1f81520fda0c9f66f2a5ff483864bb1118365d0a24818cd477d6bb992563e01ef704122387e1356b00c20";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/sv-SE/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/sv-SE/firefox-72.0.2.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "e13c55f2b570b2ba4d5ebb28462c9a65d512c65f7df950942e01af70bbf3a24e52920ee61c310a193ba45fa0cdaa1bb895b098480e2f8caf63eb97904ceedb10";
+      sha512 = "31351684d7819ce10dfbce8198ae5fb58790f79ee94e277b684eb914b59a686a1eab7e8e8cc3346cbc1a0f630bd181194d34d7e4610351e9d783fa56909d73eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ta/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ta/firefox-72.0.2.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha512 = "f8c1ed3c0384ffdfb74651cb433d6d3d2f0dacadb80e8868e82cefdf6523a7963695af47fa4cc46263c07564eb25df3fbe98781709d66915ee640201faafea4f";
+      sha512 = "d3204472eff80b522bcb0e8abad52fe1cc49c778f5cf0766ab45b5ca8e5bf2d60e561b1f72745b7accf209fcab9e23d90477a8388044bd2919c617fe96de3174";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/te/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/te/firefox-72.0.2.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha512 = "0b332bd6858dd677d0572783a92f9e8aa3098881f9683579a447c0424de3d1ff42805b435b8fb96c925495cb6a9efbd4a64c643039b689dd05788e054fe1230a";
+      sha512 = "a4127d25376e59b67c15e4dcb660262a5fd651b32989e8439de8661b026fc1a96590cfe4bbea9183cfd7568f37623face2e69489f398fc5f4601f8ccb17c39bf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/th/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/th/firefox-72.0.2.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha512 = "cf5d207a43e3ff879b705d31d09c6b350b4bd07546b26ecf81a0ddf7aae2ff52bf33c9b46d6a68cb253fd60941fbb4c0bbd88a148c68afe6d7e2496635e4c80c";
+      sha512 = "4b13582eb740408fe252328f00bd3217456f406cddb131912074112d59aa2b1b97a056c71e2c1f7030a29ea82c0f4c3240ecc4ffbebd104e8544fd4eef51133d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/tl/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/tl/firefox-72.0.2.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha512 = "357de95fe201cec31676d2b8f1886f096cfad09a0c85bfd0a7b22efb0ed9c61a81dd61e33eb4f5fe2fcefe869f6f5f2f2820862b4d12c617da51efc032d3eee3";
+      sha512 = "48312b1d86756044a19c47d30ef662f4fded179cde72d9f82f47fe4fcf38df29f5f020dce26c8faa37bf5eb3cb5f389547a0fca3e504edd934ad7a414a1e70cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/tr/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/tr/firefox-72.0.2.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "8f35c2debbaf88d01ee2426b21c84abd7aa2888d6d464dafd5dafda5fc27acd2caac86acf0fba8ebf2798ae3c24b0e9b7831c40e89123dca855be413eb1f8417";
+      sha512 = "5ebd816cace4f8b10a8bb3891e4dc3fde9a60c24945a3cb54a05a5683c15f9c1710c427f31dbfd7ba3ff035d6dcce3719c08180e4fee8e4022b3c91c297c35d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/trs/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/trs/firefox-72.0.2.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha512 = "74a02e93e892dc5e52e4609104d70808c491c301aa30070f0975f818454de39dbe78f5e193922d383ce01e334a1522b952a8d13cfcdd5699109ca74d1ad3cfb5";
+      sha512 = "993bc4ccb6d60e93663e13df7176df38682d5980c2b73ac2b7b43b05792a5dae88d4f959940405fecfa2e4cf8d11ac07838f44cd03db395361ee67af4fe27a1c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/uk/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/uk/firefox-72.0.2.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "3412150426f735a6635115254f2e29e36eaa4f43ba532fbf7d78c769d53fc1e181d1f108a5273756b2a036be38d5bd3f4486044b3a4833862e71c600451b3f13";
+      sha512 = "8c61661884089446bbf0359a89550b41f09d3aa6ce9d1f95e7fc0d2d0d3fb6a232f3c3fe26f9124a88af981eec9bc6646030f97f0d412298358272fa440930eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/ur/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/ur/firefox-72.0.2.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha512 = "ef17cc7ce86ccdfc411fa9e75d46feec89e61a3e9c0923f9adf3066d0093090c4ab7db7ed598b93f2236954d7b3f8e5ecff7f1699c65c9382727b239efc0ef41";
+      sha512 = "64b83bd3057e1d7edd804e948626a1d6c6801ff0c91717140d75da5778c4ff9afb52eb08d982d3e9474f9dc1daf8de5887b2ccbba41e490b567c380980635564";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/uz/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/uz/firefox-72.0.2.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "c4a7a6063b92ad631fdee795037d76573b3909287212f4cc40a581bcaa5d329c22a2c4b38d549cdbf8846bd5cc5312e0d9726be87629ed76e11d2b5db13c55ac";
+      sha512 = "ffe82703e4d66ccf612ac616fd94befd35fd41d26f2dba2d1cd269dc95500dc762c85c3fe2e881fcd8bae04c75486edee55d90a43c0b6c379eacf1f2270b76f1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/vi/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/vi/firefox-72.0.2.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "464dfea04faf08450d14615948644b1349e656a059d940ca6c2f102cfa5b57b2995b961b79b2bb1c308c0ed177a0149b0c94f8bf42839d684be7c9c528170d1b";
+      sha512 = "c4bea8bb131ea97dd52b3849d1edfc36f88afe5550c3a7ad67b2b0f860ded462834b62804a92823149c5bb4d38a76e1e239b626d15c48dd388e9eaf232d03bc0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/xh/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/xh/firefox-72.0.2.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha512 = "871fcd388a9309381d9d19878620d829fd8e914f13206e3d924bb0a049320a9d033332d62b7172f0bd31901e32eda0f1ec23017d7ceabdf76fa529c4444f2406";
+      sha512 = "74e09c80cd60f97712e4b5a374b9a32a1bc99c160e34a324b360afc3396d057456a988e8706139ac62525ee8002755e8a1ca52587de83028340fb6c767f1f432";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/zh-CN/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/zh-CN/firefox-72.0.2.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "fbde202c492054ba28b3d5387c12cbc7f29a9a0c49fa6c53e39495324b501cee35dfeda6adc4023ad7c992527c41f868755f3cc216fa0a2d71180a8f7a130994";
+      sha512 = "d922dfa80f19904e8905a30074ad57f124c4cf81fcfbbf157f6b9a775f12943909584e21b1ef247540f26e1f5392e1e13852e0bee46bc082b0038cee15cecd3b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-x86_64/zh-TW/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-x86_64/zh-TW/firefox-72.0.2.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "35b5995ab0443832eea07f3c164b29def23e213774e28d36b70d78c3438ad62b17a7e8d4c54e22d21c15a6fea0ea97ac4d3ade91890f1c8d5255a3725e3f5c7c";
+      sha512 = "4e5fb29e77467554b767f4f59de3a0d4844de91955782d9a859b6b7a7d379c673325e1c6f090d6af477a67d8b91dbc57e5c3169f77e14dd43fccf2aba508db6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ach/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ach/firefox-72.0.2.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha512 = "2e7613bb1f6e321f64d59215eb5fd36b6fe0bc2950251c2d227521a157400dda00fe9ce2d17ff8d6db650f6b3ff075b5e32090bc7c92c0f0bc34f38085a85d43";
+      sha512 = "84669f751e3871de2ce92959b944eab1f4f6e808ab275c20389eb253c11815548d4c5ff766ac331562d13165d7bdc7498a1ff376777e98b428d68f83d09f789c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/af/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/af/firefox-72.0.2.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha512 = "f2bc6ce77fbcd24b33e57801b897be9aacf3944caa2fe88a3c94636dd3c0efbe54bb09c04a2c98e25d426f734869a247ba00fbc0bb28bf814709b7f3dd802e97";
+      sha512 = "230e212b172566edc7e3e30e7c4d76b94abf55d2c6bfe1d64e75a5769b1d758770b123b77edd2315c4a12641b1edb12be2a7f080dd44a59fe1a3f05f53fd86a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/an/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/an/firefox-72.0.2.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha512 = "47eef64a2dcd87c776a49f4e4f962472e0a9b0b25ce3af14be06cf31f0ee2da6d215bb1e3786f9e806ebfa80cb5840820ce8239d9b417630637fc39a5742ce01";
+      sha512 = "af8a603d252961198255cda016b018d443226cf7143dbb7859494b871999ed1548efe6a8c7aba6bbdec0f8e0bcb7657e84ce3f12b45e23ab5df7067d462b1014";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ar/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ar/firefox-72.0.2.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "3e2d21ff4032c35aee149acd2e81d8a2c81289be701d3c9473dc87a163c806cd8b78ac05a13e95bfdc83ace1a79615d724bc1fcb317748ae6e40763d0025384b";
+      sha512 = "70c4214324eceec873654620e5a6b9a1f304c392ca83e989030cb43541092d3a1ab9562d58bc0178ce2862392793f65c5adeaff323006cb24cb0e7c660a4d0b8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ast/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ast/firefox-72.0.2.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "4b6db32a734fd371d14954ada9cdcb853a460329a26c46937eb08549aa1fd3d6840b23ecbee65762dcc2d66c6243dc300a1fbc988f54773b29662fe108b06398";
+      sha512 = "af157cacc34a9f31f04b6fc46cacd7dbc9b3894dee6209e52341f4ad72499e296bbde0b2a6e1b6ce9400559260f9aad5e3ffa3273e56e046528fad7926ba9fd2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/az/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/az/firefox-72.0.2.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha512 = "4891d270449593982501fc0a6a44fd5273b306912e935e1486b4352b1c73bc8d39bf22c58f073c4ea59912636b1a7cc6582e7179f6151abead7e32ae80bda03c";
+      sha512 = "863399e7ee8b05c1ad5a35aec88bc0fa9137fe2f1677329cf3ac1ec43db2d20edf28cf6fa07efde7ebac800790c2971dfdaa4f52fdccfe1ff77195f3b1c0a1aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/be/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/be/firefox-72.0.2.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "207d9f0562b46105d96be498b9d458ae88a9de92df5f4ebe5ac30eb502b0e959ad6652392de4e4349688ce9904f2743f287ac4ea1634a8015e6b1debd0e186e2";
+      sha512 = "0aa85d3e64ce5a27710fd2cf49abac8d63bca791f480d28480f4c0cb725d44a36f723f711392eccc5d1ab90cb150027a17b37cac5ed7cd099c80d8d7c1f1bf57";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/bg/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/bg/firefox-72.0.2.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "8c180f5dc6e98f0f1f00b4b210069fd5265062c40c884e511e1e0a0a14dc6e50530c47ad67deda95581250500bcd3fbb3b69892bc8bdaeb2feee4032ee771a77";
+      sha512 = "b20d322b2955591dc56fd01a0f321cfdc3595533881e27c23ea63ecf6878dadc24f8e357e882d554b58c340a598825ce2325bf08fd65d174a648686992ffae17";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/bn/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/bn/firefox-72.0.2.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha512 = "275c34985fa071ec47fd0aeb0a340ad3a6d829dcb5030f3850fb9c02f8dfcfe6ffa642e1e551c9ab9f99d42232f6c69b08e6da6a9e902822c6330262e48b998e";
+      sha512 = "3ca4fa19d0fdcf2110af4ff36be438e84e23f534f854ae2a24f56d5e3befc57700951c948f45f730e7439109dedeaf0f7ebf27c8fcfe1d9a14f886f5724d009e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/br/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/br/firefox-72.0.2.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "9c5a9e7e4fbfdf264db34358a97a9d64fd963850dba182da3be914f2fd81e6ef9360e07f7541487599026df4b312c09e893f7b48779283d8385ef2c96f2c354f";
+      sha512 = "2d89f28124cb2650a78728e3860d206f627d54886817727884f60157c561a00773fc8688fff3418c76a6c2e4286b9d1277b249c6e5a7c9de03d9d1a62c78494e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/bs/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/bs/firefox-72.0.2.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha512 = "04a9741392aa3c234349dddea7fcf2f7be26ba8d39ba11f71222eb75d4aedd925c6de4dd1013ca1f53321d546fc7e9babc0fca8336af9689060bb75bfcd9635f";
+      sha512 = "e047abeba9c53a321484bce65617c3ce5def9ae06153f0317739e716d1617fed2e95fd4fb1959e36e24784b036d273f872250ce865975a977a25c0f98f054bbb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ca-valencia/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ca-valencia/firefox-72.0.2.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha512 = "e9ec3916406ac3c3fc69f792b79fe267923ac57a9b6a2de8d883f492a83dcc04faa93dfc59acb632f7f0ee3cdf167664682721743ef62d58b2393f8ea85bde03";
+      sha512 = "91de80a3eb281ad887f5c053803d1869aa41e43f2fc7438edecbc5a8ede86e9e401e27db8e66494a84d4c1681f3e8a43dcabb3fdfad5bb763f50bff11c7151ca";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ca/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ca/firefox-72.0.2.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "c5e2a8914f70c633404653198f3b03078991a5afde0fe30d6cf28030671cd75eca6f34a1ca3b1c7db392c65a62d6cb5902ead96ded0e8a71636ba894986d335e";
+      sha512 = "4b94b5f074848fa6164f2eb6df555ac190846380ca719d09225b63d4e0438a96035f0b3cdf5ce23c6c39fce055909bb4d6ca6f056fb223b652193539b3566bc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/cak/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/cak/firefox-72.0.2.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "1fe310fd841c7565690ba121f49f8111c75450ae06a13ee040ac959642b025c8f0944425e57a90150c8d5acbf68e79b4d162d014ad191b027cadbfd9d7b570ad";
+      sha512 = "4a60942861ff2a1a3992c664a425c1f957b5f6f3ce9877ace5cdb13ec38a04d843a822c3b07180d4907b91774d9f7194d7e2b8f4b5f807556c3c5735c1a20cc9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/cs/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/cs/firefox-72.0.2.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "4e89cf9a5230541278dc19327e0a5a9f15a663f0bd377b2458750bf0df7457495ada697678e5a47012a329592daf18b785e4d71dc9c98e94aeaac6c280184196";
+      sha512 = "0a1e8b063d06d92c5a0eddb2aec88ca41029a686d4914fda9d4e7addae9b6acd03c0667eed020faad6a0e82c234fa97529a94fb0771042bdf363c887a9aec2f3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/cy/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/cy/firefox-72.0.2.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "c08e9fa79a2cbec9fc7d836c1a275099ae3ddd482685298d76806e1c1ceb99b85a025de5162061117de30909d0e495f489869792112d0496d501328f8136c184";
+      sha512 = "688a86f70b5d1901e6531414587453341fb647ec3a4560103e52c70fcd8c91dd499dbe716572ec8585c3aacfe378d64b82c63790b2f190e286ad1e0bf7b99477";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/da/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/da/firefox-72.0.2.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "6c90eef1e3da30d9106e7cf97e0969a53e59bba19b5212a94436bba36a428842265c2f9da58d467915ced71a0386f406ebb1ddc052a9832e0b8063d6855ab879";
+      sha512 = "84adac21cb7800d3f8afe3fe0d17492cd6a1d2e2cac60969b4403191ff0b1a8cf04fbe772c5a02fcc24ef93372c76b95fbe92f2f4c4b595a929397cb3fce2ccf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/de/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/de/firefox-72.0.2.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "b2684e528dab014152284e3c5aae5874c3ce16548bb2101dcdd91fec6831a486d883eef3673429b087feea10b53e4256c7c083f26a3d8e40e446f4a1f32c307d";
+      sha512 = "a7cbb78ce08d5783997529c61f51ddae197b9d7fa683847444d74978c191a2053b5845dc4d93898e0453ca59894cab4dc28cf9f79baa22b7a4304eea59e3f0f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/dsb/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/dsb/firefox-72.0.2.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "c25cd1edc62268ff5cf67f4f0cf9751846204d25bd97b214f8c4097ef87d71b5f7989fedf0d47867fe74b427c0187f8398039d56c6e86472d1b9fade73b0cf94";
+      sha512 = "9d2821f99755cf024f4c7215274c6f3b6cff8c00ceb9c1d82f77becf3251f5c81776834a034fedd22ba15ea21aa606955ed743563a176632d592dbe4e55b7c0b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/el/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/el/firefox-72.0.2.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "102679221b358fd7c1595a5f23a0eecd60c83ca37c00e4a765dfc2c852047bd17520af733424d0c82ec116c83900c85e6157972841deecc3eb9eada1bf22b4f4";
+      sha512 = "69023e2ef7c3c5d3716421b603cbd85d7b812c201c1d1e2efb69a47d43de500306a0d493f9a8380bbd1490fdd85c564c0b2a9ed54d792ffc93cf67b399887fb4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/en-CA/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/en-CA/firefox-72.0.2.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha512 = "2eb273a9f9303b6b00f42c6d2b1bb6bc7e657a73e5710694362708208d9d9292a88f6307fcfd5a70aa3888fc0c075c1e2e844802d0307be5c02c159d3c266162";
+      sha512 = "2309e3a8e2973871911757392806fb74086c010c374334c8169fd91f8e45664746d693f63a0376a07f529ee4160f4f75ed22f4aefce5deba39d43df30d683943";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/en-GB/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/en-GB/firefox-72.0.2.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "efcb3f5305e343f99b2d62adb1d4972104a4920eea85caa8cc4a50c9193ebbf741acf2d762ac7280b1c99297746f1924444788b86e25259f023e1d31ef70329e";
+      sha512 = "8db7fb10afa8deb76352ff324ef44becf01db57acb01caa2bd7e69714ddf327912f4795e874a2056acae4f7d970b688ec4b08a4912774e88f6d67d11a208a977";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/en-US/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/en-US/firefox-72.0.2.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "f30ba9e8bbeff878e5e07b1cfbdeeb7ad84ec93736005cd0780c966970f0af056fb1dba5167a3c8cd31bd9d680054d0901c8859d9764388513cd4145390a5502";
+      sha512 = "6665f3683537437a3487cded3219a8228bf58b9294acc205ae18197ffdf240a67f623d827795672217194f327c0747708cc4997d25a1da90e8131e8a32667c94";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/eo/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/eo/firefox-72.0.2.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha512 = "2c12b5fab6247d2072ff22f9ff6e25ed52bae0a9f86ea24dceb5d440ace5209d0ef7ff8c54016f06498213fa2c383c8f15697e386f367e4c209941cb67bbfe8b";
+      sha512 = "65e52bd65313c31e9d354bf35896d410123b139aa27fbead0e41bba2cd8bc4737fb4e12fd741429c209cdb31661eafb1c49509359fe333c6082d9c3346e686a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/es-AR/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/es-AR/firefox-72.0.2.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "74000cd852d7bdb54fc53816d14baffdd30100a3e4e5ac62546f057812631684ff1a3b6d55b57d8974b1aeae823e86a1a309f548a49a7b584db3e4a772822557";
+      sha512 = "5d680d2135e4ba5e7c6ce7771e8b3fc34d753329fb8034e8018af302d451868730cd5175aca40b95a47319c5299b8f34d9bcf180270dd9d2cd4ca9413d0606f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/es-CL/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/es-CL/firefox-72.0.2.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha512 = "74084ecc5d419e264b13b4d26cdbd231010632da36a2660a49df6343dbadfb9c7cc3b55a8bc8aa97937c6c4c156065fc4b85987c88d3bc6b12e45a3695b8176b";
+      sha512 = "a1e81b2a68ce3808630efceb578d6d786ec0a4ad11de5985febd811ab49e60a5c91f60d4682a4b980a658ee03683e53f55d338851d3a475507411b7092090762";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/es-ES/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/es-ES/firefox-72.0.2.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "6ed8e84c4f5b0ce3da7f9f7cf3753d95f2ec8cc0283aef88ef75c5f05a4ac20fa7cd70fa212092f6ad5971aa73def4d331b6e219c958fd0dabd672d9ba9b817b";
+      sha512 = "d7807a206fa3c169a3d36a9b41f8649b83db1a43b2f54de7d238fde37728d59e27c0f8654223f02c7f9970d358830a29776a4bba1ff2e25629ef289ab0612b4a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/es-MX/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/es-MX/firefox-72.0.2.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha512 = "ec4154e7c84261fc1522fbe10a56cbfa56106d6c57239758ff3d23c83d2c676c070d01d91a57a18f6c367f62396335769b8793e7b19d85f38006c51ebd80d851";
+      sha512 = "bf0ac4aeb7d527969da7633a6142238c9b9e2c57612cf32582f1316fda1cad020a5c53de18d009db9489dbd781af5de1d1da72a6956b1a08bff3a149372b6982";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/et/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/et/firefox-72.0.2.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "8857b3b4aa2eac6e7e8e541e5aa8f3ece586cc8136702bc10fdc8db00567990027d4bf8231a1f6b91de69f59a2e683298eafaebd1d8d9870cbccd1b87d45b26a";
+      sha512 = "3213ae4c41a450ff0e487f661df8716a6e6ba24fc29d41dc7acc8807f1d0af8e065d65b441f6eb47c3a2c2554e3848ccf83f786b69e536e44f6dac994d76478b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/eu/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/eu/firefox-72.0.2.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "f5448cb81117d9424ab0b5653fb9272abb96cdf3d563fdff9533e8d066850bf9c3df29a076bbcae99ec72abbdbbe5300bfa58ce9e9d228b6db62539f31987756";
+      sha512 = "90f4364bc45540c8543c38291de35013e6198918cc2e32016b707c6dfe96ab5177501fd165204c6386cc3efc7204b86bfaf131af9ab164c0662124a5149d4cad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/fa/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/fa/firefox-72.0.2.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha512 = "49226e26b6940dc7ffa02b6816912de20d05e371c00971e964896cf093b92e8f1de355a17eda648b01e58f1c03a88179d18c903925d37986a5781a8abe4cf404";
+      sha512 = "be2e0aeba63a36348956862f636e6afd6c7dca6e76fbb103c91456737eb487dcac4073bbb57f45987f8308b395fb5ae0424b36b982e0ecb8d3ef90d259660818";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ff/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ff/firefox-72.0.2.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha512 = "3c188cbde07b11e99d6cd717fb83bfc2bd172eff696138a2e1922bc344e78ec78c957becf4419b8bf1fc87b479bf696f7955aeb1fc8985e18f784ecfeae2fedb";
+      sha512 = "5881048229f3f17a2c766c12ec4e734311f3841a3737fae4ad459c50eba5c889e98c4666f8a87074fe87f59c33603ad056cea8bda23ab449babc3eb230d442b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/fi/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/fi/firefox-72.0.2.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "0ab82df10e491acfb072c4c991e41a2ff8967737eda1597687be00d48c1d3d85b17540fae457939eb9de923d4fbc3f959ff31e148010eb9c85ea66ff4fc0046a";
+      sha512 = "1bc13da6298705ad2bcd40ca0994b1b6288416defed2a8bafedcf5d7a3e0239a550540eae7e2ec6556c4ab5ede77a6b451b906ce61f753fea2b9c1cea5205e99";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/fr/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/fr/firefox-72.0.2.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "3d4b12b186c54581fdee04ca756dfbc5a772cbddf500910f66c6d7d85a5a3a7b8247a79e666270e54a3185423ce452b0d7d2c87f30d407ceab7cf24ca8fe8b7a";
+      sha512 = "c5bb1bf92b1f24a3bcd493a183ac70683b01fe7bdc337e96c41582c043adfd0f429f3eb90f543a9af98dbbef915e6a5e2aa3f90f96414828c9cfa30e58187aa8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/fy-NL/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/fy-NL/firefox-72.0.2.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "446f13993a9e14b0bb9af09295f17fda411367eba9d8184445121baf0cdbcec33a6b18feb0c1373d7af003ccf457f21014cfcb6a9d7bd74999df11c6da02f47d";
+      sha512 = "fbd38bc075181e87abbd457e5c763146e4ddb590004d7e76fdc29ddba8c3d66ae718705339bdb224bb782eb8633771f8c287ab0d585f27a37614f3a7a284d97a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ga-IE/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ga-IE/firefox-72.0.2.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "c10f6945b5ef781e77a771281144289c00159ea9bddfb43c843f3de73b4063c930908af7c0d60a7c9681ba6c3cc2a61bcc8e8237abd8c615f5ce63439a4a0dcf";
+      sha512 = "c2276b743f3c5efecfd58bc397a202eb4efa02eaf30d5b18221c8de365e4ab625617e1430a056304b2c4a30ed901376e8ac14bf28b806d2c0b284bd732f546d1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/gd/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/gd/firefox-72.0.2.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "408ef04967d890da9bed3c60829fdcdb5b6fd0d8ff605904f4e563c7e8d971ab0f56e7d2f70db375dd50fa05d6d48889004271155416461b550fcd5030a4051e";
+      sha512 = "327f677c3d4f71c3802f515ebe36decf236725e1fc318f55afc0985aa800b206a5f7fa215a219e1c2c54ffd24f2f95baa6194822325aa6144b0ae1f8fdd22d2a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/gl/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/gl/firefox-72.0.2.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "246c22a6fbd0c57fe95bda05f65d1bb1126f4969bbc626c475126fe665d86f3029de0546373690c43f972fb7556917e4e6ff880e294f699d949b84b82dcab7c1";
+      sha512 = "d8aef85685637cc5186c5b0b6f9458f29955ffea90725973efaaca806cb48cf817095e08ee1d2ec533ccebc6199e671e04acf460d1b8a88c795b9842b1a55be1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/gn/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/gn/firefox-72.0.2.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha512 = "79b84cd7dade66fe9bf866ec053e069c127c9c24fa55a795da2870fd21c99304be77a8ed249c1fa61aaa2644036d40737596e1db7714cdb76fa030c2b446295e";
+      sha512 = "95585c2c547ec4224841178f6cd8697139fd6166aaceb749abc444425e100961f230cf1b98b76b8774b849e6a10a37f1be3047d97e48130407cd5c27f9031f71";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/gu-IN/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/gu-IN/firefox-72.0.2.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha512 = "30759375ddc3343edf4d5548c5e68da3525001ae1fe2120918c7a0e9ce77a5d4038d8083e7c5556ccc043b9587b5e048a9adfd53fa1a3c9d35c0ab4dc85fa6e5";
+      sha512 = "396b68a041957adb0a15390261cc152f41cd339511a94933ace779e5494a595ab36243ce533ed158f57c4bd2418e7b66764ce9c2cb4e93f7708fb29aa6a12b0c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/he/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/he/firefox-72.0.2.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "4db07da68a7fa44ce1ee23fad5c5041d91ed5598fa4fec73c10cb13e71771add1b56e0af542d874776aa67a714440459769f9e6a5f8ad7d3530ffc9ccc6297bd";
+      sha512 = "884ef44f1b5f017d46abcd268b87c6c433ffd8c30f5afb66cf66441558e819bda15d9843b7fba3413c8f148f6d8c583506b6a754d91e2baea70c5cad321909a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/hi-IN/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/hi-IN/firefox-72.0.2.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha512 = "17668e7fb3eecf5a9d9870cb634d7437d6081f70ee82811d08ba17d3b9c0bbf05c8bbb901b5e2090c7b133a9b5f742bd9de4d220b62c019e97c7d91ba847b0bc";
+      sha512 = "ca548c8b992d9c11a76f17b0790ca024a8c40893da10d50cd96f133f99459c981a2f2f37ad08f570bae809b6b08684d051651786840db33be4990f502fc5ba5d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/hr/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/hr/firefox-72.0.2.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "ab51419d8bf1397fceddf47b97b5223da65610dd13ab72b8c9298b514218149373061f8828a883b05d6f2d68ea014766a547142c8189085f8f9b7befcb4076b0";
+      sha512 = "d51a5454a6908d349b1b7239176f57fbd118d41d6bfe578c64bb9fe074628afc25acd1731221e6531a85a84d8193765d46e49843e7743f32be96b26180e9b593";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/hsb/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/hsb/firefox-72.0.2.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "4188c372d56d190d2020e92a9f443fddd6e225484d4ff7c3d4aa78b3ebb7a9155809d5c0e5466946f228d5c4333adc64583b93616eaa337f3d9e279c2337553f";
+      sha512 = "19bcad2ccfc2c00d1a735a006c126f7e9610c979310fd1af30ae1d9bbe2e1b6a35ccad8441ff1a2c5d1bf7f4b006751da6f848415ea28cbe2c47b2ebe1b97bd6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/hu/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/hu/firefox-72.0.2.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "30ab854d45f6cbe643839c07a08a838a3d1dc871c1321da1597c913a4fb3623a9fe19bd078e20cd9ce848b3dd9b0f44c77626ae7f6321d60d5ccdb9e5d3a2177";
+      sha512 = "2b598a6adb47878224759492c1834b317ba6fd68839de83ddad835c09f5bdf92c5b89a71351b64aa9f8332f61d685ecf56ca2423128142e03a6904708cd693d1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/hy-AM/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/hy-AM/firefox-72.0.2.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "9ab1d1b43b0f70196395701c0940a76fb71190826d17493dd4565e1c859e68f8754c1ff119ffdc56a680b809b23e1481c2e764810cac3cf1cee288b35bed4dd0";
+      sha512 = "76e940fd65f81be02750c299a2375e2252b1e2595193aa52ae6238a4931b08d461ffb2806a6c6ea7ac24a343d183bfacb1a57d349d4c57ae6e3f68ee09833322";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ia/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ia/firefox-72.0.2.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha512 = "a88de0287e9cdc41ede83d7004fd0614caf479109abe79e1d3f3dd4f370b8f79a48f2174f3a229a897609d2f20d6048d3d88cf50a2934ba3dabedf96794958f9";
+      sha512 = "6554fa82b4e6e7dc20a5dc83148752661ba12aeb4ed19500a21f9d3e46b7cc37881b53ff0100c9f382b2e24e16dc99ce1fc338677e40ae4eeb3d4d1a9bc8ca80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/id/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/id/firefox-72.0.2.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "e5eeac2e2236704a63680cf17c831076a99a993baac3f7a1b9381d8d6d40aafa898fac2aff93510179ca8d3f0dfbcde08ef7f6f99dcd017d2362750173c89111";
+      sha512 = "dd12e9a4cc83e13c6a7f49d7a52de3f46b4439405a28bdb855406394483cd90120a4b5ce9bd5df912a70128bbd532d158c1b3eddeaa1b7c95ca4b8334429d599";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/is/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/is/firefox-72.0.2.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "c2e752ae20ff38177457afe87b2c80472d769b41026b7fd224a711138482b3cb3abcde4fa2134570ffab89cc110274cb8bad378445bd3cea77f35a825946c532";
+      sha512 = "01e7e45c6e45d7a20dfeeef16558684a6f38b6d97e84bd084246c17d891a19432f9fb77b7c2b0daedb12755853e53efbb0fa567f2f306c385d9c6e7e2fe1d661";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/it/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/it/firefox-72.0.2.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "50638f98c440c9ce73f298f10f9dca803fc7a241cde1afccf5e2f87701a28207a0d01fd90f318a2192174c8dce179a84f3a8c0281dc8f1c0bf6c5fd3793903e1";
+      sha512 = "e000567bccea7588af26e9e51883bcea340ee237d2626dc9e63eb241efc49962d60712bcbd4527caaade8eae7a64ead080e7df0150436f37aedcfd5cc212146c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ja/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ja/firefox-72.0.2.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "8899ea60537da6da0d0cc4bf99ed406ecfa21183b94865311918c0397650c81dd36c474761c14e2981bce5e9093d3e905dc465141f62d14bf634c4dd392be870";
+      sha512 = "5bc1f2078288499005e189adcf2c6fe3fcaf3f642d624c2451da2611b804072771161c59ffb58021cedeabfb91415644a201db519e5d6211e78ee52f32e97979";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ka/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ka/firefox-72.0.2.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "146585388cfef7c339142ac54d588c790e1bfcc81a7c04ba47e778732a64fe5eafdb0cb00bccb140c75c1b6a2f6e3c6a3e2f700a978f4569b30c6434cb7ccb4a";
+      sha512 = "ffa42e8f3c098b199d68321c1354cbd6e21ba7f36add6e9000c8a2ea524f3ffd70ad13128b4c67ba5f376158dd87f7565a8bf876bb385481f823b5fdbf74d8d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/kab/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/kab/firefox-72.0.2.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "c94d2ceb3cca7c15adcfe4d282882c10a13123ced5a939566732a85a7004ca65d002628d5600569213f5e829e3f28261a25902e6cd1bc5716e732bcb82ed28e8";
+      sha512 = "0315ea8f56f8525f9758e919c97437b8ea8781e04a98c2a34502b98196c6b27030759e26098051cd4f27c96c7de4bee3f28ff8cf9ebc87b12aac7e7924a79275";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/kk/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/kk/firefox-72.0.2.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "2c204d753f233548ba6409046653d8e9ef1476bf161a040edd90c5adc519a48e2cda1253ee8fa16b9a05c1147d7697dfeeeaa7700f01c072477d557102f58a60";
+      sha512 = "4c0e327fdafe298dcf897e68fbd1557bab24ddb91bcfbe3bf92a19662f6fc6c4c8862585d909639fc7a4c6bd4b875d52d8a6d0867049ca1b1ffbb00d8e8d9195";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/km/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/km/firefox-72.0.2.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha512 = "7bed04807b6e6c90f69c6eb3ea53136dbbdb88924ec2a13019ce0660b3c58f001db94cf8054f040581cdc8d5b9589138542b13b8408da0e8167a89c1295b19c1";
+      sha512 = "34a45eda40d599116be8f320ad99e25dd2d9607d91c99aa8b1eb5b05eae32dbb526391a4a08ce5b8d411a6d6fff23dd9d01e276f75653d9c2adc5a4177511df2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/kn/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/kn/firefox-72.0.2.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha512 = "e7db8109668c0350cc5b970da5149072676d6f59ade68bf8f90ef15d35e422c6d102b8cc9e7b5de5d92e14e13af85dd47ccd21f98c974d65d65502a2b08d3eb9";
+      sha512 = "6bce122a0a2a88ee17b29ad2e98e99293c077fb70ac63604b407f4426bf39c9ee3d91057b9e60df6604a71183a266fa7f27bda01c0fa60bde898872d5325e9ca";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ko/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ko/firefox-72.0.2.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "0687087a4f58172a69f487ae395baf362b03725eb4435306531ed848d552fba835aee43ecedfa3bb8bf9fd518c324727a6dd9e772789253135c46b542ebc71df";
+      sha512 = "3b746676d728ebdf3dfd646bf25b007c61c7ce960f7cf77f80601cb38e6fb56cdb6d6d7ba36e84f55b7969f2f8f882def133126e0598b43ac569380cd897f2f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/lij/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/lij/firefox-72.0.2.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha512 = "d225a4b464f37b45463069b571a78c250bfb242b598aba681209255717113904f3f4466e0f20b8e34a96e1a00355cc5d2ee65361e5b252275962003bd0765f52";
+      sha512 = "453ae335ec815eea785d822ceb8224d590b8615b21f316ee7f6c06e9a0e02c341d26b9e938fd5eed60727df719c8d8394df312bb28868cd21ccaff60d3212d9d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/lt/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/lt/firefox-72.0.2.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "3f0a5c0b6ccd806971d902aac4e11ea1b783c7b5a121e2d92c08ecad14d36c35ca56779362e2cd73e91885a6ff909314d44b290149378f0046785b39b6520d69";
+      sha512 = "e6da72f2ff519a0e348ff8c9cfe7a29a3253eaa16e8ef58fac79868b9e4e4ff9fb453e763397209e0490658005ecd2d4bd339b366afd7f8936d51186e55c94ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/lv/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/lv/firefox-72.0.2.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha512 = "170a1f7152f0c224e2b7d0b0be6d9f93802c1ae76d6d5f3adfb86ef6793d23218c3874d912dcbbc2c77d7e9a17e50b53e6d265e1a69d40bb71bcf44324dbc8cc";
+      sha512 = "c9f958bf85e43fbebad9b9dee033cbaaeeac010065a7b79c6b4e90967f16ab747f4fd0d01af4316094876eaa80b35ad67b6b485ab4b02a3765ce3583cbe7eae2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/mk/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/mk/firefox-72.0.2.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha512 = "342d83f45f97eb89c36d3ed5121b11b21f48d8b79b84e50a44704c9a3b11f428104189888ce6b0c77070b256f30432f0b1365af2016675bbd15403d14e439e33";
+      sha512 = "3c936346e9f915f24b806d299bdb2ab665d03f3d2c12a7b52506109ed1aca4f87fd3a099f6fca6fba1bce46784bc3a93d54ed2d9e8b704990bbc757bf4e1b798";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/mr/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/mr/firefox-72.0.2.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha512 = "6faa239678801054aada6860d4b56d708db429a9a42bd6d5182ea8b13f823264130831f75fd77c20c3ffaa955fd47cb97fd4ddc8edd486cfb59166fbbc04421a";
+      sha512 = "92622561297d3e8dcbbe56d2333f3b46ea66cbd72efc64c20c339d33046244e68f98687a9c5b5c5e6738eb6e88d392781cb1c56d96647e454a7e1bd111761ff9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ms/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ms/firefox-72.0.2.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "798bd9ae750c2825f538e971c59775d9e989c32576c3abf096e33ce205650248912468769b43fd2e02a03338ecbe24ae0c7a1ce89de059ea113be04af4797696";
+      sha512 = "9ba4f473ca8e56576d4c13e467b49f7cbb2f4af43e78406361d4222a74412f7b336419da504168754828796eb2f5211fdbd0afd8f6bf4030aff7a9855919b119";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/my/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/my/firefox-72.0.2.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha512 = "27714b0bcbc636ec08f6fbad35ea6fa047b39d53e887fed95ff5d3b5a83aa3f5ecdc5081f08aa171feabc5d2eac04dbd0a7b523373341cd6f0448f15ce81155c";
+      sha512 = "8abe55c550aa5f185fa0919641749de22d807625d1ad84b561265653b17e04a267311b6d5be5d3e327af04f2ad5bc17352a2d48df7927c7183cf5578c9ebcdc6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/nb-NO/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/nb-NO/firefox-72.0.2.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "18df354679b1a564fe18367d12a0a739e2ff330f4c7b559e3c9e2ce9af842bc8ebf94b01bf190f85255927a95df3dbe70fdf4baaee9f273c4bab8737e960ce7c";
+      sha512 = "c15e35640a4b6672fce9263a15dfbb519474652ce2024d6627d3a853ae8017071ea62eea0cc3524ea5c099aa3eb0de34e51d6765e0dd507a58311db6b810de44";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ne-NP/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ne-NP/firefox-72.0.2.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha512 = "a8e86ab99146c482366eaf8e59cf4ebcbfb9012a2591f925b9a4940f85747eb066a365f1f5994bdbb4005989a7a2281f5f3a33dbab518449d05a3b66589209b0";
+      sha512 = "d5b54a65c3b12d7090061e23ab3e0428c6e870b1dd7c6293d13011921b868db6dfd8ed9f4e0ffa33d2af7c5f53ae2ad50eaeea0a87b0a9af676d32f6563d1e5b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/nl/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/nl/firefox-72.0.2.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "58f2f70a6cf55c70a5ae7a280f834b0f5553950abefe8e54cd804d540ba9ec16dc7c5c998bdf07499790b202546c95c9b65d9d42bb826191c1ea7154498cd939";
+      sha512 = "3c7c0e1b45948125a01b3447e6bb4d1bf48e79c16477bdaef5145e67d154f101b299ec696d22588052a5d7e3e87b226418795c3aeef9991d226bbd344d7e8c7d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/nn-NO/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/nn-NO/firefox-72.0.2.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "7a350a2415aabf4407fac3b26abbeda0cda67bc109636ebe06a1bcf6f449f24ac1676241f4e94359d466b130334f1894a4c962acb6fd531540c1b671ab0754c8";
+      sha512 = "f4391136225aa0e477c748d541e94be9b75b955ef8a756d12ac3213a7a83f0b273d320b512bd3cd82393f6fd1b1470f02206cb37562554179d0c23b3b6ab83cd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/oc/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/oc/firefox-72.0.2.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha512 = "dec9c3c3e9c8a5502a4fcd3538248eceb827df95b7cd647e1ce562a3b8ad56e9b060e9fddbda68b87157ac04bac155ddb273b94146941f4adc814c77b07de322";
+      sha512 = "af5c368c519a95d575ca0cd3b719406ece8823350c828fb4984b58584c1abe8b743ee99bbbd29f98a543510c91358a80817d707070c2b2e341529e33ea955e64";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/pa-IN/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/pa-IN/firefox-72.0.2.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha512 = "c53fbe696a907608b557b071f8d10db9029fc315a6b4909a4387b056cd794efe3aae51f4ccba03235d90161284281f0feb3fbf7bd91f6c4b794786b2e632c3a7";
+      sha512 = "9e1f51321f34b9d4ae207b2630c7be558f16b0d1e3a0b7fcde82c908dc435b044388a3a23da99e28c7be3889275d67041cd53276b8a4af04f7b01e00f06ae3b8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/pl/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/pl/firefox-72.0.2.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "ebd0b078f7b6949d60dcc4d42e7b13a385528076bddfe75b659b7407fd9699cf705465a6bb37fe60bf9999a2d5a5f95b65580f77116423276434c47ab0e5651e";
+      sha512 = "3b5ec2695ceb35dd2b0d70b3f47cad9b692eb11447ed9bbf4b3fa8e049a35911802ee455a132fa812eaded78ef18df31ef3a8a11c8c95b260bc89350a7355181";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/pt-BR/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/pt-BR/firefox-72.0.2.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "a08009bcca93ff1339d22d3c745153232b65332fba7546df17d761e7c382b4fff8bcde481b368a9704cda8096f42d39d5a422a1a6c3888fab2905c3df717338a";
+      sha512 = "df5fbe1a058233864e7ffae44538b14540ed4846ca5bdbfbf07eb627a8753c3bdaf68b337eb6e69900df8cf3930a9468e7c626583af60761854a282fd5d52b95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/pt-PT/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/pt-PT/firefox-72.0.2.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "ed90835cacda14da02f70ce7a8ddddb63df2c9c5952d5380b78da9c57d7f9264e6034fb6411c1da7d41d1f7c42107fcd3ce09530dcb63462849df194158ab7a2";
+      sha512 = "0145016eb55586388a49fe052daf5d7cadadda15ae88ccbf1410f35de0d0e4fbcf7afa5ab5889c9c88a0937691617a51ac53dc8db070aa199b17840275d03ec8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/rm/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/rm/firefox-72.0.2.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "b67fbd54ef325232ef4c3168aeb1511bd96a3b359d71f4edfd2dc3f925d9d246192c24c65332baa80d57f3449dc94f6c3f06fb9ffd6204959ec7745e61cdfd6c";
+      sha512 = "9890545266e1f31a27c50a4782acb6d3af0825699e6ec78151d872d7a181c6258a08764cbf046d483593bfd8467c4c78b9bc316fef20bf444afa73b7bcc14795";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ro/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ro/firefox-72.0.2.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "deffedac6577d0e413954217b075cb775330b11013076d484329710756fd539ba2c35af8c267f49aa367e7d61cf56de65d67b2c888db58401012f8c3f6113427";
+      sha512 = "e13b760d6d61079136b4449ee14a8d2cbaf72512071f4475d8fdb95337ef86970ee3eb72f987c1e07290650898108f0e90948ecb2ae027ba40b5fdd53ff7303e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ru/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ru/firefox-72.0.2.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "ded41bb7b3a0dadbaeb05b836a175988133a6e94637063efd63e7658a7887e38e2601384b79ac64be0b9de4100f923bf9de40c31562b9c4314ff0df7768be511";
+      sha512 = "3c51eb7be0e7a23b2f3ee8b8ec5cd420ceda5bcc3aad6b76ff4406ea0b59fd77327b295d78df6990556cc9c6f8d221978d6af58890d4122cfb604891fe6d574d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/si/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/si/firefox-72.0.2.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "c45238b95c815603e01c180eaf254e06a7e2feddf429adc58977fa5cd5b094774f6c0e9f34030dfc38fa198662cf0ae5289a78930b6f37042b2c1bba4109a37d";
+      sha512 = "1a4bb6b01a0d9bc89b270844d4c1e235354abc447068b45b3630733d1735b66e65c808f70c532474c31298b7962b463c7b71bda89ae2f302fcb847101e0734b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/sk/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/sk/firefox-72.0.2.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "5a2cbbf81ac7b879413ac0813890d37609ce7c9fbf47037e20886d9728fd4687159a193fed05c15090c8a47d43e63059925c901020c1661db1f979f62c8a385e";
+      sha512 = "c46e2914e4afdd9b3e6a0eec1f2e5ff9082944221a35d9a4de8439f5c31ee705b37575eebad365e19ad2a447eea065a712cb02150757cf053be83986e69700c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/sl/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/sl/firefox-72.0.2.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "6c47debf86017544d54494eb7a17823bb2de08e1c8fd5d0065e2887349c19eb1c83a617b2f828ac547629d32d6ea0f8b6b7cec616f80cdf56120e2008b180764";
+      sha512 = "335256ef9a8c9008119fc7de2f14c4c51e288f65cfeac0ce8dea737cab04772739f99401ef7b8873e95e0290239502a227d3a6772d7fab96ae7e78437b6854a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/son/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/son/firefox-72.0.2.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha512 = "7f3068c3d69972e730a7141e098c658773b10bb462168eddcd3adcf9b4874229b571cc8f7eed99ed6b45be8b74c79219d0cd12fa43797603ab2f032557fe8f8f";
+      sha512 = "1de8c05e776163d5015487ee1c48b63f8c2beb6699c3502e9bd08058529a59324df59f26426852558e30018657978ea613b97e2e651a6dc500379d4a61651947";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/sq/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/sq/firefox-72.0.2.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "4db0d7f87447910fa43e4145cf024c5a165a10b9809bc18c4b76f2a86cb41aeeae3193d34f4bdcc7bead8a62974fd68f8883ace5c79d35e33a47c954d73eea1f";
+      sha512 = "02794e37e26dbc6b8df8a62d9a29a5e47cf0a45a1929265c1177c97181592a5ecaa99b5549bb95da00a0559d1488723a4454866d2e5edb08413b984165150140";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/sr/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/sr/firefox-72.0.2.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "85d8ecf97a1b1f7eff30b1de4bb84ed0637bf99cb72ad444e7e769d29cd687773e66dbed2116f5997af6fbf64802ab7c31b28f579e7a517a08a6cf06f92c8f96";
+      sha512 = "dbe5862115a4f55f2c78de57b03198e08dce35d491b60238955d406b0696600bec8f116615a41bac3d80d5e77e1faccdc33663056b4b15aad952d0b096d73260";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/sv-SE/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/sv-SE/firefox-72.0.2.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "322f999692fbf3931789b3b6af5eb646545f5e9fe4876ba004b3803454d89c633fe0ba85283954edd3fe4439ab30e17eeb4e4edd655570e07da2c0c78bda0e22";
+      sha512 = "4c0d9dea8339def7a3dc300da9f8cfa1ba6d6eb5a5899918bf0ab8211b4b5aab4367ca91a7a290aa5faa3424588d29bc34e89ab645bca155d8ce6150e225b946";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ta/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ta/firefox-72.0.2.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha512 = "ba1c8227da1f99f385376402133ac2706bf20fef739ff48850daf1f0e586b87146322ac18af838eb32355ae40288f922ebd5a1976039a800de60077b4428dc44";
+      sha512 = "d70089c118868484a556e747a72cab6242ca7a5aedd7425c59f273170ec559afd9b057d7106226a9948540641d25829b21b4bb9b4bf15b02f3ec2702badac873";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/te/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/te/firefox-72.0.2.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha512 = "1d785d24d460e536f35a88fa0d8feb6434f1ccadb38e89946f8e432a2d98161cf10bf42c6d34fde577d5d2c4b13d47fab43abfa2f18554231a53887e361d6ad8";
+      sha512 = "bb65f50f55d11b79c1943df102b6f3479127c89c74bf4cc7aeb5fa8dea61116f23caef84a770016567285cbd7788c923f3c87af5598d7ffb805c541e0c69a0fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/th/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/th/firefox-72.0.2.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha512 = "ef10ce89127be75a918e9825ceb97aaf7e2f66ca0591ebba624fa2da786a267304b1e505a1dca72282a92d6c6678148c6cc322e02175c1f506bed110ee7936fe";
+      sha512 = "5dc7eb602e0ab548d5f337bd79630c516968544bcf6f801093676f784f54e20b5218d2fd0b323cff31292aca15616e2485e75c3475f71c2681222bc10a74e367";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/tl/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/tl/firefox-72.0.2.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha512 = "ed033872bfc0a06b0928e5bc775e4f4dda5267555d086c7719872491480dd6e70bd94540aa9dc0a197d907ff66642b93460e41c04f721f7d0daed663bfc1d091";
+      sha512 = "3318940aafc8af7421a2e1973a1bdfabb6670dda5a104de41f4ed1abbb3c904e6319ceb6f94fddcf11e4d18e5f72d439f5e4506f6b42f9b5adddbf291e9e2532";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/tr/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/tr/firefox-72.0.2.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "d4c24c049e4fd378e7c20d3df5dc2a9c5e9cdefe3f84e5dd6b3fefea10fb8010a01f96cbaf7635914c9bea38f0059d11c8f7e7ac748f4fa9d7f3351259301fd8";
+      sha512 = "fedcec77a95458fd334be9c8af587923d6281a50ed9c146a32f289f51138ab27d0cf551ccaae77fec2f5e4aa2565c12af7267d5476e777d95761ac2f6904cdcb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/trs/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/trs/firefox-72.0.2.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha512 = "931a3b11e536164b6743a7005f3b826495616ce591c50fbe2ccb42d32908c88412d5a9519843eb7f4ad50e406b9fd14ea69295c313f30a3d41c3338638e483d4";
+      sha512 = "1f4293cf978b92114b25aecf7f633608eb0ec52274147b939bda57463bfa170467484d3eac34183588b58ebcab6c68b20d59561961489069b7fdb120474806ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/uk/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/uk/firefox-72.0.2.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "6baa572a479043e15de3704f009ca3702ef48d18f364401165a20367809fc4f09b59d04734bd9ffb698d1e834dd88540abe4f951354650c731304b6cc1333018";
+      sha512 = "7e7b442ed847d07ee42c9665835a6fbb06f1b8e61e04dccbe623624facc0fb4ed3832b91192819190be785decaf07a61575f198f089f852b814328a168e2af5e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/ur/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/ur/firefox-72.0.2.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha512 = "9eb660140868950613b2754b006e5f7bc08f73830be2508fc6a39a83dce9509796b834dcce0288ffd74e8373f2c8a175f0034582d2aed769ead063bb57045d85";
+      sha512 = "4519a75106a92aa6b6c172fe565818f554aa9da3a6cad86fa6fc4ead9f3fec24bf5065f69e12d985b7798b7d0b019033b88b81605d9599746bbd58786d2d2025";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/uz/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/uz/firefox-72.0.2.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "9272971df4ffa5d1867b40b1f2d6004a64e604312208f3031edae6ddaf9a2dda262dca69aa5c41b9439241133a6fe64d43e5932192d3cc74a893290cb1594a45";
+      sha512 = "41f4eb9cb1f002373ab5d1587c92f6b3fc5b0729117dfe4d74e399d1c8b08c595fdf8d22a253296f4f838dae1f8c4eb15fb634a77a2d60f8d4d61fb402b2a1cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/vi/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/vi/firefox-72.0.2.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "ebf8065c61505a8daaba054711a523abb6053db6560d8f72d0b7ca816784aa9ab5856b959357afe94fddc9e1d8e5140ca1bed4aae85daa8be71347e1f158e35b";
+      sha512 = "02a6856c5a9a13820cd26333d6968159743907304e58fa1973592f694968d3b9ab229811f239a0f5c37974ef16c504c71d2312127293b8276c7077b03dcbe0b8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/xh/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/xh/firefox-72.0.2.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha512 = "e7121225f6eff3a16bfc95b38d07ef474b03891ce1b5a57905b5f521fecd8e8f5cac71b9246c65399f1bc4879279d4f53675db652c563d6023f0574a8dd30462";
+      sha512 = "d0076f85cd30481b7d174fe89b245c13063b6bf64465c0a6cd288ece96c662d77e25ff2412afe334310375dc3ea39bdfa31c81b1b67ca5d54f09d2e871e7d23b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/zh-CN/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/zh-CN/firefox-72.0.2.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "8730552f819342a634e9eeae8e0989e54d9d4a3f0cdc76d5c296e6ed5f5028b5029286eccf4f252addd53e3e3e06a3321491d7b37b0d565b0524382210a02e0c";
+      sha512 = "d560bab6c8deef31fe2f582faa1cf827eac11e60b2ce8695be5c8682972247bd9b6abc3b7c0e2ec174e3dec09374c3a909554660b449abeea821c9b69fdc3550";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.1/linux-i686/zh-TW/firefox-72.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/72.0.2/linux-i686/zh-TW/firefox-72.0.2.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "ae10d531f4819cf603adcba33c5a5779bdf70962a4b0d802c1b001ae4c34b573941dcadd9b1ba6377d5b1dd55627bbb7f97b28d44c21c2cd9b124f1e465186d6";
+      sha512 = "06c70f2d07a84f98c5fc2407e29a53fdf08174c661908f788ef7b4b652a0c589c192c0eb6d5eb51e2b4fd6d529d491899c93e153cfd1e58169f3eb037d112dfc";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 54be5fd32b6..833b97ba86f 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -16,10 +16,10 @@ in
 rec {
   firefox = common rec {
     pname = "firefox";
-    ffversion = "72.0.1";
+    ffversion = "72.0.2";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "37ryimi6yfpcha4c9mcv8gjk38kia1lr5xrj2lglwsr1jai7qxrcd8ljcry8bg87qfwwb9fa13prmn78f5pzpxr7jf8gnsbvr6adxld";
+      sha512 = "13l23p2dqsf2cpdzaydqqq4kbxlc5jxggz9r2i49avn4q9bqx036zvsq512q1hk37bz2bwq8zdr0530s44zickinls150xq14kq732d";
     };
 
     patches = [
@@ -100,10 +100,10 @@ rec {
 
   firefox-esr-68 = common rec {
     pname = "firefox-esr";
-    ffversion = "68.4.1esr";
+    ffversion = "68.4.2esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "3nqchvyr95c9xvz23z0kcqqyx8lskw0lxa3rahiagc7b71pnrk8l40c7327q1wd4y5g16lix0fg04xiy6lqjfycjsrjlfr2y6b51n4d";
+      sha512 = "1n7ssx4w5b822bq8zcv6vsy5ph1xjyj9qh6zbnknym5bc0spzk19nrkrpl8a2m26z6xj2lgw1n19gjf4ab6jpfxv3cqq4qwmm0v2fz1";
     };
 
     patches = [
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 3784ff6b00f..6825d2af64f 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -17,11 +17,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "2.10.1745.26-1";
+  version = "2.10.1745.27-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "0zl5sqa60x9yg7acp6vxgnmfzz27v849mlpp1wgnwh019fx3wf53";
+    sha256 = "1z9biiycxcxyw7i1lqhvk8092hqvidaipkfdvkz632vxcg33jz4q";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index 904eabfcda8..16472b98fdd 100644
--- a/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fluxctl";
-  version = "1.16.0";
+  version = "1.17.1";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "1yk78w9cwssk5y69iapfzqf7mnrkam3w64x4zsx3zjpdmvp9dq7l";
+    sha256 = "0kp4xk1b8vxajl3cl6any9gmf3412gsahm5fvkyaclnj20yvq807";
   };
 
-  modSha256 = "17rh8yilxqv0dwljwm5ay43diwcy5pa1g2jff9wyhsh8q7sy9wln";
+  modSha256 = "0fnlnavw4l3425c9nwjkd98xihrgxi9n5yc9yv15j5xzg47qnqav";
 
   subPackages = [ "cmd/fluxctl" ];
 
diff --git a/pkgs/applications/networking/cluster/luigi/default.nix b/pkgs/applications/networking/cluster/luigi/default.nix
index aad75264364..def13e2b9d0 100644
--- a/pkgs/applications/networking/cluster/luigi/default.nix
+++ b/pkgs/applications/networking/cluster/luigi/default.nix
@@ -2,19 +2,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "luigi";
-  version = "2.8.0";
+  version = "2.8.11";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "1869lb6flmca6s7ccws7mvyn66nvrqjky40jwf2liv9fg0lp8899";
+    sha256 = "17nc5xrqp6hp3ayscvdpsiiga8gsfpa4whsk0n97gzk5qpndrcy2";
   };
 
-  # Relax version constraint
-  postPatch = ''
-    sed -i 's/<2.2.0//' setup.py
-  '';
-
-  propagatedBuildInputs = with python3Packages; [ tornado_4 python-daemon boto3 ];
+  propagatedBuildInputs = with python3Packages; [ dateutil tornado_4 python-daemon boto3 ];
 
   # Requires tox, hadoop, and google cloud
   doCheck = false;
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index 98d37fae911..73613778365 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FlexGet";
-  version = "3.0.31";
+  version = "3.1.10";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "b9edd905556c77b40046b5d7a27151b76a1c9a8c43a4e4153279ad42a784844e";
+    sha256 = "d16c519630350dd1ca867529970b47438950f078e16f9f1d37bc3f027666bda4";
   };
 
   postPatch = ''
@@ -39,6 +39,7 @@ python3Packages.buildPythonApplication rec {
     jinja2
     jsonschema
     loguru
+    more-itertools
     progressbar
     pynzb
     pyparsing
diff --git a/pkgs/applications/networking/gns3/default.nix b/pkgs/applications/networking/gns3/default.nix
index 71044bd0f18..2dae8377055 100644
--- a/pkgs/applications/networking/gns3/default.nix
+++ b/pkgs/applications/networking/gns3/default.nix
@@ -7,8 +7,19 @@ let
     let version = if args.stable then stableVersion else previewVersion;
         branch = if args.stable then "stable" else "preview";
     in args // { inherit version branch; };
-  mkGui = args: callPackage (import ./gui.nix (addVersion args)) { };
-  mkServer = args: callPackage (import ./server.nix (addVersion args)) { };
+  extraArgs = {
+    mkOverride = attrname: version: sha256:
+      self: super: {
+        ${attrname} = super.${attrname}.overridePythonAttrs (oldAttrs: {
+          inherit version;
+          src = oldAttrs.src.override {
+            inherit version sha256;
+          };
+        });
+      };
+  };
+  mkGui = args: callPackage (import ./gui.nix (addVersion args // extraArgs)) { };
+  mkServer = args: callPackage (import ./server.nix (addVersion args // extraArgs)) { };
   guiSrcHash = "1yxwbz93x9hn5y6dir8v7bdfsmfgppvjg4z88l8gx82hhf2476fx";
   serverSrcHash = "1d3m8qrz82g8ii6q6j015wqwp6j0415fbqbjvw43zhdx5mnn962d";
 in {
diff --git a/pkgs/applications/networking/gns3/gui.nix b/pkgs/applications/networking/gns3/gui.nix
index d978b060aab..2d462d5c11d 100644
--- a/pkgs/applications/networking/gns3/gui.nix
+++ b/pkgs/applications/networking/gns3/gui.nix
@@ -1,25 +1,18 @@
-{ stable, branch, version, sha256Hash }:
+{ stable, branch, version, sha256Hash, mkOverride }:
 
-{ stdenv, python3, fetchFromGitHub }:
+{ lib, stdenv, python3, fetchFromGitHub }:
 
 let
+  # TODO: This package requires qt5Full to launch
+  defaultOverrides = [
+    (mkOverride "psutil" "5.6.3"
+      "1wv31zly44qj0rp2acg58xbnc7bf6ffyadasq093l455q30qafl6")
+    (mkOverride "jsonschema" "2.6.0"
+      "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg")
+  ];
+
   python = python3.override {
-    packageOverrides = self: super: {
-      psutil = super.psutil.overridePythonAttrs (oldAttrs: rec {
-        version = "5.6.3";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "1wv31zly44qj0rp2acg58xbnc7bf6ffyadasq093l455q30qafl6";
-        };
-      });
-      jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec {
-        version = "2.6.0";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg";
-        };
-      });
-    };
+    packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) defaultOverrides;
   };
 in python.pkgs.buildPythonPackage rec {
   name = "${pname}-${version}";
diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix
index d6c6b65846c..beeac9d0293 100644
--- a/pkgs/applications/networking/gns3/server.nix
+++ b/pkgs/applications/networking/gns3/server.nix
@@ -1,25 +1,17 @@
-{ stable, branch, version, sha256Hash }:
+{ stable, branch, version, sha256Hash, mkOverride }:
 
-{ stdenv, python3, fetchFromGitHub }:
+{ lib, stdenv, python3, fetchFromGitHub }:
 
 let
+  defaultOverrides = [
+    (mkOverride "psutil" "5.6.3"
+      "1wv31zly44qj0rp2acg58xbnc7bf6ffyadasq093l455q30qafl6")
+    (mkOverride "jsonschema" "2.6.0"
+      "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg")
+  ];
+
   python = python3.override {
-    packageOverrides = self: super: {
-      psutil = super.psutil.overridePythonAttrs (oldAttrs: rec {
-        version = "5.6.3";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "1wv31zly44qj0rp2acg58xbnc7bf6ffyadasq093l455q30qafl6";
-        };
-      });
-      jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec {
-        version = "2.6.0";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg";
-        };
-      });
-    };
+    packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) defaultOverrides;
   };
 in python.pkgs.buildPythonPackage {
   pname = "gns3-server";
diff --git a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index d7741bda646..010c06e0c2a 100644
--- a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -1,25 +1,25 @@
-{ stdenv, fetchFromGitHub, cmake
+{ stdenv, fetchFromGitHub, cmake, wrapQtAppsHook
 , qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine
-, libidn, qca2-qt5, qtkeychain, libXScrnSaver, hunspell
+, libidn, qca2-qt5, libsecret, libXScrnSaver, hunspell
 , libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c
 }:
 
 stdenv.mkDerivation rec {
   pname = "psi-plus";
-  version = "1.4.904";
+  version = "1.4.984";
 
   src = fetchFromGitHub {
     owner = "psi-plus";
     repo = "psi-plus-snapshots";
     rev = version;
-    sha256 = "1bs7yk3qp91sm8nb9gna8vm59381afn1wfs7aii9yi29bhx6fw9h";
+    sha256 = "1nii2nfi37i6mn79xmygscmm8ax75ky244wxkzlga0ya8i8wfjh7";
   };
 
   resources = fetchFromGitHub {
     owner = "psi-plus";
     repo = "resources";
-    rev = "182c92ca0bcc055579d8c91bccba9efe157e77a9";
-    sha256 = "06k7q63cxpifpzjnlw1snclkr2mwf9fh71cgfd40n7jgzswzwhpb";
+    rev = "2f1c12564f7506bf902a26040fdb47ead4df6b73";
+    sha256 = "1dgm9k052fq7f2bpx13kchg7sxb227dkn115lyspzvhnhprnypz2";
   };
 
   postUnpack = ''
@@ -30,11 +30,11 @@ stdenv.mkDerivation rec {
     "-DENABLE_PLUGINS=ON"
   ];
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake wrapQtAppsHook ];
 
   buildInputs = [
     qtbase qtmultimedia qtx11extras qttools qtwebengine
-    libidn qca2-qt5 qtkeychain libXScrnSaver hunspell
+    libidn qca2-qt5 libsecret libXScrnSaver hunspell
     libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c
   ];
 
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "XMPP (Jabber) client";
-    maintainers = with maintainers; [ orivej ];
+    maintainers = with maintainers; [ orivej misuzu ];
     license = licenses.gpl2;
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix
index eeab5e32c0f..f588c31c183 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation {
       --prefix PATH : ${xdg_utils}/bin
   '';
 
-  inherit (rambox-bare.meta // {
+  meta = rambox-bare.meta // {
     platforms = [ "i686-linux" "x86_64-linux" ];
-  });
+  };
 }
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 2e8581f4eae..bc41b023627 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -2,7 +2,8 @@
 , gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
 , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
 , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib
-, cups, expat, udev, libnotify, libuuid, at-spi2-core, libappindicator-gtk3
+, cups, expat, systemd, libnotify, libuuid, at-spi2-core, libappindicator-gtk3
+, autoPatchelfHook
 # Unfortunately this also overwrites the UI language (not just the spell
 # checking language!):
 , hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
@@ -21,11 +22,32 @@ let
         --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \
         --set LC_MESSAGES "${spellcheckerLanguage}"''
       else "");
-  rpath = lib.makeLibraryPath [
+in stdenv.mkDerivation rec {
+  pname = "signal-desktop";
+  version = "1.29.6"; # Please backport all updates to the stable channel.
+  # All releases have a limited lifetime and "expire" 90 days after the release.
+  # When releases "expire" the application becomes unusable until an update is
+  # applied. The expiration date for the current release can be extracted with:
+  # $ grep -a "^{\"buildExpiration" "${signal-desktop}/lib/Signal/resources/app.asar"
+  # (Alternatively we could try to patch the asar archive, but that requires a
+  # few additional steps and might not be the best idea.)
+
+  src = fetchurl {
+    url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
+    sha256 = "1s1rc4kyv0nxz5fy5ia7fflphf3izk80ks71q4wd67k1g9lvcw24";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
     alsaLib
-    atk
     at-spi2-atk
     at-spi2-core
+    atk
     cairo
     cups
     dbus
@@ -36,10 +58,6 @@ let
     glib
     gnome2.GConf
     gtk3
-    pango
-    libappindicator-gtk3
-    libnotify
-    libuuid
     libX11
     libXScrnSaver
     libXcomposite
@@ -51,55 +69,42 @@ let
     libXrandr
     libXrender
     libXtst
+    libappindicator-gtk3
+    libnotify
+    libuuid
     nspr
     nss
-    udev
+    pango
+    systemd
     xorg.libxcb
   ];
 
-in stdenv.mkDerivation rec {
-  pname = "signal-desktop";
-  version = "1.29.3"; # Please backport all updates to the stable channel.
-  # All releases have a limited lifetime and "expire" 90 days after the release.
-  # When releases "expire" the application becomes unusable until an update is
-  # applied. The expiration date for the current release can be extracted with:
-  # $ grep -a "^{\"buildExpiration" "${signal-desktop}/libexec/resources/app.asar"
-  # (Alternatively we could try to patch the asar archive, but that requires a
-  # few additional steps and might not be the best idea.)
-
-  src = fetchurl {
-    url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "1rkj6rwmwwvyd5041r96j1dxlfbmc6xsdrza43c0ykdrhfj73h11";
-  };
-
-  phases = [ "unpackPhase" "installPhase" ];
-
-  nativeBuildInputs = [ dpkg wrapGAppsHook ];
+  runtimeDependencies = [
+    systemd.lib
+  ];
 
   unpackPhase = "dpkg-deb -x $src .";
 
-  installPhase = ''
-    mkdir -p $out
-    cp -R opt $out
-
-    mv ./usr/share $out/share
-    mv $out/opt/Signal $out/libexec
-    rmdir $out/opt
+  dontBuild = true;
+  dontConfigure = true;
+  dontPatchELF = true;
 
-    chmod -R g-w $out
+  installPhase = ''
+    mkdir -p $out/lib
 
-    # Patch signal
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-             --set-rpath ${rpath}:$out/libexec $out/libexec/signal-desktop
-    wrapProgram $out/libexec/signal-desktop \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
-      --prefix LD_LIBRARY_PATH : "${stdenv.cc.cc.lib}/lib" \
-      ${customLanguageWrapperArgs} \
-      "''${gappsWrapperArgs[@]}"
+    mv usr/share $out/share
+    mv opt/Signal $out/lib
 
     # Symlink to bin
     mkdir -p $out/bin
-    ln -s $out/libexec/signal-desktop $out/bin/signal-desktop
+    ln -s $out/lib/Signal/signal-desktop $out/bin/signal-desktop
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ] }"
+      ${customLanguageWrapperArgs}
+    )
 
     # Fix the desktop link
     substituteInPlace $out/share/applications/signal-desktop.desktop \
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index d43d8e1f988..500f8f3fe87 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.55.0.123";
+  version = "8.55.0.141";
 
   rpath = stdenv.lib.makeLibraryPath [
     alsaLib
@@ -63,7 +63,7 @@ let
           "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "08dvgqwj7f8k3xv5kv96k6v6ga1v2chif9m7amncg6ppp81hy7nx";
+        sha256 = "0yfbxrnf2mjihrsvp0r81kbxh3rfh53y7sbfp3bwqky951a93qis";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/spectral/default.nix b/pkgs/applications/networking/instant-messengers/spectral/default.nix
index 314a3bb6457..23659e8a6c9 100644
--- a/pkgs/applications/networking/instant-messengers/spectral/default.nix
+++ b/pkgs/applications/networking/instant-messengers/spectral/default.nix
@@ -7,34 +7,32 @@
 , qtgraphicaleffects
 , qtdeclarative
 , qtmacextras
-, olm, cmark
+, olm, libsecret, cmark
 }:
 
 let qtkeychain-qt5 = qtkeychain.override {
   inherit qtbase qttools;
   withQt5 = true;
 };
-in stdenv.mkDerivation {
+in stdenv.mkDerivation rec {
   pname = "spectral";
-  version = "unstable-2019-08-30";
+  version = "817";
 
   src = fetchgit {
-    url = "https://gitlab.com/b0/spectral.git";
-    rev = "ee86c948aec5fe72979fc6df97f4a6ef711bdf94";
-    sha256 = "1mqabdkvzq48wki92wm2r79kj8g8m7ganpl47sh60qfsk4bxa8b2";
+    url = "https://gitlab.com/spectral-im/spectral.git";
+    rev = version;
+    sha256 = "0lg0bkz621cmqb67kz1zmn4xwbspcqalz68byll5iszqz9y4gnp1";
     fetchSubmodules = true;
   };
 
-  #qmakeFlags = [ "CONFIG+=qtquickcompiler" "BUNDLE_FONT=true" ];
-
   nativeBuildInputs = [ pkgconfig cmake wrapQtAppsHook ];
-  buildInputs = [ qtbase qtkeychain-qt5 qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative olm cmark ]
+  buildInputs = [ qtbase qtkeychain-qt5 qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative olm libsecret cmark ]
     ++ stdenv.lib.optional stdenv.hostPlatform.isLinux libpulseaudio
     ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin qtmacextras;
 
   meta = with stdenv.lib; {
     description = "A glossy cross-platform Matrix client.";
-    homepage = "https://gitlab.com/b0/spectral";
+    homepage = "https://spectral.im";
     license = licenses.gpl3;
     platforms = with platforms; linux ++ darwin;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index e57ff881af3..bec2f750526 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -1,79 +1,74 @@
-{ mkDerivation, lib, fetchFromGitHub, fetchsvn, fetchpatch
-, pkgconfig, pythonPackages, cmake, wrapGAppsHook, wrapQtAppsHook, gcc9
-, qtbase, qtimageformats, gtk3, libappindicator-gtk3, libnotify, xdg_utils
+{ mkDerivation, lib, fetchurl, fetchsvn
+, pkgconfig, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook
+, qtbase, qtimageformats, gtk3, libappindicator-gtk3, enchant2, lz4, xxHash
 , dee, ffmpeg_4, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
+# TODO: Shouldn't be required:
+, pcre, xorg, utillinux, libselinux, libsepol, epoxy, at-spi2-core, libXtst
+, xdg_utils
 }:
 
 with lib;
 
+# Main reference:
+# - This package is based on the Arch package:
+#   https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/telegram-desktop
+# Other references that could be useful (but we should try to stick to Arch):
+# - https://git.alpinelinux.org/aports/tree/testing/telegram-desktop/APKBUILD
+# - https://github.com/void-linux/void-packages/blob/master/srcpkgs/telegram-desktop/template
+
 mkDerivation rec {
   pname = "telegram-desktop";
-  version = "1.8.15";
+  version = "1.9.3";
   # Note: Due to our strong dependency on the Arch patches it's probably best
   # to also wait for the Arch update (especially if the patches don't apply).
 
   # Telegram-Desktop with submodules
-  src = fetchFromGitHub {
-    owner = "telegramdesktop";
-    repo = "tdesktop";
-    rev = "v${version}";
-    sha256 = "03173y2nlkf757llgpia8p2dkkwsjra7b6qm5nhmkcwcm8kmsvyy";
-    fetchSubmodules = true;
+  src = fetchurl {
+    url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
+    sha256 = "1fx7v7j7iw4iywdbl89c5f1y74via61a0k20zrgjv5a0j4v6g76a";
   };
 
   # Arch patches (svn export telegram-desktop/trunk)
   archPatches = fetchsvn {
     url = "svn://svn.archlinux.org/community/telegram-desktop/trunk";
     # svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
-    rev = "512849";
-    sha256 = "1hl7znvv6qr4cwpkj8wlplpa63i1lhk2iax7hb4l1s1a4mijx9ls";
-  };
-  privateHeadersPatch = fetchpatch {
-    url = "https://github.com/telegramdesktop/tdesktop/commit/b9d3ba621eb8af638af46c6b3cfd7a8330bf0dd5.patch";
-    sha256 = "1s5xvcp9dk0jfywssk8xfcsh7bk5xxif8xqnba0413lfx5rgvs5v";
+    rev = "549803";
+    sha256 = "1py2a25wgpvx0n4kz383fj0jav1qdm8wqx5bdaygg6296r294czj";
   };
 
   # Note: It would be best if someone could get as many patches upstream as
   # possible (we currently depend a lot on custom patches...).
   patches = [
-    "${archPatches}/tdesktop.patch"
-    "${archPatches}/no-gtk2.patch"
-    "${archPatches}/Revert-Disable-DemiBold-fallback-for-Semibold.patch"
-    "${archPatches}/tdesktop_lottie_animation_qtdebug.patch"
-    # "${archPatches}/Revert-Change-some-private-header-includes.patch"
-    # "${archPatches}/Use-system-wide-font.patch"
+    "${archPatches}/0001-Dynamic-linking-system-libs.patch"
+    "${archPatches}/0002-Dynamic-linking-system-qt.patch"
+    "${archPatches}/0004-gtk3.patch"
+    "${archPatches}/0005-Use-system-wide-fonts.patch"
+    "${archPatches}/0006-Revert-Disable-DemiBold-fallback-for-Semibold.patch"
   ];
 
   postPatch = ''
     substituteInPlace Telegram/SourceFiles/platform/linux/linux_libs.cpp \
       --replace '"appindicator3"' '"${libappindicator-gtk3}/lib/libappindicator3.so"'
-    substituteInPlace Telegram/SourceFiles/platform/linux/linux_libnotify.cpp \
-      --replace '"notify"' '"${libnotify}/lib/libnotify.so"'
+    substituteInPlace cmake/external/ranges/CMakeLists.txt \
+      --replace "/usr/include" "${range-v3}/include"
   '';
 
   # We want to run wrapProgram manually (with additional parameters)
   dontWrapGApps = true;
   dontWrapQtApps = true;
 
-  nativeBuildInputs = [ pkgconfig pythonPackages.gyp cmake wrapGAppsHook wrapQtAppsHook gcc9 ];
+  nativeBuildInputs = [ pkgconfig cmake ninja python3 wrapGAppsHook wrapQtAppsHook ];
 
   buildInputs = [
-    qtbase qtimageformats gtk3 libappindicator-gtk3
+    qtbase qtimageformats gtk3 libappindicator-gtk3 enchant2 lz4 xxHash
     dee ffmpeg_4 openalSoft minizip libopus alsaLib libpulseaudio range-v3
+    # TODO: Shouldn't be required:
+    pcre xorg.libpthreadstubs xorg.libXdmcp utillinux libselinux libsepol epoxy at-spi2-core libXtst
   ];
 
   enableParallelBuilding = true;
 
-  GYP_DEFINES = concatStringsSep "," [
-    "TDESKTOP_DISABLE_CRASH_REPORTS"
-    "TDESKTOP_DISABLE_AUTOUPDATE"
-    "TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
-  ];
-
   NIX_CFLAGS_COMPILE = [
-    "-DTDESKTOP_DISABLE_CRASH_REPORTS"
-    "-DTDESKTOP_DISABLE_AUTOUPDATE"
-    "-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
     "-I${minizip}/include/minizip"
     # See Telegram/gyp/qt.gypi
     "-I${getDev qtbase}/mkspecs/linux-g++"
@@ -87,64 +82,29 @@ mkDerivation rec {
     ]) [ "QtCore" "QtGui" "QtDBus" ];
   CPPFLAGS = NIX_CFLAGS_COMPILE;
 
-  preConfigure = ''
-    # Patches to revert:
-    patch -R -Np1 -i "${privateHeadersPatch}"
-
-    # Patches to apply:
-    pushd "Telegram/ThirdParty/libtgvoip"
-    patch -Np1 -i "${archPatches}/libtgvoip.patch"
-    popd
-
-    # disable static-qt for rlottie
-    sed "/RLOTTIE_WITH_STATIC_QT/d" -i "Telegram/gyp/lib_rlottie.gyp"
-
-    sed -i Telegram/gyp/telegram/linux.gypi \
-      -e 's,/usr,/does-not-exist,g' \
-      -e 's,appindicator-0.1,appindicator3-0.1,g' \
-      -e 's,-flto,,g'
-
-    sed -i Telegram/gyp/modules/qt.gypi \
-      -e "s,/usr/include/qt/QtCore/,${qtbase.dev}/include/QtCore/,g" \
-      -e 's,\d+",\d+" | head -n1,g'
-    sed -i Telegram/gyp/modules/qt_moc.gypi \
-      -e "s,/usr/bin/moc,moc,g"
-    sed -i Telegram/gyp/modules/qt_rcc.gypi \
-      -e "s,/usr/bin/rcc,rcc,g"
-
-    # Build system assumes x86, but it works fine on non-x86 if we patch this one flag out
-    sed -i Telegram/ThirdParty/libtgvoip/libtgvoip.gyp \
-      -e "/-msse2/d"
-
-    gyp \
-      -Dapi_id=17349 \
-      -Dapi_hash=344583e45741c457fe1862106095a5eb \
-      -Dbuild_defines=${GYP_DEFINES} \
-      -Gconfig=Release \
-      --depth=Telegram/gyp \
-      --generator-output=../.. \
-      -Goutput_dir=out \
-      --format=cmake \
-      Telegram/gyp/Telegram.gyp
-
-    cd out/Release
-
-    NUM=$((`wc -l < CMakeLists.txt` - 2))
-    sed -i "$NUM r $archPatches/CMakeLists.inj" CMakeLists.txt
-
-    export ASM=$(type -p gcc)
-  '';
-
-  cmakeFlags = [ "-UTDESKTOP_OFFICIAL_TARGET" ];
+  cmakeFlags = [
+    #"-DTDESKTOP_API_TEST=ON" # TODO: Officiall API credentials for Nixpkgs
+    "-DTDESKTOP_API_ID=17349" # See: https://github.com/NixOS/nixpkgs/issues/55271
+    "-DTDESKTOP_API_HASH=344583e45741c457fe1862106095a5eb"
+    "-DDESKTOP_APP_USE_GLIBC_WRAPS=OFF"
+    "-DDESKTOP_APP_USE_SYSTEM_LIBS=ON"
+    "-DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON"
+    "-Ddisable_autoupdate=ON"
+    "-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME=ON"
+    "-DTDESKTOP_DISABLE_DESKTOP_FILE_GENERATION=ON"
+    #"-DDESKTOP_APP_SPECIAL_TARGET=\"\"" # TODO: Error when set to "": Bad special target '""'
+  ];
 
   installPhase = ''
-    install -Dm755 Telegram $out/bin/telegram-desktop
+    install -Dm755 bin/Telegram $out/bin/telegram-desktop
+
+    mkdir -p $out/share/{kservices5,applications,metainfo}
+    sed "s,/usr/bin,$out/bin,g" "../lib/xdg/tg.protocol" > "$out/share/kservices5/tg.protocol"
+    install -m444 "../lib/xdg/telegramdesktop.desktop" "$out/share/applications/telegram-desktop.desktop"
+    install -m644 "../lib/xdg/telegramdesktop.appdata.xml" "$out/share/metainfo/telegramdesktop.metainfo.xml"
 
-    mkdir -p $out/share/applications $out/share/kde4/services
-    install -m444 "$src/lib/xdg/telegramdesktop.desktop" "$out/share/applications/telegram-desktop.desktop"
-    sed "s,/usr/bin,$out/bin,g" $archPatches/tg.protocol > $out/share/kde4/services/tg.protocol
     for icon_size in 16 32 48 64 128 256 512; do
-      install -Dm644 "../../../Telegram/Resources/art/icon''${icon_size}.png" "$out/share/icons/hicolor/''${icon_size}x''${icon_size}/apps/telegram.png"
+      install -Dm644 "../Telegram/Resources/art/icon''${icon_size}.png" "$out/share/icons/hicolor/''${icon_size}x''${icon_size}/apps/telegram.png"
     done
   '';
 
diff --git a/pkgs/applications/networking/irc/tiny/default.nix b/pkgs/applications/networking/irc/tiny/default.nix
new file mode 100644
index 00000000000..7967bdcc9c4
--- /dev/null
+++ b/pkgs/applications/networking/irc/tiny/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, lib
+, rustPlatform
+, fetchpatch
+, fetchFromGitHub
+, pkg-config
+, dbus
+, openssl
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "tiny";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "osa1";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1m57xsrc7lzkrm8k1wh3yx3in5bhd0qjzygxdwr8lvigpsiy5caa";
+  };
+
+  cargoSha256 = "1vj6whnx8gd5r66zric9163ddlqc4al4azj0dvhv5sq0r33871kv";
+
+  RUSTC_BOOTSTRAP = 1;
+
+  nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
+  buildInputs = lib.optionals stdenv.isLinux [ dbus openssl ];
+
+  meta = with lib; {
+    description = "A console IRC client";
+    homepage = "https://github.com/osa1/tiny";
+    license = licenses.mit;
+    maintainers = with maintainers; [ filalex77 ];
+  };
+}
diff --git a/pkgs/applications/networking/p2p/magnetico/default.nix b/pkgs/applications/networking/p2p/magnetico/default.nix
index 1c266d247b7..94720f35504 100644
--- a/pkgs/applications/networking/p2p/magnetico/default.nix
+++ b/pkgs/applications/networking/p2p/magnetico/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "magnetico";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner  = "boramalper";
     repo   = "magnetico";
     rev    = "v${version}";
-    sha256 = "1f7y3z9ql079ix6ycihkmd3z3da3sfiqw2fap31pbvvjs65sg644";
+    sha256 = "1flw7r8igc0hhm288p67lpy9aj1fnywva5b28yfknpw8g97c9r5x";
   };
 
   modSha256 = "1h9fij8mxlxfw7kxix00n10fkhkvmf8529fxbk1n30cxc1bs2szf";
diff --git a/pkgs/applications/networking/protonvpn-cli-ng/default.nix b/pkgs/applications/networking/protonvpn-cli-ng/default.nix
new file mode 100644
index 00000000000..03d1a665273
--- /dev/null
+++ b/pkgs/applications/networking/protonvpn-cli-ng/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, python3Packages, openvpn, dialog }:
+
+python3Packages.buildPythonApplication rec {
+  name = "protonvpn-cli-ng";
+  version = "2.2.0";
+
+  src = fetchFromGitHub {
+    owner = "protonvpn";
+    repo = "protonvpn-cli-ng";
+    rev = "v${version}";
+    sha256 = "11fvnnr5p3qdc4y10815jnydcjvxlxwkkq9kvaajg0yszq84rwkz";
+  };
+
+  propagatedBuildInputs = (with python3Packages; [
+      requests
+      docopt
+      setuptools
+      pythondialog
+    ]) ++ [
+      dialog
+      openvpn
+    ];
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Linux command-line client for ProtonVPN";
+    homepage = "https://github.com/protonvpn/protonvpn-cli-ng";
+    maintainers = [ maintainers.jtcoolen ];
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix
index 16430d31e83..1b96e9fb663 100644
--- a/pkgs/applications/networking/seafile-client/default.nix
+++ b/pkgs/applications/networking/seafile-client/default.nix
@@ -1,33 +1,31 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools
-, seafile-shared, ccnet
+{ stdenv, lib, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools
+, seafile-shared, ccnet, jansson, libsearpc
 , withShibboleth ? true, qtwebengine }:
 
-with stdenv.lib;
-
-mkDerivation rec {
-  version = "6.2.11";
+stdenv.mkDerivation rec {
   pname = "seafile-client";
+  version = "7.0.5";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile-client";
     rev = "v${version}";
-    sha256 = "1b8jqmr2qd3bpb3sr4p5w2a76x5zlknkj922sxrvw1rdwqhkb2pj";
+    sha256 = "08ysmhvdpyzq2s16i3fvii252fzjrxly3da74x8y6wbyy8yywmjy";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
-  buildInputs = [ qtbase qttools seafile-shared ]
-    ++ optional withShibboleth qtwebengine;
+  buildInputs = [ qtbase qttools seafile-shared jansson libsearpc ]
+    ++ lib.optional withShibboleth qtwebengine;
 
   cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ]
-    ++ optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON";
+    ++ lib.optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON";
 
   qtWrapperArgs = [
     "--suffix PATH : ${stdenv.lib.makeBinPath [ ccnet seafile-shared ]}"
   ];
 
-  meta = with stdenv.lib; {
-    homepage = https://github.com/haiwen/seafile-client;
+  meta = with lib; {
+    homepage = "https://github.com/haiwen/seafile-client";
     description = "Desktop client for Seafile, the Next-generation Open Source Cloud Storage";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 67365405cc2..2da36be90de 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -10,7 +10,7 @@ assert withQt  -> qt5  != null;
 with stdenv.lib;
 
 let
-  version = "3.2.0";
+  version = "3.2.1";
   variant = if withQt then "qt" else "cli";
 
 in stdenv.mkDerivation {
@@ -20,7 +20,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "0v5nn7i2nbqr59jsw8cs2052hr7xd96x1sa3480g8ks5kahk7zac";
+    sha256 = "0nz84zyhs4177ljxmv34vgc9kgg7ssxhxa4mssxqwh6nb00697sq";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/networking/sync/onedrive/default.nix b/pkgs/applications/networking/sync/onedrive/default.nix
index dc38debd305..636761d2aaf 100644
--- a/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/pkgs/applications/networking/sync/onedrive/default.nix
@@ -1,35 +1,27 @@
-{ stdenv
-, fetchFromGitHub
-, dmd
-, pkgconfig
-, curl
-, sqlite
-}:
+{ stdenv, fetchFromGitHub, dmd, pkgconfig, curl, sqlite, libnotify }:
 
 stdenv.mkDerivation rec {
   pname = "onedrive";
-  version = "2.3.12";
+  version = "2.3.13";
 
   src = fetchFromGitHub {
     owner = "abraunegg";
-    repo = "onedrive";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "0605nb3blvnncjx09frg2liarrd6pw8ph5jhnh764qcx0hyxcgs6";
+    sha256 = "0bcsrfh1g7bdlcp0zjn6np88qzpn5frv61lzxz9b2ayxf7wyybvi";
   };
 
-  nativeBuildInputs = [
-    dmd
-    pkgconfig
-  ];
-  buildInputs = [
-    curl
-    sqlite
-  ];
+  nativeBuildInputs = [ dmd pkgconfig ];
+
+  buildInputs = [ curl sqlite libnotify ];
+
+  configureFlags = [ "--enable-notifications" ];
+
   meta = with stdenv.lib; {
     description = "A complete tool to interact with OneDrive on Linux";
     homepage = "https://github.com/abraunegg/onedrive";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ doronbehar srgom ];
+    maintainers = with maintainers; [ srgom ianmjones ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/office/atlassian-cli/default.nix b/pkgs/applications/office/atlassian-cli/default.nix
index 6894f1ca635..021eadb6476 100644
--- a/pkgs/applications/office/atlassian-cli/default.nix
+++ b/pkgs/applications/office/atlassian-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atlassian-cli";
-  version = "9.0.0";
+  version = "9.1.0";
   
   src = fetchzip {
     url  = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${pname}-${version}-distribution.zip";
-    sha256  = "1z8723krq65fcy5aapgiz216vrpw2nw8fbn1h3a4zpis7kw8qp0f";
+    sha256  = "06431nmz2k1d7vdpnyr88j777sfaa0vrfvxbr9zikn65176mkw7k";
     extraPostFetch = "chmod go-w $out";
   };
   
diff --git a/pkgs/applications/office/csv2odf/default.nix b/pkgs/applications/office/csv2odf/default.nix
new file mode 100644
index 00000000000..7bab06ed4ab
--- /dev/null
+++ b/pkgs/applications/office/csv2odf/default.nix
@@ -0,0 +1,28 @@
+{ lib, python3, fetchurl }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "csv2odf";
+  version = "2.09";
+  src = fetchurl {
+    url = "mirror://sourceforge/project/${pname}/${pname}-${version}/${pname}-${version}.tar.gz";
+    sha256 = "09l0yfay89grjdzap2h11f0hcyn49np5zizg2yyp2aqgjs8ki57p";
+  };
+
+  meta = with lib; {
+    homepage = "https://sourceforge.net/p/csv2odf/wiki/Main_Page/";
+    description = "Convert csv files to OpenDocument Format";
+    longDescription = ''
+      csv2odf is a command line tool that can convert a comma separated value
+      (csv) file to an odf, ods, html, xlsx, or docx document that can be viewed in
+      LibreOffice and other office productivity programs. csv2odf is useful for
+      creating reports from databases and other data sources that produce csv files.
+      csv2odf can be combined with cron and shell scripts to automatically generate
+      business reports.
+      
+      The output format (fonts, number formatting, etc.) is controlled by a
+      template file that you can design in your office application of choice.
+    '';
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ leenaars ];
+  };
+}
diff --git a/pkgs/applications/office/kmymoney/default.nix b/pkgs/applications/office/kmymoney/default.nix
index c7b4377c3dc..275cd826a69 100644
--- a/pkgs/applications/office/kmymoney/default.nix
+++ b/pkgs/applications/office/kmymoney/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kmymoney";
-  version = "5.0.7";
+  version = "5.0.8";
 
   src = fetchurl {
     url = "mirror://kde/stable/kmymoney/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "1h5mzvgpfyl2j66b3nsw17yxvg0ja1qhjlcmfkz62221vcqsrp6m";
+    sha256 = "1h6l01a08f1xgk4dfpndl7rmgbp9npm58qi760jwl2gggprwwsxc";
   };
 
   # Hidden dependency that wasn't included in CMakeLists.txt:
diff --git a/pkgs/applications/office/paperless/default.nix b/pkgs/applications/office/paperless/default.nix
index 97088f36041..1383986cf2e 100644
--- a/pkgs/applications/office/paperless/default.nix
+++ b/pkgs/applications/office/paperless/default.nix
@@ -116,7 +116,7 @@ let
     };
   };
 
-  django_2_0 = pyPkgs: pyPkgs.django_2_1.overrideDerivation (_: rec {
+  django_2_0 = pyPkgs: pyPkgs.django_2_2.overrideDerivation (_: rec {
     pname = "Django";
     version = "2.0.12";
     name = "${pname}-${version}";
diff --git a/pkgs/applications/office/skanlite/default.nix b/pkgs/applications/office/skanlite/default.nix
index 416c86397f8..d4c1df75709 100644
--- a/pkgs/applications/office/skanlite/default.nix
+++ b/pkgs/applications/office/skanlite/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, cmake, extra-cmake-modules, qtbase,
+{ stdenv, mkDerivation, fetchurl, cmake, extra-cmake-modules, qtbase,
   kcoreaddons, kdoctools, ki18n, kio, kxmlgui, ktextwidgets,
   libksane
 }:
 
 let
   minorVersion = "2.0";
-in stdenv.mkDerivation rec {
+in mkDerivation rec {
   name = "skanlite-2.0.1";
 
   src = fetchurl {
@@ -21,8 +21,6 @@ in stdenv.mkDerivation rec {
     libksane
   ];
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "KDE simple image scanning application";
     homepage    = http://www.kde.org/applications/graphics/skanlite/;
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index abc2d1862cb..7032632da88 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec{
   pname = "wpsoffice";
-  version = "11.1.0.8865";
+  version = "11.1.0.9080";
 
   src = fetchurl {
-    url = "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/8865/wps-office_11.1.0.8865_amd64.deb";
-    sha256 = "1hfpj1ayhzlrnnp72yjzrpd60xsbj9y46m345lqysiaj1hnwdbd8";
+    url = "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/9080/wps-office_11.1.0.9080.XA_amd64.deb";
+    sha256 = "1731e9aea22ef4e558ad66b1373d863452b4f570aecf09d448ae28a821333454";
   };
   unpackCmd = "dpkg -x $src .";
   sourceRoot = ".";
@@ -75,24 +75,20 @@ stdenv.mkDerivation rec{
     mkdir -p $out
     cp -r opt $out
     cp -r usr/* $out
-
     # Avoid forbidden reference error due use of patchelf
     rm -r *
-
     for i in wps wpp et wpspdf; do
       patchelf \
         --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
         --force-rpath --set-rpath "$(patchelf --print-rpath $prefix/office6/$i):${stdenv.cc.cc.lib}/lib64:${libPath}" \
         $prefix/office6/$i
-
       substituteInPlace $out/bin/$i \
         --replace /opt/kingsoft/wps-office $prefix
     done
-
     for i in $out/share/applications/*;do
       substituteInPlace $i \
         --replace /usr/bin $out/bin \
         --replace /opt/kingsoft/wps-office $prefix
     done
   '';
-}
+}
\ No newline at end of file
diff --git a/pkgs/applications/radio/flrig/default.nix b/pkgs/applications/radio/flrig/default.nix
index 242536a8965..17d579cb45e 100644
--- a/pkgs/applications/radio/flrig/default.nix
+++ b/pkgs/applications/radio/flrig/default.nix
@@ -6,12 +6,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.3.48";
+  version = "1.3.49";
   pname = "flrig";
 
   src = fetchurl {
     url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
-    sha256 = "0f46rmrr8aphj8fsbfa1bywihigzfzyxq9zg66d1laa7d3jsfs9q";
+    sha256 = "0icfniiw2l7d7gyxrzy87n3ragzvf0ykvq7c10ppf111wl5in295";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/radio/svxlink/default.nix b/pkgs/applications/radio/svxlink/default.nix
new file mode 100644
index 00000000000..e06fcb5d3e6
--- /dev/null
+++ b/pkgs/applications/radio/svxlink/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, cmake, pkgconfig, fetchFromGitHub, makeDesktopItem, alsaLib, speex
+, libopus, curl, gsm, libgcrypt, libsigcxx, popt, qtbase, qttools
+, wrapQtAppsHook, rtl-sdr, tcl, doxygen, groff }:
+
+let
+  desktopItem = makeDesktopItem rec {
+    name = "Qtel";
+    exec = "qtel";
+    icon = "qtel";
+    desktopName = name;
+    genericName = "EchoLink Client";
+    categories = "HamRadio;Qt;Network;";
+  };
+
+in stdenv.mkDerivation rec {
+  pname = "svxlink";
+  version = "19.09.1";
+
+  src = fetchFromGitHub {
+    owner = "sm0svx";
+    repo = pname;
+    rev = version;
+    sha256 = "0xmbac821w9kl7imlz0mra19mlhi0rlpbyyay26w1y7h98j4g4yp";
+  };
+
+  cmakeFlags = [
+    "-DDO_INSTALL_CHOWN=NO"
+    "-DRTLSDR_LIBRARIES=${rtl-sdr}/lib/librtlsdr.so"
+    "-DRTLSDR_INCLUDE_DIRS=${rtl-sdr}/include"
+    "../src"
+  ];
+  enableParallelBuilding = true;
+  dontWrapQtApps = true;
+
+  nativeBuildInputs = [ cmake pkgconfig doxygen groff wrapQtAppsHook ];
+
+  buildInputs = [
+    alsaLib
+    curl
+    gsm
+    libgcrypt
+    libsigcxx
+    libopus
+    popt
+    qtbase
+    qttools
+    rtl-sdr
+    speex
+    tcl
+  ];
+
+  postInstall = ''
+    rm -f $out/share/applications/*
+    cp -v ${desktopItem}/share/applications/* $out/share/applications
+    mv $out/share/icons/link.xpm $out/share/icons/qtel.xpm
+
+    wrapQtApp $out/bin/qtel
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Advanced repeater controller and EchoLink software";
+    longDescription = ''
+      Advanced repeater controller and EchoLink software for Linux including a
+      GUI, Qtel - The Qt EchoLink client
+    '';
+    homepage = "http://www.svxlink.org/";
+    license = with licenses; [ gpl2 ];
+    maintainers = with maintainers; [ zaninime ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/radio/urh/default.nix b/pkgs/applications/radio/urh/default.nix
index eea9bb9027c..8ca42ab94ac 100644
--- a/pkgs/applications/radio/urh/default.nix
+++ b/pkgs/applications/radio/urh/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "urh";
-  version = "2.8.1";
+  version = "2.8.2";
 
   src = fetchFromGitHub {
     owner = "jopohl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vwc1jw1fjirdpavrnvc95bql8023ayrz9srbwn0p6n0ia038948";
+    sha256 = "0cypm602zl3s4qggmafj4c246h65qgzsj3bsimvc5zz7jspk6m77";
   };
 
   nativeBuildInputs = [ qt5.wrapQtAppsHook ];
diff --git a/pkgs/applications/science/astronomy/gildas/default.nix b/pkgs/applications/science/astronomy/gildas/default.nix
index 4bb3c7b34fe..cc6af8a17c0 100644
--- a/pkgs/applications/science/astronomy/gildas/default.nix
+++ b/pkgs/applications/science/astronomy/gildas/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, gtk2-x11 , pkgconfig , python27 , gfortran , lesstif
-, cfitsio , getopt , perl , groff , which, darwin
+{ stdenv, fetchurl, gtk2-x11 , pkgconfig , python3 , gfortran , lesstif
+, cfitsio , getopt , perl , groff , which, darwin, ncurses
 }:
 
 let
-  python27Env = python27.withPackages(ps: with ps; [ numpy ]);
+  python3Env = python3.withPackages(ps: with ps; [ numpy ]);
 in
 
 stdenv.mkDerivation rec {
-  srcVersion = "dec19a";
-  version = "20191201_a";
+  srcVersion = "jan20a";
+  version = "20200101_a";
   pname = "gildas";
 
   src = fetchurl {
@@ -16,17 +16,19 @@ stdenv.mkDerivation rec {
     # source code of the previous release to a different directory
     urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
       "http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ];
-    sha256 = "0kwq5gzgzx5hkbabwvbrw2958pqz4m2s501k5cbllgxh4sqp86b1";
+    sha256 = "12n08pax7gwg2z121ix3ah5prq3yswqnf2yc8jgs4i9rgkpbsfzz";
   };
 
-  enableParallelBuilding = true;
+  # Python scripts are not converted to Python 3 syntax when parallel
+  # building is turned on. Disable it until this is fixed upstream.
+  enableParallelBuilding = false;
 
   nativeBuildInputs = [ pkgconfig groff perl getopt gfortran which ];
 
-  buildInputs = [ gtk2-x11 lesstif cfitsio python27Env ]
+  buildInputs = [ gtk2-x11 lesstif cfitsio python3Env ncurses ]
     ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ CoreFoundation ]);
 
-  patches = [ ./wrapper.patch ./clang.patch ./aarch64.patch ];
+  patches = [ ./wrapper.patch ./clang.patch ./aarch64.patch ./imager-py3.patch ];
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument";
 
@@ -34,7 +36,7 @@ stdenv.mkDerivation rec {
 
   configurePhase=''
     substituteInPlace admin/wrapper.sh --replace '%%OUT%%' $out
-    substituteInPlace admin/wrapper.sh --replace '%%PYTHONHOME%%' ${python27Env}
+    substituteInPlace admin/wrapper.sh --replace '%%PYTHONHOME%%' ${python3Env}
     substituteInPlace utilities/main/gag-makedepend.pl --replace '/usr/bin/perl' ${perl}/bin/perl
     source admin/gildas-env.sh -c gfortran -o openmp
     echo "gag_doc:        $out/share/doc/" >> kernel/etc/gag.dico.lcl
diff --git a/pkgs/applications/science/astronomy/gildas/imager-py3.patch b/pkgs/applications/science/astronomy/gildas/imager-py3.patch
new file mode 100644
index 00000000000..71a129164ba
--- /dev/null
+++ b/pkgs/applications/science/astronomy/gildas/imager-py3.patch
@@ -0,0 +1,12 @@
+diff -ruN gildas-src-jan20a.orig/contrib/imager/pro/define.ima gildas-src-jan20a/contrib/imager/pro/define.ima
+--- gildas-src-jan20a.orig/contrib/imager/pro/define.ima	2020-01-01 02:15:16.000000000 +0100
++++ gildas-src-jan20a/contrib/imager/pro/define.ima	2020-01-14 11:18:46.000000000 +0100
+@@ -9,7 +9,7 @@
+ !
+ ! Patch for a Bug on Mac-OS/X where Python blocks if activated first
+ ! from a script launched by a widget.
+-python print "Starting Python" 
++python print("Starting Python")
+ !
+ ! INPUT, GO and UVT_CONVERT always defined by GreG
+ define command GO "@ p_go.ima" gag_pro:go_greg.hlp  
diff --git a/pkgs/applications/science/biology/samtools/default.nix b/pkgs/applications/science/biology/samtools/default.nix
index daa2925de7c..f2c5e9f25be 100644
--- a/pkgs/applications/science/biology/samtools/default.nix
+++ b/pkgs/applications/science/biology/samtools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "samtools";
-  version = "1.9";
+  version = "1.10";
 
   src = fetchurl {
     url = "https://github.com/samtools/samtools/releases/download/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "10ilqbmm7ri8z431sn90lvbjwizd0hhkf9rcqw8j823hf26nhgq8";
+    sha256 = "119ms0dpydw8dkh3zc4yyw9zhdzgv12px4l2kayigv31bpqcb7kv";
   };
 
   nativeBuildInputs = [ perl ];
diff --git a/pkgs/applications/science/logic/cubicle/default.nix b/pkgs/applications/science/logic/cubicle/default.nix
index cd41e1ca64b..d198de41f9b 100644
--- a/pkgs/applications/science/logic/cubicle/default.nix
+++ b/pkgs/applications/science/logic/cubicle/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = http://cubicle.lri.fr/;
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ lucas8 ];
+    maintainers = with maintainers; [ dwarfmaster ];
   };
 }
diff --git a/pkgs/applications/search/doodle/default.nix b/pkgs/applications/search/doodle/default.nix
index ba9fbee5d96..9d1da21492a 100644
--- a/pkgs/applications/search/doodle/default.nix
+++ b/pkgs/applications/search/doodle/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, libextractor, gettext }:
 
 stdenv.mkDerivation rec {
-  name = "doodle-0.7.0";
+  name = "doodle-0.7.1";
 
   buildInputs = [ libextractor gettext ];
 
   src = fetchurl {
     url = "https://grothoff.org/christian/doodle/download/${name}.tar.gz";
-    sha256 = "0ayx5q7chzll9sv3miq35xl36r629cvgdzphf379kxzlzhjldy3j";
+    sha256 = "086va4q8swiablv5x72yikrdh5swhy7kzmg5wlszi5a7vjya29xw";
   };
 
   meta = {
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index d57ffd75d7f..2e99ca666dc 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -46,7 +46,7 @@ let
   gitFull = gitBase.override {
     svnSupport = true;
     guiSupport = true;
-    sendEmailSupport = !stdenv.isDarwin;
+    sendEmailSupport = true;
     withLibsecret = !stdenv.isDarwin;
   };
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix b/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
index 969ea7cc2fa..54543bb4841 100644
--- a/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-subrepo";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "ingydotnet";
     repo = "git-subrepo";
     rev = version;
-    sha256 = "05m2dm9gq2nggwnxxdyq2kjj584sn2lxk66pr1qhjxnk81awj9l7";
+    sha256 = "0n10qnc8kyms6cv65k1n5xa9nnwpwbjn9h2cq47llxplawzqgrvp";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/version-management/git-and-tools/hub/default.nix b/pkgs/applications/version-management/git-and-tools/hub/default.nix
index ee21a2158ac..1b67b933cb1 100644
--- a/pkgs/applications/version-management/git-and-tools/hub/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/hub/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "hub";
-  version = "2.13.0";
+  version = "2.14.1";
 
   goPackagePath = "github.com/github/hub";
 
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner = "github";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18b0r16fk5wahvysqvg6vzjr7smyc2sdxp9sf55viby3kkwjfbkh";
+    sha256 = "0b179sp8z2blzh4a0c2pjbbiya68x2i4cnmcci58r8k0mwrx6mw1";
   };
 
   nativeBuildInputs = [ groff utillinux ];
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index 4d5814548ff..2bd1f6434b7 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -8,13 +8,13 @@ with stdenv.lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.10.2";
+  version = "1.10.3";
 
   src = fetchFromGitHub {
     owner = "go-gitea";
     repo = "gitea";
     rev = "v${version}";
-    sha256 = "04ksalhpf47wzjfhx295kf4rbamxbb3s9946vfda358lm360adic";
+    sha256 = "04jg1b0d1fbhnk434dnffc2c118gs084za3m33lxwf5lxzlbbimc";
     # Required to generate the same checksum on MacOS due to unicode encoding differences
     # More information: https://github.com/NixOS/nixpkgs/pull/48128
     extraPostFetch = ''
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index fa2154c4472..36859892e8c 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -51,6 +51,7 @@ let
     # One of the patches uses this variable - if it's unset, execution
     # of rake tasks fails.
     GITLAB_LOG_PATH = "log";
+    FOSS_ONLY = !gitlabEnterprise;
 
     configurePhase = ''
       runHook preConfigure
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index fc2b4aaf3cb..4736dedcb84 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -13,13 +13,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "41.0.0";
+  version = "42.0.0";
 
   src = fetchFromGitLab {
     owner  = "mbunkus";
     repo   = "mkvtoolnix";
     rev    = "release-${version}";
-    sha256 = "0p9mwhc6smchwikxbslgk7a2f3hfccaih09xfhricb80d97jz218";
+    sha256 = "0bjb1cx1sj61yhpraqryhxma4wiz0yl3asnbsv9hvq730v07hg0b";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index c333790d6a6..0ea042c1314 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -234,7 +234,7 @@ in stdenv.mkDerivation rec {
     description = "A media player that supports many video formats (MPlayer and mplayer2 fork)";
     homepage = https://mpv.io;
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ AndersonTorres fpletz globin ivan ma27 tadeokondrak ];
+    maintainers = with maintainers; [ AndersonTorres fpletz globin ma27 tadeokondrak ];
     platforms = platforms.darwin ++ platforms.linux;
 
     longDescription = ''
diff --git a/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch b/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch
new file mode 100644
index 00000000000..475788ba3a4
--- /dev/null
+++ b/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch
@@ -0,0 +1,33 @@
+From 247baa7e9210bbe5462b6155014c3dcd4a60e56a Mon Sep 17 00:00:00 2001
+From: Peter Simons <simons@cryp.to>
+Date: Tue, 24 Sep 2019 10:27:17 +0200
+Subject: [PATCH] encodedock.cpp: connect to VAAPI via DRM, not X11
+
+---
+ src/docks/encodedock.cpp | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/docks/encodedock.cpp b/src/docks/encodedock.cpp
+index f2d64fc8..63d20787 100644
+--- a/src/docks/encodedock.cpp
++++ b/src/docks/encodedock.cpp
+@@ -766,7 +766,6 @@ Mlt::Properties* EncodeDock::collectProperties(int realtime)
+                     setIfNotSet(p, "pix_fmt", "nv12");
+                 } else if (vcodec.endsWith("_vaapi")) {
+                     setIfNotSet(p, "vprofile", "main");
+-                    setIfNotSet(p, "connection_type", "x11");
+                 }
+             }
+             setIfNotSet(p, "width", ui->widthSpinner->value());
+@@ -1890,7 +1889,7 @@ void EncodeDock::on_hwencodeCheckBox_clicked(bool checked)
+             QStringList args;
+             args << "-hide_banner" << "-f" << "lavfi" << "-i" << "color=s=640x360" << "-frames" << "1" << "-an";
+             if (codec.endsWith("_vaapi"))
+-                args << "-init_hw_device" << "vaapi=vaapi0:,connection_type=x11" << "-filter_hw_device" << "vaapi0" << "-vf" << "format=nv12,hwupload";
++                args << "-init_hw_device" << "vaapi=vaapi0" << "-filter_hw_device" << "vaapi0" << "-vf" << "format=nv12,hwupload";
+             else if (codec == "hevc_qsv")
+                 args << "-load_plugin" << "hevc_hw";
+             args << "-c:v" << codec << "-f" << "rawvideo" << "pipe:";
+-- 
+2.24.1
+
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 33ce5c18028..6926f7e8eae 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -17,6 +17,8 @@ mkDerivation rec {
     sha256 = "1vwgah8pp2kbd0iaz952d3bwxphk06yxqc0pi4hk1mklkh87qzm9";
   };
 
+  patches = [ ./0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch ];
+
   enableParallelBuilding = true;
   nativeBuildInputs = [ pkgconfig qmake ];
   buildInputs = [
diff --git a/pkgs/applications/virtualization/docker-compose/default.nix b/pkgs/applications/virtualization/docker-compose/default.nix
index 7e8dbf33a7b..4bb03aa4ac3 100644
--- a/pkgs/applications/virtualization/docker-compose/default.nix
+++ b/pkgs/applications/virtualization/docker-compose/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonApplication rec {
-  version = "1.25.0";
+  version = "1.25.1";
   pname = "docker-compose";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zlprmsgmj4z627snsl0qmq8y7ggcyqrqm5vxvrvcigl7zywnprc";
+    sha256 = "003rb5hp8plb3yvv0x5dwzz13gdvq91nvrvx29d41h97n1lklw67";
   };
 
   # lots of networking and other fails
diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix
index 8261ead3892..87ec2e52f13 100644
--- a/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "open-vm-tools";
-  version = "11.0.1";
+  version = "11.0.5";
 
   src = fetchFromGitHub {
     owner  = "vmware";
     repo   = "open-vm-tools";
     rev    = "stable-${version}";
-    sha256 = "1p499ilb2j1s0d7qf19b8nig8ggdq7b60xcgb7bc18g8kp5g82lv";
+    sha256 = "0idh8dqwb1df2di689090k9x1iap35jk3wg8yb1g70byichmscqb";
   };
 
   sourceRoot = "${src.name}/open-vm-tools";
diff --git a/pkgs/applications/window-managers/i3/layout-manager.nix b/pkgs/applications/window-managers/i3/layout-manager.nix
index 85d103e172a..c7454981400 100644
--- a/pkgs/applications/window-managers/i3/layout-manager.nix
+++ b/pkgs/applications/window-managers/i3/layout-manager.nix
@@ -6,13 +6,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "i3-layout-manager";
-  version = "unstable-2019-06-19";
+  version = "unstable-2019-12-06";
 
   src = fetchFromGitHub {
     owner = "klaxalk";
     repo = pname;
-    rev = "80ade872bfd70d9c6039024097ceb8c852a2816a";
-    sha256 = "02xhyd737qwni628mjzr9i5v2kga5cq4k8m77bxm1p6kkj84nlmg";
+    rev = "064e13959413ba2d706185478a394e5852c0dc53";
+    sha256 = "1qm35sp1cfi3xj5j7xwa05dkb3353gwq4xh69ryc6382xx3wszg6";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/window-managers/way-cooler/bar.diff b/pkgs/applications/window-managers/way-cooler/bar.diff
deleted file mode 100644
index e60ebabe983..00000000000
--- a/pkgs/applications/window-managers/way-cooler/bar.diff
+++ /dev/null
@@ -1,37 +0,0 @@
---- bar.py.txt.orig	2017-12-05 18:10:20.108569182 +0300
-+++ ./bar.py.txt	2017-12-10 21:42:10.622781945 +0300
-@@ -5,6 +5,7 @@ import datetime
- import json
- from time import sleep
- from pydbus import SessionBus
-+from glob import glob
- 
- BUS = SessionBus()
- LAYOUT = BUS.get(bus_name='org.way-cooler', object_path='/org/way_cooler/Layout')
-@@ -32,7 +33,7 @@ def main():
-             output += func()
-         print(output)
-         sys.stdout.flush()
--        sleep(.1)
-+        sleep(1)
- 
- def get_workspaces(layout_json):
-     """Gets the workspace names from the layout json"""
-@@ -49,9 +50,14 @@ def get_time():
-     return datetime.datetime.now().strftime('  %a %b %d  %H:%M  ')
- 
- def get_battery():
--    with open("/sys/class/power_supply/BAT0/capacity", "r") as f:
--        bat = f.readlines()
--    return bat[0].strip() + "% Battery"
-+    try:
-+        [path] = glob("/sys/class/power_supply/BAT?/capacity")
-+        with open(path, "r") as f:
-+            bat = f.readlines()
-+            result = bat[0].strip() + "% Battery"
-+    except Exception:
-+        result = ""
-+    return result
- 
- def format_workspaces(layout, workspaces, active_workspace):
-     workspaces = "  " + workspaces.replace(" ", "  ") + "  "
diff --git a/pkgs/applications/window-managers/way-cooler/crates-io.nix b/pkgs/applications/window-managers/way-cooler/crates-io.nix
deleted file mode 100644
index 01638c6332c..00000000000
--- a/pkgs/applications/window-managers/way-cooler/crates-io.nix
+++ /dev/null
@@ -1,3004 +0,0 @@
-{ lib, buildRustCrate, buildRustCrateHelpers }:
-with buildRustCrateHelpers;
-let inherit (lib.lists) fold;
-    inherit (lib.attrsets) recursiveUpdate;
-in
-rec {
-
-# aho-corasick-0.5.3
-
-  crates.aho_corasick."0.5.3" = deps: { features?(features_.aho_corasick."0.5.3" deps {}) }: buildRustCrate {
-    crateName = "aho-corasick";
-    version = "0.5.3";
-    description = "Fast multiple substring searching with finite state machines.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "1igab46mvgknga3sxkqc917yfff0wsjxjzabdigmh240p5qxqlnn";
-    libName = "aho_corasick";
-    crateBin =
-      [{  name = "aho-corasick-dot"; }];
-    dependencies = mapFeatures features ([
-      (crates."memchr"."${deps."aho_corasick"."0.5.3"."memchr"}" deps)
-    ]);
-  };
-  features_.aho_corasick."0.5.3" = deps: f: updateFeatures f ({
-    aho_corasick."0.5.3".default = (f.aho_corasick."0.5.3".default or true);
-    memchr."${deps.aho_corasick."0.5.3".memchr}".default = true;
-  }) [
-    (features_.memchr."${deps."aho_corasick"."0.5.3"."memchr"}" deps)
-  ];
-
-
-# end
-# bitflags-0.4.0
-
-  crates.bitflags."0.4.0" = deps: { features?(features_.bitflags."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "bitflags";
-    version = "0.4.0";
-    description = "A macro to generate structures which behave like bitflags.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0an03kibhfcc0mcxf6a0mvbab0s7cggnvflw8jn0b15i351h828c";
-    features = mkFeatures (features."bitflags"."0.4.0" or {});
-  };
-  features_.bitflags."0.4.0" = deps: f: updateFeatures f ({
-    bitflags."0.4.0".default = (f.bitflags."0.4.0".default or true);
-  }) [];
-
-
-# end
-# bitflags-0.6.0
-
-  crates.bitflags."0.6.0" = deps: { features?(features_.bitflags."0.6.0" deps {}) }: buildRustCrate {
-    crateName = "bitflags";
-    version = "0.6.0";
-    description = "A macro to generate structures which behave like bitflags.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1znq4b770mdp3kdj9yz199ylc2pmf8l5j2f281jjrcfhg1mm22h6";
-  };
-  features_.bitflags."0.6.0" = deps: f: updateFeatures f ({
-    bitflags."0.6.0".default = (f.bitflags."0.6.0".default or true);
-  }) [];
-
-
-# end
-# bitflags-0.7.0
-
-  crates.bitflags."0.7.0" = deps: { features?(features_.bitflags."0.7.0" deps {}) }: buildRustCrate {
-    crateName = "bitflags";
-    version = "0.7.0";
-    description = "A macro to generate structures which behave like bitflags.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
-  };
-  features_.bitflags."0.7.0" = deps: f: updateFeatures f ({
-    bitflags."0.7.0".default = (f.bitflags."0.7.0".default or true);
-  }) [];
-
-
-# end
-# bitflags-0.9.1
-
-  crates.bitflags."0.9.1" = deps: { features?(features_.bitflags."0.9.1" deps {}) }: buildRustCrate {
-    crateName = "bitflags";
-    version = "0.9.1";
-    description = "A macro to generate structures which behave like bitflags.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "18h073l5jd88rx4qdr95fjddr9rk79pb1aqnshzdnw16cfmb9rws";
-    features = mkFeatures (features."bitflags"."0.9.1" or {});
-  };
-  features_.bitflags."0.9.1" = deps: f: updateFeatures f (rec {
-    bitflags = fold recursiveUpdate {} [
-      { "0.9.1"."example_generated" =
-        (f.bitflags."0.9.1"."example_generated" or false) ||
-        (f.bitflags."0.9.1".default or false) ||
-        (bitflags."0.9.1"."default" or false); }
-      { "0.9.1".default = (f.bitflags."0.9.1".default or true); }
-    ];
-  }) [];
-
-
-# end
-# bitflags-1.0.4
-
-  crates.bitflags."1.0.4" = deps: { features?(features_.bitflags."1.0.4" deps {}) }: buildRustCrate {
-    crateName = "bitflags";
-    version = "1.0.4";
-    description = "A macro to generate structures which behave like bitflags.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1g1wmz2001qmfrd37dnd5qiss5njrw26aywmg6yhkmkbyrhjxb08";
-    features = mkFeatures (features."bitflags"."1.0.4" or {});
-  };
-  features_.bitflags."1.0.4" = deps: f: updateFeatures f ({
-    bitflags."1.0.4".default = (f.bitflags."1.0.4".default or true);
-  }) [];
-
-
-# end
-# c_vec-1.2.1
-
-  crates.c_vec."1.2.1" = deps: { features?(features_.c_vec."1.2.1" deps {}) }: buildRustCrate {
-    crateName = "c_vec";
-    version = "1.2.1";
-    description = "Structures to wrap C arrays";
-    authors = [ "Guillaume Gomez <guillaume1.gomez@gmail.com>" ];
-    sha256 = "15gm72wx9kd0n51454i58rmpkmig8swghrj2440frxxi9kqg97xd";
-  };
-  features_.c_vec."1.2.1" = deps: f: updateFeatures f ({
-    c_vec."1.2.1".default = (f.c_vec."1.2.1".default or true);
-  }) [];
-
-
-# end
-# cairo-rs-0.2.0
-
-  crates.cairo_rs."0.2.0" = deps: { features?(features_.cairo_rs."0.2.0" deps {}) }: buildRustCrate {
-    crateName = "cairo-rs";
-    version = "0.2.0";
-    description = "Rust bindings for the Cairo library";
-    authors = [ "The Gtk-rs Project Developers" ];
-    sha256 = "0bcbhbyips15b7la4r43p4x57jv1w2ll8iwg9lxwvzz5k6c7iwvd";
-    libName = "cairo";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."c_vec"."${deps."cairo_rs"."0.2.0"."c_vec"}" deps)
-      (crates."cairo_sys_rs"."${deps."cairo_rs"."0.2.0"."cairo_sys_rs"}" deps)
-      (crates."libc"."${deps."cairo_rs"."0.2.0"."libc"}" deps)
-    ]
-      ++ (if features.cairo_rs."0.2.0".glib or false then [ (crates.glib."${deps."cairo_rs"."0.2.0".glib}" deps) ] else [])
-      ++ (if features.cairo_rs."0.2.0".glib-sys or false then [ (crates.glib_sys."${deps."cairo_rs"."0.2.0".glib_sys}" deps) ] else []))
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."cairo_rs"."0.2.0"."winapi"}" deps)
-    ]) else []);
-
-    buildDependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."cairo_rs"."0.2.0" or {});
-  };
-  features_.cairo_rs."0.2.0" = deps: f: updateFeatures f (rec {
-    c_vec."${deps.cairo_rs."0.2.0".c_vec}".default = true;
-    cairo_rs = fold recursiveUpdate {} [
-      { "0.2.0"."glib" =
-        (f.cairo_rs."0.2.0"."glib" or false) ||
-        (f.cairo_rs."0.2.0".use_glib or false) ||
-        (cairo_rs."0.2.0"."use_glib" or false); }
-      { "0.2.0"."glib-sys" =
-        (f.cairo_rs."0.2.0"."glib-sys" or false) ||
-        (f.cairo_rs."0.2.0".use_glib or false) ||
-        (cairo_rs."0.2.0"."use_glib" or false); }
-      { "0.2.0"."gtk-rs-lgpl-docs" =
-        (f.cairo_rs."0.2.0"."gtk-rs-lgpl-docs" or false) ||
-        (f.cairo_rs."0.2.0".embed-lgpl-docs or false) ||
-        (cairo_rs."0.2.0"."embed-lgpl-docs" or false) ||
-        (f.cairo_rs."0.2.0".purge-lgpl-docs or false) ||
-        (cairo_rs."0.2.0"."purge-lgpl-docs" or false); }
-      { "0.2.0"."use_glib" =
-        (f.cairo_rs."0.2.0"."use_glib" or false) ||
-        (f.cairo_rs."0.2.0".default or false) ||
-        (cairo_rs."0.2.0"."default" or false); }
-      { "0.2.0".default = (f.cairo_rs."0.2.0".default or true); }
-    ];
-    cairo_sys_rs = fold recursiveUpdate {} [
-      { "${deps.cairo_rs."0.2.0".cairo_sys_rs}"."png" =
-        (f.cairo_sys_rs."${deps.cairo_rs."0.2.0".cairo_sys_rs}"."png" or false) ||
-        (cairo_rs."0.2.0"."png" or false) ||
-        (f."cairo_rs"."0.2.0"."png" or false); }
-      { "${deps.cairo_rs."0.2.0".cairo_sys_rs}"."v1_12" =
-        (f.cairo_sys_rs."${deps.cairo_rs."0.2.0".cairo_sys_rs}"."v1_12" or false) ||
-        (cairo_rs."0.2.0"."v1_12" or false) ||
-        (f."cairo_rs"."0.2.0"."v1_12" or false); }
-      { "${deps.cairo_rs."0.2.0".cairo_sys_rs}"."xcb" =
-        (f.cairo_sys_rs."${deps.cairo_rs."0.2.0".cairo_sys_rs}"."xcb" or false) ||
-        (cairo_rs."0.2.0"."xcb" or false) ||
-        (f."cairo_rs"."0.2.0"."xcb" or false); }
-      { "${deps.cairo_rs."0.2.0".cairo_sys_rs}".default = true; }
-    ];
-    glib."${deps.cairo_rs."0.2.0".glib}".default = true;
-    glib_sys."${deps.cairo_rs."0.2.0".glib_sys}".default = true;
-    libc."${deps.cairo_rs."0.2.0".libc}".default = true;
-    winapi."${deps.cairo_rs."0.2.0".winapi}".default = true;
-  }) [
-    (features_.c_vec."${deps."cairo_rs"."0.2.0"."c_vec"}" deps)
-    (features_.cairo_sys_rs."${deps."cairo_rs"."0.2.0"."cairo_sys_rs"}" deps)
-    (features_.glib."${deps."cairo_rs"."0.2.0"."glib"}" deps)
-    (features_.glib_sys."${deps."cairo_rs"."0.2.0"."glib_sys"}" deps)
-    (features_.libc."${deps."cairo_rs"."0.2.0"."libc"}" deps)
-    (features_.winapi."${deps."cairo_rs"."0.2.0"."winapi"}" deps)
-  ];
-
-
-# end
-# cairo-sys-rs-0.4.0
-
-  crates.cairo_sys_rs."0.4.0" = deps: { features?(features_.cairo_sys_rs."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "cairo-sys-rs";
-    version = "0.4.0";
-    description = "FFI bindings to libcairo";
-    authors = [ "The Gtk-rs Project Developers" ];
-    sha256 = "062nxihlydci65pyy2ldn7djkc9sm7a5xvkl8pxrsxfxvfapm5br";
-    libName = "cairo_sys";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."libc"."${deps."cairo_sys_rs"."0.4.0"."libc"}" deps)
-    ])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."cairo_sys_rs"."0.4.0"."winapi"}" deps)
-    ]) else []);
-
-    buildDependencies = mapFeatures features ([
-      (crates."pkg_config"."${deps."cairo_sys_rs"."0.4.0"."pkg_config"}" deps)
-    ]);
-    features = mkFeatures (features."cairo_sys_rs"."0.4.0" or {});
-  };
-  features_.cairo_sys_rs."0.4.0" = deps: f: updateFeatures f (rec {
-    cairo_sys_rs = fold recursiveUpdate {} [
-      { "0.4.0"."v1_12" =
-        (f.cairo_sys_rs."0.4.0"."v1_12" or false) ||
-        (f.cairo_sys_rs."0.4.0".v1_14 or false) ||
-        (cairo_sys_rs."0.4.0"."v1_14" or false); }
-      { "0.4.0"."x11" =
-        (f.cairo_sys_rs."0.4.0"."x11" or false) ||
-        (f.cairo_sys_rs."0.4.0".xlib or false) ||
-        (cairo_sys_rs."0.4.0"."xlib" or false); }
-      { "0.4.0".default = (f.cairo_sys_rs."0.4.0".default or true); }
-    ];
-    libc."${deps.cairo_sys_rs."0.4.0".libc}".default = true;
-    pkg_config."${deps.cairo_sys_rs."0.4.0".pkg_config}".default = true;
-    winapi."${deps.cairo_sys_rs."0.4.0".winapi}".default = true;
-  }) [
-    (features_.libc."${deps."cairo_sys_rs"."0.4.0"."libc"}" deps)
-    (features_.pkg_config."${deps."cairo_sys_rs"."0.4.0"."pkg_config"}" deps)
-    (features_.winapi."${deps."cairo_sys_rs"."0.4.0"."winapi"}" deps)
-  ];
-
-
-# end
-# cc-1.0.25
-
-  crates.cc."1.0.25" = deps: { features?(features_.cc."1.0.25" deps {}) }: buildRustCrate {
-    crateName = "cc";
-    version = "1.0.25";
-    description = "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0pd8fhjlpr5qan984frkf1c8nxrqp6827wmmfzhm2840229z2hq0";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."cc"."1.0.25" or {});
-  };
-  features_.cc."1.0.25" = deps: f: updateFeatures f (rec {
-    cc = fold recursiveUpdate {} [
-      { "1.0.25"."rayon" =
-        (f.cc."1.0.25"."rayon" or false) ||
-        (f.cc."1.0.25".parallel or false) ||
-        (cc."1.0.25"."parallel" or false); }
-      { "1.0.25".default = (f.cc."1.0.25".default or true); }
-    ];
-  }) [];
-
-
-# end
-# cfg-if-0.1.6
-
-  crates.cfg_if."0.1.6" = deps: { features?(features_.cfg_if."0.1.6" deps {}) }: buildRustCrate {
-    crateName = "cfg-if";
-    version = "0.1.6";
-    description = "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "11qrix06wagkplyk908i3423ps9m9np6c4vbcq81s9fyl244xv3n";
-  };
-  features_.cfg_if."0.1.6" = deps: f: updateFeatures f ({
-    cfg_if."0.1.6".default = (f.cfg_if."0.1.6".default or true);
-  }) [];
-
-
-# end
-# cloudabi-0.0.3
-
-  crates.cloudabi."0.0.3" = deps: { features?(features_.cloudabi."0.0.3" deps {}) }: buildRustCrate {
-    crateName = "cloudabi";
-    version = "0.0.3";
-    description = "Low level interface to CloudABI. Contains all syscalls and related types.";
-    authors = [ "Nuxi (https://nuxi.nl/) and contributors" ];
-    sha256 = "1z9lby5sr6vslfd14d6igk03s7awf91mxpsfmsp3prxbxlk0x7h5";
-    libPath = "cloudabi.rs";
-    dependencies = mapFeatures features ([
-    ]
-      ++ (if features.cloudabi."0.0.3".bitflags or false then [ (crates.bitflags."${deps."cloudabi"."0.0.3".bitflags}" deps) ] else []));
-    features = mkFeatures (features."cloudabi"."0.0.3" or {});
-  };
-  features_.cloudabi."0.0.3" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.cloudabi."0.0.3".bitflags}".default = true;
-    cloudabi = fold recursiveUpdate {} [
-      { "0.0.3"."bitflags" =
-        (f.cloudabi."0.0.3"."bitflags" or false) ||
-        (f.cloudabi."0.0.3".default or false) ||
-        (cloudabi."0.0.3"."default" or false); }
-      { "0.0.3".default = (f.cloudabi."0.0.3".default or true); }
-    ];
-  }) [
-    (features_.bitflags."${deps."cloudabi"."0.0.3"."bitflags"}" deps)
-  ];
-
-
-# end
-# dbus-0.4.1
-
-  crates.dbus."0.4.1" = deps: { features?(features_.dbus."0.4.1" deps {}) }: buildRustCrate {
-    crateName = "dbus";
-    version = "0.4.1";
-    description = "Bindings to D-Bus, which is a bus commonly used on Linux for inter-process communication.";
-    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
-    sha256 = "0qw32qj2rys318h780klxlznkwg93dfimbn8mc34m4940l8v00g9";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."libc"."${deps."dbus"."0.4.1"."libc"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."pkg_config"."${deps."dbus"."0.4.1"."pkg_config"}" deps)
-    ]);
-  };
-  features_.dbus."0.4.1" = deps: f: updateFeatures f ({
-    dbus."0.4.1".default = (f.dbus."0.4.1".default or true);
-    libc."${deps.dbus."0.4.1".libc}".default = true;
-    pkg_config."${deps.dbus."0.4.1".pkg_config}".default = true;
-  }) [
-    (features_.libc."${deps."dbus"."0.4.1"."libc"}" deps)
-    (features_.pkg_config."${deps."dbus"."0.4.1"."pkg_config"}" deps)
-  ];
-
-
-# end
-# dbus-macros-0.0.6
-
-  crates.dbus_macros."0.0.6" = deps: { features?(features_.dbus_macros."0.0.6" deps {}) }: buildRustCrate {
-    crateName = "dbus-macros";
-    version = "0.0.6";
-    description = "Convenient macros to use the dbus crate";
-    authors = [ "Antoni Boucher <bouanto@zoho.com>" ];
-    sha256 = "1nymk2hzzgyafyr5nfa4r4frx4hml3wlwgzfr9b69vmcvn3d2jyd";
-    dependencies = mapFeatures features ([
-      (crates."dbus"."${deps."dbus_macros"."0.0.6"."dbus"}" deps)
-    ]);
-  };
-  features_.dbus_macros."0.0.6" = deps: f: updateFeatures f ({
-    dbus."${deps.dbus_macros."0.0.6".dbus}".default = true;
-    dbus_macros."0.0.6".default = (f.dbus_macros."0.0.6".default or true);
-  }) [
-    (features_.dbus."${deps."dbus_macros"."0.0.6"."dbus"}" deps)
-  ];
-
-
-# end
-# dlib-0.3.1
-
-  crates.dlib."0.3.1" = deps: { features?(features_.dlib."0.3.1" deps {}) }: buildRustCrate {
-    crateName = "dlib";
-    version = "0.3.1";
-    description = "Helper macros for handling manually loading optionnal system libraries.";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
-    dependencies = mapFeatures features ([
-      (crates."libloading"."${deps."dlib"."0.3.1"."libloading"}" deps)
-    ]);
-    features = mkFeatures (features."dlib"."0.3.1" or {});
-  };
-  features_.dlib."0.3.1" = deps: f: updateFeatures f ({
-    dlib."0.3.1".default = (f.dlib."0.3.1".default or true);
-    libloading."${deps.dlib."0.3.1".libloading}".default = true;
-  }) [
-    (features_.libloading."${deps."dlib"."0.3.1"."libloading"}" deps)
-  ];
-
-
-# end
-# dlib-0.4.1
-
-  crates.dlib."0.4.1" = deps: { features?(features_.dlib."0.4.1" deps {}) }: buildRustCrate {
-    crateName = "dlib";
-    version = "0.4.1";
-    description = "Helper macros for handling manually loading optional system libraries.";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "0h5xm6lanbl6v9y16g592bia33g7xb0n0fg98pvz6nsvg0layxlk";
-    dependencies = mapFeatures features ([
-      (crates."libloading"."${deps."dlib"."0.4.1"."libloading"}" deps)
-    ]);
-    features = mkFeatures (features."dlib"."0.4.1" or {});
-  };
-  features_.dlib."0.4.1" = deps: f: updateFeatures f ({
-    dlib."0.4.1".default = (f.dlib."0.4.1".default or true);
-    libloading."${deps.dlib."0.4.1".libloading}".default = true;
-  }) [
-    (features_.libloading."${deps."dlib"."0.4.1"."libloading"}" deps)
-  ];
-
-
-# end
-# dtoa-0.4.3
-
-  crates.dtoa."0.4.3" = deps: { features?(features_.dtoa."0.4.3" deps {}) }: buildRustCrate {
-    crateName = "dtoa";
-    version = "0.4.3";
-    description = "Fast functions for printing floating-point primitives to an io::Write";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1xysdxdm24sk5ysim7lps4r2qaxfnj0sbakhmps4d42yssx30cw8";
-  };
-  features_.dtoa."0.4.3" = deps: f: updateFeatures f ({
-    dtoa."0.4.3".default = (f.dtoa."0.4.3".default or true);
-  }) [];
-
-
-# end
-# dummy-rustwlc-0.7.1
-
-  crates.dummy_rustwlc."0.7.1" = deps: { features?(features_.dummy_rustwlc."0.7.1" deps {}) }: buildRustCrate {
-    crateName = "dummy-rustwlc";
-    version = "0.7.1";
-    description = "A dummy version of the functions defined in rust-wlc, to be used in testing and for travis builds";
-    authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Preston Carpenter <APragmaticPlace@gmail.com>" ];
-    sha256 = "13priwnxpjvmym6yh9v9x1230ca04cba7bzbnn21pbvqngis1y88";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."dummy_rustwlc"."0.7.1"."bitflags"}" deps)
-      (crates."libc"."${deps."dummy_rustwlc"."0.7.1"."libc"}" deps)
-      (crates."wayland_sys"."${deps."dummy_rustwlc"."0.7.1"."wayland_sys"}" deps)
-    ]);
-  };
-  features_.dummy_rustwlc."0.7.1" = deps: f: updateFeatures f ({
-    bitflags."${deps.dummy_rustwlc."0.7.1".bitflags}".default = true;
-    dummy_rustwlc."0.7.1".default = (f.dummy_rustwlc."0.7.1".default or true);
-    libc."${deps.dummy_rustwlc."0.7.1".libc}".default = true;
-    wayland_sys = fold recursiveUpdate {} [
-      { "${deps.dummy_rustwlc."0.7.1".wayland_sys}"."dlopen" = true; }
-      { "${deps.dummy_rustwlc."0.7.1".wayland_sys}"."server" = true; }
-      { "${deps.dummy_rustwlc."0.7.1".wayland_sys}".default = true; }
-    ];
-  }) [
-    (features_.bitflags."${deps."dummy_rustwlc"."0.7.1"."bitflags"}" deps)
-    (features_.libc."${deps."dummy_rustwlc"."0.7.1"."libc"}" deps)
-    (features_.wayland_sys."${deps."dummy_rustwlc"."0.7.1"."wayland_sys"}" deps)
-  ];
-
-
-# end
-# env_logger-0.3.5
-
-  crates.env_logger."0.3.5" = deps: { features?(features_.env_logger."0.3.5" deps {}) }: buildRustCrate {
-    crateName = "env_logger";
-    version = "0.3.5";
-    description = "An logging implementation for `log` which is configured via an environment\nvariable.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1mvxiaaqsyjliv1mm1qaagjqiccw11mdyi3n9h9rf8y6wj15zycw";
-    dependencies = mapFeatures features ([
-      (crates."log"."${deps."env_logger"."0.3.5"."log"}" deps)
-    ]
-      ++ (if features.env_logger."0.3.5".regex or false then [ (crates.regex."${deps."env_logger"."0.3.5".regex}" deps) ] else []));
-    features = mkFeatures (features."env_logger"."0.3.5" or {});
-  };
-  features_.env_logger."0.3.5" = deps: f: updateFeatures f (rec {
-    env_logger = fold recursiveUpdate {} [
-      { "0.3.5"."regex" =
-        (f.env_logger."0.3.5"."regex" or false) ||
-        (f.env_logger."0.3.5".default or false) ||
-        (env_logger."0.3.5"."default" or false); }
-      { "0.3.5".default = (f.env_logger."0.3.5".default or true); }
-    ];
-    log."${deps.env_logger."0.3.5".log}".default = true;
-    regex."${deps.env_logger."0.3.5".regex}".default = true;
-  }) [
-    (features_.log."${deps."env_logger"."0.3.5"."log"}" deps)
-    (features_.regex."${deps."env_logger"."0.3.5"."regex"}" deps)
-  ];
-
-
-# end
-# fixedbitset-0.1.9
-
-  crates.fixedbitset."0.1.9" = deps: { features?(features_.fixedbitset."0.1.9" deps {}) }: buildRustCrate {
-    crateName = "fixedbitset";
-    version = "0.1.9";
-    description = "FixedBitSet is a simple bitset collection";
-    authors = [ "bluss" ];
-    sha256 = "1bkb5aq7h9p4rzlgxagnda1f0dd11q0qz41bmdy11z18q1p8igy1";
-  };
-  features_.fixedbitset."0.1.9" = deps: f: updateFeatures f ({
-    fixedbitset."0.1.9".default = (f.fixedbitset."0.1.9".default or true);
-  }) [];
-
-
-# end
-# fuchsia-zircon-0.3.3
-
-  crates.fuchsia_zircon."0.3.3" = deps: { features?(features_.fuchsia_zircon."0.3.3" deps {}) }: buildRustCrate {
-    crateName = "fuchsia-zircon";
-    version = "0.3.3";
-    description = "Rust bindings for the Zircon kernel";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "0jrf4shb1699r4la8z358vri8318w4mdi6qzfqy30p2ymjlca4gk";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."fuchsia_zircon"."0.3.3"."bitflags"}" deps)
-      (crates."fuchsia_zircon_sys"."${deps."fuchsia_zircon"."0.3.3"."fuchsia_zircon_sys"}" deps)
-    ]);
-  };
-  features_.fuchsia_zircon."0.3.3" = deps: f: updateFeatures f ({
-    bitflags."${deps.fuchsia_zircon."0.3.3".bitflags}".default = true;
-    fuchsia_zircon."0.3.3".default = (f.fuchsia_zircon."0.3.3".default or true);
-    fuchsia_zircon_sys."${deps.fuchsia_zircon."0.3.3".fuchsia_zircon_sys}".default = true;
-  }) [
-    (features_.bitflags."${deps."fuchsia_zircon"."0.3.3"."bitflags"}" deps)
-    (features_.fuchsia_zircon_sys."${deps."fuchsia_zircon"."0.3.3"."fuchsia_zircon_sys"}" deps)
-  ];
-
-
-# end
-# fuchsia-zircon-sys-0.3.3
-
-  crates.fuchsia_zircon_sys."0.3.3" = deps: { features?(features_.fuchsia_zircon_sys."0.3.3" deps {}) }: buildRustCrate {
-    crateName = "fuchsia-zircon-sys";
-    version = "0.3.3";
-    description = "Low-level Rust bindings for the Zircon kernel";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "08jp1zxrm9jbrr6l26bjal4dbm8bxfy57ickdgibsqxr1n9j3hf5";
-  };
-  features_.fuchsia_zircon_sys."0.3.3" = deps: f: updateFeatures f ({
-    fuchsia_zircon_sys."0.3.3".default = (f.fuchsia_zircon_sys."0.3.3".default or true);
-  }) [];
-
-
-# end
-# gcc-0.3.55
-
-  crates.gcc."0.3.55" = deps: { features?(features_.gcc."0.3.55" deps {}) }: buildRustCrate {
-    crateName = "gcc";
-    version = "0.3.55";
-    description = "**Deprecated** crate, renamed to `cc`\n\nA build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "18qxv3hjdhp7pfcvbm2hvyicpgmk7xw8aii1l7fla8cxxbcrg2nz";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."gcc"."0.3.55" or {});
-  };
-  features_.gcc."0.3.55" = deps: f: updateFeatures f (rec {
-    gcc = fold recursiveUpdate {} [
-      { "0.3.55"."rayon" =
-        (f.gcc."0.3.55"."rayon" or false) ||
-        (f.gcc."0.3.55".parallel or false) ||
-        (gcc."0.3.55"."parallel" or false); }
-      { "0.3.55".default = (f.gcc."0.3.55".default or true); }
-    ];
-  }) [];
-
-
-# end
-# gdk-pixbuf-0.2.0
-
-  crates.gdk_pixbuf."0.2.0" = deps: { features?(features_.gdk_pixbuf."0.2.0" deps {}) }: buildRustCrate {
-    crateName = "gdk-pixbuf";
-    version = "0.2.0";
-    description = "Rust bindings for the GdkPixbuf library";
-    authors = [ "The Gtk-rs Project Developers" ];
-    sha256 = "082z1s30haa59ax35wsv06mj8z8bhhq0fac36g01qa77kpiphj5y";
-    libName = "gdk_pixbuf";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."gdk_pixbuf_sys"."${deps."gdk_pixbuf"."0.2.0"."gdk_pixbuf_sys"}" deps)
-      (crates."glib"."${deps."gdk_pixbuf"."0.2.0"."glib"}" deps)
-      (crates."glib_sys"."${deps."gdk_pixbuf"."0.2.0"."glib_sys"}" deps)
-      (crates."gobject_sys"."${deps."gdk_pixbuf"."0.2.0"."gobject_sys"}" deps)
-      (crates."libc"."${deps."gdk_pixbuf"."0.2.0"."libc"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."gdk_pixbuf"."0.2.0" or {});
-  };
-  features_.gdk_pixbuf."0.2.0" = deps: f: updateFeatures f (rec {
-    gdk_pixbuf = fold recursiveUpdate {} [
-      { "0.2.0"."gtk-rs-lgpl-docs" =
-        (f.gdk_pixbuf."0.2.0"."gtk-rs-lgpl-docs" or false) ||
-        (f.gdk_pixbuf."0.2.0".embed-lgpl-docs or false) ||
-        (gdk_pixbuf."0.2.0"."embed-lgpl-docs" or false) ||
-        (f.gdk_pixbuf."0.2.0".purge-lgpl-docs or false) ||
-        (gdk_pixbuf."0.2.0"."purge-lgpl-docs" or false); }
-      { "0.2.0"."v2_28" =
-        (f.gdk_pixbuf."0.2.0"."v2_28" or false) ||
-        (f.gdk_pixbuf."0.2.0".v2_30 or false) ||
-        (gdk_pixbuf."0.2.0"."v2_30" or false); }
-      { "0.2.0"."v2_30" =
-        (f.gdk_pixbuf."0.2.0"."v2_30" or false) ||
-        (f.gdk_pixbuf."0.2.0".v2_32 or false) ||
-        (gdk_pixbuf."0.2.0"."v2_32" or false); }
-      { "0.2.0"."v2_32" =
-        (f.gdk_pixbuf."0.2.0"."v2_32" or false) ||
-        (f.gdk_pixbuf."0.2.0".v2_36 or false) ||
-        (gdk_pixbuf."0.2.0"."v2_36" or false); }
-      { "0.2.0".default = (f.gdk_pixbuf."0.2.0".default or true); }
-    ];
-    gdk_pixbuf_sys = fold recursiveUpdate {} [
-      { "${deps.gdk_pixbuf."0.2.0".gdk_pixbuf_sys}"."v2_28" =
-        (f.gdk_pixbuf_sys."${deps.gdk_pixbuf."0.2.0".gdk_pixbuf_sys}"."v2_28" or false) ||
-        (gdk_pixbuf."0.2.0"."v2_28" or false) ||
-        (f."gdk_pixbuf"."0.2.0"."v2_28" or false); }
-      { "${deps.gdk_pixbuf."0.2.0".gdk_pixbuf_sys}"."v2_30" =
-        (f.gdk_pixbuf_sys."${deps.gdk_pixbuf."0.2.0".gdk_pixbuf_sys}"."v2_30" or false) ||
-        (gdk_pixbuf."0.2.0"."v2_30" or false) ||
-        (f."gdk_pixbuf"."0.2.0"."v2_30" or false); }
-      { "${deps.gdk_pixbuf."0.2.0".gdk_pixbuf_sys}"."v2_32" =
-        (f.gdk_pixbuf_sys."${deps.gdk_pixbuf."0.2.0".gdk_pixbuf_sys}"."v2_32" or false) ||
-        (gdk_pixbuf."0.2.0"."v2_32" or false) ||
-        (f."gdk_pixbuf"."0.2.0"."v2_32" or false); }
-      { "${deps.gdk_pixbuf."0.2.0".gdk_pixbuf_sys}"."v2_36" =
-        (f.gdk_pixbuf_sys."${deps.gdk_pixbuf."0.2.0".gdk_pixbuf_sys}"."v2_36" or false) ||
-        (gdk_pixbuf."0.2.0"."v2_36" or false) ||
-        (f."gdk_pixbuf"."0.2.0"."v2_36" or false); }
-      { "${deps.gdk_pixbuf."0.2.0".gdk_pixbuf_sys}".default = true; }
-    ];
-    glib."${deps.gdk_pixbuf."0.2.0".glib}".default = true;
-    glib_sys."${deps.gdk_pixbuf."0.2.0".glib_sys}".default = true;
-    gobject_sys."${deps.gdk_pixbuf."0.2.0".gobject_sys}".default = true;
-    libc."${deps.gdk_pixbuf."0.2.0".libc}".default = true;
-  }) [
-    (features_.gdk_pixbuf_sys."${deps."gdk_pixbuf"."0.2.0"."gdk_pixbuf_sys"}" deps)
-    (features_.glib."${deps."gdk_pixbuf"."0.2.0"."glib"}" deps)
-    (features_.glib_sys."${deps."gdk_pixbuf"."0.2.0"."glib_sys"}" deps)
-    (features_.gobject_sys."${deps."gdk_pixbuf"."0.2.0"."gobject_sys"}" deps)
-    (features_.libc."${deps."gdk_pixbuf"."0.2.0"."libc"}" deps)
-  ];
-
-
-# end
-# gdk-pixbuf-sys-0.4.0
-
-  crates.gdk_pixbuf_sys."0.4.0" = deps: { features?(features_.gdk_pixbuf_sys."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "gdk-pixbuf-sys";
-    version = "0.4.0";
-    description = "FFI bindings to libgdk_pixbuf-2.0";
-    authors = [ "The Gtk-rs Project Developers" ];
-    sha256 = "1r98zdqqik3hh1l10jmhhcjx59yk4m0bs9pc7hnkwp2p6gm968vp";
-    libName = "gdk_pixbuf_sys";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."gdk_pixbuf_sys"."0.4.0"."bitflags"}" deps)
-      (crates."gio_sys"."${deps."gdk_pixbuf_sys"."0.4.0"."gio_sys"}" deps)
-      (crates."glib_sys"."${deps."gdk_pixbuf_sys"."0.4.0"."glib_sys"}" deps)
-      (crates."gobject_sys"."${deps."gdk_pixbuf_sys"."0.4.0"."gobject_sys"}" deps)
-      (crates."libc"."${deps."gdk_pixbuf_sys"."0.4.0"."libc"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."pkg_config"."${deps."gdk_pixbuf_sys"."0.4.0"."pkg_config"}" deps)
-    ]);
-    features = mkFeatures (features."gdk_pixbuf_sys"."0.4.0" or {});
-  };
-  features_.gdk_pixbuf_sys."0.4.0" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.gdk_pixbuf_sys."0.4.0".bitflags}".default = true;
-    gdk_pixbuf_sys = fold recursiveUpdate {} [
-      { "0.4.0"."v2_28" =
-        (f.gdk_pixbuf_sys."0.4.0"."v2_28" or false) ||
-        (f.gdk_pixbuf_sys."0.4.0".v2_30 or false) ||
-        (gdk_pixbuf_sys."0.4.0"."v2_30" or false); }
-      { "0.4.0"."v2_30" =
-        (f.gdk_pixbuf_sys."0.4.0"."v2_30" or false) ||
-        (f.gdk_pixbuf_sys."0.4.0".v2_32 or false) ||
-        (gdk_pixbuf_sys."0.4.0"."v2_32" or false); }
-      { "0.4.0"."v2_32" =
-        (f.gdk_pixbuf_sys."0.4.0"."v2_32" or false) ||
-        (f.gdk_pixbuf_sys."0.4.0".v2_36 or false) ||
-        (gdk_pixbuf_sys."0.4.0"."v2_36" or false); }
-      { "0.4.0".default = (f.gdk_pixbuf_sys."0.4.0".default or true); }
-    ];
-    gio_sys."${deps.gdk_pixbuf_sys."0.4.0".gio_sys}".default = true;
-    glib_sys."${deps.gdk_pixbuf_sys."0.4.0".glib_sys}".default = true;
-    gobject_sys."${deps.gdk_pixbuf_sys."0.4.0".gobject_sys}".default = true;
-    libc."${deps.gdk_pixbuf_sys."0.4.0".libc}".default = true;
-    pkg_config."${deps.gdk_pixbuf_sys."0.4.0".pkg_config}".default = true;
-  }) [
-    (features_.bitflags."${deps."gdk_pixbuf_sys"."0.4.0"."bitflags"}" deps)
-    (features_.gio_sys."${deps."gdk_pixbuf_sys"."0.4.0"."gio_sys"}" deps)
-    (features_.glib_sys."${deps."gdk_pixbuf_sys"."0.4.0"."glib_sys"}" deps)
-    (features_.gobject_sys."${deps."gdk_pixbuf_sys"."0.4.0"."gobject_sys"}" deps)
-    (features_.libc."${deps."gdk_pixbuf_sys"."0.4.0"."libc"}" deps)
-    (features_.pkg_config."${deps."gdk_pixbuf_sys"."0.4.0"."pkg_config"}" deps)
-  ];
-
-
-# end
-# getopts-0.2.18
-
-  crates.getopts."0.2.18" = deps: { features?(features_.getopts."0.2.18" deps {}) }: buildRustCrate {
-    crateName = "getopts";
-    version = "0.2.18";
-    description = "getopts-like option parsing.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0c1m95wg8pkvdq4mwcd2v78r1lb6a5s3ljm7158dsl56mvzcwd5y";
-    dependencies = mapFeatures features ([
-      (crates."unicode_width"."${deps."getopts"."0.2.18"."unicode_width"}" deps)
-    ]);
-  };
-  features_.getopts."0.2.18" = deps: f: updateFeatures f ({
-    getopts."0.2.18".default = (f.getopts."0.2.18".default or true);
-    unicode_width."${deps.getopts."0.2.18".unicode_width}".default = true;
-  }) [
-    (features_.unicode_width."${deps."getopts"."0.2.18"."unicode_width"}" deps)
-  ];
-
-
-# end
-# gio-sys-0.4.0
-
-  crates.gio_sys."0.4.0" = deps: { features?(features_.gio_sys."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "gio-sys";
-    version = "0.4.0";
-    description = "FFI bindings to libgio-2.0";
-    authors = [ "The Gtk-rs Project Developers" ];
-    sha256 = "064lv6h3qfgjzc6pbbxgln24b2fq9gxzh78z6d7fwfa97azllv2l";
-    libName = "gio_sys";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."gio_sys"."0.4.0"."bitflags"}" deps)
-      (crates."glib_sys"."${deps."gio_sys"."0.4.0"."glib_sys"}" deps)
-      (crates."gobject_sys"."${deps."gio_sys"."0.4.0"."gobject_sys"}" deps)
-      (crates."libc"."${deps."gio_sys"."0.4.0"."libc"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."pkg_config"."${deps."gio_sys"."0.4.0"."pkg_config"}" deps)
-    ]);
-    features = mkFeatures (features."gio_sys"."0.4.0" or {});
-  };
-  features_.gio_sys."0.4.0" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.gio_sys."0.4.0".bitflags}".default = true;
-    gio_sys = fold recursiveUpdate {} [
-      { "0.4.0"."v2_34" =
-        (f.gio_sys."0.4.0"."v2_34" or false) ||
-        (f.gio_sys."0.4.0".v2_36 or false) ||
-        (gio_sys."0.4.0"."v2_36" or false); }
-      { "0.4.0"."v2_36" =
-        (f.gio_sys."0.4.0"."v2_36" or false) ||
-        (f.gio_sys."0.4.0".v2_38 or false) ||
-        (gio_sys."0.4.0"."v2_38" or false); }
-      { "0.4.0"."v2_38" =
-        (f.gio_sys."0.4.0"."v2_38" or false) ||
-        (f.gio_sys."0.4.0".v2_40 or false) ||
-        (gio_sys."0.4.0"."v2_40" or false); }
-      { "0.4.0"."v2_40" =
-        (f.gio_sys."0.4.0"."v2_40" or false) ||
-        (f.gio_sys."0.4.0".v2_42 or false) ||
-        (gio_sys."0.4.0"."v2_42" or false); }
-      { "0.4.0"."v2_42" =
-        (f.gio_sys."0.4.0"."v2_42" or false) ||
-        (f.gio_sys."0.4.0".v2_44 or false) ||
-        (gio_sys."0.4.0"."v2_44" or false); }
-      { "0.4.0"."v2_44" =
-        (f.gio_sys."0.4.0"."v2_44" or false) ||
-        (f.gio_sys."0.4.0".v2_46 or false) ||
-        (gio_sys."0.4.0"."v2_46" or false); }
-      { "0.4.0"."v2_46" =
-        (f.gio_sys."0.4.0"."v2_46" or false) ||
-        (f.gio_sys."0.4.0".v2_48 or false) ||
-        (gio_sys."0.4.0"."v2_48" or false); }
-      { "0.4.0"."v2_48" =
-        (f.gio_sys."0.4.0"."v2_48" or false) ||
-        (f.gio_sys."0.4.0".v2_50 or false) ||
-        (gio_sys."0.4.0"."v2_50" or false); }
-      { "0.4.0".default = (f.gio_sys."0.4.0".default or true); }
-    ];
-    glib_sys."${deps.gio_sys."0.4.0".glib_sys}".default = true;
-    gobject_sys."${deps.gio_sys."0.4.0".gobject_sys}".default = true;
-    libc."${deps.gio_sys."0.4.0".libc}".default = true;
-    pkg_config."${deps.gio_sys."0.4.0".pkg_config}".default = true;
-  }) [
-    (features_.bitflags."${deps."gio_sys"."0.4.0"."bitflags"}" deps)
-    (features_.glib_sys."${deps."gio_sys"."0.4.0"."glib_sys"}" deps)
-    (features_.gobject_sys."${deps."gio_sys"."0.4.0"."gobject_sys"}" deps)
-    (features_.libc."${deps."gio_sys"."0.4.0"."libc"}" deps)
-    (features_.pkg_config."${deps."gio_sys"."0.4.0"."pkg_config"}" deps)
-  ];
-
-
-# end
-# glib-0.3.1
-
-  crates.glib."0.3.1" = deps: { features?(features_.glib."0.3.1" deps {}) }: buildRustCrate {
-    crateName = "glib";
-    version = "0.3.1";
-    description = "Rust bindings for the GLib library";
-    authors = [ "The Gtk-rs Project Developers" ];
-    sha256 = "00s3n0pd8by1fk2l01mxmbnqq4ff6wadnkcf9jbjvr1l9bzgyqbl";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."glib"."0.3.1"."bitflags"}" deps)
-      (crates."glib_sys"."${deps."glib"."0.3.1"."glib_sys"}" deps)
-      (crates."gobject_sys"."${deps."glib"."0.3.1"."gobject_sys"}" deps)
-      (crates."lazy_static"."${deps."glib"."0.3.1"."lazy_static"}" deps)
-      (crates."libc"."${deps."glib"."0.3.1"."libc"}" deps)
-    ]);
-    features = mkFeatures (features."glib"."0.3.1" or {});
-  };
-  features_.glib."0.3.1" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.glib."0.3.1".bitflags}".default = true;
-    glib = fold recursiveUpdate {} [
-      { "0.3.1"."v2_34" =
-        (f.glib."0.3.1"."v2_34" or false) ||
-        (f.glib."0.3.1".v2_38 or false) ||
-        (glib."0.3.1"."v2_38" or false); }
-      { "0.3.1"."v2_38" =
-        (f.glib."0.3.1"."v2_38" or false) ||
-        (f.glib."0.3.1".v2_40 or false) ||
-        (glib."0.3.1"."v2_40" or false); }
-      { "0.3.1"."v2_40" =
-        (f.glib."0.3.1"."v2_40" or false) ||
-        (f.glib."0.3.1".v2_44 or false) ||
-        (glib."0.3.1"."v2_44" or false); }
-      { "0.3.1"."v2_44" =
-        (f.glib."0.3.1"."v2_44" or false) ||
-        (f.glib."0.3.1".v2_46 or false) ||
-        (glib."0.3.1"."v2_46" or false); }
-      { "0.3.1"."v2_46" =
-        (f.glib."0.3.1"."v2_46" or false) ||
-        (f.glib."0.3.1".v2_48 or false) ||
-        (glib."0.3.1"."v2_48" or false); }
-      { "0.3.1"."v2_48" =
-        (f.glib."0.3.1"."v2_48" or false) ||
-        (f.glib."0.3.1".v2_50 or false) ||
-        (glib."0.3.1"."v2_50" or false); }
-      { "0.3.1".default = (f.glib."0.3.1".default or true); }
-    ];
-    glib_sys = fold recursiveUpdate {} [
-      { "${deps.glib."0.3.1".glib_sys}"."v2_34" =
-        (f.glib_sys."${deps.glib."0.3.1".glib_sys}"."v2_34" or false) ||
-        (glib."0.3.1"."v2_34" or false) ||
-        (f."glib"."0.3.1"."v2_34" or false); }
-      { "${deps.glib."0.3.1".glib_sys}"."v2_38" =
-        (f.glib_sys."${deps.glib."0.3.1".glib_sys}"."v2_38" or false) ||
-        (glib."0.3.1"."v2_38" or false) ||
-        (f."glib"."0.3.1"."v2_38" or false); }
-      { "${deps.glib."0.3.1".glib_sys}"."v2_40" =
-        (f.glib_sys."${deps.glib."0.3.1".glib_sys}"."v2_40" or false) ||
-        (glib."0.3.1"."v2_40" or false) ||
-        (f."glib"."0.3.1"."v2_40" or false); }
-      { "${deps.glib."0.3.1".glib_sys}"."v2_44" =
-        (f.glib_sys."${deps.glib."0.3.1".glib_sys}"."v2_44" or false) ||
-        (glib."0.3.1"."v2_44" or false) ||
-        (f."glib"."0.3.1"."v2_44" or false); }
-      { "${deps.glib."0.3.1".glib_sys}"."v2_46" =
-        (f.glib_sys."${deps.glib."0.3.1".glib_sys}"."v2_46" or false) ||
-        (glib."0.3.1"."v2_46" or false) ||
-        (f."glib"."0.3.1"."v2_46" or false); }
-      { "${deps.glib."0.3.1".glib_sys}"."v2_48" =
-        (f.glib_sys."${deps.glib."0.3.1".glib_sys}"."v2_48" or false) ||
-        (glib."0.3.1"."v2_48" or false) ||
-        (f."glib"."0.3.1"."v2_48" or false); }
-      { "${deps.glib."0.3.1".glib_sys}"."v2_50" =
-        (f.glib_sys."${deps.glib."0.3.1".glib_sys}"."v2_50" or false) ||
-        (glib."0.3.1"."v2_50" or false) ||
-        (f."glib"."0.3.1"."v2_50" or false); }
-      { "${deps.glib."0.3.1".glib_sys}".default = true; }
-    ];
-    gobject_sys = fold recursiveUpdate {} [
-      { "${deps.glib."0.3.1".gobject_sys}"."v2_34" =
-        (f.gobject_sys."${deps.glib."0.3.1".gobject_sys}"."v2_34" or false) ||
-        (glib."0.3.1"."v2_34" or false) ||
-        (f."glib"."0.3.1"."v2_34" or false); }
-      { "${deps.glib."0.3.1".gobject_sys}"."v2_38" =
-        (f.gobject_sys."${deps.glib."0.3.1".gobject_sys}"."v2_38" or false) ||
-        (glib."0.3.1"."v2_38" or false) ||
-        (f."glib"."0.3.1"."v2_38" or false); }
-      { "${deps.glib."0.3.1".gobject_sys}"."v2_44" =
-        (f.gobject_sys."${deps.glib."0.3.1".gobject_sys}"."v2_44" or false) ||
-        (glib."0.3.1"."v2_44" or false) ||
-        (f."glib"."0.3.1"."v2_44" or false); }
-      { "${deps.glib."0.3.1".gobject_sys}"."v2_46" =
-        (f.gobject_sys."${deps.glib."0.3.1".gobject_sys}"."v2_46" or false) ||
-        (glib."0.3.1"."v2_46" or false) ||
-        (f."glib"."0.3.1"."v2_46" or false); }
-      { "${deps.glib."0.3.1".gobject_sys}".default = true; }
-    ];
-    lazy_static."${deps.glib."0.3.1".lazy_static}".default = true;
-    libc."${deps.glib."0.3.1".libc}".default = true;
-  }) [
-    (features_.bitflags."${deps."glib"."0.3.1"."bitflags"}" deps)
-    (features_.glib_sys."${deps."glib"."0.3.1"."glib_sys"}" deps)
-    (features_.gobject_sys."${deps."glib"."0.3.1"."gobject_sys"}" deps)
-    (features_.lazy_static."${deps."glib"."0.3.1"."lazy_static"}" deps)
-    (features_.libc."${deps."glib"."0.3.1"."libc"}" deps)
-  ];
-
-
-# end
-# glib-sys-0.4.0
-
-  crates.glib_sys."0.4.0" = deps: { features?(features_.glib_sys."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "glib-sys";
-    version = "0.4.0";
-    description = "FFI bindings to libglib-2.0";
-    authors = [ "The Gtk-rs Project Developers" ];
-    sha256 = "153i1zmk824hdf8agkaqcgddlwpvgng71n7bdpaav5f4zzlfyp2w";
-    libName = "glib_sys";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."glib_sys"."0.4.0"."bitflags"}" deps)
-      (crates."libc"."${deps."glib_sys"."0.4.0"."libc"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."pkg_config"."${deps."glib_sys"."0.4.0"."pkg_config"}" deps)
-    ]);
-    features = mkFeatures (features."glib_sys"."0.4.0" or {});
-  };
-  features_.glib_sys."0.4.0" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.glib_sys."0.4.0".bitflags}".default = true;
-    glib_sys = fold recursiveUpdate {} [
-      { "0.4.0"."v2_34" =
-        (f.glib_sys."0.4.0"."v2_34" or false) ||
-        (f.glib_sys."0.4.0".v2_36 or false) ||
-        (glib_sys."0.4.0"."v2_36" or false); }
-      { "0.4.0"."v2_36" =
-        (f.glib_sys."0.4.0"."v2_36" or false) ||
-        (f.glib_sys."0.4.0".v2_38 or false) ||
-        (glib_sys."0.4.0"."v2_38" or false); }
-      { "0.4.0"."v2_38" =
-        (f.glib_sys."0.4.0"."v2_38" or false) ||
-        (f.glib_sys."0.4.0".v2_40 or false) ||
-        (glib_sys."0.4.0"."v2_40" or false); }
-      { "0.4.0"."v2_40" =
-        (f.glib_sys."0.4.0"."v2_40" or false) ||
-        (f.glib_sys."0.4.0".v2_44 or false) ||
-        (glib_sys."0.4.0"."v2_44" or false); }
-      { "0.4.0"."v2_44" =
-        (f.glib_sys."0.4.0"."v2_44" or false) ||
-        (f.glib_sys."0.4.0".v2_46 or false) ||
-        (glib_sys."0.4.0"."v2_46" or false); }
-      { "0.4.0"."v2_46" =
-        (f.glib_sys."0.4.0"."v2_46" or false) ||
-        (f.glib_sys."0.4.0".v2_48 or false) ||
-        (glib_sys."0.4.0"."v2_48" or false); }
-      { "0.4.0"."v2_48" =
-        (f.glib_sys."0.4.0"."v2_48" or false) ||
-        (f.glib_sys."0.4.0".v2_50 or false) ||
-        (glib_sys."0.4.0"."v2_50" or false); }
-      { "0.4.0".default = (f.glib_sys."0.4.0".default or true); }
-    ];
-    libc."${deps.glib_sys."0.4.0".libc}".default = true;
-    pkg_config."${deps.glib_sys."0.4.0".pkg_config}".default = true;
-  }) [
-    (features_.bitflags."${deps."glib_sys"."0.4.0"."bitflags"}" deps)
-    (features_.libc."${deps."glib_sys"."0.4.0"."libc"}" deps)
-    (features_.pkg_config."${deps."glib_sys"."0.4.0"."pkg_config"}" deps)
-  ];
-
-
-# end
-# gobject-sys-0.4.0
-
-  crates.gobject_sys."0.4.0" = deps: { features?(features_.gobject_sys."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "gobject-sys";
-    version = "0.4.0";
-    description = "FFI bindings to libgobject-2.0";
-    authors = [ "The Gtk-rs Project Developers" ];
-    sha256 = "00zmcbzqfhn9w01cphhf3hbq8ldd9ajba7x07z59vv1gdq6wjzli";
-    libName = "gobject_sys";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."gobject_sys"."0.4.0"."bitflags"}" deps)
-      (crates."glib_sys"."${deps."gobject_sys"."0.4.0"."glib_sys"}" deps)
-      (crates."libc"."${deps."gobject_sys"."0.4.0"."libc"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."pkg_config"."${deps."gobject_sys"."0.4.0"."pkg_config"}" deps)
-    ]);
-    features = mkFeatures (features."gobject_sys"."0.4.0" or {});
-  };
-  features_.gobject_sys."0.4.0" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.gobject_sys."0.4.0".bitflags}".default = true;
-    glib_sys."${deps.gobject_sys."0.4.0".glib_sys}".default = true;
-    gobject_sys = fold recursiveUpdate {} [
-      { "0.4.0"."v2_34" =
-        (f.gobject_sys."0.4.0"."v2_34" or false) ||
-        (f.gobject_sys."0.4.0".v2_36 or false) ||
-        (gobject_sys."0.4.0"."v2_36" or false); }
-      { "0.4.0"."v2_36" =
-        (f.gobject_sys."0.4.0"."v2_36" or false) ||
-        (f.gobject_sys."0.4.0".v2_38 or false) ||
-        (gobject_sys."0.4.0"."v2_38" or false); }
-      { "0.4.0"."v2_38" =
-        (f.gobject_sys."0.4.0"."v2_38" or false) ||
-        (f.gobject_sys."0.4.0".v2_42 or false) ||
-        (gobject_sys."0.4.0"."v2_42" or false); }
-      { "0.4.0"."v2_42" =
-        (f.gobject_sys."0.4.0"."v2_42" or false) ||
-        (f.gobject_sys."0.4.0".v2_44 or false) ||
-        (gobject_sys."0.4.0"."v2_44" or false); }
-      { "0.4.0"."v2_44" =
-        (f.gobject_sys."0.4.0"."v2_44" or false) ||
-        (f.gobject_sys."0.4.0".v2_46 or false) ||
-        (gobject_sys."0.4.0"."v2_46" or false); }
-      { "0.4.0".default = (f.gobject_sys."0.4.0".default or true); }
-    ];
-    libc."${deps.gobject_sys."0.4.0".libc}".default = true;
-    pkg_config."${deps.gobject_sys."0.4.0".pkg_config}".default = true;
-  }) [
-    (features_.bitflags."${deps."gobject_sys"."0.4.0"."bitflags"}" deps)
-    (features_.glib_sys."${deps."gobject_sys"."0.4.0"."glib_sys"}" deps)
-    (features_.libc."${deps."gobject_sys"."0.4.0"."libc"}" deps)
-    (features_.pkg_config."${deps."gobject_sys"."0.4.0"."pkg_config"}" deps)
-  ];
-
-
-# end
-# itoa-0.3.4
-
-  crates.itoa."0.3.4" = deps: { features?(features_.itoa."0.3.4" deps {}) }: buildRustCrate {
-    crateName = "itoa";
-    version = "0.3.4";
-    description = "Fast functions for printing integer primitives to an io::Write";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1nfkzz6vrgj0d9l3yzjkkkqzdgs68y294fjdbl7jq118qi8xc9d9";
-    features = mkFeatures (features."itoa"."0.3.4" or {});
-  };
-  features_.itoa."0.3.4" = deps: f: updateFeatures f ({
-    itoa."0.3.4".default = (f.itoa."0.3.4".default or true);
-  }) [];
-
-
-# end
-# json_macro-0.1.1
-
-  crates.json_macro."0.1.1" = deps: { features?(features_.json_macro."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "json_macro";
-    version = "0.1.1";
-    description = "Pure json macro for rust_serialize. No need compiler features.";
-    authors = [ "Denis Kolodin <deniskolodin@gmail.com>" ];
-    sha256 = "0hl2934shpwqbszrq035valbdz9y8p7dza183brygy5dbvivcyqy";
-    dependencies = mapFeatures features ([
-      (crates."rustc_serialize"."${deps."json_macro"."0.1.1"."rustc_serialize"}" deps)
-    ]);
-  };
-  features_.json_macro."0.1.1" = deps: f: updateFeatures f ({
-    json_macro."0.1.1".default = (f.json_macro."0.1.1".default or true);
-    rustc_serialize."${deps.json_macro."0.1.1".rustc_serialize}".default = true;
-  }) [
-    (features_.rustc_serialize."${deps."json_macro"."0.1.1"."rustc_serialize"}" deps)
-  ];
-
-
-# end
-# kernel32-sys-0.2.2
-
-  crates.kernel32_sys."0.2.2" = deps: { features?(features_.kernel32_sys."0.2.2" deps {}) }: buildRustCrate {
-    crateName = "kernel32-sys";
-    version = "0.2.2";
-    description = "Contains function definitions for the Windows API library kernel32. See winapi for types and constants.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-    libName = "kernel32";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."winapi"."${deps."kernel32_sys"."0.2.2"."winapi"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."winapi_build"."${deps."kernel32_sys"."0.2.2"."winapi_build"}" deps)
-    ]);
-  };
-  features_.kernel32_sys."0.2.2" = deps: f: updateFeatures f ({
-    kernel32_sys."0.2.2".default = (f.kernel32_sys."0.2.2".default or true);
-    winapi."${deps.kernel32_sys."0.2.2".winapi}".default = true;
-    winapi_build."${deps.kernel32_sys."0.2.2".winapi_build}".default = true;
-  }) [
-    (features_.winapi."${deps."kernel32_sys"."0.2.2"."winapi"}" deps)
-    (features_.winapi_build."${deps."kernel32_sys"."0.2.2"."winapi_build"}" deps)
-  ];
-
-
-# end
-# lazy_static-0.2.11
-
-  crates.lazy_static."0.2.11" = deps: { features?(features_.lazy_static."0.2.11" deps {}) }: buildRustCrate {
-    crateName = "lazy_static";
-    version = "0.2.11";
-    description = "A macro for declaring lazily evaluated statics in Rust.";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "1x6871cvpy5b96yv4c7jvpq316fp5d4609s9py7qk6cd6x9k34vm";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."lazy_static"."0.2.11" or {});
-  };
-  features_.lazy_static."0.2.11" = deps: f: updateFeatures f (rec {
-    lazy_static = fold recursiveUpdate {} [
-      { "0.2.11"."compiletest_rs" =
-        (f.lazy_static."0.2.11"."compiletest_rs" or false) ||
-        (f.lazy_static."0.2.11".compiletest or false) ||
-        (lazy_static."0.2.11"."compiletest" or false); }
-      { "0.2.11"."nightly" =
-        (f.lazy_static."0.2.11"."nightly" or false) ||
-        (f.lazy_static."0.2.11".spin_no_std or false) ||
-        (lazy_static."0.2.11"."spin_no_std" or false); }
-      { "0.2.11"."spin" =
-        (f.lazy_static."0.2.11"."spin" or false) ||
-        (f.lazy_static."0.2.11".spin_no_std or false) ||
-        (lazy_static."0.2.11"."spin_no_std" or false); }
-      { "0.2.11".default = (f.lazy_static."0.2.11".default or true); }
-    ];
-  }) [];
-
-
-# end
-# lazy_static-1.2.0
-
-  crates.lazy_static."1.2.0" = deps: { features?(features_.lazy_static."1.2.0" deps {}) }: buildRustCrate {
-    crateName = "lazy_static";
-    version = "1.2.0";
-    description = "A macro for declaring lazily evaluated statics in Rust.";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "07p3b30k2akyr6xw08ggd5qiz5nw3vd3agggj360fcc1njz7d0ss";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."lazy_static"."1.2.0" or {});
-  };
-  features_.lazy_static."1.2.0" = deps: f: updateFeatures f (rec {
-    lazy_static = fold recursiveUpdate {} [
-      { "1.2.0"."spin" =
-        (f.lazy_static."1.2.0"."spin" or false) ||
-        (f.lazy_static."1.2.0".spin_no_std or false) ||
-        (lazy_static."1.2.0"."spin_no_std" or false); }
-      { "1.2.0".default = (f.lazy_static."1.2.0".default or true); }
-    ];
-  }) [];
-
-
-# end
-# libc-0.2.44
-
-  crates.libc."0.2.44" = deps: { features?(features_.libc."0.2.44" deps {}) }: buildRustCrate {
-    crateName = "libc";
-    version = "0.2.44";
-    description = "A library for types and bindings to native C functions often found in libc or\nother common platform libraries.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "17a7p0lcf3qwl1pcxffdflgnx8zr2659mgzzg4zi5fnv1mlj3q6z";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."libc"."0.2.44" or {});
-  };
-  features_.libc."0.2.44" = deps: f: updateFeatures f (rec {
-    libc = fold recursiveUpdate {} [
-      { "0.2.44"."align" =
-        (f.libc."0.2.44"."align" or false) ||
-        (f.libc."0.2.44".rustc-dep-of-std or false) ||
-        (libc."0.2.44"."rustc-dep-of-std" or false); }
-      { "0.2.44"."rustc-std-workspace-core" =
-        (f.libc."0.2.44"."rustc-std-workspace-core" or false) ||
-        (f.libc."0.2.44".rustc-dep-of-std or false) ||
-        (libc."0.2.44"."rustc-dep-of-std" or false); }
-      { "0.2.44"."use_std" =
-        (f.libc."0.2.44"."use_std" or false) ||
-        (f.libc."0.2.44".default or false) ||
-        (libc."0.2.44"."default" or false); }
-      { "0.2.44".default = (f.libc."0.2.44".default or true); }
-    ];
-  }) [];
-
-
-# end
-# libloading-0.3.4
-
-  crates.libloading."0.3.4" = deps: { features?(features_.libloading."0.3.4" deps {}) }: buildRustCrate {
-    crateName = "libloading";
-    version = "0.3.4";
-    description = "A safer binding to platform’s dynamic library loading utilities";
-    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
-    sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."lazy_static"."${deps."libloading"."0.3.4"."lazy_static"}" deps)
-    ])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."kernel32_sys"."${deps."libloading"."0.3.4"."kernel32_sys"}" deps)
-      (crates."winapi"."${deps."libloading"."0.3.4"."winapi"}" deps)
-    ]) else []);
-
-    buildDependencies = mapFeatures features ([
-      (crates."target_build_utils"."${deps."libloading"."0.3.4"."target_build_utils"}" deps)
-    ]);
-  };
-  features_.libloading."0.3.4" = deps: f: updateFeatures f ({
-    kernel32_sys."${deps.libloading."0.3.4".kernel32_sys}".default = true;
-    lazy_static."${deps.libloading."0.3.4".lazy_static}".default = true;
-    libloading."0.3.4".default = (f.libloading."0.3.4".default or true);
-    target_build_utils."${deps.libloading."0.3.4".target_build_utils}".default = true;
-    winapi."${deps.libloading."0.3.4".winapi}".default = true;
-  }) [
-    (features_.lazy_static."${deps."libloading"."0.3.4"."lazy_static"}" deps)
-    (features_.target_build_utils."${deps."libloading"."0.3.4"."target_build_utils"}" deps)
-    (features_.kernel32_sys."${deps."libloading"."0.3.4"."kernel32_sys"}" deps)
-    (features_.winapi."${deps."libloading"."0.3.4"."winapi"}" deps)
-  ];
-
-
-# end
-# libloading-0.5.0
-
-  crates.libloading."0.5.0" = deps: { features?(features_.libloading."0.5.0" deps {}) }: buildRustCrate {
-    crateName = "libloading";
-    version = "0.5.0";
-    description = "A safer binding to platform’s dynamic library loading utilities";
-    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
-    sha256 = "11vzjaka1y979aril4ggwp33p35yz2isvx9m5w88r5sdcmq6iscn";
-    build = "build.rs";
-    dependencies = (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."libloading"."0.5.0"."winapi"}" deps)
-    ]) else []);
-
-    buildDependencies = mapFeatures features ([
-      (crates."cc"."${deps."libloading"."0.5.0"."cc"}" deps)
-    ]);
-  };
-  features_.libloading."0.5.0" = deps: f: updateFeatures f ({
-    cc."${deps.libloading."0.5.0".cc}".default = true;
-    libloading."0.5.0".default = (f.libloading."0.5.0".default or true);
-    winapi = fold recursiveUpdate {} [
-      { "${deps.libloading."0.5.0".winapi}"."errhandlingapi" = true; }
-      { "${deps.libloading."0.5.0".winapi}"."libloaderapi" = true; }
-      { "${deps.libloading."0.5.0".winapi}"."winerror" = true; }
-      { "${deps.libloading."0.5.0".winapi}".default = true; }
-    ];
-  }) [
-    (features_.cc."${deps."libloading"."0.5.0"."cc"}" deps)
-    (features_.winapi."${deps."libloading"."0.5.0"."winapi"}" deps)
-  ];
-
-
-# end
-# log-0.3.9
-
-  crates.log."0.3.9" = deps: { features?(features_.log."0.3.9" deps {}) }: buildRustCrate {
-    crateName = "log";
-    version = "0.3.9";
-    description = "A lightweight logging facade for Rust\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "19i9pwp7lhaqgzangcpw00kc3zsgcqcx84crv07xgz3v7d3kvfa2";
-    dependencies = mapFeatures features ([
-      (crates."log"."${deps."log"."0.3.9"."log"}" deps)
-    ]);
-    features = mkFeatures (features."log"."0.3.9" or {});
-  };
-  features_.log."0.3.9" = deps: f: updateFeatures f (rec {
-    log = fold recursiveUpdate {} [
-      { "${deps.log."0.3.9".log}"."max_level_debug" =
-        (f.log."${deps.log."0.3.9".log}"."max_level_debug" or false) ||
-        (log."0.3.9"."max_level_debug" or false) ||
-        (f."log"."0.3.9"."max_level_debug" or false); }
-      { "${deps.log."0.3.9".log}"."max_level_error" =
-        (f.log."${deps.log."0.3.9".log}"."max_level_error" or false) ||
-        (log."0.3.9"."max_level_error" or false) ||
-        (f."log"."0.3.9"."max_level_error" or false); }
-      { "${deps.log."0.3.9".log}"."max_level_info" =
-        (f.log."${deps.log."0.3.9".log}"."max_level_info" or false) ||
-        (log."0.3.9"."max_level_info" or false) ||
-        (f."log"."0.3.9"."max_level_info" or false); }
-      { "${deps.log."0.3.9".log}"."max_level_off" =
-        (f.log."${deps.log."0.3.9".log}"."max_level_off" or false) ||
-        (log."0.3.9"."max_level_off" or false) ||
-        (f."log"."0.3.9"."max_level_off" or false); }
-      { "${deps.log."0.3.9".log}"."max_level_trace" =
-        (f.log."${deps.log."0.3.9".log}"."max_level_trace" or false) ||
-        (log."0.3.9"."max_level_trace" or false) ||
-        (f."log"."0.3.9"."max_level_trace" or false); }
-      { "${deps.log."0.3.9".log}"."max_level_warn" =
-        (f.log."${deps.log."0.3.9".log}"."max_level_warn" or false) ||
-        (log."0.3.9"."max_level_warn" or false) ||
-        (f."log"."0.3.9"."max_level_warn" or false); }
-      { "${deps.log."0.3.9".log}"."release_max_level_debug" =
-        (f.log."${deps.log."0.3.9".log}"."release_max_level_debug" or false) ||
-        (log."0.3.9"."release_max_level_debug" or false) ||
-        (f."log"."0.3.9"."release_max_level_debug" or false); }
-      { "${deps.log."0.3.9".log}"."release_max_level_error" =
-        (f.log."${deps.log."0.3.9".log}"."release_max_level_error" or false) ||
-        (log."0.3.9"."release_max_level_error" or false) ||
-        (f."log"."0.3.9"."release_max_level_error" or false); }
-      { "${deps.log."0.3.9".log}"."release_max_level_info" =
-        (f.log."${deps.log."0.3.9".log}"."release_max_level_info" or false) ||
-        (log."0.3.9"."release_max_level_info" or false) ||
-        (f."log"."0.3.9"."release_max_level_info" or false); }
-      { "${deps.log."0.3.9".log}"."release_max_level_off" =
-        (f.log."${deps.log."0.3.9".log}"."release_max_level_off" or false) ||
-        (log."0.3.9"."release_max_level_off" or false) ||
-        (f."log"."0.3.9"."release_max_level_off" or false); }
-      { "${deps.log."0.3.9".log}"."release_max_level_trace" =
-        (f.log."${deps.log."0.3.9".log}"."release_max_level_trace" or false) ||
-        (log."0.3.9"."release_max_level_trace" or false) ||
-        (f."log"."0.3.9"."release_max_level_trace" or false); }
-      { "${deps.log."0.3.9".log}"."release_max_level_warn" =
-        (f.log."${deps.log."0.3.9".log}"."release_max_level_warn" or false) ||
-        (log."0.3.9"."release_max_level_warn" or false) ||
-        (f."log"."0.3.9"."release_max_level_warn" or false); }
-      { "${deps.log."0.3.9".log}"."std" =
-        (f.log."${deps.log."0.3.9".log}"."std" or false) ||
-        (log."0.3.9"."use_std" or false) ||
-        (f."log"."0.3.9"."use_std" or false); }
-      { "${deps.log."0.3.9".log}".default = true; }
-      { "0.3.9"."use_std" =
-        (f.log."0.3.9"."use_std" or false) ||
-        (f.log."0.3.9".default or false) ||
-        (log."0.3.9"."default" or false); }
-      { "0.3.9".default = (f.log."0.3.9".default or true); }
-    ];
-  }) [
-    (features_.log."${deps."log"."0.3.9"."log"}" deps)
-  ];
-
-
-# end
-# log-0.4.6
-
-  crates.log."0.4.6" = deps: { features?(features_.log."0.4.6" deps {}) }: buildRustCrate {
-    crateName = "log";
-    version = "0.4.6";
-    description = "A lightweight logging facade for Rust\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1nd8dl9mvc9vd6fks5d4gsxaz990xi6rzlb8ymllshmwi153vngr";
-    dependencies = mapFeatures features ([
-      (crates."cfg_if"."${deps."log"."0.4.6"."cfg_if"}" deps)
-    ]);
-    features = mkFeatures (features."log"."0.4.6" or {});
-  };
-  features_.log."0.4.6" = deps: f: updateFeatures f ({
-    cfg_if."${deps.log."0.4.6".cfg_if}".default = true;
-    log."0.4.6".default = (f.log."0.4.6".default or true);
-  }) [
-    (features_.cfg_if."${deps."log"."0.4.6"."cfg_if"}" deps)
-  ];
-
-
-# end
-# memchr-0.1.11
-
-  crates.memchr."0.1.11" = deps: { features?(features_.memchr."0.1.11" deps {}) }: buildRustCrate {
-    crateName = "memchr";
-    version = "0.1.11";
-    description = "Safe interface to memchr.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
-    sha256 = "0x73jghamvxxq5fsw9wb0shk5m6qp3q6fsf0nibn0i6bbqkw91s8";
-    dependencies = mapFeatures features ([
-      (crates."libc"."${deps."memchr"."0.1.11"."libc"}" deps)
-    ]);
-  };
-  features_.memchr."0.1.11" = deps: f: updateFeatures f ({
-    libc."${deps.memchr."0.1.11".libc}".default = true;
-    memchr."0.1.11".default = (f.memchr."0.1.11".default or true);
-  }) [
-    (features_.libc."${deps."memchr"."0.1.11"."libc"}" deps)
-  ];
-
-
-# end
-# nix-0.6.0
-
-  crates.nix."0.6.0" = deps: { features?(features_.nix."0.6.0" deps {}) }: buildRustCrate {
-    crateName = "nix";
-    version = "0.6.0";
-    description = "Rust friendly bindings to *nix APIs";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "1bgh75y897isnxbw3vd79vns9h6q4d59p1cgv9c4laysyw6fkqwf";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."nix"."0.6.0"."bitflags"}" deps)
-      (crates."cfg_if"."${deps."nix"."0.6.0"."cfg_if"}" deps)
-      (crates."libc"."${deps."nix"."0.6.0"."libc"}" deps)
-      (crates."void"."${deps."nix"."0.6.0"."void"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."rustc_version"."${deps."nix"."0.6.0"."rustc_version"}" deps)
-      (crates."semver"."${deps."nix"."0.6.0"."semver"}" deps)
-    ]);
-    features = mkFeatures (features."nix"."0.6.0" or {});
-  };
-  features_.nix."0.6.0" = deps: f: updateFeatures f ({
-    bitflags."${deps.nix."0.6.0".bitflags}".default = true;
-    cfg_if."${deps.nix."0.6.0".cfg_if}".default = true;
-    libc."${deps.nix."0.6.0".libc}".default = true;
-    nix."0.6.0".default = (f.nix."0.6.0".default or true);
-    rustc_version."${deps.nix."0.6.0".rustc_version}".default = true;
-    semver."${deps.nix."0.6.0".semver}".default = true;
-    void."${deps.nix."0.6.0".void}".default = true;
-  }) [
-    (features_.bitflags."${deps."nix"."0.6.0"."bitflags"}" deps)
-    (features_.cfg_if."${deps."nix"."0.6.0"."cfg_if"}" deps)
-    (features_.libc."${deps."nix"."0.6.0"."libc"}" deps)
-    (features_.void."${deps."nix"."0.6.0"."void"}" deps)
-    (features_.rustc_version."${deps."nix"."0.6.0"."rustc_version"}" deps)
-    (features_.semver."${deps."nix"."0.6.0"."semver"}" deps)
-  ];
-
-
-# end
-# nix-0.9.0
-
-  crates.nix."0.9.0" = deps: { features?(features_.nix."0.9.0" deps {}) }: buildRustCrate {
-    crateName = "nix";
-    version = "0.9.0";
-    description = "Rust friendly bindings to *nix APIs";
-    authors = [ "The nix-rust Project Developers" ];
-    sha256 = "00p63bphzwwn460rja5l2wcpgmv7ljf7illf6n95cppx63d180q0";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."nix"."0.9.0"."bitflags"}" deps)
-      (crates."cfg_if"."${deps."nix"."0.9.0"."cfg_if"}" deps)
-      (crates."libc"."${deps."nix"."0.9.0"."libc"}" deps)
-      (crates."void"."${deps."nix"."0.9.0"."void"}" deps)
-    ]);
-  };
-  features_.nix."0.9.0" = deps: f: updateFeatures f ({
-    bitflags."${deps.nix."0.9.0".bitflags}".default = true;
-    cfg_if."${deps.nix."0.9.0".cfg_if}".default = true;
-    libc."${deps.nix."0.9.0".libc}".default = true;
-    nix."0.9.0".default = (f.nix."0.9.0".default or true);
-    void."${deps.nix."0.9.0".void}".default = true;
-  }) [
-    (features_.bitflags."${deps."nix"."0.9.0"."bitflags"}" deps)
-    (features_.cfg_if."${deps."nix"."0.9.0"."cfg_if"}" deps)
-    (features_.libc."${deps."nix"."0.9.0"."libc"}" deps)
-    (features_.void."${deps."nix"."0.9.0"."void"}" deps)
-  ];
-
-
-# end
-# num-traits-0.1.43
-
-  crates.num_traits."0.1.43" = deps: { features?(features_.num_traits."0.1.43" deps {}) }: buildRustCrate {
-    crateName = "num-traits";
-    version = "0.1.43";
-    description = "Numeric traits for generic mathematics";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1zdzx78vrcg3f39w94pqjs1mwxl1phyv7843hwgwkzggwcxhhf6s";
-    dependencies = mapFeatures features ([
-      (crates."num_traits"."${deps."num_traits"."0.1.43"."num_traits"}" deps)
-    ]);
-  };
-  features_.num_traits."0.1.43" = deps: f: updateFeatures f ({
-    num_traits = fold recursiveUpdate {} [
-      { "${deps.num_traits."0.1.43".num_traits}".default = true; }
-      { "0.1.43".default = (f.num_traits."0.1.43".default or true); }
-    ];
-  }) [
-    (features_.num_traits."${deps."num_traits"."0.1.43"."num_traits"}" deps)
-  ];
-
-
-# end
-# num-traits-0.2.6
-
-  crates.num_traits."0.2.6" = deps: { features?(features_.num_traits."0.2.6" deps {}) }: buildRustCrate {
-    crateName = "num-traits";
-    version = "0.2.6";
-    description = "Numeric traits for generic mathematics";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1d20sil9n0wgznd1nycm3yjfj1mzyl41ambb7by1apxlyiil1azk";
-    build = "build.rs";
-    features = mkFeatures (features."num_traits"."0.2.6" or {});
-  };
-  features_.num_traits."0.2.6" = deps: f: updateFeatures f (rec {
-    num_traits = fold recursiveUpdate {} [
-      { "0.2.6"."std" =
-        (f.num_traits."0.2.6"."std" or false) ||
-        (f.num_traits."0.2.6".default or false) ||
-        (num_traits."0.2.6"."default" or false); }
-      { "0.2.6".default = (f.num_traits."0.2.6".default or true); }
-    ];
-  }) [];
-
-
-# end
-# ordermap-0.3.5
-
-  crates.ordermap."0.3.5" = deps: { features?(features_.ordermap."0.3.5" deps {}) }: buildRustCrate {
-    crateName = "ordermap";
-    version = "0.3.5";
-    description = "A hash table with consistent order and fast iteration.";
-    authors = [ "bluss" ];
-    sha256 = "0b6vxfyh627yqm6war3392g1hhi4dbn49ibx2qv6mv490jdhv7d3";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."ordermap"."0.3.5" or {});
-  };
-  features_.ordermap."0.3.5" = deps: f: updateFeatures f (rec {
-    ordermap = fold recursiveUpdate {} [
-      { "0.3.5"."serde" =
-        (f.ordermap."0.3.5"."serde" or false) ||
-        (f.ordermap."0.3.5".serde-1 or false) ||
-        (ordermap."0.3.5"."serde-1" or false); }
-      { "0.3.5".default = (f.ordermap."0.3.5".default or true); }
-    ];
-  }) [];
-
-
-# end
-# petgraph-0.4.13
-
-  crates.petgraph."0.4.13" = deps: { features?(features_.petgraph."0.4.13" deps {}) }: buildRustCrate {
-    crateName = "petgraph";
-    version = "0.4.13";
-    description = "Graph data structure library. Provides graph types and graph algorithms.";
-    authors = [ "bluss" "mitchmindtree" ];
-    sha256 = "0a8k12b9vd0bndwqhafa853w186axdw05bv4kqjimyaz67428g1i";
-    dependencies = mapFeatures features ([
-      (crates."fixedbitset"."${deps."petgraph"."0.4.13"."fixedbitset"}" deps)
-    ]
-      ++ (if features.petgraph."0.4.13".ordermap or false then [ (crates.ordermap."${deps."petgraph"."0.4.13".ordermap}" deps) ] else []));
-    features = mkFeatures (features."petgraph"."0.4.13" or {});
-  };
-  features_.petgraph."0.4.13" = deps: f: updateFeatures f (rec {
-    fixedbitset."${deps.petgraph."0.4.13".fixedbitset}".default = true;
-    ordermap."${deps.petgraph."0.4.13".ordermap}".default = true;
-    petgraph = fold recursiveUpdate {} [
-      { "0.4.13"."generate" =
-        (f.petgraph."0.4.13"."generate" or false) ||
-        (f.petgraph."0.4.13".unstable or false) ||
-        (petgraph."0.4.13"."unstable" or false); }
-      { "0.4.13"."graphmap" =
-        (f.petgraph."0.4.13"."graphmap" or false) ||
-        (f.petgraph."0.4.13".all or false) ||
-        (petgraph."0.4.13"."all" or false) ||
-        (f.petgraph."0.4.13".default or false) ||
-        (petgraph."0.4.13"."default" or false); }
-      { "0.4.13"."ordermap" =
-        (f.petgraph."0.4.13"."ordermap" or false) ||
-        (f.petgraph."0.4.13".graphmap or false) ||
-        (petgraph."0.4.13"."graphmap" or false); }
-      { "0.4.13"."quickcheck" =
-        (f.petgraph."0.4.13"."quickcheck" or false) ||
-        (f.petgraph."0.4.13".all or false) ||
-        (petgraph."0.4.13"."all" or false); }
-      { "0.4.13"."serde" =
-        (f.petgraph."0.4.13"."serde" or false) ||
-        (f.petgraph."0.4.13".serde-1 or false) ||
-        (petgraph."0.4.13"."serde-1" or false); }
-      { "0.4.13"."serde_derive" =
-        (f.petgraph."0.4.13"."serde_derive" or false) ||
-        (f.petgraph."0.4.13".serde-1 or false) ||
-        (petgraph."0.4.13"."serde-1" or false); }
-      { "0.4.13"."stable_graph" =
-        (f.petgraph."0.4.13"."stable_graph" or false) ||
-        (f.petgraph."0.4.13".all or false) ||
-        (petgraph."0.4.13"."all" or false) ||
-        (f.petgraph."0.4.13".default or false) ||
-        (petgraph."0.4.13"."default" or false); }
-      { "0.4.13"."unstable" =
-        (f.petgraph."0.4.13"."unstable" or false) ||
-        (f.petgraph."0.4.13".all or false) ||
-        (petgraph."0.4.13"."all" or false); }
-      { "0.4.13".default = (f.petgraph."0.4.13".default or true); }
-    ];
-  }) [
-    (features_.fixedbitset."${deps."petgraph"."0.4.13"."fixedbitset"}" deps)
-    (features_.ordermap."${deps."petgraph"."0.4.13"."ordermap"}" deps)
-  ];
-
-
-# end
-# phf-0.7.23
-
-  crates.phf."0.7.23" = deps: { features?(features_.phf."0.7.23" deps {}) }: buildRustCrate {
-    crateName = "phf";
-    version = "0.7.23";
-    description = "Runtime support for perfect hash function data structures";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "0annmaf9mmm12g2cdwpip32p674pmsf6xpiwa27mz3glmz73y8aq";
-    libPath = "src/lib.rs";
-    dependencies = mapFeatures features ([
-      (crates."phf_shared"."${deps."phf"."0.7.23"."phf_shared"}" deps)
-    ]);
-    features = mkFeatures (features."phf"."0.7.23" or {});
-  };
-  features_.phf."0.7.23" = deps: f: updateFeatures f (rec {
-    phf."0.7.23".default = (f.phf."0.7.23".default or true);
-    phf_shared = fold recursiveUpdate {} [
-      { "${deps.phf."0.7.23".phf_shared}"."core" =
-        (f.phf_shared."${deps.phf."0.7.23".phf_shared}"."core" or false) ||
-        (phf."0.7.23"."core" or false) ||
-        (f."phf"."0.7.23"."core" or false); }
-      { "${deps.phf."0.7.23".phf_shared}"."unicase" =
-        (f.phf_shared."${deps.phf."0.7.23".phf_shared}"."unicase" or false) ||
-        (phf."0.7.23"."unicase" or false) ||
-        (f."phf"."0.7.23"."unicase" or false); }
-      { "${deps.phf."0.7.23".phf_shared}".default = true; }
-    ];
-  }) [
-    (features_.phf_shared."${deps."phf"."0.7.23"."phf_shared"}" deps)
-  ];
-
-
-# end
-# phf_codegen-0.7.23
-
-  crates.phf_codegen."0.7.23" = deps: { features?(features_.phf_codegen."0.7.23" deps {}) }: buildRustCrate {
-    crateName = "phf_codegen";
-    version = "0.7.23";
-    description = "Codegen library for PHF types";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "0k5ly0qykw56fxd19iy236wzghqdxq9zxnzcg8nm22cfzw4a35n0";
-    dependencies = mapFeatures features ([
-      (crates."phf_generator"."${deps."phf_codegen"."0.7.23"."phf_generator"}" deps)
-      (crates."phf_shared"."${deps."phf_codegen"."0.7.23"."phf_shared"}" deps)
-    ]);
-  };
-  features_.phf_codegen."0.7.23" = deps: f: updateFeatures f ({
-    phf_codegen."0.7.23".default = (f.phf_codegen."0.7.23".default or true);
-    phf_generator."${deps.phf_codegen."0.7.23".phf_generator}".default = true;
-    phf_shared."${deps.phf_codegen."0.7.23".phf_shared}".default = true;
-  }) [
-    (features_.phf_generator."${deps."phf_codegen"."0.7.23"."phf_generator"}" deps)
-    (features_.phf_shared."${deps."phf_codegen"."0.7.23"."phf_shared"}" deps)
-  ];
-
-
-# end
-# phf_generator-0.7.23
-
-  crates.phf_generator."0.7.23" = deps: { features?(features_.phf_generator."0.7.23" deps {}) }: buildRustCrate {
-    crateName = "phf_generator";
-    version = "0.7.23";
-    description = "PHF generation logic";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "106cd0bx3jf7mf2gaa8nx62c1las1w95c5gwsd4yqm5lj2rj4mza";
-    dependencies = mapFeatures features ([
-      (crates."phf_shared"."${deps."phf_generator"."0.7.23"."phf_shared"}" deps)
-      (crates."rand"."${deps."phf_generator"."0.7.23"."rand"}" deps)
-    ]);
-  };
-  features_.phf_generator."0.7.23" = deps: f: updateFeatures f ({
-    phf_generator."0.7.23".default = (f.phf_generator."0.7.23".default or true);
-    phf_shared."${deps.phf_generator."0.7.23".phf_shared}".default = true;
-    rand."${deps.phf_generator."0.7.23".rand}".default = true;
-  }) [
-    (features_.phf_shared."${deps."phf_generator"."0.7.23"."phf_shared"}" deps)
-    (features_.rand."${deps."phf_generator"."0.7.23"."rand"}" deps)
-  ];
-
-
-# end
-# phf_shared-0.7.23
-
-  crates.phf_shared."0.7.23" = deps: { features?(features_.phf_shared."0.7.23" deps {}) }: buildRustCrate {
-    crateName = "phf_shared";
-    version = "0.7.23";
-    description = "Support code shared by PHF libraries";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "04gzsq9vg9j8cr39hpkddxb0yqjdknvcpnylw112rqamy7ml4fy1";
-    libPath = "src/lib.rs";
-    dependencies = mapFeatures features ([
-      (crates."siphasher"."${deps."phf_shared"."0.7.23"."siphasher"}" deps)
-    ]);
-    features = mkFeatures (features."phf_shared"."0.7.23" or {});
-  };
-  features_.phf_shared."0.7.23" = deps: f: updateFeatures f ({
-    phf_shared."0.7.23".default = (f.phf_shared."0.7.23".default or true);
-    siphasher."${deps.phf_shared."0.7.23".siphasher}".default = true;
-  }) [
-    (features_.siphasher."${deps."phf_shared"."0.7.23"."siphasher"}" deps)
-  ];
-
-
-# end
-# pkg-config-0.3.14
-
-  crates.pkg_config."0.3.14" = deps: { features?(features_.pkg_config."0.3.14" deps {}) }: buildRustCrate {
-    crateName = "pkg-config";
-    version = "0.3.14";
-    description = "A library to run the pkg-config system tool at build time in order to be used in\nCargo build scripts.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0207fsarrm412j0dh87lfcas72n8mxar7q3mgflsbsrqnb140sv6";
-  };
-  features_.pkg_config."0.3.14" = deps: f: updateFeatures f ({
-    pkg_config."0.3.14".default = (f.pkg_config."0.3.14".default or true);
-  }) [];
-
-
-# end
-# rand-0.3.22
-
-  crates.rand."0.3.22" = deps: { features?(features_.rand."0.3.22" deps {}) }: buildRustCrate {
-    crateName = "rand";
-    version = "0.3.22";
-    description = "Random number generators and other randomness functionality.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0wrj12acx7l4hr7ag3nz8b50yhp8ancyq988bzmnnsxln67rsys0";
-    dependencies = mapFeatures features ([
-      (crates."libc"."${deps."rand"."0.3.22"."libc"}" deps)
-      (crates."rand"."${deps."rand"."0.3.22"."rand"}" deps)
-    ])
-      ++ (if kernel == "fuchsia" then mapFeatures features ([
-      (crates."fuchsia_zircon"."${deps."rand"."0.3.22"."fuchsia_zircon"}" deps)
-    ]) else []);
-    features = mkFeatures (features."rand"."0.3.22" or {});
-  };
-  features_.rand."0.3.22" = deps: f: updateFeatures f (rec {
-    fuchsia_zircon."${deps.rand."0.3.22".fuchsia_zircon}".default = true;
-    libc."${deps.rand."0.3.22".libc}".default = true;
-    rand = fold recursiveUpdate {} [
-      { "${deps.rand."0.3.22".rand}".default = true; }
-      { "0.3.22"."i128_support" =
-        (f.rand."0.3.22"."i128_support" or false) ||
-        (f.rand."0.3.22".nightly or false) ||
-        (rand."0.3.22"."nightly" or false); }
-      { "0.3.22".default = (f.rand."0.3.22".default or true); }
-    ];
-  }) [
-    (features_.libc."${deps."rand"."0.3.22"."libc"}" deps)
-    (features_.rand."${deps."rand"."0.3.22"."rand"}" deps)
-    (features_.fuchsia_zircon."${deps."rand"."0.3.22"."fuchsia_zircon"}" deps)
-  ];
-
-
-# end
-# rand-0.4.3
-
-  crates.rand."0.4.3" = deps: { features?(features_.rand."0.4.3" deps {}) }: buildRustCrate {
-    crateName = "rand";
-    version = "0.4.3";
-    description = "Random number generators and other randomness functionality.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1644wri45l147822xy7dgdm4k7myxzs66cb795ga0x7dan11ci4f";
-    dependencies = (if kernel == "fuchsia" then mapFeatures features ([
-      (crates."fuchsia_zircon"."${deps."rand"."0.4.3"."fuchsia_zircon"}" deps)
-    ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-    ]
-      ++ (if features.rand."0.4.3".libc or false then [ (crates.libc."${deps."rand"."0.4.3".libc}" deps) ] else [])) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."rand"."0.4.3"."winapi"}" deps)
-    ]) else []);
-    features = mkFeatures (features."rand"."0.4.3" or {});
-  };
-  features_.rand."0.4.3" = deps: f: updateFeatures f (rec {
-    fuchsia_zircon."${deps.rand."0.4.3".fuchsia_zircon}".default = true;
-    libc."${deps.rand."0.4.3".libc}".default = true;
-    rand = fold recursiveUpdate {} [
-      { "0.4.3"."i128_support" =
-        (f.rand."0.4.3"."i128_support" or false) ||
-        (f.rand."0.4.3".nightly or false) ||
-        (rand."0.4.3"."nightly" or false); }
-      { "0.4.3"."libc" =
-        (f.rand."0.4.3"."libc" or false) ||
-        (f.rand."0.4.3".std or false) ||
-        (rand."0.4.3"."std" or false); }
-      { "0.4.3"."std" =
-        (f.rand."0.4.3"."std" or false) ||
-        (f.rand."0.4.3".default or false) ||
-        (rand."0.4.3"."default" or false); }
-      { "0.4.3".default = (f.rand."0.4.3".default or true); }
-    ];
-    winapi = fold recursiveUpdate {} [
-      { "${deps.rand."0.4.3".winapi}"."minwindef" = true; }
-      { "${deps.rand."0.4.3".winapi}"."ntsecapi" = true; }
-      { "${deps.rand."0.4.3".winapi}"."profileapi" = true; }
-      { "${deps.rand."0.4.3".winapi}"."winnt" = true; }
-      { "${deps.rand."0.4.3".winapi}".default = true; }
-    ];
-  }) [
-    (features_.fuchsia_zircon."${deps."rand"."0.4.3"."fuchsia_zircon"}" deps)
-    (features_.libc."${deps."rand"."0.4.3"."libc"}" deps)
-    (features_.winapi."${deps."rand"."0.4.3"."winapi"}" deps)
-  ];
-
-
-# end
-# rand-0.5.5
-
-  crates.rand."0.5.5" = deps: { features?(features_.rand."0.5.5" deps {}) }: buildRustCrate {
-    crateName = "rand";
-    version = "0.5.5";
-    description = "Random number generators and other randomness functionality.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0d7pnsh57qxhz1ghrzk113ddkn13kf2g758ffnbxq4nhwjfzhlc9";
-    dependencies = mapFeatures features ([
-      (crates."rand_core"."${deps."rand"."0.5.5"."rand_core"}" deps)
-    ])
-      ++ (if kernel == "cloudabi" then mapFeatures features ([
-    ]
-      ++ (if features.rand."0.5.5".cloudabi or false then [ (crates.cloudabi."${deps."rand"."0.5.5".cloudabi}" deps) ] else [])) else [])
-      ++ (if kernel == "fuchsia" then mapFeatures features ([
-    ]
-      ++ (if features.rand."0.5.5".fuchsia-zircon or false then [ (crates.fuchsia_zircon."${deps."rand"."0.5.5".fuchsia_zircon}" deps) ] else [])) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-    ]
-      ++ (if features.rand."0.5.5".libc or false then [ (crates.libc."${deps."rand"."0.5.5".libc}" deps) ] else [])) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-    ]
-      ++ (if features.rand."0.5.5".winapi or false then [ (crates.winapi."${deps."rand"."0.5.5".winapi}" deps) ] else [])) else [])
-      ++ (if kernel == "wasm32-unknown-unknown" then mapFeatures features ([
-]) else []);
-    features = mkFeatures (features."rand"."0.5.5" or {});
-  };
-  features_.rand."0.5.5" = deps: f: updateFeatures f (rec {
-    cloudabi."${deps.rand."0.5.5".cloudabi}".default = true;
-    fuchsia_zircon."${deps.rand."0.5.5".fuchsia_zircon}".default = true;
-    libc."${deps.rand."0.5.5".libc}".default = true;
-    rand = fold recursiveUpdate {} [
-      { "0.5.5"."alloc" =
-        (f.rand."0.5.5"."alloc" or false) ||
-        (f.rand."0.5.5".std or false) ||
-        (rand."0.5.5"."std" or false); }
-      { "0.5.5"."cloudabi" =
-        (f.rand."0.5.5"."cloudabi" or false) ||
-        (f.rand."0.5.5".std or false) ||
-        (rand."0.5.5"."std" or false); }
-      { "0.5.5"."fuchsia-zircon" =
-        (f.rand."0.5.5"."fuchsia-zircon" or false) ||
-        (f.rand."0.5.5".std or false) ||
-        (rand."0.5.5"."std" or false); }
-      { "0.5.5"."i128_support" =
-        (f.rand."0.5.5"."i128_support" or false) ||
-        (f.rand."0.5.5".nightly or false) ||
-        (rand."0.5.5"."nightly" or false); }
-      { "0.5.5"."libc" =
-        (f.rand."0.5.5"."libc" or false) ||
-        (f.rand."0.5.5".std or false) ||
-        (rand."0.5.5"."std" or false); }
-      { "0.5.5"."serde" =
-        (f.rand."0.5.5"."serde" or false) ||
-        (f.rand."0.5.5".serde1 or false) ||
-        (rand."0.5.5"."serde1" or false); }
-      { "0.5.5"."serde_derive" =
-        (f.rand."0.5.5"."serde_derive" or false) ||
-        (f.rand."0.5.5".serde1 or false) ||
-        (rand."0.5.5"."serde1" or false); }
-      { "0.5.5"."std" =
-        (f.rand."0.5.5"."std" or false) ||
-        (f.rand."0.5.5".default or false) ||
-        (rand."0.5.5"."default" or false); }
-      { "0.5.5"."winapi" =
-        (f.rand."0.5.5"."winapi" or false) ||
-        (f.rand."0.5.5".std or false) ||
-        (rand."0.5.5"."std" or false); }
-      { "0.5.5".default = (f.rand."0.5.5".default or true); }
-    ];
-    rand_core = fold recursiveUpdate {} [
-      { "${deps.rand."0.5.5".rand_core}"."alloc" =
-        (f.rand_core."${deps.rand."0.5.5".rand_core}"."alloc" or false) ||
-        (rand."0.5.5"."alloc" or false) ||
-        (f."rand"."0.5.5"."alloc" or false); }
-      { "${deps.rand."0.5.5".rand_core}"."serde1" =
-        (f.rand_core."${deps.rand."0.5.5".rand_core}"."serde1" or false) ||
-        (rand."0.5.5"."serde1" or false) ||
-        (f."rand"."0.5.5"."serde1" or false); }
-      { "${deps.rand."0.5.5".rand_core}"."std" =
-        (f.rand_core."${deps.rand."0.5.5".rand_core}"."std" or false) ||
-        (rand."0.5.5"."std" or false) ||
-        (f."rand"."0.5.5"."std" or false); }
-      { "${deps.rand."0.5.5".rand_core}".default = (f.rand_core."${deps.rand."0.5.5".rand_core}".default or false); }
-    ];
-    winapi = fold recursiveUpdate {} [
-      { "${deps.rand."0.5.5".winapi}"."minwindef" = true; }
-      { "${deps.rand."0.5.5".winapi}"."ntsecapi" = true; }
-      { "${deps.rand."0.5.5".winapi}"."profileapi" = true; }
-      { "${deps.rand."0.5.5".winapi}"."winnt" = true; }
-      { "${deps.rand."0.5.5".winapi}".default = true; }
-    ];
-  }) [
-    (features_.rand_core."${deps."rand"."0.5.5"."rand_core"}" deps)
-    (features_.cloudabi."${deps."rand"."0.5.5"."cloudabi"}" deps)
-    (features_.fuchsia_zircon."${deps."rand"."0.5.5"."fuchsia_zircon"}" deps)
-    (features_.libc."${deps."rand"."0.5.5"."libc"}" deps)
-    (features_.winapi."${deps."rand"."0.5.5"."winapi"}" deps)
-  ];
-
-
-# end
-# rand_core-0.2.2
-
-  crates.rand_core."0.2.2" = deps: { features?(features_.rand_core."0.2.2" deps {}) }: buildRustCrate {
-    crateName = "rand_core";
-    version = "0.2.2";
-    description = "Core random number generator traits and tools for implementation.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1cxnaxmsirz2wxsajsjkd1wk6lqfqbcprqkha4bq3didznrl22sc";
-    dependencies = mapFeatures features ([
-      (crates."rand_core"."${deps."rand_core"."0.2.2"."rand_core"}" deps)
-    ]);
-    features = mkFeatures (features."rand_core"."0.2.2" or {});
-  };
-  features_.rand_core."0.2.2" = deps: f: updateFeatures f (rec {
-    rand_core = fold recursiveUpdate {} [
-      { "${deps.rand_core."0.2.2".rand_core}"."alloc" =
-        (f.rand_core."${deps.rand_core."0.2.2".rand_core}"."alloc" or false) ||
-        (rand_core."0.2.2"."alloc" or false) ||
-        (f."rand_core"."0.2.2"."alloc" or false); }
-      { "${deps.rand_core."0.2.2".rand_core}"."serde1" =
-        (f.rand_core."${deps.rand_core."0.2.2".rand_core}"."serde1" or false) ||
-        (rand_core."0.2.2"."serde1" or false) ||
-        (f."rand_core"."0.2.2"."serde1" or false); }
-      { "${deps.rand_core."0.2.2".rand_core}"."std" =
-        (f.rand_core."${deps.rand_core."0.2.2".rand_core}"."std" or false) ||
-        (rand_core."0.2.2"."std" or false) ||
-        (f."rand_core"."0.2.2"."std" or false); }
-      { "${deps.rand_core."0.2.2".rand_core}".default = (f.rand_core."${deps.rand_core."0.2.2".rand_core}".default or false); }
-      { "0.2.2".default = (f.rand_core."0.2.2".default or true); }
-    ];
-  }) [
-    (features_.rand_core."${deps."rand_core"."0.2.2"."rand_core"}" deps)
-  ];
-
-
-# end
-# rand_core-0.3.0
-
-  crates.rand_core."0.3.0" = deps: { features?(features_.rand_core."0.3.0" deps {}) }: buildRustCrate {
-    crateName = "rand_core";
-    version = "0.3.0";
-    description = "Core random number generator traits and tools for implementation.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1vafw316apjys9va3j987s02djhqp7y21v671v3ix0p5j9bjq339";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."rand_core"."0.3.0" or {});
-  };
-  features_.rand_core."0.3.0" = deps: f: updateFeatures f (rec {
-    rand_core = fold recursiveUpdate {} [
-      { "0.3.0"."alloc" =
-        (f.rand_core."0.3.0"."alloc" or false) ||
-        (f.rand_core."0.3.0".std or false) ||
-        (rand_core."0.3.0"."std" or false); }
-      { "0.3.0"."serde" =
-        (f.rand_core."0.3.0"."serde" or false) ||
-        (f.rand_core."0.3.0".serde1 or false) ||
-        (rand_core."0.3.0"."serde1" or false); }
-      { "0.3.0"."serde_derive" =
-        (f.rand_core."0.3.0"."serde_derive" or false) ||
-        (f.rand_core."0.3.0".serde1 or false) ||
-        (rand_core."0.3.0"."serde1" or false); }
-      { "0.3.0"."std" =
-        (f.rand_core."0.3.0"."std" or false) ||
-        (f.rand_core."0.3.0".default or false) ||
-        (rand_core."0.3.0"."default" or false); }
-      { "0.3.0".default = (f.rand_core."0.3.0".default or true); }
-    ];
-  }) [];
-
-
-# end
-# regex-0.1.80
-
-  crates.regex."0.1.80" = deps: { features?(features_.regex."0.1.80" deps {}) }: buildRustCrate {
-    crateName = "regex";
-    version = "0.1.80";
-    description = "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0y4s8ghhx6sgzb35irwivm3w0l2hhqhmdcd2px9hirqnkagal9l6";
-    dependencies = mapFeatures features ([
-      (crates."aho_corasick"."${deps."regex"."0.1.80"."aho_corasick"}" deps)
-      (crates."memchr"."${deps."regex"."0.1.80"."memchr"}" deps)
-      (crates."regex_syntax"."${deps."regex"."0.1.80"."regex_syntax"}" deps)
-      (crates."thread_local"."${deps."regex"."0.1.80"."thread_local"}" deps)
-      (crates."utf8_ranges"."${deps."regex"."0.1.80"."utf8_ranges"}" deps)
-    ]);
-    features = mkFeatures (features."regex"."0.1.80" or {});
-  };
-  features_.regex."0.1.80" = deps: f: updateFeatures f (rec {
-    aho_corasick."${deps.regex."0.1.80".aho_corasick}".default = true;
-    memchr."${deps.regex."0.1.80".memchr}".default = true;
-    regex = fold recursiveUpdate {} [
-      { "0.1.80"."simd" =
-        (f.regex."0.1.80"."simd" or false) ||
-        (f.regex."0.1.80".simd-accel or false) ||
-        (regex."0.1.80"."simd-accel" or false); }
-      { "0.1.80".default = (f.regex."0.1.80".default or true); }
-    ];
-    regex_syntax."${deps.regex."0.1.80".regex_syntax}".default = true;
-    thread_local."${deps.regex."0.1.80".thread_local}".default = true;
-    utf8_ranges."${deps.regex."0.1.80".utf8_ranges}".default = true;
-  }) [
-    (features_.aho_corasick."${deps."regex"."0.1.80"."aho_corasick"}" deps)
-    (features_.memchr."${deps."regex"."0.1.80"."memchr"}" deps)
-    (features_.regex_syntax."${deps."regex"."0.1.80"."regex_syntax"}" deps)
-    (features_.thread_local."${deps."regex"."0.1.80"."thread_local"}" deps)
-    (features_.utf8_ranges."${deps."regex"."0.1.80"."utf8_ranges"}" deps)
-  ];
-
-
-# end
-# regex-syntax-0.3.9
-
-  crates.regex_syntax."0.3.9" = deps: { features?(features_.regex_syntax."0.3.9" deps {}) }: buildRustCrate {
-    crateName = "regex-syntax";
-    version = "0.3.9";
-    description = "A regular expression parser.";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1mzhphkbwppwd1zam2jkgjk550cqgf6506i87bw2yzrvcsraiw7m";
-  };
-  features_.regex_syntax."0.3.9" = deps: f: updateFeatures f ({
-    regex_syntax."0.3.9".default = (f.regex_syntax."0.3.9".default or true);
-  }) [];
-
-
-# end
-# rlua-0.9.7
-
-  crates.rlua."0.9.7" = deps: { features?(features_.rlua."0.9.7" deps {}) }: buildRustCrate {
-    crateName = "rlua";
-    version = "0.9.7";
-    description = "High level bindings to Lua 5.3";
-    authors = [ "kyren <catherine@chucklefish.org>" ];
-    sha256 = "1671b5ga54aq49sqx69hvnjr732hf9jpqwswwxgpcqq8q05mfzgp";
-    dependencies = mapFeatures features ([
-      (crates."libc"."${deps."rlua"."0.9.7"."libc"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-    ]
-      ++ (if features.rlua."0.9.7".gcc or false then [ (crates.gcc."${deps."rlua"."0.9.7".gcc}" deps) ] else []));
-    features = mkFeatures (features."rlua"."0.9.7" or {});
-  };
-  features_.rlua."0.9.7" = deps: f: updateFeatures f (rec {
-    gcc."${deps.rlua."0.9.7".gcc}".default = true;
-    libc."${deps.rlua."0.9.7".libc}".default = true;
-    rlua = fold recursiveUpdate {} [
-      { "0.9.7"."builtin-lua" =
-        (f.rlua."0.9.7"."builtin-lua" or false) ||
-        (f.rlua."0.9.7".default or false) ||
-        (rlua."0.9.7"."default" or false); }
-      { "0.9.7"."gcc" =
-        (f.rlua."0.9.7"."gcc" or false) ||
-        (f.rlua."0.9.7".builtin-lua or false) ||
-        (rlua."0.9.7"."builtin-lua" or false); }
-      { "0.9.7".default = (f.rlua."0.9.7".default or true); }
-    ];
-  }) [
-    (features_.libc."${deps."rlua"."0.9.7"."libc"}" deps)
-    (features_.gcc."${deps."rlua"."0.9.7"."gcc"}" deps)
-  ];
-
-
-# end
-# rustc-serialize-0.3.24
-
-  crates.rustc_serialize."0.3.24" = deps: { features?(features_.rustc_serialize."0.3.24" deps {}) }: buildRustCrate {
-    crateName = "rustc-serialize";
-    version = "0.3.24";
-    description = "Generic serialization/deserialization support corresponding to the\n`derive(RustcEncodable, RustcDecodable)` mode in the compiler. Also includes\nsupport for hex, base64, and json encoding and decoding.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
-  };
-  features_.rustc_serialize."0.3.24" = deps: f: updateFeatures f ({
-    rustc_serialize."0.3.24".default = (f.rustc_serialize."0.3.24".default or true);
-  }) [];
-
-
-# end
-# rustc_version-0.1.7
-
-  crates.rustc_version."0.1.7" = deps: { features?(features_.rustc_version."0.1.7" deps {}) }: buildRustCrate {
-    crateName = "rustc_version";
-    version = "0.1.7";
-    description = "A library for querying the version of a installed rustc compiler";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "0plm9pbyvcwfibd0kbhzil9xmr1bvqi8fgwlfw0x4vali8s6s99p";
-    dependencies = mapFeatures features ([
-      (crates."semver"."${deps."rustc_version"."0.1.7"."semver"}" deps)
-    ]);
-  };
-  features_.rustc_version."0.1.7" = deps: f: updateFeatures f ({
-    rustc_version."0.1.7".default = (f.rustc_version."0.1.7".default or true);
-    semver."${deps.rustc_version."0.1.7".semver}".default = true;
-  }) [
-    (features_.semver."${deps."rustc_version"."0.1.7"."semver"}" deps)
-  ];
-
-
-# end
-# rustwlc-0.7.0
-
-  crates.rustwlc."0.7.0" = deps: { features?(features_.rustwlc."0.7.0" deps {}) }: buildRustCrate {
-    crateName = "rustwlc";
-    version = "0.7.0";
-    description = "wlc Wayland library bindings for Rust";
-    authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Timidger <apragmaticplace@gmail.com>" ];
-    sha256 = "0gqi9pdw74al33ja25h33q68vnfklj3gpjgkiqqbr3gflgli5h1i";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."rustwlc"."0.7.0"."bitflags"}" deps)
-      (crates."libc"."${deps."rustwlc"."0.7.0"."libc"}" deps)
-    ]
-      ++ (if features.rustwlc."0.7.0".wayland-sys or false then [ (crates.wayland_sys."${deps."rustwlc"."0.7.0".wayland_sys}" deps) ] else []));
-    features = mkFeatures (features."rustwlc"."0.7.0" or {});
-  };
-  features_.rustwlc."0.7.0" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.rustwlc."0.7.0".bitflags}".default = true;
-    libc."${deps.rustwlc."0.7.0".libc}".default = true;
-    rustwlc = fold recursiveUpdate {} [
-      { "0.7.0"."wayland-sys" =
-        (f.rustwlc."0.7.0"."wayland-sys" or false) ||
-        (f.rustwlc."0.7.0".wlc-wayland or false) ||
-        (rustwlc."0.7.0"."wlc-wayland" or false); }
-      { "0.7.0".default = (f.rustwlc."0.7.0".default or true); }
-    ];
-    wayland_sys = fold recursiveUpdate {} [
-      { "${deps.rustwlc."0.7.0".wayland_sys}"."server" = true; }
-      { "${deps.rustwlc."0.7.0".wayland_sys}".default = true; }
-    ];
-  }) [
-    (features_.bitflags."${deps."rustwlc"."0.7.0"."bitflags"}" deps)
-    (features_.libc."${deps."rustwlc"."0.7.0"."libc"}" deps)
-    (features_.wayland_sys."${deps."rustwlc"."0.7.0"."wayland_sys"}" deps)
-  ];
-
-
-# end
-# semver-0.1.20
-
-  crates.semver."0.1.20" = deps: { features?(features_.semver."0.1.20" deps {}) }: buildRustCrate {
-    crateName = "semver";
-    version = "0.1.20";
-    description = "Semantic version parsing and comparison.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "05cdig0071hls2k8lxbqmyqpl0zjmc53i2d43mwzps033b8njh4n";
-  };
-  features_.semver."0.1.20" = deps: f: updateFeatures f ({
-    semver."0.1.20".default = (f.semver."0.1.20".default or true);
-  }) [];
-
-
-# end
-# serde-0.9.15
-
-  crates.serde."0.9.15" = deps: { features?(features_.serde."0.9.15" deps {}) }: buildRustCrate {
-    crateName = "serde";
-    version = "0.9.15";
-    description = "A generic serialization/deserialization framework";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-    sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."serde"."0.9.15" or {});
-  };
-  features_.serde."0.9.15" = deps: f: updateFeatures f (rec {
-    serde = fold recursiveUpdate {} [
-      { "0.9.15"."alloc" =
-        (f.serde."0.9.15"."alloc" or false) ||
-        (f.serde."0.9.15".collections or false) ||
-        (serde."0.9.15"."collections" or false); }
-      { "0.9.15"."serde_derive" =
-        (f.serde."0.9.15"."serde_derive" or false) ||
-        (f.serde."0.9.15".derive or false) ||
-        (serde."0.9.15"."derive" or false) ||
-        (f.serde."0.9.15".playground or false) ||
-        (serde."0.9.15"."playground" or false); }
-      { "0.9.15"."std" =
-        (f.serde."0.9.15"."std" or false) ||
-        (f.serde."0.9.15".default or false) ||
-        (serde."0.9.15"."default" or false) ||
-        (f.serde."0.9.15".unstable-testing or false) ||
-        (serde."0.9.15"."unstable-testing" or false); }
-      { "0.9.15"."unstable" =
-        (f.serde."0.9.15"."unstable" or false) ||
-        (f.serde."0.9.15".alloc or false) ||
-        (serde."0.9.15"."alloc" or false) ||
-        (f.serde."0.9.15".unstable-testing or false) ||
-        (serde."0.9.15"."unstable-testing" or false); }
-      { "0.9.15".default = (f.serde."0.9.15".default or true); }
-    ];
-  }) [];
-
-
-# end
-# serde_json-0.9.10
-
-  crates.serde_json."0.9.10" = deps: { features?(features_.serde_json."0.9.10" deps {}) }: buildRustCrate {
-    crateName = "serde_json";
-    version = "0.9.10";
-    description = "A JSON serialization file format";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-    sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
-    dependencies = mapFeatures features ([
-      (crates."dtoa"."${deps."serde_json"."0.9.10"."dtoa"}" deps)
-      (crates."itoa"."${deps."serde_json"."0.9.10"."itoa"}" deps)
-      (crates."num_traits"."${deps."serde_json"."0.9.10"."num_traits"}" deps)
-      (crates."serde"."${deps."serde_json"."0.9.10"."serde"}" deps)
-    ]);
-    features = mkFeatures (features."serde_json"."0.9.10" or {});
-  };
-  features_.serde_json."0.9.10" = deps: f: updateFeatures f (rec {
-    dtoa."${deps.serde_json."0.9.10".dtoa}".default = true;
-    itoa."${deps.serde_json."0.9.10".itoa}".default = true;
-    num_traits."${deps.serde_json."0.9.10".num_traits}".default = true;
-    serde."${deps.serde_json."0.9.10".serde}".default = true;
-    serde_json = fold recursiveUpdate {} [
-      { "0.9.10"."linked-hash-map" =
-        (f.serde_json."0.9.10"."linked-hash-map" or false) ||
-        (f.serde_json."0.9.10".preserve_order or false) ||
-        (serde_json."0.9.10"."preserve_order" or false); }
-      { "0.9.10".default = (f.serde_json."0.9.10".default or true); }
-    ];
-  }) [
-    (features_.dtoa."${deps."serde_json"."0.9.10"."dtoa"}" deps)
-    (features_.itoa."${deps."serde_json"."0.9.10"."itoa"}" deps)
-    (features_.num_traits."${deps."serde_json"."0.9.10"."num_traits"}" deps)
-    (features_.serde."${deps."serde_json"."0.9.10"."serde"}" deps)
-  ];
-
-
-# end
-# siphasher-0.2.3
-
-  crates.siphasher."0.2.3" = deps: { features?(features_.siphasher."0.2.3" deps {}) }: buildRustCrate {
-    crateName = "siphasher";
-    version = "0.2.3";
-    description = "SipHash functions from rust-core < 1.13";
-    authors = [ "Frank Denis <github@pureftpd.org>" ];
-    sha256 = "1ganj1grxqnkvv4ds3vby039bm999jrr58nfq2x3kjhzkw2bnqkw";
-  };
-  features_.siphasher."0.2.3" = deps: f: updateFeatures f ({
-    siphasher."0.2.3".default = (f.siphasher."0.2.3".default or true);
-  }) [];
-
-
-# end
-# target_build_utils-0.3.1
-
-  crates.target_build_utils."0.3.1" = deps: { features?(features_.target_build_utils."0.3.1" deps {}) }: buildRustCrate {
-    crateName = "target_build_utils";
-    version = "0.3.1";
-    description = "DEPRECATED: Use Cargo environment variables `CARGO_CFG_TARGET_*`";
-    authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
-    sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."phf"."${deps."target_build_utils"."0.3.1"."phf"}" deps)
-    ]
-      ++ (if features.target_build_utils."0.3.1".serde_json or false then [ (crates.serde_json."${deps."target_build_utils"."0.3.1".serde_json}" deps) ] else []));
-
-    buildDependencies = mapFeatures features ([
-      (crates."phf_codegen"."${deps."target_build_utils"."0.3.1"."phf_codegen"}" deps)
-    ]);
-    features = mkFeatures (features."target_build_utils"."0.3.1" or {});
-  };
-  features_.target_build_utils."0.3.1" = deps: f: updateFeatures f (rec {
-    phf."${deps.target_build_utils."0.3.1".phf}".default = true;
-    phf_codegen."${deps.target_build_utils."0.3.1".phf_codegen}".default = true;
-    serde_json."${deps.target_build_utils."0.3.1".serde_json}".default = true;
-    target_build_utils = fold recursiveUpdate {} [
-      { "0.3.1"."serde_json" =
-        (f.target_build_utils."0.3.1"."serde_json" or false) ||
-        (f.target_build_utils."0.3.1".default or false) ||
-        (target_build_utils."0.3.1"."default" or false); }
-      { "0.3.1".default = (f.target_build_utils."0.3.1".default or true); }
-    ];
-  }) [
-    (features_.phf."${deps."target_build_utils"."0.3.1"."phf"}" deps)
-    (features_.serde_json."${deps."target_build_utils"."0.3.1"."serde_json"}" deps)
-    (features_.phf_codegen."${deps."target_build_utils"."0.3.1"."phf_codegen"}" deps)
-  ];
-
-
-# end
-# thread-id-2.0.0
-
-  crates.thread_id."2.0.0" = deps: { features?(features_.thread_id."2.0.0" deps {}) }: buildRustCrate {
-    crateName = "thread-id";
-    version = "2.0.0";
-    description = "Get a unique thread ID";
-    authors = [ "Ruud van Asseldonk <dev@veniogames.com>" ];
-    sha256 = "06i3c8ckn97i5rp16civ2vpqbknlkx66dkrl070iw60nawi0kjc3";
-    dependencies = mapFeatures features ([
-      (crates."kernel32_sys"."${deps."thread_id"."2.0.0"."kernel32_sys"}" deps)
-      (crates."libc"."${deps."thread_id"."2.0.0"."libc"}" deps)
-    ]);
-  };
-  features_.thread_id."2.0.0" = deps: f: updateFeatures f ({
-    kernel32_sys."${deps.thread_id."2.0.0".kernel32_sys}".default = true;
-    libc."${deps.thread_id."2.0.0".libc}".default = true;
-    thread_id."2.0.0".default = (f.thread_id."2.0.0".default or true);
-  }) [
-    (features_.kernel32_sys."${deps."thread_id"."2.0.0"."kernel32_sys"}" deps)
-    (features_.libc."${deps."thread_id"."2.0.0"."libc"}" deps)
-  ];
-
-
-# end
-# thread_local-0.2.7
-
-  crates.thread_local."0.2.7" = deps: { features?(features_.thread_local."0.2.7" deps {}) }: buildRustCrate {
-    crateName = "thread_local";
-    version = "0.2.7";
-    description = "Per-object thread-local storage";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "19p0zrs24rdwjvpi10jig5ms3sxj00pv8shkr9cpddri8cdghqp7";
-    dependencies = mapFeatures features ([
-      (crates."thread_id"."${deps."thread_local"."0.2.7"."thread_id"}" deps)
-    ]);
-  };
-  features_.thread_local."0.2.7" = deps: f: updateFeatures f ({
-    thread_id."${deps.thread_local."0.2.7".thread_id}".default = true;
-    thread_local."0.2.7".default = (f.thread_local."0.2.7".default or true);
-  }) [
-    (features_.thread_id."${deps."thread_local"."0.2.7"."thread_id"}" deps)
-  ];
-
-
-# end
-# token_store-0.1.2
-
-  crates.token_store."0.1.2" = deps: { features?(features_.token_store."0.1.2" deps {}) }: buildRustCrate {
-    crateName = "token_store";
-    version = "0.1.2";
-    description = "A token-based store for arbitrary values";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "1v7acraqyh6iibg87pwkxm41v783sminxm5k9f4ndra7r0vq4zvq";
-  };
-  features_.token_store."0.1.2" = deps: f: updateFeatures f ({
-    token_store."0.1.2".default = (f.token_store."0.1.2".default or true);
-  }) [];
-
-
-# end
-# unicode-width-0.1.5
-
-  crates.unicode_width."0.1.5" = deps: { features?(features_.unicode_width."0.1.5" deps {}) }: buildRustCrate {
-    crateName = "unicode-width";
-    version = "0.1.5";
-    description = "Determine displayed width of `char` and `str` types\naccording to Unicode Standard Annex #11 rules.\n";
-    authors = [ "kwantam <kwantam@gmail.com>" ];
-    sha256 = "0886lc2aymwgy0lhavwn6s48ik3c61ykzzd3za6prgnw51j7bi4w";
-    features = mkFeatures (features."unicode_width"."0.1.5" or {});
-  };
-  features_.unicode_width."0.1.5" = deps: f: updateFeatures f ({
-    unicode_width."0.1.5".default = (f.unicode_width."0.1.5".default or true);
-  }) [];
-
-
-# end
-# utf8-ranges-0.1.3
-
-  crates.utf8_ranges."0.1.3" = deps: { features?(features_.utf8_ranges."0.1.3" deps {}) }: buildRustCrate {
-    crateName = "utf8-ranges";
-    version = "0.1.3";
-    description = "Convert ranges of Unicode codepoints to UTF-8 byte ranges.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "1cj548a91a93j8375p78qikaiam548xh84cb0ck8y119adbmsvbp";
-  };
-  features_.utf8_ranges."0.1.3" = deps: f: updateFeatures f ({
-    utf8_ranges."0.1.3".default = (f.utf8_ranges."0.1.3".default or true);
-  }) [];
-
-
-# end
-# uuid-0.3.1
-
-  crates.uuid."0.3.1" = deps: { features?(features_.uuid."0.3.1" deps {}) }: buildRustCrate {
-    crateName = "uuid";
-    version = "0.3.1";
-    description = "A library to generate and parse UUIDs.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "16ak1c84dfkd8h33cvkxrkvc30k7b0bhrnza8ni2c0jsx85fpbip";
-    dependencies = mapFeatures features ([
-    ]
-      ++ (if features.uuid."0.3.1".rand or false then [ (crates.rand."${deps."uuid"."0.3.1".rand}" deps) ] else [])
-      ++ (if features.uuid."0.3.1".rustc-serialize or false then [ (crates.rustc_serialize."${deps."uuid"."0.3.1".rustc_serialize}" deps) ] else []));
-    features = mkFeatures (features."uuid"."0.3.1" or {});
-  };
-  features_.uuid."0.3.1" = deps: f: updateFeatures f (rec {
-    rand."${deps.uuid."0.3.1".rand}".default = true;
-    rustc_serialize."${deps.uuid."0.3.1".rustc_serialize}".default = true;
-    uuid = fold recursiveUpdate {} [
-      { "0.3.1"."rand" =
-        (f.uuid."0.3.1"."rand" or false) ||
-        (f.uuid."0.3.1".v4 or false) ||
-        (uuid."0.3.1"."v4" or false); }
-      { "0.3.1"."sha1" =
-        (f.uuid."0.3.1"."sha1" or false) ||
-        (f.uuid."0.3.1".v5 or false) ||
-        (uuid."0.3.1"."v5" or false); }
-      { "0.3.1".default = (f.uuid."0.3.1".default or true); }
-    ];
-  }) [
-    (features_.rand."${deps."uuid"."0.3.1"."rand"}" deps)
-    (features_.rustc_serialize."${deps."uuid"."0.3.1"."rustc_serialize"}" deps)
-  ];
-
-
-# end
-# void-1.0.2
-
-  crates.void."1.0.2" = deps: { features?(features_.void."1.0.2" deps {}) }: buildRustCrate {
-    crateName = "void";
-    version = "1.0.2";
-    description = "The uninhabited void type for use in statically impossible cases.";
-    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
-    sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3";
-    features = mkFeatures (features."void"."1.0.2" or {});
-  };
-  features_.void."1.0.2" = deps: f: updateFeatures f (rec {
-    void = fold recursiveUpdate {} [
-      { "1.0.2"."std" =
-        (f.void."1.0.2"."std" or false) ||
-        (f.void."1.0.2".default or false) ||
-        (void."1.0.2"."default" or false); }
-      { "1.0.2".default = (f.void."1.0.2".default or true); }
-    ];
-  }) [];
-
-
-# end
-# way-cooler-0.8.1
-
-  crates.way_cooler."0.8.1" = deps: { features?(features_.way_cooler."0.8.1" deps {}) }: buildRustCrate {
-    crateName = "way-cooler";
-    version = "0.8.1";
-    description = "Customizeable Wayland compositor written in Rust";
-    authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Timidger <apragmaticplace@gmail.com>" ];
-    sha256 = "01cp5z0qf522d7cvsr9gfp7f4hkphmp38hv70dsf9lvcnp6p1qkc";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."way_cooler"."0.8.1"."bitflags"}" deps)
-      (crates."cairo_rs"."${deps."way_cooler"."0.8.1"."cairo_rs"}" deps)
-      (crates."cairo_sys_rs"."${deps."way_cooler"."0.8.1"."cairo_sys_rs"}" deps)
-      (crates."dbus"."${deps."way_cooler"."0.8.1"."dbus"}" deps)
-      (crates."dbus_macros"."${deps."way_cooler"."0.8.1"."dbus_macros"}" deps)
-      (crates."env_logger"."${deps."way_cooler"."0.8.1"."env_logger"}" deps)
-      (crates."gdk_pixbuf"."${deps."way_cooler"."0.8.1"."gdk_pixbuf"}" deps)
-      (crates."getopts"."${deps."way_cooler"."0.8.1"."getopts"}" deps)
-      (crates."glib"."${deps."way_cooler"."0.8.1"."glib"}" deps)
-      (crates."json_macro"."${deps."way_cooler"."0.8.1"."json_macro"}" deps)
-      (crates."lazy_static"."${deps."way_cooler"."0.8.1"."lazy_static"}" deps)
-      (crates."log"."${deps."way_cooler"."0.8.1"."log"}" deps)
-      (crates."nix"."${deps."way_cooler"."0.8.1"."nix"}" deps)
-      (crates."petgraph"."${deps."way_cooler"."0.8.1"."petgraph"}" deps)
-      (crates."rlua"."${deps."way_cooler"."0.8.1"."rlua"}" deps)
-      (crates."rustc_serialize"."${deps."way_cooler"."0.8.1"."rustc_serialize"}" deps)
-      (crates."rustwlc"."${deps."way_cooler"."0.8.1"."rustwlc"}" deps)
-      (crates."uuid"."${deps."way_cooler"."0.8.1"."uuid"}" deps)
-      (crates."wayland_server"."${deps."way_cooler"."0.8.1"."wayland_server"}" deps)
-      (crates."wayland_sys"."${deps."way_cooler"."0.8.1"."wayland_sys"}" deps)
-      (crates."xcb"."${deps."way_cooler"."0.8.1"."xcb"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."wayland_scanner"."${deps."way_cooler"."0.8.1"."wayland_scanner"}" deps)
-    ]);
-    features = mkFeatures (features."way_cooler"."0.8.1" or {});
-  };
-  features_.way_cooler."0.8.1" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.way_cooler."0.8.1".bitflags}".default = true;
-    cairo_rs."${deps.way_cooler."0.8.1".cairo_rs}".default = true;
-    cairo_sys_rs."${deps.way_cooler."0.8.1".cairo_sys_rs}".default = true;
-    dbus."${deps.way_cooler."0.8.1".dbus}".default = true;
-    dbus_macros."${deps.way_cooler."0.8.1".dbus_macros}".default = true;
-    env_logger."${deps.way_cooler."0.8.1".env_logger}".default = true;
-    gdk_pixbuf."${deps.way_cooler."0.8.1".gdk_pixbuf}".default = true;
-    getopts."${deps.way_cooler."0.8.1".getopts}".default = true;
-    glib."${deps.way_cooler."0.8.1".glib}".default = true;
-    json_macro."${deps.way_cooler."0.8.1".json_macro}".default = true;
-    lazy_static."${deps.way_cooler."0.8.1".lazy_static}".default = true;
-    log."${deps.way_cooler."0.8.1".log}".default = true;
-    nix."${deps.way_cooler."0.8.1".nix}".default = true;
-    petgraph."${deps.way_cooler."0.8.1".petgraph}".default = true;
-    rlua = fold recursiveUpdate {} [
-      { "${deps.way_cooler."0.8.1".rlua}"."builtin-lua" =
-        (f.rlua."${deps.way_cooler."0.8.1".rlua}"."builtin-lua" or false) ||
-        (way_cooler."0.8.1"."builtin-lua" or false) ||
-        (f."way_cooler"."0.8.1"."builtin-lua" or false); }
-      { "${deps.way_cooler."0.8.1".rlua}".default = (f.rlua."${deps.way_cooler."0.8.1".rlua}".default or false); }
-    ];
-    rustc_serialize."${deps.way_cooler."0.8.1".rustc_serialize}".default = true;
-    rustwlc = fold recursiveUpdate {} [
-      { "${deps.way_cooler."0.8.1".rustwlc}"."static-wlc" =
-        (f.rustwlc."${deps.way_cooler."0.8.1".rustwlc}"."static-wlc" or false) ||
-        (way_cooler."0.8.1"."static-wlc" or false) ||
-        (f."way_cooler"."0.8.1"."static-wlc" or false); }
-      { "${deps.way_cooler."0.8.1".rustwlc}"."wlc-wayland" = true; }
-      { "${deps.way_cooler."0.8.1".rustwlc}".default = true; }
-    ];
-    uuid = fold recursiveUpdate {} [
-      { "${deps.way_cooler."0.8.1".uuid}"."rustc-serialize" = true; }
-      { "${deps.way_cooler."0.8.1".uuid}"."v4" = true; }
-      { "${deps.way_cooler."0.8.1".uuid}".default = true; }
-    ];
-    way_cooler."0.8.1".default = (f.way_cooler."0.8.1".default or true);
-    wayland_scanner."${deps.way_cooler."0.8.1".wayland_scanner}".default = true;
-    wayland_server."${deps.way_cooler."0.8.1".wayland_server}".default = true;
-    wayland_sys = fold recursiveUpdate {} [
-      { "${deps.way_cooler."0.8.1".wayland_sys}"."client" = true; }
-      { "${deps.way_cooler."0.8.1".wayland_sys}"."dlopen" = true; }
-      { "${deps.way_cooler."0.8.1".wayland_sys}".default = true; }
-    ];
-    xcb = fold recursiveUpdate {} [
-      { "${deps.way_cooler."0.8.1".xcb}"."xkb" = true; }
-      { "${deps.way_cooler."0.8.1".xcb}".default = true; }
-    ];
-  }) [
-    (features_.bitflags."${deps."way_cooler"."0.8.1"."bitflags"}" deps)
-    (features_.cairo_rs."${deps."way_cooler"."0.8.1"."cairo_rs"}" deps)
-    (features_.cairo_sys_rs."${deps."way_cooler"."0.8.1"."cairo_sys_rs"}" deps)
-    (features_.dbus."${deps."way_cooler"."0.8.1"."dbus"}" deps)
-    (features_.dbus_macros."${deps."way_cooler"."0.8.1"."dbus_macros"}" deps)
-    (features_.env_logger."${deps."way_cooler"."0.8.1"."env_logger"}" deps)
-    (features_.gdk_pixbuf."${deps."way_cooler"."0.8.1"."gdk_pixbuf"}" deps)
-    (features_.getopts."${deps."way_cooler"."0.8.1"."getopts"}" deps)
-    (features_.glib."${deps."way_cooler"."0.8.1"."glib"}" deps)
-    (features_.json_macro."${deps."way_cooler"."0.8.1"."json_macro"}" deps)
-    (features_.lazy_static."${deps."way_cooler"."0.8.1"."lazy_static"}" deps)
-    (features_.log."${deps."way_cooler"."0.8.1"."log"}" deps)
-    (features_.nix."${deps."way_cooler"."0.8.1"."nix"}" deps)
-    (features_.petgraph."${deps."way_cooler"."0.8.1"."petgraph"}" deps)
-    (features_.rlua."${deps."way_cooler"."0.8.1"."rlua"}" deps)
-    (features_.rustc_serialize."${deps."way_cooler"."0.8.1"."rustc_serialize"}" deps)
-    (features_.rustwlc."${deps."way_cooler"."0.8.1"."rustwlc"}" deps)
-    (features_.uuid."${deps."way_cooler"."0.8.1"."uuid"}" deps)
-    (features_.wayland_server."${deps."way_cooler"."0.8.1"."wayland_server"}" deps)
-    (features_.wayland_sys."${deps."way_cooler"."0.8.1"."wayland_sys"}" deps)
-    (features_.xcb."${deps."way_cooler"."0.8.1"."xcb"}" deps)
-    (features_.wayland_scanner."${deps."way_cooler"."0.8.1"."wayland_scanner"}" deps)
-  ];
-
-
-# end
-# wayland-scanner-0.12.5
-
-  crates.wayland_scanner."0.12.5" = deps: { features?(features_.wayland_scanner."0.12.5" deps {}) }: buildRustCrate {
-    crateName = "wayland-scanner";
-    version = "0.12.5";
-    description = "Wayland Scanner for generating rust APIs from XML wayland protocol files. Intented for use with wayland-sys. You should only need this crate if you are working on custom wayland protocol extensions. Look at the crate wayland-client for usable bindings.";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "1s0fsc3pff0fxvzqsy8n018smwacih9ix8ww0yf969aa0vak15dz";
-    dependencies = mapFeatures features ([
-      (crates."xml_rs"."${deps."wayland_scanner"."0.12.5"."xml_rs"}" deps)
-    ]);
-  };
-  features_.wayland_scanner."0.12.5" = deps: f: updateFeatures f ({
-    wayland_scanner."0.12.5".default = (f.wayland_scanner."0.12.5".default or true);
-    xml_rs."${deps.wayland_scanner."0.12.5".xml_rs}".default = true;
-  }) [
-    (features_.xml_rs."${deps."wayland_scanner"."0.12.5"."xml_rs"}" deps)
-  ];
-
-
-# end
-# wayland-server-0.12.5
-
-  crates.wayland_server."0.12.5" = deps: { features?(features_.wayland_server."0.12.5" deps {}) }: buildRustCrate {
-    crateName = "wayland-server";
-    version = "0.12.5";
-    description = "Bindings to the standard C implementation of the wayland protocol, server side.";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "17g0m9afcmi24ylirw4l8i70s5849x7m4b5nxk9k13s5pkza68ag";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."wayland_server"."0.12.5"."bitflags"}" deps)
-      (crates."libc"."${deps."wayland_server"."0.12.5"."libc"}" deps)
-      (crates."nix"."${deps."wayland_server"."0.12.5"."nix"}" deps)
-      (crates."token_store"."${deps."wayland_server"."0.12.5"."token_store"}" deps)
-      (crates."wayland_sys"."${deps."wayland_server"."0.12.5"."wayland_sys"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."wayland_scanner"."${deps."wayland_server"."0.12.5"."wayland_scanner"}" deps)
-    ]);
-    features = mkFeatures (features."wayland_server"."0.12.5" or {});
-  };
-  features_.wayland_server."0.12.5" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.wayland_server."0.12.5".bitflags}".default = true;
-    libc."${deps.wayland_server."0.12.5".libc}".default = true;
-    nix."${deps.wayland_server."0.12.5".nix}".default = true;
-    token_store."${deps.wayland_server."0.12.5".token_store}".default = true;
-    wayland_scanner."${deps.wayland_server."0.12.5".wayland_scanner}".default = true;
-    wayland_server."0.12.5".default = (f.wayland_server."0.12.5".default or true);
-    wayland_sys = fold recursiveUpdate {} [
-      { "${deps.wayland_server."0.12.5".wayland_sys}"."dlopen" =
-        (f.wayland_sys."${deps.wayland_server."0.12.5".wayland_sys}"."dlopen" or false) ||
-        (wayland_server."0.12.5"."dlopen" or false) ||
-        (f."wayland_server"."0.12.5"."dlopen" or false); }
-      { "${deps.wayland_server."0.12.5".wayland_sys}"."server" = true; }
-      { "${deps.wayland_server."0.12.5".wayland_sys}".default = true; }
-    ];
-  }) [
-    (features_.bitflags."${deps."wayland_server"."0.12.5"."bitflags"}" deps)
-    (features_.libc."${deps."wayland_server"."0.12.5"."libc"}" deps)
-    (features_.nix."${deps."wayland_server"."0.12.5"."nix"}" deps)
-    (features_.token_store."${deps."wayland_server"."0.12.5"."token_store"}" deps)
-    (features_.wayland_sys."${deps."wayland_server"."0.12.5"."wayland_sys"}" deps)
-    (features_.wayland_scanner."${deps."wayland_server"."0.12.5"."wayland_scanner"}" deps)
-  ];
-
-
-# end
-# wayland-sys-0.6.0
-
-  crates.wayland_sys."0.6.0" = deps: { features?(features_.wayland_sys."0.6.0" deps {}) }: buildRustCrate {
-    crateName = "wayland-sys";
-    version = "0.6.0";
-    description = "FFI bindings to the various libwayland-*.so libraries. You should only need this crate if you are working on custom wayland protocol extensions. Look at the crate wayland-client for usable bindings.";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "0m6db0kld2d4xv4ai9kxlqrh362hwi0030b4zbss0sfha1hx5mfl";
-    dependencies = mapFeatures features ([
-      (crates."dlib"."${deps."wayland_sys"."0.6.0"."dlib"}" deps)
-    ]
-      ++ (if features.wayland_sys."0.6.0".libc or false then [ (crates.libc."${deps."wayland_sys"."0.6.0".libc}" deps) ] else []));
-    features = mkFeatures (features."wayland_sys"."0.6.0" or {});
-  };
-  features_.wayland_sys."0.6.0" = deps: f: updateFeatures f (rec {
-    dlib = fold recursiveUpdate {} [
-      { "${deps.wayland_sys."0.6.0".dlib}"."dlopen" =
-        (f.dlib."${deps.wayland_sys."0.6.0".dlib}"."dlopen" or false) ||
-        (wayland_sys."0.6.0"."dlopen" or false) ||
-        (f."wayland_sys"."0.6.0"."dlopen" or false); }
-      { "${deps.wayland_sys."0.6.0".dlib}".default = true; }
-    ];
-    libc."${deps.wayland_sys."0.6.0".libc}".default = true;
-    wayland_sys = fold recursiveUpdate {} [
-      { "0.6.0"."lazy_static" =
-        (f.wayland_sys."0.6.0"."lazy_static" or false) ||
-        (f.wayland_sys."0.6.0".dlopen or false) ||
-        (wayland_sys."0.6.0"."dlopen" or false); }
-      { "0.6.0"."libc" =
-        (f.wayland_sys."0.6.0"."libc" or false) ||
-        (f.wayland_sys."0.6.0".server or false) ||
-        (wayland_sys."0.6.0"."server" or false); }
-      { "0.6.0".default = (f.wayland_sys."0.6.0".default or true); }
-    ];
-  }) [
-    (features_.dlib."${deps."wayland_sys"."0.6.0"."dlib"}" deps)
-    (features_.libc."${deps."wayland_sys"."0.6.0"."libc"}" deps)
-  ];
-
-
-# end
-# wayland-sys-0.9.10
-
-  crates.wayland_sys."0.9.10" = deps: { features?(features_.wayland_sys."0.9.10" deps {}) }: buildRustCrate {
-    crateName = "wayland-sys";
-    version = "0.9.10";
-    description = "FFI bindings to the various libwayland-*.so libraries. You should only need this crate if you are working on custom wayland protocol extensions. Look at the crate wayland-client for usable bindings.";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "011q7lfii222whvif39asvryl1sf3rc1fxp8qs8gh84kr4mna0k8";
-    dependencies = mapFeatures features ([
-      (crates."dlib"."${deps."wayland_sys"."0.9.10"."dlib"}" deps)
-    ]
-      ++ (if features.wayland_sys."0.9.10".lazy_static or false then [ (crates.lazy_static."${deps."wayland_sys"."0.9.10".lazy_static}" deps) ] else [])
-      ++ (if features.wayland_sys."0.9.10".libc or false then [ (crates.libc."${deps."wayland_sys"."0.9.10".libc}" deps) ] else []));
-    features = mkFeatures (features."wayland_sys"."0.9.10" or {});
-  };
-  features_.wayland_sys."0.9.10" = deps: f: updateFeatures f (rec {
-    dlib = fold recursiveUpdate {} [
-      { "${deps.wayland_sys."0.9.10".dlib}"."dlopen" =
-        (f.dlib."${deps.wayland_sys."0.9.10".dlib}"."dlopen" or false) ||
-        (wayland_sys."0.9.10"."dlopen" or false) ||
-        (f."wayland_sys"."0.9.10"."dlopen" or false); }
-      { "${deps.wayland_sys."0.9.10".dlib}".default = true; }
-    ];
-    lazy_static."${deps.wayland_sys."0.9.10".lazy_static}".default = true;
-    libc."${deps.wayland_sys."0.9.10".libc}".default = true;
-    wayland_sys = fold recursiveUpdate {} [
-      { "0.9.10"."lazy_static" =
-        (f.wayland_sys."0.9.10"."lazy_static" or false) ||
-        (f.wayland_sys."0.9.10".dlopen or false) ||
-        (wayland_sys."0.9.10"."dlopen" or false); }
-      { "0.9.10"."libc" =
-        (f.wayland_sys."0.9.10"."libc" or false) ||
-        (f.wayland_sys."0.9.10".server or false) ||
-        (wayland_sys."0.9.10"."server" or false); }
-      { "0.9.10".default = (f.wayland_sys."0.9.10".default or true); }
-    ];
-  }) [
-    (features_.dlib."${deps."wayland_sys"."0.9.10"."dlib"}" deps)
-    (features_.lazy_static."${deps."wayland_sys"."0.9.10"."lazy_static"}" deps)
-    (features_.libc."${deps."wayland_sys"."0.9.10"."libc"}" deps)
-  ];
-
-
-# end
-# wayland-sys-0.12.5
-
-  crates.wayland_sys."0.12.5" = deps: { features?(features_.wayland_sys."0.12.5" deps {}) }: buildRustCrate {
-    crateName = "wayland-sys";
-    version = "0.12.5";
-    description = "FFI bindings to the various libwayland-*.so libraries. You should only need this crate if you are working on custom wayland protocol extensions. Look at the crate wayland-client for usable bindings.";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "0mwk5vc7mibxka5w66vy2qj32b72d1srqvp36nr15xfl9lwf3dc4";
-    dependencies = mapFeatures features ([
-      (crates."dlib"."${deps."wayland_sys"."0.12.5"."dlib"}" deps)
-    ]
-      ++ (if features.wayland_sys."0.12.5".lazy_static or false then [ (crates.lazy_static."${deps."wayland_sys"."0.12.5".lazy_static}" deps) ] else [])
-      ++ (if features.wayland_sys."0.12.5".libc or false then [ (crates.libc."${deps."wayland_sys"."0.12.5".libc}" deps) ] else []));
-    features = mkFeatures (features."wayland_sys"."0.12.5" or {});
-  };
-  features_.wayland_sys."0.12.5" = deps: f: updateFeatures f (rec {
-    dlib = fold recursiveUpdate {} [
-      { "${deps.wayland_sys."0.12.5".dlib}"."dlopen" =
-        (f.dlib."${deps.wayland_sys."0.12.5".dlib}"."dlopen" or false) ||
-        (wayland_sys."0.12.5"."dlopen" or false) ||
-        (f."wayland_sys"."0.12.5"."dlopen" or false); }
-      { "${deps.wayland_sys."0.12.5".dlib}".default = true; }
-    ];
-    lazy_static."${deps.wayland_sys."0.12.5".lazy_static}".default = true;
-    libc."${deps.wayland_sys."0.12.5".libc}".default = true;
-    wayland_sys = fold recursiveUpdate {} [
-      { "0.12.5"."lazy_static" =
-        (f.wayland_sys."0.12.5"."lazy_static" or false) ||
-        (f.wayland_sys."0.12.5".dlopen or false) ||
-        (wayland_sys."0.12.5"."dlopen" or false); }
-      { "0.12.5"."libc" =
-        (f.wayland_sys."0.12.5"."libc" or false) ||
-        (f.wayland_sys."0.12.5".server or false) ||
-        (wayland_sys."0.12.5"."server" or false); }
-      { "0.12.5".default = (f.wayland_sys."0.12.5".default or true); }
-    ];
-  }) [
-    (features_.dlib."${deps."wayland_sys"."0.12.5"."dlib"}" deps)
-    (features_.lazy_static."${deps."wayland_sys"."0.12.5"."lazy_static"}" deps)
-    (features_.libc."${deps."wayland_sys"."0.12.5"."libc"}" deps)
-  ];
-
-
-# end
-# winapi-0.2.8
-
-  crates.winapi."0.2.8" = deps: { features?(features_.winapi."0.2.8" deps {}) }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.2.8";
-    description = "Types and constants for WinAPI bindings. See README for list of crates providing function bindings.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-  };
-  features_.winapi."0.2.8" = deps: f: updateFeatures f ({
-    winapi."0.2.8".default = (f.winapi."0.2.8".default or true);
-  }) [];
-
-
-# end
-# winapi-0.3.6
-
-  crates.winapi."0.3.6" = deps: { features?(features_.winapi."0.3.6" deps {}) }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.3.6";
-    description = "Raw FFI bindings for all of Windows API.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1d9jfp4cjd82sr1q4dgdlrkvm33zhhav9d7ihr0nivqbncr059m4";
-    build = "build.rs";
-    dependencies = (if kernel == "i686-pc-windows-gnu" then mapFeatures features ([
-      (crates."winapi_i686_pc_windows_gnu"."${deps."winapi"."0.3.6"."winapi_i686_pc_windows_gnu"}" deps)
-    ]) else [])
-      ++ (if kernel == "x86_64-pc-windows-gnu" then mapFeatures features ([
-      (crates."winapi_x86_64_pc_windows_gnu"."${deps."winapi"."0.3.6"."winapi_x86_64_pc_windows_gnu"}" deps)
-    ]) else []);
-    features = mkFeatures (features."winapi"."0.3.6" or {});
-  };
-  features_.winapi."0.3.6" = deps: f: updateFeatures f ({
-    winapi."0.3.6".default = (f.winapi."0.3.6".default or true);
-    winapi_i686_pc_windows_gnu."${deps.winapi."0.3.6".winapi_i686_pc_windows_gnu}".default = true;
-    winapi_x86_64_pc_windows_gnu."${deps.winapi."0.3.6".winapi_x86_64_pc_windows_gnu}".default = true;
-  }) [
-    (features_.winapi_i686_pc_windows_gnu."${deps."winapi"."0.3.6"."winapi_i686_pc_windows_gnu"}" deps)
-    (features_.winapi_x86_64_pc_windows_gnu."${deps."winapi"."0.3.6"."winapi_x86_64_pc_windows_gnu"}" deps)
-  ];
-
-
-# end
-# winapi-build-0.1.1
-
-  crates.winapi_build."0.1.1" = deps: { features?(features_.winapi_build."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "winapi-build";
-    version = "0.1.1";
-    description = "Common code for build.rs in WinAPI -sys crates.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-    libName = "build";
-  };
-  features_.winapi_build."0.1.1" = deps: f: updateFeatures f ({
-    winapi_build."0.1.1".default = (f.winapi_build."0.1.1".default or true);
-  }) [];
-
-
-# end
-# winapi-i686-pc-windows-gnu-0.4.0
-
-  crates.winapi_i686_pc_windows_gnu."0.4.0" = deps: { features?(features_.winapi_i686_pc_windows_gnu."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "winapi-i686-pc-windows-gnu";
-    version = "0.4.0";
-    description = "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "05ihkij18r4gamjpxj4gra24514can762imjzlmak5wlzidplzrp";
-    build = "build.rs";
-  };
-  features_.winapi_i686_pc_windows_gnu."0.4.0" = deps: f: updateFeatures f ({
-    winapi_i686_pc_windows_gnu."0.4.0".default = (f.winapi_i686_pc_windows_gnu."0.4.0".default or true);
-  }) [];
-
-
-# end
-# winapi-x86_64-pc-windows-gnu-0.4.0
-
-  crates.winapi_x86_64_pc_windows_gnu."0.4.0" = deps: { features?(features_.winapi_x86_64_pc_windows_gnu."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "winapi-x86_64-pc-windows-gnu";
-    version = "0.4.0";
-    description = "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0n1ylmlsb8yg1v583i4xy0qmqg42275flvbc51hdqjjfjcl9vlbj";
-    build = "build.rs";
-  };
-  features_.winapi_x86_64_pc_windows_gnu."0.4.0" = deps: f: updateFeatures f ({
-    winapi_x86_64_pc_windows_gnu."0.4.0".default = (f.winapi_x86_64_pc_windows_gnu."0.4.0".default or true);
-  }) [];
-
-
-# end
-# xcb-0.8.2
-
-  crates.xcb."0.8.2" = deps: { features?(features_.xcb."0.8.2" deps {}) }: buildRustCrate {
-    crateName = "xcb";
-    version = "0.8.2";
-    description = "Rust bindings and wrappers for XCB";
-    authors = [ "Remi Thebault <remi.thebault@gmail.com>" ];
-    sha256 = "06l8jms57wvz01vx82a3cwak9b9qwdkadvpmkk1zimy2qg7i7dkl";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."libc"."${deps."xcb"."0.8.2"."libc"}" deps)
-      (crates."log"."${deps."xcb"."0.8.2"."log"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."libc"."${deps."xcb"."0.8.2"."libc"}" deps)
-    ]);
-    features = mkFeatures (features."xcb"."0.8.2" or {});
-  };
-  features_.xcb."0.8.2" = deps: f: updateFeatures f (rec {
-    libc."${deps.xcb."0.8.2".libc}".default = true;
-    log."${deps.xcb."0.8.2".log}".default = true;
-    xcb = fold recursiveUpdate {} [
-      { "0.8.2"."composite" =
-        (f.xcb."0.8.2"."composite" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."damage" =
-        (f.xcb."0.8.2"."damage" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."dpms" =
-        (f.xcb."0.8.2"."dpms" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."dri2" =
-        (f.xcb."0.8.2"."dri2" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."dri3" =
-        (f.xcb."0.8.2"."dri3" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."glx" =
-        (f.xcb."0.8.2"."glx" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."randr" =
-        (f.xcb."0.8.2"."randr" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."record" =
-        (f.xcb."0.8.2"."record" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."render" =
-        (f.xcb."0.8.2"."render" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false) ||
-        (f.xcb."0.8.2".present or false) ||
-        (xcb."0.8.2"."present" or false) ||
-        (f.xcb."0.8.2".randr or false) ||
-        (xcb."0.8.2"."randr" or false) ||
-        (f.xcb."0.8.2".xfixes or false) ||
-        (xcb."0.8.2"."xfixes" or false); }
-      { "0.8.2"."res" =
-        (f.xcb."0.8.2"."res" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."screensaver" =
-        (f.xcb."0.8.2"."screensaver" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."shape" =
-        (f.xcb."0.8.2"."shape" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false) ||
-        (f.xcb."0.8.2".xfixes or false) ||
-        (xcb."0.8.2"."xfixes" or false); }
-      { "0.8.2"."shm" =
-        (f.xcb."0.8.2"."shm" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false) ||
-        (f.xcb."0.8.2".xv or false) ||
-        (xcb."0.8.2"."xv" or false); }
-      { "0.8.2"."sync" =
-        (f.xcb."0.8.2"."sync" or false) ||
-        (f.xcb."0.8.2".present or false) ||
-        (xcb."0.8.2"."present" or false); }
-      { "0.8.2"."thread" =
-        (f.xcb."0.8.2"."thread" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."xevie" =
-        (f.xcb."0.8.2"."xevie" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."xf86dri" =
-        (f.xcb."0.8.2"."xf86dri" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."xfixes" =
-        (f.xcb."0.8.2"."xfixes" or false) ||
-        (f.xcb."0.8.2".composite or false) ||
-        (xcb."0.8.2"."composite" or false) ||
-        (f.xcb."0.8.2".damage or false) ||
-        (xcb."0.8.2"."damage" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false) ||
-        (f.xcb."0.8.2".present or false) ||
-        (xcb."0.8.2"."present" or false) ||
-        (f.xcb."0.8.2".xinput or false) ||
-        (xcb."0.8.2"."xinput" or false); }
-      { "0.8.2"."xinerama" =
-        (f.xcb."0.8.2"."xinerama" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."xkb" =
-        (f.xcb."0.8.2"."xkb" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."xlib_xcb" =
-        (f.xcb."0.8.2"."xlib_xcb" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."xprint" =
-        (f.xcb."0.8.2"."xprint" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."xselinux" =
-        (f.xcb."0.8.2"."xselinux" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."xtest" =
-        (f.xcb."0.8.2"."xtest" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2"."xv" =
-        (f.xcb."0.8.2"."xv" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false) ||
-        (f.xcb."0.8.2".xvmc or false) ||
-        (xcb."0.8.2"."xvmc" or false); }
-      { "0.8.2"."xvmc" =
-        (f.xcb."0.8.2"."xvmc" or false) ||
-        (f.xcb."0.8.2".debug_all or false) ||
-        (xcb."0.8.2"."debug_all" or false); }
-      { "0.8.2".default = (f.xcb."0.8.2".default or true); }
-    ];
-  }) [
-    (features_.libc."${deps."xcb"."0.8.2"."libc"}" deps)
-    (features_.log."${deps."xcb"."0.8.2"."log"}" deps)
-    (features_.libc."${deps."xcb"."0.8.2"."libc"}" deps)
-  ];
-
-
-# end
-# xml-rs-0.7.0
-
-  crates.xml_rs."0.7.0" = deps: { features?(features_.xml_rs."0.7.0" deps {}) }: buildRustCrate {
-    crateName = "xml-rs";
-    version = "0.7.0";
-    description = "An XML library in pure Rust";
-    authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
-    sha256 = "12rynhqjgkg2hzy9x1d1232p9d9jm40bc3by5yzjv8gx089mflyb";
-    libPath = "src/lib.rs";
-    libName = "xml";
-    crateBin =
-      [{  name = "xml-analyze";  path = "src/analyze.rs"; }];
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."xml_rs"."0.7.0"."bitflags"}" deps)
-    ]);
-  };
-  features_.xml_rs."0.7.0" = deps: f: updateFeatures f ({
-    bitflags."${deps.xml_rs."0.7.0".bitflags}".default = true;
-    xml_rs."0.7.0".default = (f.xml_rs."0.7.0".default or true);
-  }) [
-    (features_.bitflags."${deps."xml_rs"."0.7.0"."bitflags"}" deps)
-  ];
-
-
-# end
-}
diff --git a/pkgs/applications/window-managers/way-cooler/default.nix b/pkgs/applications/window-managers/way-cooler/default.nix
deleted file mode 100644
index 7bc6ac70020..00000000000
--- a/pkgs/applications/window-managers/way-cooler/default.nix
+++ /dev/null
@@ -1,113 +0,0 @@
-{ stdenv, fetchurl, makeWrapper, symlinkJoin, writeShellScriptBin, callPackage, defaultCrateOverrides
-, wayland, cairo, libxkbcommon, pam, python3Packages, lemonbar, gdk-pixbuf
-}:
-
-let
-  wlc = callPackage ./wlc.nix {};
-
-  # refer to
-  # https://github.com/way-cooler/way-cooler.github.io/blob/master/way-cooler-release-i3-default.sh
-  # for version numbers
-  cratesIO = callPackage ./crates-io.nix {};
-
-  fakegit = writeShellScriptBin "git" ''
-    echo ""
-  '';
-  # https://nest.pijul.com/pmeunier/carnix/discussions/22
-  version = "0.8.1";
-  deps = (callPackage ./way-cooler.nix {}).deps;
-  way_cooler_ = f: cratesIO.crates.way_cooler.${version} deps {
-    features = cratesIO.features_.way_cooler.${version} deps {
-      way_cooler.${version} = f;
-    };
-  };
-  way-cooler = ((way_cooler_ { builtin-lua = true; }).override {
-    crateOverrides = defaultCrateOverrides // {
-
-    way-cooler = attrs: { buildInputs = [ wlc cairo libxkbcommon fakegit gdk-pixbuf wayland ]; };
-  };}).overrideAttrs (oldAttrs: {
-    postBuild = ''
-      mkdir -p $out/etc
-      cp -r config $out/etc/way-cooler
-    '';
-  });
-
-  wc-bg = ((callPackage ./wc-bg.nix {}).wc_bg {}).overrideAttrs (oldAttrs: {
-    nativeBuildInputs = [ makeWrapper ];
-
-    postFixup = ''
-      makeWrapper $out/bin/wc-bg $out/bin/wc-bg \
-        --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ wayland ]}"
-    '';
-  });
-
-  wc-grab = (callPackage ./wc-grab.nix {}).wc_grab {};
-
-  wc-lock = (((callPackage ./wc-lock.nix {}).wc_lock {}).override {
-    crateOverrides = defaultCrateOverrides // {
-
-    wc-lock = attrs: { buildInputs = [ pam ]; };
-  };}).overrideAttrs (oldAttrs: {
-    nativeBuildInputs = [ makeWrapper ];
-
-    postFixup = ''
-      makeWrapper $out/bin/wc-lock $out/bin/wc-lock \
-        --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libxkbcommon wayland ]}"
-    '';
-  });
-
-  # https://github.com/way-cooler/way-cooler/issues/446
-  wc-bar-bare = stdenv.mkDerivation {
-    name = "wc-bar-bare-2017-12-05";
-
-    src = fetchurl {
-      url = "https://github.com/way-cooler/way-cooler/files/1529701/bar.py.txt";
-      sha256 = "1n1rf1k02i6vimr9n0iksf65phhyy96i5wh5d0rrx7yqki3dh6ka";
-    };
-
-    unpackPhase = "cat $src > bar.py.txt";
-
-    # https://github.com/way-cooler/way-cooler/issues/446#issuecomment-350567833
-    patches = [ ./bar.diff ];
-
-    pythonPath = with python3Packages; [ pydbus ];
-    nativeBuildInputs = with python3Packages; [ python wrapPython ];
-
-    installPhase = ''
-      install -Dm755 bar.py.txt $out/bin/bar.py
-      patchShebangs $out/bin/bar.py
-      wrapPythonPrograms
-    '';
-  };
-  wc-bar = writeShellScriptBin "lemonbar" ''
-    SELECTED="#000000"
-    SELECTED_OTHER_WORKSPACE="#555555"
-    BACKGROUND="#4E2878"
-    # https://github.com/way-cooler/way-cooler/issues/446#issuecomment-349471439
-    sleep 5
-    ${wc-bar-bare}/bin/bar.py $SELECTED $BACKGROUND $SELECTED_OTHER_WORKSPACE 2> /tmp/bar_debug.txt | ${lemonbar}/bin/lemonbar -B $BACKGROUND -F "#FFF" -n "lemonbar" -p -d
-  '';
-in symlinkJoin {
-  inherit version;
-  name = "way-cooler-with-extensions-${version}";
-  paths = [ way-cooler wc-bg wc-grab wc-lock wc-bar ];
-
-  meta = with stdenv.lib; {
-    description = "Customizable Wayland compositor (window manager)";
-    longDescription = ''
-      Way Cooler is a customizable tiling window manager written in Rust
-      for Wayland and configurable using Lua. It is heavily inspired by
-      the tiling and extensibility of both i3 and awesome. While Lua is
-      used for the configuration, like awesome, extensions for Way Cooler
-      are implemented as totally separate client programs using D-Bus.
-      This means that you can use virtually any language to extend the
-      window manager, with much better guarantees about interoperability
-      between extensions.
-    '';
-    homepage = http://way-cooler.org/;
-    license = with licenses; [ mit ];
-    maintainers = [ maintainers.miltador ];
-    platforms = platforms.all;
-    broken = true;
-  };
-}
diff --git a/pkgs/applications/window-managers/way-cooler/way-cooler.nix b/pkgs/applications/window-managers/way-cooler/way-cooler.nix
deleted file mode 100644
index 28a327f1c13..00000000000
--- a/pkgs/applications/window-managers/way-cooler/way-cooler.nix
+++ /dev/null
@@ -1,314 +0,0 @@
-# Generated by carnix 0.9.2: carnix generate-nix
-{ lib, buildPlatform, buildRustCrate, buildRustCrateHelpers, cratesIO, fetchgit }:
-with buildRustCrateHelpers;
-let inherit (lib.lists) fold;
-    inherit (lib.attrsets) recursiveUpdate;
-in
-let crates = cratesIO; in
-rec {
-  way_cooler = crates.crates.way_cooler."0.8.1" deps;
-  __all = [ (way_cooler {}) ];
-  deps.aho_corasick."0.5.3" = {
-    memchr = "0.1.11";
-  };
-  deps.bitflags."0.4.0" = {};
-  deps.bitflags."0.6.0" = {};
-  deps.bitflags."0.7.0" = {};
-  deps.bitflags."0.9.1" = {};
-  deps.bitflags."1.0.4" = {};
-  deps.c_vec."1.2.1" = {};
-  deps.cairo_rs."0.2.0" = {
-    c_vec = "1.2.1";
-    cairo_sys_rs = "0.4.0";
-    glib = "0.3.1";
-    glib_sys = "0.4.0";
-    libc = "0.2.44";
-    winapi = "0.2.8";
-  };
-  deps.cairo_sys_rs."0.4.0" = {
-    libc = "0.2.44";
-    pkg_config = "0.3.14";
-    winapi = "0.2.8";
-  };
-  deps.cc."1.0.25" = {};
-  deps.cfg_if."0.1.6" = {};
-  deps.cloudabi."0.0.3" = {
-    bitflags = "1.0.4";
-  };
-  deps.dbus."0.4.1" = {
-    libc = "0.2.44";
-    pkg_config = "0.3.14";
-  };
-  deps.dbus_macros."0.0.6" = {
-    dbus = "0.4.1";
-  };
-  deps.dlib."0.3.1" = {
-    libloading = "0.3.4";
-  };
-  deps.dlib."0.4.1" = {
-    libloading = "0.5.0";
-  };
-  deps.dtoa."0.4.3" = {};
-  deps.dummy_rustwlc."0.7.1" = {
-    bitflags = "0.6.0";
-    libc = "0.2.44";
-    wayland_sys = "0.9.10";
-  };
-  deps.env_logger."0.3.5" = {
-    log = "0.3.9";
-    regex = "0.1.80";
-  };
-  deps.fixedbitset."0.1.9" = {};
-  deps.fuchsia_zircon."0.3.3" = {
-    bitflags = "1.0.4";
-    fuchsia_zircon_sys = "0.3.3";
-  };
-  deps.fuchsia_zircon_sys."0.3.3" = {};
-  deps.gcc."0.3.55" = {};
-  deps.gdk_pixbuf."0.2.0" = {
-    gdk_pixbuf_sys = "0.4.0";
-    glib = "0.3.1";
-    glib_sys = "0.4.0";
-    gobject_sys = "0.4.0";
-    libc = "0.2.44";
-  };
-  deps.gdk_pixbuf_sys."0.4.0" = {
-    bitflags = "0.9.1";
-    gio_sys = "0.4.0";
-    glib_sys = "0.4.0";
-    gobject_sys = "0.4.0";
-    libc = "0.2.44";
-    pkg_config = "0.3.14";
-  };
-  deps.getopts."0.2.18" = {
-    unicode_width = "0.1.5";
-  };
-  deps.gio_sys."0.4.0" = {
-    bitflags = "0.9.1";
-    glib_sys = "0.4.0";
-    gobject_sys = "0.4.0";
-    libc = "0.2.44";
-    pkg_config = "0.3.14";
-  };
-  deps.glib."0.3.1" = {
-    bitflags = "0.9.1";
-    glib_sys = "0.4.0";
-    gobject_sys = "0.4.0";
-    lazy_static = "0.2.11";
-    libc = "0.2.44";
-  };
-  deps.glib_sys."0.4.0" = {
-    bitflags = "0.9.1";
-    libc = "0.2.44";
-    pkg_config = "0.3.14";
-  };
-  deps.gobject_sys."0.4.0" = {
-    bitflags = "0.9.1";
-    glib_sys = "0.4.0";
-    libc = "0.2.44";
-    pkg_config = "0.3.14";
-  };
-  deps.itoa."0.3.4" = {};
-  deps.json_macro."0.1.1" = {
-    rustc_serialize = "0.3.24";
-  };
-  deps.kernel32_sys."0.2.2" = {
-    winapi = "0.2.8";
-    winapi_build = "0.1.1";
-  };
-  deps.lazy_static."0.2.11" = {};
-  deps.lazy_static."1.2.0" = {};
-  deps.libc."0.2.44" = {};
-  deps.libloading."0.3.4" = {
-    lazy_static = "0.2.11";
-    target_build_utils = "0.3.1";
-    kernel32_sys = "0.2.2";
-    winapi = "0.2.8";
-  };
-  deps.libloading."0.5.0" = {
-    cc = "1.0.25";
-    winapi = "0.3.6";
-  };
-  deps.log."0.3.9" = {
-    log = "0.4.6";
-  };
-  deps.log."0.4.6" = {
-    cfg_if = "0.1.6";
-  };
-  deps.memchr."0.1.11" = {
-    libc = "0.2.44";
-  };
-  deps.nix."0.6.0" = {
-    bitflags = "0.4.0";
-    cfg_if = "0.1.6";
-    libc = "0.2.44";
-    void = "1.0.2";
-    rustc_version = "0.1.7";
-    semver = "0.1.20";
-  };
-  deps.nix."0.9.0" = {
-    bitflags = "0.9.1";
-    cfg_if = "0.1.6";
-    libc = "0.2.44";
-    void = "1.0.2";
-  };
-  deps.num_traits."0.1.43" = {
-    num_traits = "0.2.6";
-  };
-  deps.num_traits."0.2.6" = {};
-  deps.ordermap."0.3.5" = {};
-  deps.petgraph."0.4.13" = {
-    fixedbitset = "0.1.9";
-    ordermap = "0.3.5";
-  };
-  deps.phf."0.7.23" = {
-    phf_shared = "0.7.23";
-  };
-  deps.phf_codegen."0.7.23" = {
-    phf_generator = "0.7.23";
-    phf_shared = "0.7.23";
-  };
-  deps.phf_generator."0.7.23" = {
-    phf_shared = "0.7.23";
-    rand = "0.5.5";
-  };
-  deps.phf_shared."0.7.23" = {
-    siphasher = "0.2.3";
-  };
-  deps.pkg_config."0.3.14" = {};
-  deps.rand."0.3.22" = {
-    libc = "0.2.44";
-    rand = "0.4.3";
-    fuchsia_zircon = "0.3.3";
-  };
-  deps.rand."0.4.3" = {
-    fuchsia_zircon = "0.3.3";
-    libc = "0.2.44";
-    winapi = "0.3.6";
-  };
-  deps.rand."0.5.5" = {
-    rand_core = "0.2.2";
-    cloudabi = "0.0.3";
-    fuchsia_zircon = "0.3.3";
-    libc = "0.2.44";
-    winapi = "0.3.6";
-  };
-  deps.rand_core."0.2.2" = {
-    rand_core = "0.3.0";
-  };
-  deps.rand_core."0.3.0" = {};
-  deps.regex."0.1.80" = {
-    aho_corasick = "0.5.3";
-    memchr = "0.1.11";
-    regex_syntax = "0.3.9";
-    thread_local = "0.2.7";
-    utf8_ranges = "0.1.3";
-  };
-  deps.regex_syntax."0.3.9" = {};
-  deps.rlua."0.9.7" = {
-    libc = "0.2.44";
-    gcc = "0.3.55";
-  };
-  deps.rustc_serialize."0.3.24" = {};
-  deps.rustc_version."0.1.7" = {
-    semver = "0.1.20";
-  };
-  deps.rustwlc."0.7.0" = {
-    bitflags = "0.7.0";
-    libc = "0.2.44";
-    wayland_sys = "0.6.0";
-  };
-  deps.semver."0.1.20" = {};
-  deps.serde."0.9.15" = {};
-  deps.serde_json."0.9.10" = {
-    dtoa = "0.4.3";
-    itoa = "0.3.4";
-    num_traits = "0.1.43";
-    serde = "0.9.15";
-  };
-  deps.siphasher."0.2.3" = {};
-  deps.target_build_utils."0.3.1" = {
-    phf = "0.7.23";
-    serde_json = "0.9.10";
-    phf_codegen = "0.7.23";
-  };
-  deps.thread_id."2.0.0" = {
-    kernel32_sys = "0.2.2";
-    libc = "0.2.44";
-  };
-  deps.thread_local."0.2.7" = {
-    thread_id = "2.0.0";
-  };
-  deps.token_store."0.1.2" = {};
-  deps.unicode_width."0.1.5" = {};
-  deps.utf8_ranges."0.1.3" = {};
-  deps.uuid."0.3.1" = {
-    rand = "0.3.22";
-    rustc_serialize = "0.3.24";
-  };
-  deps.void."1.0.2" = {};
-  deps.way_cooler."0.8.1" = {
-    bitflags = "0.7.0";
-    cairo_rs = "0.2.0";
-    cairo_sys_rs = "0.4.0";
-    dbus = "0.4.1";
-    dbus_macros = "0.0.6";
-    env_logger = "0.3.5";
-    gdk_pixbuf = "0.2.0";
-    getopts = "0.2.18";
-    glib = "0.3.1";
-    json_macro = "0.1.1";
-    lazy_static = "0.2.11";
-    log = "0.3.9";
-    nix = "0.6.0";
-    petgraph = "0.4.13";
-    rlua = "0.9.7";
-    rustc_serialize = "0.3.24";
-    rustwlc = "0.7.0";
-    uuid = "0.3.1";
-    wayland_server = "0.12.5";
-    wayland_sys = "0.12.5";
-    xcb = "0.8.2";
-    wayland_scanner = "0.12.5";
-  };
-  deps.wayland_scanner."0.12.5" = {
-    xml_rs = "0.7.0";
-  };
-  deps.wayland_server."0.12.5" = {
-    bitflags = "1.0.4";
-    libc = "0.2.44";
-    nix = "0.9.0";
-    token_store = "0.1.2";
-    wayland_sys = "0.12.5";
-    wayland_scanner = "0.12.5";
-  };
-  deps.wayland_sys."0.6.0" = {
-    dlib = "0.3.1";
-    libc = "0.2.44";
-  };
-  deps.wayland_sys."0.9.10" = {
-    dlib = "0.3.1";
-    lazy_static = "0.2.11";
-    libc = "0.2.44";
-  };
-  deps.wayland_sys."0.12.5" = {
-    dlib = "0.4.1";
-    lazy_static = "1.2.0";
-    libc = "0.2.44";
-  };
-  deps.winapi."0.2.8" = {};
-  deps.winapi."0.3.6" = {
-    winapi_i686_pc_windows_gnu = "0.4.0";
-    winapi_x86_64_pc_windows_gnu = "0.4.0";
-  };
-  deps.winapi_build."0.1.1" = {};
-  deps.winapi_i686_pc_windows_gnu."0.4.0" = {};
-  deps.winapi_x86_64_pc_windows_gnu."0.4.0" = {};
-  deps.xcb."0.8.2" = {
-    libc = "0.2.44";
-    log = "0.4.6";
-  };
-  deps.xml_rs."0.7.0" = {
-    bitflags = "1.0.4";
-  };
-}
diff --git a/pkgs/applications/window-managers/way-cooler/wc-bg.nix b/pkgs/applications/window-managers/way-cooler/wc-bg.nix
deleted file mode 100644
index a797e7aacde..00000000000
--- a/pkgs/applications/window-managers/way-cooler/wc-bg.nix
+++ /dev/null
@@ -1,1372 +0,0 @@
-# Generated by carnix 0.6.5: carnix -o wc-bg.nix Cargo.lock
-{ lib, stdenv, buildRustCrate, fetchgit }:
-let kernel = stdenv.buildPlatform.parsed.kernel.name;
-    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
-    mapFeatures = features: map (fun: fun { features = features; });
-    mkFeatures = feat: lib.lists.foldl (features: featureName:
-      if feat.${featureName} or false then
-        [ featureName ] ++ features
-      else
-        features
-    ) [] (builtins.attrNames feat);
-in
-rec {
-  wc_bg = f: wc_bg_0_3_0 { features = wc_bg_0_3_0_features { wc_bg_0_3_0 = f; }; };
-  ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "ansi_term";
-    version = "0.9.0";
-    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
-    sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
-    inherit dependencies buildDependencies features;
-  };
-  atty_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "atty";
-    version = "0.2.3";
-    authors = [ "softprops <d.tangren@gmail.com>" ];
-    sha256 = "0zl0cjfgarp5y78nd755lpki5bbkj4hgmi88v265m543yg29i88f";
-    inherit dependencies buildDependencies features;
-  };
-  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "bitflags";
-    version = "0.7.0";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
-    inherit dependencies buildDependencies features;
-  };
-  bitflags_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "bitflags";
-    version = "0.9.1";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "18h073l5jd88rx4qdr95fjddr9rk79pb1aqnshzdnw16cfmb9rws";
-    inherit dependencies buildDependencies features;
-  };
-  byteorder_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "byteorder";
-    version = "0.5.3";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "0zsr6b0m0yl5c0yy92nq7srfpczd1dx1xqcx3rlm5fbl8si9clqx";
-    inherit dependencies buildDependencies features;
-  };
-  byteorder_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "byteorder";
-    version = "1.1.0";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "1i2n0161jm00zvzh4bncgv9zrwa6ydbxdn5j4bx0wwn7rvi9zycp";
-    inherit dependencies buildDependencies features;
-  };
-  cc_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "cc";
-    version = "1.0.0";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1s5ha0k6cdy1049a5kpzvhnjc9hjvi18zrcr5dmbqpd03ag751g1";
-    inherit dependencies buildDependencies features;
-  };
-  clap_2_26_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "clap";
-    version = "2.26.2";
-    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
-    sha256 = "0njvc0b7m11yym25jrr8h47nb3k3lpzzafjf22y33c5p4rw7fn2d";
-    inherit dependencies buildDependencies features;
-  };
-  coco_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "coco";
-    version = "0.1.1";
-    authors = [ "Stjepan Glavina <stjepang@gmail.com>" ];
-    sha256 = "0hvj4jaj9y6i38c4dkii8nqq98cgx3kyx78cjqkdvk0aqq5sfr94";
-    inherit dependencies buildDependencies features;
-  };
-  color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "color_quant";
-    version = "1.0.0";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
-    inherit dependencies buildDependencies features;
-  };
-  dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "dlib";
-    version = "0.3.1";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
-    inherit dependencies buildDependencies features;
-  };
-  dtoa_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "dtoa";
-    version = "0.4.2";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1bxsh6fags7nr36vlz07ik2a1rzyipc8x1y30kjk832hf2pzadmw";
-    inherit dependencies buildDependencies features;
-  };
-  either_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "either";
-    version = "1.2.0";
-    authors = [ "bluss" ];
-    sha256 = "0l72xaf1kwzgbl3andf3d2ggz7km9059rbmp90iywww8inlnqppp";
-    inherit dependencies buildDependencies features;
-  };
-  enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "enum_primitive";
-    version = "0.1.1";
-    authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
-    sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
-    inherit dependencies buildDependencies features;
-  };
-  flate2_0_2_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "flate2";
-    version = "0.2.20";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1am0d2vmqym1vcg7rvv516vpcrbhdn1jisy0q03r3nbzdzh54ppl";
-    inherit dependencies buildDependencies features;
-  };
-  fuchsia_zircon_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "fuchsia-zircon";
-    version = "0.2.1";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "0yd4rd7ql1vdr349p6vgq2dnwmpylky1kjp8g1zgvp250jxrhddb";
-    inherit dependencies buildDependencies features;
-  };
-  fuchsia_zircon_sys_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "fuchsia-zircon-sys";
-    version = "0.2.0";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "1yrqsrjwlhl3di6prxf5xmyd82gyjaysldbka5wwk83z11mpqh4w";
-    inherit dependencies buildDependencies features;
-  };
-  futures_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "futures";
-    version = "0.1.16";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0ndk8cl6l600a95q8il2c3y38jz50nhfsczps0nziadqdd45gy2b";
-    inherit dependencies buildDependencies features;
-  };
-  gif_0_9_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "gif";
-    version = "0.9.2";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "0dl76jrn6127w3bdg2b58p5psf8fpnbzdxdkw1i35ac8dn4vxcqa";
-    inherit dependencies buildDependencies features;
-  };
-  glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "glob";
-    version = "0.2.11";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
-    inherit dependencies buildDependencies features;
-  };
-  image_0_10_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "image";
-    version = "0.10.4";
-    authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
-    sha256 = "1pwrs7k5760b38i1lg872x9q2zc6xvhs7mjhlzvjnr5p85zx2fbw";
-    libPath = "./src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "inflate";
-    version = "0.1.1";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
-    inherit dependencies buildDependencies features;
-  };
-  itoa_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "itoa";
-    version = "0.3.4";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1nfkzz6vrgj0d9l3yzjkkkqzdgs68y294fjdbl7jq118qi8xc9d9";
-    inherit dependencies buildDependencies features;
-  };
-  jpeg_decoder_0_1_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "jpeg-decoder";
-    version = "0.1.13";
-    authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
-    sha256 = "0w16gbywlm9p0p3wx34b85q4d1izrx89afcsxlc6g11cx2js4fa2";
-    inherit dependencies buildDependencies features;
-  };
-  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "kernel32-sys";
-    version = "0.2.2";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-    libName = "kernel32";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  lazy_static_0_2_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "lazy_static";
-    version = "0.2.9";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "08ldzr5292y3hvi6l6v8l4i6v95lm1aysmnfln65h10sqrfh6iw7";
-    inherit dependencies buildDependencies features;
-  };
-  libc_0_2_32_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "libc";
-    version = "0.2.32";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1i8njlar6v9qvmkyfvwzhxrvkqw6ijp8fqdnya5csqixxz18a532";
-    inherit dependencies buildDependencies features;
-  };
-  libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "libloading";
-    version = "0.3.4";
-    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
-    sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "lzw";
-    version = "0.10.0";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
-    inherit dependencies buildDependencies features;
-  };
-  miniz_sys_0_1_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "miniz-sys";
-    version = "0.1.10";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "11vg6phafxil87nbxgrlhcx5hjr3145wsbwwkfmibvnmzxfdmvln";
-    libPath = "lib.rs";
-    libName = "miniz_sys";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  num_bigint_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-bigint";
-    version = "0.1.40";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0pkxd9mb4chdbipprxjc8ll7kjh79n278s2z663zmd80yg5xi788";
-    inherit dependencies buildDependencies features;
-  };
-  num_integer_0_1_35_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-integer";
-    version = "0.1.35";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0xybj8isi9b6wc646d5rc043i8l8j6wy0vrl4pn995qms9fxbbcc";
-    inherit dependencies buildDependencies features;
-  };
-  num_iter_0_1_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-iter";
-    version = "0.1.34";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "02cld7x9dzbqbs6sxxzq1i22z3awlcd6ljkgvhkfr9rsnaxphzl9";
-    inherit dependencies buildDependencies features;
-  };
-  num_rational_0_1_39_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-rational";
-    version = "0.1.39";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1qsacdfp97zgpajc2pgbrbga3yag1f0k7yz0gi78vd165gxdwk3m";
-    inherit dependencies buildDependencies features;
-  };
-  num_traits_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-traits";
-    version = "0.1.40";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1fr8ghp4i97q3agki54i0hpmqxv3s65i2mqd1pinc7w7arc3fplw";
-    inherit dependencies buildDependencies features;
-  };
-  num_cpus_1_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num_cpus";
-    version = "1.7.0";
-    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
-    sha256 = "0231xmd65ma3pqfiw8pkv9dvm9x708z4xlrwp3i0sgiwv408dz3f";
-    inherit dependencies buildDependencies features;
-  };
-  phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "phf";
-    version = "0.7.21";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
-    libPath = "src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "phf_codegen";
-    version = "0.7.21";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
-    inherit dependencies buildDependencies features;
-  };
-  phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "phf_generator";
-    version = "0.7.21";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
-    inherit dependencies buildDependencies features;
-  };
-  phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "phf_shared";
-    version = "0.7.21";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
-    libPath = "src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  png_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "png";
-    version = "0.5.2";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "1pgann3f1ysgf8y1acw86v4s3ji1xk85ri353biyvh4i1cpn1g3q";
-    inherit dependencies buildDependencies features;
-  };
-  rand_0_3_17_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rand";
-    version = "0.3.17";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "06ra3pr36dlyq3kp5lbia8xnw5g0zsys2d69frr7y6df5hhb1r8j";
-    inherit dependencies buildDependencies features;
-  };
-  rayon_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rayon";
-    version = "0.8.2";
-    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
-    sha256 = "0d0mddg1k75hb9138pn8lysy2095jijrinskqbpgfr73s0jx6dq8";
-    inherit dependencies buildDependencies features;
-  };
-  rayon_core_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rayon-core";
-    version = "1.2.1";
-    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
-    sha256 = "12xv2r0dqrgvla24bl5mfvcw0599dlhrj0mx620nq95nyds753kk";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  redox_syscall_0_1_31_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "redox_syscall";
-    version = "0.1.31";
-    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
-    sha256 = "0kipd9qslzin4fgj4jrxv6yz5l3l71gnbd7fq1jhk2j7f2sq33j4";
-    libName = "syscall";
-    inherit dependencies buildDependencies features;
-  };
-  redox_termios_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "redox_termios";
-    version = "0.1.1";
-    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
-    sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
-    libPath = "src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  rustc_serialize_0_3_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rustc-serialize";
-    version = "0.3.24";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
-    inherit dependencies buildDependencies features;
-  };
-  scoped_threadpool_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "scoped_threadpool";
-    version = "0.1.8";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "1al42hqbbijpah9bc6hw9c49nhnyrc0sj274ja1q3k9305c3s5a6";
-    inherit dependencies buildDependencies features;
-  };
-  scopeguard_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "scopeguard";
-    version = "0.3.2";
-    authors = [ "bluss" ];
-    sha256 = "0xlvfawva4fnp6kwr5xjwf0q2d1w6di81nhfby1sa55xj1ia5zs2";
-    inherit dependencies buildDependencies features;
-  };
-  serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde";
-    version = "0.9.15";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-    sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
-    inherit dependencies buildDependencies features;
-  };
-  serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde_json";
-    version = "0.9.10";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-    sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
-    inherit dependencies buildDependencies features;
-  };
-  siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "siphasher";
-    version = "0.2.2";
-    authors = [ "Frank Denis <github@pureftpd.org>" ];
-    sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
-    inherit dependencies buildDependencies features;
-  };
-  strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "strsim";
-    version = "0.6.0";
-    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
-    sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
-    inherit dependencies buildDependencies features;
-  };
-  target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "target_build_utils";
-    version = "0.3.1";
-    authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
-    sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  tempfile_2_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tempfile";
-    version = "2.2.0";
-    authors = [ "Steven Allen <steven@stebalien.com>" ];
-    sha256 = "1z3l901ipvi0s0mdppw4lwfa77ydb22rfnf6y9sh0pifj7ah5drf";
-    inherit dependencies buildDependencies features;
-  };
-  term_size_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "term_size";
-    version = "0.3.0";
-    authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
-    sha256 = "054d5avad49sy5nfaaaphai4kv4rmdh6q0npchnvdhpxp02lcfhs";
-    inherit dependencies buildDependencies features;
-  };
-  termion_1_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "termion";
-    version = "1.5.1";
-    authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
-    sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
-    inherit dependencies buildDependencies features;
-  };
-  textwrap_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "textwrap";
-    version = "0.8.0";
-    authors = [ "Martin Geisler <martin@geisler.net>" ];
-    sha256 = "02j8apii1032cvp9fwrxw4pf11xb287j2n1iv1iixp8yh6vzrq41";
-    inherit dependencies buildDependencies features;
-  };
-  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unicode-width";
-    version = "0.1.4";
-    authors = [ "kwantam <kwantam@gmail.com>" ];
-    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
-    inherit dependencies buildDependencies features;
-  };
-  vec_map_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "vec_map";
-    version = "0.8.0";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
-    sha256 = "07sgxp3cf1a4cxm9n3r27fcvqmld32bl2576mrcahnvm34j11xay";
-    inherit dependencies buildDependencies features;
-  };
-  way_cooler_client_helpers_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "way-cooler-client-helpers";
-    version = "0.1.0";
-    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
-    sha256 = "0749lh5crd0rhq4dxij9mb3y5902laazjd01l6ci5782bjfk4s39";
-    inherit dependencies buildDependencies features;
-  };
-  wayland_client_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wayland-client";
-    version = "0.9.10";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "1cs7zwvqahiysnfqfask96zpfr2bp47dlwwwd9ap8ccvcjbspj67";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  wayland_scanner_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wayland-scanner";
-    version = "0.9.10";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "0vhnj3vfnrknvdmy72pjh7dck5q5sz1v8kfr0qqzkqf0ylavvyb2";
-    inherit dependencies buildDependencies features;
-  };
-  wayland_sys_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wayland-sys";
-    version = "0.9.10";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "011q7lfii222whvif39asvryl1sf3rc1fxp8qs8gh84kr4mna0k8";
-    inherit dependencies buildDependencies features;
-  };
-  wc_bg_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wc-bg";
-    version = "0.3.0";
-    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
-    sha256 = "1jywymr80k96481vr6nyyqhlf2gj2n2zgvkwkny2m84v9n3pqn62";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.2.8";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi-build";
-    version = "0.1.1";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-    libName = "build";
-    inherit dependencies buildDependencies features;
-  };
-  xml_rs_0_6_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "xml-rs";
-    version = "0.6.1";
-    authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
-    sha256 = "0adjwgmn061p60n81s52a9p26y2jdc20wvinsyw2nzmby5wvnbwk";
-    libPath = "src/lib.rs";
-    libName = "xml";
-    crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
-    inherit dependencies buildDependencies features;
-  };
-  ansi_term_0_9_0 = { features?(ansi_term_0_9_0_features {}) }: ansi_term_0_9_0_ {};
-  ansi_term_0_9_0_features = f: updateFeatures f ({
-    ansi_term_0_9_0.default = (f.ansi_term_0_9_0.default or true);
-  }) [];
-  atty_0_2_3 = { features?(atty_0_2_3_features {}) }: atty_0_2_3_ {
-    dependencies = (if kernel == "redox" then mapFeatures features ([ termion_1_5_1 ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_32 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
-  };
-  atty_0_2_3_features = f: updateFeatures f ({
-    atty_0_2_3.default = (f.atty_0_2_3.default or true);
-    kernel32_sys_0_2_2.default = true;
-    libc_0_2_32.default = (f.libc_0_2_32.default or false);
-    termion_1_5_1.default = true;
-    winapi_0_2_8.default = true;
-  }) [ termion_1_5_1_features libc_0_2_32_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
-  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
-  bitflags_0_7_0_features = f: updateFeatures f ({
-    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
-  }) [];
-  bitflags_0_9_1 = { features?(bitflags_0_9_1_features {}) }: bitflags_0_9_1_ {
-    features = mkFeatures (features.bitflags_0_9_1 or {});
-  };
-  bitflags_0_9_1_features = f: updateFeatures f (rec {
-    bitflags_0_9_1.default = (f.bitflags_0_9_1.default or true);
-    bitflags_0_9_1.example_generated =
-      (f.bitflags_0_9_1.example_generated or false) ||
-      (f.bitflags_0_9_1.default or false) ||
-      (bitflags_0_9_1.default or false);
-  }) [];
-  byteorder_0_5_3 = { features?(byteorder_0_5_3_features {}) }: byteorder_0_5_3_ {
-    features = mkFeatures (features.byteorder_0_5_3 or {});
-  };
-  byteorder_0_5_3_features = f: updateFeatures f (rec {
-    byteorder_0_5_3.default = (f.byteorder_0_5_3.default or true);
-    byteorder_0_5_3.std =
-      (f.byteorder_0_5_3.std or false) ||
-      (f.byteorder_0_5_3.default or false) ||
-      (byteorder_0_5_3.default or false);
-  }) [];
-  byteorder_1_1_0 = { features?(byteorder_1_1_0_features {}) }: byteorder_1_1_0_ {
-    features = mkFeatures (features.byteorder_1_1_0 or {});
-  };
-  byteorder_1_1_0_features = f: updateFeatures f (rec {
-    byteorder_1_1_0.default = (f.byteorder_1_1_0.default or true);
-    byteorder_1_1_0.std =
-      (f.byteorder_1_1_0.std or false) ||
-      (f.byteorder_1_1_0.default or false) ||
-      (byteorder_1_1_0.default or false);
-  }) [];
-  cc_1_0_0 = { features?(cc_1_0_0_features {}) }: cc_1_0_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.cc_1_0_0 or {});
-  };
-  cc_1_0_0_features = f: updateFeatures f (rec {
-    cc_1_0_0.default = (f.cc_1_0_0.default or true);
-    cc_1_0_0.rayon =
-      (f.cc_1_0_0.rayon or false) ||
-      (f.cc_1_0_0.parallel or false) ||
-      (cc_1_0_0.parallel or false);
-  }) [];
-  clap_2_26_2 = { features?(clap_2_26_2_features {}) }: clap_2_26_2_ {
-    dependencies = mapFeatures features ([ bitflags_0_9_1 textwrap_0_8_0 unicode_width_0_1_4 vec_map_0_8_0 ]
-      ++ (if features.clap_2_26_2.ansi_term or false then [ ansi_term_0_9_0 ] else [])
-      ++ (if features.clap_2_26_2.atty or false then [ atty_0_2_3 ] else [])
-      ++ (if features.clap_2_26_2.strsim or false then [ strsim_0_6_0 ] else [])
-      ++ (if features.clap_2_26_2.term_size or false then [ term_size_0_3_0 ] else []));
-    features = mkFeatures (features.clap_2_26_2 or {});
-  };
-  clap_2_26_2_features = f: updateFeatures f (rec {
-    ansi_term_0_9_0.default = true;
-    atty_0_2_3.default = true;
-    bitflags_0_9_1.default = true;
-    clap_2_26_2.ansi_term =
-      (f.clap_2_26_2.ansi_term or false) ||
-      (f.clap_2_26_2.color or false) ||
-      (clap_2_26_2.color or false);
-    clap_2_26_2.atty =
-      (f.clap_2_26_2.atty or false) ||
-      (f.clap_2_26_2.color or false) ||
-      (clap_2_26_2.color or false);
-    clap_2_26_2.clippy =
-      (f.clap_2_26_2.clippy or false) ||
-      (f.clap_2_26_2.lints or false) ||
-      (clap_2_26_2.lints or false);
-    clap_2_26_2.color =
-      (f.clap_2_26_2.color or false) ||
-      (f.clap_2_26_2.default or false) ||
-      (clap_2_26_2.default or false);
-    clap_2_26_2.default = (f.clap_2_26_2.default or true);
-    clap_2_26_2.strsim =
-      (f.clap_2_26_2.strsim or false) ||
-      (f.clap_2_26_2.suggestions or false) ||
-      (clap_2_26_2.suggestions or false);
-    clap_2_26_2.suggestions =
-      (f.clap_2_26_2.suggestions or false) ||
-      (f.clap_2_26_2.default or false) ||
-      (clap_2_26_2.default or false);
-    clap_2_26_2.term_size =
-      (f.clap_2_26_2.term_size or false) ||
-      (f.clap_2_26_2.wrap_help or false) ||
-      (clap_2_26_2.wrap_help or false);
-    clap_2_26_2.wrap_help =
-      (f.clap_2_26_2.wrap_help or false) ||
-      (f.clap_2_26_2.default or false) ||
-      (clap_2_26_2.default or false);
-    clap_2_26_2.yaml =
-      (f.clap_2_26_2.yaml or false) ||
-      (f.clap_2_26_2.doc or false) ||
-      (clap_2_26_2.doc or false);
-    clap_2_26_2.yaml-rust =
-      (f.clap_2_26_2.yaml-rust or false) ||
-      (f.clap_2_26_2.yaml or false) ||
-      (clap_2_26_2.yaml or false);
-    strsim_0_6_0.default = true;
-    term_size_0_3_0.default = true;
-    textwrap_0_8_0.default = true;
-    unicode_width_0_1_4.default = true;
-    vec_map_0_8_0.default = true;
-  }) [ ansi_term_0_9_0_features atty_0_2_3_features bitflags_0_9_1_features strsim_0_6_0_features term_size_0_3_0_features textwrap_0_8_0_features unicode_width_0_1_4_features vec_map_0_8_0_features ];
-  coco_0_1_1 = { features?(coco_0_1_1_features {}) }: coco_0_1_1_ {
-    dependencies = mapFeatures features ([ either_1_2_0 scopeguard_0_3_2 ]);
-    features = mkFeatures (features.coco_0_1_1 or {});
-  };
-  coco_0_1_1_features = f: updateFeatures f ({
-    coco_0_1_1.default = (f.coco_0_1_1.default or true);
-    either_1_2_0.default = true;
-    scopeguard_0_3_2.default = true;
-  }) [ either_1_2_0_features scopeguard_0_3_2_features ];
-  color_quant_1_0_0 = { features?(color_quant_1_0_0_features {}) }: color_quant_1_0_0_ {};
-  color_quant_1_0_0_features = f: updateFeatures f ({
-    color_quant_1_0_0.default = (f.color_quant_1_0_0.default or true);
-  }) [];
-  dlib_0_3_1 = { features?(dlib_0_3_1_features {}) }: dlib_0_3_1_ {
-    dependencies = mapFeatures features ([ libloading_0_3_4 ]);
-    features = mkFeatures (features.dlib_0_3_1 or {});
-  };
-  dlib_0_3_1_features = f: updateFeatures f ({
-    dlib_0_3_1.default = (f.dlib_0_3_1.default or true);
-    libloading_0_3_4.default = true;
-  }) [ libloading_0_3_4_features ];
-  dtoa_0_4_2 = { features?(dtoa_0_4_2_features {}) }: dtoa_0_4_2_ {};
-  dtoa_0_4_2_features = f: updateFeatures f ({
-    dtoa_0_4_2.default = (f.dtoa_0_4_2.default or true);
-  }) [];
-  either_1_2_0 = { features?(either_1_2_0_features {}) }: either_1_2_0_ {
-    features = mkFeatures (features.either_1_2_0 or {});
-  };
-  either_1_2_0_features = f: updateFeatures f (rec {
-    either_1_2_0.default = (f.either_1_2_0.default or true);
-    either_1_2_0.use_std =
-      (f.either_1_2_0.use_std or false) ||
-      (f.either_1_2_0.default or false) ||
-      (either_1_2_0.default or false);
-  }) [];
-  enum_primitive_0_1_1 = { features?(enum_primitive_0_1_1_features {}) }: enum_primitive_0_1_1_ {
-    dependencies = mapFeatures features ([ num_traits_0_1_40 ]);
-  };
-  enum_primitive_0_1_1_features = f: updateFeatures f ({
-    enum_primitive_0_1_1.default = (f.enum_primitive_0_1_1.default or true);
-    num_traits_0_1_40.default = (f.num_traits_0_1_40.default or false);
-  }) [ num_traits_0_1_40_features ];
-  flate2_0_2_20 = { features?(flate2_0_2_20_features {}) }: flate2_0_2_20_ {
-    dependencies = mapFeatures features ([ libc_0_2_32 ]
-      ++ (if features.flate2_0_2_20.miniz-sys or false then [ miniz_sys_0_1_10 ] else []));
-    features = mkFeatures (features.flate2_0_2_20 or {});
-  };
-  flate2_0_2_20_features = f: updateFeatures f (rec {
-    flate2_0_2_20.default = (f.flate2_0_2_20.default or true);
-    flate2_0_2_20.futures =
-      (f.flate2_0_2_20.futures or false) ||
-      (f.flate2_0_2_20.tokio or false) ||
-      (flate2_0_2_20.tokio or false);
-    flate2_0_2_20.libz-sys =
-      (f.flate2_0_2_20.libz-sys or false) ||
-      (f.flate2_0_2_20.zlib or false) ||
-      (flate2_0_2_20.zlib or false);
-    flate2_0_2_20.miniz-sys =
-      (f.flate2_0_2_20.miniz-sys or false) ||
-      (f.flate2_0_2_20.default or false) ||
-      (flate2_0_2_20.default or false);
-    flate2_0_2_20.tokio-io =
-      (f.flate2_0_2_20.tokio-io or false) ||
-      (f.flate2_0_2_20.tokio or false) ||
-      (flate2_0_2_20.tokio or false);
-    libc_0_2_32.default = true;
-    miniz_sys_0_1_10.default = true;
-  }) [ libc_0_2_32_features miniz_sys_0_1_10_features ];
-  fuchsia_zircon_0_2_1 = { features?(fuchsia_zircon_0_2_1_features {}) }: fuchsia_zircon_0_2_1_ {
-    dependencies = mapFeatures features ([ fuchsia_zircon_sys_0_2_0 ]);
-  };
-  fuchsia_zircon_0_2_1_features = f: updateFeatures f ({
-    fuchsia_zircon_0_2_1.default = (f.fuchsia_zircon_0_2_1.default or true);
-    fuchsia_zircon_sys_0_2_0.default = true;
-  }) [ fuchsia_zircon_sys_0_2_0_features ];
-  fuchsia_zircon_sys_0_2_0 = { features?(fuchsia_zircon_sys_0_2_0_features {}) }: fuchsia_zircon_sys_0_2_0_ {
-    dependencies = mapFeatures features ([ bitflags_0_7_0 ]);
-  };
-  fuchsia_zircon_sys_0_2_0_features = f: updateFeatures f ({
-    bitflags_0_7_0.default = true;
-    fuchsia_zircon_sys_0_2_0.default = (f.fuchsia_zircon_sys_0_2_0.default or true);
-  }) [ bitflags_0_7_0_features ];
-  futures_0_1_16 = { features?(futures_0_1_16_features {}) }: futures_0_1_16_ {
-    features = mkFeatures (features.futures_0_1_16 or {});
-  };
-  futures_0_1_16_features = f: updateFeatures f (rec {
-    futures_0_1_16.default = (f.futures_0_1_16.default or true);
-    futures_0_1_16.use_std =
-      (f.futures_0_1_16.use_std or false) ||
-      (f.futures_0_1_16.default or false) ||
-      (futures_0_1_16.default or false);
-    futures_0_1_16.with-deprecated =
-      (f.futures_0_1_16.with-deprecated or false) ||
-      (f.futures_0_1_16.default or false) ||
-      (futures_0_1_16.default or false);
-  }) [];
-  gif_0_9_2 = { features?(gif_0_9_2_features {}) }: gif_0_9_2_ {
-    dependencies = mapFeatures features ([ color_quant_1_0_0 lzw_0_10_0 ]);
-    features = mkFeatures (features.gif_0_9_2 or {});
-  };
-  gif_0_9_2_features = f: updateFeatures f (rec {
-    color_quant_1_0_0.default = true;
-    gif_0_9_2.default = (f.gif_0_9_2.default or true);
-    gif_0_9_2.libc =
-      (f.gif_0_9_2.libc or false) ||
-      (f.gif_0_9_2.c_api or false) ||
-      (gif_0_9_2.c_api or false);
-    gif_0_9_2.raii_no_panic =
-      (f.gif_0_9_2.raii_no_panic or false) ||
-      (f.gif_0_9_2.default or false) ||
-      (gif_0_9_2.default or false);
-    lzw_0_10_0.default = true;
-  }) [ color_quant_1_0_0_features lzw_0_10_0_features ];
-  glob_0_2_11 = { features?(glob_0_2_11_features {}) }: glob_0_2_11_ {};
-  glob_0_2_11_features = f: updateFeatures f ({
-    glob_0_2_11.default = (f.glob_0_2_11.default or true);
-  }) [];
-  image_0_10_4 = { features?(image_0_10_4_features {}) }: image_0_10_4_ {
-    dependencies = mapFeatures features ([ byteorder_0_5_3 enum_primitive_0_1_1 glob_0_2_11 num_iter_0_1_34 num_rational_0_1_39 num_traits_0_1_40 ]
-      ++ (if features.image_0_10_4.gif or false then [ gif_0_9_2 ] else [])
-      ++ (if features.image_0_10_4.jpeg-decoder or false then [ jpeg_decoder_0_1_13 ] else [])
-      ++ (if features.image_0_10_4.png or false then [ png_0_5_2 ] else [])
-      ++ (if features.image_0_10_4.scoped_threadpool or false then [ scoped_threadpool_0_1_8 ] else []));
-    features = mkFeatures (features.image_0_10_4 or {});
-  };
-  image_0_10_4_features = f: updateFeatures f (rec {
-    byteorder_0_5_3.default = true;
-    enum_primitive_0_1_1.default = true;
-    gif_0_9_2.default = true;
-    glob_0_2_11.default = true;
-    image_0_10_4.bmp =
-      (f.image_0_10_4.bmp or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false) ||
-      (f.image_0_10_4.ico or false) ||
-      (image_0_10_4.ico or false);
-    image_0_10_4.default = (f.image_0_10_4.default or true);
-    image_0_10_4.gif =
-      (f.image_0_10_4.gif or false) ||
-      (f.image_0_10_4.gif_codec or false) ||
-      (image_0_10_4.gif_codec or false);
-    image_0_10_4.gif_codec =
-      (f.image_0_10_4.gif_codec or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.hdr =
-      (f.image_0_10_4.hdr or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.ico =
-      (f.image_0_10_4.ico or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.jpeg =
-      (f.image_0_10_4.jpeg or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.jpeg-decoder =
-      (f.image_0_10_4.jpeg-decoder or false) ||
-      (f.image_0_10_4.jpeg or false) ||
-      (image_0_10_4.jpeg or false);
-    image_0_10_4.png =
-      (f.image_0_10_4.png or false) ||
-      (f.image_0_10_4.png_codec or false) ||
-      (image_0_10_4.png_codec or false);
-    image_0_10_4.png_codec =
-      (f.image_0_10_4.png_codec or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false) ||
-      (f.image_0_10_4.ico or false) ||
-      (image_0_10_4.ico or false);
-    image_0_10_4.ppm =
-      (f.image_0_10_4.ppm or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.scoped_threadpool =
-      (f.image_0_10_4.scoped_threadpool or false) ||
-      (f.image_0_10_4.hdr or false) ||
-      (image_0_10_4.hdr or false);
-    image_0_10_4.tga =
-      (f.image_0_10_4.tga or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.tiff =
-      (f.image_0_10_4.tiff or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.webp =
-      (f.image_0_10_4.webp or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    jpeg_decoder_0_1_13.default = true;
-    num_iter_0_1_34.default = true;
-    num_rational_0_1_39.default = true;
-    num_traits_0_1_40.default = true;
-    png_0_5_2.default = true;
-    scoped_threadpool_0_1_8.default = true;
-  }) [ byteorder_0_5_3_features enum_primitive_0_1_1_features gif_0_9_2_features glob_0_2_11_features jpeg_decoder_0_1_13_features num_iter_0_1_34_features num_rational_0_1_39_features num_traits_0_1_40_features png_0_5_2_features scoped_threadpool_0_1_8_features ];
-  inflate_0_1_1 = { features?(inflate_0_1_1_features {}) }: inflate_0_1_1_ {
-    features = mkFeatures (features.inflate_0_1_1 or {});
-  };
-  inflate_0_1_1_features = f: updateFeatures f ({
-    inflate_0_1_1.default = (f.inflate_0_1_1.default or true);
-  }) [];
-  itoa_0_3_4 = { features?(itoa_0_3_4_features {}) }: itoa_0_3_4_ {
-    features = mkFeatures (features.itoa_0_3_4 or {});
-  };
-  itoa_0_3_4_features = f: updateFeatures f ({
-    itoa_0_3_4.default = (f.itoa_0_3_4.default or true);
-  }) [];
-  jpeg_decoder_0_1_13 = { features?(jpeg_decoder_0_1_13_features {}) }: jpeg_decoder_0_1_13_ {
-    dependencies = mapFeatures features ([ byteorder_1_1_0 ]
-      ++ (if features.jpeg_decoder_0_1_13.rayon or false then [ rayon_0_8_2 ] else []));
-    features = mkFeatures (features.jpeg_decoder_0_1_13 or {});
-  };
-  jpeg_decoder_0_1_13_features = f: updateFeatures f (rec {
-    byteorder_1_1_0.default = true;
-    jpeg_decoder_0_1_13.default = (f.jpeg_decoder_0_1_13.default or true);
-    jpeg_decoder_0_1_13.rayon =
-      (f.jpeg_decoder_0_1_13.rayon or false) ||
-      (f.jpeg_decoder_0_1_13.default or false) ||
-      (jpeg_decoder_0_1_13.default or false);
-    rayon_0_8_2.default = true;
-  }) [ byteorder_1_1_0_features rayon_0_8_2_features ];
-  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
-    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
-    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
-  };
-  kernel32_sys_0_2_2_features = f: updateFeatures f ({
-    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
-    winapi_0_2_8.default = true;
-    winapi_build_0_1_1.default = true;
-  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
-  lazy_static_0_2_9 = { features?(lazy_static_0_2_9_features {}) }: lazy_static_0_2_9_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.lazy_static_0_2_9 or {});
-  };
-  lazy_static_0_2_9_features = f: updateFeatures f (rec {
-    lazy_static_0_2_9.default = (f.lazy_static_0_2_9.default or true);
-    lazy_static_0_2_9.nightly =
-      (f.lazy_static_0_2_9.nightly or false) ||
-      (f.lazy_static_0_2_9.spin_no_std or false) ||
-      (lazy_static_0_2_9.spin_no_std or false);
-    lazy_static_0_2_9.spin =
-      (f.lazy_static_0_2_9.spin or false) ||
-      (f.lazy_static_0_2_9.spin_no_std or false) ||
-      (lazy_static_0_2_9.spin_no_std or false);
-  }) [];
-  libc_0_2_32 = { features?(libc_0_2_32_features {}) }: libc_0_2_32_ {
-    features = mkFeatures (features.libc_0_2_32 or {});
-  };
-  libc_0_2_32_features = f: updateFeatures f (rec {
-    libc_0_2_32.default = (f.libc_0_2_32.default or true);
-    libc_0_2_32.use_std =
-      (f.libc_0_2_32.use_std or false) ||
-      (f.libc_0_2_32.default or false) ||
-      (libc_0_2_32.default or false);
-  }) [];
-  libloading_0_3_4 = { features?(libloading_0_3_4_features {}) }: libloading_0_3_4_ {
-    dependencies = mapFeatures features ([ lazy_static_0_2_9 ])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
-    buildDependencies = mapFeatures features ([ target_build_utils_0_3_1 ]);
-  };
-  libloading_0_3_4_features = f: updateFeatures f ({
-    kernel32_sys_0_2_2.default = true;
-    lazy_static_0_2_9.default = true;
-    libloading_0_3_4.default = (f.libloading_0_3_4.default or true);
-    target_build_utils_0_3_1.default = true;
-    winapi_0_2_8.default = true;
-  }) [ lazy_static_0_2_9_features target_build_utils_0_3_1_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
-  lzw_0_10_0 = { features?(lzw_0_10_0_features {}) }: lzw_0_10_0_ {
-    features = mkFeatures (features.lzw_0_10_0 or {});
-  };
-  lzw_0_10_0_features = f: updateFeatures f (rec {
-    lzw_0_10_0.default = (f.lzw_0_10_0.default or true);
-    lzw_0_10_0.raii_no_panic =
-      (f.lzw_0_10_0.raii_no_panic or false) ||
-      (f.lzw_0_10_0.default or false) ||
-      (lzw_0_10_0.default or false);
-  }) [];
-  miniz_sys_0_1_10 = { features?(miniz_sys_0_1_10_features {}) }: miniz_sys_0_1_10_ {
-    dependencies = mapFeatures features ([ libc_0_2_32 ]);
-    buildDependencies = mapFeatures features ([ cc_1_0_0 ]);
-  };
-  miniz_sys_0_1_10_features = f: updateFeatures f ({
-    cc_1_0_0.default = true;
-    libc_0_2_32.default = true;
-    miniz_sys_0_1_10.default = (f.miniz_sys_0_1_10.default or true);
-  }) [ libc_0_2_32_features cc_1_0_0_features ];
-  num_bigint_0_1_40 = { features?(num_bigint_0_1_40_features {}) }: num_bigint_0_1_40_ {
-    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_40 ]
-      ++ (if features.num_bigint_0_1_40.rand or false then [ rand_0_3_17 ] else [])
-      ++ (if features.num_bigint_0_1_40.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
-    features = mkFeatures (features.num_bigint_0_1_40 or {});
-  };
-  num_bigint_0_1_40_features = f: updateFeatures f (rec {
-    num_bigint_0_1_40.default = (f.num_bigint_0_1_40.default or true);
-    num_bigint_0_1_40.rand =
-      (f.num_bigint_0_1_40.rand or false) ||
-      (f.num_bigint_0_1_40.default or false) ||
-      (num_bigint_0_1_40.default or false);
-    num_bigint_0_1_40.rustc-serialize =
-      (f.num_bigint_0_1_40.rustc-serialize or false) ||
-      (f.num_bigint_0_1_40.default or false) ||
-      (num_bigint_0_1_40.default or false);
-    num_integer_0_1_35.default = true;
-    num_traits_0_1_40.default = true;
-    rand_0_3_17.default = true;
-    rustc_serialize_0_3_24.default = true;
-  }) [ num_integer_0_1_35_features num_traits_0_1_40_features rand_0_3_17_features rustc_serialize_0_3_24_features ];
-  num_integer_0_1_35 = { features?(num_integer_0_1_35_features {}) }: num_integer_0_1_35_ {
-    dependencies = mapFeatures features ([ num_traits_0_1_40 ]);
-  };
-  num_integer_0_1_35_features = f: updateFeatures f ({
-    num_integer_0_1_35.default = (f.num_integer_0_1_35.default or true);
-    num_traits_0_1_40.default = true;
-  }) [ num_traits_0_1_40_features ];
-  num_iter_0_1_34 = { features?(num_iter_0_1_34_features {}) }: num_iter_0_1_34_ {
-    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_40 ]);
-  };
-  num_iter_0_1_34_features = f: updateFeatures f ({
-    num_integer_0_1_35.default = true;
-    num_iter_0_1_34.default = (f.num_iter_0_1_34.default or true);
-    num_traits_0_1_40.default = true;
-  }) [ num_integer_0_1_35_features num_traits_0_1_40_features ];
-  num_rational_0_1_39 = { features?(num_rational_0_1_39_features {}) }: num_rational_0_1_39_ {
-    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_40 ]
-      ++ (if features.num_rational_0_1_39.num-bigint or false then [ num_bigint_0_1_40 ] else [])
-      ++ (if features.num_rational_0_1_39.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
-    features = mkFeatures (features.num_rational_0_1_39 or {});
-  };
-  num_rational_0_1_39_features = f: updateFeatures f (rec {
-    num_bigint_0_1_40.default = true;
-    num_integer_0_1_35.default = true;
-    num_rational_0_1_39.bigint =
-      (f.num_rational_0_1_39.bigint or false) ||
-      (f.num_rational_0_1_39.default or false) ||
-      (num_rational_0_1_39.default or false);
-    num_rational_0_1_39.default = (f.num_rational_0_1_39.default or true);
-    num_rational_0_1_39.num-bigint =
-      (f.num_rational_0_1_39.num-bigint or false) ||
-      (f.num_rational_0_1_39.bigint or false) ||
-      (num_rational_0_1_39.bigint or false);
-    num_rational_0_1_39.rustc-serialize =
-      (f.num_rational_0_1_39.rustc-serialize or false) ||
-      (f.num_rational_0_1_39.default or false) ||
-      (num_rational_0_1_39.default or false);
-    num_traits_0_1_40.default = true;
-    rustc_serialize_0_3_24.default = true;
-  }) [ num_bigint_0_1_40_features num_integer_0_1_35_features num_traits_0_1_40_features rustc_serialize_0_3_24_features ];
-  num_traits_0_1_40 = { features?(num_traits_0_1_40_features {}) }: num_traits_0_1_40_ {};
-  num_traits_0_1_40_features = f: updateFeatures f ({
-    num_traits_0_1_40.default = (f.num_traits_0_1_40.default or true);
-  }) [];
-  num_cpus_1_7_0 = { features?(num_cpus_1_7_0_features {}) }: num_cpus_1_7_0_ {
-    dependencies = mapFeatures features ([ libc_0_2_32 ]);
-  };
-  num_cpus_1_7_0_features = f: updateFeatures f ({
-    libc_0_2_32.default = true;
-    num_cpus_1_7_0.default = (f.num_cpus_1_7_0.default or true);
-  }) [ libc_0_2_32_features ];
-  phf_0_7_21 = { features?(phf_0_7_21_features {}) }: phf_0_7_21_ {
-    dependencies = mapFeatures features ([ phf_shared_0_7_21 ]);
-    features = mkFeatures (features.phf_0_7_21 or {});
-  };
-  phf_0_7_21_features = f: updateFeatures f (rec {
-    phf_0_7_21.default = (f.phf_0_7_21.default or true);
-    phf_shared_0_7_21.core =
-      (f.phf_shared_0_7_21.core or false) ||
-      (phf_0_7_21.core or false) ||
-      (f.phf_0_7_21.core or false);
-    phf_shared_0_7_21.default = true;
-    phf_shared_0_7_21.unicase =
-      (f.phf_shared_0_7_21.unicase or false) ||
-      (phf_0_7_21.unicase or false) ||
-      (f.phf_0_7_21.unicase or false);
-  }) [ phf_shared_0_7_21_features ];
-  phf_codegen_0_7_21 = { features?(phf_codegen_0_7_21_features {}) }: phf_codegen_0_7_21_ {
-    dependencies = mapFeatures features ([ phf_generator_0_7_21 phf_shared_0_7_21 ]);
-  };
-  phf_codegen_0_7_21_features = f: updateFeatures f ({
-    phf_codegen_0_7_21.default = (f.phf_codegen_0_7_21.default or true);
-    phf_generator_0_7_21.default = true;
-    phf_shared_0_7_21.default = true;
-  }) [ phf_generator_0_7_21_features phf_shared_0_7_21_features ];
-  phf_generator_0_7_21 = { features?(phf_generator_0_7_21_features {}) }: phf_generator_0_7_21_ {
-    dependencies = mapFeatures features ([ phf_shared_0_7_21 rand_0_3_17 ]);
-  };
-  phf_generator_0_7_21_features = f: updateFeatures f ({
-    phf_generator_0_7_21.default = (f.phf_generator_0_7_21.default or true);
-    phf_shared_0_7_21.default = true;
-    rand_0_3_17.default = true;
-  }) [ phf_shared_0_7_21_features rand_0_3_17_features ];
-  phf_shared_0_7_21 = { features?(phf_shared_0_7_21_features {}) }: phf_shared_0_7_21_ {
-    dependencies = mapFeatures features ([ siphasher_0_2_2 ]);
-    features = mkFeatures (features.phf_shared_0_7_21 or {});
-  };
-  phf_shared_0_7_21_features = f: updateFeatures f ({
-    phf_shared_0_7_21.default = (f.phf_shared_0_7_21.default or true);
-    siphasher_0_2_2.default = true;
-  }) [ siphasher_0_2_2_features ];
-  png_0_5_2 = { features?(png_0_5_2_features {}) }: png_0_5_2_ {
-    dependencies = mapFeatures features ([ bitflags_0_7_0 inflate_0_1_1 num_iter_0_1_34 ]
-      ++ (if features.png_0_5_2.flate2 or false then [ flate2_0_2_20 ] else []));
-    features = mkFeatures (features.png_0_5_2 or {});
-  };
-  png_0_5_2_features = f: updateFeatures f (rec {
-    bitflags_0_7_0.default = true;
-    flate2_0_2_20.default = true;
-    inflate_0_1_1.default = true;
-    num_iter_0_1_34.default = true;
-    png_0_5_2.default = (f.png_0_5_2.default or true);
-    png_0_5_2.flate2 =
-      (f.png_0_5_2.flate2 or false) ||
-      (f.png_0_5_2.png-encoding or false) ||
-      (png_0_5_2.png-encoding or false);
-    png_0_5_2.png-encoding =
-      (f.png_0_5_2.png-encoding or false) ||
-      (f.png_0_5_2.default or false) ||
-      (png_0_5_2.default or false);
-  }) [ bitflags_0_7_0_features flate2_0_2_20_features inflate_0_1_1_features num_iter_0_1_34_features ];
-  rand_0_3_17 = { features?(rand_0_3_17_features {}) }: rand_0_3_17_ {
-    dependencies = mapFeatures features ([ libc_0_2_32 ])
-      ++ (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_2_1 ]) else []);
-    features = mkFeatures (features.rand_0_3_17 or {});
-  };
-  rand_0_3_17_features = f: updateFeatures f (rec {
-    fuchsia_zircon_0_2_1.default = true;
-    libc_0_2_32.default = true;
-    rand_0_3_17.default = (f.rand_0_3_17.default or true);
-    rand_0_3_17.i128_support =
-      (f.rand_0_3_17.i128_support or false) ||
-      (f.rand_0_3_17.nightly or false) ||
-      (rand_0_3_17.nightly or false);
-  }) [ libc_0_2_32_features fuchsia_zircon_0_2_1_features ];
-  rayon_0_8_2 = { features?(rayon_0_8_2_features {}) }: rayon_0_8_2_ {
-    dependencies = mapFeatures features ([ rayon_core_1_2_1 ]);
-  };
-  rayon_0_8_2_features = f: updateFeatures f ({
-    rayon_0_8_2.default = (f.rayon_0_8_2.default or true);
-    rayon_core_1_2_1.default = true;
-  }) [ rayon_core_1_2_1_features ];
-  rayon_core_1_2_1 = { features?(rayon_core_1_2_1_features {}) }: rayon_core_1_2_1_ {
-    dependencies = mapFeatures features ([ coco_0_1_1 futures_0_1_16 lazy_static_0_2_9 libc_0_2_32 num_cpus_1_7_0 rand_0_3_17 ]);
-  };
-  rayon_core_1_2_1_features = f: updateFeatures f ({
-    coco_0_1_1.default = true;
-    futures_0_1_16.default = true;
-    lazy_static_0_2_9.default = true;
-    libc_0_2_32.default = true;
-    num_cpus_1_7_0.default = true;
-    rand_0_3_17.default = true;
-    rayon_core_1_2_1.default = (f.rayon_core_1_2_1.default or true);
-  }) [ coco_0_1_1_features futures_0_1_16_features lazy_static_0_2_9_features libc_0_2_32_features num_cpus_1_7_0_features rand_0_3_17_features ];
-  redox_syscall_0_1_31 = { features?(redox_syscall_0_1_31_features {}) }: redox_syscall_0_1_31_ {};
-  redox_syscall_0_1_31_features = f: updateFeatures f ({
-    redox_syscall_0_1_31.default = (f.redox_syscall_0_1_31.default or true);
-  }) [];
-  redox_termios_0_1_1 = { features?(redox_termios_0_1_1_features {}) }: redox_termios_0_1_1_ {
-    dependencies = mapFeatures features ([ redox_syscall_0_1_31 ]);
-  };
-  redox_termios_0_1_1_features = f: updateFeatures f ({
-    redox_syscall_0_1_31.default = true;
-    redox_termios_0_1_1.default = (f.redox_termios_0_1_1.default or true);
-  }) [ redox_syscall_0_1_31_features ];
-  rustc_serialize_0_3_24 = { features?(rustc_serialize_0_3_24_features {}) }: rustc_serialize_0_3_24_ {};
-  rustc_serialize_0_3_24_features = f: updateFeatures f ({
-    rustc_serialize_0_3_24.default = (f.rustc_serialize_0_3_24.default or true);
-  }) [];
-  scoped_threadpool_0_1_8 = { features?(scoped_threadpool_0_1_8_features {}) }: scoped_threadpool_0_1_8_ {
-    features = mkFeatures (features.scoped_threadpool_0_1_8 or {});
-  };
-  scoped_threadpool_0_1_8_features = f: updateFeatures f ({
-    scoped_threadpool_0_1_8.default = (f.scoped_threadpool_0_1_8.default or true);
-  }) [];
-  scopeguard_0_3_2 = { features?(scopeguard_0_3_2_features {}) }: scopeguard_0_3_2_ {
-    features = mkFeatures (features.scopeguard_0_3_2 or {});
-  };
-  scopeguard_0_3_2_features = f: updateFeatures f (rec {
-    scopeguard_0_3_2.default = (f.scopeguard_0_3_2.default or true);
-    scopeguard_0_3_2.use_std =
-      (f.scopeguard_0_3_2.use_std or false) ||
-      (f.scopeguard_0_3_2.default or false) ||
-      (scopeguard_0_3_2.default or false);
-  }) [];
-  serde_0_9_15 = { features?(serde_0_9_15_features {}) }: serde_0_9_15_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.serde_0_9_15 or {});
-  };
-  serde_0_9_15_features = f: updateFeatures f (rec {
-    serde_0_9_15.alloc =
-      (f.serde_0_9_15.alloc or false) ||
-      (f.serde_0_9_15.collections or false) ||
-      (serde_0_9_15.collections or false);
-    serde_0_9_15.default = (f.serde_0_9_15.default or true);
-    serde_0_9_15.serde_derive =
-      (f.serde_0_9_15.serde_derive or false) ||
-      (f.serde_0_9_15.derive or false) ||
-      (serde_0_9_15.derive or false) ||
-      (f.serde_0_9_15.playground or false) ||
-      (serde_0_9_15.playground or false);
-    serde_0_9_15.std =
-      (f.serde_0_9_15.std or false) ||
-      (f.serde_0_9_15.default or false) ||
-      (serde_0_9_15.default or false) ||
-      (f.serde_0_9_15.unstable-testing or false) ||
-      (serde_0_9_15.unstable-testing or false);
-    serde_0_9_15.unstable =
-      (f.serde_0_9_15.unstable or false) ||
-      (f.serde_0_9_15.alloc or false) ||
-      (serde_0_9_15.alloc or false) ||
-      (f.serde_0_9_15.unstable-testing or false) ||
-      (serde_0_9_15.unstable-testing or false);
-  }) [];
-  serde_json_0_9_10 = { features?(serde_json_0_9_10_features {}) }: serde_json_0_9_10_ {
-    dependencies = mapFeatures features ([ dtoa_0_4_2 itoa_0_3_4 num_traits_0_1_40 serde_0_9_15 ]);
-    features = mkFeatures (features.serde_json_0_9_10 or {});
-  };
-  serde_json_0_9_10_features = f: updateFeatures f (rec {
-    dtoa_0_4_2.default = true;
-    itoa_0_3_4.default = true;
-    num_traits_0_1_40.default = true;
-    serde_0_9_15.default = true;
-    serde_json_0_9_10.default = (f.serde_json_0_9_10.default or true);
-    serde_json_0_9_10.linked-hash-map =
-      (f.serde_json_0_9_10.linked-hash-map or false) ||
-      (f.serde_json_0_9_10.preserve_order or false) ||
-      (serde_json_0_9_10.preserve_order or false);
-  }) [ dtoa_0_4_2_features itoa_0_3_4_features num_traits_0_1_40_features serde_0_9_15_features ];
-  siphasher_0_2_2 = { features?(siphasher_0_2_2_features {}) }: siphasher_0_2_2_ {
-    dependencies = mapFeatures features ([]);
-  };
-  siphasher_0_2_2_features = f: updateFeatures f ({
-    siphasher_0_2_2.default = (f.siphasher_0_2_2.default or true);
-  }) [];
-  strsim_0_6_0 = { features?(strsim_0_6_0_features {}) }: strsim_0_6_0_ {};
-  strsim_0_6_0_features = f: updateFeatures f ({
-    strsim_0_6_0.default = (f.strsim_0_6_0.default or true);
-  }) [];
-  target_build_utils_0_3_1 = { features?(target_build_utils_0_3_1_features {}) }: target_build_utils_0_3_1_ {
-    dependencies = mapFeatures features ([ phf_0_7_21 ]
-      ++ (if features.target_build_utils_0_3_1.serde_json or false then [ serde_json_0_9_10 ] else []));
-    buildDependencies = mapFeatures features ([ phf_codegen_0_7_21 ]);
-    features = mkFeatures (features.target_build_utils_0_3_1 or {});
-  };
-  target_build_utils_0_3_1_features = f: updateFeatures f (rec {
-    phf_0_7_21.default = true;
-    phf_codegen_0_7_21.default = true;
-    serde_json_0_9_10.default = true;
-    target_build_utils_0_3_1.default = (f.target_build_utils_0_3_1.default or true);
-    target_build_utils_0_3_1.serde_json =
-      (f.target_build_utils_0_3_1.serde_json or false) ||
-      (f.target_build_utils_0_3_1.default or false) ||
-      (target_build_utils_0_3_1.default or false);
-  }) [ phf_0_7_21_features serde_json_0_9_10_features phf_codegen_0_7_21_features ];
-  tempfile_2_2_0 = { features?(tempfile_2_2_0_features {}) }: tempfile_2_2_0_ {
-    dependencies = mapFeatures features ([ rand_0_3_17 ])
-      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_31 ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_32 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
-  };
-  tempfile_2_2_0_features = f: updateFeatures f ({
-    kernel32_sys_0_2_2.default = true;
-    libc_0_2_32.default = true;
-    rand_0_3_17.default = true;
-    redox_syscall_0_1_31.default = true;
-    tempfile_2_2_0.default = (f.tempfile_2_2_0.default or true);
-    winapi_0_2_8.default = true;
-  }) [ rand_0_3_17_features redox_syscall_0_1_31_features libc_0_2_32_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
-  term_size_0_3_0 = { features?(term_size_0_3_0_features {}) }: term_size_0_3_0_ {
-    dependencies = mapFeatures features ([])
-      ++ (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_32 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
-    features = mkFeatures (features.term_size_0_3_0 or {});
-  };
-  term_size_0_3_0_features = f: updateFeatures f (rec {
-    kernel32_sys_0_2_2.default = true;
-    libc_0_2_32.default = true;
-    term_size_0_3_0.clippy =
-      (f.term_size_0_3_0.clippy or false) ||
-      (f.term_size_0_3_0.lints or false) ||
-      (term_size_0_3_0.lints or false);
-    term_size_0_3_0.default = (f.term_size_0_3_0.default or true);
-    term_size_0_3_0.lints =
-      (f.term_size_0_3_0.lints or false) ||
-      (f.term_size_0_3_0.travis or false) ||
-      (term_size_0_3_0.travis or false);
-    term_size_0_3_0.nightly =
-      (f.term_size_0_3_0.nightly or false) ||
-      (f.term_size_0_3_0.lints or false) ||
-      (term_size_0_3_0.lints or false) ||
-      (f.term_size_0_3_0.travis or false) ||
-      (term_size_0_3_0.travis or false);
-    winapi_0_2_8.default = true;
-  }) [ libc_0_2_32_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
-  termion_1_5_1 = { features?(termion_1_5_1_features {}) }: termion_1_5_1_ {
-    dependencies = (if !(kernel == "redox") then mapFeatures features ([ libc_0_2_32 ]) else [])
-      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_31 redox_termios_0_1_1 ]) else []);
-  };
-  termion_1_5_1_features = f: updateFeatures f ({
-    libc_0_2_32.default = true;
-    redox_syscall_0_1_31.default = true;
-    redox_termios_0_1_1.default = true;
-    termion_1_5_1.default = (f.termion_1_5_1.default or true);
-  }) [ libc_0_2_32_features redox_syscall_0_1_31_features redox_termios_0_1_1_features ];
-  textwrap_0_8_0 = { features?(textwrap_0_8_0_features {}) }: textwrap_0_8_0_ {
-    dependencies = mapFeatures features ([ term_size_0_3_0 unicode_width_0_1_4 ]);
-  };
-  textwrap_0_8_0_features = f: updateFeatures f ({
-    term_size_0_3_0.default = true;
-    textwrap_0_8_0.default = (f.textwrap_0_8_0.default or true);
-    unicode_width_0_1_4.default = true;
-  }) [ term_size_0_3_0_features unicode_width_0_1_4_features ];
-  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
-    features = mkFeatures (features.unicode_width_0_1_4 or {});
-  };
-  unicode_width_0_1_4_features = f: updateFeatures f ({
-    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.default or true);
-  }) [];
-  vec_map_0_8_0 = { features?(vec_map_0_8_0_features {}) }: vec_map_0_8_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.vec_map_0_8_0 or {});
-  };
-  vec_map_0_8_0_features = f: updateFeatures f (rec {
-    vec_map_0_8_0.default = (f.vec_map_0_8_0.default or true);
-    vec_map_0_8_0.serde =
-      (f.vec_map_0_8_0.serde or false) ||
-      (f.vec_map_0_8_0.eders or false) ||
-      (vec_map_0_8_0.eders or false);
-    vec_map_0_8_0.serde_derive =
-      (f.vec_map_0_8_0.serde_derive or false) ||
-      (f.vec_map_0_8_0.eders or false) ||
-      (vec_map_0_8_0.eders or false);
-  }) [];
-  way_cooler_client_helpers_0_1_0 = { features?(way_cooler_client_helpers_0_1_0_features {}) }: way_cooler_client_helpers_0_1_0_ {
-    dependencies = mapFeatures features ([ wayland_client_0_9_10 wayland_sys_0_9_10 ]);
-  };
-  way_cooler_client_helpers_0_1_0_features = f: updateFeatures f ({
-    way_cooler_client_helpers_0_1_0.default = (f.way_cooler_client_helpers_0_1_0.default or true);
-    wayland_client_0_9_10.cursor = true;
-    wayland_client_0_9_10.default = true;
-    wayland_client_0_9_10.dlopen = true;
-    wayland_sys_0_9_10.client = true;
-    wayland_sys_0_9_10.default = true;
-    wayland_sys_0_9_10.dlopen = true;
-  }) [ wayland_client_0_9_10_features wayland_sys_0_9_10_features ];
-  wayland_client_0_9_10 = { features?(wayland_client_0_9_10_features {}) }: wayland_client_0_9_10_ {
-    dependencies = mapFeatures features ([ bitflags_0_9_1 libc_0_2_32 wayland_sys_0_9_10 ]);
-    buildDependencies = mapFeatures features ([ wayland_scanner_0_9_10 ]);
-    features = mkFeatures (features.wayland_client_0_9_10 or {});
-  };
-  wayland_client_0_9_10_features = f: updateFeatures f (rec {
-    bitflags_0_9_1.default = true;
-    libc_0_2_32.default = true;
-    wayland_client_0_9_10.cursor =
-      (f.wayland_client_0_9_10.cursor or false) ||
-      (f.wayland_client_0_9_10.default or false) ||
-      (wayland_client_0_9_10.default or false);
-    wayland_client_0_9_10.default = (f.wayland_client_0_9_10.default or true);
-    wayland_client_0_9_10.egl =
-      (f.wayland_client_0_9_10.egl or false) ||
-      (f.wayland_client_0_9_10.default or false) ||
-      (wayland_client_0_9_10.default or false);
-    wayland_scanner_0_9_10.default = true;
-    wayland_sys_0_9_10.client = true;
-    wayland_sys_0_9_10.cursor =
-      (f.wayland_sys_0_9_10.cursor or false) ||
-      (wayland_client_0_9_10.cursor or false) ||
-      (f.wayland_client_0_9_10.cursor or false);
-    wayland_sys_0_9_10.default = true;
-    wayland_sys_0_9_10.dlopen =
-      (f.wayland_sys_0_9_10.dlopen or false) ||
-      (wayland_client_0_9_10.dlopen or false) ||
-      (f.wayland_client_0_9_10.dlopen or false);
-    wayland_sys_0_9_10.egl =
-      (f.wayland_sys_0_9_10.egl or false) ||
-      (wayland_client_0_9_10.egl or false) ||
-      (f.wayland_client_0_9_10.egl or false);
-  }) [ bitflags_0_9_1_features libc_0_2_32_features wayland_sys_0_9_10_features wayland_scanner_0_9_10_features ];
-  wayland_scanner_0_9_10 = { features?(wayland_scanner_0_9_10_features {}) }: wayland_scanner_0_9_10_ {
-    dependencies = mapFeatures features ([ xml_rs_0_6_1 ]);
-  };
-  wayland_scanner_0_9_10_features = f: updateFeatures f ({
-    wayland_scanner_0_9_10.default = (f.wayland_scanner_0_9_10.default or true);
-    xml_rs_0_6_1.default = true;
-  }) [ xml_rs_0_6_1_features ];
-  wayland_sys_0_9_10 = { features?(wayland_sys_0_9_10_features {}) }: wayland_sys_0_9_10_ {
-    dependencies = mapFeatures features ([ dlib_0_3_1 ]
-      ++ (if features.wayland_sys_0_9_10.lazy_static or false then [ lazy_static_0_2_9 ] else []));
-    features = mkFeatures (features.wayland_sys_0_9_10 or {});
-  };
-  wayland_sys_0_9_10_features = f: updateFeatures f (rec {
-    dlib_0_3_1.default = true;
-    dlib_0_3_1.dlopen =
-      (f.dlib_0_3_1.dlopen or false) ||
-      (wayland_sys_0_9_10.dlopen or false) ||
-      (f.wayland_sys_0_9_10.dlopen or false);
-    lazy_static_0_2_9.default = true;
-    wayland_sys_0_9_10.default = (f.wayland_sys_0_9_10.default or true);
-    wayland_sys_0_9_10.lazy_static =
-      (f.wayland_sys_0_9_10.lazy_static or false) ||
-      (f.wayland_sys_0_9_10.dlopen or false) ||
-      (wayland_sys_0_9_10.dlopen or false);
-    wayland_sys_0_9_10.libc =
-      (f.wayland_sys_0_9_10.libc or false) ||
-      (f.wayland_sys_0_9_10.server or false) ||
-      (wayland_sys_0_9_10.server or false);
-  }) [ dlib_0_3_1_features lazy_static_0_2_9_features ];
-  wc_bg_0_3_0 = { features?(wc_bg_0_3_0_features {}) }: wc_bg_0_3_0_ {
-    dependencies = mapFeatures features ([ byteorder_0_5_3 clap_2_26_2 image_0_10_4 tempfile_2_2_0 way_cooler_client_helpers_0_1_0 wayland_client_0_9_10 wayland_sys_0_9_10 ]);
-    buildDependencies = mapFeatures features ([ wayland_scanner_0_9_10 ]);
-  };
-  wc_bg_0_3_0_features = f: updateFeatures f ({
-    byteorder_0_5_3.default = true;
-    clap_2_26_2.default = true;
-    image_0_10_4.default = true;
-    tempfile_2_2_0.default = true;
-    way_cooler_client_helpers_0_1_0.default = true;
-    wayland_client_0_9_10.cursor = true;
-    wayland_client_0_9_10.default = true;
-    wayland_client_0_9_10.dlopen = true;
-    wayland_scanner_0_9_10.default = true;
-    wayland_sys_0_9_10.client = true;
-    wayland_sys_0_9_10.default = true;
-    wayland_sys_0_9_10.dlopen = true;
-    wc_bg_0_3_0.default = (f.wc_bg_0_3_0.default or true);
-  }) [ byteorder_0_5_3_features clap_2_26_2_features image_0_10_4_features tempfile_2_2_0_features way_cooler_client_helpers_0_1_0_features wayland_client_0_9_10_features wayland_sys_0_9_10_features wayland_scanner_0_9_10_features ];
-  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
-  winapi_0_2_8_features = f: updateFeatures f ({
-    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
-  }) [];
-  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
-  winapi_build_0_1_1_features = f: updateFeatures f ({
-    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
-  }) [];
-  xml_rs_0_6_1 = { features?(xml_rs_0_6_1_features {}) }: xml_rs_0_6_1_ {
-    dependencies = mapFeatures features ([ bitflags_0_9_1 ]);
-  };
-  xml_rs_0_6_1_features = f: updateFeatures f ({
-    bitflags_0_9_1.default = true;
-    xml_rs_0_6_1.default = (f.xml_rs_0_6_1.default or true);
-  }) [ bitflags_0_9_1_features ];
-}
diff --git a/pkgs/applications/window-managers/way-cooler/wc-grab.nix b/pkgs/applications/window-managers/way-cooler/wc-grab.nix
deleted file mode 100644
index 3264357b2fd..00000000000
--- a/pkgs/applications/window-managers/way-cooler/wc-grab.nix
+++ /dev/null
@@ -1,794 +0,0 @@
-# Generated by carnix 0.6.5: carnix -o wc-grab.nix Cargo.lock
-{ lib, stdenv, buildRustCrate, fetchgit }:
-let kernel = stdenv.hostPlatform.parsed.kernel.name;
-    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
-    mapFeatures = features: map (fun: fun { features = features; });
-    mkFeatures = feat: lib.lists.foldl (features: featureName:
-      if feat.${featureName} or false then
-        [ featureName ] ++ features
-      else
-        features
-    ) [] (builtins.attrNames feat);
-in
-rec {
-  wc_grab = f: wc_grab_0_3_0 { features = wc_grab_0_3_0_features { wc_grab_0_3_0 = f; }; };
-  adler32_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "adler32";
-    version = "1.0.0";
-    authors = [ "Remi Rampin <remirampin@gmail.com>" ];
-    sha256 = "0pj35a7m4apn5xjg9n63gsdj6w8iw76zg4p9znrij43xnfqp084w";
-    inherit dependencies buildDependencies features;
-  };
-  ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "ansi_term";
-    version = "0.9.0";
-    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
-    sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
-    inherit dependencies buildDependencies features;
-  };
-  atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "atty";
-    version = "0.2.2";
-    authors = [ "softprops <d.tangren@gmail.com>" ];
-    sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
-    inherit dependencies buildDependencies features;
-  };
-  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "bitflags";
-    version = "0.7.0";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
-    inherit dependencies buildDependencies features;
-  };
-  bitflags_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "bitflags";
-    version = "0.8.0";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1h489m0wzhng5gvvc40jgdbaf0ac3rgkka31vwinhsjmfvrqcc4v";
-    inherit dependencies buildDependencies features;
-  };
-  byteorder_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "byteorder";
-    version = "1.0.0";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "14pdnds4517vcpablc51vv76hvc3glnpkpbb7qdil591q7lyb0m1";
-    inherit dependencies buildDependencies features;
-  };
-  clap_2_22_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "clap";
-    version = "2.22.0";
-    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
-    sha256 = "0gdgyfh3ydpd2px4xh0i5qd6bhi2c5f43bqv9z4kla9vkmmfiavd";
-    inherit dependencies buildDependencies features;
-  };
-  color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "color_quant";
-    version = "1.0.0";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
-    inherit dependencies buildDependencies features;
-  };
-  dbus_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "dbus";
-    version = "0.5.2";
-    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
-    sha256 = "1ga3p2myqxbz34n2bbw4gk1ipf76mjr8r2rvrvnalwggymzfkhj7";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  deflate_0_7_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "deflate";
-    version = "0.7.5";
-    authors = [ "oyvindln <oyvindln@users.noreply.github.com>" ];
-    sha256 = "18bcmdkyshnzpkxx22b29gn55g6bk5ysy98ghjpjhxy3hky96rvy";
-    inherit dependencies buildDependencies features;
-  };
-  deque_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "deque";
-    version = "0.3.1";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Samuel Fredrickson <kinghajj@gmail.com>" "Linus Färnstrand <faern@faern.net>" "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "04x8i5aagxmslk350i8qszyw7kmvrqc3d99g4qi1xnfmr61y7m68";
-    inherit dependencies buildDependencies features;
-  };
-  enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "enum_primitive";
-    version = "0.1.1";
-    authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
-    sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
-    inherit dependencies buildDependencies features;
-  };
-  error_chain_0_7_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "error-chain";
-    version = "0.7.2";
-    authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
-    sha256 = "0b1r4ggdgy1djfvz2s4l5kirmfsmxd286y6wx0p9ahv2phb7inyi";
-    inherit dependencies buildDependencies features;
-  };
-  gif_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "gif";
-    version = "0.9.1";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "16s7b0rqc6gg1fcbppakm3jy2q462w3qvykcmcmifmg7q7lwsg6r";
-    inherit dependencies buildDependencies features;
-  };
-  glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "glob";
-    version = "0.2.11";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
-    inherit dependencies buildDependencies features;
-  };
-  image_0_12_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "image";
-    version = "0.12.3";
-    authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
-    sha256 = "12xdzi29vr19gz3h93c1ihyvyv9xar9sp0inrjwwvlbjvn8nn0p9";
-    libPath = "./src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "inflate";
-    version = "0.1.1";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
-    inherit dependencies buildDependencies features;
-  };
-  jpeg_decoder_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "jpeg-decoder";
-    version = "0.1.11";
-    authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
-    sha256 = "1xm39c1cff5gkczs164371hk2gpkjpkbw63k4f8mjnpwwpn9xk4n";
-    inherit dependencies buildDependencies features;
-  };
-  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "kernel32-sys";
-    version = "0.2.2";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-    libName = "kernel32";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  libc_0_2_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "libc";
-    version = "0.2.21";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0glj3lxwc8358cfw9pb5dd4zr9iynzj6w2ly59nshrggsw021j75";
-    inherit dependencies buildDependencies features;
-  };
-  lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "lzw";
-    version = "0.10.0";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
-    inherit dependencies buildDependencies features;
-  };
-  metadeps_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "metadeps";
-    version = "1.1.1";
-    authors = [ "Josh Triplett <josh@joshtriplett.org>" ];
-    sha256 = "1px8v94jn4ps63gqmvgsfcqxrwjhpa9z4xr0y1lh95wn2063fsar";
-    inherit dependencies buildDependencies features;
-  };
-  num_integer_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-integer";
-    version = "0.1.33";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1rhy9lf4lhl7r8278n73mi9y55v9a71639as3v92bj2gk1x4k729";
-    inherit dependencies buildDependencies features;
-  };
-  num_iter_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-iter";
-    version = "0.1.33";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1xjzf2p2vaqwknkr4s8ka5hn6cpr5rsshnydbpkn2pvapfzdrqd3";
-    inherit dependencies buildDependencies features;
-  };
-  num_rational_0_1_36_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-rational";
-    version = "0.1.36";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0jibhs8xiap2wlv1xjwdvhyj4yrxwfisqbnfm53vjm5ldlijp87p";
-    inherit dependencies buildDependencies features;
-  };
-  num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-traits";
-    version = "0.1.37";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
-    inherit dependencies buildDependencies features;
-  };
-  num_cpus_1_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num_cpus";
-    version = "1.3.0";
-    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
-    sha256 = "0i0zm6qh932k9b67qf7f1vsczkdim5kg9qv73m7y5hhw1i781rrb";
-    inherit dependencies buildDependencies features;
-  };
-  pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "pkg-config";
-    version = "0.3.9";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
-    inherit dependencies buildDependencies features;
-  };
-  png_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "png";
-    version = "0.6.2";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "03i78w5jbvk9y6babfrh7h0akvg81pcyyhniilv24z5v0vh5jvjs";
-    inherit dependencies buildDependencies features;
-  };
-  rand_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rand";
-    version = "0.3.15";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
-    inherit dependencies buildDependencies features;
-  };
-  rayon_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rayon";
-    version = "0.6.0";
-    authors = [ "Niko Matsakis <niko@alum.mit.edu>" ];
-    sha256 = "0y2693bari5j4h46mjzkyc9lkfbnq2d1p0ldyn6sb02jn63lpw97";
-    inherit dependencies buildDependencies features;
-  };
-  scoped_threadpool_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "scoped_threadpool";
-    version = "0.1.7";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "0dg58f18i6v071640062n0vymr4h42cnj0xy8a7b80sc0mddykyk";
-    inherit dependencies buildDependencies features;
-  };
-  strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "strsim";
-    version = "0.6.0";
-    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
-    sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
-    inherit dependencies buildDependencies features;
-  };
-  term_size_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "term_size";
-    version = "0.2.3";
-    authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
-    sha256 = "16b7gq2dmz7mws4vgai7whxy4xkg4yvlhm7spz0q6jyipqfq87ci";
-    inherit dependencies buildDependencies features;
-  };
-  toml_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "toml";
-    version = "0.2.1";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0p4rkaqhmk4fp6iqpxfgp3p98hxhbs2wmla3fq531n875h922yqs";
-    inherit dependencies buildDependencies features;
-  };
-  unicode_segmentation_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unicode-segmentation";
-    version = "1.1.0";
-    authors = [ "kwantam <kwantam@gmail.com>" ];
-    sha256 = "10hk7wy0217jwdbp27p36skwkig5lbhk482yfzij9m87h247rry0";
-    inherit dependencies buildDependencies features;
-  };
-  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unicode-width";
-    version = "0.1.4";
-    authors = [ "kwantam <kwantam@gmail.com>" ];
-    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
-    inherit dependencies buildDependencies features;
-  };
-  vec_map_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "vec_map";
-    version = "0.7.0";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
-    sha256 = "0jawvi83b1nm101nam0w71kdyh7cy3fr0l9qj1hfcjvzvihfk2l1";
-    inherit dependencies buildDependencies features;
-  };
-  wc_grab_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wc-grab";
-    version = "0.3.0";
-    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
-    sha256 = "02dkjxffzh38h3hiwfypkjv0g8dsfkp9wk20j04x4qydg4dr8a8h";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.2.8";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi-build";
-    version = "0.1.1";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-    libName = "build";
-    inherit dependencies buildDependencies features;
-  };
-  adler32_1_0_0 = { features?(adler32_1_0_0_features {}) }: adler32_1_0_0_ {};
-  adler32_1_0_0_features = f: updateFeatures f ({
-    adler32_1_0_0.default = (f.adler32_1_0_0.default or true);
-  }) [];
-  ansi_term_0_9_0 = { features?(ansi_term_0_9_0_features {}) }: ansi_term_0_9_0_ {};
-  ansi_term_0_9_0_features = f: updateFeatures f ({
-    ansi_term_0_9_0.default = (f.ansi_term_0_9_0.default or true);
-  }) [];
-  atty_0_2_2 = { features?(atty_0_2_2_features {}) }: atty_0_2_2_ {
-    dependencies = (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_21 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
-  };
-  atty_0_2_2_features = f: updateFeatures f ({
-    atty_0_2_2.default = (f.atty_0_2_2.default or true);
-    kernel32_sys_0_2_2.default = true;
-    libc_0_2_21.default = true;
-    winapi_0_2_8.default = true;
-  }) [ libc_0_2_21_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
-  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
-  bitflags_0_7_0_features = f: updateFeatures f ({
-    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
-  }) [];
-  bitflags_0_8_0 = { features?(bitflags_0_8_0_features {}) }: bitflags_0_8_0_ {
-    features = mkFeatures (features.bitflags_0_8_0 or {});
-  };
-  bitflags_0_8_0_features = f: updateFeatures f (rec {
-    bitflags_0_8_0.default = (f.bitflags_0_8_0.default or true);
-    bitflags_0_8_0.i128 =
-      (f.bitflags_0_8_0.i128 or false) ||
-      (f.bitflags_0_8_0.unstable or false) ||
-      (bitflags_0_8_0.unstable or false);
-  }) [];
-  byteorder_1_0_0 = { features?(byteorder_1_0_0_features {}) }: byteorder_1_0_0_ {
-    features = mkFeatures (features.byteorder_1_0_0 or {});
-  };
-  byteorder_1_0_0_features = f: updateFeatures f (rec {
-    byteorder_1_0_0.default = (f.byteorder_1_0_0.default or true);
-    byteorder_1_0_0.std =
-      (f.byteorder_1_0_0.std or false) ||
-      (f.byteorder_1_0_0.default or false) ||
-      (byteorder_1_0_0.default or false);
-  }) [];
-  clap_2_22_0 = { features?(clap_2_22_0_features {}) }: clap_2_22_0_ {
-    dependencies = mapFeatures features ([ bitflags_0_8_0 unicode_segmentation_1_1_0 unicode_width_0_1_4 vec_map_0_7_0 ]
-      ++ (if features.clap_2_22_0.ansi_term or false then [ ansi_term_0_9_0 ] else [])
-      ++ (if features.clap_2_22_0.atty or false then [ atty_0_2_2 ] else [])
-      ++ (if features.clap_2_22_0.strsim or false then [ strsim_0_6_0 ] else [])
-      ++ (if features.clap_2_22_0.term_size or false then [ term_size_0_2_3 ] else []));
-    features = mkFeatures (features.clap_2_22_0 or {});
-  };
-  clap_2_22_0_features = f: updateFeatures f (rec {
-    ansi_term_0_9_0.default = true;
-    atty_0_2_2.default = true;
-    bitflags_0_8_0.default = true;
-    clap_2_22_0.ansi_term =
-      (f.clap_2_22_0.ansi_term or false) ||
-      (f.clap_2_22_0.color or false) ||
-      (clap_2_22_0.color or false);
-    clap_2_22_0.atty =
-      (f.clap_2_22_0.atty or false) ||
-      (f.clap_2_22_0.color or false) ||
-      (clap_2_22_0.color or false);
-    clap_2_22_0.clippy =
-      (f.clap_2_22_0.clippy or false) ||
-      (f.clap_2_22_0.lints or false) ||
-      (clap_2_22_0.lints or false);
-    clap_2_22_0.color =
-      (f.clap_2_22_0.color or false) ||
-      (f.clap_2_22_0.default or false) ||
-      (clap_2_22_0.default or false);
-    clap_2_22_0.default = (f.clap_2_22_0.default or true);
-    clap_2_22_0.strsim =
-      (f.clap_2_22_0.strsim or false) ||
-      (f.clap_2_22_0.suggestions or false) ||
-      (clap_2_22_0.suggestions or false);
-    clap_2_22_0.suggestions =
-      (f.clap_2_22_0.suggestions or false) ||
-      (f.clap_2_22_0.default or false) ||
-      (clap_2_22_0.default or false);
-    clap_2_22_0.term_size =
-      (f.clap_2_22_0.term_size or false) ||
-      (f.clap_2_22_0.wrap_help or false) ||
-      (clap_2_22_0.wrap_help or false);
-    clap_2_22_0.wrap_help =
-      (f.clap_2_22_0.wrap_help or false) ||
-      (f.clap_2_22_0.default or false) ||
-      (clap_2_22_0.default or false);
-    clap_2_22_0.yaml-rust =
-      (f.clap_2_22_0.yaml-rust or false) ||
-      (f.clap_2_22_0.yaml or false) ||
-      (clap_2_22_0.yaml or false);
-    strsim_0_6_0.default = true;
-    term_size_0_2_3.default = true;
-    unicode_segmentation_1_1_0.default = true;
-    unicode_width_0_1_4.default = true;
-    vec_map_0_7_0.default = true;
-  }) [ ansi_term_0_9_0_features atty_0_2_2_features bitflags_0_8_0_features strsim_0_6_0_features term_size_0_2_3_features unicode_segmentation_1_1_0_features unicode_width_0_1_4_features vec_map_0_7_0_features ];
-  color_quant_1_0_0 = { features?(color_quant_1_0_0_features {}) }: color_quant_1_0_0_ {};
-  color_quant_1_0_0_features = f: updateFeatures f ({
-    color_quant_1_0_0.default = (f.color_quant_1_0_0.default or true);
-  }) [];
-  dbus_0_5_2 = { features?(dbus_0_5_2_features {}) }: dbus_0_5_2_ {
-    dependencies = mapFeatures features ([ libc_0_2_21 ]);
-    buildDependencies = mapFeatures features ([ metadeps_1_1_1 ]);
-    features = mkFeatures (features.dbus_0_5_2 or {});
-  };
-  dbus_0_5_2_features = f: updateFeatures f ({
-    dbus_0_5_2.default = (f.dbus_0_5_2.default or true);
-    libc_0_2_21.default = true;
-    metadeps_1_1_1.default = true;
-  }) [ libc_0_2_21_features metadeps_1_1_1_features ];
-  deflate_0_7_5 = { features?(deflate_0_7_5_features {}) }: deflate_0_7_5_ {
-    dependencies = mapFeatures features ([ adler32_1_0_0 byteorder_1_0_0 ]);
-  };
-  deflate_0_7_5_features = f: updateFeatures f ({
-    adler32_1_0_0.default = true;
-    byteorder_1_0_0.default = true;
-    deflate_0_7_5.default = (f.deflate_0_7_5.default or true);
-  }) [ adler32_1_0_0_features byteorder_1_0_0_features ];
-  deque_0_3_1 = { features?(deque_0_3_1_features {}) }: deque_0_3_1_ {
-    dependencies = mapFeatures features ([ rand_0_3_15 ]);
-  };
-  deque_0_3_1_features = f: updateFeatures f ({
-    deque_0_3_1.default = (f.deque_0_3_1.default or true);
-    rand_0_3_15.default = true;
-  }) [ rand_0_3_15_features ];
-  enum_primitive_0_1_1 = { features?(enum_primitive_0_1_1_features {}) }: enum_primitive_0_1_1_ {
-    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
-  };
-  enum_primitive_0_1_1_features = f: updateFeatures f ({
-    enum_primitive_0_1_1.default = (f.enum_primitive_0_1_1.default or true);
-    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or false);
-  }) [ num_traits_0_1_37_features ];
-  error_chain_0_7_2 = { features?(error_chain_0_7_2_features {}) }: error_chain_0_7_2_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.error_chain_0_7_2 or {});
-  };
-  error_chain_0_7_2_features = f: updateFeatures f (rec {
-    error_chain_0_7_2.backtrace =
-      (f.error_chain_0_7_2.backtrace or false) ||
-      (f.error_chain_0_7_2.default or false) ||
-      (error_chain_0_7_2.default or false);
-    error_chain_0_7_2.default = (f.error_chain_0_7_2.default or true);
-    error_chain_0_7_2.example_generated =
-      (f.error_chain_0_7_2.example_generated or false) ||
-      (f.error_chain_0_7_2.default or false) ||
-      (error_chain_0_7_2.default or false);
-  }) [];
-  gif_0_9_1 = { features?(gif_0_9_1_features {}) }: gif_0_9_1_ {
-    dependencies = mapFeatures features ([ color_quant_1_0_0 lzw_0_10_0 ]);
-    features = mkFeatures (features.gif_0_9_1 or {});
-  };
-  gif_0_9_1_features = f: updateFeatures f (rec {
-    color_quant_1_0_0.default = true;
-    gif_0_9_1.default = (f.gif_0_9_1.default or true);
-    gif_0_9_1.libc =
-      (f.gif_0_9_1.libc or false) ||
-      (f.gif_0_9_1.c_api or false) ||
-      (gif_0_9_1.c_api or false);
-    gif_0_9_1.raii_no_panic =
-      (f.gif_0_9_1.raii_no_panic or false) ||
-      (f.gif_0_9_1.default or false) ||
-      (gif_0_9_1.default or false);
-    lzw_0_10_0.default = true;
-  }) [ color_quant_1_0_0_features lzw_0_10_0_features ];
-  glob_0_2_11 = { features?(glob_0_2_11_features {}) }: glob_0_2_11_ {};
-  glob_0_2_11_features = f: updateFeatures f ({
-    glob_0_2_11.default = (f.glob_0_2_11.default or true);
-  }) [];
-  image_0_12_3 = { features?(image_0_12_3_features {}) }: image_0_12_3_ {
-    dependencies = mapFeatures features ([ byteorder_1_0_0 enum_primitive_0_1_1 glob_0_2_11 num_iter_0_1_33 num_rational_0_1_36 num_traits_0_1_37 ]
-      ++ (if features.image_0_12_3.gif or false then [ gif_0_9_1 ] else [])
-      ++ (if features.image_0_12_3.jpeg-decoder or false then [ jpeg_decoder_0_1_11 ] else [])
-      ++ (if features.image_0_12_3.png or false then [ png_0_6_2 ] else [])
-      ++ (if features.image_0_12_3.scoped_threadpool or false then [ scoped_threadpool_0_1_7 ] else []));
-    features = mkFeatures (features.image_0_12_3 or {});
-  };
-  image_0_12_3_features = f: updateFeatures f (rec {
-    byteorder_1_0_0.default = true;
-    enum_primitive_0_1_1.default = true;
-    gif_0_9_1.default = true;
-    glob_0_2_11.default = true;
-    image_0_12_3.bmp =
-      (f.image_0_12_3.bmp or false) ||
-      (f.image_0_12_3.default or false) ||
-      (image_0_12_3.default or false) ||
-      (f.image_0_12_3.ico or false) ||
-      (image_0_12_3.ico or false);
-    image_0_12_3.default = (f.image_0_12_3.default or true);
-    image_0_12_3.gif =
-      (f.image_0_12_3.gif or false) ||
-      (f.image_0_12_3.gif_codec or false) ||
-      (image_0_12_3.gif_codec or false);
-    image_0_12_3.gif_codec =
-      (f.image_0_12_3.gif_codec or false) ||
-      (f.image_0_12_3.default or false) ||
-      (image_0_12_3.default or false);
-    image_0_12_3.hdr =
-      (f.image_0_12_3.hdr or false) ||
-      (f.image_0_12_3.default or false) ||
-      (image_0_12_3.default or false);
-    image_0_12_3.ico =
-      (f.image_0_12_3.ico or false) ||
-      (f.image_0_12_3.default or false) ||
-      (image_0_12_3.default or false);
-    image_0_12_3.jpeg =
-      (f.image_0_12_3.jpeg or false) ||
-      (f.image_0_12_3.default or false) ||
-      (image_0_12_3.default or false);
-    image_0_12_3.jpeg-decoder =
-      (f.image_0_12_3.jpeg-decoder or false) ||
-      (f.image_0_12_3.jpeg or false) ||
-      (image_0_12_3.jpeg or false);
-    image_0_12_3.png =
-      (f.image_0_12_3.png or false) ||
-      (f.image_0_12_3.png_codec or false) ||
-      (image_0_12_3.png_codec or false);
-    image_0_12_3.png_codec =
-      (f.image_0_12_3.png_codec or false) ||
-      (f.image_0_12_3.default or false) ||
-      (image_0_12_3.default or false) ||
-      (f.image_0_12_3.ico or false) ||
-      (image_0_12_3.ico or false);
-    image_0_12_3.ppm =
-      (f.image_0_12_3.ppm or false) ||
-      (f.image_0_12_3.default or false) ||
-      (image_0_12_3.default or false);
-    image_0_12_3.scoped_threadpool =
-      (f.image_0_12_3.scoped_threadpool or false) ||
-      (f.image_0_12_3.hdr or false) ||
-      (image_0_12_3.hdr or false);
-    image_0_12_3.tga =
-      (f.image_0_12_3.tga or false) ||
-      (f.image_0_12_3.default or false) ||
-      (image_0_12_3.default or false);
-    image_0_12_3.tiff =
-      (f.image_0_12_3.tiff or false) ||
-      (f.image_0_12_3.default or false) ||
-      (image_0_12_3.default or false);
-    image_0_12_3.webp =
-      (f.image_0_12_3.webp or false) ||
-      (f.image_0_12_3.default or false) ||
-      (image_0_12_3.default or false);
-    jpeg_decoder_0_1_11.default = true;
-    num_iter_0_1_33.default = true;
-    num_rational_0_1_36.default = (f.num_rational_0_1_36.default or false);
-    num_traits_0_1_37.default = true;
-    png_0_6_2.default = true;
-    scoped_threadpool_0_1_7.default = true;
-  }) [ byteorder_1_0_0_features enum_primitive_0_1_1_features gif_0_9_1_features glob_0_2_11_features jpeg_decoder_0_1_11_features num_iter_0_1_33_features num_rational_0_1_36_features num_traits_0_1_37_features png_0_6_2_features scoped_threadpool_0_1_7_features ];
-  inflate_0_1_1 = { features?(inflate_0_1_1_features {}) }: inflate_0_1_1_ {
-    features = mkFeatures (features.inflate_0_1_1 or {});
-  };
-  inflate_0_1_1_features = f: updateFeatures f ({
-    inflate_0_1_1.default = (f.inflate_0_1_1.default or true);
-  }) [];
-  jpeg_decoder_0_1_11 = { features?(jpeg_decoder_0_1_11_features {}) }: jpeg_decoder_0_1_11_ {
-    dependencies = mapFeatures features ([ byteorder_1_0_0 ]
-      ++ (if features.jpeg_decoder_0_1_11.rayon or false then [ rayon_0_6_0 ] else []));
-    features = mkFeatures (features.jpeg_decoder_0_1_11 or {});
-  };
-  jpeg_decoder_0_1_11_features = f: updateFeatures f (rec {
-    byteorder_1_0_0.default = true;
-    jpeg_decoder_0_1_11.default = (f.jpeg_decoder_0_1_11.default or true);
-    jpeg_decoder_0_1_11.rayon =
-      (f.jpeg_decoder_0_1_11.rayon or false) ||
-      (f.jpeg_decoder_0_1_11.default or false) ||
-      (jpeg_decoder_0_1_11.default or false);
-    rayon_0_6_0.default = true;
-  }) [ byteorder_1_0_0_features rayon_0_6_0_features ];
-  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
-    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
-    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
-  };
-  kernel32_sys_0_2_2_features = f: updateFeatures f ({
-    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
-    winapi_0_2_8.default = true;
-    winapi_build_0_1_1.default = true;
-  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
-  libc_0_2_21 = { features?(libc_0_2_21_features {}) }: libc_0_2_21_ {
-    features = mkFeatures (features.libc_0_2_21 or {});
-  };
-  libc_0_2_21_features = f: updateFeatures f (rec {
-    libc_0_2_21.default = (f.libc_0_2_21.default or true);
-    libc_0_2_21.use_std =
-      (f.libc_0_2_21.use_std or false) ||
-      (f.libc_0_2_21.default or false) ||
-      (libc_0_2_21.default or false);
-  }) [];
-  lzw_0_10_0 = { features?(lzw_0_10_0_features {}) }: lzw_0_10_0_ {
-    features = mkFeatures (features.lzw_0_10_0 or {});
-  };
-  lzw_0_10_0_features = f: updateFeatures f (rec {
-    lzw_0_10_0.default = (f.lzw_0_10_0.default or true);
-    lzw_0_10_0.raii_no_panic =
-      (f.lzw_0_10_0.raii_no_panic or false) ||
-      (f.lzw_0_10_0.default or false) ||
-      (lzw_0_10_0.default or false);
-  }) [];
-  metadeps_1_1_1 = { features?(metadeps_1_1_1_features {}) }: metadeps_1_1_1_ {
-    dependencies = mapFeatures features ([ error_chain_0_7_2 pkg_config_0_3_9 toml_0_2_1 ]);
-  };
-  metadeps_1_1_1_features = f: updateFeatures f ({
-    error_chain_0_7_2.default = (f.error_chain_0_7_2.default or false);
-    metadeps_1_1_1.default = (f.metadeps_1_1_1.default or true);
-    pkg_config_0_3_9.default = true;
-    toml_0_2_1.default = (f.toml_0_2_1.default or false);
-  }) [ error_chain_0_7_2_features pkg_config_0_3_9_features toml_0_2_1_features ];
-  num_integer_0_1_33 = { features?(num_integer_0_1_33_features {}) }: num_integer_0_1_33_ {
-    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
-  };
-  num_integer_0_1_33_features = f: updateFeatures f ({
-    num_integer_0_1_33.default = (f.num_integer_0_1_33.default or true);
-    num_traits_0_1_37.default = true;
-  }) [ num_traits_0_1_37_features ];
-  num_iter_0_1_33 = { features?(num_iter_0_1_33_features {}) }: num_iter_0_1_33_ {
-    dependencies = mapFeatures features ([ num_integer_0_1_33 num_traits_0_1_37 ]);
-  };
-  num_iter_0_1_33_features = f: updateFeatures f ({
-    num_integer_0_1_33.default = true;
-    num_iter_0_1_33.default = (f.num_iter_0_1_33.default or true);
-    num_traits_0_1_37.default = true;
-  }) [ num_integer_0_1_33_features num_traits_0_1_37_features ];
-  num_rational_0_1_36 = { features?(num_rational_0_1_36_features {}) }: num_rational_0_1_36_ {
-    dependencies = mapFeatures features ([ num_integer_0_1_33 num_traits_0_1_37 ]);
-    features = mkFeatures (features.num_rational_0_1_36 or {});
-  };
-  num_rational_0_1_36_features = f: updateFeatures f (rec {
-    num_integer_0_1_33.default = true;
-    num_rational_0_1_36.bigint =
-      (f.num_rational_0_1_36.bigint or false) ||
-      (f.num_rational_0_1_36.default or false) ||
-      (num_rational_0_1_36.default or false);
-    num_rational_0_1_36.default = (f.num_rational_0_1_36.default or true);
-    num_rational_0_1_36.num-bigint =
-      (f.num_rational_0_1_36.num-bigint or false) ||
-      (f.num_rational_0_1_36.bigint or false) ||
-      (num_rational_0_1_36.bigint or false);
-    num_rational_0_1_36.rustc-serialize =
-      (f.num_rational_0_1_36.rustc-serialize or false) ||
-      (f.num_rational_0_1_36.default or false) ||
-      (num_rational_0_1_36.default or false);
-    num_traits_0_1_37.default = true;
-  }) [ num_integer_0_1_33_features num_traits_0_1_37_features ];
-  num_traits_0_1_37 = { features?(num_traits_0_1_37_features {}) }: num_traits_0_1_37_ {};
-  num_traits_0_1_37_features = f: updateFeatures f ({
-    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or true);
-  }) [];
-  num_cpus_1_3_0 = { features?(num_cpus_1_3_0_features {}) }: num_cpus_1_3_0_ {
-    dependencies = mapFeatures features ([ libc_0_2_21 ]);
-  };
-  num_cpus_1_3_0_features = f: updateFeatures f ({
-    libc_0_2_21.default = true;
-    num_cpus_1_3_0.default = (f.num_cpus_1_3_0.default or true);
-  }) [ libc_0_2_21_features ];
-  pkg_config_0_3_9 = { features?(pkg_config_0_3_9_features {}) }: pkg_config_0_3_9_ {};
-  pkg_config_0_3_9_features = f: updateFeatures f ({
-    pkg_config_0_3_9.default = (f.pkg_config_0_3_9.default or true);
-  }) [];
-  png_0_6_2 = { features?(png_0_6_2_features {}) }: png_0_6_2_ {
-    dependencies = mapFeatures features ([ bitflags_0_7_0 inflate_0_1_1 num_iter_0_1_33 ]
-      ++ (if features.png_0_6_2.deflate or false then [ deflate_0_7_5 ] else []));
-    features = mkFeatures (features.png_0_6_2 or {});
-  };
-  png_0_6_2_features = f: updateFeatures f (rec {
-    bitflags_0_7_0.default = true;
-    deflate_0_7_5.default = true;
-    inflate_0_1_1.default = true;
-    num_iter_0_1_33.default = true;
-    png_0_6_2.default = (f.png_0_6_2.default or true);
-    png_0_6_2.deflate =
-      (f.png_0_6_2.deflate or false) ||
-      (f.png_0_6_2.png-encoding or false) ||
-      (png_0_6_2.png-encoding or false);
-    png_0_6_2.png-encoding =
-      (f.png_0_6_2.png-encoding or false) ||
-      (f.png_0_6_2.default or false) ||
-      (png_0_6_2.default or false);
-  }) [ bitflags_0_7_0_features deflate_0_7_5_features inflate_0_1_1_features num_iter_0_1_33_features ];
-  rand_0_3_15 = { features?(rand_0_3_15_features {}) }: rand_0_3_15_ {
-    dependencies = mapFeatures features ([ libc_0_2_21 ]);
-  };
-  rand_0_3_15_features = f: updateFeatures f ({
-    libc_0_2_21.default = true;
-    rand_0_3_15.default = (f.rand_0_3_15.default or true);
-  }) [ libc_0_2_21_features ];
-  rayon_0_6_0 = { features?(rayon_0_6_0_features {}) }: rayon_0_6_0_ {
-    dependencies = mapFeatures features ([ deque_0_3_1 libc_0_2_21 num_cpus_1_3_0 rand_0_3_15 ]);
-    features = mkFeatures (features.rayon_0_6_0 or {});
-  };
-  rayon_0_6_0_features = f: updateFeatures f ({
-    deque_0_3_1.default = true;
-    libc_0_2_21.default = true;
-    num_cpus_1_3_0.default = true;
-    rand_0_3_15.default = true;
-    rayon_0_6_0.default = (f.rayon_0_6_0.default or true);
-  }) [ deque_0_3_1_features libc_0_2_21_features num_cpus_1_3_0_features rand_0_3_15_features ];
-  scoped_threadpool_0_1_7 = { features?(scoped_threadpool_0_1_7_features {}) }: scoped_threadpool_0_1_7_ {
-    features = mkFeatures (features.scoped_threadpool_0_1_7 or {});
-  };
-  scoped_threadpool_0_1_7_features = f: updateFeatures f ({
-    scoped_threadpool_0_1_7.default = (f.scoped_threadpool_0_1_7.default or true);
-  }) [];
-  strsim_0_6_0 = { features?(strsim_0_6_0_features {}) }: strsim_0_6_0_ {};
-  strsim_0_6_0_features = f: updateFeatures f ({
-    strsim_0_6_0.default = (f.strsim_0_6_0.default or true);
-  }) [];
-  term_size_0_2_3 = { features?(term_size_0_2_3_features {}) }: term_size_0_2_3_ {
-    dependencies = mapFeatures features ([])
-      ++ (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_21 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
-    features = mkFeatures (features.term_size_0_2_3 or {});
-  };
-  term_size_0_2_3_features = f: updateFeatures f (rec {
-    kernel32_sys_0_2_2.default = true;
-    libc_0_2_21.default = true;
-    term_size_0_2_3.clippy =
-      (f.term_size_0_2_3.clippy or false) ||
-      (f.term_size_0_2_3.lints or false) ||
-      (term_size_0_2_3.lints or false);
-    term_size_0_2_3.default = (f.term_size_0_2_3.default or true);
-    term_size_0_2_3.lints =
-      (f.term_size_0_2_3.lints or false) ||
-      (f.term_size_0_2_3.travis or false) ||
-      (term_size_0_2_3.travis or false);
-    term_size_0_2_3.nightly =
-      (f.term_size_0_2_3.nightly or false) ||
-      (f.term_size_0_2_3.lints or false) ||
-      (term_size_0_2_3.lints or false) ||
-      (f.term_size_0_2_3.travis or false) ||
-      (term_size_0_2_3.travis or false);
-    winapi_0_2_8.default = true;
-  }) [ libc_0_2_21_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
-  toml_0_2_1 = { features?(toml_0_2_1_features {}) }: toml_0_2_1_ {
-    dependencies = mapFeatures features ([]);
-  };
-  toml_0_2_1_features = f: updateFeatures f (rec {
-    toml_0_2_1.default = (f.toml_0_2_1.default or true);
-    toml_0_2_1.rustc-serialize =
-      (f.toml_0_2_1.rustc-serialize or false) ||
-      (f.toml_0_2_1.default or false) ||
-      (toml_0_2_1.default or false);
-  }) [];
-  unicode_segmentation_1_1_0 = { features?(unicode_segmentation_1_1_0_features {}) }: unicode_segmentation_1_1_0_ {
-    features = mkFeatures (features.unicode_segmentation_1_1_0 or {});
-  };
-  unicode_segmentation_1_1_0_features = f: updateFeatures f ({
-    unicode_segmentation_1_1_0.default = (f.unicode_segmentation_1_1_0.default or true);
-  }) [];
-  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
-    features = mkFeatures (features.unicode_width_0_1_4 or {});
-  };
-  unicode_width_0_1_4_features = f: updateFeatures f ({
-    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.default or true);
-  }) [];
-  vec_map_0_7_0 = { features?(vec_map_0_7_0_features {}) }: vec_map_0_7_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.vec_map_0_7_0 or {});
-  };
-  vec_map_0_7_0_features = f: updateFeatures f (rec {
-    vec_map_0_7_0.default = (f.vec_map_0_7_0.default or true);
-    vec_map_0_7_0.serde =
-      (f.vec_map_0_7_0.serde or false) ||
-      (f.vec_map_0_7_0.eders or false) ||
-      (vec_map_0_7_0.eders or false);
-    vec_map_0_7_0.serde_derive =
-      (f.vec_map_0_7_0.serde_derive or false) ||
-      (f.vec_map_0_7_0.eders or false) ||
-      (vec_map_0_7_0.eders or false);
-  }) [];
-  wc_grab_0_3_0 = { features?(wc_grab_0_3_0_features {}) }: wc_grab_0_3_0_ {
-    dependencies = mapFeatures features ([ clap_2_22_0 dbus_0_5_2 image_0_12_3 ]);
-  };
-  wc_grab_0_3_0_features = f: updateFeatures f ({
-    clap_2_22_0.default = true;
-    dbus_0_5_2.default = true;
-    image_0_12_3.default = true;
-    wc_grab_0_3_0.default = (f.wc_grab_0_3_0.default or true);
-  }) [ clap_2_22_0_features dbus_0_5_2_features image_0_12_3_features ];
-  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
-  winapi_0_2_8_features = f: updateFeatures f ({
-    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
-  }) [];
-  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
-  winapi_build_0_1_1_features = f: updateFeatures f ({
-    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
-  }) [];
-}
diff --git a/pkgs/applications/window-managers/way-cooler/wc-lock.nix b/pkgs/applications/window-managers/way-cooler/wc-lock.nix
deleted file mode 100644
index 6ffc5779a0b..00000000000
--- a/pkgs/applications/window-managers/way-cooler/wc-lock.nix
+++ /dev/null
@@ -1,1479 +0,0 @@
-# Generated by carnix 0.6.5: carnix -o wc-lock.nix Cargo.lock
-{ lib, stdenv, buildRustCrate, fetchgit }:
-let kernel = stdenv.hostPlatform.parsed.kernel.name;
-    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
-    mapFeatures = features: map (fun: fun { features = features; });
-    mkFeatures = feat: lib.lists.foldl (features: featureName:
-      if feat.${featureName} or false then
-        [ featureName ] ++ features
-      else
-        features
-    ) [] (builtins.attrNames feat);
-in
-rec {
-  wc_lock = f: wc_lock_0_2_1 { features = wc_lock_0_2_1_features { wc_lock_0_2_1 = f; }; };
-  ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "ansi_term";
-    version = "0.9.0";
-    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
-    sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
-    inherit dependencies buildDependencies features;
-  };
-  atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "atty";
-    version = "0.2.2";
-    authors = [ "softprops <d.tangren@gmail.com>" ];
-    sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
-    inherit dependencies buildDependencies features;
-  };
-  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "bitflags";
-    version = "0.7.0";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
-    inherit dependencies buildDependencies features;
-  };
-  bitflags_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "bitflags";
-    version = "0.8.2";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0whaj3969ysqxzk620sk1isvq6vh85516f2fplvqjrw3syz44sb2";
-    inherit dependencies buildDependencies features;
-  };
-  byteorder_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "byteorder";
-    version = "0.5.3";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "0zsr6b0m0yl5c0yy92nq7srfpczd1dx1xqcx3rlm5fbl8si9clqx";
-    inherit dependencies buildDependencies features;
-  };
-  byteorder_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "byteorder";
-    version = "1.1.0";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "1i2n0161jm00zvzh4bncgv9zrwa6ydbxdn5j4bx0wwn7rvi9zycp";
-    inherit dependencies buildDependencies features;
-  };
-  cc_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "cc";
-    version = "1.0.0";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1s5ha0k6cdy1049a5kpzvhnjc9hjvi18zrcr5dmbqpd03ag751g1";
-    inherit dependencies buildDependencies features;
-  };
-  clap_2_24_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "clap";
-    version = "2.24.2";
-    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
-    sha256 = "0028bkzafprs6n7ing8lnf7iss2a2zq17qmgadipgdfgvww43rmv";
-    inherit dependencies buildDependencies features;
-  };
-  coco_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "coco";
-    version = "0.1.1";
-    authors = [ "Stjepan Glavina <stjepang@gmail.com>" ];
-    sha256 = "0hvj4jaj9y6i38c4dkii8nqq98cgx3kyx78cjqkdvk0aqq5sfr94";
-    inherit dependencies buildDependencies features;
-  };
-  color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "color_quant";
-    version = "1.0.0";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
-    inherit dependencies buildDependencies features;
-  };
-  dbus_0_5_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "dbus";
-    version = "0.5.4";
-    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
-    sha256 = "0qr62splq38b8vfjvpcpk9ph21d63ya7vd2vifs5wc8jzwc309yn";
-    inherit dependencies buildDependencies features;
-  };
-  dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "dlib";
-    version = "0.3.1";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
-    inherit dependencies buildDependencies features;
-  };
-  dtoa_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "dtoa";
-    version = "0.4.1";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "0mgg4r90yby68qg7y8csbclhsm53ac26vsyq615viq535plllhzw";
-    inherit dependencies buildDependencies features;
-  };
-  either_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "either";
-    version = "1.2.0";
-    authors = [ "bluss" ];
-    sha256 = "0l72xaf1kwzgbl3andf3d2ggz7km9059rbmp90iywww8inlnqppp";
-    inherit dependencies buildDependencies features;
-  };
-  enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "enum_primitive";
-    version = "0.1.1";
-    authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
-    sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
-    inherit dependencies buildDependencies features;
-  };
-  error_chain_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "error-chain";
-    version = "0.10.0";
-    authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
-    sha256 = "1xxbzd8cjlpzsb9fsih7mdnndhzrvykj0w77yg90qc85az1xwy5z";
-    inherit dependencies buildDependencies features;
-  };
-  flate2_0_2_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "flate2";
-    version = "0.2.20";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1am0d2vmqym1vcg7rvv516vpcrbhdn1jisy0q03r3nbzdzh54ppl";
-    inherit dependencies buildDependencies features;
-  };
-  fs2_0_2_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "fs2";
-    version = "0.2.5";
-    authors = [ "Dan Burkert <dan@danburkert.com>" ];
-    sha256 = "0j6l5r95jigbl0lgkm69c82dzq10jipjbm9qnni147hb45gyw790";
-    inherit dependencies buildDependencies features;
-  };
-  futures_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "futures";
-    version = "0.1.16";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0ndk8cl6l600a95q8il2c3y38jz50nhfsczps0nziadqdd45gy2b";
-    inherit dependencies buildDependencies features;
-  };
-  gcc_0_3_50_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "gcc";
-    version = "0.3.50";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "032izcbbyiakv9ck5j3s27p3ddx4468n7qpaxgwi5iswmimjaaj0";
-    inherit dependencies buildDependencies features;
-  };
-  gif_0_9_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "gif";
-    version = "0.9.2";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "0dl76jrn6127w3bdg2b58p5psf8fpnbzdxdkw1i35ac8dn4vxcqa";
-    inherit dependencies buildDependencies features;
-  };
-  glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "glob";
-    version = "0.2.11";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
-    inherit dependencies buildDependencies features;
-  };
-  image_0_10_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "image";
-    version = "0.10.4";
-    authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
-    sha256 = "1pwrs7k5760b38i1lg872x9q2zc6xvhs7mjhlzvjnr5p85zx2fbw";
-    libPath = "./src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "inflate";
-    version = "0.1.1";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
-    inherit dependencies buildDependencies features;
-  };
-  itoa_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "itoa";
-    version = "0.3.1";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "0jp1wvfw0qqbyz0whbycp7xr5nx1ds5plh4wsfyj503xmjf9ab4k";
-    inherit dependencies buildDependencies features;
-  };
-  jpeg_decoder_0_1_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "jpeg-decoder";
-    version = "0.1.13";
-    authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
-    sha256 = "0w16gbywlm9p0p3wx34b85q4d1izrx89afcsxlc6g11cx2js4fa2";
-    inherit dependencies buildDependencies features;
-  };
-  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "kernel32-sys";
-    version = "0.2.2";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-    libName = "kernel32";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  lazy_static_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "lazy_static";
-    version = "0.2.8";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "1xbpxx7cd5kl60g87g43q80jxyrsildhxfjc42jb1x4jncknpwbl";
-    inherit dependencies buildDependencies features;
-  };
-  libc_0_2_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "libc";
-    version = "0.2.23";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1i29f6k26fmv81c5bjc6hw2j95sd01h9ad66qxdc755b24xfa9jm";
-    inherit dependencies buildDependencies features;
-  };
-  libdbus_sys_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "libdbus-sys";
-    version = "0.1.1";
-    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
-    sha256 = "14kpislv2zazmgv5f8by4zkgkjxd0cwab8z6621kskjdwyir1wpy";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "libloading";
-    version = "0.3.4";
-    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
-    sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "lzw";
-    version = "0.10.0";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
-    inherit dependencies buildDependencies features;
-  };
-  memmap_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "memmap";
-    version = "0.4.0";
-    authors = [ "Dan Burkert <dan@danburkert.com>" ];
-    sha256 = "0q2gm5p8n9najc8kccbxxkannmnjh85rin4k8d4y1kg5ymdp6kll";
-    inherit dependencies buildDependencies features;
-  };
-  metadeps_1_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "metadeps";
-    version = "1.1.2";
-    authors = [ "Josh Triplett <josh@joshtriplett.org>" ];
-    sha256 = "00dpxjls9fq6fs5gr9v3hkqxmb1zwnhh8b56q3dnzghppjf3ivk3";
-    inherit dependencies buildDependencies features;
-  };
-  miniz_sys_0_1_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "miniz-sys";
-    version = "0.1.10";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "11vg6phafxil87nbxgrlhcx5hjr3145wsbwwkfmibvnmzxfdmvln";
-    libPath = "lib.rs";
-    libName = "miniz_sys";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  num_bigint_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-bigint";
-    version = "0.1.40";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0pkxd9mb4chdbipprxjc8ll7kjh79n278s2z663zmd80yg5xi788";
-    inherit dependencies buildDependencies features;
-  };
-  num_integer_0_1_35_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-integer";
-    version = "0.1.35";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0xybj8isi9b6wc646d5rc043i8l8j6wy0vrl4pn995qms9fxbbcc";
-    inherit dependencies buildDependencies features;
-  };
-  num_iter_0_1_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-iter";
-    version = "0.1.34";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "02cld7x9dzbqbs6sxxzq1i22z3awlcd6ljkgvhkfr9rsnaxphzl9";
-    inherit dependencies buildDependencies features;
-  };
-  num_rational_0_1_39_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-rational";
-    version = "0.1.39";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1qsacdfp97zgpajc2pgbrbga3yag1f0k7yz0gi78vd165gxdwk3m";
-    inherit dependencies buildDependencies features;
-  };
-  num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num-traits";
-    version = "0.1.37";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
-    inherit dependencies buildDependencies features;
-  };
-  num_cpus_1_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num_cpus";
-    version = "1.6.2";
-    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
-    sha256 = "0wxfzxsk05xbkph5qcvdqyi334zn0pnpahzi7n7iagxbb68145rm";
-    inherit dependencies buildDependencies features;
-  };
-  phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "phf";
-    version = "0.7.21";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
-    libPath = "src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "phf_codegen";
-    version = "0.7.21";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
-    inherit dependencies buildDependencies features;
-  };
-  phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "phf_generator";
-    version = "0.7.21";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
-    inherit dependencies buildDependencies features;
-  };
-  phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "phf_shared";
-    version = "0.7.21";
-    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-    sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
-    libPath = "src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "pkg-config";
-    version = "0.3.9";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
-    inherit dependencies buildDependencies features;
-  };
-  png_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "png";
-    version = "0.5.2";
-    authors = [ "nwin <nwin@users.noreply.github.com>" ];
-    sha256 = "1pgann3f1ysgf8y1acw86v4s3ji1xk85ri353biyvh4i1cpn1g3q";
-    inherit dependencies buildDependencies features;
-  };
-  rand_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rand";
-    version = "0.3.15";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
-    inherit dependencies buildDependencies features;
-  };
-  rayon_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rayon";
-    version = "0.8.2";
-    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
-    sha256 = "0d0mddg1k75hb9138pn8lysy2095jijrinskqbpgfr73s0jx6dq8";
-    inherit dependencies buildDependencies features;
-  };
-  rayon_core_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rayon-core";
-    version = "1.2.1";
-    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
-    sha256 = "12xv2r0dqrgvla24bl5mfvcw0599dlhrj0mx620nq95nyds753kk";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  rustc_serialize_0_3_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rustc-serialize";
-    version = "0.3.24";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
-    inherit dependencies buildDependencies features;
-  };
-  rustc_version_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rustc_version";
-    version = "0.1.7";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "0plm9pbyvcwfibd0kbhzil9xmr1bvqi8fgwlfw0x4vali8s6s99p";
-    inherit dependencies buildDependencies features;
-  };
-  scoped_threadpool_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "scoped_threadpool";
-    version = "0.1.8";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "1al42hqbbijpah9bc6hw9c49nhnyrc0sj274ja1q3k9305c3s5a6";
-    inherit dependencies buildDependencies features;
-  };
-  scopeguard_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "scopeguard";
-    version = "0.3.2";
-    authors = [ "bluss" ];
-    sha256 = "0xlvfawva4fnp6kwr5xjwf0q2d1w6di81nhfby1sa55xj1ia5zs2";
-    inherit dependencies buildDependencies features;
-  };
-  semver_0_1_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "semver";
-    version = "0.1.20";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "05cdig0071hls2k8lxbqmyqpl0zjmc53i2d43mwzps033b8njh4n";
-    inherit dependencies buildDependencies features;
-  };
-  serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde";
-    version = "0.9.15";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-    sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
-    inherit dependencies buildDependencies features;
-  };
-  serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde_json";
-    version = "0.9.10";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-    sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
-    inherit dependencies buildDependencies features;
-  };
-  siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "siphasher";
-    version = "0.2.2";
-    authors = [ "Frank Denis <github@pureftpd.org>" ];
-    sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
-    inherit dependencies buildDependencies features;
-  };
-  strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "strsim";
-    version = "0.6.0";
-    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
-    sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
-    inherit dependencies buildDependencies features;
-  };
-  target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "target_build_utils";
-    version = "0.3.1";
-    authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
-    sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  tempfile_2_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tempfile";
-    version = "2.1.5";
-    authors = [ "Steven Allen <steven@stebalien.com>" ];
-    sha256 = "1yz8aaj78z9gsn4b71y0m6fa5bnxhqafcczhxvmwra56k943aqkw";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  term_size_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "term_size";
-    version = "0.3.0";
-    authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
-    sha256 = "054d5avad49sy5nfaaaphai4kv4rmdh6q0npchnvdhpxp02lcfhs";
-    inherit dependencies buildDependencies features;
-  };
-  toml_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "toml";
-    version = "0.2.1";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0p4rkaqhmk4fp6iqpxfgp3p98hxhbs2wmla3fq531n875h922yqs";
-    inherit dependencies buildDependencies features;
-  };
-  unicode_segmentation_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unicode-segmentation";
-    version = "1.2.0";
-    authors = [ "kwantam <kwantam@gmail.com>" ];
-    sha256 = "0yz43x7wrhr3n7a2zsinx3r60yxsdqicg8a5kycyyhdaq1zmiz1y";
-    inherit dependencies buildDependencies features;
-  };
-  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unicode-width";
-    version = "0.1.4";
-    authors = [ "kwantam <kwantam@gmail.com>" ];
-    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
-    inherit dependencies buildDependencies features;
-  };
-  vec_map_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "vec_map";
-    version = "0.8.0";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
-    sha256 = "07sgxp3cf1a4cxm9n3r27fcvqmld32bl2576mrcahnvm34j11xay";
-    inherit dependencies buildDependencies features;
-  };
-  way_cooler_client_helpers_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "way-cooler-client-helpers";
-    version = "0.1.0";
-    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
-    sha256 = "0749lh5crd0rhq4dxij9mb3y5902laazjd01l6ci5782bjfk4s39";
-    inherit dependencies buildDependencies features;
-  };
-  wayland_client_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wayland-client";
-    version = "0.9.6";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "1908h6ilvq2cxph1lxv1vzrb3dcfx4x6pf6pszxwifsfqva8nm34";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  wayland_kbd_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wayland-kbd";
-    version = "0.9.0";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "1x0f7n79hjwf5fclf62fpzjp05xdzc93xw84zgyrn8f1hill3qhj";
-    inherit dependencies buildDependencies features;
-  };
-  wayland_scanner_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wayland-scanner";
-    version = "0.9.6";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "1w5cyc48g4x5w3rakb4sji5328rl5yph1abmjbh5h4slkm4n76g1";
-    inherit dependencies buildDependencies features;
-  };
-  wayland_sys_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wayland-sys";
-    version = "0.9.6";
-    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-    sha256 = "0izw50pmj1r10hmr29gi8ps01avs6zjwisywijlq7wr268h6yxcg";
-    inherit dependencies buildDependencies features;
-  };
-  wc_lock_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wc-lock";
-    version = "0.2.1";
-    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
-    sha256 = "0ikmir7azihxiyzgb0wnvk81yinmn2l6k93bnb1qg4k704zcyq84";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.2.8";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi-build";
-    version = "0.1.1";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-    libName = "build";
-    inherit dependencies buildDependencies features;
-  };
-  xml_rs_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "xml-rs";
-    version = "0.3.6";
-    authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
-    sha256 = "1g1cclib7fj900m4669vxlz45lxcq0m36g7cd8chl494c2xsgj15";
-    libPath = "src/lib.rs";
-    libName = "xml";
-    crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
-    inherit dependencies buildDependencies features;
-  };
-  ansi_term_0_9_0 = { features?(ansi_term_0_9_0_features {}) }: ansi_term_0_9_0_ {};
-  ansi_term_0_9_0_features = f: updateFeatures f ({
-    ansi_term_0_9_0.default = (f.ansi_term_0_9_0.default or true);
-  }) [];
-  atty_0_2_2 = { features?(atty_0_2_2_features {}) }: atty_0_2_2_ {
-    dependencies = (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_23 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
-  };
-  atty_0_2_2_features = f: updateFeatures f ({
-    atty_0_2_2.default = (f.atty_0_2_2.default or true);
-    kernel32_sys_0_2_2.default = true;
-    libc_0_2_23.default = true;
-    winapi_0_2_8.default = true;
-  }) [ libc_0_2_23_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
-  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
-  bitflags_0_7_0_features = f: updateFeatures f ({
-    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
-  }) [];
-  bitflags_0_8_2 = { features?(bitflags_0_8_2_features {}) }: bitflags_0_8_2_ {
-    features = mkFeatures (features.bitflags_0_8_2 or {});
-  };
-  bitflags_0_8_2_features = f: updateFeatures f (rec {
-    bitflags_0_8_2.default = (f.bitflags_0_8_2.default or true);
-    bitflags_0_8_2.i128 =
-      (f.bitflags_0_8_2.i128 or false) ||
-      (f.bitflags_0_8_2.unstable or false) ||
-      (bitflags_0_8_2.unstable or false);
-  }) [];
-  byteorder_0_5_3 = { features?(byteorder_0_5_3_features {}) }: byteorder_0_5_3_ {
-    features = mkFeatures (features.byteorder_0_5_3 or {});
-  };
-  byteorder_0_5_3_features = f: updateFeatures f (rec {
-    byteorder_0_5_3.default = (f.byteorder_0_5_3.default or true);
-    byteorder_0_5_3.std =
-      (f.byteorder_0_5_3.std or false) ||
-      (f.byteorder_0_5_3.default or false) ||
-      (byteorder_0_5_3.default or false);
-  }) [];
-  byteorder_1_1_0 = { features?(byteorder_1_1_0_features {}) }: byteorder_1_1_0_ {
-    features = mkFeatures (features.byteorder_1_1_0 or {});
-  };
-  byteorder_1_1_0_features = f: updateFeatures f (rec {
-    byteorder_1_1_0.default = (f.byteorder_1_1_0.default or true);
-    byteorder_1_1_0.std =
-      (f.byteorder_1_1_0.std or false) ||
-      (f.byteorder_1_1_0.default or false) ||
-      (byteorder_1_1_0.default or false);
-  }) [];
-  cc_1_0_0 = { features?(cc_1_0_0_features {}) }: cc_1_0_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.cc_1_0_0 or {});
-  };
-  cc_1_0_0_features = f: updateFeatures f (rec {
-    cc_1_0_0.default = (f.cc_1_0_0.default or true);
-    cc_1_0_0.rayon =
-      (f.cc_1_0_0.rayon or false) ||
-      (f.cc_1_0_0.parallel or false) ||
-      (cc_1_0_0.parallel or false);
-  }) [];
-  clap_2_24_2 = { features?(clap_2_24_2_features {}) }: clap_2_24_2_ {
-    dependencies = mapFeatures features ([ bitflags_0_8_2 unicode_segmentation_1_2_0 unicode_width_0_1_4 vec_map_0_8_0 ]
-      ++ (if features.clap_2_24_2.ansi_term or false then [ ansi_term_0_9_0 ] else [])
-      ++ (if features.clap_2_24_2.atty or false then [ atty_0_2_2 ] else [])
-      ++ (if features.clap_2_24_2.strsim or false then [ strsim_0_6_0 ] else [])
-      ++ (if features.clap_2_24_2.term_size or false then [ term_size_0_3_0 ] else []));
-    features = mkFeatures (features.clap_2_24_2 or {});
-  };
-  clap_2_24_2_features = f: updateFeatures f (rec {
-    ansi_term_0_9_0.default = true;
-    atty_0_2_2.default = true;
-    bitflags_0_8_2.default = true;
-    clap_2_24_2.ansi_term =
-      (f.clap_2_24_2.ansi_term or false) ||
-      (f.clap_2_24_2.color or false) ||
-      (clap_2_24_2.color or false);
-    clap_2_24_2.atty =
-      (f.clap_2_24_2.atty or false) ||
-      (f.clap_2_24_2.color or false) ||
-      (clap_2_24_2.color or false);
-    clap_2_24_2.clippy =
-      (f.clap_2_24_2.clippy or false) ||
-      (f.clap_2_24_2.lints or false) ||
-      (clap_2_24_2.lints or false);
-    clap_2_24_2.color =
-      (f.clap_2_24_2.color or false) ||
-      (f.clap_2_24_2.default or false) ||
-      (clap_2_24_2.default or false);
-    clap_2_24_2.default = (f.clap_2_24_2.default or true);
-    clap_2_24_2.strsim =
-      (f.clap_2_24_2.strsim or false) ||
-      (f.clap_2_24_2.suggestions or false) ||
-      (clap_2_24_2.suggestions or false);
-    clap_2_24_2.suggestions =
-      (f.clap_2_24_2.suggestions or false) ||
-      (f.clap_2_24_2.default or false) ||
-      (clap_2_24_2.default or false);
-    clap_2_24_2.term_size =
-      (f.clap_2_24_2.term_size or false) ||
-      (f.clap_2_24_2.wrap_help or false) ||
-      (clap_2_24_2.wrap_help or false);
-    clap_2_24_2.wrap_help =
-      (f.clap_2_24_2.wrap_help or false) ||
-      (f.clap_2_24_2.default or false) ||
-      (clap_2_24_2.default or false);
-    clap_2_24_2.yaml-rust =
-      (f.clap_2_24_2.yaml-rust or false) ||
-      (f.clap_2_24_2.yaml or false) ||
-      (clap_2_24_2.yaml or false);
-    strsim_0_6_0.default = true;
-    term_size_0_3_0.default = true;
-    unicode_segmentation_1_2_0.default = true;
-    unicode_width_0_1_4.default = true;
-    vec_map_0_8_0.default = true;
-  }) [ ansi_term_0_9_0_features atty_0_2_2_features bitflags_0_8_2_features strsim_0_6_0_features term_size_0_3_0_features unicode_segmentation_1_2_0_features unicode_width_0_1_4_features vec_map_0_8_0_features ];
-  coco_0_1_1 = { features?(coco_0_1_1_features {}) }: coco_0_1_1_ {
-    dependencies = mapFeatures features ([ either_1_2_0 scopeguard_0_3_2 ]);
-    features = mkFeatures (features.coco_0_1_1 or {});
-  };
-  coco_0_1_1_features = f: updateFeatures f ({
-    coco_0_1_1.default = (f.coco_0_1_1.default or true);
-    either_1_2_0.default = true;
-    scopeguard_0_3_2.default = true;
-  }) [ either_1_2_0_features scopeguard_0_3_2_features ];
-  color_quant_1_0_0 = { features?(color_quant_1_0_0_features {}) }: color_quant_1_0_0_ {};
-  color_quant_1_0_0_features = f: updateFeatures f ({
-    color_quant_1_0_0.default = (f.color_quant_1_0_0.default or true);
-  }) [];
-  dbus_0_5_4 = { features?(dbus_0_5_4_features {}) }: dbus_0_5_4_ {
-    dependencies = mapFeatures features ([ libc_0_2_23 libdbus_sys_0_1_1 ]);
-    features = mkFeatures (features.dbus_0_5_4 or {});
-  };
-  dbus_0_5_4_features = f: updateFeatures f ({
-    dbus_0_5_4.default = (f.dbus_0_5_4.default or true);
-    libc_0_2_23.default = true;
-    libdbus_sys_0_1_1.default = true;
-  }) [ libc_0_2_23_features libdbus_sys_0_1_1_features ];
-  dlib_0_3_1 = { features?(dlib_0_3_1_features {}) }: dlib_0_3_1_ {
-    dependencies = mapFeatures features ([ libloading_0_3_4 ]);
-    features = mkFeatures (features.dlib_0_3_1 or {});
-  };
-  dlib_0_3_1_features = f: updateFeatures f ({
-    dlib_0_3_1.default = (f.dlib_0_3_1.default or true);
-    libloading_0_3_4.default = true;
-  }) [ libloading_0_3_4_features ];
-  dtoa_0_4_1 = { features?(dtoa_0_4_1_features {}) }: dtoa_0_4_1_ {};
-  dtoa_0_4_1_features = f: updateFeatures f ({
-    dtoa_0_4_1.default = (f.dtoa_0_4_1.default or true);
-  }) [];
-  either_1_2_0 = { features?(either_1_2_0_features {}) }: either_1_2_0_ {
-    features = mkFeatures (features.either_1_2_0 or {});
-  };
-  either_1_2_0_features = f: updateFeatures f (rec {
-    either_1_2_0.default = (f.either_1_2_0.default or true);
-    either_1_2_0.use_std =
-      (f.either_1_2_0.use_std or false) ||
-      (f.either_1_2_0.default or false) ||
-      (either_1_2_0.default or false);
-  }) [];
-  enum_primitive_0_1_1 = { features?(enum_primitive_0_1_1_features {}) }: enum_primitive_0_1_1_ {
-    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
-  };
-  enum_primitive_0_1_1_features = f: updateFeatures f ({
-    enum_primitive_0_1_1.default = (f.enum_primitive_0_1_1.default or true);
-    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or false);
-  }) [ num_traits_0_1_37_features ];
-  error_chain_0_10_0 = { features?(error_chain_0_10_0_features {}) }: error_chain_0_10_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.error_chain_0_10_0 or {});
-  };
-  error_chain_0_10_0_features = f: updateFeatures f (rec {
-    error_chain_0_10_0.backtrace =
-      (f.error_chain_0_10_0.backtrace or false) ||
-      (f.error_chain_0_10_0.default or false) ||
-      (error_chain_0_10_0.default or false);
-    error_chain_0_10_0.default = (f.error_chain_0_10_0.default or true);
-    error_chain_0_10_0.example_generated =
-      (f.error_chain_0_10_0.example_generated or false) ||
-      (f.error_chain_0_10_0.default or false) ||
-      (error_chain_0_10_0.default or false);
-  }) [];
-  flate2_0_2_20 = { features?(flate2_0_2_20_features {}) }: flate2_0_2_20_ {
-    dependencies = mapFeatures features ([ libc_0_2_23 ]
-      ++ (if features.flate2_0_2_20.miniz-sys or false then [ miniz_sys_0_1_10 ] else []));
-    features = mkFeatures (features.flate2_0_2_20 or {});
-  };
-  flate2_0_2_20_features = f: updateFeatures f (rec {
-    flate2_0_2_20.default = (f.flate2_0_2_20.default or true);
-    flate2_0_2_20.futures =
-      (f.flate2_0_2_20.futures or false) ||
-      (f.flate2_0_2_20.tokio or false) ||
-      (flate2_0_2_20.tokio or false);
-    flate2_0_2_20.libz-sys =
-      (f.flate2_0_2_20.libz-sys or false) ||
-      (f.flate2_0_2_20.zlib or false) ||
-      (flate2_0_2_20.zlib or false);
-    flate2_0_2_20.miniz-sys =
-      (f.flate2_0_2_20.miniz-sys or false) ||
-      (f.flate2_0_2_20.default or false) ||
-      (flate2_0_2_20.default or false);
-    flate2_0_2_20.tokio-io =
-      (f.flate2_0_2_20.tokio-io or false) ||
-      (f.flate2_0_2_20.tokio or false) ||
-      (flate2_0_2_20.tokio or false);
-    libc_0_2_23.default = true;
-    miniz_sys_0_1_10.default = true;
-  }) [ libc_0_2_23_features miniz_sys_0_1_10_features ];
-  fs2_0_2_5 = { features?(fs2_0_2_5_features {}) }: fs2_0_2_5_ {
-    dependencies = mapFeatures features ([ kernel32_sys_0_2_2 libc_0_2_23 winapi_0_2_8 ]);
-  };
-  fs2_0_2_5_features = f: updateFeatures f ({
-    fs2_0_2_5.default = (f.fs2_0_2_5.default or true);
-    kernel32_sys_0_2_2.default = true;
-    libc_0_2_23.default = true;
-    winapi_0_2_8.default = true;
-  }) [ kernel32_sys_0_2_2_features libc_0_2_23_features winapi_0_2_8_features ];
-  futures_0_1_16 = { features?(futures_0_1_16_features {}) }: futures_0_1_16_ {
-    features = mkFeatures (features.futures_0_1_16 or {});
-  };
-  futures_0_1_16_features = f: updateFeatures f (rec {
-    futures_0_1_16.default = (f.futures_0_1_16.default or true);
-    futures_0_1_16.use_std =
-      (f.futures_0_1_16.use_std or false) ||
-      (f.futures_0_1_16.default or false) ||
-      (futures_0_1_16.default or false);
-    futures_0_1_16.with-deprecated =
-      (f.futures_0_1_16.with-deprecated or false) ||
-      (f.futures_0_1_16.default or false) ||
-      (futures_0_1_16.default or false);
-  }) [];
-  gcc_0_3_50 = { features?(gcc_0_3_50_features {}) }: gcc_0_3_50_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.gcc_0_3_50 or {});
-  };
-  gcc_0_3_50_features = f: updateFeatures f (rec {
-    gcc_0_3_50.default = (f.gcc_0_3_50.default or true);
-    gcc_0_3_50.rayon =
-      (f.gcc_0_3_50.rayon or false) ||
-      (f.gcc_0_3_50.parallel or false) ||
-      (gcc_0_3_50.parallel or false);
-  }) [];
-  gif_0_9_2 = { features?(gif_0_9_2_features {}) }: gif_0_9_2_ {
-    dependencies = mapFeatures features ([ color_quant_1_0_0 lzw_0_10_0 ]);
-    features = mkFeatures (features.gif_0_9_2 or {});
-  };
-  gif_0_9_2_features = f: updateFeatures f (rec {
-    color_quant_1_0_0.default = true;
-    gif_0_9_2.default = (f.gif_0_9_2.default or true);
-    gif_0_9_2.libc =
-      (f.gif_0_9_2.libc or false) ||
-      (f.gif_0_9_2.c_api or false) ||
-      (gif_0_9_2.c_api or false);
-    gif_0_9_2.raii_no_panic =
-      (f.gif_0_9_2.raii_no_panic or false) ||
-      (f.gif_0_9_2.default or false) ||
-      (gif_0_9_2.default or false);
-    lzw_0_10_0.default = true;
-  }) [ color_quant_1_0_0_features lzw_0_10_0_features ];
-  glob_0_2_11 = { features?(glob_0_2_11_features {}) }: glob_0_2_11_ {};
-  glob_0_2_11_features = f: updateFeatures f ({
-    glob_0_2_11.default = (f.glob_0_2_11.default or true);
-  }) [];
-  image_0_10_4 = { features?(image_0_10_4_features {}) }: image_0_10_4_ {
-    dependencies = mapFeatures features ([ byteorder_0_5_3 enum_primitive_0_1_1 glob_0_2_11 num_iter_0_1_34 num_rational_0_1_39 num_traits_0_1_37 ]
-      ++ (if features.image_0_10_4.gif or false then [ gif_0_9_2 ] else [])
-      ++ (if features.image_0_10_4.jpeg-decoder or false then [ jpeg_decoder_0_1_13 ] else [])
-      ++ (if features.image_0_10_4.png or false then [ png_0_5_2 ] else [])
-      ++ (if features.image_0_10_4.scoped_threadpool or false then [ scoped_threadpool_0_1_8 ] else []));
-    features = mkFeatures (features.image_0_10_4 or {});
-  };
-  image_0_10_4_features = f: updateFeatures f (rec {
-    byteorder_0_5_3.default = true;
-    enum_primitive_0_1_1.default = true;
-    gif_0_9_2.default = true;
-    glob_0_2_11.default = true;
-    image_0_10_4.bmp =
-      (f.image_0_10_4.bmp or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false) ||
-      (f.image_0_10_4.ico or false) ||
-      (image_0_10_4.ico or false);
-    image_0_10_4.default = (f.image_0_10_4.default or true);
-    image_0_10_4.gif =
-      (f.image_0_10_4.gif or false) ||
-      (f.image_0_10_4.gif_codec or false) ||
-      (image_0_10_4.gif_codec or false);
-    image_0_10_4.gif_codec =
-      (f.image_0_10_4.gif_codec or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.hdr =
-      (f.image_0_10_4.hdr or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.ico =
-      (f.image_0_10_4.ico or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.jpeg =
-      (f.image_0_10_4.jpeg or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.jpeg-decoder =
-      (f.image_0_10_4.jpeg-decoder or false) ||
-      (f.image_0_10_4.jpeg or false) ||
-      (image_0_10_4.jpeg or false);
-    image_0_10_4.png =
-      (f.image_0_10_4.png or false) ||
-      (f.image_0_10_4.png_codec or false) ||
-      (image_0_10_4.png_codec or false);
-    image_0_10_4.png_codec =
-      (f.image_0_10_4.png_codec or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false) ||
-      (f.image_0_10_4.ico or false) ||
-      (image_0_10_4.ico or false);
-    image_0_10_4.ppm =
-      (f.image_0_10_4.ppm or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.scoped_threadpool =
-      (f.image_0_10_4.scoped_threadpool or false) ||
-      (f.image_0_10_4.hdr or false) ||
-      (image_0_10_4.hdr or false);
-    image_0_10_4.tga =
-      (f.image_0_10_4.tga or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.tiff =
-      (f.image_0_10_4.tiff or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    image_0_10_4.webp =
-      (f.image_0_10_4.webp or false) ||
-      (f.image_0_10_4.default or false) ||
-      (image_0_10_4.default or false);
-    jpeg_decoder_0_1_13.default = true;
-    num_iter_0_1_34.default = true;
-    num_rational_0_1_39.default = true;
-    num_traits_0_1_37.default = true;
-    png_0_5_2.default = true;
-    scoped_threadpool_0_1_8.default = true;
-  }) [ byteorder_0_5_3_features enum_primitive_0_1_1_features gif_0_9_2_features glob_0_2_11_features jpeg_decoder_0_1_13_features num_iter_0_1_34_features num_rational_0_1_39_features num_traits_0_1_37_features png_0_5_2_features scoped_threadpool_0_1_8_features ];
-  inflate_0_1_1 = { features?(inflate_0_1_1_features {}) }: inflate_0_1_1_ {
-    features = mkFeatures (features.inflate_0_1_1 or {});
-  };
-  inflate_0_1_1_features = f: updateFeatures f ({
-    inflate_0_1_1.default = (f.inflate_0_1_1.default or true);
-  }) [];
-  itoa_0_3_1 = { features?(itoa_0_3_1_features {}) }: itoa_0_3_1_ {};
-  itoa_0_3_1_features = f: updateFeatures f ({
-    itoa_0_3_1.default = (f.itoa_0_3_1.default or true);
-  }) [];
-  jpeg_decoder_0_1_13 = { features?(jpeg_decoder_0_1_13_features {}) }: jpeg_decoder_0_1_13_ {
-    dependencies = mapFeatures features ([ byteorder_1_1_0 ]
-      ++ (if features.jpeg_decoder_0_1_13.rayon or false then [ rayon_0_8_2 ] else []));
-    features = mkFeatures (features.jpeg_decoder_0_1_13 or {});
-  };
-  jpeg_decoder_0_1_13_features = f: updateFeatures f (rec {
-    byteorder_1_1_0.default = true;
-    jpeg_decoder_0_1_13.default = (f.jpeg_decoder_0_1_13.default or true);
-    jpeg_decoder_0_1_13.rayon =
-      (f.jpeg_decoder_0_1_13.rayon or false) ||
-      (f.jpeg_decoder_0_1_13.default or false) ||
-      (jpeg_decoder_0_1_13.default or false);
-    rayon_0_8_2.default = true;
-  }) [ byteorder_1_1_0_features rayon_0_8_2_features ];
-  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
-    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
-    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
-  };
-  kernel32_sys_0_2_2_features = f: updateFeatures f ({
-    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
-    winapi_0_2_8.default = true;
-    winapi_build_0_1_1.default = true;
-  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
-  lazy_static_0_2_8 = { features?(lazy_static_0_2_8_features {}) }: lazy_static_0_2_8_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.lazy_static_0_2_8 or {});
-  };
-  lazy_static_0_2_8_features = f: updateFeatures f (rec {
-    lazy_static_0_2_8.default = (f.lazy_static_0_2_8.default or true);
-    lazy_static_0_2_8.nightly =
-      (f.lazy_static_0_2_8.nightly or false) ||
-      (f.lazy_static_0_2_8.spin_no_std or false) ||
-      (lazy_static_0_2_8.spin_no_std or false);
-    lazy_static_0_2_8.spin =
-      (f.lazy_static_0_2_8.spin or false) ||
-      (f.lazy_static_0_2_8.spin_no_std or false) ||
-      (lazy_static_0_2_8.spin_no_std or false);
-  }) [];
-  libc_0_2_23 = { features?(libc_0_2_23_features {}) }: libc_0_2_23_ {
-    features = mkFeatures (features.libc_0_2_23 or {});
-  };
-  libc_0_2_23_features = f: updateFeatures f (rec {
-    libc_0_2_23.default = (f.libc_0_2_23.default or true);
-    libc_0_2_23.use_std =
-      (f.libc_0_2_23.use_std or false) ||
-      (f.libc_0_2_23.default or false) ||
-      (libc_0_2_23.default or false);
-  }) [];
-  libdbus_sys_0_1_1 = { features?(libdbus_sys_0_1_1_features {}) }: libdbus_sys_0_1_1_ {
-    buildDependencies = mapFeatures features ([ metadeps_1_1_2 ]);};
-  libdbus_sys_0_1_1_features = f: updateFeatures f ({
-    libdbus_sys_0_1_1.default = (f.libdbus_sys_0_1_1.default or true);
-    metadeps_1_1_2.default = true;
-  }) [ metadeps_1_1_2_features ];
-  libloading_0_3_4 = { features?(libloading_0_3_4_features {}) }: libloading_0_3_4_ {
-    dependencies = mapFeatures features ([ lazy_static_0_2_8 ])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
-    buildDependencies = mapFeatures features ([ target_build_utils_0_3_1 ]);
-  };
-  libloading_0_3_4_features = f: updateFeatures f ({
-    kernel32_sys_0_2_2.default = true;
-    lazy_static_0_2_8.default = true;
-    libloading_0_3_4.default = (f.libloading_0_3_4.default or true);
-    target_build_utils_0_3_1.default = true;
-    winapi_0_2_8.default = true;
-  }) [ lazy_static_0_2_8_features target_build_utils_0_3_1_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
-  lzw_0_10_0 = { features?(lzw_0_10_0_features {}) }: lzw_0_10_0_ {
-    features = mkFeatures (features.lzw_0_10_0 or {});
-  };
-  lzw_0_10_0_features = f: updateFeatures f (rec {
-    lzw_0_10_0.default = (f.lzw_0_10_0.default or true);
-    lzw_0_10_0.raii_no_panic =
-      (f.lzw_0_10_0.raii_no_panic or false) ||
-      (f.lzw_0_10_0.default or false) ||
-      (lzw_0_10_0.default or false);
-  }) [];
-  memmap_0_4_0 = { features?(memmap_0_4_0_features {}) }: memmap_0_4_0_ {
-    dependencies = mapFeatures features ([ fs2_0_2_5 kernel32_sys_0_2_2 libc_0_2_23 winapi_0_2_8 ]);
-  };
-  memmap_0_4_0_features = f: updateFeatures f ({
-    fs2_0_2_5.default = true;
-    kernel32_sys_0_2_2.default = true;
-    libc_0_2_23.default = true;
-    memmap_0_4_0.default = (f.memmap_0_4_0.default or true);
-    winapi_0_2_8.default = true;
-  }) [ fs2_0_2_5_features kernel32_sys_0_2_2_features libc_0_2_23_features winapi_0_2_8_features ];
-  metadeps_1_1_2 = { features?(metadeps_1_1_2_features {}) }: metadeps_1_1_2_ {
-    dependencies = mapFeatures features ([ error_chain_0_10_0 pkg_config_0_3_9 toml_0_2_1 ]);
-  };
-  metadeps_1_1_2_features = f: updateFeatures f ({
-    error_chain_0_10_0.default = (f.error_chain_0_10_0.default or false);
-    metadeps_1_1_2.default = (f.metadeps_1_1_2.default or true);
-    pkg_config_0_3_9.default = true;
-    toml_0_2_1.default = (f.toml_0_2_1.default or false);
-  }) [ error_chain_0_10_0_features pkg_config_0_3_9_features toml_0_2_1_features ];
-  miniz_sys_0_1_10 = { features?(miniz_sys_0_1_10_features {}) }: miniz_sys_0_1_10_ {
-    dependencies = mapFeatures features ([ libc_0_2_23 ]);
-    buildDependencies = mapFeatures features ([ cc_1_0_0 ]);
-  };
-  miniz_sys_0_1_10_features = f: updateFeatures f ({
-    cc_1_0_0.default = true;
-    libc_0_2_23.default = true;
-    miniz_sys_0_1_10.default = (f.miniz_sys_0_1_10.default or true);
-  }) [ libc_0_2_23_features cc_1_0_0_features ];
-  num_bigint_0_1_40 = { features?(num_bigint_0_1_40_features {}) }: num_bigint_0_1_40_ {
-    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_37 ]
-      ++ (if features.num_bigint_0_1_40.rand or false then [ rand_0_3_15 ] else [])
-      ++ (if features.num_bigint_0_1_40.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
-    features = mkFeatures (features.num_bigint_0_1_40 or {});
-  };
-  num_bigint_0_1_40_features = f: updateFeatures f (rec {
-    num_bigint_0_1_40.default = (f.num_bigint_0_1_40.default or true);
-    num_bigint_0_1_40.rand =
-      (f.num_bigint_0_1_40.rand or false) ||
-      (f.num_bigint_0_1_40.default or false) ||
-      (num_bigint_0_1_40.default or false);
-    num_bigint_0_1_40.rustc-serialize =
-      (f.num_bigint_0_1_40.rustc-serialize or false) ||
-      (f.num_bigint_0_1_40.default or false) ||
-      (num_bigint_0_1_40.default or false);
-    num_integer_0_1_35.default = true;
-    num_traits_0_1_37.default = true;
-    rand_0_3_15.default = true;
-    rustc_serialize_0_3_24.default = true;
-  }) [ num_integer_0_1_35_features num_traits_0_1_37_features rand_0_3_15_features rustc_serialize_0_3_24_features ];
-  num_integer_0_1_35 = { features?(num_integer_0_1_35_features {}) }: num_integer_0_1_35_ {
-    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
-  };
-  num_integer_0_1_35_features = f: updateFeatures f ({
-    num_integer_0_1_35.default = (f.num_integer_0_1_35.default or true);
-    num_traits_0_1_37.default = true;
-  }) [ num_traits_0_1_37_features ];
-  num_iter_0_1_34 = { features?(num_iter_0_1_34_features {}) }: num_iter_0_1_34_ {
-    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_37 ]);
-  };
-  num_iter_0_1_34_features = f: updateFeatures f ({
-    num_integer_0_1_35.default = true;
-    num_iter_0_1_34.default = (f.num_iter_0_1_34.default or true);
-    num_traits_0_1_37.default = true;
-  }) [ num_integer_0_1_35_features num_traits_0_1_37_features ];
-  num_rational_0_1_39 = { features?(num_rational_0_1_39_features {}) }: num_rational_0_1_39_ {
-    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_37 ]
-      ++ (if features.num_rational_0_1_39.num-bigint or false then [ num_bigint_0_1_40 ] else [])
-      ++ (if features.num_rational_0_1_39.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
-    features = mkFeatures (features.num_rational_0_1_39 or {});
-  };
-  num_rational_0_1_39_features = f: updateFeatures f (rec {
-    num_bigint_0_1_40.default = true;
-    num_integer_0_1_35.default = true;
-    num_rational_0_1_39.bigint =
-      (f.num_rational_0_1_39.bigint or false) ||
-      (f.num_rational_0_1_39.default or false) ||
-      (num_rational_0_1_39.default or false);
-    num_rational_0_1_39.default = (f.num_rational_0_1_39.default or true);
-    num_rational_0_1_39.num-bigint =
-      (f.num_rational_0_1_39.num-bigint or false) ||
-      (f.num_rational_0_1_39.bigint or false) ||
-      (num_rational_0_1_39.bigint or false);
-    num_rational_0_1_39.rustc-serialize =
-      (f.num_rational_0_1_39.rustc-serialize or false) ||
-      (f.num_rational_0_1_39.default or false) ||
-      (num_rational_0_1_39.default or false);
-    num_traits_0_1_37.default = true;
-    rustc_serialize_0_3_24.default = true;
-  }) [ num_bigint_0_1_40_features num_integer_0_1_35_features num_traits_0_1_37_features rustc_serialize_0_3_24_features ];
-  num_traits_0_1_37 = { features?(num_traits_0_1_37_features {}) }: num_traits_0_1_37_ {};
-  num_traits_0_1_37_features = f: updateFeatures f ({
-    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or true);
-  }) [];
-  num_cpus_1_6_2 = { features?(num_cpus_1_6_2_features {}) }: num_cpus_1_6_2_ {
-    dependencies = mapFeatures features ([ libc_0_2_23 ]);
-  };
-  num_cpus_1_6_2_features = f: updateFeatures f ({
-    libc_0_2_23.default = true;
-    num_cpus_1_6_2.default = (f.num_cpus_1_6_2.default or true);
-  }) [ libc_0_2_23_features ];
-  phf_0_7_21 = { features?(phf_0_7_21_features {}) }: phf_0_7_21_ {
-    dependencies = mapFeatures features ([ phf_shared_0_7_21 ]);
-    features = mkFeatures (features.phf_0_7_21 or {});
-  };
-  phf_0_7_21_features = f: updateFeatures f (rec {
-    phf_0_7_21.default = (f.phf_0_7_21.default or true);
-    phf_shared_0_7_21.core =
-      (f.phf_shared_0_7_21.core or false) ||
-      (phf_0_7_21.core or false) ||
-      (f.phf_0_7_21.core or false);
-    phf_shared_0_7_21.default = true;
-    phf_shared_0_7_21.unicase =
-      (f.phf_shared_0_7_21.unicase or false) ||
-      (phf_0_7_21.unicase or false) ||
-      (f.phf_0_7_21.unicase or false);
-  }) [ phf_shared_0_7_21_features ];
-  phf_codegen_0_7_21 = { features?(phf_codegen_0_7_21_features {}) }: phf_codegen_0_7_21_ {
-    dependencies = mapFeatures features ([ phf_generator_0_7_21 phf_shared_0_7_21 ]);
-  };
-  phf_codegen_0_7_21_features = f: updateFeatures f ({
-    phf_codegen_0_7_21.default = (f.phf_codegen_0_7_21.default or true);
-    phf_generator_0_7_21.default = true;
-    phf_shared_0_7_21.default = true;
-  }) [ phf_generator_0_7_21_features phf_shared_0_7_21_features ];
-  phf_generator_0_7_21 = { features?(phf_generator_0_7_21_features {}) }: phf_generator_0_7_21_ {
-    dependencies = mapFeatures features ([ phf_shared_0_7_21 rand_0_3_15 ]);
-  };
-  phf_generator_0_7_21_features = f: updateFeatures f ({
-    phf_generator_0_7_21.default = (f.phf_generator_0_7_21.default or true);
-    phf_shared_0_7_21.default = true;
-    rand_0_3_15.default = true;
-  }) [ phf_shared_0_7_21_features rand_0_3_15_features ];
-  phf_shared_0_7_21 = { features?(phf_shared_0_7_21_features {}) }: phf_shared_0_7_21_ {
-    dependencies = mapFeatures features ([ siphasher_0_2_2 ]);
-    features = mkFeatures (features.phf_shared_0_7_21 or {});
-  };
-  phf_shared_0_7_21_features = f: updateFeatures f ({
-    phf_shared_0_7_21.default = (f.phf_shared_0_7_21.default or true);
-    siphasher_0_2_2.default = true;
-  }) [ siphasher_0_2_2_features ];
-  pkg_config_0_3_9 = { features?(pkg_config_0_3_9_features {}) }: pkg_config_0_3_9_ {};
-  pkg_config_0_3_9_features = f: updateFeatures f ({
-    pkg_config_0_3_9.default = (f.pkg_config_0_3_9.default or true);
-  }) [];
-  png_0_5_2 = { features?(png_0_5_2_features {}) }: png_0_5_2_ {
-    dependencies = mapFeatures features ([ bitflags_0_7_0 inflate_0_1_1 num_iter_0_1_34 ]
-      ++ (if features.png_0_5_2.flate2 or false then [ flate2_0_2_20 ] else []));
-    features = mkFeatures (features.png_0_5_2 or {});
-  };
-  png_0_5_2_features = f: updateFeatures f (rec {
-    bitflags_0_7_0.default = true;
-    flate2_0_2_20.default = true;
-    inflate_0_1_1.default = true;
-    num_iter_0_1_34.default = true;
-    png_0_5_2.default = (f.png_0_5_2.default or true);
-    png_0_5_2.flate2 =
-      (f.png_0_5_2.flate2 or false) ||
-      (f.png_0_5_2.png-encoding or false) ||
-      (png_0_5_2.png-encoding or false);
-    png_0_5_2.png-encoding =
-      (f.png_0_5_2.png-encoding or false) ||
-      (f.png_0_5_2.default or false) ||
-      (png_0_5_2.default or false);
-  }) [ bitflags_0_7_0_features flate2_0_2_20_features inflate_0_1_1_features num_iter_0_1_34_features ];
-  rand_0_3_15 = { features?(rand_0_3_15_features {}) }: rand_0_3_15_ {
-    dependencies = mapFeatures features ([ libc_0_2_23 ]);
-  };
-  rand_0_3_15_features = f: updateFeatures f ({
-    libc_0_2_23.default = true;
-    rand_0_3_15.default = (f.rand_0_3_15.default or true);
-  }) [ libc_0_2_23_features ];
-  rayon_0_8_2 = { features?(rayon_0_8_2_features {}) }: rayon_0_8_2_ {
-    dependencies = mapFeatures features ([ rayon_core_1_2_1 ]);
-  };
-  rayon_0_8_2_features = f: updateFeatures f ({
-    rayon_0_8_2.default = (f.rayon_0_8_2.default or true);
-    rayon_core_1_2_1.default = true;
-  }) [ rayon_core_1_2_1_features ];
-  rayon_core_1_2_1 = { features?(rayon_core_1_2_1_features {}) }: rayon_core_1_2_1_ {
-    dependencies = mapFeatures features ([ coco_0_1_1 futures_0_1_16 lazy_static_0_2_8 libc_0_2_23 num_cpus_1_6_2 rand_0_3_15 ]);
-  };
-  rayon_core_1_2_1_features = f: updateFeatures f ({
-    coco_0_1_1.default = true;
-    futures_0_1_16.default = true;
-    lazy_static_0_2_8.default = true;
-    libc_0_2_23.default = true;
-    num_cpus_1_6_2.default = true;
-    rand_0_3_15.default = true;
-    rayon_core_1_2_1.default = (f.rayon_core_1_2_1.default or true);
-  }) [ coco_0_1_1_features futures_0_1_16_features lazy_static_0_2_8_features libc_0_2_23_features num_cpus_1_6_2_features rand_0_3_15_features ];
-  rustc_serialize_0_3_24 = { features?(rustc_serialize_0_3_24_features {}) }: rustc_serialize_0_3_24_ {};
-  rustc_serialize_0_3_24_features = f: updateFeatures f ({
-    rustc_serialize_0_3_24.default = (f.rustc_serialize_0_3_24.default or true);
-  }) [];
-  rustc_version_0_1_7 = { features?(rustc_version_0_1_7_features {}) }: rustc_version_0_1_7_ {
-    dependencies = mapFeatures features ([ semver_0_1_20 ]);
-  };
-  rustc_version_0_1_7_features = f: updateFeatures f ({
-    rustc_version_0_1_7.default = (f.rustc_version_0_1_7.default or true);
-    semver_0_1_20.default = true;
-  }) [ semver_0_1_20_features ];
-  scoped_threadpool_0_1_8 = { features?(scoped_threadpool_0_1_8_features {}) }: scoped_threadpool_0_1_8_ {
-    features = mkFeatures (features.scoped_threadpool_0_1_8 or {});
-  };
-  scoped_threadpool_0_1_8_features = f: updateFeatures f ({
-    scoped_threadpool_0_1_8.default = (f.scoped_threadpool_0_1_8.default or true);
-  }) [];
-  scopeguard_0_3_2 = { features?(scopeguard_0_3_2_features {}) }: scopeguard_0_3_2_ {
-    features = mkFeatures (features.scopeguard_0_3_2 or {});
-  };
-  scopeguard_0_3_2_features = f: updateFeatures f (rec {
-    scopeguard_0_3_2.default = (f.scopeguard_0_3_2.default or true);
-    scopeguard_0_3_2.use_std =
-      (f.scopeguard_0_3_2.use_std or false) ||
-      (f.scopeguard_0_3_2.default or false) ||
-      (scopeguard_0_3_2.default or false);
-  }) [];
-  semver_0_1_20 = { features?(semver_0_1_20_features {}) }: semver_0_1_20_ {};
-  semver_0_1_20_features = f: updateFeatures f ({
-    semver_0_1_20.default = (f.semver_0_1_20.default or true);
-  }) [];
-  serde_0_9_15 = { features?(serde_0_9_15_features {}) }: serde_0_9_15_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.serde_0_9_15 or {});
-  };
-  serde_0_9_15_features = f: updateFeatures f (rec {
-    serde_0_9_15.alloc =
-      (f.serde_0_9_15.alloc or false) ||
-      (f.serde_0_9_15.collections or false) ||
-      (serde_0_9_15.collections or false);
-    serde_0_9_15.default = (f.serde_0_9_15.default or true);
-    serde_0_9_15.serde_derive =
-      (f.serde_0_9_15.serde_derive or false) ||
-      (f.serde_0_9_15.derive or false) ||
-      (serde_0_9_15.derive or false) ||
-      (f.serde_0_9_15.playground or false) ||
-      (serde_0_9_15.playground or false);
-    serde_0_9_15.std =
-      (f.serde_0_9_15.std or false) ||
-      (f.serde_0_9_15.default or false) ||
-      (serde_0_9_15.default or false) ||
-      (f.serde_0_9_15.unstable-testing or false) ||
-      (serde_0_9_15.unstable-testing or false);
-    serde_0_9_15.unstable =
-      (f.serde_0_9_15.unstable or false) ||
-      (f.serde_0_9_15.alloc or false) ||
-      (serde_0_9_15.alloc or false) ||
-      (f.serde_0_9_15.unstable-testing or false) ||
-      (serde_0_9_15.unstable-testing or false);
-  }) [];
-  serde_json_0_9_10 = { features?(serde_json_0_9_10_features {}) }: serde_json_0_9_10_ {
-    dependencies = mapFeatures features ([ dtoa_0_4_1 itoa_0_3_1 num_traits_0_1_37 serde_0_9_15 ]);
-    features = mkFeatures (features.serde_json_0_9_10 or {});
-  };
-  serde_json_0_9_10_features = f: updateFeatures f (rec {
-    dtoa_0_4_1.default = true;
-    itoa_0_3_1.default = true;
-    num_traits_0_1_37.default = true;
-    serde_0_9_15.default = true;
-    serde_json_0_9_10.default = (f.serde_json_0_9_10.default or true);
-    serde_json_0_9_10.linked-hash-map =
-      (f.serde_json_0_9_10.linked-hash-map or false) ||
-      (f.serde_json_0_9_10.preserve_order or false) ||
-      (serde_json_0_9_10.preserve_order or false);
-  }) [ dtoa_0_4_1_features itoa_0_3_1_features num_traits_0_1_37_features serde_0_9_15_features ];
-  siphasher_0_2_2 = { features?(siphasher_0_2_2_features {}) }: siphasher_0_2_2_ {
-    dependencies = mapFeatures features ([]);
-  };
-  siphasher_0_2_2_features = f: updateFeatures f ({
-    siphasher_0_2_2.default = (f.siphasher_0_2_2.default or true);
-  }) [];
-  strsim_0_6_0 = { features?(strsim_0_6_0_features {}) }: strsim_0_6_0_ {};
-  strsim_0_6_0_features = f: updateFeatures f ({
-    strsim_0_6_0.default = (f.strsim_0_6_0.default or true);
-  }) [];
-  target_build_utils_0_3_1 = { features?(target_build_utils_0_3_1_features {}) }: target_build_utils_0_3_1_ {
-    dependencies = mapFeatures features ([ phf_0_7_21 ]
-      ++ (if features.target_build_utils_0_3_1.serde_json or false then [ serde_json_0_9_10 ] else []));
-    buildDependencies = mapFeatures features ([ phf_codegen_0_7_21 ]);
-    features = mkFeatures (features.target_build_utils_0_3_1 or {});
-  };
-  target_build_utils_0_3_1_features = f: updateFeatures f (rec {
-    phf_0_7_21.default = true;
-    phf_codegen_0_7_21.default = true;
-    serde_json_0_9_10.default = true;
-    target_build_utils_0_3_1.default = (f.target_build_utils_0_3_1.default or true);
-    target_build_utils_0_3_1.serde_json =
-      (f.target_build_utils_0_3_1.serde_json or false) ||
-      (f.target_build_utils_0_3_1.default or false) ||
-      (target_build_utils_0_3_1.default or false);
-  }) [ phf_0_7_21_features serde_json_0_9_10_features phf_codegen_0_7_21_features ];
-  tempfile_2_1_5 = { features?(tempfile_2_1_5_features {}) }: tempfile_2_1_5_ {
-    dependencies = mapFeatures features ([ rand_0_3_15 ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_23 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
-    buildDependencies = mapFeatures features ([ rustc_version_0_1_7 ]);
-  };
-  tempfile_2_1_5_features = f: updateFeatures f ({
-    kernel32_sys_0_2_2.default = true;
-    libc_0_2_23.default = true;
-    rand_0_3_15.default = true;
-    rustc_version_0_1_7.default = true;
-    tempfile_2_1_5.default = (f.tempfile_2_1_5.default or true);
-    winapi_0_2_8.default = true;
-  }) [ rand_0_3_15_features rustc_version_0_1_7_features libc_0_2_23_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
-  term_size_0_3_0 = { features?(term_size_0_3_0_features {}) }: term_size_0_3_0_ {
-    dependencies = mapFeatures features ([])
-      ++ (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_23 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
-    features = mkFeatures (features.term_size_0_3_0 or {});
-  };
-  term_size_0_3_0_features = f: updateFeatures f (rec {
-    kernel32_sys_0_2_2.default = true;
-    libc_0_2_23.default = true;
-    term_size_0_3_0.clippy =
-      (f.term_size_0_3_0.clippy or false) ||
-      (f.term_size_0_3_0.lints or false) ||
-      (term_size_0_3_0.lints or false);
-    term_size_0_3_0.default = (f.term_size_0_3_0.default or true);
-    term_size_0_3_0.lints =
-      (f.term_size_0_3_0.lints or false) ||
-      (f.term_size_0_3_0.travis or false) ||
-      (term_size_0_3_0.travis or false);
-    term_size_0_3_0.nightly =
-      (f.term_size_0_3_0.nightly or false) ||
-      (f.term_size_0_3_0.lints or false) ||
-      (term_size_0_3_0.lints or false) ||
-      (f.term_size_0_3_0.travis or false) ||
-      (term_size_0_3_0.travis or false);
-    winapi_0_2_8.default = true;
-  }) [ libc_0_2_23_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
-  toml_0_2_1 = { features?(toml_0_2_1_features {}) }: toml_0_2_1_ {
-    dependencies = mapFeatures features ([]);
-  };
-  toml_0_2_1_features = f: updateFeatures f (rec {
-    toml_0_2_1.default = (f.toml_0_2_1.default or true);
-    toml_0_2_1.rustc-serialize =
-      (f.toml_0_2_1.rustc-serialize or false) ||
-      (f.toml_0_2_1.default or false) ||
-      (toml_0_2_1.default or false);
-  }) [];
-  unicode_segmentation_1_2_0 = { features?(unicode_segmentation_1_2_0_features {}) }: unicode_segmentation_1_2_0_ {
-    features = mkFeatures (features.unicode_segmentation_1_2_0 or {});
-  };
-  unicode_segmentation_1_2_0_features = f: updateFeatures f ({
-    unicode_segmentation_1_2_0.default = (f.unicode_segmentation_1_2_0.default or true);
-  }) [];
-  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
-    features = mkFeatures (features.unicode_width_0_1_4 or {});
-  };
-  unicode_width_0_1_4_features = f: updateFeatures f ({
-    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.default or true);
-  }) [];
-  vec_map_0_8_0 = { features?(vec_map_0_8_0_features {}) }: vec_map_0_8_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.vec_map_0_8_0 or {});
-  };
-  vec_map_0_8_0_features = f: updateFeatures f (rec {
-    vec_map_0_8_0.default = (f.vec_map_0_8_0.default or true);
-    vec_map_0_8_0.serde =
-      (f.vec_map_0_8_0.serde or false) ||
-      (f.vec_map_0_8_0.eders or false) ||
-      (vec_map_0_8_0.eders or false);
-    vec_map_0_8_0.serde_derive =
-      (f.vec_map_0_8_0.serde_derive or false) ||
-      (f.vec_map_0_8_0.eders or false) ||
-      (vec_map_0_8_0.eders or false);
-  }) [];
-  way_cooler_client_helpers_0_1_0 = { features?(way_cooler_client_helpers_0_1_0_features {}) }: way_cooler_client_helpers_0_1_0_ {
-    dependencies = mapFeatures features ([ wayland_client_0_9_6 wayland_sys_0_9_6 ]);
-  };
-  way_cooler_client_helpers_0_1_0_features = f: updateFeatures f ({
-    way_cooler_client_helpers_0_1_0.default = (f.way_cooler_client_helpers_0_1_0.default or true);
-    wayland_client_0_9_6.cursor = true;
-    wayland_client_0_9_6.default = true;
-    wayland_client_0_9_6.dlopen = true;
-    wayland_sys_0_9_6.client = true;
-    wayland_sys_0_9_6.default = true;
-    wayland_sys_0_9_6.dlopen = true;
-  }) [ wayland_client_0_9_6_features wayland_sys_0_9_6_features ];
-  wayland_client_0_9_6 = { features?(wayland_client_0_9_6_features {}) }: wayland_client_0_9_6_ {
-    dependencies = mapFeatures features ([ bitflags_0_7_0 libc_0_2_23 wayland_sys_0_9_6 ]);
-    buildDependencies = mapFeatures features ([ wayland_scanner_0_9_6 ]);
-    features = mkFeatures (features.wayland_client_0_9_6 or {});
-  };
-  wayland_client_0_9_6_features = f: updateFeatures f (rec {
-    bitflags_0_7_0.default = true;
-    libc_0_2_23.default = true;
-    wayland_client_0_9_6.cursor =
-      (f.wayland_client_0_9_6.cursor or false) ||
-      (f.wayland_client_0_9_6.default or false) ||
-      (wayland_client_0_9_6.default or false);
-    wayland_client_0_9_6.default = (f.wayland_client_0_9_6.default or true);
-    wayland_client_0_9_6.egl =
-      (f.wayland_client_0_9_6.egl or false) ||
-      (f.wayland_client_0_9_6.default or false) ||
-      (wayland_client_0_9_6.default or false);
-    wayland_scanner_0_9_6.default = true;
-    wayland_sys_0_9_6.client = true;
-    wayland_sys_0_9_6.cursor =
-      (f.wayland_sys_0_9_6.cursor or false) ||
-      (wayland_client_0_9_6.cursor or false) ||
-      (f.wayland_client_0_9_6.cursor or false);
-    wayland_sys_0_9_6.default = true;
-    wayland_sys_0_9_6.dlopen =
-      (f.wayland_sys_0_9_6.dlopen or false) ||
-      (wayland_client_0_9_6.dlopen or false) ||
-      (f.wayland_client_0_9_6.dlopen or false);
-    wayland_sys_0_9_6.egl =
-      (f.wayland_sys_0_9_6.egl or false) ||
-      (wayland_client_0_9_6.egl or false) ||
-      (f.wayland_client_0_9_6.egl or false);
-  }) [ bitflags_0_7_0_features libc_0_2_23_features wayland_sys_0_9_6_features wayland_scanner_0_9_6_features ];
-  wayland_kbd_0_9_0 = { features?(wayland_kbd_0_9_0_features {}) }: wayland_kbd_0_9_0_ {
-    dependencies = mapFeatures features ([ bitflags_0_7_0 dlib_0_3_1 lazy_static_0_2_8 memmap_0_4_0 wayland_client_0_9_6 ]);
-  };
-  wayland_kbd_0_9_0_features = f: updateFeatures f ({
-    bitflags_0_7_0.default = true;
-    dlib_0_3_1.default = true;
-    lazy_static_0_2_8.default = true;
-    memmap_0_4_0.default = true;
-    wayland_client_0_9_6.default = true;
-    wayland_kbd_0_9_0.default = (f.wayland_kbd_0_9_0.default or true);
-  }) [ bitflags_0_7_0_features dlib_0_3_1_features lazy_static_0_2_8_features memmap_0_4_0_features wayland_client_0_9_6_features ];
-  wayland_scanner_0_9_6 = { features?(wayland_scanner_0_9_6_features {}) }: wayland_scanner_0_9_6_ {
-    dependencies = mapFeatures features ([ xml_rs_0_3_6 ]);
-  };
-  wayland_scanner_0_9_6_features = f: updateFeatures f ({
-    wayland_scanner_0_9_6.default = (f.wayland_scanner_0_9_6.default or true);
-    xml_rs_0_3_6.default = true;
-  }) [ xml_rs_0_3_6_features ];
-  wayland_sys_0_9_6 = { features?(wayland_sys_0_9_6_features {}) }: wayland_sys_0_9_6_ {
-    dependencies = mapFeatures features ([ dlib_0_3_1 ]
-      ++ (if features.wayland_sys_0_9_6.lazy_static or false then [ lazy_static_0_2_8 ] else []));
-    features = mkFeatures (features.wayland_sys_0_9_6 or {});
-  };
-  wayland_sys_0_9_6_features = f: updateFeatures f (rec {
-    dlib_0_3_1.default = true;
-    dlib_0_3_1.dlopen =
-      (f.dlib_0_3_1.dlopen or false) ||
-      (wayland_sys_0_9_6.dlopen or false) ||
-      (f.wayland_sys_0_9_6.dlopen or false);
-    lazy_static_0_2_8.default = true;
-    wayland_sys_0_9_6.default = (f.wayland_sys_0_9_6.default or true);
-    wayland_sys_0_9_6.lazy_static =
-      (f.wayland_sys_0_9_6.lazy_static or false) ||
-      (f.wayland_sys_0_9_6.dlopen or false) ||
-      (wayland_sys_0_9_6.dlopen or false);
-    wayland_sys_0_9_6.libc =
-      (f.wayland_sys_0_9_6.libc or false) ||
-      (f.wayland_sys_0_9_6.server or false) ||
-      (wayland_sys_0_9_6.server or false);
-  }) [ dlib_0_3_1_features lazy_static_0_2_8_features ];
-  wc_lock_0_2_1 = { features?(wc_lock_0_2_1_features {}) }: wc_lock_0_2_1_ {
-    dependencies = mapFeatures features ([ byteorder_0_5_3 clap_2_24_2 dbus_0_5_4 image_0_10_4 libc_0_2_23 rand_0_3_15 tempfile_2_1_5 way_cooler_client_helpers_0_1_0 wayland_client_0_9_6 wayland_kbd_0_9_0 wayland_sys_0_9_6 ]);
-    buildDependencies = mapFeatures features ([ gcc_0_3_50 wayland_scanner_0_9_6 ]);
-  };
-  wc_lock_0_2_1_features = f: updateFeatures f ({
-    byteorder_0_5_3.default = true;
-    clap_2_24_2.default = true;
-    dbus_0_5_4.default = true;
-    gcc_0_3_50.default = true;
-    image_0_10_4.default = true;
-    libc_0_2_23.default = true;
-    rand_0_3_15.default = true;
-    tempfile_2_1_5.default = true;
-    way_cooler_client_helpers_0_1_0.default = true;
-    wayland_client_0_9_6.cursor = true;
-    wayland_client_0_9_6.default = true;
-    wayland_client_0_9_6.dlopen = true;
-    wayland_kbd_0_9_0.default = true;
-    wayland_scanner_0_9_6.default = true;
-    wayland_sys_0_9_6.client = true;
-    wayland_sys_0_9_6.default = true;
-    wayland_sys_0_9_6.dlopen = true;
-    wc_lock_0_2_1.default = (f.wc_lock_0_2_1.default or true);
-  }) [ byteorder_0_5_3_features clap_2_24_2_features dbus_0_5_4_features image_0_10_4_features libc_0_2_23_features rand_0_3_15_features tempfile_2_1_5_features way_cooler_client_helpers_0_1_0_features wayland_client_0_9_6_features wayland_kbd_0_9_0_features wayland_sys_0_9_6_features gcc_0_3_50_features wayland_scanner_0_9_6_features ];
-  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
-  winapi_0_2_8_features = f: updateFeatures f ({
-    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
-  }) [];
-  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
-  winapi_build_0_1_1_features = f: updateFeatures f ({
-    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
-  }) [];
-  xml_rs_0_3_6 = { features?(xml_rs_0_3_6_features {}) }: xml_rs_0_3_6_ {
-    dependencies = mapFeatures features ([ bitflags_0_7_0 ]);
-  };
-  xml_rs_0_3_6_features = f: updateFeatures f ({
-    bitflags_0_7_0.default = true;
-    xml_rs_0_3_6.default = (f.xml_rs_0_3_6.default or true);
-  }) [ bitflags_0_7_0_features ];
-}
diff --git a/pkgs/applications/window-managers/way-cooler/wlc.nix b/pkgs/applications/window-managers/way-cooler/wlc.nix
deleted file mode 100644
index 03d0b3023f7..00000000000
--- a/pkgs/applications/window-managers/way-cooler/wlc.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig
-, wayland, pixman, libxkbcommon, libinput, xcbutilwm, xcbutilimage, libGL
-, libX11, dbus, wayland-protocols, libdrm, mesa
-, libpthreadstubs, libXdmcp, libXext, libXfixes
-, withOptionalPackages ? true, zlib, valgrind, doxygen
-}:
-
-stdenv.mkDerivation rec {
-  pname = "wlc";
-  version = "0.0.11";
-
-  src = fetchFromGitHub {
-    owner = "Cloudef";
-    repo = "wlc";
-    rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "1qnak907gjd35hq4b0rrhgb7kz5iwnirh8yk372yzxpgk7dq0gz9";
-  };
-
-  nativeBuildInputs = [ cmake pkgconfig ];
-
-  buildInputs = [
-    wayland pixman libxkbcommon libinput xcbutilwm xcbutilimage libGL
-    libX11 libXfixes dbus wayland-protocols
-    libpthreadstubs libXdmcp libXext libdrm mesa ]
-    ++ stdenv.lib.optionals withOptionalPackages [ zlib valgrind doxygen ];
-
-  doCheck = true;
-  checkTarget = "test";
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    description = "A library for making a simple Wayland compositor";
-    homepage    = https://github.com/Cloudef/wlc;
-    license     = licenses.mit;
-    platforms   = platforms.linux;
-    maintainers = with maintainers; [ primeos ]; # Trying to keep it up-to-date.
-  };
-}
diff --git a/pkgs/build-support/docker-slim/default.nix b/pkgs/build-support/docker-slim/default.nix
new file mode 100644
index 00000000000..6004898f08e
--- /dev/null
+++ b/pkgs/build-support/docker-slim/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, buildGoPackage
+, fetchFromGitHub
+, makeWrapper
+}:
+
+let
+
+  version = "1.26.1";
+  rev = "2ec04e169b12a87c5286aa09ef44eac1cea2c7a1";
+
+in buildGoPackage rec {
+  pname = "docker-slim";
+  inherit version;
+
+  goPackagePath = "github.com/docker-slim/docker-slim";
+
+  src = fetchFromGitHub {
+    owner = "docker-slim";
+    repo = "docker-slim";
+    inherit rev;
+    # fetchzip yields a different hash on Darwin because `use-case-hack`
+    sha256 =
+      if stdenv.isDarwin
+      then "0j72rn6qap78qparrnslxm3yv83mzy1yc7ha0crb4frwkzmspyvf"
+      else "01bjb14z7yblm7qdqrx1j2pw5x5da7a6np4rkzay931gly739gbh";
+  };
+
+  subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  # docker-slim vendorized logrus files in different directories, which
+  # conflicts on case-sensitive filesystems
+  preBuild = stdenv.lib.optionalString stdenv.isLinux ''
+    mv go/src/${goPackagePath}/vendor/github.com/Sirupsen/logrus/* \
+      go/src/${goPackagePath}/vendor/github.com/sirupsen/logrus/
+  '';
+
+  buildFlagsArray =
+    let
+      ldflags = "-ldflags=-s -w " +
+                "-X ${goPackagePath}/pkg/version.appVersionTag=${version} " +
+                "-X ${goPackagePath}/pkg/version.appVersionRev=${rev}";
+    in
+      [ ldflags ];
+
+  # docker-slim tries to create its state dir next to the binary (inside the nix
+  # store), so we set it to use the working directory at the time of invocation
+  postInstall = ''
+    wrapProgram "$bin/bin/docker-slim" --add-flags '--state-path "$(pwd)"'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Minify and secure Docker containers";
+    homepage = "https://dockersl.im/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ filalex77 marsam mbrgm ];
+    # internal/app/sensor/monitors/ptrace/monitor.go:151:16: undefined:
+    #     system.CallNumber
+    # internal/app/sensor/monitors/ptrace/monitor.go:161:15: undefined:
+    #     system.CallReturnValue
+    badPlatforms = [ "aarch64-linux" ];
+  };
+}
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index c0e115bca28..a0a61f7cc50 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -425,8 +425,8 @@
 
   # Maven Central
   maven = [
-    http://repo1.maven.org/maven2/
-    http://central.maven.org/maven2/
+    https://repo1.maven.org/maven2/
+    https://central.maven.org/maven2/
   ];
 
   # Alsa Project
diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index 4e2e2af1aa7..dec49d24f52 100644
--- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -55,9 +55,6 @@
     elif [[ -e src/lib.rs ]]; then
        build_lib src/lib.rs
        ${lib.optionalString buildTests "build_lib_test src/lib.rs"}
-    elif [[ -e "src/$LIB_NAME.rs" ]]; then
-       build_lib src/$LIB_NAME.rs
-       ${lib.optionalString buildTests ''build_lib_test "src/$LIB_NAME.rs"''}
     fi
 
 
diff --git a/pkgs/build-support/rust/build-rust-crate/test/default.nix b/pkgs/build-support/rust/build-rust-crate/test/default.nix
index f0f1ed4d1eb..aefa279fc5e 100644
--- a/pkgs/build-support/rust/build-rust-crate/test/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/test/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildRustCrate, runCommand, writeTextFile, symlinkJoin, callPackage }:
+{ lib, buildRustCrate, runCommand, writeTextFile, symlinkJoin, callPackage, releaseTools }:
 let
   mkCrate = args: let
       p = {
@@ -92,7 +92,17 @@ let
     cases = {
       libPath =  { libPath = "src/my_lib.rs"; src = mkLib "src/my_lib.rs"; };
       srcLib =  { src = mkLib "src/lib.rs"; };
-      customLibName =  { libName = "test_lib"; src = mkLib "src/test_lib.rs"; };
+
+      # This used to be supported by cargo but as of 1.40.0 I can't make it work like that with just cargo anymore.
+      # This might be a regression or deprecated thing they finally removed…
+      # customLibName =  { libName = "test_lib"; src = mkLib "src/test_lib.rs"; };
+      # rustLibTestsCustomLibName = {
+      #   libName = "test_lib";
+      #   src = mkTestFile "src/test_lib.rs" "foo";
+      #   buildTests = true;
+      #   expectedTestOutputs = [ "test foo ... ok" ];
+      # };
+
       customLibNameAndLibPath =  { libName = "test_lib"; libPath = "src/best-lib.rs"; src = mkLib "src/best-lib.rs"; };
       crateBinWithPath =  { crateBin = [{ name = "test_binary1"; path = "src/foobar.rs"; }]; src = mkBin "src/foobar.rs"; };
       crateBinNoPath1 =  { crateBin = [{ name = "my-binary2"; }]; src = mkBin "src/my_binary2.rs"; };
@@ -122,12 +132,6 @@ let
         buildTests = true;
         expectedTestOutputs = [ "test baz ... ok" ];
       };
-      rustLibTestsCustomLibName = {
-        libName = "test_lib";
-        src = mkTestFile "src/test_lib.rs" "foo";
-        buildTests = true;
-        expectedTestOutputs = [ "test foo ... ok" ];
-      };
       rustLibTestsCustomLibPath = {
         libPath = "src/test_path.rs";
         src = mkTestFile "src/test_path.rs" "bar";
@@ -207,9 +211,12 @@ let
       test -e ${pkg}/bin/brotli-decompressor && touch $out
     '';
   };
-  test = runCommand "run-buildRustCrate-tests" {
-    nativeBuildInputs = builtins.attrValues tests;
-  } "
-    touch $out
-  ";
+  test = releaseTools.aggregate {
+    name = "buildRustCrate-tests";
+    meta = {
+      description = "Test cases for buildRustCrate";
+      maintainers = [ lib.maintainers.andir ];
+    };
+    constituents = builtins.attrValues tests;
+  };
 }
diff --git a/pkgs/data/fonts/jetbrains-mono/default.nix b/pkgs/data/fonts/jetbrains-mono/default.nix
new file mode 100644
index 00000000000..ada7f23f421
--- /dev/null
+++ b/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.0.1";
+in
+fetchzip rec {
+  name = "JetBrainsMono-${version}";
+
+  url = "https://github.com/JetBrains/JetBrainsMono/releases/download/${version}/JetBrainsMono-${version}.zip";
+
+  sha256 = "15a8fwyg8ns6krq6nsvgn41iaqbd3lgm3cmv7w370gr6brbn6lxq";
+
+  postFetch = ''
+    unzip $downloadedFile
+    install -m444 -Dt $out/share/fonts/truetype ttf/*.ttf
+    install -m444 -Dt $out/share/fonts/woff/ web/woff/*.woff
+    install -m444 -Dt $out/share/fonts/woff2/ web/woff2/*.woff2
+  '';
+
+  meta = with lib; {
+    description = "A typeface made for developers";
+    homepage = "https://jetbrains.com/mono/";
+    license = licenses.asl20;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/sudo/default.nix b/pkgs/data/fonts/sudo/default.nix
index 359139ec9c6..3906353d82b 100644
--- a/pkgs/data/fonts/sudo/default.nix
+++ b/pkgs/data/fonts/sudo/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchzip }:
 
 let
-  version = "0.40";
+  version = "0.41";
 in fetchzip {
   name = "sudo-font-${version}";
   url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
-  sha256 = "1nf025sjps4yysf6zkns5fzjgls6xdpifh7bz4ray9x8h5pz0z64";
+  sha256 = "055sz9jg3fg7ypk9nia4dl9haaaq3w8zx5c2cdi3iq9kj8k5gg53";
 
   postFetch = ''
     mkdir -p $out/share/fonts/truetype/
diff --git a/pkgs/data/icons/bibata-cursors/default.nix b/pkgs/data/icons/bibata-cursors/default.nix
index a7a403726fa..cfe65d80bd8 100644
--- a/pkgs/data/icons/bibata-cursors/default.nix
+++ b/pkgs/data/icons/bibata-cursors/default.nix
@@ -1,25 +1,28 @@
-{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen }:
+{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen, python3 }:
 
-stdenvNoCC.mkDerivation rec {
+let
+  py = python3.withPackages(ps: [ ps.pillow ]);
+in stdenvNoCC.mkDerivation rec {
   pname = "bibata-cursors";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "KaizIqbal";
     repo = "Bibata_Cursor";
     rev = "v${version}";
-    sha256 = "14gvpjp4gv0m59qr8wls7xs5yjx5llldyzack5kg5cg2mzk2nsml";
+    sha256 = "1f7i5jkl21fvrr45zpcj40avkc7camjb1ddrrdlaabbplgz5mcgn";
   };
 
   postPatch = ''
     patchShebangs .
-    substituteInPlace build.sh --replace "gksu " ""
+    substituteInPlace build.sh --replace "sudo" ""
   '';
 
   nativeBuildInputs  = [
     gnome-themes-extra
     inkscape
     xcursorgen
+    py
   ];
 
   buildPhase = ''
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index 0537a5d5373..d6b5965cca0 100644
--- a/pkgs/data/misc/hackage/default.nix
+++ b/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
 { fetchurl }:
 
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/477d50a859be91a25b2fed6494d414044d7e71ab.tar.gz";
-  sha256 = "0wzi2wgcp5ykwp4wrhcfdaxlbdzrmlgalparx3ap80q069c8fd0n";
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/b2812edaaed9f9033e48dfbcd45e7e5fb56daccd.tar.gz";
+  sha256 = "1a2073gknks4r2ibm3ji1wrib6pr3aicg6wjgzsj2r5xgad7jm6g";
 }
diff --git a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
new file mode 100644
index 00000000000..094140cbf4e
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
@@ -0,0 +1,76 @@
+{ fetchFromGitHub
+, gdk-pixbuf
+, gobject-introspection
+, gtk3
+, intltool
+, meson
+, ninja
+, pkgconfig
+, pulseaudio
+, python3
+, stdenv
+, xkeyboard_config
+, xorg
+, wrapGAppsHook
+, glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cinnamon-desktop";
+  version = "4.4.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "17hb8gkb9pfj56ckva5g4x83yvmdv7hvpidxjsdf79dw6pabr5rg";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  propagatedBuildInputs = [
+    glib
+    gtk3
+    pulseaudio
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    xkeyboard_config
+    xorg.libxkbfile
+    xorg.libXext
+    xorg.libXrandr
+    gobject-introspection
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    python3
+    wrapGAppsHook
+    intltool
+    pkgconfig
+  ];
+
+  postPatch = ''
+    chmod +x install-scripts/meson_install_schemas.py # patchShebangs requires executable file
+    patchShebangs install-scripts/meson_install_schemas.py
+    sed "s|/usr/share|/run/current-system/sw/share|g" -i ./schemas/* # NOTE: unless this causes a circular dependency, we could link it to cinnamon-common/share/cinnamon
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cinnamon-desktop";
+    description = "Library and data for various Cinnamon modules";
+
+    longDescription = ''
+      The libcinnamon-desktop library provides API shared by several applications
+      on the desktop, but that cannot live in the platform for various
+      reasons. There is no API or ABI guarantee, although we are doing our
+      best to provide stability. Documentation for the API is available with
+      gtk-doc.
+    '';
+
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
new file mode 100644
index 00000000000..562ecdbfa77
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
@@ -0,0 +1,40 @@
+{ fetchFromGitHub
+, glib
+, gobject-introspection
+, meson
+, ninja
+, pkgconfig
+, stdenv
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cinnamon-menus";
+  version = "4.4.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "0q4qj28swi2y93fj7pfil68l2cf9gmhbk6jmr8d70l54xf7sigsh";
+  };
+
+  buildInputs = [
+    glib
+    gobject-introspection
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    wrapGAppsHook
+    pkgconfig
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cinnamon-menus";
+    description = "A menu system for the Cinnamon project";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch
new file mode 100644
index 00000000000..967ba98eb48
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch
@@ -0,0 +1,48 @@
+From 6d71bf9764fb81d437678a603826167850bbf453 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Tue, 21 Jan 2020 03:19:28 +0100
+Subject: [PATCH] fix: use an impure path to csd-backlight-helper to fix
+ policy-reload bug
+
+---
+ plugins/power/csd-power-manager.c                             | 4 ++--
+ .../org.cinnamon.settings-daemon.plugins.power.policy.in.in   | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
+index b24c456..212c47e 100755
+--- a/plugins/power/csd-power-manager.c
++++ b/plugins/power/csd-power-manager.c
+@@ -2519,7 +2519,7 @@ backlight_helper_get_value (const gchar *argument, CsdPowerManager* manager,
+ #endif
+
+         /* get the data */
+-        command = g_strdup_printf (LIBEXECDIR "/csd-backlight-helper --%s %s",
++        command = g_strdup_printf ("/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper --%s %s",
+                                    argument,
+                                    manager->priv->backlight_helper_preference_args);
+         ret = g_spawn_command_line_sync (command,
+@@ -2609,7 +2609,7 @@ backlight_helper_set_value (const gchar *argument,
+ #endif
+
+         /* get the data */
+-        command = g_strdup_printf ("pkexec " LIBEXECDIR "/csd-backlight-helper --%s %i %s",
++        command = g_strdup_printf ("pkexec " "/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper --%s %i %s",
+                                    argument, value,
+                                    manager->priv->backlight_helper_preference_args);
+         ret = g_spawn_command_line_sync (command,
+diff --git a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in
+index 2c44e62..c0a2348 100755
+--- a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in
++++ b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in
+@@ -25,7 +25,7 @@
+       <allow_inactive>no</allow_inactive>
+       <allow_active>yes</allow_active>
+     </defaults>
+-    <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/csd-backlight-helper</annotate>
++    <annotate key="org.freedesktop.policykit.exec.path">/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper</annotate>
+   </action>
+
+ </policyconfig>
+--
+2.24.1
diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
new file mode 100644
index 00000000000..1dc58e3c3b5
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
@@ -0,0 +1,111 @@
+{ fetchFromGitHub
+, autoconf-archive
+, autoreconfHook
+, cinnamon-desktop
+, colord
+, glib
+, gsettings-desktop-schemas
+, gtk3
+, intltool
+, lcms2
+, libcanberra-gtk3
+, libgnomekbd
+, libnotify
+, libxklavier
+, wrapGAppsHook
+, pkgconfig
+, pulseaudio
+, stdenv
+, systemd
+, upower
+, dconf
+, cups
+, polkit
+, librsvg
+, libwacom
+, xf86_input_wacom
+, xorg
+, fontconfig
+, tzdata
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cinnamon-settings-daemon";
+  version = "4.4.0";
+
+  /* csd-power-manager.c:50:10: fatal error: csd-power-proxy.h: No such file or directory
+   #include "csd-power-proxy.h"
+            ^~~~~~~~~~~~~~~~~~~
+  compilation terminated. */
+
+  # but this occurs only sometimes, so disabling parallel building
+  # also see https://github.com/linuxmint/cinnamon-settings-daemon/issues/248
+  enableParallelBuilding = false;
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "1h74d68a7hx85vv6ak26b85jq0wr56ps9rzfvqsnxwk81zxw2n7q";
+  };
+
+  patches = [
+    ./csd-backlight-helper-fix.patch
+  ];
+
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; # TODO: https://github.com/NixOS/nixpkgs/issues/36468
+
+  buildInputs = [
+    cinnamon-desktop
+    colord
+    gtk3
+    glib
+    gsettings-desktop-schemas
+    lcms2
+    libcanberra-gtk3
+    libgnomekbd
+    libnotify
+    libxklavier
+    pulseaudio
+    systemd
+    upower
+    dconf
+    cups
+    polkit
+    librsvg
+    libwacom
+    xf86_input_wacom
+    xorg.libXext
+    xorg.libX11
+    xorg.libXi
+    xorg.libXtst
+    xorg.libXfixes
+    fontconfig
+  ];
+
+  nativeBuildInputs = [
+    autoconf-archive
+    autoreconfHook
+    wrapGAppsHook
+    intltool
+    pkgconfig
+  ];
+
+  postPatch = ''
+    sed "s|/usr/share/zoneinfo|${tzdata}/share/zoneinfo|g" -i plugins/datetime/system-timezone.h
+  '';
+
+  # So the polkit policy can reference /run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper
+  postFixup = ''
+    mkdir -p $out/bin/cinnamon-settings-daemon
+    ln -s $out/libexec/csd-backlight-helper $out/bin/cinnamon-settings-daemon/csd-backlight-helper
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cinnamon-settings-daemon";
+    description = "The settings daemon for the Cinnamon desktop";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
new file mode 100644
index 00000000000..65df49a5a1c
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, fetchFromGitHub
+, gettext
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cinnamon-translations";
+  version = "4.4.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "0hh6shfj7vc1mw814l38cakfmh135ba8j604h1rmx4zwspwgvgzh";
+  };
+
+  nativeBuildInputs = [
+    gettext
+  ];
+
+  installPhase = ''
+    mv usr $out # files get installed like so: msgfmt -o usr/share/locale/$lang/LC_MESSAGES/$dir.mo $file
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cinnamon-translations";
+    description = "Translations files for the Cinnamon desktop";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/desktops/cinnamon/cjs/default.nix b/pkgs/desktops/cinnamon/cjs/default.nix
new file mode 100644
index 00000000000..a240f670be0
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cjs/default.nix
@@ -0,0 +1,84 @@
+{ autoconf-archive
+, autoreconfHook
+, dbus-glib
+, fetchFromGitHub
+, gobject-introspection
+, pkgconfig
+, stdenv
+, wrapGAppsHook
+, python3
+, cairo
+, gnome3
+, xapps
+, keybinder3
+, upower
+, callPackage
+, glib
+, libffi
+, gtk3
+, readline
+, networkmanagerapplet
+}:
+
+let
+
+  # https://github.com/linuxmint/cjs/issues/80
+  spidermonkey_52 = callPackage ./spidermonkey_52.nix {};
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "cjs";
+  version = "4.4.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "0q5h2pbwysc6hwq5js3lwi6zn7i5qjjy070ynfhfn3z69lw5iz2d";
+  };
+
+  propagatedBuildInputs = [
+    glib
+
+    # bindings
+    gnome3.caribou
+    keybinder3
+    upower
+    xapps
+    networkmanagerapplet
+  ];
+
+  nativeBuildInputs = [
+    autoconf-archive
+    autoreconfHook
+    wrapGAppsHook
+    pkgconfig
+  ];
+
+  buildInputs = [
+    # from .pc
+    gobject-introspection
+    libffi
+    spidermonkey_52 # mozjs-52
+    cairo # +cairo-gobject
+    gtk3
+
+    # other
+
+    dbus-glib
+    readline
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cjs";
+    description = "JavaScript bindings for Cinnamon";
+
+    longDescription = ''
+      This module contains JavaScript bindings based on gobject-introspection.
+    '';
+
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/desktops/cinnamon/cjs/fix-werror.patch b/pkgs/desktops/cinnamon/cjs/fix-werror.patch
new file mode 100644
index 00000000000..0218eba3b46
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cjs/fix-werror.patch
@@ -0,0 +1,39 @@
+From 1b802175914418f5675047c34f1ab1593dd35b18 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Wed, 8 Jan 2020 11:04:27 +0100
+Subject: [PATCH] fix werror
+
+---
+ js/src/moz.build       | 2 +-
+ js/src/shell/moz.build | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/js/src/moz.build b/js/src/moz.build
+index 1162cb70c..595ea9842 100644
+--- a/js/src/moz.build
++++ b/js/src/moz.build
+@@ -785,7 +785,7 @@ if CONFIG['JS_HAS_CTYPES']:
+         DEFINES['FFI_BUILDING'] = True
+ 
+ if CONFIG['GNU_CXX']:
+-    CXXFLAGS += ['-Wno-shadow', '-Werror=format']
++    CXXFLAGS += ['-Wno-shadow']
+ 
+ # Suppress warnings in third-party code.
+ if CONFIG['CLANG_CXX']:
+diff --git a/js/src/shell/moz.build b/js/src/shell/moz.build
+index 72ea8145c..77475b241 100644
+--- a/js/src/shell/moz.build
++++ b/js/src/shell/moz.build
+@@ -51,7 +51,7 @@ shellmoduleloader.inputs = [
+ ]
+ 
+ if CONFIG['GNU_CXX']:
+-    CXXFLAGS += ['-Wno-shadow', '-Werror=format']
++    CXXFLAGS += ['-Wno-shadow']
+ 
+ # This is intended as a temporary workaround to enable VS2015.
+ if CONFIG['_MSC_VER']:
+-- 
+2.17.1
+
diff --git a/pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix b/pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix
new file mode 100644
index 00000000000..87f670c8c09
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix
@@ -0,0 +1,95 @@
+{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, zip, which, readline, icu, zlib, nspr, buildPackages }:
+
+let
+  version = "52.9.0";
+in stdenv.mkDerivation {
+  pname = "spidermonkey";
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
+    sha256 = "1mlx34fgh1kaqamrkl5isf0npch3mm6s4lz3jsjb7hakiijhj7f0";
+  };
+
+  outputs = [ "out" "dev" ];
+  setOutputFlags = false; # Configure script only understands --includedir
+
+  buildInputs = [ readline icu zlib nspr ];
+  nativeBuildInputs = [ autoconf213 pkgconfig perl which buildPackages.python2 zip ];
+
+  # Apparently this package fails to build correctly with modern compilers, which at least
+  # on ARMv6 causes polkit testsuite to break with an assertion failure in spidermonkey.
+  # These flags were stolen from:
+  # https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/js52
+  NIX_CFLAGS_COMPILE = "-fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp";
+
+  patches = [
+    # needed to build gnome3.gjs
+    (fetchpatch {
+      name = "mozjs52-disable-mozglue.patch";
+      url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/mozjs52-disable-mozglue.patch?h=packages/js52&id=4279d2e18d9a44f6375f584911f63d13de7704be;
+      sha256 = "18wkss0agdyff107p5lfflk72qiz350xqw2yqc353alkx4fsfpz0";
+    })
+    (fetchpatch {
+      url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/no-error.diff?h=packages/js52;
+      sha256 = "1vsw6558lxiy0r1mg6y49cgddan1mfqvqlkyv734bgxyg6n3pb9i";
+    })
+    ./fix-werror.patch
+  ];
+
+  configurePlatforms = [ ];
+
+  preConfigure = ''
+    export CXXFLAGS="-fpermissive"
+    export LIBXUL_DIST=$out
+    export PYTHON="${buildPackages.python2.interpreter}"
+    configureFlagsArray+=("--includedir=$dev/include")
+
+    cd js/src
+
+    autoconf
+  '';
+
+  configureFlags = [
+    "--with-nspr-prefix=${nspr}"
+    "--with-system-zlib"
+    "--with-system-icu"
+    "--with-intl-api"
+    "--enable-readline"
+    "--enable-shared-js"
+  ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-jemalloc"
+    ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--host=${stdenv.buildPlatform.config}"
+    "--target=${stdenv.hostPlatform.config}"
+  ];
+
+  makeFlags = [
+    "HOST_CC=${buildPackages.stdenv.cc}/bin/cc"
+  ];
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    moveToOutput bin/js52-config "$dev"
+    # Nuke a static lib.
+    rm $out/lib/libjs_static.ajs
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Mozilla's JavaScript engine written in C/C++";
+    homepage = https://developer.mozilla.org/en/SpiderMonkey;
+    license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license.
+    maintainers = [ maintainers.abbradar ];
+    platforms = platforms.linux;
+
+    # Commented out so hydra builds the package
+    # (I know what you're thinking now, but cjs won't be pulling anything from the network
+    #  and modules are allowed to execute commands anyways, so an RCE is basically irrelevant)
+    #
+    # knownVulnerabilities = [
+    #   "The runtime was extracted from Firefox 52, which EOL’d on September 5, 2018."
+    # ];
+  };
+}
diff --git a/pkgs/desktops/cinnamon/default.nix b/pkgs/desktops/cinnamon/default.nix
index 44589078241..d58a6e4a0df 100644
--- a/pkgs/desktops/cinnamon/default.nix
+++ b/pkgs/desktops/cinnamon/default.nix
@@ -1,5 +1,10 @@
 { pkgs, lib }:
 
 lib.makeScope pkgs.newScope (self: with self; {
-  xapps = callPackage ./xapps {};
+  cinnamon-desktop = callPackage ./cinnamon-desktop { };
+  cinnamon-menus = callPackage ./cinnamon-menus { };
+  cinnamon-translations = callPackage ./cinnamon-translations { };
+  cinnamon-settings-daemon = callPackage ./cinnamon-settings-daemon { };
+  cjs = callPackage ./cjs { };
+  xapps = callPackage ./xapps { };
 })
diff --git a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index d59746adc3d..1fecf80e9ae 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
@@ -51,11 +51,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-boxes";
-  version = "3.34.2";
+  version = "3.34.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-boxes/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1rqdjf61cbi3zcpzr6cfkj3lcfrdlhs20bl65lxw2xrwk4jn0ph5";
+    sha256 = "1izhqgsb658lzrzj12dw06w47bjhqdpfl0j74aq7bzql7nqsb3wa";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
index 434a72341f6..7137ec7180e 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
@@ -5,14 +5,14 @@
 , gnome3, libxml2, gsettings-desktop-schemas, tracker }:
 
 let
-  version = "3.34.1";
+  version = "3.34.2";
 in stdenv.mkDerivation {
   pname = "gnome-notes";
   inherit version;
 
   src = fetchurl {
     url = "mirror://gnome/sources/bijiben/${stdenv.lib.versions.majorMinor version}/bijiben-${version}.tar.xz";
-    sha256 = "0yf2scjnn2qi40g4iqg11qc4bnspd3qcnvg5b11ign5fa3qcihzv";
+    sha256 = "0kmhivgamnv2kk5kywrwm4af4s7663rjwh2wdri8iy1n2gmc9qpv";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 5934f56274c..93d22a99e15 100644
--- a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
@@ -3,13 +3,13 @@
 
 let
   pname = "dconf-editor";
-  version = "3.34.2";
+  version = "3.34.3";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f";
+    sha256 = "12q2cjds5fbarc5zajmhbx9vrbfn28hrklrk1fbgdv1ykxm1ljcv";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
index 459512017c5..3df78b88090 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
@@ -6,6 +6,8 @@ stdenv.mkDerivation rec {
   pname = "gnome-session";
   version = "3.34.2";
 
+  outputs = ["out" "sessions"];
+
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-session/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb";
@@ -50,6 +52,15 @@ stdenv.mkDerivation rec {
       --suffix XDG_CONFIG_DIRS : "${gnome3.gnome-settings-daemon}/etc/xdg"
   '';
 
+  # We move the GNOME sessions to another output since gnome-session is a dependency of
+  # GDM itself. If we do not hide them, it will show broken GNOME sessions when GDM is
+  # enabled without proper GNOME installation.
+  postInstall = ''
+    mkdir $sessions
+    moveToOutput share/wayland-sessions "$sessions"
+    moveToOutput share/xsessions "$sessions"
+  '';
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = "gnome-session";
diff --git a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
index 5f6cb92cde2..078b5051c84 100644
--- a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
+++ b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "four-in-a-row";
-  version = "3.34.1";
+  version = "3.34.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/four-in-a-row/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "112pyrh2yvwy5b2a0b5crjpwp2vqqg4zgx6csll1bic6ccayv713";
+    sha256 = "1agdjg9kcfcfaq3d2w4s4ksci6is1jzfnxanp3f84zqdq55s0k1y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
index 137357e0a39..5b2b797e362 100644
--- a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "gnome-klotski";
-  version = "3.34.0";
+  version = "3.34.3";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f";
+    sha256 = "0swbyjlgrkd1hgcmp23h7p8fpjm2rpmnn87n6is0jx1x4cl8ab18";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
index 9edeb3ea5de..00f138ee762 100644
--- a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-taquin";
-  version = "3.34.2";
+  version = "3.34.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-taquin/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1ff3h57wr26np3dlh7smpslba2awxasmhv3y45bn498i3n1vyvsk";
+    sha256 = "0njlcqb316qbi0dm2j39s42ca8gc2fqmk5aqill5gpb57znb4d81";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/games/iagno/default.nix b/pkgs/desktops/gnome-3/games/iagno/default.nix
index 33cd60f5272..9f1b52990ca 100644
--- a/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/pkgs/desktops/gnome-3/games/iagno/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iagno";
-  version = "3.34.3";
+  version = "3.34.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/iagno/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1m9654dbi4vrl59wvbyxz7jf81v4mn4n5lcq7abb42lba965d2z2";
+    sha256 = "0v0x2dmgcgfcjmbx21arnrwdx9xwa5q05wrm8a9sgrjjzqx6ynwb";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 0e692a8e806..d92f24d615e 100644
--- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -27,7 +27,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-code";
-  version = "3.1.1";
+  version = "3.2.0";
 
   repoName = "code";
 
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0l469fi5vbcazwfhy320nr8wrzz96jbrqn4hag0kdm16wvf5x1yc";
+    sha256 = "0sdh22dc38qikak9iyrw402ap6zxckg9vkfppvv526jg88cckibd";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
index 8485a1df9f3..befa2bbbb02 100644
--- a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-screenshot-tool"; # This will be renamed to "screenshot" soon. See -> https://github.com/elementary/screenshot/pull/93
-  version = "1.7.0";
+  version = "1.7.1";
 
   repoName = "screenshot";
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "09jcyy4drzpfxb1blln7hyjg5b7r8w5j5v7va2qhq31y7vzczh62";
+    sha256 = "179ib2ldvhdx3hks5lqyx2cvlkk3j1qccvlfwh2yd2bl79zpk3ma";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index bbb3ee59596..27bcb21a006 100644
--- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -20,7 +20,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-terminal";
-  version = "5.5.0";
+  version = "5.5.1";
 
   repoName = "terminal";
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1wna3kcg621qjyvg70dzk4lfq8si2snnlm9fnl5gj0w6b707gz2x";
+    sha256 = "1b8fzs9s7djhwp02l3fwjpwxylklpbnw7x46mv7c8ksbp0m75iyj";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index 260b340c223..5a4eaf79b38 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-mouse-touchpad";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1974zdr5w3xd882gi95fp7axgilfni1sclsr750qm32yhl7d9bfn";
+    sha256 = "1ls5jxzmd7cmbv8h67q6mcmfrfksgwjndqd6r9gxivsz2lcji3x7";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index 03e6ef999eb..28ec4e65f52 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard";
-  version = "2.3.7";
+  version = "2.3.8";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "160aar5dqd019vn28cm0d0ijj1i6mwpqkl7a1l4lpasw12drxwxz";
+    sha256 = "1y254irl07fp70228zm268w20zd7risz0sk9i9wz59yynxwjshbx";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index 4a42bc3d565..25c3f2201ef 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-gtk-theme";
-  version = "5.4.0";
+  version = "5.4.1";
 
   repoName = "stylesheet";
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0dh7lqc9b4ciyzbphqw071xcg742fvlc7gz9l1q3nqjsa2k6xg80";
+    sha256 = "0fnh08wqlhvigkxp69xkdha19ny9j0hg4ycwhhwvyr0d0z47kilw";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index 9943415a457..291977349bd 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -6,11 +6,13 @@
 , ninja
 , hicolor-icon-theme
 , gtk3
+, inkscape
+, xorg
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-icon-theme";
-  version = "5.1.0";
+  version = "5.2.0";
 
   repoName = "icons";
 
@@ -18,7 +20,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1yrf92ysjh1yfm42wznlw0lh9zsm5whghwzx3b3wcdkwdhkdg24z";
+    sha256 = "1irkjj8xfpgkl5p56xhqa3w2s98b8lav7d1lxxrabdi87cjv3n33";
   };
 
   passthru = {
@@ -29,9 +31,11 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     gtk3
+    inkscape
     meson
     ninja
     python3
+    xorg.xcursorgen
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index e601c99108b..be97c5903eb 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -14,7 +14,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-default-settings";
-  version = "5.1.1";
+  version = "5.1.2";
 
   repoName = "default-settings";
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "10sdy8v34y6bgb3mabwy7k3b5dbqrnab504dvhashpfxr9n9xncy";
+    sha256 = "00z31alwn2skhksrhp2jk75f6jlaipzk91hclx7na4gbcyrw7ahw";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index 72f94252cca..af6155037ef 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-session";
-  version = "2.2.6";
+  version = "2.2.7";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0pzknbm0hg4kf2izfg1mcmyildfzwyq1hh0xhlq16gsmakq4ld26";
+    sha256 = "0qgb225ldg3qax370z3wvijxmm4bjfqds3r9aqqhlq30599xjhsb";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex
index ad7f96d6b2a..5333ad154f5 100644
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex
+++ b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex
@@ -21,11 +21,11 @@ defmodule NixpkgsGitHubUpdate.GitHubLatestVersion do
   end
 
   defp get_token do
-    String.to_charlist("#{System.get_env("OAUTH_TOKEN")}")
+    System.get_env("OAUTH_TOKEN")
   end
 
-  defp put_token(headers, token) when is_list(token) do
-    Map.put_new(headers, 'Authorization', 'token #{token}')
+  defp put_token(headers, token) when token != nil do
+    Map.put_new(headers, 'Authorization', 'token #{String.to_charlist(token)}')
   end
 
   defp put_token(headers, _), do: headers
diff --git a/pkgs/development/compilers/bs-platform/build-bs-platform.nix b/pkgs/development/compilers/bs-platform/build-bs-platform.nix
index 03e01a7a0da..830a0b647c4 100644
--- a/pkgs/development/compilers/bs-platform/build-bs-platform.nix
+++ b/pkgs/development/compilers/bs-platform/build-bs-platform.nix
@@ -35,11 +35,12 @@ stdenv.mkDerivation {
   '';
 
   buildPhase = ''
-    node scripts/ninja.js build
+    # This is an unfortunate name, but it's actually how to build a release
+    # binary for BuckleScript
+    node scripts/install.js
   '';
 
   installPhase = ''
-    node scripts/install.js
     mkdir -p $out/bin
     cp -rf jscomp lib vendor odoc_gen native $out
     cp bsconfig.json package.json $out
diff --git a/pkgs/development/compilers/computecpp/default.nix b/pkgs/development/compilers/computecpp/default.nix
new file mode 100644
index 00000000000..65cfcaa7ff6
--- /dev/null
+++ b/pkgs/development/compilers/computecpp/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, fetchzip
+, pkg-config
+, autoPatchelfHook
+, installShellFiles
+, ncurses5
+, ocl-icd
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "computecpp";
+  version = "1.2.0";
+
+  src = fetchzip {
+    url = "https://computecpp.codeplay.com/downloads/computecpp-ce/${version}/ubuntu-16.04-64bit.tar.gz";
+    sha256 = "191kwvzxfg1sbaq6aw6f84chi7bhsibb2a63zsyz3gz8m0c0syr5";
+    stripRoot = true;
+  };
+
+  dontStrip = true;
+
+  buildInputs = [ stdenv.cc.cc.lib ncurses5 ocl-icd zlib ];
+  nativeBuildInputs = [ autoPatchelfHook pkg-config installShellFiles ];
+
+  installPhase = ''
+    runHook preInstall
+
+    find ./lib -type f -exec install -D -m 0755 {} -t $out/lib \;
+    find ./bin -type l -exec install -D -m 0755 {} -t $out/bin \;
+    find ./bin -type f -exec install -D -m 0755 {} -t $out/bin \;
+    find ./doc -type f -exec install -D -m 0644 {} -t $out/doc \;
+    find ./include -type f -exec install -D -m 0644 {} -t $out/include \;
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    isClang = true;
+  } // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) {
+    gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
+  };
+
+  meta = with stdenv.lib; {
+    description =
+      "Accelerate Complex C++ Applications on Heterogeneous Compute Systems using Open Standards";
+    homepage = https://www.codeplay.com/products/computesuite/computecpp;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ davidtwco ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/compilers/dotnet/buildDotnet.nix b/pkgs/development/compilers/dotnet/buildDotnet.nix
new file mode 100644
index 00000000000..58e67ff008a
--- /dev/null
+++ b/pkgs/development/compilers/dotnet/buildDotnet.nix
@@ -0,0 +1,67 @@
+{ type
+, version
+, sha512
+}:
+assert builtins.elem type [ "aspnetcore" "netcore" "sdk"];
+{ stdenv
+, fetchurl
+, libunwind
+, openssl
+, icu
+, libuuid
+, zlib
+, curl
+}: 
+let pname = if type == "aspnetcore" then "aspnetcore-runtime" else if type == "netcore" then "dotnet-runtime" else "dotnet-sdk";
+    urls = {
+        aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-linux-x64.tar.gz";
+        netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-linux-x64.tar.gz";
+        sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-linux-x64.tar.gz";
+    };
+    descriptions = {
+        aspnetcore = "ASP .NET Core runtime ${version}";
+        netcore = ".NET Core runtime ${version}";
+        sdk = ".NET SDK ${version}";
+    };
+in stdenv.mkDerivation rec {
+    inherit pname version;
+
+    rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc libunwind libuuid icu openssl zlib curl ];
+
+    src = fetchurl {
+        url = builtins.getAttr type urls;
+        inherit sha512;
+    };
+
+    sourceRoot = ".";
+
+    dontPatchELF = true;
+
+    installPhase = ''
+        runHook preInstall
+        mkdir -p $out/bin
+        cp -r ./ $out
+        ln -s $out/dotnet $out/bin/dotnet
+        runHook postInstall
+    '';
+
+    postFixup = ''
+        patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
+        patchelf --set-rpath "${rpath}" $out/dotnet
+        find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
+        find $out -type f -name "apphost" -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
+    '';
+
+    doInstallCheck = true;
+    installCheckPhase = ''
+        $out/bin/dotnet --info
+    '';
+
+    meta = with stdenv.lib; {
+        homepage = https://dotnet.github.io/;
+        description = builtins.getAttr type descriptions;
+        platforms = [ "x86_64-linux" ];
+        maintainers = with maintainers; [ kuznero ];
+        license = licenses.mit;
+    };
+}
diff --git a/pkgs/development/compilers/dotnet/combinePackages.nix b/pkgs/development/compilers/dotnet/combinePackages.nix
new file mode 100644
index 00000000000..00fb7c6d9b4
--- /dev/null
+++ b/pkgs/development/compilers/dotnet/combinePackages.nix
@@ -0,0 +1,20 @@
+packages:
+{ buildEnv, lib }:
+let cli = builtins.head packages;
+in
+assert lib.assertMsg ((builtins.length packages) != 0)
+    ''You must include at least one package, e.g
+      `with dotnetCorePackages; combinePackages {
+          packages = [ sdk_3_0 aspnetcore_2_1 ];
+       };`'' ;
+  buildEnv {
+    name = "dotnet-core-combined";
+    paths = packages;
+    pathsToLink = [ "/host" "/packs" "/sdk" "/shared" "/templates" ];
+    ignoreCollisions = true;
+    postBuild = ''
+      cp ${cli}/dotnet $out/dotnet
+      mkdir $out/bin
+      ln -s $out/dotnet $out/bin/
+    '';
+  }
diff --git a/pkgs/development/compilers/dotnet/default.nix b/pkgs/development/compilers/dotnet/default.nix
new file mode 100644
index 00000000000..58d49a50515
--- /dev/null
+++ b/pkgs/development/compilers/dotnet/default.nix
@@ -0,0 +1,68 @@
+/*
+How to combine packages for use in development:
+dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_3_1 sdk_2_2 sdk_3_0 sdk aspnetcore_2_1 ];
+*/
+{ callPackage }:
+let
+  buildDotnet = attrs: callPackage (import ./buildDotnet.nix attrs) {};
+  buildAspNetCore = attrs: buildDotnet (attrs // { type = "aspnetcore"; } );
+  buildNetCore = attrs: buildDotnet (attrs // { type = "netcore"; } );
+  buildNetCoreSdk = attrs: buildDotnet (attrs // { type = "sdk"; } );
+in rec {
+  combinePackages = attrs: callPackage (import ./combinePackages.nix attrs) {};
+
+  # v2.1.15 (LTS)
+
+  aspnetcore_2_1 = buildAspNetCore {
+    version = "2.1.15";
+    sha512 = "a557f175cca92bb1dd66cf638ff84fe85750fab67028bd4472748b22ef0591f5f3812446a3dbe21c3d1be28c47d459d854d690dbace1b95bc7136b248af87334";
+  };
+
+  netcore_2_1 = buildNetCore {
+    version = "2.1.15";
+    sha512 = "cfd7f7caea7e896dd4d68a05c827c86f38595f24e854edb3f934715ee1268e2623f17ff768215e465fe596cd474497384be2b1381f04ddd6d555665a341f65f6";
+  };
+
+  sdk_2_1 = buildNetCoreSdk {
+    version = "2.1.803";
+    sha512 = "57d48d6ca1bd92ac348dc05220d984811c0cf005774d7afdfbbf125a842acb0a26572146ed25a7eb26f4e0404fe840b70d1e7ec1fb7c9a5c6cfe81fefc41b363";
+  };
+
+  # v2.2
+
+  sdk_2_2 = throw "Dotnet SDK 2.2 is EOL, please use 3.1";
+
+  # v3.0.2 (Maintenance)
+
+  aspnetcore_3_0 = buildAspNetCore {
+    version = "3.0.2";
+    sha512 = "84dcc2a2a9e43afbc166771153d85b19cb09f964c85c787d77b362fd1d9e076345ae153305fa9040999846a56b69041eb89282804587478b926179d2613d259d";
+  };
+
+  netcore_3_0 = buildNetCore {
+    version = "3.0.2";
+    sha512 = "c8f0e4eb220fa896c4a803a8d9d0c704ae7b8383801a977036f3089b1d779159f5a2d9293dc11ff5f4f6c76febc6f70f6cfcdff0debd3243cad5eb635f853d45";
+  };
+
+  sdk_3_0 = buildNetCoreSdk {
+    version = "3.0.102";
+    sha512 = "77bc287d9c20630976ac4c0736192ba4899154c9e7cc5b87bc9d94d5d8abafdd832cfe8f385b6ba584c702d9261566109df15ab46b0d62bd218d950d3b47893e";
+  };
+
+  # v3.1.1 (LTS)
+
+  aspnetcore_3_1 = buildAspNetCore {
+    version = "3.1.1";
+    sha512 = "cc27828cacbc783ef83cc1378078e14ac558aec30726b36c4f154fad0d08ff011e7e1dfc17bc851926ea3b0da9c7d71496af14ee13184bdf503856eca30a89ae";
+  };
+
+  netcore_3_1 = buildNetCore {
+    version = "3.1.1";
+    sha512 = "991a89ac7b52d3bf6c00359ce94c5a3f7488cd3d9e4663ba0575e1a5d8214c5fcc459e2cb923c369c2cdb789a96f0b1dfb5c5aae1a04df6e7f1f365122072611";
+  };
+
+  sdk_3_1 = buildNetCoreSdk {
+    version = "3.1.101";
+    sha512 = "eeee75323be762c329176d5856ec2ecfd16f06607965614df006730ed648a5b5d12ac7fd1942fe37cfc97e3013e796ef278e7c7bc4f32b8680585c4884a8a6a1";
+  };
+}
diff --git a/pkgs/development/compilers/dotnet/sdk/default.nix b/pkgs/development/compilers/dotnet/sdk/default.nix
deleted file mode 100644
index 984ab39c91a..00000000000
--- a/pkgs/development/compilers/dotnet/sdk/default.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ stdenv
-, fetchurl
-, libunwind
-, openssl
-, icu
-, libuuid
-, zlib
-, curl
-}:
-
-let
-  rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc libunwind libuuid icu openssl zlib curl ];
-in
-  stdenv.mkDerivation rec {
-    version = "2.2.401";
-    netCoreVersion = "2.2.6";
-    pname = "dotnet-sdk";
-
-    src = fetchurl {
-      url = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-linux-x64.tar.gz";
-      # use sha512 from the download page
-      sha512 = "05w3zk7bcd8sv3k4kplf20j906and2006g1fggq7y6kaxrlhdnpd6jhy6idm8v5bz48wfxga5b4yys9qx0fp3p8yl7wi67qljpzrq88";
-    };
-
-    sourceRoot = ".";
-
-    buildPhase = ''
-      runHook preBuild
-      patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" ./dotnet
-      patchelf --set-rpath "${rpath}" ./dotnet
-      find -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
-      echo -n "dotnet-sdk version: "
-      ./dotnet --version
-      runHook postBuild
-    '';
-
-    dontPatchELF = true;
-
-    installPhase = ''
-      runHook preInstall
-      mkdir -p $out/bin
-      cp -r ./ $out
-      ln -s $out/dotnet $out/bin/dotnet
-      runHook postInstall
-    '';
-
-    meta = with stdenv.lib; {
-      homepage = https://dotnet.github.io/;
-      description = ".NET Core SDK ${version} with .NET Core ${netCoreVersion}";
-      platforms = [ "x86_64-linux" ];
-      maintainers = with maintainers; [ kuznero ];
-      license = licenses.mit;
-    };
-  }
diff --git a/pkgs/development/compilers/ghc/8.8.2.nix b/pkgs/development/compilers/ghc/8.8.2.nix
index 4ed99a8402a..b0eef9ef924 100644
--- a/pkgs/development/compilers/ghc/8.8.2.nix
+++ b/pkgs/development/compilers/ghc/8.8.2.nix
@@ -86,12 +86,12 @@ let
 
 in
 stdenv.mkDerivation (rec {
-  version = "8.8.1.20191211";
+  version = "8.8.2";
   name = "${targetPrefix}ghc-${version}";
 
   src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/8.8.2-rc1/ghc-${version}-src.tar.xz";
-    sha256 = "1gl4fzakjbhd94v1saxmr9sfzgk22m1b95jq51rxm93b2g4cixl4";
+    url = "https://downloads.haskell.org/ghc/8.8.2/ghc-${version}-src.tar.xz";
+    sha256 = "02qa6wgjpxgakg7hv4zfdlrx9k7zxa5i02wnr6y9fsv8j16sbkh1";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/ocaml/4.10.nix b/pkgs/development/compilers/ocaml/4.10.nix
new file mode 100644
index 00000000000..6f78ae05e02
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/4.10.nix
@@ -0,0 +1,6 @@
+import ./generic.nix {
+  major_version = "4";
+  minor_version = "10";
+  patch_version = "0+beta1";
+  sha256 = "18jrgww98v1famb2x5jhbsnm4ngph2rvq0z4cxpqxfn06yb53jyf";
+}
diff --git a/pkgs/development/compilers/purescript/purescript/default.nix b/pkgs/development/compilers/purescript/purescript/default.nix
index f1126fdeddf..d1797a448ad 100644
--- a/pkgs/development/compilers/purescript/purescript/default.nix
+++ b/pkgs/development/compilers/purescript/purescript/default.nix
@@ -18,19 +18,19 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "purescript";
-  version = "0.13.5";
+  version = "0.13.6";
 
   src =
     if stdenv.isDarwin
     then
     fetchurl {
       url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz";
-      sha256 = "19bb50m0cd738r353blgy21d842b3yj58xfbplk7bz59jawj9lym";
+      sha256 = "04kwjjrriyizpvhs96jgyx21ppyd1ynblk24i5825ywxlw9hja25";
     }
     else
     fetchurl {
       url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz";
-      sha256 = "016wvwypgb4859f0n1lqsqv9a8cca2y8g7d6ffvzx6rncd115gxi";
+      sha256 = "012znrj32aq96qh1g2hscdvhl3flgihhimiz40agk0dykpksblns";
     };
 
 
@@ -59,7 +59,7 @@ in stdenv.mkDerivation rec {
     description = "A strongly-typed functional programming language that compiles to JavaScript";
     homepage = http://www.purescript.org/;
     license = licenses.bsd3;
-    maintainers = [ maintainers.justinwoo ];
+    maintainers = [ maintainers.justinwoo maintainers.mbbx6spp ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/pkgs/development/compilers/swift/default.nix b/pkgs/development/compilers/swift/default.nix
index 817f81f9257..77bc3cc5b73 100644
--- a/pkgs/development/compilers/swift/default.nix
+++ b/pkgs/development/compilers/swift/default.nix
@@ -33,33 +33,40 @@
 }:
 
 let
-  v_base = "5.0.2";
-  version = "${v_base}-RELEASE";
-  version_friendly = v_base;
+  version = "5.1.1";
 
-  tag = "refs/tags/swift-${version}";
   fetch = { repo, sha256, fetchSubmodules ? false }:
     fetchFromGitHub {
       owner = "apple";
       inherit repo sha256 fetchSubmodules;
-      rev = tag;
+      rev = "swift-${version}-RELEASE";
       name = "${repo}-${version}-src";
     };
 
   sources = {
-    # FYI: SourceKit probably would work but currently requires building everything twice
-    # For more inforation, see: https://github.com/apple/swift/pull/3594#issuecomment-234169759
-    clang = fetch {
-      repo = "swift-clang";
-      sha256 = "046p7f4044ls8hhgklsz32md5jvxkaaim1d75n0fmnwap6di3n1q";
-    };
     llvm = fetch {
       repo = "swift-llvm";
-      sha256 = "1bnscqsiljiclij60f44h2fyx5c84pzry0lz1jbwknphwmqd6f84";
+      sha256 = "00ldd9dby6fl6nk3z17148fvb7g9x4jkn1afx26y51v8rwgm1i7f";
     };
     compilerrt = fetch {
       repo = "swift-compiler-rt";
-      sha256 = "0bba54xa7z0wj6k7a24q74gc4yajc6s64g1m894i3yd6swdk7f6r";
+      sha256 = "1431f74l0n2dxn728qp65nc6hivx88fax1wzfrnrv19y77br05wj";
+    };
+    clang = fetch {
+      repo = "swift-clang";
+      sha256 = "0n7k6nvzgqp6h6bfqcmna484w90db3zv4sh5rdh89wxyhdz6rk4v";
+    };
+    clangtools = fetch {
+      repo = "swift-clang-tools-extra";
+      sha256 = "0snp2rpd60z239pr7fxpkj332rkdjhg63adqvqdkjsbrxcqqcgqa";
+    };
+    indexstore = fetch {
+      repo = "indexstore-db";
+      sha256 = "1gwkqkdmpd5hn7555dpdkys0z50yh00hjry2886h6rx7avh5p05n";
+    };
+    sourcekit = fetch {
+      repo = "sourcekit-lsp";
+      sha256 = "0k84ssr1k7grbvpk81rr21ii8csnixn9dp0cga98h6i1gshn8ml4";
     };
     cmark = fetch {
       repo = "swift-cmark";
@@ -67,32 +74,32 @@ let
     };
     lldb = fetch {
       repo = "swift-lldb";
-      sha256 = "01yrhc1ggv89qii03fdjdvb2aq9v4hd1wk83n8ygrwwc75p44qmi";
+      sha256 = "0j787475f0nlmvxqblkhn3yrvn9qhcb2jcijwijxwq95ar2jdygs";
     };
     llbuild = fetch {
       repo = "swift-llbuild";
-      sha256 = "0ipwryzpqxpk3rzkxilfahlkz06k39j91q2lv7fprf0slqknrdms";
+      sha256 = "1n2s5isxyl6b6ya617gdzjbw68shbvd52vsfqc1256rk4g448v8b";
     };
     pm = fetch {
       repo = "swift-package-manager";
-      sha256 = "1mnywlm7i2mbp16q0rskskvnbx1ap8lchwr8q3gx0xs3b2fs6chh";
+      sha256 = "1a49jmag5mpld9zr96g8a773334mrz1c4nyw38gf4p6sckf4jp29";
     };
     xctest = fetch {
       repo = "swift-corelibs-xctest";
-      sha256 = "1vpljkxhfk3yd07ry0xsv3qwbn62pwd2mdn9cw22jhbhvqinc13z";
+      sha256 = "0rxy9sq7i0s0kxfkz0hvdp8zyb40h31f7g4m0kry36qk82gzzh89";
     };
     foundation = fetch {
       repo = "swift-corelibs-foundation";
-      sha256 = "1wys4xh7f6c7yjf210x41n2krmyi2qj1wpxbv0p48d230va1azj1";
+      sha256 = "1iiiijsnys0r3hjcj1jlkn3yszzi7hwb2041cnm5z306nl9sybzp";
     };
     libdispatch = fetch {
       repo = "swift-corelibs-libdispatch";
-      sha256 = "0chnb0d4xjyn9wnc8bgimd5ji5igfyq891flgnqpfwr4y26496c1";
+      sha256 = "0laqsizsikyjhrzn0rghvxd8afg4yav7cbghvnf7ywk9wc6kpkmn";
       fetchSubmodules = true;
     };
     swift = fetch {
       repo = "swift";
-      sha256 = "0fsq1y8dz4ssn90akvzj36cqyblalb09bjzy4ikqn67mb5x99wpb";
+      sha256 = "0m4r1gzrnn0s1c7haqq9dlmvpqxbgbkbdfmq6qaph869wcmvdkvy";
     };
   };
 
@@ -116,23 +123,9 @@ let
     "-DGCC_INSTALL_PREFIX=${clang.cc.gcc}"
   ];
 
-  builder = ''
-    # gcc-6.4.0/include/c++/6.4.0/cstdlib:75:15: fatal error: 'stdlib.h' file not found
-    NIX_CFLAGS_COMPILE="$( echo ${clang.default_cxx_stdlib_compile} ) $NIX_CFLAGS_COMPILE"
-    # During the Swift build, a full local LLVM build is performed and the resulting clang is invoked.
-    # This compiler is not using the Nix wrappers, so it needs some help to find things.
-    export NIX_LDFLAGS_BEFORE="-rpath ${clang.cc.gcc.lib}/lib -L${clang.cc.gcc.lib}/lib $NIX_LDFLAGS_BEFORE"
-
-    $SWIFT_SOURCE_ROOT/swift/utils/build-script \
-      --preset=buildbot_linux \
-      installable_package=$INSTALLABLE_PACKAGE \
-      install_prefix=$out \
-      install_destdir=$SWIFT_INSTALL_DIR \
-      extra_cmake_options="${stdenv.lib.concatStringsSep "," cmakeFlags}"'';
-
 in
 stdenv.mkDerivation {
-  name = "swift-${version_friendly}";
+  name = "swift-${version}";
 
   nativeBuildInputs = [
     autoconf
@@ -164,32 +157,17 @@ stdenv.mkDerivation {
 
   hardeningDisable = [ "format" ]; # for LLDB
 
-  configurePhase = ''
-    cd ..
-
-    export INSTALLABLE_PACKAGE=$PWD/swift.tar.gz
-
-    mkdir build install
-    export SWIFT_BUILD_ROOT=$PWD/build
-    export SWIFT_INSTALL_DIR=$PWD/install
-
-    cd $SWIFT_BUILD_ROOT
-
-    unset CC
-    unset CXX
-
-    export NIX_ENFORCE_PURITY=
-  '';
-
   unpackPhase = ''
     mkdir src
     cd src
-    export sourceRoot=$PWD
     export SWIFT_SOURCE_ROOT=$PWD
 
-    cp -r ${sources.clang} clang
     cp -r ${sources.llvm} llvm
     cp -r ${sources.compilerrt} compiler-rt
+    cp -r ${sources.clang} clang
+    cp -r ${sources.clangtools} clang-tools-extra
+    cp -r ${sources.indexstore} indexstore-db
+    cp -r ${sources.sourcekit} sourcekit-lsp
     cp -r ${sources.cmark} cmark
     cp -r ${sources.lldb} lldb
     cp -r ${sources.llbuild} llbuild
@@ -234,33 +212,75 @@ stdenv.mkDerivation {
       \
       -e 's/^swift-install-components=autolink.*$/\0;editor-integration/'
 
-    # https://bugs.swift.org/browse/SR-10559
-    patch -p1 -d swift-corelibs-libdispatch -i ${./patches/libdispatch-fortify-fix.patch}
-
+    substituteInPlace clang/lib/Driver/ToolChains/Linux.cpp \
+      --replace 'SysRoot + "/lib' '"${glibc}/lib" "'
     substituteInPlace clang/lib/Driver/ToolChains/Linux.cpp \
       --replace 'SysRoot + "/usr/lib' '"${glibc}/lib" "'
-    patch -p1 -d clang -i ${./patches/llvm-include-dirs.patch}
+    patch -p1 -d clang -i ${./patches/llvm-toolchain-dir.patch}
     patch -p1 -d clang -i ${./purity.patch}
 
     # Workaround hardcoded dep on "libcurses" (vs "libncurses"):
-    sed -i 's,curses,ncurses,' llbuild/*/*/CMakeLists.txt
+    sed -i 's/curses/ncurses/' llbuild/*/*/CMakeLists.txt
+    # uuid.h is not part of glibc, but of libuuid
+    sed -i 's|''${GLIBC_INCLUDE_PATH}/uuid/uuid.h|${libuuid.dev}/include/uuid/uuid.h|' swift/stdlib/public/Platform/glibc.modulemap.gyb
 
     PREFIX=''${out/#\/}
+    substituteInPlace indexstore-db/Utilities/build-script-helper.py \
+      --replace usr "$PREFIX"
+    substituteInPlace sourcekit-lsp/Utilities/build-script-helper.py \
+      --replace usr "$PREFIX"
     substituteInPlace swift-corelibs-xctest/build_script.py \
       --replace usr "$PREFIX"
   '';
 
-  buildPhase = builder;
+  configurePhase = ''
+    cd ..
+
+    mkdir build install
+    export SWIFT_BUILD_ROOT=$PWD/build
+    export SWIFT_INSTALL_DIR=$PWD/install
+
+    export INSTALLABLE_PACKAGE=$PWD/swift.tar.gz
+    export NIX_ENFORCE_PURITY=
 
-  doCheck = false;
+    cd $SWIFT_BUILD_ROOT
+  '';
+
+  buildPhase = ''
+    # gcc-6.4.0/include/c++/6.4.0/cstdlib:75:15: fatal error: 'stdlib.h' file not found
+    export NIX_CFLAGS_COMPILE="$( echo ${clang.default_cxx_stdlib_compile} ) $NIX_CFLAGS_COMPILE"
+    # During the Swift build, a full local LLVM build is performed and the resulting clang is invoked.
+    # This compiler is not using the Nix wrappers, so it needs some help to find things.
+    export NIX_LDFLAGS_BEFORE="-rpath ${clang.cc.gcc.lib}/lib -L${clang.cc.gcc.lib}/lib $NIX_LDFLAGS_BEFORE"
+    # However, we want to use the wrapped compiler whenever possible.
+    export CC="${clang}/bin/clang"
+
+    # fix for https://bugs.llvm.org/show_bug.cgi?id=39743
+    # see also https://forums.swift.org/t/18138/15
+    export CCC_OVERRIDE_OPTIONS="#x-fmodules s/-fmodules-cache-path.*//"
+
+    $SWIFT_SOURCE_ROOT/swift/utils/build-script \
+      --preset=buildbot_linux \
+      installable_package=$INSTALLABLE_PACKAGE \
+      install_prefix=$out \
+      install_destdir=$SWIFT_INSTALL_DIR \
+      extra_cmake_options="${stdenv.lib.concatStringsSep "," cmakeFlags}"
+  '';
+
+  doCheck = true;
 
   checkInputs = [ file ];
 
-  # TODO: investigate the non-working tests
   checkPhase = ''
+    # FIXME: disable non-working tests
+    rm $SWIFT_SOURCE_ROOT/swift/test/Driver/static-stdlib-linux.swift  # static linkage of libatomic.a complains about missing PIC
+    rm $SWIFT_SOURCE_ROOT/swift/validation-test/Python/build_swift.swift  # install_prefix not passed properly
+
+    # match the swift wrapper in the install phase
+    export LIBRARY_PATH=${icu}/lib:${libuuid.out}/lib
+
     checkTarget=check-swift-all
     ninjaFlags='-C buildbot_linux/swift-${stdenv.hostPlatform.parsed.kernel.name}-${stdenv.hostPlatform.parsed.cpu.name}'
-
     ninjaCheckPhase
   '';
 
@@ -268,18 +288,22 @@ stdenv.mkDerivation {
     mkdir -p $out
 
     # Extract the generated tarball into the store
-    PREFIX=''${out/#\/}
-    tar xf $INSTALLABLE_PACKAGE -C $out --strip-components=3 $PREFIX
+    tar xf $INSTALLABLE_PACKAGE -C $out --strip-components=3 ''${out/#\/}
     find $out -type d -empty -delete
 
+    # fix installation weirdness, also present in Apple’s official tarballs
+    mv $out/local/include/indexstore $out/include
+    rmdir $out/local/include $out/local
+    rm -r $out/bin/sdk-module-lists $out/bin/swift-api-checker.py
+
     wrapProgram $out/bin/swift \
       --suffix C_INCLUDE_PATH : $out/lib/swift/clang/include \
       --suffix CPLUS_INCLUDE_PATH : $out/lib/swift/clang/include \
-      --suffix LIBRARY_PATH : $icu/lib
+      --suffix LIBRARY_PATH : ${icu}/lib:${libuuid.out}/lib
   '';
 
-  # Hack to avoid TMPDIR in RPATHs.
-  preFixup = ''rm -rf "$(pwd)" '';
+  # Hack to avoid build and install directories in RPATHs.
+  preFixup = ''rm -rf $SWIFT_BUILD_ROOT $SWIFT_INSTALL_DIR'';
 
   meta = with stdenv.lib; {
     description = "The Swift Programming Language";
diff --git a/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch b/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch
index 79482ac10e6..60b2996b340 100644
--- a/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch
+++ b/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch
@@ -1,17 +1,8 @@
-From 1fc49285c7a198de14005803dfde64bda17f4120 Mon Sep 17 00:00:00 2001
-From: Will Dietz <w@wdtz.org>
-Date: Tue, 28 Mar 2017 15:01:16 -0500
-Subject: [PATCH 1/4] build-presets: (linux) don't require using Ninja
+Don't build Ninja, we use our own.
 
----
- utils/build-presets.ini | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/utils/build-presets.ini b/utils/build-presets.ini
-index 7ee57ad2df..e6b0af3581 100644
 --- a/utils/build-presets.ini
 +++ b/utils/build-presets.ini
-@@ -721,7 +721,7 @@ swiftpm
+@@ -745,7 +745,7 @@ swiftpm
  
  dash-dash
  
@@ -20,6 +11,3 @@ index 7ee57ad2df..e6b0af3581 100644
  install-swift
  install-lldb
  install-llbuild
--- 
-2.12.2
-
diff --git a/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch b/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch
index 5c1927acb7f..5ca6bf1354d 100644
--- a/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch
+++ b/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch
@@ -1,25 +1,13 @@
-From fca6624b7a0ad670157105336a737cc95f9ce9fb Mon Sep 17 00:00:00 2001
-From: Will Dietz <w@wdtz.org>
-Date: Tue, 28 Mar 2017 15:01:40 -0500
-Subject: [PATCH 2/4] build-presets: (linux) allow custom install prefix
+allow custom install prefix
 
----
- utils/build-presets.ini | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/utils/build-presets.ini b/utils/build-presets.ini
-index e6b0af3581..1095cbaab7 100644
 --- a/utils/build-presets.ini	2019-04-11 14:51:40.060259462 +0200
 +++ b/utils/build-presets.ini	2019-04-11 15:16:17.471137969 +0200
-@@ -728,7 +728,7 @@
+@@ -752,7 +752,7 @@
  install-swiftpm
  install-xctest
  install-libicu
 -install-prefix=/usr
 +install-prefix=%(install_prefix)s
- swift-install-components=autolink-driver;compiler;clang-resource-dir-symlink;stdlib;swift-remote-mirror;sdk-overlay;license;sourcekit-inproc
- llvm-install-components=llvm-cov;llvm-profdata;IndexStore;clang;clang-headers;compiler-rt
  install-libcxx
--- 
-2.12.2
-
+ install-sourcekit-lsp
+ build-swift-static-stdlib
diff --git a/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch b/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch
index 5d766bc2590..0a66af9e513 100644
--- a/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch
+++ b/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch
@@ -1,6 +1,8 @@
+Disable targets, where we use Nix packages.
+
 --- a/utils/build-presets.ini	2019-04-11 15:19:57.845178834 +0200
 +++ b/utils/build-presets.ini	2019-04-11 15:27:42.041297057 +0200
-@@ -716,8 +716,6 @@
+@@ -740,8 +740,6 @@
  llbuild
  swiftpm
  xctest
@@ -9,15 +11,13 @@
  
  dash-dash
  
-@@ -727,11 +725,9 @@
+@@ -751,9 +749,7 @@
  install-llbuild
  install-swiftpm
  install-xctest
 -install-libicu
  install-prefix=%(install_prefix)s
- swift-install-components=autolink-driver;compiler;clang-resource-dir-symlink;stdlib;swift-remote-mirror;sdk-overlay;license;sourcekit-inproc
- llvm-install-components=llvm-cov;llvm-profdata;IndexStore;clang;clang-headers;compiler-rt
 -install-libcxx
+ install-sourcekit-lsp
  build-swift-static-stdlib
  build-swift-static-sdk-overlay
- build-swift-stdlib-unittest-extra
diff --git a/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch b/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch
index 1d0a6a9577a..304b53a1dbf 100644
--- a/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch
+++ b/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch
@@ -1,17 +1,8 @@
-From 4a46b12f580d0a9779937d07c4f1fd347570c4ef Mon Sep 17 00:00:00 2001
-From: Will Dietz <w@wdtz.org>
-Date: Tue, 28 Mar 2017 15:02:37 -0500
-Subject: [PATCH 4/4] build-presets: (linux) plumb extra-cmake-options
+plumb extra-cmake-options
 
----
- utils/build-presets.ini | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/utils/build-presets.ini b/utils/build-presets.ini
-index 1739e91dc2..0608fed9c1 100644
 --- a/utils/build-presets.ini
 +++ b/utils/build-presets.ini
-@@ -743,6 +743,8 @@ install-destdir=%(install_destdir)s
+@@ -766,6 +766,8 @@ install-destdir=%(install_destdir)s
  # Path to the .tar.gz package we would create.
  installable-package=%(installable_package)s
  
@@ -20,6 +11,3 @@ index 1739e91dc2..0608fed9c1 100644
  [preset: buildbot_linux]
  mixin-preset=mixin_linux_installation
  build-subdir=buildbot_linux
--- 
-2.12.2
-
diff --git a/pkgs/development/compilers/swift/patches/glibc-arch-headers.patch b/pkgs/development/compilers/swift/patches/glibc-arch-headers.patch
index df906f9c84c..c05db520801 100644
--- a/pkgs/development/compilers/swift/patches/glibc-arch-headers.patch
+++ b/pkgs/development/compilers/swift/patches/glibc-arch-headers.patch
@@ -2,7 +2,7 @@ The Nix glibc headers do not use include/x86_64-linux-gnu subdirectories.
 
 --- swift/stdlib/public/Platform/CMakeLists.txt	2019-04-09 20:14:44.493801403 +0200
 +++ swift/stdlib/public/Platform/CMakeLists.txt	2019-04-09 20:14:44.577800593 +0200
-@@ -68,7 +68,7 @@
+@@ -77,7 +77,7 @@
      endif()
  
      set(GLIBC_INCLUDE_PATH "${GLIBC_SYSROOT_RELATIVE_INCLUDE_PATH}")
diff --git a/pkgs/development/compilers/swift/patches/libdispatch-fortify-fix.patch b/pkgs/development/compilers/swift/patches/libdispatch-fortify-fix.patch
deleted file mode 100644
index d23a308d68f..00000000000
--- a/pkgs/development/compilers/swift/patches/libdispatch-fortify-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Nix compiles with _FORTIFY_SOURCE enabled. Fix error due to -Werror and an unused return value warning.
-
---- swift-corelibs-libdispatch/src/internal.h	2019-04-26 09:33:38.287289099 +0200
-+++ swift-corelibs-libdispatch/src/internal.h	2019-04-26 15:31:10.485334128 +0200
-@@ -1053,7 +1053,7 @@
- #else
- #define _dispatch_client_assert_fail(fmt, ...)  do { \
- 		char *_msg = NULL; \
--		asprintf(&_msg, "%s" fmt, DISPATCH_ASSERTION_FAILED_MESSAGE, \
-+		(void)asprintf(&_msg, "%s" fmt, DISPATCH_ASSERTION_FAILED_MESSAGE, \
- 				##__VA_ARGS__); \
- 		_dispatch_assert_crash(_msg); \
- 		free(_msg); \
diff --git a/pkgs/development/compilers/swift/patches/llvm-include-dirs.patch b/pkgs/development/compilers/swift/patches/llvm-include-dirs.patch
deleted file mode 100644
index 789c0be7e7a..00000000000
--- a/pkgs/development/compilers/swift/patches/llvm-include-dirs.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Only use the Nix include dirs when no sysroot is configured.
-
---- clang/lib/Driver/ToolChains/Linux.cpp	2018-10-05 18:01:15.731109551 +0200
-+++ clang/lib/Driver/ToolChains/Linux.cpp	2018-10-05 18:00:27.959509924 +0200
-@@ -641,7 +641,7 @@
- 
-   // Check for configure-time C include directories.
-   StringRef CIncludeDirs(C_INCLUDE_DIRS);
--  if (CIncludeDirs != "") {
-+  if (CIncludeDirs != "" && (SysRoot.empty() || SysRoot == "/")) {
-     SmallVector<StringRef, 5> dirs;
-     CIncludeDirs.split(dirs, ":");
-     for (StringRef dir : dirs) {
diff --git a/pkgs/development/compilers/swift/patches/llvm-toolchain-dir.patch b/pkgs/development/compilers/swift/patches/llvm-toolchain-dir.patch
new file mode 100644
index 00000000000..c22b5c820c8
--- /dev/null
+++ b/pkgs/development/compilers/swift/patches/llvm-toolchain-dir.patch
@@ -0,0 +1,24 @@
+Use the Nix include dirs and gcc runtime dir, when no sysroot is configured.
+
+--- clang/lib/Driver/ToolChains/Linux.cpp	2018-10-05 18:01:15.731109551 +0200
++++ clang/lib/Driver/ToolChains/Linux.cpp	2018-10-05 18:00:27.959509924 +0200
+@@ -665,7 +665,7 @@
+ 
+   // Check for configure-time C include directories.
+   StringRef CIncludeDirs(C_INCLUDE_DIRS);
+-  if (CIncludeDirs != "") {
++  if (CIncludeDirs != "" && (SysRoot.empty() || SysRoot == "/")) {
+     SmallVector<StringRef, 5> dirs;
+     CIncludeDirs.split(dirs, ":");
+     for (StringRef dir : dirs) {
+--- clang/lib/Driver/ToolChains/Gnu.cpp	2019-10-26 09:49:27.003752743 +0200
++++ clang/lib/Driver/ToolChains/Gnu.cpp	2019-10-26 09:50:49.067236497 +0200
+@@ -1743,7 +1743,7 @@
+   // If we have a SysRoot, ignore GCC_INSTALL_PREFIX.
+   // GCC_INSTALL_PREFIX specifies the gcc installation for the default
+   // sysroot and is likely not valid with a different sysroot.
+-  if (!SysRoot.empty())
++  if (!(SysRoot.empty() || SysRoot == "/"))
+     return "";
+ 
+   return GCC_INSTALL_PREFIX;
diff --git a/pkgs/development/compilers/swift/purity.patch b/pkgs/development/compilers/swift/purity.patch
index 832decdc41f..4133e89c283 100644
--- a/pkgs/development/compilers/swift/purity.patch
+++ b/pkgs/development/compilers/swift/purity.patch
@@ -1,17 +1,8 @@
-From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
-From: Will Dietz <w@wdtz.org>
-Date: Thu, 18 May 2017 11:56:12 -0500
-Subject: [PATCH] "purity" patch for 5.0
+"purity" patch for 5.0
 
----
- lib/Driver/ToolChains/Gnu.cpp | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
-index fe3c0191bb..c6a482bece 100644
 --- a/lib/Driver/ToolChains/Gnu.cpp
 +++ b/lib/Driver/ToolChains/Gnu.cpp
-@@ -380,13 +380,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+@@ -402,13 +402,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
    if (!Args.hasArg(options::OPT_static)) {
      if (Args.hasArg(options::OPT_rdynamic))
        CmdArgs.push_back("-export-dynamic");
@@ -25,6 +16,3 @@ index fe3c0191bb..c6a482bece 100644
    }
  
    CmdArgs.push_back("-o");
--- 
-2.11.0
-
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index f28bf4bb707..5605af97ddc 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -1052,17 +1052,17 @@ self: super: {
   # This raises the lower bound on prettyprinter to 1.5.1 since
   # `removeTrailingWhitespace` is buggy in earlier versions.
   # This will probably be able to be removed when we update to LTS-15.
-  dhall_1_28_0 =
-    dontCheck (super.dhall_1_28_0.override {
+  dhall_1_29_0 =
+    dontCheck (super.dhall_1_29_0.override {
       prettyprinter = self.prettyprinter_1_5_1;
       prettyprinter-ansi-terminal =
         self.prettyprinter-ansi-terminal.override {
           prettyprinter = self.prettyprinter_1_5_1;
         };
     });
-  dhall-bash_1_0_25 = super.dhall-bash_1_0_25.override { dhall = self.dhall_1_28_0; };
-  dhall-json_1_6_0 = super.dhall-json_1_6_0.override {
-    dhall = self.dhall_1_28_0;
+  dhall-bash_1_0_27 = super.dhall-bash_1_0_27.override { dhall = self.dhall_1_29_0; };
+  dhall-json_1_6_1 = super.dhall-json_1_6_1.override {
+    dhall = self.dhall_1_29_0;
     prettyprinter = self.prettyprinter_1_5_1;
     prettyprinter-ansi-terminal =
       self.prettyprinter-ansi-terminal.override {
@@ -1228,8 +1228,7 @@ self: super: {
   temporary-resourcet = doJailbreak super.temporary-resourcet;
 
   # Requires dhall >= 1.23.0
-  ats-pkg = super.ats-pkg.override { dhall = self.dhall_1_28_0; };
-  dhall-to-cabal = super.dhall-to-cabal.override { dhall = self.dhall_1_28_0; };
+  ats-pkg = super.ats-pkg.override { dhall = self.dhall_1_29_0; };
 
   # Test suite doesn't work with current QuickCheck
   # https://github.com/pruvisto/heap/issues/11
@@ -1239,7 +1238,7 @@ self: super: {
   constraints-deriving = dontCheck super.constraints-deriving;
 
   # need newer version of ghc-libparser
-  hlint = super.hlint.override { ghc-lib-parser = self.ghc-lib-parser_8_8_1_20191204; };
+  hlint = super.hlint.override { ghc-lib-parser = self.ghc-lib-parser_8_8_2; };
 
   # https://github.com/sol/hpack/issues/366
   hpack = self.hpack_0_33_0;
@@ -1363,7 +1362,7 @@ self: super: {
 
   # Needs ghc-lib-parser 8.8.1 (does not build with 8.8.0)
   ormolu = doJailbreak (super.ormolu.override {
-    ghc-lib-parser = self.ghc-lib-parser_8_8_1_20191204;
+    ghc-lib-parser = self.ghc-lib-parser_8_8_2;
   });
 
   # krank-0.1.0 does not accept PyF-0.9.0.0.
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index ab8966ce590..7198ed5ff19 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -105,6 +105,7 @@ self: super: {
   skylighting = self.skylighting_0_8_3;
   skylighting-core = self.skylighting-core_0_8_3;
   sop-core = self.sop-core_0_5_0_0;
+  tls-session-manager = self.tls-session-manager_0_0_4;
   texmath = self.texmath_0_12;
   th-desugar = self.th-desugar_1_10;
   tls = self.tls_1_5_3;
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 2d144651bc0..a72ee71af3a 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -67,6 +67,8 @@ core-packages:
 # comment saying "# LTS Haskell x.y". Any changes after that commend will be
 # lost the next time `update-stackage.sh` runs.
 default-package-overrides:
+  # pandoc-2.9 does not accept the 0.3 version yet
+  - doclayout < 0.3
   # LTS Haskell 14.20
   - abstract-deque ==0.3
   - abstract-deque-tests ==0.3
@@ -1198,6 +1200,8 @@ default-package-overrides:
   - l10n ==0.1.0.1
   - labels ==0.3.3
   - lackey ==1.0.10
+  - lambdabot-core ==5.2
+  - lambdabot-irc-plugins ==5.2
   - LambdaHack ==0.9.5.0
   - lame ==0.2.0
   - language-c ==0.8.3
@@ -2510,6 +2514,7 @@ extra-packages:
   - dbus <1                             # for xmonad-0.26
   - deepseq == 1.3.0.1                  # required to build Cabal with GHC 6.12.3
   - dhall == 1.27.0                     # required for spago 0.13.0.  Probably can be removed when next version of spago is available.
+  - doctemplates == 0.8                 # required by pandoc-2.9.x
   - generic-deriving == 1.10.5.*        # new versions don't compile with GHC 7.10.x
   - gloss < 1.9.3                       # new versions don't compile with GHC 7.8.x
   - haddock == 2.22.*                   # required on GHC 8.0.x
@@ -2776,6 +2781,7 @@ broken-packages:
   - accelerate-fftw
   - accelerate-fourier
   - accelerate-kullback-liebler
+  - accelerate-llvm
   - accelerate-llvm-native
   - accelerate-random
   - accelerate-typelits
@@ -2882,6 +2888,7 @@ broken-packages:
   - algebra
   - algebra-sql
   - algebraic
+  - algebraic-classes
   - algebraic-graphs
   - algebraic-prelude
   - algo-s
@@ -2910,6 +2917,7 @@ broken-packages:
   - AMI
   - ampersand
   - amqp-conduit
+  - amqp-utils
   - analyze
   - analyze-client
   - anansi-pandoc
@@ -3012,6 +3020,7 @@ broken-packages:
   - ariadne
   - arion
   - arith-encode
+  - arithmetic-circuits
   - armada
   - armor
   - arpa
@@ -3105,6 +3114,7 @@ broken-packages:
   - avl-static
   - AvlTree
   - avr-shake
+  - avro-piper
   - awesome-prelude
   - awesomium
   - awesomium-glut
@@ -4241,6 +4251,7 @@ broken-packages:
   - dictionaries
   - dictparser
   - diet
+  - diff
   - diffcabal
   - difference-monoid
   - DifferenceLogic
@@ -4460,6 +4471,7 @@ broken-packages:
   - elevator
   - elision
   - elliptic-curve
+  - elm-street
   - elm-websocket
   - elsa
   - elynx-seq
@@ -4496,6 +4508,7 @@ broken-packages:
   - EnumMap
   - enummapmap
   - enummapset-th
+  - env-extra
   - env-parser
   - envstatus
   - epanet-haskell
@@ -4572,6 +4585,7 @@ broken-packages:
   - exact-real
   - exact-real-positional
   - except-exceptions
+  - exception-hierarchy
   - exception-monads-fd
   - exchangerates
   - execs
@@ -4602,6 +4616,7 @@ broken-packages:
   - extended-categories
   - extensible-data
   - extensible-effects-concurrent
+  - extensible-skeleton
   - Extra
   - extract-dependencies
   - extractelf
@@ -4837,6 +4852,7 @@ broken-packages:
   - freddy
   - free-category
   - free-concurrent
+  - free-functors
   - free-game
   - free-http
   - free-operational
@@ -5039,6 +5055,7 @@ broken-packages:
   - ghci-lib
   - ghci-ng
   - ghci-pretty
+  - ghcide
   - ghcjs-base-stub
   - ghcjs-dom-jsffi
   - ghcjs-fetch
@@ -5049,6 +5066,7 @@ broken-packages:
   - ghcprofview
   - ght
   - gi-cairo-again
+  - gi-gdkx11
   - gi-graphene
   - gi-gsk
   - gi-gstpbutils
@@ -5074,6 +5092,7 @@ broken-packages:
   - git-fmt
   - git-gpush
   - git-jump
+  - git-mediate
   - git-object
   - git-remote-ipfs
   - git-repair
@@ -5247,6 +5266,7 @@ broken-packages:
   - gstreamer
   - GTALib
   - gtfs
+  - gtfs-realtime
   - gtk-serialized-event
   - gtk-toy
   - gtk2hs-hello
@@ -5493,6 +5513,7 @@ broken-packages:
   - haskell-src-exts-prisms
   - haskell-src-exts-qq
   - haskell-src-exts-sc
+  - haskell-src-exts-simple
   - haskell-src-meta-mwotton
   - haskell-stack-trace-plugin
   - haskell-token-utils
@@ -5784,6 +5805,7 @@ broken-packages:
   - hiccup
   - hichi
   - hid-examples
+  - hie-bios
   - hie-core
   - hieraclus
   - hierarchical-clustering
@@ -5969,6 +5991,7 @@ broken-packages:
   - hpaste
   - hpasteit
   - HPath
+  - hpath-io
   - hpc-tracer
   - hPDB
   - hPDB-examples
@@ -6221,6 +6244,8 @@ broken-packages:
   - http-shed
   - http-streams
   - http-wget
+  - http2-client
+  - http2-client-exe
   - http2-client-grpc
   - http2-grpc-proto3-wire
   - https-everywhere-rules
@@ -6248,6 +6273,7 @@ broken-packages:
   - hunt-searchengine
   - hunt-server
   - hurdle
+  - hurl
   - hurriyet
   - husk-scheme
   - husk-scheme-libs
@@ -6411,6 +6437,7 @@ broken-packages:
   - indieweb-algorithms
   - inf-interval
   - infer-upstream
+  - infernal
   - infernu
   - infinity
   - infix
@@ -6433,6 +6460,7 @@ broken-packages:
   - instapaper-sender
   - instinct
   - int-multimap
+  - intcode
   - integer-pure
   - integreat
   - intel-aes
@@ -6845,6 +6873,7 @@ broken-packages:
   - Level0
   - levmar
   - levmar-chart
+  - lex-applicative
   - lfst
   - lgtk
   - lha
@@ -6960,6 +6989,7 @@ broken-packages:
   - llvm-general
   - llvm-general-pure
   - llvm-general-quote
+  - llvm-hs
   - llvm-hs-pretty
   - llvm-ht
   - llvm-pkg-config
@@ -7411,6 +7441,9 @@ broken-packages:
   - mtl-tf
   - mtlx
   - mtp
+  - mu-grpc-client
+  - mu-grpc-server
+  - mu-protobuf
   - MuCheck
   - MuCheck-Hspec
   - MuCheck-HUnit
@@ -7547,6 +7580,7 @@ broken-packages:
   - network-anonymous-tor
   - network-api-support
   - network-arbitrary
+  - network-bitcoin
   - network-builder
   - network-bytestring
   - network-connection
@@ -7790,6 +7824,7 @@ broken-packages:
   - Paillier
   - pairing
   - pam
+  - pan-os-syslog
   - panda
   - pandoc-citeproc-preamble
   - pandoc-crossref
@@ -7830,6 +7865,7 @@ broken-packages:
   - parco-parsec
   - parconc-examples
   - pareto
+  - parquet-hs
   - Parry
   - parse-help
   - parseargs
@@ -8135,6 +8171,7 @@ broken-packages:
   - presto-hdbc
   - pretty-ncols
   - pretty-relative-time
+  - prettyprinter-graphviz
   - prettyprinter-vty
   - preview
   - prim-array
@@ -8386,6 +8423,7 @@ broken-packages:
   - reactive-glut
   - reactive-thread
   - reactor
+  - read-ctags
   - read-io
   - reader-soup
   - readline-statevar
@@ -8429,10 +8467,13 @@ broken-packages:
   - reflex-basic-host
   - reflex-dom-retractable
   - reflex-dom-svg
+  - reflex-fsnotify
+  - reflex-ghci
   - reflex-gloss
   - reflex-gloss-scene
   - reflex-libtelnet
   - reflex-orphans
+  - reflex-process
   - reflex-sdl2
   - reflex-transformers
   - reflex-vty
@@ -8445,6 +8486,7 @@ broken-packages:
   - reg-alloc-graph-color
   - regex-deriv
   - regex-dfa
+  - regex-do
   - regex-generator
   - regex-parsec
   - regex-pderiv
@@ -8760,6 +8802,7 @@ broken-packages:
   - seclib
   - second-transfer
   - secp256k1
+  - secp256k1-haskell
   - secp256k1-legacy
   - secret-santa
   - secret-sharing
@@ -8924,6 +8967,7 @@ broken-packages:
   - shellmate-extras
   - shh
   - shh-extras
+  - shine-examples
   - shivers-cfg
   - shoap
   - shopify
@@ -8979,6 +9023,7 @@ broken-packages:
   - simplenote
   - simpleprelude
   - SimpleServer
+  - simplest-sqlite
   - simseq
   - singleton-dict
   - singleton-typelits
@@ -9313,6 +9358,7 @@ broken-packages:
   - streaming-postgresql-simple
   - streaming-process
   - streaming-sort
+  - streamly-fsnotify
   - strelka
   - strict-data
   - StrictBench
@@ -9435,6 +9481,7 @@ broken-packages:
   - Tablify
   - tabloid
   - tabs
+  - taffybar
   - tag-bits
   - tag-stream
   - tagged-exception-core
@@ -9600,6 +9647,7 @@ broken-packages:
   - thumbnail-plus
   - thumbnail-polish
   - tic-tac-toe
+  - ticker
   - tickle
   - TicTacToe
   - tictactoe3d
@@ -9659,6 +9707,7 @@ broken-packages:
   - todos
   - tofromxml
   - toilet
+  - token-search
   - tokenify
   - tokstyle
   - toktok
@@ -9748,6 +9797,7 @@ broken-packages:
   - tripLL
   - trivia
   - tropical
+  - tropical-geometry
   - truelevel
   - trurl
   - tsession
@@ -9981,7 +10031,9 @@ broken-packages:
   - vcsgui
   - vcswrapper
   - Vec-Boolean
+  - vec-lens
   - Vec-OpenGLRaw
+  - vec-optics
   - Vec-Transform
   - vect-floating
   - vect-floating-accelerate
@@ -10102,6 +10154,7 @@ broken-packages:
   - warp-dynamic
   - warp-grpc
   - warp-static
+  - warp-systemd
   - WashNGo
   - wasm
   - watcher
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 5410fccf0bb..c93fc5b7e45 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -1,5 +1,6 @@
 { stdenv, buildPackages, buildHaskellPackages, ghc
-, jailbreak-cabal, hscolour, cpphs, nodejs, shellFor
+, jailbreak-cabal, hscolour, cpphs, nodejs
+, ghcWithHoogle, ghcWithPackages
 }:
 
 let
@@ -206,21 +207,28 @@ let
                         optionals doCheck testPkgconfigDepends ++ optionals doBenchmark benchmarkPkgconfigDepends;
 
   depsBuildBuild = [ nativeGhc ];
-  nativeBuildInputs = [ ghc removeReferencesTo ] ++ optional (allPkgconfigDepends != []) pkgconfig ++
-                      setupHaskellDepends ++
-                      buildTools ++ libraryToolDepends ++ executableToolDepends ++
-                      optionals doCheck testToolDepends ++
-                      optionals doBenchmark benchmarkToolDepends;
+  collectedToolDepends =
+    buildTools ++ libraryToolDepends ++ executableToolDepends ++
+    optionals doCheck testToolDepends ++
+    optionals doBenchmark benchmarkToolDepends;
+  nativeBuildInputs =
+    [ ghc removeReferencesTo ] ++ optional (allPkgconfigDepends != []) pkgconfig ++
+    setupHaskellDepends ++ collectedToolDepends;
   propagatedBuildInputs = buildDepends ++ libraryHaskellDepends ++ executableHaskellDepends ++ libraryFrameworkDepends;
-  otherBuildInputs = extraLibraries ++ librarySystemDepends ++ executableSystemDepends ++ executableFrameworkDepends ++
-                     allPkgconfigDepends ++
-                     optionals doCheck (testDepends ++ testHaskellDepends ++ testSystemDepends ++ testFrameworkDepends) ++
-                     optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkFrameworkDepends);
-
-
-  allBuildInputs = propagatedBuildInputs ++ otherBuildInputs ++ depsBuildBuild ++ nativeBuildInputs;
-  isHaskellPartition =
-    stdenv.lib.partition isHaskellPkg allBuildInputs;
+  otherBuildInputsHaskell =
+    optionals doCheck (testDepends ++ testHaskellDepends) ++
+    optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends);
+  otherBuildInputsSystem =
+    extraLibraries ++ librarySystemDepends ++ executableSystemDepends ++ executableFrameworkDepends ++
+    allPkgconfigDepends ++
+    optionals doCheck (testSystemDepends ++ testFrameworkDepends) ++
+    optionals doBenchmark (benchmarkSystemDepends ++ benchmarkFrameworkDepends);
+  # TODO next rebuild just define as `otherBuildInputsHaskell ++ otherBuildInputsSystem`
+  otherBuildInputs =
+    extraLibraries ++ librarySystemDepends ++ executableSystemDepends ++ executableFrameworkDepends ++
+    allPkgconfigDepends ++
+    optionals doCheck (testDepends ++ testHaskellDepends ++ testSystemDepends ++ testFrameworkDepends) ++
+    optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkFrameworkDepends);
 
   setupCommand = "./Setup";
 
@@ -462,17 +470,61 @@ stdenv.mkDerivation ({
     runHook postInstall
   '';
 
-  passthru = passthru // {
+  passthru = passthru // rec {
 
     inherit pname version;
 
     compiler = ghc;
 
+    # All this information is intended just for `shellFor`.  It should be
+    # considered unstable and indeed we knew how to keep it private we would.
+    getCabalDeps = {
+      inherit
+        buildDepends
+        buildTools
+        executableFrameworkDepends
+        executableHaskellDepends
+        executablePkgconfigDepends
+        executableSystemDepends
+        executableToolDepends
+        extraLibraries
+        libraryFrameworkDepends
+        libraryHaskellDepends
+        libraryPkgconfigDepends
+        librarySystemDepends
+        libraryToolDepends
+        pkgconfigDepends
+        setupHaskellDepends
+        ;
+    } // stdenv.lib.optionalAttrs doCheck {
+      inherit
+        testDepends
+        testFrameworkDepends
+        testHaskellDepends
+        testPkgconfigDepends
+        testSystemDepends
+        testToolDepends
+        ;
+    } // stdenv.lib.optionalAttrs doBenchmark {
+      inherit
+        benchmarkDepends
+        benchmarkFrameworkDepends
+        benchmarkHaskellDepends
+        benchmarkPkgconfigDepends
+        benchmarkSystemDepends
+        benchmarkToolDepends
+        ;
+    };
 
-    getBuildInputs = {
+    # Attributes for the old definition of `shellFor`. Should be removed but
+    # this predates the warning at the top of `getCabalDeps`.
+    getBuildInputs = rec {
       inherit propagatedBuildInputs otherBuildInputs allPkgconfigDepends;
       haskellBuildInputs = isHaskellPartition.right;
       systemBuildInputs = isHaskellPartition.wrong;
+      isHaskellPartition = stdenv.lib.partition
+        isHaskellPkg
+        (propagatedBuildInputs ++ otherBuildInputs ++ depsBuildBuild ++ nativeBuildInputs);
     };
 
     isHaskellLibrary = isLibrary;
@@ -485,10 +537,64 @@ stdenv.mkDerivation ({
     # TODO: fetch the self from the fixpoint instead
     haddockDir = self: if doHaddock then "${docdir self.doc}/html" else null;
 
-    env = shellFor {
-      packages = p: [ drv ];
-      inherit shellHook;
-    };
+    # Creates a derivation containing all of the necessary dependencies for building the
+    # parent derivation. The attribute set that it takes as input can be viewed as:
+    #
+    #    { withHoogle }
+    #
+    # The derivation that it builds contains no outpaths because it is meant for use
+    # as an environment
+    #
+    #   # Example use
+    #   # Creates a shell with all of the dependencies required to build the "hello" package,
+    #   # and with python:
+    #
+    #   > nix-shell -E 'with (import <nixpkgs> {}); \
+    #   >    haskell.packages.ghc865.hello.envFunc { buildInputs = [ python ]; }'
+    envFunc = { withHoogle ? false }:
+      let
+        name = "ghc-shell-for-${drv.name}";
+
+        withPackages = if withHoogle then ghcWithHoogle else ghcWithPackages;
+
+        # We use the `ghcWithPackages` function from `buildHaskellPackages` if we
+        # want a shell for the sake of cross compiling a package. In the native case
+        # we don't use this at all, and instead put the setupDepends in the main
+        # `ghcWithPackages`. This way we don't have two wrapper scripts called `ghc`
+        # shadowing each other on the PATH.
+        ghcEnvForBuild =
+          assert isCross;
+          buildHaskellPackages.ghcWithPackages (_: setupHaskellDepends);
+
+        ghcEnv = withPackages (_:
+          otherBuildInputsHaskell ++
+          propagatedBuildInputs ++
+          stdenv.lib.optionals (!isCross) setupHaskellDepends);
+
+        ghcCommandCaps = stdenv.lib.toUpper ghcCommand';
+      in stdenv.mkDerivation ({
+        inherit name shellHook;
+
+        depsBuildBuild = stdenv.lib.optional isCross ghcEnvForBuild;
+        nativeBuildInputs =
+          [ ghcEnv ] ++ optional (allPkgconfigDepends != []) pkgconfig ++
+          collectedToolDepends;
+        buildInputs =
+          otherBuildInputsSystem;
+        phases = ["installPhase"];
+        installPhase = "echo $nativeBuildInputs $buildInputs > $out";
+        LANG = "en_US.UTF-8";
+        LOCALE_ARCHIVE = stdenv.lib.optionalString (stdenv.hostPlatform.libc == "glibc") "${buildPackages.glibcLocales}/lib/locale/locale-archive";
+        "NIX_${ghcCommandCaps}" = "${ghcEnv}/bin/${ghcCommand}";
+        "NIX_${ghcCommandCaps}PKG" = "${ghcEnv}/bin/${ghcCommand}-pkg";
+        # TODO: is this still valid?
+        "NIX_${ghcCommandCaps}_DOCDIR" = "${ghcEnv}/share/doc/ghc/html";
+        "NIX_${ghcCommandCaps}_LIBDIR" = if ghc.isHaLVM or false
+          then "${ghcEnv}/lib/HaLVM-${ghc.version}"
+          else "${ghcEnv}/lib/${ghcCommand}-${ghc.version}";
+      });
+
+    env = envFunc { };
 
   };
 
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 0d2cce19bf7..9de3c0c3170 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -3226,6 +3226,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) libdevil;};
 
+  "Color" = callPackage
+    ({ mkDerivation, base, Cabal, cabal-doctest, colour, criterion
+     , data-default-class, deepseq, doctest, hspec, HUnit, QuickCheck
+     , random, template-haskell, vector
+     }:
+     mkDerivation {
+       pname = "Color";
+       version = "0.1.1";
+       sha256 = "0jwqyvch7mpg83q57c50qc0visgc0nav6ihb8gr81wdp8i3f680k";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [ base data-default-class deepseq vector ];
+       testHaskellDepends = [
+         base colour doctest hspec HUnit QuickCheck random template-haskell
+         vector
+       ];
+       benchmarkHaskellDepends = [ base colour criterion deepseq random ];
+       description = "Color spaces and conversions between them";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "Combinatorrent" = callPackage
     ({ mkDerivation, array, attoparsec, base, bytestring, cereal
      , containers, deepseq, directory, filepath, hopenssl, hslogger
@@ -6351,8 +6371,8 @@ self: {
      }:
      mkDerivation {
        pname = "Frames-dsv";
-       version = "0.1.1";
-       sha256 = "0932k8aqn9c08ijbs29g04gcka441gg424g90cqd4ky9b3yxzm7w";
+       version = "0.1.2";
+       sha256 = "0zdcbysiai7lskm8lmf454022ad0kgwl0v0kzj9596fvbdx0gdi2";
        libraryHaskellDepends = [
          base bytestring Frames hw-dsv pipes template-haskell text vector
          vinyl
@@ -14942,8 +14962,8 @@ self: {
     ({ mkDerivation, base, hashable, syb }:
      mkDerivation {
        pname = "OptDir";
-       version = "0.0.3";
-       sha256 = "1bb5s57d3wyr9rd275jl0sk85yisl1dpbz042yg7pksv5l0xal0q";
+       version = "0.0.4";
+       sha256 = "07l2fagp60ykhsr3dxclkfgg1pxawj2xf0wxrn3dksjdlx0hg5j5";
        libraryHaskellDepends = [ base hashable syb ];
        description = "The OptDir type for representing optimization directions";
        license = stdenv.lib.licenses.bsd3;
@@ -21940,6 +21960,8 @@ self: {
        ];
        description = "Accelerate backend component generating LLVM IR";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "accelerate-llvm-native" = callPackage
@@ -25066,6 +25088,8 @@ self: {
        libraryHaskellDepends = [ base syb template-haskell ];
        description = "Conversions between algebraic classes and F-algebras";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "algebraic-graphs" = callPackage
@@ -28216,7 +28240,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "amqp_0_19_0" = callPackage
+  "amqp_0_19_1" = callPackage
     ({ mkDerivation, base, binary, bytestring, clock, connection
      , containers, data-binary-ieee754, hspec, hspec-expectations
      , monad-control, network, network-uri, split, stm, text, vector
@@ -28224,8 +28248,8 @@ self: {
      }:
      mkDerivation {
        pname = "amqp";
-       version = "0.19.0";
-       sha256 = "1v2jwf9y6mw9f89a9ca66p42da8g5n1ain89gjr7sv6v6r2jxinj";
+       version = "0.19.1";
+       sha256 = "1802gngl74niszw355caf6x41ayfvyg2hpbckgshp7rlhfqdjabj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -28284,6 +28308,8 @@ self: {
        ];
        description = "Generic Haskell AMQP tools";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "amqp-worker" = callPackage
@@ -28318,8 +28344,8 @@ self: {
     ({ mkDerivation, base, deepseq, parsec }:
      mkDerivation {
        pname = "amrun";
-       version = "0.0.0.6";
-       sha256 = "01hnjzlww282hjlc6vbn51qps577hx4ll3pz4g5kn0r4h2bylad9";
+       version = "0.0.0.7";
+       sha256 = "13mc0vq51nhg3n7ff1k2045a9zkg3l5a3hr3wnz7ybfw8j457g78";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base deepseq parsec ];
@@ -29761,13 +29787,18 @@ self: {
      }:
      mkDerivation {
        pname = "api-rpc-pegnet";
-       version = "0.1.0.0";
-       sha256 = "14jb78bkdd8ywwnks3pvi8ynagsri938znyh9ylvyr5mph9ngmnc";
+       version = "0.1.1.2";
+       sha256 = "16f7849awll42w58zznf11dri3p2snd4p7cb87ygsrdx1f96gxp6";
        libraryHaskellDepends = [
          aeson aeson-casing base bytestring http-client http-client-tls
          http-conduit json-alt network remote-json remote-json-client
          remote-monad text time transformers
        ];
+       testHaskellDepends = [
+         aeson aeson-casing base bytestring http-client http-client-tls
+         http-conduit json-alt network remote-json remote-json-client
+         remote-monad text time transformers
+       ];
        description = "simple json-rpc client for PegNet";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -30155,8 +30186,8 @@ self: {
      }:
      mkDerivation {
        pname = "apns-http2";
-       version = "0.1.0.0";
-       sha256 = "1mbsvv202h6vh1gkv4rhx369wagil111qbphb502v02v2g5yibdb";
+       version = "0.1.1.0";
+       sha256 = "1hwybh3c6drqji34x7zwr68l642018ajrdzs4711dxws0ib63jrw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -30880,15 +30911,17 @@ self: {
      }) {debian-mirror = null; help = null;};
 
   "archive-libarchive" = callPackage
-    ({ mkDerivation, base, bytestring, composition-prelude, libarchive
+    ({ mkDerivation, base, bytestring, composition-prelude, cpphs
+     , libarchive
      }:
      mkDerivation {
        pname = "archive-libarchive";
-       version = "0.2.0.0";
-       sha256 = "0gy52dw00b110f5nc6gbnfgs5nssv7r8az1vy8xr1xj1dnpjwb74";
+       version = "0.2.2.0";
+       sha256 = "0gxhfimfyz4ik8qrin9hf70rmgdalrgc2dark6pp3xnkv1hnxw8r";
        libraryHaskellDepends = [
          base bytestring composition-prelude libarchive
        ];
+       libraryToolDepends = [ cpphs ];
        description = "Common interface using libarchive";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -30901,8 +30934,8 @@ self: {
      }:
      mkDerivation {
        pname = "archive-sig";
-       version = "0.2.1.2";
-       sha256 = "03fwzl7pkb025adzv1jzh96k0h91b1w7arxza7q53i492n96qg8i";
+       version = "0.2.2.0";
+       sha256 = "1dia7j8kqjps6s67xd25fqd21wvnsp89lcvkyabvr47skfjaag3l";
        libraryHaskellDepends = [
          base bytestring composition-prelude dir-traverse
        ];
@@ -30911,14 +30944,16 @@ self: {
      }) {};
 
   "archive-tar" = callPackage
-    ({ mkDerivation, base, bytestring, composition-prelude, tar }:
+    ({ mkDerivation, base, bytestring, composition-prelude, cpphs, tar
+     }:
      mkDerivation {
        pname = "archive-tar";
-       version = "0.2.0.0";
-       sha256 = "0svbxr9734ysskilv5kvhfd7s436spn149pb5bcsq3hjz1zq5xq7";
+       version = "0.2.2.0";
+       sha256 = "1rvygznl8vwsbbdr0rin925w380c3ncqf486pdzy8jx62naip02q";
        libraryHaskellDepends = [
          base bytestring composition-prelude tar
        ];
+       libraryToolDepends = [ cpphs ];
        description = "Common interface using the tar package";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -31287,6 +31322,42 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "arithmetic-circuits" = callPackage
+    ({ mkDerivation, aeson, base, bulletproofs, containers, criterion
+     , elliptic-curve, filepath, galois-fft, galois-field
+     , markdown-unlit, MonadRandom, pairing, poly, process-extras
+     , protolude, QuickCheck, quickcheck-instances, semirings, tasty
+     , tasty-discover, tasty-hunit, tasty-quickcheck, text, vector
+     , wl-pprint-text
+     }:
+     mkDerivation {
+       pname = "arithmetic-circuits";
+       version = "0.2.0";
+       sha256 = "09fqcg8302dklzlr3fqlac09zzfws3li45nri4cd886cx8b1vzzq";
+       libraryHaskellDepends = [
+         aeson base bulletproofs containers elliptic-curve filepath
+         galois-fft galois-field MonadRandom poly process-extras protolude
+         semirings text vector wl-pprint-text
+       ];
+       testHaskellDepends = [
+         aeson base bulletproofs containers elliptic-curve filepath
+         galois-fft galois-field markdown-unlit MonadRandom pairing poly
+         process-extras protolude QuickCheck quickcheck-instances semirings
+         tasty tasty-discover tasty-hunit tasty-quickcheck text vector
+         wl-pprint-text
+       ];
+       testToolDepends = [ markdown-unlit tasty-discover ];
+       benchmarkHaskellDepends = [
+         aeson base bulletproofs containers criterion elliptic-curve
+         filepath galois-fft galois-field MonadRandom pairing poly
+         process-extras protolude semirings text vector wl-pprint-text
+       ];
+       description = "Arithmetic circuits for zkSNARKs";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "arithmoi" = callPackage
     ({ mkDerivation, array, base, containers, deepseq, exact-pi, gauge
      , ghc-prim, integer-gmp, integer-logarithms, QuickCheck, random
@@ -32062,6 +32133,48 @@ self: {
        broken = true;
      }) {};
 
+  "asif_6_0_4" = callPackage
+    ({ mkDerivation, attoparsec, base, binary, bytestring, conduit
+     , conduit-combinators, conduit-extra, containers, cpu, directory
+     , doctest, doctest-discover, either, exceptions, foldl
+     , generic-lens, hedgehog, hspec, hspec-discover, hw-bits
+     , hw-hspec-hedgehog, hw-ip, lens, network, old-locale
+     , optparse-applicative, profunctors, resourcet, temporary-resourcet
+     , text, thyme, transformers, vector
+     }:
+     mkDerivation {
+       pname = "asif";
+       version = "6.0.4";
+       sha256 = "1613r90sfw7q0gsiyjd8j9s1gcjmwj4lsngx3qqpykcivy2ggs03";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         attoparsec base binary bytestring conduit conduit-combinators
+         conduit-extra containers cpu either exceptions foldl generic-lens
+         hw-bits hw-ip lens network old-locale profunctors resourcet
+         temporary-resourcet text thyme transformers vector
+       ];
+       executableHaskellDepends = [
+         attoparsec base binary bytestring conduit conduit-combinators
+         conduit-extra containers cpu directory either exceptions foldl
+         generic-lens hw-bits hw-ip lens network old-locale
+         optparse-applicative profunctors resourcet temporary-resourcet text
+         thyme transformers vector
+       ];
+       testHaskellDepends = [
+         attoparsec base binary bytestring conduit conduit-combinators
+         conduit-extra containers cpu doctest doctest-discover either
+         exceptions foldl generic-lens hedgehog hspec hw-bits
+         hw-hspec-hedgehog hw-ip lens network old-locale profunctors
+         resourcet temporary-resourcet text thyme transformers vector
+       ];
+       testToolDepends = [ doctest-discover hspec-discover ];
+       description = "Library for creating and querying segmented feeds";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "asil" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
      , data-binary-ieee754, directory, filepath, haskell-src-exts, mtl
@@ -34264,6 +34377,43 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "avro_0_4_6_0" = callPackage
+    ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
+     , binary, bytestring, containers, data-binary-ieee754, deepseq
+     , directory, doctest, doctest-discover, extra, fail, gauge
+     , hashable, hspec, hspec-discover, lens, lens-aeson, mtl
+     , QuickCheck, random, raw-strings-qq, scientific, semigroups
+     , tagged, template-haskell, text, tf-random, transformers
+     , unordered-containers, vector, zlib
+     }:
+     mkDerivation {
+       pname = "avro";
+       version = "0.4.6.0";
+       sha256 = "127w8pny2ah05wa44khqs53vdyh54jlxvihxhpqk94wx8ggg00vx";
+       libraryHaskellDepends = [
+         aeson array base base16-bytestring bifunctors binary bytestring
+         containers data-binary-ieee754 deepseq fail hashable mtl scientific
+         semigroups tagged template-haskell text tf-random
+         unordered-containers vector zlib
+       ];
+       testHaskellDepends = [
+         aeson array base base16-bytestring bifunctors binary bytestring
+         containers directory doctest doctest-discover extra fail hashable
+         hspec lens lens-aeson mtl QuickCheck raw-strings-qq scientific
+         semigroups tagged template-haskell text tf-random transformers
+         unordered-containers vector zlib
+       ];
+       testToolDepends = [ doctest-discover hspec-discover ];
+       benchmarkHaskellDepends = [
+         aeson base bytestring containers gauge hashable mtl random
+         raw-strings-qq template-haskell text transformers
+         unordered-containers vector
+       ];
+       description = "Avro serialization support for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "avro-piper" = callPackage
     ({ mkDerivation, aeson, avro, base, bytestring, conduit
      , conduit-combinators, conduit-extra, hedgehog, hspec
@@ -34272,8 +34422,8 @@ self: {
      }:
      mkDerivation {
        pname = "avro-piper";
-       version = "1.0.2";
-       sha256 = "17pygij07wg9583yxkhw7zc43ik7zjgb5ncx4hsksknawax83mza";
+       version = "1.0.3";
+       sha256 = "1vi0mgpqpr74ankl8418npklyfxacxg001vppps22p2da97s3pk1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -34294,6 +34444,8 @@ self: {
        ];
        description = "Tool for decoding avro";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "avwx" = callPackage
@@ -34813,6 +34965,25 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "aws-lambda-haskell-runtime_2_0_3" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, hspec, http-client
+     , http-types, path, path-io, safe-exceptions-checked
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "aws-lambda-haskell-runtime";
+       version = "2.0.3";
+       sha256 = "1ycqwmpgqzdb8kz3w6yzf44id32pc3vin1w3j0klzzg2k51l4nnr";
+       libraryHaskellDepends = [
+         aeson base bytestring http-client http-types path path-io
+         safe-exceptions-checked template-haskell text
+       ];
+       testHaskellDepends = [ base hspec ];
+       description = "Haskell runtime for AWS Lambda";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "aws-lambda-runtime" = callPackage
     ({ mkDerivation, aeson, async, base, base-compat, bytestring
      , containers, deepseq, filepath, http-client, http-media
@@ -35835,6 +36006,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "barbies_2_0_0_0" = callPackage
+    ({ mkDerivation, base, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck, transformers
+     }:
+     mkDerivation {
+       pname = "barbies";
+       version = "2.0.0.0";
+       sha256 = "0rbwdx9s940wfrlkay772i0q11rbywnhzigh5wy8sppx19pgfq9z";
+       libraryHaskellDepends = [ base transformers ];
+       testHaskellDepends = [
+         base QuickCheck tasty tasty-hunit tasty-quickcheck
+       ];
+       description = "Classes for working with types that can change clothes";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "barbies-th" = callPackage
     ({ mkDerivation, barbies, base, template-haskell }:
      mkDerivation {
@@ -36341,8 +36529,8 @@ self: {
      }:
      mkDerivation {
        pname = "base64";
-       version = "0.3.1.0";
-       sha256 = "0fs6lgjxf8z6n1vzjjjq5i952rklj9skgazx8zzi6dzi98ib6dg6";
+       version = "0.3.1.1";
+       sha256 = "0g812lfql9agbdmrqvwc42sb91sibdd6w50mw3kvfz0fflskkiip";
        libraryHaskellDepends = [ base bytestring deepseq text ];
        testHaskellDepends = [
          base base64-bytestring random-bytestring tasty tasty-hunit text
@@ -36376,6 +36564,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base64-bytestring_1_0_0_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion, deepseq
+     , HUnit, QuickCheck, split, test-framework, test-framework-hunit
+     , test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "base64-bytestring";
+       version = "1.0.0.3";
+       sha256 = "1iwg03z1w9n3n3q68siwk0dmwkb3sygmravbwbrs7h0lxih9s5gg";
+       libraryHaskellDepends = [ base bytestring ];
+       testHaskellDepends = [
+         base bytestring containers HUnit QuickCheck split test-framework
+         test-framework-hunit test-framework-quickcheck2
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers criterion deepseq
+       ];
+       description = "Fast base64 encoding and decoding for ByteStrings";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base64-bytestring-type" = callPackage
     ({ mkDerivation, aeson, base, base-compat, base64-bytestring
      , binary, bytestring, cereal, deepseq, hashable, http-api-data
@@ -37478,6 +37688,33 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "bench-show_0_3_1" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, Chart, Chart-diagrams, csv
+     , directory, filepath, mwc-random, optparse-applicative
+     , optparse-simple, semigroups, split, statistics, text
+     , transformers, vector
+     }:
+     mkDerivation {
+       pname = "bench-show";
+       version = "0.3.1";
+       sha256 = "0z1fdcdl9chwia9kd5pa9572mc5pmy5bld72axkzg20r7v53sr7k";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-wl-pprint base Chart Chart-diagrams csv directory filepath
+         mwc-random split statistics transformers vector
+       ];
+       executableHaskellDepends = [
+         ansi-wl-pprint base Chart Chart-diagrams csv directory filepath
+         mwc-random optparse-applicative optparse-simple semigroups split
+         statistics transformers vector
+       ];
+       testHaskellDepends = [ base split text ];
+       description = "Show, plot and compare benchmark results";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "benchmark-function" = callPackage
     ({ mkDerivation, base, process, random, time }:
      mkDerivation {
@@ -42306,8 +42543,8 @@ self: {
      }:
      mkDerivation {
        pname = "boolector";
-       version = "0.0.0.9";
-       sha256 = "1f4lnshc4b3r9qyc6y476qpkcl3hkripqsd2vfyg9q0xbyg9pxq6";
+       version = "0.0.0.10";
+       sha256 = "0lssarfp05v6mnwn1qkgj8gjzszb43dhbs3025b60cmwsbnhfx2w";
        libraryHaskellDepends = [
          base containers directory mtl temporary time
        ];
@@ -44815,6 +45052,8 @@ self: {
        pname = "bytesmith";
        version = "0.3.2.0";
        sha256 = "0wbmi3wgf85rkhymjiv19dq93i2mg9i74dl37lpkq317qlihgv6f";
+       revision = "1";
+       editedCabalFile = "10r36zdpl96cv2jmkddfq92h78bx6785gjb29769c1dw0nnlvj94";
        libraryHaskellDepends = [
          base byteslice bytestring contiguous primitive run-st text-short
          wide-word
@@ -45685,6 +45924,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cabal-build-programs" = callPackage
+    ({ mkDerivation, base, Cabal }:
+     mkDerivation {
+       pname = "cabal-build-programs";
+       version = "0.1.0.1";
+       sha256 = "004xr0f59fg6h6rxlf7sf6m2mi6p32h2z3vs9b56hddmxp3gn4vl";
+       libraryHaskellDepends = [ base Cabal ];
+       description = "Adds executable dependencies to the Cabal build";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "cabal-bundle-clib" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, directory, filepath
      , process, temporary, text, time
@@ -46374,6 +46624,28 @@ self: {
        broken = true;
      }) {};
 
+  "cabal-rpm_2_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, directory, filepath
+     , http-client, http-client-tls, http-conduit, optparse-applicative
+     , process, simple-cabal, simple-cmd, simple-cmd-args, time, unix
+     }:
+     mkDerivation {
+       pname = "cabal-rpm";
+       version = "2.0.0";
+       sha256 = "1gr68l5bg2mfl6b8nbfzcinibldk271psxp5wkiw14mclyx7ln8g";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring Cabal directory filepath http-client
+         http-client-tls http-conduit optparse-applicative process
+         simple-cabal simple-cmd simple-cmd-args time unix
+       ];
+       description = "RPM packaging tool for Haskell Cabal-based packages";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "cabal-scripts" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -47410,8 +47682,8 @@ self: {
      }:
      mkDerivation {
        pname = "call-alloy";
-       version = "0.2.0.1";
-       sha256 = "177p5k225bglz602p711pjvym3p93jihxyh4r25yvrh3kb6wi0l4";
+       version = "0.2.0.4";
+       sha256 = "0j1vvnjvgjs11ffy7r5h87vsxywyp51cs8kvqlgi5vnlwb2zfxg9";
        libraryHaskellDepends = [
          base bytestring containers directory file-embed filepath hashable
          lens mtl process split trifecta unix
@@ -54058,8 +54330,8 @@ self: {
      }:
      mkDerivation {
        pname = "cobot-io";
-       version = "0.1.2.5";
-       sha256 = "1md3dyfaybhmfprw3qdwqvlh0r73wy8smf8j8jkdrlkxqw6vhd1f";
+       version = "0.1.2.6";
+       sha256 = "1p76m7qgvcl01zyvb8zmbp5064dp2qjd3rr3mjcai55pk5xcm35r";
        libraryHaskellDepends = [
          array attoparsec base binary bytestring containers data-msgpack
          deepseq http-conduit hyraxAbif lens linear mtl split text vector
@@ -55873,6 +56145,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "compendium-client" = callPackage
+    ({ mkDerivation, aeson, base, http-client, language-protobuf
+     , megaparsec, servant, servant-client, text
+     }:
+     mkDerivation {
+       pname = "compendium-client";
+       version = "0.1.0.1";
+       sha256 = "09j71sjqpzhmzkmr1439qqwc8nizgc5ag7fmbd8z51wnkmw1wmky";
+       libraryHaskellDepends = [
+         aeson base http-client language-protobuf megaparsec servant
+         servant-client text
+       ];
+       description = "Client for the Compendium schema server";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "compensated" = callPackage
     ({ mkDerivation, base, bifunctors, binary, bytes, Cabal
      , cabal-doctest, cereal, comonad, deepseq, distributive, doctest
@@ -56102,8 +56390,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-aeson";
-       version = "0.6.0.0";
-       sha256 = "0r15hc6kwg0dibxix2f5afg91qwc6fd5m9sijn0k0mq62f0ln7ki";
+       version = "0.6.1.0";
+       sha256 = "1a5h03h46ahighdqqxfa22mnhbik9bqzm0cxnpgxyjksbagj3x5x";
        libraryHaskellDepends = [
          aeson aeson-better-errors base composite-base containers
          contravariant generic-deriving hashable lens mmorph mtl profunctors
@@ -56128,8 +56416,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-aeson-refined";
-       version = "0.6.0.0";
-       sha256 = "1plhqx0k0xab8fkip6v96rqnrdjq02ph1gmrk4r5zq5x4gc7gpps";
+       version = "0.6.1.0";
+       sha256 = "1z03ncjabcph9vwwhzmqp7wmhznr7jz188xpnl2lsdw0fzxlir3q";
        libraryHaskellDepends = [
          aeson-better-errors base composite-aeson mtl refined
        ];
@@ -56146,8 +56434,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-base";
-       version = "0.6.0.0";
-       sha256 = "188za7x9069ah8sgf8laqwkg3yfzl7cm23iacbcnbw25jd7k6vy3";
+       version = "0.6.1.0";
+       sha256 = "0qnxchx5dr2bgi8wdi4a1x2z20lw61zfxlmjkr1m7ggzz3f7py3k";
        libraryHaskellDepends = [
          base exceptions lens monad-control mtl profunctors template-haskell
          text transformers transformers-base unliftio-core vinyl
@@ -56168,8 +56456,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-ekg";
-       version = "0.6.0.0";
-       sha256 = "065aah2jx6r8i8qgwfql90nc6avhrrhc3aq3zlrqimqwv4772pvj";
+       version = "0.6.1.0";
+       sha256 = "14pa5bcr0ip43vn6wpxd4pf7lcc83f2xscri05kdf4h4d1nnwscj";
        libraryHaskellDepends = [
          base composite-base ekg-core lens text vinyl
        ];
@@ -56186,8 +56474,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-opaleye";
-       version = "0.6.0.0";
-       sha256 = "13hpvk6wx7yiz7klay7da8lllvszddlixk9xxyc8w9kqq48b4k92";
+       version = "0.6.1.0";
+       sha256 = "1vqj7pwb0wkz7c4clqj7kmc0asg74i7xb92g0g0qmwavwwc9flq1";
        libraryHaskellDepends = [
          base bytestring composite-base lens opaleye postgresql-simple
          product-profunctors profunctors template-haskell text vinyl
@@ -56210,8 +56498,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-swagger";
-       version = "0.6.0.0";
-       sha256 = "1m0a77imgrs55vmzvfx7hy74siwnxpcgjg7cawsmsnarkymb1c5c";
+       version = "0.6.1.0";
+       sha256 = "1ysp297b2nrwq6dx3bv9q44f69hlym4yvbimzj1hqc3mz63qjpaz";
        libraryHaskellDepends = [
          base composite-base insert-ordered-containers lens swagger2
          template-haskell text vinyl
@@ -57292,10 +57580,8 @@ self: {
      }:
      mkDerivation {
        pname = "conduit-audio-sndfile";
-       version = "0.1.2.1";
-       sha256 = "0b326pdvqpiawqnjkmwfgf5ghvg9jn1afini0ihw8cpc7znx846z";
-       revision = "2";
-       editedCabalFile = "00c628bx1j8p342pc03p884illajqsgi47yplfxvdywxcijnwbn3";
+       version = "0.1.2.2";
+       sha256 = "1pfvsq0jz9j66ajzc0avnhchn77l22clp71kf2p7dnrib05xc757";
        libraryHaskellDepends = [
          base conduit conduit-audio hsndfile hsndfile-vector resourcet
          transformers
@@ -60384,8 +60670,8 @@ self: {
      }:
      mkDerivation {
        pname = "cpkg";
-       version = "0.2.4.0";
-       sha256 = "1zamw8c9y5r813ksirlbiz0sk20qclmjcwmg6z2h5495883ihxkj";
+       version = "0.2.4.1";
+       sha256 = "0amv5kwba1amh6nsqfh6bb2gm7a3ky5lrjjr9c88w0qfyk8rr3am";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -63450,6 +63736,36 @@ self: {
        broken = true;
      }) {};
 
+  "cut-the-crap" = callPackage
+    ({ mkDerivation, base, exceptions, generic-lens, hspec, hspec-core
+     , lens, optparse-applicative, optparse-generic, regex-tdfa, shelly
+     , system-filepath, temporary, text, unliftio-core
+     }:
+     mkDerivation {
+       pname = "cut-the-crap";
+       version = "1.0.0";
+       sha256 = "0mq6hzv48ry3n8y0b60qbf3ddkfk2aqny4c1hzn92mqffhg4r0zr";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base exceptions generic-lens lens optparse-applicative
+         optparse-generic regex-tdfa shelly system-filepath temporary text
+         unliftio-core
+       ];
+       executableHaskellDepends = [
+         base exceptions generic-lens lens optparse-applicative
+         optparse-generic regex-tdfa shelly system-filepath temporary text
+         unliftio-core
+       ];
+       testHaskellDepends = [
+         base exceptions generic-lens hspec hspec-core lens
+         optparse-applicative optparse-generic regex-tdfa shelly
+         system-filepath temporary text unliftio-core
+       ];
+       description = "Cuts out uninteresting parts of videos by detecting silences";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "cutter" = callPackage
     ({ mkDerivation, base, bytestring, explicit-exception, spreadsheet
      , utility-ht
@@ -63515,6 +63831,25 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "cyclotomic_1_0_1" = callPackage
+    ({ mkDerivation, arithmoi, base, containers, HUnit, QuickCheck
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , test-framework-smallcheck
+     }:
+     mkDerivation {
+       pname = "cyclotomic";
+       version = "1.0.1";
+       sha256 = "0d2jnpgal88j05jk62p3xwfkarigclgw2hy77ph0lii360wijljh";
+       libraryHaskellDepends = [ arithmoi base containers ];
+       testHaskellDepends = [
+         base HUnit QuickCheck test-framework test-framework-hunit
+         test-framework-quickcheck2 test-framework-smallcheck
+       ];
+       description = "A subfield of the complex numbers for exact calculation";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cypher" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring
      , classy-parallel, conduit, http-conduit, http-types, resourcet
@@ -69155,7 +69490,7 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "dhall_1_28_0" = callPackage
+  "dhall_1_29_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, atomic-write
      , base, bytestring, case-insensitive, cborg, cborg-json, containers
      , contravariant, cryptonite, data-fix, deepseq, Diff, directory
@@ -69172,8 +69507,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall";
-       version = "1.28.0";
-       sha256 = "0kiw8a9im768j304s80pv90vp1hh38v7fxfh2bb4hmglh3a8kc21";
+       version = "1.29.0";
+       sha256 = "1xp76wv36rfffym71gwdqsmwg3znmpsq5x9zgz3hfmzigxqmjgn7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -69225,14 +69560,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-bash_1_0_25" = callPackage
+  "dhall-bash_1_0_27" = callPackage
     ({ mkDerivation, base, bytestring, containers, dhall
      , neat-interpolation, optparse-generic, shell-escape, text
      }:
      mkDerivation {
        pname = "dhall-bash";
-       version = "1.0.25";
-       sha256 = "0bxfx2hj06q1w1372zc7cfibsqw2hckz5116zz447mz5zmcfkjv3";
+       version = "1.0.27";
+       sha256 = "0mmf53fqgf8g6s80g6wss86lcfkrpjc51w5givy7kg9js00d48px";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -69330,7 +69665,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-json_1_6_0" = callPackage
+  "dhall-json_1_6_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, aeson-yaml, ansi-terminal
      , base, bytestring, containers, dhall, exceptions, filepath
      , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
@@ -69339,8 +69674,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-json";
-       version = "1.6.0";
-       sha256 = "1fb3w7p2blnxqc6q3q620vpr0fpqs2my7hh33ykh7jpzs7p031h5";
+       version = "1.6.1";
+       sha256 = "1j89a75rqr90y6yya17iym6c9d6f4sa5hhmv46qbwim9sflv1s9w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -69389,8 +69724,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-lsp-server";
-       version = "1.0.3";
-       sha256 = "1ym7v3blgj4ccchg6cpyxpllp6xz6fh8kfyy3i0b1kd5lzm90s0n";
+       version = "1.0.4";
+       sha256 = "0w8xql6hxchgs77ik2fgnhb2llp6138jyiynwvhsfkjijmqj5qrl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -69416,8 +69751,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-nix";
-       version = "1.1.10";
-       sha256 = "04fb8l9qh70fqa50ck0hz8134s1bmcyscbf5xg5ylnxpdrs3n7as";
+       version = "1.1.11";
+       sha256 = "0af8nbakaznw8wvrdgslrqk7fnmv2425f67xv3cx1jlf51drphpk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -69487,8 +69822,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-yaml";
-       version = "1.0.0";
-       sha256 = "05jhcvikm3rbcf9jzw747x70c3dsslcij977yhqks0c59nr9pqn6";
+       version = "1.0.1";
+       sha256 = "1pm36mwq6llnys9ac3b5nisw7d9xjxgh6nh2xl3kcdjh30f3bm2f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -69773,10 +70108,8 @@ self: {
      }:
      mkDerivation {
        pname = "diagrams-cairo";
-       version = "1.4.1";
-       sha256 = "0n368gv7jjnynp7gfbnaywnd4x65956qqifcxpi3gsy8yi0zsr6z";
-       revision = "1";
-       editedCabalFile = "0irrv1mf7lz3n4dy5pz9y6kw00v1rly47g2g6hi95nj6a6hib3z0";
+       version = "1.4.1.1";
+       sha256 = "0vyd2yr55n7x71194i18lnbcshdjpnqw4qyq7vj5zx377rsz711k";
        libraryHaskellDepends = [
          array base bytestring cairo colour containers data-default-class
          diagrams-core diagrams-lib filepath hashable JuicyPixels lens mtl
@@ -69873,8 +70206,8 @@ self: {
        pname = "diagrams-gtk";
        version = "1.4";
        sha256 = "1sga2wwkircjgryd4pn9i0wvvcnh3qnhpxas32crpdq939idwsxn";
-       revision = "2";
-       editedCabalFile = "0hblrqvwk1pbssaci97v36r71kpm7kkcghh5ijmq52lmjfq72jqm";
+       revision = "3";
+       editedCabalFile = "0k0i3nm5zpdmrqh8wmd8y5xhw7drd67hifdva5a7dih8w5sab4ra";
        libraryHaskellDepends = [
          base cairo diagrams-cairo diagrams-lib gtk
        ];
@@ -70438,6 +70771,8 @@ self: {
        libraryHaskellDepends = [ base Enum util ];
        description = "Diff and patch";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "diff-gestalt" = callPackage
@@ -73224,6 +73559,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "doclayout_0_3" = callPackage
+    ({ mkDerivation, base, criterion, mtl, safe, tasty, tasty-golden
+     , tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "doclayout";
+       version = "0.3";
+       sha256 = "1wmnwq28jcyd6c80srivsnd5znmyl9sgmwwnlk2crwiiwqadbal7";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base mtl safe text ];
+       testHaskellDepends = [
+         base mtl tasty tasty-golden tasty-hunit text
+       ];
+       benchmarkHaskellDepends = [ base criterion mtl text ];
+       description = "A prettyprinting library for laying out text documents";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "docopt" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, containers
      , HUnit, parsec, split, template-haskell, text, th-lift
@@ -73325,6 +73679,33 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "doctemplates_0_8_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , doclayout, filepath, Glob, HsYAML, mtl, parsec, safe, scientific
+     , tasty, tasty-golden, tasty-hunit, temporary, text
+     , text-conversions, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "doctemplates";
+       version = "0.8.1";
+       sha256 = "02xysm510m3hbifwb7ngx39wj1ycxjrws4ngnm0d7ywqm9cv1hbb";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base containers doclayout filepath HsYAML mtl parsec safe
+         scientific text text-conversions unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers doclayout filepath Glob tasty
+         tasty-golden tasty-hunit temporary text
+       ];
+       benchmarkHaskellDepends = [
+         aeson base containers criterion doclayout filepath mtl text
+       ];
+       description = "Pandoc-style document templates";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "doctest" = callPackage
     ({ mkDerivation, base, base-compat, code-page, deepseq, directory
      , filepath, ghc, ghc-paths, hspec, HUnit, mockery, process
@@ -77576,6 +77957,8 @@ self: {
        doHaddock = false;
        description = "Crossing the road between Haskell and Elm";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "elm-syntax" = callPackage
@@ -78819,6 +79202,8 @@ self: {
        ];
        description = "Safe helpers for accessing and modifying environment variables";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "env-locale" = callPackage
@@ -79140,6 +79525,8 @@ self: {
        pname = "equeue";
        version = "0";
        sha256 = "14risb13sv4mz5scyhcvg6knb791lx4b9jm3k9189fhxkr5a28cc";
+       revision = "1";
+       editedCabalFile = "0i8gjfmi6jbfbmqs9yckzg694mp7v92b1m99r1hn1yw3xbizvf2j";
        libraryHaskellDepends = [
          base containers contravariant mtl semigroups stm
        ];
@@ -80994,6 +81381,8 @@ self: {
        libraryHaskellDepends = [ base template-haskell ];
        description = "Exception type hierarchy with TemplateHaskell";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "exception-mailer" = callPackage
@@ -82109,6 +82498,8 @@ self: {
        testHaskellDepends = [ base extensible ];
        description = "Operational-based extensible effect library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "extensible-sp" = callPackage
@@ -83191,8 +83582,8 @@ self: {
      }:
      mkDerivation {
        pname = "fay";
-       version = "0.24.0.3";
-       sha256 = "07ys208iiy28hmhc098yx2vj3rzwwxqi0q7l4xx4q61albmryf08";
+       version = "0.24.0.4";
+       sha256 = "1jpqc48a7h9x64wv77g7bdnhvfjgbabp4n3qcbqsfz9v92j46j0a";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -88731,6 +89122,8 @@ self: {
        ];
        description = "Free functors, adjoint to functors that forget class constraints";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "free-game" = callPackage
@@ -89443,8 +89836,8 @@ self: {
     ({ mkDerivation, base, bytestring, process-extras, text }:
      mkDerivation {
        pname = "fromhtml";
-       version = "1.0.1";
-       sha256 = "173rbbnn62mb7kxlv7g9r52gjqi07pj3kqd7h2qr8mhk4xlbbagy";
+       version = "1.0.4";
+       sha256 = "1pavyjpda8x5dc7g018yipz6hc329n6yfi5lbvnvc7fa3r77dvs9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring process-extras text ];
@@ -92381,6 +92774,18 @@ self: {
        broken = true;
      }) {};
 
+  "generic-lens-lite" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "generic-lens-lite";
+       version = "0.1";
+       sha256 = "07z00phy6h50bb4axlr57kin9l5fygi4q4j33rj5180ai2cbcpc6";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "Monomorphic field lens like with generic-lens";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "generic-lucid-scaffold" = callPackage
     ({ mkDerivation, base, lucid, text }:
      mkDerivation {
@@ -92430,6 +92835,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "generic-optics-lite" = callPackage
+    ({ mkDerivation, base, generic-lens-lite, optics-core }:
+     mkDerivation {
+       pname = "generic-optics-lite";
+       version = "0.1";
+       sha256 = "0vf5sk1narj69pdhjqxjj0w3w3i5lxjxn8p98xp8dj0jws4mx9xi";
+       libraryHaskellDepends = [ base generic-lens-lite optics-core ];
+       testHaskellDepends = [ base optics-core ];
+       description = "Monomorphic field opics like with generic-lens";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "generic-pretty" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, containers
      , tasty, tasty-hunit, text, vector
@@ -94314,15 +94731,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib_8_8_1_20191204" = callPackage
+  "ghc-lib_8_8_2" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, filepath, ghc-lib-parser, ghc-prim, happy
      , hpc, pretty, process, time, transformers, unix
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "8.8.1.20191204";
-       sha256 = "1xj2l9w4jmwxavs5s6p50wciracqlvkx9mg015m8gv1s8sxn6sqh";
+       version = "8.8.2";
+       sha256 = "0dsb41vk9agywzw7nayraq9hhi95vz6aw9yz8jgggh1an4vkg833";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -94353,15 +94770,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib-parser_8_8_1_20191204" = callPackage
+  "ghc-lib-parser_8_8_2" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, filepath, ghc-prim, happy, hpc, pretty
      , process, time, transformers, unix
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "8.8.1.20191204";
-       sha256 = "0acfq70mhhb76v0fhgqnijb4yp4njzxwc3c6d53r594cix3grvdp";
+       version = "8.8.2";
+       sha256 = "0q9pxdwmzm5hr6snpbkn1d3165h0lrdncgid5aqffqwz2hc1d2z0";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -95299,6 +95716,8 @@ self: {
        ];
        description = "The core of an IDE";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ghcjs-ajax" = callPackage
@@ -95882,6 +96301,8 @@ self: {
        libraryPkgconfigDepends = [ gtk4-x11 ];
        description = "GdkX11 bindings";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {gtk4-x11 = null;};
 
   "gi-ggit" = callPackage
@@ -97194,6 +97615,8 @@ self: {
        ];
        description = "Tool to help resolving git conflicts";
        license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "git-monitor" = callPackage
@@ -98451,8 +98874,10 @@ self: {
      }:
      mkDerivation {
        pname = "glirc";
-       version = "2.33.1";
-       sha256 = "0vzrx0904s8r7srld4c3wkw3j0rx3l6jszz3m5friwkdwfs60a83";
+       version = "2.34";
+       sha256 = "1nmkwzifch01pnzxn3rm0gvxq9xvwvxkvqfwsdsj6zjmiz68w3ca";
+       revision = "1";
+       editedCabalFile = "13dm3cc5m7g7qhpasq2jbzm7x4dizjipjdsy5amghglrs8m0r90y";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal filepath ];
@@ -98620,6 +99045,8 @@ self: {
        pname = "gloss";
        version = "1.13.1.1";
        sha256 = "1bmjwd2vfbxfypr2g23810yyp921m30wxbb6f3m0wkk65iypjnls";
+       revision = "1";
+       editedCabalFile = "1bcjm3issssqxd60jd2y6032y8plcs0sm3wbnha1f6fa3z46z9n0";
        libraryHaskellDepends = [
          base bmp bytestring containers ghc-prim gloss-rendering GLUT OpenGL
        ];
@@ -98794,6 +99221,8 @@ self: {
        pname = "gloss-rendering";
        version = "1.13.1.1";
        sha256 = "1pkzm7zzfdya8cz3h66akx8785h3vxbnyb815liw4nilvwg01d9x";
+       revision = "1";
+       editedCabalFile = "10x83cpxp6yrmamjg4kjm3pzlhh6zj2rdw686py0vcx0jrjy3qg7";
        libraryHaskellDepends = [
          base bmp bytestring containers GLUT OpenGL
        ];
@@ -99134,6 +99563,8 @@ self: {
        pname = "gnuplot";
        version = "0.5.6";
        sha256 = "1g6xgnlkh17avivn1rlq7l2nvs26dvrbx4rkfld0bf6kyqaqwrgp";
+       revision = "1";
+       editedCabalFile = "15ydlmw9a6dfiy0ffxqxy7iiszbysqn2jlhxrh4lfi21ck9n15kq";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -99146,6 +99577,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "gnuplot_0_5_6_1" = callPackage
+    ({ mkDerivation, array, base, containers, data-accessor
+     , data-accessor-transformers, deepseq, filepath, process
+     , semigroups, temporary, time, transformers, utility-ht
+     }:
+     mkDerivation {
+       pname = "gnuplot";
+       version = "0.5.6.1";
+       sha256 = "1rfq94lnsyjr8y9p5r56jpllv3p8rvh9xxzjji016b6r5adi8cnb";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         array base containers data-accessor data-accessor-transformers
+         deepseq filepath process semigroups temporary time transformers
+         utility-ht
+       ];
+       description = "2D and 3D plots using gnuplot";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "gnutls" = callPackage
     ({ mkDerivation, base, bytestring, gnutls, monads-tf, transformers
      }:
@@ -104513,6 +104966,8 @@ self: {
        ];
        description = "GTFS RealTime protobafs library (autogenerated from .proto file)";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "gtk" = callPackage
@@ -108320,8 +108775,10 @@ self: {
     ({ mkDerivation, base, containers, random }:
      mkDerivation {
        pname = "hanabi-dealer";
-       version = "0.2.1.0";
-       sha256 = "1lk2rr48hcf8wdci1aj8xcybyh1nm2dmqi25vj23gj7lq4fir5cs";
+       version = "0.3.2.0";
+       sha256 = "0jaw7s82l0nsr1axqkngcc4wfnmh790jdqbnsknwvyk6anvbpacb";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [ base containers random ];
        description = "Hanabi card game";
        license = stdenv.lib.licenses.bsd3;
@@ -112051,6 +112508,8 @@ self: {
        libraryHaskellDepends = [ base haskell-src-exts ];
        description = "A simplified view on the haskell-src-exts AST";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskell-src-exts-util" = callPackage
@@ -113464,6 +113923,37 @@ self: {
        broken = true;
      }) {};
 
+  "haskoin-core_0_10_0" = callPackage
+    ({ mkDerivation, aeson, array, base, base16-bytestring, bytestring
+     , cereal, conduit, containers, cryptonite, deepseq, entropy
+     , hashable, hspec, hspec-discover, HUnit, memory, mtl, murmur3
+     , network, QuickCheck, safe, scientific, secp256k1-haskell, split
+     , string-conversions, text, time, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "haskoin-core";
+       version = "0.10.0";
+       sha256 = "0gb9z0ncy7ff93k41yvbj0i33akpk5vcm477ydpn7sandq3m40nv";
+       libraryHaskellDepends = [
+         aeson array base base16-bytestring bytestring cereal conduit
+         containers cryptonite deepseq entropy hashable hspec HUnit memory
+         mtl murmur3 network QuickCheck safe scientific secp256k1-haskell
+         split string-conversions text time transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring cereal containers deepseq hspec HUnit mtl
+         QuickCheck safe split string-conversions text unordered-containers
+         vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Bitcoin & Bitcoin Cash library for Haskell";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "haskoin-crypto" = callPackage
     ({ mkDerivation, base, binary, byteable, bytestring, containers
      , cryptohash, haskoin-util, HUnit, mtl, QuickCheck, test-framework
@@ -113498,8 +113988,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-node";
-       version = "0.9.14";
-       sha256 = "17nd6spm2bskgnxp2v7jfb66ds2qgxzhzlvd4yhgbf63kqfhlkjl";
+       version = "0.9.15";
+       sha256 = "0bdyqqhxjbz3lqj5q7cg9w9i40xvp9p9185g3dlhqn598s65mppx";
        libraryHaskellDepends = [
          base bytestring cereal conduit conduit-extra containers
          data-default hashable haskoin-core monad-logger mtl network nqe
@@ -113576,8 +114066,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.19.3";
-       sha256 = "0r7kckbkjb1y4dlz1byh3q1xnkysb8361gydvzk6dwbb4fmzld1p";
+       version = "0.19.5";
+       sha256 = "1pxplfipl4n6vq8s8al0acfrxnbpf8yhya6hpfymszfbvcyqkhl8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -115346,6 +115836,8 @@ self: {
        pname = "haxr";
        version = "3000.11.3.1";
        sha256 = "1wyb848mb0b6idkbi5jarsf6qi1zzl3yh6xd05g228kykii8k9mg";
+       revision = "1";
+       editedCabalFile = "1g5vqgpk02kx502w0klps88i0h0mfwmb8ai14xm5b90jmd9kndn3";
        libraryHaskellDepends = [
          array base base-compat base64-bytestring blaze-builder bytestring
          HaXml HsOpenSSL http-streams http-types io-streams mtl mtl-compat
@@ -118890,21 +119382,21 @@ self: {
   "hgeometry" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, bytestring, containers
      , data-clist, deepseq, dlist, doctest, doctest-discover, fingertree
-     , fixed-vector, hgeometry-combinatorial, lens, linear, MonadRandom
-     , mtl, QuickCheck, quickcheck-instances, reflection, semigroupoids
-     , semigroups, singletons, template-haskell, text, vector
-     , vector-builder, vinyl, yaml
+     , fixed-vector, hgeometry-combinatorial, hspec, lens, linear
+     , MonadRandom, mtl, primitive, QuickCheck, quickcheck-instances
+     , reflection, semigroupoids, semigroups, template-haskell, text
+     , vector, vector-builder, vinyl, yaml
      }:
      mkDerivation {
        pname = "hgeometry";
-       version = "0.9.0.0";
-       sha256 = "1s9hmknrqdsrfda5l8qjs85qhq6lm8vfkd54dnkbg67xk42z0y1m";
+       version = "0.10.0.0";
+       sha256 = "01kf7cmjdr2s172xj25i9vyjpfd0wayh0bjgccxqqy886kxrkhfw";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bifunctors bytestring containers data-clist deepseq
-         dlist fingertree fixed-vector hgeometry-combinatorial lens linear
-         MonadRandom mtl QuickCheck quickcheck-instances reflection
-         semigroupoids semigroups singletons template-haskell text vector
+         dlist fingertree fixed-vector hgeometry-combinatorial hspec lens
+         linear MonadRandom mtl primitive QuickCheck quickcheck-instances
+         reflection semigroupoids semigroups template-haskell text vector
          vector-builder vinyl yaml
        ];
        testHaskellDepends = [ base doctest doctest-discover QuickCheck ];
@@ -118925,13 +119417,13 @@ self: {
      }:
      mkDerivation {
        pname = "hgeometry-combinatorial";
-       version = "0.9.0.0";
-       sha256 = "0c9byfg6x1ch1812s6kf9w1vkrhzffqw6asllhln95f6cvsz58z0";
+       version = "0.10.0.0";
+       sha256 = "0v168wxnzkmylh8gzxzrq0sfq5y2xn3i8r6kqnahc14x1c1jzzk1";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bifunctors bytestring containers contravariant
          data-clist deepseq dlist fingertree lens MonadRandom mtl QuickCheck
-         quickcheck-instances reflection semigroupoids semigroups singletons
+         quickcheck-instances reflection semigroupoids semigroups
          template-haskell text vector vector-builder vinyl yaml
        ];
        testHaskellDepends = [
@@ -119461,6 +119953,8 @@ self: {
        ];
        description = "Set up a GHC API session";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hie-core" = callPackage
@@ -121123,8 +121617,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.16.1";
-       sha256 = "1dw04sjgji6iprs0hqxr0nynkg5qsqh20l0d48vqjkgaral4sxma";
+       version = "1.16.2";
+       sha256 = "1jvvmj13n3xv575g5zxfq2nw9bk719yb6ivddxfaf36h10zqpdxl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -121249,10 +121743,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-iadd";
-       version = "1.3.9";
-       sha256 = "07g48w4099m4vm7z5hrg9zzd2v2yhy7kcv40902njz6v8cklgdgq";
-       revision = "3";
-       editedCabalFile = "1c06v50lhhzsa4872j9khqvga7pvfrvns8sp3srn9vfwxbiw5x7z";
+       version = "1.3.10";
+       sha256 = "0kdrdbvs5qi8hc807d245xrv589hgx5aly5syb6zk62pi1kf92s3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -121326,8 +121818,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.16.1";
-       sha256 = "14rwigcmal1dy286qnw93nnn4rl42hgcnz882wmjmhpyjrs4l5ig";
+       version = "1.16.2";
+       sha256 = "0b3b68560jszx8frmv8q9bxs1nc33n9c52ns1gcy3a3j3s80ww3g";
        libraryHaskellDepends = [
          ansi-terminal array base base-compat-batteries blaze-markup
          bytestring call-stack cassava cassava-megaparsec cmdargs containers
@@ -121380,8 +121872,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.16.1";
-       sha256 = "0cn1pwr87lvi65m619v845vj17v27hp3h6fcgy1cpb4gjsdvq861";
+       version = "1.16.2";
+       sha256 = "1bsg48i9fmml4ga8jg1ikxig30dn7x5i8qbzbd9nr9lz5wg9xxlh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -121427,8 +121919,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.16.1";
-       sha256 = "1mn3mk4v6akbzl2hc8k89q4njffxpj832h5pywy9rj2mc7fbw5s5";
+       version = "1.16.2";
+       sha256 = "1kipq8b1df1iyp0dsdkbmshzdgii1993kb72drqsbl4ihj6vd96s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -121528,8 +122020,8 @@ self: {
      }:
      mkDerivation {
        pname = "hlint";
-       version = "2.2.6";
-       sha256 = "0943qnx9c8b1ach233f435qq5830b6g5vqfq3yy8qdagpwi3vpn1";
+       version = "2.2.7";
+       sha256 = "0qcqpw880436n2jdil12hp071mgzvknjflkx1j01fk3hbyn4hqmx";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -123595,19 +124087,18 @@ self: {
 
   "hookup" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, HsOpenSSL
-     , HsOpenSSL-x509-system, network, openssl
+     , HsOpenSSL-x509-system, network
      }:
      mkDerivation {
        pname = "hookup";
-       version = "0.3";
-       sha256 = "08a10bmnr15bb6pdcq4hq3z4595spsq3g8879apcqb6qgbs6dlxb";
+       version = "0.3.0.1";
+       sha256 = "12jwjgbbdiyffy78b90a2jcz1vz1mfsrmgj0q4w3ly3zl79j2la9";
        libraryHaskellDepends = [
          attoparsec base bytestring HsOpenSSL HsOpenSSL-x509-system network
        ];
-       librarySystemDepends = [ openssl ];
        description = "Abstraction over creating network connections with SOCKS5 and TLS";
        license = stdenv.lib.licenses.isc;
-     }) {inherit (pkgs) openssl;};
+     }) {};
 
   "hoopl" = callPackage
     ({ mkDerivation, base, containers, filepath, mtl, parsec
@@ -124617,8 +125108,8 @@ self: {
     ({ mkDerivation, base, bytestring, unix, word8 }:
      mkDerivation {
        pname = "hpath-filepath";
-       version = "0.10.0";
-       sha256 = "0s83ym61sg24z8d5fbmvb5divvr9a05bgx0w66clfqwzi8pi3mxs";
+       version = "0.10.1";
+       sha256 = "16hrcd0qdidggsafm11x3h1b3gyqwf77bav9vyvli5mi8b5ha8n5";
        libraryHaskellDepends = [ base bytestring unix word8 ];
        description = "ByteString based filepath manipulation";
        license = stdenv.lib.licenses.bsd3;
@@ -124626,16 +125117,16 @@ self: {
 
   "hpath-io" = callPackage
     ({ mkDerivation, base, bytestring, hpath, hpath-filepath, hspec
-     , HUnit, IfElse, process, streamly, unix, unix-bytestring
-     , utf8-string
+     , HUnit, IfElse, process, safe-exceptions, streamly, unix
+     , unix-bytestring, utf8-string
      }:
      mkDerivation {
        pname = "hpath-io";
-       version = "0.10.0";
-       sha256 = "01p0118chixajafiiihh8cvpmk9h4jvvpgzynr8ci63zx8x8s3bd";
+       version = "0.10.1";
+       sha256 = "10bhgcw55xs5y58khi67y881v560x3wnp74d67d8qkk64afx36xz";
        libraryHaskellDepends = [
-         base bytestring hpath hpath-filepath IfElse streamly unix
-         unix-bytestring utf8-string
+         base bytestring hpath hpath-filepath IfElse safe-exceptions
+         streamly unix unix-bytestring utf8-string
        ];
        testHaskellDepends = [
          base bytestring hpath hspec HUnit IfElse process unix
@@ -124643,6 +125134,8 @@ self: {
        ];
        description = "High-level IO operations on files/directories";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hpc_0_6_0_3" = callPackage
@@ -127788,6 +128281,27 @@ self: {
        license = stdenv.lib.licenses.isc;
      }) {};
 
+  "hsinstall_2_6" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, Cabal, directory, filepath
+     , heredoc, optparse-applicative, process, safe-exceptions
+     , transformers
+     }:
+     mkDerivation {
+       pname = "hsinstall";
+       version = "2.6";
+       sha256 = "0763jzyl8ysani30alc6ii3i68i5ls1cd288b6iza4lfz1knval5";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base directory filepath ];
+       executableHaskellDepends = [
+         ansi-wl-pprint base Cabal directory filepath heredoc
+         optparse-applicative process safe-exceptions transformers
+       ];
+       description = "Install Haskell software";
+       license = stdenv.lib.licenses.isc;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hskeleton" = callPackage
     ({ mkDerivation, base, Cabal }:
      mkDerivation {
@@ -131784,6 +132298,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "A native HTTP2 client library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "http2-client-exe" = callPackage
@@ -131803,6 +132319,8 @@ self: {
        ];
        description = "A command-line http2 client";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "http2-client-grpc" = callPackage
@@ -132220,8 +132738,8 @@ self: {
     ({ mkDerivation, base, bytestring, deepseq, ghc, text }:
      mkDerivation {
        pname = "humble-prelude";
-       version = "0.1";
-       sha256 = "019zj48h3daa8yvzcdpg4j9zr252mx384hyif330d8xhp8kpfzvb";
+       version = "0.2";
+       sha256 = "0pzfhp65afkdc33pjbxzcf68c02w6nq8sxqspfwbn78dghg9cbrn";
        libraryHaskellDepends = [ base bytestring deepseq ghc text ];
        description = "Redefinition-free prelude alternative";
        license = stdenv.lib.licenses.bsd3;
@@ -132496,6 +133014,24 @@ self: {
        broken = true;
      }) {};
 
+  "hurl" = callPackage
+    ({ mkDerivation, base, base64-bytestring, bytestring, http-client
+     , http-client-tls, http-types, network-uri, text
+     }:
+     mkDerivation {
+       pname = "hurl";
+       version = "1.0.0.0";
+       sha256 = "13yh9n7h3ihdxfi69w5jww7l9xan8yy1l4ijf198sw03sfq52k9l";
+       libraryHaskellDepends = [
+         base base64-bytestring bytestring http-client http-client-tls
+         http-types network-uri text
+       ];
+       description = "Haskell URL resolver";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hurriyet" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, here, hspec
      , http-client, http-client-tls, mtl, text
@@ -132931,6 +133467,8 @@ self: {
        pname = "hw-dsv";
        version = "0.4.0";
        sha256 = "1cpjfq3z4q5wmnlaskrzxhyybb07andc7gli7vv7njm9552bwyvf";
+       revision = "2";
+       editedCabalFile = "167zvbxwjmb25xmhcdhrshk03b98kh5ldrf2b6a4v8xlkj4p33qm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137209,8 +137747,8 @@ self: {
      }:
      mkDerivation {
        pname = "incremental";
-       version = "0.1";
-       sha256 = "03yax3xkp1mlipi1vn97ljz05c6fxflpvz9myqvlxcj658p9f3kh";
+       version = "0.1.1";
+       sha256 = "17lwakfa7xh0rdxr4hixlqy9hldvz06hcsclw3kln7m4iv4843d7";
        libraryHaskellDepends = [
          aeson base containers deepseq extensible semigroups text
        ];
@@ -137641,6 +138179,26 @@ self: {
        broken = true;
      }) {};
 
+  "infernal" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, case-insensitive
+     , containers, exceptions, heart-app, heart-core, http-client
+     , http-types, mtl, text, unliftio, unordered-containers, wai
+     }:
+     mkDerivation {
+       pname = "infernal";
+       version = "0.3.0";
+       sha256 = "0iixw8np4rh66ql2lm2gkhz9yzkgxw0mch3gxsflqi0a96y2jcik";
+       libraryHaskellDepends = [
+         aeson base binary bytestring case-insensitive containers exceptions
+         heart-app heart-core http-client http-types mtl text unliftio
+         unordered-containers wai
+       ];
+       description = "The Infernal Machine - An AWS Lambda Custom Runtime for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "infernu" = callPackage
     ({ mkDerivation, base, containers, digits, either, fgl
      , language-ecmascript, mtl, optparse-applicative, parsec
@@ -138510,6 +139068,8 @@ self: {
        libraryHaskellDepends = [ base containers primitive ];
        description = "Advent of Code 2019 intcode interpreter";
        license = stdenv.lib.licenses.isc;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "integer-gmp_1_0_2_0" = callPackage
@@ -140108,10 +140668,8 @@ self: {
      }:
      mkDerivation {
        pname = "irc-core";
-       version = "2.7.1";
-       sha256 = "0syhcb1q9j68pcxzbv45pah6bkfvnqjzkpzn2356ci7jpb9qpbbn";
-       revision = "2";
-       editedCabalFile = "1g85hhzjqv3fp9704p6hc09vhclk1wr56b7ih46ryfkclqlgfcm6";
+       version = "2.7.2";
+       sha256 = "1gpd28lxhqj2xj75nyyififn9434imvm0vqvx7zdw44fvg75lqyq";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring bytestring hashable primitive
          text time vector
@@ -142675,6 +143233,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "json_0_10" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, mtl, parsec
+     , pretty, syb, text
+     }:
+     mkDerivation {
+       pname = "json";
+       version = "0.10";
+       sha256 = "1fjnd2r4gl2hfqx158db3cn3rsyin4ch7rf9scb2hcy90cy6l10c";
+       libraryHaskellDepends = [
+         array base bytestring containers mtl parsec pretty syb text
+       ];
+       description = "Support for serialising Haskell to and from JSON";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "json-alt" = callPackage
     ({ mkDerivation, aeson, base }:
      mkDerivation {
@@ -148549,6 +149123,50 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "language-puppet_1_4_6_1" = callPackage
+    ({ mkDerivation, aeson, ansi-wl-pprint, async, attoparsec, base
+     , base16-bytestring, bytestring, case-insensitive, containers
+     , cryptonite, directory, filecache, filepath, formatting, Glob
+     , hashable, hruby, hslogger, hspec, hspec-megaparsec, http-api-data
+     , http-client, lens, lens-aeson, megaparsec, memory, mtl
+     , operational, optparse-applicative, parsec, parser-combinators
+     , pcre-utils, protolude, random, regex-pcre-builtin, scientific
+     , servant, servant-client, split, stm, strict-base-types, temporary
+     , text, time, transformers, unix, unordered-containers, vector
+     , yaml
+     }:
+     mkDerivation {
+       pname = "language-puppet";
+       version = "1.4.6.1";
+       sha256 = "0w1ffflnzlcwfc4zhn1zlrdhapdniy67wy0z2pa6qgkvxv52rlxd";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson ansi-wl-pprint attoparsec base base16-bytestring bytestring
+         case-insensitive containers cryptonite directory filecache filepath
+         formatting hashable hruby hslogger http-api-data http-client lens
+         lens-aeson megaparsec memory mtl operational parsec
+         parser-combinators pcre-utils protolude random regex-pcre-builtin
+         scientific servant servant-client split stm strict-base-types text
+         time transformers unix unordered-containers vector yaml
+       ];
+       executableHaskellDepends = [
+         aeson ansi-wl-pprint async base bytestring containers Glob hslogger
+         http-client lens mtl optparse-applicative regex-pcre-builtin
+         strict-base-types text transformers unordered-containers vector
+         yaml
+       ];
+       testHaskellDepends = [
+         base Glob hslogger hspec hspec-megaparsec lens megaparsec mtl
+         pcre-utils scientific strict-base-types temporary text transformers
+         unordered-containers vector
+       ];
+       description = "Tools to parse and evaluate the Puppet DSL";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "language-python" = callPackage
     ({ mkDerivation, alex, array, base, containers, happy, monads-tf
      , pretty, transformers, utf8-string
@@ -149856,6 +150474,8 @@ self: {
        pname = "learn-physics";
        version = "0.6.4";
        sha256 = "06f1p3rcb37lh0miih2c697w8jiciby3qgjcbjagmf91svx25mm0";
+       revision = "2";
+       editedCabalFile = "0q1m0nfqjb46r2drisk4w3pggmxlx1f391lhvh8bk0z3w1ih4lmy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -150740,14 +151360,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "lenz_0_4_1_0" = callPackage
+  "lenz_0_4_2_0" = callPackage
     ({ mkDerivation, base, base-unicode-symbols, hs-functors
      , transformers
      }:
      mkDerivation {
        pname = "lenz";
-       version = "0.4.1.0";
-       sha256 = "110a41iig3s273j7z2cpdahnnkbq1f5rswra33ag3w2x9sqry5yj";
+       version = "0.4.2.0";
+       sha256 = "13yz9lxxll928knxjgvdxdbnv911pxkd9d5jly1hdnhyymahv6lf";
        libraryHaskellDepends = [
          base base-unicode-symbols hs-functors transformers
        ];
@@ -150895,6 +151515,8 @@ self: {
        benchmarkHaskellDepends = [ base gauge util ];
        description = "See README for more info";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "lexer-applicative" = callPackage
@@ -151115,8 +151737,8 @@ self: {
      }:
      mkDerivation {
        pname = "libarchive";
-       version = "2.1.3.2";
-       sha256 = "1z934rl8dm4ncp7qs6kqm2hiir41k5ysrpp44nb6rgzs8f8x46mr";
+       version = "2.2.0.1";
+       sha256 = "0lf7l5wk7hm1s9kkr18bvcm7nqwwhbkas0ycnlk4gz4c6qwbnbz3";
        setupHaskellDepends = [ base Cabal chs-cabal ];
        libraryHaskellDepends = [
          base bytestring composition-prelude deepseq dlist filepath mtl
@@ -154447,6 +155069,8 @@ self: {
        ];
        description = "General purpose LLVM bindings";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {llvm-config = null;};
 
   "llvm-hs_9_0_1" = callPackage
@@ -154474,6 +155098,7 @@ self: {
        description = "General purpose LLVM bindings";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {llvm-config = null;};
 
   "llvm-hs-pretty" = callPackage
@@ -155310,25 +155935,25 @@ self: {
   "log4hs" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, bytestring, containers
      , criterion, data-default, directory, filepath, generic-lens, hspec
-     , hspec-core, lens, process, QuickCheck, template-haskell, text
-     , time, vformat, yaml
+     , hspec-core, lens, mtl, process, QuickCheck, template-haskell
+     , text, time, vformat, yaml
      }:
      mkDerivation {
        pname = "log4hs";
-       version = "0.4.0.0";
-       sha256 = "1k4xl8496mrgr9h1m3zsa41xcxywb3z134jisjg8lbzx37mh0zb1";
+       version = "0.6.0.0";
+       sha256 = "11lprcp066hxrgc7945lzprwffwkkd1sl1p3fa3qzw8xb6qi5nhz";
        libraryHaskellDepends = [
          aeson base bytestring containers data-default directory filepath
-         generic-lens lens template-haskell text time vformat yaml
+         generic-lens lens mtl template-haskell text time vformat yaml
        ];
        testHaskellDepends = [
          aeson aeson-qq base bytestring containers data-default directory
-         filepath generic-lens hspec hspec-core lens process QuickCheck
+         filepath generic-lens hspec hspec-core lens mtl process QuickCheck
          template-haskell text time vformat yaml
        ];
        benchmarkHaskellDepends = [
          aeson aeson-qq base bytestring containers criterion data-default
-         directory filepath generic-lens lens template-haskell text time
+         directory filepath generic-lens lens mtl template-haskell text time
          vformat yaml
        ];
        description = "A python logging style log library";
@@ -157087,8 +157712,8 @@ self: {
      }:
      mkDerivation {
        pname = "lzlib";
-       version = "0.3.0.5";
-       sha256 = "0mlwcchikmiaq6scs48g2snaiwcznwrcfksn4yij4hagjz734rpq";
+       version = "0.3.1.0";
+       sha256 = "0yklxk2hqfc47lh0i347lwbnr54xk5zk2r6yqyckbaqb89k3xw0p";
        libraryHaskellDepends = [ base bytestring ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [ base bytestring directory hspec ];
@@ -158845,8 +159470,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "maquinitas-tidal";
-       version = "0.1.0";
-       sha256 = "1gdbcjhcdgk1jx674rbh4lr1xbcks18xiygywsh3pv846wh3m0n6";
+       version = "0.2.1";
+       sha256 = "14j4469yl1ypw97m33r2v37mlqxa689ish84k7ggwjdqxj9f64n2";
        libraryHaskellDepends = [ base ];
        description = "library for MIDI control of hardware";
        license = stdenv.lib.licenses.mit;
@@ -159823,6 +160448,26 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "matrix-market-attoparsec_0_1_0_9" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, directory
+     , exceptions, hspec, QuickCheck, scientific
+     }:
+     mkDerivation {
+       pname = "matrix-market-attoparsec";
+       version = "0.1.0.9";
+       sha256 = "0nfmn611x8yyw34xsz6nz7rsmc83211yydf7ic5icq5b598amg9s";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         attoparsec base bytestring exceptions scientific
+       ];
+       testHaskellDepends = [
+         base directory exceptions hspec QuickCheck
+       ];
+       description = "Parsing and serialization functions for the NIST Matrix Market format";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "matrix-market-pure" = callPackage
     ({ mkDerivation, array, base, containers }:
      mkDerivation {
@@ -159889,8 +160534,8 @@ self: {
      }:
      mkDerivation {
        pname = "matterhorn";
-       version = "50200.5.0";
-       sha256 = "0ahlsyk21zm0h1ri0jwlhmqv90myn8x5xhjhpqxafsyjj8vhanpw";
+       version = "50200.6.0";
+       sha256 = "0b8qsd2w324sxmp3cgnz7fzlbhk5nz6slw8qxxm5dpy0bs5v7xnb";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -159927,8 +160572,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api";
-       version = "50200.2.0";
-       sha256 = "1c0d2djv3a374k9avbg95sm2f22bhz8ssafw76dnphkk7yasr8h6";
+       version = "50200.3.0";
+       sha256 = "1d5nxaf382lzsr05rcby9w8y726bsda29w46b96p89whfbq8s9h3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -159951,8 +160596,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api-qc";
-       version = "50200.2.0";
-       sha256 = "0wryvjx9s5p1gvvkp1kzdfgrvwrmfpy81caqc85p6mwnr18ybrbq";
+       version = "50200.3.0";
+       sha256 = "14111sq1k7iw8yy050805x0m80i9mixgxaqkl15gm0pvm4ap5ycd";
        libraryHaskellDepends = [
          base containers mattermost-api QuickCheck text time
        ];
@@ -163948,8 +164593,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn7h";
-       version = "0.4.1.0";
-       sha256 = "0i7gpq32zsfdbkq5yydban70g4r16b8z9c1f5hlf0mid57zvmy9v";
+       version = "0.5.1.0";
+       sha256 = "0hrkk5fnknjb6871frf6g2j896vbbbyhhxph4ay3f82s4vyh4zvs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -163970,8 +164615,8 @@ self: {
     ({ mkDerivation, base, directory, mmsyn2, mmsyn7ukr, vector }:
      mkDerivation {
        pname = "mmsyn7l";
-       version = "0.2.0.0";
-       sha256 = "1x1yk5c51wrr1nrcq76msgc1g4rrh2lghbzhz8xh5z0a2qdich1s";
+       version = "0.2.3.0";
+       sha256 = "1i9va9ynk4iihvgm5ivdf9pnjc7md2crdfkyww3a709ff416v60x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory mmsyn2 mmsyn7ukr vector ];
@@ -164006,8 +164651,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn7ukr";
-       version = "0.6.1.1";
-       sha256 = "15gj44ij2hc1mrlminb7fzg502x2fa2w34k0p9k45hl77l961m49";
+       version = "0.6.3.0";
+       sha256 = "1q831acj5a3c0dxlhy2gqci2925p6szz29c90q0nfs8psp58lz42";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -167892,6 +168537,152 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "mu-avro" = callPackage
+    ({ mkDerivation, aeson, avro, base, bytestring, containers
+     , mu-schema, sop-core, tagged, template-haskell, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "mu-avro";
+       version = "0.1.0.0";
+       sha256 = "1g5083vwd0s7h27r8l8mdrqwbflq89cgm1660cd1nd29vypwz55x";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson avro base bytestring containers mu-schema sop-core tagged
+         template-haskell text unordered-containers vector
+       ];
+       executableHaskellDepends = [ avro base bytestring mu-schema ];
+       description = "Avro serialization support for Mu microservices";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
+  "mu-grpc-client" = callPackage
+    ({ mkDerivation, async, base, bytestring, conduit, http2
+     , http2-client, http2-client-grpc, http2-grpc-proto3-wire
+     , mu-protobuf, mu-rpc, mu-schema, sop-core, stm, stm-chans
+     , stm-conduit, template-haskell, text, th-abstraction
+     }:
+     mkDerivation {
+       pname = "mu-grpc-client";
+       version = "0.1.0.0";
+       sha256 = "00i6z413dknh71dnzy61wcgkcwczj74042glsag8193pr1kxa3s6";
+       libraryHaskellDepends = [
+         async base bytestring conduit http2 http2-client http2-client-grpc
+         http2-grpc-proto3-wire mu-protobuf mu-rpc mu-schema sop-core stm
+         stm-chans stm-conduit template-haskell text th-abstraction
+       ];
+       description = "gRPC clients from Mu definitions";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "mu-grpc-server" = callPackage
+    ({ mkDerivation, async, base, bytestring, conduit
+     , http2-grpc-proto3-wire, http2-grpc-types, mtl, mu-protobuf
+     , mu-rpc, mu-schema, sop-core, stm, stm-conduit, wai, warp
+     , warp-grpc, warp-tls
+     }:
+     mkDerivation {
+       pname = "mu-grpc-server";
+       version = "0.1.0.1";
+       sha256 = "0f494cn3x1v6hdmyf7w97hvhlvichw70pz9jza232rv7ds6bq38j";
+       revision = "1";
+       editedCabalFile = "0g1qs1ydjy0yn2997il049ldb303gvjvc1pn7j161zb31zlc699m";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base bytestring conduit http2-grpc-proto3-wire
+         http2-grpc-types mtl mu-protobuf mu-rpc mu-schema sop-core stm
+         stm-conduit wai warp warp-grpc warp-tls
+       ];
+       executableHaskellDepends = [
+         async base bytestring conduit http2-grpc-proto3-wire
+         http2-grpc-types mtl mu-protobuf mu-rpc mu-schema sop-core stm
+         stm-conduit wai warp warp-grpc warp-tls
+       ];
+       description = "gRPC servers for Mu definitions";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "mu-persistent" = callPackage
+    ({ mkDerivation, base, monad-logger, mu-schema, persistent
+     , resourcet, transformers
+     }:
+     mkDerivation {
+       pname = "mu-persistent";
+       version = "0.1.0.0";
+       sha256 = "16y1d69zwfrv2wdx0xj1aavhkfv5z6bg9wvzj29215k1vcvarx7i";
+       libraryHaskellDepends = [
+         base monad-logger mu-schema persistent resourcet transformers
+       ];
+       description = "Utilities for interoperation between Mu and Persistent";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
+  "mu-protobuf" = callPackage
+    ({ mkDerivation, base, bytestring, compendium-client, http-client
+     , http2-grpc-proto3-wire, language-protobuf, mu-rpc, mu-schema
+     , proto3-wire, servant-client-core, sop-core, template-haskell
+     , text
+     }:
+     mkDerivation {
+       pname = "mu-protobuf";
+       version = "0.1.0.0";
+       sha256 = "1vlsq45cjkll4y9fjgjnvp1d9ax850zxy9rawprcrnwc48wmpdxz";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring compendium-client http-client
+         http2-grpc-proto3-wire language-protobuf mu-rpc mu-schema
+         proto3-wire servant-client-core sop-core template-haskell text
+       ];
+       executableHaskellDepends = [
+         base bytestring mu-schema proto3-wire text
+       ];
+       description = "Protocol Buffers serialization and gRPC schema import for Mu microservices";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "mu-rpc" = callPackage
+    ({ mkDerivation, base, conduit, mtl, mu-schema, sop-core
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "mu-rpc";
+       version = "0.1.0.0";
+       sha256 = "1hinkmhgp49sl7d00iz20p9maf47almii9000hfkszyqbq1dh58p";
+       libraryHaskellDepends = [
+         base conduit mtl mu-schema sop-core template-haskell text
+       ];
+       description = "Protocol-independent declaration of services and servers";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
+  "mu-schema" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, sop-core
+     , template-haskell, text, th-abstraction, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "mu-schema";
+       version = "0.1.0.0";
+       sha256 = "0yqm70w5xbzlcgqdwywfr0qncxlzi9z3nshs8x06shd0g0gjgmhy";
+       libraryHaskellDepends = [
+         aeson base bytestring containers sop-core template-haskell text
+         th-abstraction unordered-containers vector
+       ];
+       description = "Format-independent schemas for serialization";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "mucipher" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -169084,6 +169875,27 @@ self: {
        broken = true;
      }) {};
 
+  "musicScroll" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, dbus, gi-gtk
+     , gi-gtk-hs, gtk3, req, stm, tagsoup, text
+     }:
+     mkDerivation {
+       pname = "musicScroll";
+       version = "0.1.0.0";
+       sha256 = "1k0di4xiv1jbfdcbwgqf3cn71fn8351lhhd82nv9cj6h3pmphxvd";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         async base bytestring containers dbus gi-gtk gi-gtk-hs req stm
+         tagsoup text
+       ];
+       executableHaskellDepends = [ base ];
+       executablePkgconfigDepends = [ gtk3 ];
+       description = "Supply your tunes info without leaving your music player";
+       license = stdenv.lib.licenses.gpl3;
+     }) {inherit (pkgs) gtk3;};
+
   "musicbrainz-email" = callPackage
     ({ mkDerivation, aeson, amqp, base, blaze-builder, bytestring
      , configurator, errors, ghc-prim, heist, HTTP, HUnit, mime-mail
@@ -172096,6 +172908,8 @@ self: {
        ];
        description = "An interface to bitcoind";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "network-bsd" = callPackage
@@ -172603,12 +173417,12 @@ self: {
      }) {};
 
   "network-run" = callPackage
-    ({ mkDerivation, base, network }:
+    ({ mkDerivation, base, bytestring, network }:
      mkDerivation {
        pname = "network-run";
-       version = "0.2.1";
-       sha256 = "0fviap6njppdw1dv9dy5027q37kz93w3vdzij0wgp4jp284qcc1f";
-       libraryHaskellDepends = [ base network ];
+       version = "0.2.2";
+       sha256 = "1znf2pafcg1gcrb3yyc69h6y5mb8hilibr5khcwil09i5djsjyxx";
+       libraryHaskellDepends = [ base bytestring network ];
        description = "Simple network runner library";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -173529,8 +174343,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools-extra";
-       version = "0.2.0.0";
-       sha256 = "16d1akwdn7w6g4qpa3mz0wb0prwf3wsv9clllbqdg66mk830dznh";
+       version = "0.2.1.0";
+       sha256 = "0xka55h7c5zqyb8nj1pyq0iq50yfwy4p6fspya1zbi0yjblnxnsa";
        libraryHaskellDepends = [
          aeson ansi-wl-pprint base base64 bytestring containers ede
          enclosed-exceptions http-client http-types ngx-export
@@ -173762,8 +174576,8 @@ self: {
      }:
      mkDerivation {
        pname = "niv";
-       version = "0.2.11";
-       sha256 = "1llgfcrj4cayjga84dmn35xkaf8rckxpqrxqf4gagff9fpis96gs";
+       version = "0.2.12";
+       sha256 = "0lbkc49ddkxb6x3miimcd2c4ajwf7d9z0hay54n0gmz7d92ha8q0";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -178998,8 +179812,8 @@ self: {
      }:
      mkDerivation {
        pname = "ormolu";
-       version = "0.0.2.0";
-       sha256 = "10p3h98k5ph2awmdd89k8knavv4npvdmh00a9nrzaw6z32j0igfh";
+       version = "0.0.3.0";
+       sha256 = "04s48k3w4lgi682q8cllhmmawffl2781hi462gkcjr18kx46swx1";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -179917,6 +180731,25 @@ self: {
        broken = true;
      }) {pam = null;};
 
+  "pan-os-syslog" = callPackage
+    ({ mkDerivation, base, byteslice, bytesmith, chronos, gauge, ip
+     , primitive, primitive-addr, run-st
+     }:
+     mkDerivation {
+       pname = "pan-os-syslog";
+       version = "0.1.0.0";
+       sha256 = "0ydydbql0pgd6vp9zvzjf0qzsprjaicz9vffrrp3z1xgmfynh70r";
+       libraryHaskellDepends = [
+         base byteslice bytesmith chronos ip primitive primitive-addr run-st
+       ];
+       testHaskellDepends = [ base byteslice primitive ];
+       benchmarkHaskellDepends = [ base byteslice gauge primitive ];
+       description = "Parse syslog traffic from PAN-OS";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "panda" = callPackage
     ({ mkDerivation, base, cgi, containers, data-default, directory
      , filepath, gravatar, haskell98, hcheat, kibro, MissingH, mps
@@ -181694,6 +182527,8 @@ self: {
        ];
        description = "Streaming Parquet reader";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "parse-dimacs" = callPackage
@@ -182493,6 +183328,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "password_0_1_0_1" = callPackage
+    ({ mkDerivation, base, bytestring, doctest, QuickCheck
+     , quickcheck-instances, scrypt, text
+     }:
+     mkDerivation {
+       pname = "password";
+       version = "0.1.0.1";
+       sha256 = "0n96n9kiiij6pf587y21v39c2zh9r4n4yd6n2k8km770k3bg1skr";
+       libraryHaskellDepends = [ base scrypt text ];
+       testHaskellDepends = [
+         base bytestring doctest QuickCheck quickcheck-instances
+       ];
+       description = "plain-text password and hashed password datatypes and functions";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "password-instances" = callPackage
     ({ mkDerivation, aeson, base, doctest, http-api-data, password
      , persistent, QuickCheck, quickcheck-instances
@@ -182511,6 +183363,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "password-instances_0_3_0_1" = callPackage
+    ({ mkDerivation, aeson, base, doctest, http-api-data, password
+     , persistent, QuickCheck, quickcheck-instances
+     }:
+     mkDerivation {
+       pname = "password-instances";
+       version = "0.3.0.1";
+       sha256 = "03x9ky018r1ihl4ajc1fcw78g8h1vk3dzr4gjqck78jsb8kj7l93";
+       libraryHaskellDepends = [
+         aeson base http-api-data password persistent
+       ];
+       testHaskellDepends = [
+         base doctest QuickCheck quickcheck-instances
+       ];
+       description = "typeclass instances for password package";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "passwords" = callPackage
     ({ mkDerivation, base, containers, MonadRandom, random }:
      mkDerivation {
@@ -184674,10 +185545,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-mongoDB";
-       version = "2.9.0.1";
-       sha256 = "08pcx9hn461ww12ziq4fxnxn01pv9rpgmz6lmxk0qpxagp0jfk85";
-       revision = "1";
-       editedCabalFile = "14x751hns0h0ykjhlncm7d5p9dzll7r0rvpafh1kz4149r8566xl";
+       version = "2.9.0.2";
+       sha256 = "0q78y1ydsvm0jrsi211zq789vy50czhskwq13plv6l2h4860917v";
        libraryHaskellDepends = [
          aeson base bson bytestring cereal conduit http-api-data mongoDB
          network path-pieces persistent resource-pool resourcet text time
@@ -184876,7 +185745,7 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
-  "persistent-postgresql_2_10_1_1" = callPackage
+  "persistent-postgresql_2_10_1_2" = callPackage
     ({ mkDerivation, aeson, base, blaze-builder, bytestring, conduit
      , containers, fast-logger, hspec, hspec-expectations, HUnit
      , monad-logger, persistent, persistent-qq, persistent-template
@@ -184886,8 +185755,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-postgresql";
-       version = "2.10.1.1";
-       sha256 = "075msvfvi3f1ac002cd3mvj075c16ffvh6k2syls7kcpgy1z7r9v";
+       version = "2.10.1.2";
+       sha256 = "1q7n0h16argvpw2y3f8mxzmvy24q6if46ab9nvybviki283zbvlb";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring conduit containers monad-logger
          persistent postgresql-libpq postgresql-simple resource-pool
@@ -185173,7 +186042,7 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
-  "persistent-template_2_8_0" = callPackage
+  "persistent-template_2_8_0_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , deepseq, deepseq-generics, file-embed, hspec, http-api-data
      , monad-control, monad-logger, path-pieces, persistent, QuickCheck
@@ -185182,8 +186051,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-template";
-       version = "2.8.0";
-       sha256 = "16yjrl0gh4jbs4skr7iv6a55lny59bqhd6hjmvch1cl9j5d0c0g3";
+       version = "2.8.0.1";
+       sha256 = "0chgzq70ss8b9hkq0v6zi2kdqsbj3xxcl485ajmwrxclkz1f8c3n";
        libraryHaskellDepends = [
          aeson base bytestring containers http-api-data monad-control
          monad-logger path-pieces persistent template-haskell text
@@ -190935,6 +191804,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "postgresql-simple-migration_0_1_15_0" = callPackage
+    ({ mkDerivation, base, base64-bytestring, bytestring, cryptohash
+     , directory, hspec, postgresql-simple, text, time
+     }:
+     mkDerivation {
+       pname = "postgresql-simple-migration";
+       version = "0.1.15.0";
+       sha256 = "0j6nhyknxlmpl0yrdj1pifw1fbb24080jgg64grnhqjwh1d44dvd";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base base64-bytestring bytestring cryptohash directory
+         postgresql-simple time
+       ];
+       executableHaskellDepends = [
+         base base64-bytestring bytestring cryptohash directory
+         postgresql-simple text time
+       ];
+       testHaskellDepends = [ base bytestring hspec postgresql-simple ];
+       description = "PostgreSQL Schema Migrations";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "postgresql-simple-named" = callPackage
     ({ mkDerivation, base, bytestring, doctest, Glob, hspec, mtl
      , postgresql-simple, resource-pool, text, transformers
@@ -191821,12 +192714,14 @@ self: {
      }) {};
 
   "predicate-transformers" = callPackage
-    ({ mkDerivation, adjunctions, base, lens, mtl }:
+    ({ mkDerivation, adjunctions, base, deepseq, lens, mtl }:
      mkDerivation {
        pname = "predicate-transformers";
-       version = "0.6.0.0";
-       sha256 = "0m1dgkfbw4prhccllpdm7h99shp2554f1bvi0s950qa2k3mvz9l4";
-       libraryHaskellDepends = [ adjunctions base lens mtl ];
+       version = "0.7.0.2";
+       sha256 = "0wkd7xz3d4sifx9cxm9rnjskhxrbdyqpdspi0sa6jr1ckmq25zpf";
+       revision = "1";
+       editedCabalFile = "1b02l2fdfxvlsvhcmkpsp0vzc0igsd0nrb64yb7af5a7z08cc9c0";
+       libraryHaskellDepends = [ adjunctions base deepseq lens mtl ];
        description = "A library for writing predicates and transformations over predicates in Haskell";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -192485,15 +193380,15 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ cdepillabout ];
      }) {};
 
-  "pretty-simple_3_2_0_0" = callPackage
+  "pretty-simple_3_2_1_0" = callPackage
     ({ mkDerivation, ansi-terminal, base, Cabal, cabal-doctest
      , containers, criterion, doctest, Glob, mtl, QuickCheck
      , template-haskell, text, transformers
      }:
      mkDerivation {
        pname = "pretty-simple";
-       version = "3.2.0.0";
-       sha256 = "0jbxyjiyshbc5q5avbmm5ms8n8m0zm540gl3x7vz8k22pcb65jv8";
+       version = "3.2.1.0";
+       sha256 = "01cnvfn2y7qgp9pc9ra9glmgs64f1m8bxa8n31yy8jlkwwmyhly6";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -192711,6 +193606,19 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "prettyprinter-graphviz" = callPackage
+    ({ mkDerivation, base, graphviz, prettyprinter, text }:
+     mkDerivation {
+       pname = "prettyprinter-graphviz";
+       version = "0.1.0.1";
+       sha256 = "1h6jr4vh60j54ajsylh41y0iskz5yjgh2879v25z1mw7vfi40kww";
+       libraryHaskellDepends = [ base graphviz prettyprinter text ];
+       description = "a prettyprinter backend for graphviz";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "prettyprinter-vty" = callPackage
     ({ mkDerivation, base, prettyprinter, vty }:
      mkDerivation {
@@ -196098,6 +197006,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "pure-zlib_0_6_7" = callPackage
+    ({ mkDerivation, array, base, base-compat, bytestring
+     , bytestring-builder, containers, filepath, fingertree, HUnit
+     , QuickCheck, tasty, tasty-hunit, tasty-quickcheck, time
+     }:
+     mkDerivation {
+       pname = "pure-zlib";
+       version = "0.6.7";
+       sha256 = "1ddj88zk94gqqhxiyvkachvhwi5n2la4pfaf5vppkc9ma7sjhyhn";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base base-compat bytestring bytestring-builder containers
+         fingertree
+       ];
+       executableHaskellDepends = [ base base-compat bytestring ];
+       testHaskellDepends = [
+         base base-compat bytestring filepath HUnit QuickCheck tasty
+         tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ base base-compat bytestring time ];
+       description = "A Haskell-only implementation of zlib / DEFLATE";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "pureMD5" = callPackage
     ({ mkDerivation, base, binary, bytestring, cereal, crypto-api
      , crypto-api-tests, pretty-hex, QuickCheck, tagged, test-framework
@@ -200269,14 +201203,14 @@ self: {
      }:
      mkDerivation {
        pname = "raven-haskell";
-       version = "0.1.2.1";
-       sha256 = "1mzz7z99a2agivwypcl62y68vpmihyh6rvy79w1jd29n1l2p621x";
+       version = "0.1.3.0";
+       sha256 = "0jd0xxrliqc85mifkqzblc3fi6xjgkwkqxijqjx42r5jc0m1qs7f";
        libraryHaskellDepends = [
          aeson base bytestring http-conduit mtl network random resourcet
          text time unordered-containers uuid
        ];
        testHaskellDepends = [
-         aeson base bytestring hspec unordered-containers
+         aeson base bytestring hspec time unordered-containers
        ];
        description = "Haskell client for Sentry logging service";
        license = stdenv.lib.licenses.mit;
@@ -201091,6 +202025,8 @@ self: {
          base bytestring containers directory hspec text
        ];
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "read-editor" = callPackage
@@ -202621,6 +203557,44 @@ self: {
        broken = true;
      }) {};
 
+  "reflex-fsnotify" = callPackage
+    ({ mkDerivation, base, fsnotify, reflex }:
+     mkDerivation {
+       pname = "reflex-fsnotify";
+       version = "0.1.0.0";
+       sha256 = "1rj1mk5i3a74i5wjwqwbh5546vjqw97laswg4lkiihkq9w20dlry";
+       libraryHaskellDepends = [ base fsnotify reflex ];
+       description = "reflex-frp interface for watching files";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "reflex-ghci" = callPackage
+    ({ mkDerivation, base, bytestring, directory, filepath, fsnotify
+     , optparse-applicative, process, reflex, reflex-fsnotify
+     , reflex-process, reflex-vty, regex-tdfa, text, unix, vty
+     }:
+     mkDerivation {
+       pname = "reflex-ghci";
+       version = "0.1.2.0";
+       sha256 = "13wilfk6d8s201jyifm1ynw8d9ziizaldhg8g9vjvj0j9sxiv1ma";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring directory filepath fsnotify process reflex
+         reflex-fsnotify reflex-process reflex-vty regex-tdfa text unix
+       ];
+       executableHaskellDepends = [
+         base optparse-applicative process reflex reflex-process reflex-vty
+         text vty
+       ];
+       description = "A GHCi widget library for use in reflex applications";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "reflex-gloss" = callPackage
     ({ mkDerivation, base, dependent-sum, gloss, mtl, reflex
      , transformers
@@ -202720,6 +203694,28 @@ self: {
        broken = true;
      }) {};
 
+  "reflex-process" = callPackage
+    ({ mkDerivation, base, bytestring, containers, data-default
+     , process, reflex, reflex-vty, text, unix, vty
+     }:
+     mkDerivation {
+       pname = "reflex-process";
+       version = "0.1.0.1";
+       sha256 = "0v7xiax45ax2z6w0b4sprc171pv9fkbld7warmk0phwr3sfzb9ai";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring data-default process reflex unix
+       ];
+       executableHaskellDepends = [
+         base containers data-default process reflex reflex-vty text vty
+       ];
+       description = "reflex-frp interface for running shell commands";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "reflex-sdl2" = callPackage
     ({ mkDerivation, async, base, containers, dependent-sum
      , exception-transformers, mtl, primitive, ref-tf, reflex, sdl2, stm
@@ -202766,8 +203762,8 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-vty";
-       version = "0.1.2.1";
-       sha256 = "0l0hpsxg2hjg0446pk34ip24zx8lv6jmr63hizpxjr3vspiff5g0";
+       version = "0.1.3.0";
+       sha256 = "1200svlgpy4zqdfarx1b8n64vgskb9jl00p548ya4pwi0bsv95y7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -202906,26 +203902,29 @@ self: {
 
   "refurb" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, classy-prelude
-     , composite-base, composite-opaleye, dlist, fast-logger, hspec
-     , lens, monad-logger, old-locale, opaleye, optparse-applicative
-     , postgresql-simple, process, product-profunctors, template-haskell
-     , text, these, thyme, vector-space
+     , composite-base, composite-opaleye, dlist, exceptions, fast-logger
+     , hspec, lens, monad-control, monad-logger, old-locale, opaleye
+     , optparse-applicative, postgresql-simple, process
+     , product-profunctors, template-haskell, text, these, these-lens
+     , thyme, transformers-base, vector-space
      }:
      mkDerivation {
        pname = "refurb";
-       version = "0.2.2.0";
-       sha256 = "0qnlkpi8hc6a1xf094zf675i4ap3gymxirdmbkdwjq8j54w3lkhl";
+       version = "0.2.3.0";
+       sha256 = "09p9i0l59f34k12pbxvi50bxpj2d864n96fr79mq41xm0bhygsjb";
        libraryHaskellDepends = [
          ansi-wl-pprint base bytestring classy-prelude composite-base
-         composite-opaleye dlist fast-logger lens monad-logger old-locale
-         opaleye optparse-applicative postgresql-simple process
-         product-profunctors template-haskell text these thyme vector-space
+         composite-opaleye dlist exceptions fast-logger lens monad-control
+         monad-logger old-locale opaleye optparse-applicative
+         postgresql-simple process product-profunctors template-haskell text
+         these these-lens thyme transformers-base vector-space
        ];
        testHaskellDepends = [
          ansi-wl-pprint base bytestring classy-prelude composite-base
-         composite-opaleye dlist fast-logger hspec lens monad-logger
-         old-locale opaleye optparse-applicative postgresql-simple process
-         product-profunctors template-haskell text these thyme vector-space
+         composite-opaleye dlist exceptions fast-logger hspec lens
+         monad-control monad-logger old-locale opaleye optparse-applicative
+         postgresql-simple process product-profunctors template-haskell text
+         these these-lens thyme transformers-base vector-space
        ];
        description = "Tools for maintaining a database";
        license = stdenv.lib.licenses.bsd3;
@@ -203138,8 +204137,8 @@ self: {
      }:
      mkDerivation {
        pname = "regex-do";
-       version = "3.2";
-       sha256 = "0ywp64hifikr5wa0spcg7wl2grrfshyiax25pxzs7hk6xrjais57";
+       version = "3.2.1";
+       sha256 = "1jng0vmdvgwysfw71klgfzx6hs18v64q17had9j2kkg82w6fivqw";
        libraryHaskellDepends = [
          array base bytestring regex-base regex-pcre stringsearch tagged
          text
@@ -203150,6 +204149,8 @@ self: {
        ];
        description = "PCRE wrapper";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "regex-easy" = callPackage
@@ -207106,6 +208107,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "rio_0_1_13_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, directory
+     , exceptions, filepath, hashable, hspec, microlens, mtl, primitive
+     , process, QuickCheck, text, time, typed-process, unix, unliftio
+     , unliftio-core, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "rio";
+       version = "0.1.13.0";
+       sha256 = "1jsrblk451ayf5smplngxmch73pf4r0qanafyyfn0g5wyh6hsxcm";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq directory exceptions filepath
+         hashable microlens mtl primitive process text time typed-process
+         unix unliftio unliftio-core unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers deepseq directory exceptions filepath
+         hashable hspec microlens mtl primitive process QuickCheck text time
+         typed-process unix unliftio unliftio-core unordered-containers
+         vector
+       ];
+       description = "A standard library for Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rio-orphans" = callPackage
     ({ mkDerivation, base, exceptions, fast-logger, hspec
      , monad-control, monad-logger, resourcet, rio, transformers-base
@@ -207706,14 +208733,14 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
-  "rocksdb-query_0_3_0" = callPackage
+  "rocksdb-query_0_3_1" = callPackage
     ({ mkDerivation, base, bytestring, cereal, conduit, data-default
      , hspec, resourcet, rocksdb-haskell, unliftio
      }:
      mkDerivation {
        pname = "rocksdb-query";
-       version = "0.3.0";
-       sha256 = "0fy7d9m9g0jwssjgkhyg2d170s7mp7g9kz73zgnnp0xgl6mpxrsi";
+       version = "0.3.1";
+       sha256 = "072l4f5xb5prsbs7d7j12mwxy0rlrsnqf6w7g09xmq7n3mz0sv0f";
        libraryHaskellDepends = [
          base bytestring cereal conduit resourcet rocksdb-haskell unliftio
        ];
@@ -209027,8 +210054,8 @@ self: {
     ({ mkDerivation, base, primitive, primitive-unlifted }:
      mkDerivation {
        pname = "run-st";
-       version = "0.1.0.0";
-       sha256 = "0gy5qkq8g7azfp170nsvbfdmj4k058zzfz6imvm2yvbqsny6i77a";
+       version = "0.1.1.0";
+       sha256 = "11if8xwv22ry0mxrglg3pcx3cx8ljnq56f3m9vjkr9jcj2881dvf";
        libraryHaskellDepends = [ base primitive primitive-unlifted ];
        description = "runST without boxing penalty";
        license = stdenv.lib.licenses.bsd3;
@@ -211455,22 +212482,22 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "science-constants";
-       version = "0.2.0.0";
-       sha256 = "0qp3d9la929kks2b2pyylgznl86gy91lp3zgpb9bn7gas3wll9vy";
+       version = "0.2.0.2";
+       sha256 = "0h60pdq3r32wl9h49i08iq496yf0qwvd0qmlmnk9jy5x3zcdwjmd";
        libraryHaskellDepends = [ base ];
        description = "Mathematical/physical/chemical constants";
-       license = "unknown";
-       hydraPlatforms = stdenv.lib.platforms.none;
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "science-constants-dimensional" = callPackage
-    ({ mkDerivation, base, dimensional, numtype, science-constants }:
+    ({ mkDerivation, base, dimensional, numtype-dk, science-constants
+     }:
      mkDerivation {
        pname = "science-constants-dimensional";
-       version = "0.1.0.2";
-       sha256 = "13yz9c8d52fdrkz23f064s0pp9cc2941qfcfz6b0g4c6f6a0wqkm";
+       version = "0.1.0.3";
+       sha256 = "05svn307q46cskw1ywkkp1b0ym9jcn48dzjij9mvkg5g6gvsbcg4";
        libraryHaskellDepends = [
-         base dimensional numtype science-constants
+         base dimensional numtype-dk science-constants
        ];
        description = "Mathematical/physical/chemical constants";
        license = stdenv.lib.licenses.bsd3;
@@ -212756,6 +213783,33 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Bindings for secp256k1 library from Bitcoin Core";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {libsecp256k1 = null;};
+
+  "secp256k1-haskell_0_1_8" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, cereal
+     , deepseq, entropy, hashable, hspec, hspec-discover, HUnit
+     , libsecp256k1, mtl, QuickCheck, string-conversions
+     }:
+     mkDerivation {
+       pname = "secp256k1-haskell";
+       version = "0.1.8";
+       sha256 = "0ymmgcvlw4wrmnn0r6nmmpk0djihpappiywwfxvmnq8brqdkf3jk";
+       libraryHaskellDepends = [
+         base base16-bytestring bytestring cereal deepseq entropy hashable
+         QuickCheck string-conversions
+       ];
+       libraryPkgconfigDepends = [ libsecp256k1 ];
+       testHaskellDepends = [
+         base base16-bytestring bytestring cereal deepseq entropy hashable
+         hspec HUnit mtl QuickCheck string-conversions
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Bindings for secp256k1 library from Bitcoin Core";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {libsecp256k1 = null;};
 
   "secp256k1-legacy" = callPackage
@@ -213131,8 +214185,8 @@ self: {
      }:
      mkDerivation {
        pname = "semantic-source";
-       version = "0.0.0.1";
-       sha256 = "0w1iwd67dpvpc43g4x9q686sljrxv6xhx9rlgiw6kzcdil7fcm8z";
+       version = "0.0.1.0";
+       sha256 = "0zzybqys2vc2i06ggkbzcd8b2s68j3qpsrds55p0cvd9ng4dlvgi";
        libraryHaskellDepends = [
          aeson base bytestring deepseq generic-monoid hashable semilattices
          text
@@ -216516,21 +217570,21 @@ self: {
 
   "servant-to-elm" = callPackage
     ({ mkDerivation, aeson, base, bound, elm-syntax, haskell-to-elm
-     , http-types, protolude, servant, text
+     , http-types, protolude, servant, servant-multipart, text
      }:
      mkDerivation {
        pname = "servant-to-elm";
-       version = "0.2.0.0";
-       sha256 = "0kj42y6jb5cqylkvj0iwm857vliagfgbh7rgyzbrgz834r7n5cri";
+       version = "0.3.0.0";
+       sha256 = "1s241rjgr8hwkrnvalx23nbyg3gdi3v5nsdfz2lys4b24wyafg5p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base bound elm-syntax haskell-to-elm http-types protolude
-         servant text
+         servant servant-multipart text
        ];
        testHaskellDepends = [
          aeson base bound elm-syntax haskell-to-elm http-types protolude
-         servant text
+         servant servant-multipart text
        ];
        description = "Automatically generate Elm clients for Servant APIs";
        license = stdenv.lib.licenses.bsd3;
@@ -218556,8 +219610,8 @@ self: {
      }:
      mkDerivation {
        pname = "shellmate";
-       version = "0.3.4.2";
-       sha256 = "123dv5mjj7nah9mm5yfgwv6ga5lwh4d9xi01zskm3z0ia4fdxs85";
+       version = "0.3.4.3";
+       sha256 = "1cn3kh5rszyis2pqvh3s35zlchxwyf7vssd8md9z8vgqs6apd49r";
        libraryHaskellDepends = [
          base bytestring directory filepath process temporary transformers
          unix
@@ -218574,10 +219628,8 @@ self: {
      }:
      mkDerivation {
        pname = "shellmate-extras";
-       version = "0.3.4.1";
-       sha256 = "0bmqz4k2wcdv2669w053xm4990fdyghqq35m5kwnrbwr9qwn5pgk";
-       revision = "1";
-       editedCabalFile = "11x8alavql8375misc8zry4sz73bz3hxqydmbk9hsymgvkdm51y6";
+       version = "0.3.4.3";
+       sha256 = "1aqc0bslqwrfr8b9nkk52n3fjw2b91gnn7pzzp24smm1cbm2x50d";
        libraryHaskellDepends = [
          base bytestring feed http-conduit http-types mime-types shellmate
          tagsoup text utf8-string xml
@@ -218875,6 +219927,8 @@ self: {
        isExecutable = true;
        description = "Examples for the shine package";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "shine-varying" = callPackage
@@ -220512,6 +221566,8 @@ self: {
        librarySystemDepends = [ sqlite ];
        description = "Simplest SQLite3 binding";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) sqlite;};
 
   "simplex" = callPackage
@@ -221259,6 +222315,8 @@ self: {
        pname = "skip-var";
        version = "0.1.1.0";
        sha256 = "07nljfjd45fagisd99pqz2jhznfapk9cgd9lyy9cija7pmxfbg5z";
+       revision = "1";
+       editedCabalFile = "0vl2y19l7xhlq08f91ggycj4imfdxvkj2fsaz8ifc0waxk3q7ja8";
        libraryHaskellDepends = [ base ];
        description = "Skip variables";
        license = stdenv.lib.licenses.mit;
@@ -221891,6 +222949,8 @@ self: {
        pname = "small-bytearray-builder";
        version = "0.3.1.0";
        sha256 = "1swv0cwsxrmffkvx16qxxxkxfhqfwxwfz7d2msp5fzzz6all6vli";
+       revision = "1";
+       editedCabalFile = "16kslqf3zwqvjk3hhf1s3hb1xkhz0nk2a9n59fwbwqxqrbxy4kdb";
        libraryHaskellDepends = [
          base byteslice bytestring natural-arithmetic primitive
          primitive-offset run-st text-short wide-word
@@ -229774,15 +230834,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "stratosphere_0_46_0" = callPackage
+  "stratosphere_0_47_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , hashable, hspec, hspec-discover, lens, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.46.0";
-       sha256 = "07qm0bi5f3fkpnbsjbyi4qv2kp7w0wb7zd75q4cikjwkm1wxlldr";
+       version = "0.47.0";
+       sha256 = "04917xnc2hs613xi8d2mj3z2miyrrdmbywcmasg7ffcs2vxig48q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -230625,6 +231685,8 @@ self: {
        ];
        description = "Folder watching as a Streamly stream";
        license = stdenv.lib.licenses.gpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "streamproc" = callPackage
@@ -231616,6 +232678,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "structured-cli_2_6_0_0" = callPackage
+    ({ mkDerivation, base, data-default, exceptions, haskeline, mtl
+     , split, transformers
+     }:
+     mkDerivation {
+       pname = "structured-cli";
+       version = "2.6.0.0";
+       sha256 = "1g0yq5kxidmh4x0izvspafhhir64krw986s0a5rkbvkjk7ahvm7y";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base data-default exceptions haskeline mtl split transformers
+       ];
+       executableHaskellDepends = [ base data-default mtl split ];
+       description = "Application library for building interactive console CLIs";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "structured-haskell-mode" = callPackage
     ({ mkDerivation, base, descriptive, ghc-prim, haskell-src-exts
      , text
@@ -231841,8 +232922,8 @@ self: {
      }:
      mkDerivation {
        pname = "stylist";
-       version = "1.1.0.0";
-       sha256 = "1sgfyslbsppndgbywlqynzfxd63y6vr9mig6d76czh427qvn7qpp";
+       version = "1.1.1.0";
+       sha256 = "0adcw26540a8srlmypjdv41icw5d3j3i2q6i7j92hhssj642bfw4";
        libraryHaskellDepends = [
          base css-syntax hashable network-uri text unordered-containers
        ];
@@ -235101,6 +236182,8 @@ self: {
        executablePkgconfigDepends = [ gtk3 ];
        description = "A desktop bar similar to xmobar, but with more GUI";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3;};
 
   "tag-bits" = callPackage
@@ -235758,8 +236841,8 @@ self: {
     ({ mkDerivation, base, containers, mtl, safe, text }:
      mkDerivation {
        pname = "tamper";
-       version = "0.4.2.2";
-       sha256 = "0jzx76k1bd47ag3y73xmhi7yw7abr5hk9gy95gv3y7knb6mj9cdl";
+       version = "0.4.2.3";
+       sha256 = "0im6m05lj6nfap6qqff9qmb8vvv4i3g17pcqdg6rqb2xx86dfnjj";
        libraryHaskellDepends = [ base containers mtl safe text ];
        description = "Blaze-style HTML templates as a Monad Transformer";
        license = stdenv.lib.licenses.bsd3;
@@ -236020,8 +237103,8 @@ self: {
      }:
      mkDerivation {
        pname = "taskell";
-       version = "1.9.0.0";
-       sha256 = "14fvvk0a0i0giq5ab8nhkimxhnfhwbqadgjh6p6xvrnm8qikkqg1";
+       version = "1.9.1.0";
+       sha256 = "07hkkx71xb6k89ylis58lcv69ab1avggb4347ppzv2wxp6qljn5l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -236252,8 +237335,8 @@ self: {
        pname = "tasty-hedgehog";
        version = "1.0.0.1";
        sha256 = "1mbg5q0c0xfrk4npfj60pi693igb7r5l78x6xf9fk2jglw0nmxhz";
-       revision = "1";
-       editedCabalFile = "1n6797fm8swyrk8cw7zxz593gq82wx8dayvm204rmgcz75bslcpn";
+       revision = "2";
+       editedCabalFile = "0zrp7njdx69pvhf1lg4fv3p962qfsm2z3qk09h0jhxmfj5ishnhs";
        libraryHaskellDepends = [ base hedgehog tagged tasty ];
        testHaskellDepends = [
          base hedgehog tasty tasty-expected-failure
@@ -236262,6 +237345,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "tasty-hedgehog_1_0_0_2" = callPackage
+    ({ mkDerivation, base, hedgehog, tagged, tasty
+     , tasty-expected-failure
+     }:
+     mkDerivation {
+       pname = "tasty-hedgehog";
+       version = "1.0.0.2";
+       sha256 = "1vsv3m6brhshpqm8qixz97m7h0nx67cj6ira4cngbk7mf5rqylv5";
+       libraryHaskellDepends = [ base hedgehog tagged tasty ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-expected-failure
+       ];
+       description = "Integration for tasty and hedgehog";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tasty-hedgehog-coverage" = callPackage
     ({ mkDerivation, base, containers, hedgehog, mtl, tagged, tasty
      , tasty-expected-failure, tasty-hedgehog, text, transformers
@@ -240990,6 +242090,26 @@ self: {
        license = "GPL";
      }) {};
 
+  "threaded" = callPackage
+    ({ mkDerivation, async, base, chan, extractable-singleton, hashable
+     , monad-control-aligned, mtl, stm, tmapmvar
+     }:
+     mkDerivation {
+       pname = "threaded";
+       version = "0.0.0";
+       sha256 = "1f7zvigy2gwj0dsxfs4m07ng4k4l29i6mccjnvqz0b45gsm1b4fj";
+       libraryHaskellDepends = [
+         async base chan extractable-singleton hashable
+         monad-control-aligned mtl stm tmapmvar
+       ];
+       testHaskellDepends = [
+         async base chan extractable-singleton hashable
+         monad-control-aligned mtl stm tmapmvar
+       ];
+       description = "Manage concurrently operating threads without having to spark them";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "threadmanager" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -241472,6 +242592,8 @@ self: {
        testHaskellDepends = [ async base deepseq doctest Glob hspec ];
        description = "A concurrent utility inspired by Ticker in golang";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tickle" = callPackage
@@ -243464,6 +244586,8 @@ self: {
          text unordered-containers
        ];
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tokenify" = callPackage
@@ -245404,8 +246528,8 @@ self: {
      }:
      mkDerivation {
        pname = "tree-sitter";
-       version = "0.7.2.0";
-       sha256 = "1gq30qjywg6cgbzgxxfngkn5c4kbddnij7wdvz8x7k1yb13ra0hd";
+       version = "0.8.0.0";
+       sha256 = "14hb5ss2iwkbipyl7yvchhajs6wli2pfw85zs5qb1yzaxxx78qml";
        libraryHaskellDepends = [
          aeson base bytestring containers directory filepath fused-effects
          semantic-source split template-haskell text unordered-containers
@@ -245424,8 +246548,8 @@ self: {
      }:
      mkDerivation {
        pname = "tree-sitter-go";
-       version = "0.4.0.0";
-       sha256 = "0i469134jc1i665nr5j3z3al8lgsv74mm5x7rk4gm159kpfm1z1r";
+       version = "0.4.1.0";
+       sha256 = "1a41r2fdmwc7yyqnhfc3y38krklm9s9sn5mbc4lpf2595pqv0ggg";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base semantic-source template-haskell tree-sitter
@@ -245464,8 +246588,8 @@ self: {
      }:
      mkDerivation {
        pname = "tree-sitter-java";
-       version = "0.6.0.0";
-       sha256 = "1jz740pj2ihmkf06ixii93msfn40lh5mky3qc5bvwk5xqf4ai716";
+       version = "0.6.1.0";
+       sha256 = "07zyj3diaq2nrlvxbhbrad1wha2705v5d9kf51vmhxknybdxp5sf";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base semantic-source template-haskell tree-sitter
@@ -245482,19 +246606,26 @@ self: {
      }) {tree-sitter-test-helpers = null;};
 
   "tree-sitter-json" = callPackage
-    ({ mkDerivation, base, template-haskell, text, tree-sitter }:
+    ({ mkDerivation, base, bytestring, hedgehog, pathtype, tasty
+     , tasty-hedgehog, tasty-hunit, template-haskell, text, tree-sitter
+     , tree-sitter-test-helpers
+     }:
      mkDerivation {
        pname = "tree-sitter-json";
-       version = "0.5.0.0";
-       sha256 = "1mq1v81d00l80pg6mji9w1g464hxvgv28djnxany5vy2g38ns7q9";
+       version = "0.6.0.0";
+       sha256 = "0n7rq5a8kjrgr7d7fbhjxybrbgwxr2c8d2wyr80yp27vilvf4lh6";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base template-haskell text tree-sitter ];
+       testHaskellDepends = [
+         base bytestring hedgehog pathtype tasty tasty-hedgehog tasty-hunit
+         text tree-sitter tree-sitter-test-helpers
+       ];
        doHaddock = false;
        description = "Tree-sitter grammar/parser for JSON";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {};
+     }) {tree-sitter-test-helpers = null;};
 
   "tree-sitter-php" = callPackage
     ({ mkDerivation, base, template-haskell, tree-sitter }:
@@ -245513,20 +246644,21 @@ self: {
      }) {};
 
   "tree-sitter-python" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, directory, filepath
-     , hedgehog, pathtype, semantic-source, tasty, tasty-hedgehog
-     , tasty-hunit, template-haskell, text, tree-sitter
-     , tree-sitter-test-helpers
+    ({ mkDerivation, base, bytestring, gauge, hedgehog, pathtype
+     , semantic-source, tasty, tasty-hedgehog, tasty-hunit
+     , template-haskell, text, tree-sitter, tree-sitter-test-helpers
      }:
      mkDerivation {
        pname = "tree-sitter-python";
-       version = "0.8.0.0";
-       sha256 = "08a698qqjck0nml11nrgyzvgrjbkanyvfv0x0bqng0w3mjk62yf0";
+       version = "0.8.1.0";
+       sha256 = "0sjrml57dc9fsjmh555hjsckb05x9pz3lzk970hmm2cfwgnifvyi";
+       isLibrary = true;
+       isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base directory filepath semantic-source template-haskell
-         tree-sitter
+         base semantic-source template-haskell tree-sitter
        ];
+       executableHaskellDepends = [ base bytestring gauge tree-sitter ];
        testHaskellDepends = [
          base bytestring hedgehog pathtype tasty tasty-hedgehog tasty-hunit
          text tree-sitter tree-sitter-test-helpers
@@ -245539,18 +246671,23 @@ self: {
      }) {tree-sitter-test-helpers = null;};
 
   "tree-sitter-ruby" = callPackage
-    ({ mkDerivation, base, bytestring, hedgehog, pathtype
-     , semantic-source, tasty, tasty-hedgehog, tasty-hunit
+    ({ mkDerivation, base, bytestring, gauge, Glob, hedgehog, lens
+     , pathtype, semantic-source, tasty, tasty-hedgehog, tasty-hunit
      , template-haskell, text, tree-sitter, tree-sitter-test-helpers
      }:
      mkDerivation {
        pname = "tree-sitter-ruby";
-       version = "0.4.0.0";
-       sha256 = "1y26956bryax1n17yf49hqczcig1qd5fk5j39arj93464x142ba9";
+       version = "0.4.1.0";
+       sha256 = "1kb87c1z9jghidygk632lihlqkqbanx48dvpdqxn7ypnni4dzw0k";
+       isLibrary = true;
+       isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base semantic-source template-haskell tree-sitter
        ];
+       executableHaskellDepends = [
+         base bytestring gauge Glob lens pathtype tree-sitter
+       ];
        testHaskellDepends = [
          base bytestring hedgehog pathtype tasty tasty-hedgehog tasty-hunit
          text tree-sitter tree-sitter-test-helpers
@@ -245569,8 +246706,8 @@ self: {
      }:
      mkDerivation {
        pname = "tree-sitter-tsx";
-       version = "0.4.0.0";
-       sha256 = "0q5v1fm9ia83074gkamz06hlcmdkd4vabjfrjqcra7mrvrj1pqa2";
+       version = "0.4.1.0";
+       sha256 = "0bznbbg8yj1qd5z4bqjxf8y4jjbb8w2d68xzmbp66rjbw7nzcs60";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base semantic-source template-haskell tree-sitter
@@ -245593,8 +246730,8 @@ self: {
      }:
      mkDerivation {
        pname = "tree-sitter-typescript";
-       version = "0.4.0.0";
-       sha256 = "0sbvsfipwf2j809kkjcgbqq4k44h69x9dl07dvngjyfimkccv758";
+       version = "0.4.1.0";
+       sha256 = "0p53vi3mjmln5mrmsv6w43jbdlcjywq61qm4911w3qqwmwjbgn14";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base semantic-source template-haskell tree-sitter
@@ -246024,6 +247161,32 @@ self: {
        broken = true;
      }) {};
 
+  "tropical-geometry" = callPackage
+    ({ mkDerivation, algebra, base, containers, criterion, gloss
+     , hlint-test, lens, matrix, numeric-prelude, semiring-simple
+     , singletons, sized, tasty, tasty-hspec, tasty-hunit, type-natural
+     }:
+     mkDerivation {
+       pname = "tropical-geometry";
+       version = "0.0.0.1";
+       sha256 = "12qcfb98yzm0ijnpzjqp3z20i0vvlpvfy4gpz7a001q8sgchd182";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         algebra base containers gloss lens matrix numeric-prelude
+         semiring-simple singletons sized type-natural
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base containers hlint-test tasty tasty-hspec tasty-hunit
+       ];
+       benchmarkHaskellDepends = [ base criterion ];
+       description = "A Tropical Geometry package for Haskell";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "true-name" = callPackage
     ({ mkDerivation, base, containers, template-haskell, time }:
      mkDerivation {
@@ -249133,8 +250296,8 @@ self: {
     ({ mkDerivation, base, bytestring, posix-paths, systemd, unix }:
      mkDerivation {
        pname = "udev";
-       version = "0.1.0.0";
-       sha256 = "1a5i57f50scxbv5snn4xd953bx98qq3cgzhxjnqvxyazqz3h1fx2";
+       version = "0.1.1.0";
+       sha256 = "1sb0bdi221gr58cv2b24izs02wd28fr4jijsbpw8r5gzia2j4wf0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring posix-paths unix ];
@@ -253760,6 +254923,8 @@ self: {
        libraryHaskellDepends = [ base fin lens vec ];
        description = "Vec: length-indexed (sized) list: lens support";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "vec-optics" = callPackage
@@ -253771,6 +254936,8 @@ self: {
        libraryHaskellDepends = [ base fin optics-core vec ];
        description = "Vec: length-indexed (sized) list: optics support";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "vect" = callPackage
@@ -255902,6 +257069,40 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "wai-app-static_3_1_7_1" = callPackage
+    ({ mkDerivation, base, blaze-html, blaze-markup, bytestring
+     , containers, cryptonite, directory, file-embed, filepath, hspec
+     , http-date, http-types, memory, mime-types, mockery, network
+     , old-locale, optparse-applicative, template-haskell, temporary
+     , text, time, transformers, unix-compat, unordered-containers, wai
+     , wai-extra, warp, zlib
+     }:
+     mkDerivation {
+       pname = "wai-app-static";
+       version = "3.1.7.1";
+       sha256 = "10k6jb450p89r6dgpnwh428gg0wfw2qbx9n126jkvbchcjr1f4v8";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base blaze-html blaze-markup bytestring containers cryptonite
+         directory file-embed filepath http-date http-types memory
+         mime-types old-locale optparse-applicative template-haskell text
+         time transformers unix-compat unordered-containers wai wai-extra
+         warp zlib
+       ];
+       executableHaskellDepends = [
+         base bytestring containers directory mime-types text
+       ];
+       testHaskellDepends = [
+         base bytestring filepath hspec http-date http-types mime-types
+         mockery network old-locale temporary text time transformers
+         unix-compat wai wai-extra zlib
+       ];
+       description = "WAI application for static serving";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "wai-cli" = callPackage
     ({ mkDerivation, ansi-terminal, base, http-types, iproute
      , monads-tf, network, options, socket-activation, stm
@@ -256220,6 +257421,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "wai-handler-launch_3_0_3" = callPackage
+    ({ mkDerivation, async, base, bytestring, http-types, process
+     , streaming-commons, transformers, wai, warp
+     }:
+     mkDerivation {
+       pname = "wai-handler-launch";
+       version = "3.0.3";
+       sha256 = "1416vx2gnllyrz8vrzq1x6in9ypa1wgxwqyh5zqbb9rfwbb83ha5";
+       libraryHaskellDepends = [
+         async base bytestring http-types process streaming-commons
+         transformers wai warp
+       ];
+       description = "Launch a web app in the default browser";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "wai-handler-scgi" = callPackage
     ({ mkDerivation, base, bytestring, wai, wai-extra }:
      mkDerivation {
@@ -257790,7 +259008,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "warp_3_3_6" = callPackage
+  "warp_3_3_7" = callPackage
     ({ mkDerivation, array, async, auto-update, base, bsb-http-chunked
      , bytestring, case-insensitive, containers, directory, gauge
      , ghc-prim, hashable, hspec, http-client, http-date, http-types
@@ -257800,8 +259018,8 @@ self: {
      }:
      mkDerivation {
        pname = "warp";
-       version = "3.3.6";
-       sha256 = "0ldby1rinf6awqhgda72hyvff5pid4lgb9d0kgdxdm5v4qrcvcpd";
+       version = "3.3.7";
+       sha256 = "1145nbrd6gzr0qhd7vgf5vdhs22xd9z1h9cr2jbs77r6kqypzy3v";
        libraryHaskellDepends = [
          array async auto-update base bsb-http-chunked bytestring
          case-insensitive containers ghc-prim hashable http-date http-types
@@ -257891,6 +259109,8 @@ self: {
        libraryHaskellDepends = [ base network systemd unix wai warp ];
        description = "Socket activation and other systemd integration for the Warp web server (WAI)";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "warp-tls" = callPackage
@@ -262802,8 +264022,8 @@ self: {
      }:
      mkDerivation {
        pname = "xml-conduit-stylist";
-       version = "1.0.0.0";
-       sha256 = "1w9ig4mr0l0kj8mk7sfsyv8p77k91l93cfpbpvmg32q9wffz2r02";
+       version = "1.0.1.0";
+       sha256 = "1csa940r6a63i01khcm89lvhp7m6dyxpnljn6l6m105z7jfvvy8r";
        libraryHaskellDepends = [
          base containers css-syntax network-uri stylist text
          unordered-containers xml-conduit
@@ -264005,6 +265225,53 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "xrefcheck" = callPackage
+    ({ mkDerivation, aeson, aeson-options, async, autoexporter
+     , base-noprelude, bytestring, cmark-gfm, containers, data-default
+     , deepseq, directory, directory-tree, filepath, fmt, Glob, hspec
+     , hspec-discover, http-client, http-types, lens, loot-prelude, mtl
+     , o-clock, optparse-applicative, pretty-terminal, QuickCheck, req
+     , roman-numerals, template-haskell, text, text-metrics
+     , th-lift-instances, th-utilities, yaml
+     }:
+     mkDerivation {
+       pname = "xrefcheck";
+       version = "0.1.0.0";
+       sha256 = "1ap5pdgbvf9zjwbwi3i46jdizm1ggzpknpmmic22kbw8rdv2i9yr";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-options async base-noprelude bytestring cmark-gfm
+         containers data-default deepseq directory directory-tree filepath
+         fmt Glob http-client http-types lens loot-prelude mtl o-clock
+         optparse-applicative pretty-terminal req roman-numerals
+         template-haskell text text-metrics th-lift-instances th-utilities
+         yaml
+       ];
+       libraryToolDepends = [ autoexporter ];
+       executableHaskellDepends = [
+         aeson aeson-options async base-noprelude bytestring cmark-gfm
+         containers data-default deepseq directory directory-tree filepath
+         fmt Glob http-client http-types lens loot-prelude mtl o-clock
+         optparse-applicative pretty-terminal req roman-numerals
+         template-haskell text text-metrics th-lift-instances th-utilities
+         yaml
+       ];
+       executableToolDepends = [ autoexporter ];
+       testHaskellDepends = [
+         aeson aeson-options async base-noprelude bytestring cmark-gfm
+         containers data-default deepseq directory directory-tree filepath
+         fmt Glob hspec http-client http-types lens loot-prelude mtl o-clock
+         optparse-applicative pretty-terminal QuickCheck req roman-numerals
+         template-haskell text text-metrics th-lift-instances th-utilities
+         yaml
+       ];
+       testToolDepends = [ autoexporter hspec-discover ];
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {loot-prelude = null;};
+
   "xsact" = callPackage
     ({ mkDerivation, array, base, containers, directory, process
      , random, unix
@@ -264800,16 +266067,17 @@ self: {
 
   "yaml2owl" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, network
-     , swish, text, xml, yaml
+     , network-uri, swish, text, xml, yaml
      }:
      mkDerivation {
        pname = "yaml2owl";
-       version = "0.0.1";
-       sha256 = "1yz7cq6xbxjh3j5hljrzla7dpgsa2ag4ywbvc6ynf7bpikdymq65";
+       version = "0.0.2";
+       sha256 = "1d3vnpmqzsia1cwg17vl98n8bx6l3yjl4w4rhxm64xfgizwvjgwc";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base containers directory filepath network swish text xml yaml
+         base containers directory filepath network network-uri swish text
+         xml yaml
        ];
        description = "Generate OWL schema from YAML syntax, and an RDFa template";
        license = "LGPL";
@@ -268575,8 +269843,8 @@ self: {
      }:
      mkDerivation {
        pname = "z3";
-       version = "408.0";
-       sha256 = "13qkzy9wc17rm60i24fa9sx15ywbxq4a80g33w20887gvqyc0q53";
+       version = "408.1";
+       sha256 = "1r54d289rdfvxqk0774hhh0x2kj8zsh7graahqwwp76r911jb8bp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers transformers ];
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix
index e2d01c5798f..9ba25e09db9 100644
--- a/pkgs/development/haskell-modules/make-package-set.nix
+++ b/pkgs/development/haskell-modules/make-package-set.nix
@@ -38,12 +38,12 @@ let
   inherit (stdenv) buildPlatform hostPlatform;
 
   inherit (stdenv.lib) fix' extends makeOverridable;
-  inherit (haskellLib) overrideCabal getBuildInputs;
+  inherit (haskellLib) overrideCabal;
 
   mkDerivationImpl = pkgs.callPackage ./generic-builder.nix {
     inherit stdenv;
     nodejs = buildPackages.nodejs-slim;
-    inherit (self) buildHaskellPackages ghc shellFor;
+    inherit (self) buildHaskellPackages ghc ghcWithHoogle ghcWithPackages;
     inherit (self.buildHaskellPackages) jailbreak-cabal;
     hscolour = overrideCabal self.buildHaskellPackages.hscolour (drv: {
       isLibrary = false;
@@ -258,6 +258,8 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
     # packages themselves. Using nix-shell on this derivation will
     # give you an environment suitable for developing the listed
     # packages with an incremental tool like cabal-install.
+    # In addition to the "packages" arg and "withHoogle" arg, anything that
+    # can be passed into stdenv.mkDerivation can be included in the input attrset
     #
     #     # default.nix
     #     with import <nixpkgs> {};
@@ -268,9 +270,11 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
     #     })
     #
     #     # shell.nix
+    #     let pkgs = import <nixpkgs> {} in
     #     (import ./.).shellFor {
     #       packages = p: [p.frontend p.backend p.common];
     #       withHoogle = true;
+    #       buildInputs = [ pkgs.python ];
     #     }
     #
     #     -- cabal.project
@@ -280,49 +284,41 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
     #       common/
     #
     #     bash$ nix-shell --run "cabal new-build all"
+    #     bash$ nix-shell --run "python"
     shellFor = { packages, withHoogle ? false, ... } @ args:
       let
-        selected = packages self;
-
-        packageInputs = map getBuildInputs selected;
-
-        name = if pkgs.lib.length selected == 1
-          then "ghc-shell-for-${(pkgs.lib.head selected).name}"
-          else "ghc-shell-for-packages";
-
-        # If `packages = [ a b ]` and `a` depends on `b`, don't build `b`,
-        # because cabal will end up ignoring that built version, assuming
-        # new-style commands.
-        haskellInputs = pkgs.lib.filter
-          (input: pkgs.lib.all (p: input.outPath != p.outPath) selected)
-          (pkgs.lib.concatMap (p: p.haskellBuildInputs) packageInputs);
-        systemInputs = pkgs.lib.concatMap (p: p.systemBuildInputs) packageInputs;
-
-        withPackages = if withHoogle then self.ghcWithHoogle else self.ghcWithPackages;
-        ghcEnv = withPackages (p: haskellInputs);
-        nativeBuildInputs = pkgs.lib.concatMap (p: p.nativeBuildInputs) selected;
-
-        ghcCommand' = if ghc.isGhcjs or false then "ghcjs" else "ghc";
-        ghcCommand = "${ghc.targetPrefix}${ghcCommand'}";
-        ghcCommandCaps= pkgs.lib.toUpper ghcCommand';
-
-        mkDrvArgs = builtins.removeAttrs args ["packages" "withHoogle"];
-      in pkgs.stdenv.mkDerivation (mkDrvArgs // {
-        name = mkDrvArgs.name or name;
-
-        buildInputs = systemInputs ++ mkDrvArgs.buildInputs or [];
-        nativeBuildInputs = [ ghcEnv ] ++ nativeBuildInputs ++ mkDrvArgs.nativeBuildInputs or [];
-        phases = ["installPhase"];
-        installPhase = "echo $nativeBuildInputs $buildInputs > $out";
-        LANG = "en_US.UTF-8";
-        LOCALE_ARCHIVE = pkgs.lib.optionalString (stdenv.hostPlatform.libc == "glibc") "${buildPackages.glibcLocales}/lib/locale/locale-archive";
-        "NIX_${ghcCommandCaps}" = "${ghcEnv}/bin/${ghcCommand}";
-        "NIX_${ghcCommandCaps}PKG" = "${ghcEnv}/bin/${ghcCommand}-pkg";
-        # TODO: is this still valid?
-        "NIX_${ghcCommandCaps}_DOCDIR" = "${ghcEnv}/share/doc/ghc/html";
-        "NIX_${ghcCommandCaps}_LIBDIR" = if ghc.isHaLVM or false
-          then "${ghcEnv}/lib/HaLVM-${ghc.version}"
-          else "${ghcEnv}/lib/${ghcCommand}-${ghc.version}";
+        combinedPackageFor = packages:
+          let
+            selected = packages self;
+
+            pname = if pkgs.lib.length selected == 1
+              then (pkgs.lib.head selected).name
+              else "packages";
+
+            # If `packages = [ a b ]` and `a` depends on `b`, don't build `b`,
+            # because cabal will end up ignoring that built version, assuming
+            # new-style commands.
+            combinedPackages = pkgs.lib.filter
+              (input: pkgs.lib.all (p: input.outPath or null != p.outPath) selected);
+
+            # Returns an attrset containing a combined list packages' inputs for each
+            # stage of the build process
+            packageInputs = pkgs.lib.zipAttrsWith
+              (_: pkgs.lib.concatMap combinedPackages)
+              (map (p: p.getCabalDeps) selected);
+
+            genericBuilderArgs = {
+              inherit pname;
+              version = "0";
+              license = null;
+            } // packageInputs;
+
+          in self.mkDerivation genericBuilderArgs;
+
+        envFuncArgs = builtins.removeAttrs args [ "packages" ];
+      in (combinedPackageFor packages).env.overrideAttrs (old: envFuncArgs // {
+        nativeBuildInputs = old.nativeBuildInputs ++ envFuncArgs.nativeBuildInputs or [];
+        buildInputs = old.buildInputs ++ envFuncArgs.buildInputs or [];
       });
 
     ghc = ghc // {
diff --git a/pkgs/development/interpreters/quickjs/default.nix b/pkgs/development/interpreters/quickjs/default.nix
index e7f01856ef5..b1d03252d7e 100644
--- a/pkgs/development/interpreters/quickjs/default.nix
+++ b/pkgs/development/interpreters/quickjs/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "A small and embeddable Javascript engine";
     homepage = "https://bellard.org/quickjs/";
-    maintainers = with maintainers; [ stesie ivan ];
+    maintainers = with maintainers; [ stesie ];
     platforms = platforms.linux;
     license = licenses.mit;
   };
diff --git a/pkgs/development/interpreters/wasmer/default.nix b/pkgs/development/interpreters/wasmer/default.nix
new file mode 100644
index 00000000000..7c270e5fb44
--- /dev/null
+++ b/pkgs/development/interpreters/wasmer/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, cmake
+, llvmPackages
+, pkg-config
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wasmer";
+  version = "0.13.0";
+
+  src = fetchFromGitHub {
+    owner = "wasmerio";
+    repo = pname;
+    rev = version;
+    sha256 = "1k9zd2vhrbvxlpkh21m39alk5lfhd3xa25k0awis27plfpv8fqcq";
+    fetchSubmodules = true;
+  };
+
+  cargoSha256 = "1yp7kandh5hh8hkzlmqpj05vwgr5v4nil8blf3scbppg865qk3rq";
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+  meta = with lib; {
+    description = "The Universal WebAssembly Runtime";
+    longDescription = ''
+      Wasmer is a standalone WebAssembly runtime for running WebAssembly outside
+      of the browser, supporting WASI and Emscripten. Wasmer can be used
+      standalone (via the CLI) and embedded in different languages, running in
+      x86 and ARM devices.
+    '';
+    homepage = "https://wasmer.io/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ filalex77 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix
index b9207e51706..ca332026982 100644
--- a/pkgs/development/libraries/assimp/default.nix
+++ b/pkgs/development/libraries/assimp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "assimp";
-  version = "5.0.0";
+  version = "5.0.1";
 
   src = fetchFromGitHub{
     owner = "assimp";
     repo = "assimp";
     rev = "v${version}";
-    sha256 = "17y5q5hbygmb0cgf96gd3v8sal5g69cp8hmh1cs3yz7v00kjysmz";
+    sha256 = "00vxzfcrs856qnyk806wqr67nmpjk06mjby0fqmyhm6i1jj2hg1w";
   };
 
   buildInputs = [ cmake boost zlib ];
diff --git a/pkgs/development/libraries/audio/libmysofa/default.nix b/pkgs/development/libraries/audio/libmysofa/default.nix
index c541159a96e..94c454859ae 100644
--- a/pkgs/development/libraries/audio/libmysofa/default.nix
+++ b/pkgs/development/libraries/audio/libmysofa/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libmysofa";
-  version = "0.9";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "hoene";
     repo = "libmysofa";
     rev = "v${version}";
-    sha256 = "14k8c31xh0v4r34h89ld440j9zri4plblmlhj5ddhdmzqmh4lr9f";
+    sha256 = "10pz9n99cl2j72m7bdj8xka5akyk0sjbysr7rlfdq0qfkiq5922v";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/audio/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix
index 8d429987ad8..44be67d71b4 100644
--- a/pkgs/development/libraries/audio/lilv/default.nix
+++ b/pkgs/development/libraries/audio/lilv/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lilv";
-  version = "0.24.4";
+  version = "0.24.6";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "0f24cd7wkk5l969857g2ydz2kjjrkvvddg1g87xzzs78lsvq8fy3";
+    sha256 = "1p3hafsxgs5d4za7n66lf5nz74qssfqpmk520cm7iq2njvvlqm2z";
   };
 
   nativeBuildInputs = [ pkgconfig python3 wafHook ];
diff --git a/pkgs/development/libraries/audio/lv2/unstable.nix b/pkgs/development/libraries/audio/lv2/unstable.nix
deleted file mode 100644
index 6f10283b07b..00000000000
--- a/pkgs/development/libraries/audio/lv2/unstable.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchgit, gtk2, libsndfile, pkgconfig, python, wafHook }:
-
-stdenv.mkDerivation {
-  pname = "lv2-unstable";
-  version = "2017-07-08";
-
-  src = fetchgit {
-    url = "http://lv2plug.in/git/cgit.cgi/lv2.git";
-    rev = "39c7c726cd52b2863fcea356cafe1bcab2ba7f37";
-    sha256 = "1gp2rd99dfmpibvpixrqn115mrhybzf3if3h8bssf6siyi13f29r";
-  };
-
-  nativeBuildInputs = [ pkgconfig wafHook ];
-  buildInputs = [ gtk2 libsndfile python ];
-
-  meta = with stdenv.lib; {
-    homepage = http://lv2plug.in;
-    description = "A plugin standard for audio systems";
-    license = licenses.mit;
-    maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/audio/raul/default.nix b/pkgs/development/libraries/audio/raul/default.nix
index 51234a415fd..de78385e0ab 100644
--- a/pkgs/development/libraries/audio/raul/default.nix
+++ b/pkgs/development/libraries/audio/raul/default.nix
@@ -1,13 +1,15 @@
 { stdenv, fetchgit, boost, gtk2, pkgconfig, python, wafHook }:
 
 stdenv.mkDerivation rec {
-  name = "raul-unstable-${rev}";
-  rev = "2017-07-23";
+  pname = "raul";
+  version = "unstable-2019-12-09";
+  name = "${pname}-${version}";
 
   src = fetchgit {
-    url = "http://git.drobilla.net/cgit.cgi/raul.git";
-    rev = "4db870b2b20b0a608ec0283139056b836c5b1624";
-    sha256 = "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr";
+    url = "https://gitlab.com/drobilla/raul.git";
+    fetchSubmodules = true;
+    rev = "e87bb398f025912fb989a09f1450b838b251aea1";
+    sha256 = "1z37jb6ghc13b8nv8a8hcg669gl8vh4ni9djvfgga9vcz8rmcg8l";
   };
 
   nativeBuildInputs = [ pkgconfig wafHook ];
diff --git a/pkgs/development/libraries/audio/suil/default.nix b/pkgs/development/libraries/audio/suil/default.nix
index 10d650d6642..8bd460ce545 100644
--- a/pkgs/development/libraries/audio/suil/default.nix
+++ b/pkgs/development/libraries/audio/suil/default.nix
@@ -9,12 +9,12 @@ assert !(withQt4 && withQt5);
 
 stdenv.mkDerivation rec {
   pname = "suil";
-  version = "0.10.0";
+  version = "0.10.6";
   name = "${pname}-qt${if withQt4 then "4" else "5"}-${version}";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "0j489gm3fhnmwmbgw30bvd4byw1vsy4yazdlnji8jzhcz0qwb5cq";
+    sha256 = "0z4v01pjw4wh65x38w6icn28wdwxz13ayl8hvn4p1g9kmamp1z06";
   };
 
   nativeBuildInputs = [ pkgconfig wafHook ];
diff --git a/pkgs/development/libraries/blitz/blitz-gcc47.patch b/pkgs/development/libraries/blitz/blitz-gcc47.patch
deleted file mode 100644
index d0b35665567..00000000000
--- a/pkgs/development/libraries/blitz/blitz-gcc47.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -ur blitz-0.10/blitz/bzdebug.h blitz-0.10.new/blitz/bzdebug.h
---- blitz-0.10/blitz/bzdebug.h	2012-05-11 22:11:13.000000000 +0200
-+++ blitz-0.10.new/blitz/bzdebug.h	2012-06-28 15:42:38.060656045 +0200
-@@ -117,15 +117,15 @@
-     }
-   }
- 
--    #define BZASSERT(X)        checkAssert(X, __FILE__, __LINE__)
--    #define BZPRECONDITION(X)  checkAssert(X, __FILE__, __LINE__)
--    #define BZPOSTCONDITION(X) checkAssert(X, __FILE__, __LINE__)
--    #define BZSTATECHECK(X,Y)  checkAssert(X == Y, __FILE__, __LINE__)
-+    #define BZASSERT(X)        blitz::checkAssert(X, __FILE__, __LINE__)
-+    #define BZPRECONDITION(X)  blitz::checkAssert(X, __FILE__, __LINE__)
-+    #define BZPOSTCONDITION(X) blitz::checkAssert(X, __FILE__, __LINE__)
-+    #define BZSTATECHECK(X,Y)  blitz::checkAssert(X == Y, __FILE__, __LINE__)
-     #define BZPRECHECK(X,Y)                                    \
-         {                                                      \
-             if ((assertFailMode == false) && (!(X)))           \
-                 BZ_STD_SCOPE(cerr) << Y << BZ_STD_SCOPE(endl); \
--            checkAssert(X, __FILE__, __LINE__);                \
-+            blitz::checkAssert(X, __FILE__, __LINE__);                \
-         }
- 
-     #define BZ_DEBUG_MESSAGE(X)                                          \
-@@ -138,7 +138,7 @@
-         }
- 
-     #define BZ_DEBUG_PARAM(X) X
--    #define BZ_PRE_FAIL        checkAssert(0)
-+    #define BZ_PRE_FAIL        blitz::checkAssert(0)
-     #define BZ_ASM_DEBUG_MARKER
- 
- #elif defined(BZ_DEBUG)
diff --git a/pkgs/development/libraries/blitz/blitz-testsuite-stencil-et.patch b/pkgs/development/libraries/blitz/blitz-testsuite-stencil-et.patch
deleted file mode 100644
index fcff8685a08..00000000000
--- a/pkgs/development/libraries/blitz/blitz-testsuite-stencil-et.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/testsuite/stencil-et.cpp b/testsuite/stencil-et.cpp
-index b23e979..fe6b5ed 100644
---- a/testsuite/stencil-et.cpp
-+++ b/testsuite/stencil-et.cpp
-@@ -44,7 +44,7 @@ void test_expr(const T1& d1, const T2& d2)
-   BZTEST(all(d1==d2));
- }
- */
--#define test_expr(d1,d2) BZTEST(all((d1)==(d2)));
-+#define test_expr(d1,d2) BZTEST(all((d1)-(d2)<=1e-7));
- 
- // Test two vector expressions for equality
- template<typename T1, typename T2>
diff --git a/pkgs/development/libraries/blitz/default.nix b/pkgs/development/libraries/blitz/default.nix
deleted file mode 100644
index f370e45b5fd..00000000000
--- a/pkgs/development/libraries/blitz/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gfortran, texinfo
-
-# Select SIMD alignment width (in bytes) for vectorization.
-, simdWidth ? 1
-
-# Pad arrays to simdWidth by default?
-# Note: Only useful if simdWidth > 1
-, enablePadding ? false
-
-# Activate serialization through Boost.Serialize?
-, enableSerialization ? true, boost ? null
-
-# Activate test-suite?
-# WARNING: Some of the tests require up to 1700MB of memory to compile.
-, doCheck ? true
-
-}:
-
-assert enableSerialization -> boost != null;
-
-let
-  inherit (stdenv.lib) optional optionals;
-in
-
-stdenv.mkDerivation {
-  name = "blitz++-0.10";
-  src = fetchurl {
-    url = mirror://sourceforge/blitz/blitz-0.10.tar.gz;
-    sha256 = "153g9sncir6ip9l7ssl6bhc4qzh0qr3lx2d15qm68hqxj7kg0kl0";
-  };
-
-  patches = [ ./blitz-gcc47.patch ./blitz-testsuite-stencil-et.patch ];
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gfortran texinfo ]
-    ++ optional (boost != null) boost;
-
-  configureFlags =
-    [ "--enable-shared"
-      "--enable-fortran"
-      "--enable-optimize"
-      "--with-pic=yes"
-      "--enable-html-docs"
-      "--disable-doxygen"
-      "--disable-dot"
-      "--disable-latex-docs"
-      "--enable-simd-width=${toString simdWidth}"
-    ]
-    ++ optional enablePadding "--enable-array-length-padding"
-    ++ optional enableSerialization "--enable-serialization"
-    ++ optionals (boost != null) [ "--with-boost=${boost.dev}"
-                                   "--with-boost-libdir=${boost.out}/lib" ]
-    ++ optional stdenv.is64bit "--enable-64bit"
-    ;
-
-  enableParallelBuilding = true;
-
-  buildFlags = [ "lib" "info" "pdf" "html" ];
-  installTargets = [ "install" "install-info" "install-pdf" "install-html" ];
-
-  inherit doCheck;
-  checkTarget = "check-testsuite check-examples";
-
-  meta = {
-    description = "Fast multi-dimensional array library for C++";
-    homepage = https://sourceforge.net/projects/blitz/;
-    license = stdenv.lib.licenses.lgpl3;
-    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
-    maintainers = [ stdenv.lib.maintainers.aherrmann ];
-
-    longDescription = ''
-      Blitz++ is a C++ class library for scientific computing which provides
-      performance on par with Fortran 77/90. It uses template techniques to
-      achieve high performance. Blitz++ provides dense arrays and vectors,
-      random number generators, and small vectors (useful for representing
-      multicomponent or vector fields).
-    '';
-
-    broken = true; # failing test, ancient version, no library user in nixpkgs => if you care to fix it, go ahead
-  };
-}
diff --git a/pkgs/development/libraries/cpp-utilities/default.nix b/pkgs/development/libraries/cpp-utilities/default.nix
index 82e09c33a55..e4335061294 100644
--- a/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/pkgs/development/libraries/cpp-utilities/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpp-utilities";
-  version = "5.0.1";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11wm7z4ldsja2x2m2dkj3xhiammkwfqgbgkwq9gssnv14803fhnv";
+    sha256 = "0g7mn84xx7yfbvpj9wm5sn08w8bzlfizh4yd1m75fnh8hg829jnl";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/dyncall/default.nix b/pkgs/development/libraries/dyncall/default.nix
index cfc95de1555..83c754e2928 100644
--- a/pkgs/development/libraries/dyncall/default.nix
+++ b/pkgs/development/libraries/dyncall/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "dyncall";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchurl {
-    url = http://www.dyncall.org/r1.0/dyncall-1.0.tar.gz;
-    # http://www.dyncall.org/r1.0/SHA256
-    sha256 = "d1b6d9753d67dcd4d9ea0708ed4a3018fb5bfc1eca5f37537fba2bc4f90748f2";
+    url = https://www.dyncall.org/r1.1/dyncall-1.1.tar.gz;
+    # https://www.dyncall.org/r1.1/SHA256
+    sha256 = "cf97fa3f142db832ff34235caa4d69a7d5f16716573d446b2d95069126e88795";
   };
 
   # XXX: broken tests, failures masked, lets avoid crashing a bunch for now :)
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "Highly dynamic multi-platform foreign function call interface library";
-    homepage = http://www.dyncall.org;
+    homepage = https://www.dyncall.org;
     license = licenses.isc;
     maintainers = with maintainers; [ dtzWill ];
   };
diff --git a/pkgs/development/libraries/faudio/default.nix b/pkgs/development/libraries/faudio/default.nix
index 1658d69d7a1..2be8caaa1b1 100644
--- a/pkgs/development/libraries/faudio/default.nix
+++ b/pkgs/development/libraries/faudio/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
 	pname = "faudio";
-  version = "19.12";
+  version = "20.01";
 
   src = fetchFromGitHub {
     owner = "FNA-XNA";
     repo = "FAudio";
     rev = version;
-    sha256 = "0y8dc7lnhh69wcwqma9spyxcahfhbfyg92h35sqkin6qfh5mngxr";
+    sha256 = "0gqwma3r216xgymjnagm6ndxfvdigzl46nlny4z085sgvydx3n8m";
   };
 
 	nativeBuildInputs = [cmake];
diff --git a/pkgs/development/libraries/fplll/default.nix b/pkgs/development/libraries/fplll/default.nix
index f53d55c2ca9..107635267c6 100644
--- a/pkgs/development/libraries/fplll/default.nix
+++ b/pkgs/development/libraries/fplll/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fplll";
-  version = "5.3.1";
+  version = "5.3.2";
 
   src = fetchFromGitHub {
     owner = "fplll";
     repo = "fplll";
     rev = version;
-    sha256 = "1bzlqavbch5smra75znh4ljr490wyx5v6hax8r9rjbgk605i33ns";
+    sha256 = "00iyz218ywspizjiimrjdcqvdqmrsb2367zyy3vkmypnf9i9l680";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/ganv/default.nix b/pkgs/development/libraries/ganv/default.nix
index 58356f0bc67..a883b2c1d10 100644
--- a/pkgs/development/libraries/ganv/default.nix
+++ b/pkgs/development/libraries/ganv/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkgconfig, python, wafHook }:
 
 stdenv.mkDerivation rec {
-  name = "ganv-unstable-${rev}";
-  rev = "2016-10-15";
+  pname = "ganv";
+  version = "unstable-2019-12-30";
 
   src = fetchgit {
-    url = "http://git.drobilla.net/cgit.cgi/ganv.git";
-    rev = "31685d283e9b811b61014f820c42807f4effa071";
-    sha256 = "0xmbykdl42jn9cgzrqrys5lng67d26nk5xq10wkkvjqldiwdck56";
+    url = "https://gitlab.com/drobilla/${pname}.git";
+    fetchSubmodules = true;
+    rev = "90bd022f8909f92cc5290fdcfc76c626749e1186";
+    sha256 = "01znnalirbqxpz62fbw2c14c8xn117jc92xv6dhb3hln92k9x37f";
   };
 
   nativeBuildInputs = [ pkgconfig wafHook ];
@@ -20,4 +21,4 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
   };
-}
+  }
diff --git a/pkgs/development/libraries/gcab/default.nix b/pkgs/development/libraries/gcab/default.nix
index c05bb95913e..9946ebc05a5 100644
--- a/pkgs/development/libraries/gcab/default.nix
+++ b/pkgs/development/libraries/gcab/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gcab";
-  version = "1.3";
+  version = "1.4";
 
   outputs = [ "bin" "out" "dev" "devdoc" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1rv81b37d5ya7xpfdxrfk173jjcwabxyng7vafgwyl5myv44qc0h";
+    sha256 = "13q43iqld4l50yra45lhvkd376pn6qpk7rkx374zn8y9wsdzm9b7";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gjs/default.nix b/pkgs/development/libraries/gjs/default.nix
index 7facdc1426f..dc2a7ed4859 100644
--- a/pkgs/development/libraries/gjs/default.nix
+++ b/pkgs/development/libraries/gjs/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gjs";
-  version = "1.58.3";
+  version = "1.58.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya";
+    sha256 = "0pxxgsb9gvymgr7qsglfdbaa7hy29y01prszjr27f7bpdik3y6i6";
   };
 
   outputs = [ "out" "dev" "installedTests" ];
diff --git a/pkgs/development/libraries/grilo/default.nix b/pkgs/development/libraries/grilo/default.nix
index 79ccc931972..734a103e0b7 100644
--- a/pkgs/development/libraries/grilo/default.nix
+++ b/pkgs/development/libraries/grilo/default.nix
@@ -4,7 +4,7 @@
 
 let
   pname = "grilo";
-  version = "0.3.10"; # if you change minor, also change ./setup-hook.sh
+  version = "0.3.11"; # if you change minor, also change ./setup-hook.sh
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y";
+    sha256 = "0s7b50nbyvi75x2l507q9pnpp4ynrx9qa0hm2bkw7wd2nl61r48g";
   };
 
   setupHook = ./setup-hook.sh;
diff --git a/pkgs/development/libraries/hpx/default.nix b/pkgs/development/libraries/hpx/default.nix
index 11b6df37fc0..eafd85cc92a 100644
--- a/pkgs/development/libraries/hpx/default.nix
+++ b/pkgs/development/libraries/hpx/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hpx";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "STEllAR-GROUP";
     repo = "hpx";
     rev = version;
-    sha256 = "0yzxb8520qh9rvzsa190yzx21jn3d8rl8ac5v01767ygd0413hfk";
+    sha256 = "1wkipk7240vqpy8and2r8n7wnqyl4dcn41cyla4zcns2jhbr23vb";
   };
 
   buildInputs = [ boost hwloc gperftools ];
diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix
index b7b9b019b63..48735c13ed1 100644
--- a/pkgs/development/libraries/leatherman/default.nix
+++ b/pkgs/development/libraries/leatherman/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "leatherman";
-  version = "1.9.1";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
-    sha256 = "1aij0prpf7rvxx25qjf1krf0szb922hq9m6q58p90f5bjgymfzwh";
+    sha256 = "1kvvqvr0djz4gb770rs5h97zqcymvbzrmsw8kz2icvlmcicm7qd8";
     rev = version;
     repo = "leatherman";
     owner = "puppetlabs";
diff --git a/pkgs/development/libraries/libamqpcpp/default.nix b/pkgs/development/libraries/libamqpcpp/default.nix
index 325a7d71598..315d3f49956 100644
--- a/pkgs/development/libraries/libamqpcpp/default.nix
+++ b/pkgs/development/libraries/libamqpcpp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libamqpcpp";
-  version = "4.1.3";
+  version = "4.1.5";
 
   src = fetchFromGitHub {
     owner = "CopernicaMarketingSoftware";
     repo = "AMQP-CPP";
     rev = "v${version}";
-    sha256 = "0qk431ra7vcklc67fdaddrj5a7j50znjr79zrwvhkcfy82fd56zw";
+    sha256 = "1jyvpa68wymnn8wnh8i59pa9kdbixv86mh8q338agnwkmzvlgm58";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/development/libraries/libevdevplus/default.nix b/pkgs/development/libraries/libevdevplus/default.nix
index f538aab64ad..0f2b3e05266 100644
--- a/pkgs/development/libraries/libevdevplus/default.nix
+++ b/pkgs/development/libraries/libevdevplus/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libevdevplus";
-  version = "2019-10-01";
+  version = "unstable-2019-10-01";
 
   src  = fetchFromGitHub {
     owner  = "YukiWorkshop";
diff --git a/pkgs/development/libraries/libimobiledevice/default.nix b/pkgs/development/libraries/libimobiledevice/default.nix
index 7eccfc37363..ca643efb70c 100644
--- a/pkgs/development/libraries/libimobiledevice/default.nix
+++ b/pkgs/development/libraries/libimobiledevice/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libimobiledevice";
-  version = "2019-04-04";
+  version = "2019-11-29";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "eea4f1be9107c8ab621fd71460e47d0d38e55d71";
-    sha256 = "0wh6z5f5znlqs0grh7c8jj1s411azgyy45klmql5kj3p8qqybqrs";
+    rev = "9f79242a441ce37c28db2b84d49621d26418dc53";
+    sha256 = "1hs0hppsfyhjx47jk2j8n5riqjyrdqvdkc0z0kry0sw09c80zjnr";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/liblinear/default.nix b/pkgs/development/libraries/liblinear/default.nix
index e8d8e971bc5..7b70510dec3 100644
--- a/pkgs/development/libraries/liblinear/default.nix
+++ b/pkgs/development/libraries/liblinear/default.nix
@@ -18,17 +18,19 @@ stdenv.mkDerivation rec {
     libSuff = stdenv.hostPlatform.extensions.sharedLibrary;
   in ''
     mkdir -p $out/lib $out/bin $out/include
-    cp liblinear.so.3 $out/lib/liblinear.3${libSuff}
-    ln -s $out/lib/liblinear.3${libSuff} $out/lib/liblinear${libSuff}
+    ${if stdenv.isDarwin then ''
+      cp liblinear.so.3 $out/lib/liblinear.3.dylib
+      ln -s $out/lib/liblinear.3.dylib $out/lib/liblinear.dylib
+      install_name_tool -id liblinear.3.dylib $out/lib/liblinear.3.dylib
+    '' else ''
+      cp liblinear.so.3 $out/lib/liblinear.so.3
+      ln -s $out/lib/liblinear.so.3 $out/lib/liblinear.so
+    ''}
     cp train $out/bin/liblinear-train
     cp predict $out/bin/liblinear-predict
     cp linear.h $out/include
   '';
 
-  postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
-    install_name_tool -id liblinear.3.dylib $out/lib/liblinear.3.dylib
-  '';
-
   meta = with stdenv.lib; {
     description = "A library for large linear classification";
     homepage = https://www.csie.ntu.edu.tw/~cjlin/liblinear/;
diff --git a/pkgs/development/libraries/libsixel/default.nix b/pkgs/development/libraries/libsixel/default.nix
index 561b547a8d7..9973f337398 100644
--- a/pkgs/development/libraries/libsixel/default.nix
+++ b/pkgs/development/libraries/libsixel/default.nix
@@ -1,15 +1,21 @@
 {stdenv, fetchFromGitHub}:
 stdenv.mkDerivation rec {
-  version = "1.8.2";
+  version = "1.8.4";
   pname = "libsixel";
 
   src = fetchFromGitHub {
     repo = "libsixel";
     rev = "v${version}";
     owner = "saitoha";
-    sha256 = "1jn5z2ylccjkp9i12n5x53x2zzhhsgmgs6xxi7aja6qimfw90h1n";
+    sha256 = "1zckahfl0j7k68jf87iwdc4yx7fkfhxwa7lrf22dnz36d2iq785v";
   };
 
+  configureFlags = [
+    "--enable-tests"
+  ];
+
+  doCheck = true;
+
   meta = with stdenv.lib; {
     description = "The SIXEL library for console graphics, and converter programs";
     homepage = http://saitoha.github.com/libsixel;
diff --git a/pkgs/development/libraries/olm/default.nix b/pkgs/development/libraries/olm/default.nix
index 8fbdf28965b..f63d1d30f55 100644
--- a/pkgs/development/libraries/olm/default.nix
+++ b/pkgs/development/libraries/olm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "olm";
@@ -9,17 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "0f7azjxc77n4ib9nj3cwyk3vhk8r2dsyf7id6nvqyxqxwxn95a8w";
   };
 
-  doCheck = true;
-  checkTarget = "test";
-
-  # requires optimisation but memory operations are compiled with -O0
-  hardeningDisable = ["fortify"];
+  nativeBuildInputs = [ cmake ];
 
-  makeFlags = stdenv.lib.optional stdenv.cc.isClang "CC=cc";
-
-  installFlags = [
-    "PREFIX=${placeholder ''out''}"
-  ];
+  doCheck = true;
 
   meta = {
     description = "Implements double cryptographic ratchet and Megolm ratchet";
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 3016f025e9d..63657cfc5e6 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -36,7 +36,7 @@ let
 
     outputs = [ "bin" "dev" "out" "man" ] ++ optional withDocs "doc";
     setOutputFlags = false;
-    separateDebugInfo = stdenv.cc.isGNU;
+    separateDebugInfo = !(stdenv.hostPlatform.useLLVM or false) && stdenv.cc.isGNU;
 
     nativeBuildInputs = [ perl ];
     buildInputs = stdenv.lib.optional withCryptodev cryptodev;
@@ -72,7 +72,11 @@ let
       "-DHAVE_CRYPTODEV"
       "-DUSE_CRYPTODEV_DIGESTS"
     ] ++ stdenv.lib.optional enableSSL2 "enable-ssl2"
-      ++ stdenv.lib.optional (versionAtLeast version "1.1.0" && stdenv.hostPlatform.isAarch64) "no-afalgeng";
+      ++ stdenv.lib.optional (versionAtLeast version "1.1.0" && stdenv.hostPlatform.isAarch64) "no-afalgeng"
+      # OpenSSL needs a specific `no-shared` configure flag.
+      # See https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options
+      # for a comprehensive list of configuration options.
+      ++ stdenv.lib.optional (versionAtLeast version "1.1.0" && static) "no-shared";
 
     makeFlags = [
       "MANDIR=$(man)/share/man"
diff --git a/pkgs/development/libraries/sentencepiece/default.nix b/pkgs/development/libraries/sentencepiece/default.nix
index 556f77ef8b5..907e0cc5076 100644
--- a/pkgs/development/libraries/sentencepiece/default.nix
+++ b/pkgs/development/libraries/sentencepiece/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sentencepiece";
-  version = "0.1.84";
+  version = "0.1.85";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "144y25nj4rwxmgvzqbr7al9fjwh3539ssjswvzrx4gsgfk62lsm0";
+    sha256 = "1ncvyw9ar0z7nd47cysxg5xrjm01y1shdlhp8l2pdpx059p3yx3w";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/trompeloeil/default.nix b/pkgs/development/libraries/trompeloeil/default.nix
index 0ab115daeef..6984a2694d6 100644
--- a/pkgs/development/libraries/trompeloeil/default.nix
+++ b/pkgs/development/libraries/trompeloeil/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "trompeloeil";
-  version = "35";
+  version = "36";
 
   src = fetchFromGitHub {
     owner = "rollbear";
     repo = "trompeloeil";
     rev = "v${version}";
-    sha256 = "07jxvssasgmi2dk4wl6qzspx88g9cnz597flsapdzp0qd5j7xixd";
+    sha256 = "1ik4cxh2srcdjrj9409lvxgklnadmjd3f5lvjqb5z3jgv51w38nh";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/ocaml-modules/janestreet/0.12.nix b/pkgs/development/ocaml-modules/janestreet/0.12.nix
index f912bdaa21f..4585a3b8596 100644
--- a/pkgs/development/ocaml-modules/janestreet/0.12.nix
+++ b/pkgs/development/ocaml-modules/janestreet/0.12.nix
@@ -398,6 +398,10 @@ rec {
     hash = "1sw32lb0y501y971ij7287796lvfhs0nfgla895r74ymfks2rcjb";
     meta.description = "OCaml bindings for RE2, Google's regular expression library";
     propagatedBuildInputs = [ core_kernel ];
+    prePatch = ''
+      substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
+      substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
+    '';
   };
 
   shell = janePackage {
diff --git a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
index 23940ef1499..f633d17252c 100644
--- a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
@@ -1,22 +1,22 @@
-{ stdenv, fetchFromGitHub, buildDunePackage, result, ppx_derivers }:
+{ lib, fetchFromGitHub, buildDunePackage, result, ppx_derivers }:
 
 buildDunePackage rec {
    pname = "ocaml-migrate-parsetree";
-   version = "1.4.0";
+   version = "1.5.0";
 
    src = fetchFromGitHub {
      owner = "ocaml-ppx";
      repo = pname;
      rev = "v${version}";
-     sha256 = "0sv1p4615l8gpbah4ya2c40yr6fbvahvv3ks7zhrsgcwcq2ljyr2";
+     sha256 = "0ms7nx7x16nkbm9rln3sycbzg6ad8swz8jw6bjndrill8bg3fipv";
    };
 
    propagatedBuildInputs = [ ppx_derivers result ];
 
    meta = {
      description = "Convert OCaml parsetrees between different major versions";
-     license = stdenv.lib.licenses.lgpl21;
-     maintainers = [ stdenv.lib.maintainers.vbgl ];
+     license = lib.licenses.lgpl21;
+     maintainers = [ lib.maintainers.vbgl ];
      inherit (src.meta) homepage;
    };
 }
diff --git a/pkgs/development/ocaml-modules/sedlex/2.nix b/pkgs/development/ocaml-modules/sedlex/2.nix
new file mode 100644
index 00000000000..09390a27343
--- /dev/null
+++ b/pkgs/development/ocaml-modules/sedlex/2.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, fetchurl
+, ocaml
+, dune
+, findlib
+, gen
+, ppx_tools_versioned
+, ocaml-migrate-parsetree
+, uchar
+}:
+
+if stdenv.lib.versionOlder ocaml.version "4.02.3"
+then throw "sedlex is not available for OCaml ${ocaml.version}"
+else
+
+let
+  DerivedCoreProperties = fetchurl {
+    url = "https://www.unicode.org/Public/12.1.0/ucd/DerivedCoreProperties.txt";
+    sha256 = "0s6sn1yr9qmb2i6gf8dir2zpsbjv1frdfzy3i2yjylzvf637msx6";
+  };
+  DerivedGeneralCategory = fetchurl {
+    url = "https://www.unicode.org/Public/12.1.0/ucd/extracted/DerivedGeneralCategory.txt";
+    sha256 = "1rifzq9ba6c58dn0lrmcb5l5k4ksx3zsdkira3m5p6h4i2wriy3q";
+  };
+  PropList = fetchurl {
+    url = "https://www.unicode.org/Public/12.1.0/ucd/PropList.txt";
+    sha256 = "0gsb1jpj3mnqbjgbavi4l95gl6g4agq58j82km22fdfg63j3w3fk";
+  };
+in
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-sedlex-${version}";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "ocaml-community";
+    repo = "sedlex";
+    rev = "v${version}";
+    sha256 = "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26";
+  };
+
+  buildInputs = [ ocaml findlib dune ppx_tools_versioned ocaml-migrate-parsetree ];
+
+  propagatedBuildInputs = [ gen uchar ];
+
+  preBuild = ''
+    ln -s ${DerivedCoreProperties} src/generator/data/DerivedCoreProperties.txt
+    ln -s ${DerivedGeneralCategory} src/generator/data/DerivedGeneralCategory.txt
+    ln -s ${PropList} src/generator/data/PropList.txt
+  '';
+
+  buildFlags = [ "build" ];
+
+  installPhase = ''
+    make INSTALL_ARGS="--prefix=$out --libdir=$OCAMLFIND_DESTDIR" install
+  '';
+
+  createFindlibDestdir = true;
+
+  dontStrip = true;
+
+  meta = {
+    homepage = https://github.com/ocaml-community/sedlex;
+    description = "An OCaml lexer generator for Unicode";
+    license = stdenv.lib.licenses.mit;
+    inherit (ocaml.meta) platforms;
+    maintainers = [ stdenv.lib.maintainers.marsam ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/stdint/default.nix b/pkgs/development/ocaml-modules/stdint/default.nix
index a36d84ffa3a..bffef61956e 100644
--- a/pkgs/development/ocaml-modules/stdint/default.nix
+++ b/pkgs/development/ocaml-modules/stdint/default.nix
@@ -1,9 +1,11 @@
-{ stdenv, fetchFromGitHub, buildDunePackage }:
+{ lib, fetchFromGitHub, buildDunePackage }:
 
 buildDunePackage rec {
   pname = "stdint";
   version = "0.6.0";
 
+  minimumOCamlVersion = "4.07";
+
   src = fetchFromGitHub {
     owner = "andrenth";
     repo = "ocaml-stdint";
@@ -14,7 +16,7 @@ buildDunePackage rec {
   meta = {
     description = "Various signed and unsigned integers for OCaml";
     homepage = "https://github.com/andrenth/ocaml-stdint";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [ stdenv.lib.maintainers.gebner ];
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.gebner ];
   };
 }
diff --git a/pkgs/development/python-modules/authheaders/default.nix b/pkgs/development/python-modules/authheaders/default.nix
new file mode 100644
index 00000000000..fdb478bc143
--- /dev/null
+++ b/pkgs/development/python-modules/authheaders/default.nix
@@ -0,0 +1,22 @@
+{ buildPythonPackage, fetchPypi, isPy27, lib
+, authres, dnspython, dkimpy, ipaddress, publicsuffix
+}:
+
+buildPythonPackage rec {
+  pname = "authheaders";
+  version = "0.12.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hf1p6ws3jma608pmcb5qsl58xg33wz2s51qqzi9zix0llcnyc97";
+  };
+
+  propagatedBuildInputs = [ authres dnspython dkimpy publicsuffix ]
+                          ++ lib.optional isPy27 ipaddress;
+
+  meta = {
+    description = "Python library for the generation of email authentication headers";
+    homepage = https://github.com/ValiMail/authentication-headers;
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/avro-python3/default.nix b/pkgs/development/python-modules/avro-python3/default.nix
index c9db39a325f..46272a5418d 100644
--- a/pkgs/development/python-modules/avro-python3/default.nix
+++ b/pkgs/development/python-modules/avro-python3/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "avro-python3";
-  version = "1.8.2";
+  version = "1.9.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f82cf0d66189600b1e6b442f650ad5aca6c189576723dcbf6f9ce096eab81bd6";
+    sha256 = "daab2cea71b942a1eb57d700d4a729e9d6cd93284d4dd4d65a378b9f958aa0d2";
   };
 
   doCheck = false;        # No such file or directory: './run_tests.py
diff --git a/pkgs/development/python-modules/binwalk/default.nix b/pkgs/development/python-modules/binwalk/default.nix
index ec613527e92..97c6b957a43 100644
--- a/pkgs/development/python-modules/binwalk/default.nix
+++ b/pkgs/development/python-modules/binwalk/default.nix
@@ -10,24 +10,39 @@
 , p7zip
 , cabextract
 , lzma
+, nose
 , pycrypto
 , pyqtgraph ? null }:
 
-let visualizationSupport = (pyqtgraph != null);
+let
+  visualizationSupport = (pyqtgraph != null);
+  version = "2.2.0";
 in
 buildPythonPackage {
   pname = "binwalk";
-  version = "2.1.1";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "devttys0";
     repo = "binwalk";
-    rev = "291a03595d17f848c73b74cb6ca508da782cd8f7";
-    sha256 = "0grid93yz6i6jb2zggrqncp5awdf7qi88j5y2k7dq0k9r6b8zydw";
+    rev = "be738a52e09b0da2a6e21470e0dbcd5beb42ed1b";
+    sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc";
   };
 
   propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract lzma pycrypto ]
-    ++ stdenv.lib.optional visualizationSupport pyqtgraph;
+  ++ stdenv.lib.optional visualizationSupport pyqtgraph;
+
+  # setup.py only installs version.py during install, not test
+  postPatch = ''
+    echo '__version__ = "${version}"' > src/binwalk/core/version.py
+  '';
+
+  # binwalk wants to access ~/.config/binwalk/magic
+  preCheck = ''
+    HOME=$(mktemp -d)
+  '';
+
+  checkInputs = [ nose ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/ReFirmLabs/binwalk";
diff --git a/pkgs/development/python-modules/coreapi/default.nix b/pkgs/development/python-modules/coreapi/default.nix
new file mode 100644
index 00000000000..216d1ee6985
--- /dev/null
+++ b/pkgs/development/python-modules/coreapi/default.nix
@@ -0,0 +1,44 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  django,
+  coreschema,
+  itypes,
+  uritemplate,
+  requests,
+  pytest,
+}:
+
+buildPythonPackage rec {
+  pname = "coreapi";
+  version = "2.3.3";
+
+  src = fetchFromGitHub {
+    repo = "python-client";
+    owner = "core-api";
+    rev = version;
+    sha256 = "1c6chm3q3hyn8fmjv23qgc79ai1kr3xvrrkp4clbqkssn10k7mcw";
+  };
+
+  propagatedBuildInputs = [
+    django
+    coreschema
+    itypes
+    uritemplate
+    requests
+  ];
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    cd ./tests
+    pytest
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python client library for Core API";
+    homepage = https://github.com/core-api/python-client;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ivegotasthma ];
+  };
+}
diff --git a/pkgs/development/python-modules/coreschema/default.nix b/pkgs/development/python-modules/coreschema/default.nix
new file mode 100644
index 00000000000..949fa31df95
--- /dev/null
+++ b/pkgs/development/python-modules/coreschema/default.nix
@@ -0,0 +1,34 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  jinja2,
+  pytest,
+}:
+
+buildPythonPackage rec {
+  pname = "coreschema";
+  version = "0.0.4";
+
+  src = fetchFromGitHub {
+    repo = "python-coreschema";
+    owner = "core-api";
+    rev = version;
+    sha256 = "027pc753mkgbb3r1v1x7dsdaarq93drx0f79ppvw9pfkcjcq6wb1";
+  };
+
+  propagatedBuildInputs = [ jinja2 ];
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    cd ./tests
+    pytest
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python client library for Core Schema";
+    homepage = https://github.com/ivegotasthma/python-coreschema;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ivegotasthma ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash-core-components/default.nix b/pkgs/development/python-modules/dash-core-components/default.nix
new file mode 100644
index 00000000000..dfcbb9b6404
--- /dev/null
+++ b/pkgs/development/python-modules/dash-core-components/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "dash_core_components";
+  version = "1.7.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16jjanq4glj6c2cwyw94954hrqqv49fknisbxj03lfmflg61j32k";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A dash component starter pack";
+    homepage = https://dash.plot.ly/dash-core-components;
+    license = licenses.mit;
+    maintainers = [ maintainers.antoinerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash-html-components/default.nix b/pkgs/development/python-modules/dash-html-components/default.nix
new file mode 100644
index 00000000000..4e9ef39b411
--- /dev/null
+++ b/pkgs/development/python-modules/dash-html-components/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "dash_html_components";
+  version = "1.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "166agkrl52j5qin2npsdl2a96jccxz5f1jvcz0hxsnjg0ix0k4l9";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with lib; {
+    description = "HTML components for Dash";
+    homepage = https://dash.plot.ly/dash-html-components;
+    license = licenses.mit;
+    maintainers = [ maintainers.antoinerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash-renderer/default.nix b/pkgs/development/python-modules/dash-renderer/default.nix
new file mode 100644
index 00000000000..97942a13043
--- /dev/null
+++ b/pkgs/development/python-modules/dash-renderer/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "dash_renderer";
+  version = "1.2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ccsykv24dz9xj24106aaj7f0w7x7sv7mamjbx0m6k0wyhh58vw1";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Renderer for the Dash framework";
+    homepage = https://dash.plot.ly/;
+    license = licenses.mit;
+    maintainers = [ maintainers.antoinerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash-table/default.nix b/pkgs/development/python-modules/dash-table/default.nix
new file mode 100644
index 00000000000..4a9a6c42ff4
--- /dev/null
+++ b/pkgs/development/python-modules/dash-table/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "dash_table";
+  version = "4.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01wzac09ac6nr27if1liaxafzdf67x00vw1iq5vaad1147rdh36k";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A First-Class Interactive DataTable for Dash";
+    homepage = https://dash.plot.ly/datatable;
+    license = licenses.mit;
+    maintainers = [ maintainers.antoinerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix
new file mode 100644
index 00000000000..2106235230f
--- /dev/null
+++ b/pkgs/development/python-modules/dash/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, plotly
+, flask
+, flask-compress
+, future
+, dash-core-components
+, dash-renderer
+, dash-html-components
+, dash-table
+, pytest
+, pytest-mock
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "dash";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "plotly";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11skbvjlj93aw1pqx6j56h73sy9r06jwq7z5h64fd1a3d4z2gsvy";
+  };
+
+  propagatedBuildInputs = [
+    plotly
+    flask
+    flask-compress
+    future
+    dash-core-components
+    dash-renderer
+    dash-html-components
+    dash-table
+  ];
+
+  checkInputs = [
+    pytest
+    pytest-mock
+    mock
+  ];
+
+  checkPhase = ''
+    pytest tests/unit/test_configs.py
+    pytest tests/unit/test_fingerprint.py
+    pytest tests/unit/test_import.py
+    pytest tests/unit/test_resources.py
+    pytest tests/unit/dash/
+  '';
+
+  pythonImportsCheck = [
+    "dash"
+  ];
+
+  meta = with lib; {
+    description = "Python framework for building analytical web applications";
+    homepage = https://dash.plot.ly/;
+    license = licenses.mit;
+    maintainers = [ maintainers.antoinerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/denonavr/default.nix b/pkgs/development/python-modules/denonavr/default.nix
new file mode 100644
index 00000000000..33c1570060e
--- /dev/null
+++ b/pkgs/development/python-modules/denonavr/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, requests
+, pytest, testtools, requests-mock }:
+
+buildPythonPackage rec {
+  pname = "denonavr";
+  version = "0.7.10";
+
+  src = fetchFromGitHub {
+    owner = "scarface-4711";
+    repo = "denonavr";
+    rev = version;
+    sha256 = "078nhr69f68nfazhmkf2sl7wiadqx96a5ry3ziggiy1xs04vflj7";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  doCheck = !isPy27;
+  checkInputs = [ pytest testtools requests-mock ];
+  checkPhase = ''
+    pytest tests
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/scarface-4711/denonavr";
+    description = "Automation Library for Denon AVR receivers.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/pkgs/development/python-modules/django/2_1.nix b/pkgs/development/python-modules/django/2_1.nix
deleted file mode 100644
index 19e8b0c1a75..00000000000
--- a/pkgs/development/python-modules/django/2_1.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, substituteAll,
-  isPy3k,
-  geos, gdal, pytz,
-  withGdal ? false
-}:
-
-buildPythonPackage rec {
-  pname = "Django";
-  version = "2.1.15";
-
-  disabled = !isPy3k;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a794f7a2f4b7c928eecfbc4ebad03712ff27fb545abe269bf01aa8500781eb1c";
-  };
-
-  patches = stdenv.lib.optionals withGdal [
-    (substituteAll {
-      src = ./1.10-gis-libs.template.patch;
-      geos = geos;
-      gdal = gdal;
-      extension = stdenv.hostPlatform.extensions.sharedLibrary;
-    })
-  ];
-
-  propagatedBuildInputs = [ pytz ];
-
-  # too complicated to setup
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "A high-level Python Web framework";
-    homepage = https://www.djangoproject.com/;
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ georgewhewell ];
-  };
-}
diff --git a/pkgs/development/python-modules/drf-yasg/default.nix b/pkgs/development/python-modules/drf-yasg/default.nix
new file mode 100644
index 00000000000..707b1e5bc6e
--- /dev/null
+++ b/pkgs/development/python-modules/drf-yasg/default.nix
@@ -0,0 +1,40 @@
+{
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  inflection,
+  ruamel_yaml,
+  setuptools_scm,
+  six,
+  coreapi,
+  djangorestframework,
+}:
+
+buildPythonPackage rec {
+  pname = "drf-yasg";
+  version = "1.16.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ri5h5xsacm99c6gvb4ldwisbqgiv2vq8qbn7vrh6vplzlpyvzb8";
+  };
+
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
+
+  propagatedBuildInputs = [
+    six
+    inflection
+    ruamel_yaml
+    coreapi
+    djangorestframework
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Generation of Swagger/OpenAPI schemas for Django REST Framework";
+    homepage = https://github.com/axnsan12/drf-yasg;
+    maintainers = with maintainers; [ ivegotasthma ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/flask-sockets/default.nix b/pkgs/development/python-modules/flask-sockets/default.nix
new file mode 100644
index 00000000000..aa29fd4fbc9
--- /dev/null
+++ b/pkgs/development/python-modules/flask-sockets/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flask
+, gevent
+, gevent-websocket
+}:
+
+buildPythonPackage rec {
+  pname = "Flask-Sockets";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "072927da8edca0e81e024f5787e643c87d80b351b714de95d723becb30e0643b";
+  };
+
+  propagatedBuildInputs = [
+    flask
+    gevent
+    gevent-websocket
+  ];
+
+  # upstream doesn't have any tests, single file
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "flask_sockets"
+  ];
+
+  meta = with lib; {
+    description = "Elegant WebSockets for your Flask apps";
+    homepage = "https://github.com/heroku-python/flask-sockets";
+    license = licenses.mit;
+    maintainers = [ maintainers.prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/fluidasserts/default.nix b/pkgs/development/python-modules/fluidasserts/default.nix
new file mode 100644
index 00000000000..f76692c50d9
--- /dev/null
+++ b/pkgs/development/python-modules/fluidasserts/default.nix
@@ -0,0 +1,167 @@
+{ buildPythonPackage
+, fetchPypi
+, isPy37
+, lib
+
+# pythonPackages
+, aiohttp
+, androguard
+, azure-identity
+, azure-keyvault-keys
+, azure-keyvault-secrets
+, azure-mgmt-compute
+, azure-mgmt-keyvault
+, azure-mgmt-network
+, azure-mgmt-storage
+, azure-mgmt-web
+, azure-storage-file
+, bandit
+, bcrypt
+, beautifulsoup4
+, boto3
+, cfn-flip
+, cython
+, dnspython
+, colorama
+, configobj
+, defusedxml
+, GitPython
+, google_api_python_client
+, kubernetes
+, ldap3
+, mixpanel
+, mysql-connector
+, names
+, ntplib
+, oyaml
+, paramiko
+, pillow
+, psycopg2
+, pycrypto
+, pygments
+, pyjks
+, pynacl
+, pyopenssl
+, pypdf2
+, pysmb
+, python_magic
+, pytz
+, requirements-detector
+, selenium
+, tlslite-ng
+, viewstate
+
+# pythonPackages to test the derivation
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "fluidasserts";
+  version = "20.1.28253";
+  disabled = !isPy37;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1d2smx9ywd1azsiwgavp69vlixmvwaabshprm192wnmprbghsp6c";
+  };
+
+  patchPhase = ''
+    # Version mismatches between current FluidAsserts and Nixpkgs
+    substituteInPlace ./setup.py \
+      --replace 'tlslite-ng==0.8.0-alpha29' 'tlslite-ng==0.7.5' \
+      --replace 'boto3==1.10.17' 'boto3==1.10.1' \
+      --replace 'cfn-flip==1.2.2' 'cfn-flip==1.1.0.post1' \
+      --replace 'azure-mgmt-storage==7.1.0' 'azure-mgmt-storage==7.0.0' \
+
+    # Functionality that will be not present for the momment
+    #   but that we'll work to add in the future
+    # Just a minimal portion of fluidasserts use this
+    substituteInPlace ./setup.py \
+      --replace "'azure-storage-file-share==12.0.0'," "" \
+      --replace "'pymssql==2.1.4'," "" \
+      --replace "'pytesseract==0.3.0'," "" \
+      --replace "'pywinrm==0.4.1'," "" \
+      --replace "'mitmproxy==5.0.1'," "" \
+
+  '';
+
+  propagatedBuildInputs = [
+    # pythonPackages
+    aiohttp
+    androguard
+    azure-identity
+    azure-keyvault-keys
+    azure-keyvault-secrets
+    azure-mgmt-compute
+    azure-mgmt-keyvault
+    azure-mgmt-network
+    azure-mgmt-storage
+    azure-mgmt-web
+    azure-storage-file
+    bandit
+    bcrypt
+    beautifulsoup4
+    boto3
+    cfn-flip
+    cython
+    dnspython
+    colorama
+    configobj
+    defusedxml
+    GitPython
+    google_api_python_client
+    kubernetes
+    ldap3
+    mixpanel
+    mysql-connector
+    names
+    ntplib
+    oyaml
+    paramiko
+    pillow
+    psycopg2
+    pycrypto
+    pygments
+    pyjks
+    pynacl
+    pyopenssl
+    pypdf2
+    pysmb
+    python_magic
+    pytz
+    requirements-detector
+    selenium
+    tlslite-ng
+    viewstate
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    # This file launches mock docker containers and servers
+    #   let's remove it to create a custom test environment
+    rm test/conftest.py
+
+    pytest \
+      test/test_cloud_aws_cloudformation_{cloudfront,dynamodb,ec2,elb,elb2}.py \
+      test/test_cloud_aws_cloudformation_{fsx,iam,kms,rds,s3,secretsmanager}.py \
+      test/test_format_{apk,file,jks,jwt,pdf,pkcs12,string}.py \
+      test/test_helper_{asynchronous,crypto}.py \
+      test/test_lang_{javascript,java}.py \
+      test/test_lang_{core,csharp,docker,dotnetconfig,html,php,python,rpgle}.py \
+      test/test_utils_generic.py
+
+  '';
+
+  meta = with lib; {
+    description = "Assertion Library for Security Assumptions";
+    homepage = "https://gitlab.com/fluidattacks/asserts";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/flux-led/default.nix b/pkgs/development/python-modules/flux-led/default.nix
new file mode 100644
index 00000000000..1cbfca78462
--- /dev/null
+++ b/pkgs/development/python-modules/flux-led/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub
+, aiohttp, zigpy
+, pytest, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "flux_led";
+  version = "0.22";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "Danielhiversen";
+    repo = "flux_led";
+    rev = version;
+    sha256 = "1zgajlkhclyrqhkmivna4ha2lyvfpk5929s042gy59p7mzpkvjx7";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A Python library to communicate with the flux_led smart bulbs";
+    homepage = "https://github.com/Danielhiversen/flux_led";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ colemickens ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/getmac/default.nix b/pkgs/development/python-modules/getmac/default.nix
new file mode 100644
index 00000000000..51ce0ef0503
--- /dev/null
+++ b/pkgs/development/python-modules/getmac/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, pytest, pytest-benchmark, pytest-mock }:
+
+buildPythonPackage rec {
+  pname = "getmac";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "GhostofGoes";
+    repo = "getmac";
+    rev = version;
+    sha256 = "08d4iv5bjl1s4i9qhzf3pzjgj1rgbwi0x26qypf3ycgdj0a6gvh2";
+  };
+
+  checkInputs = [ pytest pytest-benchmark pytest-mock ];
+  checkPhase = ''
+    pytest --ignore tests/test_cli.py
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/GhostofGoes/getmac";
+    description = "Pure-Python package to get the MAC address of network interfaces and hosts on the local network.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/pkgs/development/python-modules/itypes/default.nix b/pkgs/development/python-modules/itypes/default.nix
new file mode 100644
index 00000000000..1386ba39a26
--- /dev/null
+++ b/pkgs/development/python-modules/itypes/default.nix
@@ -0,0 +1,31 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytest,
+}:
+
+buildPythonPackage rec {
+  pname = "itypes";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "tomchristie";
+    rev = version;
+    sha256 = "0zkhn16wpslkxkq77dqw5rxa28nrchcb6nd3vgnxv91p4skyfm62";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    mv itypes.py itypes.py.hidden
+    pytest tests.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple immutable types for python";
+    homepage = https://github.com/tomchristie/itypes;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ivegotasthma ];
+  };
+}
diff --git a/pkgs/development/python-modules/mailmanclient/default.nix b/pkgs/development/python-modules/mailmanclient/default.nix
index 9fe9adbe6cf..e6233de93d1 100644
--- a/pkgs/development/python-modules/mailmanclient/default.nix
+++ b/pkgs/development/python-modules/mailmanclient/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, httplib2, requests }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, six, httplib2, requests }:
 
 buildPythonPackage rec {
   pname = "mailmanclient";
   version = "3.3.0";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/mixpanel/default.nix b/pkgs/development/python-modules/mixpanel/default.nix
index e770eedbfc3..fac1afe2c97 100644
--- a/pkgs/development/python-modules/mixpanel/default.nix
+++ b/pkgs/development/python-modules/mixpanel/default.nix
@@ -1,30 +1,46 @@
-{ stdenv
-, buildPythonPackage
-, fetchzip
-, pytest
+
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy37
+, lib
+
+# Python Dependencies
 , mock
+, pytest
 , six
-, isPy3k
 }:
 
 buildPythonPackage rec {
-  version = "4.0.2";
   pname = "mixpanel";
-  disabled = isPy3k;
+  version = "4.5.0";
+  disabled = !isPy37;
 
-  src = fetchzip {
-    url = "https://github.com/mixpanel/mixpanel-python/archive/${version}.zip";
-    sha256 = "0yq1bcsjzsz7yz4rp69izsdn47rvkld4wki2xmapp8gg2s9i8709";
+  src = fetchFromGitHub {
+    owner = "mixpanel";
+    repo = "mixpanel-python";
+    rev = version;
+    sha256 = "1hlc717wcn71i37ngsfb3c605rlyjhsn3v6b5bplq00373r4d39z";
   };
 
-  checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ six ];
-  checkPhase = "py.test tests.py";
+  propagatedBuildInputs = [
+    six
+  ];
 
-  meta = with stdenv.lib; {
-    homepage = https://github.com/mixpanel/mixpanel-python;
-    description = ''This is the official Mixpanel Python library'';
+  checkInputs = [
+    mock
+    pytest
+  ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/mixpanel/mixpanel-python";
+    description = "Official Mixpanel Python library";
     license = licenses.asl20;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
   };
-
 }
diff --git a/pkgs/development/python-modules/mysql-connector/default.nix b/pkgs/development/python-modules/mysql-connector/default.nix
index 00d869cb391..61a055b5ea8 100644
--- a/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/pkgs/development/python-modules/mysql-connector/default.nix
@@ -1,19 +1,27 @@
 { lib, buildPythonPackage, fetchFromGitHub
-, protobuf
+, python3, protobuf3_6
 }:
 
-buildPythonPackage rec {
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      protobuf = super.protobuf.override {
+        protobuf = protobuf3_6;
+      };
+    };
+  };
+in buildPythonPackage rec {
   pname = "mysql-connector";
-  version = "8.0.18";
+  version = "8.0.19";
 
   src = fetchFromGitHub {
     owner = "mysql";
     repo = "mysql-connector-python";
     rev = version;
-    sha256 = "0pf91vbjigjv621dar47r741yvmdmapxh60wp20nzvlx0xchbmcm";
+    sha256 = "1jscmc5s7mwx43gvxjlqc30ylp5jjpmkqx7s3b9nllbh926p3ixg";
   };
 
-  propagatedBuildInputs = [ protobuf ];
+  propagatedBuildInputs = with python.pkgs; [ protobuf dnspython ];
 
   # Tests are failing (TODO: unknown reason)
   # TypeError: __init__() missing 1 required positional argument: 'string'
diff --git a/pkgs/development/python-modules/nest-asyncio/default.nix b/pkgs/development/python-modules/nest-asyncio/default.nix
index a88c07c9968..0016da922ff 100644
--- a/pkgs/development/python-modules/nest-asyncio/default.nix
+++ b/pkgs/development/python-modules/nest-asyncio/default.nix
@@ -14,6 +14,11 @@ buildPythonPackage rec {
     sha256 = "7d4d7c1ca2aad0e5c2706d0222c8ff006805abfd05caa97e6127c8811d0f6adc";
   };
 
+  # tests not packaged with source dist as of 1.2.1/1.2.2, and
+  # can't check tests out of GitHub easily without specific commit IDs (no tagged releases)
+  doCheck = false;
+  pythonImportsCheck = [ "nest_asyncio" ];
+
   meta = with stdenv.lib; {
     homepage = https://github.com/erdewit/nest_asyncio;
     description = "Patch asyncio to allow nested event loops";
diff --git a/pkgs/development/python-modules/plexapi/default.nix b/pkgs/development/python-modules/plexapi/default.nix
new file mode 100644
index 00000000000..ed95de9ffde
--- /dev/null
+++ b/pkgs/development/python-modules/plexapi/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, requests
+, tqdm, websocket_client, pytest, pillow, mock, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "PlexAPI";
+  version = "3.2.0";
+
+  src = fetchFromGitHub {
+    owner = "pkkid";
+    repo = "python-plexapi";
+    rev = version;
+    sha256 = "1rzy018zcsws56mcghnphhzwj650pwj7qg6nh9z1kjvgwwjfmghf";
+  };
+
+  propagatedBuildInputs = [ requests tqdm websocket_client ];
+
+  checkInputs = [ pytest pillow ]
+    ++ lib.optionals isPy27 [ mock ];
+
+  meta = with lib; {
+    homepage = "https://github.com/pkkid/python-plexapi";
+    description = "Python bindings for the Plex API";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/pkgs/development/python-modules/plexauth/default.nix b/pkgs/development/python-modules/plexauth/default.nix
new file mode 100644
index 00000000000..91407a907a4
--- /dev/null
+++ b/pkgs/development/python-modules/plexauth/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchFromGitHub, aiohttp, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "plexauth";
+  version = "0.0.5";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "jjlawren";
+    repo = "python-plexauth";
+    rev = "v${version}";
+    sha256 = "1wbrn22iywl4ccz64r3w3f17k0r7vi2cqkqd2mrdkx5xqhscn9hz";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # package does not include tests
+  doCheck = false;
+
+  # at least guarantee the module can be imported
+  pythonImportsCheck = [
+    "plexauth"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jjlawren/python-plexauth/";
+    description = "Handles the authorization flow to obtain tokens from Plex.tv via external redirection";
+    license = licenses.mit;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/pkgs/development/python-modules/plexwebsocket/default.nix b/pkgs/development/python-modules/plexwebsocket/default.nix
new file mode 100644
index 00000000000..383a37cee3f
--- /dev/null
+++ b/pkgs/development/python-modules/plexwebsocket/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchFromGitHub, aiohttp, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "plexwebsocket";
+  version = "0.0.6";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "jjlawren";
+    repo = "python-plexwebsocket";
+    rev = "v${version}";
+    sha256 = "1sy9khxksimcmdvghg1ksk65mkiihjvhi7m7ms2kzmy7mrg3s3i7";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # package does not include tests
+  doCheck = false;
+
+  # at least guarantee the module can be imported
+  pythonImportsCheck = [
+    "plexwebsocket"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jjlawren/python-plexwebsocket/";
+    description = "Async library to react to events issued over Plex websockets";
+    license = licenses.mit;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
new file mode 100644
index 00000000000..cb91196fc7e
--- /dev/null
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchPypi, requests }:
+
+buildPythonPackage rec {
+  pname = "pyTelegramBotAPI";
+  version = "3.6.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "00vycd7jvfnzmvmmhkjx9vf40vkcrwv7adas5i81r2jhjy7sks54";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  meta = with lib; {
+    homepage = "https://github.com/eternnoir/pyTelegramBotAPI";
+    description = "A simple, but extensible Python implementation for the Telegram Bot API";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ das_j ];
+  };
+}
diff --git a/pkgs/development/python-modules/pycurl/default.nix b/pkgs/development/python-modules/pycurl/default.nix
index 153a6e0377d..36e5b96319e 100644
--- a/pkgs/development/python-modules/pycurl/default.nix
+++ b/pkgs/development/python-modules/pycurl/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
     flaky
   ];
 
+  # skip impure or flakey tests
   checkPhase = ''
     HOME=$TMPDIR pytest tests -k "not test_ssl_in_static_libs \
                      and not test_keyfunction \
@@ -42,7 +43,8 @@ buildPythonPackage rec {
                      and not test_libcurl_ssl_gnutls \
                      and not test_libcurl_ssl_nss \
                      and not test_libcurl_ssl_openssl" \
-                 --ignore=tests/getinfo_test.py
+                 --ignore=tests/getinfo_test.py \
+                 --ignore=tests/memory_mgmt_test.py
   '';
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/pydicom/default.nix b/pkgs/development/python-modules/pydicom/default.nix
new file mode 100644
index 00000000000..d281193be23
--- /dev/null
+++ b/pkgs/development/python-modules/pydicom/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestrunner
+, numpy
+, pillow
+}:
+
+buildPythonPackage rec {
+  version = "1.3.0";
+  pname = "pydicom";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1j11lsykqbnw9d6gzgj6kfn6lawvm5d9azd9palj3l1xhj0hlnsq";
+  };
+
+  propagatedBuildInputs = [ numpy pillow ];
+  checkInputs = [ pytest pytestrunner ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pydicom.github.io;
+    description = "Pure-Python package for working with DICOM files";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyezminc/default.nix b/pkgs/development/python-modules/pyezminc/default.nix
deleted file mode 100644
index 614a1555cbe..00000000000
--- a/pkgs/development/python-modules/pyezminc/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ buildPythonPackage, isPy3k, fetchFromGitHub, stdenv,
-  netcdf, hdf5, libminc, ezminc,
-  cython, numpy, scipy
-}:
-
-buildPythonPackage rec {
-  pname = "pyezminc";
-  version = "1.2.01";
- 
-  disabled = isPy3k;
-
-  src = fetchFromGitHub {
-    owner  = "BIC-MNI";
-    repo   = "pyezminc";
-    rev    = "release-${version}";
-    sha256 = "13smvramacisbwj8qsl160dnvv6ynngn1jmqwhvy146nmadphyv1";
-  };
-
-  nativeBuildInputs = [ cython ];
-  buildInputs = [ netcdf hdf5 libminc ezminc ];
-  propagatedBuildInputs = [ numpy scipy ];
-
-  NIX_CFLAGS_COMPILE = "-fpermissive";
-
-  doCheck = false;  # e.g., expects test data in /opt
-
-  meta = {
-    homepage = https://github.com/BIC-MNI/pyezminc;
-    description = "Python API for libminc using EZMINC";
-    license = stdenv.lib.licenses.gpl2;
-    maintainers = with stdenv.lib.maintainers; [ bcdarwin ];
-  };
-}
diff --git a/pkgs/development/python-modules/pyicloud/default.nix b/pkgs/development/python-modules/pyicloud/default.nix
new file mode 100644
index 00000000000..50dd1a09890
--- /dev/null
+++ b/pkgs/development/python-modules/pyicloud/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, keyring
+, keyrings-alt
+, click
+, six
+, tzlocal
+, certifi
+, bitstring
+, unittest2
+}:
+
+buildPythonPackage rec {
+  pname = "pyicloud";
+  version = "0.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "580b52e95f67a41ed86c56a514aa2b362f53fbaf23f16c69fb24e0d19fd373ee";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    keyring
+    keyrings-alt
+    click
+    six
+    tzlocal
+    certifi
+    bitstring
+  ];
+
+  checkInputs = [ unittest2 ];
+
+  postPatch = ''
+    sed -i \
+      -e 's!click>=6.0,<7.0!click!' \
+      -e 's!keyring>=8.0,<9.0!keyring!' \
+      -e 's!keyrings.alt>=1.0,<2.0!keyrings.alt!' \
+      requirements.txt
+  '';
+
+  meta = with lib; {
+    description = "PyiCloud is a module which allows pythonistas to interact with iCloud webservices";
+    homepage = https://github.com/picklepete/pyicloud;
+    license = licenses.mit;
+    maintainers = [ maintainers.mic92 ];
+  };
+}
diff --git a/pkgs/development/python-modules/pypandoc/default.nix b/pkgs/development/python-modules/pypandoc/default.nix
index 3af86dabe21..41576c5ad1f 100644
--- a/pkgs/development/python-modules/pypandoc/default.nix
+++ b/pkgs/development/python-modules/pypandoc/default.nix
@@ -1,33 +1,33 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, pip, pandoc, glibcLocales, haskellPackages, texlive }:
+{ stdenv, buildPythonPackage, fetchFromGitHub
+, pandoc, haskellPackages, texlive }:
 
 buildPythonPackage rec {
   pname = "pypandoc";
-  version = "1.4";
+  version = "unstable-2018-06-18";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e914e6d5f84a76764887e4d909b09d63308725f0cbb5293872c2c92f07c11a5b";
+  src = fetchFromGitHub {
+    owner = "bebraw";
+    repo = pname;
+    rev = "87912f0f17e0a71c1160008df708c876d32e5819";
+    sha256 = "0l6knkxxhmni4lx8hyvbb71svnhza08ivyklqlk5fw637gznc0hx";
   };
 
-  # Fix tests: first requires network access, second is a bug (reported upstream)
-  preConfigure = ''
+  postPatch = ''
+    # set pandoc path statically
+    sed -i '/^__pandoc_path = None$/c__pandoc_path = "${pandoc}/bin/pandoc"' pypandoc/__init__.py
+
+    # Fix tests: requires network access
     substituteInPlace tests.py --replace "pypandoc.convert(url, 'html')" "'GPL2 license'"
-    substituteInPlace tests.py --replace "pypandoc.convert_file(file_name, lua_file_name)" "'<h1 id=\"title\">title</h1>'"
   '';
 
-  LC_ALL="en_US.UTF-8";
-
-  propagatedBuildInputs = [ pip ];
-
-  buildInputs = [ pandoc texlive.combined.scheme-small haskellPackages.pandoc-citeproc glibcLocales ];
+  preCheck = ''
+    export PATH="${haskellPackages.pandoc-citeproc}/bin:${texlive.combined.scheme-small}/bin:$PATH"
+  '';
 
   meta = with stdenv.lib; {
     description = "Thin wrapper for pandoc";
     homepage = https://github.com/bebraw/pypandoc;
     license = licenses.mit;
-    maintainers = with maintainers; [ bennofs ];
-
-    broken = true; # incompatible with pandoc v2
+    maintainers = with maintainers; [ sternenseemann bennofs ];
   };
 }
diff --git a/pkgs/development/python-modules/runway-python/default.nix b/pkgs/development/python-modules/runway-python/default.nix
index 5c60b6379e9..fca11c100cf 100644
--- a/pkgs/development/python-modules/runway-python/default.nix
+++ b/pkgs/development/python-modules/runway-python/default.nix
@@ -2,29 +2,38 @@
 , buildPythonPackage
 , fetchPypi
 , flask
+, flask-compress
 , flask-cors
+, flask-sockets
 , numpy
+, scipy
 , pillow
 , gevent
 , wget
 , six
 , colorcet
+, unidecode
+, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "runway-python";
-  version = "0.5.7";
+  version = "0.5.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06e0138cc4cf2ddb7304502f5c7b53269ce73679c5784c8d6b423db04d179c18";
+    sha256 = "1d75c44008275213034977c75bc2dc6f419e7f11d087984e3faea1e0cf6da69d";
   };
 
-  propagatedBuildInputs = [ flask flask-cors numpy pillow gevent wget six colorcet ];
+  propagatedBuildInputs = [ flask flask-compress flask-cors flask-sockets numpy scipy pillow gevent wget six colorcet unidecode urllib3 ];
 
   # tests are not packaged in the released tarball
   doCheck = false;
 
+  pythonImportsCheck = [
+    "runway"
+  ];
+
   meta = {
     description = "Helper library for creating Runway models";
     homepage = https://github.com/runwayml/model-sdk;
diff --git a/pkgs/development/python-modules/rxv/default.nix b/pkgs/development/python-modules/rxv/default.nix
new file mode 100644
index 00000000000..8133936798e
--- /dev/null
+++ b/pkgs/development/python-modules/rxv/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, defusedxml
+, requests
+, pytest
+, requests-mock
+, mock
+, pytestcov
+, pytest-timeout
+, testtools
+}:
+
+buildPythonPackage rec {
+  pname = "rxv";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "wuub";
+    repo = pname;
+    # Releases are not tagged
+    rev = "9b586203665031f93960543a272bb1a8f541ed37";
+    sha256 = "1dw3ayrzknai2279bhkgzcapzw06rhijlny33rymlbp7irp0gvnj";
+  };
+
+  propagatedBuildInputs = [ defusedxml requests ];
+
+  checkInputs = [ pytest requests-mock mock pytestcov pytest-timeout testtools ];
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Automation Library for Yamaha RX-V473, RX-V573, RX-V673, RX-V773 receivers";
+    homepage = https://github.com/wuub/rxv;
+    license = licenses.mit;
+    maintainers = with maintainers; [ flyfloh ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/snitun/default.nix b/pkgs/development/python-modules/snitun/default.nix
index da9dbd79845..8212379e3d4 100644
--- a/pkgs/development/python-modules/snitun/default.nix
+++ b/pkgs/development/python-modules/snitun/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, python, fetchFromGitHub, attrs, cryptography, async-timeout, pytest-aiohttp, pytest }:
+{ lib, stdenv, buildPythonPackage, python, fetchFromGitHub, attrs, cryptography, async-timeout, pytest-aiohttp, pytest }:
 
 buildPythonPackage rec {
   pname = "snitun";
@@ -16,7 +16,8 @@ buildPythonPackage rec {
   checkInputs = [ pytest pytest-aiohttp ];
 
   checkPhase = ''
-    pytest tests/
+    # https://github.com/NabuCasa/snitun/issues/61
+    pytest ${lib.optionalString stdenv.isDarwin "-k 'not test_multiplexer_data_channel_abort_full'"} tests/
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/solo-python/default.nix b/pkgs/development/python-modules/solo-python/default.nix
index 216e5a2a84f..1b1896187f9 100644
--- a/pkgs/development/python-modules/solo-python/default.nix
+++ b/pkgs/development/python-modules/solo-python/default.nix
@@ -3,7 +3,7 @@
 
  buildPythonPackage rec {
   pname = "solo-python";
-  version = "0.0.21";
+  version = "0.0.23";
   format = "flit";
   disabled = pythonOlder "3.6"; # only python>=3.6 is supported
 
@@ -11,7 +11,7 @@
     owner = "solokeys";
     repo = pname;
     rev = version;
-    sha256 = "07r451dp3ma1mh735b2kjv86a4jkjhmag70cjqf73z7b61dmzl1q";
+    sha256 = "0r9cq0sd8pqnavgwa5cqgdxzbgly2baq8fpclnnz6anb2974kg3f";
   };
 
   # replaced pinned fido, with unrestricted fido version
diff --git a/pkgs/development/python-modules/sysv_ipc/default.nix b/pkgs/development/python-modules/sysv_ipc/default.nix
new file mode 100644
index 00000000000..37853980f43
--- /dev/null
+++ b/pkgs/development/python-modules/sysv_ipc/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "sysv_ipc";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1p5lx3yz4p40rfb453m80a4hh8341yp4dki2nhhxz7bq2zfi1zwf";
+  };
+
+  meta = with stdenv.lib; {
+    description = "SysV IPC primitives (semaphores, shared memory and message queues)";
+    license = licenses.bsd3;
+    homepage = http://semanchuk.com/philip/sysv_ipc/;
+    maintainers = with maintainers; [ ris ];
+  };
+
+}
diff --git a/pkgs/development/tools/analysis/coz/default.nix b/pkgs/development/tools/analysis/coz/default.nix
index 1ef3457e8e9..3775d09b27d 100644
--- a/pkgs/development/tools/analysis/coz/default.nix
+++ b/pkgs/development/tools/analysis/coz/default.nix
@@ -7,13 +7,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "coz";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "plasma-umass";
     repo = "coz";
     rev = version;
-    sha256 = "0a55q3s8ih1r9x6fp7wkg3n5h1yd9pcwg74k33d1r94y3j3m0znr";
+    sha256 = "0val36yw987b1558iiyk3nqg0yy5k9y5wh49v91zj3cs58mmfyhc";
   };
 
   postConfigure = ''
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index ecd8f3a17ec..2d2c3b0274d 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.114.0";
+  version = "0.116.1";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "1dkp3v898b5vd0a9fl5xknwbbqv23v0icqml8ypyhzrv6wz5qiy3";
+    sha256 = "19j2zw8ajky04d2ayfzj99yz805igip1ql3i4v7bblamc8sk38cn";
   };
 
   installPhase = ''
@@ -16,14 +16,14 @@ stdenv.mkDerivation rec {
     install -Dm644 resources/shell/bash-completion $out/share/bash-completion/completions/flow
   '';
 
-  buildInputs = (with ocamlPackages; [ ocaml findlib ocamlbuild dtoa core_kernel sedlex ocaml_lwt lwt_log lwt_ppx ppx_deriving ppx_gen_rec ppx_tools_versioned visitors wtf8 ocaml-migrate-parsetree ])
+  buildInputs = (with ocamlPackages; [ ocaml findlib ocamlbuild dtoa core_kernel sedlex_2 ocaml_lwt lwt_log lwt_ppx ppx_deriving ppx_gen_rec ppx_tools_versioned visitors wtf8 ocaml-migrate-parsetree ])
     ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
 
   patches = [
-    # Fix List.compare labeled argument. Remove when https://github.com/facebook/flow/pull/8191 is merged
+    # Fix List.compare labeled argument. Remove with the next release
     (fetchpatch {
-      url = "https://github.com/facebook/flow/commit/1625664ec7290d4128587d96cb878571751f8881.patch";
-      sha256 = "18fan0d2xa6z4ilbr7ha3vhnfqlr2s6mb02sgpv8ala99b0mcgmn";
+      url = "https://github.com/facebook/flow/commit/d061b38042327d8241fb6dec7c8307c86b2f23d6.patch";
+      sha256 = "1rmkb1zldgm2y2n32nm2xd8c7wk3hccsbljjz6bm6a0yixa6w77l";
     })
   ];
 
diff --git a/pkgs/development/tools/build-managers/rebar/default.nix b/pkgs/development/tools/build-managers/rebar/default.nix
index 0b858f6f20d..6178a7368fc 100644
--- a/pkgs/development/tools/build-managers/rebar/default.nix
+++ b/pkgs/development/tools/build-managers/rebar/default.nix
@@ -2,7 +2,7 @@
 
 
 let
-  version = "2.5.1";
+  version = "2.6.4";
 in
 stdenv.mkDerivation {
   pname = "rebar";
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://github.com/rebar/rebar/archive/${version}.tar.gz";
-    sha256 = "1y9b0smw0g5q197xf4iklzmcf8ad6w52p6mwzpf7b0ib1nd89jw6";
+    sha256 = "01xxq1f1vrwca00pky2van26hi2hhr05ghfhy71v5cifzax4cwjp";
   };
 
   buildInputs = [ erlang ];
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index db01a068c00..7a17d3dfb56 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -4,13 +4,13 @@
 
 buildGoPackage rec {
   pname = "buildah";
-  version = "1.12.0";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner  = "containers";
     repo   = "buildah";
     rev    = "v${version}";
-    sha256 = "0lsjsfp6ls38vlgibbnsyd1m7jvmjwdmpyrd0qigp4aa2abwi4dg";
+    sha256 = "0swhpdr970ik6fhvmj45r84lsp1n6rxm0bgv9i1lvrxy1mdv7r9x";
   };
 
   outputs = [ "bin" "man" "out" ];
@@ -18,10 +18,6 @@ buildGoPackage rec {
   goPackagePath = "github.com/containers/buildah";
   excludedPackages = [ "tests" ];
 
-  # Disable module-mode, because Go 1.13 automatically enables it if there is
-  # go.mod file. Remove after https://github.com/NixOS/nixpkgs/pull/73380
-  GO111MODULE = "off";
-
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gpgme libgpgerror lvm2 btrfs-progs ostree libselinux libseccomp ];
 
@@ -31,6 +27,7 @@ buildGoPackage rec {
     pushd go/src/${goPackagePath}
     make GIT_COMMIT="unknown"
     install -Dm755 buildah $bin/bin/buildah
+    install -Dm444 contrib/completions/bash/buildah $bin/share/bash-completion/completions/buildah
   '';
 
   postBuild = ''
@@ -40,6 +37,7 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     description = "A tool which facilitates building OCI images";
     homepage = "https://github.com/containers/buildah";
+    changelog = "https://github.com/containers/buildah/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ Profpatsch vdemeester saschagrunert ];
   };
diff --git a/pkgs/development/tools/continuous-integration/buildkite-agent/2.x.nix b/pkgs/development/tools/continuous-integration/buildkite-agent/2.x.nix
deleted file mode 100644
index 6a73e258182..00000000000
--- a/pkgs/development/tools/continuous-integration/buildkite-agent/2.x.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ callPackage, fetchFromGitHub, ... } @ args:
-
-callPackage ./generic.nix (args // rec {
-  src = fetchFromGitHub {
-    owner = "buildkite";
-    repo = "agent";
-    rev = "v${version}";
-    sha256 = "07065hhhb418w5qlqnyiap45r59paysysbwz1l7dmaw3j4q8m8rg";
-  };
-  version = "2.6.10";
-  hasBootstrapScript = true;
-})
diff --git a/pkgs/development/tools/continuous-integration/buildkite-agent/3.x.nix b/pkgs/development/tools/continuous-integration/buildkite-agent/3.x.nix
deleted file mode 100644
index e8266c2efe2..00000000000
--- a/pkgs/development/tools/continuous-integration/buildkite-agent/3.x.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ bash, callPackage, fetchFromGitHub, ... } @ args:
-
-callPackage ./generic.nix (args // rec {
-  src = fetchFromGitHub {
-    owner = "buildkite";
-    repo = "agent";
-    rev = "v${version}";
-    sha256 = "0sr1rxl92d4wdipl66f1yymx5bmyj1y85v6k22v57rzr6yhyfmsf";
-  };
-  version = "3.8.4";
-  hasBootstrapScript = false;
-  postPatch = ''
-    substituteInPlace bootstrap/shell/shell.go --replace /bin/bash ${bash}/bin/bash
-  '';
-})
diff --git a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
new file mode 100644
index 00000000000..7e86c93b9bd
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
@@ -0,0 +1,48 @@
+{ fetchFromGitHub, stdenv, buildGoPackage,
+  makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep }:
+buildGoPackage rec {
+  name = "buildkite-agent-${version}";
+  version = "3.17.0";
+
+  goPackagePath = "github.com/buildkite/agent";
+
+  src = fetchFromGitHub {
+    owner = "buildkite";
+    repo = "agent";
+    rev = "v${version}";
+    sha256 = "0a7x919kxnpdn0pnhc5ilx1z6ninx8zgjvsd0jcg4qwh0qqp5ppr";
+  };
+  postPatch = ''
+    substituteInPlace bootstrap/shell/shell.go --replace /bin/bash ${bash}/bin/bash
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  # on Linux, the TMPDIR is /build which is the same prefix as this package
+  # remove once #35068 is merged
+  noAuditTmpdir = stdenv.isLinux;
+
+  postInstall = ''
+    # Fix binary name
+    mv $bin/bin/{agent,buildkite-agent}
+
+    # These are runtime dependencies
+    wrapProgram $bin/bin/buildkite-agent \
+      --prefix PATH : '${stdenv.lib.makeBinPath [ openssh git coreutils gnused gnugrep ]}'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Build runner for buildkite.com";
+    longDescription = ''
+      The buildkite-agent is a small, reliable, and cross-platform build runner
+      that makes it easy to run automated builds on your own infrastructure.
+      It’s main responsibilities are polling buildkite.com for work, running
+      build jobs, reporting back the status code and output log of the job,
+      and uploading the job's artifacts.
+    '';
+    homepage = https://buildkite.com/docs/agent;
+    license = licenses.mit;
+    maintainers = with maintainers; [ pawelpacana zimbatm rvl ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 214e48b14b6..91ef9d4a222 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "12.6.0";
+  version = "12.7.0";
   # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
   docker_x86_64 = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
-    sha256 = "14wp9dyacbldfvykc68pa0mj59anf0zfadxsr9bqwyl795zsxh7g";
+    sha256 = "0vaaaw6hxmr55kgcn86rim9in96zmyv0zhl7asr4b7qknabsjp4m";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "1iln85xy4qkz7ps2vr4qlbvn4p1b8137a75r4s24bc7g6apzyyvs";
+    sha256 = "031fv7f15wiqq7209n2ab7n3qzjf7cjzvbp4pkz24bkc3lr3y773";
   };
 in
 buildGoPackage rec {
@@ -29,7 +29,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "08vxgv6m83wqxksy0vj7nx6bb55sxn9c7l0sdpg0nblps0n8fzxm";
+    sha256 = "0f08syk7v7w89pcdbzwgscsxl54gnms1qd4spjppnq4h5r959jp2";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/pkgs/development/tools/database/pg_checksums/default.nix b/pkgs/development/tools/database/pg_checksums/default.nix
new file mode 100644
index 00000000000..f440e550a89
--- /dev/null
+++ b/pkgs/development/tools/database/pg_checksums/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, libxslt, docbook_xsl, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "pg_checksums";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "credativ";
+    repo = pname;
+    rev = version;
+    sha256 = "0xc2bwp55xjnnf45lc60ldxpb5jfyi1bgfkv3nxrymcswh8yfidj";
+  };
+
+  nativeBuildInputs = [ libxslt.bin ];
+
+  buildInputs = [ postgresql ];
+
+  buildFlags = [ "all" "man" ];
+
+  preConfigure = ''
+    substituteInPlace doc/stylesheet-man.xsl \
+      --replace "http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" "${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"
+  '';
+
+  installPhase = ''
+    install -Dm755 -t $out/bin pg_checksums
+    install -Dm644 -t $out/share/man/man1 doc/man1/pg_checksums.1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Activate/deactivate/verify checksums in offline PostgreSQL clusters";
+    homepage = "https://github.com/credativ/pg_checksums";
+    maintainers = [ maintainers.marsam ];
+    platforms = postgresql.meta.platforms;
+    license = licenses.postgresql;
+  };
+}
diff --git a/pkgs/development/tools/dive/default.nix b/pkgs/development/tools/dive/default.nix
index 2113e319f19..6c4d91bac78 100644
--- a/pkgs/development/tools/dive/default.nix
+++ b/pkgs/development/tools/dive/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dive";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "wagoodman";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0bqmrva7rx6al50fmy4gvf853csascc5mj6ihgg7ydsy0d99j5qn";
+    sha256 = "1dqaqzmb74kf6q70wxfbsrbbfmxl82rj7r5kpsg5znm99filk3ny";
   };
 
-  modSha256 = "0hb7bq8v6xr8xqni1iv3zkqdnknfy539sm0vxqal1mhvs5yg06m0";
+  modSha256 = "1y8mqxlzbizra2m9aayp6w07s39gddvm5igdaw9kwxwjwvd1dbfc";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/geckodriver/cargo-lock.patch b/pkgs/development/tools/geckodriver/cargo-lock.patch
new file mode 100644
index 00000000000..a283d0c382c
--- /dev/null
+++ b/pkgs/development/tools/geckodriver/cargo-lock.patch
@@ -0,0 +1,1846 @@
+diff --git a/testing/geckodriver/Cargo.lock b/testing/geckodriver/Cargo.lock
+new file mode 100644
+index 0000000..4430666
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,1840 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "adler32"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "aho-corasick"
++version = "0.7.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "arrayref"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "arrayvec"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "autocfg"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "autocfg"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "backtrace"
++version = "0.3.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "backtrace-sys"
++version = "0.1.32"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "base64"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "blake2b_simd"
++version = "0.5.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "block-buffer"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "block-padding"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "byte-tools"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "byteorder"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "bytes"
++version = "0.4.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "c2-chacha"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cc"
++version = "1.0.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "chrono"
++version = "0.4.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "clap"
++version = "2.33.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cloudabi"
++version = "0.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "constant_time_eq"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cookie"
++version = "0.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crc32fast"
++version = "1.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crossbeam-deque"
++version = "0.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crossbeam-epoch"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crossbeam-queue"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.6.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "digest"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "dirs"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "dtoa"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "either"
++version = "1.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "failure"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "failure_derive"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fake-simd"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "flate2"
++version = "1.0.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fnv"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "fuchsia-cprng"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "fuchsia-zircon"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fuchsia-zircon-sys"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "futures"
++version = "0.1.29"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "futures-cpupool"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "geckodriver"
++version = "0.26.0"
++dependencies = [
++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "marionette 0.1.0",
++ "mozdevice 0.1.0",
++ "mozprofile 0.6.0",
++ "mozrunner 0.10.0",
++ "mozversion 0.2.1",
++ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "webdriver 0.40.2",
++ "zip 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "generic-array"
++version = "0.12.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "h2"
++version = "0.1.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "headers"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "headers-core 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "headers-core"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "http"
++version = "0.1.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "http-body"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "httparse"
++version = "1.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "humantime"
++version = "1.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "hyper"
++version = "0.12.35"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "h2 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "idna"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "indexmap"
++version = "1.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "iovec"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "kernel32-sys"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "libc"
++version = "0.2.66"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "line-wrap"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "linked-hash-map"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lock_api"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "log"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "marionette"
++version = "0.1.0"
++dependencies = [
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_repr 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "matches"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "maybe-uninit"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "memchr"
++version = "2.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "memoffset"
++version = "0.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mime"
++version = "0.3.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "mime_guess"
++version = "2.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "miniz_oxide"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mio"
++version = "0.6.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mio-uds"
++version = "0.6.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "miow"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mozdevice"
++version = "0.1.0"
++dependencies = [
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mozprofile"
++version = "0.6.0"
++dependencies = [
++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mozrunner"
++version = "0.10.0"
++dependencies = [
++ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mozprofile 0.6.0",
++ "plist 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winreg 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mozversion"
++version = "0.2.1"
++dependencies = [
++ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rust-ini 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "msdos_time"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "net2"
++version = "0.2.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "opaque-debug"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "parking_lot"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "parking_lot_core"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "percent-encoding"
++version = "2.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "plist"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "line-wrap 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "podio"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "quick-error"
++version = "1.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "quote"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand"
++version = "0.6.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rand_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_isaac"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_jitter"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_os"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_pcg"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_xorshift"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rdrand"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.56"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "redox_users"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "regex"
++version = "1.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "remove_dir_all"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rust-argon2"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rust-ini"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rustc_version"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "ryu"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "safemem"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "scoped-tls"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "scopeguard"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "semver"
++version = "0.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "semver"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "semver-parser"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "serde"
++version = "1.0.104"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.104"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_repr"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_urlencoded"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_yaml"
++version = "0.8.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "sha-1"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "slab"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "smallvec"
++version = "0.6.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "smallvec"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "string"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "syn"
++version = "1.0.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "synstructure"
++version = "0.12.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tempfile"
++version = "3.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "term_size"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "time"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio"
++version = "0.1.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-udp 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-buf"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-codec"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-current-thread"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-executor"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-fs"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-io"
++version = "0.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-reactor"
++version = "0.1.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-sync"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-tcp"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-threadpool"
++version = "0.1.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-timer"
++version = "0.2.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-udp"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-uds"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "try-lock"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "typenum"
++version = "1.11.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicase"
++version = "2.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-bidi"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-normalization"
++version = "0.1.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-segmentation"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-width"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "url"
++version = "2.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "urlencoding"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "uuid"
++version = "0.7.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "version_check"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "want"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "warp"
++version = "0.1.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "headers 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scoped-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "urlencoding 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "webdriver"
++version = "0.40.2"
++dependencies = [
++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "warp 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "winapi"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "winapi-build"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi-util"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winreg"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "ws2_32-sys"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "xml-rs"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "yaml-rust"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "zip"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "msdos_time 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[metadata]
++"checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
++"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
++"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
++"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
++"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
++"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++"checksum backtrace 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b4b1549d804b6c73f4817df2ba073709e96e426f12987127c48e6745568c350b"
++"checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
++"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++"checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
++"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
++"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
++"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
++"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
++"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
++"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
++"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++"checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01"
++"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
++"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
++"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
++"checksum cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5"
++"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
++"checksum crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca"
++"checksum crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac"
++"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
++"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
++"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4"
++"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
++"checksum dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
++"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
++"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
++"checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
++"checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
++"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
++"checksum flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f"
++"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
++"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
++"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
++"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
++"checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
++"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
++"checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
++"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
++"checksum h2 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462"
++"checksum headers 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "882ca7d8722f33ce2c2db44f95425d6267ed59ca96ce02acbe58320054ceb642"
++"checksum headers-core 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "967131279aaa9f7c20c7205b45a391638a83ab118e6509b2d0ccbe08de044237"
++"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
++"checksum http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0"
++"checksum http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d"
++"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
++"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
++"checksum hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)" = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6"
++"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
++"checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc"
++"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
++"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
++"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
++"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558"
++"checksum line-wrap 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
++"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83"
++"checksum lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b"
++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
++"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
++"checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223"
++"checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9"
++"checksum mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
++"checksum mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599"
++"checksum miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625"
++"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
++"checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125"
++"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
++"checksum msdos_time 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aad9dfe950c057b1bfe9c1f2aa51583a8468ef2a5baba2ebbe06d775efeb7729"
++"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
++"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
++"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
++"checksum num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72"
++"checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
++"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
++"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
++"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
++"checksum plist 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31850d149352e2b75f0e4b206045ee3775076c422892328343beca48a2b5cf17"
++"checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd"
++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
++"checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc"
++"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
++"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
++"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
++"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
++"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
++"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
++"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
++"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
++"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
++"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
++"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
++"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
++"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
++"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++"checksum redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d"
++"checksum regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b5508c1941e4e7cb19965abef075d35a9a8b5cdf0846f30b4050e9b55dc55e87"
++"checksum regex-syntax 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e734e891f5b408a29efbf8309e656876276f49ab6a6ac208600b4419bd893d90"
++"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
++"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
++"checksum rust-ini 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8a654c5bda722c699be6b0fe4c0d90de218928da5b724c3e467fc48865c37263"
++"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++"checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
++"checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
++"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++"checksum scoped-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
++"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
++"checksum semver 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537"
++"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
++"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
++"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
++"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
++"checksum serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)" = "48c575e0cc52bdd09b47f330f646cf59afc586e9c4e3ccd6fc1f625b8ea1dad7"
++"checksum serde_repr 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "cd02c7587ec314570041b2754829f84d873ced14a96d1fd1823531e11db40573"
++"checksum serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
++"checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35"
++"checksum sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
++"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
++"checksum smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4"
++"checksum string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d"
++"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++"checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8"
++"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
++"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
++"checksum term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9e5b9a66db815dcfd2da92db471106457082577c3c278d4138ab3e3b4e189327"
++"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
++"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
++"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
++"checksum tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46"
++"checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f"
++"checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443"
++"checksum tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "ca6df436c42b0c3330a82d855d2ef017cd793090ad550a6bc2184f4b933532ab"
++"checksum tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af"
++"checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926"
++"checksum tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6732fe6b53c8d11178dcb77ac6d9682af27fc6d4cb87789449152e5377377146"
++"checksum tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "d06554cce1ae4a50f42fba8023918afa931413aded705b560e29600ccf7c6d76"
++"checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119"
++"checksum tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c32ffea4827978e9aa392d2f743d973c1dfa3730a2ed3f22ce1e6984da848c"
++"checksum tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1739638e364e558128461fc1ad84d997702c8e31c2e6b18fb99842268199e827"
++"checksum tokio-udp 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f02298505547f73e60f568359ef0d016d5acd6e830ab9bc7c4a5b3403440121b"
++"checksum tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445"
++"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
++"checksum typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6d2783fe2d6b8c1101136184eb41be8b1ad379e4657050b8aaff0c79ee7575f9"
++"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
++"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
++"checksum unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b561e267b2326bb4cebfc0ef9e68355c7abe6c6f522aeac2f5bf95d56c59bdcf"
++"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
++"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++"checksum url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
++"checksum urlencoding 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3df3561629a8bb4c57e5a2e4c43348d9e29c7c29d9b1c4c1f47166deca8f37ed"
++"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
++"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
++"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++"checksum want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230"
++"checksum warp 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "3921463c44f680d24f1273ea55efd985f31206a22a02dee207a2ec72684285ca"
++"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
++"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
++"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++"checksum winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80"
++"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++"checksum winreg 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a27a759395c1195c4cc5cda607ef6f8f6498f64e78f7900f5de0a127a424704a"
++"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
++"checksum xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "541b12c998c5b56aa2b4e6f18f03664eef9a4fd0a246a55594efae6cc2d964b5"
++"checksum yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d"
++"checksum zip 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "36b9e08fb518a65cf7e08a1e482573eb87a2f4f8c6619316612a3c1f162fe822"
diff --git a/pkgs/development/tools/geckodriver/default.nix b/pkgs/development/tools/geckodriver/default.nix
index 68d1a74b277..9f0de971d1b 100644
--- a/pkgs/development/tools/geckodriver/default.nix
+++ b/pkgs/development/tools/geckodriver/default.nix
@@ -1,26 +1,29 @@
 { lib
-, fetchFromGitHub
+, fetchzip
 , rustPlatform
 , stdenv
 , darwin
 }:
 
-with rustPlatform; 
-
-buildRustPackage rec {
-  version = "0.22.0";
+rustPlatform.buildRustPackage {
+  version = "0.26.0";
   pname = "geckodriver";
+  sourceRoot = "source/testing/geckodriver";
 
-  src = fetchFromGitHub {
-    owner = "mozilla";
-    repo = "geckodriver";
-    rev = "v${version}";
-    sha256 = "12m95lfqwdxs2m5kjh3yrpm9w2li5m8n3fw46a2nkxyfw6c94l4b";
-  };
+  # Source revisions are noted alongside the binary releases:
+  # https://github.com/mozilla/geckodriver/releases
+  src = (fetchzip {
+    url = "https://hg.mozilla.org/mozilla-central/archive/e9783a644016aa9b317887076618425586730d73.zip/testing";
+    sha256 = "0m86hqyq1jrr49jkc8mnlmx4bdq281hyxhcrrzacyv20nlqwvd8v";
+  }).overrideAttrs (_: {
+    # normally guessed by the url's file extension, force it to unpack properly
+    unpackCmd = "unzip $curSrc";
+  });
 
-  buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+  cargoPatches = [ ./cargo-lock.patch ];
+  cargoSha256 = "07w5lmvm5w6id0qikcs968n0c69bb6fav63l66bskxcjva67d6dy";
 
-  cargoSha256 = "1pwg35kgn5z2zrlj1dwcbbdmkgmnvfxpxv4klzsxxg4m9xr1pfy4";
+  buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
 
   meta = with lib; {
     description = "Proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers";
diff --git a/pkgs/development/tools/git-quick-stats/default.nix b/pkgs/development/tools/git-quick-stats/default.nix
index b08300040b9..83df38cf7db 100644
--- a/pkgs/development/tools/git-quick-stats/default.nix
+++ b/pkgs/development/tools/git-quick-stats/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchFromGitHub }:
 stdenv.mkDerivation rec {
   pname = "git-quick-stats";
-  version = "2.0.11";
+  version = "2.0.12";
   src = fetchFromGitHub {
     repo = "git-quick-stats";
     owner = "arzzen";
     rev = version;
-    sha256 = "19chwnc936bxf0bnxsvw6nhfxnj0216jx9ajjckw3q440l932799";
+    sha256 = "1diisgz8xc2ghsfdz3vh6z4vn13vvb9gf0i6qml0a46a5fqf32zb";
   };
   PREFIX = builtins.placeholder "out";
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/kind/default.nix b/pkgs/development/tools/kind/default.nix
index 411b6a261d6..94a0ff87982 100644
--- a/pkgs/development/tools/kind/default.nix
+++ b/pkgs/development/tools/kind/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 
 buildGoPackage rec {
   pname = "kind";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     rev    = "v${version}";
     owner  = "kubernetes-sigs";
     repo   = "kind";
-    sha256 = "165nwkhsa12z043rvkdf977jndhp82x7sccqfy75pkx99mzz43r2";
+    sha256 = "0hvb0rbi1m0d1flk15l3wws96kmmjhsy6islkhy5h7jalc4k0nx4";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/development/tools/kind/deps.nix b/pkgs/development/tools/kind/deps.nix
index 99a73291d71..1706406c456 100644
--- a/pkgs/development/tools/kind/deps.nix
+++ b/pkgs/development/tools/kind/deps.nix
@@ -374,8 +374,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/mattn/go-isatty";
-      rev = "v0.0.10";
-      sha256 = "0jf4hwfwd2cpxrlyv0jzcia809q2bjw7y1m3ciaj2s8lj2jqyf6r";
+      rev = "v0.0.11";
+      sha256 = "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali";
     };
   }
   {
@@ -455,8 +455,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/pelletier/go-toml";
-      rev = "v1.2.0";
-      sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy";
+      rev = "v1.6.0";
+      sha256 = "0l2830pi64fg0bdsyd5afkbw0p7879pppzdqqk3c7vjrjfmi5xbq";
     };
   }
   {
@@ -464,8 +464,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/pkg/errors";
-      rev = "v0.8.1";
-      sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
+      rev = "v0.9.0";
+      sha256 = "1hlivqlcnm9wrj0v7h43gamw7mvg6svz9sm31fx28zn4ll25ablh";
     };
   }
   {
@@ -608,8 +608,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/sys";
-      rev = "c1f44814a5cd";
-      sha256 = "1a6hb4326hk8hvcbs0pqypalsxzqc8xasnglrrwd6ai0njgh18pg";
+      rev = "86b910548bc1";
+      sha256 = "1z8l2wp27q0bd4nc46j31lc7cr6kiw52zi6ix3i121pd3rcyrw44";
     };
   }
   {
@@ -671,8 +671,8 @@
     fetch = {
       type = "git";
       url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.5";
-      sha256 = "08smz8dfyxp02ha74my9iszqa5qzgl3ksi28ilyp8lqipssiq6fg";
+      rev = "v2.2.7";
+      sha256 = "0k5xcwkd3wmcx54isk7ck9cwp8fapfhyqdz3f13kxp77cxqizazj";
     };
   }
   {
@@ -680,8 +680,8 @@
     fetch = {
       type = "git";
       url = "https://gopkg.in/yaml.v3";
-      rev = "e228e37189d3";
-      sha256 = "06sc63lqhkqjh188md1cywvscxq40cqgmdl8ccd3q891b1xpajl4";
+      rev = "4206685974f2";
+      sha256 = "1ff5fd8x45cay9100ds63hxd32s7czsrric0ql6a1jrxczsgqk1g";
     };
   }
   {
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index 771f8005c1f..f2bb771f217 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure-lsp";
-  version = "20200109T185134";
+  version = "20200117T215443";
 
   src = fetchurl {
     url = "https://github.com/snoe/clojure-lsp/releases/download/release-${version}/${pname}";
-    sha256 = "11fzyf2qzqmxhdyssm59cqkkcjh8hw1i859abc1i2zali3fd7w68";
+    sha256 = "0ccn3700lam5m5yh5hdcm6wkazyr3dhvhyc9bc08basjwk09lfkp";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/misc/elfinfo/default.nix b/pkgs/development/tools/misc/elfinfo/default.nix
index b1a51a77144..8628990d531 100644
--- a/pkgs/development/tools/misc/elfinfo/default.nix
+++ b/pkgs/development/tools/misc/elfinfo/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "elfinfo";
-  version = "0.7.6";
+  version = "1.0.1";
 
   goPackagePath = "github.com/xyproto/elfinfo";
   src = fetchFromGitHub {
     rev = version;
     owner = "xyproto";
     repo = "elfinfo";
-    sha256 = "0f6ik4d157assxdfslnyc91mg70kfh396rapikfv473znx2v2pg9";
+    sha256 = "1iahivc1jm9gv1dijykw2pryjdwb896bv42xmq9v6ax86rsnzqww";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/misc/pwndbg/default.nix b/pkgs/development/tools/misc/pwndbg/default.nix
index 449d9ee0984..0c1a3dfc932 100644
--- a/pkgs/development/tools/misc/pwndbg/default.nix
+++ b/pkgs/development/tools/misc/pwndbg/default.nix
@@ -21,14 +21,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "pwndbg";
-  version = "2019.01.25";
+  version = "2019.12.09";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "pwndbg";
     repo = "pwndbg";
     rev = version;
-    sha256 = "0k7n6pcrj62ccag801yzf04a9mj9znghpkbnqwrzz0qn3rs42vgs";
+    sha256 = "0kn28mjdq91zf7d6vqzbm74f0ligp829m9jzjxfn4zlx6wrmkd0s";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/misc/reviewdog/default.nix b/pkgs/development/tools/misc/reviewdog/default.nix
index 04364ea174a..9af294716ff 100644
--- a/pkgs/development/tools/misc/reviewdog/default.nix
+++ b/pkgs/development/tools/misc/reviewdog/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "reviewdog";
-  version = "0.9.15";
+  version = "0.9.17";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "05dh70967264lc3srwajnxxfdgsgybc9i7j2jqbqzin6dmxbnrc0";
+    sha256 = "0fm7avkc8izs0a9lqshibzpl08g4l3w38ayw7g521p23aq90q3c9";
   };
 
-  modSha256 = "09ifp0iqd8jlz01mhxaz7adrcc699vim6pwxgf83pmqdw92jz034";
+  modSha256 = "1jf08g0xr4wknh9x15igq73y02cy2faqjdjs2v842ii4p3n4p9dw";
 
   subPackages = [ "cmd/reviewdog" ];
 
diff --git a/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch b/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch
index 3f96cfa7575..d55caab22e6 100644
--- a/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch
+++ b/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch
@@ -1,8 +1,8 @@
-diff --git a/Makefile b/Makefile
-index 463a11f..f20072c 100644
---- a/Makefile
-+++ b/Makefile
-@@ -5,11 +5,11 @@ CFLAGS      += -Wall
+Index: usb-modeswitch-2.6.0/Makefile
+===================================================================
+--- usb-modeswitch-2.6.0.orig/Makefile
++++ usb-modeswitch-2.6.0/Makefile
+@@ -5,17 +5,24 @@ CFLAGS      += -Wall -Wno-deprecated-dec
  LIBS        = `pkg-config --libs --cflags libusb-1.0`
  RM          = /bin/rm -f
  OBJS        = usb_modeswitch.c
@@ -16,36 +16,31 @@ index 463a11f..f20072c 100644
 +UDEVDIR     = $(PREFIX)/lib/udev
  SBINDIR     = $(PREFIX)/sbin
  MANDIR      = $(PREFIX)/share/man/man1
- VPATH       = jimtcl
-@@ -22,10 +22,17 @@ endif
- JIM_CONFIGURE_OPTS = --disable-lineedit \
- 	--with-out-jim-ext="stdlib posix load signal syslog" --prefix=/usr
  
 +USE_UPSTART=$(shell if command -v initctl > /dev/null; then echo "true"; fi)
 +USE_SYSTEMD=$(shell if command -v systemctl > /dev/null; then echo "true"; fi)
 +
  .PHONY: clean install install-common uninstall \
- 	script shared static \
- 	dispatcher-script dispatcher-shared dispatcher-static \
--	install-script install-shared install-static
-+	install-script install-shared install-static \
+ 	dispatcher-script dispatcher-dynlink dispatcher-statlink \
+-	install-script install-dynlink install-statlink
++	install-script install-dynlink install-statlink \
 +	install-upstart install-systemd \
 +	configure-dispatcher configure-script \
 +	configure-upstart configure-systemd \
 +	configure
  
- all: script
+ all: all-with-script-dispatcher
  
-@@ -46,7 +53,25 @@ jim/libjim.a:
- 	cd jim && CFLAGS="$(CFLAGS)" CC="$(CC)" ./configure $(JIM_CONFIGURE_OPTS)
- 	$(MAKE) -C jim lib
+@@ -28,7 +35,25 @@ all-with-statlink-dispatcher: $(PROG) di
+ $(PROG): $(OBJS) usb_modeswitch.h
+ 	$(CC) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS)
  
--dispatcher-script: usb_modeswitch.tcl
+-dispatcher-script: usb_modeswitch_dispatcher.tcl
 +configure-dispatcher:
 +	sed -i \
 +	  -e 's,^\(set setup(sbindir) \).*$$,\1$(SBINDIR),' \
 +	  -e 's,^\(set setup(etcdir) \).*$$,\1$(ETCDIR),' \
-+	  usb_modeswitch.tcl
++	  usb_modeswitch_dispatcher.tcl
 +
 +configure-script:
 +	sed -i -e 's,^\(SBINDIR=\).*$$,\1$(SBINDIR),' usb_modeswitch.sh
@@ -59,31 +54,22 @@ index 463a11f..f20072c 100644
 +configure: configure-dispatcher configure-script \
 +	configure-systemd configure-upstart
 +
-+dispatcher-script: configure-dispatcher usb_modeswitch.tcl
- 	sed 's_!/usr/bin/tclsh_!'"$(TCL)"'_' < usb_modeswitch.tcl > usb_modeswitch_dispatcher
++dispatcher-script: configure-dispatcher usb_modeswitch_dispatcher.tcl
+ 	DISPATCH=dispatcher-script
+ 	cp -f usb_modeswitch_dispatcher.tcl usb_modeswitch_dispatcher
  
- dispatcher-shared: jim/libjim.so dispatcher.c usb_modeswitch.string
-@@ -55,7 +80,7 @@ dispatcher-shared: jim/libjim.so dispatcher.c usb_modeswitch.string
- dispatcher-static: jim/libjim.a dispatcher.c usb_modeswitch.string
- 	$(CC) dispatcher.c $(LDFLAGS) jim/libjim.a -Ijim -o usb_modeswitch_dispatcher $(CFLAGS)
- 
--usb_modeswitch.string: usb_modeswitch.tcl
-+usb_modeswitch.string: configure-dispatcher usb_modeswitch.tcl
- 	$(HOST_TCL) make_string.tcl usb_modeswitch.tcl > $@
- 
- clean:
-@@ -76,16 +101,28 @@ ums-clean:
+@@ -53,16 +78,28 @@ distclean: clean
  # If the systemd folder is present, install the service for starting the dispatcher
  # If not, use the dispatcher directly from the udev rule as in previous versions
  
--install-common: $(PROG) usb_modeswitch_dispatcher
+-install-common: $(PROG) $(DISPATCH)
 -	install -D --mode=755 usb_modeswitch $(SBINDIR)/usb_modeswitch
 -	install -D --mode=755 usb_modeswitch.sh $(UDEVDIR)/usb_modeswitch
 -	install -D --mode=644 usb_modeswitch.conf $(ETCDIR)/usb_modeswitch.conf
 -	install -D --mode=644 usb_modeswitch.1 $(MANDIR)/usb_modeswitch.1
 -	install -D --mode=644 usb_modeswitch_dispatcher.1 $(MANDIR)/usb_modeswitch_dispatcher.1
 -	install -D --mode=755 usb_modeswitch_dispatcher $(SBINDIR)/usb_modeswitch_dispatcher
-+install-common: $(PROG) configure usb_modeswitch_dispatcher
++install-common: $(PROG) configure $(DISPATCH)
 +	install -D --mode=755 usb_modeswitch $(DESTDIR)$(SBINDIR)/usb_modeswitch
 +	install -D --mode=755 usb_modeswitch.sh $(DESTDIR)$(UDEVDIR)/usb_modeswitch
 +	install -D --mode=644 usb_modeswitch.conf $(DESTDIR)$(ETCDIR)/usb_modeswitch.conf
@@ -110,8 +96,8 @@ index 463a11f..f20072c 100644
  
  install: install-script
  
-@@ -96,10 +133,10 @@ install-shared: dispatcher-shared install-common
- install-static: dispatcher-static install-common
+@@ -73,10 +110,10 @@ install-dynlink: dispatcher-dynlink inst
+ install-statlink: dispatcher-statlink install-common
  
  uninstall:
 -	$(RM) $(SBINDIR)/usb_modeswitch
@@ -127,10 +113,10 @@ index 463a11f..f20072c 100644
  	$(RM) -R $(DESTDIR)/var/lib/usb_modeswitch
 -	$(RM) $(SYSDIR)/usb_modeswitch@.service
 +	$(RM) $(DESTDIR)$(SYSDIR)/usb_modeswitch@.service
-diff --git a/usb-modeswitch-upstart.conf b/usb-modeswitch-upstart.conf
-index 0d82b69..1c177b4 100644
---- a/usb-modeswitch-upstart.conf
-+++ b/usb-modeswitch-upstart.conf
+Index: usb-modeswitch-2.6.0/usb-modeswitch-upstart.conf
+===================================================================
+--- usb-modeswitch-2.6.0.orig/usb-modeswitch-upstart.conf
++++ usb-modeswitch-2.6.0/usb-modeswitch-upstart.conf
 @@ -1,5 +1,5 @@
  start on usb-modeswitch-upstart
  task
@@ -138,13 +124,13 @@ index 0d82b69..1c177b4 100644
 -	exec /usr/sbin/usb_modeswitch_dispatcher --switch-mode $UMS_PARAM
 +	exec @sbindir@/usb_modeswitch_dispatcher --switch-mode $UMS_PARAM
  end script
-diff --git a/usb_modeswitch.sh b/usb_modeswitch.sh
-index eb3fa3e..0e93166 100755
---- a/usb_modeswitch.sh
-+++ b/usb_modeswitch.sh
+Index: usb-modeswitch-2.6.0/usb_modeswitch.sh
+===================================================================
+--- usb-modeswitch-2.6.0.orig/usb_modeswitch.sh
++++ usb-modeswitch-2.6.0/usb_modeswitch.sh
 @@ -1,5 +1,9 @@
  #!/bin/sh
- # part of usb_modeswitch 2.5.2
+ # part of usb_modeswitch 2.6.0
 +
 +# Compile time configuration, injected by the Makefile
 +SBINDIR=/usr/sbin
@@ -180,7 +166,7 @@ index eb3fa3e..0e93166 100755
 -init_path=`readlink -f /sbin/init`
 -if [ `basename $init_path` = "systemd" ]; then
 +if command -v systemctl > /dev/null; then
- 	systemctl --no-block start usb_modeswitch@$p2.service
+ 	systemctl --no-block restart usb_modeswitch@$p2.service
 -elif [ -e "/etc/init/usb-modeswitch-upstart.conf" ]; then
 +elif command -v initctl > /dev/null; then
  	initctl emit --no-wait usb-modeswitch-upstart UMS_PARAM=$p2
@@ -191,13 +177,25 @@ index eb3fa3e..0e93166 100755
 +	exec $SBINDIR/usb_modeswitch_dispatcher --switch-mode $p2 &
  fi
  exit 0
-diff --git a/usb_modeswitch.tcl b/usb_modeswitch.tcl
-index d2ee50c..8a48751 100755
---- a/usb_modeswitch.tcl
-+++ b/usb_modeswitch.tcl
+Index: usb-modeswitch-2.6.0/usb_modeswitch@.service
+===================================================================
+--- usb-modeswitch-2.6.0.orig/usb_modeswitch@.service
++++ usb-modeswitch-2.6.0/usb_modeswitch@.service
+@@ -3,6 +3,6 @@ Description=USB_ModeSwitch_%i
+ 
+ [Service]
+ Type=oneshot
+-ExecStart=/usr/sbin/usb_modeswitch_dispatcher --switch-mode %i
++ExecStart=@sbindir@/usb_modeswitch_dispatcher --switch-mode %i
+ #ExecStart=/bin/echo %i
+ 
+Index: usb-modeswitch-2.6.0/usb_modeswitch_dispatcher.tcl
+===================================================================
+--- usb-modeswitch-2.6.0.orig/usb_modeswitch_dispatcher.tcl
++++ usb-modeswitch-2.6.0/usb_modeswitch_dispatcher.tcl
 @@ -12,6 +12,16 @@
- # Part of usb-modeswitch-2.5.2 package
- # (C) Josua Dietze 2009-2017
+ # Part of usb-modeswitch-2.6.0 package
+ # (C) Josua Dietze 2009-2019
  
 +# Compile-time configuration, injected by the Makefile.
 +set setup(sbindir) /usr/sbin
@@ -212,9 +210,9 @@ index d2ee50c..8a48751 100755
  set arg0 [lindex $argv 0]
  if [regexp {\.tcl$} $arg0] {
  	if [file exists $arg0] {
-@@ -91,10 +101,8 @@ if {![regexp {(.*?):.*$} $arg1 d device]} {
+@@ -115,10 +125,8 @@ if {![regexp {(.*?):.*$} $arg1 d device]
+ 	}
  }
- set flags(logwrite) 1
  
 -set setup(dbdir) /usr/share/usb_modeswitch
 -set setup(dbdir_etc) /etc/usb_modeswitch.d
@@ -224,7 +222,7 @@ index d2ee50c..8a48751 100755
  	SafeExit
  }
  
-@@ -261,7 +269,7 @@ if {$config(NoMBIMCheck)==0 && $usb(bNumConfigurations) > 1} {
+@@ -285,7 +293,7 @@ if {$config(NoMBIMCheck)==0 && $usb(bNum
  	if [CheckMBIM] {
  		Log " driver for MBIM devices is available"
  		Log "Find MBIM configuration number ..."
@@ -233,7 +231,7 @@ index d2ee50c..8a48751 100755
  			Log "Error when trying to find MBIM configuration, switch to legacy modem mode"
  		} else {
  			set cfgno [string trim $cfgno]
-@@ -297,7 +305,7 @@ if {$report == ""} {
+@@ -321,7 +329,7 @@ if {$report == ""} {
  	# Now we are actually switching
  	if $flags(logging) {
  		Log "Command line:\nusb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f \$flags(config)"
@@ -242,7 +240,7 @@ index d2ee50c..8a48751 100755
  		Log "\nVerbose debug output of usb_modeswitch and libusb follows"
  		Log "(Note that some USB errors are to be expected in the process)"
  		Log "--------------------------------"
-@@ -305,7 +313,7 @@ if {$report == ""} {
+@@ -329,7 +337,7 @@ if {$report == ""} {
  		Log "--------------------------------"
  		Log "(end of usb_modeswitch output)\n"
  	} else {
@@ -251,19 +249,22 @@ index d2ee50c..8a48751 100755
  	}
  }
  
-@@ -498,9 +506,9 @@ return 1
+@@ -522,12 +530,12 @@ return 1
  
- proc {ParseGlobalConfig} {} {
+ proc {ParseGlobalConfig} {path} {
  
 -global flags
 +global flags setup
  set configFile ""
--set places [list /etc/usb_modeswitch.conf /etc/sysconfig/usb_modeswitch /etc/default/usb_modeswitch]
-+set places [list $setup(etcdir)/usb_modeswitch.conf $setup(etcdir)/sysconfig/usb_modeswitch $setup(etcdir)/default/usb_modeswitch]
+ if [string length $path] {
+ 	set places [list $path]
+ } else {
+-	set places [list /etc/usb_modeswitch.conf /etc/sysconfig/usb_modeswitch /etc/default/usb_modeswitch]
++	set places [list $setup(etcdir)/usb_modeswitch.conf $setup(etcdir)/sysconfig/usb_modeswitch $setup(etcdir)/default/usb_modeswitch]
+ }
  foreach cfg $places {
  	if [file exists $cfg] {
- 		set configFile $cfg
-@@ -897,10 +905,12 @@ proc {SysLog} {msg} {
+@@ -923,10 +931,12 @@ proc {SysLog} {msg} {
  
  global flags
  if {![info exists flags(logger)]} {
@@ -280,15 +281,3 @@ index d2ee50c..8a48751 100755
  		}
  	}
  	Log "Logger is $flags(logger)"
-diff --git a/usb_modeswitch@.service b/usb_modeswitch@.service
-index f74a8bf..90cb96a 100644
---- a/usb_modeswitch@.service
-+++ b/usb_modeswitch@.service
-@@ -3,6 +3,6 @@ Description=USB_ModeSwitch_%i
- 
- [Service]
- Type=oneshot
--ExecStart=/usr/sbin/usb_modeswitch_dispatcher --switch-mode %i
-+ExecStart=@sbindir@/usb_modeswitch_dispatcher --switch-mode %i
- #ExecStart=/bin/echo %i
- 
diff --git a/pkgs/development/tools/ocaml/dune/2.nix b/pkgs/development/tools/ocaml/dune/2.nix
index ed193b9e6cd..8e409ac8ca7 100644
--- a/pkgs/development/tools/ocaml/dune/2.nix
+++ b/pkgs/development/tools/ocaml/dune/2.nix
@@ -6,11 +6,11 @@ else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
-    sha256 = "1bszrjxwm2pj0ga0s9krp75xdp2yk1qi6rw0315xq57cngmphclw";
+    sha256 = "1cxf7g2kld7jmk6m47fdvmfdyqy1di517qiph55jrq7sm5akp3hy";
   };
 
   buildInputs = [ ocaml findlib ];
diff --git a/pkgs/development/tools/ocaml/opam/default.nix b/pkgs/development/tools/ocaml/opam/default.nix
index df4c0f2d12c..f1028208dae 100644
--- a/pkgs/development/tools/ocaml/opam/default.nix
+++ b/pkgs/development/tools/ocaml/opam/default.nix
@@ -31,8 +31,8 @@ let
       sha256 = "19slqf5bdj0rrph2w41giwmn6df2qm07942jn058pjkjrnk30d4s";
     };
     mccs = fetchurl {
-      url = "https://github.com/AltGr/ocaml-mccs/archive/1.1+10.tar.gz";
-      sha256 = "003kam22plnh88liyxi4d1065j2rys1mpdla20rxps53ah1xwmxg";
+      url = "https://github.com/AltGr/ocaml-mccs/archive/1.1+11.tar.gz";
+      sha256 = "0mswapf37rav8nvvbjc4c7c7wnl6qwgd3c5v0nfifmr910qygz72";
     };
     ocamlgraph = fetchurl {
       url = "http://ocamlgraph.lri.fr/download/ocamlgraph-1.8.8.tar.gz";
@@ -55,13 +55,13 @@ let
       sha256 = "02lb2d9i12bxrz2ba5wygk2bycan316skqlyri0597q7j9210g8r";
     };
     opam = fetchurl {
-      url = "https://github.com/ocaml/opam/archive/2.0.5.zip";
-      sha256 = "0arv5zaikvcqbicdk47jpfgvjrqhqm71yq2zmj7pp6zf7bm0js6s";
+      url = "https://github.com/ocaml/opam/archive/2.0.6.zip";
+      sha256 = "076070qwf7rqp5bh0mmgc5b3vyihgp4qpkd6fscxzya4in66bzf8";
     };
   };
 in stdenv.mkDerivation {
   pname = "opam";
-  version = "2.0.5";
+  version = "2.0.6";
 
   buildInputs = [ unzip curl ncurses ocaml makeWrapper getconf ] ++ lib.optional stdenv.isLinux bubblewrap;
 
@@ -112,9 +112,9 @@ in stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "A package manager for OCaml";
-    homepage = http://opam.ocamlpro.com/;
+    homepage = "https://opam.ocaml.org/";
     maintainers = [ maintainers.henrytill ];
     platforms = platforms.all;
   };
 }
-# Generated by: ./opam.nix.pl -v 2.0.5 -p opam-shebangs.patch
+# Generated by: ./opam.nix.pl -v 2.0.6 -p opam-shebangs.patch
diff --git a/pkgs/development/tools/ocaml/opam/opam.nix.pl b/pkgs/development/tools/ocaml/opam/opam.nix.pl
index 59a1cd223b5..605d0c41cae 100755
--- a/pkgs/development/tools/ocaml/opam/opam.nix.pl
+++ b/pkgs/development/tools/ocaml/opam/opam.nix.pl
@@ -64,8 +64,8 @@ print <<"EOF";
       sha256 = "$OPAM_RELEASE_SHA256";
     };
   };
-in stdenv.mkDerivation rec {
-  name = "opam-\${version}";
+in stdenv.mkDerivation {
+  pname = "opam";
   version = "$OPAM_RELEASE";
 
   buildInputs = [ unzip curl ncurses ocaml makeWrapper getconf ] ++ lib.optional stdenv.isLinux bubblewrap;
@@ -122,7 +122,7 @@ print <<'EOF';
 
   meta = with stdenv.lib; {
     description = "A package manager for OCaml";
-    homepage = http://opam.ocamlpro.com/;
+    homepage = "https://opam.ocaml.org/";
     maintainers = [ maintainers.henrytill ];
     platforms = platforms.all;
   };
diff --git a/pkgs/development/tools/purescript/spago/spago.nix b/pkgs/development/tools/purescript/spago/spago.nix
index c85cff2f03a..1a7ec35748b 100644
--- a/pkgs/development/tools/purescript/spago/spago.nix
+++ b/pkgs/development/tools/purescript/spago/spago.nix
@@ -11,11 +11,11 @@
 }:
 mkDerivation {
   pname = "spago";
-  version = "0.13.0";
+  version = "0.13.1";
   src = fetchgit {
     url = "https://github.com/spacchetti/spago.git";
-    sha256 = "158xq5zn32iwswxmpma92763hl6kzq7kb01cyvphmmlilx55b6yk";
-    rev = "426838670ba9de4593f4c533a6947efb2d8ad4ba";
+    sha256 = "0l6sy1hz5dbnrjkvb2f44afhd48nwqx5kx1h29ns93xbbd57hci8";
+    rev = "b87858609c671d8f3dc78f858ce1d8c492bd1062";
     fetchSubmodules = true;
   };
   isLibrary = true;
diff --git a/pkgs/development/tools/pypi2nix/default.nix b/pkgs/development/tools/pypi2nix/default.nix
index 76302824d9d..8ecdfb6787f 100644
--- a/pkgs/development/tools/pypi2nix/default.nix
+++ b/pkgs/development/tools/pypi2nix/default.nix
@@ -4,10 +4,10 @@ with python3;
 
 pkgs.buildPythonApplication rec {
   pname = "pypi2nix";
-  version = "2.0.2";
+  version = "2.0.3";
   src = pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1kynyarqx49j89nxd7rx8mjncg8hkklscfcr36smham7cvj17nsv";
+    sha256 = "0mja8q5lc0lils6s0v0l35knsj7n7779kw246jfmyvkc3l07j8df";
   };
   propagatedBuildInputs = with pkgs; [
     attrs
diff --git a/pkgs/development/tools/rust/cargo-bloat/default.nix b/pkgs/development/tools/rust/cargo-bloat/default.nix
index 32e369251d5..61d2c327d9b 100644
--- a/pkgs/development/tools/rust/cargo-bloat/default.nix
+++ b/pkgs/development/tools/rust/cargo-bloat/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-bloat";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "RazrFalcon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wzsc8azxgvavsbsdpd1i6g8i4sp07wn9iayr8dp8072ig5c4fhy";
+    sha256 = "0h535fnmwm1ix08a3ifasppqcm7z4fiwf6kn32vhqqpn7x9vvl53";
   };
 
   cargoSha256 = "1jc1lx0yk8galkyc4a67d39ywsfrgc2sjjsz08p47gpz7228d64w";
diff --git a/pkgs/development/tools/rust/cargo-crev/default.nix b/pkgs/development/tools/rust/cargo-crev/default.nix
index 01ca288fba8..60d0c3504c8 100644
--- a/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-crev";
-  version = "0.13.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "15b4spz080y411h7niwzb1rshhyd9cx7rc6bpa0myd2kzrfky7yl";
+    sha256 = "1v7m2yy54jm5mkg9n3wnba1j5ldw6mvk2sgbngx1q240wnc9vbnk";
   };
 
-  cargoSha256 = "02bi6pzm1ys31zi1s5yzyw47dmdgclgkfjyyfa9h686640nakg8d";
+  cargoSha256 = "09kcvrhklbzjjyqikj9c53w24qy3f6v5hb16ib4fq1s2ia77rgl2";
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/development/tools/rust/cargo-make/Cargo.lock b/pkgs/development/tools/rust/cargo-make/Cargo.lock
index 5d3392fcc38..bcf708735f6 100644
--- a/pkgs/development/tools/rust/cargo-make/Cargo.lock
+++ b/pkgs/development/tools/rust/cargo-make/Cargo.lock
@@ -5,7 +5,7 @@ name = "aho-corasick"
 version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -38,17 +38,12 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "autocfg"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "backtrace"
-version = "0.3.40"
+version = "0.3.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -86,7 +81,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -104,29 +99,29 @@ dependencies = [
 
 [[package]]
 name = "cargo-make"
-version = "0.26.0"
+version = "0.26.1"
 dependencies = [
  "ci_info 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "colored 1.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "colored 1.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "duckscript 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "duckscriptsdk 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "duckscript 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "duckscriptsdk 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "envmnt 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "fern 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
  "git_info 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "home 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "run_script 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "rust_info 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
  "shell2batch 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "toml 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -181,7 +176,7 @@ dependencies = [
 
 [[package]]
 name = "colored"
-version = "1.9.1"
+version = "1.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -191,7 +186,7 @@ dependencies = [
 
 [[package]]
 name = "constant_time_eq"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
@@ -225,28 +220,87 @@ dependencies = [
 
 [[package]]
 name = "duckscript"
-version = "0.1.4"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "duckscriptsdk"
-version = "0.1.5"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "duckscript 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "duckscript 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "home 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "hostname 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "java-properties 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "meval 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "encoding"
+version = "0.2.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "encoding-index-japanese"
+version = "1.20141219.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "encoding-index-korean"
+version = "1.20141219.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "encoding-index-simpchinese"
+version = "1.20141219.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "encoding-index-singlebyte"
+version = "1.20141219.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
+name = "encoding-index-tradchinese"
+version = "1.20141219.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "encoding_index_tests"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
 name = "envmnt"
 version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -254,7 +308,7 @@ name = "failure"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "backtrace 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)",
  "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -263,7 +317,7 @@ name = "failure_derive"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
  "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -341,14 +395,23 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
+name = "java-properties"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
 name = "lazy_static"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -373,7 +436,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "memchr"
-version = "2.2.1"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
@@ -414,7 +477,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.7"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -425,12 +488,12 @@ name = "quote"
 version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "rand"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -521,9 +584,9 @@ version = "1.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "regex-syntax 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "thread_local 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -536,7 +599,7 @@ name = "run_script"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "users 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -561,6 +624,14 @@ version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
 name = "semver"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -583,7 +654,7 @@ name = "serde_derive"
 version = "1.0.104"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -606,7 +677,7 @@ name = "syn"
 version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -616,7 +687,7 @@ name = "synstructure"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
  "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -632,7 +703,7 @@ dependencies = [
 
 [[package]]
 name = "thread_local"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -650,7 +721,7 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -680,6 +751,16 @@ version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
+name = "walkdir"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
 name = "wasi"
 version = "0.9.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -699,6 +780,14 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
+name = "winapi-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -709,9 +798,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
 "checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
 "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
 "checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
+"checksum backtrace 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b4b1549d804b6c73f4817df2ba073709e96e426f12987127c48e6745568c350b"
 "checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
 "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
 "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
@@ -724,13 +812,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 "checksum ci_info 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4e9091c3d285e7046afdb70fc7413d1ac670288705e151443f868f71e66ed2a"
 "checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
 "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-"checksum colored 1.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f930f8b286023ed451756fe2527d73484d667adf9e905e9932e81d52996a343a"
-"checksum constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120"
+"checksum colored 1.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8815e2ab78f3a59928fc32e141fbeece88320a240e43f47b2fd64ea3a88a5b3d"
+"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 "checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
 "checksum dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
 "checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
-"checksum duckscript 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "2aa0a0d525a182f41071f23b8912111e2ef42bab6ceb29794ae253977788b0c0"
-"checksum duckscriptsdk 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "79681ce8de938dfa0af2b38cae1a7fc5e341eac8acadea3578d1c07c3e6b8f29"
+"checksum duckscript 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b5394d82936cc15539317618b25d532c7fc36415eb8c1ca4c3fd263c104e6145"
+"checksum duckscriptsdk 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3053a419a5bf69b015c8a9d42d82f2fffdf106f9353384d9f5c1819b68dc6141"
+"checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
+"checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
+"checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
+"checksum encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
+"checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
+"checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
+"checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
 "checksum envmnt 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "39cdd9fdbf10b8cfa59dd70ef823cbaa83e33b86f4ad291ae67b16f4bd37bc69"
 "checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
 "checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
@@ -744,20 +839,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 "checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
 "checksum home 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654"
 "checksum hostname 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "01b1af8d6d068ba9de1c39c6ff0d879aed20f74873d4d3929a4535000bb07886"
-"checksum indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712d7b3ea5827fcb9d4fda14bf4da5f136f0db2ae9c8f4bd4e2d1c6fde4e6db2"
+"checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc"
+"checksum java-properties 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "caf4418ade5bde22a283a7f2fb537ea397ec102718f259f2630714e7a5b389fa"
 "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 "checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558"
 "checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
 "checksum match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
-"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
+"checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223"
 "checksum meval 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f79496a5651c8d57cd033c5add8ca7ee4e3d5f7587a4777484640d9cb60392d9"
 "checksum nom 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a5b8c256fd9471521bcb84c3cdba98921497f1a331cbc15b8030fc63b82050ce"
 "checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
 "checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
 "checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-"checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc"
+"checksum proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548"
 "checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
-"checksum rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412"
+"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 "checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
 "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
 "checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
@@ -773,6 +869,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 "checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
 "checksum rust_info 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "be941f2b996df7ffaf093366039c9dc182b3ca2e00f3e81df44e08c3611e773d"
 "checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
 "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
 "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 "checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
@@ -782,14 +879,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 "checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8"
 "checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
 "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-"checksum thread_local 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88ddf1ad580c7e3d1efff877d972bcc93f995556b9087a5a259630985c88ceab"
+"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
 "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
-"checksum toml 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "01d1404644c8b12b16bfcffa4322403a91a451584daaaa7c28d3152e6cbc98cf"
+"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
 "checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
 "checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
 "checksum users 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c72f4267aea0c3ec6d07eaabea6ead7c5ddacfafc5e22bcf8d186706851fb4cf"
 "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
+"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
 "checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 "checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
 "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+"checksum winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80"
 "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/pkgs/development/tools/rust/cargo-make/default.nix b/pkgs/development/tools/rust/cargo-make/default.nix
index 25d700d0445..bbad7ee731b 100644
--- a/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/pkgs/development/tools/rust/cargo-make/default.nix
@@ -2,7 +2,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.26.0";
+  version = "0.26.1";
 
   src =
     let
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
         owner = "sagiegurari";
         repo = pname;
         rev = version;
-        sha256 = "0x17slfih65hj7xc3m847792yhlkpzq2lnbxgc2kwciclyzhjgfd";
+        sha256 = "04h8vr8k790kkn09yrqv7py0sn2fmj4b51c4kjhplr0pcxkbdbdn";
       };
     in
     runCommand "cargo-make-src" {} ''
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "1p20y6a99f5bjmjkwq7jvgmvhg6klkacybq4bc4xq6135qnqhdv8";
+  cargoSha256 = "05m966h58mgq1bm92yfzzpd4ivlv4jh5fy1kfazcfsfw2k0kqmka";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
diff --git a/pkgs/development/tools/wabt/default.nix b/pkgs/development/tools/wabt/default.nix
index 4c7df9b12d8..b3be6c4552d 100644
--- a/pkgs/development/tools/wabt/default.nix
+++ b/pkgs/development/tools/wabt/default.nix
@@ -1,16 +1,24 @@
-{ stdenv, fetchFromGitHub, cmake, python3 }:
+{ stdenv, fetchFromGitHub, cmake, python3, substituteAll }:
 
 stdenv.mkDerivation rec {
   pname = "wabt";
-  version = "1.0.12";
+  version = "1.0.13";
 
   src = fetchFromGitHub {
-    owner  = "WebAssembly";
-    repo   = "wabt";
-    rev    = version;
-    sha256 = "1zlv3740wkqj4mn6sr84h0x6wk2lcp4pwwmqsh5yyqp1j1glbsa0";
+    owner = "WebAssembly";
+    repo = "wabt";
+    rev = version;
+    sha256 = "07x8m5sf4c7zjq1flypycw1d15ylqdp38l81vn961ds089ngvpgg";
+    fetchSubmodules = true;
   };
 
+  patches = [
+    (substituteAll {
+      src = ./version.patch;
+      inherit version;
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
   cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
   buildInputs = [ python3 ];
diff --git a/pkgs/development/tools/wabt/version.patch b/pkgs/development/tools/wabt/version.patch
new file mode 100644
index 00000000000..a49cd0bc155
--- /dev/null
+++ b/pkgs/development/tools/wabt/version.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 363a5660..ad3300ed 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -68,22 +68,7 @@ endif ()
+ include(CheckTypeSize)
+ check_type_size(ssize_t SSIZE_T)
+ check_type_size(size_t SIZEOF_SIZE_T)
+-
+-FIND_PACKAGE(Git QUIET REQUIRED)
+-EXECUTE_PROCESS(COMMAND
+-        "${GIT_EXECUTABLE}" --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git describe --tags
+-        RESULT_VARIABLE
+-            GIT_HASH_RESULT
+-        OUTPUT_VARIABLE
+-            GIT_HASH
+-        OUTPUT_STRIP_TRAILING_WHITESPACE)
+-
+-IF(${GIT_HASH_RESULT} EQUAL 0)
+-    SET(WABT_VERSION_INFO "${GIT_HASH}")
+-ELSE()
+-    MESSAGE(WARNING "Error running git describe to determine version")
+-    SET(WABT_VERSION_INFO "(unable to determine version)")
+-ENDIF()
++SET(WABT_VERSION_INFO "@version@")
+ 
+ configure_file(
+   ${WABT_SOURCE_DIR}/src/config.h.in
diff --git a/pkgs/games/crispy-doom/default.nix b/pkgs/games/crispy-doom/default.nix
index 4fb4f301cfb..e85cebde040 100644
--- a/pkgs/games/crispy-doom/default.nix
+++ b/pkgs/games/crispy-doom/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "crispy-doom";
-  version = "5.6.3";
+  version = "5.6.4";
 
   src = fetchFromGitHub {
     owner = "fabiangreffrath";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "0f319979wqfgm4pvsa6y5clg30p55l441kmrr8db0p5smyv3x2s4";
+    sha256 = "1ls4v2kpb7vi7xji5yqbmyc5lfkz497h1vvj9w86wkrw8k59hlg2";
   };
 
   postPatch = ''
diff --git a/pkgs/games/nudoku/default.nix b/pkgs/games/nudoku/default.nix
new file mode 100644
index 00000000000..b9e521bce36
--- /dev/null
+++ b/pkgs/games/nudoku/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gettext, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "nudoku";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "jubalh";
+    repo = pname;
+    rev = version;
+    sha256 = "0rj8ajni7gssj0qbf1jn51699sadxwsr6ca2718w74psv7acda8h";
+  };
+
+  # Allow gettext 0.20
+  postPatch = ''
+    substituteInPlace configure.ac --replace 0.19 0.20
+  '';
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig gettext ];
+  buildInputs = [ ncurses ];
+
+  configureFlags = stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-nls";
+
+  meta = with stdenv.lib; {
+    description = "An ncurses based sudoku game";
+    homepage = "http://jubalh.github.io/nudoku/";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
+
diff --git a/pkgs/games/quakespasm/vulkan.nix b/pkgs/games/quakespasm/vulkan.nix
index e30065666b0..deca3bec9cc 100644
--- a/pkgs/games/quakespasm/vulkan.nix
+++ b/pkgs/games/quakespasm/vulkan.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vkquake";
-  version = "1.03.0";
+  version = "1.04.1";
 
   src = fetchFromGitHub {
     owner = "Novum";
     repo = "vkQuake";
     rev = version;
-    sha256 = "1x2lx1fvr2p91clbx2jcc29j5yyh0xwq9fh0lyxhyadf5a710fn0";
+    sha256 = "1ry861pk3z02hy7i0yi3xwmd1zma802qzcnlm09w6pslayd9rwbf";
   };
 
   sourceRoot = "source/Quake";
diff --git a/pkgs/games/stockfish/default.nix b/pkgs/games/stockfish/default.nix
index 07ca9223bb0..1919383048e 100644
--- a/pkgs/games/stockfish/default.nix
+++ b/pkgs/games/stockfish/default.nix
@@ -4,7 +4,7 @@ let arch = if stdenv.isx86_64 then "x86-64" else
            if stdenv.isi686 then "x86-32" else
            "unknown";
 
-    version = "10";
+    version = "11";
 in
 
 stdenv.mkDerivation {
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://github.com/official-stockfish/Stockfish/archive/sf_${version}.tar.gz";
-    sha256 = "1lrxqq8fw1wrw5b45r4s3ddd51yr85a2k8a9i1wjvyd6v9vm7761";
+    sha256 = "16di83s79gf9kzdhcal5y0q9d59544gd5xqf1k8bwrqvc36628l0";
   };
 
   postUnpack = "sourceRoot+=/src";
diff --git a/pkgs/games/teeworlds/default.nix b/pkgs/games/teeworlds/default.nix
index f0c40274d9a..ceb90809904 100644
--- a/pkgs/games/teeworlds/default.nix
+++ b/pkgs/games/teeworlds/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "teeworlds";
-  version = "0.7.3.1";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "teeworlds";
     repo = "teeworlds";
     rev = version;
-    sha256 = "1hfj22xxswqnm1s74ln3dwl63rs4mk9g4yvpf75plswbxd0020la";
+    sha256 = "1llrzcc9p8pswk58rj4qh4g67nlji8q2kw3hxh3qpli85jvkdmyx";
     fetchSubmodules = true;
   };
 
@@ -24,11 +24,15 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ bam pkgconfig ];
 
   configurePhase = ''
+    runHook preConfigure
     bam config
+    runHook postConfigure
   '';
 
   buildPhase = ''
+    runHook preBuild
     bam conf=release
+    runHook postBuild
   '';
 
   installPhase = ''
diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index ecb74f39ab9..a7e080ebce2 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -12,11 +12,11 @@
 let
 
   name = "hplip-${version}";
-  version = "3.19.6";
+  version = "3.19.12";
 
   src = fetchurl {
     url = "mirror://sourceforge/hplip/${name}.tar.gz";
-    sha256 = "0vfnc6pg7wzs68qn5mlk3cyl969d8n55bydgydq2wzfikvpfvnpw";
+    sha256 = "0mdj0sqgfxjqa550adiw1gn4z9n6wcvn55slivgf0ndn5x89iwxp";
   };
 
   plugin = fetchurl {
@@ -34,12 +34,13 @@ let
     x86_64-linux = "x86_64";
     armv6l-linux = "arm32";
     armv7l-linux = "arm32";
+    aarch64-linux = "aarch64";
   };
 
   hplipArch = hplipPlatforms.${stdenv.hostPlatform.system}
     or (throw "HPLIP not supported on ${stdenv.hostPlatform.system}");
 
-  pluginArches = [ "x86_32" "x86_64" "arm32" ];
+  pluginArches = [ "x86_32" "x86_64" "arm32" "aarch64" ];
 
 in
 
@@ -64,9 +65,7 @@ python3Packages.buildPythonApplication {
     zlib
   ];
 
-  nativeBuildInputs = [
-    pkgconfig
-  ];
+  nativeBuildInputs = [ pkgconfig ];
 
   pythonPath = with python3Packages; [
     dbus
@@ -226,7 +225,7 @@ python3Packages.buildPythonApplication {
     license = if withPlugin
       then licenses.unfree
       else with licenses; [ mit bsd2 gpl2Plus ];
-    platforms = [ "i686-linux" "x86_64-linux" "armv6l-linux" "armv7l-linux" ];
+    platforms = [ "i686-linux" "x86_64-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" ];
     maintainers = with maintainers; [ ttuegel ];
   };
 }
diff --git a/pkgs/misc/drivers/hplip/image-processor.patch b/pkgs/misc/drivers/hplip/image-processor.patch
index ef1040ba08b..30df1d29d97 100644
--- a/pkgs/misc/drivers/hplip/image-processor.patch
+++ b/pkgs/misc/drivers/hplip/image-processor.patch
@@ -1,7 +1,57 @@
-diff --git i/prnt/hpcups/HPCupsFilter.cpp w/prnt/hpcups/HPCupsFilter.cpp
+From 207aa582477dd874d1651db2d0654c5d6adb6e0a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Fri, 20 Dec 2019 13:13:52 +0000
+Subject: [PATCH] remove imageprocessor
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
+---
+ Makefile.am                  |  4 ++--
+ Makefile.in                  |  2 +-
+ prnt/hpcups/HPCupsFilter.cpp | 19 -------------------
+ 3 files changed, 3 insertions(+), 22 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 891660d..484a051 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -166,7 +166,7 @@ if !HPLIP_CLASS_DRIVER
+ dist_hplip_SCRIPTS = hpssd.py __init__.py hpdio.py
+ endif #HPLIP_CLASS_DRIVER
+ 
+-dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template prnt/hpcups/libImageProcessor-x86_64.so prnt/hpcups/libImageProcessor-x86_32.so
++dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template
+ dist_noinst_SCRIPTS += dat2drv.py install.py  hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
+ 
+ if !HPLIP_CLASS_DRIVER
+@@ -594,7 +594,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
+ 	prnt/hpcups/ImageProcessor.h
+ 
+ hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
+-hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
++hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
+ #else
+ #hpcupsdir = $(cupsfilterdir)
+ #hpcups_PROGRAMS = hpcups
+diff --git a/Makefile.in b/Makefile.in
+index 16c39f0..46a767e 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -4814,7 +4814,7 @@ libapdk_la_CFLAGS = $(libapdk_la_CXXFLAGS) -Iprnt/hpijs
+ @HPCUPS_INSTALL_TRUE@	prnt/hpcups/ImageProcessor.h
+ 
+ @HPCUPS_INSTALL_TRUE@hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
+-@HPCUPS_INSTALL_TRUE@hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
++@HPCUPS_INSTALL_TRUE@hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
+ #else
+ #hpcupsdir = $(cupsfilterdir)
+ #hpcups_PROGRAMS = hpcups
+diff --git a/prnt/hpcups/HPCupsFilter.cpp b/prnt/hpcups/HPCupsFilter.cpp
 index 5b282d8..153ee3a 100644
---- i/prnt/hpcups/HPCupsFilter.cpp
-+++ w/prnt/hpcups/HPCupsFilter.cpp
+--- a/prnt/hpcups/HPCupsFilter.cpp
++++ b/prnt/hpcups/HPCupsFilter.cpp
 @@ -31,7 +31,6 @@
  \*****************************************************************************/
  
@@ -60,3 +110,6 @@ index 5b282d8..153ee3a 100644
      unlink(hpPreProcessedRasterFile);
      return ret_status;
  }
+-- 
+2.24.1
+
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index ca82935b767..21d00b30dcb 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -19,36 +19,36 @@ in rec {
 
     ## see http://wiki.winehq.org/Gecko
     gecko32 = fetchurl rec {
-      version = "2.47";
-      url = "http://dl.winehq.org/wine/wine-gecko/${version}/wine_gecko-${version}-x86.msi";
-      sha256 = "0fk4fwb4ym8xn0i5jv5r5y198jbpka24xmxgr8hjv5b3blgkd2iv";
+      version = "2.47.1";
+      url = "https://dl.winehq.org/wine/wine-gecko/${version}/wine-gecko-${version}-x86.msi";
+      sha256 = "0ld03pjm65xkpgqkvfsmk6h9krjsqbgxw4b8rvl2fj20j8l0w2zh";
     };
     gecko64 = fetchurl rec {
-      version = "2.47";
-      url = "http://dl.winehq.org/wine/wine-gecko/${version}/wine_gecko-${version}-x86_64.msi";
-      sha256 = "0zaagqsji6zaag92fqwlasjs8v9hwjci5c2agn9m7a8fwljylrf5";
+      version = "2.47.1";
+      url = "https://dl.winehq.org/wine/wine-gecko/${version}/wine-gecko-${version}-x86_64.msi";
+      sha256 = "0jj7azmpy07319238g52a8m4nkdwj9g010i355ykxnl8m5wjwcb9";
     };
 
     ## see http://wiki.winehq.org/Mono
     mono = fetchurl rec {
-      version = "4.9.3";
-      url = "http://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}.msi";
-      sha256 = "0va7nbhvfb52g78s9k3zc6xxwsn5whfyn333s6fdxycp8rkvgxkw";
+      version = "4.9.4";
+      url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}.msi";
+      sha256 = "1p8g45xphxnns7dkg9rbaknarbjy5cjhrngaf0fsgk9z68wgz9ji";
     };
   };
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "5.0-rc2";
+    version = "5.0-rc6";
     url = "https://dl.winehq.org/wine/source/5.0/wine-${version}.tar.xz";
-    sha256 = "1dj2z7yikab0hc06hf2kafanbaa49ignghzxq5a3la5mg8ya4vd7";
+    sha256 = "1d1kv7ppqq5irx3wv2lw810ylg8wk1nddc1kwb936v5qrkkgifwc";
     inherit (stable) mono gecko32 gecko64;
   };
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "0zzlzz2nagrkq3m2v900w5j7k0vvxbdqffvsnjxxha8k6axl4z53";
+    sha256 = "193z92gpw7f421a4sa46qmp90pnbgglrlgyzfs5zpap32zmwhrqz";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
@@ -56,8 +56,8 @@ in rec {
 
   winetricks = fetchFromGitHub rec {
     # https://github.com/Winetricks/winetricks/releases
-    version = "20190912";
-    sha256 = "08my9crgpj5ai77bm64v99x4kmdb9dl8fw14581n69id449v7gzv";
+    version = "20191224";
+    sha256 = "07q3zh2i3xqzpg46ljarhq3a4ha9zwpc6jqzvly0kfglkh3b3v66";
     owner = "Winetricks";
     repo = "winetricks";
     rev = version;
diff --git a/pkgs/misc/scream-receivers/default.nix b/pkgs/misc/scream-receivers/default.nix
index 2ca00ccc9ce..6c0f73f1b25 100644
--- a/pkgs/misc/scream-receivers/default.nix
+++ b/pkgs/misc/scream-receivers/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "scream-receivers";
-  version = "3.3";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner = "duncanthrax";
     repo = "scream";
     rev = version;
-    sha256 = "1iqhs7m0fv3vfld7h288j5j0jc5xdihaghd0jd9qrk68mj2g6g9w";
+    sha256 = "1ig89bmzfrm57nd8lamzsdz5z81ks5vjvq3f0xhgm2dk2mrgjsj3";
   };
 
   buildInputs = [ alsaLib ] ++ lib.optional pulseSupport libpulseaudio;
@@ -51,6 +51,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/duncanthrax/scream";
     license = licenses.mspl;
     platforms = platforms.linux;
-    maintainers = [ maintainers.ivan ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/misc/seafile-shared/default.nix b/pkgs/misc/seafile-shared/default.nix
index 1dcf16585f0..6236b3a71ba 100644
--- a/pkgs/misc/seafile-shared/default.nix
+++ b/pkgs/misc/seafile-shared/default.nix
@@ -1,27 +1,48 @@
-{stdenv, fetchFromGitHub, which, autoreconfHook, pkgconfig, curl, vala, python, intltool, fuse, ccnet}:
+{stdenv, fetchFromGitHub, which, autoreconfHook, pkgconfig, vala, python2, curl, libevent, glib, libsearpc, sqlite, intltool, fuse, ccnet, libuuid }:
 
 stdenv.mkDerivation rec {
-  version = "7.0.2";
   pname = "seafile-shared";
+  version = "7.0.5";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile";
     rev = "v${version}";
-    sha256 = "0633hhz2cky95y8mvrg9q2cyrnzpnzvn8fcq350wl4a64ij6wa04";
+    sha256 = "162dnm3sf7bkrnyqd8bcb6il6f2cam9gnaxj6d5dn48k77fw9ryc";
   };
 
-  nativeBuildInputs = [ pkgconfig which autoreconfHook vala intltool ];
-  buildInputs = [ python fuse ];
-  propagatedBuildInputs = [ ccnet curl ];
+  nativeBuildInputs = [
+    autoreconfHook
+    vala
+    pkgconfig
+    python2
+    python2.pkgs.wrapPython
+  ];
+
+  buildInputs = [
+    libuuid
+    sqlite
+    libsearpc
+    libevent
+    curl
+  ];
 
   configureFlags = [
     "--disable-server"
     "--disable-console"
   ];
 
+  pythonPath = with python2.pkgs; [
+    future
+    libsearpc
+  ];
+
+  postFixup = ''
+    wrapPythonPrograms
+  '';
+
   meta = with stdenv.lib; {
-    homepage = https://github.com/haiwen/seafile;
+    homepage = "https://github.com/haiwen/seafile";
     description = "Shared components of Seafile: seafile-daemon, libseafile, libseafile python bindings, manuals, and icons";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index 13416271703..bd829998b5b 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -919,6 +919,17 @@ let
     };
   };
 
+  deoplete-emoji = buildVimPluginFrom2Nix {
+    pname = "deoplete-emoji";
+    version = "2019-01-20";
+    src = fetchFromGitHub {
+      owner = "fszymanski";
+      repo = "deoplete-emoji";
+      rev = "1dfa2da6ae3ee146ddfbfdba48cf45f0c1d57d7d";
+      sha256 = "0drqbdmy8igq6rv7s2qlxsp391pydcynlr9gkaadzrg7pk4nlgsb";
+    };
+  };
+
   deoplete-fish = buildVimPluginFrom2Nix {
     pname = "deoplete-fish";
     version = "2020-01-02";
@@ -987,6 +998,17 @@ let
     };
   };
 
+  deoplete-notmuch = buildVimPluginFrom2Nix {
+    pname = "deoplete-notmuch";
+    version = "2018-12-11";
+    src = fetchFromGitHub {
+      owner = "Valodim";
+      repo = "deoplete-notmuch";
+      rev = "828b5acf1924f9869614e93855a0d8cc94f1a74d";
+      sha256 = "1l2pfazhpkz26zwbjdafvhgvjj533kncm7dywlandsf3cibm8mv9";
+    };
+  };
+
   deoplete-rust = buildVimPluginFrom2Nix {
     pname = "deoplete-rust";
     version = "2017-07-18";
@@ -1020,6 +1042,17 @@ let
     };
   };
 
+  deoplete-zsh = buildVimPluginFrom2Nix {
+    pname = "deoplete-zsh";
+    version = "2019-11-10";
+    src = fetchFromGitHub {
+      owner = "deoplete-plugins";
+      repo = "deoplete-zsh";
+      rev = "92b7afc3804dd17a849b207e184359558ab8f444";
+      sha256 = "0zsbkl82kny1vmfv06iz576xsclbik0xr7ndzpb0ddhw5nfnicfx";
+    };
+  };
+
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
     version = "2020-01-10";
@@ -4182,6 +4215,17 @@ let
     };
   };
 
+  vim-indentwise = buildVimPluginFrom2Nix {
+    pname = "vim-indentwise";
+    version = "2015-06-07";
+    src = fetchFromGitHub {
+      owner = "jeetsukumaran";
+      repo = "vim-indentwise";
+      rev = "608bd6876d3b56d469e0e615eb774a6e06095dbf";
+      sha256 = "0bnzk1afi88icq58389nxqz196gkxcj71qrxvw87d72h2zaspvcx";
+    };
+  };
+
   vim-indexed-search = buildVimPluginFrom2Nix {
     pname = "vim-indexed-search";
     version = "2019-07-04";
@@ -4975,6 +5019,17 @@ let
     };
   };
 
+  vim-sandwich = buildVimPluginFrom2Nix {
+    pname = "vim-sandwich";
+    version = "2019-12-06";
+    src = fetchFromGitHub {
+      owner = "machakann";
+      repo = "vim-sandwich";
+      rev = "a0cde9cfb20d9aff10a09b7fc776231f7856abef";
+      sha256 = "0dzrzz9ngprh2zd3wnnbr9qcs7ilgchadw4l39ncny6x43fk2ckd";
+    };
+  };
+
   vim-sayonara = buildVimPluginFrom2Nix {
     pname = "vim-sayonara";
     version = "2017-03-13";
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index b22a811d2a8..37019541caa 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -64,6 +64,7 @@ davidhalter/jedi-vim
 dcharbon/vim-flatbuffers
 deoplete-plugins/deoplete-dictionary
 deoplete-plugins/deoplete-jedi
+deoplete-plugins/deoplete-zsh
 derekelkins/agda-vim
 derekwyatt/vim-scala
 dhruvasagar/vim-table-mode
@@ -98,6 +99,7 @@ floobits/floobits-neovim
 freitass/todo.txt-vim
 frigoeu/psc-ide-vim
 fsharp/vim-fsharp
+fszymanski/deoplete-emoji
 garbas/vim-snipmate
 gentoo/gentoo-syntax
 gibiansky/vim-textobj-haskell
@@ -145,6 +147,7 @@ JazzCore/ctrlp-cmatcher
 jceb/vim-hier
 jceb/vim-orgmode
 jeetsukumaran/vim-buffergator
+jeetsukumaran/vim-indentwise
 jeffkreeftmeijer/neovim-sensible
 jelera/vim-javascript-syntax
 jgdavey/tslime.vim
@@ -221,6 +224,7 @@ luochen1990/rainbow
 lyokha/vim-xkbswitch
 machakann/vim-highlightedyank
 machakann/vim-swap
+machakann/vim-sandwich
 majutsushi/tagbar
 maksimr/vim-jsbeautify
 MarcWeber/vim-addon-actions
@@ -483,6 +487,7 @@ uarun/vim-protobuf
 udalov/kotlin-vim
 ujihisa/neco-look
 unblevable/quick-scope
+Valodim/deoplete-notmuch
 valloric/youcompleteme
 vhda/verilog_systemverilog.vim
 vim-airline/vim-airline
diff --git a/pkgs/misc/vscode-extensions/python/default.nix b/pkgs/misc/vscode-extensions/python/default.nix
index 00f97f37307..553dbc30645 100644
--- a/pkgs/misc/vscode-extensions/python/default.nix
+++ b/pkgs/misc/vscode-extensions/python/default.nix
@@ -23,14 +23,14 @@ let
     else throw "Only x86_64 Linux and Darwin are supported.";
 
   languageServerSha256 = {
-    linux-x64 = "1w3y0sn6ijk1vspi4lailg1q1iy9lwslhx92c7jbrrkiaszvaqwn";
-    osx-x64 = "11l4fic8cvgh1l3dq6qxi51pwhcic79zf13rhyajl5w5g13caafp";
+    linux-x64 = "159xfhpvqw6k8s5bk5jw3aydn6v61fbanq2mvddxcrf5hwf8cj8h";
+    osx-x64 = "0xjh1h77axbbyxikqkhq885n97srm0f15s4976pm1rka03zvd0bg";
   }.${arch};
 
   # version is languageServerVersion in the package.json
   languageServer = extractNuGet rec {
     name = "Python-Language-Server";
-    version = "0.4.24";
+    version = "0.4.71";
 
     src = fetchurl {
       url = "https://pvsc.azureedge.net/python-language-server-stable/${name}-${arch}.${version}.nupkg";
diff --git a/pkgs/os-specific/linux/evdi/default.nix b/pkgs/os-specific/linux/evdi/default.nix
index 72f3b1fbd9c..42f959a6157 100644
--- a/pkgs/os-specific/linux/evdi/default.nix
+++ b/pkgs/os-specific/linux/evdi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evdi";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "DisplayLink";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gp8xbhd5pmcl95izhpvw9gxfcsbv5f80s6q39l4y3z9j734rb8j";
+    sha256 = "1yrjm8lvvz3v4h5af6m9qzq6z4lbgd7qbvq5rz7sjhdsh7g6qibd";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
diff --git a/pkgs/os-specific/linux/facetimehd/default.nix b/pkgs/os-specific/linux/facetimehd/default.nix
index d65018c600e..99e72c33983 100644
--- a/pkgs/os-specific/linux/facetimehd/default.nix
+++ b/pkgs/os-specific/linux/facetimehd/default.nix
@@ -16,9 +16,9 @@ let
   #       still works.
   srcParams = if (stdenv.lib.versionAtLeast kernel.version "4.8") then
     { # Use mainline branch
-      version = "unstable-2016-10-09";
-      rev = "887d0f531ef7b91457be519474136c3355c5132b";
-      sha256 = "0bayahnxar1q6wvf9cb6p8gsfw98w0wqp715hs4r7apmddwk9v7n";
+      version = "unstable-2019-12-10";
+      rev = "ea832ac486afb6dac9ef59aa37e90f332ab7f05a";
+      sha256 = "1dg2i558hjnjnyk53xyg0ayykqaial9bm420v22s9a3khzzjnwq3";
     }
   else
     { # Use master branch (broken on 4.8)
diff --git a/pkgs/os-specific/linux/firejail/default.nix b/pkgs/os-specific/linux/firejail/default.nix
index 8200acf62b7..678592c0379 100644
--- a/pkgs/os-specific/linux/firejail/default.nix
+++ b/pkgs/os-specific/linux/firejail/default.nix
@@ -3,10 +3,10 @@ let
   s = # Generated upstream information
   rec {
     baseName="firejail";
-    version="0.9.60";
+    version="0.9.62";
     name="${baseName}-${version}";
     url="mirror://sourceforge/firejail/firejail/firejail-${version}.tar.xz";
-    sha256="1mw2s040wbxaj4lqfm6033wxrxlnix40mqc2bsfran5sj2gxd3sh";
+    sha256="1q2silgy882fl61p5qa9f9jqkxcqnwa71jig3c729iahx4f0hs05";
   };
   buildInputs = [
     which
@@ -52,7 +52,7 @@ stdenv.mkDerivation {
     license = stdenv.lib.licenses.gpl2Plus ;
     maintainers = [stdenv.lib.maintainers.raskin];
     platforms = stdenv.lib.platforms.linux;
-    homepage = https://l3net.wordpress.com/projects/firejail/;
+    homepage = https://firejail.wordpress.com/;
     downloadPage = "https://sourceforge.net/projects/firejail/files/firejail/";
   };
 }
diff --git a/pkgs/os-specific/linux/health-check/default.nix b/pkgs/os-specific/linux/health-check/default.nix
index d45f6c5f896..694d4565d96 100644
--- a/pkgs/os-specific/linux/health-check/default.nix
+++ b/pkgs/os-specific/linux/health-check/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "health-check";
-  version = "0.03.04";
+  version = "0.03.05";
 
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0p85ai31n9hh6d4b79zzlczf9arsy7vmkjak1x3g9f5qj8fy4avp";
+    sha256 = "1qxmkdl4pa043yg4kq5ffapm0c2cmm64h3v2c3xhnx0ad5pbhy5z";
   };
 
   buildInputs = [ json_c libbsd ];
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 052217c0060..71b626479ba 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.164";
+  version = "4.14.166";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0jzbgpxlfy64q7zaqix87k8ci1fr9lkx1xr9m5zjniziydhi00x2";
+    sha256 = "003wax7dsahlv1iv9yqhkjbxx20crmwyd9464cx974i03a0vzclb";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index e938d8ff33e..fc0caad7406 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19.95";
+  version = "4.19.97";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1c2g5wcf4zgy5q51qrf0s4hf3pr1j8gi8gn27w8cafn1xqrcmvaa";
+    sha256 = "1nln2ksfm0ddkqdmhvxwzqq96av1myx89kr1wxs54m2yw0la7clg";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index 0cdb2710b62..0651232f91f 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.209";
+  version = "4.4.210";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0m94795grq3sbj7jlmwc0ncq3vap9lf1z00sdiys17kjs3bcfbnh";
+    sha256 = "1pg754s3138d2lq5y2zd1z7dagdy8pl4ifmp0754sa1rkjd3h0ns";
   };
 } // (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 a5fa03b774a..7c649bd9b57 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.209";
+  version = "4.9.210";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1qarm90l1r4y68v5swhf81z6v6gspa8sw9jab3fxrz8mz6zdan02";
+    sha256 = "04skcbbp1yv54hwipa1pjx04lb21013r0lh2swycq0kdhc1m54d0";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index 73fe68261ab..9b1ebeeb489 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.4.11";
+  version = "5.4.13";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0b6pamnhyzf4n6sl8lxcnllrn41xmbldipfca23j1n71spjkdgb2";
+    sha256 = "1mva73ywb2r5lrmzp5m7hyy0zpgxdg91nw42c1z1sz3ydpcjkys9";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index b6231b5a972..00dcb6f0f48 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.5-rc6";
+  version = "5.5-rc7";
   extraMeta.branch = "5.5";
 
   # modDirVersion needs to be x.y.z, will always add .0
@@ -11,7 +11,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "0y4rsxynn0qprrsxy4v5vr4ihhavn43yqqp1qfrrxsfw15djncc2";
+    sha256 = "10fjk4bw73x5xpb4q83ngni7slw489wdxhdwmyrkfqqy5chgm290";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix
index 8631ddf01d0..ed901b21ac1 100644
--- a/pkgs/os-specific/linux/syslinux/default.nix
+++ b/pkgs/os-specific/linux/syslinux/default.nix
@@ -1,13 +1,14 @@
-{ stdenv, fetchFromGitHub, fetchurl, nasm, perl, python, libuuid, mtools, makeWrapper }:
+{ stdenv, fetchFromRepoOrCz, fetchurl, nasm, perl, python3, libuuid, mtools, makeWrapper }:
 
 stdenv.mkDerivation {
-  name = "syslinux-2015-11-09";
+  name = "syslinux-2019-02-07";
 
-  src = fetchFromGitHub {
-    owner = "geneC";
+  # This is syslinux-6.04-pre3^1; syslinux-6.04-pre3 fails to run.
+  # Same issue here https://www.syslinux.org/archives/2019-February/026330.html
+  src = fetchFromRepoOrCz {
     repo = "syslinux";
-    rev = "0cc9a99e560a2f52bcf052fd85b1efae35ee812f";
-    sha256 = "0wk3r5ki4lc334f9jpml07wpl8d0bnxi9h1l4h4fyf9a0d7n4kmw";
+    rev = "b40487005223a78c3bb4c300ef6c436b3f6ec1f7";
+    sha256 = "1qrxl1114sr2i2791z9rf8v53g200aq30f08808d7i8qnmgvxl2w";
   };
 
   patches = let
@@ -15,12 +16,13 @@ stdenv.mkDerivation {
       "https://salsa.debian.org/images-team/syslinux/raw/${commit}/debian/patches/"
       + patchName;
   in [
-    ./perl-deps.patch
     (fetchurl {
-      # ldlinux.elf: Not enough room for program headers, try linking with -N
-      name = "not-enough-room.patch";
-      url = mkURL "a556ad7" "0014_fix_ftbfs_no_dynamic_linker.patch";
-      sha256 = "0ijqjsjmnphmvsx0z6ppnajsfv6xh6crshy44i2a5klxw4nlvrsw";
+      url = mkURL "fa1349f1" "0002-gfxboot-menu-label.patch";
+      sha256 = "06ifgzbpjj4picpj17zgprsfi501zf4pp85qjjgn29i5rs291zni";
+    })
+    (fetchurl {
+      url = mkURL "477e56d2" "0005-gnu-efi-version-compatibility.patch";
+      sha256 = "041568b4abb79wynyps1n04lg4fr26rc3sbjncz99pp0mbz0ajlm";
     })
     (fetchurl {
       # mbr.bin: too big (452 > 440)
@@ -33,20 +35,22 @@ stdenv.mkDerivation {
       url = mkURL "012e1dd312eb" "0017-single-load-segment.patch";
       sha256 = "0azqzicsjw47b9ppyikhzaqmjl4lrvkxris1356bkmgcaiv6d98b";
     })
+    (fetchurl {
+      url = mkURL "26f0e7b2" "0018-prevent-pow-optimization.patch";
+      sha256 = "1c8g0jz5yj9a0rsmryx9vdjsw4hw8mjfcg05c9pmyjg85w3dfp3m";
+    })
   ];
 
   postPatch = ''
     substituteInPlace Makefile --replace /bin/pwd $(type -P pwd)
-    substituteInPlace gpxe/src/Makefile.housekeeping --replace /bin/echo $(type -P echo)
     substituteInPlace utils/ppmtolss16 --replace /usr/bin/perl $(type -P perl)
-    substituteInPlace gpxe/src/Makefile --replace /usr/bin/perl $(type -P perl)
 
     # fix tests
     substituteInPlace tests/unittest/include/unittest/unittest.h \
       --replace /usr/include/ ""
   '';
 
-  nativeBuildInputs = [ nasm perl python ];
+  nativeBuildInputs = [ nasm perl python3 ];
   buildInputs = [ libuuid makeWrapper ];
 
   enableParallelBuilding = false; # Fails very rarely with 'No rule to make target: ...'
diff --git a/pkgs/os-specific/linux/syslinux/perl-deps.patch b/pkgs/os-specific/linux/syslinux/perl-deps.patch
deleted file mode 100644
index 82c9820809e..00000000000
--- a/pkgs/os-specific/linux/syslinux/perl-deps.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-http://git.ipxe.org/ipxe.git/commitdiff/719b498
-
-diff -ru -x '*~' -x '*.orig' -x '*.rej' syslinux-4.02-orig/gpxe/src/arch/i386/Makefile.pcbios syslinux-4.02/gpxe/src/arch/i386/Makefile.pcbios
---- syslinux-4.02-orig/gpxe/src/arch/i386/Makefile.pcbios	2010-07-21 21:33:13.000000000 +0200
-+++ syslinux-4.02/gpxe/src/arch/i386/Makefile.pcbios	2010-08-06 23:32:57.000000000 +0200
-@@ -24,11 +24,11 @@
- 
- # Padding rules
- #
--PAD_rom		= $(PADIMG) --blksize=512 --byte=0xff $@
-+PAD_rom		= $(PERL) $(PADIMG) --blksize=512 --byte=0xff $@
- PAD_hrom	= $(PAD_rom)
- PAD_xrom	= $(PAD_rom)
--PAD_dsk		= $(PADIMG) --blksize=512 $@
--PAD_hd		= $(PADIMG) --blksize=32768 $@
-+PAD_dsk		= $(PERL) $(PADIMG) --blksize=512 $@
-+PAD_hd		= $(PERL) $(PADIMG) --blksize=32768 $@
- 
- # rule to make a non-emulation ISO boot image
- NON_AUTO_MEDIA	+= iso
-diff -ru -x '*~' -x '*.orig' -x '*.rej' syslinux-4.02-orig/gpxe/src/Makefile syslinux-4.02/gpxe/src/Makefile
---- syslinux-4.02-orig/gpxe/src/Makefile	2010-07-21 21:33:13.000000000 +0200
-+++ syslinux-4.02/gpxe/src/Makefile	2010-08-06 23:31:15.000000000 +0200
-@@ -31,12 +31,12 @@
- OBJCOPY		:= $(CROSS_COMPILE)objcopy
- NM		:= $(CROSS_COMPILE)nm
- OBJDUMP		:= $(CROSS_COMPILE)objdump
--PARSEROM	:= $(PERL) ./util/parserom.pl
--MAKEROM		:= $(PERL) ./util/makerom.pl
--SYMCHECK	:= $(PERL) ./util/symcheck.pl
--SORTOBJDUMP	:= $(PERL) ./util/sortobjdump.pl
--PADIMG		:= $(PERL) ./util/padimg.pl
--LICENCE		:= $(PERL) ./util/licence.pl
-+PARSEROM	:= ./util/parserom.pl
-+MAKEROM		:= ./util/makerom.pl
-+SYMCHECK	:= ./util/symcheck.pl
-+SORTOBJDUMP	:= ./util/sortobjdump.pl
-+PADIMG		:= ./util/padimg.pl
-+LICENCE		:= ./util/licence.pl
- NRV2B		:= ./util/nrv2b
- ZBIN		:= ./util/zbin
- ELF2EFI32	:= ./util/elf2efi32
-diff -ru -x '*~' -x '*.orig' -x '*.rej' syslinux-4.02-orig/gpxe/src/Makefile.housekeeping syslinux-4.02/gpxe/src/Makefile.housekeeping
---- syslinux-4.02-orig/gpxe/src/Makefile.housekeeping	2010-07-21 21:33:13.000000000 +0200
-+++ syslinux-4.02/gpxe/src/Makefile.housekeeping	2010-08-06 23:31:49.000000000 +0200
-@@ -456,7 +456,7 @@
- 		 '\n$(2) : $$($(4)_DEPS)\n' \
- 		 '\nTAGS : $$($(4)_DEPS)\n' \
- 		>> $(2)
--	@$(PARSEROM) $(1) >> $(2)
-+	@$(PERL) $(PARSEROM) $(1) >> $(2)
- 
- endef
- 
-@@ -657,7 +657,7 @@
- 	$(QM)$(ECHO) "  [LD] $@"
- 	$(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $(BLIB) -o $@ \
- 		-Map $(BIN)/$*.tmp.map
--	$(Q)$(OBJDUMP) -ht $@ | $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map
-+	$(Q)$(OBJDUMP) -ht $@ | $(PERL) $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map
- 
- # Keep intermediate object file (useful for debugging)
- .PRECIOUS : $(BIN)/%.tmp
-@@ -714,7 +714,7 @@
- 		echo "files are missing a licence declaration:" ;\
- 		echo $(call unlicensed_deps_list,$<);\
- 		exit 1,\
--		$(LICENCE) $(call licence_list,$<))
-+		$(PERL) $(LICENCE) $(call licence_list,$<))
- 
- # Extract compression information from intermediate object file
- #
-@@ -941,7 +941,7 @@
- CLEANUP	+= $(BIN)/symtab
- 
- symcheck : $(SYMTAB)
--	$(SYMCHECK) $<
-+	$(PERL) $(SYMCHECK) $<
- 
- endif # defined(BIN)
- 
diff --git a/pkgs/os-specific/linux/unstick/default.nix b/pkgs/os-specific/linux/unstick/default.nix
new file mode 100644
index 00000000000..cca6e6210cb
--- /dev/null
+++ b/pkgs/os-specific/linux/unstick/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, fetchFromGitHub, meson, ninja, pkgconfig, libseccomp }:
+
+stdenv.mkDerivation rec {
+  name = "unstick";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "kwohlfahrt";
+    repo = name;
+    rev = "effee9aa242ca12dc94cc6e96bc073f4cc9e8657";
+    sha256 = "08la3jmmzlf4pm48bf9zx4cqj9gbqalpqy0s57bh5vfsdk74nnhv";
+  };
+
+  sourceRoot = "source/src";
+
+  nativeBuildInputs = [ meson ninja pkgconfig ];
+  buildInputs = [ libseccomp ];
+
+  meta = {
+    homepage = "https://github.com/kwohlfahrt/unstick";
+    description = "Silently eats chmod commands forbidden by Nix";
+    license = lib.licenses.gpl3;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ kwohlfahrt ];
+  };
+}
diff --git a/pkgs/os-specific/linux/v4l2loopback/default.nix b/pkgs/os-specific/linux/v4l2loopback/default.nix
index ab1413efd80..275372b8309 100644
--- a/pkgs/os-specific/linux/v4l2loopback/default.nix
+++ b/pkgs/os-specific/linux/v4l2loopback/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "v4l2loopback-${version}-${kernel.version}";
-  version = "0.12.2";
+  version = "0.12.3";
 
   src = fetchFromGitHub {
     owner = "umlaeute";
     repo = "v4l2loopback";
     rev = "v${version}";
-    sha256 = "1bcypfz5nlfmdm2a00yl7rgl0jh0g2nmwndxlsrblqclznhjilg2";
+    sha256 = "01wahmrh4iw27cfmypik6frapq14vn7m9shmj5g7cr1apz2523aq";
   };
 
   hardeningDisable = [ "format" "pic" ];
diff --git a/pkgs/os-specific/linux/xf86-input-mtrack/default.nix b/pkgs/os-specific/linux/xf86-input-mtrack/default.nix
deleted file mode 100644
index 2897e9200fd..00000000000
--- a/pkgs/os-specific/linux/xf86-input-mtrack/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  stdenv
-, fetchurl
-, utilmacros
-, pkgconfig
-, mtdev
-, xorgserver
-, xorgproto
-, pixman
-, autoreconfHook
-}:
-
-stdenv.mkDerivation {
-  name = "xf86-input-mtrack-0.3.0";
-
-  buildInputs = [
-    utilmacros
-    pkgconfig
-    mtdev
-    xorgserver
-    xorgproto
-    pixman
-    autoreconfHook
-  ];
-
-  CFLAGS = "-I${pixman}/include/pixman-1";
-
-  src = fetchurl {
-    name = "xf86-input-mtrack.tar.gz";
-    url = "https://github.com/BlueDragonX/xf86-input-mtrack/tarball/v0.3.0";
-    sha256 = "174rdw7gv0wsnjgmwpx4pgjn1zfbylflda4k2dzff6phzxj9yl6v";
-  };
-
-  meta = {
-    homepage = https://github.com/BlueDragonX/xf86-input-mtrack;
-
-    description = "An Xorg driver for multitouch trackpads";
-
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/xf86-input-multitouch/default.nix b/pkgs/os-specific/linux/xf86-input-multitouch/default.nix
deleted file mode 100644
index 71242348f68..00000000000
--- a/pkgs/os-specific/linux/xf86-input-multitouch/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ stdenv
-, fetchgit
-, mtdev
-, pixman
-, xorg
-, libpciaccess
-}:
-
-stdenv.mkDerivation {
-  name = "xf86-input-multitouch-20110312";
-
-  src = fetchgit {
-    url = http://bitmath.org/git/multitouch.git;
-    rev = "4d87c041f6a232aa30528d70d4b9946d1824b4ed";
-    sha256 = "1jh52d3lkmchn5xdbz4qn50d30nild1zxvfbvwwl2rbmphs5ww6y";
-  };
-
-  # Configuration from http://bitmath.org/code/multitouch/
-  confFile = ''
-    Section "InputClass"
-        MatchIsTouchpad "true"
-        Identifier "Multitouch Touchpad"
-        Driver "multitouch"
-    EndSection
-  '';
-
-  buildInputs = with xorg; [
-    mtdev xorgproto libpciaccess libxcb
-  ];
-
-  buildPhase = ''
-    make INCLUDE="$NIX_CFLAGS_COMPILE -I${xorg.xorgserver.dev}/include/xorg -I${pixman}/include/pixman-1 -Iinclude"
-  '';
-
-  installPhase = ''
-    make DESTDIR="$out" LIBDIR="lib" install
-    mkdir -p $out/include/xorg
-    echo -n "$confFile" > $out/include/xorg/10-multitouch.conf
-  '';
-
-  meta = {
-    homepage = http://bitmath.org/code/multitouch/;
-
-    description = "Brings multitouch gestures to the Linux desktop";
-
-    license = stdenv.lib.licenses.gpl2;
-  };
-}
diff --git a/pkgs/os-specific/linux/zenpower/default.nix b/pkgs/os-specific/linux/zenpower/default.nix
new file mode 100644
index 00000000000..8fdf7f23cf8
--- /dev/null
+++ b/pkgs/os-specific/linux/zenpower/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, kernel, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "zenpower";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "ocerman";
+    repo = "zenpower";
+    rev = "v${version}";
+    sha256 = "1ay1q666bc7czgc95invw523c0ds2gj85wxypc3wi418vfaha5vy";
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  makeFlags = "KERNEL_BUILD=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
+
+  installPhase = ''
+    install -D zenpower.ko -t "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon/zenpower/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Linux kernel driver for reading temperature, voltage(SVI2), current(SVI2) and power(SVI2) for AMD Zen family CPUs.";
+    homepage = "https://github.com/ocerman/zenpower";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ alexbakker ];
+    platforms = platforms.linux;
+    broken = versionOlder kernel.version "4.14";
+  };
+}
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index f1838f2a2cb..868fd3a6d56 100644
--- a/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, erlang, elixir, python, libxml2, libxslt, xmlto
 , docbook_xml_dtd_45, docbook_xsl, zip, unzip, rsync, getconf, socat
+, procps, coreutils, gnused, systemd, glibcLocales
 , AppKit, Carbon, Cocoa
 }:
 
@@ -15,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-    [ erlang elixir python libxml2 libxslt xmlto docbook_xml_dtd_45 docbook_xsl zip unzip rsync ]
+    [ erlang elixir python libxml2 libxslt xmlto docbook_xml_dtd_45 docbook_xsl zip unzip rsync glibcLocales ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ AppKit Carbon Cocoa ];
 
   outputs = [ "out" "man" "doc" ];
@@ -23,15 +24,31 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" "RMQ_ERLAPP_DIR=$(out)" ];
   installTargets = [ "install" "install-man" ];
 
-  runtimePath = stdenv.lib.makeBinPath [getconf erlang socat];
+  preBuild = ''
+    export LANG=C.UTF-8 # fix elixir locale warning
+  '';
+
+  runtimePath = stdenv.lib.makeBinPath [
+    erlang
+    getconf # for getting memory limits
+    socat systemd procps # for systemd unit activation check
+    gnused coreutils # used by helper scripts
+  ];
   postInstall = ''
-    echo 'PATH=${runtimePath}:''${PATH:+:}$PATH' >> $out/sbin/rabbitmq-env
+    # rabbitmq-env calls to sed/coreutils, so provide everything early
+    sed -i $out/sbin/rabbitmq-env -e '2s|^|PATH=${runtimePath}\''${PATH:+:}\$PATH/\n|'
+
+    # rabbitmq-server script uses `dirname` to get hold of a
+    # rabbitmq-env, so let's provide this file directly. After that
+    # point everything is OK - the PATH above will kick in
+    substituteInPlace $out/sbin/rabbitmq-server \
+      --replace '`dirname $0`/rabbitmq-env' \
+                "$out/sbin/rabbitmq-env"
 
-    # we know exactly where rabbitmq is gonna be,
-    # so we patch that into the env-script
-    substituteInPlace $out/sbin/rabbitmq-env \
-      --replace 'RABBITMQ_SCRIPTS_DIR=`dirname $SCRIPT_PATH`' \
-                "RABBITMQ_SCRIPTS_DIR=$out/sbin"
+    # We know exactly where rabbitmq is gonna be, so we patch that into the env-script.
+    # By doing it early we make sure that auto-detection for this will
+    # never be executed (somewhere below in the script).
+    sed -i $out/sbin/rabbitmq-env -e "2s|^|RABBITMQ_SCRIPTS_DIR=$out/sbin\n|"
 
     # there’s a few stray files that belong into share
     mkdir -p $doc/share/doc/rabbitmq-server
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index ebb6192fa6a..275241fcd17 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -339,7 +339,7 @@
     "hyperion" = ps: with ps; [  ];
     "ialarm" = ps: with ps; [  ];
     "iaqualink" = ps: with ps; [  ];
-    "icloud" = ps: with ps; [  ];
+    "icloud" = ps: with ps; [ pyicloud ];
     "idteck_prox" = ps: with ps; [  ];
     "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
     "iglo" = ps: with ps; [  ];
diff --git a/pkgs/servers/home-assistant/esphome.nix b/pkgs/servers/home-assistant/esphome.nix
index 27dabd2a2eb..12b36de4965 100644
--- a/pkgs/servers/home-assistant/esphome.nix
+++ b/pkgs/servers/home-assistant/esphome.nix
@@ -3,27 +3,26 @@
 let
   python = python3.override {
     packageOverrides = self: super: {
-      tornado = super.tornado.overridePythonAttrs (oldAttrs: rec {
-        version = "5.1.1";
+      protobuf = super.protobuf.override {
+        protobuf = protobuf3_10;
+      };
+      pyyaml = super.pyyaml.overridePythonAttrs (oldAttrs: rec {
+        version = "5.1.2";
         src = oldAttrs.src.override {
           inherit version;
-          sha256 = "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409";
+          sha256 = "1r5faspz73477hlbjgilw05xsms0glmsa371yqdd26znqsvg1b81";
         };
       });
-      protobuf = super.protobuf.override {
-        protobuf = protobuf3_10;
-      };
-
     };
   };
 
 in python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "1.14.1";
+  version = "1.14.3";
 
   src = python.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1hw1q2fck9429077w207rk65a1krzyi6qya5pzjkpw4av5s0v0g3";
+    sha256 = "0xnsl000c5a2li9qw9anrzzq437qn1n4hcfc24i4rfq37awzmig7";
   };
 
   ESPHOME_USE_SUBPROCESS = "";
diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix
index d5da6df8d68..252365098dd 100644
--- a/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/pkgs/servers/http/apache-httpd/2.4.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
   prePatch = ''
     sed -i config.layout -e "s|installbuilddir:.*|installbuilddir: $dev/share/build|"
     sed -i support/apachectl.in -e 's|@LYNX_PATH@|${lynx}/bin/lynx|'
+    sed -i support/apachectl.in -e 's|$HTTPD -t|$HTTPD -t -f /etc/httpd/httpd.conf|'
   '';
 
   # Required for ‘pthread_cancel’.
diff --git a/pkgs/servers/http/jetty/default.nix b/pkgs/servers/http/jetty/default.nix
index 8d2340647cb..4a3a3f2da01 100644
--- a/pkgs/servers/http/jetty/default.nix
+++ b/pkgs/servers/http/jetty/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jetty";
-  version = "9.4.24.v20191120";
+  version = "9.4.25.v20191220";
   src = fetchurl {
     url = "https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${version}/jetty-distribution-${version}.tar.gz";
     name = "jetty-distribution-${version}.tar.gz";
-    sha256 = "072vr8gfly2xdwxx1c771yymf145l8nv0j31liwqrih8zqvvhsd4";
+    sha256 = "1jnx4hnvd2krsdisqwpws1qd1r0f8gm9a4sx4a8c7zqrmfd2zx1a";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/pkgs/servers/http/lwan/default.nix b/pkgs/servers/http/lwan/default.nix
index f692832e882..9cd9a6b7fec 100644
--- a/pkgs/servers/http/lwan/default.nix
+++ b/pkgs/servers/http/lwan/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lwan";
-  version = "0.1";
+  version = "0.2";
 
   src = fetchFromGitHub {
     owner = "lpereira";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1mckryzb06smky0bx2bkqwqzpnq4pb8vlgmmwsvqmwi4mmw9wmi1";
+    sha256 = "1z1g6bmdsf7zj809sq6jqkpzkdnx1jch84kk67h0v2x6lxhdpv5r";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix
index d210fcefc85..c3af0d55543 100644
--- a/pkgs/servers/http/unit/default.nix
+++ b/pkgs/servers/http/unit/default.nix
@@ -18,16 +18,21 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "1.13.0";
+  version = "1.14.0";
   pname = "unit";
 
   src = fetchFromGitHub {
     owner = "nginx";
     repo = "unit";
     rev = version;
-    sha256 = "1b5il05isq5yvnx2qpnihsrmj0jliacvhrm58i87d48anwpv1k8q";
+    sha256 = "01anczfcdwd22hb0y4zw647f86ivk5zq8lcd13xfxjvkmnsnbj9w";
   };
 
+  patches = [
+    # https://github.com/nginx/unit/issues/357
+    ./drop_cap.patch
+  ];
+
   nativeBuildInputs = [ which ];
 
   buildInputs = [ ]
diff --git a/pkgs/servers/http/unit/drop_cap.patch b/pkgs/servers/http/unit/drop_cap.patch
new file mode 100644
index 00000000000..87caf77904e
--- /dev/null
+++ b/pkgs/servers/http/unit/drop_cap.patch
@@ -0,0 +1,79 @@
+diff -r ed17ce89119f src/nxt_capability.c
+--- a/src/nxt_capability.c      Fri Dec 06 17:02:23 2019 +0000
++++ b/src/nxt_capability.c      Mon Dec 09 23:23:00 2019 +0000
+@@ -93,6 +93,26 @@ nxt_capability_specific_set(nxt_task_t *
+     return NXT_OK;
+ }
+ 
++
++nxt_int_t
++nxt_capability_drop_all(nxt_task_t *task)
++{
++    struct __user_cap_header_struct hdr;
++    struct __user_cap_data_struct data[2];
++
++    hdr.version = nxt_capability_linux_get_version();
++    hdr.pid = nxt_pid;
++
++    nxt_memset(data, 0, sizeof(data));
++
++    if (nxt_slow_path(nxt_capset(&hdr, data) == -1)) {
++        nxt_alert(task, "failed to drop capabilities %E", nxt_errno);
++        return NXT_ERROR;
++    }
++
++    return NXT_OK;
++}
++
+ #else
+ 
+ static nxt_int_t
+diff -r ed17ce89119f src/nxt_capability.h
+--- a/src/nxt_capability.h      Fri Dec 06 17:02:23 2019 +0000
++++ b/src/nxt_capability.h      Mon Dec 09 23:23:00 2019 +0000
+@@ -14,4 +14,6 @@ typedef struct {
+ NXT_EXPORT nxt_int_t nxt_capability_set(nxt_task_t *task,
+     nxt_capabilities_t *cap);
+ 
++NXT_EXPORT nxt_int_t nxt_capability_drop_all(nxt_task_t *task);
++
+ #endif /* _NXT_CAPABILITY_INCLUDED_ */
+diff -r ed17ce89119f src/nxt_process.c
+--- a/src/nxt_process.c Fri Dec 06 17:02:23 2019 +0000
++++ b/src/nxt_process.c Mon Dec 09 23:23:00 2019 +0000
+@@ -264,7 +264,7 @@ cleanup:
+ static void
+ nxt_process_start(nxt_task_t *task, nxt_process_t *process)
+ {
+-    nxt_int_t                    ret, cap_setid;
++    nxt_int_t                    ret, cap_setid, drop_caps;
+     nxt_port_t                   *port, *main_port;
+     nxt_thread_t                 *thread;
+     nxt_runtime_t                *rt;
+@@ -285,9 +285,12 @@ nxt_process_start(nxt_task_t *task, nxt_
+ 
+     cap_setid = rt->capabilities.setid;
+ 
++    drop_caps = cap_setid;
++
+ #if (NXT_HAVE_CLONE_NEWUSER)
+-    if (!cap_setid && NXT_CLONE_USER(init->isolation.clone.flags)) {
++    if (NXT_CLONE_USER(init->isolation.clone.flags)) {
+         cap_setid = 1;
++        drop_caps = 0;
+     }
+ #endif
+ 
+@@ -301,6 +304,12 @@ nxt_process_start(nxt_task_t *task, nxt_
+         if (nxt_slow_path(ret != NXT_OK)) {
+             goto fail;
+         }
++
++#if (NXT_HAVE_LINUX_CAPABILITY)
++        if (drop_caps && nxt_capability_drop_all(task) != NXT_OK) {
++            goto fail;
++        }
++#endif
+     }
+ 
+     rt->type = init->type;
\ No newline at end of file
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index b1116dc4a95..6da342ae880 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, unzip, sqlite, makeWrapper, dotnet-sdk, ffmpeg,
+{ stdenv, lib, fetchurl, unzip, sqlite, makeWrapper, dotnet-netcore, ffmpeg,
   fontconfig, freetype }:
 
 let
@@ -32,7 +32,7 @@ in stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    dotnet-sdk
+    dotnet-netcore
     sqlite
   ];
 
@@ -42,7 +42,7 @@ in stdenv.mkDerivation rec {
     install -dm 755 "$out/opt/jellyfin"
     cp -r * "$out/opt/jellyfin"
 
-    makeWrapper "${dotnet-sdk}/bin/dotnet" $out/bin/jellyfin \
+    makeWrapper "${dotnet-netcore}/bin/dotnet" $out/bin/jellyfin \
       --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
         sqlite fontconfig freetype stdenv.cc.cc.lib
       ]}:$out/opt/jellyfin/runtimes/${runtimeDir}/native/" \
diff --git a/pkgs/servers/mail/mailman/core.nix b/pkgs/servers/mail/mailman/core.nix
deleted file mode 100644
index 1ba220039ea..00000000000
--- a/pkgs/servers/mail/mailman/core.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi, alembic, aiosmtpd, dnspython
-, flufl_bounce, flufl_i18n, flufl_lock, lazr_config, lazr_delegates, passlib
-, requests, zope_configuration, click, falcon, importlib-resources
-, zope_component, lynx, postfix
-}:
-
-buildPythonPackage rec {
-  pname = "mailman";
-  version = "3.2.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "09s9p5pb8gff6zblwidyq830yfgcvv50p5drdaxj1qpy8w46lvc6";
-  };
-
-  propagatedBuildInputs = [
-    alembic aiosmtpd click dnspython falcon flufl_bounce flufl_i18n flufl_lock
-    importlib-resources lazr_config passlib requests zope_configuration
-    zope_component
-  ];
-
-  patchPhase = ''
-    substituteInPlace src/mailman/config/postfix.cfg \
-      --replace /usr/sbin/postmap ${postfix}/bin/postmap
-    substituteInPlace src/mailman/config/schema.cfg \
-      --replace /usr/bin/lynx ${lynx}/bin/lynx
-  '';
-
-  # Mailman assumes that those scripts in $out/bin are Python scripts. Wrapping
-  # them in shell code breaks this assumption. The proper way to use mailman is
-  # to create a specialized python interpreter:
-  #
-  #   python37.withPackages (ps: [ps.mailman])
-  #
-  # This gives a properly wrapped 'mailman' command plus an interpreter that
-  # has all the necessary search paths to execute unwrapped 'master' and
-  # 'runner' scripts. The setup is a little tricky, but fortunately NixOS is
-  # about to get a OS module that takes care of those details.
-  dontWrapPythonPrograms = true;
-
-  meta = {
-    homepage = https://www.gnu.org/software/mailman/;
-    description = "Free software for managing electronic mail discussion and newsletter lists";
-    license = stdenv.lib.licenses.gpl3Plus;
-    maintainers = with stdenv.lib.maintainers; [ peti ];
-  };
-}
diff --git a/pkgs/servers/mail/mailman/default.nix b/pkgs/servers/mail/mailman/default.nix
index e9f66b92be2..8e763800f65 100644
--- a/pkgs/servers/mail/mailman/default.nix
+++ b/pkgs/servers/mail/mailman/default.nix
@@ -1,33 +1,48 @@
-{ stdenv, fetchurl, python2 }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, alembic, aiosmtpd, dnspython
+, flufl_bounce, flufl_i18n, flufl_lock, lazr_config, lazr_delegates, passlib
+, requests, zope_configuration, click, falcon, importlib-resources
+, zope_component, lynx, postfix, authheaders, gunicorn
+}:
 
-stdenv.mkDerivation rec {
+buildPythonPackage rec {
   pname = "mailman";
-  version = "2.1.29";
+  version = "3.3.0";
+  disabled = !isPy3k;
 
-  src = fetchurl {
-    url = "mirror://gnu/mailman/${pname}-${version}.tgz";
-    sha256 = "0b0dpwf6ap260791c7lg2vpw30llf19hymbf2hja3s016rqp5243";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qph9i93ndahfxi3bb2sd0kjm2c0pkh844ai6zacfmvihl1k3pvy";
   };
 
-  buildInputs = [ python2 python2.pkgs.dnspython ];
-
-  patches = [ ./fix-var-prefix.patch ];
-
-  configureFlags = [
-    "--without-permcheck"
-    "--with-cgi-ext=.cgi"
-    "--with-var-prefix=/var/lib/mailman"
+  propagatedBuildInputs = [
+    alembic aiosmtpd click dnspython falcon flufl_bounce flufl_i18n flufl_lock
+    importlib-resources lazr_config passlib requests zope_configuration
+    zope_component authheaders gunicorn
   ];
 
-  installTargets = "doinstall"; # Leave out the 'update' target that's implied by 'install'.
-
-  makeFlags = [ "DIRSETGID=:" ];
+  patchPhase = ''
+    substituteInPlace src/mailman/config/postfix.cfg \
+      --replace /usr/sbin/postmap ${postfix}/bin/postmap
+    substituteInPlace src/mailman/config/schema.cfg \
+      --replace /usr/bin/lynx ${lynx}/bin/lynx
+  '';
+
+  # Mailman assumes that those scripts in $out/bin are Python scripts. Wrapping
+  # them in shell code breaks this assumption. The proper way to use mailman is
+  # to create a specialized python interpreter:
+  #
+  #   python37.withPackages (ps: [ps.mailman])
+  #
+  # This gives a properly wrapped 'mailman' command plus an interpreter that
+  # has all the necessary search paths to execute unwrapped 'master' and
+  # 'runner' scripts. The setup is a little tricky, but fortunately NixOS is
+  # about to get a OS module that takes care of those details.
+  dontWrapPythonPrograms = true;
 
   meta = {
     homepage = https://www.gnu.org/software/mailman/;
-    description = "Free software for managing electronic mail discussion and e-newsletter lists";
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.peti ];
+    description = "Free software for managing electronic mail discussion and newsletter lists";
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [ peti ];
   };
 }
diff --git a/pkgs/servers/mail/mailman/hyperkitty.nix b/pkgs/servers/mail/mailman/hyperkitty.nix
index 8f060da3446..fedd6c9f759 100644
--- a/pkgs/servers/mail/mailman/hyperkitty.nix
+++ b/pkgs/servers/mail/mailman/hyperkitty.nix
@@ -1,27 +1,34 @@
-{ stdenv, buildPythonPackage, fetchPypi, coverage, mock
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, isort, coverage, mock
 , robot-detection, django_extensions, rjsmin, cssmin, django-mailman3
-, django-haystack, lockfile, networkx, dateutil, defusedxml
+, django-haystack, flufl_lock, networkx, dateutil, defusedxml
 , django-paintstore, djangorestframework, django, django-q
-, django_compressor, beautifulsoup4, six, psycopg2, whoosh
+, django_compressor, beautifulsoup4, six, psycopg2, whoosh, elasticsearch
 }:
 
 buildPythonPackage rec {
   pname = "HyperKitty";
-  version = "1.2.2";
+  version = "1.3.2";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1z2zswlml6nppxhzw9a4nrj7i5wsxd29s3q78ka1rwr5m5n7s1rz";
+    sha256 = "092fkv0xyf5vgj33xwq0mh9h5c5d56ifwimaqbfpx5cwc6yivb88";
   };
 
-  buildInputs = [ coverage mock ];
+  nativeBuildInputs = [ isort ];
   propagatedBuildInputs = [
     robot-detection django_extensions rjsmin cssmin django-mailman3
-    django-haystack lockfile networkx dateutil defusedxml
+    django-haystack flufl_lock networkx dateutil defusedxml
     django-paintstore djangorestframework django django-q
-    django_compressor beautifulsoup4 six psycopg2 whoosh
+    django_compressor six psycopg2 isort
   ];
 
+  # Some of these are optional runtime dependencies that are not
+  # listed as dependencies in setup.py.  To use these, they should be
+  # dependencies of the Django Python environment, but not of
+  # HyperKitty so they're not included for people who don't need them.
+  checkInputs = [ beautifulsoup4 coverage elasticsearch mock whoosh ];
+
   checkPhase = ''
     cd $NIX_BUILD_TOP/$sourceRoot
     PYTHONPATH=.:$PYTHONPATH python example_project/manage.py test \
diff --git a/pkgs/servers/mail/mailman/postorius.nix b/pkgs/servers/mail/mailman/postorius.nix
index 871f2ea244d..bcb92051fc8 100644
--- a/pkgs/servers/mail/mailman/postorius.nix
+++ b/pkgs/servers/mail/mailman/postorius.nix
@@ -1,23 +1,21 @@
 { stdenv, buildPythonPackage, fetchPypi, beautifulsoup4, vcrpy, mock
-, django-mailman3, mailmanclient
+, django-mailman3, mailmanclient, readme_renderer
 }:
 
 buildPythonPackage rec {
   pname = "postorius";
-  version = "1.2.4";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1722lnscxfl8wdigf5d80d1qmd5gblr439wa989jxlww0wkjg9fl";
+    sha256 = "0wrm0hda7ym9qaygxirqaaii66ndmgyy7gx8wqdg07pfx14zcyja";
   };
 
-  buildInputs = [ beautifulsoup4 vcrpy mock ];
-  propagatedBuildInputs = [ django-mailman3 ];
+  propagatedBuildInputs = [ django-mailman3 readme_renderer ];
+  checkInputs = [ beautifulsoup4 vcrpy mock ];
 
-  checkPhase = ''
-    cd $NIX_BUILD_TOP/$sourceRoot
-    PYTHONPATH=.:$PYTHONPATH python example_project/manage.py test --settings=test_settings postorius
-  '';
+  # Tries to connect to database.
+  doCheck = false;
 
   meta = {
     homepage = https://www.gnu.org/software/mailman/;
diff --git a/pkgs/servers/mail/mailman/web.nix b/pkgs/servers/mail/mailman/web.nix
index b0ead765a60..ec16775b1d4 100644
--- a/pkgs/servers/mail/mailman/web.nix
+++ b/pkgs/servers/mail/mailman/web.nix
@@ -1,4 +1,4 @@
-{ stdenv, python, hyperkitty, postorius, buildPythonPackage
+{ stdenv, python, hyperkitty, postorius, buildPythonPackage, isPy3k
 , serverEMail ? "postmaster@example.org"
 , archiverKey ? "SecretArchiverAPIKey"
 , allowedHosts ? []
@@ -17,6 +17,7 @@ in
 
 buildPythonPackage {
   name = "mailman-web-0";
+  disabled = !isPy3k;
 
   propagatedBuildInputs = [ hyperkitty postorius ];
 
diff --git a/pkgs/servers/mautrix-whatsapp/default.nix b/pkgs/servers/mautrix-whatsapp/default.nix
index f497ba97e70..bb72ce1b45f 100644
--- a/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/pkgs/servers/mautrix-whatsapp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule {
   pname = "mautrix-whatsapp-unstable";
-  version = "2020-01-07";
+  version = "2020-01-12";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = "mautrix-whatsapp";
-    rev = "302fae6649f083ae2a1d4431157e6045865f62ad";
-    sha256 = "0rnlbw1xqk9kjc23pmybxdznxylpfxl35wa37lkafymfardjjavb";
+    rev = "39e46833b471b0cf262d4ff57fcd61530b5d2b9e";
+    sha256 = "1r1f52advibb97vrhi2gw0d0scnsvfbmfqizsbpjmgm7ci9jjhcl";
   };
 
   modSha256 = "18bcv7x49bqnzwhafh8fvyv9z2d4j6w0iyqql0alq57hy7h7lxik";
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 787c7b1d463..183bbc73f5d 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "grafana";
-  version = "6.5.2";
+  version = "6.5.3";
 
   goPackagePath = "github.com/grafana/grafana";
 
@@ -12,12 +12,12 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "1hplnb8rv2sxai05qf6il5kza08bkhcawvymr2h9lfdsj7p4kbzy";
+    sha256 = "1ks951b3ar1wdpbxn8ak74m8zh02d3lbmk6mphwni68c019ymahi";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "1fnj41lp9b53iyjgis5x8k3g5vl73fdrxsdxnf10d4ma95cwb2qa";
+    sha256 = "1gjj0h7kz4lan00ka5kg901l3nyzswnjfr0slqy08bl4svqpizh2";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/nginx-sso/default.nix b/pkgs/servers/nginx-sso/default.nix
index b0ed1c973c0..10a0c99996d 100644
--- a/pkgs/servers/nginx-sso/default.nix
+++ b/pkgs/servers/nginx-sso/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "nginx-sso";
-  version = "0.23.0";
+  version = "0.24.0";
   rev = "v${version}";
 
   goPackagePath = "github.com/Luzifer/nginx-sso";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "Luzifer";
     repo = "nginx-sso";
-    sha256 = "1wfk56xnjbx7cwrryrl3jy8zw7sz8akq55nsxiq2i6h3vafy4yaz";
+    sha256 = "0jkmd1hdr40i1wd3001ixjv1nminsxmwhvnhcgfqcdn5gnaradwn";
   };
 
   postInstall = ''
diff --git a/pkgs/servers/search/groonga/default.nix b/pkgs/servers/search/groonga/default.nix
index cfadeac5f07..d610a02ee91 100644
--- a/pkgs/servers/search/groonga/default.nix
+++ b/pkgs/servers/search/groonga/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
 
   pname = "groonga";
-  version = "9.1.0";
+  version = "9.1.1";
 
   src = fetchurl {
     url    = "https://packages.groonga.org/source/groonga/${pname}-${version}.tar.gz";
-    sha256 = "11mlpnaldb6z438qdb7qjq9dxbh71l6v6lrv69fxka34izpgyhkk";
+    sha256 = "16i5bmypawxjac6g808qgr0z3rvla6g6dr586rmwl7sbq0z2nr82";
   };
 
   buildInputs = with stdenv.lib;
diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index 0427de60aa5..6f0ec04cd75 100644
--- a/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "timescaledb";
-  version = "1.5.1";
+  version = "1.6.0";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner  = "timescale";
     repo   = "timescaledb";
     rev    = "refs/tags/${version}";
-    sha256 = "1mgmkc42nksfsmjg463v03rj1v8gybwlzzi515gxz6ijx8604w4c";
+    sha256 = "0b42rhkycr4pwwa4fxnmppd3bl0xz7azvlm145rd7warlsr5h0lb";
   };
 
   cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" ];
diff --git a/pkgs/servers/tt-rss/theme-feedly/default.nix b/pkgs/servers/tt-rss/theme-feedly/default.nix
index c35667546c6..8ad511e5b5b 100644
--- a/pkgs/servers/tt-rss/theme-feedly/default.nix
+++ b/pkgs/servers/tt-rss/theme-feedly/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchFromGitHub }: stdenv.mkDerivation rec {
   pname = "tt-rss-theme-feedly";
-  version = "2.0.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "levito";
     repo = "tt-rss-feedly-theme";
     rev = "v${version}";
-    sha256 = "024hngwzfdgw5jqppc8vh75jidfqghaccy969hvbhxhgk6j6l8m4";
+    sha256 = "0rl5g664grx3m7yxa14rgnbvnlc3xnn44kzjji5layxww6jd8h2s";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/web-apps/matomo/default.nix b/pkgs/servers/web-apps/matomo/default.nix
index 5c88b8efb4a..d5f0b7057f0 100644
--- a/pkgs/servers/web-apps/matomo/default.nix
+++ b/pkgs/servers/web-apps/matomo/default.nix
@@ -3,8 +3,8 @@
 let
   versions = {
     matomo = {
-      version = "3.13.0";
-      sha256 = "0h4jqibb86zw5l26r927qrbjhba8c79pc4xp3hgpi25p3fjncax8";
+      version = "3.13.1";
+      sha256 = "071m3sw3rrhlccbwdyklcn8rwp4mcnii5m2a7zmgx3rv87i9n2ni";
     };
 
     matomo-beta = {
diff --git a/pkgs/servers/web-apps/shaarli/material-theme.nix b/pkgs/servers/web-apps/shaarli/material-theme.nix
index ef0a4331d41..b0829fce733 100644
--- a/pkgs/servers/web-apps/shaarli/material-theme.nix
+++ b/pkgs/servers/web-apps/shaarli/material-theme.nix
@@ -26,10 +26,13 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
+    # This package has not been updated for the new build process
+    # introduced in 0.10.3 which depends on npm and gulp.
+    broken = true;
     description = "A theme base on Google's Material Design for Shaarli, the superfast delicious clone";
     license = licenses.mit;
     homepage = https://github.com/kalvn/Shaarli-Material;
-    maintainers = with maintainers; [ schneefux ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/zoneminder/default.nix b/pkgs/servers/zoneminder/default.nix
index 2dcaf44010e..e536ea0373c 100644
--- a/pkgs/servers/zoneminder/default.nix
+++ b/pkgs/servers/zoneminder/default.nix
@@ -162,6 +162,10 @@ in stdenv.mkDerivation rec {
     "-DZM_CONFIG_DIR=${placeholder "out"}/etc/zoneminder"
     "-DZM_WEB_USER=${user}"
     "-DZM_WEB_GROUP=${user}"
+
+    # Workaround issue in CMakeLists.txt where ZM_CGIDIR set to ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/zoneminder/cgi-bin
+    # But CMAKE_INSTALL_LIBEXECDIR is already an absolute path from cmake setup-hook
+    "-DZM_CGIDIR=${placeholder "out"}/libexec/zoneminder/cgi-bin"
   ];
 
   passthru = { inherit dirName; };
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 1ef3c4b6fd9..5f59c33af0d 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -3,6 +3,7 @@
   groff, man-db, getent, libiconv, pcre2,
   gettext, ncurses, python3,
   cmake
+  , fetchpatch
 
   , writeText
 
@@ -107,6 +108,15 @@ let
       patchShebangs ./build_tools/git_version_gen.sh
     '';
 
+    patches = [
+      # Fixes "Integer 243 in '243 (243)' followed by non-digit" error with systemctl completion.
+      # https://github.com/fish-shell/fish-shell/issues/5689 (will be included in fish 3.1.0)
+      (fetchpatch {
+        url = "https://github.com/fish-shell/fish-shell/commit/c6ec4235136e82c709e8d7b455f7c463f9714b48.patch";
+        sha256 = "02m6pkhhx6y21csydznsxkbpnwhcpzyz99xgd9ryh7s03v7wbigw";
+      })
+    ];
+
     # Required binaries during execution
     # Python: Autocompletion generated from manpages and config editing
     propagatedBuildInputs = [
diff --git a/pkgs/shells/mrsh/default.nix b/pkgs/shells/mrsh/default.nix
index 9036e085429..bbd56e510b7 100644
--- a/pkgs/shells/mrsh/default.nix
+++ b/pkgs/shells/mrsh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, meson, ninja, pkgconfig, readline }:
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, readline }:
 
 stdenv.mkDerivation rec {
   pname   = "mrsh";
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://mrsh.sh";
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/shells/oil/default.nix b/pkgs/shells/oil/default.nix
index 13b36bf54ad..81c86284394 100644
--- a/pkgs/shells/oil/default.nix
+++ b/pkgs/shells/oil/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "oil";
-  version = "0.7.pre9";
+  version = "0.7.pre11";
 
   src = fetchurl {
     url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
-    sha256 = "1j17yxpjqv37vbl3qhnwl3gdmb33n9c6g6byxcc8mhbvbw91zi5i";
+    sha256 = "0885cw07gkaggd5cvl58v6kw1z6la2xgdh1s88y0dynx95qv4i4c";
   };
 
   postPatch = ''
diff --git a/pkgs/shells/zsh/zsh-bd/default.nix b/pkgs/shells/zsh/zsh-bd/default.nix
new file mode 100644
index 00000000000..b5b66af6ca3
--- /dev/null
+++ b/pkgs/shells/zsh/zsh-bd/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub}:
+
+stdenv.mkDerivation rec {
+  pname = "zsh-bd";
+  version = "2018-07-04";
+
+  src = fetchFromGitHub {
+    owner = "Tarrasch";
+    repo = pname;
+    rev = "d4a55e661b4c9ef6ae4568c6abeff48bdf1b1af7";
+    sha256 = "020f8nq86g96cps64hwrskppbh2dapfw2m9np1qbs5pgh16z4fcb";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/share/zsh-bd
+    cp {.,$out/share/zsh-bd}/bd.zsh
+    cd $out/share/zsh-bd
+    ln -s bd{,.plugin}.zsh
+  '';
+
+  meta = {
+    description = "Jump back to a specific directory, without doing `cd ../../..` ";
+    homepage = "https://github.com/Tarrasch/zsh-bd";
+    license = stdenv.lib.licenses.free;
+
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.olejorgenb ];
+  };
+}
diff --git a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index d5081476efb..5b649a3923e 100644
--- a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
+++ b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
@@ -5,12 +5,12 @@
 
 stdenv.mkDerivation {
   pname = "powerlevel10k";
-  version = "unstable-2019-12-19";
+  version = "1.0";
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "powerlevel10k";
-    rev = "8ef2b737d1f6099966a1eb16bdfc90d67b367f22";
-    sha256 = "02b25klkyyhpdbf2vwzzbrd8hnfjpckbpjy6532ir6jqp2n2ivpj";
+    rev = "c21961b53c137253020aeffca2b132fdd6bcb116";
+    sha256 = "1jp6jhw5kb10d76zkxdv8c04s51ilmjka336bgnllya9nyqaqpxp";
   };
 
   patches = [
diff --git a/pkgs/shells/zsh/zsh-you-should-use/default.nix b/pkgs/shells/zsh/zsh-you-should-use/default.nix
index becc4c57e4b..91cf34268ac 100644
--- a/pkgs/shells/zsh/zsh-you-should-use/default.nix
+++ b/pkgs/shells/zsh/zsh-you-should-use/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-you-should-use";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "MichaelAquilina";
     repo = pname;
     rev = version;
-    sha256 = "1xzq7xmmx4rg53pd69d0s9n561q4z35hlbb2sq2xd76gk3x6fars";
+    sha256 = "1gcxm08ragwrh242ahlq3bpfg5yma2cshwdlj8nrwnd4qwrsflgq";
   };
 
   dontBuild = true;
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index eb0711b8885..f62d208d22d 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -26,6 +26,8 @@ with pkgs;
   cc-wrapper-libcxx-9 = callPackage ./cc-wrapper { stdenv = llvmPackages_9.libcxxStdenv; };
   stdenv-inputs = callPackage ./stdenv-inputs { };
 
+  haskell-shellFor = callPackage ./haskell-shellFor { };
+
   cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
   cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; };
 
diff --git a/pkgs/test/haskell-shellFor/default.nix b/pkgs/test/haskell-shellFor/default.nix
new file mode 100644
index 00000000000..1b3de999d22
--- /dev/null
+++ b/pkgs/test/haskell-shellFor/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, haskellPackages, cabal-install }:
+
+haskellPackages.shellFor {
+  packages = p: [ p.database-id-class p.constraints-extras ];
+  nativeBuildInputs = [ cabal-install ];
+  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
+  unpackPhase = ''
+    sourceRoot=$(pwd)/scratch
+    mkdir -p "$sourceRoot"
+    cd "$sourceRoot"
+    tar -xf ${haskellPackages.database-id-class.src}
+    tar -xf ${haskellPackages.constraints-extras.src}
+    cp ${builtins.toFile "cabal.project" "packages: database-id-class* constraints-extras*"} cabal.project
+  '';
+  buildPhase = ''
+    export HOME=$(mktemp -d)
+    mkdir -p $HOME/.cabal
+    touch $HOME/.cabal/config
+    cabal v2-build --offline --verbose database-id-class constraints-extras --ghc-options="-O0 -j$NIX_BUILD_CORES"
+  '';
+  installPhase = ''
+    touch $out
+  '';
+}
diff --git a/pkgs/tools/X11/jumpapp/default.nix b/pkgs/tools/X11/jumpapp/default.nix
index 38de9e9f80b..23ba445b674 100644
--- a/pkgs/tools/X11/jumpapp/default.nix
+++ b/pkgs/tools/X11/jumpapp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jumpapp";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "mkropat";
     repo = "jumpapp";
     rev = "v${version}";
-    sha256 = "11ibh51q4vcjkz9fqyw5dy9qrkqxm42hpdccas1s6h2dk9z62kfb";
+    sha256 = "1jrk4mm42sz6ca2gkb6w3dad53d4im4shpgsq8s4vr6xpl3b43ry";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/tools/X11/xcape/default.nix b/pkgs/tools/X11/xcape/default.nix
index 8b0c18c8618..d1b6f9b23b6 100644
--- a/pkgs/tools/X11/xcape/default.nix
+++ b/pkgs/tools/X11/xcape/default.nix
@@ -3,7 +3,7 @@ libXi }:
 
 stdenv.mkDerivation rec {
   pname = "xcape";
-  version = "unstable-20180301";
+  version = "unstable-2018-03-01";
 
   src = fetchFromGitHub {
     owner = "alols";
diff --git a/pkgs/tools/X11/xlayoutdisplay/default.nix b/pkgs/tools/X11/xlayoutdisplay/default.nix
index 30903e44856..7f3d9cfda56 100644
--- a/pkgs/tools/X11/xlayoutdisplay/default.nix
+++ b/pkgs/tools/X11/xlayoutdisplay/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xlayoutdisplay";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "alex-courtis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wm6a48ym0wn2w0872mfq40ghajfrg1bccj1g342w899qh5x3bc4";
+    sha256 = "0ldqbwsryy7mqhxywdn2c2yi1mzlnl39sw8p3vx10w6q9drya9iv";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/X11/xsecurelock/default.nix b/pkgs/tools/X11/xsecurelock/default.nix
index 8349953f4ff..548101c34c3 100644
--- a/pkgs/tools/X11/xsecurelock/default.nix
+++ b/pkgs/tools/X11/xsecurelock/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xsecurelock";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "xsecurelock";
     rev = "v${version}";
-    sha256 = "0zdwszscdw0p7kwpqqv1dywn00bq1wak2x602lb6hdmkffspi8bg";
+    sha256 = "020y2mi4sshc5dghcz37aj5wwizbg6712rzq2a72f8z8m7mnxr5y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/admin/acme.sh/default.nix b/pkgs/tools/admin/acme.sh/default.nix
index cdf58bc0215..25a92f1117b 100644
--- a/pkgs/tools/admin/acme.sh/default.nix
+++ b/pkgs/tools/admin/acme.sh/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute, unixtools }:
 stdenv.mkDerivation rec {
   pname = "acme.sh";
-  version = "2.8.3";
+  version = "2.8.5";
 
   src = fetchFromGitHub {
     owner = "Neilpang";
     repo = "acme.sh";
     rev = version;
-    sha256 = "0j9wn61jd107fq9ww79399s7adql0vf897s0xavlvv6chq8a6ajj";
+    sha256 = "0yxhfdb0jz0wn10ka6c79qvcx07656vsaxmjls8qgcfgc472ymhs";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/admin/sewer/default.nix b/pkgs/tools/admin/sewer/default.nix
index 59edaff5f94..776ba89e48c 100644
--- a/pkgs/tools/admin/sewer/default.nix
+++ b/pkgs/tools/admin/sewer/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sewer";
-  version = "0.7.0";
+  version = "0.7.9";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "16j4npqj3fdj3g2z7nqb0cvvxd85xk20g9c43f3q8a1k5psf1fmq";
+    sha256 = "c083223d8aa66d4fc6801452d291a98540d1ee41557ce3e1754c62e73f7c9738";
   };
 
   propagatedBuildInputs = with python3Packages; [ pyopenssl requests tldextract ];
@@ -16,6 +16,5 @@ python3Packages.buildPythonApplication rec {
     description = "ACME client";
     license = licenses.mit;
     maintainers = with maintainers; [ kevincox ];
-    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/admin/vncdo/default.nix b/pkgs/tools/admin/vncdo/default.nix
index a126a430e52..3dd7a45aa2b 100644
--- a/pkgs/tools/admin/vncdo/default.nix
+++ b/pkgs/tools/admin/vncdo/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub
-, pythonPackages
+, python2Packages
 }:
-pythonPackages.buildPythonPackage {
+python2Packages.buildPythonPackage {
   pname = "vncdo";
   version = "0.11.2";
 
@@ -12,7 +12,7 @@ pythonPackages.buildPythonPackage {
     sha256 = "0k03b09ipsz8vp362x7sx7z68mxgqw9qzvkii2f8j9vx2y79rjsh";
   };
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with python2Packages; [
     pillow
     twisted
     pexpect
@@ -20,6 +20,8 @@ pythonPackages.buildPythonPackage {
     ptyprocess
   ];
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = https://github.com/sibson/vncdotool;
     description = "A command line VNC client and python library";
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index f48bfbd3d6a..5d5bff7bfa1 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -3,12 +3,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.6.6";
+  version = "2.6.7";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "1pqdcb9dkjlf8wzpsnx4gcv9nhrm60glv4xadxnknnqlvzs6vips";
+    sha256 = "055kkxhg7sz3fbndsr4p2wp7aa2phq3pr0a9y7b1fkg52x7fbhr2";
   };
 
   buildInputs = [ zlib bzip2 openssl lzo libgcrypt gpgme xz ]
diff --git a/pkgs/tools/backup/zfs-replicate/default.nix b/pkgs/tools/backup/zfs-replicate/default.nix
index 83fa76b0800..1cb7e647441 100644
--- a/pkgs/tools/backup/zfs-replicate/default.nix
+++ b/pkgs/tools/backup/zfs-replicate/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonApplication rec {
   pname = "zfs-replicate";
-  version = "1.1.11";
+  version = "1.1.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0386xc6rw6bhzw2a08g90afb3snqhm1ikx65bjfh22ha69fwmga8";
+    sha256 = "0iqyk6q112ylcqrhrgvgbgqqvaikhwk0sb5kc7kg2wwqdc9rfwys";
   };
 
   checkInputs = [
diff --git a/pkgs/tools/backup/zfsnap/default.nix b/pkgs/tools/backup/zfsnap/default.nix
new file mode 100644
index 00000000000..89d7414246c
--- /dev/null
+++ b/pkgs/tools/backup/zfsnap/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, coreutils, installShellFiles }:
+
+stdenv.mkDerivation rec {
+  version = "2.0.0-beta3";
+  pname = "zfsnap";
+
+  src = fetchFromGitHub {
+    owner = "zfsnap";
+    repo = "zfsnap";
+    rev = "v${version}";
+    sha256 = "0670a5sghvqx32c9gfsird15mg9nqcvwxsrfcjrwc0sj7br9bd2g";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postPatch = ''
+    # Use zfs binaries from PATH, because often the zfs package from nixpkgs is
+    # not the one that should be used
+    substituteInPlace share/zfsnap/core.sh \
+      --replace "ZFS_CMD='/sbin/zfs'" "ZFS_CMD='zfs'" \
+      --replace "ZPOOL_CMD='/sbin/zpool'" "ZPOOL_CMD='zpool'"
+
+    substituteInPlace sbin/zfsnap.sh \
+      --replace "/bin/ls" "${coreutils}/bin/ls"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv sbin/zfsnap.sh $out/bin/zfsnap
+    mv share $out
+    installManPage man/*/*
+    installShellCompletion completion/*.{bash,zsh}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A portable, performant script to make rolling ZFS snapshots easy";
+    homepage = "https://github.com/zfsnap/zfsnap";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ woffs ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/compression/zopfli/default.nix b/pkgs/tools/compression/zopfli/default.nix
index accead9db0b..586c47de582 100644
--- a/pkgs/tools/compression/zopfli/default.nix
+++ b/pkgs/tools/compression/zopfli/default.nix
@@ -2,32 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "zopfli";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "zopfli";
     rev = "${pname}-${version}";
     name = "${pname}-${version}-src";
-    sha256 = "1l551hx2p4qi0w9lk96qklbv6ll68gxbah07fhqx1ly28rv5wy9y";
+    sha256 = "0dr8n4j5nj2h9n208jns56wglw59gg4qm3s7c6y3hs75d0nnkhm4";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "zopfli-cmake.patch";
-      url = "https://github.com/google/zopfli/commit/7554e4d34e7000b0595aa606e7d72357cf46ba86.patch";
-      sha256 = "1pvfhir2083v1l042a4dy5byqdmad7sxnd4jrprl2hzzb2avxbbn";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" ];
 
-  installPhase = ''
-    install -D -t $out/bin zopfli*
-    install -d $out/lib
-    cp -d libzopfli* $out/lib
+  postInstall = ''
     install -Dm444 -t $out/share/doc/zopfli ../README*
   '';
 
diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix
index d0f68fac7ca..834aa7290ab 100644
--- a/pkgs/tools/filesystems/bindfs/default.nix
+++ b/pkgs/tools/filesystems/bindfs/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, fuse, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  version = "1.14.2";
+  version = "1.14.3";
   pname = "bindfs";
 
   src = fetchurl {
     url    = "https://bindfs.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0zn5fjrm9la5w1p66xhy87aasqsdky36dgc447jp2yp7nh18v339";
+    sha256 = "09csi8brp6v98gy9xcl6lkbz1wgs796wch1qviw2wa1n16wd91vw";
   };
 
   dontStrip = true;
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index 9c770441025..f3e985edbff 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -92,7 +92,7 @@ let
     ps.pyyaml
   ]);
 
-  version = "14.2.5";
+  version = "14.2.6";
 in rec {
   ceph = stdenv.mkDerivation {
     pname = "ceph";
@@ -100,7 +100,7 @@ in rec {
 
     src = fetchurl {
       url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
-      sha256 = "0wbkdplxs8higmlj57a7rydmx9rq08h0arjrmxmp0s80bn0v5x2c";
+      sha256 = "0qkyrb25r2a57n6k8ncb43x7hvhkmpi7abhfyi98mlz2lhmhzlm1";
     };
 
     patches = [
diff --git a/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index 0d7bcdcd0f2..fc174b12f10 100644
--- a/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fuse-overlayfs";
-  version = "0.7.2";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ybrki63ixrkraynms5i4jiil9901whwxs6p61h2c2ild8w2ir8n";
+    sha256 = "02286q4lc1paq735qmn5nyz31g1lwrkcnjkp05fdzcxf60h8paxk";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index af3e9250985..f8d955dbfc1 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -1,22 +1,24 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoPackage, fetchFromGitHub }:
 
-buildGoModule rec {
+buildGoPackage rec {
   pname = "gcsfuse";
-  version = "0.28.1";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "0dh01qvsjlzji2mwznykc2nghg4f1raylvgnp6sbxv9x1kpnwx71";
+    sha256 = "11an7cxgg3x830mwlhyx50xkcv7zpa9aziz6gz1crwp8shr4hdik";
   };
 
-  modSha256 = "0i86xs3lq2mj22yv7jmhmb34k7lz348bakqz020xpyccllkkszy4";
+  goPackagePath = "github.com/googlecloudplatform/gcsfuse";
 
-  patches = [
-    ./go.mod.patch
-    ./go.sum.patch
-  ];
+  subPackages = [ "." "tools/mount_gcsfuse" ];
+
+  postInstall = ''
+    ln -s $bin/bin/mount_gcsfuse $bin/bin/mount.gcsfuse
+    ln -s $bin/bin/mount_gcsfuse $bin/bin/mount.fuse.gcsfuse
+  '';
 
   meta = with lib;{
     description = "A user-space file system for interacting with Google Cloud Storage";
diff --git a/pkgs/tools/filesystems/gcsfuse/go.mod.patch b/pkgs/tools/filesystems/gcsfuse/go.mod.patch
deleted file mode 100644
index fbda63432d7..00000000000
--- a/pkgs/tools/filesystems/gcsfuse/go.mod.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/go.mod 	2019-10-09 22:35:05.777065057 -0400
-+++ b/go.mod	2019-10-10 21:34:15.809681738 -0400
-@@ -0,0 +1,25 @@
-+module github.com/googlecloudplatform/gcsfuse
-+
-+go 1.12
-+
-+require (
-+	cloud.google.com/go v0.0.0-20170807235027-9be7f826df5c
-+	github.com/codegangsta/cli v0.0.0-20170804093415-b99aa811b4c1
-+	github.com/golang/protobuf v0.0.0-20170902000452-17ce1425424a
-+	github.com/jacobsa/daemonize v0.0.0-20160101105449-e460293e890f
-+	github.com/jacobsa/fuse v0.0.0-20170513050233-fe7f3a55dcaa
-+	github.com/jacobsa/gcloud v0.0.0-20180124212516-9291bd1e8308
-+	github.com/jacobsa/oglematchers v0.0.0-20150720000706-141901ea67cd
-+	github.com/jacobsa/oglemock v0.0.0-20150831005832-e94d794d06ff
-+	github.com/jacobsa/ogletest v0.0.0-20170503003838-80d50a735a11
-+	github.com/jacobsa/ratelimit v0.0.0-20150904001804-f5e47030f3b0
-+	github.com/jacobsa/reqtrace v0.0.0-20150505043853-245c9e0234cb
-+	github.com/jacobsa/syncutil v0.0.0-20150827001642-c39ef5c1aa0b
-+	github.com/jacobsa/timeutil v0.0.0-20170205232429-577e5acbbcf6
-+	github.com/jacobsa/util v0.0.0-20150810040848-976a6f4de67e
-+	github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1
-+	golang.org/x/net v0.0.0-20170809000501-1c05540f6879
-+	golang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95
-+	google.golang.org/api v0.0.0-20170807210121-5c4ffd5985e2
-+	google.golang.org/appengine v0.0.0-20170801183137-c5a90ac045b7
-+)
diff --git a/pkgs/tools/filesystems/gcsfuse/go.sum.patch b/pkgs/tools/filesystems/gcsfuse/go.sum.patch
deleted file mode 100644
index d537266e3c1..00000000000
--- a/pkgs/tools/filesystems/gcsfuse/go.sum.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/go.sum	2019-10-09 22:35:05.777065057 -0400
-+++ b/go.sum	2019-10-10 21:34:15.809681738 -0400
-@@ -0,0 +1,35 @@
-+cloud.google.com/go v0.0.0-20170807235027-9be7f826df5c h1:pTb3uxaVLke7AQ/KUVTHWZmzKrKYrip7FimNb3ecAbo=
-+cloud.google.com/go v0.0.0-20170807235027-9be7f826df5c/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-+github.com/codegangsta/cli v0.0.0-20170804093415-b99aa811b4c1 h1:PTPzzngHWcTI0ph/9I92RhVtRkdOCi37wySw/ojR5Eg=
-+github.com/codegangsta/cli v0.0.0-20170804093415-b99aa811b4c1/go.mod h1:/qJNoX69yVSKu5o4jLyXAENLRyk1uhi7zkbQ3slBdOA=
-+github.com/golang/protobuf v0.0.0-20170902000452-17ce1425424a/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-+github.com/jacobsa/daemonize v0.0.0-20160101105449-e460293e890f h1:X+tnaqoCcBgAwSTJtoYW6p0qKiuPyMfofEHEFUf2kdU=
-+github.com/jacobsa/daemonize v0.0.0-20160101105449-e460293e890f/go.mod h1:Ip4fOwzCrnDVuluHBd7FXIMb7SHOKfkt9/UDrYSZvqI=
-+github.com/jacobsa/fuse v0.0.0-20170513050233-fe7f3a55dcaa h1:3420E523ahKsI3tlbO0zeLvgzuTFdJoy6JoAVuShs8U=
-+github.com/jacobsa/fuse v0.0.0-20170513050233-fe7f3a55dcaa/go.mod h1:9Aml1MG17JVeXrN4D2mtJvYHtHklJH5bESjCKNzVjFU=
-+github.com/jacobsa/gcloud v0.0.0-20180124212516-9291bd1e8308 h1:sfc1gTCrsJQJMySgDstAhwzogqQIrTxkwwScG4p2kbM=
-+github.com/jacobsa/gcloud v0.0.0-20180124212516-9291bd1e8308/go.mod h1:3fF6sEraNZSToePaj5q+f9KSaMpuZcwccqAQmOKDv/k=
-+github.com/jacobsa/oglematchers v0.0.0-20150720000706-141901ea67cd h1:9GCSedGjMcLZCrusBZuo4tyKLpKUPenUUqi34AkuFmA=
-+github.com/jacobsa/oglematchers v0.0.0-20150720000706-141901ea67cd/go.mod h1:TlmyIZDpGmwRoTWiakdr+HA1Tukze6C6XbRVidYq02M=
-+github.com/jacobsa/oglemock v0.0.0-20150831005832-e94d794d06ff h1:2xRHTvkpJ5zJmglXLRqHiZQNjUoOkhUyhTAhEQvPAWw=
-+github.com/jacobsa/oglemock v0.0.0-20150831005832-e94d794d06ff/go.mod h1:gJWba/XXGl0UoOmBQKRWCJdHrr3nE0T65t6ioaj3mLI=
-+github.com/jacobsa/ogletest v0.0.0-20170503003838-80d50a735a11/go.mod h1:+DBdDyfoO2McrOyDemRBq0q9CMEByef7sYl7JH5Q3BI=
-+github.com/jacobsa/ratelimit v0.0.0-20150904001804-f5e47030f3b0 h1:6GaIakaFrxn738iBykUc6fyS5sIAKRg/wafwzrzRX30=
-+github.com/jacobsa/ratelimit v0.0.0-20150904001804-f5e47030f3b0/go.mod h1:5/sdn6lSZE5l3rXMkJGO7Y3MHJImklO43rZx9ouOWYQ=
-+github.com/jacobsa/reqtrace v0.0.0-20150505043853-245c9e0234cb h1:uSWBjJdMf47kQlXMwWEfmc864bA1wAC+Kl3ApryuG9Y=
-+github.com/jacobsa/reqtrace v0.0.0-20150505043853-245c9e0234cb/go.mod h1:ivcmUvxXWjb27NsPEaiYK7AidlZXS7oQ5PowUS9z3I4=
-+github.com/jacobsa/syncutil v0.0.0-20150827001642-c39ef5c1aa0b h1:HMNP0njxow/ahg3AFKzu8HnyOUSRiVqWXm+i4VefV+Y=
-+github.com/jacobsa/syncutil v0.0.0-20150827001642-c39ef5c1aa0b/go.mod h1:mPvulh9VKXvo+yOlrD4VYOOYuLdZJ36wa/5QIrtXvWs=
-+github.com/jacobsa/timeutil v0.0.0-20170205232429-577e5acbbcf6 h1:XKHJmHcgU9glxk3eLPiRZT5VFSHJitVTnMj/EgIoXC4=
-+github.com/jacobsa/timeutil v0.0.0-20170205232429-577e5acbbcf6/go.mod h1:JEWKD6V8xETMW+DEv+IQVz++f8Cn8O/X0HPeDY3qNis=
-+github.com/jacobsa/util v0.0.0-20150810040848-976a6f4de67e h1:BegecLAVSx5IW1bOImB8Lt6+4yiWP4t+PUeckWYzIeg=
-+github.com/jacobsa/util v0.0.0-20150810040848-976a6f4de67e/go.mod h1:q0HiLetNeSPHjs8ddOw9U6xahog8xR7WPp6PhzJ6wmk=
-+github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1 h1:PJPDf8OUfOK1bb/NeTKd4f1QXZItOX389VN3B6qC8ro=
-+github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
-+golang.org/x/net v0.0.0-20170809000501-1c05540f6879 h1:0rFa7EaCGdQPmZVbo9F7MNF65b8dyzS6EUnXjs9Cllk=
-+golang.org/x/net v0.0.0-20170809000501-1c05540f6879/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-+golang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95 h1:RS+wSrhdVci7CsPwJaMN8exaP3UTuQU0qB34R/E/JD0=
-+golang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-+google.golang.org/api v0.0.0-20170807210121-5c4ffd5985e2 h1:wF/9eBxkxh3/00HWCFpF3583KFXGapuZ3EVpZIuLd4Q=
-+google.golang.org/api v0.0.0-20170807210121-5c4ffd5985e2/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
-+google.golang.org/appengine v0.0.0-20170801183137-c5a90ac045b7/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
diff --git a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
index da2dff6b77a..003a0e24fb5 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
@@ -35,7 +35,7 @@ buildPythonApplication rec {
   '';
 
   propagatedBuildInputs = [
-    pykickstart pyparted pyblock libselinux.py cryptsetup
+    pykickstart pyparted pyblock libselinux cryptsetup
   ] ++ stdenv.lib.optional useNixUdev systemd;
 
   # tests are currently _heavily_ broken upstream
diff --git a/pkgs/tools/filesystems/nixpart/0.4/default.nix b/pkgs/tools/filesystems/nixpart/0.4/default.nix
index 129283e83eb..5d7a9dd14ec 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/default.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/default.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, python, buildPythonApplication
+, libselinux
 # Propagated to blivet
 , useNixUdev ? true
 # Needed by NixOps
@@ -10,10 +11,9 @@
 let
   blivet = import ./blivet.nix {
     inherit stdenv fetchurl buildPythonApplication;
-    inherit pykickstart pyparted pyblock cryptsetup multipath_tools;
+    inherit pykickstart pyparted pyblock cryptsetup libselinux multipath_tools;
     inherit useNixUdev;
     inherit (pkgs) lsof utillinux systemd;
-    libselinux = pkgs.libselinux.override { enablePython = true; };
   };
 
   cryptsetup = import ./cryptsetup.nix {
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index 31bdba26783..6246a573340 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -9,14 +9,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.61";
+  version = "2.62";
   pname = "asymptote";
 
   src = fetchFromGitHub {
     owner = "vectorgraphics";
     repo = pname;
     rev = version;
-    sha256 = "0nblcxqzaxv1286zl2fjkivgp478l0nf3m0wnk78rd99lscjlw71";
+    sha256 = "1lb3a8r2gv0437viwy25s34g05x5v81gk0nxlgx7hzwv7b9zkv5s";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/grim/default.nix b/pkgs/tools/graphics/grim/default.nix
index 667a5b38d3e..ed7ed5fdef0 100644
--- a/pkgs/tools/graphics/grim/default.nix
+++ b/pkgs/tools/graphics/grim/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "grim";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0brljl4zfbn5mh9hkfrfkvd27c5y9vdkgap9r1hrfy9r1x20sskn";
+    sha256 = "14gqilgd27c4j2wn7fla72yj8syx0542rsanh61syikrv0hxgkvy";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix
index 5e839b354a3..b74378f0793 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-table-others";
-  version = "1.3.9";
+  version = "1.3.11";
 
   src = fetchurl {
     url = "https://github.com/moebiuscurve/ibus-table-others/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0270a9njyzb1f8nw5w9ghwxcl3m6f13d8p8a01fjm8rnjs04mcb3";
+    sha256 = "0763wnlklcs3d8fk21nkp7dgn4qzqgxh1s24q3kl8gzgng2a88jj";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     isIbusEngine = true;
     description  = "Various table-based input methods for IBus";
-    homepage     = https://github.com/moebiuscurve/ibus-table-others;
+    homepage     = "https://github.com/moebiuscurve/ibus-table-others";
     license      = licenses.gpl3;
     platforms    = platforms.linux;
     maintainers  = with maintainers; [ mudri ];
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index 7980298eba1..bca0f809909 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -2,16 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "0.11.8";
+  version = "0.11.9";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pbjlfwv4s50s731ryrcc54200g2i04acdxrxk4kpcvi6b19kbky";
+    sha256 = "1kif1113qdxg4hr1mfgg1fh10zgl9cl117cm1bfjaabw11k75cvj";
   };
 
-  cargoSha256 = "07ncclp4yqqr2lncw4bbcmknm09qzmdcq8iwkhyyfiy3fpyw9hqc";
+  cargoSha256 = "0636qkgkw027s5dz2mryhghlm6kn3s7cfy4i8rxywr8r3w8c40y0";
+  verifyCargoDeps = true;
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index c9f61ee3459..97b4aa1db28 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -9,11 +9,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "133";
+  version = "135";
 
   src = fetchurl {
     url    = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "15hi2fwcx3sf189rmxpyah0amq1a49wgp1ynhvwij5qj13wib2q8";
+    sha256 = "1grf28mb6lyxdqbmvws4h7inalda9z7qnjx7dc859mzkf54cn3yd";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/dust/default.nix b/pkgs/tools/misc/dust/default.nix
index 4239b54f18e..caa8451585e 100644
--- a/pkgs/tools/misc/dust/default.nix
+++ b/pkgs/tools/misc/dust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dust";
-  version = "0.4.2";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "bootandy";
     repo = "dust";
     rev = "v${version}";
-    sha256 = "0z1vi5agaf1gcq1bdzgfc89v6vpk9kaxxy8f3rd2h6yzdrd2dhk7";
+    sha256 = "1qbh9vgdh0xmh4c78fm0rd1sgb01n656p3cr4my7ymsy81ypx9y7";
   };
 
-  cargoSha256 = "08c428rrana0llzhkg8ngzqs6vc773jrf4wql2qxdvm4l0nsx596";
+  cargoSha256 = "07ynz6y1z3rz84662d4rfl2sw1sx46a3k48z8dckr0b3fqs2zj6a";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index 516badb7bc7..4e1a18efde4 100644
--- a/pkgs/tools/misc/fluent-bit/default.nix
+++ b/pkgs/tools/misc/fluent-bit/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fluent-bit";
-  version = "1.3.5";
+  version = "1.3.6";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${version}";
-    sha256 = "0xwh8fnvahcyygz0ydi4pdzgsyvjaphwl3f2ccdas52fbirwnicn";
+    sha256 = "0gkn5axjxaa52f3w2qxwwab4m46xrxymbkcpw1v1jihil34pxw7a";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
diff --git a/pkgs/tools/misc/fpart/default.nix b/pkgs/tools/misc/fpart/default.nix
index 563152cc10d..e673c73d096 100644
--- a/pkgs/tools/misc/fpart/default.nix
+++ b/pkgs/tools/misc/fpart/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, fetchFromGitHub, autoreconfHook }:
+{ stdenv, fetchFromGitHub, autoreconfHook, fts }:
 
 stdenv.mkDerivation rec {
   pname = "fpart";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "martymac";
     repo = "fpart";
     rev = "${pname}-${version}";
-    sha256 = "0h3mqc1xj5j2z8s8g3pvvpbjs6x74dj8niyh3p2ymla35kbzskf4";
+    sha256 = "17zm3cgp3f2plynqhj8a0hbma5rvawrx5kqygjqyynn7cljv458v";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ fts ];
 
   postInstall = ''
     sed "s|^FPART_BIN=.*|FPART_BIN=\"$out/bin/fpart\"|" \
diff --git a/pkgs/tools/misc/fsmon/default.nix b/pkgs/tools/misc/fsmon/default.nix
index c731094bdd6..e8e48d7879a 100644
--- a/pkgs/tools/misc/fsmon/default.nix
+++ b/pkgs/tools/misc/fsmon/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fsmon";
-  version = "1.5";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "nowsecure";
     repo = "fsmon";
     rev = version;
-    sha256 = "1b99cd5k2zh30sagp3f55jvj1r48scxibv7aqqc2sp82sci59npg";
+    sha256 = "1zpac37biy8jz8234q0krn7pjggz33k0grz590ravbjgfawm1ccy";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/graylog/default.nix b/pkgs/tools/misc/graylog/default.nix
index d56f44aacef..46812da8954 100644
--- a/pkgs/tools/misc/graylog/default.nix
+++ b/pkgs/tools/misc/graylog/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "graylog";
-  version = "3.1.3";
+  version = "3.1.4";
 
   src = fetchurl {
     url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz";
-    sha256 = "0jwfq9q10nz6fy9ac2j4fcf0liz4vj0q7jmfhy9dsa3476zccwa8";
+    sha256 = "1z7jy82dk5l2yxmcb7y0jws4p1l367fxj69pfi10ajssj66vwjfw";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/hakuneko/default.nix b/pkgs/tools/misc/hakuneko/default.nix
index 0a27397551d..34405ccc7be 100644
--- a/pkgs/tools/misc/hakuneko/default.nix
+++ b/pkgs/tools/misc/hakuneko/default.nix
@@ -21,16 +21,16 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "hakuneko";
-  version = "5.0.8";
+  version = "6.1.7";
 
   src = {
     "x86_64-linux" = fetchurl {
       url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_amd64.deb";
-      sha256 = "924df1d7a0ab54b918529165317e4428b423c9045548d1e36bd634914f7957f0";
+      sha256 = "06bb17d7a06bb0601053eaaf423f9176f06ff3636cc43ffc024438e1962dcd02";
     };
     "i686-linux" = fetchurl {
       url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_i386.deb";
-      sha256 = "988d8b0e8447dcd0a8d85927f5877bca9efb8e4b09ed3c80a6788390e54a48d2";
+      sha256 = "32017d26bafffaaf0a83dd6954d3926557014af4022a972371169c56c0e3d98b";
     };
   }."${stdenv.hostPlatform.system}";
 
diff --git a/pkgs/tools/misc/html-proofer/Gemfile.lock b/pkgs/tools/misc/html-proofer/Gemfile.lock
index ec69f523f3b..cab69d41f93 100644
--- a/pkgs/tools/misc/html-proofer/Gemfile.lock
+++ b/pkgs/tools/misc/html-proofer/Gemfile.lock
@@ -5,8 +5,8 @@ GEM
       public_suffix (>= 2.0.2, < 5.0)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.11.3)
-    html-proofer (3.15.0)
+    ffi (1.12.1)
+    html-proofer (3.15.1)
       addressable (~> 2.3)
       mercenary (~> 0.3)
       nokogumbo (~> 2.0)
@@ -14,18 +14,18 @@ GEM
       rainbow (~> 3.0)
       typhoeus (~> 1.3)
       yell (~> 2.0)
-    mercenary (0.3.6)
+    mercenary (0.4.0)
     mini_portile2 (2.4.0)
     nokogiri (1.10.7)
       mini_portile2 (~> 2.4.0)
     nokogumbo (2.0.2)
       nokogiri (~> 1.8, >= 1.8.4)
     parallel (1.19.1)
-    public_suffix (4.0.1)
+    public_suffix (4.0.3)
     rainbow (3.0.0)
     typhoeus (1.3.1)
       ethon (>= 0.9.0)
-    yell (2.2.0)
+    yell (2.2.1)
 
 PLATFORMS
   ruby
diff --git a/pkgs/tools/misc/html-proofer/gemset.nix b/pkgs/tools/misc/html-proofer/gemset.nix
index 1f561f52976..fbf65a8a0c0 100644
--- a/pkgs/tools/misc/html-proofer/gemset.nix
+++ b/pkgs/tools/misc/html-proofer/gemset.nix
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10ay35dm0lkcqprsiya6q2kwvyid884102ryipr4vrk790yfp8kd";
+      sha256 = "0i2vxj3ryvih5y06mgsa19dwy8fpyx58byh5szp7m6i702p78rni";
       type = "gem";
     };
-    version = "1.11.3";
+    version = "1.12.1";
   };
   html-proofer = {
     dependencies = ["addressable" "mercenary" "nokogumbo" "parallel" "rainbow" "typhoeus" "yell"];
@@ -37,20 +37,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nmwxmn0dxgs53g1cqn251dzmjrklw14cpa6z6wz7cdwvjq47500";
+      sha256 = "0krd80ga7qcms469l55jbm711a7ph2lmyn88l929nhbxc7sgm81g";
       type = "gem";
     };
-    version = "3.15.0";
+    version = "3.15.1";
   };
   mercenary = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
+      sha256 = "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.4.0";
   };
   mini_portile2 = {
     groups = ["default"];
@@ -99,10 +99,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
+      sha256 = "1c6kq6s13idl2036b5lch8r7390f8w82cal8hcp4ml76fm2vdac7";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.0.3";
   };
   rainbow = {
     groups = ["default"];
@@ -130,9 +130,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1394pf8wsv4wx2lf1d9iqqx6lcww9bgmgh9sms3dbga804cns0n8";
+      sha256 = "1r2kygdh193qdbjjwhfghzl9czj4jr9xrw3gqyg5hmvmn7lygjwm";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.1";
   };
 }
\ No newline at end of file
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index bf1501155d9..109a84de631 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -2,20 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "jdupes";
-  version = "1.13.2";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "1dzw1h9x9addkxf7r8lb8y09wmdkx8i61f5m96589r88jjk965xy";
+    sha256 = "18hn25f7cdz1li0vvx74al7a8z2220xhzjp9j6idhldsmjnscgq8";
     # Unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation. The testdir
     # directories have such files and will be removed.
     extraPostFetch = "rm -r $out/testdir";
   };
 
-  makeFlags = [ "PREFIX=$(out)" ] ++ stdenv.lib.optional stdenv.isLinux "ENABLE_BTRFS=1";
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ] ++ stdenv.lib.optionals stdenv.isLinux [
+    "ENABLE_DEDUPE=1"
+    "STATIC_DEDUPE_H=1"
+  ];
 
   enableParallelBuilding = true;
 
@@ -32,7 +37,7 @@ stdenv.mkDerivation rec {
       duplicate files. This fork known as 'jdupes' is heavily modified
       from and improved over the original.
     '';
-    homepage = https://github.com/jbruchon/jdupes;
+    homepage = "https://github.com/jbruchon/jdupes";
     license = licenses.mit;
     maintainers = with maintainers; [ romildo ];
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/mcfly/default.nix b/pkgs/tools/misc/mcfly/default.nix
index db697bc9d51..4ea27ce092f 100644
--- a/pkgs/tools/misc/mcfly/default.nix
+++ b/pkgs/tools/misc/mcfly/default.nix
@@ -2,13 +2,12 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "v0.3.1";
-  rev = version;
+  version = "0.3.1";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "cantino";
     repo = "mcfly";
+    rev = "v${version}";
     sha256 = "0pmyw21zns4zn7pffji4yvbj63fx3g15cx81pk4bs6lzyz5zbdc2";
   };
 
diff --git a/pkgs/tools/misc/mutagen/default.nix b/pkgs/tools/misc/mutagen/default.nix
new file mode 100644
index 00000000000..7045a5b5140
--- /dev/null
+++ b/pkgs/tools/misc/mutagen/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "mutagen";
+  version = "0.10.2";
+
+  src = fetchFromGitHub {
+    owner = "mutagen-io";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0andmgzg2dbnahfh6ncnk9b7d5jlwss7rddsf9z3nmw2q3lj90iz";
+  };
+
+  modSha256 = "0zb6wqfgp5v0hpm8ad6s9lc1n3wayyqindv4vfkmp3980ikb8qwx";
+
+  subPackages = [ "cmd/mutagen" "cmd/mutagen-agent" ];
+
+  meta = with lib; {
+    description = "Make remote development work with your local tools";
+    homepage = "https://mutagen.io/";
+    maintainers = [ maintainers.marsam ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/tools/misc/pfetch/default.nix b/pkgs/tools/misc/pfetch/default.nix
index 491844f26b7..a858ad696af 100644
--- a/pkgs/tools/misc/pfetch/default.nix
+++ b/pkgs/tools/misc/pfetch/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenvNoCC, lib, fetchFromGitHub }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "pfetch";
   version = "0.4.0";
 
@@ -11,14 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "180vvbmvak888vs4dgzlmqk0ss4qfsz09700n4p8s68j7krkxsfq";
   };
 
-  dontbuild = true;
+  dontBuild = true;
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp pfetch $out/bin
+    install -Dm755 -t $out/bin pfetch
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pretty system information tool written in POSIX sh";
     homepage = https://github.com/dylanaraps/pfetch;
     license = licenses.mit;
diff --git a/pkgs/tools/misc/pg_flame/default.nix b/pkgs/tools/misc/pg_flame/default.nix
index a7b483a3f06..fbeba0ff1bd 100644
--- a/pkgs/tools/misc/pg_flame/default.nix
+++ b/pkgs/tools/misc/pg_flame/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "pg_flame";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchFromGitHub {
     owner = "mgartner";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13r35n4sy9s4343l3vc896av629wqr7m225ih2bbrm8qq70fwhwv";
+    sha256 = "1a03vxqnga83mhjp7pkl0klhkyfaby7ncbwm45xbl8c7s6zwhnw2";
   };
 
   modSha256 = "0j7qpvji546z0cfjijdd66l0vsl0jmny6i1n9fsjqjgjpwg26naq";
diff --git a/pkgs/tools/misc/pipreqs/default.nix b/pkgs/tools/misc/pipreqs/default.nix
index 15c5cbc0eb1..9925021b3f6 100644
--- a/pkgs/tools/misc/pipreqs/default.nix
+++ b/pkgs/tools/misc/pipreqs/default.nix
@@ -3,11 +3,11 @@
 # Using python 2 because when packaging with python 3 pipreqs fails to parse python 2 code.
 python2Packages.buildPythonApplication rec {
   pname = "pipreqs";
-  version = "0.4.9";
+  version = "0.4.10";
 
   src = python2Packages.fetchPypi {
     inherit pname version;
-    sha256 = "cec6eecc4685967b27eb386037565a737d036045f525b9eb314631a68d60e4bc";
+    sha256 = "0fdr3mbxjpmrxr7yfc1sn9kbpcyb0qwafimhhrrqvf989dj1sdcy";
   };
 
   propagatedBuildInputs = with python2Packages; [ yarg docopt ];
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index c42ea76ca85..4cf98ef8b48 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub, gnugrep, ncurses, pkgconfig, readline }:
+{ stdenv, fetchFromGitHub, gnugrep, ncurses, pkgconfig, readline, postgresql }:
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "2.6.0";
+  version = "2.6.6";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "0cs0hsrrknl2cv39zzq4wydx5p7095hz18yly572fnniyi4ljbdg";
+    sha256 = "0l20ysr61y99zxvm8cqsgj7arv4m7h7gqq8lrq65bmh9fxncfpsd";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gnugrep ncurses readline ];
+  buildInputs = [ gnugrep ncurses readline postgresql ];
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/okbob/pspg";
     description = "Postgres Pager";
     license = licenses.bsd2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.jlesquembre ];
   };
 }
diff --git a/pkgs/tools/misc/skim/default.nix b/pkgs/tools/misc/skim/default.nix
index 55e6e5424d7..0c8e2da36df 100644
--- a/pkgs/tools/misc/skim/default.nix
+++ b/pkgs/tools/misc/skim/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "skim";
-  version = "0.6.9";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "lotabout";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ygnjrljar4caybh8lqfjif4vhb33aam80ffnzgqxz6s6g85ifrb";
+    sha256 = "0is6zymvy673f1g466i3ayi4jawdl7pm9l3cbdxcw32h3snbkgqp";
   };
 
   outputs = [ "out" "vim" ];
 
-  cargoSha256 = "1vcxcyhhqncjii0pad775x10j1kp62y82q1mii65jclr1karml3p";
+  cargoSha256 = "1dl530ac8i4wdw7lziskl7rhh3ak9ykcws3kpy64808kxg3b1jnz";
 
   patchPhase = ''
     sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/skim.vim
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with stdenv.lib; {
     description = "Command-line fuzzy finder written in Rust";
-    homepage = https://github.com/lotabout/skim;
+    homepage = "https://github.com/lotabout/skim";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index fa59935f561..9c9a4450ee8 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -3,13 +3,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.33.0";
+  version = "0.33.1";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wqxcfd7ams3k0swps9037dzc1qzxhpbqaz4qjw9jabgcl6jkb6v";
+    sha256 = "15z8iwig10brjxirr9nm1aibjz6qpd82v7n9c4i2q1q9qvb3j5cs";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
       --replace "/bin/echo" "echo"
   '';
 
-  cargoSha256 = "0gcca3vlwrfhw9k4r9zc1raflr1m4xws9dpdxjh1kz34f9g88ijg";
+  cargoSha256 = "16jr96ljd34x3fa2jahcqmjm1ds8519hx391wv1snk7y70fz1314";
   checkPhase = "cargo test -- --skip directory::home_directory --skip directory::directory_in_root";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/tmuxinator/default.nix b/pkgs/tools/misc/tmuxinator/default.nix
index ab2edf7be4e..b7c9150e12d 100644
--- a/pkgs/tools/misc/tmuxinator/default.nix
+++ b/pkgs/tools/misc/tmuxinator/default.nix
@@ -8,8 +8,8 @@ buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "tmuxinator";
-  version = "1.1.0";
-  source.sha256 = "9f4a4fd0242c82844f9af109d2c03b6870060d7e30603e6d9bd017aee5380ec0";
+  version = "1.1.4";
+  source.sha256 = "06ajfvsmq2040b7nk2ifih3sqxgwzih5j1d25nh4ilgjlrfmha98";
 
   erubis = buildRubyGem rec {
     inherit ruby;
@@ -23,16 +23,16 @@ buildRubyGem rec {
     inherit ruby;
     name = "ruby${ruby.version}-${gemName}-${version}";
     gemName = "thor";
-    version = "0.20.0";
-    source.sha256 = "0nmqpyj642sk4g16nkbq6pj856adpv91lp4krwhqkh2iw63aszdl";
+    version = "1.0.1";
+    source.sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
   };
 
   xdg = buildRubyGem rec {
     inherit ruby;
     name = "ruby${ruby.version}-${gemName}-${version}";
     gemName = "xdg";
-    version = "2.2.3";
-    source.sha256 = "1bn47fdbwxqbdvjcfg86i32hmwm36k0xl876kb85f5da5v84lzmq";
+    version = "2.2.5";
+    source.sha256 = "04xr4cavnzxlk926pkji7b5yiqy4qsd3gdvv8mg6jliq6sczg9gk";
   };
 
   propagatedBuildInputs = [ erubis thor xdg ];
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index 060975f2002..17d11d7e48a 100644
--- a/pkgs/tools/misc/topgrade/default.nix
+++ b/pkgs/tools/misc/topgrade/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, rustPlatform }:
+{ stdenv, lib, fetchFromGitHub, rustPlatform, Foundation }:
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
@@ -13,11 +13,13 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1y85hl7xl60vsj3ivm6pyd6bvk39wqg25bqxfx00r9myha94iqmd";
 
-  meta = with stdenv.lib; {
+  buildInputs = lib.optional stdenv.isDarwin Foundation;
+
+  meta = with lib; {
     description = "Upgrade all the things";
     homepage = "https://github.com/r-darwish/topgrade";
     license = licenses.gpl3;
     platforms = platforms.all;
-    maintainers = with maintainers; [ filalex77 ];
+    maintainers = with maintainers; [ filalex77 hugoreeves ];
   };
 }
diff --git a/pkgs/tools/misc/txr/default.nix b/pkgs/tools/misc/txr/default.nix
index 0f68ca82ece..a6b851e18ae 100644
--- a/pkgs/tools/misc/txr/default.nix
+++ b/pkgs/tools/misc/txr/default.nix
@@ -2,21 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "txr";
-  version = "230";
+  version = "231";
 
   src = fetchurl {
     url = "http://www.kylheku.com/cgit/txr/snapshot/${pname}-${version}.tar.bz2";
-    sha256 = "03ab9drdqvkfq240pkrx6197jjvvjizjwfx9psjmm6lixksw0kjx";
+    sha256 = "0mcglb84zfmrai2bcdg9j0ck8jp8h7ii2rf4m38yjggy0dvii2lc";
   };
 
   nativeBuildInputs = [ bison flex ];
   buildInputs = [ libffi ];
 
-  # fix usage of off_t without include
-  postPatch = ''
-    sed -i '1i#include <sys/types.h>' sysif.h
-  '';
-
   enableParallelBuilding = true;
 
   doCheck = true;
diff --git a/pkgs/tools/misc/usbmuxd/default.nix b/pkgs/tools/misc/usbmuxd/default.nix
index 9b94d003706..5935710164c 100644
--- a/pkgs/tools/misc/usbmuxd/default.nix
+++ b/pkgs/tools/misc/usbmuxd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "usbmuxd";
-  version = "2019-03-05";
+  version = "2019-11-11";
 
   src = fetchFromGitHub {
     owner = "libimobiledevice";
     repo = pname;
-    rev = "b1b0bf390363fa36aff1bc09443ff751943b9c34";
-    sha256 = "176hapckx98h4x0ni947qpkv2s95f8xfwz00wi2w7rgbr6cviwjq";
+    rev = "9af2b12552693a47601347e1eafc1e94132d727e";
+    sha256 = "0w8mf2wfpqijg882vhb8xarlp6zja23xf0b59z5zi774pnpjbqvj";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/misc/vmtouch/default.nix b/pkgs/tools/misc/vmtouch/default.nix
index fda442a6729..6397a093347 100644
--- a/pkgs/tools/misc/vmtouch/default.nix
+++ b/pkgs/tools/misc/vmtouch/default.nix
@@ -2,14 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vmtouch";
-  version = "1.3.0";
-  name = "${pname}-git-${version}";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "hoytech";
     repo = "vmtouch";
     rev = "v${version}";
-    sha256 = "0xpigfpwidk25k605y2m2g1952nzl5fgp0wn65hhn7hbra7srglf";
+    sha256 = "08da6apzfkfjwasn4dxrlfxqfx7arl28apdzac5nvm0fhvws0dxk";
   };
 
   buildInputs = [perl];
diff --git a/pkgs/tools/misc/wakatime/default.nix b/pkgs/tools/misc/wakatime/default.nix
index a685dc7cbde..58ad9182261 100644
--- a/pkgs/tools/misc/wakatime/default.nix
+++ b/pkgs/tools/misc/wakatime/default.nix
@@ -3,13 +3,13 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "wakatime";
-  version = "13.0.2";
+  version = "13.0.3";
 
   src = fetchFromGitHub {
     owner = "wakatime";
     repo = "wakatime";
     rev = version;
-    sha256 = "0ng7hb83gj6vb569qh58vqp4ana162r20dif086kgc3sch2z63j9";
+    sha256 = "16g23nm1x1a142rmnljdclq03c5anfzyiiazxaxyka8bggzhfmmc";
   };
 
   # needs more dependencies from https://github.com/wakatime/wakatime/blob/191b302bfb5f272ae928c6d3867d06f3dfcba4a8/dev-requirements.txt
diff --git a/pkgs/tools/misc/yle-dl/default.nix b/pkgs/tools/misc/yle-dl/default.nix
index d369bb4fed7..e106c3b8595 100644
--- a/pkgs/tools/misc/yle-dl/default.nix
+++ b/pkgs/tools/misc/yle-dl/default.nix
@@ -11,7 +11,9 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "0k93p9csyjm0w33diwl5s22kzs3g78jl3n9k8nxxpqrybfjl912f";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ lxml pyamf pycrypto requests future ffmpeg ];
+  propagatedBuildInputs = with pythonPackages; [
+    lxml pyamf pycrypto requests future ffmpeg setuptools
+  ];
   pythonPath = [ rtmpdump php ];
 
   doCheck = false; # tests require network access
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 415ec83be2f..875eccac942 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -18,11 +18,11 @@ buildPythonPackage rec {
   # The websites youtube-dl deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2019.12.25";
+  version = "2020.01.15";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "13f7wv9v77zilhif0ndgjv4wn9glhmm14yh7axdcx5wglrgz38hf";
+    sha256 = "0dyjc8nxyg9ry2ylmblh3fwavpais3mdfj6ndw4i0yc2vkw12rsm";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index ae45e0c1fc1..a399e7209af 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bandwhich";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "imsnif";
     repo = pname;
     rev = version;
-    sha256 = "0gjk84a4ks5107vrchwwnslpbcrprmznjy3sqn2mrwfvw5biycb3";
+    sha256 = "0xq2lv06dx7g00b4amk131krlsb6acsz7b228pn3iz6gy31fhz3y";
   };
 
   cargoSha256 = "1sa81570cvvpqgdcpnb08b0q4c6ap8a2wxfp2z336jzbv0zgv8a6";
diff --git a/pkgs/tools/networking/cassowary/default.nix b/pkgs/tools/networking/cassowary/default.nix
new file mode 100644
index 00000000000..bc1f9cebb42
--- /dev/null
+++ b/pkgs/tools/networking/cassowary/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub, writeText, runtimeShell, ncurses, }:
+
+buildGoModule rec {
+  pname = "cassowary";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "rogerwelin";
+    repo = pname;
+    rev = "33b7e81a5d147980f4ddc689818df2b071f6ab4e";
+    sha256 = "01cdmh2v9rz8rna08hdsddllck6zp9wcrhxdy6hs77zfsbzyfflx";
+  };
+
+  modSha256 = "1iylnnmj5slji89pkb3shp4xqar1zbpl7bzwddbzpp8y52fmsv1c";
+
+  meta = with lib; {
+    homepage = "https://github.com/rogerwelin/cassowary";
+    description = "Modern cross-platform HTTP load-testing tool written in Go ";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hugoreeves ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/networking/corerad/default.nix b/pkgs/tools/networking/corerad/default.nix
index 6f9ea09eea1..c5cbd8c21f5 100644
--- a/pkgs/tools/networking/corerad/default.nix
+++ b/pkgs/tools/networking/corerad/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "corerad";
-  version = "0.1.4";
+  version = "0.1.8";
 
   goPackagePath = "github.com/mdlayher/corerad";
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "mdlayher";
     repo = "corerad";
     rev = "v${version}";
-    sha256 = "0qlmmgdz69gqqn6h5kb3gsjyj7lm6pcfcx9xlmrxhisj914ij76r";
+    sha256 = "13js6p3svx2xp20yjpb5w71rnyrhiiqbbvsck45i756j1lndaqxr";
   };
 
-  modSha256 = "0vim91yvw0cf9bd10hfanz8azq7q19lp2x61rs44ycx9zm3qdhcw";
+  modSha256 = "03x7r392bwchmd3jzwwykdfkr9lfdn77phfwh8xfk2avhzq7qs89";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/mdlayher/corerad";
diff --git a/pkgs/tools/networking/httpie/default.nix b/pkgs/tools/networking/httpie/default.nix
index 4230762d946..38fdab358c9 100644
--- a/pkgs/tools/networking/httpie/default.nix
+++ b/pkgs/tools/networking/httpie/default.nix
@@ -2,22 +2,18 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "httpie";
-  version = "1.0.3";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "jakubroztocil";
     repo = "httpie";
     rev = version;
-    sha256 = "0y30sp0x3nmgzi4dqw1rc3705hnn36ij0zlyyx7g6fqdq8bd8p5q";
+    sha256 = "0d0rsn5i973l9y0ws3xmnzaw4jwxdlryyjbasnlddph5mvkf7dq0";
   };
 
   propagatedBuildInputs = with python3Packages; [ pygments requests setuptools ];
   dontUseSetuptoolsCheck = true;
-
-  disabledTests = [
-    "test_current_version"
-    "test_error"
-  ];
+  patches = [ ./strip-venv.patch ];
 
   checkInputs = with python3Packages; [
     mock
diff --git a/pkgs/tools/networking/httpie/strip-venv.patch b/pkgs/tools/networking/httpie/strip-venv.patch
new file mode 100644
index 00000000000..99ea80a3f56
--- /dev/null
+++ b/pkgs/tools/networking/httpie/strip-venv.patch
@@ -0,0 +1,19 @@
+diff --git a/tests/test_docs.py b/tests/test_docs.py
+index 7a41822..720ecf6 100644
+--- a/tests/test_docs.py
++++ b/tests/test_docs.py
+@@ -41,12 +41,10 @@ assert filenames
+ 
+ # HACK: hardcoded paths, venv should be irrelevant, etc.
+ # TODO: replaces the process with Python code
+-VENV_BIN = Path(__file__).parent.parent / 'venv/bin'
+-VENV_PYTHON = VENV_BIN / 'python'
+-VENV_RST2PSEUDOXML = VENV_BIN / 'rst2pseudoxml.py'
++VENV_PYTHON = 'python'
++VENV_RST2PSEUDOXML = 'rst2pseudoxml.py'
+ 
+ 
+-@pytest.mark.skipif(not os.path.exists(VENV_RST2PSEUDOXML), reason='docutils not installed')
+ @pytest.mark.parametrize('filename', filenames)
+ def test_rst_file_syntax(filename):
+     p = subprocess.Popen(
diff --git a/pkgs/tools/networking/iperf/3.nix b/pkgs/tools/networking/iperf/3.nix
index c59eb09f4c5..bea61b082ec 100644
--- a/pkgs/tools/networking/iperf/3.nix
+++ b/pkgs/tools/networking/iperf/3.nix
@@ -9,6 +9,9 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ openssl ];
+  configureFlags = [
+    "--with-openssl=${openssl.dev}"
+  ];
 
   outputs = [ "out" "man" ];
 
diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index 9a982e53825..602ada1476a 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lftp";
-  version = "4.9.0";
+  version = "4.9.1";
 
   src = fetchurl {
     urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "https://ftp.st.ryukoku.ac.jp/pub/network/ftp/lftp/${pname}-${version}.tar.xz"
       "https://lftp.yar.ru/ftp/${pname}-${version}.tar.xz"
       ];
-    sha256 = "0km267h57mlrd7gnn9gf40znvb3irwfc0qaql8kii8v936g6afqb";
+    sha256 = "0jq2g8h1bx06ya9fsja748vwb2qrca4wsfrgi3fmaa8hznpgqsar";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
index 6c2a42e3a24..cdd954e1975 100644
--- a/pkgs/tools/networking/mu/default.nix
+++ b/pkgs/tools/networking/mu/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
     # We install msg2pdf to bin/msg2pdf, fix its location in elisp
     substituteInPlace mu4e/mu4e-actions.el \
-      --replace "/toys/msg2pdf/msg2pdf" "/bin/msg2pdf"
+      --replace "/toys/msg2pdf/" "/bin/"
   '';
 
   # Install mug and msg2pdf
diff --git a/pkgs/tools/networking/nebula/default.nix b/pkgs/tools/networking/nebula/default.nix
index 7f9d194e44a..3411aca5551 100644
--- a/pkgs/tools/networking/nebula/default.nix
+++ b/pkgs/tools/networking/nebula/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nebula";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "slackhq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0j7fna352z8kzx6n0hck7rp122c0v44j9syz0v30vq47xq2pwj5c";
+    sha256 = "0nwagk3q2gkirqrk27fisad2c2p2y1lsvz5phax9v5h51p1y79ia";
   };
 
-  modSha256 = "130h0gc5z0w5inpc99y6mismwg3nyzk3bqdq5v9yclkxlhkbcp6d";
+  modSha256 = "1sy5mnwn9fxjf3y41lm8gsggid2c0y08iw88m9ng8psaf4qid8ij";
 
   subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
 
diff --git a/pkgs/tools/networking/saldl/default.nix b/pkgs/tools/networking/saldl/default.nix
new file mode 100644
index 00000000000..d51e5515bd6
--- /dev/null
+++ b/pkgs/tools/networking/saldl/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, wafHook
+, asciidoc
+, docbook_xml_dtd_45
+, docbook_xsl
+, libxml2
+, libxslt
+, curl
+, libevent
+}:
+
+stdenv.mkDerivation rec {
+  pname = "saldl";
+  version = "40";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "19ajci5h5gdnrvwf0l7xy5s58z2di68rrvcmqpsmpp4lfr37rk2l";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    wafHook
+    asciidoc
+    docbook_xml_dtd_45
+    docbook_xsl
+    libxml2
+    libxslt
+  ];
+
+  buildInputs = [ curl libevent ];
+
+  wafConfigureFlags = [ "--saldl-version ${version}" "--no-werror" ];
+
+  outputs = [ "out" "man" ];
+
+  meta = with stdenv.lib; {
+    description = "CLI downloader optimized for speed and early preview";
+    homepage = "https://saldl.github.io";
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ zowoq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/networking/subfinder/default.nix b/pkgs/tools/networking/subfinder/default.nix
index cd5f2bf18cb..70820ea0320 100644
--- a/pkgs/tools/networking/subfinder/default.nix
+++ b/pkgs/tools/networking/subfinder/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "subfinder";
-  version = "2.2.4";
+  version = "2.3.0";
 
   goPackagePath = "github.com/projectdiscovery/subfinder";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00ni835zvgrj8gmmmpjdszrcijyd6apig8rpb4g2z3g016b6gwar";
+    sha256 = "1vjxi2h4njakyqkfzwwaacy37kqx66j2y3k5l752z9va73gv7xv1";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/tools/networking/wavemon/default.nix b/pkgs/tools/networking/wavemon/default.nix
index fefff857381..89177f49ecf 100644
--- a/pkgs/tools/networking/wavemon/default.nix
+++ b/pkgs/tools/networking/wavemon/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, ncurses, libnl, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.0";
+  version = "0.9.1";
   baseName = "wavemon";
   name = "${baseName}-${version}";
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     owner = "uoaerg";
     repo = "wavemon";
     rev = "v${version}";
-    sha256 = "07cid0h3mcyr74nnrzzf8k5n1p9a4y3wij43jbiaqmkpxilcc1i6";
+    sha256 = "109ycwnjjqc2vpnd8b86njfifczlxglnyv4rh2qmbn2i5nw2wryg";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index a4acdf0a341..60091742e0d 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "1.1.8";
+  version = "1.1.10";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0yy75iagyrr96y7497hbbizrm59c757mshwicl1b7ni2sn3p63fh";
+    sha256 = "0qn9hybqnhyf1xb6n0m4qq2ac8h187i2pjkkik73qly1hmyq45j7";
   };
 
-  modSha256 = "05hcn0k1zb4k4p3aaas7b276jw607cv290np9vmyqxb3khzv4vjg";
+  modSha256 = "037ihnvssgkzbg94yfw4lwqnhj02m187dfn1fm7i6yv13kf0gkpx";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/tools/package-management/nix-bundle/default.nix b/pkgs/tools/package-management/nix-bundle/default.nix
index cd90e50d70e..b78b3bf07cd 100644
--- a/pkgs/tools/package-management/nix-bundle/default.nix
+++ b/pkgs/tools/package-management/nix-bundle/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nix-bundle";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "matthewbauer";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0klabmygbhzlwxja8p2w8fp8ip3xaa5ym9c15rp9qxzh03hfmdjx";
+    sha256 = "084m9hqm1nhwln2sbg8ck2v2dprvpldxxqmd1r8fcj3dmn4bysz0";
   };
 
   # coreutils, gnutar is actually needed by nix for bootstrap
diff --git a/pkgs/tools/package-management/nix-prefetch/default.nix b/pkgs/tools/package-management/nix-prefetch/default.nix
index f88820ffad9..19a40b7395f 100644
--- a/pkgs/tools/package-management/nix-prefetch/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch/default.nix
@@ -2,17 +2,15 @@
 , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, libxslt
 , coreutils, gawk, gnugrep, gnused, jq, nix }:
 
-with stdenv.lib;
-
 stdenv.mkDerivation rec {
   pname = "nix-prefetch";
-  version = "0.1.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "msteen";
     repo = "nix-prefetch";
-    rev = "f9507a655651b51f3a3ebacde85bb40758853615";
-    sha256 = "0ykrbvbwwpz348424yy2452idgw8dffi3klh7n85n96dfflyyd4s";
+    rev = version;
+    sha256 = "0b9gdi7xzmfq0j258x724xsll8gi31m0m4pzfjkqinlm6zwr3sgm";
   };
 
   nativeBuildInputs = [
@@ -40,7 +38,7 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out/bin
     makeWrapper $lib/main.sh $out/bin/${pname} \
-      --prefix PATH : '${makeBinPath [ coreutils gawk gnugrep gnused jq nix ]}'
+      --prefix PATH : '${stdenv.lib.makeBinPath [ coreutils gawk gnugrep gnused jq nix ]}'
 
     substitute src/tests.sh $lib/tests.sh \
       --subst-var-by bin $out/bin
@@ -55,13 +53,13 @@ stdenv.mkDerivation rec {
     install -D contrib/nix-prefetch-completion.bash $out/share/bash-completion/completions/nix-prefetch
     install -D contrib/nix-prefetch-completion.zsh $out/share/zsh/site-functions/_nix_prefetch
 
-    mkdir $out/contrib
-    cp -r contrib/hello_rs $out/contrib/
+    mkdir -p $out/share/doc/${pname}/contrib
+    cp -r contrib/hello_rs $out/share/doc/${pname}/contrib/
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Prefetch any fetcher function call, e.g. package sources";
-    homepage = https://github.com/msteen/nix-prefetch;
+    homepage = "https://github.com/msteen/nix-prefetch";
     license = licenses.mit;
     maintainers = with maintainers; [ msteen ];
     platforms = platforms.all;
diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix
index 81cfcb662c4..dc69ae457dc 100644
--- a/pkgs/tools/package-management/packagekit/default.nix
+++ b/pkgs/tools/package-management/packagekit/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "packagekit";
-  version = "1.1.12";
+  version = "1.1.13";
 
   outputs = [ "out" "dev" ];
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "PackageKit";
     rev = "PACKAGEKIT_${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "02wq3jw3mkdld90irh5vdfd5bri2g1p89mhrmj56kvif1fqak46x";
+    sha256 = "0xmgac27p5z8wr56yw3cqhywnlvaf8kvyv1g0nzxnq167xj5vxam";
   };
 
   buildInputs = [ glib polkit python3 gobject-introspection ]
@@ -40,7 +40,8 @@ stdenv.mkDerivation rec {
     "--localstatedir=/var"
     "--sysconfdir=/etc"
     "--with-dbus-sys=${placeholder "out"}/share/dbus-1/system.d"
-    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system/"
+    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+    "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
   ]
   ++ lib.optional enableNixBackend "--enable-nix"
   ++ lib.optional (!enableBashCompletion) "--disable-bash-completion"
@@ -49,7 +50,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   installFlags = [
-    "sysconfdir=\${out}/etc"
+    "sysconfdir=${placeholder "out"}/etc"
     "localstatedir=\${TMPDIR}"
   ];
 
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index ae0259e65fc..05d293b5bf1 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -50,6 +50,11 @@ stdenv.mkDerivation rec {
       sed -i $out/lib/rpm/macros -e "s/^%__$tool.*/%__$tool $tool/"
     done
 
+    # Avoid helper scripts pointing to absolute paths
+    for tool in find-provides find-requires; do
+      sed -i $out/lib/rpm/$tool -e "s#/usr/lib/rpm/#$out/lib/rpm/#"
+    done
+
     # symlinks produced by build are incorrect
     ln -sf $out/bin/{rpm,rpmquery}
     ln -sf $out/bin/{rpm,rpmverify}
diff --git a/pkgs/tools/security/chrome-token-signing/default.nix b/pkgs/tools/security/chrome-token-signing/default.nix
index 5e304f86b4e..76c845e7a99 100644
--- a/pkgs/tools/security/chrome-token-signing/default.nix
+++ b/pkgs/tools/security/chrome-token-signing/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qmake, pcsclite, pkgconfig, opensc }:
+{ mkDerivation, fetchFromGitHub, qmake, pcsclite, pkgconfig, opensc }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "chrome-token-signing";
   version = "1.0.7";
 
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 5ea91854282..4ec84353e4e 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, fetchpatch, python3, gamin }:
+{ stdenv, fetchFromGitHub, python3, gamin }:
 
-let version = "0.10.4"; in
+let version = "0.10.5"; in
 
 python3.pkgs.buildPythonApplication {
   pname = "fail2ban";
@@ -10,18 +10,9 @@ python3.pkgs.buildPythonApplication {
     owner  = "fail2ban";
     repo   = "fail2ban";
     rev    = version;
-    sha256 = "07ik6rm856q0ic2r7vbg6j3hsdcdgkv44hh5ck0c2y21fqwrck3l";
+    sha256 = "1s8g46vkwhqnagj69v4wvcasypzkmq7awhfbxahffrypcpad5ach";
   };
 
-  patches = [
-    # 0.10.3 supports Python 3 but somehow this got into the way
-    # https://github.com/fail2ban/fail2ban/issues/2255
-    (fetchpatch {
-      url = "https://github.com/fail2ban/fail2ban/commit/657b147c0d7830f3600f3dc7feaa4815a7e19fde.patch";
-      sha256 = "1hrk2x7ssrfhab1wrjk5xw1sxhiv2735glfcp6qcj8x4dss3q7f7";
-    })
-  ];
-
   pythonPath = with python3.pkgs;
     stdenv.lib.optionals stdenv.isLinux [
       systemd
diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix
index 1b66dab35c8..f88c533d71d 100644
--- a/pkgs/tools/security/nmap/default.nix
+++ b/pkgs/tools/security/nmap/default.nix
@@ -1,24 +1,16 @@
 { stdenv, fetchurl, fetchpatch, libpcap, pkgconfig, openssl, lua5_3
+, pcre, liblinear, libssh2
 , graphicalSupport ? false
 , libX11 ? null
 , gtk2 ? null
-, withPython ? false # required for the `ndiff` binary
-, python2Packages ? null
+, python2 ? null
 , makeWrapper ? null
 , withLua ? true
 }:
 
-assert withPython -> python2Packages != null;
-
 with stdenv.lib;
 
-let
-
-  # Zenmap (the graphical program) also requires Python,
-  # so automatically enable pythonSupport if graphicalSupport is requested.
-  pythonSupport = withPython || graphicalSupport;
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "nmap${optionalString graphicalSupport "-graphical"}-${version}";
   version = "7.80";
 
@@ -48,10 +40,7 @@ in stdenv.mkDerivation rec {
 
   configureFlags = [
     (if withLua then "--with-liblua=${lua5_3}" else "--without-liblua")
-  ]
-    ++ optional (!pythonSupport) "--without-ndiff"
-    ++ optional (!graphicalSupport) "--without-zenmap"
-    ;
+  ] ++ optionals (!graphicalSupport) [ "--without-ndiff" "--without-zenmap" ];
 
   makeFlags = optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "AR=${stdenv.cc.bintools.targetPrefix}ar"
@@ -59,18 +48,22 @@ in stdenv.mkDerivation rec {
     "CC=${stdenv.cc.targetPrefix}gcc"
   ];
 
-  postInstall = optionalString pythonSupport ''
-      wrapProgram $out/bin/ndiff --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH"
-  '' + optionalString graphicalSupport ''
-      wrapProgram $out/bin/zenmap --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH" --prefix PYTHONPATH : $(toPythonPath $pygtk)/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath $pygobject)/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath $pycairo)/gtk-2.0
+  pythonPath = with python2.pkgs; optionals graphicalSupport  [
+    pygtk pysqlite pygobject2 pycairo
+  ];
+
+  nativeBuildInputs = [ pkgconfig ] ++ optionals graphicalSupport [ python2.pkgs.wrapPython ];
+  buildInputs = [ pcre liblinear libssh2 libpcap openssl ] ++ optionals graphicalSupport (with python2.pkgs; [
+    python2 libX11 gtk2
+  ]);
+
+  postInstall = optionalString graphicalSupport ''
+    buildPythonPath "$out $pythonPath"
+    patchPythonScript $out/bin/ndiff
+    patchPythonScript $out/bin/zenmap
   '';
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = with python2Packages; [ libpcap openssl ]
-    ++ optionals pythonSupport [ makeWrapper python ]
-    ++ optionals graphicalSupport [
-      libX11 gtk2 pygtk pysqlite pygobject2 pycairo
-    ];
+  enableParallelBuilding = true;
 
   doCheck = false; # fails 3 tests, probably needs the net
 
diff --git a/pkgs/tools/security/nmap/qt.nix b/pkgs/tools/security/nmap/qt.nix
index f873c475bbf..2dcd7fed0c4 100644
--- a/pkgs/tools/security/nmap/qt.nix
+++ b/pkgs/tools/security/nmap/qt.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, makeWrapper
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook
 , dnsutils, nmap
 , qtbase, qtscript, qtwebengine }:
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "10wqyrjzmad1g7lqa65rymbkna028xbp4xcpj442skw8gyrs3994";
   };
 
-  nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
 
   buildInputs = [ qtbase qtscript qtwebengine ];
 
diff --git a/pkgs/tools/security/rage/default.nix b/pkgs/tools/security/rage/default.nix
new file mode 100644
index 00000000000..63cc2972a58
--- /dev/null
+++ b/pkgs/tools/security/rage/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform, fetchFromGitHub, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rage";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "str4d";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ri4rfhy1wl0cppi2cp97kkiz08x2f072yfahn2kv9r4v1i9f4a7";
+  };
+
+  cargoSha256 = "02adwvcvha83zcvc5n7p88l7wmkg52j2xhznmhabc0zn328as2yd";
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+  meta = with stdenv.lib; {
+    description = "A simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability";
+    homepage = "https://github.com/str4d/rage";
+    license = licenses.asl20;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/tools/system/bfs/default.nix b/pkgs/tools/system/bfs/default.nix
index a304fce352f..1387a6c6ed1 100644
--- a/pkgs/tools/system/bfs/default.nix
+++ b/pkgs/tools/system/bfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bfs";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     repo = "bfs";
     owner = "tavianator";
     rev = version;
-    sha256 = "1yp8zaj2rqd1df20wxym1x7q5d3lxqwalazbvmfnwqn5y4m368y3";
+    sha256 = "04jgah6yvz3i2bwrv1ki2nmj1yinba7djbfq8n8ism4gffsza9dz";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ libcap acl ];
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index 86aa5adb6f8..acc3990378f 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "facter";
-  version = "3.14.6";
+  version = "3.14.7";
 
   src = fetchFromGitHub {
-    sha256 = "1zfff1mpdwnlnm8dmmlvysw2zdsnglgk5nvhhzx8zyk0zyz0nj54";
+    sha256 = "1x71ynnp8l5bf6m1a56rwcjya2swrhpxmd0cg9ndjplam6zys2v7";
     rev = version;
     repo = pname;
     owner = "puppetlabs";
diff --git a/pkgs/tools/text/fanficfare/default.nix b/pkgs/tools/text/fanficfare/default.nix
index b01317a532f..105a2d3308f 100644
--- a/pkgs/tools/text/fanficfare/default.nix
+++ b/pkgs/tools/text/fanficfare/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FanFicFare";
-  version = "3.13.0";
+  version = "3.15.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "01mrqqz2rv6abdsk80nxizsm5h68m12bqkdsjyqfzyxl0kn7zs0v";
+    sha256 = "12nsrl8nvg52mi136m7ayvaivwjapn7ry95137ynj1njy2w990hm";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -23,7 +23,7 @@ python3Packages.buildPythonApplication rec {
     homepage = https://github.com/JimmXinu/FanFicFare;
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ lucas8 ];
+    maintainers = with maintainers; [ dwarfmaster ];
     inherit version;
   };
 }
diff --git a/pkgs/tools/text/unoconv/default.nix b/pkgs/tools/text/unoconv/default.nix
index 879f903ade9..380b172f702 100644
--- a/pkgs/tools/text/unoconv/default.nix
+++ b/pkgs/tools/text/unoconv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python3, libreoffice-unwrapped, asciidoc, makeWrapper
+{ stdenv, fetchFromGitHub, python3, libreoffice-unwrapped, asciidoc, makeWrapper
 # whether to install odt2pdf/odt2doc/... symlinks to unoconv
 , installSymlinks ? true
 }:
@@ -7,19 +7,18 @@
 # will not be able to load the pyuno module from libreoffice).
 
 stdenv.mkDerivation rec {
-  name = "unoconv-0.6";
-
-  src = fetchurl {
-    url = "http://dag.wieers.com/home-made/unoconv/${name}.tar.gz";
-    sha256 = "1m3kv942zf5rzyrbkil0nhmyq9mm3007y64bb3s7w88mhr5n23kr";
+  pname = "unoconv";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "unoconv";
+    repo = "unoconv";
+    rev = version;
+    sha256 = "0ix605lk0k3hv241jb2kf4jq5744q2wh9x0pzkmay5m126vv8kq4";
   };
 
   buildInputs = [ asciidoc makeWrapper ];
 
-  # We need to use python3 because libreoffice 4.x uses it. This patch comes
-  # from unoconv.git, so it will be a part of the next release.
-  patches = [ ./unoconv-python3.patch ];
-
   preBuild = ''
     makeFlags=prefix="$out"
   '';
diff --git a/pkgs/tools/text/unoconv/unoconv-python3.patch b/pkgs/tools/text/unoconv/unoconv-python3.patch
deleted file mode 100644
index 2c6e9c71941..00000000000
--- a/pkgs/tools/text/unoconv/unoconv-python3.patch
+++ /dev/null
@@ -1,374 +0,0 @@
-commit fc59dd90f03cf88f4cf16c07204809f2239284ee
-Author: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
-Date:   Thu Dec 20 00:02:53 2012 +0100
-
-    Add support for python3
-    
-    Libreoffice 4.0 will switch its internal python version to 3.3.0
-    so it's to support that.
-    
-    Porting done automatically 2to3 plus print_function import added
-    manually. Tested on both libreoffice master with internal python
-    and with libreoffince 3.6.4 on debian with system python 2.7.
-    
-    This bumps the minimal python version to 2.6 since 2.5 does not
-    have the print function.
-
-diff --git a/unoconv b/unoconv
-index 30e6706..f72cf08 100755
---- a/unoconv
-+++ b/unoconv
-@@ -14,6 +14,8 @@
- ### Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- ### Copyright 2007-2010 Dag Wieers <dag@wieers.com>
- 
-+from __future__ import print_function
-+
- from distutils.version import LooseVersion
- import getopt
- import glob
-@@ -77,11 +79,11 @@ def find_offices():
-     else:
- 
-         if os.name in ( 'nt', 'os2' ):
--            if 'PROGRAMFILES' in os.environ.keys():
-+            if 'PROGRAMFILES' in list(os.environ.keys()):
-                 extrapaths += glob.glob(os.environ['PROGRAMFILES']+'\\LibreOffice*') + \
-                               glob.glob(os.environ['PROGRAMFILES']+'\\OpenOffice.org*')
- 
--            if 'PROGRAMFILES(X86)' in os.environ.keys():
-+            if 'PROGRAMFILES(X86)' in list(os.environ.keys()):
-                 extrapaths += glob.glob(os.environ['PROGRAMFILES(X86)']+'\\LibreOffice*') + \
-                               glob.glob(os.environ['PROGRAMFILES(X86)']+'\\OpenOffice.org*')
- 
-@@ -233,18 +235,18 @@ def office_environ(office):
- 
- def debug_office():
-     if 'URE_BOOTSTRAP' in os.environ:
--        print >>sys.stderr, 'URE_BOOTSTRAP=%s' % os.environ['URE_BOOTSTRAP']
-+        print('URE_BOOTSTRAP=%s' % os.environ['URE_BOOTSTRAP'], file=sys.stderr)
-     if 'UNO_PATH' in os.environ:
--        print >>sys.stderr, 'UNO_PATH=%s' % os.environ['UNO_PATH']
-+        print('UNO_PATH=%s' % os.environ['UNO_PATH'], file=sys.stderr)
-     if 'UNO_TYPES' in os.environ:
--        print >>sys.stderr, 'UNO_TYPES=%s' % os.environ['UNO_TYPES']
--    print 'PATH=%s' % os.environ['PATH']
-+        print('UNO_TYPES=%s' % os.environ['UNO_TYPES'], file=sys.stderr)
-+    print('PATH=%s' % os.environ['PATH'])
-     if 'PYTHONHOME' in os.environ:
--        print >>sys.stderr, 'PYTHONHOME=%s' % os.environ['PYTHONHOME']
-+        print('PYTHONHOME=%s' % os.environ['PYTHONHOME'], file=sys.stderr)
-     if 'PYTHONPATH' in os.environ:
--        print >>sys.stderr, 'PYTHONPATH=%s' % os.environ['PYTHONPATH']
-+        print('PYTHONPATH=%s' % os.environ['PYTHONPATH'], file=sys.stderr)
-     if 'LD_LIBRARY_PATH' in os.environ:
--        print >>sys.stderr, 'LD_LIBRARY_PATH=%s' % os.environ['LD_LIBRARY_PATH']
-+        print('LD_LIBRARY_PATH=%s' % os.environ['LD_LIBRARY_PATH'], file=sys.stderr)
- 
- def python_switch(office):
-     if office.pythonhome:
-@@ -335,11 +337,11 @@ class FmtList:
-         return ret
- 
-     def display(self, doctype):
--        print >>sys.stderr, "The following list of %s formats are currently available:\n" % doctype
-+        print("The following list of %s formats are currently available:\n" % doctype, file=sys.stderr)
-         for fmt in self.list:
-             if fmt.doctype == doctype:
--                print >>sys.stderr, "  %-8s - %s" % (fmt.name, fmt)
--        print >>sys.stderr
-+                print("  %-8s - %s" % (fmt.name, fmt), file=sys.stderr)
-+        print(file=sys.stderr)
- 
- fmts = FmtList()
- 
-@@ -530,14 +532,14 @@ class Options:
-                  'outputpath', 'password=', 'pipe=', 'port=', 'server=',
-                  'timeout=', 'show', 'stdout', 'template', 'verbose',
-                  'version'] )
--        except getopt.error, exc:
--            print 'unoconv: %s, try unoconv -h for a list of all the options' % str(exc)
-+        except getopt.error as exc:
-+            print('unoconv: %s, try unoconv -h for a list of all the options' % str(exc))
-             sys.exit(255)
- 
-         for opt, arg in opts:
-             if opt in ['-h', '--help']:
-                 self.usage()
--                print
-+                print()
-                 self.help()
-                 sys.exit(1)
-             elif opt in ['-c', '--connection']:
-@@ -562,7 +564,7 @@ class Options:
-                         except ValueError:
-                             self.exportfilter.append( PropertyValue( name, 0, value, 0 ) )
-                 else:
--                    print >>sys.stderr, 'Warning: Option %s cannot be parsed, ignoring.' % arg
-+                    print('Warning: Option %s cannot be parsed, ignoring.' % arg, file=sys.stderr)
-             elif opt in ['-f', '--format']:
-                 self.format = arg
-             elif opt in ['-i', '--import']:
-@@ -581,7 +583,7 @@ class Options:
-                         except ValueError:
-                             self.importfilter.append( PropertyValue( name, 0, value, 0 ) )
-                 else:
--                    print >>sys.stderr, 'Warning: Option %s cannot be parsed, ignoring.' % arg
-+                    print('Warning: Option %s cannot be parsed, ignoring.' % arg, file=sys.stderr)
-             elif opt in ['-l', '--listener']:
-                 self.listener = True
-             elif opt in ['-n', '--no-launch']:
-@@ -589,7 +591,7 @@ class Options:
-             elif opt in ['-o', '--output']:
-                 self.output = arg
-             elif opt in ['--outputpath']:
--                print >>sys.stderr, 'Warning: This option is deprecated by --output.'
-+                print('Warning: This option is deprecated by --output.', file=sys.stderr)
-                 self.output = arg
-             elif opt in ['--password']:
-                 self.password = arg
-@@ -615,13 +617,13 @@ class Options:
- 
-         ### Enable verbosity
-         if self.verbose >= 2:
--            print >>sys.stderr, 'Verbosity set to level %d' % self.verbose
-+            print('Verbosity set to level %d' % self.verbose, file=sys.stderr)
- 
-         self.filenames = args
- 
-         if not self.listener and not self.showlist and self.doctype != 'list' and not self.filenames:
--            print >>sys.stderr, 'unoconv: you have to provide a filename as argument'
--            print >>sys.stderr, 'Try `unoconv -h\' for more information.'
-+            print('unoconv: you have to provide a filename as argument', file=sys.stderr)
-+            print('Try `unoconv -h\' for more information.', file=sys.stderr)
-             sys.exit(255)
- 
-         ### Set connection string
-@@ -659,21 +661,21 @@ class Options:
-         ### Get office product information
-         product = uno.getComponentContext().ServiceManager.createInstance("com.sun.star.configuration.ConfigurationProvider").createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", UnoProps(nodepath="/org.openoffice.Setup/Product"))
- 
--        print 'unoconv %s' % VERSION
--        print 'Written by Dag Wieers <dag@wieers.com>'
--        print 'Homepage at http://dag.wieers.com/home-made/unoconv/'
--        print
--        print 'platform %s/%s' % (os.name, sys.platform)
--        print 'python %s' % sys.version
--        print product.ooName, product.ooSetupVersion
-+        print('unoconv %s' % VERSION)
-+        print('Written by Dag Wieers <dag@wieers.com>')
-+        print('Homepage at http://dag.wieers.com/home-made/unoconv/')
-+        print()
-+        print('platform %s/%s' % (os.name, sys.platform))
-+        print('python %s' % sys.version)
-+        print(product.ooName, product.ooSetupVersion)
- #        print
- #        print 'build revision $Rev$'
- 
-     def usage(self):
--        print >>sys.stderr, 'usage: unoconv [options] file [file2 ..]'
-+        print('usage: unoconv [options] file [file2 ..]', file=sys.stderr)
- 
-     def help(self):
--        print >>sys.stderr, '''Convert from and to any format supported by LibreOffice
-+        print('''Convert from and to any format supported by LibreOffice
- 
- unoconv options:
-   -c, --connection=string  use a custom connection string
-@@ -698,7 +700,7 @@ unoconv options:
-   -t, --template=file      import the styles from template (.ott)
-   -T, --timeout=secs       timeout after secs if connection to listener fails
-   -v, --verbose            be more and more verbose (-vvv for debugging)
--'''
-+''', file=sys.stderr)
- 
- class Convertor:
-     def __init__(self):
-@@ -714,7 +716,7 @@ class Convertor:
-         info(3, 'Connection type: %s' % op.connection)
-         try:
-             unocontext = resolver.resolve("uno:%s" % op.connection)
--        except NoConnectException, e:
-+        except NoConnectException as e:
- #            info(3, "Existing listener not found.\n%s" % e)
-             info(3, "Existing listener not found.")
- 
-@@ -749,7 +751,7 @@ class Convertor:
-                         raise
-                 else:
-                     error("Failed to connect to %s (pid=%s) in %d seconds.\n%s" % (office.binary, ooproc.pid, op.timeout, e))
--            except Exception, e:
-+            except Exception as e:
-                 raise
-                 error("Launch of %s failed.\n%s" % (office.binary, e))
- 
-@@ -799,9 +801,9 @@ class Convertor:
-         ### No format found, throw error
-         if not outputfmt:
-             if doctype:
--                print >>sys.stderr, 'unoconv: format [%s/%s] is not known to unoconv.' % (op.doctype, op.format)
-+                print('unoconv: format [%s/%s] is not known to unoconv.' % (op.doctype, op.format), file=sys.stderr)
-             else:
--                print >>sys.stderr, 'unoconv: format [%s] is not known to unoconv.' % op.format
-+                print('unoconv: format [%s] is not known to unoconv.' % op.format, file=sys.stderr)
-             die(1)
- 
-         return outputfmt
-@@ -813,10 +815,10 @@ class Convertor:
-         outputfmt = self.getformat(inputfn)
- 
-         if op.verbose > 0:
--            print >>sys.stderr, 'Input file:', inputfn
-+            print('Input file:', inputfn, file=sys.stderr)
- 
-         if not os.path.exists(inputfn):
--            print >>sys.stderr, 'unoconv: file `%s\' does not exist.' % inputfn
-+            print('unoconv: file `%s\' does not exist.' % inputfn, file=sys.stderr)
-             exitcode = 1
- 
-         try:
-@@ -854,7 +856,7 @@ class Convertor:
-                     templateurl = unohelper.absolutize(self.cwd, unohelper.systemPathToFileUrl(op.template))
-                     document.StyleFamilies.loadStylesFromURL(templateurl, templateprops)
-                 else:
--                    print >>sys.stderr, 'unoconv: template file `%s\' does not exist.' % op.template
-+                    print('unoconv: template file `%s\' does not exist.' % op.template, file=sys.stderr)
-                     exitcode = 1
- 
-             ### Update document links
-@@ -924,40 +926,40 @@ class Convertor:
- 
-             try:
-                 document.storeToURL(outputurl, tuple(outputprops) )
--            except IOException, e:
-+            except IOException as e:
-                 raise UnoException("Unable to store document to %s (ErrCode %d)\n\nProperties: %s" % (outputurl, e.ErrCode, outputprops), None)
- 
-             phase = "dispose"
-             document.dispose()
-             document.close(True)
- 
--        except SystemError, e:
-+        except SystemError as e:
-             error("unoconv: SystemError during %s phase:\n%s" % (phase, e))
-             exitcode = 1
- 
--        except RuntimeException, e:
-+        except RuntimeException as e:
-             error("unoconv: RuntimeException during %s phase:\nOffice probably died. %s" % (phase, e))
-             exitcode = 6
- 
--        except DisposedException, e:
-+        except DisposedException as e:
-             error("unoconv: DisposedException during %s phase:\nOffice probably died. %s" % (phase, e))
-             exitcode = 7
- 
--        except IllegalArgumentException, e:
-+        except IllegalArgumentException as e:
-             error("UNO IllegalArgument during %s phase:\nSource file cannot be read. %s" % (phase, e))
-             exitcode = 8
- 
--        except IOException, e:
-+        except IOException as e:
- #            for attr in dir(e): print '%s: %s', (attr, getattr(e, attr))
-             error("unoconv: IOException during %s phase:\n%s" % (phase, e.Message))
-             exitcode = 3
- 
--        except CannotConvertException, e:
-+        except CannotConvertException as e:
- #            for attr in dir(e): print '%s: %s', (attr, getattr(e, attr))
-             error("unoconv: CannotConvertException during %s phase:\n%s" % (phase, e.Message))
-             exitcode = 4
- 
--        except UnoException, e:
-+        except UnoException as e:
-             if hasattr(e, 'ErrCode'):
-                 error("unoconv: UnoException during %s phase in %s (ErrCode %d)" % (phase, repr(e.__class__), e.ErrCode))
-                 exitcode = e.ErrCode
-@@ -982,7 +984,7 @@ class Listener:
-             product = self.svcmgr.createInstance("com.sun.star.configuration.ConfigurationProvider").createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", UnoProps(nodepath="/org.openoffice.Setup/Product"))
-             try:
-                 unocontext = resolver.resolve("uno:%s" % op.connection)
--            except NoConnectException, e:
-+            except NoConnectException as e:
-                 pass
-             else:
-                 info(1, "Existing %s listener found, nothing to do." % product.ooName)
-@@ -991,25 +993,25 @@ class Listener:
-                 subprocess.call([office.binary, "-headless", "-invisible", "-nocrashreport", "-nodefault", "-nologo", "-nofirststartwizard", "-norestore", "-accept=%s" % op.connection], env=os.environ)
-             else:
-                 subprocess.call([office.binary, "--headless", "--invisible", "--nocrashreport", "--nodefault", "--nologo", "--nofirststartwizard", "--norestore", "--accept=%s" % op.connection], env=os.environ)
--        except Exception, e:
-+        except Exception as e:
-             error("Launch of %s failed.\n%s" % (office.binary, e))
-         else:
-             info(1, "Existing %s listener found, nothing to do." % product.ooName)
- 
- def error(msg):
-     "Output error message"
--    print >>sys.stderr, msg
-+    print(msg, file=sys.stderr)
- 
- def info(level, msg):
-     "Output info message"
-     if 'op' not in globals():
-         pass
-     elif op.verbose >= 3 and level >= 3:
--        print >>sys.stderr, "DEBUG:", msg
-+        print("DEBUG:", msg, file=sys.stderr)
-     elif not op.stdout and level <= op.verbose:
--        print >>sys.stdout, msg
-+        print(msg, file=sys.stdout)
-     elif level <= op.verbose:
--        print >>sys.stderr, msg
-+        print(msg, file=sys.stderr)
- 
- def die(ret, msg=None):
-     "Print optional error and exit with errorcode"
-@@ -1031,7 +1033,7 @@ def die(ret, msg=None):
-                     subprocess.Popen([office.binary, "--headless", "--invisible", "--nocrashreport", "--nodefault", "--nofirststartwizard", "--nologo", "--norestore", "--unaccept=%s" % op.connection], env=os.environ)
-                 ooproc.wait()
-                 info(2, '%s listener successfully disabled.' % product.ooName)
--            except Exception, e:
-+            except Exception as e:
-                 error("Terminate using %s failed.\n%s" % (office.binary, e))
- 
-         ### If there is no GUI attached to the instance, terminate instance
-@@ -1080,7 +1082,7 @@ def main():
-             for inputfn in op.filenames:
-                 convertor.convert(inputfn)
- 
--    except NoConnectException, e:
-+    except NoConnectException as e:
-         error("unoconv: could not find an existing connection to LibreOffice at %s:%s." % (op.server, op.port))
-         if op.connection:
-             info(0, "Please start an LibreOffice instance on server '%s' by doing:\n\n    unoconv --listener --server %s --port %s\n\nor alternatively:\n\n    soffice -nologo -nodefault -accept=\"%s\"" % (op.server, op.server, op.port, op.connection))
-@@ -1110,14 +1112,14 @@ if __name__ == '__main__':
-             break
-         except:
- #            debug_office()
--            print >>sys.stderr, "unoconv: Cannot find a suitable pyuno library and python binary combination in %s" % of
--            print >>sys.stderr, "ERROR:", sys.exc_info()[1]
--            print >>sys.stderr
-+            print("unoconv: Cannot find a suitable pyuno library and python binary combination in %s" % of, file=sys.stderr)
-+            print("ERROR:", sys.exc_info()[1], file=sys.stderr)
-+            print(file=sys.stderr)
-     else:
- #        debug_office()
--        print >>sys.stderr, "unoconv: Cannot find a suitable office installation on your system."
--        print >>sys.stderr, "ERROR: Please locate your office installation and send your feedback to:"
--        print >>sys.stderr, "       http://github.com/dagwieers/unoconv/issues"
-+        print("unoconv: Cannot find a suitable office installation on your system.", file=sys.stderr)
-+        print("ERROR: Please locate your office installation and send your feedback to:", file=sys.stderr)
-+        print("       https://github.com/dagwieers/unoconv/issues", file=sys.stderr)
-         sys.exit(1)
- 
-     ### Now that we have found a working pyuno library, let's import some classes
-@@ -1160,6 +1162,6 @@ if __name__ == '__main__':
- 
-     try:
-         main()
--    except KeyboardInterrupt, e:
-+    except KeyboardInterrupt as e:
-         die(6, 'Exiting on user request')
-     die(exitcode)
diff --git a/pkgs/tools/typesetting/asciidoctorj/default.nix b/pkgs/tools/typesetting/asciidoctorj/default.nix
index 8eaee977d28..39e7eab34ab 100644
--- a/pkgs/tools/typesetting/asciidoctorj/default.nix
+++ b/pkgs/tools/typesetting/asciidoctorj/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asciidoctorj";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchzip {
     url = "http://dl.bintray.com/asciidoctor/maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
-    sha256 = "19fl4y3xlkmmgf5vyyb3k9p6nyglck9l53r6x12zil01q49g0zba";
+    sha256 = "0akxzfibfa8msnardvyy9hkj2z6sqn7pnwphz6avixdcclg6yxa5";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/typesetting/tex/texlive/UPGRADING.md b/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
index 6c0380fac49..3f37184e5d3 100644
--- a/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
+++ b/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
@@ -28,15 +28,15 @@ To upgrade the package snapshot, follow this process:
 ### Snapshot sources and texlive package database
 
 Mirror the current CTAN archive to our mirror(s) and IPFS (URLs in `default.nix`).
-See <https://tug.org/texlive/acquire-mirror.html> for instructions.
+See https://tug.org/texlive/acquire-mirror.html for instructions.
 
 
 ### Upgrade package information from texlive package database
 
 
-```
-$ curl -L http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz \
-           | xzcat | uniq -u | sed -rn -f ./tl2nix.sed > ./pkgs.nix
+```bash
+curl -L http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz \
+         | xzcat | uniq -u | sed -rn -f ./tl2nix.sed > ./pkgs.nix
 ```
 
 This will download a current snapshot of the CTAN package database `texlive.tlpdb.xz`
@@ -52,17 +52,18 @@ Updating the list of fixed hashes requires a local build of *all* packages,
 which is a resource-intensive process:
 
 
-```
+```bash
 # move fixedHashes away, otherwise build will fail on updated packages
-$ mv fixedHashes.nix fixedHashes-old.nix
+mv fixedHashes.nix fixedHashes-old.nix
 # start with empty fixedHashes
-$ echo '{}' > fixedHashes.nix
-$ nix-build ../../../../.. -Q --no-out-link -A texlive.scheme-full.pkgs | ./fixHashes.sh > ./fixedHashes-new.nix
+echo '{}' > fixedHashes.nix
+
+nix-build ../../../../.. -Q --no-out-link -A texlive.scheme-full.pkgs | ./fixHashes.sh > ./fixedHashes-new.nix
+
 # The script wrongly includes the nix store path to `biber`, which is a separate nixpkgs package
-$ grep -v -F '/nix/store/' fixedHashes-new.nix > fixedHashes.nix 
+grep -v -F '/nix/store/' fixedHashes-new.nix > fixedHashes.nix
 ```
 
 ### Commit changes
 
 Commit the updated `pkgs.nix` and `fixedHashes.nix` to the repository.
-
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index d9302b19f62..3831db8d401 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -476,6 +476,9 @@ mapAliases ({
   xbmcPlugins = kodiPlugins; # added 2018-04-25
   xmonad_log_applet_gnome3 = xmonad_log_applet; # added 2018-05-01
   xf86_video_nouveau = xorg.xf86videonouveau; # added 2015-09
+  xf86_input_mtrack = throw ("xf86_input_mtrack has been removed from nixpkgs as it hasn't been maintained"
+    + "and is broken. Working alternatives are libinput and synaptics.");
+  xf86_input_multitouch = throw "xf86_input_multitouch has been removed from nixpkgs."; # added 2020-01-20
   xlibs = xorg; # added 2015-09
   xpraGtk3 = xpra; # added 2018-09-13
   youtubeDL = youtube-dl;  # added 2014-10-26
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f3fd9d67408..9a8d0ad91d6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -201,6 +201,8 @@ in
 
   docker-ls = callPackage ../tools/misc/docker-ls { };
 
+  docker-slim = callPackage ../build-support/docker-slim { };
+
   docker-sync = callPackage ../tools/misc/docker-sync { };
 
   docui = callPackage ../tools/misc/docui { };
@@ -213,7 +215,17 @@ in
 
   dotnetbuildhelpers = callPackage ../build-support/dotnetbuildhelpers { };
 
-  dotnet-sdk = callPackage ../development/compilers/dotnet/sdk { };
+  dotnetCorePackages = recurseIntoAttrs (callPackage ../development/compilers/dotnet {});
+
+  dotnet-sdk = dotnetCorePackages.sdk_2_1;
+
+  dotnet-sdk_2 = dotnetCorePackages.sdk_2_1;
+
+  dotnet-sdk_3 = dotnetCorePackages.sdk_3_1;
+
+  dotnet-netcore = dotnetCorePackages.netcore_2_1;
+
+  dotnet-aspnetcore = dotnetCorePackages.aspnetcore_2_1;
 
   dumb-init = callPackage ../applications/virtualization/dumb-init {};
 
@@ -1205,10 +1217,6 @@ in
 
   bliss = callPackage ../applications/science/math/bliss { };
 
-  blitz = callPackage ../development/libraries/blitz {
-    boost = boost160;
-  };
-
   blobfuse = callPackage ../tools/filesystems/blobfuse { };
 
   blockdiag = with python3Packages; toPythonApplication blockdiag;
@@ -1381,6 +1389,8 @@ in
 
   ccnet = callPackage ../tools/networking/ccnet { };
 
+  cassowary = callPackage ../tools/networking/cassowary { };
+
   croc = callPackage ../tools/networking/croc { };
 
   cddl = callPackage ../development/tools/cddl { };
@@ -1510,6 +1520,8 @@ in
 
   crudini = callPackage ../tools/misc/crudini { };
 
+  csv2odf = callPackage ../applications/office/csv2odf { };
+
   csvkit = callPackage ../tools/text/csvkit { };
 
   csvs-to-sqlite = with python3Packages; toPythonApplication csvs-to-sqlite;
@@ -2942,6 +2954,10 @@ in
 
   mcrcon = callPackage ../tools/networking/mcrcon {};
 
+  rage = callPackage ../tools/security/rage {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   s-tar = callPackage ../tools/archivers/s-tar {};
 
   sonota = callPackage ../tools/misc/sonota { };
@@ -3238,6 +3254,8 @@ in
     stdenv = gccStdenv;
   };
 
+  fluidasserts = with python37Packages; toPythonApplication fluidasserts;
+
   flux = callPackage ../development/compilers/flux { };
 
   fido2luks = callPackage ../tools/security/fido2luks {};
@@ -4910,6 +4928,8 @@ in
 
   mandoc = callPackage ../tools/misc/mandoc { };
 
+  marktext = callPackage ../applications/misc/marktext { };
+
   mawk = callPackage ../tools/text/mawk { };
 
   mb2md = callPackage ../tools/text/mb2md { };
@@ -5109,6 +5129,8 @@ in
 
   munt = libsForQt5.callPackage ../applications/audio/munt { };
 
+  mutagen = callPackage ../tools/misc/mutagen { };
+
   mycli = callPackage ../tools/admin/mycli { };
 
   mydumper = callPackage ../tools/backup/mydumper { };
@@ -5687,6 +5709,8 @@ in
 
   peco = callPackage ../tools/text/peco { };
 
+  pg_checksums = callPackage ../development/tools/database/pg_checksums { };
+
   pg_flame = callPackage ../tools/misc/pg_flame { };
 
   pg_top = callPackage ../tools/misc/pg_top { };
@@ -6212,6 +6236,8 @@ in
 
   sahel-fonts = callPackage ../data/fonts/sahel-fonts { };
 
+  saldl = callPackage ../tools/networking/saldl { };
+
   salt = callPackage ../tools/admin/salt {};
 
   salut_a_toi = callPackage ../applications/networking/instant-messengers/salut-a-toi {};
@@ -6790,7 +6816,9 @@ in
 
   toml2nix = (callPackage ../tools/toml2nix { }).toml2nix { };
 
-  topgrade = callPackage ../tools/misc/topgrade {  };
+  topgrade = callPackage ../tools/misc/topgrade {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
 
   tor = callPackage ../tools/security/tor {
     # remove this, when libevent's openssl is upgraded to 1_1_0 or newer.
@@ -6916,6 +6944,10 @@ in
 
   ua = callPackage ../tools/networking/ua { };
 
+  uberwriter = callPackage ../applications/editors/uberwriter {
+    pythonPackages = python3Packages;
+  };
+
   ubridge = callPackage ../tools/networking/ubridge { };
 
   ucl = callPackage ../development/libraries/ucl { };
@@ -7524,6 +7556,8 @@ in
 
   zfstools = callPackage ../tools/filesystems/zfstools { };
 
+  zfsnap = callPackage ../tools/backup/zfsnap { };
+
   zile = callPackage ../applications/editors/zile { };
 
   zinnia = callPackage ../tools/inputmethods/zinnia { };
@@ -7543,6 +7577,8 @@ in
   zpaqd = callPackage ../tools/archivers/zpaq/zpaqd.nix { };
 
   zsh-autoenv = callPackage ../tools/misc/zsh-autoenv { };
+  
+  zsh-bd = callPackage ../shells/zsh/zsh-bd { };
 
   zsh-git-prompt = callPackage ../shells/zsh/zsh-git-prompt { };
 
@@ -7803,6 +7839,28 @@ in
 
   compcert = callPackage ../development/compilers/compcert { };
 
+  computecpp-unwrapped = callPackage ../development/compilers/computecpp {};
+  computecpp = wrapCCWith rec {
+    cc = computecpp-unwrapped;
+    extraPackages = [
+      libstdcxxHook
+      llvmPackages.compiler-rt
+    ];
+    extraBuildCommands = ''
+      wrap compute $wrapper $ccPath/compute
+      wrap compute++ $wrapper $ccPath/compute++
+      export named_cc=compute
+      export named_cxx=compute++
+
+      rsrc="$out/resource-root"
+      mkdir -p "$rsrc/lib"
+      ln -s "${cc}/lib" "$rsrc/include"
+      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && cc ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
+      echo "--gcc-toolchain=${cc.gcc}" >> $out/nix-support/cc-cflags
+    '';
+  };
+
   cryptol = haskell.lib.justStaticExecutables haskellPackages.cryptol;
 
   inherit (callPackages ../development/compilers/crystal {
@@ -8710,7 +8768,7 @@ in
 
   buildRustCrate = callPackage ../build-support/rust/build-rust-crate { };
   buildRustCrateHelpers = callPackage ../build-support/rust/build-rust-crate/helpers.nix { };
-  buildRustCrateTests = recurseIntoAttrs (callPackage ../build-support/rust/build-rust-crate/test { }).tests;
+  buildRustCrateTests = recurseIntoAttrs (callPackage ../build-support/rust/build-rust-crate/test { });
   cratesIO = callPackage ../build-support/rust/crates-io.nix { };
 
   cargo-web = callPackage ../development/tools/cargo-web {
@@ -9738,9 +9796,9 @@ in
 
   buck = callPackage ../development/tools/build-managers/buck { };
 
-  buildkite-agent = buildkite-agent2;
-  buildkite-agent2 = callPackage ../development/tools/continuous-integration/buildkite-agent/2.x.nix { };
-  buildkite-agent3 = callPackage ../development/tools/continuous-integration/buildkite-agent/3.x.nix { };
+  buildkite-agent = buildkite-agent3;
+  buildkite-agent2 = throw "pkgs.buildkite-agent2 has been discontinued. Please use pkgs.buildkite-agent (v3.x)";
+  buildkite-agent3 = callPackage ../development/tools/continuous-integration/buildkite-agent { };
 
   libbpf = callPackage ../os-specific/linux/libbpf { };
 
@@ -13965,7 +14023,6 @@ in
   lilv = callPackage ../development/libraries/audio/lilv { };
 
   lv2 = callPackage ../development/libraries/audio/lv2 { };
-  lv2Unstable = callPackage ../development/libraries/audio/lv2/unstable.nix { };
 
   lvtk = callPackage ../development/libraries/audio/lvtk { };
 
@@ -14306,6 +14363,8 @@ in
 
   svrcore = callPackage ../development/libraries/svrcore { };
 
+  svxlink = libsForQt5.callPackage ../applications/radio/svxlink { };
+
   swiftclient = python3.pkgs.callPackage ../tools/admin/swiftclient { };
 
   sword = callPackage ../development/libraries/sword { };
@@ -16549,6 +16608,8 @@ in
 
     x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { };
 
+    zenpower = callPackage ../os-specific/linux/zenpower { };
+
     inherit (callPackage ../os-specific/linux/zfs {
       configFile = "kernel";
       inherit kernel;
@@ -17171,10 +17232,6 @@ in
 
   xf86_input_cmt = callPackage ../os-specific/linux/xf86-input-cmt { };
 
-  xf86_input_mtrack = callPackage ../os-specific/linux/xf86-input-mtrack { };
-
-  xf86_input_multitouch = callPackage ../os-specific/linux/xf86-input-multitouch { };
-
   xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
 
   xf86_video_nested = callPackage ../os-specific/linux/xf86-video-nested { };
@@ -17475,6 +17532,8 @@ in
 
   iwona = callPackage ../data/fonts/iwona { };
 
+  jetbrains-mono = callPackage ../data/fonts/jetbrains-mono { };
+
   jost = callPackage ../data/fonts/jost { };
 
   joypixels = callPackage ../data/fonts/joypixels { };
@@ -18039,6 +18098,9 @@ in
 
   apache-directory-studio = callPackage ../applications/networking/apache-directory-studio {};
 
+  apngasm = callPackage ../applications/graphics/apngasm {};
+  apngasm_2 = callPackage ../applications/graphics/apngasm/2.nix {};
+
   appeditor = callPackage ../applications/misc/appeditor { };
 
   aqemu = libsForQt5.callPackage ../applications/virtualization/aqemu { };
@@ -20874,6 +20936,8 @@ in
 
   protonvpn-cli = callPackage ../applications/networking/protonvpn-cli { };
 
+  protonvpn-cli-ng = callPackage ../applications/networking/protonvpn-cli-ng { };
+
   ps2client = callPackage ../applications/networking/ps2client { };
 
   psi = libsForQt5.callPackage ../applications/networking/instant-messengers/psi { };
@@ -21657,6 +21721,8 @@ in
 
   tint2 = callPackage ../applications/misc/tint2 { };
 
+  tiny = callPackage ../applications/networking/irc/tiny { };
+
   tixati = callPackage ../applications/networking/p2p/tixati { };
 
   tkcvs = callPackage ../applications/version-management/tkcvs { };
@@ -22001,7 +22067,8 @@ in
     pythonPackages = python3Packages;
   };
 
-  way-cooler = callPackage ../applications/window-managers/way-cooler {};
+  way-cooler = throw ("way-cooler is abandoned by its author: " +
+    "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html");
 
   waypipe = callPackage ../applications/networking/remote/waypipe { };
 
@@ -23076,6 +23143,8 @@ in
 
   newtonwars = callPackage ../games/newtonwars { };
 
+  nudoku = callPackage ../games/nudoku { };
+
   nxengine-evo = callPackage ../games/nxengine-evo { };
 
   odamex = callPackage ../games/odamex { };
@@ -23122,9 +23191,7 @@ in
 
   openxcom = callPackage ../games/openxcom { };
 
-  openxray = callPackage ../games/openxray {
-    stdenv = gcc8Stdenv;
-  };
+  openxray = callPackage ../games/openxray { };
 
   orthorobot = callPackage ../games/orthorobot { };
 
@@ -25411,6 +25478,8 @@ in
 
   wacomtablet = libsForQt5.callPackage ../tools/misc/wacomtablet { };
 
+  wasmer = callPackage ../development/interpreters/wasmer { };
+
   wasm-pack = callPackage ../development/tools/wasm-pack {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -25808,4 +25877,8 @@ in
   sentencepiece = callPackage ../development/libraries/sentencepiece {};
 
   kcli = callPackage ../development/tools/kcli {};
+
+  unstick = callPackage ../os-specific/linux/unstick {};
+
+  quartus-prime-lite = callPackage ../applications/editors/quartus-prime {};
 }
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 4d956c494c0..a6adfc95815 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -839,6 +839,8 @@ let
 
     sedlex = callPackage ../development/ocaml-modules/sedlex { };
 
+    sedlex_2 = callPackage ../development/ocaml-modules/sedlex/2.nix { };
+
     sodium = callPackage ../development/ocaml-modules/sodium { };
 
     spelll = callPackage ../development/ocaml-modules/spelll { };
@@ -1232,6 +1234,8 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_4_09 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.09.nix { });
 
+  ocamlPackages_4_10 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.10.nix { });
+
   ocamlPackages_latest = ocamlPackages_4_09;
 
   ocamlPackages = ocamlPackages_4_07;
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index e8e15384c83..2f854138ba1 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -224,6 +224,8 @@ in {
     inherit (pkgs) augeas;
   };
 
+  authheaders = callPackage ../development/python-modules/authheaders { };
+
   authres = callPackage ../development/python-modules/authres { };
 
   autograd = callPackage ../development/python-modules/autograd { };
@@ -560,6 +562,8 @@ in {
 
   dendropy = callPackage ../development/python-modules/dendropy { };
 
+  denonavr = callPackage ../development/python-modules/denonavr { };
+
   dependency-injector = callPackage ../development/python-modules/dependency-injector { };
 
   btchip = callPackage ../development/python-modules/btchip { };
@@ -674,6 +678,8 @@ in {
 
   flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
 
+  fluidasserts = callPackage ../development/python-modules/fluidasserts { };
+
   foxdot = callPackage ../development/python-modules/foxdot { };
 
   fsspec = callPackage ../development/python-modules/fsspec { };
@@ -688,6 +694,8 @@ in {
 
   geoip2 = callPackage ../development/python-modules/geoip2 { };
 
+  getmac = callPackage ../development/python-modules/getmac { };
+
   gidgethub = callPackage ../development/python-modules/gidgethub { };
 
   gin-config = callPackage ../development/python-modules/gin-config { };
@@ -815,11 +823,11 @@ in {
 
   mail-parser = callPackage ../development/python-modules/mail-parser { };
 
-  mailman = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/core.nix { });
+  mailman = callPackage ../servers/mail/mailman { };
 
-  mailman-web = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/web.nix { });
+  mailman-web = callPackage ../servers/mail/mailman/web.nix { };
 
-  mailmanclient = disabledIf (!isPy3k) (callPackage ../development/python-modules/mailmanclient { });
+  mailmanclient = callPackage ../development/python-modules/mailmanclient { };
 
   mailman-hyperkitty = callPackage ../development/python-modules/mailman-hyperkitty { };
 
@@ -942,6 +950,8 @@ in {
 
   pdfx = callPackage ../development/python-modules/pdfx { };
 
+  pyicloud = callPackage ../development/python-modules/pyicloud { };
+
   pyperf = callPackage ../development/python-modules/pyperf { };
 
   pefile = callPackage ../development/python-modules/pefile { };
@@ -1040,6 +1050,8 @@ in {
 
   pydbus = callPackage ../development/python-modules/pydbus { };
 
+  pydicom = callPackage ../development/python-modules/pydicom { };
+
   pydocstyle =
     if isPy27 then
       callPackage ../development/python-modules/pydocstyle/2.nix { }
@@ -1190,6 +1202,8 @@ in {
 
   pystache = callPackage ../development/python-modules/pystache { };
 
+  pytelegrambotapi = callPackage ../development/python-modules/pyTelegramBotAPI { };
+
   pytesseract = callPackage ../development/python-modules/pytesseract { };
 
   pytest-bdd = callPackage ../development/python-modules/pytest-bdd { };
@@ -1895,8 +1909,6 @@ in {
 
   pyepsg = callPackage ../development/python-modules/pyepsg { };
 
-  pyezminc = callPackage ../development/python-modules/pyezminc { };
-
   billiard = callPackage ../development/python-modules/billiard { };
 
   binaryornot = callPackage ../development/python-modules/binaryornot { };
@@ -2105,6 +2117,10 @@ in {
 
   cookies = callPackage ../development/python-modules/cookies { };
 
+  coreapi = callPackage ../development/python-modules/coreapi { };
+
+  coreschema = callPackage ../development/python-modules/coreschema { };
+
   coveralls = callPackage ../development/python-modules/coveralls { };
 
   coverage = callPackage ../development/python-modules/coverage { };
@@ -2432,6 +2448,16 @@ in {
 
   daphne = callPackage ../development/python-modules/daphne { };
 
+  dash = callPackage ../development/python-modules/dash { };
+
+  dash-core-components = callPackage ../development/python-modules/dash-core-components { };
+
+  dash-html-components = callPackage ../development/python-modules/dash-html-components { };
+
+  dash-renderer = callPackage ../development/python-modules/dash-renderer { };
+
+  dash-table = callPackage ../development/python-modules/dash-table { };
+
   dateparser = callPackage ../development/python-modules/dateparser { };
 
   # Actual name of package
@@ -2490,6 +2516,8 @@ in {
 
   urllib3 = callPackage ../development/python-modules/urllib3 {};
 
+  drf-yasg = callPackage ../development/python-modules/drf-yasg { };
+
   dropbox = callPackage ../development/python-modules/dropbox {};
 
   drms = callPackage ../development/python-modules/drms { };
@@ -2579,6 +2607,8 @@ in {
 
   fluent-logger = callPackage ../development/python-modules/fluent-logger {};
 
+  flux-led = callPackage ../development/python-modules/flux-led { };
+
   python-forecastio = callPackage ../development/python-modules/python-forecastio { };
 
   fpdf = callPackage ../development/python-modules/fpdf { };
@@ -2737,6 +2767,8 @@ in {
 
   itsdangerous = callPackage ../development/python-modules/itsdangerous { };
 
+  itypes = callPackage ../development/python-modules/itypes { };
+
   iniparse = callPackage ../development/python-modules/iniparse { };
 
   intreehooks = callPackage ../development/python-modules/intreehooks { };
@@ -2928,6 +2960,12 @@ in {
 
   plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy {};
 
+  plexapi = callPackage ../development/python-modules/plexapi { };
+
+  plexauth = callPackage ../development/python-modules/plexauth { };
+
+  plexwebsocket = callPackage ../development/python-modules/plexwebsocket { };
+
   plotly = callPackage ../development/python-modules/plotly { };
 
   plyfile = callPackage ../development/python-modules/plyfile { };
@@ -3049,7 +3087,7 @@ in {
 
   sunpy = callPackage ../development/python-modules/sunpy { };
 
-  hyperkitty = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/hyperkitty.nix { });
+  hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
 
   robot-detection = callPackage ../development/python-modules/robot-detection {};
 
@@ -3167,10 +3205,6 @@ in {
     gdal = self.gdal;
   };
 
-  django_2_1 = callPackage ../development/python-modules/django/2_1.nix {
-    gdal = self.gdal;
-  };
-
   django_2_2 = callPackage ../development/python-modules/django/2_2.nix { };
 
   django_1_8 = callPackage ../development/python-modules/django/1_8.nix { };
@@ -3456,6 +3490,8 @@ in {
 
   flask-socketio = callPackage ../development/python-modules/flask-socketio { };
 
+  flask-sockets = callPackage ../development/python-modules/flask-sockets { };
+
   flask_sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
 
   flask-swagger = callPackage ../development/python-modules/flask-swagger { };
@@ -5461,6 +5497,8 @@ in {
     inherit (pkgs) pkgconfig systemd;
   };
 
+  sysv_ipc = callPackage ../development/python-modules/sysv_ipc { };
+
   tabulate = callPackage ../development/python-modules/tabulate { };
 
   tadasets = callPackage ../development/python-modules/tadasets { };
@@ -6855,6 +6893,8 @@ in {
 
   pony = callPackage ../development/python-modules/pony { };
 
+  rxv     = callPackage ../development/python-modules/rxv     { };
+
 });
 
 in fix' (extends overrides packages)
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index e39b40be662..6ada2ca6d18 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -191,6 +191,8 @@ let
       haskellPackages = packagePlatforms pkgs.haskellPackages;
       idrisPackages = packagePlatforms pkgs.idrisPackages;
 
+      tests = packagePlatforms pkgs.tests;
+
       # Language packages disabled in https://github.com/NixOS/nixpkgs/commit/ccd1029f58a3bb9eca32d81bf3f33cb4be25cc66
 
       #emacsPackages = packagePlatforms pkgs.emacsPackages;
diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix
index da36ffda864..3dd539e03a7 100644
--- a/pkgs/top-level/static.nix
+++ b/pkgs/top-level/static.nix
@@ -161,14 +161,10 @@ in {
   };
   mkl = super.mkl.override { enableStatic = true; };
   nix = super.nix.override { withAWS = false; };
-  # openssl 1.1 doesn't compile
-  openssl = super.openssl_1_0_2.override {
-    static = true;
-
-    # Don’t use new stdenv for openssl because it doesn’t like the
-    # --disable-shared flag
-    stdenv = super.stdenv;
-  };
+  openssl = (super.openssl_1_1.override { static = true; }).overrideAttrs (o: {
+    # OpenSSL doesn't like the `--enable-static` / `--disable-shared` flags.
+    configureFlags = (removeUnknownConfigureFlags o.configureFlags);
+  });
   arrow-cpp = super.arrow-cpp.override {
     enableShared = false;
     python = { pkgs = { python = null; numpy = null; }; };