about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixpkgs/.github/CONTRIBUTING.md9
-rw-r--r--nixpkgs/doc/languages-frameworks/python.section.md82
-rw-r--r--nixpkgs/doc/languages-frameworks/rust.section.md18
-rw-r--r--nixpkgs/doc/overrides.css15
-rw-r--r--nixpkgs/lib/attrsets.nix2
-rw-r--r--nixpkgs/lib/cli.nix56
-rw-r--r--nixpkgs/lib/default.nix4
-rw-r--r--nixpkgs/lib/modules.nix3
-rw-r--r--nixpkgs/lib/sources.nix36
-rw-r--r--nixpkgs/lib/systems/examples.nix16
-rw-r--r--nixpkgs/lib/tests/misc.nix21
-rwxr-xr-xnixpkgs/lib/tests/modules.sh3
-rw-r--r--nixpkgs/lib/trivial.nix2
-rw-r--r--nixpkgs/lib/types.nix78
-rw-r--r--nixpkgs/maintainers/maintainer-list.nix75
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/declarative-packages.xml6
-rw-r--r--nixpkgs/nixos/doc/manual/development/option-types.xml6
-rw-r--r--nixpkgs/nixos/doc/manual/man-pages.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml54
-rw-r--r--nixpkgs/nixos/lib/test-driver/test-driver.py25
-rw-r--r--nixpkgs/nixos/lib/testing-python.nix2
-rw-r--r--nixpkgs/nixos/modules/hardware/opengl.nix6
-rw-r--r--nixpkgs/nixos/modules/hardware/usb-wwan.nix13
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nixos-rebuild.sh16
-rw-r--r--nixpkgs/nixos/modules/misc/version.nix4
-rw-r--r--nixpkgs/nixos/modules/module-list.nix6
-rw-r--r--nixpkgs/nixos/modules/programs/liboping.nix22
-rw-r--r--nixpkgs/nixos/modules/programs/traceroute.nix26
-rw-r--r--nixpkgs/nixos/modules/programs/way-cooler.nix78
-rw-r--r--nixpkgs/nixos/modules/rename.nix7
-rw-r--r--nixpkgs/nixos/modules/services/amqp/rabbitmq.nix5
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix10
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix2
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix2
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/buildkite-agent.nix98
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix4
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/jenkins/slave.nix2
-rw-r--r--nixpkgs/nixos/modules/services/databases/openldap.nix2
-rw-r--r--nixpkgs/nixos/modules/services/hardware/usbmuxd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/mail/postfix.nix5
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitea.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/paperless.nix14
-rw-r--r--nixpkgs/nixos/modules/services/networking/corerad.nix46
-rw-r--r--nixpkgs/nixos/modules/services/networking/matterbridge.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/ndppd.nix20
-rw-r--r--nixpkgs/nixos/modules/services/networking/syncthing.nix18
-rw-r--r--nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix7
-rw-r--r--nixpkgs/nixos/modules/services/networking/xandikos.nix148
-rw-r--r--nixpkgs/nixos/modules/services/networking/zerotierone.nix10
-rw-r--r--nixpkgs/nixos/modules/services/security/certmgr.nix4
-rw-r--r--nixpkgs/nixos/modules/services/torrent/transmission.nix16
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix3
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/nginx/gitweb.nix53
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/unit/default.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix12
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix4
-rw-r--r--nixpkgs/nixos/modules/services/x11/hardware/multitouch.nix94
-rw-r--r--nixpkgs/nixos/modules/services/x11/unclutter.nix7
-rw-r--r--nixpkgs/nixos/modules/system/boot/networkd.nix40
-rw-r--r--nixpkgs/nixos/modules/system/boot/systemd-lib.nix8
-rw-r--r--nixpkgs/nixos/tests/all-tests.nix3
-rw-r--r--nixpkgs/nixos/tests/bittorrent.nix155
-rw-r--r--nixpkgs/nixos/tests/buildkite-agent.nix36
-rw-r--r--nixpkgs/nixos/tests/certmgr.nix12
-rw-r--r--nixpkgs/nixos/tests/corerad.nix71
-rw-r--r--nixpkgs/nixos/tests/elk.nix8
-rw-r--r--nixpkgs/nixos/tests/xandikos.nix70
-rw-r--r--nixpkgs/pkgs/applications/audio/bshapr/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bslizr/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/distrho/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/ecasound/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/giada/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ingen/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/audio/jalv/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/mda-lv2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/noise-repellent/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/pavucontrol/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/qtractor/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/rosegarden/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/spotifyd/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/bviplus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/plugins.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix5
-rw-r--r--nixpkgs/pkgs/applications/editors/focuswriter/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/qt.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/quartus-prime/default.nix119
-rw-r--r--nixpkgs/pkgs/applications/editors/quartus-prime/vsim.patch11
-rw-r--r--nixpkgs/pkgs/applications/editors/texstudio/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/editors/uberwriter/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/graphics/apngasm/2.nix35
-rw-r--r--nixpkgs/pkgs/applications/graphics/apngasm/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/graphics/avocode/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/goxel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/gthumb/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/krop/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/graphics/openimageio/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/pencil/default.nix116
-rw-r--r--nixpkgs/pkgs/applications/graphics/renderdoc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/rx/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/sxiv/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/kde/kmahjongg.nix19
-rw-r--r--nixpkgs/pkgs/applications/kde/libkmahjongg.nix18
-rw-r--r--nixpkgs/pkgs/applications/misc/bashSnippets/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/blender/darwin.patch105
-rw-r--r--nixpkgs/pkgs/applications/misc/blender/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/misc/calibre/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/misc/cbatticon/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/dbeaver/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/font-manager/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/misc/girara/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/ikiwiki/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch37
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassx/community.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/mako/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/marktext/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/nnn/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/notejot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/osmctools/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/misc/qolibri/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/syncthingtray/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/tmatrix/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/misc/todoist/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/toot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/vit/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/waybar/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/xmrig/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/xygrib/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/Sylk/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix770
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cawbird/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/flexget/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/gui.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/server.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix91
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix138
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/tiny/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/protonvpn-cli-ng/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/seafile-client/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/office/atlassian-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/csv2odf/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/office/gnumeric/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/kmymoney/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/paperless/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/skanlite/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/wpsoffice/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/radio/flrig/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/soapysdr/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/svxlink/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/radio/urh/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gildas/imager-py3.patch12
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samtools/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cubicle/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/nota/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/search/doodle/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/data.json8
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile2
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock8
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/plugins.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch33
-rw-r--r--nixpkgs/pkgs/applications/video/shotcut/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/lock-fancy.nix2
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/bar.diff37
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/crates-io.nix3004
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/default.nix113
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/way-cooler.nix314
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/wc-bg.nix1372
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/wc-grab.nix794
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/wc-lock.nix1479
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/wlc.nix39
-rw-r--r--nixpkgs/pkgs/build-support/docker-slim/default.nix67
-rw-r--r--nixpkgs/pkgs/build-support/fetchurl/mirrors.nix4
-rw-r--r--nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix3
-rw-r--r--nixpkgs/pkgs/build-support/rust/build-rust-crate/test/default.nix33
-rw-r--r--nixpkgs/pkgs/build-support/rust/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/sudo/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/victor-mono/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/default.nix13
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/default.nix4
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix76
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix40
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch48
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix111
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix31
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix84
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cjs/fix-werror.patch39
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix95
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex6
-rw-r--r--nixpkgs/pkgs/development/compilers/bs-platform/bs-platform-62.nix55
-rw-r--r--nixpkgs/pkgs/development/compilers/bs-platform/build-bs-platform.nix51
-rw-r--r--nixpkgs/pkgs/development/compilers/bs-platform/default.nix29
-rw-r--r--nixpkgs/pkgs/development/compilers/bs-platform/ocaml.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/computecpp/default.nix52
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/buildDotnet.nix67
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/combinePackages.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/default.nix68
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/sdk/default.nix54
-rw-r--r--nixpkgs/pkgs/development/compilers/dtc/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.4.4.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.8.1.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/head.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/4.10.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/default.nix160
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch16
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch20
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch10
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch16
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/patches/glibc-arch-headers.patch2
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/patches/libdispatch-fortify-fix.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/patches/llvm-include-dirs.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/patches/llvm-toolchain-dir.patch24
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/purity.patch16
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-common.nix17
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix1
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml53
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/generic-builder.nix148
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix1838
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/make-package-set.nix82
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/default.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/default.nix12
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh26
-rw-r--r--nixpkgs/pkgs/development/interpreters/quickjs/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmer/default.nix40
-rw-r--r--nixpkgs/pkgs/development/libraries/alure2/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/assimp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/lilv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/lv2/unstable.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/raul/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/suil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/blitz/blitz-gcc47.patch33
-rw-r--r--nixpkgs/pkgs/development/libraries/blitz/blitz-testsuite-stencil-et.patch13
-rw-r--r--nixpkgs/pkgs/development/libraries/blitz/default.nix81
-rw-r--r--nixpkgs/pkgs/development/libraries/cln/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/cpp-netlib/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/double-conversion/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/dyncall/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/faudio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/fmt/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/folks/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/fplll/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ganv/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/gcab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gjs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/glfw/3.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/glog/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/grilo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/validate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gtest/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/hpx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/leatherman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/leptonica/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libamqpcpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libdeflate/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libevdevplus/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libimobiledevice/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/liblinear/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/libplist/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/libpwquality/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libre/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libsixel/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libvirt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libvterm-neovim/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/olm/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/onnxruntime/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/openssl/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/rivet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/biology/htslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/sentencepiece/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/trompeloeil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lens/default.nix23
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix10
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/sedlex/2.nix69
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix20
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/stdint/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/uchar/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/authheaders/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/avro-python3/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/binwalk/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/coreapi/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/coreschema/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/dash-core-components/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/dash-html-components/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/dash-renderer/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/dash-table/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/dash/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/denonavr/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/2_1.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-sockets/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/fluidasserts/default.nix167
-rw-r--r--nixpkgs/pkgs/development/python-modules/flux-led/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/getmac/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpxpy/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/hypothesis/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/itypes/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/mailmanclient/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/mixpanel/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/nest-asyncio/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/onnx/default.nix78
-rw-r--r--nixpkgs/pkgs/development/python-modules/plexapi/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/plexauth/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/plexwebsocket/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/publicsuffix/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycurl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydicom/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyezminc/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyicloud/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint-celery/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint-django/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint-flask/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynrrd/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypandoc/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-miio/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-olm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/requirements-detector/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/runway-python/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/rxv/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snitun/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/solo-python/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/srsly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/stups-pierone/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/sysv_ipc/default.nix22
-rw-r--r--nixpkgs/pkgs/development/r-modules/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/coz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/flow/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/boomerang/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/gn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/buildah/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/2.x.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/3.x.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix48
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/database/pg_checksums/default.nix37
-rw-r--r--nixpkgs/pkgs/development/tools/dive/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/geckodriver/cargo-lock.patch1846
-rw-r--r--nixpkgs/pkgs/development/tools/geckodriver/default.nix29
-rw-r--r--nixpkgs/pkgs/development/tools/git-quick-stats/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/kind/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/kind/deps.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/kdbg/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch283
-rw-r--r--nixpkgs/pkgs/development/tools/misc/usb-modeswitch/data.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/usb-modeswitch/default.nix30
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune/2.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/opam/default.nix14
-rwxr-xr-xnixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl6
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix34
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix172
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix119
-rw-r--r--nixpkgs/pkgs/development/tools/prospector/default.nix74
-rw-r--r--nixpkgs/pkgs/development/tools/prospector/setoptconf.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/purescript/spago/spago.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/pypi2nix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rnix-lsp/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-make/Cargo.lock199
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/wabt/default.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/wabt/version.patch28
-rw-r--r--nixpkgs/pkgs/games/crispy-doom/default.nix4
-rw-r--r--nixpkgs/pkgs/games/mindustry/default.nix106
-rw-r--r--nixpkgs/pkgs/games/nudoku/default.nix31
-rw-r--r--nixpkgs/pkgs/games/quakespasm/vulkan.nix4
-rw-r--r--nixpkgs/pkgs/games/stockfish/default.nix4
-rw-r--r--nixpkgs/pkgs/games/teeworlds/default.nix8
-rw-r--r--nixpkgs/pkgs/games/ultrastardx/default.nix8
-rw-r--r--nixpkgs/pkgs/misc/drivers/hplip/default.nix13
-rw-r--r--nixpkgs/pkgs/misc/drivers/hplip/image-processor.patch59
-rw-r--r--nixpkgs/pkgs/misc/emulators/retroarch/cores.nix7
-rw-r--r--nixpkgs/pkgs/misc/emulators/wine/sources.nix28
-rw-r--r--nixpkgs/pkgs/misc/scream-receivers/default.nix6
-rw-r--r--nixpkgs/pkgs/misc/seafile-shared/default.nix35
-rw-r--r--nixpkgs/pkgs/misc/uboot/default.nix32
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/generated.nix375
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names7
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/python/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/xcode/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/apparmor/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/crda/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/linux/evdi/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/facetimehd/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firejail/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/health-check/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-5.3.nix18
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix4
-rwxr-xr-xnixpkgs/pkgs/os-specific/linux/kernel/update-libre.sh11
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libnl/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix22
-rw-r--r--nixpkgs/pkgs/os-specific/linux/syslinux/default.nix32
-rw-r--r--nixpkgs/pkgs/os-specific/linux/syslinux/perl-deps.patch81
-rw-r--r--nixpkgs/pkgs/os-specific/linux/unstick/default.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xf86-input-mtrack/default.nix42
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xf86-input-multitouch/default.nix48
-rw-r--r--nixpkgs/pkgs/os-specific/linux/zenpower/default.nix32
-rw-r--r--nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix33
-rw-r--r--nixpkgs/pkgs/servers/dante/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/ftp/bftpd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/component-packages.nix2
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/esphome.nix17
-rw-r--r--nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/jetty/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/lwan/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/unit/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/http/unit/drop_cap.patch79
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix3
-rw-r--r--nixpkgs/pkgs/servers/mail/public-inbox/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/nginx-sso/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/rippled/default.nix74
-rw-r--r--nixpkgs/pkgs/servers/search/groonga/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix4
-rw-r--r--nixpkgs/pkgs/servers/tt-rss/theme-feedly/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/matomo/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/moodle/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/shaarli/material-theme.nix5
-rw-r--r--nixpkgs/pkgs/servers/zoneminder/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/fish/default.nix10
-rw-r--r--nixpkgs/pkgs/shells/mrsh/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/oil/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix31
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix4
-rw-r--r--nixpkgs/pkgs/stdenv/adapters.nix1
-rw-r--r--nixpkgs/pkgs/test/default.nix2
-rw-r--r--nixpkgs/pkgs/test/haskell-shellFor/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/X11/jumpapp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/xcape/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/X11/xlayoutdisplay/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/xsecurelock/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/acme.sh/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/sewer/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/admin/vncdo/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/backup/dar/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/zfs-replicate/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/zfsnap/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/compression/zopfli/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bindfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ceph/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gcsfuse/go.mod.patch28
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gcsfuse/go.sum.patch38
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix2
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/asymptote/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/grim/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/pstoedit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/broot/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/diffoscope/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/misc/dust/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/fluent-bit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fpart/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/fsmon/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/graylog/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/hakuneko/default.nix94
-rw-r--r--nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock10
-rw-r--r--nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/jdupes/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/mcfly/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/ms-sys/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch12
-rw-r--r--nixpkgs/pkgs/tools/misc/mutagen/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/pfetch/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/pg_flame/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pipreqs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pspg/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/skim/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/snapper/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/starship/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/tmuxinator/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/topgrade/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/txr/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/usbmuxd/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/vmtouch/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/wakatime/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/yle-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/axel/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/bandwhich/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/cassowary/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/networking/corerad/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/httpie/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/httpie/strip-venv.patch19
-rw-r--r--nixpkgs/pkgs/tools/networking/iperf/3.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/lftp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/mu/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/nebula/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/saldl/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/networking/strongswan/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/subfinder/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/wavemon/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nfpm/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/package-management/packagekit/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/package-management/rpm/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/chrome-token-signing/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/fail2ban/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/security/fido2luks/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/security/jwt-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/nmap/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/security/nmap/qt.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/pass/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/rage/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/system/bfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/facter/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/htop/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/fanficfare/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/mdcat/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/text/shfmt/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/text/unoconv/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/text/unoconv/unoconv-python3.patch374
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/UPGRADING.md21
-rw-r--r--nixpkgs/pkgs/top-level/aliases.nix4
-rw-r--r--nixpkgs/pkgs/top-level/all-packages.nix157
-rw-r--r--nixpkgs/pkgs/top-level/darwin-packages.nix8
-rw-r--r--nixpkgs/pkgs/top-level/ocaml-packages.nix6
-rw-r--r--nixpkgs/pkgs/top-level/python-packages.nix80
-rw-r--r--nixpkgs/pkgs/top-level/release-small.nix1
-rw-r--r--nixpkgs/pkgs/top-level/release.nix3
-rw-r--r--nixpkgs/pkgs/top-level/static.nix21
625 files changed, 12295 insertions, 11505 deletions
diff --git a/nixpkgs/.github/CONTRIBUTING.md b/nixpkgs/.github/CONTRIBUTING.md
index 706952b208db..a50a8a507de3 100644
--- a/nixpkgs/.github/CONTRIBUTING.md
+++ b/nixpkgs/.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/nixpkgs/doc/languages-frameworks/python.section.md b/nixpkgs/doc/languages-frameworks/python.section.md
index 41a5dae8b9b0..9b6de47c8e86 100644
--- a/nixpkgs/doc/languages-frameworks/python.section.md
+++ b/nixpkgs/doc/languages-frameworks/python.section.md
@@ -496,8 +496,8 @@ and in this case the `python35` interpreter is automatically used.
 
 ### Interpreters
 
-Versions 2.7, 3.5, 3.6 and 3.7 of the CPython interpreter are available as
-respectively `python27`, `python35`, `python36` and `python37`. The aliases
+Versions 2.7, 3.5, 3.6, 3.7 and 3.8 of the CPython interpreter are available as
+respectively `python27`, `python35`, `python36`, `python37` and `python38`. The aliases
 `python2` and `python3` correspond to respectively `python27` and
 `python37`. The default interpreter, `python`, maps to `python2`. The PyPy
 interpreters compatible with Python 2.7 and 3 are available as `pypy27` and
@@ -833,6 +833,7 @@ used in `buildPythonPackage`.
 - `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder.
 - `setuptoolsBuildHook` to build a wheel using `setuptools`.
 - `setuptoolsCheckHook` to run tests with `python setup.py test`.
+- `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A `venv` is created if it does not yet exist.
 - `wheelUnpackHook` to move a wheel to the correct folder so it can be installed with the `pipInstallHook`.
 
 ### Development mode
@@ -1028,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
@@ -1067,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/nixpkgs/doc/languages-frameworks/rust.section.md b/nixpkgs/doc/languages-frameworks/rust.section.md
index 709a0d504cf7..0edf03ad26a9 100644
--- a/nixpkgs/doc/languages-frameworks/rust.section.md
+++ b/nixpkgs/doc/languages-frameworks/rust.section.md
@@ -32,17 +32,17 @@ Rust applications are packaged by using the `buildRustPackage` helper from `rust
 
 ```
 rustPlatform.buildRustPackage rec {
-  name = "ripgrep-${version}";
-  version = "0.4.0";
+  pname = "ripgrep";
+  version = "11.0.2";
 
   src = fetchFromGitHub {
     owner = "BurntSushi";
-    repo = "ripgrep";
-    rev = "${version}";
-    sha256 = "0y5d1n6hkw85jb3rblcxqas2fp82h3nghssa4xqrhqnz25l799pj";
+    repo = pname;
+    rev = version;
+    sha256 = "1iga3320mgi7m853la55xip514a3chqsdi1a1rwv25lr9b1p7vd3";
   };
 
-  cargoSha256 = "0q68qyl2h6i0qsz82z840myxlnjay8p1w5z7hfyr8fqp7wgwa9cx";
+  cargoSha256 = "17ldqr3asrdcsh4l29m3b5r37r5d0b3npq1lrgjmxb6vlx6a36qh";
   verifyCargoDeps = true;
 
   meta = with stdenv.lib; {
@@ -66,7 +66,11 @@ added in `cargoPatches` will also be prepended to the patches in `patches` at
 build-time.
 
 When `verifyCargoDeps` is set to `true`, the build will also verify that the
-`cargoSha256` is not out of date by comparing the `Cargo.lock` file in both the `cargoDeps` and `src`. Note that this option changes the value of `cargoSha256` since it also copies the `Cargo.lock` in it. To avoid breaking backward-compatibility this option is not enabled by default but hopefully will be in the future.
+`cargoSha256` is not out of date by comparing the `Cargo.lock` file in both the
+`cargoDeps` and `src`. Note that this option changes the value of `cargoSha256`
+since it also copies the `Cargo.lock` in it. To avoid breaking
+backward-compatibility this option is not enabled by default but hopefully will
+be in the future.
 
 ### Building a crate for a different target
 
diff --git a/nixpkgs/doc/overrides.css b/nixpkgs/doc/overrides.css
index 4c7d4a31be2d..73901a3f543b 100644
--- a/nixpkgs/doc/overrides.css
+++ b/nixpkgs/doc/overrides.css
@@ -1,9 +1,22 @@
 .docbook .xref img[src^=images\/callouts\/],
 .screen img,
-.programlisting img {
+.programlisting img,
+.literallayout img,
+.synopsis img {
     width: 1em;
 }
 
 .calloutlist img {
     width: 1.5em;
 }
+
+.prompt,
+.screen img,
+.programlisting img,
+.literallayout img,
+.synopsis img {
+    -moz-user-select: none;
+    -webkit-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
diff --git a/nixpkgs/lib/attrsets.nix b/nixpkgs/lib/attrsets.nix
index 086c3d746fc1..32994432d53d 100644
--- a/nixpkgs/lib/attrsets.nix
+++ b/nixpkgs/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/nixpkgs/lib/cli.nix b/nixpkgs/lib/cli.nix
new file mode 100644
index 000000000000..f47625d2f537
--- /dev/null
+++ b/nixpkgs/lib/cli.nix
@@ -0,0 +1,56 @@
+{ lib }:
+
+rec {
+  /* Automatically convert an attribute set to command-line options.
+
+     This helps protect against malformed command lines and also to reduce
+     boilerplate related to command-line construction for simple use cases.
+
+     Example:
+       encodeGNUCommandLine
+         { }
+         { data = builtins.toJSON { id = 0; };
+
+           X = "PUT";
+
+           retry = 3;
+
+           retry-delay = null;
+
+           url = [ "https://example.com/foo" "https://example.com/bar" ];
+
+           silent = false;
+
+           verbose = true;
+         };
+       => "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'"
+  */
+  encodeGNUCommandLine =
+    options: attrs: lib.escapeShellArgs (toGNUCommandLine options attrs);
+
+  toGNUCommandLine =
+    { renderKey ?
+        key: if builtins.stringLength key == 1 then "-${key}" else "--${key}"
+
+    , renderOption ?
+        key: value:
+          if value == null
+          then []
+          else [ (renderKey key) (builtins.toString value) ]
+
+    , renderBool ? key: value: lib.optional value (renderKey key)
+
+    , renderList ? key: value: lib.concatMap (renderOption key) value
+    }:
+    options:
+      let
+        render = key: value:
+                 if builtins.isBool value
+            then renderBool key value
+            else if builtins.isList value
+            then renderList key value
+            else renderOption key value;
+
+      in
+        builtins.concatLists (lib.mapAttrsToList render options);
+}
diff --git a/nixpkgs/lib/default.nix b/nixpkgs/lib/default.nix
index 9f7a088d792d..5abafe1b2acf 100644
--- a/nixpkgs/lib/default.nix
+++ b/nixpkgs/lib/default.nix
@@ -39,6 +39,7 @@ let
 
     # misc
     asserts = callLibs ./asserts.nix;
+    cli = callLibs ./cli.nix;
     debug = callLibs ./debug.nix;
     generators = callLibs ./generators.nix;
     misc = callLibs ./deprecated.nix;
@@ -100,7 +101,7 @@ let
     inherit (sources) pathType pathIsDirectory cleanSourceFilter
       cleanSource sourceByRegex sourceFilesBySuffices
       commitIdFromGitRepo cleanSourceWith pathHasContext
-      canCleanSource;
+      canCleanSource pathIsRegularFile;
     inherit (modules) evalModules unifyModuleSyntax
       applyIfFunction mergeModules
       mergeModules' mergeOptionDecls evalOptionValue mergeDefinitions
@@ -120,6 +121,7 @@ let
       isOptionType mkOptionType;
     inherit (asserts)
       assertMsg assertOneOf;
+    inherit (cli) encodeGNUCommandLine toGNUCommandLine;
     inherit (debug) addErrorContextToAttrs traceIf traceVal traceValFn
       traceXMLVal traceXMLValMarked traceSeq traceSeqN traceValSeq
       traceValSeqFn traceValSeqN traceValSeqNFn traceShowVal
diff --git a/nixpkgs/lib/modules.nix b/nixpkgs/lib/modules.nix
index e2315290ff0d..2b1faf4f0c28 100644
--- a/nixpkgs/lib/modules.nix
+++ b/nixpkgs/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/nixpkgs/lib/sources.nix b/nixpkgs/lib/sources.nix
index 51bcf5559e32..a5765c0fda5b 100644
--- a/nixpkgs/lib/sources.nix
+++ b/nixpkgs/lib/sources.nix
@@ -9,6 +9,9 @@ rec {
   # Returns true if the path exists and is a directory, false otherwise
   pathIsDirectory = p: if builtins.pathExists p then (pathType p) == "directory" else false;
 
+  # Returns true if the path exists and is a regular file, false otherwise
+  pathIsRegularFile = p: if builtins.pathExists p then (pathType p) == "regular" else false;
+
   # Bring in a path as a source, filtering out all Subversion and CVS
   # directories, as well as backup files (*~).
   cleanSourceFilter = name: type: let baseName = baseNameOf (toString name); in ! (
@@ -110,24 +113,45 @@ rec {
       with builtins;
         let fileName       = toString path + "/" + file;
             packedRefsName = toString path + "/packed-refs";
-        in if lib.pathExists fileName
+            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
+             let m   = match "^gitdir: (.*)$" (lib.fileContents path);
+             in if m == null
+                then throw ("File contains no gitdir reference: " + path)
+                else
+                  let gitDir     = absolutePath (dirOf path) (lib.head m);
+                      commonDir' = if pathIsRegularFile "${gitDir}/commondir"
+                                   then lib.fileContents "${gitDir}/commondir"
+                                   else gitDir;
+                      commonDir  = absolutePath gitDir commonDir';
+                      refFile    = lib.removePrefix "${commonDir}/" "${gitDir}/${file}";
+                  in readCommitFromFile refFile commonDir
+
+           else if pathIsRegularFile fileName
+           # Sometimes git stores the commitId directly in the file but
+           # sometimes it stores something like: «ref: refs/heads/branch-name»
            then
              let fileContent = lib.fileContents fileName;
-                 # Sometimes git stores the commitId directly in the file but
-                 # sometimes it stores something like: «ref: refs/heads/branch-name»
                  matchRef    = match "^ref: (.*)$" fileContent;
-             in if   matchRef == null
+             in if  matchRef == null
                 then fileContent
                 else readCommitFromFile (lib.head matchRef) path
+
+           else if pathIsRegularFile packedRefsName
            # Sometimes, the file isn't there at all and has been packed away in the
            # packed-refs file, so we have to grep through it:
-           else if lib.pathExists packedRefsName
            then
              let fileContent = readFile packedRefsName;
                  matchRef    = match (".*\n([^\n ]*) " + file + "\n.*") fileContent;
-             in if   matchRef == null
+             in if  matchRef == null
                 then throw ("Could not find " + file + " in " + packedRefsName)
                 else lib.head matchRef
+
            else throw ("Not a .git directory: " + path);
     in readCommitFromFile "HEAD";
 
diff --git a/nixpkgs/lib/systems/examples.nix b/nixpkgs/lib/systems/examples.nix
index cb8bc3de6c48..19b3790ecbe0 100644
--- a/nixpkgs/lib/systems/examples.nix
+++ b/nixpkgs/lib/systems/examples.nix
@@ -170,8 +170,8 @@ rec {
   iphone64 = {
     config = "aarch64-apple-ios";
     # config = "aarch64-apple-darwin14";
-    sdkVer = "10.2";
-    xcodeVer = "8.2";
+    sdkVer = "12.4";
+    xcodeVer = "10.3";
     xcodePlatform = "iPhoneOS";
     useiOSPrebuilt = true;
     platform = {};
@@ -180,8 +180,8 @@ rec {
   iphone32 = {
     config = "armv7a-apple-ios";
     # config = "arm-apple-darwin10";
-    sdkVer = "10.2";
-    xcodeVer = "8.2";
+    sdkVer = "12.4";
+    xcodeVer = "10.3";
     xcodePlatform = "iPhoneOS";
     useiOSPrebuilt = true;
     platform = {};
@@ -190,8 +190,8 @@ rec {
   iphone64-simulator = {
     config = "x86_64-apple-ios";
     # config = "x86_64-apple-darwin14";
-    sdkVer = "10.2";
-    xcodeVer = "8.2";
+    sdkVer = "12.4";
+    xcodeVer = "10.3";
     xcodePlatform = "iPhoneSimulator";
     useiOSPrebuilt = true;
     platform = {};
@@ -200,8 +200,8 @@ rec {
   iphone32-simulator = {
     config = "i686-apple-ios";
     # config = "i386-apple-darwin11";
-    sdkVer = "10.2";
-    xcodeVer = "8.2";
+    sdkVer = "12.4";
+    xcodeVer = "10.3";
     xcodePlatform = "iPhoneSimulator";
     useiOSPrebuilt = true;
     platform = {};
diff --git a/nixpkgs/lib/tests/misc.nix b/nixpkgs/lib/tests/misc.nix
index b064faa1e1ba..e47b48b5017d 100644
--- a/nixpkgs/lib/tests/misc.nix
+++ b/nixpkgs/lib/tests/misc.nix
@@ -441,4 +441,25 @@ runTests {
     expected  = "«foo»";
   };
 
+  testRenderOptions = {
+    expr =
+       encodeGNUCommandLine
+         { }
+         { data = builtins.toJSON { id = 0; };
+
+           X = "PUT";
+
+           retry = 3;
+
+           retry-delay = null;
+
+           url = [ "https://example.com/foo" "https://example.com/bar" ];
+
+           silent = false;
+
+           verbose = true;
+         };
+
+    expected = "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'";
+  };
 }
diff --git a/nixpkgs/lib/tests/modules.sh b/nixpkgs/lib/tests/modules.sh
index c8340ff7f157..8cd632a439cd 100755
--- a/nixpkgs/lib/tests/modules.sh
+++ b/nixpkgs/lib/tests/modules.sh
@@ -174,8 +174,7 @@ checkConfigOutput "true" config.submodule.inner ./declare-submoduleWith-modules.
 checkConfigOutput "true" config.submodule.outer ./declare-submoduleWith-modules.nix
 
 ## Paths should be allowed as values and work as expected
-# Temporarily disabled until https://github.com/NixOS/nixpkgs/pull/76861
-#checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.nix
+checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.nix
 
 # Check that disabledModules works recursively and correctly
 checkConfigOutput "true" config.enable ./disable-recursive/main.nix
diff --git a/nixpkgs/lib/trivial.nix b/nixpkgs/lib/trivial.nix
index 3a25e31fb052..940ec1a3d59e 100644
--- a/nixpkgs/lib/trivial.nix
+++ b/nixpkgs/lib/trivial.nix
@@ -191,7 +191,7 @@ rec {
     let
       revisionFile = "${toString ./..}/.git-revision";
       gitRepo      = "${toString ./..}/.git";
-    in if lib.pathIsDirectory gitRepo
+    in if builtins.pathExists gitRepo
        then lib.commitIdFromGitRepo gitRepo
        else if lib.pathExists revisionFile then lib.fileContents revisionFile
        else default;
diff --git a/nixpkgs/lib/types.nix b/nixpkgs/lib/types.nix
index e86f6d364761..6fd6de7e1fd9 100644
--- a/nixpkgs/lib/types.nix
+++ b/nixpkgs/lib/types.nix
@@ -340,29 +340,79 @@ rec {
             let
               padWidth = stringLength (toString (length def.value));
               unnamed = i: unnamedPrefix + fixedWidthNumber padWidth i;
+              anyString = placeholder "name";
+              nameAttrs = [
+                { path = [ "environment" "etc" ];
+                  name = "target";
+                }
+                { path = [ "containers" anyString "bindMounts" ];
+                  name = "mountPoint";
+                }
+                { path = [ "programs" "ssh" "knownHosts" ];
+                  # hostNames is actually a list so we would need to handle it only when singleton
+                  name = "hostNames";
+                }
+                { path = [ "fileSystems" ];
+                  name = "mountPoint";
+                }
+                { path = [ "boot" "specialFileSystems" ];
+                  name = "mountPoint";
+                }
+                { path = [ "services" "znapzend" "zetup" ];
+                  name = "dataset";
+                }
+                { path = [ "services" "znapzend" "zetup" anyString "destinations" ];
+                  name = "label";
+                }
+                { path = [ "services" "geoclue2" "appConfig" ];
+                  name = "desktopID";
+                }
+              ];
+              matched = let
+                equals = a: b: b == anyString || a == b;
+                fallback = { name = "name"; };
+              in findFirst ({ path, ... }: all (v: v == true) (zipListsWith equals loc path)) fallback nameAttrs;
+              nameAttr = matched.name;
+              nameValueOld = value:
+                if isList value then
+                  if length value > 0 then
+                    "[ " + concatMapStringsSep " " escapeNixString value + " ]"
+                  else
+                    "[ ]"
+                else
+                  escapeNixString value;
+              nameValueNew = value: unnamed:
+                if isList value then
+                  if length value > 0 then
+                    head value
+                  else
+                    unnamed
+                else
+                  value;
               res =
                 { inherit (def) file;
                   value = listToAttrs (
                     imap1 (elemIdx: elem:
-                      { name  = elem.name or (unnamed elemIdx);
+                      { name  = nameValueNew (elem.${nameAttr} or (unnamed elemIdx)) (unnamed elemIdx);
                         value = elem;
                       }) def.value);
                 };
               option = concatStringsSep "." loc;
               sample = take 3 def.value;
-              list = concatMapStrings (x: ''{ name = "${x.name or "unnamed"}"; ...} '') sample;
-              set = concatMapStrings (x: ''${x.name or "unnamed"} = {...}; '') sample;
+              more = lib.optionalString (length def.value > 3) "... ";
+              list = concatMapStrings (x: ''{ ${nameAttr} = ${nameValueOld (x.${nameAttr} or "unnamed")}; ...} '') sample;
+              set = concatMapStrings (x: ''${nameValueNew (x.${nameAttr} or "unnamed") "unnamed"} = {...}; '') sample;
               msg = ''
                 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}...}
+                    { ${set}${more}}
                 instead of
                   ${option} =
-                    [ ${list}...]
+                    [ ${list}${more}]
               '';
             in
               lib.warn msg res
@@ -430,14 +480,16 @@ rec {
           else unify (if shorthandOnlyDefinesConfig then { config = value; } else value);
 
         allModules = defs: modules ++ imap1 (n: { value, file }:
-          # Annotate the value with the location of its definition for better error messages
-          coerce (lib.modules.unifyModuleSyntax file "${toString file}-${toString n}") value
+          if isAttrs value || isFunction value then
+            # Annotate the value with the location of its definition for better error messages
+            coerce (lib.modules.unifyModuleSyntax file "${toString file}-${toString n}") value
+          else value
         ) defs;
 
       in
       mkOptionType rec {
         name = "submodule";
-        check = x: isAttrs x || isFunction x;
+        check = x: isAttrs x || isFunction x || path.check x;
         merge = loc: defs:
           (evalModules {
             modules = allModules defs;
@@ -538,7 +590,7 @@ rec {
         tail' = tail ts;
       in foldl' either head' tail';
 
-    # Either value of type `finalType` or `coercedType`, the latter is
+    # Either value of type `coercedType` or `finalType`, the former is
     # converted to `finalType` using `coerceFunc`.
     coercedTo = coercedType: coerceFunc: finalType:
       assert lib.assertMsg (coercedType.getSubModules == null)
@@ -547,12 +599,12 @@ rec {
       mkOptionType rec {
         name = "coercedTo";
         description = "${finalType.description} or ${coercedType.description} convertible to it";
-        check = x: finalType.check x || (coercedType.check x && finalType.check (coerceFunc x));
+        check = x: (coercedType.check x && finalType.check (coerceFunc x)) || finalType.check x;
         merge = loc: defs:
           let
             coerceVal = val:
-              if finalType.check val then val
-              else coerceFunc val;
+              if coercedType.check val then coerceFunc val
+              else val;
           in finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs);
         emptyValue = finalType.emptyValue;
         getSubOptions = finalType.getSubOptions;
diff --git a/nixpkgs/maintainers/maintainer-list.nix b/nixpkgs/maintainers/maintainer-list.nix
index fc9991b42433..2730218f48f7 100644
--- a/nixpkgs/maintainers/maintainer-list.nix
+++ b/nixpkgs/maintainers/maintainer-list.nix
@@ -505,12 +505,24 @@
     githubId = 750786;
     name = "Justin Wood";
   };
+  anmonteiro = {
+    email = "anmonteiro@gmail.com";
+    github = "anmonteiro";
+    githubId = 661909;
+    name = "Antonio Nuno Monteiro";
+  };
   anpryl = {
     email = "anpryl@gmail.com";
     github = "anpryl";
     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";
@@ -1913,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";
@@ -2433,6 +2451,12 @@
     githubId = 844574;
     name = "Daniel Austin";
   };
+  flyfloh = {
+    email = "nix@halbmastwurf.de";
+    github = "flyfloh";
+    githubId = 74379;
+    name = "Florian Pester";
+  };
   fmthoma = {
     email = "f.m.thoma@googlemail.com";
     github = "fmthoma";
@@ -3498,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";
@@ -3832,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";
@@ -4141,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";
@@ -4430,6 +4464,12 @@
     githubId = 158568;
     name = "Matthias C. M. Troffaes";
   };
+  McSinyx = {
+    email = "vn.mcsinyx@gmail.com";
+    github = "McSinyx";
+    githubId = 13689192;
+    name = "Nguyễn Gia Phong";
+  };
   mdaiter = {
     email = "mdaiter8121@gmail.com";
     github = "mdaiter";
@@ -5070,6 +5110,12 @@
     githubId = 7588406;
     name = "Andrew R. M.";
   };
+  nloomans = {
+    email = "noah@nixos.noahloomans.com";
+    github = "nloomans";
+    githubId = 7829481;
+    name = "Noah Loomans";
+  };
   nmattia = {
     email = "nicolas@nmattia.com";
     github = "nmattia";
@@ -6236,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";
@@ -7014,6 +7066,11 @@
     github = "timbertson";
     name = "Tim Cuthbertson";
   };
+  timma = {
+    email = "kunduru.it.iitb@gmail.com";
+    github = "ktrsoft";
+    name = "Timma";
+  };
   timokau = {
     email = "timokau@zoho.com";
     github = "timokau";
@@ -7805,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/nixpkgs/nixos/doc/manual/configuration/declarative-packages.xml b/nixpkgs/nixos/doc/manual/configuration/declarative-packages.xml
index 5fb3bcb9f8f5..cd84d1951d24 100644
--- a/nixpkgs/nixos/doc/manual/configuration/declarative-packages.xml
+++ b/nixpkgs/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/nixpkgs/nixos/doc/manual/development/option-types.xml b/nixpkgs/nixos/doc/manual/development/option-types.xml
index 55d9c123e3f1..957349ad1811 100644
--- a/nixpkgs/nixos/doc/manual/development/option-types.xml
+++ b/nixpkgs/nixos/doc/manual/development/option-types.xml
@@ -257,9 +257,9 @@
     <listitem>
      <para>
       A set of sub options <replaceable>o</replaceable>.
-      <replaceable>o</replaceable> can be an attribute set or a function
-      returning an attribute set. Submodules are used in composed types to
-      create modular options. This is equivalent to
+      <replaceable>o</replaceable> can be an attribute set, a function
+      returning an attribute set, or a path to a file containing such a value. Submodules are used in
+      composed types to create modular options. This is equivalent to
       <literal>types.submoduleWith { modules = toList o; shorthandOnlyDefinesConfig = true; }</literal>.
       Submodules are detailed in
       <xref
diff --git a/nixpkgs/nixos/doc/manual/man-pages.xml b/nixpkgs/nixos/doc/manual/man-pages.xml
index f5a1dd2d69f4..49acfe7330b6 100644
--- a/nixpkgs/nixos/doc/manual/man-pages.xml
+++ b/nixpkgs/nixos/doc/manual/man-pages.xml
@@ -6,7 +6,7 @@
   <author><personname><firstname>Eelco</firstname><surname>Dolstra</surname></personname>
    <contrib>Author</contrib>
   </author>
-  <copyright><year>2007-2019</year><holder>Eelco Dolstra</holder>
+  <copyright><year>2007-2020</year><holder>Eelco Dolstra</holder>
   </copyright>
  </info>
  <xi:include href="man-configuration.xml" />
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml
index ca319dfea411..1eef4f08c4fd 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml
+++ b/nixpkgs/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>
@@ -391,6 +397,54 @@ users.users.me =
      <link xlink:href="https://github.com/NixOS/nixpkgs/pull/63103">PR #63103</link>.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     For NixOS modules, the types <literal>types.submodule</literal> and <literal>types.submoduleWith</literal> now support
+     paths as allowed values, similar to how <literal>imports</literal> supports paths.
+     Because of this, if you have a module that defines an option of type
+     <literal>either (submodule ...) path</literal>, it will break since a path
+     is now treated as the first type instead of the second. To fix this, change
+     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/nixpkgs/nixos/lib/test-driver/test-driver.py b/nixpkgs/nixos/lib/test-driver/test-driver.py
index 7e575189209a..cf204a2619f5 100644
--- a/nixpkgs/nixos/lib/test-driver/test-driver.py
+++ b/nixpkgs/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
@@ -704,7 +704,8 @@ class Machine:
 
         def process_serial_output() -> None:
             for _line in self.process.stdout:
-                line = _line.decode("unicode_escape").replace("\r", "").rstrip()
+                # Ignore undecodable bytes that may occur in boot menus
+                line = _line.decode(errors="ignore").replace("\r", "").rstrip()
                 eprint("{} # {}".format(self.name, line))
                 self.logger.enqueue({"msg": line, "machine": self.name})
 
@@ -841,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
@@ -879,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/nixpkgs/nixos/lib/testing-python.nix b/nixpkgs/nixos/lib/testing-python.nix
index 3d09be3b6cd5..a7f6d7926514 100644
--- a/nixpkgs/nixos/lib/testing-python.nix
+++ b/nixpkgs/nixos/lib/testing-python.nix
@@ -155,7 +155,7 @@ in rec {
             --add-flags "''${vms[*]}" \
             ${lib.optionalString enableOCR
               "--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \
-            --run "export testScript=\"\$(cat $out/test-script)\"" \
+            --run "export testScript=\"\$(${coreutils}/bin/cat $out/test-script)\"" \
             --set VLANS '${toString vlans}'
           ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
           wrapProgram $out/bin/nixos-run-vms \
diff --git a/nixpkgs/nixos/modules/hardware/opengl.nix b/nixpkgs/nixos/modules/hardware/opengl.nix
index 89dc5008df58..28cddea8b79c 100644
--- a/nixpkgs/nixos/modules/hardware/opengl.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/hardware/usb-wwan.nix b/nixpkgs/nixos/modules/hardware/usb-wwan.nix
index 2d20421586a7..679a6c6497cb 100644
--- a/nixpkgs/nixos/modules/hardware/usb-wwan.nix
+++ b/nixpkgs/nixos/modules/hardware/usb-wwan.nix
@@ -21,6 +21,19 @@ with lib;
   ###### implementation
 
   config = mkIf config.hardware.usbWwan.enable {
+    # Attaches device specific handlers.
     services.udev.packages = with pkgs; [ usb-modeswitch-data ];
+
+    # Triggered by udev, usb-modeswitch creates systemd services via a
+    # template unit in the usb-modeswitch package.
+    systemd.packages = with pkgs; [ usb-modeswitch ];
+
+    # The systemd service requires the usb-modeswitch-data. The
+    # usb-modeswitch package intends to discover this via the
+    # filesystem at /usr/share/usb_modeswitch, and merge it with user
+    # configuration in /etc/usb_modeswitch.d. Configuring the correct
+    # path in the package is difficult, as it would cause a cyclic
+    # dependency.
+    environment.etc."usb_modeswitch.d".source = "${pkgs.usb-modeswitch-data}/share/usb_modeswitch";
   };
 }
diff --git a/nixpkgs/nixos/modules/installer/tools/nixos-rebuild.sh b/nixpkgs/nixos/modules/installer/tools/nixos-rebuild.sh
index c53dc1000c4a..61b4af110273 100644
--- a/nixpkgs/nixos/modules/installer/tools/nixos-rebuild.sh
+++ b/nixpkgs/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/nixpkgs/nixos/modules/misc/version.nix b/nixpkgs/nixos/modules/misc/version.nix
index b85614771ee4..ddbd3963cc57 100644
--- a/nixpkgs/nixos/modules/misc/version.nix
+++ b/nixpkgs/nixos/modules/misc/version.nix
@@ -91,8 +91,8 @@ in
       # These defaults are set here rather than up there so that
       # changing them would not rebuild the manual
       version = mkDefault (cfg.release + cfg.versionSuffix);
-      revision      = mkIf (pathIsDirectory gitRepo) (mkDefault            gitCommitId);
-      versionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId));
+      revision      = mkIf (pathExists gitRepo) (mkDefault            gitCommitId);
+      versionSuffix = mkIf (pathExists gitRepo) (mkDefault (".git." + gitCommitId));
     };
 
     # Generate /etc/os-release.  See
diff --git a/nixpkgs/nixos/modules/module-list.nix b/nixpkgs/nixos/modules/module-list.nix
index 105c86c6ba52..58628cf8c0bd 100644
--- a/nixpkgs/nixos/modules/module-list.nix
+++ b/nixpkgs/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
@@ -579,6 +580,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
@@ -737,6 +739,7 @@
   ./services/networking/wicd.nix
   ./services/networking/wireguard.nix
   ./services/networking/wpa_supplicant.nix
+  ./services/networking/xandikos.nix
   ./services/networking/xinetd.nix
   ./services/networking/xl2tpd.nix
   ./services/networking/xrdp.nix
@@ -871,7 +874,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/nixpkgs/nixos/modules/programs/liboping.nix b/nixpkgs/nixos/modules/programs/liboping.nix
new file mode 100644
index 000000000000..4e4c235ccde4
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/nixos/modules/programs/traceroute.nix b/nixpkgs/nixos/modules/programs/traceroute.nix
new file mode 100644
index 000000000000..4eb0be3f0e0b
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/nixos/modules/programs/way-cooler.nix b/nixpkgs/nixos/modules/programs/way-cooler.nix
deleted file mode 100644
index f27bd42bd764..000000000000
--- a/nixpkgs/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/nixpkgs/nixos/modules/rename.nix b/nixpkgs/nixos/modules/rename.nix
index 7109ab5a1099..26de8a18d922 100644
--- a/nixpkgs/nixos/modules/rename.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/amqp/rabbitmq.nix b/nixpkgs/nixos/modules/services/amqp/rabbitmq.nix
index 697732426ccf..35fb49f709a6 100644
--- a/nixpkgs/nixos/modules/services/amqp/rabbitmq.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
index 733479e24c97..4275563f1a36 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix
index 326d2cbd82cc..e3da3092d459 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix
@@ -222,7 +222,7 @@ in {
   };
 
   config = mkIf cfg.enable {
-    users.groups = optional (cfg.group == "buildbot") {
+    users.groups = optionalAttrs (cfg.group == "buildbot") {
       buildbot = { };
     };
 
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
index 7613692f0a34..52f24b8cee3c 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -136,7 +136,7 @@ in {
   config = mkIf cfg.enable {
     services.buildbot-worker.workerPassFile = mkDefault (pkgs.writeText "buildbot-worker-password" cfg.workerPass);
 
-    users.groups = optional (cfg.group == "bbworker") {
+    users.groups = optionalAttrs (cfg.group == "bbworker") {
       bbworker = { };
     };
 
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agent.nix b/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agent.nix
index 32f361454bc1..58bce6549414 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agent.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix b/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
index 30c5550f71c5..8b56207590a1 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/continuous-integration/jenkins/slave.nix b/nixpkgs/nixos/modules/services/continuous-integration/jenkins/slave.nix
index 26368cb94e47..3c0e6f78e74c 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/jenkins/slave.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/jenkins/slave.nix
@@ -50,7 +50,7 @@ in {
   };
 
   config = mkIf (cfg.enable && !masterCfg.enable) {
-    users.groups = optional (cfg.group == "jenkins") {
+    users.groups = optionalAttrs (cfg.group == "jenkins") {
       jenkins.gid = config.ids.gids.jenkins;
     };
 
diff --git a/nixpkgs/nixos/modules/services/databases/openldap.nix b/nixpkgs/nixos/modules/services/databases/openldap.nix
index 5bf57a1bf9cb..809f61cfa818 100644
--- a/nixpkgs/nixos/modules/services/databases/openldap.nix
+++ b/nixpkgs/nixos/modules/services/databases/openldap.nix
@@ -259,6 +259,8 @@ in
           ${openldap.out}/bin/slapadd ${configOpts} -l ${dataFile}
         ''}
         chown -R "${cfg.user}:${cfg.group}" "${cfg.dataDir}"
+
+        ${openldap}/bin/slaptest ${configOpts}
       '';
       serviceConfig.ExecStart =
         "${openldap.out}/libexec/slapd -d '${cfg.logLevel}' " +
diff --git a/nixpkgs/nixos/modules/services/hardware/usbmuxd.nix b/nixpkgs/nixos/modules/services/hardware/usbmuxd.nix
index 50b931dcb487..11a4b0a858f9 100644
--- a/nixpkgs/nixos/modules/services/hardware/usbmuxd.nix
+++ b/nixpkgs/nixos/modules/services/hardware/usbmuxd.nix
@@ -51,7 +51,7 @@ in
       };
     };
 
-    users.groups = optional (cfg.group == defaultUserGroup) {
+    users.groups = optionalAttrs (cfg.group == defaultUserGroup) {
       ${cfg.group} = { };
     };
 
diff --git a/nixpkgs/nixos/modules/services/mail/postfix.nix b/nixpkgs/nixos/modules/services/mail/postfix.nix
index d7378821440d..19e11b31d9ca 100644
--- a/nixpkgs/nixos/modules/services/mail/postfix.nix
+++ b/nixpkgs/nixos/modules/services/mail/postfix.nix
@@ -612,10 +612,7 @@ in
     {
 
       environment = {
-        etc = singleton
-          { source = "/var/lib/postfix/conf";
-            target = "postfix";
-          };
+        etc.postfix.source = "/var/lib/postfix/conf";
 
         # This makes it comfortable to run 'postqueue/postdrop' for example.
         systemPackages = [ pkgs.postfix ];
diff --git a/nixpkgs/nixos/modules/services/misc/gitea.nix b/nixpkgs/nixos/modules/services/misc/gitea.nix
index 258476dd9feb..38910a5a005d 100644
--- a/nixpkgs/nixos/modules/services/misc/gitea.nix
+++ b/nixpkgs/nixos/modules/services/misc/gitea.nix
@@ -364,7 +364,7 @@ in
           ''}
           sed -e "s,#secretkey#,$KEY,g" \
               -e "s,#dbpass#,$DBPASS,g" \
-              -e "s,#jwtsecet#,$JWTSECET,g" \
+              -e "s,#jwtsecret#,$JWTSECRET,g" \
               -e "s,#mailerpass#,$MAILERPASSWORD,g" \
               -i ${runConfig}
           chmod 640 ${runConfig} ${secretKey} ${jwtSecret}
diff --git a/nixpkgs/nixos/modules/services/misc/paperless.nix b/nixpkgs/nixos/modules/services/misc/paperless.nix
index 3985dc0b303c..bfaf760fb836 100644
--- a/nixpkgs/nixos/modules/services/misc/paperless.nix
+++ b/nixpkgs/nixos/modules/services/misc/paperless.nix
@@ -123,9 +123,9 @@ in
   config = mkIf cfg.enable {
 
     systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' - ${cfg.user} ${cfg.user} - -"
+      "d '${cfg.dataDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
     ] ++ (optional cfg.consumptionDirIsPublic
-      "d '${cfg.consumptionDir}' 777 ${cfg.user} ${cfg.user} - -"
+      "d '${cfg.consumptionDir}' 777 - - - -"
       # If the consumption dir is not created here, it's automatically created by
       # 'manage' with the default permissions.
     );
@@ -169,17 +169,15 @@ in
     };
 
     users = optionalAttrs (cfg.user == defaultUser) {
-      users = [{
-        name = defaultUser;
+      users.${defaultUser} = {
         group = defaultUser;
         uid = config.ids.uids.paperless;
         home = cfg.dataDir;
-      }];
+      };
 
-      groups = [{
-        name = defaultUser;
+      groups.${defaultUser} = {
         gid = config.ids.gids.paperless;
-      }];
+      };
     };
   };
 }
diff --git a/nixpkgs/nixos/modules/services/networking/corerad.nix b/nixpkgs/nixos/modules/services/networking/corerad.nix
new file mode 100644
index 000000000000..1a2c4aec6651
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/networking/matterbridge.nix b/nixpkgs/nixos/modules/services/networking/matterbridge.nix
index bad35133459a..b8b4f37c84a8 100644
--- a/nixpkgs/nixos/modules/services/networking/matterbridge.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/networking/ndppd.nix b/nixpkgs/nixos/modules/services/networking/ndppd.nix
index 92088623517f..e015f76f622b 100644
--- a/nixpkgs/nixos/modules/services/networking/ndppd.nix
+++ b/nixpkgs/nixos/modules/services/networking/ndppd.nix
@@ -161,7 +161,25 @@ in {
       documentation = [ "man:ndppd(1)" "man:ndppd.conf(5)" ];
       after = [ "network-pre.target" ];
       wantedBy = [ "multi-user.target" ];
-      serviceConfig.ExecStart = "${pkgs.ndppd}/bin/ndppd -c ${ndppdConf}";
+      serviceConfig = {
+        ExecStart = "${pkgs.ndppd}/bin/ndppd -c ${ndppdConf}";
+
+        # Sandboxing
+        CapabilityBoundingSet = "CAP_NET_RAW CAP_NET_ADMIN";
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        RestrictAddressFamilies = "AF_INET6 AF_PACKET AF_NETLINK";
+        RestrictNamespaces = true;
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+      };
     };
   };
 }
diff --git a/nixpkgs/nixos/modules/services/networking/syncthing.nix b/nixpkgs/nixos/modules/services/networking/syncthing.nix
index 47b10e408c02..5b3eb6f04b42 100644
--- a/nixpkgs/nixos/modules/services/networking/syncthing.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix b/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
index 8f05c3949fba..de0f11595a94 100644
--- a/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
@@ -233,6 +233,7 @@ in {
       path = [ pkgs.wpa_supplicant ];
 
       script = ''
+        iface_args="-s -u -D${cfg.driver} -c ${configFile}"
         ${if ifaces == [] then ''
           for i in $(cd /sys/class/net && echo *); do
             DEVTYPE=
@@ -240,14 +241,14 @@ in {
             if [ -e "$UEVENT_PATH" ]; then
               source "$UEVENT_PATH"
               if [ "$DEVTYPE" = "wlan" -o -e /sys/class/net/$i/wireless ]; then
-                ifaces="$ifaces''${ifaces:+ -N} -i$i"
+                args+="''${args:+ -N} -i$i $iface_args"
               fi
             fi
           done
         '' else ''
-          ifaces="${concatStringsSep " -N " (map (i: "-i${i}") ifaces)}"
+          args="${concatMapStringsSep " -N " (i: "-i${i} $iface_args") ifaces}"
         ''}
-        exec wpa_supplicant -s -u -D${cfg.driver} -c ${configFile} $ifaces
+        exec wpa_supplicant $args
       '';
     };
 
diff --git a/nixpkgs/nixos/modules/services/networking/xandikos.nix b/nixpkgs/nixos/modules/services/networking/xandikos.nix
new file mode 100644
index 000000000000..87c029156b9e
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/xandikos.nix
@@ -0,0 +1,148 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.xandikos;
+in
+{
+
+  options = {
+    services.xandikos = {
+      enable = mkEnableOption "Xandikos CalDAV and CardDAV server";
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.xandikos;
+        defaultText = "pkgs.xandikos";
+        description = "The Xandikos package to use.";
+      };
+
+      address = mkOption {
+        type = types.str;
+        default = "localhost";
+        description = ''
+          The IP address on which Xandikos will listen.
+          By default listens on localhost.
+        '';
+      };
+
+      port = mkOption {
+        type = types.port;
+        default = 8080;
+        description = "The port of the Xandikos web application";
+      };
+
+      routePrefix = mkOption {
+        type = types.str;
+        default = "/";
+        description = ''
+          Path to Xandikos.
+          Useful when Xandikos is behind a reverse proxy.
+        '';
+      };
+
+      extraOptions = mkOption {
+        default = [];
+        type = types.listOf types.str;
+        example = literalExample ''
+          [ "--autocreate"
+            "--defaults"
+            "--current-user-principal user"
+            "--dump-dav-xml"
+          ]
+        '';
+        description = ''
+          Extra command line arguments to pass to xandikos.
+        '';
+      };
+
+      nginx = mkOption {
+        default = {};
+        description = ''
+          Configuration for nginx reverse proxy.
+        '';
+
+        type = types.submodule {
+          options = {
+            enable = mkOption {
+              type = types.bool;
+              default = false;
+              description = ''
+                Configure the nginx reverse proxy settings.
+              '';
+            };
+
+            hostName = mkOption {
+              type = types.str;
+              description = ''
+                The hostname use to setup the virtualhost configuration
+              '';
+            };
+          };
+        };
+      };
+
+    };
+
+  };
+
+  config = mkIf cfg.enable (
+    mkMerge [
+      {
+        meta.maintainers = [ lib.maintainers."0x4A6F" ];
+
+        systemd.services.xandikos = {
+          description = "A Simple Calendar and Contact Server";
+          after = [ "network.target" ];
+          wantedBy = [ "multi-user.target" ];
+
+          serviceConfig = {
+            User = "xandikos";
+            Group = "xandikos";
+            DynamicUser = "yes";
+            RuntimeDirectory = "xandikos";
+            StateDirectory = "xandikos";
+            StateDirectoryMode = "0700";
+            PrivateDevices = true;
+            # Sandboxing
+            CapabilityBoundingSet = "CAP_NET_RAW CAP_NET_ADMIN";
+            ProtectSystem = "strict";
+            ProtectHome = true;
+            PrivateTmp = true;
+            ProtectKernelTunables = true;
+            ProtectKernelModules = true;
+            ProtectControlGroups = true;
+            RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX AF_PACKET AF_NETLINK";
+            RestrictNamespaces = true;
+            LockPersonality = true;
+            MemoryDenyWriteExecute = true;
+            RestrictRealtime = true;
+            RestrictSUIDSGID = true;
+            ExecStart = ''
+              ${cfg.package}/bin/xandikos \
+                --directory /var/lib/xandikos \
+                --listen_address ${cfg.address} \
+                --port ${toString cfg.port} \
+                --route-prefix ${cfg.routePrefix} \
+                ${lib.concatStringsSep " " cfg.extraOptions}
+            '';
+          };
+        };
+      }
+
+      (
+        mkIf cfg.nginx.enable {
+          services.nginx = {
+            enable = true;
+            virtualHosts."${cfg.nginx.hostName}" = {
+              locations."/" = {
+                proxyPass = "http://${cfg.address}:${toString cfg.port}/";
+              };
+            };
+          };
+        }
+      )
+    ]
+  );
+}
diff --git a/nixpkgs/nixos/modules/services/networking/zerotierone.nix b/nixpkgs/nixos/modules/services/networking/zerotierone.nix
index 764af3846fe5..069e15a909b7 100644
--- a/nixpkgs/nixos/modules/services/networking/zerotierone.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/security/certmgr.nix b/nixpkgs/nixos/modules/services/security/certmgr.nix
index e89078883ebe..94c0ba141179 100644
--- a/nixpkgs/nixos/modules/services/security/certmgr.nix
+++ b/nixpkgs/nixos/modules/services/security/certmgr.nix
@@ -113,7 +113,7 @@ in
         otherCert = "/var/certmgr/specs/other-cert.json";
       }
       '';
-      type = with types; attrsOf (either (submodule {
+      type = with types; attrsOf (either path (submodule {
         options = {
           service = mkOption {
             type = nullOr str;
@@ -148,7 +148,7 @@ in
             description = "certmgr spec request object.";
           };
         };
-    }) path);
+    }));
       description = ''
         Certificate specs as described by:
         <link xlink:href="https://github.com/cloudflare/certmgr#certificate-specs" />
diff --git a/nixpkgs/nixos/modules/services/torrent/transmission.nix b/nixpkgs/nixos/modules/services/torrent/transmission.nix
index aa1acdf7d20b..5ba72e8d7730 100644
--- a/nixpkgs/nixos/modules/services/torrent/transmission.nix
+++ b/nixpkgs/nixos/modules/services/torrent/transmission.nix
@@ -129,19 +129,23 @@ in
     # It's useful to have transmission in path, e.g. for remote control
     environment.systemPackages = [ pkgs.transmission ];
 
-    users.users = optionalAttrs (cfg.user == "transmission") (singleton
-      { name = "transmission";
+    users.users = optionalAttrs (cfg.user == "transmission") ({
+      transmission = {
+        name = "transmission";
         group = cfg.group;
         uid = config.ids.uids.transmission;
         description = "Transmission BitTorrent user";
         home = homeDir;
         createHome = true;
-      });
+      };
+    });
 
-    users.groups = optionalAttrs (cfg.group == "transmission") (singleton
-      { name = "transmission";
+    users.groups = optionalAttrs (cfg.group == "transmission") ({
+      transmission = {
+        name = "transmission";
         gid = config.ids.gids.transmission;
-      });
+      };
+    });
 
     # AppArmor profile
     security.apparmor.profiles = mkIf apparmor [
diff --git a/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
index 4460f89ec5c1..fd17e4b54f0f 100644
--- a/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/web-servers/nginx/gitweb.nix b/nixpkgs/nixos/modules/services/web-servers/nginx/gitweb.nix
index 272fd1480185..f7fb07bb7975 100644
--- a/nixpkgs/nixos/modules/services/web-servers/nginx/gitweb.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/web-servers/unit/default.nix b/nixpkgs/nixos/modules/services/web-servers/unit/default.nix
index 2303dfa95404..b0b837cd1929 100644
--- a/nixpkgs/nixos/modules/services/web-servers/unit/default.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix
index 6d9bd284bc72..ba9906072b3f 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix b/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
index 2f8c8cc90137..325023f4121a 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/services/x11/hardware/multitouch.nix b/nixpkgs/nixos/modules/services/x11/hardware/multitouch.nix
deleted file mode 100644
index c03bb3b494fb..000000000000
--- a/nixpkgs/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/nixpkgs/nixos/modules/services/x11/unclutter.nix b/nixpkgs/nixos/modules/services/x11/unclutter.nix
index 2478aaabb799..c0868604a688 100644
--- a/nixpkgs/nixos/modules/services/x11/unclutter.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/system/boot/networkd.nix b/nixpkgs/nixos/modules/system/boot/networkd.nix
index 3e289a63139f..56a9d6b11380 100644
--- a/nixpkgs/nixos/modules/system/boot/networkd.nix
+++ b/nixpkgs/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/nixpkgs/nixos/modules/system/boot/systemd-lib.nix b/nixpkgs/nixos/modules/system/boot/systemd-lib.nix
index 28ad4f121bbe..fd1a5b9f62c5 100644
--- a/nixpkgs/nixos/modules/system/boot/systemd-lib.nix
+++ b/nixpkgs/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/nixpkgs/nixos/tests/all-tests.nix b/nixpkgs/nixos/tests/all-tests.nix
index fe9c4df1416f..eb69457fb7e9 100644
--- a/nixpkgs/nixos/tests/all-tests.nix
+++ b/nixpkgs/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 {};
@@ -295,6 +297,7 @@ in
   wireguard-generated = handleTest ./wireguard/generated.nix {};
   wireguard-namespaces = handleTest ./wireguard/namespaces.nix {};
   wordpress = handleTest ./wordpress.nix {};
+  xandikos = handleTest ./xandikos.nix {};
   xautolock = handleTest ./xautolock.nix {};
   xfce = handleTest ./xfce.nix {};
   xmonad = handleTest ./xmonad.nix {};
diff --git a/nixpkgs/nixos/tests/bittorrent.nix b/nixpkgs/nixos/tests/bittorrent.nix
index e5be652c7112..0a97d5556a26 100644
--- a/nixpkgs/nixos/tests/bittorrent.nix
+++ b/nixpkgs/nixos/tests/bittorrent.nix
@@ -18,6 +18,17 @@ let
   externalRouterAddress = "80.100.100.1";
   externalClient2Address = "80.100.100.2";
   externalTrackerAddress = "80.100.100.3";
+
+  transmissionConfig = { ... }: {
+    environment.systemPackages = [ pkgs.transmission ];
+    services.transmission = {
+      enable = true;
+      settings = {
+        dht-enabled = false;
+        message-level = 3;
+      };
+    };
+  };
 in
 
 {
@@ -26,88 +37,79 @@ in
     maintainers = [ domenkozar eelco rob bobvanderlinden ];
   };
 
-  nodes =
-    { tracker =
-        { pkgs, ... }:
-        { environment.systemPackages = [ pkgs.transmission ];
-
-          virtualisation.vlans = [ 1 ];
-          networking.interfaces.eth1.ipv4.addresses = [
-            { address = externalTrackerAddress; prefixLength = 24; }
-          ];
-
-          # We need Apache on the tracker to serve the torrents.
-          services.httpd.enable = true;
-          services.httpd.adminAddr = "foo@example.org";
-          services.httpd.documentRoot = "/tmp";
-
-          networking.firewall.enable = false;
-
-          services.opentracker.enable = true;
-
-          services.transmission.enable = true;
-          services.transmission.settings.dht-enabled = false;
-          services.transmission.settings.port-forwaring-enabled = false;
-        };
-
-      router =
-        { pkgs, nodes, ... }:
-        { virtualisation.vlans = [ 1 2 ];
-          networking.nat.enable = true;
-          networking.nat.internalInterfaces = [ "eth2" ];
-          networking.nat.externalInterface = "eth1";
-          networking.firewall.enable = true;
-          networking.firewall.trustedInterfaces = [ "eth2" ];
-          networking.interfaces.eth0.ipv4.addresses = [];
-          networking.interfaces.eth1.ipv4.addresses = [
-            { address = externalRouterAddress; prefixLength = 24; }
-          ];
-          networking.interfaces.eth2.ipv4.addresses = [
-            { address = internalRouterAddress; prefixLength = 24; }
-          ];
-          services.miniupnpd = {
-            enable = true;
-            externalInterface = "eth1";
-            internalIPs = [ "eth2" ];
-            appendConfig = ''
-              ext_ip=${externalRouterAddress}
-            '';
+  nodes = {
+    tracker = { pkgs, ... }: {
+      imports = [ transmissionConfig ];
+
+      virtualisation.vlans = [ 1 ];
+      networking.firewall.enable = false;
+      networking.interfaces.eth1.ipv4.addresses = [
+        { address = externalTrackerAddress; prefixLength = 24; }
+      ];
+
+      # We need Apache on the tracker to serve the torrents.
+      services.httpd = {
+        enable = true;
+        virtualHosts = {
+          "torrentserver.org" = {
+            adminAddr = "foo@example.org";
+            documentRoot = "/tmp";
           };
         };
+      };
+      services.opentracker.enable = true;
+    };
 
-      client1 =
-        { pkgs, nodes, ... }:
-        { environment.systemPackages = [ pkgs.transmission pkgs.miniupnpc ];
-          virtualisation.vlans = [ 2 ];
-          networking.interfaces.eth0.ipv4.addresses = [];
-          networking.interfaces.eth1.ipv4.addresses = [
-            { address = internalClient1Address; prefixLength = 24; }
-          ];
-          networking.defaultGateway = internalRouterAddress;
-          networking.firewall.enable = false;
-          services.transmission.enable = true;
-          services.transmission.settings.dht-enabled = false;
-          services.transmission.settings.message-level = 3;
-        };
+    router = { pkgs, nodes, ... }: {
+      virtualisation.vlans = [ 1 2 ];
+      networking.nat.enable = true;
+      networking.nat.internalInterfaces = [ "eth2" ];
+      networking.nat.externalInterface = "eth1";
+      networking.firewall.enable = true;
+      networking.firewall.trustedInterfaces = [ "eth2" ];
+      networking.interfaces.eth0.ipv4.addresses = [];
+      networking.interfaces.eth1.ipv4.addresses = [
+        { address = externalRouterAddress; prefixLength = 24; }
+      ];
+      networking.interfaces.eth2.ipv4.addresses = [
+        { address = internalRouterAddress; prefixLength = 24; }
+      ];
+      services.miniupnpd = {
+        enable = true;
+        externalInterface = "eth1";
+        internalIPs = [ "eth2" ];
+        appendConfig = ''
+          ext_ip=${externalRouterAddress}
+        '';
+      };
+    };
 
-      client2 =
-        { pkgs, ... }:
-        { environment.systemPackages = [ pkgs.transmission ];
-          virtualisation.vlans = [ 1 ];
-          networking.interfaces.eth0.ipv4.addresses = [];
-          networking.interfaces.eth1.ipv4.addresses = [
-            { address = externalClient2Address; prefixLength = 24; }
-          ];
-          networking.firewall.enable = false;
-          services.transmission.enable = true;
-          services.transmission.settings.dht-enabled = false;
-          services.transmission.settings.port-forwaring-enabled = false;
-        };
+    client1 = { pkgs, nodes, ... }: {
+      imports = [ transmissionConfig ];
+      environment.systemPackages = [ pkgs.miniupnpc ];
+
+      virtualisation.vlans = [ 2 ];
+      networking.interfaces.eth0.ipv4.addresses = [];
+      networking.interfaces.eth1.ipv4.addresses = [
+        { address = internalClient1Address; prefixLength = 24; }
+      ];
+      networking.defaultGateway = internalRouterAddress;
+      networking.firewall.enable = false;
     };
 
-  testScript =
-    { nodes, ... }:
-    ''
+    client2 = { pkgs, ... }: {
+      imports = [ transmissionConfig ];
+
+      virtualisation.vlans = [ 1 ];
+      networking.interfaces.eth0.ipv4.addresses = [];
+      networking.interfaces.eth1.ipv4.addresses = [
+        { address = externalClient2Address; prefixLength = 24; }
+      ];
+      networking.firewall.enable = false;
+    };
+  };
+
+  testScript = { nodes, ... }: ''
       start_all()
 
       # Wait for network and miniupnpd.
@@ -159,5 +161,4 @@ in
           "cmp /tmp/test.tar.bz2 ${file}"
       )
     '';
-
 })
diff --git a/nixpkgs/nixos/tests/buildkite-agent.nix b/nixpkgs/nixos/tests/buildkite-agent.nix
new file mode 100644
index 000000000000..3c824c9aedf5
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/nixos/tests/certmgr.nix b/nixpkgs/nixos/tests/certmgr.nix
index cb69f35e862f..ef32f54400e3 100644
--- a/nixpkgs/nixos/tests/certmgr.nix
+++ b/nixpkgs/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/nixpkgs/nixos/tests/corerad.nix b/nixpkgs/nixos/tests/corerad.nix
new file mode 100644
index 000000000000..68b698857b4e
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/nixos/tests/elk.nix b/nixpkgs/nixos/tests/elk.nix
index 80db0967d400..d3dc6dde1359 100644
--- a/nixpkgs/nixos/tests/elk.nix
+++ b/nixpkgs/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/nixpkgs/nixos/tests/xandikos.nix b/nixpkgs/nixos/tests/xandikos.nix
new file mode 100644
index 000000000000..0fded20ff1a9
--- /dev/null
+++ b/nixpkgs/nixos/tests/xandikos.nix
@@ -0,0 +1,70 @@
+import ./make-test-python.nix (
+  { pkgs, lib, ... }:
+
+    {
+      name = "xandikos";
+
+      meta.maintainers = [ lib.maintainers."0x4A6F" ];
+
+      nodes = {
+        xandikos_client = {};
+        xandikos_default = {
+          networking.firewall.allowedTCPPorts = [ 8080 ];
+          services.xandikos.enable = true;
+        };
+        xandikos_proxy = {
+          networking.firewall.allowedTCPPorts = [ 80 8080 ];
+          services.xandikos.enable = true;
+          services.xandikos.address = "localhost";
+          services.xandikos.port = 8080;
+          services.xandikos.routePrefix = "/xandikos/";
+          services.xandikos.extraOptions = [
+            "--defaults"
+          ];
+          services.nginx = {
+            enable = true;
+            recommendedProxySettings = true;
+            virtualHosts."xandikos" = {
+              serverName = "xandikos.local";
+              basicAuth.xandikos = "snakeOilPassword";
+              locations."/xandikos/" = {
+                proxyPass = "http://localhost:8080/";
+              };
+            };
+          };
+        };
+      };
+
+      testScript = ''
+        start_all()
+
+        with subtest("Xandikos default"):
+            xandikos_default.wait_for_unit("multi-user.target")
+            xandikos_default.wait_for_unit("xandikos.service")
+            xandikos_default.wait_for_open_port(8080)
+            xandikos_default.succeed("curl --fail http://localhost:8080/")
+            xandikos_default.succeed(
+                "curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos"
+            )
+            xandikos_client.wait_for_unit("network.target")
+            xandikos_client.fail("curl --fail http://xandikos_default:8080/")
+
+        with subtest("Xandikos proxy"):
+            xandikos_proxy.wait_for_unit("multi-user.target")
+            xandikos_proxy.wait_for_unit("xandikos.service")
+            xandikos_proxy.wait_for_open_port(8080)
+            xandikos_proxy.succeed("curl --fail http://localhost:8080/")
+            xandikos_proxy.succeed(
+                "curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos"
+            )
+            xandikos_client.wait_for_unit("network.target")
+            xandikos_client.fail("curl --fail http://xandikos_proxy:8080/")
+            xandikos_client.succeed(
+                "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/ | grep -qi Xandikos"
+            )
+            xandikos_client.succeed(
+                "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/user/ | grep -qi Xandikos"
+            )
+      '';
+    }
+)
diff --git a/nixpkgs/pkgs/applications/audio/bshapr/default.nix b/nixpkgs/pkgs/applications/audio/bshapr/default.nix
index 732a8cf1ce2f..88a671495c38 100644
--- a/nixpkgs/pkgs/applications/audio/bshapr/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/bslizr/default.nix b/nixpkgs/pkgs/applications/audio/bslizr/default.nix
index 3273d7de68c2..97a9d60ec277 100644
--- a/nixpkgs/pkgs/applications/audio/bslizr/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/distrho/default.nix b/nixpkgs/pkgs/applications/audio/distrho/default.nix
index 0d2858713eba..53d5330fb741 100644
--- a/nixpkgs/pkgs/applications/audio/distrho/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/ecasound/default.nix b/nixpkgs/pkgs/applications/audio/ecasound/default.nix
index 6c9cd628a518..c17f6b745b37 100644
--- a/nixpkgs/pkgs/applications/audio/ecasound/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/giada/default.nix b/nixpkgs/pkgs/applications/audio/giada/default.nix
index 8907011c16fb..eff1d6411a15 100644
--- a/nixpkgs/pkgs/applications/audio/giada/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/ingen/default.nix b/nixpkgs/pkgs/applications/audio/ingen/default.nix
index 1e249b51fb76..9d3fb6aae40b 100644
--- a/nixpkgs/pkgs/applications/audio/ingen/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/jalv/default.nix b/nixpkgs/pkgs/applications/audio/jalv/default.nix
index a40d5101b34f..51ec102dbfd2 100644
--- a/nixpkgs/pkgs/applications/audio/jalv/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix b/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix
index 61f2bc33f7f7..6c4170cf0fb6 100644
--- a/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fftwSinglePrec, lv2, pkgconfig, python, wafHook }:
+{ stdenv, fetchurl, fftwSinglePrec, lv2, pkgconfig, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "mda-lv2";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig wafHook ];
-  buildInputs = [ fftwSinglePrec lv2 python ];
+  buildInputs = [ fftwSinglePrec lv2 ];
 
   meta = with stdenv.lib; {
     homepage = http://drobilla.net/software/mda-lv2/;
diff --git a/nixpkgs/pkgs/applications/audio/noise-repellent/default.nix b/nixpkgs/pkgs/applications/audio/noise-repellent/default.nix
index 146e13f34de1..bc5b35396e23 100644
--- a/nixpkgs/pkgs/applications/audio/noise-repellent/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix b/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix
index fee86cb5bcae..d07cf8a476b5 100644
--- a/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, pkgconfig, intltool, libpulseaudio, gtkmm3
-, libcanberra-gtk3, makeWrapper, gnome3 }:
+, libcanberra-gtk3, gnome3, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "pavucontrol";
@@ -10,16 +10,10 @@ stdenv.mkDerivation rec {
     sha256 = "1qhlkl3g8d7h72xjskii3g1l7la2cavwp69909pzmbi2jyn5pi4g";
   };
 
-  preFixup = ''
-    wrapProgram "$out/bin/pavucontrol" \
-     --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-     --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
-  '';
-
-  buildInputs = [ libpulseaudio gtkmm3 libcanberra-gtk3 makeWrapper
+  buildInputs = [ libpulseaudio gtkmm3 libcanberra-gtk3
                   gnome3.adwaita-icon-theme ];
 
-  nativeBuildInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
 
   configureFlags = [ "--disable-lynx" ];
 
diff --git a/nixpkgs/pkgs/applications/audio/qtractor/default.nix b/nixpkgs/pkgs/applications/audio/qtractor/default.nix
index 46dafb72c412..4076692e7fe7 100644
--- a/nixpkgs/pkgs/applications/audio/qtractor/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qtractor/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "qtractor";
-  version = "0.9.11";
+  version = "0.9.12";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "02cpjlf3j4sm74hz88r1frnlycs52rs11mzplr2q8plji3ic5w50";
+    sha256 = "06493sf4hr178jkvric3rmc2phh1ph2jlyh8kl9z248amq3zfnhy";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix b/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix
index 9def4a292f61..97c737675ad8 100644
--- a/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/rosegarden/default.nix b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
index 7c4cefb6ba4b..aaceab6dc084 100644
--- a/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/audio/spotifyd/default.nix b/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
index 36ab017c5cbb..b80638110306 100644
--- a/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "spotifyd";
-  version = "0.2.20";
+  version = "0.2.23";
 
   src = fetchFromGitHub {
     owner = "Spotifyd";
     repo = "spotifyd";
     rev = "v${version}";
-    sha256 = "1hf4wpk7r0s4jpjhxaz67y1hd8jx9ns5imd85r3cdg4lxf3j5gph";
+    sha256 = "0xxr21avgr4pvlr5vgb68jmad5xy5kqvaxfzh0qn1jpiax7y3avm";
   };
 
-  cargoSha256 = "1h3fis47hmxvppiv1icjhgp48nd46gayfcmzfjs34q6jask90n0w";
+  cargoSha256 = "1ykmn7zzwn9my96bbxwkparab5lck1zzdkpafil2mmrjyvyi40da";
 
   cargoBuildFlags = [
     "--no-default-features"
diff --git a/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
index 9599dc9407c3..6b9630fa6b70 100644
--- a/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/editors/bviplus/default.nix b/nixpkgs/pkgs/applications/editors/bviplus/default.nix
index 7d70ad14b5db..5fab7fe9da62 100644
--- a/nixpkgs/pkgs/applications/editors/bviplus/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
index 364d432f1e34..dea00c99d7e0 100644
--- a/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
index bfbddb6fc37c..9d4fb66f7322 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -3236,10 +3236,10 @@
       elpaBuild {
         pname = "undo-tree";
         ename = "undo-tree";
-        version = "0.7";
+        version = "0.7.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/undo-tree-0.7.el";
-          sha256 = "0mc5spiqx20z8vh8b24dp9hqj27h5bm5wqk0ga7c6s6mp69r72h4";
+          url = "https://elpa.gnu.org/packages/undo-tree-0.7.2.el";
+          sha256 = "0gdqh5rkgwlancbjx5whgl5gqkdipdkspkl2bqmrq70sgg5ahrcc";
         };
         packageRequires = [];
         meta = {
@@ -3734,4 +3734,4 @@
           license = lib.licenses.free;
         };
       }) {};
-  }
\ No newline at end of file
+  }
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index e15da80b3b1b..5c9456b76a63 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -111,6 +111,11 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
 
         flycheck-rtags = fix-rtags super.flycheck-rtags;
 
+        gnuplot = super.gnuplot.overrideAttrs (old: {
+          nativeBuildInputs =
+            (old.nativeBuildInputs or []) ++ [ pkgs.autoreconfHook ];
+        });
+
         pdf-tools = super.pdf-tools.overrideAttrs(old: {
           nativeBuildInputs = [ external.pkgconfig ];
           buildInputs = with external; old.buildInputs ++ [ autoconf automake libpng zlib poppler ];
diff --git a/nixpkgs/pkgs/applications/editors/focuswriter/default.nix b/nixpkgs/pkgs/applications/editors/focuswriter/default.nix
index b08e3b5fa23c..ccda1b4d4cbd 100644
--- a/nixpkgs/pkgs/applications/editors/focuswriter/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/editors/kakoune/default.nix b/nixpkgs/pkgs/applications/editors/kakoune/default.nix
index a6580581f850..8cb70af40e06 100644
--- a/nixpkgs/pkgs/applications/editors/kakoune/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/editors/neovim/qt.nix b/nixpkgs/pkgs/applications/editors/neovim/qt.nix
index 3a46f68e7755..8fe93d37c7e8 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/qt.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/qt.nix
@@ -4,13 +4,13 @@
 let
   unwrapped = mkDerivation rec {
     pname = "neovim-qt-unwrapped";
-    version = "0.2.12";
+    version = "0.2.15";
 
     src = fetchFromGitHub {
       owner  = "equalsraf";
       repo   = "neovim-qt";
       rev    = "v${version}";
-      sha256 = "09s3044j0y8nmyi8ykslfii6fx7k9mckmdvb0jn2xmdabpb60i20";
+      sha256 = "097nykglqp4jyvla4yp32sc1f1hph4cqqhp6rm9ww7br8c0j54xl";
     };
 
     cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/editors/quartus-prime/default.nix b/nixpkgs/pkgs/applications/editors/quartus-prime/default.nix
new file mode 100644
index 000000000000..6a6ea80ca458
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/editors/quartus-prime/vsim.patch b/nixpkgs/pkgs/applications/editors/quartus-prime/vsim.patch
new file mode 100644
index 000000000000..36dc41b7ef14
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/editors/texstudio/default.nix b/nixpkgs/pkgs/applications/editors/texstudio/default.nix
index 13b7f4db0c5b..372d9508174a 100644
--- a/nixpkgs/pkgs/applications/editors/texstudio/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/editors/uberwriter/default.nix b/nixpkgs/pkgs/applications/editors/uberwriter/default.nix
new file mode 100644
index 000000000000..ac3fb920da05
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/graphics/apngasm/2.nix b/nixpkgs/pkgs/applications/graphics/apngasm/2.nix
new file mode 100644
index 000000000000..166bc135c193
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/graphics/apngasm/default.nix b/nixpkgs/pkgs/applications/graphics/apngasm/default.nix
new file mode 100644
index 000000000000..8d50696efcbd
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/graphics/avocode/default.nix b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
index 3595908f1437..f15804038e71 100644
--- a/nixpkgs/pkgs/applications/graphics/avocode/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/graphics/drawio/default.nix b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
index c71e95b21af8..c81ad47db84f 100644
--- a/nixpkgs/pkgs/applications/graphics/drawio/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/graphics/goxel/default.nix b/nixpkgs/pkgs/applications/graphics/goxel/default.nix
index e870df4bc6ef..84fdb60c31ef 100644
--- a/nixpkgs/pkgs/applications/graphics/goxel/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/goxel/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "goxel";
-  version = "0.10.0";
+  version = "0.10.5";
 
   src = fetchFromGitHub {
     owner = "guillaumechereau";
     repo = "goxel";
     rev = "v${version}";
-    sha256 = "1mdw4bs7hvfn0yngd9ial5wzlfkcbhr3wzldb1w7s3s48agixkdr";
+    sha256 = "1b63jqryq19qa81g1ml6d85f27wj1ci3h56r02cl9xn8di5p674f";
   };
 
   patches = [ ./disable-imgui_ini.patch ];
diff --git a/nixpkgs/pkgs/applications/graphics/gthumb/default.nix b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
index f0057f3a1a88..b51db1e945fe 100644
--- a/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix b/nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix
index 49868bbd831f..8ca4d71bb56c 100644
--- a/nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/graphics/krop/default.nix b/nixpkgs/pkgs/applications/graphics/krop/default.nix
index c4c889cdba52..401e5f6fc570 100644
--- a/nixpkgs/pkgs/applications/graphics/krop/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/graphics/openimageio/default.nix b/nixpkgs/pkgs/applications/graphics/openimageio/default.nix
index c743f8bd6532..23cad7e859df 100644
--- a/nixpkgs/pkgs/applications/graphics/openimageio/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/openimageio/default.nix
@@ -39,6 +39,5 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.unix;
-    badPlatforms = [ "x86_64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/pencil/default.nix b/nixpkgs/pkgs/applications/graphics/pencil/default.nix
index 37857fc459ea..edd923822ea3 100644
--- a/nixpkgs/pkgs/applications/graphics/pencil/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pencil/default.nix
@@ -1,32 +1,72 @@
-{ stdenv, fetchurl, lib, makeWrapper,
+{ stdenv, fetchurl, lib, makeWrapper, wrapGAppsHook,
   # build dependencies
-  alsaLib, atk, cairo, cups, dbus, expat, fontconfig,
-  freetype, gdk-pixbuf, glib, gnome2, nspr, nss, xorg,
-  glibc, systemd
+  alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig,
+  freetype, gdk-pixbuf, glib, glibc, gtk3, libuuid, nspr, nss, pango,
+  xorg, systemd
 }:
+let
 
-stdenv.mkDerivation rec {
-  version = "3.0.4";
+  deps = [
+    alsaLib
+    atk
+    at-spi2-atk
+    at-spi2-core
+    cairo
+    cups
+    dbus
+    expat
+    fontconfig
+    freetype
+    gdk-pixbuf
+    glib
+    glibc
+    gtk3
+    libuuid
+    nspr
+    nss
+    pango
+    xorg.libX11
+    xorg.libxcb
+    xorg.libXScrnSaver
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXtst
+    stdenv.cc.cc.lib
+    stdenv.cc.cc
+  ];
+
+in stdenv.mkDerivation rec {
+  version = "3.1.0";
   pname = "pencil";
 
   src = fetchurl {
-    url    = "http://pencil.evolus.vn/dl/V${version}/Pencil_${version}_amd64.deb";
-    sha256 = "58e2b794c615ea8715d8374f177e19c87f7071e359826ec34a59836d537a62fd";
+    url    = "http://pencil.evolus.vn/dl/V${version}.ga/pencil_${version}.ga_amd64.deb";
+    sha256 = "01ae54b1a1351b909eb2366c6ec00816e1deba370e58f35601cf7368f10aaba3";
   };
 
   sourceRoot = ".";
 
   unpackCmd = ''
-    ar p "$src" data.tar.xz | tar xJ
+    ar p "$src" data.tar.gz | tar xz
   '';
 
   dontBuild = true;
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+
+  buildInputs = deps;
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp -R usr/share opt $out/
+    mkdir -p $out/bin $out/opt $out/share/applications
+    cp -R usr/share $out/
+    cp -R opt/pencil*/ $out/opt/pencil
+    cp $out/opt/pencil/pencil.desktop $out/share/applications/
 
     # fix the path in the desktop file
     substituteInPlace \
@@ -34,42 +74,12 @@ stdenv.mkDerivation rec {
       --replace /opt/ $out/opt/
 
     # symlink the binary to bin/
-    ln -s $out/opt/Pencil/pencil $out/bin/pencil
+    ln -s $out/opt/pencil/pencil $out/bin/pencil
   '';
 
 
   preFixup = let
-    packages = [
-      alsaLib
-      atk
-      cairo
-      cups
-      dbus
-      expat
-      fontconfig
-      freetype
-      gdk-pixbuf
-      glib
-      gnome2.GConf
-      gnome2.gtk
-      gnome2.pango
-      nspr
-      nss
-      xorg.libX11
-      xorg.libXScrnSaver
-      xorg.libXcomposite
-      xorg.libXcursor
-      xorg.libXdamage
-      xorg.libXext
-      xorg.libXfixes
-      xorg.libXi
-      xorg.libXrandr
-      xorg.libXrender
-      xorg.libXtst
-      stdenv.cc.cc.lib
-      stdenv.cc.cc
-      glibc
-    ];
+    packages = deps;
     libPathNative = lib.makeLibraryPath packages;
     libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages;
     libPath = "${libPathNative}:${libPath64}";
@@ -77,21 +87,13 @@ stdenv.mkDerivation rec {
     # patch executable
     patchelf \
       --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${libPath}:$out/opt/Pencil" \
-      $out/opt/Pencil/pencil
-
-    # patch libnode
-    patchelf \
-      --set-rpath "${libPath}" \
-      $out/opt/Pencil/libnode.so
-
-    # libffmpeg is for some reason  not executable
-    chmod a+x $out/opt/Pencil/libffmpeg.so
+      --set-rpath "${libPath}:$out/opt/pencil" \
+      $out/opt/pencil/pencil
 
     # fix missing libudev
-    ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/Pencil/libudev.so.1
-    wrapProgram $out/opt/Pencil/pencil \
-      --prefix LD_LIBRARY_PATH : $out/opt/Pencil
+    ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/pencil/libudev.so.1
+    wrapProgram $out/opt/pencil/pencil \
+      --prefix LD_LIBRARY_PATH : $out/opt/pencil
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
index 426985d312c7..843801011f77 100644
--- a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/graphics/rx/default.nix b/nixpkgs/pkgs/applications/graphics/rx/default.nix
index f2b56b578b6e..3093fa107d6b 100644
--- a/nixpkgs/pkgs/applications/graphics/rx/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/rx/default.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
 
 rustPlatform.buildRustPackage rec {
   pname = "rx";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "cloudhead";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1byaxbhd3q49473kcdd52rvn3xq7bmy8bdx3pz0jiw96bclzhcgq";
+    sha256 = "1n5s7v2z13550gkqz7w6dw62jdy60wdi8w1lfa23609b4yhg4w94";
   };
 
   cargoSha256 = "173jfjvdag97f6jvfg366hjk9v3cz301cbzpcahy51rbf1cip1w1";
diff --git a/nixpkgs/pkgs/applications/graphics/sxiv/default.nix b/nixpkgs/pkgs/applications/graphics/sxiv/default.nix
index 99c151f8c80b..f54299583286 100644
--- a/nixpkgs/pkgs/applications/graphics/sxiv/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix b/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix
index 548f58a50fb1..95896337720a 100644
--- a/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/kde/default.nix b/nixpkgs/pkgs/applications/kde/default.nix
index 0bfa850cb26e..3c45b05e9e8f 100644
--- a/nixpkgs/pkgs/applications/kde/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/kde/kmahjongg.nix b/nixpkgs/pkgs/applications/kde/kmahjongg.nix
new file mode 100644
index 000000000000..b51d0d147e2e
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/kde/libkmahjongg.nix b/nixpkgs/pkgs/applications/kde/libkmahjongg.nix
new file mode 100644
index 000000000000..4b7b8538290c
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix b/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix
index b0af34ec7606..0976e7625bcf 100644
--- a/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/blender/darwin.patch b/nixpkgs/pkgs/applications/misc/blender/darwin.patch
new file mode 100644
index 000000000000..43b96466df28
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/blender/darwin.patch
@@ -0,0 +1,105 @@
+diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
+--- a/build_files/cmake/platform/platform_apple.cmake
++++ b/build_files/cmake/platform/platform_apple.cmake
+@@ -35,7 +35,6 @@ else()
+   message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
+ endif()
+ if(NOT EXISTS "${LIBDIR}/")
+-  message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
+ endif()
+ 
+ if(WITH_OPENAL)
+@@ -79,7 +78,7 @@ endif()
+ if(WITH_CODEC_SNDFILE)
+   set(LIBSNDFILE ${LIBDIR}/sndfile)
+   set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include)
+-  set(LIBSNDFILE_LIBRARIES sndfile FLAC ogg vorbis vorbisenc)
++  set(LIBSNDFILE_LIBRARIES sndfile)
+   set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib ${LIBDIR}/ffmpeg/lib)  # TODO, deprecate
+ endif()
+ 
+@@ -90,7 +89,7 @@ if(WITH_PYTHON)
+     # normally cached but not since we include them with blender
+     set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
+     set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
+-    set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a)
++    set(PYTHON_LIBRARY "${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.dylib")
+     set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
+     # set(PYTHON_LINKFLAGS "-u _PyMac_Error")  # won't  build with this enabled
+   else()
+@@ -155,10 +154,7 @@ if(WITH_CODEC_FFMPEG)
+   set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
+   set(FFMPEG_LIBRARIES
+     avcodec avdevice avformat avutil
+-    mp3lame swscale x264 xvidcore
+-    theora theoradec theoraenc
+-    vorbis vorbisenc vorbisfile ogg opus
+-    vpx swresample)
++    swscale swresample)
+   set(FFMPEG_LIBPATH ${FFMPEG}/lib)
+ endif()
+ 
+@@ -199,14 +195,14 @@ if(WITH_OPENCOLLADA)
+   set(OPENCOLLADA ${LIBDIR}/opencollada)
+ 
+   set(OPENCOLLADA_INCLUDE_DIRS
+-    ${LIBDIR}/opencollada/include/COLLADAStreamWriter
+-    ${LIBDIR}/opencollada/include/COLLADABaseUtils
+-    ${LIBDIR}/opencollada/include/COLLADAFramework
+-    ${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader
+-    ${LIBDIR}/opencollada/include/GeneratedSaxParser
++    ${LIBDIR}/opencollada/include/opencollada/COLLADAStreamWriter
++    ${LIBDIR}/opencollada/include/opencollada/COLLADABaseUtils
++    ${LIBDIR}/opencollada/include/opencollada/COLLADAFramework
++    ${LIBDIR}/opencollada/include/opencollada/COLLADASaxFrameworkLoader
++    ${LIBDIR}/opencollada/include/opencollada/GeneratedSaxParser
+   )
+ 
+-  set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
++  set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib/opencollada)
+   set(OPENCOLLADA_LIBRARIES
+     OpenCOLLADASaxFrameworkLoader
+     -lOpenCOLLADAFramework
+@@ -215,7 +211,7 @@ if(WITH_OPENCOLLADA)
+     -lMathMLSolver
+     -lGeneratedSaxParser
+     -lbuffer -lftoa -lUTF
+-    ${OPENCOLLADA_LIBPATH}/libxml2.a
++    xml2
+   )
+   # PCRE is bundled with openCollada
+   # set(PCRE ${LIBDIR}/pcre)
+@@ -276,14 +272,13 @@ if(WITH_BOOST)
+ endif()
+ 
+ if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
+-  set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it !
+ endif()
+ 
+ if(WITH_OPENIMAGEIO)
+   set(OPENIMAGEIO ${LIBDIR}/openimageio)
+   set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
+   set(OPENIMAGEIO_LIBRARIES
+-    ${OPENIMAGEIO}/lib/libOpenImageIO.a
++    ${OPENIMAGEIO}/lib/libOpenImageIO.dylib
+     ${PNG_LIBRARIES}
+     ${JPEG_LIBRARIES}
+     ${TIFF_LIBRARY}
+@@ -306,7 +301,7 @@ endif()
+ if(WITH_OPENCOLORIO)
+   set(OPENCOLORIO ${LIBDIR}/opencolorio)
+   set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
+-  set(OPENCOLORIO_LIBRARIES OpenColorIO tinyxml yaml-cpp)
++  set(OPENCOLORIO_LIBRARIES OpenColorIO)
+   set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
+ endif()
+ 
+@@ -443,7 +438,7 @@ else()
+   set(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
+ endif()
+ 
+-if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
++if(FALSE)
+   # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
+   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
+ endif()
diff --git a/nixpkgs/pkgs/applications/misc/blender/default.nix b/nixpkgs/pkgs/applications/misc/blender/default.nix
index 0af78852204d..83f2bf63642d 100644
--- a/nixpkgs/pkgs/applications/misc/blender/default.nix
+++ b/nixpkgs/pkgs/applications/misc/blender/default.nix
@@ -1,13 +1,14 @@
 { config, stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
 , ilmbase, libXi, libX11, libXext, libXrender
 , libjpeg, libpng, libsamplerate, libsndfile
-, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimageio, openjpeg_1, python3Packages
+, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimageio2, openjpeg, python3Packages
 , openvdb, libXxf86vm, tbb
 , zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
 , jackaudioSupport ? false, libjack2
 , cudaSupport ? config.cudaSupport or false, cudatoolkit
 , colladaSupport ? true, opencollada
 , enableNumpy ? false, makeWrapper
+, pugixml, SDL, Cocoa, CoreGraphics, ForceFeedback, OpenAL, OpenGL
 }:
 
 with lib;
@@ -23,22 +24,53 @@ stdenv.mkDerivation rec {
     sha256 = "1zl0ar95qkxsrbqw9miz2hrjijlqjl06vg3clfk9rm7krr2l3b2j";
   };
 
+  patches = lib.optional stdenv.isDarwin ./darwin.patch;
+
   nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
   buildInputs =
     [ boost ffmpeg gettext glew ilmbase
-      libXi libX11 libXext libXrender
-      freetype libjpeg libpng libsamplerate libsndfile libtiff libGLU libGL openal
-      opencolorio openexr openimageio openjpeg_1 python zlib fftw jemalloc
+      freetype libjpeg libpng libsamplerate libsndfile libtiff
+      opencolorio openexr openimageio2 openjpeg python zlib fftw jemalloc
       (opensubdiv.override { inherit cudaSupport; })
-      openvdb libXxf86vm tbb
+      tbb
       makeWrapper
     ]
+    ++ (if (!stdenv.isDarwin) then [
+      libXi libX11 libXext libXrender
+      libGLU libGL openal
+      libXxf86vm
+      # OpenVDB currently doesn't build on darwin
+      openvdb
+    ]
+    else [
+      pugixml SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
+    ])
     ++ optional jackaudioSupport libjack2
     ++ optional cudaSupport cudatoolkit
     ++ optional colladaSupport opencollada;
 
   postPatch =
-    ''
+    if stdenv.isDarwin then ''
+      : > build_files/cmake/platform/platform_apple_xcode.cmake
+      substituteInPlace source/creator/CMakeLists.txt \
+        --replace '${"$"}{LIBDIR}/python' \
+                  '${python}'
+      substituteInPlace build_files/cmake/platform/platform_apple.cmake \
+        --replace '${"$"}{LIBDIR}/python' \
+                  '${python}' \
+        --replace '${"$"}{LIBDIR}/opencollada' \
+                  '${opencollada}' \
+        --replace '${"$"}{PYTHON_LIBPATH}/site-packages/numpy' \
+                  '${python3Packages.numpy}/${python.sitePackages}/numpy' \
+        --replace 'set(OPENJPEG_INCLUDE_DIRS ' \
+                  'set(OPENJPEG_INCLUDE_DIRS "'$(echo ${openjpeg.dev}/include/openjpeg-*)'") #' \
+        --replace 'set(OPENJPEG_LIBRARIES ' \
+                  'set(OPENJPEG_LIBRARIES "${openjpeg}/lib/libopenjp2.dylib") #' \
+        --replace 'set(OPENIMAGEIO ' \
+                  'set(OPENIMAGEIO "${openimageio2.out}") #' \
+        --replace 'set(OPENEXR_INCLUDE_DIRS ' \
+                  'set(OPENEXR_INCLUDE_DIRS "${openexr.dev}/include/OpenEXR") #'
+    '' else ''
       substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
     '';
 
@@ -48,7 +80,7 @@ stdenv.mkDerivation rec {
       "-DWITH_CODEC_SNDFILE=ON"
       "-DWITH_INSTALL_PORTABLE=OFF"
       "-DWITH_FFTW3=ON"
-      #"-DWITH_SDL=ON"
+      "-DWITH_SDL=OFF"
       "-DWITH_OPENCOLORIO=ON"
       "-DWITH_OPENSUBDIV=ON"
       "-DPYTHON_LIBRARY=${python.libPrefix}m"
@@ -61,10 +93,18 @@ stdenv.mkDerivation rec {
       "-DWITH_OPENVDB=ON"
       "-DWITH_TBB=ON"
       "-DWITH_IMAGE_OPENJPEG=ON"
+      "-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}"
+    ]
+    ++ optionals stdenv.isDarwin [
+      "-DWITH_CYCLES_OSL=OFF" # requires LLVM
+      "-DWITH_OPENVDB=OFF" # OpenVDB currently doesn't build on darwin
+
+      "-DLIBDIR=/does-not-exist"
     ]
+    # Clang doesn't support "-export-dynamic"
+    ++ optional stdenv.cc.isClang "-DPYTHON_LINKFLAGS="
     ++ optional jackaudioSupport "-DWITH_JACK=ON"
-    ++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON"
-    ++ optional colladaSupport "-DWITH_OPENCOLLADA=ON";
+    ++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON";
 
   NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}";
 
@@ -95,7 +135,7 @@ stdenv.mkDerivation rec {
     # They comment two licenses: GPLv2 and Blender License, but they
     # say: "We've decided to cancel the BL offering for an indefinite period."
     license = licenses.gpl2Plus;
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = [ maintainers.goibhniu ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/calibre/default.nix b/nixpkgs/pkgs/applications/misc/calibre/default.nix
index 9701db3c0b79..fd86f21dff0d 100644
--- a/nixpkgs/pkgs/applications/misc/calibre/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/cbatticon/default.nix b/nixpkgs/pkgs/applications/misc/cbatticon/default.nix
index d6680c61eb9b..ac2948c2d6ef 100644
--- a/nixpkgs/pkgs/applications/misc/cbatticon/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
index d0011eee9c14..f6236a301dba 100644
--- a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/font-manager/default.nix b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
index edb47e11dd7f..afa0a06d33fc 100644
--- a/nixpkgs/pkgs/applications/misc/font-manager/default.nix
+++ b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, meson, ninja, gettext, python3, fetchpatch,
+{ stdenv, fetchFromGitHub, meson, ninja, gettext, python3,
   pkgconfig, libxml2, json-glib , sqlite, itstool, librsvg, yelp-tools,
   vala, gtk3, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection
 }:
 
 stdenv.mkDerivation rec {
   pname = "font-manager";
-  version = "0.7.5";
+  version = "0.7.7";
 
   src = fetchFromGitHub {
     owner = "FontManager";
     repo = "master";
     rev = version;
-    sha256 = "16hma8rrkam6ngn5vbdaryn31vdixvii6920g9z928gylz9xkd3g";
+    sha256 = "1bzqvspplp1zj0n0869jqbc60wgbjhf0vdrn5bj8dfawxynh8s5f";
   };
 
   nativeBuildInputs = [
@@ -38,19 +38,6 @@ stdenv.mkDerivation rec {
     gnome3.adwaita-icon-theme
   ];
 
-  mesonFlags = [
-    "-Ddisable_pycompile=true"
-  ];
-
-  patches = [
-    # fix build with Vala 0.46
-    (fetchpatch {
-      url = "https://github.com/FontManager/font-manager/commit/c73b40de11f376f4515a0edfe97fb3721a264b35.patch";
-      sha256 = "0lacwsifgvda2r3z6j2a0svdqr6mgav7zkvih35xa8155y8wfpnw";
-      excludes = [ "fedora/font-manager.spec" ];
-    })
-  ];
-
   postPatch = ''
     chmod +x meson_post_install.py
     patchShebangs meson_post_install.py
diff --git a/nixpkgs/pkgs/applications/misc/girara/default.nix b/nixpkgs/pkgs/applications/misc/girara/default.nix
index 6bfb4907807a..45bca7d3fbf5 100644
--- a/nixpkgs/pkgs/applications/misc/girara/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/gpxsee/default.nix b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
index 9a9edba512aa..9a4e765a1d67 100644
--- a/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix b/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix
index 957f0f7f68bb..8b908f1f9cf2 100644
--- a/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch b/nixpkgs/pkgs/applications/misc/ikiwiki/remove-markdown-tests.patch
new file mode 100644
index 000000000000..c981857a248b
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/keepassx/community.nix b/nixpkgs/pkgs/applications/misc/keepassx/community.nix
index bab4c2d0b7d3..c6bcd56167c0 100644
--- a/nixpkgs/pkgs/applications/misc/keepassx/community.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/mako/default.nix b/nixpkgs/pkgs/applications/misc/mako/default.nix
index ffb938f30a57..f86effe989fa 100644
--- a/nixpkgs/pkgs/applications/misc/mako/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mako/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mako";
-  version = "1.4";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11ymiq6cr2ma0iva1mqybn3j6k73bsc6lv6pcbdq7hkhd4f9b7j9";
+    sha256 = "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig scdoc wayland-protocols ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     description = "A lightweight Wayland notification daemon";
     homepage = https://wayland.emersion.fr/mako/;
     license = licenses.mit;
-    maintainers = with maintainers; [ dywedir ];
+    maintainers = with maintainers; [ dywedir synthetica ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/marktext/default.nix b/nixpkgs/pkgs/applications/misc/marktext/default.nix
new file mode 100644
index 000000000000..5813fc15c0d0
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/nnn/default.nix b/nixpkgs/pkgs/applications/misc/nnn/default.nix
index e7c32c130956..f2df8a09ff2a 100644
--- a/nixpkgs/pkgs/applications/misc/nnn/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/notejot/default.nix b/nixpkgs/pkgs/applications/misc/notejot/default.nix
index b91f8018c57c..1c02441474c0 100644
--- a/nixpkgs/pkgs/applications/misc/notejot/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/osmctools/default.nix b/nixpkgs/pkgs/applications/misc/osmctools/default.nix
index 2dfbb7a23705..c03e57920da9 100644
--- a/nixpkgs/pkgs/applications/misc/osmctools/default.nix
+++ b/nixpkgs/pkgs/applications/misc/osmctools/default.nix
@@ -1,46 +1,27 @@
-{ stdenv, fetchurl, zlib } :
+{ stdenv, fetchFromGitLab, autoreconfHook, zlib }:
 
-let
-
-  convert_src = fetchurl {
-    url = http://m.m.i24.cc/osmconvert.c;
-    sha256 = "1mvmb171c1jqxrm80jc7qicwk4kgg7yq694n7ci65g6i284r984x";
-    # version = 0.8.5
-  };
+stdenv.mkDerivation rec {
+  pname = "osmctools";
+  version = "0.9";
 
-  filter_src = fetchurl {
-    url = http://m.m.i24.cc/osmfilter.c;
-    sha256 = "0vm3bls9jb2cb5b11dn82sxnc22qzkf4ghmnkivycigrwa74i6xl";
-    # version = 1.4.0
+  src = fetchFromGitLab {
+    owner = "osm-c-tools";
+    repo = pname;
+    rev = version;
+    sha256 = "1m8d3r1q1v05pkr8k9czrmb4xjszw6hvgsf3kn9pf0v14gpn4r8f";
   };
 
-in
-
-stdenv.mkDerivation {
-  pname = "osmctools";
-  version = "0.8.5plus1.4.0";
-
+  nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ zlib ];
 
-  phases = [ "buildPhase" "installPhase" ];
-
-  buildPhase = ''
-    cc ${convert_src} -lz -O3 -o osmconvert
-    cc ${filter_src} -O3 -o osmfilter
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    mv osmconvert $out/bin
-    mv osmfilter $out/bin
-  '';
-
   meta = with stdenv.lib; {
     description = "Command line tools for transforming Open Street Map files";
     homepage = [
-      https://wiki.openstreetmap.org/wiki/Osmconvert
-      https://wiki.openstreetmap.org/wiki/Osmfilter
+      https://wiki.openstreetmap.org/wiki/osmconvert
+      https://wiki.openstreetmap.org/wiki/osmfilter
+      https://wiki.openstreetmap.org/wiki/osmupdate
     ];
+    maintainers = with maintainers; [ sikmir ];
     platforms = platforms.unix;
     license = licenses.agpl3;
   };
diff --git a/nixpkgs/pkgs/applications/misc/qolibri/default.nix b/nixpkgs/pkgs/applications/misc/qolibri/default.nix
index b7c137258fd9..c96fbab4d812 100644
--- a/nixpkgs/pkgs/applications/misc/qolibri/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix b/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
index 5a722ffe1119..907a2e046dfe 100644
--- a/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/tmatrix/default.nix b/nixpkgs/pkgs/applications/misc/tmatrix/default.nix
index ead8d7298e66..c03918c4875e 100644
--- a/nixpkgs/pkgs/applications/misc/tmatrix/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/todoist/default.nix b/nixpkgs/pkgs/applications/misc/todoist/default.nix
index eaedad167489..74b2b770215c 100644
--- a/nixpkgs/pkgs/applications/misc/todoist/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/toot/default.nix b/nixpkgs/pkgs/applications/misc/toot/default.nix
index 13e0cdfb2607..bfae97027c47 100644
--- a/nixpkgs/pkgs/applications/misc/toot/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/vit/default.nix b/nixpkgs/pkgs/applications/misc/vit/default.nix
index 9953af19d90d..cb71ec1524b8 100644
--- a/nixpkgs/pkgs/applications/misc/vit/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/waybar/default.nix b/nixpkgs/pkgs/applications/misc/waybar/default.nix
index 84735feef21c..212013fb655d 100644
--- a/nixpkgs/pkgs/applications/misc/waybar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/waybar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, pkgconfig, ninja
+{ stdenv, fetchFromGitHub, meson, pkgconfig, ninja, wrapGAppsHook
 , wayland, wlroots, gtkmm3, libinput, libsigcxx, jsoncpp, fmt, scdoc, spdlog, gtk-layer-shell
 , traySupport  ? true,  libdbusmenu-gtk3
 , pulseSupport ? false, libpulseaudio
@@ -19,7 +19,7 @@
     };
 
     nativeBuildInputs = [
-      meson ninja pkgconfig scdoc
+      meson ninja pkgconfig scdoc wrapGAppsHook
     ];
 
     buildInputs = with stdenv.lib;
diff --git a/nixpkgs/pkgs/applications/misc/xmrig/default.nix b/nixpkgs/pkgs/applications/misc/xmrig/default.nix
index b1bf98704c58..2f4c78281347 100644
--- a/nixpkgs/pkgs/applications/misc/xmrig/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/misc/xygrib/default.nix b/nixpkgs/pkgs/applications/misc/xygrib/default.nix
index 4f1ecbaf8b3c..c7f449d97cdb 100644
--- a/nixpkgs/pkgs/applications/misc/xygrib/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/Sylk/default.nix b/nixpkgs/pkgs/applications/networking/Sylk/default.nix
index 36f6279c2092..d99a87954dec 100644
--- a/nixpkgs/pkgs/applications/networking/Sylk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/Sylk/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "Sylk";
-  version = "2.1.0";
+  version = "2.5.0";
 in
 
 appimageTools.wrapType2 rec {
@@ -10,7 +10,7 @@ appimageTools.wrapType2 rec {
 
   src = fetchurl {
     url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
-    sha256 = "1ifi8qr6f84dcssxhv5ar1s48nsqxiv2j1blc82248hmq5is24mf";
+    sha256 = "1jhs25zzdac3r2wz886vlpb0bz77p52mdlrbsbv28h6is79pbd69";
   };
 
   profile = ''
diff --git a/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix
index e7bec997119e..88bd32da8f16 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
index bbfce71a115c..b8160a682e64 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix
index ef0b5ac0eb67..c4a09c8063db 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix
@@ -45,11 +45,11 @@ let
 
   flash = stdenv.mkDerivation rec {
     pname = "flashplayer-ppapi";
-    version = "32.0.0.303";
+    version = "32.0.0.314";
 
     src = fetchzip {
       url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
-      sha256 = "0b2cw8y9rif2p0lyy2ir1v5lchxlsh543b9c743a2p85c9p7q62b";
+      sha256 = "05xcscpzglpfpiiqc3ngs5snxli99irjk18g5vdhw91jk9808gnl";
       stripRoot = false;
     };
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 567c57aab2c4..0e339253ade9 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
index 08432e0d8449..5dfb45fbf65c 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -16,10 +16,10 @@ in
 rec {
   firefox = firefoxCommon 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 = firefoxCommon 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/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
index 7e3705a3b0bd..5ecb6bfb0766 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
@@ -74,7 +74,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "flashplayer";
-  version = "32.0.0.303";
+  version = "32.0.0.314";
 
   src = fetchurl {
     url =
@@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
     sha256 =
       if debug then
         if arch == "x86_64" then
-          "05hfc5ywmcvp6zf8aqmzjp3qy3byp0zdl0ssrv9gvzcskdqkhsj2"
+          "076l93wjcy15sic88cyq6msp87gdhcvbk4ym2vbvvjz2bav2z456"
         else
-          "12hl8lvxz648ha70gi3v85mwf0nnayjiaslr669vjan3ww94jymv"
+          "0kxr8d6fh00akqgk3lwv0z6rk7xswislicsbh9b9p33f19mj7c8a"
       else
         if arch == "x86_64" then
-          "0x0mabgswly2v8z13832pkbjsv404aq61pback6sgmp2lyycdg6w"
+          "0a3hvp0qmqlann8k875ajf0i70cv0an1a3mr8kbgji46dxqvwjxz"
         else
-          "16kbpf1i3aqlrfbfh5ncg1n46ncl9hp6qdp36s5j3ivbc68pj81z";
+          "0jyywas2z7ssgzng82qgnp01gy6nccqavkbx9529m07xrclvqbxn";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
index 28b4c8a36c93..353aff7e707e 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
@@ -50,7 +50,7 @@
 
 stdenv.mkDerivation {
   pname = "flashplayer-standalone";
-  version = "32.0.0.303";
+  version = "32.0.0.314";
 
   src = fetchurl {
     url =
@@ -60,9 +60,9 @@ stdenv.mkDerivation {
         "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz";
     sha256 =
       if debug then
-        "0xkzlv90lpyy54j6pllknrp1l9vjyh6dsl63l4c8cgh4i830gi14"
+        "0zlin94rip13rn58m7v5l6m20ylnw59l77rbg5j5qyxkr53zawdz"
       else
-        "0mi3ggv6zhzmdd1h68cgl87n6izhp0pbkhnidd2gl2cp95f23c2d";
+        "0pfrm02iwa01pqx3adqj0sw27p1ddlz9knjky6x248ak8zywsqr2";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
index 3784ff6b00f1..6825d2af64f9 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/cawbird/default.nix b/nixpkgs/pkgs/applications/networking/cawbird/default.nix
index 6462dd499493..af8b7241659e 100644
--- a/nixpkgs/pkgs/applications/networking/cawbird/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cawbird/default.nix
@@ -20,14 +20,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.3.1";
+  version = "1.0.4";
   pname = "cawbird";
 
   src = fetchFromGitHub {
     owner = "IBBoard";
     repo = "cawbird";
     rev = "v${version}";
-    sha256 = "sha256:1v1y4bx0mm518b9vlpsry12fw1qz2j28jfhjqq73blvzd89lgb0y";
+    sha256 = "sha256:1gqi7bn08b9cjpb0mgs6bk1a2npdfhn56ckps95nck0jyqzfbnir";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
index d0186fb9b4c0..39c3b9f65072 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchFromGitHub, go, removeReferencesTo, buildGoPackage }:
 buildGoPackage rec {
   pname = "cni-plugins";
-  version = "0.8.3";
+  version = "0.8.4";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = "plugins";
     rev = "v${version}";
-    sha256 = "0dc4fs08x4x518yhgvq3drjvansnc0cb8rm4h5wiw7k3whjii3cd";
+    sha256 = "02kz6y3klhbriybsskn4hmldwli28cycnp2klsm2x0y9c73iczdp";
   };
 
   goDeps = ./plugins-deps.nix;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix
deleted file mode 100644
index 99cb7b98f5cc..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
-  {
-    goPackagePath = "github.com/docker/machine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/docker/machine";
-      rev = "5b274558ea6ca822c06dd407a4e774a0105c3f60";
-      sha256 = "1wdq9h4bx7awgclh969gvmcnl9jvgv7ldfklnclh5iv47mi7q22d";
-    };
-  }
-  {
-    goPackagePath = "github.com/zchee/libhyperkit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/zchee/libhyperkit";
-      rev = "1a19a7693fac32b46ec6cdd22da6fbec974447fc";
-      sha256 = "119f5gcl24znwnmi837jk667asd3lirx32jldpd4mbyb3sm9nz24";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
index 1c2caff50d53..1f1e59a56a4e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
@@ -1,24 +1,36 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, Hypervisor, vmnet }:
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch, pkgconfig, cctools, Hypervisor, vmnet }:
 
 buildGoPackage rec {
   pname = "docker-machine-xhyve";
-  version = "0.3.3";
+  version = "0.4.0";
 
   goPackagePath = "github.com/zchee/docker-machine-driver-xhyve";
-  goDeps = ./xhyve-deps.nix;
+
+  # https://github.com/machine-drivers/docker-machine-driver-xhyve/pull/225
+  patches = fetchpatch {
+    url = "https://github.com/machine-drivers/docker-machine-driver-xhyve/commit/546256494bf2ccc33e4125bf45f504b0e3027d5a.patch";
+    sha256 = "1i8wxqccqkxvqrbsyd0g9s0kdskd8xi2jv0c1bji9aj4rq0a8cgz";
+  };
+
+  preBuild = ''
+    make -C go/src/${goPackagePath} CC=${stdenv.cc}/bin/cc LIBTOOL=${cctools}/bin/libtool GIT_CMD=: lib9p
+    export CGO_CFLAGS=-I$(pwd)/go/src/${goPackagePath}/vendor/github.com/jceel/lib9p
+    export CGO_LDFLAGS=$(pwd)/go/src/${goPackagePath}/vendor/build/lib9p/lib9p.a
+  '';
+  buildFlags = "--tags lib9p";
 
   src = fetchFromGitHub {
     rev    = "v${version}";
-    owner  = "zchee";
+    owner  = "machine-drivers";
     repo   = "docker-machine-driver-xhyve";
-    sha256 = "0rj6pyqp4yv4j28bglqjs95rip5i77vv8mrkmqv1rxrsl3i8aqqy";
+    sha256 = "0000v97fr8xc5b39v44hsa87wrbk4bcwyaaivxv4hxlf4vlgg863";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ Hypervisor vmnet ];
 
   meta = with stdenv.lib; {
-    homepage = https://github.com/zchee/docker-machine-driver-xhyve;
+    homepage = https://github.com/machine-drivers/docker-machine-driver-xhyve;
     description = "Xhyve driver for docker-machine.";
     license = licenses.bsd3;
     maintainers = with maintainers; [ periklis ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
index 904eabfcda82..16472b98fddc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix b/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix
index aad752643645..def13e2b9d06 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/flexget/default.nix b/nixpkgs/pkgs/applications/networking/flexget/default.nix
index 98d37fae9114..736137783651 100644
--- a/nixpkgs/pkgs/applications/networking/flexget/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix
index 71044bd0f181..2dae8377055f 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/gns3/gui.nix b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
index d978b060aab2..2d462d5c11d0 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/gui.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/gns3/server.nix b/nixpkgs/pkgs/applications/networking/gns3/server.nix
index d6c6b65846c9..beeac9d02936 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/server.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index d7741bda646e..010c06e0c2ac 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
index eeab5e32c0f2..f588c31c183d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 2e8581f4eae5..bc41b0236274 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index d43d8e1f988a..500f8f3fe873 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix
index 314a3bb64571..23659e8a6c9c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index e57ff881af34..bec2f7505266 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix b/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
new file mode 100644
index 000000000000..7967bdcc9c4e
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
index f0b8fdcf8e2a..b7bf5eb329ca 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "1.13.2";
+  version = "1.13.3";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "0x4yfvk8415p80h9an242n6q3b43mw6mnnczh95zd3j0zwdr6wrg";
+    sha256 = "0y3ks10mc7m8c7pd4c4j8pj7n5rqcvzrjs8mzldv7z7jnlb30hkq";
   };
 
   patches = optional smimeSupport (fetchpatch {
diff --git a/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix b/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix
index 1c266d247b7c..94720f35504b 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/protonvpn-cli-ng/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-cli-ng/default.nix
new file mode 100644
index 000000000000..03d1a665273e
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/seafile-client/default.nix b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
index 16430d31e835..1b96e9fb663c 100644
--- a/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
index 67365405cc20..2da36be90de2 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
index dc38debd3050..636761d2aaff 100644
--- a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix b/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix
index 6894f1ca635a..021eadb64768 100644
--- a/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/office/csv2odf/default.nix b/nixpkgs/pkgs/applications/office/csv2odf/default.nix
new file mode 100644
index 000000000000..7bab06ed4ab9
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/office/gnumeric/default.nix b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
index 979c960f7a81..710a66c25d86 100644
--- a/nixpkgs/pkgs/applications/office/gnumeric/default.nix
+++ b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, pkgconfig, intltool, perlPackages
-, goffice, gnome3, wrapGAppsHook, gtk3, bison, pythonPackages
+, goffice, gnome3, wrapGAppsHook, gtk3, bison, python3Packages
 , itstool
 }:
 
 let
-  inherit (pythonPackages) python pygobject3;
+  inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "gnumeric";
   version = "1.12.46";
diff --git a/nixpkgs/pkgs/applications/office/kmymoney/default.nix b/nixpkgs/pkgs/applications/office/kmymoney/default.nix
index c7b4377c3dcb..275cd826a69f 100644
--- a/nixpkgs/pkgs/applications/office/kmymoney/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/office/paperless/default.nix b/nixpkgs/pkgs/applications/office/paperless/default.nix
index 97088f360417..1383986cf2ed 100644
--- a/nixpkgs/pkgs/applications/office/paperless/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/office/skanlite/default.nix b/nixpkgs/pkgs/applications/office/skanlite/default.nix
index 416c86397f86..d4c1df75709b 100644
--- a/nixpkgs/pkgs/applications/office/skanlite/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/office/wpsoffice/default.nix b/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
index abc2d1862cbf..7032632da884 100644
--- a/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/radio/flrig/default.nix b/nixpkgs/pkgs/applications/radio/flrig/default.nix
index 242536a89655..17d579cb45e5 100644
--- a/nixpkgs/pkgs/applications/radio/flrig/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/radio/soapysdr/default.nix b/nixpkgs/pkgs/applications/radio/soapysdr/default.nix
index c4879f01e606..e072ec97b974 100644
--- a/nixpkgs/pkgs/applications/radio/soapysdr/default.nix
+++ b/nixpkgs/pkgs/applications/radio/soapysdr/default.nix
@@ -8,7 +8,7 @@
 
 let
 
-  version = "0.7.1";
+  version = "0.7.2";
   modulesVersion = with lib; versions.major version + "." + versions.minor version;
   modulesPath = "lib/SoapySDR/modules" + modulesVersion;
   extraPackagesSearchPath = lib.makeSearchPath modulesPath extraPackages;
@@ -21,7 +21,7 @@ in stdenv.mkDerivation {
     owner = "pothosware";
     repo = "SoapySDR";
     rev = "soapy-sdr-${version}";
-    sha256 = "1rbnd3w12kzsh94fiywyn4vch7h0kf75m88fi6nq992b3vnmiwvl";
+    sha256 = "102wnpjxrwba20pzdh1vvx0yg1h8vqd8z914idxflg9p14r6v5am";
   };
 
   nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/radio/svxlink/default.nix b/nixpkgs/pkgs/applications/radio/svxlink/default.nix
new file mode 100644
index 000000000000..e06fcb5d3e67
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/radio/urh/default.nix b/nixpkgs/pkgs/applications/radio/urh/default.nix
index eea9bb9027ca..8ca42ab94acc 100644
--- a/nixpkgs/pkgs/applications/radio/urh/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix b/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
index 4bb3c7b34fe8..cc6af8a17c06 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/science/astronomy/gildas/imager-py3.patch b/nixpkgs/pkgs/applications/science/astronomy/gildas/imager-py3.patch
new file mode 100644
index 000000000000..71a129164bac
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/science/biology/samtools/default.nix b/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
index daa2925de7c4..f2c5e9f25beb 100644
--- a/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix b/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix
index cd41e1ca64b9..d198de41f9b7 100644
--- a/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/science/math/nota/default.nix b/nixpkgs/pkgs/applications/science/math/nota/default.nix
new file mode 100644
index 000000000000..897785ef6e8b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/nota/default.nix
@@ -0,0 +1,40 @@
+{ mkDerivation, haskellPackages, fetchurl, lib }:
+
+mkDerivation rec {
+  pname = "nota";
+  version = "1.0";
+
+  # Can't use fetchFromGitLab since codes.kary.us doesn't support https
+  src = fetchurl {
+    url = "http://codes.kary.us/nota/nota/-/archive/V${version}/nota-V${version}.tar.bz2";
+    sha256 = "0bbs6bm9p852hvqadmqs428ir7m65h2prwyma238iirv42pk04v8";
+  };
+
+  postUnpack = ''
+    export sourceRoot=$sourceRoot/source
+  '';
+
+  isLibrary = false;
+  isExecutable = true;
+
+  libraryHaskellDepends = with haskellPackages; [
+    base
+    bytestring
+    array
+    split
+    scientific
+    parsec
+    ansi-terminal
+    regex-compat
+    containers
+    terminal-size
+    numbers
+    text
+    time
+  ];
+
+  description = "The most beautiful command line calculator";
+  homepage = "https://kary.us/nota";
+  license = lib.licenses.mpl20;
+  maintainers = with lib.maintainers; [ dtzWill ];
+}
diff --git a/nixpkgs/pkgs/applications/search/doodle/default.nix b/nixpkgs/pkgs/applications/search/doodle/default.nix
index ba9fbee5d969..9d1da21492a2 100644
--- a/nixpkgs/pkgs/applications/search/doodle/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix
index d57ffd75d7f2..2e99ca666dcd 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
index 969ea7cc2fa6..54543bb48419 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
index 94753275b613..9b77690868be 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ (callPackage ./romkatv_libgit2.nix {}) ];
   patchPhase = ''
-    sed -i "s|local daemon=.*|local daemon=$out/bin/gitstatusd|" gitstatus.plugin.zsh
+    sed -i "1i GITSTATUS_DAEMON=$out/bin/gitstatusd" gitstatus.plugin.zsh
   '';
   installPhase = ''
     install -Dm755 gitstatusd $out/bin/gitstatusd
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix
index ee21a2158ac6..1b67b933cb1c 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
index 4d5814548ff1..2bd1f6434b7b 100644
--- a/nixpkgs/pkgs/applications/version-management/gitea/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
index be7f0afdc77d..3f1aef360ba7 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/data.json
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
@@ -1,11 +1,11 @@
 {
-  "version": "12.6.2",
-  "repo_hash": "0bchamvr3f0ph49f7xa76gsp2mjj1ajy4q0wy1hjvr9bayxx94av",
+  "version": "12.6.4",
+  "repo_hash": "0jsww785bxvjdrp1wsz6zkvx9zr69j24bway6nfyjkz8a7vbl9ls",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v12.6.2-ee",
+  "rev": "v12.6.4-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "a4b6c71d4b7c1588587345e2dfe0c6bd7cc63a83",
+    "GITALY_SERVER_VERSION": "1.77.1",
     "GITLAB_PAGES_VERSION": "1.12.0",
     "GITLAB_SHELL_VERSION": "10.3.0",
     "GITLAB_WORKHORSE_VERSION": "8.18.0"
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
index fa2154c4472f..36859892e8c4 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 97d7404de8b1..a4b4540e87aa 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -17,14 +17,14 @@ let
       };
   };
 in buildGoPackage rec {
-  version = "a4b6c71d4b7c1588587345e2dfe0c6bd7cc63a83";
+  version = "1.77.1";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
-    rev = version;
-    sha256 = "1pxmhq1nrc8q2kk83bz5afx14hshqgzqm6j4vgmyjvbmdvgl80wv";
+    rev = "v${version}";
+    sha256 = "08xc9lxlvga36yq1wdvb1h4zk70c36qspyd7azhkw84kzwfrif1c";
   };
 
   # Fix a check which assumes that hook files are writeable by their
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index b6f57297c077..2c4a5f2e816c 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -327,7 +327,7 @@ group :metrics do
   gem 'influxdb', '~> 0.2', require: false
 
   # Prometheus
-  gem 'prometheus-client-mmap', '~> 0.9.10'
+  gem 'prometheus-client-mmap', '~> 0.10.0'
   gem 'raindrops', '~> 0.18'
 end
 
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 0e3227058620..57e428ca955e 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -531,8 +531,8 @@ GEM
       regexp_parser (~> 1.1)
       regexp_property_values (~> 0.3)
     json (1.8.6)
-    json-jwt (1.9.4)
-      activesupport
+    json-jwt (1.11.0)
+      activesupport (>= 4.2)
       aes_key_wrap
       bindata
     json-schema (2.8.0)
@@ -746,7 +746,7 @@ GEM
       parser
       unparser
     procto (0.0.3)
-    prometheus-client-mmap (0.9.10)
+    prometheus-client-mmap (0.10.0)
     pry (0.11.3)
       coderay (~> 1.1.0)
       method_source (~> 0.9.0)
@@ -1283,7 +1283,7 @@ DEPENDENCIES
   peek (~> 1.1)
   pg (~> 1.1)
   premailer-rails (~> 1.10.3)
-  prometheus-client-mmap (~> 0.9.10)
+  prometheus-client-mmap (~> 0.10.0)
   pry-byebug (~> 3.5.1)
   pry-rails (~> 0.3.4)
   rack (~> 2.0.7)
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 55cdfaa16b91..854178ffbe37 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -2326,10 +2326,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r";
+      sha256 = "18rf9v20i0dk5dblr7m22di959xpch2h7gsx0cl585cryr7apwp3";
       type = "gem";
     };
-    version = "1.9.4";
+    version = "1.11.0";
   };
   json-schema = {
     dependencies = ["addressable"];
@@ -3365,10 +3365,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0immyg4as0isyj2dcjf44n0avg1jv5kx1qk0asrgb5ayzwmjqg1k";
+      sha256 = "00d2c79xhz5k3fcclarjr1ffxbrvc6236f4rrvriad9kwqr7c1mp";
       type = "gem";
     };
-    version = "0.9.10";
+    version = "0.10.0";
   };
   pry = {
     dependencies = ["coderay" "method_source"];
diff --git a/nixpkgs/pkgs/applications/video/kodi/plugins.nix b/nixpkgs/pkgs/applications/video/kodi/plugins.nix
index 1900bf3634ce..41e5a7c5c75a 100644
--- a/nixpkgs/pkgs/applications/video/kodi/plugins.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/plugins.nix
@@ -509,14 +509,14 @@ let self = rec {
 
   vfs-sftp = mkKodiABIPlugin rec {
     namespace = "vfs.sftp";
-    version = "1.0.1";
+    version = "1.0.5";
     plugin = namespace;
 
     src = fetchFromGitHub {
       owner = "xbmc";
       repo = namespace;
       rev = "${version}-${rel}";
-      sha256 = "1l9igrl168s91c15v9klyaaz226ik3xlbzjk2f1346fvzmp87g9v";
+      sha256 = "10l2rwim574012vzjrkr0b153gk5q81fq48p47mijk294l7g100d";
     };
 
     meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
index fc2b4aaf3cb3..4736dedcb84f 100644
--- a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/video/mpv/default.nix b/nixpkgs/pkgs/applications/video/mpv/default.nix
index c333790d6a67..0ea042c13140 100644
--- a/nixpkgs/pkgs/applications/video/mpv/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch b/nixpkgs/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch
new file mode 100644
index 000000000000..475788ba3a40
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/video/shotcut/default.nix b/nixpkgs/pkgs/applications/video/shotcut/default.nix
index 33ce5c18028f..6926f7e8eae2 100644
--- a/nixpkgs/pkgs/applications/video/shotcut/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix b/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
index 7e8dbf33a7b0..4bb03aa4ac3f 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
index 8261ead38921..87ec2e52f13a 100644
--- a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix b/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix
index 85d103e172aa..c7454981400d 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/sway/lock-fancy.nix b/nixpkgs/pkgs/applications/window-managers/sway/lock-fancy.nix
index 6dd8db0f45be..aa2db698f747 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/lock-fancy.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sway/lock-fancy.nix
@@ -18,7 +18,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchFromGitHub {
     owner = "Big-B";
-    repo = pname;
+    repo = "swaylock-fancy";
     rev = "35618ceec70338047355b6b057825e68f16971b5";
     sha256 = "06fjqwblmj0d9pq6y11rr73mizirna4ixy6xkvblf1c7sn5n8lpc";
   };
diff --git a/nixpkgs/pkgs/applications/window-managers/way-cooler/bar.diff b/nixpkgs/pkgs/applications/window-managers/way-cooler/bar.diff
deleted file mode 100644
index e60ebabe9833..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/way-cooler/crates-io.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/crates-io.nix
deleted file mode 100644
index 01638c6332c8..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/way-cooler/default.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/default.nix
deleted file mode 100644
index 7bc6ac700204..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/way-cooler/way-cooler.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/way-cooler.nix
deleted file mode 100644
index 28a327f1c137..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-bg.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-bg.nix
deleted file mode 100644
index a797e7aacdef..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-grab.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-grab.nix
deleted file mode 100644
index 3264357b2fdb..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-lock.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-lock.nix
deleted file mode 100644
index 6ffc5779a0b6..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/applications/window-managers/way-cooler/wlc.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/wlc.nix
deleted file mode 100644
index 03d0b3023f71..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/build-support/docker-slim/default.nix b/nixpkgs/pkgs/build-support/docker-slim/default.nix
new file mode 100644
index 000000000000..6004898f08e5
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/build-support/fetchurl/mirrors.nix b/nixpkgs/pkgs/build-support/fetchurl/mirrors.nix
index c0e115bca280..a0a61f7cc50b 100644
--- a/nixpkgs/pkgs/build-support/fetchurl/mirrors.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index 4e2e2af1aa77..dec49d24f524 100644
--- a/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/build-support/rust/build-rust-crate/test/default.nix b/nixpkgs/pkgs/build-support/rust/build-rust-crate/test/default.nix
index f0f1ed4d1ebf..aefa279fc5e9 100644
--- a/nixpkgs/pkgs/build-support/rust/build-rust-crate/test/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/build-support/rust/default.nix b/nixpkgs/pkgs/build-support/rust/default.nix
index f3e8d52387a6..a30dceca29b5 100644
--- a/nixpkgs/pkgs/build-support/rust/default.nix
+++ b/nixpkgs/pkgs/build-support/rust/default.nix
@@ -102,9 +102,9 @@ let
       '' + stdenv.lib.optionalString verifyCargoDeps ''
         if ! diff source/Cargo.lock $cargoDeps/Cargo.lock ; then
           echo
-          echo "ERROR: cargoSha256 is out of date."
+          echo "ERROR: cargoSha256 is out of date"
           echo
-          echo "Cargo.lock is not the same in $cargoDeps."
+          echo "Cargo.lock is not the same in $cargoDeps"
           echo
           echo "To fix the issue:"
           echo '1. Use "1111111111111111111111111111111111111111111111111111" as the cargoSha256 value'
diff --git a/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
new file mode 100644
index 000000000000..ada7f23f4211
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/data/fonts/sudo/default.nix b/nixpkgs/pkgs/data/fonts/sudo/default.nix
index 359139ec9c67..3906353d82b8 100644
--- a/nixpkgs/pkgs/data/fonts/sudo/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/data/fonts/victor-mono/default.nix b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
index ea562f7fa6ea..89b13585eb0b 100644
--- a/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "victor-mono";
-  version = "1.3.0";
+  version = "1.3.1";
 in fetchFromGitHub rec {
   name = "${pname}-${version}";
 
@@ -26,7 +26,7 @@ in fetchFromGitHub rec {
     unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname}
   '';
 
-  sha256 = "1lv2x7kfspabnhvm8z79n165fw3awvzj1r8f0g5zn26wgdalgw69";
+  sha256 = "1yj91rhs9pd705406r4lqabdfzjclbz837nzm6z1rziy6mbpd61s";
 
   meta = with lib; {
     description = "Free programming font with cursive italics and ligatures";
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
index a7a403726fa7..cfe65d80bd84 100644
--- a/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/data/misc/hackage/default.nix b/nixpkgs/pkgs/data/misc/hackage/default.nix
index 0537a5d53737..d6b5965cca0a 100644
--- a/nixpkgs/pkgs/data/misc/hackage/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
index 5297d5dbd5dc..8aa1f0b63309 100644
--- a/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
+++ b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
@@ -22,6 +22,15 @@ let
           stripLen = "1";
         })
 
+        # Fix reproducibility by respecting generate.consistent.ids in indexes
+        # https://github.com/docbook/xslt10-stylesheets/pull/88
+        # https://sourceforge.net/p/docbook/bugs/1385/
+        (fetchpatch {
+          url = "https://github.com/docbook/xslt10-stylesheets/commit/07631601e6602bc49b8eac3aab9d2b35968d3e7a.patch";
+          sha256 = "0igfhcr6hzcydqsnjsd181h5yl3drjnrwdmxcybr236m8255vkq3";
+          stripLen = "1";
+        })
+
         # Add legacy sourceforge.net URIs to the catalog
         (substituteAll {
           src = ./catalog-legacy-uris.patch;
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
new file mode 100644
index 000000000000..094140cbf4ee
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
new file mode 100644
index 000000000000..562ecdbfa77b
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch
new file mode 100644
index 000000000000..967ba98eb48f
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
new file mode 100644
index 000000000000..1dc58e3c3b5b
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
new file mode 100644
index 000000000000..65df49a5a1c0
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
new file mode 100644
index 000000000000..a240f670be00
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/cinnamon/cjs/fix-werror.patch b/nixpkgs/pkgs/desktops/cinnamon/cjs/fix-werror.patch
new file mode 100644
index 000000000000..0218eba3b46e
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix b/nixpkgs/pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix
new file mode 100644
index 000000000000..87f670c8c099
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/cinnamon/default.nix b/nixpkgs/pkgs/desktops/cinnamon/default.nix
index 445890782414..d58a6e4a0df5 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index d59746adc3d9..1fecf80e9ae9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
index 434a72341f66..7137ec7180e3 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index c6d5b22f9348..315968fde651 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "seahorse";
-  version = "3.34";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v";
+    sha256 = "19c2zylwgycb5q9hal8rmflc2sywc5c2grpsfsq3rf37i9lfwynw";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 5934f56274cb..93d22a99e15c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix
index 459512017c5d..3df78b88090f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
index 5f6cb92cde24..078b5051c846 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
index 137357e0a399..5b2b797e3623 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
index 9edeb3ea5dec..00f138ee7626 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix
index 33cd60f52720..9f1b52990caa 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 0e692a8e8061..d92f24d615e0 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
index 8485a1df9f3a..befa2bbbb020 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index bbb3ee59596d..27bcb21a006e 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index 260b340c2239..5a4eaf79b384 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
index 03e6ef999eb0..28ec4e65f52d 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index 4a42bc3d5654..25c3f2201ef1 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index 9943415a4573..291977349bd1 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index e601c99108b3..be97c5903eb3 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index 72f94252cca9..af6155037efb 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex
index ad7f96d6b2a6..5333ad154f5b 100644
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/bs-platform/bs-platform-62.nix b/nixpkgs/pkgs/development/compilers/bs-platform/bs-platform-62.nix
deleted file mode 100644
index d2913caaee64..000000000000
--- a/nixpkgs/pkgs/development/compilers/bs-platform/bs-platform-62.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ stdenv, fetchFromGitHub, ninja, nodejs, python3 }:
-let
-  version = "6.2.1";
-  ocaml-version = "4.06.1";
-  src = fetchFromGitHub {
-    owner = "BuckleScript";
-    repo = "bucklescript";
-    rev = "${version}";
-    sha256 = "0zx9nq7cik0c60n3rndqfqy3vdbj5lcrx6zcqcz2d60jjxi1z32y";
-    fetchSubmodules = true;
-  };
-  ocaml =  import ./ocaml.nix {
-    bs-version = version;
-    version = ocaml-version;
-    inherit stdenv;
-    src = "${src}/ocaml";
-  };
-in
-stdenv.mkDerivation {
-  inherit src version;
-  pname = "bs-platform";
-  BS_RELEASE_BUILD = "true";
-  buildInputs = [ nodejs python3 ];
-
-  patchPhase = ''
-    sed -i 's:./configure.py --bootstrap:python3 ./configure.py --bootstrap:' ./scripts/install.js
-
-    mkdir -p ./native/${ocaml-version}/bin
-    ln -sf ${ocaml}/bin/* ./native/${ocaml-version}/bin
-
-    rm -f vendor/ninja/snapshot/ninja.linux
-    cp ${ninja}/bin/ninja vendor/ninja/snapshot/ninja.linux
-  '';
-
-  configurePhase = ''
-    node scripts/ninja.js config
-  '';
-
-  buildPhase = ''
-    node scripts/ninja.js build
-  '';
-
-  installPhase = ''
-    node scripts/install.js
-
-    mkdir -p $out/bin
-
-    cp -rf jscomp lib vendor odoc_gen native $out
-    cp bsconfig.json package.json $out
-
-    ln -s $out/lib/bsb $out/bin/bsb
-    ln -s $out/lib/bsc $out/bin/bsc
-    ln -s $out/lib/bsrefmt $out/bin/bsrefmt
-  '';
-}
diff --git a/nixpkgs/pkgs/development/compilers/bs-platform/build-bs-platform.nix b/nixpkgs/pkgs/development/compilers/bs-platform/build-bs-platform.nix
new file mode 100644
index 000000000000..830a0b647c42
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/bs-platform/build-bs-platform.nix
@@ -0,0 +1,51 @@
+# This file is based on https://github.com/turboMaCk/bs-platform.nix/blob/master/build-bs-platform.nix
+# to make potential future updates simpler
+
+{ stdenv, fetchFromGitHub, ninja, runCommand, nodejs, python3,
+  ocaml-version, version, src,
+  ocaml ? (import ./ocaml.nix {
+    version = ocaml-version;
+    inherit stdenv;
+    src = "${src}/ocaml";
+  }),
+  custom-ninja ? (ninja.overrideAttrs (attrs: {
+    src = runCommand "ninja-patched-source" {} ''
+      mkdir -p $out
+      tar zxvf ${src}/vendor/ninja.tar.gz -C $out
+    '';
+    patches = [];
+  }))
+}:
+stdenv.mkDerivation {
+  inherit src version;
+  pname = "bs-platform";
+  BS_RELEASE_BUILD = "true";
+  buildInputs = [ nodejs python3 custom-ninja ];
+
+  patchPhase = ''
+    sed -i 's:./configure.py --bootstrap:python3 ./configure.py --bootstrap:' ./scripts/install.js
+    mkdir -p ./native/${ocaml-version}/bin
+    ln -sf ${ocaml}/bin/*  ./native/${ocaml-version}/bin
+    rm -f vendor/ninja/snapshot/ninja.linux
+    cp ${custom-ninja}/bin/ninja vendor/ninja/snapshot/ninja.linux
+  '';
+
+  configurePhase = ''
+    node scripts/ninja.js config
+  '';
+
+  buildPhase = ''
+    # This is an unfortunate name, but it's actually how to build a release
+    # binary for BuckleScript
+    node scripts/install.js
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -rf jscomp lib vendor odoc_gen native $out
+    cp bsconfig.json package.json $out
+    ln -s $out/lib/bsb $out/bin/bsb
+    ln -s $out/lib/bsc $out/bin/bsc
+    ln -s $out/lib/bsrefmt $out/bin/bsrefmt
+  '';
+}
diff --git a/nixpkgs/pkgs/development/compilers/bs-platform/default.nix b/nixpkgs/pkgs/development/compilers/bs-platform/default.nix
index 5eb11671ca90..7abf7b306a55 100644
--- a/nixpkgs/pkgs/development/compilers/bs-platform/default.nix
+++ b/nixpkgs/pkgs/development/compilers/bs-platform/default.nix
@@ -1,15 +1,28 @@
-{ stdenv, fetchFromGitHub, ninja, nodejs, python3, ... }:
+{ stdenv, runCommand, fetchFromGitHub, ninja, nodejs, python3, ... }:
 let
+  build-bs-platform = import ./build-bs-platform.nix;
+in
+(build-bs-platform {
+  inherit stdenv runCommand fetchFromGitHub ninja nodejs python3;
+  version = "7.0.1";
+  ocaml-version = "4.06.1";
+
+  src = fetchFromGitHub {
+    owner = "BuckleScript";
+    repo = "bucklescript";
+    rev = "52770839e293ade2bcf187f2639000ca0a9a1d46";
+    sha256 = "0s7g2zfhshsilv9zyp0246bypg34d294z27alpwz03ws9608yr7k";
+    fetchSubmodules = true;
+  };
+}).overrideAttrs (attrs: {
   meta = with stdenv.lib; {
     description = "A JavaScript backend for OCaml focused on smooth integration and clean generated code.";
     homepage = https://bucklescript.github.io;
     license = licenses.lgpl3;
-    maintainers = with maintainers; [ turbomack gamb ];
+    maintainers = with maintainers; [ turbomack gamb anmonteiro ];
     platforms = platforms.all;
+    # Currently there is an issue with aarch build in hydra
+    # https://github.com/BuckleScript/bucklescript/issues/4091
+    badPlatforms = platforms.aarch64;
   };
-in
-{
-  bs-platform-621 = import ./bs-platform-62.nix {
-    inherit stdenv fetchFromGitHub ninja nodejs python3;
-  } // { inherit meta; };
-}
+})
diff --git a/nixpkgs/pkgs/development/compilers/bs-platform/ocaml.nix b/nixpkgs/pkgs/development/compilers/bs-platform/ocaml.nix
index 1f2fdd571f3d..9aa34d02b362 100644
--- a/nixpkgs/pkgs/development/compilers/bs-platform/ocaml.nix
+++ b/nixpkgs/pkgs/development/compilers/bs-platform/ocaml.nix
@@ -1,7 +1,7 @@
-{ stdenv, src, version, bs-version }:
+{ stdenv, src, version }:
 stdenv.mkDerivation rec {
   inherit src version;
-  name = "ocaml-${version}+bs-${bs-version}";
+  name = "ocaml-${version}+bs";
   configurePhase = ''
     ./configure -prefix $out
   '';
diff --git a/nixpkgs/pkgs/development/compilers/computecpp/default.nix b/nixpkgs/pkgs/development/compilers/computecpp/default.nix
new file mode 100644
index 000000000000..65cfcaa7ff63
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/dotnet/buildDotnet.nix b/nixpkgs/pkgs/development/compilers/dotnet/buildDotnet.nix
new file mode 100644
index 000000000000..58e67ff008ae
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/dotnet/combinePackages.nix b/nixpkgs/pkgs/development/compilers/dotnet/combinePackages.nix
new file mode 100644
index 000000000000..00fb7c6d9b41
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/dotnet/default.nix b/nixpkgs/pkgs/development/compilers/dotnet/default.nix
new file mode 100644
index 000000000000..58d49a505156
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/dotnet/sdk/default.nix b/nixpkgs/pkgs/development/compilers/dotnet/sdk/default.nix
deleted file mode 100644
index 984ab39c91ad..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/compilers/dtc/default.nix b/nixpkgs/pkgs/development/compilers/dtc/default.nix
index eea75c5ace1f..78e5eccbf145 100644
--- a/nixpkgs/pkgs/development/compilers/dtc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/dtc/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchgit, flex, bison, pkgconfig, which
-, pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform, python, swig
+, pythonSupport ? false, python, swig
 }:
 
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix b/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix
index 25226d4d0e6b..b68e48025512 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix
@@ -86,12 +86,12 @@ let
 
 in
 stdenv.mkDerivation (rec {
-  version = "8.10.0.20191210";
+  version = "8.10.0.20200108";
   name = "${targetPrefix}ghc-${version}";
 
   src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/8.10.1-alpha2/ghc-${version}-src.tar.xz";
-    sha256 = "1mmv8s9cs41kp7wh1qqnzin5wv32cvs3lmzgda7njz0ssqb0mmvj";
+    url = "https://downloads.haskell.org/ghc/8.10.1-rc1/ghc-${version}-src.tar.xz";
+    sha256 = "1xm6cb3s2x3rycnyvkh12mp65xi3zbwrk5ima8sg7c245f3dl0ay";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.4.4.nix b/nixpkgs/pkgs/development/compilers/ghc/8.4.4.nix
index f79200d1199b..075947a02a4b 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.4.4.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.4.4.nix
@@ -7,7 +7,7 @@
 
 , libiconv ? null, ncurses
 
-, useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform)
+, useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform) || stdenv.targetPlatform.isiOS
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
   # build-time dependency too.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix b/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix
index 0b565d3705da..b31b3db7eb2e 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix
@@ -10,7 +10,7 @@
 , # GHC can be built with system libffi or a bundled one.
   libffi ? null
 
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
   # build-time dependency too.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.8.1.nix b/nixpkgs/pkgs/development/compilers/ghc/8.8.1.nix
index 9197b80224e7..2b859de97997 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.8.1.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.8.1.nix
@@ -10,7 +10,7 @@
 , # GHC can be built with system libffi or a bundled one.
   libffi ? null
 
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
   # build-time dependency too.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix b/nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix
index 4ed99a8402aa..b0eef9ef924d 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/ghc/head.nix b/nixpkgs/pkgs/development/compilers/ghc/head.nix
index 415f6c74ad58..d6ba6dd0fad3 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/head.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/head.nix
@@ -10,7 +10,7 @@
 , enableDwarf ? !stdenv.targetPlatform.isDarwin &&
                 !stdenv.targetPlatform.isWindows, elfutils # for DWARF support
 
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
   # build-time dependency too.
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/4.10.nix b/nixpkgs/pkgs/development/compilers/ocaml/4.10.nix
new file mode 100644
index 000000000000..6f78ae05e02e
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix b/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix
index f1126fdeddfd..d1797a448ad1 100644
--- a/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/swift/default.nix b/nixpkgs/pkgs/development/compilers/swift/default.nix
index 817f81f9257b..77bc3cc5b73e 100644
--- a/nixpkgs/pkgs/development/compilers/swift/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch b/nixpkgs/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch
index 79482ac10e69..60b2996b3405 100644
--- a/nixpkgs/pkgs/development/compilers/swift/patches/0001-build-presets-linux-don-t-require-using-Ninja.patch
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch b/nixpkgs/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch
index 5c1927acb7f1..5ca6bf1354dc 100644
--- a/nixpkgs/pkgs/development/compilers/swift/patches/0002-build-presets-linux-allow-custom-install-prefix.patch
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch b/nixpkgs/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch
index 5d766bc25901..0a66af9e5137 100644
--- a/nixpkgs/pkgs/development/compilers/swift/patches/0003-build-presets-linux-don-t-build-extra-libs.patch
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch b/nixpkgs/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch
index 1d0a6a9577aa..304b53a1dbf1 100644
--- a/nixpkgs/pkgs/development/compilers/swift/patches/0004-build-presets-linux-plumb-extra-cmake-options.patch
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/swift/patches/glibc-arch-headers.patch b/nixpkgs/pkgs/development/compilers/swift/patches/glibc-arch-headers.patch
index df906f9c84c7..c05db5208012 100644
--- a/nixpkgs/pkgs/development/compilers/swift/patches/glibc-arch-headers.patch
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/swift/patches/libdispatch-fortify-fix.patch b/nixpkgs/pkgs/development/compilers/swift/patches/libdispatch-fortify-fix.patch
deleted file mode 100644
index d23a308d68f4..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/compilers/swift/patches/llvm-include-dirs.patch b/nixpkgs/pkgs/development/compilers/swift/patches/llvm-include-dirs.patch
deleted file mode 100644
index 789c0be7e7a8..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/compilers/swift/patches/llvm-toolchain-dir.patch b/nixpkgs/pkgs/development/compilers/swift/patches/llvm-toolchain-dir.patch
new file mode 100644
index 000000000000..c22b5c820c85
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/compilers/swift/purity.patch b/nixpkgs/pkgs/development/compilers/swift/purity.patch
index 832decdc41f5..4133e89c2830 100644
--- a/nixpkgs/pkgs/development/compilers/swift/purity.patch
+++ b/nixpkgs/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/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
index f28bf4bb7075..5605af97ddcf 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index ab8966ce5907..7198ed5ff193 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 2d144651bc00..a72ee71af3ac 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/nixpkgs/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/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix b/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
index 5410fccf0bb4..c93fc5b7e451 100644
--- a/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
index 0d2cce19bf71..9de3c0c31706 100644
--- a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix b/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
index e2d01c5798f9..9ba25e09db93 100644
--- a/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/interpreters/perl/default.nix b/nixpkgs/pkgs/development/interpreters/perl/default.nix
index 3231c17e8d9b..751b9667a1f1 100644
--- a/nixpkgs/pkgs/development/interpreters/perl/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/perl/default.nix
@@ -96,8 +96,7 @@ let
         "-Dprefix=${placeholder "out"}"
         "-Dman1dir=${placeholder "out"}/share/man/man1"
         "-Dman3dir=${placeholder "out"}/share/man/man3"
-      ]
-      ++ optional (stdenv.isAarch32 || stdenv.isMips) "-Dldflags=\"-lm -lrt\"";
+      ];
 
     configureScript = optionalString (!crossCompiling) "${stdenv.shell} ./Configure";
 
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix b/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
index f05b3b1eec63..159637ae9d5f 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
@@ -2,6 +2,9 @@
 { python
 , callPackage
 , makeSetupHook
+, disabledIf
+, isPy3k
+, ensureNewerSourcesForZipFilesHook
 }:
 
 let
@@ -109,6 +112,15 @@ in rec {
       };
     } ./setuptools-check-hook.sh) {};
 
+  venvShellHook = disabledIf (!isPy3k) (callPackage ({ }:
+    makeSetupHook {
+      name = "venv-shell-hook";
+      deps = [ ensureNewerSourcesForZipFilesHook ];
+      substitutions = {
+        inherit pythonInterpreter;
+    };
+  } ./venv-shell-hook.sh) {});
+
   wheelUnpackHook = callPackage ({ wheel }:
     makeSetupHook {
       name = "wheel-unpack-hook.sh";
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh
new file mode 100644
index 000000000000..3185b1f9fae9
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh
@@ -0,0 +1,26 @@
+venvShellHook() {
+    echo "Executing venvHook"
+    runHook preShellHook
+
+    if [ -d "${venvDir}" ]; then
+      echo "Skipping venv creation, '${venvDir}' already exists"
+    else
+      echo "Creating new venv environment in path: '${venvDir}'"
+      @pythonInterpreter@ -m venv "${venvDir}"
+    fi
+
+    source "${venvDir}/bin/activate"
+
+    runHook postShellHook
+    echo "Finished executing venvShellHook"
+}
+
+if [ -z "${dontUseVenvShellHook:-}" ] && [ -z "${shellHook-}" ]; then
+    echo "Using venvShellHook"
+    if [ -z "${venvDir-}" ]; then
+        echo "Error: \`venvDir\` should be set when using \`venvShellHook\`."
+        exit 1
+    else
+        shellHook=venvShellHook
+    fi
+fi
diff --git a/nixpkgs/pkgs/development/interpreters/quickjs/default.nix b/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
index e7f01856ef59..b1d03252d7ef 100644
--- a/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/interpreters/wasmer/default.nix b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
new file mode 100644
index 000000000000..7c270e5fb447
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/alure2/default.nix b/nixpkgs/pkgs/development/libraries/alure2/default.nix
new file mode 100644
index 000000000000..91919873fa63
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/alure2/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, openal, libvorbis, opusfile, libsndfile }:
+
+stdenv.mkDerivation rec {
+  pname = "alure2";
+  version = "unstable-2020-01-09";
+
+  src = fetchFromGitHub {
+    owner = "kcat";
+    repo = "alure";
+    rev = "4b7b58d3f0de444d6f26aa705704deb59145f586";
+    sha256 = "0ds18hhy2wpvx498z5hcpzfqz9i60ixsi0cjihyvk20rf4qy12vg";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ openal libvorbis opusfile libsndfile ];
+
+  meta = with stdenv.lib; {
+    description = "A utility library for OpenAL, providing a C++ API and managing common tasks that include file loading, caching, and streaming";
+    homepage = "https://github.com/kcat/alure";
+    license = licenses.zlib;
+    platforms = platforms.linux;
+    maintainers  = with maintainers; [ McSinyx ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/assimp/default.nix b/nixpkgs/pkgs/development/libraries/assimp/default.nix
index b9207e517069..ca3320269827 100644
--- a/nixpkgs/pkgs/development/libraries/assimp/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix b/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix
index c541159a96eb..94c454859ae0 100644
--- a/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix b/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix
index 8d429987ad8d..44be67d71b4e 100644
--- a/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/audio/lv2/unstable.nix b/nixpkgs/pkgs/development/libraries/audio/lv2/unstable.nix
deleted file mode 100644
index 6f10283b07bf..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/libraries/audio/raul/default.nix b/nixpkgs/pkgs/development/libraries/audio/raul/default.nix
index 51234a415fd7..de78385e0ab3 100644
--- a/nixpkgs/pkgs/development/libraries/audio/raul/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/audio/suil/default.nix b/nixpkgs/pkgs/development/libraries/audio/suil/default.nix
index 10d650d66425..8bd460ce5454 100644
--- a/nixpkgs/pkgs/development/libraries/audio/suil/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/blitz/blitz-gcc47.patch b/nixpkgs/pkgs/development/libraries/blitz/blitz-gcc47.patch
deleted file mode 100644
index d0b35665567b..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/libraries/blitz/blitz-testsuite-stencil-et.patch b/nixpkgs/pkgs/development/libraries/blitz/blitz-testsuite-stencil-et.patch
deleted file mode 100644
index fcff8685a08d..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/libraries/blitz/default.nix b/nixpkgs/pkgs/development/libraries/blitz/default.nix
deleted file mode 100644
index f370e45b5fdd..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/libraries/cln/default.nix b/nixpkgs/pkgs/development/libraries/cln/default.nix
index dc36414fc28d..6627f46c18e7 100644
--- a/nixpkgs/pkgs/development/libraries/cln/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cln/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cln";
-  version = "1.3.5";
+  version = "1.3.6";
 
   src = fetchurl {
     url = "${meta.homepage}${pname}-${version}.tar.bz2";
-    sha256 = "0bc43v4fyxwik9gjkvm8jan74bkx9bjssv61lfh9jhhblmj010bq";
+    sha256 = "0jlq9l4hphk7qqlgqj9ihjp4m3rwjbhk6q4v00lsbgbri07574pl";
   };
 
   buildInputs = [ gmp ];
diff --git a/nixpkgs/pkgs/development/libraries/cpp-netlib/default.nix b/nixpkgs/pkgs/development/libraries/cpp-netlib/default.nix
index a4729cdeaed8..31c4c70dd9d0 100644
--- a/nixpkgs/pkgs/development/libraries/cpp-netlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cpp-netlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, boost, openssl, asio }:
+{ stdenv, fetchFromGitHub, cmake, boost, openssl }:
 
 stdenv.mkDerivation rec {
   pname = "cpp-netlib";
@@ -14,18 +14,22 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ cmake boost openssl ];
 
-  # This can be removed when updating to 0.13, see https://github.com/cpp-netlib/cpp-netlib/issues/629
-  propagatedBuildInputs = [ asio ];
-
   cmakeFlags = [
     "-DCPP-NETLIB_BUILD_SHARED_LIBS=ON"
   ];
 
   enableParallelBuilding = true;
 
+  # The test driver binary lacks an RPath to the library's libs
+  preCheck = ''
+    export LD_LIBRARY_PATH=$PWD/libs/network/src
+  '';
+
+  # Most tests make network GET requests to various websites
+  doCheck = false;
+
   meta = with stdenv.lib; {
-    description =
-      "Collection of open-source libraries for high level network programming";
+    description = "Collection of open-source libraries for high level network programming";
     homepage    = https://cpp-netlib.org;
     license     = licenses.boost;
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix b/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix
index 82e09c33a55f..e43350612941 100644
--- a/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/double-conversion/default.nix b/nixpkgs/pkgs/development/libraries/double-conversion/default.nix
index 4d8f623b36a4..ecd5ee67cf64 100644
--- a/nixpkgs/pkgs/development/libraries/double-conversion/default.nix
+++ b/nixpkgs/pkgs/development/libraries/double-conversion/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, static ? false }:
+{ stdenv, lib, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "double-conversion";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  cmakeFlags = [ "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" ];
+  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
 
   # Case sensitivity issue
   preConfigure = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/development/libraries/dyncall/default.nix b/nixpkgs/pkgs/development/libraries/dyncall/default.nix
index cfc95de15552..83c754e29286 100644
--- a/nixpkgs/pkgs/development/libraries/dyncall/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/faudio/default.nix b/nixpkgs/pkgs/development/libraries/faudio/default.nix
index 1658d69d7a1b..2be8caaa1b12 100644
--- a/nixpkgs/pkgs/development/libraries/faudio/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
index 956d2d7223f6..26a3206d2056 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, addOpenGLRunpath, perl, texinfo, yasm
+{ stdenv, buildPackages, fetchurl, pkgconfig, addOpenGLRunpath, perl, texinfo, yasm
 , alsaLib, bzip2, fontconfig, freetype, gnutls, libiconv, lame, libass, libogg
 , libssh, libtheora, libva, libdrm, libvorbis, libvpx, lzma, libpulseaudio, soxr
 , x264, x265, xvidcore, zlib, libopus, speex, nv-codec-headers, dav1d
@@ -163,8 +163,10 @@ stdenv.mkDerivation rec {
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
       "--cross-prefix=${stdenv.cc.targetPrefix}"
       "--enable-cross-compile"
+      "--pkg-config=pkg-config" # Override ffmpeg's ./configure assumption that pkg-config is prefixed by the architecture. (e.g. aarch64-unknown-linux-gnu-pkg-config)
   ] ++ optional stdenv.cc.isClang "--cc=clang");
 
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ addOpenGLRunpath perl pkgconfig texinfo yasm ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/fmt/default.nix b/nixpkgs/pkgs/development/libraries/fmt/default.nix
index fd35b697d7c2..3e79ebe15cff 100644
--- a/nixpkgs/pkgs/development/libraries/fmt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fmt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, enableShared ? true }:
+{ stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   version = "6.0.0";
@@ -17,16 +17,16 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DFMT_TEST=TRUE"
-    "-DBUILD_SHARED_LIBS=${if enableShared then "TRUE" else "FALSE"}"
+    "-DBUILD_SHARED_LIBS=TRUE"
   ];
 
   enableParallelBuilding = true;
 
   doCheck = true;
   # preCheckHook ensures the test binaries can find libfmt.so
-  preCheck = if enableShared
-             then "export LD_LIBRARY_PATH=\"$PWD\""
-             else "";
+  preCheck = ''
+    export LD_LIBRARY_PATH="$PWD"
+  '';
 
   meta = with stdenv.lib; {
     description = "Small, safe and fast formatting library";
diff --git a/nixpkgs/pkgs/development/libraries/folks/default.nix b/nixpkgs/pkgs/development/libraries/folks/default.nix
index 38e4d2c6884a..c08be846915e 100644
--- a/nixpkgs/pkgs/development/libraries/folks/default.nix
+++ b/nixpkgs/pkgs/development/libraries/folks/default.nix
@@ -21,7 +21,6 @@
 , libsecret
 , db
 , python3
-, python
 , readline
 , gtk3
 }:
@@ -51,7 +50,6 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkgconfig
-    python
     python3
     vala
   ];
diff --git a/nixpkgs/pkgs/development/libraries/fplll/default.nix b/nixpkgs/pkgs/development/libraries/fplll/default.nix
index f53d55c2ca94..107635267c6f 100644
--- a/nixpkgs/pkgs/development/libraries/fplll/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/ganv/default.nix b/nixpkgs/pkgs/development/libraries/ganv/default.nix
index 58356f0bc676..a883b2c1d10c 100644
--- a/nixpkgs/pkgs/development/libraries/ganv/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/gcab/default.nix b/nixpkgs/pkgs/development/libraries/gcab/default.nix
index c05bb95913e6..9946ebc05a54 100644
--- a/nixpkgs/pkgs/development/libraries/gcab/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/gjs/default.nix b/nixpkgs/pkgs/development/libraries/gjs/default.nix
index 7facdc1426fe..dc2a7ed4859f 100644
--- a/nixpkgs/pkgs/development/libraries/gjs/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/glfw/3.x.nix b/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
index cf988d323994..16368ae21276 100644
--- a/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.3";
+  version = "3.3.1";
   pname = "glfw";
 
   src = fetchFromGitHub {
     owner = "glfw";
     repo = "GLFW";
     rev = version;
-    sha256 = "1f1hqpqffzg46z33ybs2c3akmkly7b3qmgp5byk50nvad6g2pm4p";
+    sha256 = "0c7nlrhq84gdq10diyv6nshjbv8410bmn0vging815pfvis208xc";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/glog/default.nix b/nixpkgs/pkgs/development/libraries/glog/default.nix
index 7809dc088427..aa846e41d550 100644
--- a/nixpkgs/pkgs/development/libraries/glog/default.nix
+++ b/nixpkgs/pkgs/development/libraries/glog/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, perl, static ? false }:
+{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, gflags, perl }:
 
 stdenv.mkDerivation rec {
   pname = "glog";
@@ -20,9 +20,17 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    # A path clash on case-insensitive file systems blocks creation of the build directory.
+    # The file in question is specific to bazel and does not influence the build result.
+    rm BUILD
+  '';
+
   nativeBuildInputs = [ cmake ];
 
-  cmakeFlags = [ "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" ];
+  propagatedBuildInputs = [ gflags ];
+
+  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
 
   checkInputs = [ perl ];
   doCheck = false; # fails with "Mangled symbols (28 out of 380) found in demangle.dm"
diff --git a/nixpkgs/pkgs/development/libraries/grilo/default.nix b/nixpkgs/pkgs/development/libraries/grilo/default.nix
index 79ccc9319720..734a103e0b78 100644
--- a/nixpkgs/pkgs/development/libraries/grilo/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
index 6e9a604f7946..af2579d0594b 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -4,11 +4,10 @@
 , meson
 , ninja
 , pkgconfig
-, python
+, python3
 , gst-plugins-base
 , libxml2
 , flex
-, perl
 , gettext
 , gobject-introspection
 }:
@@ -34,9 +33,8 @@ stdenv.mkDerivation rec {
     pkgconfig
     gettext
     gobject-introspection
-    python
+    python3
     flex
-    perl
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
index 870b4468860f..d8c36fa40705 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -3,7 +3,7 @@
 , meson
 , ninja
 , pkgconfig
-, python
+, python3
 , gst-plugins-base
 , orc
 , gettext
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     ninja
     gettext
     pkgconfig
-    python
+    python3
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/validate/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/validate/default.nix
index 9439ddd94e8f..74e898481634 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/validate/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/validate/default.nix
@@ -3,7 +3,7 @@
 , pkgconfig
 , gstreamer
 , gst-plugins-base
-, python
+, python3
 , gobject-introspection
 , json-glib
 }:
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    python
+    python3
     json-glib
   ];
 
diff --git a/nixpkgs/pkgs/development/libraries/gtest/default.nix b/nixpkgs/pkgs/development/libraries/gtest/default.nix
index 4326be597246..bbc582f581c3 100644
--- a/nixpkgs/pkgs/development/libraries/gtest/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtest/default.nix
@@ -1,5 +1,4 @@
-{ stdenv, cmake, ninja, fetchFromGitHub
-, static ? false }:
+{ stdenv, cmake, ninja, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "gtest";
@@ -20,7 +19,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ninja ];
 
-  cmakeFlags = stdenv.lib.optional (!static) "-DBUILD_SHARED_LIBS=ON";
+  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
 
   meta = with stdenv.lib; {
     description = "Google's framework for writing C++ tests";
diff --git a/nixpkgs/pkgs/development/libraries/hpx/default.nix b/nixpkgs/pkgs/development/libraries/hpx/default.nix
index 11b6df37fc0c..eafd85cc92aa 100644
--- a/nixpkgs/pkgs/development/libraries/hpx/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/leatherman/default.nix b/nixpkgs/pkgs/development/libraries/leatherman/default.nix
index b7b9b019b639..48735c13ed15 100644
--- a/nixpkgs/pkgs/development/libraries/leatherman/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/leptonica/default.nix b/nixpkgs/pkgs/development/libraries/leptonica/default.nix
index e26f4f6022aa..6d73b00a6d17 100644
--- a/nixpkgs/pkgs/development/libraries/leptonica/default.nix
+++ b/nixpkgs/pkgs/development/libraries/leptonica/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "leptonica";
-  version = "1.78.0";
+  version = "1.79.0";
 
   src = fetchurl {
     url = "http://www.leptonica.org/source/${pname}-${version}.tar.gz";
-    sha256 = "122s9b8hi93va4lgwnwrbma50x5fp740npy0s92xybd2wy0jxvg2";
+    sha256 = "1n004gv1dj3pq1fcnfdclvvx5nang80336aa67nvs3nnqp4ncn84";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/libamqpcpp/default.nix b/nixpkgs/pkgs/development/libraries/libamqpcpp/default.nix
index 325a7d71598b..315d3f499560 100644
--- a/nixpkgs/pkgs/development/libraries/libamqpcpp/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/libdeflate/default.nix b/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
index b06a0a9450ab..cc06815bbffc 100644
--- a/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libdeflate";
-  version = "1.3";
+  version = "1.5";
 
   src = fetchFromGitHub {
     owner = "ebiggers";
     repo = "libdeflate";
     rev = "v${version}";
-    sha256 = "019xsz5dnbpxiz29j3zqsxyi4ksjkkygi6a2zyc8fxbm8lvaa9ar";
+    sha256 = "1v0y7998p8a8wpblnpdyk5zzvpj8pbrpzxwxmv0b0axrhaarxrf3";
   };
 
   postPatch = ''
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     description = "Fast DEFLATE/zlib/gzip compressor and decompressor";
     license = licenses.mit;
     homepage = https://github.com/ebiggers/libdeflate;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ orivej ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libevdevplus/default.nix b/nixpkgs/pkgs/development/libraries/libevdevplus/default.nix
index f538aab64adf..0f2b3e052665 100644
--- a/nixpkgs/pkgs/development/libraries/libevdevplus/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/libimobiledevice/default.nix b/nixpkgs/pkgs/development/libraries/libimobiledevice/default.nix
index 7eccfc37363c..ca643efb70c2 100644
--- a/nixpkgs/pkgs/development/libraries/libimobiledevice/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/liblinear/default.nix b/nixpkgs/pkgs/development/libraries/liblinear/default.nix
index e8d8e971bc54..7b70510dec3c 100644
--- a/nixpkgs/pkgs/development/libraries/liblinear/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/libplist/default.nix b/nixpkgs/pkgs/development/libraries/libplist/default.nix
index 19b700ca5e30..63599c4352d0 100644
--- a/nixpkgs/pkgs/development/libraries/libplist/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libplist/default.nix
@@ -1,8 +1,5 @@
-{ stdenv,  autoreconfHook, fetchFromGitHub, pkgconfig, python2Packages, glib }:
+{ stdenv, autoreconfHook, fetchFromGitHub, pkgconfig, enablePython ? false, python, glib }:
 
-let
-  inherit (python2Packages) python cython;
-in
 stdenv.mkDerivation rec {
   pname = "libplist";
   version = "2019-04-04";
@@ -14,18 +11,23 @@ stdenv.mkDerivation rec {
     sha256 = "19yw80yblq29i2jx9yb7bx0lfychy9dncri3fk4as35kq5bf26i8";
   };
 
-  outputs = ["bin" "dev" "out" "py"];
+  outputs = ["bin" "dev" "out" ] ++ stdenv.lib.optional enablePython "py";
 
   nativeBuildInputs = [
     pkgconfig
-    python
-    cython
     autoreconfHook
+  ] ++ stdenv.lib.optionals enablePython [
+    python
+    python.pkgs.cython
+  ];
+
+  configureFlags = stdenv.lib.optionals (!enablePython) [
+    "--without-cython"
   ];
 
   propagatedBuildInputs = [ glib ];
 
-  postFixup = ''
+  postFixup = stdenv.lib.optionalString enablePython ''
     moveToOutput "lib/${python.libPrefix}" "$py"
   '';
 
diff --git a/nixpkgs/pkgs/development/libraries/libpwquality/default.nix b/nixpkgs/pkgs/development/libraries/libpwquality/default.nix
index b0d5513ca0ff..c3ad33173cdb 100644
--- a/nixpkgs/pkgs/development/libraries/libpwquality/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpwquality/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, perl, cracklib, python }:
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, perl, cracklib, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "libpwquality";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoreconfHook perl ];
-  buildInputs = [ cracklib python ];
+  buildInputs = [ cracklib python3 ];
 
   meta = with lib; {
     description = "Password quality checking and random password generation library";
diff --git a/nixpkgs/pkgs/development/libraries/libre/default.nix b/nixpkgs/pkgs/development/libraries/libre/default.nix
index 433597cde6f5..6e1d0a8ce3c4 100644
--- a/nixpkgs/pkgs/development/libraries/libre/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libre/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, zlib, openssl}:
 stdenv.mkDerivation rec {
-  version = "0.6.0";
+  version = "0.6.1";
   pname = "libre";
   src = fetchurl {
     url = "http://www.creytiv.com/pub/re-${version}.tar.gz";
-    sha256 = "0cc1x6pm1nz09046bfzgvp2p3wjbgm6f53d71a9dd14grjsvr5qf";
+    sha256 = "0hzyc0hdlw795nyx6ik7h2ihs8wapbj32x8c40xq0484ciwzqnyd";
   };
   buildInputs = [ zlib openssl ];
   makeFlags = [ "USE_ZLIB=1" "USE_OPENSSL=1" "PREFIX=$(out)" ]
diff --git a/nixpkgs/pkgs/development/libraries/libsixel/default.nix b/nixpkgs/pkgs/development/libraries/libsixel/default.nix
index 561b547a8d7a..9973f3373982 100644
--- a/nixpkgs/pkgs/development/libraries/libsixel/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/libvirt/default.nix b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
index 0556e311736a..44cdd9edf523 100644
--- a/nixpkgs/pkgs/development/libraries/libvirt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
@@ -102,6 +102,7 @@ in stdenv.mkDerivation rec {
   ] ++ optionals stdenv.isLinux [
     "QEMU_BRIDGE_HELPER=/run/wrappers/bin/qemu-bridge-helper"
     "QEMU_PR_HELPER=/run/libvirt/nix-helpers/qemu-pr-helper"
+    "EBTABLES_PATH=${ebtables}/bin/ebtables-legacy"
     "--with-attr"
     "--with-apparmor"
     "--with-secdriver-apparmor"
diff --git a/nixpkgs/pkgs/development/libraries/libvterm-neovim/default.nix b/nixpkgs/pkgs/development/libraries/libvterm-neovim/default.nix
index 50ee7e4d3873..0cd1b64c1b9e 100644
--- a/nixpkgs/pkgs/development/libraries/libvterm-neovim/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvterm-neovim/default.nix
@@ -6,13 +6,14 @@
 
 stdenv.mkDerivation {
   pname = "libvterm-neovim";
-  version = "2019-10-08";
+  # Releases are not tagged, look at commit history to find latest release
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "neovim";
     repo = "libvterm";
-    rev = "7c72294d84ce20da4c27362dbd7fa4b08cfc91da";
-    sha256 = "111qyxq33x74dwdnqcnzlv9j0n8hxyribd6ppwcsxmyrniyw9qrk";
+    rev = "65dbda3ed214f036ee799d18b2e693a833a0e591";
+    sha256 = "0r6yimzbkgrsi9aaxwvxahai2lzgjd1ysblr6m6by5w459853q3n";
   };
 
   buildInputs = [ perl ];
diff --git a/nixpkgs/pkgs/development/libraries/olm/default.nix b/nixpkgs/pkgs/development/libraries/olm/default.nix
index 8fbdf28965bf..f63d1d30f558 100644
--- a/nixpkgs/pkgs/development/libraries/olm/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix b/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix
index 33bc4c6e82c2..90da6c192120 100644
--- a/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchFromGitHub, glibcLocales
-, cmake, python3
+, cmake, python3, libpng, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "onnxruntime";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "onnxruntime";
     rev = "v${version}";
-    sha256 = "1d28lzrjnq69yl8j9ncxlsxl0bniacn3hnsr9van10zgp527436v";
+    sha256 = "1ryf5v2h07c7b42q2p9id88i270ajyz5rlsradp00dy8in6dn2yr";
     # TODO: use nix-versions of grpc, onnx, eigen, googletest, etc.
     # submodules increase src size and compile times significantly
     # not currently feasible due to how integrated cmake build is with git
@@ -25,12 +25,19 @@ stdenv.mkDerivation rec {
     python3 # for shared-lib or server
   ];
 
+  buildInputs = [
+    # technically optional, but highly recommended
+    libpng
+    zlib
+  ];
+
   cmakeDir = "../cmake";
 
   cmakeFlags = [
     "-Donnxruntime_USE_OPENMP=ON"
     "-Donnxruntime_BUILD_SHARED_LIB=ON"
-    "-Donnxruntime_ENABLE_LTO=ON"
+    # flip back to ON next release
+    "-Donnxruntime_ENABLE_LTO=OFF" # https://github.com/microsoft/onnxruntime/issues/2828
   ];
 
   # ContribOpTest.StringNormalizerTest sets locale to en_US.UTF-8"
diff --git a/nixpkgs/pkgs/development/libraries/openssl/default.nix b/nixpkgs/pkgs/development/libraries/openssl/default.nix
index 118aa984c174..63657cfc5e6e 100644
--- a/nixpkgs/pkgs/development/libraries/openssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openssl/default.nix
@@ -36,7 +36,7 @@ let
 
     outputs = [ "bin" "dev" "out" "man" ] ++ optional withDocs "doc";
     setOutputFlags = false;
-    separateDebugInfo = stdenv.hostPlatform.isLinux;
+    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/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix b/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
index 95e44f2364cb..7f7260d52c0c 100644
--- a/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
   patches = [
     ./darwin.patch # configure relies on impure sw_vers to -Dunix
     (fetchpatch {
-      url = "https://phab-files.hepforge.org/file/data/j3ja4jirrdyrovrmnbuh/PHID-FILE-6vnor4aoz3s2ejruisrg/file";
-      sha256 = "0flxv08wcd0m5di75s2zvm015k2k70nqgpcgcbq7m604z26pd6ab";
+      url = "https://gitlab.com/hepcedar/rivet/commit/37bd34f52cce66946ebb311a8fe61bfc5f69cc00.diff";
+      sha256 = "0wj3ilpfq2gpc33bj3800l9vyvc9lrrlj1x9ss5qki0yiqd8i2aa";
     })
   ];
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix
index 7c1fa449ebba..b611282294c6 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix
@@ -1,11 +1,11 @@
-{ qtModule, lib, python2, qtbase, qtsvg }:
+{ qtModule, lib, python3, qtbase, qtsvg }:
 
 with lib;
 
 qtModule {
   name = "qtdeclarative";
   qtInputs = [ qtbase qtsvg ];
-  nativeBuildInputs = [ python2 ];
+  nativeBuildInputs = [ python3 ];
   outputs = [ "out" "dev" "bin" ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QML2_IMPORT_PREFIX=\"$qtQmlPrefix\""
diff --git a/nixpkgs/pkgs/development/libraries/science/biology/htslib/default.nix b/nixpkgs/pkgs/development/libraries/science/biology/htslib/default.nix
index 7d771414fb01..cdd56731fa0e 100644
--- a/nixpkgs/pkgs/development/libraries/science/biology/htslib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/biology/htslib/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "htslib";
-  version = "1.9";
+  version = "1.10.2";
 
   src = fetchurl {
     url = "https://github.com/samtools/htslib/releases/download/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "16ljv43sc3fxmv63w7b2ff8m1s7h89xhazwmbm1bicz8axq8fjz0";
+    sha256 = "0f8rglbvf4aaw41i2sxlpq7pvhly93sjqiz0l4q3hwki5zg47dg3";
   };
 
   # perl is only used during the check phase.
diff --git a/nixpkgs/pkgs/development/libraries/sentencepiece/default.nix b/nixpkgs/pkgs/development/libraries/sentencepiece/default.nix
index 556f77ef8b51..907e0cc50760 100644
--- a/nixpkgs/pkgs/development/libraries/sentencepiece/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/libraries/trompeloeil/default.nix b/nixpkgs/pkgs/development/libraries/trompeloeil/default.nix
index 0ab115daeefb..6984a2694d61 100644
--- a/nixpkgs/pkgs/development/libraries/trompeloeil/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix b/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix
index f912bdaa21f1..4585a3b8596c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.12.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/ocaml-modules/lens/default.nix b/nixpkgs/pkgs/development/ocaml-modules/lens/default.nix
new file mode 100644
index 000000000000..27a753ae81a5
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/lens/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip, ppx_deriving, ppxfind, buildDunePackage }:
+
+buildDunePackage rec {
+  pname = "lens";
+  version = "1.2.3";
+
+  src = fetchzip {
+    url = "https://github.com/pdonadeo/ocaml-lens/archive/v${version}.tar.gz";
+    sha256 = "09k2vhzysx91syjhgv6w1shc9mgzi0l4bhwpx1g5pi4r4ghjp07y";
+  };
+
+  minimumOCamlVersion = "4.04.1";
+  buildInputs = [ ppx_deriving ppxfind ];
+
+  meta = with lib; {
+    homepage = https://github.com/pdonadeo/ocaml-lens;
+    description = "Functional lenses";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [
+      kazcw
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
index 23940ef14995..f633d17252cd 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/ocaml-modules/sedlex/2.nix b/nixpkgs/pkgs/development/ocaml-modules/sedlex/2.nix
new file mode 100644
index 000000000000..09390a27343f
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix b/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix
index 53b11f285a67..f47d7d37631f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix
@@ -1,24 +1,22 @@
-{ stdenv, fetchurl, sqlite, ocaml, findlib, ocamlbuild, pkgconfig }:
+{ lib, fetchurl, sqlite, pkgconfig, buildDunePackage }:
 
-stdenv.mkDerivation rec {
-  pname = "ocaml-sqlite3";
-  version = "2.0.9";
+buildDunePackage rec {
+  pname = "sqlite3";
+  version = "5.0.1";
+  minimumOCamlVersion = "4.05";
 
   src = fetchurl {
-    url = "https://github.com/mmottl/sqlite3-ocaml/releases/download/v${version}/sqlite3-ocaml-${version}.tar.gz";
-    sha256 = "0rwsx1nfa3xqmbygim2qx45jqm1gwf08m70wmcwkx50f1qk3l551";
+    url = "https://github.com/mmottl/sqlite3-ocaml/releases/download/${version}/sqlite3-${version}.tbz";
+    sha256 = "0iymkszrs6qwak0vadfzc8yd8jfwn06zl08ggb4jr2mgk2c8mmsn";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ ocaml findlib ocamlbuild sqlite ];
+  buildInputs = [ sqlite ];
 
-  createFindlibDestdir = true;
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = http://mmottl.github.io/sqlite3-ocaml/;
     description = "OCaml bindings to the SQLite 3 database access library";
     license = licenses.mit;
-    platforms = ocaml.meta.platforms or [];
     maintainers = with maintainers; [
       maggesi vbgl
     ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/stdint/default.nix b/nixpkgs/pkgs/development/ocaml-modules/stdint/default.nix
index a36d84ffa3a7..bffef61956e2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/stdint/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/ocaml-modules/uchar/default.nix b/nixpkgs/pkgs/development/ocaml-modules/uchar/default.nix
index 2140871021da..b5b2170e56ab 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/uchar/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/uchar/default.nix
@@ -8,10 +8,10 @@ stdenv.mkDerivation {
     sha256 = "1w2saw7zanf9m9ffvz2lvcxvlm118pws2x1wym526xmydhqpyfa7";
   };
 
-  nativeBuildInputs = [ ocaml ocamlbuild findlib opaline ];
-  buildInputs = [ findlib ocaml ocamlbuild opaline ];
+  nativeBuildInputs = [ ocaml ocamlbuild findlib ];
+  buildInputs = [ findlib ocaml ocamlbuild ];
   buildPhase = "ocaml pkg/build.ml native=true native-dynlink=${if withShared then "true" else "false"}";
-  installPhase = "opaline -libdir $OCAMLFIND_DESTDIR";
+  installPhase = "${opaline}/bin/opaline -libdir $OCAMLFIND_DESTDIR";
   configurePlatforms = [];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/authheaders/default.nix b/nixpkgs/pkgs/development/python-modules/authheaders/default.nix
index 09ed34ed9151..fdb478bc143b 100644
--- a/nixpkgs/pkgs/development/python-modules/authheaders/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/authheaders/default.nix
@@ -1,4 +1,6 @@
-{ buildPythonPackage, fetchPypi, lib, authres, dnspython, dkimpy, publicsuffix }:
+{ buildPythonPackage, fetchPypi, isPy27, lib
+, authres, dnspython, dkimpy, ipaddress, publicsuffix
+}:
 
 buildPythonPackage rec {
   pname = "authheaders";
@@ -9,7 +11,8 @@ buildPythonPackage rec {
     sha256 = "0hf1p6ws3jma608pmcb5qsl58xg33wz2s51qqzi9zix0llcnyc97";
   };
 
-  propagatedBuildInputs = [ authres dnspython dkimpy publicsuffix ];
+  propagatedBuildInputs = [ authres dnspython dkimpy publicsuffix ]
+                          ++ lib.optional isPy27 ipaddress;
 
   meta = {
     description = "Python library for the generation of email authentication headers";
diff --git a/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix b/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
new file mode 100644
index 000000000000..46272a5418d1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
@@ -0,0 +1,22 @@
+{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "avro-python3";
+  version = "1.9.1";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "daab2cea71b942a1eb57d700d4a729e9d6cd93284d4dd4d65a378b9f958aa0d2";
+  };
+
+  doCheck = false;        # No such file or directory: './run_tests.py
+
+  meta = with lib; {
+    description = "A serialization and RPC framework";
+    homepage = https://pypi.python.org/pypi/avro-python3/;
+    license = licenses.asl20;
+
+    maintainers = [ maintainers.shlevy maintainers.timma ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/binwalk/default.nix b/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
index ec613527e92b..97c6b957a437 100644
--- a/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/coreapi/default.nix b/nixpkgs/pkgs/development/python-modules/coreapi/default.nix
new file mode 100644
index 000000000000..216d1ee69850
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/coreschema/default.nix b/nixpkgs/pkgs/development/python-modules/coreschema/default.nix
new file mode 100644
index 000000000000..949fa31df958
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/dash-core-components/default.nix b/nixpkgs/pkgs/development/python-modules/dash-core-components/default.nix
new file mode 100644
index 000000000000..dfcbb9b6404a
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/dash-html-components/default.nix b/nixpkgs/pkgs/development/python-modules/dash-html-components/default.nix
new file mode 100644
index 000000000000..4e9ef39b411b
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/dash-renderer/default.nix b/nixpkgs/pkgs/development/python-modules/dash-renderer/default.nix
new file mode 100644
index 000000000000..97942a13043b
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/dash-table/default.nix b/nixpkgs/pkgs/development/python-modules/dash-table/default.nix
new file mode 100644
index 000000000000..4a9a6c42ff48
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/dash/default.nix b/nixpkgs/pkgs/development/python-modules/dash/default.nix
new file mode 100644
index 000000000000..2106235230f8
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/denonavr/default.nix b/nixpkgs/pkgs/development/python-modules/denonavr/default.nix
new file mode 100644
index 000000000000..33c1570060e5
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix b/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
index 4dc286ae1b37..d62542536768 100644
--- a/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
@@ -16,10 +16,10 @@ buildPythonPackage rec {
     sha256 = "0053yqq4vq3mwy7zkfs5vfm3g8j9sfy3vrc6xby83qlj9wz43ipi";
   };
 
-  # This patch can be removed when updating this pkg to the next version
+  # This patch fixes a single failing test and can be removed when updating this pkg
+  # to the next version
   patches = [
     (fetchpatch {
-      # Commit title: fix highlighting test
       url = "https://github.com/django-extensions/django-extensions/commit/1d21786da2e6868d98ae34c82079e1e03ad1aa97.patch";
       sha256 = "0d81zpj0f8a7ijrfb12j0b67fgj89k3axaskz1nwqsr4wc6n4bw2";
     })
diff --git a/nixpkgs/pkgs/development/python-modules/django/2_1.nix b/nixpkgs/pkgs/development/python-modules/django/2_1.nix
deleted file mode 100644
index 19e8b0c1a751..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix b/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
new file mode 100644
index 000000000000..707b1e5bc6e2
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/flask-sockets/default.nix b/nixpkgs/pkgs/development/python-modules/flask-sockets/default.nix
new file mode 100644
index 000000000000..aa29fd4fbc94
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/fluidasserts/default.nix b/nixpkgs/pkgs/development/python-modules/fluidasserts/default.nix
new file mode 100644
index 000000000000..f76692c50d97
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/flux-led/default.nix b/nixpkgs/pkgs/development/python-modules/flux-led/default.nix
new file mode 100644
index 000000000000..1cbfca78462f
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/getmac/default.nix b/nixpkgs/pkgs/development/python-modules/getmac/default.nix
new file mode 100644
index 000000000000..51ce0ef05031
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix b/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix
new file mode 100644
index 000000000000..028ca3654236
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub, buildPythonPackage, python, lxml }:
+
+buildPythonPackage rec {
+  pname = "gpxpy";
+  version = "1.3.5";
+
+  src = fetchFromGitHub {
+    owner = "tkrajina";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "18r7pfda7g3l0hv8j9565n52cvvgjxiiqqzagfdfaba1djgl6p8b";
+  };
+
+  propagatedBuildInputs = [ lxml ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest test
+  '';
+
+  meta = with lib; {
+    description = "Python GPX (GPS eXchange format) parser";
+    homepage = "https://github.com/tkrajina/gpxpy";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix b/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
index fdb5a69ddd79..9e3b0cdc894c 100644
--- a/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   # pytz fake_factory django numpy pytest
   # If you need these, you can just add them to your environment.
 
-  version = "4.56.1";
+  version = "4.41.0";
   pname = "hypothesis";
 
   # Use github tarballs that includes tests
diff --git a/nixpkgs/pkgs/development/python-modules/itypes/default.nix b/nixpkgs/pkgs/development/python-modules/itypes/default.nix
new file mode 100644
index 000000000000..1386ba39a268
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/mailmanclient/default.nix b/nixpkgs/pkgs/development/python-modules/mailmanclient/default.nix
index fe52eda2e1ae..247a7ed1b004 100644
--- a/nixpkgs/pkgs/development/python-modules/mailmanclient/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/mixpanel/default.nix b/nixpkgs/pkgs/development/python-modules/mixpanel/default.nix
index e770eedbfc31..fac1afe2c97b 100644
--- a/nixpkgs/pkgs/development/python-modules/mixpanel/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix b/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix
index 00d869cb3913..61a055b5ea8a 100644
--- a/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/nest-asyncio/default.nix b/nixpkgs/pkgs/development/python-modules/nest-asyncio/default.nix
index a88c07c99687..0016da922ff3 100644
--- a/nixpkgs/pkgs/development/python-modules/nest-asyncio/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/onnx/default.nix b/nixpkgs/pkgs/development/python-modules/onnx/default.nix
new file mode 100644
index 000000000000..3f3cf38f3332
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/onnx/default.nix
@@ -0,0 +1,78 @@
+{ lib
+, fetchpatch
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, isPy27
+, cmake
+, protobuf
+, numpy
+, six
+, typing-extensions
+, typing
+, pytestrunner
+, pytest
+, nbval
+, tabulate
+}:
+
+buildPythonPackage rec {
+  pname = "onnx";
+  version = "1.6.0";
+
+  # Due to Protobuf packaging issues this build of Onnx with Python 2 gives
+  # errors on import
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ig33jl3591041lyylxp52yi20rfrcqx3i030hd6al8iabzc721v";
+  };
+
+  # Remove the unqualified requirement for the typing package for running the
+  # tests. typing is already required for the installation, where it is
+  # correctly qualified so as to only be required for sufficiently old Python
+  # versions.
+  # This patch should be in the next release (>1.6).
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/onnx/onnx/commit/c963586d0f8dd5740777b2fd06f04ec60816de9f.patch";
+      sha256 = "1hl26cw5zckc91gmh0bdah87jyprccxiw0f4i5h1gwkq28hm6wbj";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  propagatedBuildInputs = [
+    protobuf
+    numpy
+    six
+    typing-extensions
+  ] ++ lib.optional (pythonOlder "3.5") [ typing ];
+
+  checkInputs = [
+    pytestrunner
+    pytest
+    nbval
+    tabulate
+  ];
+
+  postPatch = ''
+    patchShebangs tools/protoc-gen-mypy.py
+  '';
+
+  # The executables are just utility scripts that aren't too important
+  postInstall = ''
+    rm -r $out/bin
+  '';
+
+  # The setup.py does all the configuration (running CMake)
+  dontConfigure = true;
+
+  meta = {
+    homepage    = http://onnx.ai;
+    description = "Open Neural Network Exchange";
+    license     = lib.licenses.mit;
+    maintainers = [ lib.maintainers.acairncross ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/plexapi/default.nix b/nixpkgs/pkgs/development/python-modules/plexapi/default.nix
new file mode 100644
index 000000000000..ed95de9ffde6
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/plexauth/default.nix b/nixpkgs/pkgs/development/python-modules/plexauth/default.nix
new file mode 100644
index 000000000000..91407a907a44
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/plexwebsocket/default.nix b/nixpkgs/pkgs/development/python-modules/plexwebsocket/default.nix
new file mode 100644
index 000000000000..383a37cee3fe
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/publicsuffix/default.nix b/nixpkgs/pkgs/development/python-modules/publicsuffix/default.nix
index 92a1f7c43a72..061ad6858614 100644
--- a/nixpkgs/pkgs/development/python-modules/publicsuffix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/publicsuffix/default.nix
@@ -10,9 +10,8 @@ buildPythonPackage rec {
   };
 
 
-  # fix the ASCII-mode LICENSE file read
   # disable test_fetch and the doctests (which also invoke fetch)
-  patchPhase = ''
+  postPatch = ''
     sed -i -e "/def test_fetch/i\\
     \\t@unittest.skip('requires internet')" -e "/def additional_tests():/,+1d" tests.py
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
new file mode 100644
index 000000000000..cb91196fc7e6
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/pycurl/default.nix b/nixpkgs/pkgs/development/python-modules/pycurl/default.nix
index 153a6e0377db..36e5b96319e3 100644
--- a/nixpkgs/pkgs/development/python-modules/pycurl/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/pydicom/default.nix b/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
new file mode 100644
index 000000000000..d281193be231
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/pyezminc/default.nix b/nixpkgs/pkgs/development/python-modules/pyezminc/default.nix
deleted file mode 100644
index 614a1555cbef..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/python-modules/pyicloud/default.nix b/nixpkgs/pkgs/development/python-modules/pyicloud/default.nix
new file mode 100644
index 000000000000..50dd1a09890f
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/pylint-celery/default.nix b/nixpkgs/pkgs/development/python-modules/pylint-celery/default.nix
new file mode 100644
index 000000000000..6bc7a93049e9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pylint-celery/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, lib
+
+# pythonPackages
+, pylint-plugin-utils
+}:
+
+buildPythonPackage rec {
+  pname = "pylint-celery";
+  version = "0.3";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "PyCQA";
+    repo = pname;
+    rev = version;
+    sha256 = "05fhwraq12c2724pn4py1bjzy5rmsrb1x68zck73nlp5icba6yap";
+  };
+
+  propagatedBuildInputs = [
+    pylint-plugin-utils
+  ];
+
+  # Testing requires a very old version of pylint, incompatible with other dependencies
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A Pylint plugin to analyze Celery applications";
+    homepage = "https://github.com/PyCQA/pylint-celery";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix b/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix
new file mode 100644
index 000000000000..04010098807c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix
@@ -0,0 +1,39 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, lib
+
+# pythonPackages
+, django
+, pylint-plugin-utils
+}:
+
+buildPythonPackage rec {
+  pname = "pylint-django";
+  version = "2.0.12";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "PyCQA";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ha06wpqqn5fp5dapgjhsdx3ahh3y62l7k2f3czlrdjmmivgdp9y";
+  };
+
+  propagatedBuildInputs = [
+    django
+    pylint-plugin-utils
+  ];
+
+  # Testing requires checkout from other repositories
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A Pylint plugin to analyze Django applications";
+    homepage = "https://github.com/PyCQA/pylint-django";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pylint-flask/default.nix b/nixpkgs/pkgs/development/python-modules/pylint-flask/default.nix
new file mode 100644
index 000000000000..5077d07a936b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pylint-flask/default.nix
@@ -0,0 +1,36 @@
+{ buildPythonPackage
+, fetchPypi
+, isPy3k
+, lib
+
+# pythonPackages
+, pylint-plugin-utils
+}:
+
+buildPythonPackage rec {
+  pname = "pylint-flask";
+  version = "0.6";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05qmwgkpvaa5k05abqjxfbrfk3wpdqb8ph690z7bzxvb47i7vngl";
+  };
+
+  propagatedBuildInputs = [
+    pylint-plugin-utils
+  ];
+
+  # Tests require a very old version of pylint
+  #   also tests are only available at GitHub, with an old release tag
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A Pylint plugin to analyze Flask applications";
+    homepage = "https://github.com/jschaf/pylint-flask";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pynrrd/default.nix b/nixpkgs/pkgs/development/python-modules/pynrrd/default.nix
new file mode 100644
index 000000000000..02361fe84deb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pynrrd/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pynrrd";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "mhe";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1wn3ara3i19fi1y9a5j4imyczpa6dkkzd5djggxg4kkl1ff9awrj";
+  };
+
+  propagatedBuildInputs = [ numpy ];
+
+  meta = with lib; {
+    homepage = https://github.com/mhe/pynrrd;
+    description = "Simple pure-Python reader for NRRD files";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix b/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix
index 3af86dabe215..41576c5ad1fc 100644
--- a/nixpkgs/pkgs/development/python-modules/pypandoc/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/python-miio/default.nix b/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
new file mode 100644
index 000000000000..eb7c91531965
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, appdirs
+, click
+, construct
+, cryptography
+, pytest
+, zeroconf
+, attrs
+, pytz
+, tqdm
+, netifaces
+}:
+
+buildPythonPackage rec {
+  pname = "python-miio";
+  version = "0.4.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "19423b3386b23d2e0fc94a8f6a358bcfbb44eed05376e33fd434d26d168bd18c";
+  };
+
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [ appdirs click construct cryptography zeroconf attrs pytz tqdm netifaces ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python library for interfacing with Xiaomi smart appliances";
+    homepage = https://github.com/rytilahti/python-miio;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ flyfloh ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/python-olm/default.nix b/nixpkgs/pkgs/development/python-modules/python-olm/default.nix
index 4fc0ad66f95b..b1e01f7f4abf 100644
--- a/nixpkgs/pkgs/development/python-modules/python-olm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-olm/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, olm,
-  cffi, future, typing }:
+  cffi, future, isPy3k, typing }:
 
 buildPythonPackage {
   pname = "python-olm";
@@ -15,8 +15,7 @@ buildPythonPackage {
   propagatedBuildInputs = [
     cffi
     future
-    typing
-  ];
+  ] ++ lib.optionals (!isPy3k) [ typing ];
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/requirements-detector/default.nix b/nixpkgs/pkgs/development/python-modules/requirements-detector/default.nix
index a0f312389f1a..0d91cbc7509f 100644
--- a/nixpkgs/pkgs/development/python-modules/requirements-detector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requirements-detector/default.nix
@@ -4,6 +4,7 @@
 , lib
 
 # pythonPackages
+, astroid
 , pytest
 }:
 
@@ -13,12 +14,16 @@ buildPythonPackage rec {
   disabled = isPy27;
 
   src = fetchFromGitHub {
-    owner = "yuvadm";
+    owner = "landscapeio";
     repo = pname;
     rev = version;
-    sha256 = "15s0n1lhkz0zwi33waqkkjipal3f7s45rxsj1bw89xpr4dj87qx5";
+    sha256 = "1sfmm7daz0kpdx6pynsvi6qlfhrzxx783l1wb69c8dfzya4xssym";
   };
 
+  propagatedBuildInputs = [
+    astroid
+  ];
+
   checkInputs = [
     pytest
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/runway-python/default.nix b/nixpkgs/pkgs/development/python-modules/runway-python/default.nix
index 5c60b6379e93..fca11c100cf0 100644
--- a/nixpkgs/pkgs/development/python-modules/runway-python/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/rxv/default.nix b/nixpkgs/pkgs/development/python-modules/rxv/default.nix
new file mode 100644
index 000000000000..8133936798ed
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
index 67584789995e..d556dcb74cf2 100644
--- a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -13,6 +13,7 @@
 , pyramid
 , rq
 , sanic
+, sqlalchemy
 , stdenv
 , tornado
 , urllib3
@@ -27,7 +28,7 @@ buildPythonPackage rec {
     sha256 = "c6b919623e488134a728f16326c6f0bcdab7e3f59e7f4c472a90eea4d6d8fe82";
   };
 
-  checkInputs = [ django flask tornado bottle rq falcon ]
+  checkInputs = [ django flask tornado bottle rq falcon sqlalchemy ]
   ++ stdenv.lib.optionals isPy3k [ celery pyramid sanic aiohttp ];
 
   propagatedBuildInputs = [ urllib3 certifi ];
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
index f52a49313772..194b90cb42ad 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
@@ -13,7 +13,7 @@
 
 let
   pname = "setuptools";
-  version = "42.0.2";
+  version = "44.0.0";
 
   # Create an sdist of setuptools
   sdist = stdenv.mkDerivation rec {
@@ -23,7 +23,7 @@ let
       owner = "pypa";
       repo = pname;
       rev = "v${version}";
-      sha256 = "1xqx3sha5ir40g1h15r7q063bcbl9bvh967vig574k3jgwxrz2ik";
+      sha256 = "0z3q0qinyp1rmnxkw3y5f6nbsxhqlfq5k7skfrqa6ymb3zr009y1";
       name = "${pname}-${version}-source";
     };
 
diff --git a/nixpkgs/pkgs/development/python-modules/snitun/default.nix b/nixpkgs/pkgs/development/python-modules/snitun/default.nix
index da9dbd798450..8212379e3d48 100644
--- a/nixpkgs/pkgs/development/python-modules/snitun/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/python-modules/solo-python/default.nix b/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
index 52d7d7539f92..1b1896187f9d 100644
--- a/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
@@ -3,7 +3,7 @@
 
  buildPythonPackage rec {
   pname = "solo-python";
-  version = "0.0.18";
+  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 = "01mgppjvxlr93vrgz7bzisghpg1vqyaj4cg5wngk0h499iyx4d9q";
+    sha256 = "0r9cq0sd8pqnavgwa5cqgdxzbgly2baq8fpclnnz6anb2974kg3f";
   };
 
   # replaced pinned fido, with unrestricted fido version
@@ -48,6 +48,5 @@
     homepage = "https://github.com/solokeys/solo-python";
     maintainers = with maintainers; [ wucke13 ];
     license = with licenses; [ asl20 mit ];
-    broken = true; # no longer compatible with fido2
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/srsly/default.nix b/nixpkgs/pkgs/development/python-modules/srsly/default.nix
index 2b87c38b0854..42d3da93c90e 100644
--- a/nixpkgs/pkgs/development/python-modules/srsly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/srsly/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "srsly";
-  version = "0.2.0";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0gha1xfh64mapvgn0sghnjsvmjdrh5rywhs3j3bhkvwk42kf40ma";
+    sha256 = "0d49a90gsfyxwp8g14mvvw1kjm77qgx86zg4812kcmlz9ycb80hi";
   };
 
   propagatedBuildInputs = lib.optional (pythonOlder "3.4") pathlib;
diff --git a/nixpkgs/pkgs/development/python-modules/stups-pierone/default.nix b/nixpkgs/pkgs/development/python-modules/stups-pierone/default.nix
new file mode 100644
index 000000000000..aaa049916411
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/stups-pierone/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, requests
+, stups-cli-support
+, stups-zign
+, pytest
+, pytestcov
+, hypothesis
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "stups-pierone";
+  version = "1.1.45";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "zalando-stups";
+    repo = "pierone-cli";
+    rev = version;
+    sha256 = "1ggfizw27wpcagbbk15xpfrhq6b250cx4278b5d7y8s438g128cs";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    stups-cli-support
+    stups-zign
+  ];
+
+  preCheck = "
+    export HOME=$TEMPDIR
+  ";
+
+  checkInputs = [
+    pytest
+    pytestcov
+    hypothesis
+  ];
+
+  meta = with lib; {
+    description = "Convenient command line client for STUPS' Pier One Docker registry";
+    homepage = "https://github.com/zalando-stups/pierone-cli";
+    license = licenses.asl20;
+    maintainers = [ maintainers.mschuwalow ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sysv_ipc/default.nix b/nixpkgs/pkgs/development/python-modules/sysv_ipc/default.nix
new file mode 100644
index 000000000000..37853980f43a
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/r-modules/default.nix b/nixpkgs/pkgs/development/r-modules/default.nix
index 2019ee45f3cd..5fa0cd15962d 100644
--- a/nixpkgs/pkgs/development/r-modules/default.nix
+++ b/nixpkgs/pkgs/development/r-modules/default.nix
@@ -311,7 +311,6 @@ let
     rgdal = [ pkgs.proj.dev pkgs.gdal ];
     rgeos = [ pkgs.geos ];
     rggobi = [ pkgs.ggobi pkgs.gtk2.dev pkgs.libxml2.dev ];
-    rgl = [ pkgs.libGLU pkgs.libGL pkgs.xlibsWrapper ];
     Rglpk = [ pkgs.glpk ];
     RGtk2 = [ pkgs.gtk2.dev ];
     rhdf5 = [ pkgs.zlib ];
@@ -404,6 +403,7 @@ let
     RCurl = [ pkgs.curl.dev ];
     R2SWF = [ pkgs.pkgconfig ];
     rggobi = [ pkgs.pkgconfig ];
+    rgl = [ pkgs.libGLU pkgs.libGLU.dev pkgs.libGL pkgs.xlibsWrapper ];
     RGtk2 = [ pkgs.pkgconfig ];
     RProtoBuf = [ pkgs.pkgconfig ];
     Rpoppler = [ pkgs.pkgconfig ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/coz/default.nix b/nixpkgs/pkgs/development/tools/analysis/coz/default.nix
index 1ef3457e8e9c..3775d09b27d2 100644
--- a/nixpkgs/pkgs/development/tools/analysis/coz/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/analysis/flow/default.nix b/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
index ecd8f3a17ec9..2d2c3b0274d7 100644
--- a/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/boomerang/default.nix b/nixpkgs/pkgs/development/tools/boomerang/default.nix
index 9e567ef59b0d..821e51ac6058 100644
--- a/nixpkgs/pkgs/development/tools/boomerang/default.nix
+++ b/nixpkgs/pkgs/development/tools/boomerang/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "boomerang";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "BoomerangDecompiler";
     repo = pname;
     rev = "v${version}";
-    sha256 = "046ba4km8c31kbnllx05nbqhjmk7bpi56d3n8md8bsr98nj21a2j";
+    sha256 = "0xncdp0z8ry4lkzmvbj5d7hlzikivghpwicgywlv47spgh8ny0ix";
   };
 
   nativeBuildInputs = [ cmake bison flex ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/gn/default.nix b/nixpkgs/pkgs/development/tools/build-managers/gn/default.nix
index 7b29e7d02dc6..d8557bfcbc27 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/gn/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/gn/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchgit, darwin, writeText
-, git, ninja, python2 }:
+, git, ninja, python3 }:
 
 let
   rev = "64b846c96daeb3eaf08e26d8a84d8451c6cb712b";
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     inherit rev sha256;
   };
 
-  nativeBuildInputs = [ ninja python2 git ];
+  nativeBuildInputs = [ ninja python3 git ];
   buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
     libobjc
     cctools
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix b/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix
index 0b858f6f20d2..6178a7368fc5 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/buildah/default.nix b/nixpkgs/pkgs/development/tools/buildah/default.nix
index db01a068c00c..7a17d3dfb568 100644
--- a/nixpkgs/pkgs/development/tools/buildah/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/2.x.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/2.x.nix
deleted file mode 100644
index 6a73e2581822..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/3.x.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/3.x.nix
deleted file mode 100644
index e8266c2efe2c..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
new file mode 100644
index 000000000000..7e86c93b9bd6
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 214e48b14b6d..91ef9d4a222d 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/database/pg_checksums/default.nix b/nixpkgs/pkgs/development/tools/database/pg_checksums/default.nix
new file mode 100644
index 000000000000..f440e550a897
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/dive/default.nix b/nixpkgs/pkgs/development/tools/dive/default.nix
index 2113e319f19a..6c4d91bac78f 100644
--- a/nixpkgs/pkgs/development/tools/dive/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/geckodriver/cargo-lock.patch b/nixpkgs/pkgs/development/tools/geckodriver/cargo-lock.patch
new file mode 100644
index 000000000000..a283d0c382c9
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/geckodriver/default.nix b/nixpkgs/pkgs/development/tools/geckodriver/default.nix
index 68d1a74b2777..9f0de971d1bd 100644
--- a/nixpkgs/pkgs/development/tools/geckodriver/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix b/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
index b08300040b96..83df38cf7db5 100644
--- a/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/kind/default.nix b/nixpkgs/pkgs/development/tools/kind/default.nix
index 411b6a261d67..94a0ff87982e 100644
--- a/nixpkgs/pkgs/development/tools/kind/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/kind/deps.nix b/nixpkgs/pkgs/development/tools/kind/deps.nix
index 99a73291d713..1706406c4566 100644
--- a/nixpkgs/pkgs/development/tools/kind/deps.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix b/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
index 771f8005c1fd..f2bb771f217c 100644
--- a/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix b/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix
index b1a51a771448..8628990d5313 100644
--- a/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix b/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
index 8da3cd57703c..29bf1333aa05 100644
--- a/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
@@ -1,20 +1,26 @@
 { stdenv, fetchurl, cmake, extra-cmake-modules, qt5,
   ki18n, kconfig, kiconthemes, kxmlgui, kwindowsystem,
+  qtbase, makeWrapper,
 }:
 
 stdenv.mkDerivation rec {
   pname = "kdbg";
-  version = "3.0.0";
+  version = "3.0.1";
   src = fetchurl {
     url = "mirror://sourceforge/kdbg/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0lxfal6jijdcrf0hc81gmapfmz0kq4569d5qzfm4p72rq9s4r5in";
+    sha256 = "1gax6xll8svmngw0z1rzhd77xysv01zp0i68x4n5pq0xgh7gi7a4";
   };
 
-  nativeBuildInputs = [ cmake extra-cmake-modules ];
+  nativeBuildInputs = [ cmake extra-cmake-modules makeWrapper ];
   buildInputs = [ qt5.qtbase ki18n kconfig kiconthemes kxmlgui kwindowsystem ];
 
   enableParallelBuilding = true;
 
+
+  postInstall = ''
+    wrapProgram $out/bin/kdbg --prefix QT_PLUGIN_PATH : ${qtbase}/${qtbase.qtPluginPrefix}
+  '';
+
   meta = with stdenv.lib; {
     homepage = http://www.kdbg.org/;
     description = ''
diff --git a/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix b/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
index 449d9ee09848..0c1a3dfc9326 100644
--- a/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix b/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix
index 04364ea174a6..9af294716ff3 100644
--- a/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch b/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch
new file mode 100644
index 000000000000..d55caab22e69
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch
@@ -0,0 +1,283 @@
+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
+-PREFIX      = $(DESTDIR)/usr
+-ETCDIR      = $(DESTDIR)/etc
++PREFIX      = /usr/local
++ETCDIR      = $(PREFIX)/etc
+ SYSDIR      = $(ETCDIR)/systemd/system
+ UPSDIR      = $(ETCDIR)/init
+-UDEVDIR     = $(DESTDIR)/lib/udev
++UDEVDIR     = $(PREFIX)/lib/udev
+ SBINDIR     = $(PREFIX)/sbin
+ MANDIR      = $(PREFIX)/share/man/man1
+ 
++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 \
+ 	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: all-with-script-dispatcher
+ 
+@@ -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_dispatcher.tcl
++configure-dispatcher:
++	sed -i \
++	  -e 's,^\(set setup(sbindir) \).*$$,\1$(SBINDIR),' \
++	  -e 's,^\(set setup(etcdir) \).*$$,\1$(ETCDIR),' \
++	  usb_modeswitch_dispatcher.tcl
++
++configure-script:
++	sed -i -e 's,^\(SBINDIR=\).*$$,\1$(SBINDIR),' usb_modeswitch.sh
++
++configure-systemd:
++	sed -i -e 's,@sbindir@,$(SBINDIR),' usb_modeswitch@.service
++
++configure-upstart:
++	sed -i -e 's,@sbindir@,$(SBINDIR),' usb-modeswitch-upstart.conf
++
++configure: configure-dispatcher configure-script \
++	configure-systemd configure-upstart
++
++dispatcher-script: configure-dispatcher usb_modeswitch_dispatcher.tcl
+ 	DISPATCH=dispatcher-script
+ 	cp -f usb_modeswitch_dispatcher.tcl usb_modeswitch_dispatcher
+ 
+@@ -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) $(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 $(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
++	install -D --mode=644 usb_modeswitch.1 $(DESTDIR)$(MANDIR)/usb_modeswitch.1
++	install -D --mode=644 usb_modeswitch_dispatcher.1 $(DESTDIR)$(MANDIR)/usb_modeswitch_dispatcher.1
++	install -D --mode=755 usb_modeswitch_dispatcher $(DESTDIR)$(SBINDIR)/usb_modeswitch_dispatcher
+ 	install -d $(DESTDIR)/var/lib/usb_modeswitch
+-	test -d $(UPSDIR) -a -e /sbin/initctl && install --mode=644 usb-modeswitch-upstart.conf $(UPSDIR) || test 1
+-	test -d $(SYSDIR) -a \( -e /usr/bin/systemctl -o -e /bin/systemctl \) && install --mode=644 usb_modeswitch@.service $(SYSDIR) || test 1
++
++install-upstart:
++	install -D --mode=644 usb-modeswitch-upstart.conf $(DESTDIR)$(UPSDIR)/usb-modeswitch-upstart.conf
++
++install-systemd:
++	install -D --mode=644 usb_modeswitch@.service $(DESTDIR)$(SYSDIR)/usb_modeswitch@.service
++
++ifeq ($(USE_UPSTART),true)
++install-common: install-upstart
++endif
++
++ifeq ($(USE_SYSTEMD),true)
++install-common: install-systemd
++endif
+ 
+ install: install-script
+ 
+@@ -73,10 +110,10 @@ install-dynlink: dispatcher-dynlink inst
+ install-statlink: dispatcher-statlink install-common
+ 
+ uninstall:
+-	$(RM) $(SBINDIR)/usb_modeswitch
+-	$(RM) $(SBINDIR)/usb_modeswitch_dispatcher
+-	$(RM) $(UDEVDIR)/usb_modeswitch
+-	$(RM) $(ETCDIR)/usb_modeswitch.conf
+-	$(RM) $(MANDIR)/usb_modeswitch.1
++	$(RM) $(DESTDIR)$(SBINDIR)/usb_modeswitch
++	$(RM) $(DESTDIR)$(SBINDIR)/usb_modeswitch_dispatcher
++	$(RM) $(DESTDIR)$(UDEVDIR)/usb_modeswitch
++	$(RM) $(DESTDIR)$(ETCDIR)/usb_modeswitch.conf
++	$(RM) $(DESTDIR)$(MANDIR)/usb_modeswitch.1
+ 	$(RM) -R $(DESTDIR)/var/lib/usb_modeswitch
+-	$(RM) $(SYSDIR)/usb_modeswitch@.service
++	$(RM) $(DESTDIR)$(SYSDIR)/usb_modeswitch@.service
+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
+ script
+-	exec /usr/sbin/usb_modeswitch_dispatcher --switch-mode $UMS_PARAM
++	exec @sbindir@/usb_modeswitch_dispatcher --switch-mode $UMS_PARAM
+ end script
+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.6.0
++
++# Compile time configuration, injected by the Makefile
++SBINDIR=/usr/sbin
++
+ device_in()
+ {
+ 	if [ ! -e /var/lib/usb_modeswitch/$1 ]; then
+@@ -37,7 +41,7 @@ if [ $(expr "$1" : "--.*") ]; then
+ 		v_id=$3
+ 	fi
+ fi
+-PATH=/sbin:/usr/sbin:$PATH
++
+ case "$1" in
+ 	--driver-bind)
+ 		# driver binding code removed
+@@ -46,9 +50,7 @@ case "$1" in
+ 	--symlink-name)
+ 		device_in "link_list" $v_id $p_id
+ 		if [ "$?" = "1" ]; then
+-			if [ -e "/usr/sbin/usb_modeswitch_dispatcher" ]; then
+-				exec usb_modeswitch_dispatcher $1 $2 2>>/dev/null
+-			fi
++			exec $SBINDIR/usb_modeswitch_dispatcher $1 $2 2>>/dev/null
+ 		fi
+ 		exit 0
+ 		;;
+@@ -61,15 +63,13 @@ if [ "$p2" = "" -a "$p1" != "" ]; then
+ 	p2=$p1
+ fi
+ 
+-PATH=/bin:/sbin:/usr/bin:/usr/sbin
+-init_path=`readlink -f /sbin/init`
+-if [ `basename $init_path` = "systemd" ]; then
++if command -v systemctl > /dev/null; then
+ 	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
+ else
+ 	# only old distros, new udev will kill all subprocesses
+ 	exec 1<&- 2<&- 5<&- 7<&-
+-	exec usb_modeswitch_dispatcher --switch-mode $p2 &
++	exec $SBINDIR/usb_modeswitch_dispatcher --switch-mode $p2 &
+ fi
+ exit 0
+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.6.0 package
+ # (C) Josua Dietze 2009-2019
+ 
++# Compile-time configuration, injected by the Makefile.
++set setup(sbindir) /usr/sbin
++set setup(etcdir) /etc
++
++# External dependency default location
++set setup(dbdir) /usr/share/usb_modeswitch
++
++# Derived configuration
++set setup(dbdir_etc) $setup(etcdir)/usb_modeswitch.d
++
+ set arg0 [lindex $argv 0]
+ if [regexp {\.tcl$} $arg0] {
+ 	if [file exists $arg0] {
+@@ -115,10 +125,8 @@ if {![regexp {(.*?):.*$} $arg1 d device]
+ 	}
+ }
+ 
+-set setup(dbdir) /usr/share/usb_modeswitch
+-set setup(dbdir_etc) /etc/usb_modeswitch.d
+ if {![file exists $setup(dbdir)] && ![file exists $setup(dbdir_etc)]} {
+-	Log "\nError: no config database found in /usr/share or /etc. Exit"
++	Log "\nError: no config database found in $setup(dbdir) or $setup(dbdir_etc). Exit"
+ 	SafeExit
+ }
+ 
+@@ -285,7 +293,7 @@ if {$config(NoMBIMCheck)==0 && $usb(bNum
+ 	if [CheckMBIM] {
+ 		Log " driver for MBIM devices is available"
+ 		Log "Find MBIM configuration number ..."
+-		if [catch {set cfgno [exec /usr/sbin/usb_modeswitch -j -Q $busParam $devParam -v $usb(idVendor) -p $usb(idProduct)]} err] {
++		if [catch {set cfgno [exec $setup(sbindir)/usb_modeswitch -j -Q $busParam $devParam -v $usb(idVendor) -p $usb(idProduct)]} err] {
+ 			Log "Error when trying to find MBIM configuration, switch to legacy modem mode"
+ 		} else {
+ 			set cfgno [string trim $cfgno]
+@@ -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)"
+-		catch {set report [exec /usr/sbin/usb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
++		catch {set report [exec $setup(sbindir)/usb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
+ 		Log "\nVerbose debug output of usb_modeswitch and libusb follows"
+ 		Log "(Note that some USB errors are to be expected in the process)"
+ 		Log "--------------------------------"
+@@ -329,7 +337,7 @@ if {$report == ""} {
+ 		Log "--------------------------------"
+ 		Log "(end of usb_modeswitch output)\n"
+ 	} else {
+-		catch {set report [exec /usr/sbin/usb_modeswitch -Q -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
++		catch {set report [exec $setup(sbindir)/usb_modeswitch -Q -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
+ 	}
+ }
+ 
+@@ -522,12 +530,12 @@ return 1
+ 
+ proc {ParseGlobalConfig} {path} {
+ 
+-global flags
++global flags setup
+ set configFile ""
+ 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] {
+@@ -923,10 +931,12 @@ proc {SysLog} {msg} {
+ 
+ global flags
+ if {![info exists flags(logger)]} {
+-	set flags(logger) ""
+-	foreach fn {/bin/logger /usr/bin/logger} {
+-		if [file exists $fn] {
+-			set flags(logger) $fn
++	set flags(logger) [exec sh -c "command -v logger || true"]
++	if {$flags(logger) == ""} {
++		foreach fn {/bin/logger /usr/bin/logger} {
++			if [file exists $fn] {
++				set flags(logger) $fn
++			}
+ 		}
+ 	}
+ 	Log "Logger is $flags(logger)"
diff --git a/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/data.nix b/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/data.nix
index d2b80011dea0..6280b103ab60 100644
--- a/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/data.nix
+++ b/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/data.nix
@@ -9,10 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "1ygahl3r26r38ai8yyblq9nhf3v5i6n6r6672p5wf88wg5h9n0rz";
   };
 
-  inherit (usb-modeswitch) makeFlags;
+  makeFlags = [
+    "PREFIX=$(out)"
+    "DESTDIR=$(out)"
+  ];
 
   prePatch = ''
-    sed -i 's@usb_modeswitch@${usb-modeswitch}/bin/usb_modeswitch@g' 40-usb_modeswitch.rules
+    sed -i 's@usb_modeswitch@${usb-modeswitch}/lib/udev/usb_modeswitch@g' 40-usb_modeswitch.rules
   '';
 
   # we add tcl here so we can patch in support for new devices by dropping config into
diff --git a/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/default.nix b/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/default.nix
index a0e1b8eb8ceb..731ac836412a 100644
--- a/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, libusb1 }:
+{ stdenv, lib, fetchurl, pkgconfig, makeWrapper
+, libusb1, tcl, utillinux, coreutils, bash }:
 
 stdenv.mkDerivation rec {
   pname = "usb-modeswitch";
@@ -9,19 +10,32 @@ stdenv.mkDerivation rec {
     sha256 = "18wbbxc5cfsmikba0msdvd5qlaga27b32nhrzicyd9mdddp265f2";
   };
 
+  patches = [ ./configurable-usb-modeswitch.patch ];
+
+  # Remove attempts to write to /etc and /var/lib.
+  postPatch = ''
+    sed -i \
+      -e '/^\tinstall .* usb_modeswitch.conf/s,$(ETCDIR),$(out)/etc,' \
+      -e '\,^\tinstall -d .*/var/lib/usb_modeswitch,d' \
+      Makefile
+  '';
+
   makeFlags = [
-    "DESTDIR=$(out)"
     "PREFIX=$(out)"
+    "ETCDIR=/etc"
+    "USE_UPSTART=false"
+    "USE_SYSTEMD=true"
+    "SYSDIR=$(out)/lib/systemd/system"
+    "UDEVDIR=$(out)/lib/udev"
   ];
 
-  # make clean: we always build from source. It should be necessary on x86_64 only
-  preConfigure = ''
-    find -type f | xargs sed 's@/bin/rm@rm@g' -i
-    make clean
+  postFixup = ''
+    wrapProgram $out/bin/usb_modeswitch_dispatcher \
+      --set PATH ${lib.makeBinPath [ utillinux coreutils bash ]}
   '';
 
-  buildInputs = [ libusb1 ];
-  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libusb1 tcl ];
+  nativeBuildInputs = [ pkgconfig makeWrapper ];
 
   meta = with stdenv.lib; {
     description = "A mode switching tool for controlling 'multi-mode' USB devices";
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
index ed193b9e6cd7..8e409ac8ca7a 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix b/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix
index df4c0f2d12c2..f1028208dae9 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl b/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl
index 59a1cd223b5d..605d0c41cae9 100755
--- a/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
index 8e0e861fab3f..b6d533875523 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
@@ -20,16 +20,10 @@ let
 
   getFunctorFn = fn: if builtins.typeOf fn == "set" then fn.__functor else fn;
 
-  getAttrDefault = attribute: set: default: (
-    if builtins.hasAttr attribute set
-    then builtins.getAttr attribute set
-    else default
-  );
-
   # Map SPDX identifiers to license names
   spdxLicenses = lib.listToAttrs (lib.filter (pair: pair.name != null) (builtins.map (v: { name = if lib.hasAttr "spdxId" v then v.spdxId else null; value = v; }) (lib.attrValues lib.licenses)));
   # Get license by id falling back to input string
-  getLicenseBySpdxId = spdxId: getAttrDefault spdxId spdxLicenses spdxId;
+  getLicenseBySpdxId = spdxId: spdxLicenses.${spdxId} or spdxId;
 
   #
   # Returns an attrset { python, poetryPackages } for the given lockfile
@@ -65,7 +59,7 @@ let
       # closure as python can only ever have one version of a dependency
       baseOverlay = self: super:
         let
-          getDep = depName: if builtins.hasAttr depName self then self."${depName}" else throw "foo";
+          getDep = depName: self.${depName};
 
           lockPkgs = builtins.listToAttrs (
             builtins.map (
@@ -74,7 +68,7 @@ let
                 value = self.mkPoetryDep (
                   pkgMeta // {
                     inherit pwd;
-                    source = getAttrDefault "source" pkgMeta null;
+                    source = pkgMeta.source or null;
                     files = lockFiles.${name};
                     pythonPackages = self;
                   }
@@ -159,12 +153,12 @@ let
       passedAttrs = builtins.removeAttrs attrs specialAttrs;
 
       getDeps = depAttr: let
-        deps = getAttrDefault depAttr pyProject.tool.poetry {};
+        deps = pyProject.tool.poetry.${depAttr} or {};
         depAttrs = builtins.map (d: lib.toLower d) (builtins.attrNames deps);
       in
         builtins.map (dep: py.pkgs."${dep}") depAttrs;
 
-      getInputs = attr: getAttrDefault attr attrs [];
+      getInputs = attr: attrs.${attr} or [];
       mkInput = attr: extraInputs: getInputs attr ++ extraInputs;
 
       buildSystemPkgs = poetryLib.getBuildSystemPkgs {
@@ -189,7 +183,7 @@ let
             python = py;
           };
 
-          postPatch = (getAttrDefault "postPatch" passedAttrs "") + ''
+          postPatch = (passedAttrs.postPatch or "") + ''
             # Tell poetry not to resolve the path dependencies. Any version is
             # fine !
             yj -tj < pyproject.toml | python ${./pyproject-without-path.py} > pyproject.json
@@ -199,7 +193,7 @@ let
 
           meta = meta // {
             inherit (pyProject.tool.poetry) description homepage;
-            license = getLicenseBySpdxId (getAttrDefault "license" pyProject.tool.poetry "unknown");
+            license = getLicenseBySpdxId (pyProject.tool.poetry.license or "unknown");
           };
 
         }
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
index 559c3051a73a..68d854f26488 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
@@ -30,22 +30,24 @@ let
     in
       (builtins.foldl' combine initial tokens).state;
 
-  fromTOML = toml: if builtins.hasAttr "fromTOML" builtins then builtins.fromTOML toml else
-    builtins.fromJSON (
-      builtins.readFile (
-        pkgs.runCommand "from-toml"
-          {
-            inherit toml;
-            allowSubstitutes = false;
-            preferLocalBuild = true;
-          }
-          ''
-            ${pkgs.remarshal}/bin/remarshal \
-              -if toml \
-              -i <(echo "$toml") \
-              -of json \
-              -o $out
-          ''
+  fromTOML = builtins.fromTOML or
+    (
+      toml: builtins.fromJSON (
+        builtins.readFile (
+          pkgs.runCommand "from-toml"
+            {
+              inherit toml;
+              allowSubstitutes = false;
+              preferLocalBuild = true;
+            }
+            ''
+              ${pkgs.remarshal}/bin/remarshal \
+                -if toml \
+                -i <(echo "$toml") \
+                -of json \
+                -o $out
+            ''
+        )
       )
     );
   readTOML = path: fromTOML (builtins.readFile path);
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
index 256e2d90daaf..95543ca73590 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
@@ -16,102 +16,112 @@
 , pwd
 , supportedExtensions ? lib.importJSON ./extensions.json
 , ...
-}: let
-
-  inherit (poetryLib) isCompatible getManyLinuxDeps fetchFromPypi;
+}:
 
-  inherit (import ./pep425.nix {
-    inherit lib python;
-    inherit (pkgs) stdenv;
-  }) selectWheel
-    ;
+pythonPackages.callPackage (
+  { preferWheel ? false
+  }:
 
-  fileCandidates = let
-    supportedRegex = ("^.*?(" + builtins.concatStringsSep "|" supportedExtensions + ")");
-    matchesVersion = fname: builtins.match ("^.*" + builtins.replaceStrings [ "." ] [ "\\." ] version + ".*$") fname != null;
-    hasSupportedExtension = fname: builtins.match supportedRegex fname != null;
-    isCompatibleEgg = fname: ! lib.strings.hasSuffix ".egg" fname || lib.strings.hasSuffix "py${python.pythonVersion}.egg" fname;
-  in
-    builtins.filter (f: matchesVersion f.file && hasSupportedExtension f.file && isCompatibleEgg f.file) files;
+    let
 
-  toPath = s: pwd + "/${s}";
+      inherit (poetryLib) isCompatible getManyLinuxDeps fetchFromPypi;
 
-  isSource = source != null;
-  isGit = isSource && source.type == "git";
-  isLocal = isSource && source.type == "directory";
+      inherit (import ./pep425.nix {
+        inherit lib python;
+        inherit (pkgs) stdenv;
+      }) selectWheel
+        ;
 
-  localDepPath = toPath source.url;
-  pyProject = poetryLib.readTOML (localDepPath + "/pyproject.toml");
+      fileCandidates = let
+        supportedRegex = ("^.*?(" + builtins.concatStringsSep "|" supportedExtensions + ")");
+        matchesVersion = fname: builtins.match ("^.*" + builtins.replaceStrings [ "." ] [ "\\." ] version + ".*$") fname != null;
+        hasSupportedExtension = fname: builtins.match supportedRegex fname != null;
+        isCompatibleEgg = fname: ! lib.strings.hasSuffix ".egg" fname || lib.strings.hasSuffix "py${python.pythonVersion}.egg" fname;
+      in
+        builtins.filter (f: matchesVersion f.file && hasSupportedExtension f.file && isCompatibleEgg f.file) files;
 
-  buildSystemPkgs = poetryLib.getBuildSystemPkgs {
-    inherit pythonPackages pyProject;
-  };
+      toPath = s: pwd + "/${s}";
 
-  fileInfo = let
-    isBdist = f: lib.strings.hasSuffix "whl" f.file;
-    isSdist = f: ! isBdist f && ! isEgg f;
-    isEgg = f: lib.strings.hasSuffix ".egg" f.file;
+      isSource = source != null;
+      isGit = isSource && source.type == "git";
+      isLocal = isSource && source.type == "directory";
 
-    binaryDist = selectWheel fileCandidates;
-    sourceDist = builtins.filter isSdist fileCandidates;
-    eggs = builtins.filter isEgg fileCandidates;
+      localDepPath = toPath source.url;
+      pyProject = poetryLib.readTOML (localDepPath + "/pyproject.toml");
 
-    lockFileEntry = builtins.head (sourceDist ++ binaryDist ++ eggs);
+      buildSystemPkgs = poetryLib.getBuildSystemPkgs {
+        inherit pythonPackages pyProject;
+      };
 
-    _isEgg = isEgg lockFileEntry;
+      fileInfo = let
+        isBdist = f: lib.strings.hasSuffix "whl" f.file;
+        isSdist = f: ! isBdist f && ! isEgg f;
+        isEgg = f: lib.strings.hasSuffix ".egg" f.file;
 
-  in
-    rec {
-      inherit (lockFileEntry) file hash;
-      name = file;
-      format =
-        if _isEgg then "egg"
-        else if lib.strings.hasSuffix ".whl" name then "wheel"
-        else "setuptools";
-      kind =
-        if _isEgg then python.pythonVersion
-        else if format == "setuptools" then "source"
-        else (builtins.elemAt (lib.strings.splitString "-" name) 2);
-    };
+        binaryDist = selectWheel fileCandidates;
+        sourceDist = builtins.filter isSdist fileCandidates;
+        eggs = builtins.filter isEgg fileCandidates;
 
-  baseBuildInputs = lib.optional (name != "setuptools_scm" && name != "setuptools-scm") pythonPackages.setuptools_scm;
+        entries = (if preferWheel then binaryDist ++ sourceDist else sourceDist ++ binaryDist) ++ eggs;
 
-in
+        lockFileEntry = builtins.head entries;
 
-buildPythonPackage {
-  pname = name;
-  version = version;
+        _isEgg = isEgg lockFileEntry;
 
-  doCheck = false; # We never get development deps
-  dontStrip = true;
-  format = if isLocal then "pyproject" else if isGit then "setuptools" else fileInfo.format;
+      in
+        rec {
+          inherit (lockFileEntry) file hash;
+          name = file;
+          format =
+            if _isEgg then "egg"
+            else if lib.strings.hasSuffix ".whl" name then "wheel"
+            else "setuptools";
+          kind =
+            if _isEgg then python.pythonVersion
+            else if format == "setuptools" then "source"
+            else (builtins.elemAt (lib.strings.splitString "-" name) 2);
+        };
 
-  nativeBuildInputs = if (!isSource && (getManyLinuxDeps fileInfo.name).str != null) then [ autoPatchelfHook ] else [];
-  buildInputs = baseBuildInputs ++ (if !isSource then (getManyLinuxDeps fileInfo.name).pkg else []);
+      baseBuildInputs = lib.optional (name != "setuptools_scm" && name != "setuptools-scm") pythonPackages.setuptools_scm;
 
-  propagatedBuildInputs =
-    let
-      # Some dependencies like django gets the attribute name django
-      # but dependencies try to access Django
-      deps = builtins.map (d: lib.toLower d) (builtins.attrNames dependencies);
     in
-      (builtins.map (n: pythonPackages.${n}) deps) ++ (if isLocal then buildSystemPkgs else []);
-
-  meta = {
-    broken = ! isCompatible python.version python-versions;
-    license = [];
-  };
-
-  # We need to retrieve kind from the interpreter and the filename of the package
-  # Interpreters should declare what wheel types they're compatible with (python type + ABI)
-  # Here we can then choose a file based on that info.
-  src = if isGit then (
-    builtins.fetchGit {
-      inherit (source) url;
-      rev = source.reference;
-    }
-  ) else if isLocal then (localDepPath) else fetchFromPypi {
-    pname = name;
-    inherit (fileInfo) file hash kind;
-  };
-}
+
+      buildPythonPackage {
+        pname = name;
+        version = version;
+
+        doCheck = false; # We never get development deps
+        dontStrip = true;
+        format = if isLocal then "pyproject" else if isGit then "setuptools" else fileInfo.format;
+
+        nativeBuildInputs = if (!isSource && (getManyLinuxDeps fileInfo.name).str != null) then [ autoPatchelfHook ] else [];
+        buildInputs = baseBuildInputs ++ (if !isSource then (getManyLinuxDeps fileInfo.name).pkg else []);
+
+        propagatedBuildInputs =
+          let
+            # Some dependencies like django gets the attribute name django
+            # but dependencies try to access Django
+            deps = builtins.map (d: lib.toLower d) (builtins.attrNames dependencies);
+          in
+            (builtins.map (n: pythonPackages.${n}) deps) ++ (if isLocal then buildSystemPkgs else []);
+
+        meta = {
+          broken = ! isCompatible python.version python-versions;
+          license = [];
+        };
+
+        # We need to retrieve kind from the interpreter and the filename of the package
+        # Interpreters should declare what wheel types they're compatible with (python type + ABI)
+        # Here we can then choose a file based on that info.
+        src = if isGit then (
+          builtins.fetchGit {
+            inherit (source) url;
+            rev = source.reference;
+          }
+        ) else if isLocal then (localDepPath) else fetchFromPypi {
+          pname = name;
+          inherit (fileInfo) file hash kind;
+        };
+      }
+
+) {}
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
index 207841fd005f..48b8ff9859be 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
@@ -5,14 +5,6 @@
 
 self: super:
 
-let
-
-  getAttrDefault = attribute: set: default:
-    if builtins.hasAttr attribute set
-    then builtins.getAttr attribute set
-    else default;
-
-in
 {
   av = super.av.overrideAttrs (
     old: {
@@ -52,7 +44,7 @@ in
   django = (
     super.django.overrideAttrs (
       old: {
-        propagatedNativeBuildInputs = (getAttrDefault "propagatedNativeBuildInputs" old [])
+        propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [])
         ++ [ pkgs.gettext ];
       }
     )
@@ -64,7 +56,7 @@ in
         if ! test -e LICENSE; then
           touch LICENSE
         fi
-      '' + (getAttrDefault "configurePhase" old "");
+      '' + (old.configurePhase or "");
     }
   );
 
@@ -85,6 +77,13 @@ in
     }
   );
 
+  # importlib-metadata has an incomplete dependency specification
+  importlib-metadata = super.importlib-metadata.overrideAttrs (
+    old: {
+      propagatedBuildInputs = old.propagatedBuildInputs ++ lib.optional self.python.isPy2 self.pathlib2;
+    }
+  );
+
   lap = super.lap.overrideAttrs (
     old: {
       propagatedBuildInputs = old.propagatedBuildInputs ++ [
@@ -154,6 +153,11 @@ in
     }
   );
 
+  # Calls Cargo at build time for source builds and is really tricky to package
+  maturin = super.maturin.override {
+    preferWheel = true;
+  };
+
   mccabe = super.mccabe.overrideAttrs (
     old: {
       postPatch = ''
@@ -293,6 +297,93 @@ in
     }
   );
 
+  pyqt5 = super.pyqt5.overridePythonAttrs (
+    old: {
+      format = "other";
+
+      nativeBuildInputs = old.nativeBuildInputs ++ [
+        pkgs.pkgconfig
+        pkgs.qt5.qmake
+        pkgs.xorg.lndir
+        pkgs.qt5.qtbase
+        pkgs.qt5.qtsvg
+        pkgs.qt5.qtdeclarative
+        pkgs.qt5.qtwebchannel
+        # self.pyqt5-sip
+        self.sip
+      ];
+
+      buildInputs = old.buildInputs ++ [
+        pkgs.dbus
+        pkgs.qt5.qtbase
+        pkgs.qt5.qtsvg
+        pkgs.qt5.qtdeclarative
+        self.sip
+      ];
+
+      # Fix dbus mainloop
+      inherit (pkgs.python3.pkgs.pyqt5) patches;
+
+      configurePhase = ''
+        runHook preConfigure
+
+        export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages}
+
+        mkdir -p $out/${self.python.sitePackages}/dbus/mainloop
+        ${self.python.executable} configure.py  -w \
+          --confirm-license \
+          --no-qml-plugin \
+          --bindir=$out/bin \
+          --destdir=$out/${self.python.sitePackages} \
+          --stubsdir=$out/${self.python.sitePackages}/PyQt5 \
+          --sipdir=$out/share/sip/PyQt5 \
+          --designer-plugindir=$out/plugins/designer
+
+        runHook postConfigure
+      '';
+
+      postInstall = ''
+        ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/
+        for i in $out/bin/*; do
+          wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
+        done
+
+        # # Let's make it a namespace package
+        # cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py
+        # from pkgutil import extend_path
+        # __path__ = extend_path(__path__, __name__)
+        # EOF
+      '';
+
+      installCheckPhase = let
+        modules = [
+          "PyQt5"
+          "PyQt5.QtCore"
+          "PyQt5.QtQml"
+          "PyQt5.QtWidgets"
+          "PyQt5.QtGui"
+        ];
+        imports = lib.concatMapStrings (module: "import ${module};") modules;
+      in
+        ''
+          echo "Checking whether modules can be imported..."
+          ${self.python.interpreter} -c "${imports}"
+        '';
+
+      doCheck = true;
+
+      enableParallelBuilding = true;
+    }
+  );
+
+  pytest-datadir = super.pytest-datadir.overrideAttrs (
+    old: {
+      postInstall = ''
+        rm -f $out/LICENSE
+      '';
+    }
+  );
+
   python-prctl = super.python-prctl.overrideAttrs (
     old: {
       buildInputs = old.buildInputs ++ [
@@ -340,6 +431,14 @@ in
     }
   );
 
+  vose-alias-method = super.pytest-datadir.overrideAttrs (
+    old: {
+      postInstall = ''
+        rm -f $out/LICENSE
+      '';
+    }
+  );
+
   # Stop infinite recursion by using bootstrapped pkg from nixpkgs
   wheel = (
     pkgs.python3.pkgs.override {
diff --git a/nixpkgs/pkgs/development/tools/prospector/default.nix b/nixpkgs/pkgs/development/tools/prospector/default.nix
new file mode 100644
index 000000000000..38472ce86f01
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/prospector/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, pkgs
+, python
+}:
+
+let
+  py = python.override {
+    packageOverrides = self: super: {
+      pep8-naming = super.pep8-naming.overridePythonAttrs(oldAttrs: rec {
+        version = "0.4.1";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "0nhf8p37y008shd4f21bkj5pizv8q0l8cpagyyb8gr059d6gvvaf";
+        };
+      });
+    };
+  };
+  setoptconf = py.pkgs.callPackage ./setoptconf.nix { };
+in
+
+with py.pkgs;
+
+buildPythonApplication rec {
+  pname = "prospector";
+  version = "1.2.0";
+  disabled = isPy27;
+
+  src = pkgs.fetchFromGitHub {
+    owner = "PyCQA";
+    repo = pname;
+    rev = version;
+    sha256 = "07kb37zrrsriqzcmli0ghx7qb1iwkzh83qsiikl9jy50faby2sjg";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  patchPhase = ''
+    substituteInPlace setup.py \
+      --replace 'pycodestyle<=2.4.0' 'pycodestyle<=2.5.0'
+  '';
+
+  propagatedBuildInputs = [
+    astroid
+    django
+    dodgy
+    mccabe
+    pep8-naming
+    pycodestyle
+    pydocstyle
+    pyflakes
+    pylint
+    pylint-celery
+    pylint-django
+    pylint-flask
+    pyyaml
+    requirements-detector
+    setoptconf
+  ];
+
+  meta = with lib; {
+    description = "Tool to analyse Python code and output information about errors, potential problems, convention violations and complexity";
+    homepage = "https://github.com/PyCQA/prospector";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/prospector/setoptconf.nix b/nixpkgs/pkgs/development/tools/prospector/setoptconf.nix
new file mode 100644
index 000000000000..62b4e95357dc
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/prospector/setoptconf.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "setoptconf";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "177l7j68j751i781bgk6pfhxjj7hwqxzdm2ja5fkywbp0275s2sv";
+  };
+
+  # Base tests provided via PyPi are broken
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://pypi.org/project/setoptconf";
+    description = "A module for retrieving program settings from various sources in a consistant method";
+    license = licenses.mit;
+    maintainers = with maintainers; [
+      kamadorueda
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix b/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix
index c85cff2f03a4..1a7ec35748ba 100644
--- a/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/pypi2nix/default.nix b/nixpkgs/pkgs/development/tools/pypi2nix/default.nix
index 76302824d9d2..8ecdfb6787f1 100644
--- a/nixpkgs/pkgs/development/tools/pypi2nix/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix b/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix
new file mode 100644
index 000000000000..37a1955ce8b2
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix
@@ -0,0 +1,22 @@
+{ callPackage, lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rnix-lsp";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "nix-community";
+    repo = "rnix-lsp";
+    rev = "v${version}";
+
+    sha256 = "0fy620c34kxl27sd62x9mj0555bcdmnmbsxavmyiwb497z1m9wnn";
+  };
+
+  cargoSha256 = "1wm5m7b6zr6wg1k59rmqis1zp9i2990p7y0ml852hxv34an7pp5d";
+
+  meta = with lib; {
+    description = "A work-in-progress language server for Nix, with syntax checking and basic completion";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jD91mZM2 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix
index 32e369251d56..61d2c327d9bb 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
index 01ca288fba8c..60d0c3504c87 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/rust/cargo-make/Cargo.lock b/nixpkgs/pkgs/development/tools/rust/cargo-make/Cargo.lock
index 5d3392fcc382..bcf708735f62 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-make/Cargo.lock
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
index 25d700d0445b..bbad7ee731bd 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/vagrant/default.nix b/nixpkgs/pkgs/development/tools/vagrant/default.nix
index 4ef723c9a1fa..ea3382f3e706 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/default.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/default.nix
@@ -33,6 +33,8 @@ let
       for gem in "$out"/lib/ruby/gems/*/gems/*; do
         cp -a "$gem/" "$gem.new"
         rm "$gem"
+        # needed on macOS, otherwise the mv yields permission denied 
+        chmod +w "$gem.new"
         mv "$gem.new" "$gem"
       done
     '';
diff --git a/nixpkgs/pkgs/development/tools/wabt/default.nix b/nixpkgs/pkgs/development/tools/wabt/default.nix
index 4c7df9b12d8b..b3be6c4552dd 100644
--- a/nixpkgs/pkgs/development/tools/wabt/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/development/tools/wabt/version.patch b/nixpkgs/pkgs/development/tools/wabt/version.patch
new file mode 100644
index 000000000000..a49cd0bc1552
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/games/crispy-doom/default.nix b/nixpkgs/pkgs/games/crispy-doom/default.nix
index 4fb4f301cfba..e85cebde0408 100644
--- a/nixpkgs/pkgs/games/crispy-doom/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/games/mindustry/default.nix b/nixpkgs/pkgs/games/mindustry/default.nix
new file mode 100644
index 000000000000..0b3824f2ec82
--- /dev/null
+++ b/nixpkgs/pkgs/games/mindustry/default.nix
@@ -0,0 +1,106 @@
+{ stdenv
+, makeWrapper
+, makeDesktopItem
+, fetchFromGitHub
+, gradle_5
+, perl
+, jre
+, libpulseaudio
+
+# Make the build version easily overridable.
+# Server and client build versions must match, and an empty build version means
+# any build is allowed, so this parameter acts as a simple whitelist.
+# Takes the package version and returns the build version.
+, makeBuildVersion ? (v: v)
+}:
+
+let
+  pname = "mindustry";
+  # Note: when raising the version, ensure that all SNAPSHOT versions in
+  # build.gradle are replaced by a fixed version
+  # (the current one at the time of release) (see postPatch).
+  version = "102";
+  buildVersion = makeBuildVersion version;
+
+  src = fetchFromGitHub {
+    owner = "Anuken";
+    repo = "Mindustry";
+    rev = "v${version}";
+    sha256 = "0g4zy2zlynv6f427pq1ngnl0zpr6nnih10wd2l8vl9bxwzjygwdr";
+  };
+
+  desktopItem = makeDesktopItem {
+    type = "Application";
+    name = "Mindustry";
+    desktopName = "Mindustry";
+    exec = "mindustry";
+    icon = "mindustry";
+  };
+
+  postPatch = ''
+    # Remove unbuildable iOS stuff
+    sed -i '/^project(":ios"){/,/^}/d' build.gradle
+    sed -i '/robo(vm|VM)/d' build.gradle
+    rm ios/build.gradle
+
+    # Pin 'SNAPSHOT' versions
+    sed -i 's/com.github.anuken:packr:-SNAPSHOT/com.github.anuken:packr:034efe51781d2d8faa90370492133241bfb0283c/' build.gradle
+  '';
+
+  # fake build to pre-download deps into fixed-output derivation
+  deps = stdenv.mkDerivation {
+    pname = "${pname}-deps";
+    inherit version src postPatch;
+    nativeBuildInputs = [ gradle_5 perl ];
+    buildPhase = ''
+      export GRADLE_USER_HOME=$(mktemp -d)
+      gradle --no-daemon desktop:dist -Pbuildversion=${buildVersion}
+      gradle --no-daemon server:dist -Pbuildversion=${buildVersion}
+    '';
+    # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
+    installPhase = ''
+      find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
+        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
+        | sh
+    '';
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "1sscxrr32f2agwz34pm491xqkz7m4bwdc1p3g64kcnl3p6rg7r7k";
+  };
+
+in stdenv.mkDerivation rec {
+  inherit pname version src postPatch;
+
+  nativeBuildInputs = [ gradle_5 makeWrapper ];
+
+  buildPhase = ''
+    export GRADLE_USER_HOME=$(mktemp -d)
+    # point to offline repo
+    sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" build.gradle
+    gradle --offline --no-daemon desktop:dist -Pbuildversion=${buildVersion}
+    gradle --offline --no-daemon server:dist -Pbuildversion=${buildVersion}
+  '';
+
+  installPhase = ''
+    install -Dm644 desktop/build/libs/Mindustry.jar $out/share/mindustry.jar
+    install -Dm644 server/build/libs/server-release.jar $out/share/mindustry-server.jar
+    mkdir $out/bin
+    makeWrapper ${jre}/bin/java $out/bin/mindustry \
+      --prefix LD_LIBRARY_PATH : ${libpulseaudio}/lib \
+      --add-flags "-jar $out/share/mindustry.jar"
+    makeWrapper ${jre}/bin/java $out/bin/mindustry-server \
+      --add-flags "-jar $out/share/mindustry-server.jar"
+    install -Dm644 core/assets/icons/icon_64.png $out/share/icons/hicolor/64x64/apps/mindustry.png
+    install -Dm644 ${desktopItem}/share/applications/Mindustry.desktop $out/share/applications/Mindustry.desktop
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://mindustrygame.github.io/";
+    downloadPage = "https://github.com/Anuken/Mindustry/releases";
+    description = "A sandbox tower defense game";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/games/nudoku/default.nix b/nixpkgs/pkgs/games/nudoku/default.nix
new file mode 100644
index 000000000000..b9e521bce369
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/games/quakespasm/vulkan.nix b/nixpkgs/pkgs/games/quakespasm/vulkan.nix
index e30065666b0f..deca3bec9cc7 100644
--- a/nixpkgs/pkgs/games/quakespasm/vulkan.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/games/stockfish/default.nix b/nixpkgs/pkgs/games/stockfish/default.nix
index 07ca9223bb0c..1919383048e5 100644
--- a/nixpkgs/pkgs/games/stockfish/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/games/teeworlds/default.nix b/nixpkgs/pkgs/games/teeworlds/default.nix
index f0c40274d9a1..ceb908099045 100644
--- a/nixpkgs/pkgs/games/teeworlds/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/games/ultrastardx/default.nix b/nixpkgs/pkgs/games/ultrastardx/default.nix
index 1c40d8f5800f..feaf6cabf32a 100644
--- a/nixpkgs/pkgs/games/ultrastardx/default.nix
+++ b/nixpkgs/pkgs/games/ultrastardx/default.nix
@@ -12,21 +12,19 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ultrastardx";
-  version = "2017.8.0";
+  version = "unstable-2019-01-07";
   src = fetchFromGitHub {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
-    rev = "v${version}";
-    sha256 = "1zp0xfwzci3cjmwx3cprcxvm60cik5cvhvrz9n4d6yb8dv38nqzm";
+    rev = "3df142590f29db1505cc58746af9f8cf7cb4a6a5";
+    sha256 = "EpwGKK9B8seF7gRwo3kCeSzFQQW1p8rP4HXeu8/LoyA=";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ fpc libpng ] ++ sharedLibs;
 
-  # https://github.com/UltraStar-Deluxe/USDX/issues/462
   postPatch = ''
     substituteInPlace src/config.inc.in \
-      --subst-var-by lua_LIB_NAME liblua.so \
       --subst-var-by libpcre_LIBNAME libpcre.so.1
   '';
 
diff --git a/nixpkgs/pkgs/misc/drivers/hplip/default.nix b/nixpkgs/pkgs/misc/drivers/hplip/default.nix
index ecb74f39ab9a..a7e080ebce29 100644
--- a/nixpkgs/pkgs/misc/drivers/hplip/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/misc/drivers/hplip/image-processor.patch b/nixpkgs/pkgs/misc/drivers/hplip/image-processor.patch
index ef1040ba08bb..30df1d29d97e 100644
--- a/nixpkgs/pkgs/misc/drivers/hplip/image-processor.patch
+++ b/nixpkgs/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/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix b/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix
index 45ed31168f00..2176d53628fa 100644
--- a/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix
+++ b/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix
@@ -786,10 +786,11 @@ in with stdenv.lib.licenses;
 
   snes9x = (mkLibRetroCore rec {
     core = "snes9x";
-    src = fetchRetro {
+    src = fetchFromGitHub {
+      owner = "snes9xgit";
       repo = core;
-      rev = "29b78df8c9f0f48ed4605d08a187a134b3b316d6";
-      sha256 = "004h1pkxvbn4zlh8bqs6z17k04jw5wzbwklpgvmb7hbxshsi4qid";
+      rev = "04692e1ee45cc647423774ee17c63208c2713638";
+      sha256 = "09p9m85fxwrrrapjb08rcxknpgq5d6a87arrm1jn94r56glxlcfa";
     };
     description = "Port of SNES9x git to libretro";
     license = "Non-commercial";
diff --git a/nixpkgs/pkgs/misc/emulators/wine/sources.nix b/nixpkgs/pkgs/misc/emulators/wine/sources.nix
index ca82935b7675..21d00b30dcba 100644
--- a/nixpkgs/pkgs/misc/emulators/wine/sources.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/misc/scream-receivers/default.nix b/nixpkgs/pkgs/misc/scream-receivers/default.nix
index 2ca00ccc9cea..6c0f73f1b258 100644
--- a/nixpkgs/pkgs/misc/scream-receivers/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/misc/seafile-shared/default.nix b/nixpkgs/pkgs/misc/seafile-shared/default.nix
index 1dcf16585f0b..6236b3a71ba8 100644
--- a/nixpkgs/pkgs/misc/seafile-shared/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/misc/uboot/default.nix b/nixpkgs/pkgs/misc/uboot/default.nix
index 5bd20c0765bc..29dfb6558a9f 100644
--- a/nixpkgs/pkgs/misc/uboot/default.nix
+++ b/nixpkgs/pkgs/misc/uboot/default.nix
@@ -6,10 +6,10 @@
 }:
 
 let
-  defaultVersion = "2019.10";
+  defaultVersion = "2020.01";
   defaultSrc = fetchurl {
     url = "ftp://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2";
-    sha256 = "053hcrwwlacqh2niisn0zas95zkbffw5aw5sdhixs8lmfdq60vcd";
+    sha256 = "1w9ml4jl15q6ixpdqzspxjnl7d3rgxd7f99ms1xv5c8869h3qida";
   };
   buildUBoot = {
     version ? null
@@ -28,19 +28,7 @@ let
 
     src = if src == null then defaultSrc else src;
 
-    patches = [
-      # Submitted upstream: https://patchwork.ozlabs.org/patch/1203693/
-      (fetchpatch {
-        url = https://github.com/dezgeg/u-boot/commit/extlinux-path-length-2018-03.patch;
-        sha256 = "07jafdnxvqv8lz256qy29agjc2k1zj5ad4k28r1w5qkhwj4ixmf8";
-      })
-      # Submitted upstream: https://patchwork.ozlabs.org/patch/1203678/
-      (fetchpatch {
-        name = "rockchip-allow-loading-larger-kernels.patch";
-        url = "https://marc.info/?l=u-boot&m=157537843004298&q=raw";
-        sha256 = "0l3l88cc9xkxkraql82pfgpx6nqn4dj7cvfaagh5pzfwkxyw0n3p";
-      })
-    ] ++ extraPatches;
+    patches = extraPatches;
 
     postPatch = ''
       patchShebangs tools
@@ -53,7 +41,7 @@ let
       dtc
       flex
       openssl
-      (buildPackages.python2.withPackages (p: [ p.libfdt ]))
+      (buildPackages.python3.withPackages (p: [ p.libfdt ]))
       swig
     ];
     depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -124,6 +112,12 @@ in {
     filesToInstall = ["u-boot-sunxi-with-spl.bin"];
   };
 
+  ubootAmx335xEVM = buildUBoot {
+    defconfig = "am335x_evm_defconfig";
+    extraMeta.platforms = ["armv7l-linux"];
+    filesToInstall = ["MLO" "u-boot.img"];
+  };
+
   ubootBananaPi = buildUBoot {
     defconfig = "Bananapi_defconfig";
     extraMeta.platforms = ["armv7l-linux"];
@@ -143,12 +137,6 @@ in {
     filesToInstall = ["u-boot-sunxi-with-spl.bin"];
   };
 
-  ubootBeagleboneBlack = buildUBoot {
-    defconfig = "am335x_boneblack_defconfig";
-    extraMeta.platforms = ["armv7l-linux"];
-    filesToInstall = ["MLO" "u-boot.img"];
-  };
-
   # http://git.denx.de/?p=u-boot.git;a=blob;f=board/solidrun/clearfog/README;hb=refs/heads/master
   ubootClearfog = buildUBoot {
     defconfig = "clearfog_defconfig";
diff --git a/nixpkgs/pkgs/misc/vim-plugins/generated.nix b/nixpkgs/pkgs/misc/vim-plugins/generated.nix
index 425ac9a09945..bd829998b5b0 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/generated.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/generated.nix
@@ -50,12 +50,12 @@ let
 
   alchemist-vim = buildVimPluginFrom2Nix {
     pname = "alchemist-vim";
-    version = "2019-11-27";
+    version = "2020-01-10";
     src = fetchFromGitHub {
       owner = "slashmili";
       repo = "alchemist.vim";
-      rev = "911eda990ef259d1f035061c5dfb2f44adb2697e";
-      sha256 = "04lm3k6svq4y2a7kqq5phzyny93ynnjdmsv2s98pw6c4z5fq5y1m";
+      rev = "a5158d2e731afe3bca25a6a76eb706ff34e155b0";
+      sha256 = "0r1xiw0f46if7whxan2asi1klyijlyaf61p0xg5v81nnh64w6lhs";
     };
   };
 
@@ -193,12 +193,12 @@ let
 
   bufexplorer = buildVimPluginFrom2Nix {
     pname = "bufexplorer";
-    version = "2019-02-13";
+    version = "2020-01-10";
     src = fetchFromGitHub {
       owner = "jlanzarotta";
       repo = "bufexplorer";
-      rev = "162f6031ada3b2d1ad171e02e93f417ee1689176";
-      sha256 = "0ws8yw1s77pb0gm5wvj5w5symx8fqqzcdizds8cg47cfmw97zz1h";
+      rev = "8014787603fff635dfae6afd4dbe9297673a0b39";
+      sha256 = "0drj8q6wg9h08nf517l0dks1fbcnc558zg7dqavxc43maymq5mxm";
     };
   };
 
@@ -424,23 +424,23 @@ let
 
   coc-metals = buildVimPluginFrom2Nix {
     pname = "coc-metals";
-    version = "2020-01-03";
+    version = "2020-01-13";
     src = fetchFromGitHub {
       owner = "ckipp01";
       repo = "coc-metals";
-      rev = "a2c71dc75b35251549d1ba2cdb5f9ee286ab9f90";
-      sha256 = "0hzd7m1rli2vgwvykrv9ld5q9na867l5d56fl02d7d3q9ykfn6j7";
+      rev = "b2b3c6e43f8dc0a9353046faacb2cfafe0220228";
+      sha256 = "160y5rz1nhpdlb9j3ximn6ylj0rabkbvl0h7jil95rin60sq91d1";
     };
   };
 
   coc-neco = buildVimPluginFrom2Nix {
     pname = "coc-neco";
-    version = "2019-09-23";
+    version = "2020-01-11";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-neco";
-      rev = "e6eb1ccc2ab98966fe678107c6da0d4ddfa34f10";
-      sha256 = "14lph4dg7q0s5yjdr8snz9yl7bn6gs42ikizb6mxq43qqfdnxzdx";
+      rev = "e203327ff80c56fc51d85f73df9049455edf1a56";
+      sha256 = "1snfb92pahdfkch0cwhd0pcmia35al518351np2hq8dhbs7fc02n";
     };
   };
 
@@ -523,12 +523,12 @@ let
 
   coc-solargraph = buildVimPluginFrom2Nix {
     pname = "coc-solargraph";
-    version = "2019-08-11";
+    version = "2020-01-11";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-solargraph";
-      rev = "6a146623192e661e18830c58abe1055fddcf57d7";
-      sha256 = "1mc8jqpgwy5q4jzb5p09j5mal9paq50dl1hsxhg0y5q6rqrr7qhz";
+      rev = "c767dd19c8d07920e10f126b4b71f187c7bdcb6a";
+      sha256 = "014k1sqjfzcr052vnqnr5ccxpw2yr0dfgd0657nwjgbhnpf8qn3s";
     };
   };
 
@@ -545,12 +545,12 @@ let
 
   coc-tabnine = buildVimPluginFrom2Nix {
     pname = "coc-tabnine";
-    version = "2019-12-10";
+    version = "2020-01-06";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-tabnine";
-      rev = "f72b4f47109918cc6ad43b42ed566bec61feff8e";
-      sha256 = "1jaj6qsascdpdyz0g8yvi7bcxf4jwcrb0766x4dsmfk9r7prxifl";
+      rev = "442c829185ecab2268d1b9fd076c5286bbd39562";
+      sha256 = "0as4b33nnp7anqbxkkja8lp37y4a74b3507zyk3gmmna0my1ca3r";
     };
   };
 
@@ -700,12 +700,12 @@ let
 
   context_filetype-vim = buildVimPluginFrom2Nix {
     pname = "context_filetype-vim";
-    version = "2019-08-17";
+    version = "2020-01-08";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "context_filetype.vim";
-      rev = "9d495ce4ddfdae8f0b268fcec3a7a5e0062456e8";
-      sha256 = "0g5ixgg8p2vrpjhyy52xln7a5f8rcbglgyir620ynzhz1phdilg4";
+      rev = "cbe3c0069e6a13bd9bfcd9739c0770f7fd4b4ef4";
+      sha256 = "07mnch8vi7snx8jfz32hkg4v4ml2ywb8yn0jycshn317j253fbmj";
     };
   };
 
@@ -808,17 +808,6 @@ let
     };
   };
 
-  defx-icons = buildVimPluginFrom2Nix {
-    pname = "defx-icons";
-    version = "2019-11-03";
-    src = fetchFromGitHub {
-      owner = "kristijanhusak";
-      repo = "defx-icons";
-      rev = "1412fd083eb54ffedb4f3ae32ddc7ce28613a144";
-      sha256 = "1x0xpixbmxm15g5nmsslccdngm14sg86ymy6mywg9xfbnrh1vn0p";
-    };
-  };
-
   defx-git = buildVimPluginFrom2Nix {
     pname = "defx-git";
     version = "2019-12-25";
@@ -830,14 +819,25 @@ let
     };
   };
 
+  defx-icons = buildVimPluginFrom2Nix {
+    pname = "defx-icons";
+    version = "2019-11-03";
+    src = fetchFromGitHub {
+      owner = "kristijanhusak";
+      repo = "defx-icons";
+      rev = "1412fd083eb54ffedb4f3ae32ddc7ce28613a144";
+      sha256 = "1x0xpixbmxm15g5nmsslccdngm14sg86ymy6mywg9xfbnrh1vn0p";
+    };
+  };
+
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx-nvim";
-    version = "2020-01-02";
+    version = "2020-01-08";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "aa1b5c762bbabaeeb5f3eca976e65bbb2f82a883";
-      sha256 = "0pfsky4i4h769fjmrvy89d9ickkfifvmq0m54c6qhs24bycx0s7j";
+      rev = "2823cfbf37ae86bf20b56a4dacff123c54dc85fa";
+      sha256 = "0hbmdkwfhihjn1sxlznhv6fls8zgfvm7srigw8anxh7zr7rx2qz3";
     };
   };
 
@@ -876,12 +876,12 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2020-01-05";
+    version = "2020-01-13";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "908cd3a3fe5b03783da7186441b2fe0c146f31b3";
-      sha256 = "0qrz0mrrx79525rzab0l1qx3q49531306b05hgqrlkzx9zcppk8l";
+      rev = "22dd7524bef3468af674fb1ecfb3e55ee679ebc0";
+      sha256 = "03cf90kvq337mj151y5m0w5px6h3y6hanfj2bcxwnpwifmjdinij";
     };
   };
 
@@ -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";
@@ -978,12 +989,23 @@ let
 
   deoplete-lsp = buildVimPluginFrom2Nix {
     pname = "deoplete-lsp";
-    version = "2019-12-24";
+    version = "2020-01-10";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete-lsp";
-      rev = "0985ba9f5a5f35521087b9ca0858c96ab3785158";
-      sha256 = "09bfsd217qi1ndfrfrjla1vlhnp8r9q9qirkwjjajbqhk4ws90pm";
+      rev = "7a8c44f423bc4339c092a759abaad40131d2c98a";
+      sha256 = "1gg9j26xq668s4gbww0p2x8pkh3ssbzgyp2hxppk2ws7x8c2cihi";
+    };
+  };
+
+  deoplete-notmuch = buildVimPluginFrom2Nix {
+    pname = "deoplete-notmuch";
+    version = "2018-12-11";
+    src = fetchFromGitHub {
+      owner = "Valodim";
+      repo = "deoplete-notmuch";
+      rev = "828b5acf1924f9869614e93855a0d8cc94f1a74d";
+      sha256 = "1l2pfazhpkz26zwbjdafvhgvjj533kncm7dywlandsf3cibm8mv9";
     };
   };
 
@@ -1020,14 +1042,25 @@ 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 = "2019-12-27";
+    version = "2020-01-10";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "840c46aed8033efe19c7a5a809713c809b4a6bb5";
-      sha256 = "09bivhh6iig9vskia9fz1cz2c6dbn3xf4cgm77z9ppaii00n9wh3";
+      rev = "1e1af97ed05f12ad16104365d40e1f26a3e98a1d";
+      sha256 = "01zgvadp7h47ni9bvvgbg68vxb0hijw670xyps557ii4aadkk28f";
     };
   };
 
@@ -1245,12 +1278,12 @@ let
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf-vim";
-    version = "2019-12-22";
+    version = "2020-01-10";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "76669c3c1d675833f9d89f6496f16a7accc0f40e";
-      sha256 = "0p5z9bljjfnp4kkpf9pb5zwv5l9xdk3aikpfxjj8scafl99k4m5r";
+      rev = "8a6894d6a560497bd35947f55ece381bf4f2d9ed";
+      sha256 = "17f64c3z03g45iw68ir9wszq3bjlk661ccy87g0wxvl2pkcmnk53";
     };
   };
 
@@ -1278,12 +1311,12 @@ let
 
   ghcid = buildVimPluginFrom2Nix {
     pname = "ghcid";
-    version = "2019-12-14";
+    version = "2020-01-09";
     src = fetchFromGitHub {
       owner = "ndmitchell";
       repo = "ghcid";
-      rev = "723054642faf15082bbad6a0d6db921918e5db61";
-      sha256 = "0ln5y7jfd4m59ci39zffjmzi9bda0bck7mkxk0i5fyp4whp8jqdr";
+      rev = "40a6ed21bc811e7795c525ce9a4fc689c6b99f60";
+      sha256 = "020g3032gggxllnapqf7nbg5wqjg3c2z190f2jx3cl6z0fswgiwz";
     };
   };
 
@@ -1300,12 +1333,12 @@ let
 
   gist-vim = buildVimPluginFrom2Nix {
     pname = "gist-vim";
-    version = "2019-07-08";
+    version = "2020-01-09";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "gist-vim";
-      rev = "e485c6c24a62b378a2a4c8687e36e7f54ceca18c";
-      sha256 = "1fkm7aada088l9f5rf6fk1valfanwzfrsfip9w4q9w2mqvd7n1kn";
+      rev = "c1f9b5aef7fa68f5151e62ceadbc9a9c48d58962";
+      sha256 = "0q83dqhp3n0hj0mdkvj2kilywpqy512r1vpay0f9z57vkx29grzr";
     };
   };
 
@@ -1531,12 +1564,12 @@ let
 
   jedi-vim = buildVimPluginFrom2Nix {
     pname = "jedi-vim";
-    version = "2020-01-01";
+    version = "2020-01-10";
     src = fetchFromGitHub {
       owner = "davidhalter";
       repo = "jedi-vim";
-      rev = "2572136fcb4c9941553dd05504007806613c8946";
-      sha256 = "08fdaxaldbmg76bkj0xni4cpgqiss4cdxnv3jxskwvs6v9dxmbcs";
+      rev = "c0ded0baf2971cec3698d7c799c04ad971a1484d";
+      sha256 = "0bbivgm62a9v28r968dsx174km72an9xxz98r1r4z5krllccilab";
       fetchSubmodules = true;
     };
   };
@@ -1675,12 +1708,12 @@ let
 
   lh-vim-lib = buildVimPluginFrom2Nix {
     pname = "lh-vim-lib";
-    version = "2019-12-29";
+    version = "2020-01-12";
     src = fetchFromGitHub {
       owner = "LucHermitte";
       repo = "lh-vim-lib";
-      rev = "6e60e3a6575449e08feb27fb3528b55e71fd56e3";
-      sha256 = "054wxj8f23ddqs3mp8rvw2lsplqfyn352zcq6biywbybjm2xphf7";
+      rev = "13a59968c0d76884f2ef1feb27493ba90d62deb0";
+      sha256 = "0g9dfg7y7znj3iiz67323jbflg6d34hq8hc8v4gcjnrinagyydnv";
     };
   };
 
@@ -1928,12 +1961,12 @@ let
 
   neomake = buildVimPluginFrom2Nix {
     pname = "neomake";
-    version = "2019-12-20";
+    version = "2020-01-07";
     src = fetchFromGitHub {
       owner = "neomake";
       repo = "neomake";
-      rev = "212c0d8b05ee65b9be77675db147d05abd323a46";
-      sha256 = "0fjmrnmnqjb1r4cxbrlxwpwbm7jgs47wx6pql565946adv5bckh2";
+      rev = "2669c679fa2d39457eba3f84f50404d7994e22cf";
+      sha256 = "1ag11acrg32qgwn0c3lsv7ai0f8hs3hklpnqjx84jb0kb1fqp8s2";
     };
   };
 
@@ -1961,12 +1994,12 @@ let
 
   neosnippet-vim = buildVimPluginFrom2Nix {
     pname = "neosnippet-vim";
-    version = "2019-12-28";
+    version = "2020-01-08";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet.vim";
-      rev = "6cccbd41851f3d8f47c5e225d552a217cede4f3f";
-      sha256 = "0jrdya11fzis746x1s802g2w20v47dhaxlmczb2fv4x3fxfwql5p";
+      rev = "5673f584c06431978a17609865f2adcf5e934be3";
+      sha256 = "05g4dixqn584h6z2w7va676q74fl1839f86wsjfm09kfdlql4n1m";
     };
   };
 
@@ -2038,12 +2071,12 @@ let
 
   nerdtree = buildVimPluginFrom2Nix {
     pname = "nerdtree";
-    version = "2020-01-02";
+    version = "2020-01-06";
     src = fetchFromGitHub {
       owner = "scrooloose";
       repo = "nerdtree";
-      rev = "8a14891241e3468f9c13deaa6cf88aebe53b519f";
-      sha256 = "033qnzna0awys5w5wf9sj2gydm433l1919zz9cm984l0nmgmkp29";
+      rev = "ee79ecfb67e4403e54ea59c175ca4d39544395e8";
+      sha256 = "0zny0ycxfkcfj65y8m70spj96lv81fv52s07r8ncfa4bqm9kk9sd";
     };
   };
 
@@ -2102,6 +2135,17 @@ let
     };
   };
 
+  nvim-gdb = buildVimPluginFrom2Nix {
+    pname = "nvim-gdb";
+    version = "2019-10-28";
+    src = fetchFromGitHub {
+      owner = "sakhnik";
+      repo = "nvim-gdb";
+      rev = "aa343ab3089cb520289a614a7b7c71f43134b34a";
+      sha256 = "0qn0mq59x8jdkjvv47g2fjxnagvpa7pb01vl4jjrdwq34639i1bg";
+    };
+  };
+
   nvim-hs-vim = buildVimPluginFrom2Nix {
     pname = "nvim-hs-vim";
     version = "2019-04-14";
@@ -2487,6 +2531,17 @@ let
     };
   };
 
+  salt-vim = buildVimPluginFrom2Nix {
+    pname = "salt-vim";
+    version = "2017-07-01";
+    src = fetchFromGitHub {
+      owner = "saltstack";
+      repo = "salt-vim";
+      rev = "6ca9e3500cc39dd417b411435d58a1b720b331cc";
+      sha256 = "0r79bpl98xcsmkw6dg83cf1ghn89rzsr011zirk3v1wfxclri2c4";
+    };
+  };
+
   self = buildVimPluginFrom2Nix {
     pname = "self";
     version = "2014-05-28";
@@ -2687,12 +2742,12 @@ let
 
   syntastic = buildVimPluginFrom2Nix {
     pname = "syntastic";
-    version = "2019-11-20";
+    version = "2020-01-12";
     src = fetchFromGitHub {
       owner = "scrooloose";
       repo = "syntastic";
-      rev = "39b35b23b952d620b8ec7cabb13110f586663837";
-      sha256 = "1nc3019c969ms6m0hrj5k1kggcvsywn6j7kz0scdwzvfd6bcla6h";
+      rev = "3b756bc1066a6df6b54415f2aa7eceaa67ee1ee4";
+      sha256 = "1c9nsg36an3jyma0bhz6c9ymmcrayim6cxn82g37skl040gksvn4";
     };
   };
 
@@ -2731,12 +2786,12 @@ let
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2020-01-04";
+    version = "2020-01-08";
     src = fetchFromGitHub {
       owner = "majutsushi";
       repo = "tagbar";
-      rev = "3753b235a1163cfbc3b7c417825d1910b2f66100";
-      sha256 = "16nw145n17d9fnwhcp42k85sf2mx2nyp7wy4gllhw48xnwgh6qpb";
+      rev = "3bd3ba403dfaf5868656264f979fc0dc63526afb";
+      sha256 = "1s9y6qxvys393gsql4x5v0y2wfdb8b2a7mv8a39as98msq67a4sx";
     };
   };
 
@@ -2875,12 +2930,12 @@ let
 
   tsuquyomi = buildVimPluginFrom2Nix {
     pname = "tsuquyomi";
-    version = "2019-07-17";
+    version = "2020-01-13";
     src = fetchFromGitHub {
       owner = "Quramy";
       repo = "tsuquyomi";
-      rev = "61e16ab1d1cb621385bc9c6a0c5e7744494ec9f5";
-      sha256 = "1w6m69695f4gx7d5fg3bnabhjx1680fvrz44f65jhdh2y2njm68h";
+      rev = "1fc47734abcb272df4321a50e2587c4c9e0a0a1a";
+      sha256 = "0dwc22zhzslgk60slr60rn26ww3ppl52nf6pcbnagxwfzadn5l6z";
     };
   };
 
@@ -2919,12 +2974,12 @@ let
 
   unicode-vim = buildVimPluginFrom2Nix {
     pname = "unicode-vim";
-    version = "2019-11-06";
+    version = "2020-01-06";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "unicode.vim";
-      rev = "49f79785e7fba0f40519a6b9074dcceb8626f7d5";
-      sha256 = "1k2b4wh0244dx7zinag88wfcwl2x2042z0zsyv9b77w81h8qfdd1";
+      rev = "d450defdb29842e66b779715941a98cbf73736ea";
+      sha256 = "196fi75rvhj0lrzpzkpzvlnrncnjysxj8iww0drc1aawjfkmn1ni";
     };
   };
 
@@ -3216,23 +3271,23 @@ let
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2020-01-03";
+    version = "2020-01-13";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "66f77d4a77e54946fedaac7d54d02271751eab40";
-      sha256 = "008k8v0nx219lbn0vsc1cwr537lg0gdb9s4d7hjpdq2rhh79zsg3";
+      rev = "8d694cba9c22efe8320a8fbc919a50bd938e7929";
+      sha256 = "17kjbc13rsjaxkpfj0f90v3khzid02rrkcdjss3sqa35f37wn2bz";
     };
   };
 
   vim-airline-themes = buildVimPluginFrom2Nix {
     pname = "vim-airline-themes";
-    version = "2020-01-03";
+    version = "2020-01-07";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline-themes";
-      rev = "14c3a60ab0f42aa1001d8f32ffaab2c28935a1e7";
-      sha256 = "0k25x599sfaw931p5b83cpqhz5dzjxp01v3qlsi78rhjyw1y83jf";
+      rev = "9cfa14a6b7e2bd923b3f14252091ed35eda188fd";
+      sha256 = "09ap3w0ixbk5yxsyw165kh7lxmrbjlnz16a1z5qpd9d7afbl3k69";
     };
   };
 
@@ -3260,12 +3315,12 @@ let
 
   vim-asterisk = buildVimPluginFrom2Nix {
     pname = "vim-asterisk";
-    version = "2019-09-23";
+    version = "2020-01-07";
     src = fetchFromGitHub {
       owner = "haya14busa";
       repo = "vim-asterisk";
-      rev = "7cf0d8f379babbdbf538aefe3af444ac4ba21dce";
-      sha256 = "0y21ziz36sqa84dy9pv2jnr0ppalxn54bsk82zfc6064h3bqn77r";
+      rev = "66a64172d21fab44312d0d49b22f63eeeaf89b23";
+      sha256 = "1lksnr4mix9y2al2yfysrxqcska3cd82ck89fkjg5zqzb5wz20vs";
     };
   };
 
@@ -3282,12 +3337,12 @@ let
 
   vim-autoformat = buildVimPluginFrom2Nix {
     pname = "vim-autoformat";
-    version = "2019-12-04";
+    version = "2020-01-09";
     src = fetchFromGitHub {
       owner = "Chiel92";
       repo = "vim-autoformat";
-      rev = "354abcd3d533ba07eebc510102870d85d4e2c466";
-      sha256 = "1hngbjj12q5v73smyhsay4irp3q71cxyc60n97ybfik5mmm455nj";
+      rev = "4159c742ed0b547026b9e398ef78b31527b5e167";
+      sha256 = "0yq4jl252bndr45yhqwmv9mzgjsscywm0wn0lqz70xbz9ik69gvk";
     };
   };
 
@@ -3403,12 +3458,12 @@ let
 
   vim-codefmt = buildVimPluginFrom2Nix {
     pname = "vim-codefmt";
-    version = "2020-01-01";
+    version = "2020-01-13";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-codefmt";
-      rev = "7556c68b1d68b9a2b1b4a9df838cdc4bcf87ba0a";
-      sha256 = "0bi6nbma0bwzvn7l6w88qgr4fbpfbipv936z346sh59dk17j4nv6";
+      rev = "af796cf4084a3d32b85313ccc82675d626d40b59";
+      sha256 = "0pbwirsh8nx0dgf82w1sy6az6mpwdnxzy0ycqrx6qxs6bbf1kf74";
     };
   };
 
@@ -3656,12 +3711,12 @@ let
 
   vim-easymotion = buildVimPluginFrom2Nix {
     pname = "vim-easymotion";
-    version = "2020-01-06";
+    version = "2020-01-13";
     src = fetchFromGitHub {
       owner = "easymotion";
       repo = "vim-easymotion";
-      rev = "83a09a19e7a9c51c6ca2e0f90f1dd27ef4c159c6";
-      sha256 = "1xaliyiv80vcsl5gqj40avgdf4384d5xhnvhh0jaklk1hmrdzxgf";
+      rev = "d534ba0d0c211d8228408c88fa3ebde13fecec37";
+      sha256 = "0yc28synqrqjnzgzpmn7ji3nnidb55mm8n27d0kkd2l80bygg8n4";
     };
   };
 
@@ -3700,12 +3755,12 @@ let
 
   vim-elm-syntax = buildVimPluginFrom2Nix {
     pname = "vim-elm-syntax";
-    version = "2019-11-28";
+    version = "2020-01-06";
     src = fetchFromGitHub {
       owner = "andys8";
       repo = "vim-elm-syntax";
-      rev = "7ed55d9bc2c0cfd023d7cc6541634bcbf36430b5";
-      sha256 = "1kq7qcw9l41q646a2ilwy94lj1qz9as14aqfmzkbi938yij18zpx";
+      rev = "904025e5db117fe292fdb7ae490feff1540696ea";
+      sha256 = "0nm1pzq5qg9mcg0vhvqjbnq20f98njf2yn0sfzlyjgna2ivvjasg";
     };
   };
 
@@ -3865,12 +3920,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2020-01-06";
+    version = "2020-01-11";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "ddd64fc4c5c5365d56478f100f19898375244890";
-      sha256 = "1b6mw8bb8dc46vjz5qb2v0n5kfvwz4hk7q0frflrsyc6z3pw7hab";
+      rev = "6bc345f6f16aee0dcc361f2f3bf80e4964f461af";
+      sha256 = "0fbbi9gsmrjbff75y0r9zdjcbyc7lf5j9pyski3y5wma4z3l4idr";
     };
   };
 
@@ -3909,12 +3964,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2019-12-03";
+    version = "2020-01-06";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "1c53af9a0d3b622af5a62d69ddfc141c841a28c1";
-      sha256 = "0269cjkcx4arq7phyqv80ziafg5p1in5ci7207svixbfdg5hlmfs";
+      rev = "0946c53cfc6edfb8dbf4b25a27d013c0b6ec6619";
+      sha256 = "06n4w9c8w2dyh8nwmlmz4d8hqy4yk9i6w01qa9plbvkhb1lrv21l";
     };
   };
 
@@ -3942,12 +3997,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2020-01-03";
+    version = "2020-01-08";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "ee2071d8e63f9aab98d750a91fcc3358e9987bc9";
-      sha256 = "0a2ac5y8x3lhry5dzq2jbzvryfbvrdvn7bkd2wwm5bf2y9zpkbwk";
+      rev = "810e4b9faf1583443fe2d027d11993fb698b080f";
+      sha256 = "0841030jxifv0x8y4vqz0dvwkxirbynra5iibfgyv485ynhw2l8i";
     };
   };
 
@@ -4160,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";
@@ -4427,12 +4493,12 @@ let
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2019-12-30";
+    version = "2020-01-07";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "6cb8410e10f1b6a23adf238c1f93ce19a3eef83a";
-      sha256 = "1zqv58s35qvp53an15mvs7ywvarsqxc0has6yji99jwmjiq68pag";
+      rev = "2384903e1dd6314934f58e3c88b10924dd1bf4f7";
+      sha256 = "0xs64i4g27w8bdmznjilqg5rlrpaw12qiclg1p4l3ryyid27wki7";
     };
   };
 
@@ -4953,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";
@@ -5120,12 +5197,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2020-01-03";
+    version = "2020-01-13";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "f324a43a5f6a941a55ee992bb852f3c2c504a509";
-      sha256 = "0dgxsn96vw4zgci58lzr4d4d4kwjbk9d52h51ibh3mhsikmpr7xk";
+      rev = "5279654b3e9fc280742d02c9509d4313d9da18e9";
+      sha256 = "0xnml4ayjwf7mzpz64alwygpgccvj4znask76ldw3hxp112fwcah";
     };
   };
 
@@ -5285,23 +5362,23 @@ let
 
   vim-terraform = buildVimPluginFrom2Nix {
     pname = "vim-terraform";
-    version = "2020-01-02";
+    version = "2020-01-06";
     src = fetchFromGitHub {
       owner = "hashivim";
       repo = "vim-terraform";
-      rev = "1df8ac3e1bc33e1c70bd3a1713d8c9cd2eb491e1";
-      sha256 = "0ivkm9vzzfn1iwzkkgk54kn846qnhvsaf8f4nzz3mllirjsl14am";
+      rev = "5ae986685ba479718b3f59263c519976cf9b4c80";
+      sha256 = "1dhgzpjykx9slv6lfbjnyci5ndixisdgym3y8zanhhhjp4nff41b";
     };
   };
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2019-12-07";
+    version = "2020-01-09";
     src = fetchFromGitHub {
       owner = "janko-m";
       repo = "vim-test";
-      rev = "e9e824cf3f22fa1cddabb7ef739f2481436c3924";
-      sha256 = "0nl1b3zzw3w413lmdl4fhm8ia079hr1rz1kpx7sf0i86lx1c0dcv";
+      rev = "2f4efe7028e493a3d9eb06ccb7e27780b81687b7";
+      sha256 = "1yfpishvgj1zdnhsixzjqnbmvfw8qg908zqnis3gk8s9fmnrw6fz";
     };
   };
 
@@ -5505,12 +5582,12 @@ let
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2019-12-18";
+    version = "2020-01-11";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "d332d08365bc735f60904a4207d650f191598378";
-      sha256 = "0g5lawg641ma216v53ivhbkzpmdqhcmgybb5kh1rz6s991j51ziy";
+      rev = "1b4d7269600a926a394b146f7d39044cd4dafa19";
+      sha256 = "0wknx72x7mbkw9007b6ylp1cpl6jap4kv3y85f9sz2lwlsbbkk4b";
     };
   };
 
@@ -5626,12 +5703,12 @@ let
 
   vimagit = buildVimPluginFrom2Nix {
     pname = "vimagit";
-    version = "2019-07-24";
+    version = "2020-01-12";
     src = fetchFromGitHub {
       owner = "jreybert";
       repo = "vimagit";
-      rev = "94762b1356ebdcb8ec486a86f45e69ef77a69465";
-      sha256 = "1p8izqdkx8g1aqmq9a2qm506bs4mvc4xdbzkh2k5xprm5vc14z0s";
+      rev = "bf7b16e99e075b019e56f2fbfb96c493ca3635e2";
+      sha256 = "1f7gvlhrvvkf69y5vfrkvidhx8aa03n1aqmdhk9qjd6sglfg5w0i";
     };
   };
 
@@ -5692,12 +5769,12 @@ let
 
   vimproc-vim = buildVimPluginFrom2Nix {
     pname = "vimproc-vim";
-    version = "2019-11-28";
+    version = "2020-01-06";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "vimproc.vim";
-      rev = "89065f62883edb10a99aa1b1640d6d411907316b";
-      sha256 = "0699kf269rsyabl49m4n7vsi5bbxk129wq6ml3ykhy9g9m2b8a3k";
+      rev = "7425059fe2d9689f8560f1a47590677740669fdd";
+      sha256 = "1rp5jq4jv8zga98pw62635mby0sgw0inzknlwcdy0f2lfbdvaq8g";
     };
   };
 
@@ -5714,12 +5791,12 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2019-12-31";
+    version = "2020-01-12";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "020206fbe1f6981855a3fe2f96ef893db782d4b8";
-      sha256 = "113d1zdmx3vhjig4xrp1kqlzapdhygis2ky2paww42j22vakqywc";
+      rev = "aabfcf9e0c95bc08125aefaeb9fdfc9be04913c5";
+      sha256 = "0d7sv6f8iafwm891vl4wlsv93jfqjckmsrg2k9rfynk737vsmvp5";
     };
   };
 
@@ -5736,12 +5813,12 @@ let
 
   vimwiki = buildVimPluginFrom2Nix {
     pname = "vimwiki";
-    version = "2020-01-04";
+    version = "2020-01-13";
     src = fetchFromGitHub {
       owner = "vimwiki";
       repo = "vimwiki";
-      rev = "b90e6f2e3343277faca65156d733f725f76f1e53";
-      sha256 = "1z3mj73iqh4h3wx5cq4k7gp2nkbaj85v665v0phqw42c213064nb";
+      rev = "64c9f3d36d632b1657616c06ea8f08f14cf6438d";
+      sha256 = "0wwfl0bafwh9p8lzic75d0nl6v5dnpfid7fbiffr0i72agp0gcq7";
     };
   };
 
@@ -5758,12 +5835,12 @@ let
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2020-01-06";
+    version = "2020-01-12";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "dcf134c83a6a3f9618a97cafab5b7fb1f1df3f84";
-      sha256 = "0w9q69a2k8a39b8zrd3sildisrdskbk6cgvbkmb3fqsr0zdzjxzv";
+      rev = "221893d85d2e8ed5ec51da12bf23d2e5bada57cf";
+      sha256 = "1ggwkmi6haj7hayiki3nd9vrc14l4z1912jd06w22hmyl86926x9";
     };
   };
 
@@ -5835,12 +5912,12 @@ let
 
   xptemplate = buildVimPluginFrom2Nix {
     pname = "xptemplate";
-    version = "2019-10-29";
+    version = "2020-01-07";
     src = fetchFromGitHub {
       owner = "drmingdrmer";
       repo = "xptemplate";
-      rev = "4dabcf320f18e33923dbcf793d3c04330dcb79a1";
-      sha256 = "07sr3ixlgfv0sql48fxvyimwdb8xr3iklmzfxb5wxfxgvhr4xbs8";
+      rev = "9cd1c622a5a7cc383ae3df2cec2bac5cb102fa7f";
+      sha256 = "01szas3gv4zw1v6c8yp5p2hygf3fqmpx0y2h6sn8696pfph7vjk3";
     };
   };
 
@@ -5868,12 +5945,12 @@ let
 
   yats-vim = buildVimPluginFrom2Nix {
     pname = "yats-vim";
-    version = "2020-01-06";
+    version = "2020-01-13";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "48184a10ecdda3efce0131aa73495f1edc449a33";
-      sha256 = "0nsdq17r2m2pmnz077rliqdlwk5sn1aj3bxl648bsli7rjacgaqq";
+      rev = "976d10ee24ce4d8790bcd80b3f7c6b8bbc9ec76d";
+      sha256 = "0f3kgb07js6pjr6p03iyspn5k852y5b90w1ylas7lbgz32a1f3hp";
       fetchSubmodules = true;
     };
   };
@@ -5925,12 +6002,12 @@ let
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig-vim";
-    version = "2020-01-02";
+    version = "2020-01-12";
     src = fetchFromGitHub {
       owner = "zig-lang";
       repo = "zig.vim";
-      rev = "7b644a313bf3e32a3b0c4616660d61f5ec8872d9";
-      sha256 = "1icv1qa4wf1kaknfs045m8md2938qggzl6a5wf76lcn1iw5nr1cc";
+      rev = "2a1de0f764e42f8b76daafc24249d6cb4a743c16";
+      sha256 = "0lbry8s34ld97m05q091q2dmpfkn8k6nsj0q1vrbrsml5i5xig9c";
     };
   };
 
diff --git a/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names b/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
index 3c097c63fde8..37019541caa9 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/nixpkgs/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
@@ -377,6 +381,8 @@ rust-lang/rust.vim
 ryanoasis/vim-devicons
 Rykka/riv.vim
 ryvnf/readline.vim
+sakhnik/nvim-gdb
+saltstack/salt-vim
 samoshkin/vim-mergetool
 sbdchd/neoformat
 scrooloose/nerdcommenter
@@ -481,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/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix
index 00f97f373072..553dbc306455 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/os-specific/darwin/xcode/default.nix b/nixpkgs/pkgs/os-specific/darwin/xcode/default.nix
index 62785f34fe84..282afe13c34e 100644
--- a/nixpkgs/pkgs/os-specific/darwin/xcode/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/xcode/default.nix
@@ -45,7 +45,13 @@ in lib.makeExtensible (self: {
   xcode_8_2 = requireXcode "8.2" "13nd1zsfqcp9hwp15hndr0rsbb8rgprrz7zr2ablj4697qca06m2";
   xcode_9_1 = requireXcode "9.1" "0ab1403wy84ys3yn26fj78cazhpnslmh3nzzp1wxib3mr1afjvic";
   xcode_9_2 = requireXcode "9.2" "1bgfgdp266cbbqf2axcflz92frzvhi0qw0jdkcw6r85kdpc8dj4c";
-  xcode_9_4 = requireXcode "9.4" "132l92c702lm8yrc62w4b8n2iap1qzqvklqzi39x9832ajysn6vw";
+  xcode_9_3 = requireXcode "9.3" "12m9kb4759s2ky42b1vf7y38qqxn2j99s99adzc6ljnmy26ii12w";
+  xcode_9_4 = requireXcode "9.4" "00az1cf9pm8zmvzs6yq04prdmxp8xi3ymxw94jjh4mh7hlbkhcb7";
+  xcode_9_4_1 = requireXcode "9.4.1" "0y9kphj86c14jl6aibv57sd7ln0w06vdhzm8ysp0s98rfgyq2lbw";
   xcode_10_1 = requireXcode "10.1" "1ssdbg4v8r11fjf4jl38pwyry2aia1qihbxyxapz0v0n5gfnp05v";
-  xcode = self."xcode_${lib.replaceStrings ["."] ["_"] (if stdenv.targetPlatform.useiOSPrebuilt then stdenv.targetPlatform.xcodeVer else "8.2")}";
+  xcode_10_2 = requireXcode "10.2" "1xzybl1gvb3q5qwlwchanzpws4sb70i3plf0vrzvlfdp2hsb3pg7";
+  xcode_10_2_1 = requireXcode "10.2.1" "11sdb54nr0x7kp987qq839x6k5gdx7vqdxjiy5xm5279n1n47bmg";
+  xcode_10_3 = requireXcode "10.3" "1i628vfn6zad81fsz3zpc6z15chhskvyp8qnajp2wnpzvrwl6ngb";
+  xcode_11 = requireXcode "11" "1r03j3kkp4blfp2kqpn538w3dx57ms930fj8apjkq6dk7fv3jcqh";
+  xcode = self."xcode_${lib.replaceStrings ["."] ["_"] (if stdenv.targetPlatform.useiOSPrebuilt then stdenv.targetPlatform.xcodeVer else "10.3")}";
 })
diff --git a/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix b/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
index d25edff49560..e8302a82555f 100644
--- a/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
@@ -7,6 +7,7 @@
 , wrapCCWith
 , buildIosSdk, targetIosSdkPkgs
 , xcode
+, lib
 }:
 
 let
@@ -48,7 +49,7 @@ rec {
       tr '\n' ' ' < $out/nix-support/cc-cflags > cc-cflags.tmp
       mv cc-cflags.tmp $out/nix-support/cc-cflags
       echo "-target ${targetPlatform.config} -arch ${iosPlatformArch targetPlatform}" >> $out/nix-support/cc-cflags
-      echo "-isystem ${sdk}/usr/include -isystem ${sdk}/usr/include/c++/4.2.1/ -stdlib=libstdc++" >> $out/nix-support/cc-cflags
+      echo "-isystem ${sdk}/usr/include${lib.optionalString (lib.versionAtLeast "10" sdk.version) " -isystem ${sdk}/usr/include/c++/4.2.1/ -stdlib=libstdc++"}" >> $out/nix-support/cc-cflags
     '' + stdenv.lib.optionalString (sdk.platform == "iPhoneSimulator") ''
       echo "-mios-simulator-version-min=${minSdkVersion}" >> $out/nix-support/cc-cflags
     '' + stdenv.lib.optionalString (sdk.platform == "iPhoneOS") ''
diff --git a/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix b/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix
index 7030bc0ca315..de9601dc85e8 100644
--- a/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix
@@ -51,6 +51,11 @@ let
     # (alpine patches {1,4,5,6,8} are needed for apparmor 2.11, but not 2.12)
     ] ++ [
       ./cross.patch
+      # Support Python 3.8
+      (fetchpatch {
+        url = https://gitlab.com/apparmor/apparmor/commit/ccbf1e0bf1bf5c3bbab47029fbbc5415ef73bac1.patch;
+        sha256 = "0kfzc0wyjybj38n10yvwakaaqvglalzigd3kk7gcrbp1xdn70pq2";
+      })
     ];
 
   # Set to `true` after the next FIXME gets fixed or this gets some
diff --git a/nixpkgs/pkgs/os-specific/linux/crda/default.nix b/nixpkgs/pkgs/os-specific/linux/crda/default.nix
index 84c113c648cd..501b1fb1884a 100644
--- a/nixpkgs/pkgs/os-specific/linux/crda/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/crda/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libgcrypt, libnl, pkgconfig, python2Packages, wireless-regdb }:
+{ stdenv, fetchurl, fetchpatch, libgcrypt, libnl, pkgconfig, python3, wireless-regdb }:
 
 stdenv.mkDerivation rec {
   pname = "crda";
@@ -9,9 +9,24 @@ stdenv.mkDerivation rec {
     url = "http://kernel.org/pub/software/network/crda/crda-${version}.tar.xz";
   };
 
+  patches = [
+    # Switch to Python 3
+    # https://lore.kernel.org/linux-wireless/1437542484-23409-1-git-send-email-ahmed.taahir@gmail.com/
+    (fetchpatch {
+      url = "https://lore.kernel.org/linux-wireless/1437542484-23409-2-git-send-email-ahmed.taahir@gmail.com/raw";
+      sha256 = "0s2n340cgaasvg1k8g9v8xjrbh4y2mcgrhdmv97ja2fs8xjcjbf1";
+    })
+    (fetchpatch {
+      url = "https://lore.kernel.org/linux-wireless/1437542484-23409-3-git-send-email-ahmed.taahir@gmail.com/raw";
+      sha256 = "01dlfw7kqhyx025jxq2l75950b181p9r7i9zkflcwvbzzdmx59md";
+    })
+  ];
+
   buildInputs = [ libgcrypt libnl ];
   nativeBuildInputs = [
-    pkgconfig python2Packages.m2crypto python2Packages.python
+    pkgconfig
+    python3
+    python3.pkgs.pycrypto
   ];
 
   postPatch = ''
@@ -37,6 +52,11 @@ stdenv.mkDerivation rec {
   doCheck = true;
   checkTarget = "verify";
 
+  postInstall = ''
+    # The patch installs build header
+    rm $out/include/reglib/keys-gcrypt.h
+  '';
+
   meta = with stdenv.lib; {
     description = "Linux wireless Central Regulatory Domain Agent";
     longDescription = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/evdi/default.nix b/nixpkgs/pkgs/os-specific/linux/evdi/default.nix
index 72f3b1fbd9c2..42f959a61579 100644
--- a/nixpkgs/pkgs/os-specific/linux/evdi/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/os-specific/linux/facetimehd/default.nix b/nixpkgs/pkgs/os-specific/linux/facetimehd/default.nix
index d65018c600ec..99e72c339832 100644
--- a/nixpkgs/pkgs/os-specific/linux/facetimehd/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/os-specific/linux/firejail/default.nix b/nixpkgs/pkgs/os-specific/linux/firejail/default.nix
index 28528f48efb3..678592c03791 100644
--- a/nixpkgs/pkgs/os-specific/linux/firejail/default.nix
+++ b/nixpkgs/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
@@ -36,10 +36,10 @@ stdenv.mkDerivation {
     sed -e "s@/etc/@$out/etc/@g" -e "/chmod u+s/d" -i Makefile
   '';
 
-  # We need to set the directory for the .local override files back to
+  # We need to set the directory for the .local override files to
   # /etc/firejail so we can actually override them
   postInstall = ''
-    sed -E -e 's@^include (.*)(/firejail/.*.local)$@include /etc\2@g' -i $out/etc/firejail/*.profile
+    sed -E -e 's@^include (.*.local)$@include /etc/firejail/\1@g' -i $out/etc/firejail/*.profile
   '';
 
   # At high parallelism, the build sometimes fails with:
@@ -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/nixpkgs/pkgs/os-specific/linux/health-check/default.nix b/nixpkgs/pkgs/os-specific/linux/health-check/default.nix
index d45f6c5f8964..694d4565d969 100644
--- a/nixpkgs/pkgs/os-specific/linux/health-check/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 4701dca2e901..71b626479ba2 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.163";
+  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 = "0jdh54rqdsb3b908v2q4xjn8y45b7rdnwgab0s4qf5alznfcqagb";
+    sha256 = "003wax7dsahlv1iv9yqhkjbxx20crmwyd9464cx974i03a0vzclb";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
index 73852c4846d1..fc0caad7406f 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19.94";
+  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 = "0rvlz94mjl7ygpmhz0yn2whx9dq9fmy0w1472bj16hkwbaki0an6";
+    sha256 = "1nln2ksfm0ddkqdmhvxwzqq96av1myx89kr1wxs54m2yw0la7clg";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
index 2ee7241396fb..0651232f91fc 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/nixpkgs/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.208";
+  version = "4.4.210";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "03jj91z5dc0ybpjy9w6aanb3k53gcj7gsjc32h3ldf72hlmgz6aq";
+    sha256 = "1pg754s3138d2lq5y2zd1z7dagdy8pl4ifmp0754sa1rkjd3h0ns";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
index e95a0d98139c..7c649bd9b57b 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/nixpkgs/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.208";
+  version = "4.9.210";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0njjw1i8dilihn1hz62zra4b9y05fb3r2k2sqlkd0wfn86c1rbdp";
+    sha256 = "04skcbbp1yv54hwipa1pjx04lb21013r0lh2swycq0kdhc1m54d0";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.3.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.3.nix
deleted file mode 100644
index d83f0fb98130..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.3.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
-
-with stdenv.lib;
-
-buildLinux (args // rec {
-  version = "5.3.18";
-
-  # 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;
-
-  # branchVersion needs to be x.y
-  extraMeta.branch = versions.majorMinor version;
-
-  src = fetchurl {
-    url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "133342nv9ddjad2rizmcbilg9rhg339sfqr9l77j4cgkqhblkw90";
-  };
-} // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
index 00ab0accbdd8..9b1ebeeb4898 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.4.10";
+  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 = "1p9f0h9fl1xy13dag1x7j2ic8kdv0zsp42c8baxn7cz3llc04g7j";
+    sha256 = "1mva73ywb2r5lrmzp5m7hyy0zpgxdg91nw42c1z1sz3ydpcjkys9";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
index 799a84d96df6..5102a1c2086b 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -1,8 +1,8 @@
 { stdenv, lib, fetchsvn, linux
 , scripts ? fetchsvn {
     url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
-    rev = "17185";
-    sha256 = "0hyd7wp73w4555d42xcvk4x4nxrfckbzah2ckb4d2aqzxab87789";
+    rev = "17198";
+    sha256 = "0cr7jpag6kr3iili5zmv1iimi5a1c175dcj8qvhcspwkbv7f17mp";
   }
 , ...
 }:
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
index dcb274c92545..00dcb6f0f488 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.5-rc3";
+  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 = "1rf394d1d6c0mvf6006gq1bscq3jjcvj9xxmdwallfwpp9igs8id";
+    sha256 = "10fjk4bw73x5xpb4q83ngni7slw489wdxhdwmyrkfqqy5chgm290";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/update-libre.sh b/nixpkgs/pkgs/os-specific/linux/kernel/update-libre.sh
index 3b8a00edcdac..aea12df55cc5 100755
--- a/nixpkgs/pkgs/os-specific/linux/kernel/update-libre.sh
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/update-libre.sh
@@ -6,6 +6,7 @@ nixpkgs="$(git rev-parse --show-toplevel)"
 path="$nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix"
 
 old_rev="$(grep -o 'rev = ".*"' "$path" | awk -F'"' '{print $2}')"
+old_sha256="$(grep -o 'sha256 = ".*"' "$path" | awk -F'"' '{print $2}')"
 
 svn_url=https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/
 rev="$(curl -s "$svn_url" | grep -Em 1 -o 'Revision [0-9]+' | awk '{print $2}')"
@@ -17,10 +18,16 @@ fi
 
 sha256="$(QUIET=1 nix-prefetch-svn "$svn_url" "$rev" | tail -1)"
 
+if [ "$old_sha256" = "$sha256" ]; then
+    echo "No updates for linux-libre"
+    exit 0
+fi
+
 sed -i -e "s/rev = \".*\"/rev = \"$rev\"/" \
     -e "s/sha256 = \".*\"/sha256 = \"$sha256\"/" "$path"
 
-if [ -n "$COMMIT" ]; then
-    git commit -qm "linux_latest-libre: $old_rev -> $rev" "$path"
+if [ -n "${COMMIT-}" ]; then
+    git commit -qm "linux_latest-libre: $old_rev -> $rev" "$path" \
+       $nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
     echo "Updated linux_latest-libre $old_rev -> $rev"
 fi
diff --git a/nixpkgs/pkgs/os-specific/linux/libnl/default.nix b/nixpkgs/pkgs/os-specific/linux/libnl/default.nix
index b3ccda3b50d8..61380115ab5e 100644
--- a/nixpkgs/pkgs/os-specific/linux/libnl/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libnl/default.nix
@@ -1,5 +1,5 @@
 { stdenv, file, lib, fetchFromGitHub, autoreconfHook, bison, flex, pkgconfig
-, pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform, swig ? null, python}:
+, pythonSupport ? false, swig ? null, python}:
 
 stdenv.mkDerivation rec {
   pname = "libnl";
diff --git a/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix b/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix
index 41dd3da9d31f..0575c46e28e3 100644
--- a/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix
@@ -8,18 +8,18 @@
 #   udev.packages = [ pkgs.rfkill_udev ];
 #
 # Add a hook script in the managed etc directory, e.g.:
-#   etc = [
-#     { source = pkgs.writeScript "rtfkill.hook" ''
-#         #!${pkgs.runtimeShell}
+#   etc."rfkill.hook" = {
+#     mode = "0755";
+#     text = ''
+#       #!${pkgs.runtimeShell}
 #
-#         if [ "$RFKILL_STATE" -eq "1" ]; then
-#           exec ${config.system.build.upstart}/sbin/initctl emit -n antenna-on
-#         else
-#           exec ${config.system.build.upstart}/sbin/initctl emit -n antenna-off
-#         fi
-#       '';
-#       target = "rfkill.hook";
-#     }
+#       if [ "$RFKILL_STATE" -eq "1" ]; then
+#         exec ${config.system.build.upstart}/sbin/initctl emit -n antenna-on
+#       else
+#         exec ${config.system.build.upstart}/sbin/initctl emit -n antenna-off
+#       fi
+#     '';
+#   }
 
 # Note: this package does not need the binaries
 # in the rfkill package.
diff --git a/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix b/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix
index 8631ddf01d08..ed901b21ac11 100644
--- a/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/os-specific/linux/syslinux/perl-deps.patch b/nixpkgs/pkgs/os-specific/linux/syslinux/perl-deps.patch
deleted file mode 100644
index 82c9820809e1..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/os-specific/linux/unstick/default.nix b/nixpkgs/pkgs/os-specific/linux/unstick/default.nix
new file mode 100644
index 000000000000..cca6e6210cb6
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix b/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
index ab1413efd801..275372b8309d 100644
--- a/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/os-specific/linux/xf86-input-mtrack/default.nix b/nixpkgs/pkgs/os-specific/linux/xf86-input-mtrack/default.nix
deleted file mode 100644
index 2897e9200fd7..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/os-specific/linux/xf86-input-multitouch/default.nix b/nixpkgs/pkgs/os-specific/linux/xf86-input-multitouch/default.nix
deleted file mode 100644
index 71242348f681..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/os-specific/linux/zenpower/default.nix b/nixpkgs/pkgs/os-specific/linux/zenpower/default.nix
new file mode 100644
index 000000000000..8fdf7f23cf83
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix b/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
index f1838f2a2cba..868fd3a6d561 100644
--- a/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/dante/default.nix b/nixpkgs/pkgs/servers/dante/default.nix
index ae083f17ada9..c36ca2f8f509 100644
--- a/nixpkgs/pkgs/servers/dante/default.nix
+++ b/nixpkgs/pkgs/servers/dante/default.nix
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ pam libkrb5 cyrus_sasl miniupnpc ];
 
-  configureFlags = ["--with-libc=libc${stdenv.targetPlatform.extensions.sharedLibrary}"];
+  configureFlags = if !stdenv.isDarwin
+    then [ "--with-libc=libc.so.6" ]
+    else [ "--with-libc=libc${stdenv.targetPlatform.extensions.sharedLibrary}" ];
 
   dontAddDisableDepTrack = stdenv.isDarwin;
 
diff --git a/nixpkgs/pkgs/servers/ftp/bftpd/default.nix b/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
index e7c22904ceac..34757462a176 100644
--- a/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
+++ b/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
@@ -5,11 +5,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "5.2";
+  version = "5.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${pname}/${pname}/${name}/${name}.tar.gz";
-    sha256 = "0kmavljj3zwpgdib9nb14fnriiv0l9zm3hglimcyz26sxbw5jqky";
+    sha256 = "19fd9r233wkjk8gdxn6qsjgfijiw67a48xhgbm2kq46bx80yf3pg";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
index ebb6192fa6aa..275241fcd176 100644
--- a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/home-assistant/esphome.nix b/nixpkgs/pkgs/servers/home-assistant/esphome.nix
index 27dabd2a2eb2..12b36de49650 100644
--- a/nixpkgs/pkgs/servers/home-assistant/esphome.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix b/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix
index d5da6df8d689..252365098ddc 100644
--- a/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/http/jetty/default.nix b/nixpkgs/pkgs/servers/http/jetty/default.nix
index 8d2340647cb4..4a3a3f2da016 100644
--- a/nixpkgs/pkgs/servers/http/jetty/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/http/lwan/default.nix b/nixpkgs/pkgs/servers/http/lwan/default.nix
index f692832e882b..9cd9a6b7fec1 100644
--- a/nixpkgs/pkgs/servers/http/lwan/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/http/unit/default.nix b/nixpkgs/pkgs/servers/http/unit/default.nix
index d210fcefc85c..c3af0d555438 100644
--- a/nixpkgs/pkgs/servers/http/unit/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/http/unit/drop_cap.patch b/nixpkgs/pkgs/servers/http/unit/drop_cap.patch
new file mode 100644
index 000000000000..87caf77904e2
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/jellyfin/default.nix b/nixpkgs/pkgs/servers/jellyfin/default.nix
index b1116dc4a95d..6da342ae8803 100644
--- a/nixpkgs/pkgs/servers/jellyfin/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/mail/mailman/default.nix b/nixpkgs/pkgs/servers/mail/mailman/default.nix
index e4caa7a01be2..54719db376cd 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/default.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, alembic, aiosmtpd, dnspython
-, flufl_bounce, flufl_i18n, flufl_lock, lazr_config, lazr_delegates, passlib
-, requests, zope_configuration, click, falcon, importlib-resources
+{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, 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
 }:
 
 buildPythonPackage rec {
   pname = "mailman";
   version = "3.3.0";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix b/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix
index 1f8da7c3c403..57c1b355bf26 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isort, coverage, mock
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, isort, coverage, mock
 , robot-detection, django_extensions, rjsmin, cssmin, django-mailman3
 , django-haystack, flufl_lock, networkx, dateutil, defusedxml
 , django-paintstore, djangorestframework, django, django-q
@@ -8,6 +8,7 @@
 buildPythonPackage rec {
   pname = "HyperKitty";
   version = "1.3.2";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/servers/mail/public-inbox/default.nix b/nixpkgs/pkgs/servers/mail/public-inbox/default.nix
index dab53d765e37..affcb0e8b237 100644
--- a/nixpkgs/pkgs/servers/mail/public-inbox/default.nix
+++ b/nixpkgs/pkgs/servers/mail/public-inbox/default.nix
@@ -1,4 +1,4 @@
-{ buildPerlPackage, lib, fetchurl, fetchpatch, fetchgit, makeWrapper
+{ buildPerlPackage, lib, fetchurl, fetchpatch, makeWrapper
 , DBDSQLite, EmailMIME, IOSocketSSL, IPCRun, Plack, PlackMiddlewareReverseProxy
 , SearchXapian, TimeDate, URI
 , git, highlight, openssl, xapian
diff --git a/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix b/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix
index f497ba97e70d..bb72ce1b45fd 100644
--- a/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/monitoring/grafana/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
index 787c7b1d463a..183bbc73f5db 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/nginx-sso/default.nix b/nixpkgs/pkgs/servers/nginx-sso/default.nix
index b0ed1c973c0d..10a0c99996d7 100644
--- a/nixpkgs/pkgs/servers/nginx-sso/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/rippled/default.nix b/nixpkgs/pkgs/servers/rippled/default.nix
index 840f63f3e058..905e776ea362 100644
--- a/nixpkgs/pkgs/servers/rippled/default.nix
+++ b/nixpkgs/pkgs/servers/rippled/default.nix
@@ -1,34 +1,28 @@
-{ stdenv, fetchFromGitHub, fetchgit, fetchurl, git, cmake, pkgconfig
+{ stdenv, fetchFromGitHub, fetchgit, fetchurl, runCommand, git, cmake, pkgconfig
 , openssl, boost, zlib }:
 
 let
-  sqlite3 = fetchurl {
+  sqlite3 = fetchurl rec {
     url = "https://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip";
     sha256 = "0vh9aa5dyvdwsyd8yp88ss300mv2c2m40z79z569lcxa6fqwlpfy";
-  };
-
-  beast = fetchgit {
-    url = "https://github.com/boostorg/beast.git";
-    rev = "2f9a8440c2432d8a196571d6300404cb76314125";
-    sha256 = "1n9ms5cn67b0p0mhldz5psgylds22sm5x22q7knrsf20856vlk5a";
-    fetchSubmodules = false;
-    leaveDotGit = true;
+    passthru.url = url;
   };
 
   docca = fetchgit {
     url = "https://github.com/vinniefalco/docca.git";
     rev = "335dbf9c3613e997ed56d540cc8c5ff2e28cab2d";
-    sha256 = "09cb90k0ygmnlpidybv6nzf6is51i80lnwlvad6ijc3gf1z6i1yh";
-    fetchSubmodules = false;
+    sha256 = "1yisdg7q2p9q9gz0c446796p3ggx9s4d6g8w4j1pjff55655805h";
     leaveDotGit = true;
+    fetchSubmodules = false;
   };
 
-  rocksdb = fetchgit {
+  rocksdb = fetchgit rec {
     url = "https://github.com/facebook/rocksdb.git";
-    rev = "a297643f2e327a8bc7061bfc838fdf11935a2cf2";
-    sha256 = "00z8i4fwr27j9d4ymnls7rcgfvm6xh36a4hy2m2njx4x513pgyzw";
-    fetchSubmodules = false;
+    rev = "v5.17.2";
+    sha256 = "0d9ssggjls1hc4zhng65yg8slqlcw0lr23qr6f39shg42lzr227p";
     leaveDotGit = true;
+    fetchSubmodules = false;
+    postFetch = "cd $out && git tag ${rev}";
   };
 
   lz4 = fetchgit rec {
@@ -51,8 +45,8 @@ let
 
   soci = fetchgit {
     url = "https://github.com/SOCI/soci.git";
-    rev = "3a1f602b3021b925d38828e3ff95f9e7f8887ff7";
-    sha256 = "0lnps42cidlrn43h13b9yc8cs3fwgz7wb6a1kfc9rnw7swkh757f";
+    rev = "04e1870294918d20761736743bb6136314c42dd5";
+    sha256 = "0w3b7qi3bwn8bxh4qbqy6c1fw2bbwh7pxvk8b3qb6h4qgsh6kx89";
     leaveDotGit = true;
     fetchSubmodules = false;
   };
@@ -67,11 +61,11 @@ let
   };
 
   nudb = fetchgit rec {
-    url = "https://github.com/vinniefalco/NuDB.git";
-    rev = "1.0.0";
-    sha256 = "142bxicv25xaw4fmpw8bbblb1grdw30wyj181xl4a5734zw3qgmz";
+    url = "https://github.com/CPPAlliance/NuDB.git";
+    rev = "2.0.1";
+    sha256 = "0h7hmwavrxzj1v547h3z0031ckwphjayfpv1mgcr6q86wm9p5468";
     leaveDotGit = true;
-    fetchSubmodules = false;
+    fetchSubmodules = true; # submodules are needed, rocksdb is dependency
     postFetch = "cd $out && git tag ${rev}";
   };
 
@@ -88,40 +82,54 @@ let
     url = "https://github.com/google/googletest.git";
     rev = "c3bb0ee2a63279a803aaad956b9b26d74bf9e6e2";
     sha256 = "0pj5b6jnrj5lrccz2disr8hklbnzd8hwmrwbfqmvhiwb9q9p0k2k";
-    leaveDotGit = true;
     fetchSubmodules = false;
+    leaveDotGit = true;
   };
 
   google-benchmark = fetchgit {
     url = "https://github.com/google/benchmark.git";
     rev = "5b7683f49e1e9223cf9927b24f6fd3d6bd82e3f8";
     sha256 = "0qg70j47zqnrbszlgrzmxpr4g88kq0gyq6v16bhaggfm83c6mg6i";
-    leaveDotGit = true;
     fetchSubmodules = false;
+    leaveDotGit = true;
   };
+
+  # hack to merge rocksdb revisions from rocksdb and nudb, so build process
+  # will find both
+  rocksdb-merged = runCommand "rocksdb-merged" {
+    buildInputs = [ git ];
+  } ''
+    commit=$(cd ${nudb} && git ls-tree HEAD extras/rocksdb | awk '{ print $3  }')
+    git clone ${rocksdb} $out && cd $out
+    git fetch ${nudb}/extras/rocksdb $commit
+    git checkout $commit
+  '';
 in stdenv.mkDerivation rec {
   pname = "rippled";
-  version = "1.2.1";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "ripple";
     repo = "rippled";
     rev = version;
-    sha256 = "1lm0zzz0hi2sh2f4iqq3scapzdjbxcjgr700fgham9wqgaj2ash5";
+    sha256 = "1z04378bg8lcyrnn7sl3j2zfxbwwy2biasg1d4fbaq4snxg5d1pq";
   };
 
   hardeningDisable = ["format"];
-  cmakeFlags = ["-Dstatic=OFF"];
+  cmakeFlags = [
+    "-Dstatic=OFF"
+    "-DBOOST_LIBRARYDIR=${boost.out}/lib"
+    "-DBOOST_INCLUDEDIR=${boost.dev}/include"
+  ];
 
   nativeBuildInputs = [ pkgconfig cmake git ];
-  buildInputs = [ openssl openssl.dev boost zlib ];
+  buildInputs = [ openssl openssl.dev zlib ];
 
   preConfigure = ''
     export HOME=$PWD
 
-    git config --global url."file://${beast}".insteadOf "https://github.com/vinniefalco/Beast.git"
-    git config --global url."file://${docca}".insteadOf "https://github.com/vinniefalco/docca.git"
-    git config --global url."file://${rocksdb}".insteadOf "https://github.com/facebook/rocksdb.git"
+    git config --global url."file://${docca}".insteadOf "${docca.url}"
+    git config --global url."file://${rocksdb-merged}".insteadOf "${rocksdb.url}"
     git config --global url."file://${lz4}".insteadOf "${lz4.url}"
     git config --global url."file://${libarchive}".insteadOf "${libarchive.url}"
     git config --global url."file://${soci}".insteadOf "${soci.url}"
@@ -131,7 +139,7 @@ in stdenv.mkDerivation rec {
     git config --global url."file://${google-benchmark}".insteadOf "${google-benchmark.url}"
     git config --global url."file://${google-test}".insteadOf "${google-test.url}"
 
-    substituteInPlace CMakeLists.txt --replace "URL https://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip" "URL ${sqlite3}"
+    substituteInPlace Builds/CMake/deps/Sqlite.cmake --replace "URL ${sqlite3.url}" "URL ${sqlite3}"
   '';
 
   doCheck = true;
@@ -141,7 +149,7 @@ in stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Ripple P2P payment network reference server";
-    homepage = https://ripple.com;
+    homepage = https://github.com/ripple/rippled;
     maintainers = with maintainers; [ ehmry offline ];
     license = licenses.isc;
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/servers/search/groonga/default.nix b/nixpkgs/pkgs/servers/search/groonga/default.nix
index cfadeac5f076..d610a02ee919 100644
--- a/nixpkgs/pkgs/servers/search/groonga/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index 0427de60aa52..6f0ec04cd752 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/tt-rss/theme-feedly/default.nix b/nixpkgs/pkgs/servers/tt-rss/theme-feedly/default.nix
index c35667546c66..8ad511e5b5b8 100644
--- a/nixpkgs/pkgs/servers/tt-rss/theme-feedly/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/web-apps/matomo/default.nix b/nixpkgs/pkgs/servers/web-apps/matomo/default.nix
index 5c88b8efb4a0..d5f0b7057f07 100644
--- a/nixpkgs/pkgs/servers/web-apps/matomo/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/web-apps/moodle/default.nix b/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
index 2957d296dc4b..3de6005a3cf3 100644
--- a/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, writeText }:
 
 let
-  version = "3.8";
+  version = "3.8.1";
   stableVersion = builtins.substring 0 2 (builtins.replaceStrings ["."] [""] version);
 in
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
-    sha256 = "00ssx0drgp1fy062x6alp0x8di7hjn4xc87v8skpy3aznchfxyk9";
+    sha256 = "1xz2wq16blw9p2b6wlrn9lr524gddm5jyac5prka8kp6lrk0v0y1";
   };
 
   phpConfig = writeText "config.php" ''
diff --git a/nixpkgs/pkgs/servers/web-apps/shaarli/material-theme.nix b/nixpkgs/pkgs/servers/web-apps/shaarli/material-theme.nix
index ef0a4331d41d..b0829fce7339 100644
--- a/nixpkgs/pkgs/servers/web-apps/shaarli/material-theme.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/servers/zoneminder/default.nix b/nixpkgs/pkgs/servers/zoneminder/default.nix
index 2dcaf44010e7..e536ea0373cf 100644
--- a/nixpkgs/pkgs/servers/zoneminder/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/shells/fish/default.nix b/nixpkgs/pkgs/shells/fish/default.nix
index 1ef3c4b6fd9a..5f59c33af0d1 100644
--- a/nixpkgs/pkgs/shells/fish/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/shells/mrsh/default.nix b/nixpkgs/pkgs/shells/mrsh/default.nix
index 9036e0854295..bbd56e510b7d 100644
--- a/nixpkgs/pkgs/shells/mrsh/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/shells/oil/default.nix b/nixpkgs/pkgs/shells/oil/default.nix
index 13b36bf54ad8..81c862843948 100644
--- a/nixpkgs/pkgs/shells/oil/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix
new file mode 100644
index 000000000000..b5b66af6ca38
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index d5081476efb5..5b649a3923e2 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix
index becc4c57e4bb..91cf34268acd 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/stdenv/adapters.nix b/nixpkgs/pkgs/stdenv/adapters.nix
index 041964bcacc2..8b23d3dadd2c 100644
--- a/nixpkgs/pkgs/stdenv/adapters.nix
+++ b/nixpkgs/pkgs/stdenv/adapters.nix
@@ -60,6 +60,7 @@ rec {
           "--enable-static"
           "--disable-shared"
         ];
+        cmakeFlags = (args.cmakeFlags or []) ++ [ "-DBUILD_SHARED_LIBS:BOOL=OFF" ];
         mesonFlags = (args.mesonFlags or []) ++ [ "-Ddefault_library=static" ];
       });
     };
diff --git a/nixpkgs/pkgs/test/default.nix b/nixpkgs/pkgs/test/default.nix
index eb0711b88857..f62d208d22da 100644
--- a/nixpkgs/pkgs/test/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/test/haskell-shellFor/default.nix b/nixpkgs/pkgs/test/haskell-shellFor/default.nix
new file mode 100644
index 000000000000..1b3de999d228
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/X11/jumpapp/default.nix b/nixpkgs/pkgs/tools/X11/jumpapp/default.nix
index 38de9e9f80b6..23ba445b6748 100644
--- a/nixpkgs/pkgs/tools/X11/jumpapp/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/X11/xcape/default.nix b/nixpkgs/pkgs/tools/X11/xcape/default.nix
index 8b0c18c86184..d1b6f9b23b6d 100644
--- a/nixpkgs/pkgs/tools/X11/xcape/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/X11/xlayoutdisplay/default.nix b/nixpkgs/pkgs/tools/X11/xlayoutdisplay/default.nix
index 30903e448563..7f3d9cfda569 100644
--- a/nixpkgs/pkgs/tools/X11/xlayoutdisplay/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/X11/xsecurelock/default.nix b/nixpkgs/pkgs/tools/X11/xsecurelock/default.nix
index 8349953f4ff1..548101c34c3c 100644
--- a/nixpkgs/pkgs/tools/X11/xsecurelock/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/admin/acme.sh/default.nix b/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
index cdf58bc0215d..25a92f1117bb 100644
--- a/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/admin/azure-cli/default.nix b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
index 1a492c41aeec..cc793f8300dc 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, python, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.0.79";
+  version = "2.0.80";
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "0fzpq5fnqxkjghsjk4hi3jng5lgywpvj3fzb5sb7nb7ymvkvhad2";
+    sha256 = "05j74cfxjpi3w79w0i5av3h2m81bavbsc581vvh773ixivndds1k";
   };
 
   # put packages that needs to be overriden in the py package scope
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
index ac0e633cb967..290800e42260 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -207,8 +207,8 @@ let
       azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.52.0" "zip"
         "0357laxgldb7lvvws81r8xb6mrq9dwwnr1bnwdnyj4bw6p21i9hn";
 
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "7.0.0" "zip"
-        "01f17fb1myskj72zarc67i1sxfvk66lid9zn12gwjrz2vqc6npkz";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "7.1.0" "zip"
+        "03yjvw1dwkwsadsv60i625mr9zpdryy7ywvh7p8fg60djszh1p5l";
 
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "0.2.0" "zip"
         "1bcq6fcgrsvmk6q7v8mxzn1180jm2qijdqkqbv1m117zp1wj5gxj";
diff --git a/nixpkgs/pkgs/tools/admin/eksctl/default.nix b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
index e5fcf3933ebc..3cadafc633ee 100644
--- a/nixpkgs/pkgs/tools/admin/eksctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.11.1";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "197lf6cb1maam1yxy29wgp4dkakaavmwqvq2d9i4qxhscalrdra5";
+    sha256 = "1m4hcj2bi9v3ngjj2x1fifcnb450jrij06vbi3j28slsdwn1bcc8";
   };
 
-  modSha256 = "04ba3dyfwlf0m6kn7yp7qyp3h2qdwp17y1f9pa79y3c6sd2nadk2";
+  modSha256 = "1c8qyxzfazgw77rlv3yw2x39ymaq66jjd51im0jl4131a6hzj6fd";
 
   subPackages = [ "cmd/eksctl" ];
 
diff --git a/nixpkgs/pkgs/tools/admin/sewer/default.nix b/nixpkgs/pkgs/tools/admin/sewer/default.nix
index 59edaff5f94e..776ba89e48ce 100644
--- a/nixpkgs/pkgs/tools/admin/sewer/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/admin/vncdo/default.nix b/nixpkgs/pkgs/tools/admin/vncdo/default.nix
index a126a430e52c..3dd7a45aa2b7 100644
--- a/nixpkgs/pkgs/tools/admin/vncdo/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/backup/dar/default.nix b/nixpkgs/pkgs/tools/backup/dar/default.nix
index f48bfbd3d6a2..5d5bff7bfa1e 100644
--- a/nixpkgs/pkgs/tools/backup/dar/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/backup/zfs-replicate/default.nix b/nixpkgs/pkgs/tools/backup/zfs-replicate/default.nix
index 83fa76b0800e..1cb7e6474412 100644
--- a/nixpkgs/pkgs/tools/backup/zfs-replicate/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/backup/zfsnap/default.nix b/nixpkgs/pkgs/tools/backup/zfsnap/default.nix
new file mode 100644
index 000000000000..89d7414246c4
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/compression/zopfli/default.nix b/nixpkgs/pkgs/tools/compression/zopfli/default.nix
index accead9db0bc..586c47de582c 100644
--- a/nixpkgs/pkgs/tools/compression/zopfli/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix b/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix
index d0f68fac7ca1..834aa7290abc 100644
--- a/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/filesystems/ceph/default.nix b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
index 9c7704410251..f3e985edbff6 100644
--- a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index 0d7bcdcd0f26..fc174b12f100 100644
--- a/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix b/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
index af3e92509853..f8d955dbfc17 100644
--- a/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/filesystems/gcsfuse/go.mod.patch b/nixpkgs/pkgs/tools/filesystems/gcsfuse/go.mod.patch
deleted file mode 100644
index fbda63432d7c..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/tools/filesystems/gcsfuse/go.sum.patch b/nixpkgs/pkgs/tools/filesystems/gcsfuse/go.sum.patch
deleted file mode 100644
index d537266e3c12..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
index da2dff6b77a9..003a0e24fb52 100644
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/default.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/default.nix
index 129283e83ebe..5d7a9dd14ec0 100644
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/graphics/asymptote/default.nix b/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
index 31bdba26783e..6246a5733405 100644
--- a/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/graphics/grim/default.nix b/nixpkgs/pkgs/tools/graphics/grim/default.nix
index 667a5b38d3ed..ed7ed5fdef05 100644
--- a/nixpkgs/pkgs/tools/graphics/grim/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/graphics/pstoedit/default.nix b/nixpkgs/pkgs/tools/graphics/pstoedit/default.nix
index 2a467854cf0f..ebd265b8a80c 100644
--- a/nixpkgs/pkgs/tools/graphics/pstoedit/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pstoedit/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "pstoedit-3.74";
+  name = "pstoedit-3.75";
 
   src = fetchurl {
     url = "mirror://sourceforge/pstoedit/${name}.tar.gz";
-    sha256 = "034rcrsi69vyh01rcqh7jy3bw4la4m6jl4niav4c6wrs9bx44cim";
+    sha256 = "1kv46g2wsvsvcngkavxl5gnw3l6g5xqnh4kmyx4b39a01d8xiddp";
   };
 
   #
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix
index 5e839b354a34..b74378f07934 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/broot/default.nix b/nixpkgs/pkgs/tools/misc/broot/default.nix
index 63d5ff69e790..bca0f8099091 100644
--- a/nixpkgs/pkgs/tools/misc/broot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/broot/default.nix
@@ -1,17 +1,33 @@
-{ stdenv, rustPlatform, fetchFromGitHub }:
+{ stdenv, rustPlatform, fetchFromGitHub, coreutils, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "0.10.2";
+  version = "0.11.9";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wisqb4cqdgsnjvmpgxbzs9zcw6npqw1kqxxs8mn33sxlikhbf2l";
+    sha256 = "1kif1113qdxg4hr1mfgg1fh10zgl9cl117cm1bfjaabw11k75cvj";
   };
 
-  cargoSha256 = "09gnyj97akychin1axp9kcww3c04xx7x1qnplhs2yxfki62r4y2b";
+  cargoSha256 = "0636qkgkw027s5dz2mryhghlm6kn3s7cfy4i8rxywr8r3w8c40y0";
+  verifyCargoDeps = true;
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postPatch = ''
+    substituteInPlace src/verb_store.rs --replace '"/bin/' '"${coreutils}/bin/'
+  '';
+
+  postInstall = ''
+    # install shell completion files
+    OUT_DIR=target/release/build/broot-*/out
+
+    installShellCompletion --bash $OUT_DIR/{br,broot}.bash
+    installShellCompletion --fish $OUT_DIR/{br,broot}.fish
+    installShellCompletion --zsh $OUT_DIR/{_br,_broot}
+  '';
 
   meta = with stdenv.lib; {
     description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
diff --git a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
index b64c527a6b99..97b4aa1db281 100644
--- a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
+++ b/nixpkgs/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 = [
@@ -35,11 +35,14 @@ python3Packages.buildPythonApplication rec {
   #
   # Still missing these tools: abootimg docx2txt dumpxsb enjarify js-beautify lipo oggDump otool procyon-decompiler Rscript wasm2wat zipnode
   # Also these libraries: python3-guestfs
-  pythonPath = with python3Packages; [ debian libarchive-c python_magic tlsh rpm pyxattr ] ++ [
-      acl binutils-unwrapped bzip2 cdrkit colordiff coreutils cpio db diffutils
+  pythonPath = [
+      binutils-unwrapped bzip2 colordiff coreutils cpio db diffutils
       dtc e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
-      libarchive libcaca lz4 pgpdump progressbar33 sng sqlite squashfsTools unzip xxd xz
-    ] ++ lib.optionals enableBloat [
+      libarchive libcaca lz4 pgpdump sng sqlite squashfsTools unzip xxd xz
+    ]
+    ++ (with python3Packages; [ debian libarchive-c python_magic tlsh rpm progressbar33 ])
+    ++ lib.optionals stdenv.isLinux [ python3Packages.pyxattr acl cdrkit ]
+    ++ lib.optionals enableBloat [
       apktool cbfstool colord fpc ghc ghostscriptX giflib gnupg gnumeric imagemagick
       llvm jdk mono openssh pdftk poppler_utils tcpdump unoconv
       python3Packages.guestfs
@@ -69,6 +72,6 @@ python3Packages.buildPythonApplication rec {
     homepage    = https://wiki.debian.org/ReproducibleBuilds;
     license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ dezgeg ];
-    platforms   = platforms.linux;
+    platforms   = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/dust/default.nix b/nixpkgs/pkgs/tools/misc/dust/default.nix
index 4239b54f18e7..caa8451585e7 100644
--- a/nixpkgs/pkgs/tools/misc/dust/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
index 516badb7bc78..4e1a18efde4d 100644
--- a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/fpart/default.nix b/nixpkgs/pkgs/tools/misc/fpart/default.nix
index 563152cc10df..e673c73d0961 100644
--- a/nixpkgs/pkgs/tools/misc/fpart/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/fsmon/default.nix b/nixpkgs/pkgs/tools/misc/fsmon/default.nix
index c731094bdd6a..e8e48d7879a7 100644
--- a/nixpkgs/pkgs/tools/misc/fsmon/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/graylog/default.nix b/nixpkgs/pkgs/tools/misc/graylog/default.nix
index d56f44aacefc..46812da8954b 100644
--- a/nixpkgs/pkgs/tools/misc/graylog/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/hakuneko/default.nix b/nixpkgs/pkgs/tools/misc/hakuneko/default.nix
index 8c2e7dc7451d..34405ccc7bea 100644
--- a/nixpkgs/pkgs/tools/misc/hakuneko/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hakuneko/default.nix
@@ -1,28 +1,84 @@
-{ stdenv, fetchurl, wxGTK30, openssl, curl }:
-
+{ atomEnv
+, autoPatchelfHook
+, dpkg
+, fetchurl
+, makeDesktopItem
+, makeWrapper
+, udev
+, stdenv
+, wrapGAppsHook
+}:
+let
+  desktopItem = makeDesktopItem {
+    desktopName = "HakuNeko Desktop";
+    genericName = "Manga & Anime Downloader";
+    categories = "Network;FileTransfer;";
+    exec = "hakuneko";
+    icon = "hakuneko-desktop";
+    name = "hakuneko-desktop";
+    type = "Application";
+  };
+in
 stdenv.mkDerivation rec {
   pname = "hakuneko";
-  version = "1.4.2";
+  version = "6.1.7";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/hakuneko/hakuneko_${version}_src.tar.gz";
-    sha256 = "76a63fa05e91b082cb5a70a8abacef005354e99978ff8b1369f7aa0af7615d52";
-  };
+  src = {
+    "x86_64-linux" = fetchurl {
+      url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_amd64.deb";
+      sha256 = "06bb17d7a06bb0601053eaaf423f9176f06ff3636cc43ffc024438e1962dcd02";
+    };
+    "i686-linux" = fetchurl {
+      url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_i386.deb";
+      sha256 = "32017d26bafffaaf0a83dd6954d3926557014af4022a972371169c56c0e3d98b";
+    };
+  }."${stdenv.hostPlatform.system}";
+
+  dontBuild = true;
+  dontConfigure = true;
+  dontPatchELF = true;
+  dontWrapGApps = true;
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    makeWrapper
+    wrapGAppsHook
+  ];
+
+  buildInputs = atomEnv.packages;
+
+  unpackPhase = ''
+    # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here
+    dpkg --fsys-tarfile $src | tar --extract
+  '';
 
-  preConfigure = ''
-    substituteInPlace ./configure \
-       --replace /bin/bash $shell
-    '';
+  installPhase = ''
+    cp -R usr "$out"
+    # Overwrite existing .desktop file.
+    cp "${desktopItem}/share/applications/hakuneko-desktop.desktop" \
+       "$out/share/applications/hakuneko-desktop.desktop"
+  '';
 
-  buildInputs = [ wxGTK30 openssl curl ];
+  runtimeDependencies = [
+    udev.lib
+  ];
 
-  meta = {
-    description = "Manga downloader";
-    homepage = https://sourceforge.net/projects/hakuneko/;
-    license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.linux;
+  postFixup = ''
+    makeWrapper $out/lib/hakuneko-desktop/hakuneko $out/bin/hakuneko \
+      "''${gappsWrapperArgs[@]}"
+  '';
 
-    # This project was abandoned upstream.
-    broken = true;
+  meta = with stdenv.lib; {
+    description = "Manga & Anime Downloader";
+    homepage = "https://sourceforge.net/projects/hakuneko/";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [
+      nloomans
+    ];
+    platforms = [
+      "x86_64-linux"
+      "i686-linux"
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock b/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock
index ec69f523f3b8..cab69d41f936 100644
--- a/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix b/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix
index 1f561f529763..fbf65a8a0c03 100644
--- a/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/jdupes/default.nix b/nixpkgs/pkgs/tools/misc/jdupes/default.nix
index bf1501155d96..109a84de6310 100644
--- a/nixpkgs/pkgs/tools/misc/jdupes/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/mcfly/default.nix b/nixpkgs/pkgs/tools/misc/mcfly/default.nix
index db697bc9d511..4ea27ce092f7 100644
--- a/nixpkgs/pkgs/tools/misc/mcfly/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/ms-sys/default.nix b/nixpkgs/pkgs/tools/misc/ms-sys/default.nix
index 2607cf6f300a..0a862834dfb7 100644
--- a/nixpkgs/pkgs/tools/misc/ms-sys/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ms-sys/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/ms-sys/${pname}-${version}.tar.gz";
     sha256 = "06xqpm2s9cg8fj7a1822wmh3p4arii0sifssazg1gr6i7xg7kbjz";
   };
+  # TODO: Remove with next release, see https://sourceforge.net/p/ms-sys/patches/8/
+  patches = [ ./manpages-without-build-timestamps.patch ];
 
   nativeBuildInputs = [ gettext ];
 
diff --git a/nixpkgs/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch b/nixpkgs/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch
new file mode 100644
index 000000000000..7b031cb34f1a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch
@@ -0,0 +1,12 @@
+diff -u ms-sys-2.6.0/Makefile ms-sys-2.6.0-fixed/Makefile
+--- ms-sys-2.6.0/Makefile	2015-09-27 20:39:45.000000000 +0200
++++ ms-sys-2.6.0-fixed/Makefile2020-01-06 16:43:55.181477511 +0100
+@@ -121,7 +121,7 @@
+
+ $(DESTDIR)$(MANDIR)/%: $(MAN)/$(dir $(*D))/$(*F)
+ 	install -D -m 644 $(MAN)/$(dir $(*D))$(*F) $@
+-	gzip -f $@
++	gzip -n -f $@
+
+ #$(DESTDIR)$(MANDIR)/%: $(MAN)/$(*F)
+ #	echo t: $<
diff --git a/nixpkgs/pkgs/tools/misc/mutagen/default.nix b/nixpkgs/pkgs/tools/misc/mutagen/default.nix
new file mode 100644
index 000000000000..7045a5b5140d
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/pfetch/default.nix b/nixpkgs/pkgs/tools/misc/pfetch/default.nix
index 491844f26b75..a858ad696af8 100644
--- a/nixpkgs/pkgs/tools/misc/pfetch/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/pg_flame/default.nix b/nixpkgs/pkgs/tools/misc/pg_flame/default.nix
index a7b483a3f06a..fbeba0ff1bdc 100644
--- a/nixpkgs/pkgs/tools/misc/pg_flame/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/pipreqs/default.nix b/nixpkgs/pkgs/tools/misc/pipreqs/default.nix
index 15c5cbc0eb11..9925021b3f64 100644
--- a/nixpkgs/pkgs/tools/misc/pipreqs/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/pspg/default.nix b/nixpkgs/pkgs/tools/misc/pspg/default.nix
index c42ea76ca856..4cf98ef8b485 100644
--- a/nixpkgs/pkgs/tools/misc/pspg/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/skim/default.nix b/nixpkgs/pkgs/tools/misc/skim/default.nix
index 55e6e5424d73..0c8e2da36df1 100644
--- a/nixpkgs/pkgs/tools/misc/skim/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/snapper/default.nix b/nixpkgs/pkgs/tools/misc/snapper/default.nix
index 466a5f3faf1c..283503f28788 100644
--- a/nixpkgs/pkgs/tools/misc/snapper/default.nix
+++ b/nixpkgs/pkgs/tools/misc/snapper/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.8.7";
+  version = "0.8.8";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "0605j4f3plb6q8lwf82y2jhply6dwj49jgxk8j16wsbf5k7lqzfq";
+    sha256 = "0wpf82xf61r9r20whhb83wk3408wac1if8awqm3bb36b9j7ni5jr";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/starship/default.nix b/nixpkgs/pkgs/tools/misc/starship/default.nix
index fa59935f561f..9c9a4450ee8b 100644
--- a/nixpkgs/pkgs/tools/misc/starship/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix b/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix
index ab2edf7be4e8..b7c9150e12d7 100644
--- a/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/topgrade/default.nix b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
index 060975f2002b..17d11d7e48a1 100644
--- a/nixpkgs/pkgs/tools/misc/topgrade/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/txr/default.nix b/nixpkgs/pkgs/tools/misc/txr/default.nix
index 0f68ca82ece8..a6b851e18aef 100644
--- a/nixpkgs/pkgs/tools/misc/txr/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/usbmuxd/default.nix b/nixpkgs/pkgs/tools/misc/usbmuxd/default.nix
index 9b94d0037060..5935710164c4 100644
--- a/nixpkgs/pkgs/tools/misc/usbmuxd/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/vmtouch/default.nix b/nixpkgs/pkgs/tools/misc/vmtouch/default.nix
index fda442a67294..6397a0933476 100644
--- a/nixpkgs/pkgs/tools/misc/vmtouch/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/wakatime/default.nix b/nixpkgs/pkgs/tools/misc/wakatime/default.nix
index a685dc7cbdee..58ad9182261b 100644
--- a/nixpkgs/pkgs/tools/misc/wakatime/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/yle-dl/default.nix b/nixpkgs/pkgs/tools/misc/yle-dl/default.nix
index d369bb4fed78..e106c3b8595a 100644
--- a/nixpkgs/pkgs/tools/misc/yle-dl/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix b/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
index 415ec83be2f7..875eccac942f 100644
--- a/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/axel/default.nix b/nixpkgs/pkgs/tools/networking/axel/default.nix
index 1fa43e5849e2..a9ddd9a8b682 100644
--- a/nixpkgs/pkgs/tools/networking/axel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/axel/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     description = "Console downloading program with some features for parallel connections for faster downloading";
     homepage = "https://github.com/axel-download-accelerator/axel";
     maintainers = with maintainers; [ pSub ];
-    platforms = with platforms; linux;
+    platforms = with platforms; unix;
     license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bandwhich/default.nix b/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
index cfccefab3517..a399e7209af3 100644
--- a/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bandwhich";
-  version = "0.8.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "imsnif";
     repo = pname;
     rev = version;
-    sha256 = "1pd0hy17knalq4m5517ymbg95fa141843ir9283djlh3iqfgkm37";
+    sha256 = "0xq2lv06dx7g00b4amk131krlsb6acsz7b228pn3iz6gy31fhz3y";
   };
 
-  cargoSha256 = "14mb6rbjxv3r8awvy0rjc23lyhg92q1q1dik6q1za1aq9w8yipwf";
+  cargoSha256 = "1sa81570cvvpqgdcpnb08b0q4c6ap8a2wxfp2z336jzbv0zgv8a6";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/tools/networking/cassowary/default.nix b/nixpkgs/pkgs/tools/networking/cassowary/default.nix
new file mode 100644
index 000000000000..bc1f9cebb42f
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/corerad/default.nix b/nixpkgs/pkgs/tools/networking/corerad/default.nix
index 6f9ea09eea18..c5cbd8c21f52 100644
--- a/nixpkgs/pkgs/tools/networking/corerad/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/httpie/default.nix b/nixpkgs/pkgs/tools/networking/httpie/default.nix
index 4230762d9466..38fdab358c90 100644
--- a/nixpkgs/pkgs/tools/networking/httpie/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/httpie/strip-venv.patch b/nixpkgs/pkgs/tools/networking/httpie/strip-venv.patch
new file mode 100644
index 000000000000..99ea80a3f566
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/iperf/3.nix b/nixpkgs/pkgs/tools/networking/iperf/3.nix
index c59eb09f4c5c..bea61b082ec0 100644
--- a/nixpkgs/pkgs/tools/networking/iperf/3.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/lftp/default.nix b/nixpkgs/pkgs/tools/networking/lftp/default.nix
index 9a982e538256..602ada1476a9 100644
--- a/nixpkgs/pkgs/tools/networking/lftp/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/mu/default.nix b/nixpkgs/pkgs/tools/networking/mu/default.nix
index 6c2a42e3a242..cdd954e19758 100644
--- a/nixpkgs/pkgs/tools/networking/mu/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/nebula/default.nix b/nixpkgs/pkgs/tools/networking/nebula/default.nix
index 7f9d194e44a2..3411aca55519 100644
--- a/nixpkgs/pkgs/tools/networking/nebula/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/saldl/default.nix b/nixpkgs/pkgs/tools/networking/saldl/default.nix
new file mode 100644
index 000000000000..d51e5515bd63
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/strongswan/default.nix b/nixpkgs/pkgs/tools/networking/strongswan/default.nix
index 27453083d591..fb7de5486fb0 100644
--- a/nixpkgs/pkgs/tools/networking/strongswan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/strongswan/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchpatch
 , pkgconfig, autoreconfHook
-, gmp, python, iptables, ldns, unbound, openssl, pcsclite, glib
+, gmp, python3, iptables, ldns, unbound, openssl, pcsclite, glib
 , openresolv
 , systemd, pam
 , curl
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs =
-    [ curl gmp python ldns unbound openssl pcsclite ]
+    [ curl gmp python3 ldns unbound openssl pcsclite ]
     ++ optionals enableTNC [ trousers sqlite libxml2 ]
     ++ optionals stdenv.isLinux [ systemd.dev pam iptables ]
     ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ SystemConfiguration ])
diff --git a/nixpkgs/pkgs/tools/networking/subfinder/default.nix b/nixpkgs/pkgs/tools/networking/subfinder/default.nix
index cd5f2bf18cbd..70820ea03208 100644
--- a/nixpkgs/pkgs/tools/networking/subfinder/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/networking/wavemon/default.nix b/nixpkgs/pkgs/tools/networking/wavemon/default.nix
index fefff8573816..89177f49ecfc 100644
--- a/nixpkgs/pkgs/tools/networking/wavemon/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/package-management/nfpm/default.nix b/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
index a4acdf0a3413..60091742e0d0 100644
--- a/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix b/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix
index cd90e50d70eb..b78b3bf07cd5 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-bundle/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix b/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix
index f88820ffad9e..19a40b7395fa 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/package-management/packagekit/default.nix b/nixpkgs/pkgs/tools/package-management/packagekit/default.nix
index a3c3c0d40a99..dc69ae457dcd 100644
--- a/nixpkgs/pkgs/tools/package-management/packagekit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/packagekit/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, lib
-, intltool, glib, pkgconfig, polkit, python, sqlite
+, intltool, glib, pkgconfig, polkit, python3, sqlite
 , gobject-introspection, vala, gtk-doc, autoreconfHook, autoconf-archive
 # TODO: set enableNixBackend to true, as soon as it builds
 , nix, enableNixBackend ? false, boost
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "packagekit";
-  version = "1.1.12";
+  version = "1.1.13";
 
   outputs = [ "out" "dev" ];
 
@@ -17,10 +17,10 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "PackageKit";
     rev = "PACKAGEKIT_${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "02wq3jw3mkdld90irh5vdfd5bri2g1p89mhrmj56kvif1fqak46x";
+    sha256 = "0xmgac27p5z8wr56yw3cqhywnlvaf8kvyv1g0nzxnq167xj5vxam";
   };
 
-  buildInputs = [ glib polkit python gobject-introspection ]
+  buildInputs = [ glib polkit python3 gobject-introspection ]
                   ++ lib.optional enableSystemd systemd
                   ++ lib.optional enableBashCompletion bash-completion;
   propagatedBuildInputs = [ sqlite nix boost ];
@@ -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/nixpkgs/pkgs/tools/package-management/rpm/default.nix b/nixpkgs/pkgs/tools/package-management/rpm/default.nix
index ae0259e65fcd..05d293b5bf12 100644
--- a/nixpkgs/pkgs/tools/package-management/rpm/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/security/chrome-token-signing/default.nix b/nixpkgs/pkgs/tools/security/chrome-token-signing/default.nix
index 5e304f86b4ef..76c845e7a99e 100644
--- a/nixpkgs/pkgs/tools/security/chrome-token-signing/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/security/fail2ban/default.nix b/nixpkgs/pkgs/tools/security/fail2ban/default.nix
index 5ea918542828..4ec84353e4ee 100644
--- a/nixpkgs/pkgs/tools/security/fail2ban/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/security/fido2luks/default.nix b/nixpkgs/pkgs/tools/security/fido2luks/default.nix
new file mode 100644
index 000000000000..0bb5a91a81a7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/fido2luks/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, cryptsetup
+, pkg-config
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fido2luks";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "shimunn";
+    repo = pname;
+    rev = version;
+    sha256 = "018qzbgmgm0f0d0c7i54nqqjbr4k5mzy1xfavi6hpifjll971wci";
+  };
+
+  buildInputs = [ cryptsetup ];
+  nativeBuildInputs = [ pkg-config ];
+
+  cargoSha256 = "1kf757wxxk5h8dfbz588qw1pnyjbg5qzr7rz14i7x8rhmn5xwb74";
+  verifyCargoDeps = true;
+
+  meta = with stdenv.lib; {
+    description = "Decrypt your LUKS partition using a FIDO2 compatible authenticator";
+    homepage = "https://github.com/shimunn/fido2luks";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ prusnak mmahut ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/jwt-cli/default.nix b/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
index 7146cc52e9e1..83b630a4f4f6 100644
--- a/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, rustPlatform }:
+{ stdenv, fetchFromGitHub, rustPlatform, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "jwt-cli";
@@ -13,6 +13,8 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "005y92acsn5j490jkp23ny7bsjd9ql1glybmbh4cyc8b15hmy618";
 
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
   meta = with stdenv.lib; {
     description = "Super fast CLI tool to decode and encode JWTs";
     homepage = "https://github.com/mike-engel/jwt-cli";
diff --git a/nixpkgs/pkgs/tools/security/nmap/default.nix b/nixpkgs/pkgs/tools/security/nmap/default.nix
index 1b66dab35c8f..f88c533d71d3 100644
--- a/nixpkgs/pkgs/tools/security/nmap/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/security/nmap/qt.nix b/nixpkgs/pkgs/tools/security/nmap/qt.nix
index f873c475bbfe..2dcd7fed0c4b 100644
--- a/nixpkgs/pkgs/tools/security/nmap/qt.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/security/pass/default.nix b/nixpkgs/pkgs/tools/security/pass/default.nix
index 5d0e94bc803e..54a8f4de7d7b 100644
--- a/nixpkgs/pkgs/tools/security/pass/default.nix
+++ b/nixpkgs/pkgs/tools/security/pass/default.nix
@@ -111,6 +111,12 @@ let
     '' + stdenv.lib.optionalString stdenv.isDarwin ''
       # 'pass edit' uses hdid, which is not available from the sandbox.
       rm -f tests/t0200-edit-tests.sh
+      rm -f tests/t0010-generate-tests.sh
+      rm -f tests/t0020-show-tests.sh
+      rm -f tests/t0050-mv-tests.sh
+      rm -f tests/t0100-insert-tests.sh
+      rm -f tests/t0300-reencryption.sh
+      rm -f tests/t0400-grep.sh
     '';
 
     doCheck = false;
diff --git a/nixpkgs/pkgs/tools/security/rage/default.nix b/nixpkgs/pkgs/tools/security/rage/default.nix
new file mode 100644
index 000000000000..63cc2972a58d
--- /dev/null
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/system/bfs/default.nix b/nixpkgs/pkgs/tools/system/bfs/default.nix
index a304fce352f8..1387a6c6ed17 100644
--- a/nixpkgs/pkgs/tools/system/bfs/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/system/facter/default.nix b/nixpkgs/pkgs/tools/system/facter/default.nix
index 86aa5adb6f8f..acc3990378fd 100644
--- a/nixpkgs/pkgs/tools/system/facter/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/system/htop/default.nix b/nixpkgs/pkgs/tools/system/htop/default.nix
index 12e54b1b22ed..1b68273a5700 100644
--- a/nixpkgs/pkgs/tools/system/htop/default.nix
+++ b/nixpkgs/pkgs/tools/system/htop/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchurl, stdenv, ncurses,
-IOKit, python }:
+IOKit, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "htop";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr";
   };
 
-  nativeBuildInputs = [ python ];
+  nativeBuildInputs = [ python3 ];
   buildInputs =
     [ ncurses ] ++
     lib.optionals stdenv.isDarwin [ IOKit ];
diff --git a/nixpkgs/pkgs/tools/text/fanficfare/default.nix b/nixpkgs/pkgs/tools/text/fanficfare/default.nix
index b01317a532ff..105a2d3308f3 100644
--- a/nixpkgs/pkgs/tools/text/fanficfare/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/text/mdcat/default.nix b/nixpkgs/pkgs/tools/text/mdcat/default.nix
index 626963bc6010..6b19251acf8e 100644
--- a/nixpkgs/pkgs/tools/text/mdcat/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdcat/default.nix
@@ -2,26 +2,28 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "mdcat-${version}";
-    sha256 = "1q8h6pc1i89j1zl4s234inl9v95vsdrry1fzlis89sl2mnbv8ywy";
+    sha256 = "1x9c3cj3y8wvwr74kbz6nrdh61rinr98gcp3hnjpi6c3vg3xx4wh";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "1hxsfls6fpllc9yg5ib3qz6pa62j1y1va8a6356j6812csk4ifnn";
+  cargoSha256 = "1kc434pa72n9xll2r4ddmd9xdwv3ls36cwsmdry392j41zmics51";
 
   checkInputs = [ ansi2html ];
   checkPhase = ''
     # Skip tests that use the network and that include files.
-    cargo test -- --skip terminal::iterm2 --skip terminal::resources::tests::remote \
+    cargo test -- --skip terminal::iterm2 \
       --skip magic::tests::detect_mimetype_of_svg_image \
-      --skip magic::tests::detect_mimetype_of_png_image
+      --skip magic::tests::detect_mimetype_of_png_image \
+      --skip resources::tests::read_url_with_http_url_fails_when_status_404 \
+      --skip resources::tests::read_url_with_http_url_returns_content_when_status_200
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/text/shfmt/default.nix b/nixpkgs/pkgs/tools/text/shfmt/default.nix
index 6f29cbc18f23..0bcd663ae5a9 100644
--- a/nixpkgs/pkgs/tools/text/shfmt/default.nix
+++ b/nixpkgs/pkgs/tools/text/shfmt/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "shfmt";
-  version = "2.6.4";
-
-  goPackagePath = "mvdan.cc/sh";
-  subPackages = ["cmd/shfmt"];
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "sh";
     rev = "v${version}";
-    sha256 = "1jifac0fi0sz6wzdgvk6s9xwpkdng2hj63ldbaral8n2j9km17hh";
+    sha256 = "1y6n2xi8m579xksnnsdzb4zvcvij48kywjfqzp7qm43ni8g7w9a8";
   };
 
+  modSha256 = "1ll2cxhgf8hh19wzdykgc81c4yfcp8bzmfaif08nvvb63rhjdb5y";
+  subPackages = ["cmd/shfmt"];
+
   meta = with stdenv.lib; {
     homepage = https://github.com/mvdan/sh;
     description = "A shell parser and formatter";
diff --git a/nixpkgs/pkgs/tools/text/unoconv/default.nix b/nixpkgs/pkgs/tools/text/unoconv/default.nix
index fca9a6c73602..7ebd2652d2da 100644
--- a/nixpkgs/pkgs/tools/text/unoconv/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/text/unoconv/unoconv-python3.patch b/nixpkgs/pkgs/tools/text/unoconv/unoconv-python3.patch
deleted file mode 100644
index 2c6e9c719411..000000000000
--- a/nixpkgs/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/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix
index 8eaee977d288..39e7eab34abb 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix
+++ b/nixpkgs/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/nixpkgs/pkgs/tools/typesetting/tex/texlive/UPGRADING.md b/nixpkgs/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
index 6c0380fac49a..3f37184e5d3f 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
+++ b/nixpkgs/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/nixpkgs/pkgs/top-level/aliases.nix b/nixpkgs/pkgs/top-level/aliases.nix
index e27587a5ae83..737e34da117e 100644
--- a/nixpkgs/pkgs/top-level/aliases.nix
+++ b/nixpkgs/pkgs/top-level/aliases.nix
@@ -441,6 +441,7 @@ mapAliases ({
   transmission_remote_gtk = transmission-remote-gtk; # added 2018-01-06
   truecrypt = veracrypt; # added 2018-10-24
   tshark = wireshark-cli; # added 2018-04-25
+  ubootBeagleboneBlack = ubootAmx335xEVM; # added 2020-01-21
   ucsFonts = ucs-fonts; # added 2016-07-15
   ultrastardx-beta = ultrastardx; # added 2017-08-12
   usb_modeswitch = usb-modeswitch; # added 2016-05-10
@@ -474,6 +475,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/nixpkgs/pkgs/top-level/all-packages.nix b/nixpkgs/pkgs/top-level/all-packages.nix
index c4e2e4914ac2..92574f3ba839 100644
--- a/nixpkgs/pkgs/top-level/all-packages.nix
+++ b/nixpkgs/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;
@@ -1298,7 +1306,7 @@ in
 
   burpsuite = callPackage ../tools/networking/burpsuite {};
 
-  bs-platform = (callPackage ../development/compilers/bs-platform {}).bs-platform-621;
+  bs-platform = callPackage ../development/compilers/bs-platform {};
 
   c3d = callPackage ../applications/graphics/c3d {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
@@ -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;
@@ -1862,7 +1874,9 @@ in
 
   jotta-cli = callPackage ../applications/misc/jotta-cli { };
 
-  jwt-cli = callPackage ../tools/security/jwt-cli { };
+  jwt-cli = callPackage ../tools/security/jwt-cli {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   kapacitor = callPackage ../servers/monitoring/kapacitor { };
 
@@ -2940,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,8 +3256,12 @@ in
     stdenv = gccStdenv;
   };
 
+  fluidasserts = with python37Packages; toPythonApplication fluidasserts;
+
   flux = callPackage ../development/compilers/flux { };
 
+  fido2luks = callPackage ../tools/security/fido2luks {};
+
   fierce = callPackage ../tools/security/fierce { };
 
   figlet = callPackage ../tools/misc/figlet { };
@@ -4910,6 +4932,8 @@ in
 
   mandoc = callPackage ../tools/misc/mandoc { };
 
+  marktext = callPackage ../applications/misc/marktext { };
+
   mawk = callPackage ../tools/text/mawk { };
 
   mb2md = callPackage ../tools/text/mb2md { };
@@ -5109,6 +5133,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 +5713,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 +6240,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 {};
@@ -6792,7 +6822,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.
@@ -6918,6 +6950,10 @@ in
 
   ua = callPackage ../tools/networking/ua { };
 
+  uberwriter = callPackage ../applications/editors/uberwriter {
+    pythonPackages = python3Packages;
+  };
+
   ubridge = callPackage ../tools/networking/ubridge { };
 
   ucl = callPackage ../development/libraries/ucl { };
@@ -7526,6 +7562,8 @@ in
 
   zfstools = callPackage ../tools/filesystems/zfstools { };
 
+  zfsnap = callPackage ../tools/backup/zfsnap { };
+
   zile = callPackage ../applications/editors/zile { };
 
   zinnia = callPackage ../tools/inputmethods/zinnia { };
@@ -7545,6 +7583,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 { };
 
@@ -7807,6 +7847,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 {
@@ -8714,7 +8776,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 {
@@ -9761,9 +9823,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 { };
 
@@ -10514,6 +10576,8 @@ in
 
   rman = callPackage ../development/tools/misc/rman { };
 
+  rnix-lsp = callPackage ../development/tools/rnix-lsp { };
+
   rolespec = callPackage ../development/tools/misc/rolespec { };
 
   rr = callPackage ../development/tools/analysis/rr { };
@@ -10803,6 +10867,8 @@ in
 
   alure = callPackage ../development/libraries/alure { };
 
+  alure2 = callPackage ../development/libraries/alure2 { };
+
   agg = callPackage ../development/libraries/agg { };
 
   allegro = allegro4;
@@ -10842,7 +10908,7 @@ in
   arrayfire = callPackage ../development/libraries/arrayfire {};
 
   arrow-cpp = callPackage ../development/libraries/arrow-cpp ({
-    gtest = gtest.override { static = true; };
+    inherit (pkgsStatic) gtest;
   } // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
     stdenv = overrideCC stdenv buildPackages.gcc6; # hidden symbol `__divmoddi4'
   });
@@ -11086,9 +11152,8 @@ in
 
   cpp-ipfs-api = callPackage ../development/libraries/cpp-ipfs-api { };
 
-  cpp-netlib = callPackage ../development/libraries/cpp-netlib {
-    openssl = openssl_1_0_2;
-  };
+  cpp-netlib = callPackage ../development/libraries/cpp-netlib {};
+
   uri = callPackage ../development/libraries/uri { };
 
   cppcms = callPackage ../development/libraries/cppcms { };
@@ -13675,6 +13740,10 @@ in
     buildPythonApplication click future six;
   };
 
+  prospector = callPackage ../development/tools/prospector {
+    python = python37;
+  };
+
   protobuf = protobuf3_7;
 
   protobuf3_11 = callPackage ../development/libraries/protobuf/3.11.nix { };
@@ -13983,7 +14052,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 { };
 
@@ -14324,6 +14392,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 { };
@@ -15709,7 +15779,9 @@ in
     libtool = darwin.cctools;
   };
 
-  rippled = callPackage ../servers/rippled { };
+  rippled = callPackage ../servers/rippled {
+    boost = boost17x;
+  };
 
   rippled-validator-keys-tool = callPackage ../servers/rippled/validator-keys-tool.nix {
     boost = boost167.override {
@@ -16381,14 +16453,6 @@ in
       ];
   };
 
-  linux_5_3 = callPackage ../os-specific/linux/kernel/linux-5.3.nix {
-    kernelPatches = [
-      kernelPatches.bridge_stp_helper
-      kernelPatches.request_key_helper
-      kernelPatches.export_kernel_fpu_functions."5.3"
-    ];
-  };
-
   linux_5_4 = callPackage ../os-specific/linux/kernel/linux-5.4.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
@@ -16583,6 +16647,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;
@@ -16611,7 +16677,6 @@ in
   linuxPackages_4_9 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_9);
   linuxPackages_4_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_14);
   linuxPackages_4_19 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_19);
-  linuxPackages_5_3 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_3);
   linuxPackages_5_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_4);
 
   # When adding to this list:
@@ -17119,7 +17184,7 @@ in
     ubootBananaPi
     ubootBananaPim3
     ubootBananaPim64
-    ubootBeagleboneBlack
+    ubootAmx335xEVM
     ubootClearfog
     ubootGuruplug
     ubootJetsonTK1
@@ -17206,10 +17271,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 { };
@@ -17510,6 +17571,8 @@ in
 
   iwona = callPackage ../data/fonts/iwona { };
 
+  jetbrains-mono = callPackage ../data/fonts/jetbrains-mono { };
+
   jost = callPackage ../data/fonts/jost { };
 
   joypixels = callPackage ../data/fonts/joypixels { };
@@ -18074,6 +18137,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 { };
@@ -18250,7 +18316,9 @@ in
 
   bleachbit = callPackage ../applications/misc/bleachbit { };
 
-  blender = callPackage  ../applications/misc/blender { };
+  blender = callPackage  ../applications/misc/blender {
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics ForceFeedback OpenAL OpenGL;
+  };
 
   bluefish = callPackage ../applications/editors/bluefish {
     gtk = gtk3;
@@ -18592,6 +18660,7 @@ in
   docker-machine-kvm2 = callPackage ../applications/networking/cluster/docker-machine/kvm2.nix { };
   docker-machine-xhyve = callPackage ../applications/networking/cluster/docker-machine/xhyve.nix {
     inherit (darwin.apple_sdk.frameworks) Hypervisor vmnet;
+    inherit (darwin) cctools;
   };
 
   docker-distribution = callPackage ../applications/virtualization/docker/distribution.nix { };
@@ -20911,6 +20980,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 { };
@@ -21694,6 +21765,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 { };
@@ -22038,7 +22111,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 { };
 
@@ -23066,6 +23140,8 @@ in
 
   megaglest = callPackage ../games/megaglest {};
 
+  mindustry = callPackage ../games/mindustry { };
+
   minecraft = callPackage ../games/minecraft { };
 
   minecraft-server = callPackage ../games/minecraft-server { };
@@ -23111,6 +23187,8 @@ in
 
   newtonwars = callPackage ../games/newtonwars { };
 
+  nudoku = callPackage ../games/nudoku { };
+
   nxengine-evo = callPackage ../games/nxengine-evo { };
 
   odamex = callPackage ../games/odamex { };
@@ -23157,9 +23235,7 @@ in
 
   openxcom = callPackage ../games/openxcom { };
 
-  openxray = callPackage ../games/openxray {
-    stdenv = gcc8Stdenv;
-  };
+  openxray = callPackage ../games/openxray { };
 
   orthorobot = callPackage ../games/orthorobot { };
 
@@ -23957,6 +24033,8 @@ in
 
   nasc = callPackage ../applications/science/math/nasc { };
 
+  nota = haskellPackages.callPackage ../applications/science/math/nota { };
+
   openblas = callPackage ../development/libraries/science/math/openblas { };
 
   # A version of OpenBLAS using 32-bit integers on all platforms for compatibility with
@@ -25444,6 +25522,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;
   };
@@ -25842,4 +25922,7 @@ in
 
   kcli = callPackage ../development/tools/kcli {};
 
+  unstick = callPackage ../os-specific/linux/unstick {};
+
+  quartus-prime-lite = callPackage ../applications/editors/quartus-prime {};
 }
diff --git a/nixpkgs/pkgs/top-level/darwin-packages.nix b/nixpkgs/pkgs/top-level/darwin-packages.nix
index 5ef05061e8d5..9423aa307253 100644
--- a/nixpkgs/pkgs/top-level/darwin-packages.nix
+++ b/nixpkgs/pkgs/top-level/darwin-packages.nix
@@ -68,8 +68,12 @@ in
 
   usr-include = callPackage ../os-specific/darwin/usr-include { };
 
-  inherit (callPackages ../os-specific/darwin/xcode { } )
-          xcode_8_1 xcode_8_2 xcode_9_1 xcode_9_2 xcode_9_4 xcode;
+  inherit (callPackages ../os-specific/darwin/xcode { })
+    xcode_8_1 xcode_8_2
+    xcode_9_1 xcode_9_2 xcode_9_4 xcode_9_4_1
+    xcode_10_2 xcode_10_2_1 xcode_10_3
+    xcode_11
+    xcode;
 
   CoreSymbolication = callPackage ../os-specific/darwin/CoreSymbolication { };
 
diff --git a/nixpkgs/pkgs/top-level/ocaml-packages.nix b/nixpkgs/pkgs/top-level/ocaml-packages.nix
index 4a7743b10901..a6adfc958152 100644
--- a/nixpkgs/pkgs/top-level/ocaml-packages.nix
+++ b/nixpkgs/pkgs/top-level/ocaml-packages.nix
@@ -468,6 +468,8 @@ let
 
     lambdaTerm = callPackage ../development/ocaml-modules/lambda-term { };
 
+    lens = callPackage ../development/ocaml-modules/lens { };
+
     linenoise = callPackage ../development/ocaml-modules/linenoise { };
 
     llvm = callPackage ../development/ocaml-modules/llvm {
@@ -837,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 { };
@@ -1230,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/nixpkgs/pkgs/top-level/python-packages.nix b/nixpkgs/pkgs/top-level/python-packages.nix
index 6b53bec4ccbe..2f854138ba16 100644
--- a/nixpkgs/pkgs/top-level/python-packages.nix
+++ b/nixpkgs/pkgs/top-level/python-packages.nix
@@ -108,7 +108,7 @@ in {
   inherit buildSetupcfg;
 
   inherit (callPackage ../development/interpreters/python/hooks { })
-    eggUnpackHook eggBuildHook eggInstallHook flitBuildHook pipBuildHook pipInstallHook pytestCheckHook pythonCatchConflictsHook pythonImportsCheckHook pythonRemoveBinBytecodeHook setuptoolsBuildHook setuptoolsCheckHook wheelUnpackHook;
+    eggUnpackHook eggBuildHook eggInstallHook flitBuildHook pipBuildHook pipInstallHook pytestCheckHook pythonCatchConflictsHook pythonImportsCheckHook pythonRemoveBinBytecodeHook setuptoolsBuildHook setuptoolsCheckHook venvShellHook wheelUnpackHook;
 
   # helpers
 
@@ -562,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 { };
@@ -676,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 { };
@@ -690,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 { };
@@ -817,11 +823,11 @@ in {
 
   mail-parser = callPackage ../development/python-modules/mail-parser { };
 
-  mailman = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/default.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 { };
 
@@ -905,6 +911,8 @@ in {
 
   oauthenticator = callPackage ../development/python-modules/oauthenticator { };
 
+  onnx = callPackage ../development/python-modules/onnx { };
+
   ordered-set = callPackage ../development/python-modules/ordered-set { };
 
   ortools = (toPythonModule (pkgs.or-tools.override {
@@ -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 { };
@@ -1394,6 +1408,8 @@ in {
 
   stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
 
+  stups-pierone = callPackage ../development/python-modules/stups-pierone { };
+
   stups-tokens = callPackage ../development/python-modules/stups-tokens { };
 
   stups-zign = callPackage ../development/python-modules/stups-zign { };
@@ -1671,6 +1687,8 @@ in {
 
   avro3k = callPackage ../development/python-modules/avro3k {};
 
+  avro-python3 = callPackage ../development/python-modules/avro-python3 {};
+
   aws-lambda-builders = callPackage ../development/python-modules/aws-lambda-builders { };
 
   python-slugify = callPackage ../development/python-modules/python-slugify { };
@@ -1891,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 { };
@@ -2101,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 { };
@@ -2428,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
@@ -2486,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 { };
@@ -2575,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 { };
@@ -2654,6 +2688,8 @@ in {
 
   gpsoauth = callPackage ../development/python-modules/gpsoauth { };
 
+  gpxpy = callPackage ../development/python-modules/gpxpy { };
+
   grip = callPackage ../development/python-modules/grip { };
 
   gst-python = callPackage ../development/python-modules/gst-python {
@@ -2731,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 { };
@@ -2922,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 { };
@@ -3043,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 {};
 
@@ -3161,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 { };
@@ -3450,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 { };
@@ -3964,7 +4006,7 @@ in {
   libsavitar = callPackage ../development/python-modules/libsavitar { };
 
   libplist = disabledIf isPy3k
-    (toPythonModule (pkgs.libplist.override{python2Packages=self; })).py;
+    (toPythonModule (pkgs.libplist.override { enablePython = true; inherit python; })).py;
 
   libxml2 = (toPythonModule (pkgs.libxml2.override{pythonSupport=true; inherit python;})).py;
 
@@ -4825,6 +4867,12 @@ in {
   pylint = if isPy3k then callPackage ../development/python-modules/pylint { }
            else callPackage ../development/python-modules/pylint/1.9.nix { };
 
+  pylint-celery = callPackage ../development/python-modules/pylint-celery { };
+
+  pylint-django = callPackage ../development/python-modules/pylint-django { };
+
+  pylint-flask = callPackage ../development/python-modules/pylint-flask { };
+
   pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
 
   pyomo = callPackage ../development/python-modules/pyomo { };
@@ -4935,6 +4983,8 @@ in {
 
   pynmea2 = callPackage ../development/python-modules/pynmea2 {};
 
+  pynrrd = callPackage ../development/python-modules/pynrrd { };
+
   pynzb = callPackage ../development/python-modules/pynzb { };
 
   process-tests = callPackage ../development/python-modules/process-tests { };
@@ -5009,6 +5059,8 @@ in {
 
   python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
 
+  python-miio = callPackage ../development/python-modules/python-miio { };
+
   python-pipedrive = callPackage ../development/python-modules/python-pipedrive { };
 
   python-ptrace = callPackage ../development/python-modules/python-ptrace { };
@@ -5445,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 { };
@@ -6839,6 +6893,8 @@ in {
 
   pony = callPackage ../development/python-modules/pony { };
 
+  rxv     = callPackage ../development/python-modules/rxv     { };
+
 });
 
 in fix' (extends overrides packages)
diff --git a/nixpkgs/pkgs/top-level/release-small.nix b/nixpkgs/pkgs/top-level/release-small.nix
index 1ed3601270f8..ab7e4ce00d7d 100644
--- a/nixpkgs/pkgs/top-level/release-small.nix
+++ b/nixpkgs/pkgs/top-level/release-small.nix
@@ -156,7 +156,6 @@ with import ./release-lib.nix { inherit supportedSystems; };
   time = linux;
   tinycc = linux;
   udev = linux;
-  unar = linux;
   unzip = all;
   usbutils = linux;
   utillinux = linux;
diff --git a/nixpkgs/pkgs/top-level/release.nix b/nixpkgs/pkgs/top-level/release.nix
index 7060fea588a5..6ada2ca6d184 100644
--- a/nixpkgs/pkgs/top-level/release.nix
+++ b/nixpkgs/pkgs/top-level/release.nix
@@ -105,7 +105,6 @@ let
               jobs.nix-info-tested.x86_64-linux
               # Ensure that X11/GTK are in order.
               jobs.thunderbird.x86_64-linux
-              jobs.unar.x86_64-linux
               jobs.cachix.x86_64-linux
 
               /*
@@ -192,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/nixpkgs/pkgs/top-level/static.nix b/nixpkgs/pkgs/top-level/static.nix
index 09ea593857d4..3dd539e03a72 100644
--- a/nixpkgs/pkgs/top-level/static.nix
+++ b/nixpkgs/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; }; };
@@ -185,21 +181,12 @@ in {
     static = true;
     twisted = null;
   };
-  double-conversion = super.double-conversion.override {
-    static = true;
-  };
   gmp = super.gmp.override {
     withStatic = true;
   };
   gflags = super.gflags.override {
     enableShared = false;
   };
-  glog = super.glog.override {
-    static = true;
-  };
-  gtest = super.gtest.override {
-    static = true;
-  };
   cdo = super.cdo.override {
     enable_all_static = true;
   };