summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--README.md8
-rw-r--r--default.nix2
-rw-r--r--doc/.gitignore1
-rw-r--r--doc/Makefile8
-rw-r--r--doc/cross-compilation.xml7
-rw-r--r--doc/default.nix5
-rw-r--r--doc/functions.xml1019
-rw-r--r--doc/functions/debug.xml21
-rw-r--r--doc/functions/dockertools.xml564
-rw-r--r--doc/functions/fhs-environments.xml142
-rw-r--r--doc/functions/generators.xml89
-rw-r--r--doc/functions/library.xml15
-rw-r--r--doc/functions/library/asserts.xml117
-rw-r--r--doc/functions/library/attrsets.xml970
-rw-r--r--doc/functions/overrides.xml203
-rw-r--r--doc/functions/shell.xml26
-rw-r--r--doc/lib-function-locations.nix85
-rw-r--r--doc/package-notes.xml74
-rw-r--r--doc/shell.nix2
-rw-r--r--doc/shell.section.md22
-rw-r--r--lib/options.nix39
-rw-r--r--lib/sources.nix4
-rw-r--r--lib/trivial.nix10
-rw-r--r--maintainers/maintainer-list.nix30
-rw-r--r--nixos/doc/manual/Makefile2
-rw-r--r--nixos/doc/manual/installation/installing-usb.xml48
-rw-r--r--nixos/doc/manual/installation/installing.xml707
-rw-r--r--nixos/doc/manual/release-notes/rl-1809.xml341
-rw-r--r--nixos/doc/manual/release-notes/rl-1903.xml8
-rw-r--r--nixos/modules/hardware/opengl.nix22
-rw-r--r--nixos/modules/hardware/video/nvidia.nix120
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl3
-rw-r--r--nixos/modules/installer/tools/nixos-option.sh4
-rw-r--r--nixos/modules/misc/version.nix5
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/programs/bash/bash.nix2
-rw-r--r--nixos/modules/programs/light.nix5
-rw-r--r--nixos/modules/security/pam.nix7
-rw-r--r--nixos/modules/security/polkit.nix10
-rw-r--r--nixos/modules/services/desktops/profile-sync-daemon.nix136
-rw-r--r--nixos/modules/services/misc/emby.nix2
-rw-r--r--nixos/modules/services/monitoring/prometheus/alertmanager.nix23
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/snmp.nix8
-rw-r--r--nixos/modules/services/networking/bitlbee.nix41
-rw-r--r--nixos/modules/services/networking/charybdis.nix2
-rw-r--r--nixos/modules/services/networking/miniupnpd.nix24
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix463
-rw-r--r--nixos/modules/services/web-apps/tt-rss.nix6
-rw-r--r--nixos/modules/services/web-servers/nginx/default.nix17
-rw-r--r--nixos/modules/services/web-servers/nginx/location-options.nix10
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix9
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix11
-rw-r--r--nixos/modules/services/x11/display-managers/gdm.nix12
-rw-r--r--nixos/modules/services/x11/display-managers/lightdm.nix6
-rw-r--r--nixos/modules/services/x11/display-managers/sddm.nix4
-rw-r--r--nixos/modules/services/x11/xserver.nix10
-rw-r--r--nixos/modules/system/activation/activation-script.nix62
-rw-r--r--nixos/modules/system/activation/switch-to-configuration.pl3
-rw-r--r--nixos/modules/system/activation/top-level.nix1
-rw-r--r--nixos/modules/system/boot/initrd-network.nix27
-rw-r--r--nixos/modules/system/boot/stage-2-init.sh8
-rw-r--r--nixos/modules/system/boot/systemd-lib.nix2
-rw-r--r--nixos/modules/system/boot/systemd-unit-options.nix2
-rw-r--r--nixos/modules/system/boot/systemd.nix14
-rw-r--r--nixos/modules/virtualisation/hyperv-guest.nix35
-rw-r--r--nixos/modules/virtualisation/virtualbox-image.nix2
-rw-r--r--nixos/release.nix2
-rw-r--r--nixos/tests/bittorrent.nix101
-rw-r--r--nixos/tests/misc.nix2
-rw-r--r--nixos/tests/nextcloud/basic.nix56
-rw-r--r--nixos/tests/nextcloud/default.nix6
-rw-r--r--nixos/tests/nextcloud/with-mysql-and-memcached.nix97
-rw-r--r--nixos/tests/nextcloud/with-postgresql-and-redis.nix130
-rw-r--r--nixos/tests/upnp.nix94
-rw-r--r--pkgs/applications/altcoins/bitcoin.nix17
-rw-r--r--pkgs/applications/altcoins/nano-wallet/default.nix4
-rw-r--r--pkgs/applications/altcoins/parity-ui/default.nix4
-rw-r--r--pkgs/applications/audio/abcde/abcde.patch30
-rw-r--r--pkgs/applications/audio/abcde/default.nix34
-rw-r--r--pkgs/applications/audio/easytag/default.nix2
-rw-r--r--pkgs/applications/audio/elisa/default.nix4
-rw-r--r--pkgs/applications/audio/lsp-plugins/default.nix160
-rw-r--r--pkgs/applications/audio/mhwaveedit/default.nix21
-rw-r--r--pkgs/applications/audio/pulseeffects/default.nix4
-rw-r--r--pkgs/applications/audio/rhythmbox/default.nix2
-rw-r--r--pkgs/applications/audio/sound-juicer/default.nix2
-rw-r--r--pkgs/applications/audio/whipper/default.nix2
-rw-r--r--pkgs/applications/audio/zita-njbridge/default.nix32
-rw-r--r--pkgs/applications/editors/android-studio/default.nix6
-rw-r--r--pkgs/applications/editors/flpsed/default.nix2
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix2
-rw-r--r--pkgs/applications/editors/howl/default.nix40
-rw-r--r--pkgs/applications/editors/jetbrains/common.nix3
-rw-r--r--pkgs/applications/editors/nano/default.nix4
-rw-r--r--pkgs/applications/editors/tiled/default.nix4
-rw-r--r--pkgs/applications/graphics/ImageMagick/7.0.nix4
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix2
-rw-r--r--pkgs/applications/graphics/solvespace/default.nix6
-rw-r--r--pkgs/applications/misc/cool-retro-term/default.nix2
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix4
-rw-r--r--pkgs/applications/misc/fllog/default.nix34
-rw-r--r--pkgs/applications/misc/flmsg/default.nix34
-rw-r--r--pkgs/applications/misc/flrig/default.nix34
-rw-r--r--pkgs/applications/misc/flwrap/default.nix34
-rw-r--r--pkgs/applications/misc/girara/default.nix4
-rw-r--r--pkgs/applications/misc/gnome-usage/default.nix2
-rw-r--r--pkgs/applications/misc/guake/default.nix4
-rw-r--r--pkgs/applications/misc/khard/default.nix2
-rw-r--r--pkgs/applications/misc/lxterminal/default.nix4
-rw-r--r--pkgs/applications/misc/makeself/Use-rm-from-PATH.patch43
-rw-r--r--pkgs/applications/misc/makeself/default.nix5
-rw-r--r--pkgs/applications/misc/orca/default.nix7
-rw-r--r--pkgs/applications/misc/rtl-sdr/default.nix6
-rw-r--r--pkgs/applications/misc/ssocr/default.nix24
-rw-r--r--pkgs/applications/misc/st/default.nix9
-rw-r--r--pkgs/applications/misc/wego/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/eolie/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix11
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix794
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix8
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/heptio-ark/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeval/default.nix48
-rw-r--r--pkgs/applications/networking/cluster/kubeval/deps.nix174
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/data.nix7
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.txt3
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix23
-rw-r--r--pkgs/applications/networking/google-drive-ocamlfuse/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee/default.nix18
-rw-r--r--pkgs/applications/networking/instant-messengers/psi-plus/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix3
-rw-r--r--pkgs/applications/networking/instant-messengers/wire-desktop/default.nix46
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/default.nix8
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix466
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/default.nix23
-rw-r--r--pkgs/applications/networking/sipcmd/default.nix1
-rw-r--r--pkgs/applications/networking/syncthing/default.nix4
-rw-r--r--pkgs/applications/networking/tsung/default.nix50
-rw-r--r--pkgs/applications/office/gnucash/default.nix4
-rw-r--r--pkgs/applications/science/biology/bowtie2/default.nix4
-rw-r--r--pkgs/applications/science/logic/elan/default.nix6
-rw-r--r--pkgs/applications/science/logic/hol_light/default.nix39
-rw-r--r--pkgs/applications/science/math/calc/default.nix4
-rw-r--r--pkgs/applications/science/math/nauty/default.nix4
-rw-r--r--pkgs/applications/science/misc/root/5.nix77
-rw-r--r--pkgs/applications/science/misc/root/sw_vers_root5.patch104
-rw-r--r--pkgs/applications/science/physics/xfitter/calling_convention.patch355
-rw-r--r--pkgs/applications/science/physics/xfitter/default.nix54
-rw-r--r--pkgs/applications/version-management/fossil/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/grv/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/stgit/default.nix21
-rw-r--r--pkgs/applications/version-management/meld/default.nix2
-rw-r--r--pkgs/applications/video/mpv/default.nix13
-rw-r--r--pkgs/applications/video/pitivi/default.nix2
-rw-r--r--pkgs/applications/virtualization/containerd/default.nix4
-rw-r--r--pkgs/applications/window-managers/i3/lock-color.nix8
-rw-r--r--pkgs/applications/window-managers/i3/status-rust.nix12
-rw-r--r--pkgs/applications/window-managers/oroborus/default.nix3
-rw-r--r--pkgs/applications/window-managers/pekwm/default.nix2
-rw-r--r--pkgs/build-support/build-bazel-package/default.nix23
-rw-r--r--pkgs/build-support/trivial-builders.nix155
-rw-r--r--pkgs/build-support/vm/default.nix4
-rw-r--r--pkgs/data/documentation/zeal/default.nix4
-rw-r--r--pkgs/data/fonts/cantarell-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix4
-rw-r--r--pkgs/data/misc/hackage/default.nix4
-rw-r--r--pkgs/data/misc/wireless-regdb/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/accerciser/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/bijiben/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/cheese/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/evolution/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/file-roller/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gedit/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/ghex/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/glade/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-characters/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-documents/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-logs/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-maps/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-music/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-photos/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-todo/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-weather/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/polari/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/seahorse/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/vinagre/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/baobab/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/caribou/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/dconf-editor/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/dconf/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/empathy/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/folks/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gcr/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch31
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_xserver-path.patch17
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch40
-rw-r--r--pkgs/desktops/gnome-3/core/geocode-glib/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gjs/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-calculator/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-common/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-share/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/grilo-plugins/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/grilo/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gsound/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/libcroco/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/libgdata/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/libgee/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/libgepub/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/libgnomekbd/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/libgweather/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/libgxps/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/libpeas/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/libzapojit/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/rest/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/simple-scan/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/sushi/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/totem/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/tracker-miners/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/tracker/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/vino/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/vte/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/yelp-tools/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/yelp-xsl/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/yelp/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/zenity/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/devtools/anjuta/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/devtools/devhelp/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/devtools/gdl/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/devtools/nemiver/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/aisleriot/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/five-or-more/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/four-in-a-row/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-chess/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-klotski/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-mines/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-robots/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-taquin/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/hitori/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/iagno/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/lightsoff/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/quadrapassel/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/swell-foop/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/games/tali/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gexiv2/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gfbgraph/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gitg/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gtkhtml/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/libgda/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/libmediaart/default.nix2
-rw-r--r--pkgs/development/compilers/carp/default.nix47
-rw-r--r--pkgs/development/compilers/elm/default.nix23
-rw-r--r--pkgs/development/compilers/elm/packages/elm-format.nix22
-rw-r--r--pkgs/development/compilers/elm/packages/tasty-quickcheck.nix14
-rwxr-xr-xpkgs/development/compilers/elm/update.sh2
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/7/default.nix39
-rw-r--r--pkgs/development/compilers/ghc/8.2.1-binary.nix3
-rw-r--r--pkgs/development/compilers/ghc/8.2.2.nix3
-rw-r--r--pkgs/development/compilers/ghc/8.4.3.nix3
-rw-r--r--pkgs/development/compilers/ghc/8.6.1.nix3
-rw-r--r--pkgs/development/compilers/jsonnet/default.nix22
-rw-r--r--pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--pkgs/development/coq-modules/coq-haskell/default.nix6
-rw-r--r--pkgs/development/coq-modules/coqprime/default.nix46
-rw-r--r--pkgs/development/go-modules/generic/default.nix1
-rw-r--r--pkgs/development/guile-modules/guile-reader/default.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix12
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix17
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml255
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix10
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix50
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix3952
-rw-r--r--pkgs/development/haskell-modules/lib.nix56
-rw-r--r--pkgs/development/haskell-modules/make-package-set.nix42
-rw-r--r--pkgs/development/interpreters/j/default.nix43
-rw-r--r--pkgs/development/libraries/CGAL/default.nix4
-rw-r--r--pkgs/development/libraries/agda/agda-stdlib/default.nix4
-rw-r--r--pkgs/development/libraries/appstream-glib/default.nix4
-rw-r--r--pkgs/development/libraries/arrow-cpp/darwin.patch11
-rw-r--r--pkgs/development/libraries/arrow-cpp/default.nix7
-rw-r--r--pkgs/development/libraries/atk/default.nix2
-rw-r--r--pkgs/development/libraries/boehm-gc/7.6.6.nix74
-rw-r--r--pkgs/development/libraries/cl/default.nix4
-rw-r--r--pkgs/development/libraries/clutter-gst/default.nix2
-rw-r--r--pkgs/development/libraries/clutter-gtk/default.nix4
-rw-r--r--pkgs/development/libraries/clutter/default.nix4
-rw-r--r--pkgs/development/libraries/cogl/default.nix4
-rw-r--r--pkgs/development/libraries/cpp-hocon/default.nix4
-rw-r--r--pkgs/development/libraries/gdal/default.nix5
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix2
-rw-r--r--pkgs/development/libraries/glib-networking/default.nix2
-rw-r--r--pkgs/development/libraries/glib/default.nix2
-rw-r--r--pkgs/development/libraries/gmm/default.nix8
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix2
-rw-r--r--pkgs/development/libraries/gspell/default.nix2
-rw-r--r--pkgs/development/libraries/gtk+/3.x.nix2
-rw-r--r--pkgs/development/libraries/gtksourceview/3.x.nix2
-rw-r--r--pkgs/development/libraries/gtksourceview/4.x.nix2
-rw-r--r--pkgs/development/libraries/gvfs/default.nix2
-rw-r--r--pkgs/development/libraries/libchamplain/default.nix4
-rw-r--r--pkgs/development/libraries/libgtop/default.nix2
-rw-r--r--pkgs/development/libraries/libgudev/default.nix2
-rw-r--r--pkgs/development/libraries/libhttpseverywhere/default.nix2
-rw-r--r--pkgs/development/libraries/libimagequant/default.nix29
-rw-r--r--pkgs/development/libraries/libinput/default.nix4
-rw-r--r--pkgs/development/libraries/libressl/default.nix4
-rw-r--r--pkgs/development/libraries/librsvg/default.nix2
-rw-r--r--pkgs/development/libraries/libsecret/default.nix2
-rw-r--r--pkgs/development/libraries/libsoup/default.nix2
-rw-r--r--pkgs/development/libraries/libtap/default.nix6
-rw-r--r--pkgs/development/libraries/libwnck/3.x.nix2
-rw-r--r--pkgs/development/libraries/parquet-cpp/api.patch12
-rw-r--r--pkgs/development/libraries/parquet-cpp/default.nix6
-rw-r--r--pkgs/development/libraries/physics/apfel/default.nix25
-rw-r--r--pkgs/development/libraries/physics/apfelgrid/default.nix26
-rw-r--r--pkgs/development/libraries/physics/applgrid/bad_code.patch39
-rw-r--r--pkgs/development/libraries/physics/applgrid/default.nix42
-rw-r--r--pkgs/development/libraries/physics/hoppet/default.nix23
-rw-r--r--pkgs/development/libraries/physics/mela/default.nix25
-rw-r--r--pkgs/development/libraries/physics/qcdnum/default.nix23
-rw-r--r--pkgs/development/libraries/proj/default.nix6
-rw-r--r--pkgs/development/libraries/qpdf/default.nix8
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix2
-rw-r--r--pkgs/development/libraries/rarian/default.nix2
-rw-r--r--pkgs/development/libraries/rlog/default.nix1
-rw-r--r--pkgs/development/libraries/science/math/zn_poly/default.nix41
-rw-r--r--pkgs/development/libraries/sundials/default.nix4
-rw-r--r--pkgs/development/libraries/tnt/default.nix1
-rw-r--r--pkgs/development/libraries/vc/default.nix4
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix1
-rw-r--r--pkgs/development/mobile/androidenv/platform-tools.nix8
-rw-r--r--pkgs/development/node-packages/default-v8.nix8
-rw-r--r--pkgs/development/node-packages/node-packages-v8.json1
-rw-r--r--pkgs/development/node-packages/node-packages-v8.nix556
-rw-r--r--pkgs/development/ocaml-modules/camomile/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/cohttp/lwt.nix4
-rw-r--r--pkgs/development/ocaml-modules/conduit/lwt.nix4
-rw-r--r--pkgs/development/ocaml-modules/ezxmlm/default.nix40
-rw-r--r--pkgs/development/ocaml-modules/lwt/3.x.nix (renamed from pkgs/development/ocaml-modules/lwt/default.nix)0
-rw-r--r--pkgs/development/ocaml-modules/lwt/4.x.nix35
-rw-r--r--pkgs/development/ocaml-modules/lwt_log/default.nix15
-rw-r--r--pkgs/development/ocaml-modules/lwt_ssl/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ojquery/default.nix4
-rw-r--r--pkgs/development/python-modules/black/default.nix4
-rw-r--r--pkgs/development/python-modules/pyarrow/default.nix10
-rw-r--r--pkgs/development/python-modules/pyls-black/default.nix3
-rw-r--r--pkgs/development/python-modules/yapf/default.nix4
-rw-r--r--pkgs/development/r-modules/default.nix1
-rw-r--r--pkgs/development/ruby-modules/solargraph/Gemfile.lock6
-rw-r--r--pkgs/development/ruby-modules/solargraph/gemset.nix12
-rw-r--r--pkgs/development/tools/bazel-watcher/default.nix80
-rw-r--r--pkgs/development/tools/bazel-watcher/update-gazelle-fix-ssl.patch19
-rw-r--r--pkgs/development/tools/build-managers/sbt-extras/default.nix6
-rw-r--r--pkgs/development/tools/database/pgcli/default.nix4
-rw-r--r--pkgs/development/tools/java/visualvm/default.nix4
-rw-r--r--pkgs/development/tools/kubectx/default.nix19
-rw-r--r--pkgs/development/tools/misc/blackmagic/default.nix4
-rw-r--r--pkgs/development/tools/misc/fswatch/default.nix4
-rw-r--r--pkgs/development/tools/misc/xxdiff/tip.nix2
-rw-r--r--pkgs/development/tools/vagrant/Gemfile2
-rw-r--r--pkgs/development/tools/vagrant/Gemfile.lock149
-rw-r--r--pkgs/development/tools/vagrant/default.nix9
-rw-r--r--pkgs/development/tools/valadoc/default.nix2
-rw-r--r--pkgs/games/brogue/default.nix4
-rw-r--r--pkgs/games/bzflag/default.nix4
-rw-r--r--pkgs/games/ivan/default.nix8
-rw-r--r--pkgs/games/ivan/homedir.patch75
-rw-r--r--pkgs/games/ivan/new.patch33
-rw-r--r--pkgs/misc/cups/drivers/samsung/1.00.37.nix (renamed from pkgs/misc/cups/drivers/samsung/default.nix)0
-rw-r--r--pkgs/misc/cups/drivers/samsung/4.00.39/default.nix1
-rw-r--r--pkgs/misc/emulators/higan/default.nix5
-rw-r--r--pkgs/misc/emulators/wine/sources.nix6
-rw-r--r--pkgs/misc/ghostscript/default.nix5
-rw-r--r--pkgs/misc/themes/materia-theme/default.nix2
-rw-r--r--pkgs/misc/themes/tetra/default.nix4
-rw-r--r--pkgs/misc/vim-plugins/generated.nix164
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names2
-rw-r--r--pkgs/os-specific/bsd/netbsd/default.nix473
-rw-r--r--pkgs/os-specific/linux/iwd/default.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.18.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix6
-rw-r--r--pkgs/os-specific/linux/light/default.nix21
-rw-r--r--pkgs/os-specific/linux/pscircle/default.nix4
-rw-r--r--pkgs/os-specific/linux/roccat-tools/default.nix4
-rw-r--r--pkgs/os-specific/linux/systemd-wait/default.nix25
-rw-r--r--pkgs/servers/dico/default.nix4
-rw-r--r--pkgs/servers/dns/nsd/default.nix4
-rw-r--r--pkgs/servers/emby/default.nix29
-rw-r--r--pkgs/servers/http/webhook/default.nix22
-rw-r--r--pkgs/servers/jackett/default.nix4
-rw-r--r--pkgs/servers/lidarr/default.nix4
-rw-r--r--pkgs/servers/mail/dovecot/default.nix4
-rw-r--r--pkgs/servers/matrix-synapse/default.nix4
-rw-r--r--pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix4
-rw-r--r--pkgs/servers/nextcloud/default.nix16
-rw-r--r--pkgs/servers/nosql/arangodb/default.nix4
-rw-r--r--pkgs/servers/nosql/neo4j/default.nix4
-rw-r--r--pkgs/servers/search/groonga/default.nix4
-rw-r--r--pkgs/servers/sql/mariadb/default.nix15
-rw-r--r--pkgs/servers/unifi/default.nix10
-rw-r--r--pkgs/shells/elvish/default.nix4
-rw-r--r--pkgs/shells/zsh/antibody/default.nix4
-rw-r--r--pkgs/stdenv/generic/check-meta.nix5
-rw-r--r--pkgs/tools/admin/aws-env/default.nix26
-rw-r--r--pkgs/tools/admin/aws-env/deps.nix12
-rw-r--r--pkgs/tools/admin/aws-rotate-key/default.nix4
-rw-r--r--pkgs/tools/admin/bubblewrap/default.nix6
-rw-r--r--pkgs/tools/admin/sec/default.nix15
-rw-r--r--pkgs/tools/admin/sewer/default.nix26
-rw-r--r--pkgs/tools/backup/borg/default.nix11
-rw-r--r--pkgs/tools/backup/dar/default.nix4
-rw-r--r--pkgs/tools/cd-dvd/xorriso/default.nix4
-rw-r--r--pkgs/tools/filesystems/disorderfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix4
-rw-r--r--pkgs/tools/graphics/fbv/default.nix25
-rw-r--r--pkgs/tools/graphics/gnuplot/default.nix4
-rw-r--r--pkgs/tools/graphics/vips/default.nix24
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix4
-rw-r--r--pkgs/tools/misc/dateutils/default.nix12
-rw-r--r--pkgs/tools/misc/duc/default.nix4
-rw-r--r--pkgs/tools/misc/envsubst/default.nix22
-rw-r--r--pkgs/tools/misc/hyperfine/default.nix12
-rw-r--r--pkgs/tools/misc/profile-sync-daemon/default.nix17
-rw-r--r--pkgs/tools/misc/tmuxp/default.nix4
-rw-r--r--pkgs/tools/misc/uutils-coreutils/default.nix10
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/babeld/default.nix4
-rw-r--r--pkgs/tools/networking/haproxy/default.nix4
-rw-r--r--pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix16
-rw-r--r--pkgs/tools/networking/network-manager/openvpn/default.nix8
-rw-r--r--pkgs/tools/networking/pykms/default.nix8
-rw-r--r--pkgs/tools/networking/telepresence/default.nix32
-rw-r--r--pkgs/tools/networking/tinc/default.nix4
-rw-r--r--pkgs/tools/networking/tinc/pre.nix4
-rw-r--r--pkgs/tools/networking/twa/default.nix27
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix4
-rw-r--r--pkgs/tools/security/eid-mw/default.nix4
-rw-r--r--pkgs/tools/security/sbsigntool/autoconf.patch26
-rw-r--r--pkgs/tools/security/sbsigntool/default.nix12
-rw-r--r--pkgs/tools/security/softhsm/default.nix4
-rw-r--r--pkgs/tools/system/acpica-tools/default.nix4
-rw-r--r--pkgs/tools/system/bfs/default.nix4
-rw-r--r--pkgs/tools/system/facter/default.nix4
-rw-r--r--pkgs/tools/system/hwinfo/default.nix4
-rw-r--r--pkgs/tools/system/ipmiutil/default.nix4
-rw-r--r--pkgs/tools/system/plan9port/builder.sh3
-rw-r--r--pkgs/tools/system/plan9port/default.nix30
-rw-r--r--pkgs/tools/system/plan9port/fontsrv.patch14
-rw-r--r--pkgs/tools/system/thermald/default.nix4
-rw-r--r--pkgs/tools/text/languagetool/default.nix4
-rw-r--r--pkgs/tools/text/link-grammar/default.nix29
-rw-r--r--pkgs/tools/text/unoconv/default.nix4
-rw-r--r--pkgs/tools/text/zimreader/default.nix1
-rw-r--r--pkgs/tools/typesetting/scdoc/default.nix11
-rw-r--r--pkgs/top-level/all-packages.nix90
-rw-r--r--pkgs/top-level/coq-packages.nix1
-rw-r--r--pkgs/top-level/ocaml-packages.nix37
-rw-r--r--pkgs/top-level/perl-packages.nix20
-rw-r--r--pkgs/top-level/release.nix4
517 files changed, 11369 insertions, 6406 deletions
diff --git a/README.md b/README.md
index 004bba34530d..144a23027db9 100644
--- a/README.md
+++ b/README.md
@@ -12,12 +12,12 @@ build daemon as so-called channels. To get channel information via git, add
 ```
 
 For stability and maximum binary package support, it is recommended to maintain
-custom changes on top of one of the channels, e.g. `nixos-18.03` for the latest
+custom changes on top of one of the channels, e.g. `nixos-18.09` for the latest
 release and `nixos-unstable` for the latest successful build of master:
 
 ```
 % git remote update channels
-% git rebase channels/nixos-18.03
+% git rebase channels/nixos-18.09
 ```
 
 For pull-requests, please rebase onto nixpkgs `master`.
@@ -31,9 +31,9 @@ For pull-requests, please rebase onto nixpkgs `master`.
 * [Manual (NixOS)](https://nixos.org/nixos/manual/)
 * [Community maintained wiki](https://nixos.wiki/)
 * [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
-* [Continuous package builds for 18.03 release](https://hydra.nixos.org/jobset/nixos/release-18.03)
+* [Continuous package builds for 18.09 release](https://hydra.nixos.org/jobset/nixos/release-18.09)
 * [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
-* [Tests for 18.03 release](https://hydra.nixos.org/job/nixos/release-18.03/tested#tabs-constituents)
+* [Tests for 18.09 release](https://hydra.nixos.org/job/nixos/release-18.09/tested#tabs-constituents)
 
 Communication:
 
diff --git a/default.nix b/default.nix
index f4b2640ac5a0..a74a01719c73 100644
--- a/default.nix
+++ b/default.nix
@@ -18,7 +18,7 @@ if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.
 
     For more information, please see the NixOS release notes at
     https://nixos.org/nixos/manual or locally at
-    ${toString ./doc/manual/release-notes}.
+    ${toString ./nixos/doc/manual/release-notes}.
 
     If you need further help, see https://nixos.org/nixos/support.html
   ''
diff --git a/doc/.gitignore b/doc/.gitignore
index d0ba103fa9f1..cb07135e6858 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -4,3 +4,4 @@
 out
 manual-full.xml
 highlightjs
+functions/library/locations.xml
diff --git a/doc/Makefile b/doc/Makefile
index ba77be6678c4..c6aed62a9396 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -19,7 +19,7 @@ fix-misc-xml:
 
 .PHONY: clean
 clean:
-	rm -f ${MD_TARGETS} .version manual-full.xml
+	rm -f ${MD_TARGETS} .version manual-full.xml functions/library/locations.xml
 	rm -rf ./out/ ./highlightjs
 
 .PHONY: validate
@@ -69,13 +69,17 @@ highlightjs:
 	cp -r "$$HIGHLIGHTJS/loader.js" highlightjs/
 
 
-manual-full.xml: ${MD_TARGETS} .version *.xml
+manual-full.xml: ${MD_TARGETS} .version functions/library/locations.xml *.xml **/*.xml **/**/*.xml
 	xmllint --nonet --xinclude --noxincludenode manual.xml --output manual-full.xml
 
 .version:
 	nix-instantiate --eval \
 		-E '(import ../lib).version' > .version
 
+functions/library/locations.xml:
+	nix-build ./lib-function-locations.nix \
+		--out-link ./functions/library/locations.xml
+
 %.section.xml: %.section.md
 	pandoc $^ -w docbook+smart \
 		-f markdown+smart \
diff --git a/doc/cross-compilation.xml b/doc/cross-compilation.xml
index c7187d86d1b3..da664394f262 100644
--- a/doc/cross-compilation.xml
+++ b/doc/cross-compilation.xml
@@ -47,9 +47,10 @@
 
    <para>
     In Nixpkgs, these three platforms are defined as attribute sets under the
-    names <literal>buildPlatform</literal>, <literal>hostPlatform</literal>, and
-    <literal>targetPlatform</literal>. They are always defined as attributes in
-    the standard environment. That means one can access them like:
+    names <literal>buildPlatform</literal>, <literal>hostPlatform</literal>,
+    and <literal>targetPlatform</literal>. They are always defined as
+    attributes in the standard environment. That means one can access them
+    like:
 <programlisting>{ stdenv, fooDep, barDep, .. }: ...stdenv.buildPlatform...</programlisting>
     .
    </para>
diff --git a/doc/default.nix b/doc/default.nix
index 4c04128052bc..98b4b92be524 100644
--- a/doc/default.nix
+++ b/doc/default.nix
@@ -1,6 +1,7 @@
+{ pkgs ? (import ./.. { }), nixpkgs ? { }}:
 let
-  pkgs = import ./.. { };
   lib = pkgs.lib;
+  locationsXml = import ./lib-function-locations.nix { inherit pkgs nixpkgs; };
 in
 pkgs.stdenv.mkDerivation {
   name = "nixpkgs-manual";
@@ -29,6 +30,8 @@ pkgs.stdenv.mkDerivation {
   ];
 
   postPatch = ''
+    rm -rf ./functions/library/locations.xml
+    ln -s ${locationsXml} ./functions/library/locations.xml
     echo ${lib.version} > .version
   '';
 
diff --git a/doc/functions.xml b/doc/functions.xml
index 8223a8b0531c..4193bb49f77a 100644
--- a/doc/functions.xml
+++ b/doc/functions.xml
@@ -7,1016 +7,11 @@
   The nixpkgs repository has several utility functions to manipulate Nix
   expressions.
  </para>
- <section xml:id="sec-overrides">
-  <title>Overriding</title>
-
-  <para>
-   Sometimes one wants to override parts of <literal>nixpkgs</literal>, e.g.
-   derivation attributes, the results of derivations or even the whole package
-   set.
-  </para>
-
-  <section xml:id="sec-pkg-override">
-   <title>&lt;pkg&gt;.override</title>
-
-   <para>
-    The function <varname>override</varname> is usually available for all the
-    derivations in the nixpkgs expression (<varname>pkgs</varname>).
-   </para>
-
-   <para>
-    It is used to override the arguments passed to a function.
-   </para>
-
-   <para>
-    Example usages:
-<programlisting>pkgs.foo.override { arg1 = val1; arg2 = val2; ... }</programlisting>
-<programlisting>
-import pkgs.path { overlays = [ (self: super: {
-  foo = super.foo.override { barSupport = true ; };
-  })]};
-</programlisting>
-<programlisting>
-mypkg = pkgs.callPackage ./mypkg.nix {
-  mydep = pkgs.mydep.override { ... };
-  }
-</programlisting>
-   </para>
-
-   <para>
-    In the first example, <varname>pkgs.foo</varname> is the result of a
-    function call with some default arguments, usually a derivation. Using
-    <varname>pkgs.foo.override</varname> will call the same function with the
-    given new arguments.
-   </para>
-  </section>
-
-  <section xml:id="sec-pkg-overrideAttrs">
-   <title>&lt;pkg&gt;.overrideAttrs</title>
-
-   <para>
-    The function <varname>overrideAttrs</varname> allows overriding the
-    attribute set passed to a <varname>stdenv.mkDerivation</varname> call,
-    producing a new derivation based on the original one. This function is
-    available on all derivations produced by the
-    <varname>stdenv.mkDerivation</varname> function, which is most packages in
-    the nixpkgs expression <varname>pkgs</varname>.
-   </para>
-
-   <para>
-    Example usage:
-<programlisting>
-helloWithDebug = pkgs.hello.overrideAttrs (oldAttrs: rec {
-  separateDebugInfo = true;
-});
-</programlisting>
-   </para>
-
-   <para>
-    In the above example, the <varname>separateDebugInfo</varname> attribute is
-    overridden to be true, thus building debug info for
-    <varname>helloWithDebug</varname>, while all other attributes will be
-    retained from the original <varname>hello</varname> package.
-   </para>
-
-   <para>
-    The argument <varname>oldAttrs</varname> is conventionally used to refer to
-    the attr set originally passed to <varname>stdenv.mkDerivation</varname>.
-   </para>
-
-   <note>
-    <para>
-     Note that <varname>separateDebugInfo</varname> is processed only by the
-     <varname>stdenv.mkDerivation</varname> function, not the generated, raw
-     Nix derivation. Thus, using <varname>overrideDerivation</varname> will not
-     work in this case, as it overrides only the attributes of the final
-     derivation. It is for this reason that <varname>overrideAttrs</varname>
-     should be preferred in (almost) all cases to
-     <varname>overrideDerivation</varname>, i.e. to allow using
-     <varname>sdenv.mkDerivation</varname> to process input arguments, as well
-     as the fact that it is easier to use (you can use the same attribute names
-     you see in your Nix code, instead of the ones generated (e.g.
-     <varname>buildInputs</varname> vs <varname>nativeBuildInputs</varname>,
-     and involves less typing.
-    </para>
-   </note>
-  </section>
-
-  <section xml:id="sec-pkg-overrideDerivation">
-   <title>&lt;pkg&gt;.overrideDerivation</title>
-
-   <warning>
-    <para>
-     You should prefer <varname>overrideAttrs</varname> in almost all cases,
-     see its documentation for the reasons why.
-     <varname>overrideDerivation</varname> is not deprecated and will continue
-     to work, but is less nice to use and does not have as many abilities as
-     <varname>overrideAttrs</varname>.
-    </para>
-   </warning>
-
-   <warning>
-    <para>
-     Do not use this function in Nixpkgs as it evaluates a Derivation before
-     modifying it, which breaks package abstraction and removes error-checking
-     of function arguments. In addition, this evaluation-per-function
-     application incurs a performance penalty, which can become a problem if
-     many overrides are used. It is only intended for ad-hoc customisation,
-     such as in <filename>~/.config/nixpkgs/config.nix</filename>.
-    </para>
-   </warning>
-
-   <para>
-    The function <varname>overrideDerivation</varname> creates a new derivation
-    based on an existing one by overriding the original's attributes with the
-    attribute set produced by the specified function. This function is
-    available on all derivations defined using the
-    <varname>makeOverridable</varname> function. Most standard
-    derivation-producing functions, such as
-    <varname>stdenv.mkDerivation</varname>, are defined using this function,
-    which means most packages in the nixpkgs expression,
-    <varname>pkgs</varname>, have this function.
-   </para>
-
-   <para>
-    Example usage:
-<programlisting>
-mySed = pkgs.gnused.overrideDerivation (oldAttrs: {
-  name = "sed-4.2.2-pre";
-  src = fetchurl {
-    url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2;
-    sha256 = "11nq06d131y4wmf3drm0yk502d2xc6n5qy82cg88rb9nqd2lj41k";
-  };
-  patches = [];
-});
-</programlisting>
-   </para>
-
-   <para>
-    In the above example, the <varname>name</varname>, <varname>src</varname>,
-    and <varname>patches</varname> of the derivation will be overridden, while
-    all other attributes will be retained from the original derivation.
-   </para>
-
-   <para>
-    The argument <varname>oldAttrs</varname> is used to refer to the attribute
-    set of the original derivation.
-   </para>
-
-   <note>
-    <para>
-     A package's attributes are evaluated *before* being modified by the
-     <varname>overrideDerivation</varname> function. For example, the
-     <varname>name</varname> attribute reference in <varname>url =
-     "mirror://gnu/hello/${name}.tar.gz";</varname> is filled-in *before* the
-     <varname>overrideDerivation</varname> function modifies the attribute set.
-     This means that overriding the <varname>name</varname> attribute, in this
-     example, *will not* change the value of the <varname>url</varname>
-     attribute. Instead, we need to override both the <varname>name</varname>
-     *and* <varname>url</varname> attributes.
-    </para>
-   </note>
-  </section>
-
-  <section xml:id="sec-lib-makeOverridable">
-   <title>lib.makeOverridable</title>
-
-   <para>
-    The function <varname>lib.makeOverridable</varname> is used to make the
-    result of a function easily customizable. This utility only makes sense for
-    functions that accept an argument set and return an attribute set.
-   </para>
-
-   <para>
-    Example usage:
-<programlisting>
-f = { a, b }: { result = a+b; };
-c = lib.makeOverridable f { a = 1; b = 2; };
-</programlisting>
-   </para>
-
-   <para>
-    The variable <varname>c</varname> is the value of the <varname>f</varname>
-    function applied with some default arguments. Hence the value of
-    <varname>c.result</varname> is <literal>3</literal>, in this example.
-   </para>
-
-   <para>
-    The variable <varname>c</varname> however also has some additional
-    functions, like <link linkend="sec-pkg-override">c.override</link> which
-    can be used to override the default arguments. In this example the value of
-    <varname>(c.override { a = 4; }).result</varname> is 6.
-   </para>
-  </section>
- </section>
- <section xml:id="sec-generators">
-  <title>Generators</title>
-
-  <para>
-   Generators are functions that create file formats from nix data structures,
-   e. g. for configuration files. There are generators available for:
-   <literal>INI</literal>, <literal>JSON</literal> and <literal>YAML</literal>
-  </para>
-
-  <para>
-   All generators follow a similar call interface: <code>generatorName
-   configFunctions data</code>, where <literal>configFunctions</literal> is an
-   attrset of user-defined functions that format nested parts of the content.
-   They each have common defaults, so often they do not need to be set
-   manually. An example is <code>mkSectionName ? (name: libStr.escape [ "[" "]"
-   ] name)</code> from the <literal>INI</literal> generator. It receives the
-   name of a section and sanitizes it. The default
-   <literal>mkSectionName</literal> escapes <literal>[</literal> and
-   <literal>]</literal> with a backslash.
-  </para>
-
-  <para>
-   Generators can be fine-tuned to produce exactly the file format required by
-   your application/service. One example is an INI-file format which uses
-   <literal>: </literal> as separator, the strings
-   <literal>"yes"</literal>/<literal>"no"</literal> as boolean values and
-   requires all string values to be quoted:
-  </para>
-
-<programlisting>
-with lib;
-let
-  customToINI = generators.toINI {
-    # specifies how to format a key/value pair
-    mkKeyValue = generators.mkKeyValueDefault {
-      # specifies the generated string for a subset of nix values
-      mkValueString = v:
-             if v == true then ''"yes"''
-        else if v == false then ''"no"''
-        else if isString v then ''"${v}"''
-        # and delegats all other values to the default generator
-        else generators.mkValueStringDefault {} v;
-    } ":";
-  };
-
-# the INI file can now be given as plain old nix values
-in customToINI {
-  main = {
-    pushinfo = true;
-    autopush = false;
-    host = "localhost";
-    port = 42;
-  };
-  mergetool = {
-    merge = "diff3";
-  };
-}
-</programlisting>
-
-  <para>
-   This will produce the following INI file as nix string:
-  </para>
-
-<programlisting>
-[main]
-autopush:"no"
-host:"localhost"
-port:42
-pushinfo:"yes"
-str\:ange:"very::strange"
-
-[mergetool]
-merge:"diff3"
-</programlisting>
-
-  <note>
-   <para>
-    Nix store paths can be converted to strings by enclosing a derivation
-    attribute like so: <code>"${drv}"</code>.
-   </para>
-  </note>
-
-  <para>
-   Detailed documentation for each generator can be found in
-   <literal>lib/generators.nix</literal>.
-  </para>
- </section>
- <section xml:id="sec-debug">
-  <title>Debugging Nix Expressions</title>
-
-  <para>
-   Nix is a unityped, dynamic language, this means every value can potentially
-   appear anywhere. Since it is also non-strict, evaluation order and what
-   ultimately is evaluated might surprise you. Therefore it is important to be
-   able to debug nix expressions.
-  </para>
-
-  <para>
-   In the <literal>lib/debug.nix</literal> file you will find a number of
-   functions that help (pretty-)printing values while evaluation is runnnig.
-   You can even specify how deep these values should be printed recursively,
-   and transform them on the fly. Please consult the docstrings in
-   <literal>lib/debug.nix</literal> for usage information.
-  </para>
- </section>
- <section xml:id="sec-fhs-environments">
-  <title>buildFHSUserEnv</title>
-
-  <para>
-   <function>buildFHSUserEnv</function> provides a way to build and run
-   FHS-compatible lightweight sandboxes. It creates an isolated root with bound
-   <filename>/nix/store</filename>, so its footprint in terms of disk space
-   needed is quite small. This allows one to run software which is hard or
-   unfeasible to patch for NixOS -- 3rd-party source trees with FHS
-   assumptions, games distributed as tarballs, software with integrity checking
-   and/or external self-updated binaries. It uses Linux namespaces feature to
-   create temporary lightweight environments which are destroyed after all
-   child processes exit, without root user rights requirement. Accepted
-   arguments are:
-  </para>
-
-  <variablelist>
-   <varlistentry>
-    <term>
-     <literal>name</literal>
-    </term>
-    <listitem>
-     <para>
-      Environment name.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <literal>targetPkgs</literal>
-    </term>
-    <listitem>
-     <para>
-      Packages to be installed for the main host's architecture (i.e. x86_64 on
-      x86_64 installations). Along with libraries binaries are also installed.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <literal>multiPkgs</literal>
-    </term>
-    <listitem>
-     <para>
-      Packages to be installed for all architectures supported by a host (i.e.
-      i686 and x86_64 on x86_64 installations). Only libraries are installed by
-      default.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <literal>extraBuildCommands</literal>
-    </term>
-    <listitem>
-     <para>
-      Additional commands to be executed for finalizing the directory
-      structure.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <literal>extraBuildCommandsMulti</literal>
-    </term>
-    <listitem>
-     <para>
-      Like <literal>extraBuildCommands</literal>, but executed only on multilib
-      architectures.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <literal>extraOutputsToInstall</literal>
-    </term>
-    <listitem>
-     <para>
-      Additional derivation outputs to be linked for both target and
-      multi-architecture packages.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <literal>extraInstallCommands</literal>
-    </term>
-    <listitem>
-     <para>
-      Additional commands to be executed for finalizing the derivation with
-      runner script.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
-     <literal>runScript</literal>
-    </term>
-    <listitem>
-     <para>
-      A command that would be executed inside the sandbox and passed all the
-      command line arguments. It defaults to <literal>bash</literal>.
-     </para>
-    </listitem>
-   </varlistentry>
-  </variablelist>
-
-  <para>
-   One can create a simple environment using a <literal>shell.nix</literal>
-   like that:
-  </para>
-
-<programlisting><![CDATA[
-{ pkgs ? import <nixpkgs> {} }:
-
-(pkgs.buildFHSUserEnv {
-  name = "simple-x11-env";
-  targetPkgs = pkgs: (with pkgs;
-    [ udev
-      alsaLib
-    ]) ++ (with pkgs.xorg;
-    [ libX11
-      libXcursor
-      libXrandr
-    ]);
-  multiPkgs = pkgs: (with pkgs;
-    [ udev
-      alsaLib
-    ]);
-  runScript = "bash";
-}).env
-]]></programlisting>
-
-  <para>
-   Running <literal>nix-shell</literal> would then drop you into a shell with
-   these libraries and binaries available. You can use this to run
-   closed-source applications which expect FHS structure without hassles:
-   simply change <literal>runScript</literal> to the application path, e.g.
-   <filename>./bin/start.sh</filename> -- relative paths are supported.
-  </para>
- </section>
- <xi:include href="shell.section.xml" />
- <section xml:id="sec-pkgs-dockerTools">
-  <title>pkgs.dockerTools</title>
-
-  <para>
-   <varname>pkgs.dockerTools</varname> is a set of functions for creating and
-   manipulating Docker images according to the
-   <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120">
-   Docker Image Specification v1.2.0 </link>. Docker itself is not used to
-   perform any of the operations done by these functions.
-  </para>
-
-  <warning>
-   <para>
-    The <varname>dockerTools</varname> API is unstable and may be subject to
-    backwards-incompatible changes in the future.
-   </para>
-  </warning>
-
-  <section xml:id="ssec-pkgs-dockerTools-buildImage">
-   <title>buildImage</title>
-
-   <para>
-    This function is analogous to the <command>docker build</command> command,
-    in that can used to build a Docker-compatible repository tarball containing
-    a single image with one or multiple layers. As such, the result is suitable
-    for being loaded in Docker with <command>docker load</command>.
-   </para>
-
-   <para>
-    The parameters of <varname>buildImage</varname> with relative example
-    values are described below:
-   </para>
-
-   <example xml:id='ex-dockerTools-buildImage'>
-    <title>Docker build</title>
-<programlisting>
-buildImage {
-  name = "redis"; <co xml:id='ex-dockerTools-buildImage-1' />
-  tag = "latest"; <co xml:id='ex-dockerTools-buildImage-2' />
-
-  fromImage = someBaseImage; <co xml:id='ex-dockerTools-buildImage-3' />
-  fromImageName = null; <co xml:id='ex-dockerTools-buildImage-4' />
-  fromImageTag = "latest"; <co xml:id='ex-dockerTools-buildImage-5' />
-
-  contents = pkgs.redis; <co xml:id='ex-dockerTools-buildImage-6' />
-  runAsRoot = '' <co xml:id='ex-dockerTools-buildImage-runAsRoot' />
-    #!${stdenv.shell}
-    mkdir -p /data
-  '';
-
-  config = { <co xml:id='ex-dockerTools-buildImage-8' />
-    Cmd = [ "/bin/redis-server" ];
-    WorkingDir = "/data";
-    Volumes = {
-      "/data" = {};
-    };
-  };
-}
-</programlisting>
-   </example>
-
-   <para>
-    The above example will build a Docker image <literal>redis/latest</literal>
-    from the given base image. Loading and running this image in Docker results
-    in <literal>redis-server</literal> being started automatically.
-   </para>
-
-   <calloutlist>
-    <callout arearefs='ex-dockerTools-buildImage-1'>
-     <para>
-      <varname>name</varname> specifies the name of the resulting image. This
-      is the only required argument for <varname>buildImage</varname>.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-buildImage-2'>
-     <para>
-      <varname>tag</varname> specifies the tag of the resulting image. By
-      default it's <literal>null</literal>, which indicates that the nix output
-      hash will be used as tag.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-buildImage-3'>
-     <para>
-      <varname>fromImage</varname> is the repository tarball containing the
-      base image. It must be a valid Docker image, such as exported by
-      <command>docker save</command>. By default it's <literal>null</literal>,
-      which can be seen as equivalent to <literal>FROM scratch</literal> of a
-      <filename>Dockerfile</filename>.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-buildImage-4'>
-     <para>
-      <varname>fromImageName</varname> can be used to further specify the base
-      image within the repository, in case it contains multiple images. By
-      default it's <literal>null</literal>, in which case
-      <varname>buildImage</varname> will peek the first image available in the
-      repository.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-buildImage-5'>
-     <para>
-      <varname>fromImageTag</varname> can be used to further specify the tag of
-      the base image within the repository, in case an image contains multiple
-      tags. By default it's <literal>null</literal>, in which case
-      <varname>buildImage</varname> will peek the first tag available for the
-      base image.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-buildImage-6'>
-     <para>
-      <varname>contents</varname> is a derivation that will be copied in the
-      new layer of the resulting image. This can be similarly seen as
-      <command>ADD contents/ /</command> in a <filename>Dockerfile</filename>.
-      By default it's <literal>null</literal>.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-buildImage-runAsRoot'>
-     <para>
-      <varname>runAsRoot</varname> is a bash script that will run as root in an
-      environment that overlays the existing layers of the base image with the
-      new resulting layer, including the previously copied
-      <varname>contents</varname> derivation. This can be similarly seen as
-      <command>RUN ...</command> in a <filename>Dockerfile</filename>.
-      <note>
-       <para>
-        Using this parameter requires the <literal>kvm</literal> device to be
-        available.
-       </para>
-      </note>
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-buildImage-8'>
-     <para>
-      <varname>config</varname> is used to specify the configuration of the
-      containers that will be started off the built image in Docker. The
-      available options are listed in the
-      <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions">
-      Docker Image Specification v1.2.0 </link>.
-     </para>
-    </callout>
-   </calloutlist>
-
-   <para>
-    After the new layer has been created, its closure (to which
-    <varname>contents</varname>, <varname>config</varname> and
-    <varname>runAsRoot</varname> contribute) will be copied in the layer
-    itself. Only new dependencies that are not already in the existing layers
-    will be copied.
-   </para>
-
-   <para>
-    At the end of the process, only one new single layer will be produced and
-    added to the resulting image.
-   </para>
-
-   <para>
-    The resulting repository will only list the single image
-    <varname>image/tag</varname>. In the case of
-    <xref linkend='ex-dockerTools-buildImage'/> it would be
-    <varname>redis/latest</varname>.
-   </para>
-
-   <para>
-    It is possible to inspect the arguments with which an image was built using
-    its <varname>buildArgs</varname> attribute.
-   </para>
-
-   <note>
-    <para>
-     If you see errors similar to <literal>getProtocolByName: does not exist
-     (no such protocol name: tcp)</literal> you may need to add
-     <literal>pkgs.iana-etc</literal> to <varname>contents</varname>.
-    </para>
-   </note>
-
-   <note>
-    <para>
-     If you see errors similar to <literal>Error_Protocol ("certificate has
-     unknown CA",True,UnknownCa)</literal> you may need to add
-     <literal>pkgs.cacert</literal> to <varname>contents</varname>.
-    </para>
-   </note>
-
-   <example xml:id="example-pkgs-dockerTools-buildImage-creation-date">
-     <title>Impurely Defining a Docker Layer's Creation Date</title>
-     <para>
-       By default <function>buildImage</function> will use a static
-       date of one second past the UNIX Epoch. This allows
-       <function>buildImage</function> to produce binary reproducible
-       images. When listing images with <command>docker list
-       images</command>, the newly created images will be listed like
-       this:
-     </para>
-     <screen><![CDATA[
-$ docker image list
-REPOSITORY   TAG      IMAGE ID       CREATED        SIZE
-hello        latest   08c791c7846e   48 years ago   25.2MB
-]]></screen>
-     <para>
-       You can break binary reproducibility but have a sorted,
-       meaningful <literal>CREATED</literal> column by setting
-       <literal>created</literal> to <literal>now</literal>.
-     </para>
-     <programlisting><![CDATA[
-pkgs.dockerTools.buildImage {
-  name = "hello";
-  tag = "latest";
-  created = "now";
-  contents = pkgs.hello;
-
-  config.Cmd = [ "/bin/hello" ];
-}
-]]></programlisting>
-     <para>
-       and now the Docker CLI will display a reasonable date and
-       sort the images as expected:
-       <screen><![CDATA[
-$ docker image list
-REPOSITORY   TAG      IMAGE ID       CREATED              SIZE
-hello        latest   de2bf4786de6   About a minute ago   25.2MB
-]]></screen>
-       however, the produced images will not be binary reproducible.
-     </para>
-   </example>
-  </section>
-
-  <section xml:id="ssec-pkgs-dockerTools-buildLayeredImage">
-   <title>buildLayeredImage</title>
-
-   <para>
-    Create a Docker image with many of the store paths being on their own layer
-    to improve sharing between images.
-   </para>
-
-   <variablelist>
-    <varlistentry>
-     <term>
-      <varname>name</varname>
-     </term>
-     <listitem>
-      <para>
-       The name of the resulting image.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname>tag</varname> <emphasis>optional</emphasis>
-     </term>
-     <listitem>
-      <para>
-       Tag of the generated image.
-      </para>
-      <para>
-       <emphasis>Default:</emphasis> the output path's hash
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname>contents</varname> <emphasis>optional</emphasis>
-     </term>
-     <listitem>
-      <para>
-       Top level paths in the container. Either a single derivation, or a list
-       of derivations.
-      </para>
-      <para>
-       <emphasis>Default:</emphasis> <literal>[]</literal>
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname>config</varname> <emphasis>optional</emphasis>
-     </term>
-     <listitem>
-      <para>
-       Run-time configuration of the container. A full list of the options are
-       available at in the
-       <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions">
-       Docker Image Specification v1.2.0 </link>.
-      </para>
-      <para>
-       <emphasis>Default:</emphasis> <literal>{}</literal>
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname>created</varname> <emphasis>optional</emphasis>
-     </term>
-     <listitem>
-      <para>
-       Date and time the layers were created. Follows the same
-       <literal>now</literal> exception supported by
-       <literal>buildImage</literal>.
-      </para>
-      <para>
-       <emphasis>Default:</emphasis> <literal>1970-01-01T00:00:01Z</literal>
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      <varname>maxLayers</varname> <emphasis>optional</emphasis>
-     </term>
-     <listitem>
-      <para>
-       Maximum number of layers to create.
-      </para>
-      <para>
-       <emphasis>Default:</emphasis> <literal>24</literal>
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-
-   <section xml:id="dockerTools-buildLayeredImage-arg-contents">
-    <title>Behavior of <varname>contents</varname> in the final image</title>
-
-    <para>
-     Each path directly listed in <varname>contents</varname> will have a
-     symlink in the root of the image.
-    </para>
-
-    <para>
-     For example:
-<programlisting><![CDATA[
-pkgs.dockerTools.buildLayeredImage {
-  name = "hello";
-  contents = [ pkgs.hello ];
-}
-]]></programlisting>
-     will create symlinks for all the paths in the <literal>hello</literal>
-     package:
-<screen><![CDATA[
-/bin/hello -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/bin/hello
-/share/info/hello.info -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/info/hello.info
-/share/locale/bg/LC_MESSAGES/hello.mo -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/locale/bg/LC_MESSAGES/hello.mo
-]]></screen>
-    </para>
-   </section>
-
-   <section xml:id="dockerTools-buildLayeredImage-arg-config">
-    <title>Automatic inclusion of <varname>config</varname> references</title>
-
-    <para>
-     The closure of <varname>config</varname> is automatically included in the
-     closure of the final image.
-    </para>
-
-    <para>
-     This allows you to make very simple Docker images with very little code.
-     This container will start up and run <command>hello</command>:
-<programlisting><![CDATA[
-pkgs.dockerTools.buildLayeredImage {
-  name = "hello";
-  config.Cmd = [ "${pkgs.hello}/bin/hello" ];
-}
-]]></programlisting>
-    </para>
-   </section>
-
-   <section xml:id="dockerTools-buildLayeredImage-arg-maxLayers">
-    <title>Adjusting <varname>maxLayers</varname></title>
-
-    <para>
-     Increasing the <varname>maxLayers</varname> increases the number of layers
-     which have a chance to be shared between different images.
-    </para>
-
-    <para>
-     Modern Docker installations support up to 128 layers, however older
-     versions support as few as 42.
-    </para>
-
-    <para>
-     If the produced image will not be extended by other Docker builds, it is
-     safe to set <varname>maxLayers</varname> to <literal>128</literal>.
-     However it will be impossible to extend the image further.
-    </para>
-
-    <para>
-     The first (<literal>maxLayers-2</literal>) most "popular" paths will have
-     their own individual layers, then layer #<literal>maxLayers-1</literal>
-     will contain all the remaining "unpopular" paths, and finally layer
-     #<literal>maxLayers</literal> will contain the Image configuration.
-    </para>
-
-    <para>
-     Docker's Layers are not inherently ordered, they are content-addressable
-     and are not explicitly layered until they are composed in to an Image.
-    </para>
-   </section>
-  </section>
-
-  <section xml:id="ssec-pkgs-dockerTools-fetchFromRegistry">
-   <title>pullImage</title>
-
-   <para>
-    This function is analogous to the <command>docker pull</command> command,
-    in that can be used to pull a Docker image from a Docker registry. By
-    default <link xlink:href="https://hub.docker.com/">Docker Hub</link> is
-    used to pull images.
-   </para>
-
-   <para>
-    Its parameters are described in the example below:
-   </para>
-
-   <example xml:id='ex-dockerTools-pullImage'>
-    <title>Docker pull</title>
-<programlisting>
-pullImage {
-  imageName = "nixos/nix"; <co xml:id='ex-dockerTools-pullImage-1' />
-  imageDigest = "sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b"; <co xml:id='ex-dockerTools-pullImage-2' />
-  finalImageTag = "1.11";  <co xml:id='ex-dockerTools-pullImage-3' />
-  sha256 = "0mqjy3zq2v6rrhizgb9nvhczl87lcfphq9601wcprdika2jz7qh8"; <co xml:id='ex-dockerTools-pullImage-4' />
-  os = "linux"; <co xml:id='ex-dockerTools-pullImage-5' />
-  arch = "x86_64"; <co xml:id='ex-dockerTools-pullImage-6' />
-}
-</programlisting>
-   </example>
-
-   <calloutlist>
-    <callout arearefs='ex-dockerTools-pullImage-1'>
-     <para>
-      <varname>imageName</varname> specifies the name of the image to be
-      downloaded, which can also include the registry namespace (e.g.
-      <literal>nixos</literal>). This argument is required.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-pullImage-2'>
-     <para>
-      <varname>imageDigest</varname> specifies the digest of the image to be
-      downloaded. Skopeo can be used to get the digest of an image, with its
-      <varname>inspect</varname> subcommand. Since a given
-      <varname>imageName</varname> may transparently refer to a manifest list
-      of images which support multiple architectures and/or operating systems,
-      supply the `--override-os` and `--override-arch` arguments to specify
-      exactly which image you want. By default it will match the OS and
-      architecture of the host the command is run on.
-<programlisting>
-$ nix-shell --packages skopeo jq --command "skopeo --override-os linux --override-arch x86_64 inspect docker://docker.io/nixos/nix:1.11 | jq -r '.Digest'"
-sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b
-</programlisting>
-      This argument is required.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-pullImage-3'>
-     <para>
-      <varname>finalImageTag</varname>, if specified, this is the tag of the
-      image to be created. Note it is never used to fetch the image since we
-      prefer to rely on the immutable digest ID. By default it's
-      <literal>latest</literal>.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-pullImage-4'>
-     <para>
-      <varname>sha256</varname> is the checksum of the whole fetched image.
-      This argument is required.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-pullImage-5'>
-     <para>
-      <varname>os</varname>, if specified, is the operating system of the
-      fetched image. By default it's <literal>linux</literal>.
-     </para>
-    </callout>
-    <callout arearefs='ex-dockerTools-pullImage-6'>
-     <para>
-      <varname>arch</varname>, if specified, is the cpu architecture of the
-      fetched image. By default it's <literal>x86_64</literal>.
-     </para>
-    </callout>
-   </calloutlist>
-  </section>
-
-  <section xml:id="ssec-pkgs-dockerTools-exportImage">
-   <title>exportImage</title>
-
-   <para>
-    This function is analogous to the <command>docker export</command> command,
-    in that can used to flatten a Docker image that contains multiple layers.
-    It is in fact the result of the merge of all the layers of the image. As
-    such, the result is suitable for being imported in Docker with
-    <command>docker import</command>.
-   </para>
-
-   <note>
-    <para>
-     Using this function requires the <literal>kvm</literal> device to be
-     available.
-    </para>
-   </note>
-
-   <para>
-    The parameters of <varname>exportImage</varname> are the following:
-   </para>
-
-   <example xml:id='ex-dockerTools-exportImage'>
-    <title>Docker export</title>
-<programlisting>
-exportImage {
-  fromImage = someLayeredImage;
-  fromImageName = null;
-  fromImageTag = null;
-
-  name = someLayeredImage.name;
-}
-  </programlisting>
-   </example>
-
-   <para>
-    The parameters relative to the base image have the same synopsis as
-    described in <xref linkend='ssec-pkgs-dockerTools-buildImage'/>, except
-    that <varname>fromImage</varname> is the only required argument in this
-    case.
-   </para>
-
-   <para>
-    The <varname>name</varname> argument is the name of the derivation output,
-    which defaults to <varname>fromImage.name</varname>.
-   </para>
-  </section>
-
-  <section xml:id="ssec-pkgs-dockerTools-shadowSetup">
-   <title>shadowSetup</title>
-
-   <para>
-    This constant string is a helper for setting up the base files for managing
-    users and groups, only if such files don't exist already. It is suitable
-    for being used in a <varname>runAsRoot</varname>
-    <xref linkend='ex-dockerTools-buildImage-runAsRoot'/> script for cases like
-    in the example below:
-   </para>
-
-   <example xml:id='ex-dockerTools-shadowSetup'>
-    <title>Shadow base files</title>
-<programlisting>
-buildImage {
-  name = "shadow-basic";
-
-  runAsRoot = ''
-    #!${stdenv.shell}
-    ${shadowSetup}
-    groupadd -r redis
-    useradd -r -g redis redis
-    mkdir /data
-    chown redis:redis /data
-  '';
-}
-</programlisting>
-   </example>
-
-   <para>
-    Creating base files like <literal>/etc/passwd</literal> or
-    <literal>/etc/login.defs</literal> are necessary for shadow-utils to
-    manipulate users and groups.
-   </para>
-  </section>
- </section>
+ <xi:include href="functions/library.xml" />
+ <xi:include href="functions/overrides.xml" />
+ <xi:include href="functions/generators.xml" />
+ <xi:include href="functions/debug.xml" />
+ <xi:include href="functions/fhs-environments.xml" />
+ <xi:include href="functions/shell.xml" />
+ <xi:include href="functions/dockertools.xml" />
 </chapter>
diff --git a/doc/functions/debug.xml b/doc/functions/debug.xml
new file mode 100644
index 000000000000..c6b3611eea53
--- /dev/null
+++ b/doc/functions/debug.xml
@@ -0,0 +1,21 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xml:id="sec-debug">
+ <title>Debugging Nix Expressions</title>
+
+ <para>
+  Nix is a unityped, dynamic language, this means every value can potentially
+  appear anywhere. Since it is also non-strict, evaluation order and what
+  ultimately is evaluated might surprise you. Therefore it is important to be
+  able to debug nix expressions.
+ </para>
+
+ <para>
+  In the <literal>lib/debug.nix</literal> file you will find a number of
+  functions that help (pretty-)printing values while evaluation is runnnig. You
+  can even specify how deep these values should be printed recursively, and
+  transform them on the fly. Please consult the docstrings in
+  <literal>lib/debug.nix</literal> for usage information.
+ </para>
+</section>
diff --git a/doc/functions/dockertools.xml b/doc/functions/dockertools.xml
new file mode 100644
index 000000000000..501f46a967c3
--- /dev/null
+++ b/doc/functions/dockertools.xml
@@ -0,0 +1,564 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xml:id="sec-pkgs-dockerTools">
+ <title>pkgs.dockerTools</title>
+
+ <para>
+  <varname>pkgs.dockerTools</varname> is a set of functions for creating and
+  manipulating Docker images according to the
+  <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120">
+  Docker Image Specification v1.2.0 </link>. Docker itself is not used to
+  perform any of the operations done by these functions.
+ </para>
+
+ <warning>
+  <para>
+   The <varname>dockerTools</varname> API is unstable and may be subject to
+   backwards-incompatible changes in the future.
+  </para>
+ </warning>
+
+ <section xml:id="ssec-pkgs-dockerTools-buildImage">
+  <title>buildImage</title>
+
+  <para>
+   This function is analogous to the <command>docker build</command> command,
+   in that can used to build a Docker-compatible repository tarball containing
+   a single image with one or multiple layers. As such, the result is suitable
+   for being loaded in Docker with <command>docker load</command>.
+  </para>
+
+  <para>
+   The parameters of <varname>buildImage</varname> with relative example values
+   are described below:
+  </para>
+
+  <example xml:id='ex-dockerTools-buildImage'>
+   <title>Docker build</title>
+<programlisting>
+buildImage {
+  name = "redis"; <co xml:id='ex-dockerTools-buildImage-1' />
+  tag = "latest"; <co xml:id='ex-dockerTools-buildImage-2' />
+
+  fromImage = someBaseImage; <co xml:id='ex-dockerTools-buildImage-3' />
+  fromImageName = null; <co xml:id='ex-dockerTools-buildImage-4' />
+  fromImageTag = "latest"; <co xml:id='ex-dockerTools-buildImage-5' />
+
+  contents = pkgs.redis; <co xml:id='ex-dockerTools-buildImage-6' />
+  runAsRoot = '' <co xml:id='ex-dockerTools-buildImage-runAsRoot' />
+    #!${stdenv.shell}
+    mkdir -p /data
+  '';
+
+  config = { <co xml:id='ex-dockerTools-buildImage-8' />
+    Cmd = [ "/bin/redis-server" ];
+    WorkingDir = "/data";
+    Volumes = {
+      "/data" = {};
+    };
+  };
+}
+</programlisting>
+  </example>
+
+  <para>
+   The above example will build a Docker image <literal>redis/latest</literal>
+   from the given base image. Loading and running this image in Docker results
+   in <literal>redis-server</literal> being started automatically.
+  </para>
+
+  <calloutlist>
+   <callout arearefs='ex-dockerTools-buildImage-1'>
+    <para>
+     <varname>name</varname> specifies the name of the resulting image. This is
+     the only required argument for <varname>buildImage</varname>.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-buildImage-2'>
+    <para>
+     <varname>tag</varname> specifies the tag of the resulting image. By
+     default it's <literal>null</literal>, which indicates that the nix output
+     hash will be used as tag.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-buildImage-3'>
+    <para>
+     <varname>fromImage</varname> is the repository tarball containing the base
+     image. It must be a valid Docker image, such as exported by
+     <command>docker save</command>. By default it's <literal>null</literal>,
+     which can be seen as equivalent to <literal>FROM scratch</literal> of a
+     <filename>Dockerfile</filename>.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-buildImage-4'>
+    <para>
+     <varname>fromImageName</varname> can be used to further specify the base
+     image within the repository, in case it contains multiple images. By
+     default it's <literal>null</literal>, in which case
+     <varname>buildImage</varname> will peek the first image available in the
+     repository.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-buildImage-5'>
+    <para>
+     <varname>fromImageTag</varname> can be used to further specify the tag of
+     the base image within the repository, in case an image contains multiple
+     tags. By default it's <literal>null</literal>, in which case
+     <varname>buildImage</varname> will peek the first tag available for the
+     base image.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-buildImage-6'>
+    <para>
+     <varname>contents</varname> is a derivation that will be copied in the new
+     layer of the resulting image. This can be similarly seen as <command>ADD
+     contents/ /</command> in a <filename>Dockerfile</filename>. By default
+     it's <literal>null</literal>.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-buildImage-runAsRoot'>
+    <para>
+     <varname>runAsRoot</varname> is a bash script that will run as root in an
+     environment that overlays the existing layers of the base image with the
+     new resulting layer, including the previously copied
+     <varname>contents</varname> derivation. This can be similarly seen as
+     <command>RUN ...</command> in a <filename>Dockerfile</filename>.
+     <note>
+      <para>
+       Using this parameter requires the <literal>kvm</literal> device to be
+       available.
+      </para>
+     </note>
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-buildImage-8'>
+    <para>
+     <varname>config</varname> is used to specify the configuration of the
+     containers that will be started off the built image in Docker. The
+     available options are listed in the
+     <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions">
+     Docker Image Specification v1.2.0 </link>.
+    </para>
+   </callout>
+  </calloutlist>
+
+  <para>
+   After the new layer has been created, its closure (to which
+   <varname>contents</varname>, <varname>config</varname> and
+   <varname>runAsRoot</varname> contribute) will be copied in the layer itself.
+   Only new dependencies that are not already in the existing layers will be
+   copied.
+  </para>
+
+  <para>
+   At the end of the process, only one new single layer will be produced and
+   added to the resulting image.
+  </para>
+
+  <para>
+   The resulting repository will only list the single image
+   <varname>image/tag</varname>. In the case of
+   <xref linkend='ex-dockerTools-buildImage'/> it would be
+   <varname>redis/latest</varname>.
+  </para>
+
+  <para>
+   It is possible to inspect the arguments with which an image was built using
+   its <varname>buildArgs</varname> attribute.
+  </para>
+
+  <note>
+   <para>
+    If you see errors similar to <literal>getProtocolByName: does not exist (no
+    such protocol name: tcp)</literal> you may need to add
+    <literal>pkgs.iana-etc</literal> to <varname>contents</varname>.
+   </para>
+  </note>
+
+  <note>
+   <para>
+    If you see errors similar to <literal>Error_Protocol ("certificate has
+    unknown CA",True,UnknownCa)</literal> you may need to add
+    <literal>pkgs.cacert</literal> to <varname>contents</varname>.
+   </para>
+  </note>
+
+  <example xml:id="example-pkgs-dockerTools-buildImage-creation-date">
+   <title>Impurely Defining a Docker Layer's Creation Date</title>
+   <para>
+    By default <function>buildImage</function> will use a static date of one
+    second past the UNIX Epoch. This allows <function>buildImage</function> to
+    produce binary reproducible images. When listing images with
+    <command>docker list images</command>, the newly created images will be
+    listed like this:
+   </para>
+<screen><![CDATA[
+$ docker image list
+REPOSITORY   TAG      IMAGE ID       CREATED        SIZE
+hello        latest   08c791c7846e   48 years ago   25.2MB
+]]></screen>
+   <para>
+    You can break binary reproducibility but have a sorted, meaningful
+    <literal>CREATED</literal> column by setting <literal>created</literal> to
+    <literal>now</literal>.
+   </para>
+<programlisting><![CDATA[
+pkgs.dockerTools.buildImage {
+  name = "hello";
+  tag = "latest";
+  created = "now";
+  contents = pkgs.hello;
+
+  config.Cmd = [ "/bin/hello" ];
+}
+]]></programlisting>
+   <para>
+    and now the Docker CLI will display a reasonable date and sort the images
+    as expected:
+<screen><![CDATA[
+$ docker image list
+REPOSITORY   TAG      IMAGE ID       CREATED              SIZE
+hello        latest   de2bf4786de6   About a minute ago   25.2MB
+]]></screen>
+    however, the produced images will not be binary reproducible.
+   </para>
+  </example>
+ </section>
+
+ <section xml:id="ssec-pkgs-dockerTools-buildLayeredImage">
+  <title>buildLayeredImage</title>
+
+  <para>
+   Create a Docker image with many of the store paths being on their own layer
+   to improve sharing between images.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>name</varname>
+    </term>
+    <listitem>
+     <para>
+      The name of the resulting image.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>tag</varname> <emphasis>optional</emphasis>
+    </term>
+    <listitem>
+     <para>
+      Tag of the generated image.
+     </para>
+     <para>
+      <emphasis>Default:</emphasis> the output path's hash
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>contents</varname> <emphasis>optional</emphasis>
+    </term>
+    <listitem>
+     <para>
+      Top level paths in the container. Either a single derivation, or a list
+      of derivations.
+     </para>
+     <para>
+      <emphasis>Default:</emphasis> <literal>[]</literal>
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>config</varname> <emphasis>optional</emphasis>
+    </term>
+    <listitem>
+     <para>
+      Run-time configuration of the container. A full list of the options are
+      available at in the
+      <link xlink:href="https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions">
+      Docker Image Specification v1.2.0 </link>.
+     </para>
+     <para>
+      <emphasis>Default:</emphasis> <literal>{}</literal>
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>created</varname> <emphasis>optional</emphasis>
+    </term>
+    <listitem>
+     <para>
+      Date and time the layers were created. Follows the same
+      <literal>now</literal> exception supported by
+      <literal>buildImage</literal>.
+     </para>
+     <para>
+      <emphasis>Default:</emphasis> <literal>1970-01-01T00:00:01Z</literal>
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>maxLayers</varname> <emphasis>optional</emphasis>
+    </term>
+    <listitem>
+     <para>
+      Maximum number of layers to create.
+     </para>
+     <para>
+      <emphasis>Default:</emphasis> <literal>24</literal>
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <section xml:id="dockerTools-buildLayeredImage-arg-contents">
+   <title>Behavior of <varname>contents</varname> in the final image</title>
+
+   <para>
+    Each path directly listed in <varname>contents</varname> will have a
+    symlink in the root of the image.
+   </para>
+
+   <para>
+    For example:
+<programlisting><![CDATA[
+pkgs.dockerTools.buildLayeredImage {
+  name = "hello";
+  contents = [ pkgs.hello ];
+}
+]]></programlisting>
+    will create symlinks for all the paths in the <literal>hello</literal>
+    package:
+<screen><![CDATA[
+/bin/hello -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/bin/hello
+/share/info/hello.info -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/info/hello.info
+/share/locale/bg/LC_MESSAGES/hello.mo -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/locale/bg/LC_MESSAGES/hello.mo
+]]></screen>
+   </para>
+  </section>
+
+  <section xml:id="dockerTools-buildLayeredImage-arg-config">
+   <title>Automatic inclusion of <varname>config</varname> references</title>
+
+   <para>
+    The closure of <varname>config</varname> is automatically included in the
+    closure of the final image.
+   </para>
+
+   <para>
+    This allows you to make very simple Docker images with very little code.
+    This container will start up and run <command>hello</command>:
+<programlisting><![CDATA[
+pkgs.dockerTools.buildLayeredImage {
+  name = "hello";
+  config.Cmd = [ "${pkgs.hello}/bin/hello" ];
+}
+]]></programlisting>
+   </para>
+  </section>
+
+  <section xml:id="dockerTools-buildLayeredImage-arg-maxLayers">
+   <title>Adjusting <varname>maxLayers</varname></title>
+
+   <para>
+    Increasing the <varname>maxLayers</varname> increases the number of layers
+    which have a chance to be shared between different images.
+   </para>
+
+   <para>
+    Modern Docker installations support up to 128 layers, however older
+    versions support as few as 42.
+   </para>
+
+   <para>
+    If the produced image will not be extended by other Docker builds, it is
+    safe to set <varname>maxLayers</varname> to <literal>128</literal>. However
+    it will be impossible to extend the image further.
+   </para>
+
+   <para>
+    The first (<literal>maxLayers-2</literal>) most "popular" paths will have
+    their own individual layers, then layer #<literal>maxLayers-1</literal>
+    will contain all the remaining "unpopular" paths, and finally layer
+    #<literal>maxLayers</literal> will contain the Image configuration.
+   </para>
+
+   <para>
+    Docker's Layers are not inherently ordered, they are content-addressable
+    and are not explicitly layered until they are composed in to an Image.
+   </para>
+  </section>
+ </section>
+
+ <section xml:id="ssec-pkgs-dockerTools-fetchFromRegistry">
+  <title>pullImage</title>
+
+  <para>
+   This function is analogous to the <command>docker pull</command> command, in
+   that can be used to pull a Docker image from a Docker registry. By default
+   <link xlink:href="https://hub.docker.com/">Docker Hub</link> is used to pull
+   images.
+  </para>
+
+  <para>
+   Its parameters are described in the example below:
+  </para>
+
+  <example xml:id='ex-dockerTools-pullImage'>
+   <title>Docker pull</title>
+<programlisting>
+pullImage {
+  imageName = "nixos/nix"; <co xml:id='ex-dockerTools-pullImage-1' />
+  imageDigest = "sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b"; <co xml:id='ex-dockerTools-pullImage-2' />
+  finalImageTag = "1.11";  <co xml:id='ex-dockerTools-pullImage-3' />
+  sha256 = "0mqjy3zq2v6rrhizgb9nvhczl87lcfphq9601wcprdika2jz7qh8"; <co xml:id='ex-dockerTools-pullImage-4' />
+  os = "linux"; <co xml:id='ex-dockerTools-pullImage-5' />
+  arch = "x86_64"; <co xml:id='ex-dockerTools-pullImage-6' />
+}
+</programlisting>
+  </example>
+
+  <calloutlist>
+   <callout arearefs='ex-dockerTools-pullImage-1'>
+    <para>
+     <varname>imageName</varname> specifies the name of the image to be
+     downloaded, which can also include the registry namespace (e.g.
+     <literal>nixos</literal>). This argument is required.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-pullImage-2'>
+    <para>
+     <varname>imageDigest</varname> specifies the digest of the image to be
+     downloaded. Skopeo can be used to get the digest of an image, with its
+     <varname>inspect</varname> subcommand. Since a given
+     <varname>imageName</varname> may transparently refer to a manifest list of
+     images which support multiple architectures and/or operating systems,
+     supply the `--override-os` and `--override-arch` arguments to specify
+     exactly which image you want. By default it will match the OS and
+     architecture of the host the command is run on.
+<programlisting>
+$ nix-shell --packages skopeo jq --command "skopeo --override-os linux --override-arch x86_64 inspect docker://docker.io/nixos/nix:1.11 | jq -r '.Digest'"
+sha256:20d9485b25ecfd89204e843a962c1bd70e9cc6858d65d7f5fadc340246e2116b
+</programlisting>
+     This argument is required.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-pullImage-3'>
+    <para>
+     <varname>finalImageTag</varname>, if specified, this is the tag of the
+     image to be created. Note it is never used to fetch the image since we
+     prefer to rely on the immutable digest ID. By default it's
+     <literal>latest</literal>.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-pullImage-4'>
+    <para>
+     <varname>sha256</varname> is the checksum of the whole fetched image. This
+     argument is required.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-pullImage-5'>
+    <para>
+     <varname>os</varname>, if specified, is the operating system of the
+     fetched image. By default it's <literal>linux</literal>.
+    </para>
+   </callout>
+   <callout arearefs='ex-dockerTools-pullImage-6'>
+    <para>
+     <varname>arch</varname>, if specified, is the cpu architecture of the
+     fetched image. By default it's <literal>x86_64</literal>.
+    </para>
+   </callout>
+  </calloutlist>
+ </section>
+
+ <section xml:id="ssec-pkgs-dockerTools-exportImage">
+  <title>exportImage</title>
+
+  <para>
+   This function is analogous to the <command>docker export</command> command,
+   in that can used to flatten a Docker image that contains multiple layers. It
+   is in fact the result of the merge of all the layers of the image. As such,
+   the result is suitable for being imported in Docker with <command>docker
+   import</command>.
+  </para>
+
+  <note>
+   <para>
+    Using this function requires the <literal>kvm</literal> device to be
+    available.
+   </para>
+  </note>
+
+  <para>
+   The parameters of <varname>exportImage</varname> are the following:
+  </para>
+
+  <example xml:id='ex-dockerTools-exportImage'>
+   <title>Docker export</title>
+<programlisting>
+exportImage {
+  fromImage = someLayeredImage;
+  fromImageName = null;
+  fromImageTag = null;
+
+  name = someLayeredImage.name;
+}
+  </programlisting>
+  </example>
+
+  <para>
+   The parameters relative to the base image have the same synopsis as
+   described in <xref linkend='ssec-pkgs-dockerTools-buildImage'/>, except that
+   <varname>fromImage</varname> is the only required argument in this case.
+  </para>
+
+  <para>
+   The <varname>name</varname> argument is the name of the derivation output,
+   which defaults to <varname>fromImage.name</varname>.
+  </para>
+ </section>
+
+ <section xml:id="ssec-pkgs-dockerTools-shadowSetup">
+  <title>shadowSetup</title>
+
+  <para>
+   This constant string is a helper for setting up the base files for managing
+   users and groups, only if such files don't exist already. It is suitable for
+   being used in a <varname>runAsRoot</varname>
+   <xref linkend='ex-dockerTools-buildImage-runAsRoot'/> script for cases like
+   in the example below:
+  </para>
+
+  <example xml:id='ex-dockerTools-shadowSetup'>
+   <title>Shadow base files</title>
+<programlisting>
+buildImage {
+  name = "shadow-basic";
+
+  runAsRoot = ''
+    #!${stdenv.shell}
+    ${shadowSetup}
+    groupadd -r redis
+    useradd -r -g redis redis
+    mkdir /data
+    chown redis:redis /data
+  '';
+}
+</programlisting>
+  </example>
+
+  <para>
+   Creating base files like <literal>/etc/passwd</literal> or
+   <literal>/etc/login.defs</literal> are necessary for shadow-utils to
+   manipulate users and groups.
+  </para>
+ </section>
+</section>
diff --git a/doc/functions/fhs-environments.xml b/doc/functions/fhs-environments.xml
new file mode 100644
index 000000000000..79682080be31
--- /dev/null
+++ b/doc/functions/fhs-environments.xml
@@ -0,0 +1,142 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xml:id="sec-fhs-environments">
+ <title>buildFHSUserEnv</title>
+
+ <para>
+  <function>buildFHSUserEnv</function> provides a way to build and run
+  FHS-compatible lightweight sandboxes. It creates an isolated root with bound
+  <filename>/nix/store</filename>, so its footprint in terms of disk space
+  needed is quite small. This allows one to run software which is hard or
+  unfeasible to patch for NixOS -- 3rd-party source trees with FHS assumptions,
+  games distributed as tarballs, software with integrity checking and/or
+  external self-updated binaries. It uses Linux namespaces feature to create
+  temporary lightweight environments which are destroyed after all child
+  processes exit, without root user rights requirement. Accepted arguments are:
+ </para>
+
+ <variablelist>
+  <varlistentry>
+   <term>
+    <literal>name</literal>
+   </term>
+   <listitem>
+    <para>
+     Environment name.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry>
+   <term>
+    <literal>targetPkgs</literal>
+   </term>
+   <listitem>
+    <para>
+     Packages to be installed for the main host's architecture (i.e. x86_64 on
+     x86_64 installations). Along with libraries binaries are also installed.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry>
+   <term>
+    <literal>multiPkgs</literal>
+   </term>
+   <listitem>
+    <para>
+     Packages to be installed for all architectures supported by a host (i.e.
+     i686 and x86_64 on x86_64 installations). Only libraries are installed by
+     default.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry>
+   <term>
+    <literal>extraBuildCommands</literal>
+   </term>
+   <listitem>
+    <para>
+     Additional commands to be executed for finalizing the directory structure.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry>
+   <term>
+    <literal>extraBuildCommandsMulti</literal>
+   </term>
+   <listitem>
+    <para>
+     Like <literal>extraBuildCommands</literal>, but executed only on multilib
+     architectures.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry>
+   <term>
+    <literal>extraOutputsToInstall</literal>
+   </term>
+   <listitem>
+    <para>
+     Additional derivation outputs to be linked for both target and
+     multi-architecture packages.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry>
+   <term>
+    <literal>extraInstallCommands</literal>
+   </term>
+   <listitem>
+    <para>
+     Additional commands to be executed for finalizing the derivation with
+     runner script.
+    </para>
+   </listitem>
+  </varlistentry>
+  <varlistentry>
+   <term>
+    <literal>runScript</literal>
+   </term>
+   <listitem>
+    <para>
+     A command that would be executed inside the sandbox and passed all the
+     command line arguments. It defaults to <literal>bash</literal>.
+    </para>
+   </listitem>
+  </varlistentry>
+ </variablelist>
+
+ <para>
+  One can create a simple environment using a <literal>shell.nix</literal> like
+  that:
+ </para>
+
+<programlisting><![CDATA[
+{ pkgs ? import <nixpkgs> {} }:
+
+(pkgs.buildFHSUserEnv {
+  name = "simple-x11-env";
+  targetPkgs = pkgs: (with pkgs;
+    [ udev
+      alsaLib
+    ]) ++ (with pkgs.xorg;
+    [ libX11
+      libXcursor
+      libXrandr
+    ]);
+  multiPkgs = pkgs: (with pkgs;
+    [ udev
+      alsaLib
+    ]);
+  runScript = "bash";
+}).env
+]]></programlisting>
+
+ <para>
+  Running <literal>nix-shell</literal> would then drop you into a shell with
+  these libraries and binaries available. You can use this to run closed-source
+  applications which expect FHS structure without hassles: simply change
+  <literal>runScript</literal> to the application path, e.g.
+  <filename>./bin/start.sh</filename> -- relative paths are supported.
+ </para>
+</section>
diff --git a/doc/functions/generators.xml b/doc/functions/generators.xml
new file mode 100644
index 000000000000..e860b10e8979
--- /dev/null
+++ b/doc/functions/generators.xml
@@ -0,0 +1,89 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xml:id="sec-generators">
+ <title>Generators</title>
+
+ <para>
+  Generators are functions that create file formats from nix data structures,
+  e. g. for configuration files. There are generators available for:
+  <literal>INI</literal>, <literal>JSON</literal> and <literal>YAML</literal>
+ </para>
+
+ <para>
+  All generators follow a similar call interface: <code>generatorName
+  configFunctions data</code>, where <literal>configFunctions</literal> is an
+  attrset of user-defined functions that format nested parts of the content.
+  They each have common defaults, so often they do not need to be set manually.
+  An example is <code>mkSectionName ? (name: libStr.escape [ "[" "]" ]
+  name)</code> from the <literal>INI</literal> generator. It receives the name
+  of a section and sanitizes it. The default <literal>mkSectionName</literal>
+  escapes <literal>[</literal> and <literal>]</literal> with a backslash.
+ </para>
+
+ <para>
+  Generators can be fine-tuned to produce exactly the file format required by
+  your application/service. One example is an INI-file format which uses
+  <literal>: </literal> as separator, the strings
+  <literal>"yes"</literal>/<literal>"no"</literal> as boolean values and
+  requires all string values to be quoted:
+ </para>
+
+<programlisting>
+with lib;
+let
+  customToINI = generators.toINI {
+    # specifies how to format a key/value pair
+    mkKeyValue = generators.mkKeyValueDefault {
+      # specifies the generated string for a subset of nix values
+      mkValueString = v:
+             if v == true then ''"yes"''
+        else if v == false then ''"no"''
+        else if isString v then ''"${v}"''
+        # and delegats all other values to the default generator
+        else generators.mkValueStringDefault {} v;
+    } ":";
+  };
+
+# the INI file can now be given as plain old nix values
+in customToINI {
+  main = {
+    pushinfo = true;
+    autopush = false;
+    host = "localhost";
+    port = 42;
+  };
+  mergetool = {
+    merge = "diff3";
+  };
+}
+</programlisting>
+
+ <para>
+  This will produce the following INI file as nix string:
+ </para>
+
+<programlisting>
+[main]
+autopush:"no"
+host:"localhost"
+port:42
+pushinfo:"yes"
+str\:ange:"very::strange"
+
+[mergetool]
+merge:"diff3"
+</programlisting>
+
+ <note>
+  <para>
+   Nix store paths can be converted to strings by enclosing a derivation
+   attribute like so: <code>"${drv}"</code>.
+  </para>
+ </note>
+
+ <para>
+  Detailed documentation for each generator can be found in
+  <literal>lib/generators.nix</literal>.
+ </para>
+</section>
diff --git a/doc/functions/library.xml b/doc/functions/library.xml
new file mode 100644
index 000000000000..901423c52a18
--- /dev/null
+++ b/doc/functions/library.xml
@@ -0,0 +1,15 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xml:id="sec-functions-library">
+ <title>Nixpkgs Library Functions</title>
+
+ <para>
+  Nixpkgs provides a standard library at <varname>pkgs.lib</varname>, or
+  through <code>import &lt;nixpkgs/lib&gt;</code>.
+ </para>
+
+ <xi:include href="./library/asserts.xml" />
+
+ <xi:include href="./library/attrsets.xml" />
+</section>
diff --git a/doc/functions/library/asserts.xml b/doc/functions/library/asserts.xml
new file mode 100644
index 000000000000..437850e408bc
--- /dev/null
+++ b/doc/functions/library/asserts.xml
@@ -0,0 +1,117 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xml:id="sec-functions-library-asserts">
+ <title>Assert functions</title>
+
+ <section xml:id="function-library-lib.asserts.assertMsg">
+  <title><function>lib.asserts.assertMsg</function></title>
+
+  <subtitle><literal>assertMsg :: Bool -> String -> Bool</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.asserts.assertMsg" />
+
+  <para>
+   Print a trace message if <literal>pred</literal> is false.
+  </para>
+
+  <para>
+   Intended to be used to augment asserts with helpful error messages.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>pred</varname>
+    </term>
+    <listitem>
+     <para>
+      Condition under which the <varname>msg</varname> should
+      <emphasis>not</emphasis> be printed.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>msg</varname>
+    </term>
+    <listitem>
+     <para>
+      Message to print.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.asserts.assertMsg-example-false">
+   <title>Printing when the predicate is false</title>
+<programlisting><![CDATA[
+assert lib.asserts.assertMsg ("foo" == "bar") "foo is not bar, silly"
+stderr> trace: foo is not bar, silly
+stderr> assert failed
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.asserts.assertOneOf">
+  <title><function>lib.asserts.assertOneOf</function></title>
+
+  <subtitle><literal>assertOneOf :: String -> String ->
+      StringList -> Bool</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.asserts.assertOneOf" />
+
+  <para>
+   Specialized <function>asserts.assertMsg</function> for checking if
+   <varname>val</varname> is one of the elements of <varname>xs</varname>.
+   Useful for checking enums.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>name</varname>
+    </term>
+    <listitem>
+     <para>
+      The name of the variable the user entered <varname>val</varname> into,
+      for inclusion in the error message.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>val</varname>
+    </term>
+    <listitem>
+     <para>
+      The value of what the user provided, to be compared against the values in
+      <varname>xs</varname>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>xs</varname>
+    </term>
+    <listitem>
+     <para>
+      The list of valid values.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.asserts.assertOneOf-example">
+   <title>Ensuring a user provided a possible value</title>
+<programlisting><![CDATA[
+let sslLibrary = "bearssl";
+in lib.asserts.assertOneOf "sslLibrary" sslLibrary [ "openssl" "bearssl" ];
+=> false
+stderr> trace: sslLibrary must be one of "openssl", "libressl", but is: "bearssl"
+        ]]></programlisting>
+  </example>
+ </section>
+</section>
diff --git a/doc/functions/library/attrsets.xml b/doc/functions/library/attrsets.xml
new file mode 100644
index 000000000000..6f23e267bab2
--- /dev/null
+++ b/doc/functions/library/attrsets.xml
@@ -0,0 +1,970 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xml:id="sec-functions-library-attrset">
+ <title>Attribute-Set Functions</title>
+
+ <section xml:id="function-library-lib.attrsets.attrByPath">
+  <title><function>lib.attrset.attrByPath</function></title>
+
+  <subtitle><literal>attrByPath :: [String] -> Any -> AttrSet</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.attrByPath" />
+
+  <para>
+   Return an attribute from within nested attribute sets.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>attrPath</varname>
+    </term>
+    <listitem>
+     <para>
+      A list of strings representing the path through the nested attribute set
+      <varname>set</varname>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>default</varname>
+    </term>
+    <listitem>
+     <para>
+      Default value if <varname>attrPath</varname> does not resolve to an
+      existing value.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>set</varname>
+    </term>
+    <listitem>
+     <para>
+      The nested attributeset to select values from.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrset.attrByPath-example-value-exists">
+   <title>Extracting a value from a nested attribute set</title>
+<programlisting><![CDATA[
+let set = { a = { b = 3; }; };
+in lib.attrsets.attrByPath [ "a" "b" ] 0 set
+=> 3
+]]></programlisting>
+  </example>
+
+  <example xml:id="function-library-lib.attrset.attrByPath-example-default-value">
+   <title>No value at the path, instead using the default</title>
+<programlisting><![CDATA[
+lib.attrsets.attrByPath [ "a" "b" ] 0 {}
+=> 0
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.hasAttrByPath">
+  <title><function>lib.attrsets.hasAttrByPath</function></title>
+
+  <subtitle><literal>hasAttrByPath :: [String] -> AttrSet -> Bool</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.hasAttrByPath" />
+
+  <para>
+   Determine if an attribute exists within a nested attribute set.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>attrPath</varname>
+    </term>
+    <listitem>
+     <para>
+      A list of strings representing the path through the nested attribute set
+      <varname>set</varname>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>set</varname>
+    </term>
+    <listitem>
+     <para>
+      The nested attributeset to check.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.hasAttrByPath-example">
+   <title>A nested value does exist inside a set</title>
+<programlisting><![CDATA[
+lib.attrsets.hasAttrByPath
+  [ "a" "b" "c" "d" ]
+  { a = { b = { c = { d = 123; }; }; }; }
+=> true
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.setAttrByPath">
+  <title><function>lib.attrsets.setAttrByPath</function></title>
+
+  <subtitle><literal>setAttrByPath :: [String] -> Any -> AttrSet</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.setAttrByPath" />
+
+  <para>
+   Create a new attribute set with <varname>value</varname> set at the nested
+   attribute location specified in <varname>attrPath</varname>.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>attrPath</varname>
+    </term>
+    <listitem>
+     <para>
+      A list of strings representing the path through the nested attribute set.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>value</varname>
+    </term>
+    <listitem>
+     <para>
+      The value to set at the location described by
+      <varname>attrPath</varname>.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.setAttrByPath-example">
+   <title>Creating a new nested attribute set</title>
+<programlisting><![CDATA[
+lib.attrsets.setAttrByPath [ "a" "b" ] 3
+=> { a = { b = 3; }; }
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.getAttrFromPath">
+  <title><function>lib.attrsets.getAttrFromPath</function></title>
+
+  <subtitle><literal>getAttrFromPath :: [String] -> AttrSet -> Value</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.getAttrFromPath" />
+
+  <para>
+   Like <xref linkend="function-library-lib.attrsets.attrByPath" /> except
+   without a default, and it will throw if the value doesn't exist.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>attrPath</varname>
+    </term>
+    <listitem>
+     <para>
+      A list of strings representing the path through the nested attribute set
+      <varname>set</varname>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>set</varname>
+    </term>
+    <listitem>
+     <para>
+      The nested attribute set to find the value in.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.getAttrPath-example-success">
+   <title>Succesfully getting a value from an attribute set</title>
+<programlisting><![CDATA[
+lib.attrsets.getAttrFromPath [ "a" "b" ] { a = { b = 3; }; }
+=> 3
+]]></programlisting>
+  </example>
+
+  <example xml:id="function-library-lib.attrsets.getAttrPath-example-throw">
+   <title>Throwing after failing to get a value from an attribute set</title>
+<programlisting><![CDATA[
+lib.attrsets.getAttrFromPath [ "x" "y" ] { }
+=> error: cannot find attribute `x.y'
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.attrVals">
+  <title><function>lib.attrsets.attrVals</function></title>
+
+  <subtitle><literal>attrVals :: [String] -> AttrSet -> [Any]</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.attrVals" />
+
+  <para>
+   Return the specified attributes from a set. All values must exist.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>nameList</varname>
+    </term>
+    <listitem>
+     <para>
+      The list of attributes to fetch from <varname>set</varname>. Each
+      attribute name must exist on the attrbitue set.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>set</varname>
+    </term>
+    <listitem>
+     <para>
+      The set to get attribute values from.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.attrVals-example-success">
+   <title>Getting several values from an attribute set</title>
+<programlisting><![CDATA[
+lib.attrsets.attrVals [ "a" "b" "c" ] { a = 1; b = 2; c = 3; }
+=> [ 1 2 3 ]
+]]></programlisting>
+  </example>
+
+  <example xml:id="function-library-lib.attrsets.attrVals-failure">
+   <title>Getting missing values from an attribute set</title>
+<programlisting><![CDATA[
+lib.attrsets.attrVals [ "d" ] { }
+error: attribute 'd' missing
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.attrValues">
+  <title><function>lib.attrsets.attrValues</function></title>
+
+  <subtitle><literal>attrValues :: AttrSet -> [Any]</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.attrValues" />
+
+  <para>
+   Get all the attribute values from an attribute set.
+  </para>
+
+  <para>
+   Provides a backwards-compatible interface of
+   <function>builtins.attrValues</function> for Nix version older than 1.8.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>attrs</varname>
+    </term>
+    <listitem>
+     <para>
+      The attribute set.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.attrValues-example">
+   <title></title>
+<programlisting><![CDATA[
+lib.attrsets.attrValues { a = 1; b = 2; c = 3; }
+=> [ 1 2 3 ]
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.catAttrs">
+  <title><function>lib.attrsets.catAttrs</function></title>
+
+  <subtitle><literal>catAttrs :: String -> AttrSet -> [Any]</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.catAttrs" />
+
+  <para>
+   Collect each attribute named `attr' from the list of attribute sets,
+   <varname>sets</varname>. Sets that don't contain the named attribute are
+   ignored.
+  </para>
+
+  <para>
+   Provides a backwards-compatible interface of
+   <function>builtins.catAttrs</function> for Nix version older than 1.9.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>attr</varname>
+    </term>
+    <listitem>
+     <para>
+      Attribute name to select from each attribute set in
+      <varname>sets</varname>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>sets</varname>
+    </term>
+    <listitem>
+     <para>
+      The list of attribute sets to select <varname>attr</varname> from.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.catAttrs-example">
+   <title>Collect an attribute from a list of attribute sets.</title>
+   <para>
+    Attribute sets which don't have the attribute are ignored.
+   </para>
+<programlisting><![CDATA[
+catAttrs "a" [{a = 1;} {b = 0;} {a = 2;}]
+=> [ 1 2 ]
+      ]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.filterAttrs">
+  <title><function>lib.attrsets.filterAttrs</function></title>
+
+  <subtitle><literal>filterAttrs :: (String -> Any -> Bool) -> AttrSet -> AttrSet</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.filterAttrs" />
+
+  <para>
+   Filter an attribute set by removing all attributes for which the given
+   predicate return false.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>pred</varname>
+    </term>
+    <listitem>
+     <para>
+      <literal>String -> Any -> Bool</literal>
+     </para>
+     <para>
+      Predicate which returns true to include an attribute, or returns false to
+      exclude it.
+     </para>
+     <variablelist>
+      <varlistentry>
+       <term>
+        <varname>name</varname>
+       </term>
+       <listitem>
+        <para>
+         The attribute's name
+        </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+        <varname>value</varname>
+       </term>
+       <listitem>
+        <para>
+         The attribute's value
+        </para>
+       </listitem>
+      </varlistentry>
+     </variablelist>
+     <para>
+      Returns <literal>true</literal> to include the attribute,
+      <literal>false</literal> to exclude the attribute.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>set</varname>
+    </term>
+    <listitem>
+     <para>
+      The attribute set to filter
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.filterAttrs-example">
+   <title>Filtering an attributeset</title>
+<programlisting><![CDATA[
+filterAttrs (n: v: n == "foo") { foo = 1; bar = 2; }
+=> { foo = 1; }
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.filterAttrsRecursive">
+  <title><function>lib.attrsets.filterAttrsRecursive</function></title>
+
+  <subtitle><literal>filterAttrsRecursive :: (String -> Any -> Bool) -> AttrSet -> AttrSet</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.filterAttrsRecursive" />
+
+  <para>
+   Filter an attribute set recursively by removing all attributes for which the
+   given predicate return false.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>pred</varname>
+    </term>
+    <listitem>
+     <para>
+      <literal>String -> Any -> Bool</literal>
+     </para>
+     <para>
+      Predicate which returns true to include an attribute, or returns false to
+      exclude it.
+     </para>
+     <variablelist>
+      <varlistentry>
+       <term>
+        <varname>name</varname>
+       </term>
+       <listitem>
+        <para>
+         The attribute's name
+        </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+        <varname>value</varname>
+       </term>
+       <listitem>
+        <para>
+         The attribute's value
+        </para>
+       </listitem>
+      </varlistentry>
+     </variablelist>
+     <para>
+      Returns <literal>true</literal> to include the attribute,
+      <literal>false</literal> to exclude the attribute.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>set</varname>
+    </term>
+    <listitem>
+     <para>
+      The attribute set to filter
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.filterAttrsRecursive-example">
+   <title>Recursively filtering an attribute set</title>
+<programlisting><![CDATA[
+lib.attrsets.filterAttrsRecursive
+  (n: v: v != null)
+  {
+    levelA = {
+      example = "hi";
+      levelB = {
+        hello = "there";
+        this-one-is-present = {
+          this-is-excluded = null;
+        };
+      };
+      this-one-is-also-excluded = null;
+    };
+    also-excluded = null;
+  }
+=> {
+     levelA = {
+       example = "hi";
+       levelB = {
+         hello = "there";
+         this-one-is-present = { };
+       };
+     };
+   }
+     ]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.foldAttrs">
+  <title><function>lib.attrsets.foldAttrs</function></title>
+
+  <subtitle><literal>foldAttrs :: (Any -> Any -> Any) -> Any -> [AttrSets] -> Any</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.foldAttrs" />
+
+  <para>
+   Apply fold function to values grouped by key.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>op</varname>
+    </term>
+    <listitem>
+     <para>
+      <literal>Any -> Any -> Any</literal>
+     </para>
+     <para>
+      Given a value <varname>val</varname> and a collector
+      <varname>col</varname>, combine the two.
+     </para>
+     <variablelist>
+      <varlistentry>
+       <term>
+        <varname>val</varname>
+       </term>
+       <listitem>
+        <para>
+         An attribute's value
+        </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+        <varname>col</varname>
+       </term>
+       <listitem>
+<!-- TODO: make this not bad, use more fold-ey terms -->
+        <para>
+         The result of previous <function>op</function> calls with other values
+         and <function>nul</function>.
+        </para>
+       </listitem>
+      </varlistentry>
+     </variablelist>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>nul</varname>
+    </term>
+    <listitem>
+     <para>
+      The null-value, the starting value.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>list_of_attrs</varname>
+    </term>
+    <listitem>
+     <para>
+      A list of attribute sets to fold together by key.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.foldAttrs-example">
+   <title>Combining an attribute of lists in to one attribute set</title>
+<programlisting><![CDATA[
+lib.attrsets.foldAttrs
+  (n: a: [n] ++ a) []
+  [
+    { a = 2; b = 7; }
+    { a = 3; }
+    { b = 6; }
+  ]
+=> { a = [ 2 3 ]; b = [ 7 6 ]; }
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.collect">
+  <title><function>lib.attrsets.collect</function></title>
+
+  <subtitle><literal>collect :: (Any -> Bool) -> AttrSet -> [Any]</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.collect" />
+
+  <para>
+   Recursively collect sets that verify a given predicate named
+   <varname>pred</varname> from the set <varname>attrs</varname>. The recursion
+   stops when <varname>pred</varname> returns <literal>true</literal>.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>pred</varname>
+    </term>
+    <listitem>
+     <para>
+      <literal>Any -> Bool</literal>
+     </para>
+     <para>
+      Given an attribute's value, determine if recursion should stop.
+     </para>
+     <variablelist>
+      <varlistentry>
+       <term>
+        <varname>value</varname>
+       </term>
+       <listitem>
+        <para>
+         The attribute set value.
+        </para>
+       </listitem>
+      </varlistentry>
+     </variablelist>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>attrs</varname>
+    </term>
+    <listitem>
+     <para>
+      The attribute set to recursively collect.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.collect-example-lists">
+   <title>Collecting all lists from an attribute set</title>
+<programlisting><![CDATA[
+lib.attrsets.collect isList { a = { b = ["b"]; }; c = [1]; }
+=> [["b"] [1]]
+]]></programlisting>
+  </example>
+
+  <example xml:id="function-library-lib.attrsets.collect-example-outpath">
+   <title>Collecting all attribute-sets which contain the <literal>outPath</literal> attribute name.</title>
+<programlisting><![CDATA[
+collect (x: x ? outPath)
+  { a = { outPath = "a/"; }; b = { outPath = "b/"; }; }
+=> [{ outPath = "a/"; } { outPath = "b/"; }]
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.nameValuePair">
+  <title><function>lib.attrsets.nameValuePair</function></title>
+
+  <subtitle><literal>nameValuePair :: String -> Any -> AttrSet</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.nameValuePair" />
+
+  <para>
+   Utility function that creates a <literal>{name, value}</literal> pair as
+   expected by <function>builtins.listToAttrs</function>.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>name</varname>
+    </term>
+    <listitem>
+     <para>
+      The attribute name.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>value</varname>
+    </term>
+    <listitem>
+     <para>
+      The attribute value.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.nameValuePair-example">
+   <title>Creating a name value pair</title>
+<programlisting><![CDATA[
+nameValuePair "some" 6
+=> { name = "some"; value = 6; }
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.mapAttrs">
+  <title><function>lib.attrsets.mapAttrs</function></title>
+
+  <subtitle><literal></literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.mapAttrs" />
+
+  <para>
+   Apply a function to each element in an attribute set, creating a new
+   attribute set.
+  </para>
+
+  <para>
+   Provides a backwards-compatible interface of
+   <function>builtins.mapAttrs</function> for Nix version older than 2.1.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>fn</varname>
+    </term>
+    <listitem>
+     <para>
+      <literal>String -> Any -> Any</literal>
+     </para>
+     <para>
+      Given an attribute's name and value, return a new value.
+     </para>
+     <variablelist>
+      <varlistentry>
+       <term>
+        <varname>name</varname>
+       </term>
+       <listitem>
+        <para>
+         The name of the attribute.
+        </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+        <varname>value</varname>
+       </term>
+       <listitem>
+        <para>
+         The attribute's value.
+        </para>
+       </listitem>
+      </varlistentry>
+     </variablelist>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.mapAttrs-example">
+   <title>Modifying each value of an attribute set</title>
+<programlisting><![CDATA[
+lib.attrsets.mapAttrs
+  (name: value: name + "-" value)
+  { x = "foo"; y = "bar"; }
+=> { x = "x-foo"; y = "y-bar"; }
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.mapAttrs-prime">
+  <title><function>lib.attrsets.mapAttrs&apos;</function></title>
+
+  <subtitle><literal>mapAttrs' :: (String -> Any -> { name = String; value = Any }) -> AttrSet -> AttrSet</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.mapAttrs-prime" />
+
+  <para>
+   Like <function>mapAttrs</function>, but allows the name of each attribute to
+   be changed in addition to the value. The applied function should return both
+   the new name and value as a <function>nameValuePair</function>.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>fn</varname>
+    </term>
+    <listitem>
+     <para>
+      <literal>String -> Any -> { name = String; value = Any }</literal>
+     </para>
+     <para>
+      Given an attribute's name and value, return a new
+      <link
+       linkend="function-library-lib.attrsets.nameValuePair">name
+      value pair</link>.
+     </para>
+     <variablelist>
+      <varlistentry>
+       <term>
+        <varname>name</varname>
+       </term>
+       <listitem>
+        <para>
+         The name of the attribute.
+        </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+        <varname>value</varname>
+       </term>
+       <listitem>
+        <para>
+         The attribute's value.
+        </para>
+       </listitem>
+      </varlistentry>
+     </variablelist>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>set</varname>
+    </term>
+    <listitem>
+     <para>
+      The attribute set to map over.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.mapAttrs-prime-example">
+   <title>Change the name and value of each attribute of an attribute set</title>
+<programlisting><![CDATA[
+lib.attrsets.mapAttrs' (name: value: lib.attrsets.nameValuePair ("foo_" + name) ("bar-" + value))
+   { x = "a"; y = "b"; }
+=> { foo_x = "bar-a"; foo_y = "bar-b"; }
+
+    ]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.mapAttrsToList">
+  <title><function>lib.attrsets.mapAttrsToList</function></title>
+
+  <subtitle><literal>mapAttrsToList :: (String -> Any -> Any) ->
+   AttrSet -> Any</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.mapAttrsToList" />
+
+  <para>
+   Call <varname>fn</varname> for each attribute in the given
+   <varname>set</varname> and return the result in a list.
+  </para>
+
+  <variablelist>
+   <varlistentry>
+    <term>
+     <varname>fn</varname>
+    </term>
+    <listitem>
+     <para>
+      <literal>String -> Any -> Any</literal>
+     </para>
+     <para>
+      Given an attribute's name and value, return a new value.
+     </para>
+     <variablelist>
+      <varlistentry>
+       <term>
+        <varname>name</varname>
+       </term>
+       <listitem>
+        <para>
+         The name of the attribute.
+        </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+        <varname>value</varname>
+       </term>
+       <listitem>
+        <para>
+         The attribute's value.
+        </para>
+       </listitem>
+      </varlistentry>
+     </variablelist>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>set</varname>
+    </term>
+    <listitem>
+     <para>
+      The attribute set to map over.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+  <example xml:id="function-library-lib.attrsets.mapAttrsToList-example">
+   <title>Combine attribute values and names in to a list</title>
+<programlisting><![CDATA[
+lib.attrsets.mapAttrsToList (name: value: "${name}=${value}")
+   { x = "a"; y = "b"; }
+=> [ "x=a" "y=b" ]
+]]></programlisting>
+  </example>
+ </section>
+
+ <section xml:id="function-library-lib.attrsets.mapAttrsRecursive">
+  <title><function>lib.attrsets.mapAttrsRecursive</function></title>
+
+  <subtitle><literal>mapAttrsRecursive :: ([String] > Any -> Any) -> AttrSet -> AttrSet</literal>
+  </subtitle>
+
+  <xi:include href="./locations.xml" xpointer="lib.attrsets.mapAttrsRecursive" />
+
+  <para>
+   Like <function>mapAttrs</function>, except that it recursively applies
+   itself to attribute sets. Also, the first argument of the argument function
+   is a <emphasis>list</emphasis> of the names of the containing attributes.
+  </para>
+ </section>
+</section>
diff --git a/doc/functions/overrides.xml b/doc/functions/overrides.xml
new file mode 100644
index 000000000000..99e2a63631a7
--- /dev/null
+++ b/doc/functions/overrides.xml
@@ -0,0 +1,203 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xml:id="sec-overrides">
+ <title>Overriding</title>
+
+ <para>
+  Sometimes one wants to override parts of <literal>nixpkgs</literal>, e.g.
+  derivation attributes, the results of derivations or even the whole package
+  set.
+ </para>
+
+ <section xml:id="sec-pkg-override">
+  <title>&lt;pkg&gt;.override</title>
+
+  <para>
+   The function <varname>override</varname> is usually available for all the
+   derivations in the nixpkgs expression (<varname>pkgs</varname>).
+  </para>
+
+  <para>
+   It is used to override the arguments passed to a function.
+  </para>
+
+  <para>
+   Example usages:
+<programlisting>pkgs.foo.override { arg1 = val1; arg2 = val2; ... }</programlisting>
+<programlisting>
+import pkgs.path { overlays = [ (self: super: {
+  foo = super.foo.override { barSupport = true ; };
+  })]};
+</programlisting>
+<programlisting>
+mypkg = pkgs.callPackage ./mypkg.nix {
+  mydep = pkgs.mydep.override { ... };
+  }
+</programlisting>
+  </para>
+
+  <para>
+   In the first example, <varname>pkgs.foo</varname> is the result of a
+   function call with some default arguments, usually a derivation. Using
+   <varname>pkgs.foo.override</varname> will call the same function with the
+   given new arguments.
+  </para>
+ </section>
+
+ <section xml:id="sec-pkg-overrideAttrs">
+  <title>&lt;pkg&gt;.overrideAttrs</title>
+
+  <para>
+   The function <varname>overrideAttrs</varname> allows overriding the
+   attribute set passed to a <varname>stdenv.mkDerivation</varname> call,
+   producing a new derivation based on the original one. This function is
+   available on all derivations produced by the
+   <varname>stdenv.mkDerivation</varname> function, which is most packages in
+   the nixpkgs expression <varname>pkgs</varname>.
+  </para>
+
+  <para>
+   Example usage:
+<programlisting>
+helloWithDebug = pkgs.hello.overrideAttrs (oldAttrs: rec {
+  separateDebugInfo = true;
+});
+</programlisting>
+  </para>
+
+  <para>
+   In the above example, the <varname>separateDebugInfo</varname> attribute is
+   overridden to be true, thus building debug info for
+   <varname>helloWithDebug</varname>, while all other attributes will be
+   retained from the original <varname>hello</varname> package.
+  </para>
+
+  <para>
+   The argument <varname>oldAttrs</varname> is conventionally used to refer to
+   the attr set originally passed to <varname>stdenv.mkDerivation</varname>.
+  </para>
+
+  <note>
+   <para>
+    Note that <varname>separateDebugInfo</varname> is processed only by the
+    <varname>stdenv.mkDerivation</varname> function, not the generated, raw Nix
+    derivation. Thus, using <varname>overrideDerivation</varname> will not work
+    in this case, as it overrides only the attributes of the final derivation.
+    It is for this reason that <varname>overrideAttrs</varname> should be
+    preferred in (almost) all cases to <varname>overrideDerivation</varname>,
+    i.e. to allow using <varname>sdenv.mkDerivation</varname> to process input
+    arguments, as well as the fact that it is easier to use (you can use the
+    same attribute names you see in your Nix code, instead of the ones
+    generated (e.g. <varname>buildInputs</varname> vs
+    <varname>nativeBuildInputs</varname>, and involves less typing.
+   </para>
+  </note>
+ </section>
+
+ <section xml:id="sec-pkg-overrideDerivation">
+  <title>&lt;pkg&gt;.overrideDerivation</title>
+
+  <warning>
+   <para>
+    You should prefer <varname>overrideAttrs</varname> in almost all cases, see
+    its documentation for the reasons why.
+    <varname>overrideDerivation</varname> is not deprecated and will continue
+    to work, but is less nice to use and does not have as many abilities as
+    <varname>overrideAttrs</varname>.
+   </para>
+  </warning>
+
+  <warning>
+   <para>
+    Do not use this function in Nixpkgs as it evaluates a Derivation before
+    modifying it, which breaks package abstraction and removes error-checking
+    of function arguments. In addition, this evaluation-per-function
+    application incurs a performance penalty, which can become a problem if
+    many overrides are used. It is only intended for ad-hoc customisation, such
+    as in <filename>~/.config/nixpkgs/config.nix</filename>.
+   </para>
+  </warning>
+
+  <para>
+   The function <varname>overrideDerivation</varname> creates a new derivation
+   based on an existing one by overriding the original's attributes with the
+   attribute set produced by the specified function. This function is available
+   on all derivations defined using the <varname>makeOverridable</varname>
+   function. Most standard derivation-producing functions, such as
+   <varname>stdenv.mkDerivation</varname>, are defined using this function,
+   which means most packages in the nixpkgs expression,
+   <varname>pkgs</varname>, have this function.
+  </para>
+
+  <para>
+   Example usage:
+<programlisting>
+mySed = pkgs.gnused.overrideDerivation (oldAttrs: {
+  name = "sed-4.2.2-pre";
+  src = fetchurl {
+    url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2;
+    sha256 = "11nq06d131y4wmf3drm0yk502d2xc6n5qy82cg88rb9nqd2lj41k";
+  };
+  patches = [];
+});
+</programlisting>
+  </para>
+
+  <para>
+   In the above example, the <varname>name</varname>, <varname>src</varname>,
+   and <varname>patches</varname> of the derivation will be overridden, while
+   all other attributes will be retained from the original derivation.
+  </para>
+
+  <para>
+   The argument <varname>oldAttrs</varname> is used to refer to the attribute
+   set of the original derivation.
+  </para>
+
+  <note>
+   <para>
+    A package's attributes are evaluated *before* being modified by the
+    <varname>overrideDerivation</varname> function. For example, the
+    <varname>name</varname> attribute reference in <varname>url =
+    "mirror://gnu/hello/${name}.tar.gz";</varname> is filled-in *before* the
+    <varname>overrideDerivation</varname> function modifies the attribute set.
+    This means that overriding the <varname>name</varname> attribute, in this
+    example, *will not* change the value of the <varname>url</varname>
+    attribute. Instead, we need to override both the <varname>name</varname>
+    *and* <varname>url</varname> attributes.
+   </para>
+  </note>
+ </section>
+
+ <section xml:id="sec-lib-makeOverridable">
+  <title>lib.makeOverridable</title>
+
+  <para>
+   The function <varname>lib.makeOverridable</varname> is used to make the
+   result of a function easily customizable. This utility only makes sense for
+   functions that accept an argument set and return an attribute set.
+  </para>
+
+  <para>
+   Example usage:
+<programlisting>
+f = { a, b }: { result = a+b; };
+c = lib.makeOverridable f { a = 1; b = 2; };
+</programlisting>
+  </para>
+
+  <para>
+   The variable <varname>c</varname> is the value of the <varname>f</varname>
+   function applied with some default arguments. Hence the value of
+   <varname>c.result</varname> is <literal>3</literal>, in this example.
+  </para>
+
+  <para>
+   The variable <varname>c</varname> however also has some additional
+   functions, like <link linkend="sec-pkg-override">c.override</link> which can
+   be used to override the default arguments. In this example the value of
+   <varname>(c.override { a = 4; }).result</varname> is 6.
+  </para>
+ </section>
+</section>
diff --git a/doc/functions/shell.xml b/doc/functions/shell.xml
new file mode 100644
index 000000000000..e5031c9463c0
--- /dev/null
+++ b/doc/functions/shell.xml
@@ -0,0 +1,26 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xml:id="sec-pkgs-mkShell">
+ <title>pkgs.mkShell</title>
+
+ <para>
+  <function>pkgs.mkShell</function> is a special kind of derivation that is
+  only useful when using it combined with <command>nix-shell</command>. It will
+  in fact fail to instantiate when invoked with <command>nix-build</command>.
+ </para>
+
+ <section xml:id="sec-pkgs-mkShell-usage">
+  <title>Usage</title>
+
+<programlisting><![CDATA[
+{ pkgs ? import <nixpkgs> {} }:
+pkgs.mkShell {
+  # this will make all the build inputs from hello and gnutar
+  # available to the shell environment
+  inputsFrom = with pkgs; [ hello gnutar ];
+  buildInputs = [ pkgs.gnumake ];
+}
+]]></programlisting>
+ </section>
+</section>
diff --git a/doc/lib-function-locations.nix b/doc/lib-function-locations.nix
new file mode 100644
index 000000000000..ae7036e46264
--- /dev/null
+++ b/doc/lib-function-locations.nix
@@ -0,0 +1,85 @@
+{ pkgs ? (import ./.. { }), nixpkgs ? { }}:
+let
+  revision = pkgs.lib.trivial.revisionWithDefault (nixpkgs.revision or "master");
+
+  libDefPos = set:
+    builtins.map
+      (name: {
+        name = name;
+        location = builtins.unsafeGetAttrPos name set;
+      })
+      (builtins.attrNames set);
+
+  libset = toplib:
+    builtins.map
+      (subsetname: {
+        subsetname = subsetname;
+        functions = libDefPos toplib."${subsetname}";
+      })
+      (builtins.filter
+        (name: builtins.isAttrs toplib."${name}")
+        (builtins.attrNames toplib));
+
+  nixpkgsLib = pkgs.lib;
+
+  flattenedLibSubset = { subsetname, functions }:
+  builtins.map
+    (fn: {
+      name = "lib.${subsetname}.${fn.name}";
+      value = fn.location;
+    })
+    functions;
+
+  locatedlibsets = libs: builtins.map flattenedLibSubset (libset libs);
+  removeFilenamePrefix = prefix: filename:
+    let
+    prefixLen = (builtins.stringLength prefix) + 1; # +1 to remove the leading /
+      filenameLen = builtins.stringLength filename;
+      substr = builtins.substring prefixLen filenameLen filename;
+      in substr;
+
+  removeNixpkgs = removeFilenamePrefix (builtins.toString pkgs.path);
+
+  liblocations =
+    builtins.filter
+      (elem: elem.value != null)
+      (nixpkgsLib.lists.flatten
+        (locatedlibsets nixpkgsLib));
+
+  fnLocationRelative = { name, value }:
+    {
+      inherit name;
+      value = value // { file = removeNixpkgs value.file; };
+    };
+
+  relativeLocs = (builtins.map fnLocationRelative liblocations);
+  sanitizeId = builtins.replaceStrings
+    [ "'"      ]
+    [ "-prime" ];
+
+  urlPrefix = "https://github.com/NixOS/nixpkgs/blob/${revision}";
+  xmlstrings = (nixpkgsLib.strings.concatMapStrings
+      ({ name, value }:
+      ''
+      <section><title>${name}</title>
+        <para xml:id="${sanitizeId name}">
+        Located at
+        <link
+          xlink:href="${urlPrefix}/${value.file}#L${builtins.toString value.line}">${value.file}:${builtins.toString value.line}</link>
+        in  <literal>&lt;nixpkgs&gt;</literal>.
+        </para>
+        </section>
+      '')
+      relativeLocs);
+
+in pkgs.writeText
+    "locations.xml"
+    ''
+    <section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         version="5">
+         <title>All the locations for every lib function</title>
+         <para>This file is only for inclusion by other files.</para>
+         ${xmlstrings}
+    </section>
+    ''
diff --git a/doc/package-notes.xml b/doc/package-notes.xml
index a4322a0234d3..0543e06a05d4 100644
--- a/doc/package-notes.xml
+++ b/doc/package-notes.xml
@@ -668,8 +668,9 @@ overrides = self: super: rec {
     plugins = with availablePlugins; [ python perl ];
   }
 }</programlisting>
-    If the <literal>configure</literal> function returns an attrset without the <literal>plugins</literal>
-    attribute, <literal>availablePlugins</literal> will be used automatically.
+   If the <literal>configure</literal> function returns an attrset without the
+   <literal>plugins</literal> attribute, <literal>availablePlugins</literal>
+   will be used automatically.
   </para>
 
   <para>
@@ -703,9 +704,11 @@ overrides = self: super: rec {
 }; }
 </programlisting>
   </para>
+
   <para>
-    WeeChat allows to set defaults on startup using the <literal>--run-command</literal>.
-    The <literal>configure</literal> method can be used to pass commands to the program:
+   WeeChat allows to set defaults on startup using the
+   <literal>--run-command</literal>. The <literal>configure</literal> method
+   can be used to pass commands to the program:
 <programlisting>weechat.override {
   configure = { availablePlugins, ... }: {
     init = ''
@@ -714,12 +717,14 @@ overrides = self: super: rec {
     '';
   };
 }</programlisting>
-    Further values can be added to the list of commands when running
-    <literal>weechat --run-command "your-commands"</literal>.
+   Further values can be added to the list of commands when running
+   <literal>weechat --run-command "your-commands"</literal>.
   </para>
+
   <para>
-    Additionally it's possible to specify scripts to be loaded when starting <literal>weechat</literal>.
-    These will be loaded before the commands from <literal>init</literal>:
+   Additionally it's possible to specify scripts to be loaded when starting
+   <literal>weechat</literal>. These will be loaded before the commands from
+   <literal>init</literal>:
 <programlisting>weechat.override {
   configure = { availablePlugins, ... }: {
     scripts = with pkgs.weechatScripts; [
@@ -731,11 +736,13 @@ overrides = self: super: rec {
   };
 }</programlisting>
   </para>
+
   <para>
-    In <literal>nixpkgs</literal> there's a subpackage which contains derivations for
-    WeeChat scripts. Such derivations expect a <literal>passthru.scripts</literal> attribute
-    which contains a list of all scripts inside the store path. Furthermore all scripts
-    have to live in <literal>$out/share</literal>. An exemplary derivation looks like this:
+   In <literal>nixpkgs</literal> there's a subpackage which contains
+   derivations for WeeChat scripts. Such derivations expect a
+   <literal>passthru.scripts</literal> attribute which contains a list of all
+   scripts inside the store path. Furthermore all scripts have to live in
+   <literal>$out/share</literal>. An exemplary derivation looks like this:
 <programlisting>{ stdenv, fetchurl }:
 
 stdenv.mkDerivation {
@@ -814,20 +821,26 @@ citrix_receiver.override {
  <section xml:id="sec-ibus-typing-booster">
   <title>ibus-engines.typing-booster</title>
 
-  <para>This package is an ibus-based completion method to speed up typing.</para>
+  <para>
+   This package is an ibus-based completion method to speed up typing.
+  </para>
 
   <section xml:id="sec-ibus-typing-booster-activate">
    <title>Activating the engine</title>
 
    <para>
-    IBus needs to be configured accordingly to activate <literal>typing-booster</literal>. The configuration
-    depends on the desktop manager in use. For detailed instructions, please refer to the
-    <link xlink:href="https://mike-fabian.github.io/ibus-typing-booster/documentation.html">upstream docs</link>.
+    IBus needs to be configured accordingly to activate
+    <literal>typing-booster</literal>. The configuration depends on the desktop
+    manager in use. For detailed instructions, please refer to the
+    <link xlink:href="https://mike-fabian.github.io/ibus-typing-booster/documentation.html">upstream
+    docs</link>.
    </para>
+
    <para>
-    On NixOS you need to explicitly enable <literal>ibus</literal> with given engines
-    before customizing your desktop to use <literal>typing-booster</literal>. This can be achieved
-    using the <literal>ibus</literal> module:
+    On NixOS you need to explicitly enable <literal>ibus</literal> with given
+    engines before customizing your desktop to use
+    <literal>typing-booster</literal>. This can be achieved using the
+    <literal>ibus</literal> module:
 <programlisting>{ pkgs, ... }: {
   i18n.inputMethod = {
     enabled = "ibus";
@@ -841,17 +854,20 @@ citrix_receiver.override {
    <title>Using custom hunspell dictionaries</title>
 
    <para>
-    The IBus engine is based on <literal>hunspell</literal> to support completion in many languages.
-    By default the dictionaries <literal>de-de</literal>, <literal>en-us</literal>, <literal>es-es</literal>,
-    <literal>it-it</literal>, <literal>sv-se</literal> and <literal>sv-fi</literal>
-    are in use. To add another dictionary, the package can be overridden like this:
+    The IBus engine is based on <literal>hunspell</literal> to support
+    completion in many languages. By default the dictionaries
+    <literal>de-de</literal>, <literal>en-us</literal>,
+    <literal>es-es</literal>, <literal>it-it</literal>,
+    <literal>sv-se</literal> and <literal>sv-fi</literal> are in use. To add
+    another dictionary, the package can be overridden like this:
 <programlisting>ibus-engines.typing-booster.override {
   langs = [ "de-at" "en-gb" ];
 }</programlisting>
    </para>
+
    <para>
-     <emphasis>Note: each language passed to <literal>langs</literal> must be an attribute name in
-     <literal>pkgs.hunspellDicts</literal>.</emphasis>
+    <emphasis>Note: each language passed to <literal>langs</literal> must be an
+    attribute name in <literal>pkgs.hunspellDicts</literal>.</emphasis>
    </para>
   </section>
 
@@ -859,10 +875,12 @@ citrix_receiver.override {
    <title>Built-in emoji picker</title>
 
    <para>
-    The <literal>ibus-engines.typing-booster</literal> package contains a program
-    named <literal>emoji-picker</literal>. To display all emojis correctly,
-    a special font such as <literal>noto-fonts-emoji</literal> is needed:
+    The <literal>ibus-engines.typing-booster</literal> package contains a
+    program named <literal>emoji-picker</literal>. To display all emojis
+    correctly, a special font such as <literal>noto-fonts-emoji</literal> is
+    needed:
    </para>
+
    <para>
     On NixOS it can be installed using the following expression:
 <programlisting>{ pkgs, ... }: {
diff --git a/doc/shell.nix b/doc/shell.nix
index 24fe20e81050..8ac2019f9d66 100644
--- a/doc/shell.nix
+++ b/doc/shell.nix
@@ -1,5 +1,5 @@
 { pkgs ? import ../. {} }:
-(import ./default.nix).overrideAttrs (x: {
+(import ./default.nix {}).overrideAttrs (x: {
   buildInputs = x.buildInputs ++ [ pkgs.xmloscopy pkgs.ruby ];
 
 })
diff --git a/doc/shell.section.md b/doc/shell.section.md
deleted file mode 100644
index cb8832a814fc..000000000000
--- a/doc/shell.section.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: pkgs.mkShell
-author: zimbatm
-date: 2017-10-30
----
-
-# mkShell
-
-pkgs.mkShell is a special kind of derivation that is only useful when using
-it combined with nix-shell. It will in fact fail to instantiate when invoked
-with nix-build.
-
-## Usage
-
-```nix
-{ pkgs ? import <nixpkgs> {} }:
-pkgs.mkShell {
-  # this will make all the build inputs from hello and gnutar available to the shell environment
-  inputsFrom = with pkgs; [ hello gnutar ];
-  buildInputs = [ pkgs.gnumake ];
-}
-```
diff --git a/lib/options.nix b/lib/options.nix
index 01160b48ec01..0e3421175306 100644
--- a/lib/options.nix
+++ b/lib/options.nix
@@ -8,7 +8,31 @@ with lib.strings;
 
 rec {
 
+  # Returns true when the given argument is an option
+  #
+  # Examples:
+  #   isOption 1             // => false
+  #   isOption (mkOption {}) // => true
   isOption = lib.isType "option";
+
+  # Creates an Option attribute set. mkOption accepts an attribute set with the following keys:
+  #
+  #  default:     Default value used when no definition is given in the configuration.
+  #  defaultText: Textual representation of the default, for in the manual.
+  #  example:     Example value used in the manual.
+  #  description: String describing the option.
+  #  type:        Option type, providing type-checking and value merging.
+  #  apply:       Function that converts the option value to something else.
+  #  internal:    Whether the option is for NixOS developers only.
+  #  visible:     Whether the option shows up in the manual.
+  #  readOnly:    Whether the option can be set only once
+  #  options:     Obsolete, used by types.optionSet.
+  #
+  # All keys default to `null` when not given.
+  #
+  # Examples:
+  #   mkOption { }  // => { _type = "option"; }
+  #   mkOption { defaultText = "foo"; } // => { _type = "option"; defaultText = "foo"; }
   mkOption =
     { default ? null # Default value used when no definition is given in the configuration.
     , defaultText ? null # Textual representation of the default, for in the manual.
@@ -24,6 +48,10 @@ rec {
     } @ attrs:
     attrs // { _type = "option"; };
 
+  # Creates a Option attribute set for a boolean value option i.e an option to be toggled on or off:
+  #
+  # Examples:
+  #   mkEnableOption "foo" // => { _type = "option"; default = false; description = "Whether to enable foo."; example = true; type = { ... }; }
   mkEnableOption = name: mkOption {
     default = false;
     example = true;
@@ -74,7 +102,18 @@ rec {
       else
         val) (head defs).value defs;
 
+  # Extracts values of all "value" keys of the given list
+  #
+  # Examples:
+  #   getValues [ { value = 1; } { value = 2; } ] // => [ 1 2 ]
+  #   getValues [ ]                               // => [ ]
   getValues = map (x: x.value);
+
+  # Extracts values of all "file" keys of the given list
+  #
+  # Examples:
+  #   getFiles [ { file = "file1"; } { file = "file2"; } ] // => [ "file1" "file2" ]
+  #   getFiles [ ]                                         // => [ ]
   getFiles = map (x: x.file);
 
   # Generate documentation template from the list of option declaration like
diff --git a/lib/sources.nix b/lib/sources.nix
index 704711b20cd9..e64b23414e86 100644
--- a/lib/sources.nix
+++ b/lib/sources.nix
@@ -26,6 +26,10 @@ rec {
     (type == "symlink" && lib.hasPrefix "result" baseName)
   );
 
+  # Filters a source tree removing version control files and directories using cleanSourceWith
+  #
+  # Example:
+  #          cleanSource ./.
   cleanSource = src: cleanSourceWith { filter = cleanSourceFilter; inherit src; };
 
   # Like `builtins.filterSource`, except it will compose with itself,
diff --git a/lib/trivial.nix b/lib/trivial.nix
index b1eea0bf1247..938df6ced476 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -105,6 +105,16 @@ rec {
     then lib.strings.fileContents suffixFile
     else "pre-git";
 
+  # Attempt to get the revision nixpkgs is from
+  revisionWithDefault = default:
+    let
+      revisionFile = "${toString ./..}/.git-revision";
+      gitRepo      = "${toString ./..}/.git";
+    in if lib.pathIsDirectory gitRepo
+       then lib.commitIdFromGitRepo gitRepo
+       else if lib.pathExists revisionFile then lib.fileContents revisionFile
+       else default;
+
   nixpkgsVersion = builtins.trace "`lib.nixpkgsVersion` is deprecated, use `lib.version` instead!" version;
 
   # Whether we're being called by nix-shell.
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 3b7329a8d790..ba87e16a7d4c 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1135,6 +1135,11 @@
     github = "dtzWill";
     name = "Will Dietz";
   };
+  dysinger = {
+    email = "tim@dysinger.net";
+    github = "dysinger";
+    name = "Tim Dysinger";
+  };
   dywedir = {
     email = "dywedir@protonmail.ch";
     github = "dywedir";
@@ -2199,6 +2204,11 @@
     github = "krav";
     name = "Kristoffer Thømt Ravneberg";
   };
+  kroell = {
+    email = "nixosmainter@makroell.de";
+    github = "rokk4";
+    name = "Matthias Axel Kröll";
+  };
   kristoff3r = {
     email = "k.soeholm@gmail.com";
     github = "kristoff3r";
@@ -2442,6 +2452,11 @@
     github = "ma27";
     name = "Maximilian Bosch";
   };
+  ma9e = {
+    email = "sean@lfo.team";
+    github = "ma9e";
+    name = "Sean Haugh";
+  };
   madjar = {
     email = "georges.dubus@compiletoi.net";
     github = "madjar";
@@ -3105,6 +3120,11 @@
     github = "oyren";
     name = "Moritz Scheuren";
   };
+  pacien = {
+    email = "b4gx3q.nixpkgs@pacien.net";
+    github = "pacien";
+    name = "Pacien Tran-Girard";
+  };
   paholg = {
     email = "paho@paholg.com";
     github = "paholg";
@@ -3314,6 +3334,11 @@
     github = "proglodyte";
     name = "Proglodyte";
   };
+  prusnak = {
+    email = "stick@gk2.sk";
+    github = "prusnak";
+    name = "Pavol Rusnak";
+  };
   pshendry = {
     email = "paul@pshendry.com";
     github = "pshendry";
@@ -4312,6 +4337,11 @@
     github = "uri-canva";
     name = "Uri Baghin";
   };
+  uskudnik = {
+    email = "urban.skudnik@gmail.com";
+    github = "uskudnik";
+    name = "Urban Skudnik";
+  };
   utdemir = {
     email = "me@utdemir.com";
     github = "utdemir";
diff --git a/nixos/doc/manual/Makefile b/nixos/doc/manual/Makefile
index 2e9adf70c396..b251a1f5e2c3 100644
--- a/nixos/doc/manual/Makefile
+++ b/nixos/doc/manual/Makefile
@@ -4,7 +4,7 @@ all: manual-combined.xml format
 .PHONY: debug
 debug: generated manual-combined.xml
 
-manual-combined.xml: generated *.xml
+manual-combined.xml: generated *.xml **/*.xml
 	rm -f ./manual-combined.xml
 	nix-shell --packages xmloscopy \
 		--run "xmloscopy --docbook5 ./manual.xml ./manual-combined.xml"
diff --git a/nixos/doc/manual/installation/installing-usb.xml b/nixos/doc/manual/installation/installing-usb.xml
index c5934111749c..0b311189430c 100644
--- a/nixos/doc/manual/installation/installing-usb.xml
+++ b/nixos/doc/manual/installation/installing-usb.xml
@@ -9,13 +9,12 @@
   For systems without CD drive, the NixOS live CD can be booted from a USB
   stick. You can use the <command>dd</command> utility to write the image:
   <command>dd if=<replaceable>path-to-image</replaceable>
-  of=<replaceable>/dev/sdb</replaceable></command>. Be careful about specifying
+  of=<replaceable>/dev/sdX</replaceable></command>. Be careful about specifying
   the correct drive; you can use the <command>lsblk</command> command to get a
   list of block devices.
- </para>
-
- <para>
-  On macOS:
+  <note>
+   <title>On macOS</title>
+   <para>
 <programlisting>
 $ diskutil list
 [..]
@@ -26,43 +25,16 @@ $ diskutil unmountDisk diskN
 Unmount of all volumes on diskN was successful
 $ sudo dd bs=1m if=nix.iso of=/dev/rdiskN
 </programlisting>
-  Using the 'raw' <command>rdiskN</command> device instead of
-  <command>diskN</command> completes in minutes instead of hours. After
-  <command>dd</command> completes, a GUI dialog "The disk you inserted was not
-  readable by this computer" will pop up, which can be ignored.
+    Using the 'raw' <command>rdiskN</command> device instead of
+    <command>diskN</command> completes in minutes instead of hours. After
+    <command>dd</command> completes, a GUI dialog "The disk you inserted was
+    not readable by this computer" will pop up, which can be ignored.
+   </para>
+  </note>
  </para>
 
  <para>
   The <command>dd</command> utility will write the image verbatim to the drive,
   making it the recommended option for both UEFI and non-UEFI installations.
-  For non-UEFI installations, you can alternatively use
-  <link xlink:href="http://unetbootin.sourceforge.net/">unetbootin</link>. If
-  you cannot use <command>dd</command> for a UEFI installation, you can also
-  mount the ISO, copy its contents verbatim to your drive, then either:
-  <itemizedlist>
-   <listitem>
-    <para>
-     Change the label of the disk partition to the label of the ISO (visible
-     with the blkid command), or
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Edit <filename>loader/entries/nixos-livecd.conf</filename> on the drive
-     and change the <literal>root=</literal> field in the
-     <literal>options</literal> line to point to your drive (see the
-     documentation on <literal>root=</literal> in
-     <link xlink:href="https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt">
-     the kernel documentation</link> for more details).
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     If you want to load the contents of the ISO to ram after bootin (So you
-     can remove the stick after bootup) you can append the parameter
-     <literal>copytoram</literal> to the <literal>options</literal> field.
-    </para>
-   </listitem>
-  </itemizedlist>
  </para>
 </section>
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml
index 1366e8f93596..2b68def95b70 100644
--- a/nixos/doc/manual/installation/installing.xml
+++ b/nixos/doc/manual/installation/installing.xml
@@ -4,60 +4,46 @@
             version="5.0"
             xml:id="sec-installation">
  <title>Installing NixOS</title>
- <para>
-  NixOS can be installed on BIOS or UEFI systems. The procedure for a UEFI
-  installation is by and large the same as a BIOS installation. The differences
-  are mentioned in the steps that follow.
- </para>
- <orderedlist>
-  <listitem>
-   <para>
-    Boot from the CD.
-   </para>
-   <variablelist>
-    <varlistentry>
-     <term>
-      UEFI systems
-     </term>
-     <listitem>
-      <para>
-       You should boot the live CD in UEFI mode (consult your specific
-       hardware's documentation for instructions). You may find the
-       <link xlink:href="http://www.rodsbooks.com/refind">rEFInd boot
-       manager</link> useful.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </listitem>
-  <listitem>
-   <para>
-    The CD contains a basic NixOS installation. (It also contains Memtest86+,
-    useful if you want to test new hardware). When it’s finished booting, it
-    should have detected most of your hardware.
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    The NixOS manual is available on virtual console 8 (press Alt+F8 to access)
-    or by running <command>nixos-help</command>.
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    You get logged in as <literal>root</literal> (with empty password).
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    If you downloaded the graphical ISO image, you can run <command>systemctl
-    start display-manager</command> to start KDE. If you want to continue on
-    the terminal, you can use <command>loadkeys</command> to switch to your
-    preferred keyboard layout. (We even provide neo2 via <command>loadkeys de
-    neo</command>!)
-   </para>
-  </listitem>
-  <listitem>
+ <section xml:id="sec-installation-booting">
+  <title>Booting the system</title>
+
+  <para>
+   NixOS can be installed on BIOS or UEFI systems. The procedure for a UEFI
+   installation is by and large the same as a BIOS installation. The
+   differences are mentioned in the steps that follow.
+  </para>
+
+  <para>
+   The installation media can be burned to a CD, or now more commonly, "burned"
+   to a USB drive (see <xref linkend="sec-booting-from-usb"/>).
+  </para>
+
+  <para>
+   The installation media contains a basic NixOS installation. When it’s
+   finished booting, it should have detected most of your hardware.
+  </para>
+
+  <para>
+   The NixOS manual is available on virtual console 8 (press Alt+F8 to access)
+   or by running <command>nixos-help</command>.
+  </para>
+
+  <para>
+   You are logged-in automatically as <literal>root</literal>. (The
+   <literal>root</literal> user account has an empty password.)
+  </para>
+
+  <para>
+   If you downloaded the graphical ISO image, you can run <command>systemctl
+   start display-manager</command> to start KDE. If you want to continue on the
+   terminal, you can use <command>loadkeys</command> to switch to your
+   preferred keyboard layout. (We even provide neo2 via <command>loadkeys de
+   neo</command>!)
+  </para>
+
+  <section xml:id="sec-installation-booting-networking">
+   <title>Networking in the installer</title>
+
    <para>
     The boot process should have brought up networking (check <command>ip
     a</command>). Networking is necessary for the installer, since it will
@@ -65,60 +51,167 @@
     binaries). It’s best if you have a DHCP server on your network. Otherwise
     configure networking manually using <command>ifconfig</command>.
    </para>
+
    <para>
     To manually configure the network on the graphical installer, first disable
     network-manager with <command>systemctl stop network-manager</command>.
    </para>
+
    <para>
     To manually configure the wifi on the minimal installer, run
     <command>wpa_supplicant -B -i interface -c &lt;(wpa_passphrase 'SSID'
     'key')</command>.
    </para>
-  </listitem>
-  <listitem>
+
    <para>
     If you would like to continue the installation from a different machine you
     need to activate the SSH daemon via <literal>systemctl start
     sshd</literal>. In order to be able to login you also need to set a
     password for <literal>root</literal> using <literal>passwd</literal>.
    </para>
-  </listitem>
-  <listitem>
+  </section>
+ </section>
+ <section xml:id="sec-installation-partitioning">
+  <title>Partitioning and formatting</title>
+
+  <para>
+   The NixOS installer doesn’t do any partitioning or formatting, so you need
+   to do that yourself.
+  </para>
+
+  <para>
+   The NixOS installer ships with multiple partitioning tools. The examples
+   below use <command>parted</command>, but also provides
+   <command>fdisk</command>, <command>gdisk</command>,
+   <command>cfdisk</command>, and <command>cgdisk</command>.
+  </para>
+
+  <para>
+   The recommended partition scheme differs depending if the computer uses
+   <emphasis>Legacy Boot</emphasis> or <emphasis>UEFI</emphasis>.
+  </para>
+
+  <section xml:id="sec-installation-partitioning-UEFI">
+   <title>UEFI (GPT)</title>
+
    <para>
-    The NixOS installer doesn’t do any partitioning or formatting yet, so you
-    need to do that yourself. Use the following commands:
-    <itemizedlist>
+    Here's an example partition scheme for UEFI, using
+    <filename>/dev/sda</filename> as the device.
+    <note>
+     <para>
+      You can safely ignore <command>parted</command>'s informational message
+      about needing to update /etc/fstab.
+     </para>
+    </note>
+   </para>
+
+   <para>
+    <orderedlist>
      <listitem>
       <para>
-       For partitioning: <command>fdisk</command>.
-<screen>
-# fdisk /dev/sda # <lineannotation>(or whatever device you want to install on)</lineannotation>
--- for UEFI systems only
-> n      # <lineannotation>(create a new partition for /boot)</lineannotation>
-> 3      # <lineannotation>(make it a partition number 3)</lineannotation>
->        # <lineannotation>(press enter to accept the default)</lineannotation>
-> +512M  # <lineannotation>(the size of the UEFI boot partition)</lineannotation>
-> t      # <lineannotation>(change the partition type ...)</lineannotation>
-> 3      # <lineannotation>(... of the boot partition ...)</lineannotation>
-> 1      # <lineannotation>(... to 'UEFI System')</lineannotation>
--- for BIOS or UEFI systems
-> n      # <lineannotation>(create a new partition for /swap)</lineannotation>
-> 2      # <lineannotation>(make it a partition number 2)</lineannotation>
->        # <lineannotation>(press enter to accept the default)</lineannotation>
-> +8G    # <lineannotation>(the size of the swap partition, set to whatever you like)</lineannotation>
-> n      # <lineannotation>(create a new partition for /)</lineannotation>
-> 1      # <lineannotation>(make it a partition number 1)</lineannotation>
->        # <lineannotation>(press enter to accept the default)</lineannotation>
->        # <lineannotation>(press enter to accept the default and use the rest of the remaining space)</lineannotation>
-> a      # <lineannotation>(make the partition bootable)</lineannotation>
-> x      # <lineannotation>(enter expert mode)</lineannotation>
-> f      # <lineannotation>(fix up the partition ordering)</lineannotation>
-> r      # <lineannotation>(exit expert mode)</lineannotation>
-> w      # <lineannotation>(write the partition table to disk and exit)</lineannotation></screen>
+       Create a <emphasis>GPT</emphasis> partition table.
+<screen language="commands"># parted /dev/sda -- mklabel gpt</screen>
       </para>
      </listitem>
      <listitem>
       <para>
+       Add a <emphasis>swap</emphasis> partition. The size required will vary
+       according to needs, here a 8GiB one is created. The space left in front
+       (512MiB) will be used by the boot partition.
+<screen language="commands"># parted /dev/sda -- mkpart primary linux-swap 512MiB 8.5GiB</screen>
+       <note>
+        <para>
+         The swap partition size rules are no different than for other Linux
+         distributions.
+        </para>
+       </note>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       Next, add the <emphasis>root</emphasis> partition. This will fill the
+       remainder ending part of the disk.
+<screen language="commands"># parted /dev/sda -- mkpart primary 8.5GiB -1MiB</screen>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       Finally, the <emphasis>boot</emphasis> partition. NixOS by default uses
+       the ESP (EFI system partition) as its <emphasis>/boot</emphasis>
+       partition. It uses the initially reserved 512MiB at the start of the
+       disk.
+<screen language="commands"># parted /dev/sda -- mkpart ESP fat32 1M 512MiB
+# parted /dev/sda -- set 3 boot on</screen>
+      </para>
+     </listitem>
+    </orderedlist>
+   </para>
+
+   <para>
+    Once complete, you can follow with
+    <xref linkend="sec-installation-partitioning-formatting"/>.
+   </para>
+  </section>
+
+  <section xml:id="sec-installation-partitioning-MBR">
+   <title>Legacy Boot (MBR)</title>
+
+   <para>
+    Here's an example partition scheme for Legacy Boot, using
+    <filename>/dev/sda</filename> as the device.
+    <note>
+     <para>
+      You can safely ignore <command>parted</command>'s informational message
+      about needing to update /etc/fstab.
+     </para>
+    </note>
+   </para>
+
+   <para>
+    <orderedlist>
+     <listitem>
+      <para>
+       Create a <emphasis>MBR</emphasis> partition table.
+<screen language="commands"># parted /dev/sda -- mklabel msdos</screen>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       Add a <emphasis>swap</emphasis> partition. The size required will vary
+       according to needs, here a 8GiB one is created.
+<screen language="commands"># parted /dev/sda -- mkpart primary linux-swap 1M 8GiB</screen>
+       <note>
+        <para>
+         The swap partition size rules are no different than for other Linux
+         distributions.
+        </para>
+       </note>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       Finally, add the <emphasis>root</emphasis> partition. This will fill the
+       remainder of the disk.
+<screen language="commands"># parted /dev/sda -- mkpart primary 8GiB -1s</screen>
+      </para>
+     </listitem>
+    </orderedlist>
+   </para>
+
+   <para>
+    Once complete, you can follow with
+    <xref linkend="sec-installation-partitioning-formatting"/>.
+   </para>
+  </section>
+
+  <section xml:id="sec-installation-partitioning-formatting">
+   <title>Formatting</title>
+
+   <para>
+    Use the following commands:
+    <itemizedlist>
+     <listitem>
+      <para>
        For initialising Ext4 partitions: <command>mkfs.ext4</command>. It is
        recommended that you assign a unique symbolic label to the file system
        using the option <option>-L <replaceable>label</replaceable></option>,
@@ -169,242 +262,249 @@
      </listitem>
     </itemizedlist>
    </para>
-  </listitem>
-  <listitem>
-   <para>
-    Mount the target file system on which NixOS should be installed on
-    <filename>/mnt</filename>, e.g.
+  </section>
+ </section>
+ <section xml:id="sec-installation-installing">
+  <title>Installing</title>
+
+  <orderedlist>
+   <listitem>
+    <para>
+     Mount the target file system on which NixOS should be installed on
+     <filename>/mnt</filename>, e.g.
 <screen>
 # mount /dev/disk/by-label/nixos /mnt
 </screen>
-   </para>
-  </listitem>
-  <listitem>
-   <variablelist>
-    <varlistentry>
-     <term>
-      UEFI systems
-     </term>
-     <listitem>
-      <para>
-       Mount the boot file system on <filename>/mnt/boot</filename>, e.g.
+    </para>
+   </listitem>
+   <listitem>
+    <variablelist>
+     <varlistentry>
+      <term>
+       UEFI systems
+      </term>
+      <listitem>
+       <para>
+        Mount the boot file system on <filename>/mnt/boot</filename>, e.g.
 <screen>
 # mkdir -p /mnt/boot
 # mount /dev/disk/by-label/boot /mnt/boot
 </screen>
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </listitem>
-  <listitem>
-   <para>
-    If your machine has a limited amount of memory, you may want to activate
-    swap devices now (<command>swapon
-    <replaceable>device</replaceable></command>). The installer (or rather, the
-    build actions that it may spawn) may need quite a bit of RAM, depending on
-    your configuration.
+       </para>
+      </listitem>
+     </varlistentry>
+    </variablelist>
+   </listitem>
+   <listitem>
+    <para>
+     If your machine has a limited amount of memory, you may want to activate
+     swap devices now (<command>swapon
+     <replaceable>device</replaceable></command>). The installer (or rather,
+     the build actions that it may spawn) may need quite a bit of RAM,
+     depending on your configuration.
 <screen>
 # swapon /dev/sda2</screen>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    You now need to create a file
-    <filename>/mnt/etc/nixos/configuration.nix</filename> that specifies the
-    intended configuration of the system. This is because NixOS has a
-    <emphasis>declarative</emphasis> configuration model: you create or edit a
-    description of the desired configuration of your system, and then NixOS
-    takes care of making it happen. The syntax of the NixOS configuration file
-    is described in <xref linkend="sec-configuration-syntax"/>, while a list of
-    available configuration options appears in
-    <xref
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     You now need to create a file
+     <filename>/mnt/etc/nixos/configuration.nix</filename> that specifies the
+     intended configuration of the system. This is because NixOS has a
+     <emphasis>declarative</emphasis> configuration model: you create or edit a
+     description of the desired configuration of your system, and then NixOS
+     takes care of making it happen. The syntax of the NixOS configuration file
+     is described in <xref linkend="sec-configuration-syntax"/>, while a list
+     of available configuration options appears in
+     <xref
     linkend="ch-options"/>. A minimal example is shown in
-    <xref
+     <xref
     linkend="ex-config"/>.
-   </para>
-   <para>
-    The command <command>nixos-generate-config</command> can generate an
-    initial configuration file for you:
+    </para>
+    <para>
+     The command <command>nixos-generate-config</command> can generate an
+     initial configuration file for you:
 <screen>
 # nixos-generate-config --root /mnt</screen>
-    You should then edit <filename>/mnt/etc/nixos/configuration.nix</filename>
-    to suit your needs:
+     You should then edit <filename>/mnt/etc/nixos/configuration.nix</filename>
+     to suit your needs:
 <screen>
 # nano /mnt/etc/nixos/configuration.nix
 </screen>
-    If you’re using the graphical ISO image, other editors may be available
-    (such as <command>vim</command>). If you have network access, you can also
-    install other editors — for instance, you can install Emacs by running
-    <literal>nix-env -i emacs</literal>.
-   </para>
-   <variablelist>
-    <varlistentry>
-     <term>
-      BIOS systems
-     </term>
-     <listitem>
-      <para>
-       You <emphasis>must</emphasis> set the option
-       <xref linkend="opt-boot.loader.grub.device"/> to specify on which disk
-       the GRUB boot loader is to be installed. Without it, NixOS cannot boot.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      UEFI systems
-     </term>
-     <listitem>
-      <para>
-       You <emphasis>must</emphasis> set the option
-       <xref linkend="opt-boot.loader.systemd-boot.enable"/> to
-       <literal>true</literal>. <command>nixos-generate-config</command> should
-       do this automatically for new configurations when booted in UEFI mode.
-      </para>
-      <para>
-       You may want to look at the options starting with
-       <option><link linkend="opt-boot.loader.efi.canTouchEfiVariables">boot.loader.efi</link></option>
-       and
-       <option><link linkend="opt-boot.loader.systemd-boot.enable">boot.loader.systemd</link></option>
-       as well.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-   <para>
-    If there are other operating systems running on the machine before
-    installing NixOS, the <xref linkend="opt-boot.loader.grub.useOSProber"/>
-    option can be set to <literal>true</literal> to automatically add them to
-    the grub menu.
-   </para>
-   <para>
-    Another critical option is <option>fileSystems</option>, specifying the
-    file systems that need to be mounted by NixOS. However, you typically
-    don’t need to set it yourself, because
-    <command>nixos-generate-config</command> sets it automatically in
-    <filename>/mnt/etc/nixos/hardware-configuration.nix</filename> from your
-    currently mounted file systems. (The configuration file
-    <filename>hardware-configuration.nix</filename> is included from
-    <filename>configuration.nix</filename> and will be overwritten by future
-    invocations of <command>nixos-generate-config</command>; thus, you
-    generally should not modify it.)
-   </para>
-   <note>
+     If you’re using the graphical ISO image, other editors may be available
+     (such as <command>vim</command>). If you have network access, you can also
+     install other editors — for instance, you can install Emacs by running
+     <literal>nix-env -i emacs</literal>.
+    </para>
+    <variablelist>
+     <varlistentry>
+      <term>
+       BIOS systems
+      </term>
+      <listitem>
+       <para>
+        You <emphasis>must</emphasis> set the option
+        <xref linkend="opt-boot.loader.grub.device"/> to specify on which disk
+        the GRUB boot loader is to be installed. Without it, NixOS cannot boot.
+       </para>
+      </listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>
+       UEFI systems
+      </term>
+      <listitem>
+       <para>
+        You <emphasis>must</emphasis> set the option
+        <xref linkend="opt-boot.loader.systemd-boot.enable"/> to
+        <literal>true</literal>. <command>nixos-generate-config</command>
+        should do this automatically for new configurations when booted in UEFI
+        mode.
+       </para>
+       <para>
+        You may want to look at the options starting with
+        <option><link linkend="opt-boot.loader.efi.canTouchEfiVariables">boot.loader.efi</link></option>
+        and
+        <option><link linkend="opt-boot.loader.systemd-boot.enable">boot.loader.systemd</link></option>
+        as well.
+       </para>
+      </listitem>
+     </varlistentry>
+    </variablelist>
     <para>
-     Depending on your hardware configuration or type of file system, you may
-     need to set the option <option>boot.initrd.kernelModules</option> to
-     include the kernel modules that are necessary for mounting the root file
-     system, otherwise the installed system will not be able to boot. (If this
-     happens, boot from the CD again, mount the target file system on
-     <filename>/mnt</filename>, fix
-     <filename>/mnt/etc/nixos/configuration.nix</filename> and rerun
-     <filename>nixos-install</filename>.) In most cases,
-     <command>nixos-generate-config</command> will figure out the required
-     modules.
+     If there are other operating systems running on the machine before
+     installing NixOS, the <xref linkend="opt-boot.loader.grub.useOSProber"/>
+     option can be set to <literal>true</literal> to automatically add them to
+     the grub menu.
     </para>
-   </note>
-  </listitem>
-  <listitem>
-   <para>
-    Do the installation:
+    <para>
+     Another critical option is <option>fileSystems</option>, specifying the
+     file systems that need to be mounted by NixOS. However, you typically
+     don’t need to set it yourself, because
+     <command>nixos-generate-config</command> sets it automatically in
+     <filename>/mnt/etc/nixos/hardware-configuration.nix</filename> from your
+     currently mounted file systems. (The configuration file
+     <filename>hardware-configuration.nix</filename> is included from
+     <filename>configuration.nix</filename> and will be overwritten by future
+     invocations of <command>nixos-generate-config</command>; thus, you
+     generally should not modify it.)
+    </para>
+    <note>
+     <para>
+      Depending on your hardware configuration or type of file system, you may
+      need to set the option <option>boot.initrd.kernelModules</option> to
+      include the kernel modules that are necessary for mounting the root file
+      system, otherwise the installed system will not be able to boot. (If this
+      happens, boot from the installation media again, mount the target file
+      system on <filename>/mnt</filename>, fix
+      <filename>/mnt/etc/nixos/configuration.nix</filename> and rerun
+      <filename>nixos-install</filename>.) In most cases,
+      <command>nixos-generate-config</command> will figure out the required
+      modules.
+     </para>
+    </note>
+   </listitem>
+   <listitem>
+    <para>
+     Do the installation:
 <screen>
 # nixos-install</screen>
-    Cross fingers. If this fails due to a temporary problem (such as a network
-    issue while downloading binaries from the NixOS binary cache), you can just
-    re-run <command>nixos-install</command>. Otherwise, fix your
-    <filename>configuration.nix</filename> and then re-run
-    <command>nixos-install</command>.
-   </para>
-   <para>
-    As the last step, <command>nixos-install</command> will ask you to set the
-    password for the <literal>root</literal> user, e.g.
+     Cross fingers. If this fails due to a temporary problem (such as a network
+     issue while downloading binaries from the NixOS binary cache), you can
+     just re-run <command>nixos-install</command>. Otherwise, fix your
+     <filename>configuration.nix</filename> and then re-run
+     <command>nixos-install</command>.
+    </para>
+    <para>
+     As the last step, <command>nixos-install</command> will ask you to set the
+     password for the <literal>root</literal> user, e.g.
 <screen>
 setting root password...
 Enter new UNIX password: ***
-Retype new UNIX password: ***
-    </screen>
-    <note>
-     <para>
-      For unattended installations, it is possible to use
-      <command>nixos-install --no-root-passwd</command> in order to disable the
-      password prompt entirely.
-     </para>
-    </note>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    If everything went well:
+Retype new UNIX password: ***</screen>
+     <note>
+      <para>
+       For unattended installations, it is possible to use
+       <command>nixos-install --no-root-passwd</command> in order to disable
+       the password prompt entirely.
+      </para>
+     </note>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     If everything went well:
 <screen>
-        # reboot</screen>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    You should now be able to boot into the installed NixOS. The GRUB boot menu
-    shows a list of <emphasis>available configurations</emphasis> (initially
-    just one). Every time you change the NixOS configuration (see
-    <link
+# reboot</screen>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     You should now be able to boot into the installed NixOS. The GRUB boot
+     menu shows a list of <emphasis>available configurations</emphasis>
+     (initially just one). Every time you change the NixOS configuration (see
+     <link
         linkend="sec-changing-config">Changing Configuration</link>
-    ), a new item is added to the menu. This allows you to easily roll back to
-    a previous configuration if something goes wrong.
-   </para>
-   <para>
-    You should log in and change the <literal>root</literal> password with
-    <command>passwd</command>.
-   </para>
-   <para>
-    You’ll probably want to create some user accounts as well, which can be
-    done with <command>useradd</command>:
+     ), a new item is added to the menu. This allows you to easily roll back to
+     a previous configuration if something goes wrong.
+    </para>
+    <para>
+     You should log in and change the <literal>root</literal> password with
+     <command>passwd</command>.
+    </para>
+    <para>
+     You’ll probably want to create some user accounts as well, which can be
+     done with <command>useradd</command>:
 <screen>
 $ useradd -c 'Eelco Dolstra' -m eelco
 $ passwd eelco</screen>
-   </para>
-   <para>
-    You may also want to install some software. For instance,
+    </para>
+    <para>
+     You may also want to install some software. For instance,
 <screen>
 $ nix-env -qa \*</screen>
-    shows what packages are available, and
+     shows what packages are available, and
 <screen>
 $ nix-env -i w3m</screen>
-    install the <literal>w3m</literal> browser.
-   </para>
-  </listitem>
- </orderedlist>
- <para>
-  To summarise, <xref linkend="ex-install-sequence" /> shows a typical sequence
-  of commands for installing NixOS on an empty hard drive (here
-  <filename>/dev/sda</filename>). <xref linkend="ex-config"
+     install the <literal>w3m</literal> browser.
+    </para>
+   </listitem>
+  </orderedlist>
+ </section>
+ <section xml:id="sec-installation-summary">
+  <title>Installation summary</title>
+
+  <para>
+   To summarise, <xref linkend="ex-install-sequence" /> shows a typical
+   sequence of commands for installing NixOS on an empty hard drive (here
+   <filename>/dev/sda</filename>). <xref linkend="ex-config"
 /> shows a
-  corresponding configuration Nix expression.
- </para>
- <example xml:id='ex-install-sequence'>
-  <title>Commands for Installing NixOS on <filename>/dev/sda</filename></title>
-<screen>
-# fdisk /dev/sda # <lineannotation>(or whatever device you want to install on)</lineannotation>
--- for UEFI systems only
-> n      # <lineannotation>(create a new partition for /boot)</lineannotation>
-> 3      # <lineannotation>(make it a partition number 3)</lineannotation>
->        # <lineannotation>(press enter to accept the default)</lineannotation>
-> +512M  # <lineannotation>(the size of the UEFI boot partition)</lineannotation>
-> t      # <lineannotation>(change the partition type ...)</lineannotation>
-> 3      # <lineannotation>(... of the boot partition ...)</lineannotation>
-> 1      # <lineannotation>(... to 'UEFI System')</lineannotation>
--- for BIOS or UEFI systems
-> n      # <lineannotation>(create a new partition for /swap)</lineannotation>
-> 2      # <lineannotation>(make it a partition number 2)</lineannotation>
->        # <lineannotation>(press enter to accept the default)</lineannotation>
-> +8G    # <lineannotation>(the size of the swap partition)</lineannotation>
-> n      # <lineannotation>(create a new partition for /)</lineannotation>
-> 1      # <lineannotation>(make it a partition number 1)</lineannotation>
->        # <lineannotation>(press enter to accept the default)</lineannotation>
->        # <lineannotation>(press enter to accept the default and use the rest of the remaining space)</lineannotation>
-> a      # <lineannotation>(make the partition bootable)</lineannotation>
-> x      # <lineannotation>(enter expert mode)</lineannotation>
-> f      # <lineannotation>(fix up the partition ordering)</lineannotation>
-> r      # <lineannotation>(exit expert mode)</lineannotation>
-> w      # <lineannotation>(write the partition table to disk and exit)</lineannotation>
+   corresponding configuration Nix expression.
+  </para>
+
+  <example xml:id="ex-partition-scheme-MBR">
+   <title>Example partition schemes for NixOS on <filename>/dev/sda</filename> (MBR)</title>
+<screen language="commands">
+# parted /dev/sda -- mklabel msdos
+# parted /dev/sda -- mkpart primary linux-swap 1M 8GiB
+# parted /dev/sda -- mkpart primary 8GiB -1s</screen>
+  </example>
+
+  <example xml:id="ex-partition-scheme-UEFI">
+   <title>Example partition schemes for NixOS on <filename>/dev/sda</filename> (UEFI)</title>
+<screen language="commands">
+# parted /dev/sda -- mklabel gpt
+# parted /dev/sda -- mkpart primary linux-swap 512MiB 8.5GiB
+# parted /dev/sda -- mkpart primary 8.5GiB -1MiB
+# parted /dev/sda -- mkpart ESP fat32 1M 512MiB
+# parted /dev/sda -- set 3 boot on</screen>
+  </example>
+
+  <example xml:id="ex-install-sequence">
+   <title>Commands for Installing NixOS on <filename>/dev/sda</filename></title>
+   <para>
+    With a partitioned disk.
+<screen language="commands">
 # mkfs.ext4 -L nixos /dev/sda1
 # mkswap -L swap /dev/sda2
 # swapon /dev/sda2
@@ -416,9 +516,11 @@ $ nix-env -i w3m</screen>
 # nano /mnt/etc/nixos/configuration.nix
 # nixos-install
 # reboot</screen>
- </example>
- <example xml:id='ex-config'>
-  <title>NixOS Configuration</title>
+   </para>
+  </example>
+
+  <example xml:id='ex-config'>
+   <title>NixOS Configuration</title>
 <screen>
 { config, pkgs, ... }: {
   imports = [
@@ -438,10 +540,19 @@ $ nix-env -i w3m</screen>
   services.sshd.enable = true;
 }
   </screen>
- </example>
- <xi:include href="installing-usb.xml" />
- <xi:include href="installing-pxe.xml" />
- <xi:include href="installing-virtualbox-guest.xml" />
- <xi:include href="installing-from-other-distro.xml" />
- <xi:include href="installing-behind-a-proxy.xml" />
+  </example>
+ </section>
+ <section xml:id="sec-installation-additional-notes">
+  <title>Additional installation notes</title>
+
+  <xi:include href="installing-usb.xml" />
+
+  <xi:include href="installing-pxe.xml" />
+
+  <xi:include href="installing-virtualbox-guest.xml" />
+
+  <xi:include href="installing-from-other-distro.xml" />
+
+  <xi:include href="installing-behind-a-proxy.xml" />
+ </section>
 </chapter>
diff --git a/nixos/doc/manual/release-notes/rl-1809.xml b/nixos/doc/manual/release-notes/rl-1809.xml
index f0797b51340d..c5521735428b 100644
--- a/nixos/doc/manual/release-notes/rl-1809.xml
+++ b/nixos/doc/manual/release-notes/rl-1809.xml
@@ -3,7 +3,7 @@
          xmlns:xi="http://www.w3.org/2001/XInclude"
          version="5.0"
          xml:id="sec-release-18.09">
- <title>Release 18.09 (“Jellyfish”, 2018/09/??)</title>
+ <title>Release 18.09 (“Jellyfish”, 2018/10/05)</title>
 
  <section xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
@@ -14,7 +14,45 @@
 
   <para>
    In addition to numerous new and upgraded packages, this release has the
-   following highlights:
+   following notable updates:
+  </para>
+
+  <itemizedlist>
+   <listitem>
+    <para>
+     End of support is planned for end of April 2019, handing over to 19.03.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Platform support: x86_64-linux and x86_64-darwin as always. Support for
+     aarch64-linux is as with the previous releases, not equivalent to the
+     x86-64-linux release, but with efforts to reach parity.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Nix has been updated to 2.1; see its
+     <link xlink:href="https://nixos.org/nix/manual/#ssec-relnotes-2.1">release
+     notes</link>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Core versions: linux: 4.14 LTS (unchanged), glibc: 2.26 → 2.27, gcc: 7
+     (unchanged), systemd: 237 → 239.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Desktop version changes: gnome: 3.26 → 3.28, (KDE) plasma-desktop: 5.12
+     → 5.13.
+    </para>
+   </listitem>
+  </itemizedlist>
+
+  <para>
+   Notable changes and additions for 18.09 include:
   </para>
 
   <itemizedlist>
@@ -70,7 +108,7 @@ $ nix-instantiate -E '(import &lt;nixpkgsunstable&gt; {}).gitFull'
   <title>New Services</title>
 
   <para>
-   The following new services were added since the last release:
+   A curated selection of new services that were added since the last release:
   </para>
 
   <itemizedlist>
@@ -125,6 +163,303 @@ $ nix-instantiate -E '(import &lt;nixpkgsunstable&gt; {}).gitFull'
     </para>
    </listitem>
   </itemizedlist>
+
+  <para>
+   Every new services:
+  </para>
+
+  <itemizedlist>
+   <listitem>
+    <para>
+     <literal>./config/xdg/autostart.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./config/xdg/icons.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./config/xdg/menus.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./config/xdg/mime.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./hardware/brightnessctl.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./hardware/onlykey.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./hardware/video/uvcvideo/default.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./misc/documentation.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./programs/firejail.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./programs/iftop.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./programs/sedutil.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./programs/singularity.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./programs/xss-lock.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./programs/zsh/zsh-autosuggestions.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/admin/oxidized.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/backup/duplicati.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/backup/restic.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/backup/restic-rest-server.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/cluster/hadoop/default.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/databases/aerospike.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/databases/monetdb.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/desktops/bamf.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/desktops/flatpak.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/desktops/zeitgeist.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/development/bloop.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/development/jupyter/default.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/hardware/lcd.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/hardware/undervolt.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/misc/clipmenu.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/misc/gitweb.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/misc/serviio.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/misc/safeeyes.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/misc/sysprof.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/misc/weechat.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/monitoring/datadog-agent.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/monitoring/incron.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/dnsdist.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/freeradius.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/hans.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/morty.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/ndppd.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/ocserv.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/owamp.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/quagga.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/shadowsocks.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/stubby.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/networking/zeronet.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/security/certmgr.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/security/cfssl.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/security/oauth2_proxy_nginx.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/web-apps/virtlyst.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/web-apps/youtrack.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/web-servers/hitch/default.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/web-servers/hydron.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/web-servers/meguca.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./services/web-servers/nginx/gitweb.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./virtualisation/kvmgt.nix</literal>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <literal>./virtualisation/qemu-guest-agent.nix</literal>
+    </para>
+   </listitem>
+  </itemizedlist>
  </section>
 
  <section xmlns="http://docbook.org/ns/docbook"
diff --git a/nixos/doc/manual/release-notes/rl-1903.xml b/nixos/doc/manual/release-notes/rl-1903.xml
index 1f26d4765b97..9cb5b93f27cb 100644
--- a/nixos/doc/manual/release-notes/rl-1903.xml
+++ b/nixos/doc/manual/release-notes/rl-1903.xml
@@ -105,6 +105,14 @@
      <varname>rabbitmq-server</varname>.
     </para>
    </listitem>
+   <listitem>
+     <para>
+       The <literal>light</literal> module no longer uses setuid binaries, but
+       udev rules. As a consequence users of that module have to belong to the
+       <literal>video</literal> group in order to use the executable
+       (i.e. <literal>users.users.yourusername.extraGroups = ["video"];</literal>).
+     </para>
+   </listitem>
   </itemizedlist>
  </section>
 
diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix
index b371af353cf9..46d06d71333a 100644
--- a/nixos/modules/hardware/opengl.nix
+++ b/nixos/modules/hardware/opengl.nix
@@ -129,17 +129,17 @@ in
       message = "Option driSupport32Bit only makes sense on a 64-bit system.";
     };
 
-    system.activationScripts.setup-opengl =
-      ''
-        ln -sfn ${package} /run/opengl-driver
-        ${if pkgs.stdenv.isi686 then ''
-          ln -sfn opengl-driver /run/opengl-driver-32
-        '' else if cfg.driSupport32Bit then ''
-          ln -sfn ${package32} /run/opengl-driver-32
-        '' else ''
-          rm -f /run/opengl-driver-32
-        ''}
-      '';
+    systemd.tmpfiles.rules = [
+      "L+ /run/opengl-driver - - - - ${package}"
+      (
+        if pkgs.stdenv.isi686 then
+          "L+ /run/opengl-driver-32 - - - - opengl-driver"
+        else if cfg.driSupport32Bit then
+          "L+ /run/opengl-driver-32 - - - - ${package32}"
+        else
+          "r /run/opengl-driver-32"
+      )
+    ];
 
     environment.sessionVariables.LD_LIBRARY_PATH =
       [ "/run/opengl-driver/lib" ] ++ optional cfg.driSupport32Bit "/run/opengl-driver-32/lib";
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index eb1952280331..6944d1a4f76b 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -26,9 +26,73 @@ let
   nvidia_libs32 = (nvidiaForKernel pkgs_i686.linuxPackages).override { libsOnly = true; kernel = null; };
 
   enabled = nvidia_x11 != null;
+
+  cfg = config.hardware.nvidia;
+  optimusCfg = cfg.optimus_prime;
 in
 
 {
+  options = {
+    hardware.nvidia.modesetting.enable = lib.mkOption {
+      type = lib.types.bool;
+      default = false;
+      description = ''
+        Enable kernel modesetting when using the NVIDIA proprietary driver.
+
+        Enabling this fixes screen tearing when using Optimus via PRIME (see
+        <option>hardware.nvidia.optimus_prime.enable</option>. This is not enabled
+        by default because it is not officially supported by NVIDIA and would not
+        work with SLI.
+      '';
+    };
+
+    hardware.nvidia.optimus_prime.enable = lib.mkOption {
+      type = lib.types.bool;
+      default = false;
+      description = ''
+        Enable NVIDIA Optimus support using the NVIDIA proprietary driver via PRIME.
+        If enabled, the NVIDIA GPU will be always on and used for all rendering,
+        while enabling output to displays attached only to the integrated Intel GPU
+        without a multiplexer.
+
+        Note that this option only has any effect if the "nvidia" driver is specified
+        in <option>services.xserver.videoDrivers</option>, and it should preferably
+        be the only driver there.
+
+        If this is enabled, then the bus IDs of the NVIDIA and Intel GPUs have to be
+        specified (<option>hardware.nvidia.optimus_prime.nvidiaBusId</option> and
+        <option>hardware.nvidia.optimus_prime.intelBusId</option>).
+
+        If you enable this, you may want to also enable kernel modesetting for the
+        NVIDIA driver (<option>hardware.nvidia.modesetting.enable</option>) in order
+        to prevent tearing.
+
+        Note that this configuration will only be successful when a display manager
+        for which the <option>services.xserver.displayManager.setupCommands</option>
+        option is supported is used; notably, SLiM is not supported.
+      '';
+    };
+
+    hardware.nvidia.optimus_prime.nvidiaBusId = lib.mkOption {
+      type = lib.types.string;
+      default = "";
+      example = "PCI:1:0:0";
+      description = ''
+        Bus ID of the NVIDIA GPU. You can find it using lspci; for example if lspci
+        shows the NVIDIA GPU at "01:00.0", set this option to "PCI:1:0:0".
+      '';
+    };
+
+    hardware.nvidia.optimus_prime.intelBusId = lib.mkOption {
+      type = lib.types.string;
+      default = "";
+      example = "PCI:0:2:0";
+      description = ''
+        Bus ID of the Intel GPU. You can find it using lspci; for example if lspci
+        shows the Intel GPU at "00:02.0", set this option to "PCI:0:2:0".
+      '';
+    };
+  };
 
   config = mkIf enabled {
     assertions = [
@@ -36,16 +100,62 @@ in
         assertion = config.services.xserver.displayManager.gdm.wayland;
         message = "NVidia drivers don't support wayland";
       }
+      {
+        assertion = !optimusCfg.enable ||
+          (optimusCfg.nvidiaBusId != "" && optimusCfg.intelBusId != "");
+        message = ''
+          When NVIDIA Optimus via PRIME is enabled, the GPU bus IDs must configured.
+        '';
+      }
     ];
 
-    services.xserver.drivers = singleton
-      { name = "nvidia"; modules = [ nvidia_x11.bin ]; libPath = [ nvidia_x11 ]; };
+    # If Optimus/PRIME is enabled, we:
+    # - Specify the configured NVIDIA GPU bus ID in the Device section for the
+    #   "nvidia" driver.
+    # - Add the AllowEmptyInitialConfiguration option to the Screen section for the
+    #   "nvidia" driver, in order to allow the X server to start without any outputs.
+    # - Add a separate Device section for the Intel GPU, using the "modesetting"
+    #   driver and with the configured BusID.
+    # - Reference that Device section from the ServerLayout section as an inactive
+    #   device.
+    # - Configure the display manager to run specific `xrandr` commands which will
+    #   configure/enable displays connected to the Intel GPU.
+
+    services.xserver.drivers = singleton {
+      name = "nvidia";
+      modules = [ nvidia_x11.bin ];
+      libPath = [ nvidia_x11 ];
+      deviceSection = optionalString optimusCfg.enable
+        ''
+          BusID "${optimusCfg.nvidiaBusId}"
+        '';
+      screenSection =
+        ''
+          Option "RandRRotation" "on"
+          ${optionalString optimusCfg.enable "Option \"AllowEmptyInitialConfiguration\""}
+        '';
+    };
 
-    services.xserver.screenSection =
+    services.xserver.extraConfig = optionalString optimusCfg.enable
+      ''
+        Section "Device"
+          Identifier "nvidia-optimus-intel"
+          Driver "modesetting"
+          BusID  "${optimusCfg.intelBusId}"
+          Option "AccelMethod" "none"
+        EndSection
+      '';
+    services.xserver.serverLayoutSection = optionalString optimusCfg.enable
       ''
-        Option "RandRRotation" "on"
+        Inactive "nvidia-optimus-intel"
       '';
 
+    services.xserver.displayManager.setupCommands = optionalString optimusCfg.enable ''
+      # Added by nvidia configuration module for Optimus/PRIME.
+      ${pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource modesetting NVIDIA-0
+      ${pkgs.xorg.xrandr}/bin/xrandr --auto
+    '';
+
     environment.etc."nvidia/nvidia-application-profiles-rc" = mkIf nvidia_x11.useProfiles {
       source = "${nvidia_x11.bin}/share/nvidia/nvidia-application-profiles-rc";
     };
@@ -62,6 +172,8 @@ in
     boot.kernelModules = [ "nvidia-uvm" ] ++
       lib.optionals config.services.xserver.enable [ "nvidia" "nvidia_modeset" "nvidia_drm" ];
 
+    # If requested enable modesetting via kernel parameter.
+    boot.kernelParams = optional cfg.modesetting.enable "nvidia-drm.modeset=1";
 
     # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
     services.udev.extraRules =
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 359caad89a72..b70faa380e54 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -277,8 +277,7 @@ if ($virt eq "qemu" || $virt eq "kvm" || $virt eq "bochs") {
 
 # Also for Hyper-V.
 if ($virt eq "microsoft") {
-    push @initrdAvailableKernelModules, "hv_storvsc";
-    $videoDriver = "fbdev";
+    push @attrs, "virtualisation.hypervGuest.enable = true;"
 }
 
 
diff --git a/nixos/modules/installer/tools/nixos-option.sh b/nixos/modules/installer/tools/nixos-option.sh
index 3f1e591b97b0..327e3e6989f7 100644
--- a/nixos/modules/installer/tools/nixos-option.sh
+++ b/nixos/modules/installer/tools/nixos-option.sh
@@ -82,7 +82,7 @@ evalNix(){
   set -e
 
   if test $exit_code -eq 0; then
-      cat <<EOF
+      sed '/^warning: Nix search path/d' <<EOF
 $result
 EOF
       return 0;
@@ -90,7 +90,7 @@ EOF
       sed -n '
   /^error/ { s/, at (string):[0-9]*:[0-9]*//; p; };
   /^warning: Nix search path/ { p; };
-' <<EOF
+' >&2 <<EOF
 $result
 EOF
     exit_code=1
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix
index c593adcdae6e..6d78b7c593f8 100644
--- a/nixos/modules/misc/version.nix
+++ b/nixos/modules/misc/version.nix
@@ -5,7 +5,6 @@ with lib;
 let
   cfg = config.system.nixos;
 
-  revisionFile = "${toString pkgs.path}/.git-revision";
   gitRepo      = "${toString pkgs.path}/.git";
   gitCommitId  = lib.substring 0 7 (commitIdFromGitRepo gitRepo);
 in
@@ -37,9 +36,7 @@ in
     nixos.revision = mkOption {
       internal = true;
       type = types.str;
-      default = if pathIsDirectory gitRepo then commitIdFromGitRepo gitRepo
-                else if pathExists revisionFile then fileContents revisionFile
-                else "master";
+      default = lib.trivial.revisionWithDefault "master";
       description = "The Git revision from which this NixOS configuration was built.";
     };
 
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 87224fa6b51a..af630178a919 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -690,6 +690,7 @@
   ./services/web-apps/codimd.nix
   ./services/web-apps/frab.nix
   ./services/web-apps/mattermost.nix
+  ./services/web-apps/nextcloud.nix
   ./services/web-apps/nexus.nix
   ./services/web-apps/pgpkeyserver-lite.nix
   ./services/web-apps/matomo.nix
diff --git a/nixos/modules/programs/bash/bash.nix b/nixos/modules/programs/bash/bash.nix
index 424e1506b4c5..f664e2225550 100644
--- a/nixos/modules/programs/bash/bash.nix
+++ b/nixos/modules/programs/bash/bash.nix
@@ -33,7 +33,7 @@ let
   '';
 
   bashAliases = concatStringsSep "\n" (
-    mapAttrsFlatten (k: v: "alias ${k}='${v}'") cfg.shellAliases
+    mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}") cfg.shellAliases
   );
 
 in
diff --git a/nixos/modules/programs/light.nix b/nixos/modules/programs/light.nix
index 6f8c389acc97..9f2a03e7e763 100644
--- a/nixos/modules/programs/light.nix
+++ b/nixos/modules/programs/light.nix
@@ -13,7 +13,8 @@ in
         default = false;
         type = types.bool;
         description = ''
-          Whether to install Light backlight control with setuid wrapper.
+          Whether to install Light backlight control command
+          and udev rules granting access to members of the "video" group.
         '';
       };
     };
@@ -21,6 +22,6 @@ in
 
   config = mkIf cfg.enable {
     environment.systemPackages = [ pkgs.light ];
-    security.wrappers.light.source = "${pkgs.light.out}/bin/light";
+    services.udev.packages = [ pkgs.light ];
   };
 }
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index bef10b4fe614..926c6d77d3bb 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -548,6 +548,13 @@ in
     environment.etc =
       mapAttrsToList (n: v: makePAMService v) config.security.pam.services;
 
+    systemd.tmpfiles.rules = optionals
+      (any (s: s.updateWtmp) (attrValues config.security.pam.services))
+      [
+        "f /var/log/wtmp"
+        "f /var/log/lastlog"
+      ];
+
     security.pam.services =
       { other.text =
           ''
diff --git a/nixos/modules/security/polkit.nix b/nixos/modules/security/polkit.nix
index 04685f2c9ea1..7f1de81d5b70 100644
--- a/nixos/modules/security/polkit.nix
+++ b/nixos/modules/security/polkit.nix
@@ -88,11 +88,11 @@ in
       "polkit-agent-helper-1".source = "${pkgs.polkit.out}/lib/polkit-1/polkit-agent-helper-1";
     };
 
-    system.activationScripts.polkit =
-      ''
-        # Probably no more needed, clean up
-        rm -rf /var/lib/{polkit-1,PolicyKit}
-      '';
+    systemd.tmpfiles.rules = [
+      # Probably no more needed, clean up
+      "R /var/lib/polkit-1"
+      "R /var/lib/PolicyKit"
+    ];
 
     users.users.polkituser = {
       description = "PolKit daemon";
diff --git a/nixos/modules/services/desktops/profile-sync-daemon.nix b/nixos/modules/services/desktops/profile-sync-daemon.nix
index e3f74df3e573..4165bb64fe46 100644
--- a/nixos/modules/services/desktops/profile-sync-daemon.nix
+++ b/nixos/modules/services/desktops/profile-sync-daemon.nix
@@ -4,22 +4,7 @@ with lib;
 
 let
   cfg = config.services.psd;
-
-  configFile = ''
-    ${optionalString (cfg.users != [ ]) ''
-      USERS="${concatStringsSep " " cfg.users}"
-    ''}
-
-    ${optionalString (cfg.browsers != [ ]) ''
-      BROWSERS="${concatStringsSep " " cfg.browsers}"
-    ''}
-
-    ${optionalString (cfg.volatile != "") "VOLATILE=${cfg.volatile}"}
-    ${optionalString (cfg.daemonFile != "") "DAEMON_FILE=${cfg.daemonFile}"}
-  '';
-
 in {
-
   options.services.psd = with types; {
     enable = mkOption {
       type = bool;
@@ -28,32 +13,6 @@ in {
         Whether to enable the Profile Sync daemon.
       '';
     };
-
-    users = mkOption {
-      type = listOf str;
-      default = [ ];
-      example = [ "demo" ];
-      description = ''
-        A list of users whose browser profiles should be sync'd to tmpfs.
-      '';
-    };
-
-    browsers = mkOption {
-      type = listOf str;
-      default = [ ];
-      example = [ "chromium" "firefox" ];
-      description = ''
-        A list of browsers to sync. Available choices are:
-
-        chromium chromium-dev conkeror.mozdev.org epiphany firefox
-        firefox-trunk google-chrome google-chrome-beta google-chrome-unstable
-        heftig-aurora icecat luakit midori opera opera-developer opera-beta
-        qupzilla palemoon rekonq seamonkey
-
-        An empty list will enable all browsers.
-      '';
-    };
-
     resyncTimer = mkOption {
       type = str;
       default = "1h";
@@ -66,80 +25,53 @@ in {
         omitted.
       '';
     };
-
-    volatile = mkOption {
-      type = str;
-      default = "/run/psd-profiles";
-      description = ''
-        The directory where browser profiles should reside(this should be
-        mounted as a tmpfs). Do not include a trailing backslash.
-      '';
-    };
-
-    daemonFile = mkOption {
-      type = str;
-      default = "/run/psd";
-      description = ''
-        Where the pid and backup configuration files will be stored.
-      '';
-    };
   };
 
   config = mkIf cfg.enable {
-    assertions = [
-      { assertion = cfg.users != [];
-        message = "services.psd.users must contain at least one user";
-      }
-    ];
-
     systemd = {
-      services = {
-        psd = {
-          description = "Profile Sync daemon";
-          wants = [ "psd-resync.service" "local-fs.target" ];
-          wantedBy = [ "multi-user.target" ];
-          preStart = "mkdir -p ${cfg.volatile}";
-
-          path = with pkgs; [ glibc rsync gawk ];
-
-          unitConfig = {
-            RequiresMountsFor = [ "/home/" ];
+      user = {
+        services = {
+          psd = {
+            enable = true;
+            description = "Profile Sync daemon";
+            wants = [ "psd-resync.service" "local-fs.target" ];
+            wantedBy = [ "default.target" ];
+            path = with pkgs; [ rsync kmod gawk nettools profile-sync-daemon ];
+            unitConfig = {
+              RequiresMountsFor = [ "/home/" ];
+            };
+            serviceConfig = {
+              Type = "oneshot";
+              RemainAfterExit = "yes";
+              ExecStart = "${pkgs.profile-sync-daemon}/bin/profile-sync-daemon sync";
+              ExecStop = "${pkgs.profile-sync-daemon}/bin/profile-sync-daemon unsync";
+            };
           };
 
-          serviceConfig = {
-            Type = "oneshot";
-            RemainAfterExit = "yes";
-            ExecStart = "${pkgs.profile-sync-daemon}/bin/profile-sync-daemon sync";
-            ExecStop = "${pkgs.profile-sync-daemon}/bin/profile-sync-daemon unsync";
+          psd-resync = {
+            enable = true;
+            description = "Timed profile resync";
+            after = [ "psd.service" ];
+            wants = [ "psd-resync.timer" ];
+            partOf = [ "psd.service" ];
+            wantedBy = [ "default.target" ];
+            path = with pkgs; [ rsync kmod gawk nettools profile-sync-daemon ];
+            serviceConfig = {
+              Type = "oneshot";
+              ExecStart = "${pkgs.profile-sync-daemon}/bin/profile-sync-daemon resync";
+            };
           };
         };
 
-        psd-resync = {
-          description = "Timed profile resync";
-          after = [ "psd.service" ];
-          wants = [ "psd-resync.timer" ];
-          partOf = [ "psd.service" ];
-
-          path = with pkgs; [ glibc rsync gawk ];
+        timers.psd-resync = {
+          description = "Timer for profile sync daemon - ${cfg.resyncTimer}";
+          partOf = [ "psd-resync.service" "psd.service" ];
 
-          serviceConfig = {
-            Type = "oneshot";
-            ExecStart = "${pkgs.profile-sync-daemon}/bin/profile-sync-daemon resync";
+          timerConfig = {
+            OnUnitActiveSec = "${cfg.resyncTimer}";
           };
         };
       };
-
-      timers.psd-resync = {
-        description = "Timer for profile sync daemon - ${cfg.resyncTimer}";
-        partOf = [ "psd-resync.service" "psd.service" ];
-
-        timerConfig = {
-          OnUnitActiveSec = "${cfg.resyncTimer}";
-        };
-      };
     };
-
-    environment.etc."psd.conf".text = configFile;
-
   };
 }
diff --git a/nixos/modules/services/misc/emby.nix b/nixos/modules/services/misc/emby.nix
index ff68b850cd91..151edd0e761a 100644
--- a/nixos/modules/services/misc/emby.nix
+++ b/nixos/modules/services/misc/emby.nix
@@ -55,7 +55,7 @@ in
         User = cfg.user;
         Group = cfg.group;
         PermissionsStartOnly = "true";
-        ExecStart = "${pkgs.emby}/bin/MediaBrowser.Server.Mono";
+        ExecStart = "${pkgs.emby}/bin/emby";
         Restart = "on-failure";
       };
     };
diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager.nix b/nixos/modules/services/monitoring/prometheus/alertmanager.nix
index 8a47c9f1e7d8..8a44cf7fd8f6 100644
--- a/nixos/modules/services/monitoring/prometheus/alertmanager.nix
+++ b/nixos/modules/services/monitoring/prometheus/alertmanager.nix
@@ -9,6 +9,15 @@ let
     if cfg.configText != null then
       pkgs.writeText "alertmanager.yml" cfg.configText
     else mkConfigFile;
+  cmdlineArgs = cfg.extraFlags ++ [
+    "--config.file ${alertmanagerYml}"
+    "--web.listen-address ${cfg.listenAddress}:${toString cfg.port}"
+    "--log.level ${cfg.logLevel}"
+    ] ++ (optional (cfg.webExternalUrl != null)
+      "--web.external-url ${cfg.webExternalUrl}"
+    ) ++ (optional (cfg.logFormat != null)
+      "--log.format ${cfg.logFormat}"
+  );
 in {
   options = {
     services.prometheus.alertmanager = {
@@ -99,6 +108,14 @@ in {
           Open port in firewall for incoming connections.
         '';
       };
+
+      extraFlags = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Extra commandline options when launching the Alertmanager.
+        '';
+      };
     };
   };
 
@@ -111,11 +128,7 @@ in {
       after    = [ "network.target" ];
       script = ''
         ${pkgs.prometheus-alertmanager.bin}/bin/alertmanager \
-        --config.file ${alertmanagerYml} \
-        --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
-        --log.level ${cfg.logLevel} \
-        ${optionalString (cfg.webExternalUrl != null) ''--web.external-url ${cfg.webExternalUrl} \''}
-        ${optionalString (cfg.logFormat != null) "--log.format ${cfg.logFormat}"}
+          ${concatStringsSep " \\\n  " cmdlineArgs}
       '';
 
       serviceConfig = {
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix b/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
index 404cd0a1896b..0d9194124325 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
@@ -60,10 +60,10 @@ in
       DynamicUser = true;
       ExecStart = ''
         ${pkgs.prometheus-snmp-exporter.bin}/bin/snmp_exporter \
-          -config.file ${configFile} \
-          -log.format ${cfg.logFormat} \
-          -log.level ${cfg.logLevel} \
-          -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          --config.file=${configFile} \
+          --log.format=${cfg.logFormat} \
+          --log.level=${cfg.logLevel} \
+          --web.listen-address=${cfg.listenAddress}:${toString cfg.port} \
           ${concatStringsSep " \\\n  " cfg.extraFlags}
       '';
     };
diff --git a/nixos/modules/services/networking/bitlbee.nix b/nixos/modules/services/networking/bitlbee.nix
index 392a8d5c2e7c..46e3b7457610 100644
--- a/nixos/modules/services/networking/bitlbee.nix
+++ b/nixos/modules/services/networking/bitlbee.nix
@@ -7,9 +7,10 @@ let
   cfg = config.services.bitlbee;
   bitlbeeUid = config.ids.uids.bitlbee;
 
-  bitlbeePkg = if cfg.libpurple_plugins == []
-  then pkgs.bitlbee
-  else pkgs.bitlbee.override { enableLibPurple = true; };
+  bitlbeePkg = pkgs.bitlbee.override {
+    enableLibPurple = cfg.libpurple_plugins != [];
+    enablePam = cfg.authBackend == "pam";
+  };
 
   bitlbeeConfig = pkgs.writeText "bitlbee.conf"
     ''
@@ -20,6 +21,7 @@ let
     DaemonInterface = ${cfg.interface}
     DaemonPort = ${toString cfg.portNumber}
     AuthMode = ${cfg.authMode}
+    AuthBackend = ${cfg.authBackend}
     Plugindir = ${pkgs.bitlbee-plugins cfg.plugins}/lib/bitlbee
     ${lib.optionalString (cfg.hostName != "") "HostName = ${cfg.hostName}"}
     ${lib.optionalString (cfg.protocols != "") "Protocols = ${cfg.protocols}"}
@@ -70,6 +72,16 @@ in
         '';
       };
 
+      authBackend = mkOption {
+        default = "storage";
+        type = types.enum [ "storage" "pam" ];
+        description = ''
+          How users are authenticated
+            storage -- save passwords internally
+            pam -- Linux PAM authentication
+        '';
+      };
+
       authMode = mkOption {
         default = "Open";
         type = types.enum [ "Open" "Closed" "Registered" ];
@@ -147,23 +159,22 @@ in
 
   ###### implementation
 
-  config = mkIf config.services.bitlbee.enable {
-
-    users.users = singleton
-      { name = "bitlbee";
+  config =  mkMerge [
+    (mkIf config.services.bitlbee.enable {
+      users.users = singleton {
+        name = "bitlbee";
         uid = bitlbeeUid;
         description = "BitlBee user";
         home = "/var/lib/bitlbee";
         createHome = true;
       };
 
-    users.groups = singleton
-      { name = "bitlbee";
+      users.groups = singleton {
+        name = "bitlbee";
         gid = config.ids.gids.bitlbee;
       };
 
-    systemd.services.bitlbee =
-      {
+      systemd.services.bitlbee = {
         environment.PURPLE_PLUGIN_PATH = purple_plugin_path;
         description = "BitlBee IRC to other chat networks gateway";
         after = [ "network.target" ];
@@ -172,8 +183,12 @@ in
         serviceConfig.ExecStart = "${bitlbeePkg}/sbin/bitlbee -F -n -c ${bitlbeeConfig}";
       };
 
-    environment.systemPackages = [ bitlbeePkg ];
+      environment.systemPackages = [ bitlbeePkg ];
 
-  };
+    })
+    (mkIf (config.services.bitlbee.authBackend == "pam") {
+      security.pam.services.bitlbee = {};
+    })
+  ];
 
 }
diff --git a/nixos/modules/services/networking/charybdis.nix b/nixos/modules/services/networking/charybdis.nix
index 6d57faa9ac2b..3d02dc8d1375 100644
--- a/nixos/modules/services/networking/charybdis.nix
+++ b/nixos/modules/services/networking/charybdis.nix
@@ -90,7 +90,7 @@ in
           BANDB_DBPATH = "${cfg.statedir}/ban.db";
         };
         serviceConfig = {
-          ExecStart   = "${charybdis}/bin/charybdis-ircd -foreground -logfile /dev/stdout -configfile ${configFile}";
+          ExecStart   = "${charybdis}/bin/charybdis -foreground -logfile /dev/stdout -configfile ${configFile}";
           Group = cfg.group;
           User = cfg.user;
           PermissionsStartOnly = true; # preStart needs to run with root permissions
diff --git a/nixos/modules/services/networking/miniupnpd.nix b/nixos/modules/services/networking/miniupnpd.nix
index 19400edb68f9..ab714a6ac75e 100644
--- a/nixos/modules/services/networking/miniupnpd.nix
+++ b/nixos/modules/services/networking/miniupnpd.nix
@@ -57,32 +57,12 @@ in
   };
 
   config = mkIf cfg.enable {
-    # from miniupnpd/netfilter/iptables_init.sh
     networking.firewall.extraCommands = ''
-      iptables -t nat -N MINIUPNPD
-      iptables -t nat -A PREROUTING -i ${cfg.externalInterface} -j MINIUPNPD
-      iptables -t mangle -N MINIUPNPD
-      iptables -t mangle -A PREROUTING -i ${cfg.externalInterface} -j MINIUPNPD
-      iptables -t filter -N MINIUPNPD
-      iptables -t filter -A FORWARD -i ${cfg.externalInterface} ! -o ${cfg.externalInterface} -j MINIUPNPD
-      iptables -t nat -N MINIUPNPD-PCP-PEER
-      iptables -t nat -A POSTROUTING -o ${cfg.externalInterface} -j MINIUPNPD-PCP-PEER
+      ${pkgs.bash}/bin/bash -x ${pkgs.miniupnpd}/etc/miniupnpd/iptables_init.sh -i ${cfg.externalInterface}
     '';
 
-    # from miniupnpd/netfilter/iptables_removeall.sh
     networking.firewall.extraStopCommands = ''
-      iptables -t nat -F MINIUPNPD
-      iptables -t nat -D PREROUTING -i ${cfg.externalInterface} -j MINIUPNPD
-      iptables -t nat -X MINIUPNPD
-      iptables -t mangle -F MINIUPNPD
-      iptables -t mangle -D PREROUTING -i ${cfg.externalInterface} -j MINIUPNPD
-      iptables -t mangle -X MINIUPNPD
-      iptables -t filter -F MINIUPNPD
-      iptables -t filter -D FORWARD -i ${cfg.externalInterface} ! -o ${cfg.externalInterface} -j MINIUPNPD
-      iptables -t filter -X MINIUPNPD
-      iptables -t nat -F MINIUPNPD-PCP-PEER
-      iptables -t nat -D POSTROUTING -o ${cfg.externalInterface} -j MINIUPNPD-PCP-PEER
-      iptables -t nat -X MINIUPNPD-PCP-PEER
+      ${pkgs.bash}/bin/bash -x ${pkgs.miniupnpd}/etc/miniupnpd/iptables_removeall.sh -i ${cfg.externalInterface}
     '';
 
     systemd.services.miniupnpd = {
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
new file mode 100644
index 000000000000..44c3df1d057b
--- /dev/null
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -0,0 +1,463 @@
+{ config, lib, pkgs, ... }@args:
+
+with lib;
+
+let
+  cfg = config.services.nextcloud;
+
+  toKeyValue = generators.toKeyValue {
+    mkKeyValue = generators.mkKeyValueDefault {} " = ";
+  };
+
+  phpOptionsExtensions = ''
+    ${optionalString cfg.caching.apcu "extension=${cfg.phpPackages.apcu}/lib/php/extensions/apcu.so"}
+    ${optionalString cfg.caching.redis "extension=${cfg.phpPackages.redis}/lib/php/extensions/redis.so"}
+    ${optionalString cfg.caching.memcached "extension=${cfg.phpPackages.memcached}/lib/php/extensions/memcached.so"}
+    zend_extension = opcache.so
+    opcache.enable = 1
+  '';
+  phpOptions = {
+    upload_max_filesize = cfg.maxUploadSize;
+    post_max_size = cfg.maxUploadSize;
+    memory_limit = cfg.maxUploadSize;
+  } // cfg.phpOptions;
+  phpOptionsStr = phpOptionsExtensions + (toKeyValue phpOptions);
+
+  occ = pkgs.writeScriptBin "nextcloud-occ" ''
+    #! ${pkgs.stdenv.shell}
+    cd ${pkgs.nextcloud}
+    exec /run/wrappers/bin/sudo -u nextcloud \
+      NEXTCLOUD_CONFIG_DIR="${cfg.home}/config" \
+      ${config.services.phpfpm.phpPackage}/bin/php \
+      -c ${pkgs.writeText "php.ini" phpOptionsStr}\
+      occ $*
+  '';
+
+in {
+  options.services.nextcloud = {
+    enable = mkEnableOption "nextcloud";
+    hostName = mkOption {
+      type = types.str;
+      description = "FQDN for the nextcloud instance.";
+    };
+    home = mkOption {
+      type = types.str;
+      default = "/var/lib/nextcloud";
+      description = "Storage path of nextcloud.";
+    };
+    https = mkOption {
+      type = types.bool;
+      default = false;
+      description = "Enable if there is a TLS terminating proxy in front of nextcloud.";
+    };
+
+    maxUploadSize = mkOption {
+      default = "512M";
+      type = types.str;
+      description = ''
+        Defines the upload limit for files. This changes the relevant options
+        in php.ini and nginx if enabled.
+      '';
+    };
+
+    skeletonDirectory = mkOption {
+      default = "";
+      type = types.str;
+      description = ''
+        The directory where the skeleton files are located. These files will be
+        copied to the data directory of new users. Leave empty to not copy any
+        skeleton files.
+      '';
+    };
+
+    nginx.enable = mkEnableOption "nginx vhost management";
+
+    webfinger = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enable this option if you plan on using the webfinger plugin.
+        The appropriate nginx rewrite rules will be added to your configuration.
+      '';
+    };
+
+    phpPackages = mkOption {
+      type = types.attrs;
+      default = pkgs.php71Packages;
+      defaultText = "pkgs.php71Packages";
+      description = ''
+        Overridable attribute of the PHP packages set to use.  If any caching
+        module is enabled, it will be taken from here.  Therefore it should
+        match the version of PHP given to
+        <literal>services.phpfpm.phpPackage</literal>.
+      '';
+    };
+
+    phpOptions = mkOption {
+      type = types.attrsOf types.str;
+      default = {
+        "short_open_tag" = "Off";
+        "expose_php" = "Off";
+        "error_reporting" = "E_ALL & ~E_DEPRECATED & ~E_STRICT";
+        "display_errors" = "stderr";
+        "opcache.enable_cli" = "1";
+        "opcache.interned_strings_buffer" = "8";
+        "opcache.max_accelerated_files" = "10000";
+        "opcache.memory_consumption" = "128";
+        "opcache.revalidate_freq" = "1";
+        "opcache.fast_shutdown" = "1";
+        "openssl.cafile" = "/etc/ssl/certs/ca-certificates.crt";
+        "catch_workers_output" = "yes";
+      };
+      description = ''
+        Options for PHP's php.ini file for nextcloud.
+      '';
+    };
+
+    config = {
+      dbtype = mkOption {
+        type = types.enum [ "sqlite" "pgsql" "mysql" ];
+        default = "sqlite";
+        description = "Database type.";
+      };
+      dbname = mkOption {
+        type = types.nullOr types.str;
+        default = "nextcloud";
+        description = "Database name.";
+      };
+      dbuser = mkOption {
+        type = types.nullOr types.str;
+        default = "nextcloud";
+        description = "Database user.";
+      };
+      dbpass = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Database password.  Use <literal>dbpassFile</literal> to avoid this
+          being world-readable in the <literal>/nix/store</literal>.
+        '';
+      };
+      dbpassFile = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          The full path to a file that contains the database password.
+        '';
+      };
+      dbhost = mkOption {
+        type = types.nullOr types.str;
+        default = "localhost";
+        description = "Database host.";
+      };
+      dbport = mkOption {
+        type = with types; nullOr (either int str);
+        default = null;
+        description = "Database port.";
+      };
+      dbtableprefix = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = "Table prefix in Nextcloud database.";
+      };
+      adminuser = mkOption {
+        type = types.str;
+        default = "root";
+        description = "Admin username.";
+      };
+      adminpass = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Database password.  Use <literal>adminpassFile</literal> to avoid this
+          being world-readable in the <literal>/nix/store</literal>.
+        '';
+      };
+      adminpassFile = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          The full path to a file that contains the admin's password.
+        '';
+      };
+
+      extraTrustedDomains = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Trusted domains, from which the nextcloud installation will be
+          acessible.  You don't need to add
+          <literal>services.nextcloud.hostname</literal> here.
+        '';
+      };
+    };
+
+    caching = {
+      apcu = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to load the APCu module into PHP.
+        '';
+      };
+      redis = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to load the Redis module into PHP.
+          You still need to enable Redis in your config.php.
+          See https://docs.nextcloud.com/server/14/admin_manual/configuration_server/caching_configuration.html
+        '';
+      };
+      memcached = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to load the Memcached module into PHP.
+          You still need to enable Memcached in your config.php.
+          See https://docs.nextcloud.com/server/14/admin_manual/configuration_server/caching_configuration.html
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable (mkMerge [
+    { assertions = let acfg = cfg.config; in [
+        { assertion = !(acfg.dbpass != null && acfg.dbpassFile != null);
+          message = "Please specify no more than one of dbpass or dbpassFile";
+        }
+        { assertion = ((acfg.adminpass != null || acfg.adminpassFile != null)
+            && !(acfg.adminpass != null && acfg.adminpassFile != null));
+          message = "Please specify exactly one of adminpass or adminpassFile";
+        }
+      ];
+    }
+
+    { systemd.timers."nextcloud-cron" = {
+        wantedBy = [ "timers.target" ];
+        timerConfig.OnBootSec = "5m";
+        timerConfig.OnUnitActiveSec = "15m";
+        timerConfig.Unit = "nextcloud-cron.service";
+      };
+
+      systemd.services = {
+        "nextcloud-setup" = let
+          overrideConfig = pkgs.writeText "nextcloud-config.php" ''
+            <?php
+            $CONFIG = [
+              'apps_paths' => [
+                [ 'path' => '${cfg.home}/apps', 'url' => '/apps', 'writable' => false ],
+                [ 'path' => '${cfg.home}/store-apps', 'url' => '/store-apps', 'writable' => true ],
+              ],
+              'datadirectory' => '${cfg.home}/data',
+              'skeletondirectory' => '${cfg.skeletonDirectory}',
+              ${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"}
+              'log_type' => 'syslog',
+            ];
+          '';
+          occInstallCmd = let
+            c = cfg.config;
+            adminpass = if c.adminpassFile != null
+              then ''"$(<"${toString c.adminpassFile}")"''
+              else ''"${toString c.adminpass}"'';
+            dbpass = if c.dbpassFile != null
+              then ''"$(<"${toString c.dbpassFile}")"''
+              else if c.dbpass != null
+              then ''"${toString c.dbpass}"''
+              else null;
+            installFlags = concatStringsSep " \\\n    "
+              (mapAttrsToList (k: v: "${k} ${toString v}") {
+              "--database" = ''"${c.dbtype}"'';
+              # The following attributes are optional depending on the type of
+              # database.  Those that evaluate to null on the left hand side
+              # will be omitted.
+              ${if c.dbname != null then "--database-name" else null} = ''"${c.dbname}"'';
+              ${if c.dbhost != null then "--database-host" else null} = ''"${c.dbhost}"'';
+              ${if c.dbport != null then "--database-port" else null} = ''"${toString c.dbport}"'';
+              ${if c.dbuser != null then "--database-user" else null} = ''"${c.dbuser}"'';
+              ${if (any (x: x != null) [c.dbpass c.dbpassFile])
+                 then "--database-pass" else null} = dbpass;
+              ${if c.dbtableprefix != null
+                then "--database-table-prefix" else null} = ''"${toString c.dbtableprefix}"'';
+              "--admin-user" = ''"${c.adminuser}"'';
+              "--admin-pass" = adminpass;
+              "--data-dir" = ''"${cfg.home}/data"'';
+            });
+          in ''
+            ${occ}/bin/nextcloud-occ maintenance:install \
+                ${installFlags}
+          '';
+          occSetTrustedDomainsCmd = concatStringsSep "\n" (imap0
+            (i: v: ''
+              ${occ}/bin/nextcloud-occ config:system:set trusted_domains \
+                ${toString i} --value="${toString v}"
+            '') ([ cfg.hostName ] ++ cfg.config.extraTrustedDomains));
+
+        in {
+          wantedBy = [ "multi-user.target" ];
+          before = [ "phpfpm-nextcloud.service" ];
+          script = ''
+            chmod og+x ${cfg.home}
+            ln -sf ${pkgs.nextcloud}/apps ${cfg.home}/
+            mkdir -p ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps
+            ln -sf ${overrideConfig} ${cfg.home}/config/override.config.php
+
+            chown -R nextcloud:nginx ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps
+
+            # Do not install if already installed
+            if [[ ! -e ${cfg.home}/config/config.php ]]; then
+              ${occInstallCmd}
+            fi
+
+            ${occ}/bin/nextcloud-occ upgrade
+
+            ${occ}/bin/nextcloud-occ config:system:delete trusted_domains
+            ${occSetTrustedDomainsCmd}
+          '';
+          serviceConfig.Type = "oneshot";
+        };
+        "nextcloud-cron" = {
+          environment.NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config";
+          serviceConfig.Type = "oneshot";
+          serviceConfig.User = "nextcloud";
+          serviceConfig.ExecStart = "${pkgs.php}/bin/php -f ${pkgs.nextcloud}/cron.php";
+        };
+      };
+
+      services.phpfpm = {
+        phpOptions = phpOptionsExtensions;
+        phpPackage = pkgs.php71;
+        pools.nextcloud = let
+          phpAdminValues = (toKeyValue
+            (foldr (a: b: a // b) {}
+              (mapAttrsToList (k: v: { "php_admin_value[${k}]" = v; })
+                phpOptions)));
+        in {
+          listen = "/run/phpfpm/nextcloud";
+          extraConfig = ''
+            listen.owner = nginx
+            listen.group = nginx
+            user = nextcloud
+            group = nginx
+            pm = dynamic
+            pm.max_children = 32
+            pm.start_servers = 2
+            pm.min_spare_servers = 2
+            pm.max_spare_servers = 4
+            env[NEXTCLOUD_CONFIG_DIR] = ${cfg.home}/config
+            env[PATH] = /run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin
+            ${phpAdminValues}
+          '';
+        };
+      };
+
+      users.extraUsers.nextcloud = {
+        home = "${cfg.home}";
+        group = "nginx";
+        createHome = true;
+      };
+
+      environment.systemPackages = [ occ ];
+    }
+
+    (mkIf cfg.nginx.enable {
+      services.nginx = {
+        enable = true;
+        virtualHosts = {
+          "${cfg.hostName}" = {
+            root = pkgs.nextcloud;
+            locations = {
+              "= /robots.txt" = {
+                priority = 100;
+                extraConfig = ''
+                  allow all;
+                  log_not_found off;
+                  access_log off;
+                '';
+              };
+              "/" = {
+                priority = 200;
+                extraConfig = "rewrite ^ /index.php$uri;";
+              };
+              "~ ^/store-apps" = {
+                priority = 201;
+                extraConfig = "root ${cfg.home};";
+              };
+              "= /.well-known/carddav" = {
+                priority = 210;
+                extraConfig = "return 301 $scheme://$host/remote.php/dav;";
+              };
+              "= /.well-known/caldav" = {
+                priority = 210;
+                extraConfig = "return 301 $scheme://$host/remote.php/dav;";
+              };
+              "~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/" = {
+                priority = 300;
+                extraConfig = "deny all;";
+              };
+              "~ ^/(?:\\.|autotest|occ|issue|indie|db_|console)" = {
+                priority = 300;
+                extraConfig = "deny all;";
+              };
+              "~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\\.php(?:$|/)" = {
+                priority = 500;
+                extraConfig = ''
+                  include ${pkgs.nginxMainline}/conf/fastcgi.conf;
+                  fastcgi_split_path_info ^(.+\.php)(/.*)$;
+                  fastcgi_param PATH_INFO $fastcgi_path_info;
+                  fastcgi_param HTTPS ${if cfg.https then "on" else "off"};
+                  fastcgi_param modHeadersAvailable true;
+                  fastcgi_param front_controller_active true;
+                  fastcgi_pass unix:/run/phpfpm/nextcloud;
+                  fastcgi_intercept_errors on;
+                  fastcgi_request_buffering off;
+                  fastcgi_read_timeout 120s;
+                '';
+              };
+              "~ ^/(?:updater|ocs-provider)(?:$|/)".extraConfig = ''
+                try_files $uri/ =404;
+                index index.php;
+              '';
+              "~ \\.(?:css|js|woff|svg|gif)$".extraConfig = ''
+                try_files $uri /index.php$uri$is_args$args;
+                add_header Cache-Control "public, max-age=15778463";
+                add_header X-Content-Type-Options nosniff;
+                add_header X-XSS-Protection "1; mode=block";
+                add_header X-Robots-Tag none;
+                add_header X-Download-Options noopen;
+                add_header X-Permitted-Cross-Domain-Policies none;
+                access_log off;
+              '';
+              "~ \\.(?:png|html|ttf|ico|jpg|jpeg)$".extraConfig = ''
+                try_files $uri /index.php$uri$is_args$args;
+                access_log off;
+              '';
+            };
+            extraConfig = ''
+              add_header X-Content-Type-Options nosniff;
+              add_header X-XSS-Protection "1; mode=block";
+              add_header X-Robots-Tag none;
+              add_header X-Download-Options noopen;
+              add_header X-Permitted-Cross-Domain-Policies none;
+              error_page 403 /core/templates/403.php;
+              error_page 404 /core/templates/404.php;
+              client_max_body_size ${cfg.maxUploadSize};
+              fastcgi_buffers 64 4K;
+              gzip on;
+              gzip_vary on;
+              gzip_comp_level 4;
+              gzip_min_length 256;
+              gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
+              gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
+
+              ${optionalString cfg.webfinger ''
+                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
+                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
+              ''}
+            '';
+          };
+        };
+      };
+    })
+  ]);
+}
diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix
index 2b171aa1b2b2..90b35d19ea11 100644
--- a/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixos/modules/services/web-apps/tt-rss.nix
@@ -624,7 +624,11 @@ let
     };
 
     users = optionalAttrs (cfg.user == "tt_rss") {
-      users.tt_rss.group = "tt_rss";
+      users.tt_rss = {
+        description = "tt-rss service user";
+        isSystemUser = true;
+        group = "tt_rss";
+      };
       groups.tt_rss = {};
     };
   };
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index b231ee5a3f01..508398f03ace 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -245,8 +245,8 @@ let
         }
       ''
   ) virtualHosts);
-  mkLocations = locations: concatStringsSep "\n" (mapAttrsToList (location: config: ''
-    location ${location} {
+  mkLocations = locations: concatStringsSep "\n" (map (config: ''
+    location ${config.location} {
       ${optionalString (config.proxyPass != null && !cfg.proxyResolveWhileRunning)
         "proxy_pass ${config.proxyPass};"
       }
@@ -266,7 +266,18 @@ let
       ${config.extraConfig}
       ${optionalString (config.proxyPass != null && cfg.recommendedProxySettings) "include ${recommendedProxyConfig};"}
     }
-  '') locations);
+  '') (sortProperties (mapAttrsToList (k: v: v // { location = k; }) locations)));
+  mkBasicAuth = vhostName: authDef: let
+    htpasswdFile = pkgs.writeText "${vhostName}.htpasswd" (
+      concatStringsSep "\n" (mapAttrsToList (user: password: ''
+        ${user}:{PLAIN}${password}
+      '') authDef)
+    );
+  in ''
+    auth_basic secured;
+    auth_basic_user_file ${htpasswdFile};
+  '';
+
   mkHtpasswd = vhostName: authDef: pkgs.writeText "${vhostName}.htpasswd" (
     concatStringsSep "\n" (mapAttrsToList (user: password: ''
       ${user}:{PLAIN}${password}
diff --git a/nixos/modules/services/web-servers/nginx/location-options.nix b/nixos/modules/services/web-servers/nginx/location-options.nix
index 4c772734a749..9b44433d3845 100644
--- a/nixos/modules/services/web-servers/nginx/location-options.nix
+++ b/nixos/modules/services/web-servers/nginx/location-options.nix
@@ -71,6 +71,16 @@ with lib;
         These lines go to the end of the location verbatim.
       '';
     };
+
+    priority = mkOption {
+      type = types.int;
+      default = 1000;
+      description = ''
+        Order of this location block in relation to the others in the vhost.
+        The semantics are the same as with `lib.mkOrder`. Smaller values have
+        a greater priority.
+      '';
+    };
   };
 }
 
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index e759f69db897..11c1aa4315a8 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -64,7 +64,7 @@ in
       };
 
       security.wrappers = {
-        kcheckpass.source = "${lib.getBin plasma5.plasma-workspace}/lib/libexec/kcheckpass";
+        kcheckpass.source = "${lib.getBin plasma5.kscreenlocker}/lib/libexec/kcheckpass";
         "start_kdeinit".source = "${lib.getBin pkgs.kinit}/lib/libexec/kf5/start_kdeinit";
         kwin_wayland = {
           source = "${lib.getBin plasma5.kwin}/bin/kwin_wayland";
@@ -225,11 +225,8 @@ in
       security.pam.services.sddm.enableKwallet = true;
       security.pam.services.slim.enableKwallet = true;
 
-      # Update the start menu for each user that has `isNormalUser` set.
-      system.activationScripts.plasmaSetup = stringAfter [ "users" "groups" ]
-        (concatStringsSep "\n"
-          (mapAttrsToList (name: value: "${pkgs.su}/bin/su ${name} -c ${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5")
-            (filterAttrs (n: v: v.isNormalUser) config.users.users)));
+      # Update the start menu for each user that is currently logged in
+      system.userActivationScripts.plasmaSetup = "${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5";
     })
   ];
 
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index 357fa8ce8f36..26b79730dd38 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -222,6 +222,17 @@ in
         description = "List of arguments for the X server.";
       };
 
+      setupCommands = mkOption {
+        type = types.lines;
+        default = "";
+        description = ''
+          Shell commands executed just after the X server has started.
+
+          This option is only effective for display managers for which this feature
+          is supported; currently these are LightDM, GDM and SDDM.
+        '';
+      };
+
       sessionCommands = mkOption {
         type = types.lines;
         default = "";
diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix
index a16cbee3bb39..6cc30b218f4a 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -7,6 +7,13 @@ let
   cfg = config.services.xserver.displayManager;
   gdm = pkgs.gnome3.gdm;
 
+  xSessionWrapper = if (cfg.setupCommands == "") then null else
+    pkgs.writeScript "gdm-x-session-wrapper" ''
+      #!${pkgs.bash}/bin/bash
+      ${cfg.setupCommands}
+      exec "$@"
+    '';
+
 in
 
 {
@@ -112,6 +119,11 @@ in
           GDM_SESSIONS_DIR = "${cfg.session.desktops}/share/xsessions";
           # Find the mouse
           XCURSOR_PATH = "~/.icons:${pkgs.gnome3.adwaita-icon-theme}/share/icons";
+        } // optionalAttrs (xSessionWrapper != null) {
+          # Make GDM use this wrapper before running the session, which runs the
+          # configured setupCommands. This relies on a patched GDM which supports
+          # this environment variable.
+          GDM_X_SESSION_WRAPPER = "${xSessionWrapper}";
         };
         execCmd = "exec ${gdm}/bin/gdm";
       };
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index a34f2370649f..16f1ddea1a75 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -62,6 +62,12 @@ let
       ${optionalString hasDefaultUserSession ''
         user-session=${defaultSessionName}
       ''}
+      ${optionalString (dmcfg.setupCommands != "") ''
+        display-setup-script=${pkgs.writeScript "lightdm-display-setup" ''
+          #!${pkgs.bash}/bin/bash
+          ${dmcfg.setupCommands}
+        ''}
+      ''}
       ${cfg.extraSeatDefaults}
     '';
 
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index 2a9826177737..522a0dc92d6f 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -20,6 +20,7 @@ let
   Xsetup = pkgs.writeScript "Xsetup" ''
     #!/bin/sh
     ${cfg.setupScript}
+    ${dmcfg.setupCommands}
   '';
 
   Xstop = pkgs.writeScript "Xstop" ''
@@ -137,7 +138,8 @@ in
           xrandr --auto
         '';
         description = ''
-          A script to execute when starting the display server.
+          A script to execute when starting the display server. DEPRECATED, please
+          use <option>services.xserver.displayManager.setupCommands</option>.
         '';
       };
 
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 75bfeaac1fa3..297e36311656 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -374,6 +374,12 @@ in
         description = "Contents of the first Monitor section of the X server configuration file.";
       };
 
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = "Additional contents (sections) included in the X server configuration file";
+      };
+
       xrandrHeads = mkOption {
         default = [];
         example = [
@@ -754,6 +760,7 @@ in
             Driver "${driver.driverName or driver.name}"
             ${if cfg.useGlamor then ''Option "AccelMethod" "glamor"'' else ""}
             ${cfg.deviceSection}
+            ${driver.deviceSection or ""}
             ${xrandrDeviceSection}
           EndSection
 
@@ -765,6 +772,7 @@ in
             ''}
 
             ${cfg.screenSection}
+            ${driver.screenSection or ""}
 
             ${optionalString (cfg.defaultDepth != 0) ''
               DefaultDepth ${toString cfg.defaultDepth}
@@ -794,6 +802,8 @@ in
         '')}
 
         ${xrandrMonitorSections}
+
+        ${cfg.extraConfig}
       '';
 
     fonts.enableDefaultFonts = mkDefault true;
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index 93a1b13a81dd..b1eaf0189562 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -100,6 +100,52 @@ in
             exit $_status
           '';
       };
+    };
+
+    system.userActivationScripts = mkOption {
+      default = {};
+
+      example = literalExample ''
+        { plasmaSetup = {
+            text = '''
+              ${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5"
+            ''';
+            deps = [];
+          };
+        }
+      '';
+
+      description = ''
+        A set of shell script fragments that are executed by a systemd user
+        service when a NixOS system configuration is activated. Examples are
+        rebuilding the .desktop file cache for showing applications in the menu.
+        Since these are executed every time you run
+        <command>nixos-rebuild</command>, it's important that they are
+        idempotent and fast.
+      '';
+
+      type = types.attrsOf types.unspecified;
+
+      apply = set: {
+        script = ''
+          unset PATH
+          for i in ${toString path}; do
+            PATH=$PATH:$i/bin:$i/sbin
+          done
+
+          _status=0
+          trap "_status=1 _localstatus=\$?" ERR
+
+          ${
+            let
+              set' = mapAttrs (n: v: if isString v then noDepEntry v else v) set;
+              withHeadlines = addAttributeName set';
+            in textClosureMap id (withHeadlines) (attrNames withHeadlines)
+          }
+
+          exit $_status
+        '';
+      };
 
     };
 
@@ -128,14 +174,6 @@ in
       ''
         # Various log/runtime directories.
 
-        mkdir -m 0755 -p /run/nix/current-load # for distributed builds
-        mkdir -m 0700 -p /run/nix/remote-stores
-
-        mkdir -m 0755 -p /var/log
-
-        touch /var/log/wtmp /var/log/lastlog # must exist
-        chmod 644 /var/log/wtmp /var/log/lastlog
-
         mkdir -m 1777 -p /var/tmp
 
         # Empty, immutable home directory of many system accounts.
@@ -177,6 +215,14 @@ in
         source ${config.system.build.earlyMountScript}
       '';
 
+    systemd.user = {
+      services.nixos-activation = {
+        description = "Run user specific NixOS activation";
+        script = config.system.userActivationScripts.script;
+        unitConfig.ConditionUser = "!@system";
+        serviceConfig.Type = "oneshot";
+      };
+    };
   };
 
 }
diff --git a/nixos/modules/system/activation/switch-to-configuration.pl b/nixos/modules/system/activation/switch-to-configuration.pl
index c3e469e4b8a1..397b308b7311 100644
--- a/nixos/modules/system/activation/switch-to-configuration.pl
+++ b/nixos/modules/system/activation/switch-to-configuration.pl
@@ -419,7 +419,8 @@ while (my $f = <$listActiveUsers>) {
     my ($uid, $name) = ($+{uid}, $+{user});
     print STDERR "reloading user units for $name...\n";
 
-    system("su", "-s", "@shell@", "-l", $name, "-c", "XDG_RUNTIME_DIR=/run/user/$uid @systemd@/bin/systemctl --user daemon-reload");
+    system("@su@", "-s", "@shell@", "-l", $name, "-c", "XDG_RUNTIME_DIR=/run/user/$uid @systemd@/bin/systemctl --user daemon-reload");
+    system("@su@", "-s", "@shell@", "-l", $name, "-c", "XDG_RUNTIME_DIR=/run/user/$uid @systemd@/bin/systemctl --user start nixos-activation.service");
 }
 
 close $listActiveUsers;
diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index 413543df88c6..a560af5ce96d 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -109,6 +109,7 @@ let
     inherit (pkgs) utillinux coreutils;
     systemd = config.systemd.package;
     shell = "${pkgs.bash}/bin/sh";
+    su = "${pkgs.shadow.su}/bin/su";
 
     inherit children;
     kernelParams = config.boot.kernelParams;
diff --git a/nixos/modules/system/boot/initrd-network.nix b/nixos/modules/system/boot/initrd-network.nix
index 384ae909b701..dd0ea69e9685 100644
--- a/nixos/modules/system/boot/initrd-network.nix
+++ b/nixos/modules/system/boot/initrd-network.nix
@@ -6,11 +6,22 @@ let
 
   cfg = config.boot.initrd.network;
 
+  dhcpinterfaces = lib.attrNames (lib.filterAttrs (iface: v: v.useDHCP == true) (config.networking.interfaces or {}));
+
   udhcpcScript = pkgs.writeScript "udhcp-script"
     ''
       #! /bin/sh
       if [ "$1" = bound ]; then
         ip address add "$ip/$mask" dev "$interface"
+        if [ -n "$mtu" ]; then
+          ip link set mtu "$mtu" dev "$interface"
+        fi
+        if [ -n "$staticroutes" ]; then
+          echo "$staticroutes" \
+            | sed -r "s@(\S+) (\S+)@ ip route add \"\1\" via \"\2\" dev \"$interface\" ; @g" \
+            | sed -r "s@ via \"0\.0\.0\.0\"@@g" \
+            | /bin/sh
+        fi
         if [ -n "$router" ]; then
           ip route add "$router" dev "$interface" # just in case if "$router" is not within "$ip/$mask" (e.g. Hetzner Cloud)
           ip route add default via "$router" dev "$interface"
@@ -93,18 +104,24 @@ in
       ''
 
       # Otherwise, use DHCP.
-      + optionalString config.networking.useDHCP ''
+      + optionalString (config.networking.useDHCP || dhcpinterfaces != []) ''
         if [ -z "$hasNetwork" ]; then
 
           # Bring up all interfaces.
-          for iface in $(cd /sys/class/net && ls); do
+          for iface in $(ls /sys/class/net/); do
             echo "bringing up network interface $iface..."
             ip link set "$iface" up
           done
 
-          # Acquire a DHCP lease.
-          echo "acquiring IP address via DHCP..."
-          udhcpc --quit --now --script ${udhcpcScript} ${udhcpcArgs} && hasNetwork=1
+          # Acquire DHCP leases.
+          for iface in ${ if config.networking.useDHCP then
+                            "$(ls /sys/class/net/ | grep -v ^lo$)"
+                          else
+                            lib.concatMapStringsSep " " lib.escapeShellArg dhcpinterfaces
+                        }; do
+            echo "acquiring IP address via DHCP on $iface..."
+            udhcpc --quit --now -i $iface -O staticroutes --script ${udhcpcScript} ${udhcpcArgs} && hasNetwork=1
+          done
         fi
       ''
 
diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh
index 49764b75a557..03daafa1ce4f 100644
--- a/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixos/modules/system/boot/stage-2-init.sh
@@ -152,6 +152,14 @@ ln -sfn /run/booted-system /nix/var/nix/gcroots/booted-system
 @shell@ @postBootCommands@
 
 
+# Ensure systemd doesn't try to populate /etc, by forcing its first-boot
+# heuristic off. It doesn't matter what's in /etc/machine-id for this purpose,
+# and systemd will immediately fill in the file when it starts, so just
+# creating it is enough. This `: >>` pattern avoids forking and avoids changing
+# the mtime if the file already exists.
+: >> /etc/machine-id
+
+
 # Reset the logging file descriptors.
 exec 1>&$logOutFd 2>&$logErrFd
 exec {logOutFd}>&- {logErrFd}>&-
diff --git a/nixos/modules/system/boot/systemd-lib.nix b/nixos/modules/system/boot/systemd-lib.nix
index 9c8d4a026b4a..68a40377ee13 100644
--- a/nixos/modules/system/boot/systemd-lib.nix
+++ b/nixos/modules/system/boot/systemd-lib.nix
@@ -63,7 +63,7 @@ in rec {
 
   assertValueOneOf = name: values: group: attr:
     optional (attr ? ${name} && !elem attr.${name} values)
-      "Systemd ${group} field `${name}' cannot have value `${attr.${name}}'.";
+      "Systemd ${group} field `${name}' cannot have value `${toString attr.${name}}'.";
 
   assertHasField = name: group: attr:
     optional (!(attr ? ${name}))
diff --git a/nixos/modules/system/boot/systemd-unit-options.nix b/nixos/modules/system/boot/systemd-unit-options.nix
index 2cff25a8c854..5f2bec5c34ae 100644
--- a/nixos/modules/system/boot/systemd-unit-options.nix
+++ b/nixos/modules/system/boot/systemd-unit-options.nix
@@ -394,7 +394,7 @@ in rec {
         Each attribute in this set specifies an option in the
         <literal>[Timer]</literal> section of the unit.  See
         <citerefentry><refentrytitle>systemd.timer</refentrytitle>
-        <manvolnum>7</manvolnum></citerefentry> and
+        <manvolnum>5</manvolnum></citerefentry> and
         <citerefentry><refentrytitle>systemd.time</refentrytitle>
         <manvolnum>7</manvolnum></citerefentry> for details.
       '';
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 3ac4c02b61f5..a1412bc32904 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -747,6 +747,7 @@ in
 
       "systemd/journald.conf".text = ''
         [Journal]
+        Storage=persistent
         RateLimitInterval=${config.services.journald.rateLimitInterval}
         RateLimitBurst=${toString config.services.journald.rateLimitBurst}
         ${optionalString (config.services.journald.console != "") ''
@@ -783,19 +784,6 @@ in
 
     services.dbus.enable = true;
 
-    system.activationScripts.systemd = stringAfter [ "groups" ]
-      ''
-        mkdir -m 0755 -p /var/lib/udev
-
-        if ! [ -e /etc/machine-id ]; then
-          ${systemd}/bin/systemd-machine-id-setup
-        fi
-
-        # Keep a persistent journal. Note that systemd-tmpfiles will
-        # set proper ownership/permissions.
-        mkdir -m 0700 -p /var/log/journal
-      '';
-
     users.users.systemd-network.uid = config.ids.uids.systemd-network;
     users.groups.systemd-network.gid = config.ids.gids.systemd-network;
     users.users.systemd-resolve.uid = config.ids.uids.systemd-resolve;
diff --git a/nixos/modules/virtualisation/hyperv-guest.nix b/nixos/modules/virtualisation/hyperv-guest.nix
index ecd2a8117710..0f1f052880c5 100644
--- a/nixos/modules/virtualisation/hyperv-guest.nix
+++ b/nixos/modules/virtualisation/hyperv-guest.nix
@@ -9,20 +9,47 @@ in {
   options = {
     virtualisation.hypervGuest = {
       enable = mkEnableOption "Hyper-V Guest Support";
+
+      videoMode = mkOption {
+        type = types.str;
+        default = "1152x864";
+        example = "1024x768";
+        description = ''
+          Resolution at which to initialize the video adapter.
+
+          Supports screen resolution up to Full HD 1920x1080 with 32 bit color
+          on Windows Server 2012, and 1600x1200 with 16 bit color on Windows
+          Server 2008 R2 or earlier.
+        '';
+      };
     };
   };
 
   config = mkIf cfg.enable {
+    boot = {
+      initrd.kernelModules = [
+        "hv_balloon" "hv_netvsc" "hv_storvsc" "hv_utils" "hv_vmbus"
+      ];
+
+      kernelParams = [
+        "video=hyperv_fb:${cfg.videoMode}"
+      ];
+    };
+
     environment.systemPackages = [ config.boot.kernelPackages.hyperv-daemons.bin ];
 
     security.rngd.enable = false;
 
-    # enable hotadding memory
+    # enable hotadding cpu/memory
     services.udev.packages = lib.singleton (pkgs.writeTextFile {
-      name = "hyperv-memory-hotadd-udev-rules";
-      destination = "/etc/udev/rules.d/99-hyperv-memory-hotadd.rules";
+      name = "hyperv-cpu-and-memory-hotadd-udev-rules";
+      destination = "/etc/udev/rules.d/99-hyperv-cpu-and-memory-hotadd.rules";
       text = ''
-        ACTION="add", SUBSYSTEM=="memory", ATTR{state}="online"
+        # Memory hotadd
+        SUBSYSTEM=="memory", ACTION=="add", DEVPATH=="/devices/system/memory/memory[0-9]*", TEST=="state", ATTR{state}="online"
+
+        # CPU hotadd
+        SUBSYSTEM=="cpu", ACTION=="add", DEVPATH=="/devices/system/cpu/cpu[0-9]*", TEST=="online", ATTR{online}="1"
       '';
     });
 
diff --git a/nixos/modules/virtualisation/virtualbox-image.nix b/nixos/modules/virtualisation/virtualbox-image.nix
index 60048911658c..3d4c06f1f23f 100644
--- a/nixos/modules/virtualisation/virtualbox-image.nix
+++ b/nixos/modules/virtualisation/virtualbox-image.nix
@@ -12,7 +12,7 @@ in {
     virtualbox = {
       baseImageSize = mkOption {
         type = types.int;
-        default = 10 * 1024;
+        default = 100 * 1024;
         description = ''
           The size of the VirtualBox base image in MiB.
         '';
diff --git a/nixos/release.nix b/nixos/release.nix
index e53ebff9b6dc..8016dba09152 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -250,6 +250,7 @@ in rec {
   tests.acme = callTest tests/acme.nix {};
   tests.avahi = callTest tests/avahi.nix {};
   tests.beegfs = callTest tests/beegfs.nix {};
+  tests.upnp = callTest tests/upnp.nix {};
   tests.bittorrent = callTest tests/bittorrent.nix {};
   tests.bind = callTest tests/bind.nix {};
   #tests.blivet = callTest tests/blivet.nix {};   # broken since 2017-07024
@@ -362,6 +363,7 @@ in rec {
   tests.netdata = callTest tests/netdata.nix { };
   tests.networking.networkd = callSubTests tests/networking.nix { networkd = true; };
   tests.networking.scripted = callSubTests tests/networking.nix { networkd = false; };
+  tests.nextcloud = callSubTests tests/nextcloud { };
   # TODO: put in networking.nix after the test becomes more complete
   tests.networkingProxy = callTest tests/networking-proxy.nix {};
   tests.nexus = callTest tests/nexus.nix { };
diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix
index 609b1ff7a83a..8977be9b859f 100644
--- a/nixos/tests/bittorrent.nix
+++ b/nixos/tests/bittorrent.nix
@@ -13,57 +13,95 @@ let
   # Some random file to serve.
   file = pkgs.hello.src;
 
-  miniupnpdConf = nodes: pkgs.writeText "miniupnpd.conf"
-    ''
-      ext_ifname=eth1
-      listening_ip=${(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ipv4.addresses).address}/24
-      allow 1024-65535 192.168.2.0/24 1024-65535
-    '';
-
+  internalRouterAddress = "192.168.3.1";
+  internalClient1Address = "192.168.3.2";
+  externalRouterAddress = "80.100.100.1";
+  externalClient2Address = "80.100.100.2";
+  externalTrackerAddress = "80.100.100.3";
 in
 
 {
   name = "bittorrent";
   meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ domenkozar eelco chaoflow rob wkennington ];
+    maintainers = [ domenkozar eelco chaoflow rob wkennington bobvanderlinden ];
   };
 
   nodes =
     { tracker =
         { pkgs, ... }:
-        { environment.systemPackages = [ pkgs.transmission pkgs.opentracker ];
+        { 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; # FIXME: figure out what ports we actually need
+          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, ... }:
-        { environment.systemPackages = [ pkgs.miniupnpd ];
-          virtualisation.vlans = [ 1 2 ];
+        { pkgs, nodes, ... }:
+        { virtualisation.vlans = [ 1 2 ];
           networking.nat.enable = true;
           networking.nat.internalInterfaces = [ "eth2" ];
           networking.nat.externalInterface = "eth1";
-          networking.firewall.enable = false;
+          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}
+            '';
+          };
         };
 
       client1 =
         { pkgs, nodes, ... }:
-        { environment.systemPackages = [ pkgs.transmission ];
+        { environment.systemPackages = [ pkgs.transmission pkgs.miniupnpc ];
           virtualisation.vlans = [ 2 ];
-          networking.defaultGateway =
-            (pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ipv4.addresses).address;
+          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;
         };
 
       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;
         };
     };
 
@@ -72,43 +110,38 @@ in
     ''
       startAll;
 
-      # Enable NAT on the router and start miniupnpd.
-      $router->waitForUnit("nat");
-      $router->succeed(
-          "iptables -w -t nat -N MINIUPNPD",
-          "iptables -w -t nat -A PREROUTING -i eth1 -j MINIUPNPD",
-          "echo 1 > /proc/sys/net/ipv4/ip_forward",
-          "miniupnpd -f ${miniupnpdConf nodes}"
-      );
+      # Wait for network and miniupnpd.
+      $router->waitForUnit("network-online.target");
+      $router->waitForUnit("miniupnpd");
 
       # Create the torrent.
       $tracker->succeed("mkdir /tmp/data");
       $tracker->succeed("cp ${file} /tmp/data/test.tar.bz2");
-      $tracker->succeed("transmission-create /tmp/data/test.tar.bz2 -p -t http://${(pkgs.lib.head nodes.tracker.config.networking.interfaces.eth1.ipv4.addresses).address}:6969/announce -o /tmp/test.torrent");
+      $tracker->succeed("transmission-create /tmp/data/test.tar.bz2 --private --tracker http://${externalTrackerAddress}:6969/announce --outfile /tmp/test.torrent");
       $tracker->succeed("chmod 644 /tmp/test.torrent");
 
       # Start the tracker.  !!! use a less crappy tracker
-      $tracker->waitForUnit("network.target");
-      $tracker->succeed("opentracker -p 6969 >&2 &");
+      $tracker->waitForUnit("network-online.target");
+      $tracker->waitForUnit("opentracker.service");
       $tracker->waitForOpenPort(6969);
 
       # Start the initial seeder.
-      my $pid = $tracker->succeed("transmission-cli /tmp/test.torrent -M -w /tmp/data >&2 & echo \$!");
+      $tracker->succeed("transmission-remote --add /tmp/test.torrent --no-portmap --no-dht --download-dir /tmp/data");
 
       # Now we should be able to download from the client behind the NAT.
       $tracker->waitForUnit("httpd");
-      $client1->waitForUnit("network.target");
-      $client1->succeed("transmission-cli http://tracker/test.torrent -w /tmp >&2 &");
+      $client1->waitForUnit("network-online.target");
+      $client1->succeed("transmission-remote --add http://${externalTrackerAddress}/test.torrent --download-dir /tmp >&2 &");
       $client1->waitForFile("/tmp/test.tar.bz2");
       $client1->succeed("cmp /tmp/test.tar.bz2 ${file}");
 
       # Bring down the initial seeder.
-      $tracker->succeed("kill -9 $pid");
+      # $tracker->stopJob("transmission");
 
       # Now download from the second client.  This can only succeed if
       # the first client created a NAT hole in the router.
-      $client2->waitForUnit("network.target");
-      $client2->succeed("transmission-cli http://tracker/test.torrent -M -w /tmp >&2 &");
+      $client2->waitForUnit("network-online.target");
+      $client2->succeed("transmission-remote --add http://${externalTrackerAddress}/test.torrent --no-portmap --no-dht --download-dir /tmp >&2 &");
       $client2->waitForFile("/tmp/test.tar.bz2");
       $client2->succeed("cmp /tmp/test.tar.bz2 ${file}");
     '';
diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix
index 6d72ac997f8d..3ad55651b112 100644
--- a/nixos/tests/misc.nix
+++ b/nixos/tests/misc.nix
@@ -78,6 +78,8 @@ import ./make-test.nix ({ pkgs, ...} : rec {
 
       # Test whether we have a reboot record in wtmp.
       subtest "reboot-wtmp", sub {
+          $machine->shutdown;
+          $machine->waitForUnit('multi-user.target');
           $machine->succeed("last | grep reboot >&2");
       };
 
diff --git a/nixos/tests/nextcloud/basic.nix b/nixos/tests/nextcloud/basic.nix
new file mode 100644
index 000000000000..c3b710f0f904
--- /dev/null
+++ b/nixos/tests/nextcloud/basic.nix
@@ -0,0 +1,56 @@
+import ../make-test.nix ({ pkgs, ...}: let
+  adminpass = "notproduction";
+  adminuser = "root";
+in {
+  name = "nextcloud-basic";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ globin eqyiel ];
+  };
+
+  nodes = {
+    # The only thing the client needs to do is download a file.
+    client = { ... }: {};
+
+    nextcloud = { config, pkgs, ... }: {
+      networking.firewall.allowedTCPPorts = [ 80 ];
+
+      services.nextcloud = {
+        enable = true;
+        nginx.enable = true;
+        hostName = "nextcloud";
+        config = {
+          # Don't inherit adminuser since "root" is supposed to be the default
+          inherit adminpass;
+        };
+      };
+    };
+  };
+
+  testScript = let
+    withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
+      #!${pkgs.stdenv.shell}
+      export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
+      export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/webdav/"
+      export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
+      export RCLONE_CONFIG_NEXTCLOUD_USER="${adminuser}"
+      export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${adminpass})"
+      "''${@}"
+    '';
+    copySharedFile = pkgs.writeScript "copy-shared-file" ''
+      #!${pkgs.stdenv.shell}
+      echo 'hi' | ${withRcloneEnv} ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file
+    '';
+
+    diffSharedFile = pkgs.writeScript "diff-shared-file" ''
+      #!${pkgs.stdenv.shell}
+      diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
+    '';
+  in ''
+    startAll();
+    $nextcloud->waitForUnit("multi-user.target");
+    $nextcloud->succeed("curl -sSf http://nextcloud/login");
+    $nextcloud->succeed("${withRcloneEnv} ${copySharedFile}");
+    $client->waitForUnit("multi-user.target");
+    $client->succeed("${withRcloneEnv} ${diffSharedFile}");
+  '';
+})
diff --git a/nixos/tests/nextcloud/default.nix b/nixos/tests/nextcloud/default.nix
new file mode 100644
index 000000000000..66da6794b961
--- /dev/null
+++ b/nixos/tests/nextcloud/default.nix
@@ -0,0 +1,6 @@
+{ system ? builtins.currentSystem }:
+{
+  basic = import ./basic.nix { inherit system; };
+  with-postgresql-and-redis = import ./with-postgresql-and-redis.nix { inherit system; };
+  with-mysql-and-memcached = import ./with-mysql-and-memcached.nix { inherit system; };
+}
diff --git a/nixos/tests/nextcloud/with-mysql-and-memcached.nix b/nixos/tests/nextcloud/with-mysql-and-memcached.nix
new file mode 100644
index 000000000000..c0d347238b47
--- /dev/null
+++ b/nixos/tests/nextcloud/with-mysql-and-memcached.nix
@@ -0,0 +1,97 @@
+import ../make-test.nix ({ pkgs, ...}: let
+  adminpass = "hunter2";
+  adminuser = "root";
+in {
+  name = "nextcloud-with-mysql-and-memcached";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eqyiel ];
+  };
+
+  nodes = {
+    # The only thing the client needs to do is download a file.
+    client = { ... }: {};
+
+    nextcloud = { config, pkgs, ... }: {
+      networking.firewall.allowedTCPPorts = [ 80 ];
+
+      services.nextcloud = {
+        enable = true;
+        hostName = "nextcloud";
+        nginx.enable = true;
+        https = true;
+        caching = {
+          apcu = true;
+          redis = false;
+          memcached = true;
+        };
+        config = {
+          dbtype = "mysql";
+          dbname = "nextcloud";
+          dbuser = "nextcloud";
+          dbhost = "127.0.0.1";
+          dbport = 3306;
+          dbpass = "hunter2";
+          # Don't inherit adminuser since "root" is supposed to be the default
+          inherit adminpass;
+        };
+      };
+
+      services.mysql = {
+        enable = true;
+        bind = "127.0.0.1";
+        package = pkgs.mariadb;
+        initialScript = pkgs.writeText "mysql-init" ''
+          CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'hunter2';
+          CREATE DATABASE IF NOT EXISTS nextcloud;
+          GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
+            CREATE TEMPORARY TABLES ON nextcloud.* TO 'nextcloud'@'localhost'
+            IDENTIFIED BY 'hunter2';
+          FLUSH privileges;
+        '';
+      };
+
+      systemd.services."nextcloud-setup"= {
+        requires = ["mysql.service"];
+        after = ["mysql.service"];
+      };
+
+      services.memcached.enable = true;
+    };
+  };
+
+  testScript = let
+    configureMemcached = pkgs.writeScript "configure-memcached" ''
+      #!${pkgs.stdenv.shell}
+      nextcloud-occ config:system:set memcached_servers 0 0 --value 127.0.0.1 --type string
+      nextcloud-occ config:system:set memcached_servers 0 1 --value 11211 --type integer
+      nextcloud-occ config:system:set memcache.local --value '\OC\Memcache\APCu' --type string
+      nextcloud-occ config:system:set memcache.distributed --value '\OC\Memcache\Memcached' --type string
+    '';
+    withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
+      #!${pkgs.stdenv.shell}
+      export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
+      export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/webdav/"
+      export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
+      export RCLONE_CONFIG_NEXTCLOUD_USER="${adminuser}"
+      export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${adminpass})"
+    '';
+    copySharedFile = pkgs.writeScript "copy-shared-file" ''
+      #!${pkgs.stdenv.shell}
+      echo 'hi' | ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file
+    '';
+
+    diffSharedFile = pkgs.writeScript "diff-shared-file" ''
+      #!${pkgs.stdenv.shell}
+      diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
+    '';
+  in ''
+    startAll();
+    $nextcloud->waitForUnit("multi-user.target");
+    $nextcloud->succeed("${configureMemcached}");
+    $nextcloud->succeed("curl -sSf http://nextcloud/login");
+    $nextcloud->succeed("${withRcloneEnv} ${copySharedFile}");
+    $client->waitForUnit("multi-user.target");
+    $client->succeed("${withRcloneEnv} ${diffSharedFile}");
+
+  '';
+})
diff --git a/nixos/tests/nextcloud/with-postgresql-and-redis.nix b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
new file mode 100644
index 000000000000..0351d4db69ac
--- /dev/null
+++ b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
@@ -0,0 +1,130 @@
+import ../make-test.nix ({ pkgs, ...}: let
+  adminpass = "hunter2";
+  adminuser = "custom-admin-username";
+in {
+  name = "nextcloud-with-postgresql-and-redis";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ eqyiel ];
+  };
+
+  nodes = {
+    # The only thing the client needs to do is download a file.
+    client = { ... }: {};
+
+    nextcloud = { config, pkgs, ... }: {
+      networking.firewall.allowedTCPPorts = [ 80 ];
+
+      services.nextcloud = {
+        enable = true;
+        hostName = "nextcloud";
+        nginx.enable = true;
+        caching = {
+          apcu = false;
+          redis = true;
+          memcached = false;
+        };
+        config = {
+          dbtype = "pgsql";
+          dbname = "nextcloud";
+          dbuser = "nextcloud";
+          dbhost = "localhost";
+          dbpassFile = toString (pkgs.writeText "db-pass-file" ''
+            hunter2
+          '');
+          inherit adminuser;
+          adminpassFile = toString (pkgs.writeText "admin-pass-file" ''
+            ${adminpass}
+          '');
+        };
+      };
+
+      services.redis = {
+        unixSocket = "/var/run/redis/redis.sock";
+        enable = true;
+        extraConfig = ''
+          unixsocketperm 770
+        '';
+      };
+
+      systemd.services.redis = {
+        preStart = ''
+          mkdir -p /var/run/redis
+          chown ${config.services.redis.user}:${config.services.nginx.group} /var/run/redis
+        '';
+        serviceConfig.PermissionsStartOnly = true;
+      };
+
+      systemd.services."nextcloud-setup"= {
+        requires = ["postgresql.service"];
+        after = [
+          "postgresql.service"
+          "chown-redis-socket.service"
+        ];
+      };
+
+      # At the time of writing, redis creates its socket with the "nobody"
+      # group.  I figure this is slightly less bad than making the socket world
+      # readable.
+      systemd.services."chown-redis-socket" = {
+        enable = true;
+        script = ''
+          until ${pkgs.redis}/bin/redis-cli ping; do
+            echo "waiting for redis..."
+            sleep 1
+          done
+          chown ${config.services.redis.user}:${config.services.nginx.group} /var/run/redis/redis.sock
+        '';
+        after = [ "redis.service" ];
+        requires = [ "redis.service" ];
+        wantedBy = [ "redis.service" ];
+        serviceConfig = {
+          Type = "oneshot";
+        };
+      };
+
+      services.postgresql = {
+        enable = true;
+        initialScript = pkgs.writeText "psql-init" ''
+          create role nextcloud with login password 'hunter2';
+          create database nextcloud with owner nextcloud;
+        '';
+      };
+    };
+  };
+
+  testScript = let
+    configureRedis = pkgs.writeScript "configure-redis" ''
+      #!${pkgs.stdenv.shell}
+      nextcloud-occ config:system:set redis 'host' --value '/var/run/redis/redis.sock' --type string
+      nextcloud-occ config:system:set redis 'port' --value 0 --type integer
+      nextcloud-occ config:system:set memcache.local --value '\OC\Memcache\Redis' --type string
+      nextcloud-occ config:system:set memcache.locking --value '\OC\Memcache\Redis' --type string
+    '';
+    withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
+      #!${pkgs.stdenv.shell}
+      export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
+      export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/webdav/"
+      export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
+      export RCLONE_CONFIG_NEXTCLOUD_USER="${adminuser}"
+      export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${adminpass})"
+      "''${@}"
+    '';
+    copySharedFile = pkgs.writeScript "copy-shared-file" ''
+      #!${pkgs.stdenv.shell}
+      echo 'hi' | ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file
+    '';
+
+    diffSharedFile = pkgs.writeScript "diff-shared-file" ''
+      #!${pkgs.stdenv.shell}
+      diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
+    '';
+  in ''
+    startAll();
+    $nextcloud->waitForUnit("multi-user.target");
+    $nextcloud->succeed("${configureRedis}");
+    $nextcloud->succeed("curl -sSf http://nextcloud/login");
+    $nextcloud->succeed("${withRcloneEnv} ${copySharedFile}");
+    $client->waitForUnit("multi-user.target");
+    $client->succeed("${withRcloneEnv} ${diffSharedFile}");
+  '';
+})
diff --git a/nixos/tests/upnp.nix b/nixos/tests/upnp.nix
new file mode 100644
index 000000000000..3f2dd13fb560
--- /dev/null
+++ b/nixos/tests/upnp.nix
@@ -0,0 +1,94 @@
+# This tests whether UPnP port mappings can be created using Miniupnpd
+# and Miniupnpc.
+# It runs a Miniupnpd service on one machine, and verifies
+# a client can indeed create a port mapping using Miniupnpc. If
+# this succeeds an external client will try to connect to the port
+# mapping.
+
+import ./make-test.nix ({ pkgs, ... }:
+
+let
+  internalRouterAddress = "192.168.3.1";
+  internalClient1Address = "192.168.3.2";
+  externalRouterAddress = "80.100.100.1";
+  externalClient2Address = "80.100.100.2";
+in
+{
+  name = "upnp";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ bobvanderlinden ];
+  };
+
+  nodes =
+    {
+      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.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}
+            '';
+          };
+        };
+
+      client1 =
+        { pkgs, nodes, ... }:
+        { environment.systemPackages = [ pkgs.miniupnpc pkgs.netcat ];
+          virtualisation.vlans = [ 2 ];
+          networking.defaultGateway = internalRouterAddress;
+          networking.interfaces.eth1.ipv4.addresses = [
+            { address = internalClient1Address; prefixLength = 24; }
+          ];
+          networking.firewall.enable = false;
+
+          services.httpd.enable = true;
+          services.httpd.listen = [{ ip = "*"; port = 9000; }];
+          services.httpd.adminAddr = "foo@example.org";
+          services.httpd.documentRoot = "/tmp";
+        };
+
+      client2 =
+        { pkgs, ... }:
+        { environment.systemPackages = [ pkgs.miniupnpc ];
+          virtualisation.vlans = [ 1 ];
+          networking.interfaces.eth1.ipv4.addresses = [
+            { address = externalClient2Address; prefixLength = 24; }
+          ];
+          networking.firewall.enable = false;
+        };
+    };
+
+  testScript =
+    { nodes, ... }:
+    ''
+      startAll;
+
+      # Wait for network and miniupnpd.
+      $router->waitForUnit("network-online.target");
+      # $router->waitForUnit("nat");
+      $router->waitForUnit("firewall.service");
+      $router->waitForUnit("miniupnpd");
+
+      $client1->waitForUnit("network-online.target");
+
+      $client1->succeed("upnpc -a ${internalClient1Address} 9000 9000 TCP");
+
+      $client1->waitForUnit("httpd");
+      $client2->waitUntilSucceeds("curl http://${externalRouterAddress}:9000/");
+    '';
+
+})
diff --git a/pkgs/applications/altcoins/bitcoin.nix b/pkgs/applications/altcoins/bitcoin.nix
index dc463f386582..c266fa2fef25 100644
--- a/pkgs/applications/altcoins/bitcoin.nix
+++ b/pkgs/applications/altcoins/bitcoin.nix
@@ -1,20 +1,21 @@
 { stdenv, fetchurl, pkgconfig, autoreconfHook, openssl, db48, boost, zeromq
-, zlib, miniupnpc, qtbase ? null, qttools ? null, utillinux, protobuf, qrencode, libevent
+, zlib, miniupnpc, qtbase ? null, qttools ? null, utillinux, protobuf, python3, qrencode, libevent
 , withGui }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec{
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version;
-  version = "0.16.3";
+  version = "0.17.0";
 
   src = fetchurl {
     urls = [ "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
              "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
            ];
-    sha256 = "060223dzzk2izfzhxwlzzd0fhbgglvbgps2nyc4zz767vybysvl3";
+    sha256 = "0pkq28d2dj22qrxyyg9kh0whmhj7ghyabnhyqldbljv4a7l3kvwq";
   };
 
-  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  nativeBuildInputs = [ pkgconfig autoreconfHook ]
+                   ++ optionals doCheck [ python3 ];
   buildInputs = [ openssl db48 boost zlib zeromq
                   miniupnpc protobuf libevent]
                   ++ optionals stdenv.isLinux [ utillinux ]
@@ -30,9 +31,11 @@ stdenv.mkDerivation rec{
                                             "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
                                           ];
 
-  # Fails with "This application failed to start because it could not
-  # find or load the Qt platform plugin "minimal""
-  doCheck = false;
+  doCheck = true;
+
+  # QT_PLUGIN_PATH needs to be set when executing QT, which is needed when testing Bitcoin's GUI.
+  # See also https://github.com/NixOS/nixpkgs/issues/24256
+  checkFlags = optionals withGui [ "QT_PLUGIN_PATH=${qtbase}/lib/qt-5.${versions.minor qtbase.version}/plugins" ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/altcoins/nano-wallet/default.nix b/pkgs/applications/altcoins/nano-wallet/default.nix
index 4667d4029878..3426d8d07a08 100644
--- a/pkgs/applications/altcoins/nano-wallet/default.nix
+++ b/pkgs/applications/altcoins/nano-wallet/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   name = "nano-wallet-${version}";
-  version = "16.0";
+  version = "16.1";
 
   src = fetchFromGitHub {
     owner = "nanocurrency";
     repo = "raiblocks";
     rev = "V${version}";
-    sha256 = "0fk8jlas3khdh3nlv40krsjdifxp9agblvzap6k93wmm9y34h41c";
+    sha256 = "0sk9g4fv494a5w75vs5a3s5c139lxzz1svz0cn1hkhxqlmz8w081";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/altcoins/parity-ui/default.nix b/pkgs/applications/altcoins/parity-ui/default.nix
index 8566e6037d6f..ec2e571e3f0b 100644
--- a/pkgs/applications/altcoins/parity-ui/default.nix
+++ b/pkgs/applications/altcoins/parity-ui/default.nix
@@ -6,11 +6,11 @@ uiEnv = pkgs.callPackage ./env.nix { };
 
 in stdenv.mkDerivation rec {
   name = "parity-ui-${version}";
-  version = "0.2.8";
+  version = "0.3.4";
 
   src = fetchurl {
     url = "https://github.com/parity-js/shell/releases/download/v${version}/parity-ui_${version}_amd64.deb";
-    sha256 = "1nyarq73jdknhax68cq2i868sznghzj70kvk4ixypxnjb1q6a53a";
+    sha256 = "1xbd00r9ph8w2d6d2c5xg4b5l74ljzs50rpc6kahfznypmh4kr73";
     name = "${name}.deb";
   };
 
diff --git a/pkgs/applications/audio/abcde/abcde.patch b/pkgs/applications/audio/abcde/abcde.patch
deleted file mode 100644
index ae187043e6c5..000000000000
--- a/pkgs/applications/audio/abcde/abcde.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Two changes:
-
-* Add an alias for `which', so abcde can find things in store
-* Choose the right CDROM reader syntax for `cd-paranoia'
-
---- abcde-2.5.4/abcde~	2012-09-18 06:09:31.000000000 -0700
-+++ abcde-2.5.4/abcde	2012-10-27 00:08:48.000862364 -0700
-@@ -17,6 +17,11 @@
- 
- VERSION='2.5.4'
- 
-+which ()
-+{
-+  type -P $1
-+}
-+
- usage ()
- {
- echo "This is abcde v$VERSION."
-@@ -3497,6 +3502,10 @@
- 	for DEFAULT_CDROMREADER in $DEFAULT_CDROMREADERS; do
- 		if new_checkexec $DEFAULT_CDROMREADER; then
- 			CDROMREADERSYNTAX=$DEFAULT_CDROMREADER
-+                        case "$DEFAULT_CDROMREADER" in
-+			  cd-paranoia)  CDROMREADERSYNTAX=cdparanoia;;
-+			  *)            CDROMREADERSYNTAX=$DEFAULT_CDROMREADER;;
-+			esac
- 			break
- 		fi
- 	done
diff --git a/pkgs/applications/audio/abcde/default.nix b/pkgs/applications/audio/abcde/default.nix
index 7f2080c6fd63..58e8ecc4fcab 100644
--- a/pkgs/applications/audio/abcde/default.nix
+++ b/pkgs/applications/audio/abcde/default.nix
@@ -3,60 +3,58 @@
 , perl, MusicBrainz, MusicBrainzDiscID
 , makeWrapper }:
 
-let version = "2.8.1";
+let version = "2.9.2";
 in
   stdenv.mkDerivation {
     name = "abcde-${version}";
     src = fetchurl {
       url = "https://abcde.einval.com/download/abcde-${version}.tar.gz";
-      sha256 = "0f9bjs0phk23vry7gvh0cll9vl6kmc1y4fwwh762scfdvpbp3774";
+      sha256 = "13c5yvp87ckqgha160ym5rdr1a4divgvyqbjh0yb6ffclip6qd9l";
     };
 
     # FIXME: This package does not support `distmp3', `eject', etc.
 
-    patches = [ ./abcde.patch ];
-
     configurePhase = ''
       sed -i "s|^[[:blank:]]*prefix *=.*$|prefix = $out|g ;
               s|^[[:blank:]]*etcdir *=.*$|etcdir = $out/etc|g ;
               s|^[[:blank:]]*INSTALL *=.*$|INSTALL = install -c|g" \
         "Makefile";
 
-      # We use `cd-paranoia' from GNU libcdio, which contains a hyphen
-      # in its name, unlike Xiph's cdparanoia.
-      sed -i "s|^[[:blank:]]*CDPARANOIA=.*$|CDPARANOIA=cd-paranoia|g ;
-              s|^[[:blank:]]*DEFAULT_CDROMREADERS=.*$|DEFAULT_CDROMREADERS=\"cd-paranoia cdda2wav\"|g" \
-        "abcde"
+      echo 'CDPARANOIA=${libcdio-paranoia}/bin/cd-paranoia' >>abcde.conf
+      echo CDROMREADERSYNTAX=cdparanoia >>abcde.conf
 
       substituteInPlace "abcde" \
         --replace "/etc/abcde.conf" "$out/etc/abcde.conf"
-
     '';
 
-    buildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
 
-    propagatedBuildInputs = [ perl MusicBrainz MusicBrainzDiscID ];
+    buildInputs = [ perl MusicBrainz MusicBrainzDiscID ];
 
     installFlags = [ "sysconfdir=$(out)/etc" ];
 
     postFixup = ''
       for cmd in abcde cddb-tool abcde-musicbrainz-tool; do
-        wrapProgram "$out/bin/$cmd" --prefix PATH ":" \
-          ${stdenv.lib.makeBinPath [ "$out" which libcdio-paranoia cddiscid wget vorbis-tools id3v2 eyeD3 lame flac glyr ]}
+        wrapProgram "$out/bin/$cmd" \
+          --prefix PERL5LIB : "$PERL5LIB" \
+          --prefix PATH ":" ${stdenv.lib.makeBinPath [
+            "$out" which libcdio-paranoia cddiscid wget
+            vorbis-tools id3v2 eyeD3 lame flac glyr
+          ]}
       done
     '';
 
-    meta = {
+    meta = with stdenv.lib; {
       homepage = http://abcde.einval.com/wiki/;
-      license = stdenv.lib.licenses.gpl2Plus;
+      license = licenses.gpl2Plus;
+      maintainers = with maintainers; [ gebner ];
       description = "Command-line audio CD ripper";
-
       longDescription = ''
         abcde is a front-end command-line utility (actually, a shell
         script) that grabs tracks off a CD, encodes them to
         Ogg/Vorbis, MP3, FLAC, Ogg/Speex and/or MPP/MP+ (Musepack)
         format, and tags them, all in one go.
       '';
-      platforms = stdenv.lib.platforms.linux;
+      platforms = platforms.linux;
     };
   }
diff --git a/pkgs/applications/audio/easytag/default.nix b/pkgs/applications/audio/easytag/default.nix
index f3bcff7a2c51..e61b9d8b290d 100644
--- a/pkgs/applications/audio/easytag/default.nix
+++ b/pkgs/applications/audio/easytag/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1mbxnqrw1fwcgraa1bgik25vdzvf97vma5pzknbwbqq5ly9fwlgw";
   };
 
diff --git a/pkgs/applications/audio/elisa/default.nix b/pkgs/applications/audio/elisa/default.nix
index 2d35ebb41aee..00e10a2ff1e2 100644
--- a/pkgs/applications/audio/elisa/default.nix
+++ b/pkgs/applications/audio/elisa/default.nix
@@ -7,13 +7,13 @@
 
 mkDerivation rec {
   name = "elisa-${version}";
-  version = "0.2.80";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner  = "KDE";
     repo   = "elisa";
     rev    = "v${version}";
-    sha256 = "0wc2kkp28gp1rfgg14a769lalwd44yz7jxkrzanh91v5j2kkln07";
+    sha256 = "0bpkr5rp9nfa2wzm6w3xkhsfgf5dbgxbmhckjh9wkxal3mncpkg4";
   };
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
diff --git a/pkgs/applications/audio/lsp-plugins/default.nix b/pkgs/applications/audio/lsp-plugins/default.nix
new file mode 100644
index 000000000000..d567dc584d8b
--- /dev/null
+++ b/pkgs/applications/audio/lsp-plugins/default.nix
@@ -0,0 +1,160 @@
+{ stdenv, fetchFromGitHub, pkgconfig, makeWrapper
+, libsndfile, jack2Full
+, libGLU, libGL, lv2, cairo
+, ladspaH, php, expat }:
+
+stdenv.mkDerivation rec {
+  pname = "lsp-plugins";
+  version = "1.1.4";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "sadko4u";
+    repo = "${pname}";
+    rev = "${name}";
+    sha256 = "0vb8ax0w4d2a153wxrhkpi21fxsv7c24k57vhfgmm1lqwv6pbl69";
+  };
+
+  nativeBuildInputs = [ pkgconfig php expat ];
+  buildInputs = [ jack2Full libsndfile libGLU libGL lv2 cairo ladspaH makeWrapper ];
+
+  makeFlags = [
+    "BIN_PATH=$(out)/bin"
+    "LIB_PATH=$(out)/lib"
+    "DOC_PATH=$(out)/share/doc"
+  ];
+
+  NIX_CFLAGS_COMPILE = [ "-DLSP_NO_EXPERIMENTAL" ];
+
+  patchPhase = ''
+    runHook prePatch
+    substituteInPlace Makefile --replace "/usr/lib" "$out/lib"
+    substituteInPlace ./include/container/jack/main.h --replace "/usr/lib" "$out/lib"
+    substituteInPlace ./include/container/vst/main.h --replace "/usr/lib" "$out/lib"
+    # for https://github.com/sadko4u/lsp-plugins/issues/7#issuecomment-426561549 :
+    sed -i '/X11__NET_WM_WINDOW_TYPE_DOCK;/d' ./src/ui/ws/x11/X11Window.cpp
+    runHook postPatch
+  '';
+
+  doCheck = true;
+
+  checkPhase = ''
+    runHook preCheck
+    TEST_PATH=$(pwd)".build-test"
+    make OBJDIR=$TEST_PATH test
+    $TEST_PATH/lsp-plugins-test utest
+    runHook postCheck
+  '';
+
+  buildFlags = "release";
+
+  meta = with stdenv.lib;
+    { description = "Collection of open-source audio plugins";
+      longDescription = ''
+        Compatible with follwing formats:
+
+        - LADSPA - set of plugins for Linux Audio Developer's Simple Plugin API
+        - LV2 - set of plugins and UIs for Linux Audio Developer's Simple Plugin API (LADSPA) version 2
+        - LinuxVST - set of plugins and UIs for Steinberg's VST 2.4 format ported on GNU/Linux Platform
+        - JACK - Standalone versions for JACK Audio connection Kit with UI
+
+        Contains the following plugins:
+
+        - Limiter Mono - Begrenzer Mono
+        - Limiter Stereo - Begrenzer Stereo
+        - Dynamic Processor LeftRight - Dynamikprozessor LeftRight
+        - Dynamic Processor MidSide - Dynamikprozessor MidSide
+        - Dynamic Processor Mono - Dynamikprozessor Mono
+        - Dynamic Processor Stereo - Dynamikprozessor Stereo
+        - Expander LeftRight - Expander LeftRight
+        - Expander MidSide - Expander MidSide
+        - Expander Mono - Expander Mono
+        - Expander Stereo - Expander Stereo
+        - Gate LeftRight - Gate LeftRight
+        - Gate MidSide - Gate MidSide
+        - Gate Mono - Gate Mono
+        - Gate Stereo - Gate Stereo
+        - Graphic Equalizer x16 LeftRight - Grafischer Entzerrer x16 LeftRight
+        - Graphic Equalizer x16 MidSide - Grafischer Entzerrer x16 MidSide
+        - Graphic Equalizer x16 Mono - Grafischer Entzerrer x16 Mono
+        - Graphic Equalizer x16 Stereo - Grafischer Entzerrer x16 Stereo
+        - Graphic Equalizer x32 LeftRight - Grafischer Entzerrer x32 LeftRight
+        - Graphic Equalizer x32 MidSide - Grafischer Entzerrer x32 MidSide
+        - Graphic Equalizer x32 Mono - Grafischer Entzerrer x32 Mono
+        - Graphic Equalizer x32 Stereo - Grafischer Entzerrer x32 Stereo
+        - Impulse Responses Mono - Impulsantworten Mono
+        - Impulse Responses Stereo - Impulsantworten Stereo
+        - Impulse Reverb Mono - Impulsnachhall Mono
+        - Impulse Reverb Stereo - Impulsnachhall Stereo
+        - Sampler Mono - Klangerzeuger Mono
+        - Sampler Stereo - Klangerzeuger Stereo
+        - Compressor LeftRight - Kompressor LeftRight
+        - Compressor MidSide - Kompressor MidSide
+        - Compressor Mono - Kompressor Mono
+        - Compressor Stereo - Kompressor Stereo
+        - Latency Meter - Latenzmessgerät
+        - Multiband Compressor LeftRight x8 - Multi-band Kompressor LeftRight x8
+        - Multiband Compressor MidSide x8 - Multi-band Kompressor MidSide x8
+        - Multiband Compressor Mono x8 - Multi-band Kompressor Mono x8
+        - Multiband Compressor Stereo x8 - Multi-band Kompressor Stereo x8
+        - Oscillator Mono - Oszillator Mono
+        - Parametric Equalizer x16 LeftRight - Parametrischer Entzerrer x16 LeftRight
+        - Parametric Equalizer x16 MidSide - Parametrischer Entzerrer x16 MidSide
+        - Parametric Equalizer x16 Mono - Parametrischer Entzerrer x16 Mono
+        - Parametric Equalizer x16 Stereo - Parametrischer Entzerrer x16 Stereo
+        - Parametric Equalizer x32 LeftRight - Parametrischer Entzerrer x32 LeftRight
+        - Parametric Equalizer x32 MidSide - Parametrischer Entzerrer x32 MidSide
+        - Parametric Equalizer x32 Mono - Parametrischer Entzerrer x32 Mono
+        - Parametric Equalizer x32 Stereo - Parametrischer Entzerrer x32 Stereo
+        - Phase Detector - Phasendetektor
+        - Profiler Mono - Profiler Mono
+        - Multi-Sampler x12 DirectOut - Schlagzeug x12 Direktausgabe
+        - Multi-Sampler x12 Stereo - Schlagzeug x12 Stereo
+        - Multi-Sampler x24 DirectOut - Schlagzeug x24 Direktausgabe
+        - Multi-Sampler x24 Stereo - Schlagzeug x24 Stereo
+        - Multi-Sampler x48 DirectOut - Schlagzeug x48 Direktausgabe
+        - Multi-Sampler x48 Stereo - Schlagzeug x48 Stereo
+        - Sidechain Multiband Compressor LeftRight x8 - Sidechain Multi-band Kompressor LeftRight x8
+        - Sidechain Multiband Compressor MidSide x8 - Sidechain Multi-band Kompressor MidSide x8
+        - Sidechain Multiband Compressor Mono x8 - Sidechain Multi-band Kompressor Mono x8
+        - Sidechain Multiband Compressor Stereo x8 - Sidechain Multi-band Kompressor Stereo x8
+        - Sidechain Limiter Mono - Sidechain-Begrenzer Mono
+        - Sidechain Limiter Stereo - Sidechain-Begrenzer Stereo
+        - Sidechain Dynamic Processor LeftRight - Sidechain-Dynamikprozessor LeftRight
+        - Sidechain Dynamic Processor MidSide - Sidechain-Dynamikprozessor MidSide
+        - Sidechain Dynamic Processor Mono - Sidechain-Dynamikprozessor Mono
+        - Sidechain Dynamic Processor Stereo - Sidechain-Dynamikprozessor Stereo
+        - Sidechain Expander LeftRight - Sidechain-Expander LeftRight
+        - Sidechain Expander MidSide - Sidechain-Expander MidSide
+        - Sidechain Expander Mono - Sidechain-Expander Mono
+        - Sidechain Expander Stereo - Sidechain-Expander Stereo
+        - Sidechain Gate LeftRight - Sidechain-Gate LeftRight
+        - Sidechain Gate MidSide - Sidechain-Gate MidSide
+        - Sidechain Gate Mono - Sidechain-Gate Mono
+        - Sidechain Gate Stereo - Sidechain-Gate Stereo
+        - Sidechain Compressor LeftRight - Sidechain-Kompressor LeftRight
+        - Sidechain Compressor MidSide - Sidechain-Kompressor MidSide
+        - Sidechain Compressor Mono - Sidechain-Kompressor Mono
+        - Sidechain Compressor Stereo - Sidechain-Kompressor Stereo
+        - Slapback Delay Mono - Slapback-Delay Mono
+        - Slapback Delay Stereo - Slapback-Delay Stereo
+        - Spectrum Analyzer x1 - Spektrumanalysator x1
+        - Spectrum Analyzer x12 - Spektrumanalysator x12
+        - Spectrum Analyzer x16 - Spektrumanalysator x16
+        - Spectrum Analyzer x2 - Spektrumanalysator x2
+        - Spectrum Analyzer x4 - Spektrumanalysator x4
+        - Spectrum Analyzer x8 - Spektrumanalysator x8
+        - Trigger MIDI Mono - Triggersensor MIDI Mono
+        - Trigger MIDI Stereo - Triggersensor MIDI Stereo
+        - Trigger Mono - Triggersensor Mono
+        - Trigger Stereo - Triggersensor Stereo
+        - Delay Compensator Mono - Verzögerungsausgleicher Mono
+        - Delay Compensator Stereo - Verzögerungsausgleicher Stereo
+        - Delay Compensator x2 Stereo - Verzögerungsausgleicher x2 Stereo
+      '';
+      homepage = http://lsp-plug.in;
+      maintainers = with maintainers; [ magnetophon ];
+      license = licenses.gpl2;
+      platforms = platforms.linux;
+    };
+}
diff --git a/pkgs/applications/audio/mhwaveedit/default.nix b/pkgs/applications/audio/mhwaveedit/default.nix
index 88b636679cbd..db70e59218b3 100644
--- a/pkgs/applications/audio/mhwaveedit/default.nix
+++ b/pkgs/applications/audio/mhwaveedit/default.nix
@@ -1,23 +1,24 @@
-{ stdenv, fetchurl, makeWrapper, SDL, alsaLib, autoreconfHook, gtk2, libjack2, ladspaH
+{ stdenv, fetchFromGitHub, makeWrapper, SDL, alsaLib, autoreconfHook, gtk2, libjack2, ladspaH
 , ladspaPlugins, libsamplerate, libsndfile, pkgconfig, libpulseaudio, lame
 , vorbis-tools }:
 
-stdenv.mkDerivation  rec {
+stdenv.mkDerivation rec {
   name = "mhwaveedit-${version}";
-  version = "1.4.23";
+  version = "1.4.24";
 
-  src = fetchurl {
-    url = "https://github.com/magnush/mhwaveedit/archive/v${version}.tar.gz";
-    sha256 = "1lvd54d8kpxwl4gihhznx1b5skhibz4vfxi9k2kwqg808jfgz37l";
+  src = fetchFromGitHub {
+    owner = "magnush";
+    repo = "mhwaveedit";
+    rev = "v${version}";
+    sha256 = "037pbq23kh8hsih994x2sv483imglwcrqrx6m8visq9c46fi0j1y";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
 
   preAutoreconf = "(cd docgen && sh gendocs.sh)";
 
   buildInputs = [
-     SDL alsaLib gtk2 libjack2 ladspaH libsamplerate libsndfile
-     pkgconfig libpulseaudio makeWrapper
+    SDL alsaLib gtk2 libjack2 ladspaH libsamplerate libsndfile libpulseaudio
   ];
 
   configureFlags = [ "--with-default-ladspa-path=${ladspaPlugins}/lib/ladspa" ];
@@ -30,7 +31,7 @@ stdenv.mkDerivation  rec {
 
   meta = with stdenv.lib; {
     description = "Graphical program for editing, playing and recording sound files";
-    homepage = https://gna.org/projects/mhwaveedit;
+    homepage = https://github.com/magnush/mhwaveedit;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/audio/pulseeffects/default.nix b/pkgs/applications/audio/pulseeffects/default.nix
index b055a520be04..f7463207045d 100644
--- a/pkgs/applications/audio/pulseeffects/default.nix
+++ b/pkgs/applications/audio/pulseeffects/default.nix
@@ -44,13 +44,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   name = "pulseeffects-${version}";
-  version = "4.3.5";
+  version = "4.3.7";
 
   src = fetchFromGitHub {
     owner = "wwmm";
     repo = "pulseeffects";
     rev = "v${version}";
-    sha256 = "01jxkz4s3m8cqsn6wcbrw7bzr7sr7hqsp9950018riilpni7k4bd";
+    sha256 = "1x1jnbpbc9snya9k2xq39gssf0k4lnd1hr4cjrnwscg5rqybxqsk";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/rhythmbox/default.nix b/pkgs/applications/audio/rhythmbox/default.nix
index 8dab9e32f982..968c5edae63a 100644
--- a/pkgs/applications/audio/rhythmbox/default.nix
+++ b/pkgs/applications/audio/rhythmbox/default.nix
@@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0hzcns8gf5yb0rm4ss8jd8qzarcaplp5cylk6plwilsqfvxj4xn2";
   };
 
diff --git a/pkgs/applications/audio/sound-juicer/default.nix b/pkgs/applications/audio/sound-juicer/default.nix
index f402721e180d..5679a4d53422 100644
--- a/pkgs/applications/audio/sound-juicer/default.nix
+++ b/pkgs/applications/audio/sound-juicer/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec{
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0mx6n901vb97hsv0cwaafjffj75s1kcp8jsqay90dy3099849dyz";
   };
 
diff --git a/pkgs/applications/audio/whipper/default.nix b/pkgs/applications/audio/whipper/default.nix
index 162d5459d648..1097e7b8fd7e 100644
--- a/pkgs/applications/audio/whipper/default.nix
+++ b/pkgs/applications/audio/whipper/default.nix
@@ -14,7 +14,7 @@ python2.pkgs.buildPythonApplication rec {
 
   pythonPath = with python2.pkgs; [
     pygobject2 musicbrainzngs urllib3 chardet
-    pycdio setuptools mutagen
+    pycdio setuptools mutagen CDDB
     requests
   ];
 
diff --git a/pkgs/applications/audio/zita-njbridge/default.nix b/pkgs/applications/audio/zita-njbridge/default.nix
new file mode 100644
index 000000000000..faa90e684aea
--- /dev/null
+++ b/pkgs/applications/audio/zita-njbridge/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, libjack2, zita-resampler }:
+
+stdenv.mkDerivation rec {
+  version = "0.4.4";
+  name = "zita-njbridge-${version}";
+
+  src = fetchurl {
+    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
+    sha256 = "1l8rszdjhp0gq7mr54sdgfs6y6cmw11ssmqb1v9yrkrz5rmwzg8j";
+  };
+
+  buildInputs = [ libjack2 zita-resampler ];
+
+  preConfigure = ''
+    cd ./source/
+  '';
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "MANDIR=$(out)"
+    "SUFFIX=''"
+  ];
+
+
+  meta = with stdenv.lib; {
+    description = "command line Jack clients to transmit full quality multichannel audio over a local IP network";
+    homepage = http://kokkinizita.linuxaudio.org/linuxaudio/index.html;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index 682c1c0a6e7e..051078e1f5a1 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -14,9 +14,9 @@ let
   };
   betaVersion = stableVersion;
   latestVersion = { # canary & dev
-    version = "3.3.0.11"; # "Android Studio 3.3 Canary 12"
-    build = "182.5026711";
-    sha256Hash = "0k1f8yw3gdil78iqxlwhbz71w1307hwwf8z9m7hs0v9b4ri6x2wk";
+    version = "3.3.0.12"; # "Android Studio 3.3 Canary 13"
+    build = "182.5035453";
+    sha256Hash = "0f2glxm41ci016dv9ygr12s72lc5mh0zsxhpmx0xswg9mdwrvwa7";
   };
 in rec {
   # Old alias
diff --git a/pkgs/applications/editors/flpsed/default.nix b/pkgs/applications/editors/flpsed/default.nix
index 1c40b509bfe4..104206a14913 100644
--- a/pkgs/applications/editors/flpsed/default.nix
+++ b/pkgs/applications/editors/flpsed/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fltk13, ghostscript, xlibs }:
+{ stdenv, fetchurl, fltk13, ghostscript }:
 
 stdenv.mkDerivation rec {
   name = "flpsed-${version}";
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index fcf279095051..9e890e172e55 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -37,7 +37,7 @@ in stdenv.mkDerivation {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${pname}-${version}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0ibb74jlyrl5f6rj1b74196zfg2qaf870lxgi76qzpkgwq0iya05";
   };
 
diff --git a/pkgs/applications/editors/howl/default.nix b/pkgs/applications/editors/howl/default.nix
new file mode 100644
index 000000000000..8f75eda7ef70
--- /dev/null
+++ b/pkgs/applications/editors/howl/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk3, librsvg }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "howl-${version}";
+  version = "0.5.3";
+
+  # Use the release tarball containing pre-downloaded dependencies sources
+  src = fetchurl {
+    url = "https://github.com/howl-editor/howl/releases/download/0.5.3/howl-0.5.3.tgz";
+    sha256 = "0gnc8vr5h8mwapbcqc1zr9la62rb633awyqgy8q7pwjpiy85a03v";
+  };
+
+  sourceRoot = "./howl-${version}/src";
+
+  # The Makefile uses "/usr/local" if not explicitly overridden
+  installFlags = [ "PREFIX=$(out)" ];
+
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+  buildInputs = [ gtk3 librsvg ];
+  enableParallelBuilding = true;
+
+  # Required for the program to properly load its SVG assets
+  postInstall = ''
+    wrapProgram $out/bin/howl \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
+  '';
+
+  meta = {
+    homepage = https://howl.io/;
+    description = "A general purpose, fast and lightweight editor with a keyboard-centric minimalistic user interface";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pacien ];
+
+    # LuaJIT and Howl builds fail for x86_64-darwin and aarch64-linux respectively
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
+
diff --git a/pkgs/applications/editors/jetbrains/common.nix b/pkgs/applications/editors/jetbrains/common.nix
index 38996008f46f..be20800cde29 100644
--- a/pkgs/applications/editors/jetbrains/common.nix
+++ b/pkgs/applications/editors/jetbrains/common.nix
@@ -1,5 +1,5 @@
 { stdenv, makeDesktopItem, makeWrapper, patchelf, p7zip
-, coreutils, gnugrep, which, git, unzip, libsecret
+, coreutils, gnugrep, which, git, unzip, libsecret, libnotify
 }:
 
 { name, product, version, src, wmClass, jdk, meta }:
@@ -67,6 +67,7 @@ with stdenv; lib.makeOverridable mkDerivation rec {
       --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
         # Some internals want libstdc++.so.6
         stdenv.cc.cc.lib libsecret
+        libnotify
       ]}" \
       --set JDK_HOME "$jdk" \
       --set ${hiName}_JDK "$jdk" \
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index 9c50d8e8b78e..36c400a74faa 100644
--- a/pkgs/applications/editors/nano/default.nix
+++ b/pkgs/applications/editors/nano/default.nix
@@ -20,11 +20,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "nano-${version}";
-  version = "3.0";
+  version = "3.1";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${name}.tar.xz";
-    sha256 = "1868hg9s584fwjrh0fzdrixmxc2qhw520z4q5iv68kjiajivr9g0";
+    sha256 = "17kinzyv6vwgyx2d0ym1kp65qbf7kxzwpyg21ic1rijv1aj2rh0l";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/editors/tiled/default.nix b/pkgs/applications/editors/tiled/default.nix
index 93f1639107ee..fb670d59bd12 100644
--- a/pkgs/applications/editors/tiled/default.nix
+++ b/pkgs/applications/editors/tiled/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "tiled-${version}";
-  version = "1.1.6";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "bjorn";
     repo = "tiled";
     rev = "v${version}";
-    sha256 = "09qnlinm3q9xwp6b6cajs49fx8y6pkpixhji68bhs53m5hpvfg4s";
+    sha256 = "15apv81c5h17ljrxvm7hlyqg5bw58dzgik8gfhmh97wpwnbz1bl9";
   };
 
   nativeBuildInputs = [ pkgconfig qmake ];
diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix
index 7881741a1cbb..e164a789459b 100644
--- a/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -13,8 +13,8 @@ let
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "7.0.8-6";
-    sha256 = "1v7m1g9a7fqc8nravvv3dy54nzd3ip75hcnkdrpb5wbiz9pqgzi3";
+    version = "7.0.8-12";
+    sha256 = "0rq7qhbfsxvclazi1l6kqi4wqsph7hmzcjbh2pmf0276mrkgm7cd";
     patches = [];
   };
 in
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index 1ebc2f88ec5d..be572ca32f9b 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -12,7 +12,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0pa7lb33i4hdnz7hr7x938d48ilrnj47jzb99la79rmm08yyin8n";
   };
 
diff --git a/pkgs/applications/graphics/solvespace/default.nix b/pkgs/applications/graphics/solvespace/default.nix
index a1d0316631fa..2e413839f00b 100644
--- a/pkgs/applications/graphics/solvespace/default.nix
+++ b/pkgs/applications/graphics/solvespace/default.nix
@@ -3,12 +3,12 @@
 , wrapGAppsHook
 }:
 stdenv.mkDerivation rec {
-  name = "solvespace-2.3-20170808";
-  rev = "16540b1b2c540a4b44500ac02aaa4493bccfba7e";
+  name = "solvespace-2.3-20180906";
+  rev = "258545a334098cf25c1c9f4cd59b778dfe0b0d29";
   src = fetchgit {
     url = https://github.com/solvespace/solvespace;
     inherit rev;
-    sha256 = "1z10i21xf3yagd984lp1hwasnsizx2s3faq3wdzzjngrikr2zn70";
+    sha256 = "1wimh6l0zpk0vywcsd2minijjf6g550z8i3l8lpmfnl5przymc2v";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/cool-retro-term/default.nix b/pkgs/applications/misc/cool-retro-term/default.nix
index f4ad3a1c5382..c9cc2d6db424 100644
--- a/pkgs/applications/misc/cool-retro-term/default.nix
+++ b/pkgs/applications/misc/cool-retro-term/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
       feel of the old cathode tube screens. It has been designed to be
       eye-candy, customizable, and reasonably lightweight.
     '';
-    homepage = https://github.com/Swordifish90/cool-retro-term;
+    homepage = https://github.com/Swordfish90/cool-retro-term;
     license = with stdenv.lib.licenses; [ gpl2 gpl3 ];
     platforms = stdenv.lib.platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ skeidel ];
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 77cad142d41d..681ee5b0bece 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   name = "dbeaver-ce-${version}";
-  version = "5.2.0";
+  version = "5.2.1";
 
   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 = "13j2qc4g24d2gmkxj9zpqrcbai9aq8rassrq3c9mp9ir6sf4q0jf";
+    sha256 = "0zm320cdpypv2s58gcg89mdkir9xpz1824dscfqkmahx89g1ma81";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/misc/fllog/default.nix b/pkgs/applications/misc/fllog/default.nix
new file mode 100644
index 000000000000..348b1155e41e
--- /dev/null
+++ b/pkgs/applications/misc/fllog/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.2.5";
+  pname = "fllog";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fldigi/${name}.tar.gz";
+    sha256 = "042j1g035338vfbl4i9laai8af8iakavar05xn2m4p7ww6x76zzl";
+  };
+
+  buildInputs = [
+    fltk13
+    libjpeg
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+  ];
+
+  meta = {
+    description = "Digital modem log program";
+    homepage = https://sourceforge.net/projects/fldigi/;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [ dysinger ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/flmsg/default.nix b/pkgs/applications/misc/flmsg/default.nix
new file mode 100644
index 000000000000..afdf0f91a910
--- /dev/null
+++ b/pkgs/applications/misc/flmsg/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+  version = "4.0.7";
+  pname = "flmsg";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fldigi/${name}.tar.gz";
+    sha256 = "1kdlwhxsw02pas9d0kakkq2713wj1m4q881f6am5aq4x8n01f4xw";
+  };
+
+  buildInputs = [
+    fltk13
+    libjpeg
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+  ];
+
+  meta = {
+    description = "Digital modem message program";
+    homepage = https://sourceforge.net/projects/fldigi/;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [ dysinger ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/flrig/default.nix b/pkgs/applications/misc/flrig/default.nix
new file mode 100644
index 000000000000..baee3010d696
--- /dev/null
+++ b/pkgs/applications/misc/flrig/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.3.40";
+  pname = "flrig";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fldigi/${name}.tar.gz";
+    sha256 = "1wr7bb2577gha7y3a8m5w60m4xdv8m0199cj2c6349sgbds373w9";
+  };
+
+  buildInputs = [
+    fltk13
+    libjpeg
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+  ];
+
+  meta = {
+    description = "Digital modem rig control program";
+    homepage = https://sourceforge.net/projects/fldigi/;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [ dysinger ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/flwrap/default.nix b/pkgs/applications/misc/flwrap/default.nix
new file mode 100644
index 000000000000..b96f3c2b3278
--- /dev/null
+++ b/pkgs/applications/misc/flwrap/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.3.5";
+  pname = "flwrap";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fldigi/${name}.tar.gz";
+    sha256 = "0qqivqkkravcg7j45740xfky2q3k7czqpkj6y364qff424q2pppg";
+  };
+
+  buildInputs = [
+    fltk13
+    libjpeg
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+  ];
+
+  meta = {
+    description = "Digital modem file transfer program";
+    homepage = https://sourceforge.net/projects/fldigi/;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [ dysinger ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/girara/default.nix b/pkgs/applications/misc/girara/default.nix
index dc70747784cf..0dfeac3cf8b2 100644
--- a/pkgs/applications/misc/girara/default.nix
+++ b/pkgs/applications/misc/girara/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "girara-${version}";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchurl {
     url = "https://pwmt.org/projects/girara/download/${name}.tar.xz";
-    sha256 = "18j1gv8pi4cpndvnap88pcfacdz3lnw6pxmw7dvzm359y1gzllmp";
+    sha256 = "1ddwap5q5cnfdr1q1b110wy7mw1z3khn86k01jl8lqmn02n9nh1w";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext ];
diff --git a/pkgs/applications/misc/gnome-usage/default.nix b/pkgs/applications/misc/gnome-usage/default.nix
index f99344b83d64..0f7a89b3c525 100644
--- a/pkgs/applications/misc/gnome-usage/default.nix
+++ b/pkgs/applications/misc/gnome-usage/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0130bwinpkz307nalw6ndi5mk38k5g6jna4gbw2916d54df6a4nq";
   };
 
diff --git a/pkgs/applications/misc/guake/default.nix b/pkgs/applications/misc/guake/default.nix
index 8bf779185b36..52105f49c560 100644
--- a/pkgs/applications/misc/guake/default.nix
+++ b/pkgs/applications/misc/guake/default.nix
@@ -2,7 +2,7 @@
 , gtk3, keybinder3, libnotify, libutempter, vte }:
 
 let
-  version = "3.3.2";
+  version = "3.4.0";
 in python3.pkgs.buildPythonApplication rec {
   name = "guake-${version}";
   format = "other";
@@ -11,7 +11,7 @@ in python3.pkgs.buildPythonApplication rec {
     owner = "Guake";
     repo = "guake";
     rev = version;
-    sha256 = "0cz58wfsa66j01sqpka7908ilj5ch3jdxaxzqdi8yspqwzz5iwc7";
+    sha256 = "1j38z968ha8ij6wrgbwvr8ad930nvhybm9g7pf4s4zv6d3vln0vm";
   };
 
   nativeBuildInputs = [ gettext gobjectIntrospection wrapGAppsHook python3.pkgs.pip glibcLocales ];
diff --git a/pkgs/applications/misc/khard/default.nix b/pkgs/applications/misc/khard/default.nix
index 35c3c9748492..8ec4e7f06d16 100644
--- a/pkgs/applications/misc/khard/default.nix
+++ b/pkgs/applications/misc/khard/default.nix
@@ -41,7 +41,7 @@ in with python.pkgs; buildPythonApplication rec {
   ];
 
   postInstall = ''
-    install -D misc/zsh/_khard $out/share/zsh/site-functions/
+    install -D misc/zsh/_khard $out/share/zsh/site-functions/_khard
   '';
 
   # Fails; but there are no tests anyway.
diff --git a/pkgs/applications/misc/lxterminal/default.nix b/pkgs/applications/misc/lxterminal/default.nix
index b16507c8b7bd..314f8bcece10 100644
--- a/pkgs/applications/misc/lxterminal/default.nix
+++ b/pkgs/applications/misc/lxterminal/default.nix
@@ -2,14 +2,14 @@
 , libxslt, docbook_xml_dtd_412, docbook_xsl, libxml2, findXMLCatalogs
 }:
 
-let version = "0.3.1"; in
+let version = "0.3.2"; in
 
 stdenv.mkDerivation rec {
   name = "lxterminal-${version}";
 
   src = fetchurl {
     url = "https://github.com/lxde/lxterminal/archive/${version}.tar.gz";
-    sha256 = "e91f15c8a726d5c13227263476583137a2639d4799c021ca0726c9805021b54c";
+    sha256 = "1iafqmccsm3nnzwp6pb2c04iniqqnscj83bq1rvf58ppzk0bvih3";
   };
 
   configureFlags = [
diff --git a/pkgs/applications/misc/makeself/Use-rm-from-PATH.patch b/pkgs/applications/misc/makeself/Use-rm-from-PATH.patch
new file mode 100644
index 000000000000..80b9ebf4d571
--- /dev/null
+++ b/pkgs/applications/misc/makeself/Use-rm-from-PATH.patch
@@ -0,0 +1,43 @@
+From 81cf57e4653360af7f1718391e424fa05d8ea000 Mon Sep 17 00:00:00 2001
+From: Keshav Kini <keshav.kini@gmail.com>
+Date: Thu, 9 Aug 2018 18:36:15 -0700
+Subject: [PATCH] Use `rm` from PATH
+
+On NixOS (a Linux distribution), there is no `/bin/rm`, but an `rm`
+command will generally be available in one's path when running shell
+scripts. Here, I change a couple of invocations of `/bin/rm` into
+invocations of `rm` to deal with this issue.
+
+Since `rm` is already called elsewhere in the script without an
+absolute path, I assume this change will not cause any
+regressions. Still, I've tested this on a CentOS machine and a NixOS
+machine, though not other platforms.
+---
+ makeself-header.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/makeself-header.sh b/makeself-header.sh
+index 4d2c005..2babf34 100755
+--- a/makeself-header.sh
++++ b/makeself-header.sh
+@@ -515,7 +515,7 @@ if test x"\$quiet" = xn; then
+ fi
+ res=3
+ if test x"\$keep" = xn; then
+-    trap 'echo Signal caught, cleaning up >&2; cd \$TMPROOT; /bin/rm -rf "\$tmpdir"; eval \$finish; exit 15' 1 2 3 15
++    trap 'echo Signal caught, cleaning up >&2; cd \$TMPROOT; rm -rf "\$tmpdir"; eval \$finish; exit 15' 1 2 3 15
+ fi
+ 
+ if test x"\$nodiskspace" = xn; then
+@@ -581,7 +581,7 @@ if test x"\$script" != x; then
+ fi
+ if test x"\$keep" = xn; then
+     cd "\$TMPROOT"
+-    /bin/rm -rf "\$tmpdir"
++    rm -rf "\$tmpdir"
+ fi
+ eval \$finish; exit \$res
+ EOF
+-- 
+2.14.1
+
diff --git a/pkgs/applications/misc/makeself/default.nix b/pkgs/applications/misc/makeself/default.nix
index a9ec2760e8ad..a6af1762e289 100644
--- a/pkgs/applications/misc/makeself/default.nix
+++ b/pkgs/applications/misc/makeself/default.nix
@@ -11,7 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "1lw3gx1zpzp2wmzrw5v7k31vfsrdzadqha9ni309fp07g8inrr9n";
   };
 
-  patchPhase = ''
+  # backported from https://github.com/megastep/makeself/commit/77156e28ff21231c400423facc7049d9c60fd1bd
+  patches = [ ./Use-rm-from-PATH.patch ];
+
+  postPatch = ''
     sed -e "s|^HEADER=.*|HEADER=$out/share/${name}/makeself-header.sh|" -i makeself.sh
   '';
 
diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix
index 199fa3e9bfe9..0dfc4b2bc58e 100644
--- a/pkgs/applications/misc/orca/default.nix
+++ b/pkgs/applications/misc/orca/default.nix
@@ -1,4 +1,4 @@
-{ lib, pkgconfig, fetchurl, buildPythonApplication
+{ stdenv, pkgconfig, fetchurl, buildPythonApplication
 , autoreconfHook, wrapGAppsHook, gobjectIntrospection
 , intltool, yelp-tools, itstool, libxmlxx3
 , python, pygobject3, gtk3, gnome3, substituteAll
@@ -7,7 +7,6 @@
 , speechd, brltty, setproctitle, gst_all_1, gst-python
 }:
 
-with lib;
 let
   pname = "orca";
   version = "3.28.2";
@@ -17,7 +16,7 @@ in buildPythonApplication rec {
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "08rh6ji680g5nrw2n7jrxrw7nwg04sj52jxffcfasgss2f51d38q";
   };
 
@@ -54,7 +53,7 @@ in buildPythonApplication rec {
     };
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Projects/Orca;
     description = "Screen reader";
     longDescription = ''
diff --git a/pkgs/applications/misc/rtl-sdr/default.nix b/pkgs/applications/misc/rtl-sdr/default.nix
index bedfc563b1c0..ef9f9d09ac26 100644
--- a/pkgs/applications/misc/rtl-sdr/default.nix
+++ b/pkgs/applications/misc/rtl-sdr/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "rtl-sdr-${version}";
-  version = "0.5.4";
+  version = "0.6.0";
 
   src = fetchgit {
     url = "git://git.osmocom.org/rtl-sdr.git";
-    rev = "refs/tags/v${version}";
-    sha256 = "0c56a9dhlqgs6y15ns0mn4r5giz0x6y7x151jcq755f711pc3y01";
+    rev = "refs/tags/${version}";
+    sha256 = "0lmvsnb4xw4hmz6zs0z5ilsah5hjz29g1s0050n59fllskqr3b8k";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/misc/ssocr/default.nix b/pkgs/applications/misc/ssocr/default.nix
new file mode 100644
index 000000000000..aee486ddf0c2
--- /dev/null
+++ b/pkgs/applications/misc/ssocr/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, imlib2, libX11 }:
+
+stdenv.mkDerivation rec {
+  name = "ssocr-${version}";
+  version = "unstable-2018-08-11";
+
+  src = fetchFromGitHub {
+    owner = "auerswal";
+    repo = "ssocr";
+    rev = "5e47e26b125a1a13bc79de93a5e87dd0b51354ca";
+    sha256 = "0yzprwflky9a7zxa3zic7gvdwqg0zy49zvrqkdxng2k1ng78k3s7";
+  };
+
+  nativeBuildInputs = [ imlib2 libX11 ]; 
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "Seven Segment Optical Character Recognition";
+    homepage = https://github.com/auerswal/ssocr;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.kroell ];
+  };
+}
diff --git a/pkgs/applications/misc/st/default.nix b/pkgs/applications/misc/st/default.nix
index efaf986a9e54..f8340b1bd227 100644
--- a/pkgs/applications/misc/st/default.nix
+++ b/pkgs/applications/misc/st/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, writeText, makeWrapper, libX11, ncurses, libXext
-, libXft, fontconfig, dmenu, conf ? null, patches ? [], extraLibs ? []}:
+{ stdenv, fetchurl, pkgconfig, writeText, libX11, ncurses
+, libXft, conf ? null, patches ? [], extraLibs ? []}:
 
 with stdenv.lib;
 
@@ -16,12 +16,11 @@ stdenv.mkDerivation rec {
   configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
   preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
 
-  nativeBuildInputs = [ pkgconfig makeWrapper ];
-  buildInputs = [ libX11 ncurses libXext libXft fontconfig ] ++ extraLibs;
+  nativeBuildInputs = [ pkgconfig ncurses ];
+  buildInputs = [ libX11 libXft ] ++ extraLibs;
 
   installPhase = ''
     TERMINFO=$out/share/terminfo make install PREFIX=$out
-    wrapProgram "$out/bin/st" --prefix PATH : "${dmenu}/bin"
   '';
 
   meta = {
diff --git a/pkgs/applications/misc/wego/default.nix b/pkgs/applications/misc/wego/default.nix
index b61566af6b2c..7a09a8045770 100644
--- a/pkgs/applications/misc/wego/default.nix
+++ b/pkgs/applications/misc/wego/default.nix
@@ -14,4 +14,8 @@ buildGoPackage rec {
   };
 
   goDeps = ./deps.nix;
+
+  meta = {
+    license = stdenv.lib.licenses.isc;
+  };
 }
diff --git a/pkgs/applications/networking/browsers/eolie/default.nix b/pkgs/applications/networking/browsers/eolie/default.nix
index c94135f73509..1f7ed9732bc7 100644
--- a/pkgs/applications/networking/browsers/eolie/default.nix
+++ b/pkgs/applications/networking/browsers/eolie/default.nix
@@ -5,7 +5,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   name = "eolie-${version}";
-  version = "0.9.37";
+  version = "0.9.41";
 
   format = "other";
   doCheck = false;
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
     url = "https://gitlab.gnome.org/World/eolie";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    sha256 = "0la458zgh943wmgbzr9fpq78c0n11a2wm7rmks7ispk0719f6lxz";
+    sha256 = "0qrbgyzhvh96d7h2rcz04m7am6av30pcvb3fwlrjx0c402rslsx8";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 91aee7b1e8a5..c81c79349857 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -42,6 +42,7 @@
 , channel
 , generated
 , writeScript
+, writeText
 , xidel
 , coreutils
 , gnused
@@ -69,6 +70,12 @@ let
 
   systemLocale = config.i18n.defaultLocale or "en-US";
 
+  policies = {
+    DisableAppUpdate = true;
+  };
+
+  policiesJson = writeText "no-update-firefox-policy.json" (builtins.toJSON { inherit policies; });
+
   defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
 
   source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
@@ -172,6 +179,10 @@ stdenv.mkDerivation {
       ln -s "$out/usr/lib" "$out/lib"
 
       gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped")
+
+      # See: https://github.com/mozilla/policy-templates/blob/master/README.md
+      mkdir -p "$out/lib/firefox-bin-${version}/distribution";
+      ln -s ${policiesJson} "$out/lib/firefox-bin-${version}/distribution/policies.json";
     '';
 
   passthru.execdir = "/bin";
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 1500597318f3..6c6e05133bdc 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,995 +1,995 @@
 {
-  version = "62.0.2";
+  version = "62.0.3";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ach/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ach/firefox-62.0.3.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha512 = "30660e1377c125ec195006d84ba5ae356c8b53b21865675ac7649ffadd169e578ab91d0107f18f26530788ae66aacb7edeec1c507bccb456e1aa89bac95351dd";
+      sha512 = "bcf519e0080aca1cf232ec327ea65973e71230dd60204bc1fef3284dd94fa123f4a60421b647a3f64352829b1ef3b0e0b689a1fa7a06f6b1848c5acb1d33b917";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/af/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/af/firefox-62.0.3.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha512 = "81e3d9b33af731c9a79bdac678c84d2f30de0b77b6d90d4adaa7da11383e360444f85bf7465add562048d13692cce88b3fb1bd63beac30a6d490f6b75eb9be26";
+      sha512 = "5b145ab068216846169303dd75ad3b5a40e82129234cee35cd7a559cde0dcbc6abb1d6ce50680b9a8180828db82f3c23d62e9dc46015a88b0a3c75eb164c17df";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/an/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/an/firefox-62.0.3.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha512 = "42d3118c2bba77aed919a1675538f52230841ec6c8398e2b9964631100c22c70335fc80f8757a916aef7c0ebabccc5356ca323901061d1bd0e5ad4eb0a10b483";
+      sha512 = "92a7b8eda43a1d6323e058d285e5b599b14ff8a7275d8e900d9ad8d5dc8160ddbfeb8134b877cbd078b3e3ce9919c2906f4cf7f9224f807f6c0ebf0c6e906be3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ar/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ar/firefox-62.0.3.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "c6a5a647e17b8b4fb4e20a32c2e492c6102cb899acf5af2d3af3af3cd122d989bfa452638d038b9b7c8c0bbade604f6caa11f42cbde5a3260fb13e44080cd720";
+      sha512 = "2592b6808abd04054ab6d71b8f44d94eb040c92f53c755b2258e4a10a3c8cd80241dedc2e57924e9410717cc8943947248b27c753c6223aa57352b0a08cd64dd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/as/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/as/firefox-62.0.3.tar.bz2";
       locale = "as";
       arch = "linux-x86_64";
-      sha512 = "c1664a83e3dbd7b3041449ab4f7b9b41b038425c126572d380bf9c5d1d7318264a8ba798d670156ba91625de0865ed0b6e4e38bbd2ea700a118b64bbeea95b25";
+      sha512 = "224c3d09c1122f2444d2bc75833d6db60a7cbdacc819d16d40a3d5e6537e275a5720f1b6d4616ed318868683b99547d03aedc21175781eab0b32ec8c6be87495";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ast/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ast/firefox-62.0.3.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "31c15cde2d9a0f93fa742c41032e8b6e06ad24a5e6126c953e70c0addc5d1a74c5b5d06088002b4c1516a1f75b2e3e82d9d04c0a624db781bde2d3e8182062f3";
+      sha512 = "26b316efd6d4d238726e5a1fef3a6ad00af3f42cd45846598e4562b9c5b2d35af3372e283efd30713464c440715de82ce49ce3d73569ff528d90ec479264110b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/az/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/az/firefox-62.0.3.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha512 = "8d3f949c325bd5efb9619e96f8d8688324d113ac7add21b1d3290c160bba1e2193f923a54d3ce295e75b2ea0a59ab9c718e117374a46963ef69c53f3ceaa1957";
+      sha512 = "29935c406c955692a469762a9c53762d6a8f7ccd4555b53c31283f4767db2547a17819f7e55aafd011b3570c30839e350dfe74a52d322047647ddaae58b23919";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/be/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/be/firefox-62.0.3.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "7cb5fd02ba28c54acb1c73320f794165c0debf35a35c5e15602ccb7677b879ef41c910deb4668c0f160663b7a6afa43f30492fc23691406848e6adde7fcd0b02";
+      sha512 = "e4a438ff8a9100126f0fac456bd6aa7d0713bf2e22e7ce6490c4f3ec5643087b668bb5d8d867c9466a289a964f957ce958dd9545ada53b207bf026f3f8200373";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/bg/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/bg/firefox-62.0.3.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "c6484b8b19941e135d2dd983085325d9f5bef118105879b0f830762ec1899096146a454397510286a902d175f9ad4eb3e849fdce38844535bc8a92bcaa478862";
+      sha512 = "3b17536b1bd6cbb94548b7b2b0d05ced711ef116acc4687309c3392f77ec0b51cb4814efbeee26ceb51328a4ae5b5ee1c4d8e69e57c2580be8cb1989bb082cba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/bn-BD/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/bn-BD/firefox-62.0.3.tar.bz2";
       locale = "bn-BD";
       arch = "linux-x86_64";
-      sha512 = "4526b294ea939f88c92a3275ea17fe16932b410b0114af03d9f3db892cf6ed1a9d0ae0a6e0a651a0599aaee9bf53c69273b8d0286b94656635b3357ee2ab021a";
+      sha512 = "d9969a8d0fda1bc4d108f0c24e934235186420734df1be38db9608e303d7928b45007b40857681d0b29826bc26628b3b86388c81925059ebb23b6ccbeb80f375";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/bn-IN/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/bn-IN/firefox-62.0.3.tar.bz2";
       locale = "bn-IN";
       arch = "linux-x86_64";
-      sha512 = "3a17f78a48c7657d7ed834f4c05b523d661c5a692e27751e48ed8ea6f580cee21295b025a2474bca10fdc803ade0acef0ff0f0ce40de992a1fd072ca70a1062e";
+      sha512 = "7e449679b8bece1eed95ca5e3bfbe1a303d9dfa8bd4b9e53d14f99198e01a4dc4367112de48ad50b61c3cc54eaaba8caf143c36336da3c86c2815828ca5a2a80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/br/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/br/firefox-62.0.3.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "7932c59f390580c3a9f333fe40ddb9aace2c7d35703ec022468c503b4e58604fff777fb86e44cfcb84186845e8da26f55a7d0584d09982e88ee08e2b205f289e";
+      sha512 = "328deff7045bfa2187c19a66ca03a0c8f25e266eb6ea9c19715c201702245a0c338458254297974aa18466350231dc800f20b72c552f4633d5eea176f45adf80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/bs/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/bs/firefox-62.0.3.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha512 = "509b1d013a5ef5bf5f5a8167685a7232ee400202c1bfda37eab1ad8965cf0d7a6ae2988163be050b5d37741bb405df5b28aa937c82e086708cd6d943b5215ede";
+      sha512 = "20f85e5ca5f7a7be5079778b426e252c98112550849fb6e16e3b0d52a15570e638c8a664976a9252891a2254be59fe436dcda0d65b1f9ad5cdbe0cc5636cb93f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ca/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ca/firefox-62.0.3.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "75b918bb00c9039228b8881ac8fef4dbd36521b80651dc2d6b1ad1f6701ca39f3527b244c88d9e97ba1ac0a6e12ea7b6a3c40f9b95c0c2167e7c175b5d9ce37e";
+      sha512 = "7abd7b7220c6a5b1cbb4c8f9ee6c55d15682bba5bc1e1356a038f9b1ae7ec351c57ef4dd19a02f8216f6789342d5d91cf76a00ecf13e71c8fad0f1fbc315e775";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/cak/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/cak/firefox-62.0.3.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "8803b41c4651174e4999804071b27d7cbf47497a8a5b83488654d0586fd6245d5d517c03e64e8e75ccc0991b2be47cb0ee95143d08828027e627409fe6c55cd6";
+      sha512 = "2a8070bcd971261d994ae2ded0366b9e07961e1b98aa76c117d1e949a8f9990a22ba461ebda223b76f33c7ca94e1862a888b000642a4f874b8b92d2b5f470736";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/cs/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/cs/firefox-62.0.3.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "182cd25579ad04713852e0343e0d9604f42772a4c6ad06da512a8286314451f7b90c667c2f199afd1a1162c8ff6d1320abfc87207602182a3cb32196916189d1";
+      sha512 = "8beb5c0ee3a0b2a556b455e41887dda126a0892df50aba4e283f0db819c99c4601427370c70c09d176f1a6ee8d629e1ec5f8b803d51b9444237e56c7a273cc0a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/cy/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/cy/firefox-62.0.3.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "c65fff984a351cc67dba5574e7d2b3291de4e6c78f7659a6020d70f09cdb3bc951696ba88b778df4057633e9e06013799af58f5f2d0a052bdc22e7c98aaec278";
+      sha512 = "ec1a4fb0c8f753454aea88fdcfb3a340d0328d9c059653d9390a71841098573d667c2329c0c8dc88a2fc52eedfd8dbc584df2fe44fff273f8aeec8a3f1eaa0f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/da/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/da/firefox-62.0.3.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "e9fa596fb6c825fd3c2b1d5f42ad1c192db42ee046ad2f348733a979135d41bf2b0efbcd8ac2fb68e0337890ac3131a3454425425ef727225786ab0cb51f4d9a";
+      sha512 = "79532e1cf94447797d9d816cdc342fe0f8c37915494ff000bbc7148c2d42a1adeb7226887d51999774b6068f62d71bbb54b0951bc606003a91df12e9f24e7691";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/de/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/de/firefox-62.0.3.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "7a4c786b18299378c4d8b797e99385e35ad501912f05c02bad311665be6d52a6435a3fa04c7a8ae8a562af654aa3cf17eb497fc9691fbd0b2cf46a67f5967353";
+      sha512 = "5f0d10736912f6ad4bd38538601ceb8db10cf97dd414446366218ccb03ae010037114d688409cd724e194126524bdd442f71b1cf646f1f3ac46499afecc082d6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/dsb/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/dsb/firefox-62.0.3.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "52ae2b79d9106fb304b4b3b945ac9960614efdc7780406e87bbe1dc15effc049e8cbb91c8f4f2dcd1966ed0085e3574e3e1a4234d933fa587e05901875234344";
+      sha512 = "2cafc29c75b055e4c21e12fe2b2ca3c974ad53fed43c8b082e09323bd1854ae7179da13c7d33edf41f783fe0016053d52292bafbccdcff79cc69d8ffedf01ab9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/el/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/el/firefox-62.0.3.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "956d5d36ec255ec122c09edda12a2242bbbb03793385fa9c417fbb8037fb19506298a31bed94eb39e825e4fcb66184901b3580ced8812cbc44f8a4d8ba339d19";
+      sha512 = "b1246b56eb0d61d5ac874383ee279d3c9dfe559127052c4d4403ab0009d702a76711d05f1ebb781f972d9cbe6cee9a6b3c1aea9cb74866e497f2569480a2cbf1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/en-CA/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/en-CA/firefox-62.0.3.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha512 = "6a93cedce6724a19ea663e70ef9d57d27c144c1250c438ff15cd8d36c3d92b8a95c9e3f81fb53862b550d0765a8f0b7bdc14d6d9929a41f18357e0d0cfae732e";
+      sha512 = "8d344a08fce1be002b5710031250aa0f13d237bd38386cb31d5f6a75cc29ee17dffd01e1375e4a26b1a136d268db6ebaa591fc23789b3fbd7771f42a6bb59979";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/en-GB/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/en-GB/firefox-62.0.3.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "c3f825196d8f1d1284644ebf07f08a7626086c869408603d50ded5b0eeaa98bb9f874c7df38bbbf3083dbb4a1ae8afa8e4c90ed35a83fd99bec78cf3813dd92e";
+      sha512 = "88899808190f9013eba157345adc740fbd1889fd1ac963209cf093e9bd9f1e9b3f35126e85c5d3a1590e02ff1da8c09fa390ec519bc0ab01bab7c37d9b5d4bed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/en-US/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/en-US/firefox-62.0.3.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "f19a938af6bfe6499bb4e4337ece1cc0918fe56b361ced0f131f010652b2849d98e48a7cd06277580cc87843454c7bdfe816b65c99189e1ba749aaa64059a6ef";
+      sha512 = "577cdf1e1c4845e0b22c174833b0e20375443121e429a57d16f1f0e3af86533a6c27d35d8451ab25b3f7ba10ee9385d0f497866b50d4f37a81f9663137aa3395";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/en-ZA/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/en-ZA/firefox-62.0.3.tar.bz2";
       locale = "en-ZA";
       arch = "linux-x86_64";
-      sha512 = "0214fbf75843617b0623eea8c8ea2ef46d23d739f63a74ff47fc87ff16817d9110862696f92ba614167386bc51c5e94a9627d0dcdd22c19c20bac4a24543c126";
+      sha512 = "ee679b5bab64492bd069cd9b3b7509db7a5296a019d8712afd12a5b6ffeb1911fc4daaf63483b895b79652f67f9095b66be780a2b0dce3e7b9b57fb5fcda316a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/eo/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/eo/firefox-62.0.3.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha512 = "7da531166d26dfa3cd1edc327eecd583e10c8a2c41d007daba41e6f28e42159e1c43be5759061891c74ab0157ca3d4ce58b8a6a7d879ad4ce4c50586341b460e";
+      sha512 = "32e54f1a83e4b3cf8f7296fad200abedafb5c7d4bd409c7acd2806944a241b6923794a33a7999754e4d2010f2788ea3a3d08ee72a9354713b6cc2ee1dc73a665";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/es-AR/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/es-AR/firefox-62.0.3.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "e5bc4003ec881a41a28b6847dc9d90c81dec5ba9d103111922fdcc718713c67027f5b04a9d608d4e8b20a656abd94e0c5c8d5819135e8884d84eeb952b855590";
+      sha512 = "ce740d773ecc016eb89e9fe4370e199294f8c51c4f5f74bbe7f09a5ac060b374d23e80fd8a27b63c6149bcaec2b93d58a892ba7f53c08628c141b406838e2d58";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/es-CL/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/es-CL/firefox-62.0.3.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha512 = "c5360481d7a86bddb87805672dedab22735e484e3a048e5e57e9265034ac40d0e5586bedab617da1cb54a4b7c1d3b4e18bd5f0cc0c8b8d3563df54b7ad506b23";
+      sha512 = "9ea5c06200091975c98587627ca371bb492cef91ec200a52409b4b30092aeeda64360913b8950ce56031aef34e66364bea71bb071df5549736dc0900ac54f7f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/es-ES/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/es-ES/firefox-62.0.3.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "8977a46f5946da99c4e3f30e3451110adf7993ad5a64f5dee09016932ee55a63ebca9126f7c3196191e658aa39465701db347068bdc6e6acc85d061873ccf226";
+      sha512 = "df71790d420798b17e64aaeb007f7f8585037d48b7c8933f5760b75385c945ef16e815c84b5872cfef8a2ebafd3293cbb4910befc4844b166f16774947a9b32b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/es-MX/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/es-MX/firefox-62.0.3.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha512 = "2bb3eeb2bef0f7c72c9bd95093e4c80b69e6f56ec41d0d4b3c54d2f8d7496884394583fb77e9f5e985ff6dedeb94711d4732baaaf5947e26e1f7b13f3024470b";
+      sha512 = "02e0948d3f4855a9c9e502627cf5d199364c0f0a7ee7f4314d69c9977f8504e43c3dc1cb8e80c9aa6bb6f4d75609108f6aafa8c9acdac31aedb908b5df26e1a1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/et/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/et/firefox-62.0.3.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "cad31e57d54d5e533f5c999b2009d29c22c9469b7b620499df7f433d0e86f14ba336665a9d9917a48f55d9a57e30be70dd461e8e2159092d5c2c1435e842603f";
+      sha512 = "776bed6ba54f1ac29836681a99ec673741dd439501b7859a68c1d6645693f566fb3dbaf2e827cb23d3ab993ff4ca290008de7256aa28cc6e29625eda4048db27";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/eu/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/eu/firefox-62.0.3.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "6cfd46bc362a9dca327651ad9219979e321c8ec8ebef21fed64617e7c5540804ce0a16514848faff8e3a3018a454e8b90fac627054b92cb96f5fe8046326db50";
+      sha512 = "7e95ac325fd4726def5aed67ee110693dbeb7953aa5672913c18cb1b91f8a884500e6096a5100e89d9266c28ede9d677be91fb00227944d379a946938ffc752e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/fa/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/fa/firefox-62.0.3.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha512 = "cfcd0562561478bf2d14ea6b2d87c081d86c5c6d30bd7c2c1eea673e2a82f875a2f954955fdac959ba96ce5fe8461c82137bd3c6313eefb3fb24bd4993692c29";
+      sha512 = "6cc8d99ddd690f7dac9da19d23666e655aa65a576cf912b195ec3f83ece9b5a6677d656a1d187930897adfc021ee3d16e3113a8d8454fb9b4a9f878c615b49ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ff/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ff/firefox-62.0.3.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha512 = "ffda297f92bfa0a76d613e7c54a71d376c2264570ee8d9f2bbed9faacded01cc8ea9fb171ae14f4d349702d91896899299bfd6b2cb66e9ded933bc6e34e63033";
+      sha512 = "026976b48352d2c292d27b0df8f17f75f2bbdc0822d89b722bd1e58d9189ce35c925da6de287f0f89e18ac9f64134a1bf5dbd3b6da609da823686acfcea5b05b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/fi/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/fi/firefox-62.0.3.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "be791b05d114f2d49c23714898f240aeaf9593aae6b7d06a85fb3e6dbe9116ee19d5089aff137e1c0fc56873c172a73937e15b19eb76db15122019649dd83a58";
+      sha512 = "8d7621858ba33c340248df277f3822c120b4beea5cfb9811afd61b85fc2b5dfdb100c475d0b291c9bedeffae4ba52bea653d925571af8c68bafae6c997beba74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/fr/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/fr/firefox-62.0.3.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "1f167a7df26ee83671a7c3dea3bcccaa7797da0253110eafa3de5a17b7e19d1710966ac3a82bb0e7bee3d7287a6b39f59b9152672618dbad5d782e297ea6587e";
+      sha512 = "23f73a32cfa388bc21c1e202886d83a36c21a8b4fd83f7001ce72a911be800d9dd2d49e21cdd9d9cf48a82121d4684802dcaa7d97b3bb47b762ec4c95be49011";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/fy-NL/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/fy-NL/firefox-62.0.3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "ed9ee111ba5b451b5fa730bc0f8e14046ad7613d542a7695f68e28d9fddb279770e3663d8b9964617d803f073c7f02dc036e4cc6ce3a17b69ba5fba782831da0";
+      sha512 = "2d3c4d546d1d8f03ab407c2bf481e23bb4bf191b84e9e0da533b2b00a0c8f7cea7c5730fcadd777b909c9515981e61a1fef25fd1037d75bdab15901a877c9fb6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ga-IE/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ga-IE/firefox-62.0.3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "073b104cebd63452fecff3949195ebeb794dde2d4c2defb44f62f4493165f5dcac20320da8229bd7c3e5410b840bb51b4699d77fdc886974848745e066ccec16";
+      sha512 = "7f52631104ef48631d2d2d5434a50d1f62447b314329e9571915bf16b246c9910a8875500077474303806edc05993d79c72b60a2b6f3a64389446609092320d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/gd/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/gd/firefox-62.0.3.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "307262bb8874fc6115051608bf4a79e51fb08910de7d3df44a6bb3bbde64d3a76aa88361f10b811a2af9a05518d7ba42b6f2e078d5db32f0118cd08f8a3ec7fb";
+      sha512 = "98b9275029ad64dbebebeb697ccfeb1dfd2b0d51e437899a8417292f2a14421a5a83f07164cd4158250aa08d5e45bbe4c97e1fc7ebf3fa02cf42d7dac740aa0d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/gl/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/gl/firefox-62.0.3.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "dbecb09308a701aaf13d278b208fb3b9e7631c8fc07b9b3fc99c27a4035ea7fd75da810063913449c2746933c63cf7a5175d4d5a17aa808f6bd8d19bf0692f0e";
+      sha512 = "6abd8e3d990983094880056924fa60c14efb6c133f05ef129294c7cd83725df1e32a85bc08ddffc22f3e3d4414744345f67ca5f055af74a93a0eaf8838f38f8e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/gn/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/gn/firefox-62.0.3.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha512 = "f62e0a0cb6794f6fc36c85f98952ccd313676d4389b12a054461789e30effd3effb6fc729bbdfd83674c2691d03aa219ddccfcb6eb74426ff49bd4a458ff7ca9";
+      sha512 = "043471a8b62dc300f1c719ea33a6c8b3690f38876697cf57625e26bf1d66ec2a4b6f952c836359da19f9b346851c3fc20525fad32596c9e91b9f5b23ca1672d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/gu-IN/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/gu-IN/firefox-62.0.3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha512 = "b0624b04a3a20a48358027aeac449c52198139a3e9dbf0bc035a06c22fae3bcb44f34a07ad88a14a44e87dc16a3393688ce8d45d5070264d1ce63b2c183aceb1";
+      sha512 = "ae849a0f9350fd0382e859ae9fde0217d73014c3fb7a7974b635b3bb2f7d62087c7b40c62707ff64eabd37ca700faa0f392e737b1ace15494d44fd6a87599b69";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/he/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/he/firefox-62.0.3.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "7b3f4478100b6122c22fc50a944dc86e46b3d2d73893209be748c001461968a21500562b2eb18a40669d13068618ca3093ada082470833085b78f4083064767f";
+      sha512 = "49a350f95858916d73aa71be60bc3f162bee24556c06524ccc5d10eb7658e91affe4c8945d92c7c6958eb7c8bb3879211d6096a1912bc4b50a9e35b465ddd219";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/hi-IN/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/hi-IN/firefox-62.0.3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha512 = "13d42b552bca18e0020b891f6b3a563b66dd86b3e5fb9b5badae88ecf5a37b5febd5b9c927807f7996b81ddfcd4ef076553fc82655eb05c8a04a920f2a64ca71";
+      sha512 = "a55d2647fa5ffe06fc479675676700edf460c7d7600fe18ae468fc3e13a8cb3cc025dd64bff244b61724ee213835a64c71e51e2d59a0ac2eaaca0a29a692dfaa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/hr/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/hr/firefox-62.0.3.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "5bf92b1abd156019935c8728435101fcee9973ea413cca05760322dce94b62fed9f7271699610e00e812f0c7d320cbc966bf03fd5250b9dbf9bb2ac2a5f96466";
+      sha512 = "6d961a7936c46dbdeb4d66a6ba91414a158593120a58f9f454ae77839cfedd5af2dc9d3dde02bd2d36e21f946b5ff9de0727abf44c2ea78f6e618cb84242892a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/hsb/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/hsb/firefox-62.0.3.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "777ef75daae66a138f4013ff19fccaf7236700a8c2a46e6f0f811065326c7f4fb7dcb284ee9bac2dc3461b45cb8239015ff24731a691a85a199519398c03e53b";
+      sha512 = "eba4e20491a61d9de7a25373bec43fac62b9ac3b461be5e593117ff4d31884acee63c2c6bbb56cc7eeef67bd36b7d3bfc748169fd7fc49877efdf7656813ee5d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/hu/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/hu/firefox-62.0.3.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "800f1cecd46b4adfaf1ed20878d422191709801e148aef5e827c4cc3b9fbd46ecb475dd3c4b412a39ae2b05d4af2be8ec7d75515e2b98b1e07aef74fe49c4d70";
+      sha512 = "d78c29d57143a3aa443ff79718afcc9c7ddd72b8f9fa3dfebcd6c19279947685a7560fbc4ba2de42589cdf4d9a71de94e335fd6641ce284fc60418e483895b97";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/hy-AM/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/hy-AM/firefox-62.0.3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "910fe027a761480a4673207733fb5a78c0106249806f5c5347bb602de6853ba4299f2b13c896a088368eef036bef38962a487b4b3d6957f765f39eb06bedfebb";
+      sha512 = "e7239c2f90870322c16e9af03da9156d8d36b6ef5b71053006f78f94af9da068e81521eb155abfa74195a83a63f7181cafba270c9bda2d4bea63f9cedf9aabef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ia/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ia/firefox-62.0.3.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha512 = "4138b14e0cdb6f6760e5892bbdfea3c244460cf2c922e737a1af568b1df5aa0076cdebc836688cfd74d97ac859cb8fd71ba52752f5db1b28e8827ca59123756f";
+      sha512 = "e614f2a89feb9b2555d2d3de019c1c6b74b6891eb4e9b7d9e055444ec923689442e6c7ec8f2d8605236e0556c79827a031a870989635234439e678eaf1846e39";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/id/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/id/firefox-62.0.3.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "463f2d340b7c439ee64ee6429021062cf05b2fd4f32226723bff37a67c5f25566ba5d6815a5e604d82df97b426b677b3158b2f8a565762a340cfa7425ea097ff";
+      sha512 = "2e5e40dbe997459c14432f80d50075029ef79d1fbcf64fffa527bfffbd5c348ad84a2f2909045ddf98f2b268c26a20b1bec0c00ca753e64782a0e7dda972727a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/is/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/is/firefox-62.0.3.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "ec264aad9cfe095119f7f52f3391d376dc1864c24eb133bd51bde3349afc92c3cd1bcd0673b1fe95fa03ad36f869e0a6ee9835e97e922bd949228954779c075c";
+      sha512 = "77875a40aa36692f594ee0e714ad9cffcca0d036669f10dc31ce8492c1b372a885642b9a3f9cb85ab94833cd7accd425ea673535fbbcb93d3255ae74711b0ccf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/it/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/it/firefox-62.0.3.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "c81ee4ff685fae9108b07235931b9d0347ca46e3063211764fd1762e2ef9b5e4e337001304a14309c97593543859800d7dab9fbeb21a18af1b84a2b2b6c6d5cf";
+      sha512 = "6e737a1911bc5a97c6bc3ccdf33d72b5b964b2e155672ae583268393b3d9ec785765d55a0cbbdb0deb4fd4bd8bbd2bdd0849ed27ab782116f3d09293f441f40f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ja/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ja/firefox-62.0.3.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "2f0ac4bbf507d3c306dc30dbfb94cb3bf8d907431f9a5c6b863505012cc4b077e22144af3658dca60e056d287273129f4742c72cf78f800162347e64d2b887f7";
+      sha512 = "eb69cae70ef52c96b21f74fcf339ae031c4dde08817b211b4deed493d0ed63c87b28cea1d67123fc2f36ec4ff375f8d8a4f6eb07f0e55be87e1ae74d001dff77";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ka/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ka/firefox-62.0.3.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "4a85a9f34e69abb29d63ef8cae372f225d246a5065a26d03d99a22d137085609e6ef5adc03df70fd7fe1057731472808f510fde2a40926418fb98cdf8dd452ad";
+      sha512 = "87c7a6872de8829615834706fc76f1eb093c57f9c7866a45a4a43f2974288f05d7a98a3b563b65b2464e649c8a34972a9d779b6386bd904283db907981064f58";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/kab/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/kab/firefox-62.0.3.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "7b03433b9c79203feb40705469c6788b8df08505ec2e92c704570e0cc5b8066d2b305a68a4c7a61f81e07cb6ea7ea12c059b00e8c11870bc44be54406e8a224b";
+      sha512 = "c65d155fcc48d9b57590bc09ccea6303b85c1a7bffb8ab6783e39408ea271c341f558ca6800eae145baef263af54ed19b882b0aa39ed75b38bfa8a4f5b3842a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/kk/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/kk/firefox-62.0.3.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "51c141c62e3251101a5b110573c26547533fb2a8bb2019cee63734ffe4ef2c4d1b4b6e5e540d88e0237721ec7d0d88c26bf5c179630f685c037e3f9eaa0a6f02";
+      sha512 = "2858283a1721fffac6af65505c26d3c761331df82a7a17d5e107d3b9151cb08e448cf7d80eb3bef29068b9a4d0bc2f268207f86e0afa692a50b8c9e6623bf835";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/km/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/km/firefox-62.0.3.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha512 = "113303e05d1ea54c38ddcb0476873214696f38b17aeae64381a7bc00bd59d3ec551540125190c0a48e9e85abc4de9ab232bda0a6dacd1bf7584b7d09c9be67ad";
+      sha512 = "fb77850dbdbd2078ca6b7933fd630550d52ddc57615a789265756b460840cf6389dbe138be82136612762f48fcc8da2f8aecf94c3ffbf8962b6c1dd6f60cf52f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/kn/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/kn/firefox-62.0.3.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha512 = "3dc579341533e0d9b82919aea3dddae1ad247f9a994d52d26699bd371c8910ae5b417e76be04002af53eb3caf5a6c2323261e48dccb8b4ffa63b27fe80272681";
+      sha512 = "cea7b6c2c1c82b6d5ab14bbcd9345325c826600bb1c736ac898358e9a5d96f0e58eefdbc03190a51d21b4e3ecdc477e6b2e88f493e3a787219dab6970cc3eb40";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ko/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ko/firefox-62.0.3.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "4269f0f945c360e8385dd83d3a62450825a9e74c349dd74a9f8f18e683a83526113ed315e5e363dfe00706b59bad92739e6b08c004e27608addcbf599b7da21e";
+      sha512 = "1f8b2af8a153d1b166ca62cdbb652e255653e8ecca33eb10d81b71007f5f6d3645cb33613f3def21f6384137ddd54697a880f9acf77908ab0b800a88b4420813";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/lij/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/lij/firefox-62.0.3.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha512 = "ee26793ff03184b9221f7cfc88bb351f27ce01a04fbf74681f355e2a0c6b4330eded098a4ecabc3215e3c6b78fd2d09090275a4793c845b3c6debab962e2999c";
+      sha512 = "0806dce8a381741d7df769e87061c15df57b6839fe3230be30936be5406939d79502602b02202654d78fa45f284e33aaa88c1d62b4cead4230e7368737105761";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/lt/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/lt/firefox-62.0.3.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "2f7b98d182b4aea92f8e370107d56f647e16a11a1966c2e2e47b8b4ce2b45d9b9742d09c19478c200cd7fe42889ec4c2498304626fefa7531e987ad134e3c05b";
+      sha512 = "5184b3525d094e80bb16acbacd9e8323f83f25a3a1652d82f0bad6a78f6750081140a6c007a4c2fad8c2955fad2aea07577642341dbef01bde1f7c06947a87c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/lv/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/lv/firefox-62.0.3.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha512 = "7c31be85ff6b3295636f50b9c7491fa467b2cba1e5ffe9c7ef997c3674d8cd801e14ab8fc9bc2d1ab75d2a379aa590109530c1ac81599f26b747a43cb557cfa9";
+      sha512 = "49f878a62d140a6667a76e89b129f28cef1a56e02212aaadf6eaceed2c776e54f4ad23bbe58c6e013a16c29bf81c06ef942451c726b7372a20391cf75e08b1ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/mai/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/mai/firefox-62.0.3.tar.bz2";
       locale = "mai";
       arch = "linux-x86_64";
-      sha512 = "e365c3e4a9d2ccb80871c1530ae1e372d4ac1a809cb2c72f82c682161dab6d7707591194a72481a312760a7819fba0e5dc9ae3f80308b7a9c45af66d97e47230";
+      sha512 = "4b24b433fd5c695960476fff3ad678e094bab5d81f9e7cd2d1c6a3c56075f0bdbd4f24f6c6009e0ac5b5a4a25a7e72b2d566fca0f08e6cbada8131b9b5700be4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/mk/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/mk/firefox-62.0.3.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha512 = "e28b9564ce368a8e68c27436e967cd5ad5adbff1b78b50bad64f7646cee32a28f2dfbeaf0bd049d7057ffef59ce709765cedc85ea139b84cb6b02d95c743cb81";
+      sha512 = "2c500c446c3ba9aa6735df3fca9673e056d04b8d8a059ed50bcb4cd7b5819fb224e12fffde3d33d5658adab93eb9f53c296bb422556264eb3bdc08e4a386e238";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ml/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ml/firefox-62.0.3.tar.bz2";
       locale = "ml";
       arch = "linux-x86_64";
-      sha512 = "50ce7dc0445a37d125fddfb51951d455b91bec19f807df262bcba0734a7cf855d455e965144e1d8da4692c4013861f62cb683e364e33e85f4962c99097b74838";
+      sha512 = "3e743c899e60cea9010c28355f0b1d3f5f34da6c4865f7c284edfa81ae835bb8ba21e378c3aef36310cdecffcb1be3cc0d06b9e7c9ce2ff15482db3bfee93bcc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/mr/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/mr/firefox-62.0.3.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha512 = "defcaaf5c589d0a11104f06890f986ea3cb627db499c2bcd1fc39162402b09f8c1be3fd05ca33571dadae9e8d127d1d67dc5f08804f670e8f8db45b33ead6234";
+      sha512 = "53864ac115e5f84f50b4f33103d549942b4c19286bdb4c236a794239bd9f40bceded9272c43aa808405eabc2a75ad36d2e643caaf30732a57bfa7d2de4c908a4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ms/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ms/firefox-62.0.3.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "2f36fd10942b2a700b6901efafe2fc14e8a7cd97d41241a070f87edf4d1ebed63bcb1d202b1c557426bdd8fd96639ac263ffcf0c96ecad9196916cc69c9e3e90";
+      sha512 = "8820b20add1fcfe14f30a4b54428008cf770feb321b0e9aa27a0896c94bfca84aa1b4d3c4c7acaa30ea5a615c94259837bc9539c0b96f6702a3a5b093842dcde";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/my/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/my/firefox-62.0.3.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha512 = "71001dd61027cd3acbb12f555a19ac3534c547b2d9b2c964a6bdb656524429ccb25b6c601422ec7f8af9e7d6319319e4bdf0db15df3f3833611d72d3d9eba410";
+      sha512 = "6a34963674a7448a2454e2b84cd732cf679b65db568f165d13c699651efaf1ca4804b0602181a9dbb301aad7e5dd39646b19fb3dc73469792d82f02220a7d9c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/nb-NO/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/nb-NO/firefox-62.0.3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "2bbb7a4cd756757c0559294a487c972ab0c6bc6df005c948a24978a35f51c369b66269dcf6fa96795525758ae66e24670fe8ef7fa0f5b05b7d81bff79f2cb762";
+      sha512 = "cffe42d175570493c853044e0bf774155e1b7020d4d26aec7e578a6bc5cbaad057c125d30c7fe92f818bd9b2c982c775f19ac5535f606346b46bab095dd99b18";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ne-NP/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ne-NP/firefox-62.0.3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha512 = "4bd51046dd55004e6a08dd0fc646344f91d7d830249fa8a33284f4c66bd5f11b1913920119593e45d9488db1b9d7aad1a74b296226633d94a02c0c705f527a60";
+      sha512 = "72ae1ef7e071b665abb92dd07add0b4023cefb64aeed09638768152a0c15d7370686849199771e7f19272b5df8042f72f76bb02e57f9a304c6dc930d49c2d04b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/nl/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/nl/firefox-62.0.3.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "408bf232f3c1e592a929ff2364b52af899aba1a7542e6199366a7bb0369ec14bf3c44964851a6dfb37ece8e9ffb342ce7448c11013c3013bb0d4e1d67a43e2ca";
+      sha512 = "b290a26a41a6fa0b0d1d89076aa5beec4a250ad2ff053e83c19108164c95c78ccb50ad1fdc6e1091605bfdb1a829d108fdd4528747309682fbe472b1332ab741";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/nn-NO/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/nn-NO/firefox-62.0.3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "450239e4d62d03151b0ff093e04e4cd5cffafeaa91da7374390d31c5944366bdfd0361e6e59b162352418436f7bdb1ebdfbe959107efd14f0015de0e873cd5e1";
+      sha512 = "9f4ea82b06102744696c1c842cec65250e4361c6e37607ef5cb8e03abb31bf97ac8032de7120f369362199d4aaae1274563a09f61f04dec07d50aa94358e13b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/oc/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/oc/firefox-62.0.3.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha512 = "a7c00d91430494659a4a2285ae9505329e18a10985757a50f9543d46b6ddcb740cbc440e31a1718ba4b830661bed56a0054c5309b04bbd8029abc691b59f0c08";
+      sha512 = "e75d1a8c0af6424f7cb7575797c70b230919d840086f4bfef850febe36b863d9663d0dd45c6488528794f7f7356e0042c21dbac8e607689989d55b51cc64f3d8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/or/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/or/firefox-62.0.3.tar.bz2";
       locale = "or";
       arch = "linux-x86_64";
-      sha512 = "e0ed4fc73fcffd0c59f87b6ed8d1ba4ebf8526acc79ab5a2fdbd689c1329d185bf9717cd34f0921d9ae2028a18bb12d485a0cfdd20dffb3e2a9b33969df943b6";
+      sha512 = "563dc60168a9e686c6058117ec12ab84f55836ff442f606f0a7ae6af663cf73228956c8d12141a0dce0a80d75386623002ede2fdf89c07b6a00379c08d00b544";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/pa-IN/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/pa-IN/firefox-62.0.3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha512 = "8106baacbc84b053eed0527ef78f9ba4bdc94f0679c0d887d72bf19ef5c6a7950b6d8e9a35d493b51de031ef2e4720d03abb9677355a65b2a539c9e73a4ab633";
+      sha512 = "2fca31b8ec096191733a1a7ee6ecca37b3ce2acec56be01e23556f68ca7e6d3cc56fd1ff0a3dec7b2bb090d28606d545690f567d6432e25e8b335d7b238fd601";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/pl/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/pl/firefox-62.0.3.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "9295362613e98387d10160af9f779a03c8318797e98daf39a514d70618eeffa53066113198257c6cbf1373fbcde33cef525c917c85fc3e838df5f918868e10b0";
+      sha512 = "0c2f125b0aca823fb2a99567ede66e18ce9ebe1dfb649f9d6ef5bb4683c61813d9f9efe94c2224dc7ad441fe0f2b3136a3d090ac1335246ea4c4304229c106a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/pt-BR/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/pt-BR/firefox-62.0.3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "d5bb188822c7b8e5ecba035585621685cd1b334950b8480d73b1841f871325236f9a13a3a4f0098d11588c0085c20fac7525a57cf83687a29d15f05cf9d9cbd2";
+      sha512 = "15563039e10ae5a6464ed0d20c0afab6d6a3bb5e54bea507db87fa03c48be22d7f325af22f776d052e49b9ebf9659c36ad77e92a22f884a0c443e3d49462b003";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/pt-PT/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/pt-PT/firefox-62.0.3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "ee2f8aa32c2e20bb69ee291f3bd4ea931d5b2ab863f6f650bce92d35b331234491b93296803f5ede49ce49027b805241db44989bf48ee6d68722d262625b1fe1";
+      sha512 = "93eb9f47254a1119074e462c892698de6339bf68ecb3c1f3d4ccc9c97758ee3a0ce54cc026b8084b50283f7ad7960245efa9f345761ec8a50b4363ec52d86aee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/rm/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/rm/firefox-62.0.3.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "60605882860f1e1b805f8cb74539c421e45438aff07e79d6b3b1db3546d38950059665ca443d84617ddc9a4a3c104940d885f294932390170b3bc6c2eedd0529";
+      sha512 = "96295dfe17a2e066f838add7f3002e6307d1ef7e0212c0c3bc543bf7e3ae3be9da5a49bc6850b3c4b5f5bf46e112bc690824e528eb90f15864d43c7ab55d0eaa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ro/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ro/firefox-62.0.3.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "850063575dd69270903a031748e665cb8363105057f1e170e43f264b3a9b228976fc901f7e3749cee22e3d9489b3357240198dc3f22e20de5b9581729e8c601c";
+      sha512 = "2782b44a49d116e8d15c0df9de710f432195a56cb46934e3d5659e9c91a190dfa49289cac64c738323fc2399058dd9e3bf607fb01d52cc9ee671499c4c29e10c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ru/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ru/firefox-62.0.3.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "8491c625171c0bf7c88c3f3a053e5f49a7c56b9dfc7c0ea7c381bfcb7505ffdce6a1079d15c73ce6a4edc5f89125e849e8b5fe8d464a4440d4413dcf6666a0e8";
+      sha512 = "fec5ece757f19a19e5dd4d92a073c8e1fbde56757e12e038a7247edef11e4fc9daf27264b560ea9bf8f37008432df4d306f8209baf826c537360ed8c6ffbb538";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/si/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/si/firefox-62.0.3.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "bde4eaf6879cb40967ebc872738f5ac6b931f6a1a633886e35985fda76de4ea4c0a4ebc7e68585dab34f7f453cd54977bc84fbcca636d53d6c5eddfad6d13bde";
+      sha512 = "cceac95143d3444e6b4a589d6685ef6740ece81b4ea26c0b31b4253a117b4ee239468d404bdd9caec9543e645e9e985304eb8a354000796e2124d71e23b74921";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/sk/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/sk/firefox-62.0.3.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "776ea025a2e087a7d8717c3b63e8a203f13ae7e44812e0bcbef8075aad1166f80cb6977970d88f68720772668cca982662c2172f1bfca02732a79daf45974112";
+      sha512 = "1e4b31480a5c75bdd350cc17b159e2e14fcb53ba39215d565510ed54cd7d12d4e9d6901b1ed0909140e03e31f7c1005ba8e1a48a3a2f6d91bca1e51490cb30d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/sl/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/sl/firefox-62.0.3.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "1bc1a53815d287acef056c981bf306b1ae7cc36d4c8acd3bf556f3a2f44e6af2c05bede49f04bf7fd591cc5f0be40dba10b38c5b64379c673705b57ac0853d79";
+      sha512 = "6ce2f2c338ac8481224518bfaae55ff66e8005ef40ca7a13cec294e1b797723b6c3874f96b6c2e4fb78ae526232ad267cfa407b8952d454fa5f4eb40bbcd19a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/son/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/son/firefox-62.0.3.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha512 = "ba3f5377ad15c8586c7e826ffe8c614ba71f49c9867caeb1fbddf9ffa86d513f299fcf39d750c7e91db88ba17533097d38def63c8614aca743946d2a3b0b0484";
+      sha512 = "24ad351629771a6f3ad8d381508bad99094ae441f6ffaff9ec19d8018fc711ab852a42b9d1d0f447e8a4da79c1fc177ee9368940f15b1e89344dc7beff49946f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/sq/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/sq/firefox-62.0.3.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "c3f35991e3ff9410c4829491acc4a7f7cdd61f9104778c168adf3e1d359d5d0c8cb57ef552aeed669f80098c546a72f7adaa09cac4f486dacf78bd381f5fad76";
+      sha512 = "d8c80ea61e545f29a8a2b0bb4ee2be81650c131123693f1d6955d00364d67c4bd78ee6c85903d84d62c2405bc0df4f45f08301d1a13c30f6f33cb24ce4e9d7c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/sr/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/sr/firefox-62.0.3.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "df6bdface285322457f676d74703084cb677c6c429992a87dfb933bb3da25eff374dd2894f13c37616268266e3934a55cd61f3f6239a487595282ada58bf69ea";
+      sha512 = "c9455bec9df85347e6aff71b252f57f4859bbb8f378d274010ce402da0ba6931d9bb0a6d0f2dfdd4d87700ac68b039ada9fe7f673f5fbc7d95aeff738980e68f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/sv-SE/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/sv-SE/firefox-62.0.3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "a48a11e4b1e1bea955ddd73c77e7f5e1a7d03435b29659f7b610a089b604cdfed57893420d0c1827198efea6365a52ed236a8296646a980fabb6007b865a78e6";
+      sha512 = "7b80caa0fafdd82fe1d0e1909656f894515439fe21f6c41a05455a06c89afcd72fed37c846c8168e874da47598d1eb87c676637ed9047943d0483322acb027ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ta/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ta/firefox-62.0.3.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha512 = "e01845b225c5516ecfc25afde98e9691b9afedf27405207cb91e655a9b48edb416786a2cb99ad73df37da41cb22c58958165836e5e6b1018c6c9f788f2b9337f";
+      sha512 = "47a13f1bb090ea5271aea1add660f765e330b351ea6c77edacb380c74d5dd1939428b98ddd4f4cceaed38af9ca99f6f499298289f44c5f5d7c78c9ee3fceb9d1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/te/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/te/firefox-62.0.3.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha512 = "95b795fd6f995527d85fa83b122bfd9a2c091c792c879f7f4611dde63b4ddaf0502d3ae0ee33002363da359d1931d008c01e40611eea61f1ff66aafac2844f52";
+      sha512 = "7d0c21a749be9d7bdca8a7b6baae2044335244ce35932d913575cfba1eb63b4cc2a41ab79a5e19b6d3ef0607eaccb0e6303f57cfa9d44fa21deca86a34b52843";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/th/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/th/firefox-62.0.3.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha512 = "9ad3d99c9479155e20559ee1c8ef276a69b591be2cb96700075ca19352f033d9063d9f9b57ea9fbcab5db9bf46e1cb03c9b001e6254b6b0bee5547f8c91fb59c";
+      sha512 = "d02a77da738db455e419fb2bc519650d911b4612e5d5e282c54100e719d8b119b5e3119cb458f652ae532128ca64afad1153cf4b3434bffecf2cdbdd67cfc029";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/tr/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/tr/firefox-62.0.3.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "90fca950893500868edc6ae1c0aee417cbbee7b7a0f48e0f10421b3d7ba495a56e090543ffd097949c9bebe69784cb8fb03b559156863f9dee940aa867421135";
+      sha512 = "87ec0311160aac012e601ed753599019b499b08e73f256d78c68a695ed6c1ecab53095ff16b007a4be08ffe54feb0dcdf31e7465271a3f48928abbcc5b80d5ac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/uk/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/uk/firefox-62.0.3.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "18942b931cf09b03973a10e390ac15c6e5bfd1f730953b782b7929943838be19bf4a61f157b33979f1a8e13042f1f4facb08ab205b7825d285b9e96c0ac897b4";
+      sha512 = "d80c098d00c9681220c9ababf0f62b69607ab6b71ba34d177941332450ec51a5b9120e0c3e629e0eaef91c64beb9b10aaafce2fd094f931cb976a99266d63a10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/ur/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/ur/firefox-62.0.3.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha512 = "7f16c4810467469385a88346f5ee3fac4d3d95342c6a6d37e0df7880f0b08896d0e39e77091eb0262a66ed7fa15c3151f244eb47ce4ea774ad21797b5da502ac";
+      sha512 = "98d1553710997d61efa48c7d84fbad2fba5d730d0259b9213811b7a5f47ef1e4ca8940f4e17708e8dfb7949b4fd908bf80dd5e9faaa86b3e3d2c3a07b3a3d7e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/uz/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/uz/firefox-62.0.3.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "8266d638c74a78fa26c939c1ba7a6abd05ede85a9e349135f1934a6e3df27e3f6172026486738cea28e50689b84c29c0dbc63cc8779faa11a6ae55b4f367c23d";
+      sha512 = "7a6074c2d7f1d40c41a5969fb33839df065fb398e7161ca7bf4d6aabf22a87deaeec7d623f0d36f992f8907d696c5aa53136cdee33bb623dfed94cc402b1fc46";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/vi/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/vi/firefox-62.0.3.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "787e570afae27cb668d6f4b9b6e8b3097f02148c2e2974efd1c58e406354724def031f04fc69c0ed10a04ce5833cbf7bb2ae8fd77ef068f8f17bf2118d1305c5";
+      sha512 = "013c9210066a5b72f9640a5d7d647312391daeadf757e5b13484a035d5bffe2405f80d4fd750e7afe81990daf14baa49c6c4d77cce7e1a60a3483340aa115524";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/xh/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/xh/firefox-62.0.3.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha512 = "805df0dcc24a7d77afca47335b31cbdfd0d0df51145c9cedfdaba4d865aae71697eee14e446351e6fd8db950e3264ed788f66d683356d4fbbab17ea9d7c2c452";
+      sha512 = "b104815968385980a7bb297d83fea2dba4ec18bd853ecb70ac7065f30e0fcf5fd3708376f8202840d71c2d9e6bb3c48dcfa866594d334dc7a5ae3cbf3b83c888";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/zh-CN/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/zh-CN/firefox-62.0.3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "cb251f942c31cc0c30c46bab04f658567b16f379068e7bc946970ed512e2de08c6e3511990b722541756e95261dcdf96b03cb247072f0b230f66ba7afdb038f1";
+      sha512 = "7961e947a3c34343c54d06e62e522f503375d83c8fda6648197b1408ec0916e54dadf6da982650c99d4b7215889eba015b5f1c8e5ddc0a48b9aa6c0925286540";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-x86_64/zh-TW/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-x86_64/zh-TW/firefox-62.0.3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "afa5847337657cee3ec28896a089bfc0fc2b25750d6dc271bb83740ea5170e2f926fdf3158b0b136eabe0d2d6b4b81db1ecfabcd8c2049164af54cd796e9a7c2";
+      sha512 = "e09fdc1b84093c49fa8918310fc2a44b0285247548941bb5150a5a64ebff12c1ceacd6e8e397137da14ca6d8336bb2411dac9f4d1126c266da679d1214ba6974";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ach/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ach/firefox-62.0.3.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha512 = "99781074276e530b9ceaf2cdb8f902673ceeba3df515a6c2c2ece3fb3dfa84e6f3d494a3a69346a3f9fef20d11f7bac0361eb80968ec7b9e76b603f8b001749b";
+      sha512 = "f0544809f924d264af750456abd6331af1b4116710ee9149604bbc11745070a76d84cb50f4810307a078e8ae4d2966b6771c318243215a3eef8ad957b8127414";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/af/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/af/firefox-62.0.3.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha512 = "bd9c6fe306a8802b22860cad8cb452b6591c0227e12ffc4a33db1a88b811d06725348e5f128d624240b9666393cef35b30f5bc7d12e41a046bb318dd346f63f2";
+      sha512 = "3c96ed1cb9408d888478fdce554d577930d2d365d10dba7c3fb7ce93db8032df25ccfad1f055ae849dfc63428afb9935dde013ffdc737f364704d4b693d9d751";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/an/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/an/firefox-62.0.3.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha512 = "289c00b7bf464fb6d86cdbf24274514dca98dc47e78389125287792e8f77708090c120aeb5ebaf4688e16857c5fc6b78fc1eb6f0a7efd7afb62c22fee325e78d";
+      sha512 = "87038254a3f4a6e200b5de6b6269adc0eca198e9f2739bb810f00fb028f746a989b50b5433fe3577bf63250893b69b45bc7a5184d2a6c050818e86213b1b64be";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ar/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ar/firefox-62.0.3.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "412cdcb82e2d60e2f37658001638bbe50cdd3a7db1e9bb4cb0e2fab49b878fe64b62ef019e499c3a960bca3510266a0afb3fb4c57cc5a8b6bff22aca772e643f";
+      sha512 = "a7f2231f026fa90f53952bb9cc7c36663226c87afc6629466fe1d15e379048bb9e464876b0d8c79382536bed850c2f806c1e8b06fbbbaa1c02551f778767ca89";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/as/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/as/firefox-62.0.3.tar.bz2";
       locale = "as";
       arch = "linux-i686";
-      sha512 = "8068c78be22e42f9174cd6f9e1e7dedff527a00865f722c6dd9062c6f5cce2b83693d0938ae5f56197f72f5af71bbb485b0970b632ca5dfec9190214558fea2a";
+      sha512 = "9a101cbb2d9b689d05b976035e524f2026154508a3c18a9f1e238e600be0924d36573a951ef3a54a28e62311f661008f66ca8438d40e985357e537bfb7b71d33";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ast/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ast/firefox-62.0.3.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "37ab6ad2899b3b115bd2b59f6be121e2d340c27eb745f698fd2942ab6424c0840273ddb4afeaf1083d9f458408b939270d971676e9b08e1f0fa409bca69f3e84";
+      sha512 = "3305cd08c09726e04ee0d3a3f0228092e596641d1f80e5703c869ce5d3588fb37bec2d80a2db5690e5fee5517c8745f13e9bf723627a03b499e59c7672ce932e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/az/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/az/firefox-62.0.3.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha512 = "5724ae7680d7e88061a4cc45706590d519a5bd769b204d06ee0e8e6e86f706b312b665354d22314853af0a73b073acf68be8b7c3ae9dadb87984e1222722b4a8";
+      sha512 = "138b35496601a577752dc1362dab7a5c8dc8b3a78b0c252748dbd15b1bb1013e304aff8d8ef1a9f5138e4e26dee74149c7f66eef752fb77ea75a6dfb8d388895";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/be/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/be/firefox-62.0.3.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "6249b41382a1d2cdac2d9c9d235697a70bac76d0dfb341d3db41c0f329cce868ef66df6d2f249b4e22a1daf737d5ea3b7f2cad36a2d30b1dcd649fc1476218a5";
+      sha512 = "7f6608f932f96bd84f57902482b691aca966814f1475bbb0479356c792a16e4698a289f944d7462db71e77552f368df1dad3181280e3d0e07a5261ad90c2bf63";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/bg/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/bg/firefox-62.0.3.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "a769ead4a10d4168d64ac9c2391c0cfcc5e0dc33f4521d6df73c5b53087e3aa073096af09adc49c901489e60af9839ac888483d63f7e9bcb1de2588236cba75a";
+      sha512 = "c284d6ddc03c3bcaf82756a8f9909e12ca193b9b2a21096f84383c71e1dd5ca7369a4eb6c02876ce741ee38e6418e45fec2ad4936e7c6d48ef270ea45ada462d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/bn-BD/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/bn-BD/firefox-62.0.3.tar.bz2";
       locale = "bn-BD";
       arch = "linux-i686";
-      sha512 = "0761e32fd88fdea9c87686411ed87affa8875f2047ff9b1b1ec11376583001c9c9b421b2b27cedfe883cc5cd233d4d3a932aba74e50cbd74aea63a6aaeb64c8a";
+      sha512 = "eb9b3e070e6a2882a6b43d2a0fa7792f2b8700df9f64ca70e6f616e6237e0cb15c5d5a642db8f7b236c7cb2f4392dbc553072c544e81e0223c8f4d6d85c36be1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/bn-IN/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/bn-IN/firefox-62.0.3.tar.bz2";
       locale = "bn-IN";
       arch = "linux-i686";
-      sha512 = "1868b2d7d6f32936c6072998afd1ebfc232158940e5270bf483c6c29a8a30682f0ba729161e9b0aeef7d839c9e9209739380a20b8b118c49112bd71caba03ec9";
+      sha512 = "73c4c67bb9f4fbc47509c53820319456c614a74dabe8ba14d05b365a3ba9429d1d9ad9ebbc6d1edc7bf18f4a387ed9dd92850478268f2eea3541929558f14e6e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/br/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/br/firefox-62.0.3.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "43d1691d6b1d9aafaee55be50bf8c4934b75c0501c811314d12e1156c2b68cd58914362e167ed50fdf5267a0d7a2db9730c68bf318d492bacb8c33eee7bdd12e";
+      sha512 = "78921d68f06c26f029f29fea01a15c5dd54f55f59150e08d38e05f640612355a494f72d88c0e80bbb2ea6f54ec26b3a5716c3249f1118202843c4ab1ef05f891";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/bs/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/bs/firefox-62.0.3.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha512 = "aeac8dc018ed59e2aeb68b63c1a1d6281e543975844e3ce5b7f22991968bf0e05f40cdf1ad3bf434cf9de774363b0ffa6f96d1c0b457f0372d4d1d943c0a40bd";
+      sha512 = "643d5ebb610d3e83a6ed85a3239a8631c150a86925ddfaf5a4adc87d0a8add022a5e35ed20fafe5e6f1a6835b3ec105ae1734cac6552d79d95b83bd34c1e73ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ca/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ca/firefox-62.0.3.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "10b6c40701b7cb8f2543e97a61335f426b210273d46d542034bcefd7d23c95124cada1d1df85c3b5e33d25e8680678b18815ed0c8ed58936061f670b0abf1d87";
+      sha512 = "ceb8f81f3fde233be921da104d993546b1200ee348b19340f43dc697685b87c80a4377d406dc72080701614896f7b1cdcc27f364a89a92e433639603e08a6611";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/cak/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/cak/firefox-62.0.3.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "029cfee850c3ba5ac408b6db45d66dd9849db392097dcedc64d637756ffba893770a93915eaded6302f6e667f072949fe6decfdd918be292abb9ab8d1300c2fb";
+      sha512 = "04f5dbdcfcfc2b996a912130335ed855612e5fd2f27bd4cc615a369be2fc2dad14ba43511dfb2bf47a9fde3d28b8b5913cefbbf34b89383eb36bfdcdb96cfb3a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/cs/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/cs/firefox-62.0.3.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "ce919ca42a629f171df4faacabc18fc3db0faf2d38f04912720ba697612215e0c26f650781a535b5e956dca912fd47d1d9b9528910b8e9b7a18841c411e25623";
+      sha512 = "b82cfd9dc6b57e0bd147f508a38bf41bedbf8fd9c6725434fcbdc8871cf6f683898ff0507e0e2fc202077d234096cea252acce56e6faaca738e60512b3b9e1d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/cy/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/cy/firefox-62.0.3.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "727827fa6b47cdec5048f40005872f021cc506d7c72a7f1a6bef9f736612341fe3cc6127b3bf005f63620f17b180a00c3fa0f799f63e685111119f9661d9ca7c";
+      sha512 = "8f9d4ea520c99d3595d8ebfbb8732e1bbb73b7d39ab707e0a3f86d3cb928231e1b7d84c7ef017d9f685a2d2893c0b486f27cd4a704f05cd7518465452010df97";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/da/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/da/firefox-62.0.3.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "e795a7aaa38c28733a8864928229d91d752d6f0fe108bc5a3350b34e783155c3be14a5c0261eea26642097db2a583a34553d746d6040704f34de82953952f21a";
+      sha512 = "28ad6674fdb830d07837b826ead67503a943b7cb2330655b75ae7bdb5f348458f19af37ab775d820a0f0131a6f7d5dda52bdabdedb5b0deccc1605912e46b9c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/de/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/de/firefox-62.0.3.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "56185cb92f9a246140b58119cbbb6a128905c8e244a7ed8917613a65fe8f87a542b103afe69f1fa542e47efca18c8666e669c266e9c107661b800c5e3b4ebb75";
+      sha512 = "b94ebbfaa81bea44e452d0ae69c3069bf100178c82bc28b3d2841ee14dfb4bc2c55b99d325fa4d8049afad93e674d24160f6bdc235e329e9575b49842c731d5a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/dsb/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/dsb/firefox-62.0.3.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "ff30865cf3135f466d67143487ad34a50b73c11000419b2caec1c232d4efc805cee5cbd282bd1e0b9ccaf03ccc95e08ac4d1baed93abde27b45b0f2af5d71fbe";
+      sha512 = "c292abb164b948ba76b13548c44fb41033ec9d394b3d3d710dadb72f666c56d16fa7d72dc5c3aa4543b81ccfd2ff76bd5e94cefaf88f537bfa7c8b16b9290f71";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/el/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/el/firefox-62.0.3.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "e22d89c822843db26e05834c088e5d687c6d315a870ef2457f13126bd740135016ebacf83b9fae131128b4fcf62b474a68fcb1fa12098aec22f199a5871e63b6";
+      sha512 = "35e01baea98785db080f801b911023c6ef3d5bc6c61d8e3a5e8ea1ecf7e51153e4f2646db7a8fd32dd1f778e1804cd2065efc28e8d79e8475105d9f12c9b0a7a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/en-CA/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/en-CA/firefox-62.0.3.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha512 = "0f462a6900bf92513c40f28a9fd2ecb0fb3a69678b2b0091e6495b89b9a2fbe6c805e48b2e55fe274996ff7a15c32294d02a3e025b97505f920069cd71b23341";
+      sha512 = "ccf68a4f05f4c5b0dbaec25c69fe66eb9d1c23f3ad21e6fa2be14704fd5227fbfbac8d46dbd036a6e17f0e94b58a4fecbe91520da45d56a2901074bcd7031516";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/en-GB/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/en-GB/firefox-62.0.3.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "dd7a7fc0b05877f1e1f297b123075695c97247e2641311ff646b953e002278e2e16187682226eb46034cf3959880b2d17d74314ff7dcc654b1963beca6785410";
+      sha512 = "49eda2efa176054adc5579ec26a9da92df9903c16d989d761b8b566568740b135f851e5c2b983512b644e80074171895431b3c1689708dda9d86c757dd7d2599";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/en-US/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/en-US/firefox-62.0.3.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "bdb45cca1c207502ae5f76fe10e4b73d3f7e6079913bc9a6216e9325b8c70fac37d14e32b4e5ef6acadd73c301c3ca1aa2d72a5d44acc0b6cb0c22b481de2e46";
+      sha512 = "08e3ca5f859a531b2895a5442734112de9c450bc8bdc2eea9a8fe3231f3b97b8a243cfb408311c56c1703dce63fc2f5201026719fa01b9c76061a204d59942d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/en-ZA/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/en-ZA/firefox-62.0.3.tar.bz2";
       locale = "en-ZA";
       arch = "linux-i686";
-      sha512 = "351ab5114b25daf11ff2ce1aa377e6c16a7adf9807a7609c97e04f30911f8680da727c6dd1d3067e028978d3f6f793351d99f500374372dc22b11ca760e4d36a";
+      sha512 = "7629e33144c955d015a17bbed4d1e570ae74045511c6ea1db9131b711ac58c67e76748e22ecfaee5b594651f7c736cb0d6d87697ba9dca46705e5328bdfbdb2f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/eo/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/eo/firefox-62.0.3.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha512 = "1ec40261c42db667f1680361e4e7f12db271f5fbe6d213d44d0722e692a93421bb92d73193f87f42e43df40700cfddc7913454d6a64f5e15fb78f08d7a5a3c0f";
+      sha512 = "13430d5a4462e8e00467f0d39d2ad03ac684e0cdebb21901cd0ee4f2411794794cf5024ec51d915e3917660de6077d6dfc08aef30fe6c342f5b8588f07883f33";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/es-AR/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/es-AR/firefox-62.0.3.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "00cc8c232fb4b7b2c56aeed098719d60deb26abacb38f8a7ffd9117c8d8875c838fc702413a6d8584f862b35843262e2bd31074bfbbc7cefa6f62247d8a16abe";
+      sha512 = "44ca9daf57afbf9dccbb158712e9218d87db4254855838604250b8a4254fed7adadc266e3e1fd49d23b34ba0176dfe5f25fca42dd5fd6d1c322c857337de35b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/es-CL/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/es-CL/firefox-62.0.3.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha512 = "70da97fd43b84b5475e707780c215f73b05a423577f6ccb67a31e01370842319d40c6d691c99da138db881d6c5de8f73c1bea8287fb9ba1cd3647bc74ff8125b";
+      sha512 = "09e43c14a99c54ae123364ceea46ba7b1b38e30da8d15bdb734b873a63e37b6b4292edb6f8ec4ee731e97bd12194ea76ec35e710d29ebbdfcf7fb41b1997934e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/es-ES/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/es-ES/firefox-62.0.3.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "76b717e852c1aa2f3801a5460a8f0d51256486d5bb688b30cb85abaa30eb8a441cb28391988ef8ac4fdd1a430e0c09a2c298c8738f7a76e6a18742bc2a4f3998";
+      sha512 = "cc1f5b4e421813c9b044c50f66a28f9204196f9ba2574ae537dc3040d04ffb6eafcdca971536387cf2d79c4c35de5ae3a5335f4796aed878aa5ba817dd7bb308";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/es-MX/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/es-MX/firefox-62.0.3.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha512 = "e4e7f734ba533a0daf56d9c99881c0c1c758ba6e492e8e62b67944fc3a6c42c82df7e4d01a27fe797077708d49c810a51bb05d3fa4f2cf91fb63548f82e25322";
+      sha512 = "5ca49c92ea11127ed80fc48c5699ef541287bb6f53ea7ac96df990e7a82854cf8bfa8c61f21d0bea2fa245a3b0ded7aa7b3afb662b1639c421525900f8e7d688";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/et/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/et/firefox-62.0.3.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "6b832c2b71b0e42db5a2292d90f1545ab545845f30b09baf277bd48597975e426cb98442fc16b7053d5c573d50d42e37e89cc49d7f325835aa5582262333fc4e";
+      sha512 = "074986b9e80ccf1dea362bc7a28f7e44d2fcb9c19878a8456e63b64bb1e0abad293b6dceb6672bae200cff1aac1c774cc99faeb7ce52d7e6a4b3a154dccdf4ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/eu/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/eu/firefox-62.0.3.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "5bc67a8afec07f48c99ad331257236cb2fdde7fa23afadeb3de8c270d78e93bf855702bf82781c9c90eb5a4a0b9966d83bcc6d8f357ff5ef2bc265378200d674";
+      sha512 = "b823fa6c5aeced11c6e0878e11cba561a18893e531c28e9d7713e449905225ce8aed35e1240876976c4335e958e6a68d5e39037fdc59e9f0e900d5d822236c89";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/fa/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/fa/firefox-62.0.3.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha512 = "43d16efdabc3eb39e3aa924387040f6e92c80333087369b754065c34403d202f0881c993bf667322f8ddf303a8e066c4203b2a4daebaf68ce5b95a8c1cf80844";
+      sha512 = "e842e26e5095f008fee36f7b84a9932cc9ab868e9145d92f8069d2f7f24017ecf538db7d0525f7233bc7cae8a2709fa2da8bade077e864cc05c1813ba4a1ff57";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ff/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ff/firefox-62.0.3.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha512 = "86837496c81d9f1209719d46aa396d17eca17a13f111ad0ac3b94f1d3f9bc60ddf8d8b10018e41100e091996d820975db897abb470fc85e0d87a0ff742a67b34";
+      sha512 = "0eb63c6a996dd29ade92ce88f2f9065da63737cea459d8b2e7c79356b51b43eddcb639af9efa85476f500885a249b77347964982ac297cb22adc501590dbb8f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/fi/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/fi/firefox-62.0.3.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "baae77ef1bfc59c87eb72c3ad6f8524dbdf5fda9502abccf297c3b3f6e1033002d9b4e5b341c9fe101bbdbc93dbac768bd962ac9378088c9c567ec5d71ff00d4";
+      sha512 = "db4da21885411214805a45bf4279776144c3270845a6dba20da95a54ddc5cf3205132ce2762ee997895b7a6f83e2f31cc618c17668df4d4211646a1e3b24edf6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/fr/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/fr/firefox-62.0.3.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "60fc885a6b5703a88dbbb60bed41296e2a1bf73405eba33a82e5f916ac0b22972377aec321c2b13d7007dbd94fdfcd24d43fc8f0acee37fcc9e23543c5a65f67";
+      sha512 = "12f3fbcd0f085f4547a4406b25d83858425a4653ea9bb2bd5700e21687c2d2ec8e1a032f76a242edd72be99813cabea3332c18921f16c54edd8c430a017e4948";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/fy-NL/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/fy-NL/firefox-62.0.3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "945c2b7241e0faa83e1dfa1f36a3dc86cefb03d3c48191f2ae6b3dfe8384ae848440731d69363197f724da3c32988e20c0bbfa3adbc52e7eb99018b7ef8c4510";
+      sha512 = "033bc2ffed09faa76e67258bed77597bdebbe20eb0a8c17765c7f3261e9abb7cec558aeb8dc913344e4d0179b85928ad49c71979eb6f20c6a092fb7d68b9b8a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ga-IE/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ga-IE/firefox-62.0.3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "6b3ffd73216ce3879b26211a3dd26db393eba8f0ec3f35b6626bea3847a614d6624f1fd6fcedd5ac00e5bb08c9465b8ae63fd4105a79acf86bc357dd331d44c7";
+      sha512 = "5481287ee60e87e9f71baebe196254f30f6fd793be8b07e4c216bbb9af3d81c321f0cdf77d4459ef6e50c3fbcd7ea6929eaff38bdda2f8ec18acaf44495f7b9f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/gd/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/gd/firefox-62.0.3.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "cdea3ed1ffd14d02d6489983832cf11f87b1f17bc73539e4b27f7a76f267b491ddd3163a80ef9a953e3c79fe184631a32be842474427d9792b2d525df8006ffd";
+      sha512 = "5ab61163854e8255e8cfef5ed8674f6de79cd084839c65b5e2758530135acea5dc159f7001f3ee26f9bbc6d931bf1fd0fbe360a3a570add9560493a8b7e18629";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/gl/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/gl/firefox-62.0.3.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "b098ab10e0fda3fe67a04bf3040112e08ae1e94e30d65a076fa0e1f4d4e30e1be99e9578e06650f2fcddc6cc6b57309afbbda71008af67ad97caf9eacc7dd550";
+      sha512 = "ce59c0e9cef75ad9b762d9d8c31f5c3606c047736ef20fca91a12376ee15bd67a46016d0d84da7303af61e78f1ebb6be0d99f343dd2cced01cdbcac536b0fb87";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/gn/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/gn/firefox-62.0.3.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha512 = "a83c0134556894a375ba91137d9513322a876299edd0347eead0869aebb4b04003dca12594cb276e3a521452d4b6ebbabc6be8f79040514f26f6827f55c15d3c";
+      sha512 = "c73b5e5b2ea49fc13f2acf0397d0f98d0178f25ee2ee303fc0647ee4f939eaa465d329affb2e3a41eb6a0d46f413918b01cb7e01b3776f42712d81472e1cb325";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/gu-IN/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/gu-IN/firefox-62.0.3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha512 = "d313657b11f3fecbb0ef26a0c5a2d4b9ead411f2a3c55bbb4bca3ea3a6d861ee54ed1950e9bd5b14b24b9fa569c7c67b73807353331af60e3cd942b570430a76";
+      sha512 = "3a98d619ddfaaa94d0696d05b940d82d12c6696c98dc4356190a6c6a45a602abe14e84888a2282f6b685f26d8954e3efbbd0778b594ac63ed629e922d91549dd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/he/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/he/firefox-62.0.3.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "a05a94f0634f1a857eab463825c97ebf2fa1b5315c44082095d6fb674884b77375968ebd39df05fe6f0f3892b87d9f1313532ea022012cb411eb32a43e1d01f7";
+      sha512 = "9e5fd865c107b2b9daf9ebac3ffc1d0c41b35e5d2b10c930e2cbb1da4aabe1040d4c522940b63e42c2cb2dc0923b851dd6a8ad9fd65da73026d9bf2d44dcd238";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/hi-IN/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/hi-IN/firefox-62.0.3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha512 = "e4cc460637c6aefab1b323ac5a13674f9f95eaf5cf0bfc2020869a196fd13f1708814b33c938981017fc27cdaaf57e75591ce2917cc66e5f97b3c8f22d3d44ab";
+      sha512 = "0d625b2ba90172d4e42e17ed7daf1b030ddbaa4327f9d321c67beb0c71e20572705bc54b9ac709fce67384dc6d188fb6832ff7d6e85c79acba8c975cf06455c2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/hr/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/hr/firefox-62.0.3.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "74c11421c3815b5772cd9a5f74e1c48d914d335babcffbca984187b72dc7a5db0609e7b31915f58d358a12c52a0db204ff191c78af28609c1e68d002a32f313a";
+      sha512 = "317c6fe9bb37418cfa8fe2d48d5afde58a3e5c192d2feef515865ad4669d65010ff5ca0f82efe22003f9ca763cb132798e1c86216f3ef2875178d367b894d651";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/hsb/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/hsb/firefox-62.0.3.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "8b399983719f73f65d2db17af40065faaab4793ab32ab1596e79b6f844d43fe4bf3386343b50a244480bb9f724defc795a6479703cfdce305dba0321e4b5fc09";
+      sha512 = "298dd184b47db389e1b40872dec2c40814c063ef6eda8582fa6fbef647b6f91e11d49026806aa7b5f735ddd02dd48128adf8c5f9bfe17f4b9bc9e6c01ceb302c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/hu/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/hu/firefox-62.0.3.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "a5443cc52bcc5881a7297f2f200418e2a9791835f705d472bb657caceb0bb59f8dc1a7c424b196c2a66bf1f0c042d092a55c5b0d04a085dea702e11e433ed98e";
+      sha512 = "53df50c2e877dab2bf1d7ee40312f77bfac977ba3a041f98c350c1b9d188b539d409f460134f0e79d07c6a3d53fe063e53b1451fd84e7a817b98d6f5b2564717";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/hy-AM/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/hy-AM/firefox-62.0.3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "ea3e471c41d3e17c99c5b819ab8c3de8759a275d1ee1af66f133f835ebb6be9c7aeb52ae8b6f79d849e489e0c8f79f69d557d101efe681b27ff38b4e8b306b54";
+      sha512 = "eec4295b544ccf4ddd46176e3b391b42c04d2ebba73edbde24a6cd0043c31d5f06e7a1e6cb03d7ed02327a07f2aaecce7d8c55f09156f413ae3e8f2c18f08649";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ia/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ia/firefox-62.0.3.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha512 = "8bd09d0a8bfefc1a73b3a256a2e5be976b88998055299485c6270afc7ee7805a90e6ea9de144bd5ee8d3e40c079adac1dc29e9beb6d7ca376514fbac902f8de2";
+      sha512 = "b9bafd5b616722d5e0b19abe9e2080ede9c0e3d2e971cc1c00f0e3d2678489e5e4268837341fa7eed34e2076c69880e7ec726814729ede4731fc1336f4b5269f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/id/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/id/firefox-62.0.3.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "c19859ab8b24aa239b0fc91930d8fb581850e631a9aa9033a98aea0287055d2a02ca6ae154ea23e37fd407a00999af1b5f7ce0854865b4b19a8462ccc3838cf5";
+      sha512 = "07a271e3c9b479018de9184b32bb5a164d3ac2ce5431bf714f3b53ff7bf5c324e6e9413b514748b6ef84e2e57b66145ae775b5116e88d1b695f5c9dd001ad530";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/is/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/is/firefox-62.0.3.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "68fc21b8b3aefe39bc6e87e8d90fb2652f2125af45520e7f91eef12615aff81d0c6237f3fbacce99259761f0f45c7b49aecb59894f161faa8760184271b2fbbb";
+      sha512 = "f101472751e16e29c2928e3d19acd25afeca20abf7f943be14297e6e03762f67edab1ba59db5e22b8ffeac398208083f91ad97772905fe3436e7daac6d554fcf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/it/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/it/firefox-62.0.3.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "8c8866bff0ea8c2e70a82798253334feca4d96d2e79d37d479f8bf2b5580912565ce08bc47777ff9340ceb4e5677d01eda6cb1d28f25274bab400086493e4610";
+      sha512 = "dfa7a5f9cc4c53f392d061b8bc9491dc541deecb6ef5bc7386a2bda353a8980dfbbccbd16b5a2c167cd523b4f52a9993403bd44ab05b38e03b9b0308a61da261";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ja/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ja/firefox-62.0.3.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "56e1bd61de818e9271d483bdbeac7c8a95e00a1a2acee2ad7d7e5779b0bba452170d8e0fa6463b0f978ee3c3df720bf338367b8b1f041e5000054268cf267af6";
+      sha512 = "b84f5317b7917be27d1d93d39b0b3ce0143396642d3f5c2a41a656f16074b31aaa549690bfba0675b3ec8cc2ada383929745ed2823ae6afa399bb7407557ca24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ka/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ka/firefox-62.0.3.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "de329fbe61b7563aaa2e62b1dad827445809df6f675518d7d19d9483acd6e23fc502f6abeabc13ed7c5eb2cc5b26a6ad0f0dd431c733f25a68a0ae7e2ee9923b";
+      sha512 = "5d56a8f8cfa5132c3cd5cc3c1bbc56cf3c076eabbf21f98747c493c3b64076c8506150262ad65cb62880e31cc37ad7a9ab5728094a8d8e1f704fcea145c3a049";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/kab/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/kab/firefox-62.0.3.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "f739aa9432ce0bd8bea4917f590b076c0d88643aa595be951dfec27872d534fa3926a7ed8d82527e95a70689d365c1219d164cda79e06b7418b90652bd2b7cc7";
+      sha512 = "d86d69559d9e7eec6bb111fe05ffb380ba49c2f47a957e6eac8470f81213a544ca44ae685456e22644b08958c54ffe5f815b0812bd045514d1f70a08a5fe9790";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/kk/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/kk/firefox-62.0.3.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "131b3ab83b953130cda7c9c388bf096edf90c424f86d1b6f4221b3601829a2ae0b7cc073a9336d7e4af588e497fb5df7731cca80a8413edf40a2f605927ba410";
+      sha512 = "0cab56f34acb5df1b9a83c48f1a1d2f41c68e79c7896ee4da8ba11bd44e3477214e59697c9e9efec802f633171177ed2653e3184c000d145b7d73089a33930d5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/km/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/km/firefox-62.0.3.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha512 = "6b0f4a83a746630b87b5a6c933f9aa65d6dbdb2e686af870562800aaa683371a23fbe79f31dcb0ef6ed397f556df83e1e30f83cb493921631e6ac1c8cbcd37f8";
+      sha512 = "4fe39d6a89138111c2e98d1f449adaf474d3011a966c4e17627f9793d599eeef04cc1081c6cac85df235d8854db6b57de1548834abcf3a96baabb30c797e9073";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/kn/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/kn/firefox-62.0.3.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha512 = "e4042bb8884ecf46396e9e45a70b57c22b0ef76dd6d452ee0609382e87669e6163c1d86845aa904e13894e750eb2f35d1c9a2b7987aa6e7d3fcd5eaad38d8199";
+      sha512 = "563dca7d5874717937747a1771a9ff32d2012205e2da9274f4cff76ae29782d92d7a20eec8c792564d3a4929458cc5c2722fa38d8b08edcc879dc9ea184c67b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ko/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ko/firefox-62.0.3.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "02d30f4b2cc7285506239adfea681c780d0e16c1719c6cb68c908c54388e565bf98f1a3a3d98449b0e55b2cdda00627ad6c6f3e63fc9ad10f8c96b2df6138620";
+      sha512 = "69d10aa7d2b91197bb9062ea5bcf1b89e08cd474003e4d9c203f9f4c7df14dac5b991a15c74fad38843d2534ecc5b08878536ca45c2b80e83ec4c8f6168c5acb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/lij/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/lij/firefox-62.0.3.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha512 = "3cf57550bc091d756c5a2bb707aabf78cfab1660e1486c9276de5ad37cbae91be24f2170f5b20560ecf7f53d21217bd738b4e4277504d6f8934d3fe1ca5fcb1f";
+      sha512 = "01bb7b7bea7e528e2fb4ad910e591642539e68a8a3771be2b2d28c3f1b54e95d74394f3d9411d8ae9bd13f991ac4dc788e98cbc8532a552fd70e83b6b3cae38b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/lt/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/lt/firefox-62.0.3.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "606f27cc78c5ee0ea3a61f6110611ecc10c35af63cb9e7c5fa1d3d0ca7a74ac8cd81fec30c1ffe5573c27e0a7f5f04ed82105b8cf26b7c22d648ea217cb57e83";
+      sha512 = "0bb6582347ccdf31dee98a09577380f7a66e8b3222127fb222000d64cb09c4d0ab19d4084d98be2b47ecccfaed51793c1b4fa263634f61eed059da27da0e42bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/lv/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/lv/firefox-62.0.3.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha512 = "ab028d6f31a966ffee99cbcd5263b18cae94c6e0a6e3e055d2c86354849b68120d870a142678184a32f816c7e5803d221f3230b895c6ec71dda20a6540101c50";
+      sha512 = "3357a5fdf0e41b88e13c24c37243bb8bcefe75134df4944f286364d4f926efb9188e66a91ead78c7d9228275b394a8375ff9f24ac83489c987b42e34132d9224";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/mai/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/mai/firefox-62.0.3.tar.bz2";
       locale = "mai";
       arch = "linux-i686";
-      sha512 = "faebf74c8a194f3dfe33addea35965b11f3f9e0c2b4bac4f9e4056c2248df24c26bc9e5a5696fe3f8c2e30e2172dae03fddcffef09bf7837fb6dd9fb6a1b3075";
+      sha512 = "172783f25dacda040e65ac980d6f3d33125cb6721c2c3568255a27f494e6d80beae3d61783171448caaca89358735a4c3b64dd9be47ca5c904d5727a3e0ab419";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/mk/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/mk/firefox-62.0.3.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha512 = "dddef2e42aef03d11327ae2bc186c0dfd25e81b11845b319848e7c7253c101d32b2801548f6444f4ca01a91c365cb2bc6067e765490f3b876d149899a9edbf3e";
+      sha512 = "8f3b31e48b1b423df1cdca1c240db88978f8d03a7409727842339096f5c1c6099e87c2fe1d6a122a6874c080b61ae59bcba1303479d80b944b4cc8d938eb7a00";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ml/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ml/firefox-62.0.3.tar.bz2";
       locale = "ml";
       arch = "linux-i686";
-      sha512 = "0157abf3d8dbd54f50f6a17d796fba6c66e0270649b8dea1674a696a036d2a59f5841bda55d8b326d90266a198ec0dea3a65753b09fffa583b104c976ab75cd1";
+      sha512 = "dec1bae8329c9f8498fa9d95547abb2c2ec737df03b63ab44600b5132fe6037454070ab3bdb2ec0be1de48bb97c014d985fdc8530b97803c4202793a14e5e6d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/mr/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/mr/firefox-62.0.3.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha512 = "9c6aa7a0a943b8f62f6888effeb65c6c3f36aac3353ff54011eeba06ff2bb0b66ead6b75d1107ffc358184df927cb2dc7cd3bca183fc54879427baf74cb8e570";
+      sha512 = "1e876518b8c73eea6aa4f51384e6ba9d7dfa983e7ea878bbc26becc248e2badd4647f3a44d273e33a742e5b6f99ed5ad364d621eff314c830612e0971ff268cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ms/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ms/firefox-62.0.3.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "b7a723f79a18db5b3d886c39e76a65975c2f6229022c62cab7d7e38c840206d9004c81da1783f4bf0cc373438518f1367f4a34e3764ea9919568ed4c8725c94a";
+      sha512 = "3c72bd0536ada586d31d02cb0b59184889a064d09cf30f73bcb93417064fc6e7905fe084c554d249d0a29cc6ef6c57dfddde7d97d658c14958861397455f267f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/my/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/my/firefox-62.0.3.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha512 = "5538fa15d3ff02409bf9145d384e1c8e28a182239a682aa5beba671c09a0b813b56af6482476d57084af6a5895ad21af1f6ead71ecf23ea817780aedbd33661b";
+      sha512 = "1118b4d8caf8dc2b4a4aa6ee01805bef409e9238e38182ad8561bd8cd1885c22e2462b7baa00355aadbd103279ac0aa008299beca0157356f49773040916c3bf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/nb-NO/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/nb-NO/firefox-62.0.3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "8349c51a6b01301de6b0e0e37b665f44bd83abe9f771bc086c3f369534b6d4efc692441a46576b2335afda93cd8dbeff60ce17936e205e3c7212a2ef1b2844ce";
+      sha512 = "b0243d6642d51e9a81d58951e9251cf586080a7c90849adefef1678c856a34c0cac710752efa4f3cf1f9d099461968d0a15327d9610bf1792e451bfb38296c56";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ne-NP/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ne-NP/firefox-62.0.3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha512 = "f16911685a7d233a8957780c5526be9e94c07f73b259dad09855b8c21bdba1756ca70ee71dd7b732ac56555135d749584986bf4501adb056373ded74f96e265d";
+      sha512 = "668498eb589927f92fc53806111c47b7b130d08c53c8a3d997edab4efe52ac7aa1388dedaf976fe46cc45603249b99922b803f32b5306888df194bf4d6547aa9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/nl/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/nl/firefox-62.0.3.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "07e271170d05cb87cee9361efe8fee2007ca032b462ce68c562406fde581f4baab96c2ccea66cf92b8e72aba4647e7bb8271ec50e3adcfff6b787699b687a23c";
+      sha512 = "c6db81626bfb20724faadc34e113eba0cc3da7e251d1ea9e859ea4b1c82e2d8ecdc01ae3b60c12eab5b071e62c3cfb85a28cddb43573a9da39d3a07cbe78b7ac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/nn-NO/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/nn-NO/firefox-62.0.3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "eaace3b808dbc919d05a9701e7af2bdb241d57cb0356e4eb60b4706def37372a16b7767540947efaa91d5a3f338785187f83caf8bfa5bffe5f4f92aa3bec13d0";
+      sha512 = "dcac12899163fac3d191104542f1d834a2406388f69faa78b871106408772a0cf01f73caf267cda6731e557cb872c341d6ddcaa1be9c972007e7a3cd9c0781a4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/oc/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/oc/firefox-62.0.3.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha512 = "aeaab0fc9ba77aae2c0ddd92d7096c167a99335b3d795f232a24e685d49b53678bed59b6e873ce1c7667f76d1527bf685b910bb51b8defc539999500eac14d5a";
+      sha512 = "1318631847b588dcf4662a3a82a80fb8bd1eac1fe1e78cd4bb5b1bb8990bc7c2adceef1dc057df1ff54cfb195a05612fc5957ddf22bf8355341d6744e1938df6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/or/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/or/firefox-62.0.3.tar.bz2";
       locale = "or";
       arch = "linux-i686";
-      sha512 = "92b82c7bca322a9bfb6e6df61c9f2b6d82cf39c67848f2905dd372a627eb0379d235982e5634577825ad72794fd1d49b2e591ad5347977dac9a745d1167f7467";
+      sha512 = "6d9a2af2ab431eaa6205958239e33d336f11ff789ee2cd62b90533153ce41b9e17ce3c8204d679c8949c1edbbf493efbc96d009b463e5ac96b3200ab8ab7d707";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/pa-IN/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/pa-IN/firefox-62.0.3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha512 = "2aec320ba120dd3632fa95599a9934ce133544e7b0d15a74236fb20435ab0a9ad44d6515f82897e7badeeeae19eb80d6b68fec4d000d63772d4e5ccd1f11d1eb";
+      sha512 = "e7a0b4ff68c428d0028eb098dc0f1da82e14de691ae77d2d94e32465ef50c8af70dc9abe21f92db4606ce4a42d443b181e11bf2157363faad874b07f9c0e0110";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/pl/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/pl/firefox-62.0.3.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "b62565b94eaae3ee225f2bbc8981f493594f48d40e8e8d83564a6d4ac6a4194c952663f9db52d7694993f08f714463b7607d659790236a727cbf803b084eb73e";
+      sha512 = "780886f9fa3136ea6d3981e2b63124e3c625acc971c144978840e254e1fb77da5e65fbc7b6b7edc6a363e5f24fbb09bfe16bcd89d3171e6e92efe18a58946e54";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/pt-BR/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/pt-BR/firefox-62.0.3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "2b218b66feb456a86919b395d1cdc40aa73de6ebbca3bc4135c54d5dc1ac993bfaf169bc7b0d2d770aa6f4565e71ead1fa2aaab02dc7362a9f4e5a896dae2c2d";
+      sha512 = "d922b1294bb2aea2019034e7af38b9f01cc7aac316a223ddc54137219f01fa1a6d34b23830d82dc9ce816024532cf0535d2753a55b36e952da1f867e487924d2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/pt-PT/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/pt-PT/firefox-62.0.3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "d89122b993083bee798279c72a2d6296a5b966f7ac30269edcfe17a2036db648cd3e1e77eaf5f2479afc3c6831657267b22f2507176d62ee08dfaf4c100e074c";
+      sha512 = "86760623c1aa85efb05fe66929f1668fc6c7b2f631b77c9c93d1b12a23c6409345caebc25a70a6891f480dff2112966f283e3658e08951a49bac700de754c975";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/rm/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/rm/firefox-62.0.3.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "4ecba1d3bc6b3bbbc3ca974afa86e9b6e7664a0dd23605ea34349bbf822fc2098e7dd394f132b43e2e4127eeec36ec820710391671405b14c414d966540b63e3";
+      sha512 = "b66f542b8ce0e878fb9ad599233adc136a20e09f1b77a82050273e16903b56b6f3f8f94a33fdc7a2a1ff0eae94d20cccd4ec6ade8c2ddaabad3c32547303d5ee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ro/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ro/firefox-62.0.3.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "97e8ebd7bc491bd320106765408bdd88542bd932c3c1b43a373aa5679f20e2a0aa12b48182454ec36812dbf4044364850cfe3e6878bec670ee46e8971e9293cc";
+      sha512 = "393fdf5d1ffe51694b50f5027243d19c2f1d5d25daf9ad88f14f21ce3bc3e0d5bece8cce2f3192d263e873a8e55e1fdd6ec22ce014c43c71ae9fe9833a7b0df9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ru/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ru/firefox-62.0.3.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "f8f433e0d2970d028a01f1039951f1e725cae8e263bed9f0dff64387913ae269558f037d672a65d32614408cdd3267ddd65677dbcf212188c531d04960266535";
+      sha512 = "a1af73215c8e3151e45e8a0a7b1c4eee51301065b3a724f904005f41101018eb11313319c1b8206432c4958d5a415575baebc64ff782b4e3b993b71d4a66e829";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/si/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/si/firefox-62.0.3.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "11620e27c01dd91114d5e2080b430876282316ce6d527100305806314b4e7fccc38f2e93165f3e544cd3ef63b03aeaf738d6079201a0f7ae3f867b2e0b28239f";
+      sha512 = "ee3a7b6b1e9a5b10661390b7f1d1fa61ef9589d59e4f869ef8ff6c4a1719fb15014e2abcd8472769c4a17b3f74ab7ae2671f3f79ad94a1d3d875f2fbdd03eb8b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/sk/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/sk/firefox-62.0.3.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "0a43e8fdc1c3f2bc63b6bacc15f9e3f3527302d0d7f0f0e0cc9498bab7728cca944fddf886c33ab67c60bcd9bafa051db97c8e8a77e781d6869a4bdb8096f4b1";
+      sha512 = "478eefc7afb725496e3a17615c8458d29e44dc200dfb4534c32cd15d3c45ec15ddf9f5b1fcaad312e00d693a06d9bcd116038177d9844273a64f81b531b6e676";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/sl/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/sl/firefox-62.0.3.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "343a22feab53142ff585985fbaa8a037dbe9c3d3c2c073361f8d4af3b74272a47e5df2053ea91b333bf0da15334b9512c0513726ae80176838774020a7c7c639";
+      sha512 = "f07fae5f52528899ef3dc680ecc551311496125d9c10c2117e35d0ac8af387d99236ac9a3f921a9ad2e40102d70df91fcb43526ccb8910d5ded1379a42bf5914";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/son/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/son/firefox-62.0.3.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha512 = "bb9c9c4bc82550b6d83c3b9995a1ca3afadc9fb5b27a5de4503682d29428ed7751895d1225a3b5ba8472d539c9efca957522187e4119e4e134f46b37da2f43e6";
+      sha512 = "f20dbcdea88828cdaa4d9bc2e8ffd2792e06929495b0268814808f842c1bb9ccd87f86df16b005af989edd3c470d53ef6254288664ea192d15620ed10ef2682d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/sq/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/sq/firefox-62.0.3.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "97b2c394f71e9bda6fa679353c579a01f40a4fb5b588bc177329d6fbfcff0d126e2db072c868eafd6078c26f9190f1a2d4c65f887754af4d25eb9c128d807030";
+      sha512 = "9a548ee02d1290c112ac3a72be6cf96163cb67448a8a5ae00a88e3e115f907945899cfb5a5edbf3e37a13c16550ebe7b6f67f94c05be6659c168a5e0043adc04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/sr/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/sr/firefox-62.0.3.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "84024816cfd48076ef5ddbe0af392ab5ae0bcb8a02cc0ee1f6d0dafdf5673d9dfee377e83f0a9508c11593d8f4db682ad400c336a1c37591c25864c9299939f9";
+      sha512 = "ff081635cf761293ca77ce7d3574e0a1b6a57d7dfd5649089e9554c27b85de544a39b2973205e293152a33d69137ae373110a884f6427dd58788c5832caa7773";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/sv-SE/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/sv-SE/firefox-62.0.3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "b630b627b038b16ae1b97f669e79afccba95e66a93dc3b7358e26960ae836f1f3663a49394b7a9be9906871a2301824c6b1f78f1f38943b54e4631f9beb90407";
+      sha512 = "28686a08fc1c4cc63a084cbfa094e6f1b8ace446a5746f3892ea37d1b916806a15641875ef08c850c316059078a116a2060294f754e722d84d1fdc2817ed7618";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ta/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ta/firefox-62.0.3.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha512 = "1306d444c620f558894ea81512944e1d07dfe706306206d1638c2e86ae5a2dba4e02b5927e4c9250df3cbc607d15da15bf2cb1c9e1ff74332354ae883c6bcc42";
+      sha512 = "43b3db7262fc43b19f66cc586af56a404b6b0feaa98d31b53766deaa8d4f5314279dd6aaee5e3373f8c1bb9f4c152e2ae6d7aa5b9e4b1123a5dec7b42c6b68ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/te/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/te/firefox-62.0.3.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha512 = "3b0e1d6fea01ac99e315419365afdee54c107dd33ad577b19fcd9a59de1a176f34497e607fc7466217ddef5a6c442a62f1dd41cdb137651c0274274cb9357171";
+      sha512 = "05936a5de6d723edf72c1155aa0f18c9a6eb5275dac4f4de58fe93cfd9a814e7ef349fa6c630d043d6b39ca5dab6fe5f3c92c45c36d5b515b4748bff6493063f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/th/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/th/firefox-62.0.3.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha512 = "7bcb0d7e17d397a7b114172234f3306f9faa28e7d9f8bb2db1399b58c28bd36ce4e478686c3ec98c76793cc75bbb974a316599b3a7c38fb034e852100ffa13e3";
+      sha512 = "5ececcf6b3404f1010b48956bb2423907261f7d544a695e775900e1a3cbc09e71b008b94118ee39651ff6469cf8c456afc5ab9c9fdf0b9fa4a9c41f76e16788b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/tr/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/tr/firefox-62.0.3.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "5c543b8bf79fdcb605b6d763688ca5bcd1e61b0e2088441e1d6d6dd4f0823f9f3d2075f39776d582bb468dc41ef39f7d562c7ebb6d5e4f084c3c1aaf1e61de8e";
+      sha512 = "29cc67dc15acf77589fe72d0e28591b5f4403de5cdfc6cfa7cd9f16ccf7315ed19c2d38872b5c76c1f4a78b2688e9401417b6e6ccba1985c27becb54baba4d22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/uk/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/uk/firefox-62.0.3.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "2fe636a02d0adc75d00f67620fcfaba902d16b5d828c2c9770560300c33cd0a8a8bd7208f146943cd62ac0aa8e3be784ff8549de78eb4f247783e1cfc823dd1c";
+      sha512 = "e7814a55b835051c8d02b74e4343739241ea60d69b8060a496f60b6b323b81d8628541d346281e0080d83d9ef4183640c907c144743d3d444499c887c34709ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/ur/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/ur/firefox-62.0.3.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha512 = "c84e1bf737b3a4b93f77098a087bd7ae598364d6a15110d3032bab4ee8aab6d1a64ce3ec4ef17b197b920e334f1e57a7a093581b8ac3b1ecab85d9cbb2da2c50";
+      sha512 = "e6323528d7a916473a62edd9565ed8d67832e3298fba51c7aca32f9d0c2d401ac74d2df5770962e191f7fc79fbbe6f22ae242475075423a23f09c8f11c26afa9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/uz/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/uz/firefox-62.0.3.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "cee9849825181c517a82c6f6cb07920767ff2c02d54b87c8e509e60bef3adff260f282882b9495b6034fa61b11e2cf831e3adc3ed3928ff32792a62084cf115b";
+      sha512 = "759e63deb63e59166d137e109f81ecd57a314aa045eb97a54ae82fe04a418bc3ac73c83bb663d65fc1b66233ed49e43ba7ba5a8db1bce5138fc6b65b7377b230";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/vi/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/vi/firefox-62.0.3.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "a0eddaf392addf41017108ded0d32418175ab5ff7cddf74e3224929da93bc84cf07312671f16aa5652ecdc315707a4301c69b856be709f4298861298541a065f";
+      sha512 = "cdd1e2fb71043fa628bc9653a1be4c7a4d64779383b25d2b1812ea7af2eea3711cc2777c09be1acaf2fcba9c931cd212c99bde69d067d331a294825b89c2addb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/xh/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/xh/firefox-62.0.3.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha512 = "50741d2ff1b7f1d9cf503af66ec61a2d19600ad7240db837392440b2943c6d96a7b8d5538ca24f0d528cbe9fbaede7964c9f8404474f95a1c022e193fa91f81e";
+      sha512 = "97eb405cc8379cd803af5db55166b9db1e489c5a0e29fc316cdeeb49e2c2beca2ba87f7f01e9117dd22639d0cbfddc26ca90aa4187a522462a1b42126bee89a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/zh-CN/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/zh-CN/firefox-62.0.3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "103be3f37fa7a92c00d6465f93bedffc31527939bd85df0c742c04ac75f9ddec4018a368a2ff29730f5a055459b018c64afa344df255638ec3c26bb295e1a31a";
+      sha512 = "7559ae148ce548d2b766be291667e7f04d9c28bca0de467cb36f37772736d2f44cb3724e0bf0c95bdd11ac2a84ab07238e14902d6f8f23280796505cf5b9e471";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.2/linux-i686/zh-TW/firefox-62.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/62.0.3/linux-i686/zh-TW/firefox-62.0.3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "0ac22e595f2d87f75b586eabab07470f9eec16026a45902fb40c19fd2cbf93f2f88241900a13703edb89290953127c689bacbc0eccd560822e43bc07a97e3ddf";
+      sha512 = "95829dba29e96497f047e2f03a4bcbe36d61c0a36637087e56300f889f9b191c7b6c4ce936604283145f4a8be8ee4b129fefdeba7efd201cd0a647a0016ebde1";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 935be6230cd3..369b18d5ead5 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -20,10 +20,10 @@ rec {
 
   firefox = common rec {
     pname = "firefox";
-    version = "62.0.2";
+    version = "62.0.3";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "0j5q1aa7jhq4pydaywp8ymibc319wv3gw2q15qp14i069qk3fpn33zb5z86lhb6z864f88ikx3zxv6phqs96qvzj25yqbh7nxmzwhvv";
+      sha512 = "0kvb664s47bmmdq2ppjsnyqy8yaiig1xj81r25s36c3i8igfq3zxvws10k2dlmmmrwyc5k4g9i9imgkxj7r3xwwqxc72dl429wvfys8";
     };
 
     patches = nixpkgsPatches ++ [
@@ -70,10 +70,10 @@ rec {
 
   firefox-esr-60 = common rec {
     pname = "firefox-esr";
-    version = "60.2.1esr";
+    version = "60.2.2esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "2mklws09haki91w3js2i5pv8g3z5ck4blnzxvdbk5qllqlv465hn7rvns78hbcbids55mqx50fsn0161la73v25zs04bf8xdhbkcpsm";
+      sha512 = "2h2naaxx4lv90bjpcrsma4sdhl4mvsisx3zi09vakjwv2lad91gy41cmcpqprpcbsmlvpqf8yiv52ah4d02a8d9335xhw2ajw6asjc1";
     };
 
     patches = nixpkgsPatches ++ [
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 90287c05b5e4..23f0db67e66a 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -103,7 +103,7 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "8.0.1";
+  version = "8.0.2";
 
   lang = "en-US";
 
@@ -113,7 +113,7 @@ let
         "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
         "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
       ];
-      sha256 = "05k914066pk11qxbwr77g6v20cfc8h9mh9yc3bpsfy35p8sypv8c";
+      sha256 = "1vajphnl53bhp0bnq8shljvnnq4k2wpvfrfclmxklp97lqvfl9vz";
     };
 
     "i686-linux" = fetchurl {
@@ -121,7 +121,7 @@ let
         "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
         "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
       ];
-      sha256 = "1w2apsiimy6d5vpql37j5bmf8y8xhx4irryd5ad3vqqsr0x5wla7";
+      sha256 = "157yd8n53w79xx58xf5v983a50xq1s0c09cr7qfd5cxgs7zrwh34";
     };
   };
 in
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index bd00404b536b..72ab44e1934a 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -5,10 +5,10 @@ let
          then "linux-amd64"
          else "darwin-amd64";
   checksum = if isLinux
-             then "1zig6ihmxcaw2wsbdd85yf1zswqcifw0hvbp1zws7r5ihd4yv8hg"
-             else "1l8y9i8vhibhwbn5kn5qp722q4dcx464kymlzy2bkmhiqbxnnkkw";
+             then "18bk4zqdxdrdcl34qay5mpzzywy9srmpz3mm91l0za6nhqapb902"
+             else "03xb73769awc6dpvz86nqm9fbgp3yrw30kf5lphf76klk2ii66sm";
   pname = "helm";
-  version = "2.10.0";
+  version = "2.11.0";
 in
 stdenv.mkDerivation {
   name = "${pname}-${version}";
diff --git a/pkgs/applications/networking/cluster/heptio-ark/default.nix b/pkgs/applications/networking/cluster/heptio-ark/default.nix
index f786bff01d62..6a83ac34f3f9 100644
--- a/pkgs/applications/networking/cluster/heptio-ark/default.nix
+++ b/pkgs/applications/networking/cluster/heptio-ark/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "heptio-ark-${version}";
-  version = "0.9.4";
+  version = "0.9.6";
 
   goPackagePath = "github.com/heptio/ark";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "heptio";
     repo = "ark";
-    sha256 = "01z0zkw7l6haxky9l45iqqnvs6104xx4195jm250nv9j1x8n59ai";
+    sha256 = "0q353a6f3hvg1gr6rmg8pbqnkrbgjchdr7f6f9503l1qbyyf95fz";
   };
 
   postInstall = "rm $bin/bin/generate";
diff --git a/pkgs/applications/networking/cluster/kubeval/default.nix b/pkgs/applications/networking/cluster/kubeval/default.nix
new file mode 100644
index 000000000000..55a827f9cf92
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, lib, fetchFromGitHub, buildGoPackage, makeWrapper }:
+
+let
+
+  # Cache schema as a package so network calls are not
+  # necessary at runtime, allowing use in package builds
+  schema = stdenv.mkDerivation rec {
+    name = "kubeval-schema";
+    src = fetchFromGitHub {
+      owner = "garethr";
+      repo = "kubernetes-json-schema";
+      rev = "c7672fd48e1421f0060dd54b6620baa2ab7224ba";
+      sha256 = "0picr3wvjx4qv158jy4f60pl225rm4mh0l97pf8nqi9h9x4x888p";
+    };
+
+    installPhase = ''
+      mkdir -p $out/kubernetes-json-schema/master
+      cp -R . $out/kubernetes-json-schema/master
+    '';
+   };
+
+in
+
+buildGoPackage rec {
+  name = "kubeval-${version}";
+  version = "0.7.3";
+
+  goPackagePath = "github.com/garethr/kubeval";
+  src = fetchFromGitHub {
+    owner = "garethr";
+    repo = "kubeval";
+    rev = version;
+    sha256 = "042v4mc5p80vmk56wp6aw89yiibjnfqn79c0zcd6y179br4gpfnb";
+  };
+  goDeps = ./deps.nix;
+
+  buildInputs = [ makeWrapper ];
+
+  postFixup = "wrapProgram $bin/bin/kubeval --set KUBEVAL_SCHEMA_LOCATION file:///${schema}";
+
+  meta = with lib; {
+    description = "Validate your Kubernetes configuration files";
+    homepage = https://github.com/garethr/kubeval;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nicknovitski ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kubeval/deps.nix b/pkgs/applications/networking/cluster/kubeval/deps.nix
new file mode 100644
index 000000000000..b9565e927ded
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubeval/deps.nix
@@ -0,0 +1,174 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/fatih/color";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/color";
+      rev = "5b77d2a35fb0ede96d138fc9a99f5c9b6aef11b4";
+      sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv";
+    };
+  }
+  {
+    goPackagePath = "github.com/fsnotify/fsnotify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fsnotify/fsnotify";
+      rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9";
+      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/go-multierror";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-multierror";
+      rev = "b7773ae218740a7be65057fc60b366a49b538a44";
+      sha256 = "09904bk7ac6qs9dgiv23rziq9h3makb9qg4jvxr71rlydsd7psfd";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/hcl";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/hcl";
+      rev = "ef8a98b0bbce4a65b5aa4c368430a80ddc533168";
+      sha256 = "1qalfsc31fra7hcw2lc3s20aj7al62fq3j5fn5kga3mg99b82nyr";
+    };
+  }
+  {
+    goPackagePath = "github.com/magiconair/properties";
+    fetch = {
+      type = "git";
+      url = "https://github.com/magiconair/properties";
+      rev = "c2353362d570a7bfa228149c62842019201cfb71";
+      sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/mapstructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/mapstructure";
+      rev = "bb74f1db0675b241733089d5a1faa5dd8b0ef57b";
+      sha256 = "1aqk9qr46bwgdc5j7n7als61xvssvyjf4qzfsvhacl4izpygqnw7";
+    };
+  }
+  {
+    goPackagePath = "github.com/pelletier/go-toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pelletier/go-toml";
+      rev = "66540cf1fcd2c3aee6f6787dfa32a6ae9a870f12";
+      sha256 = "1n8na0yg90gm0rpifmzrby5r385vvd62cdam3ls7ssy02bjvfw15";
+    };
+  }
+  {
+    goPackagePath = "github.com/spf13/afero";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/afero";
+      rev = "787d034dfe70e44075ccc060d346146ef53270ad";
+      sha256 = "0138rjiacl71h7kvhzinviwvy6qa2m6rflpv9lgqv15hnjvhwvg1";
+    };
+  }
+  {
+    goPackagePath = "github.com/spf13/cast";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/cast";
+      rev = "8965335b8c7107321228e3e3702cab9832751bac";
+      sha256 = "177bk7lq40jbgv9p9r80aydpaccfk8ja3a7jjhfwiwk9r1pa4rr2";
+    };
+  }
+  {
+    goPackagePath = "github.com/spf13/cobra";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/cobra";
+      rev = "1e58aa3361fd650121dceeedc399e7189c05674a";
+      sha256 = "1d6dy60dw7i2mcab10yp99wi5w28jzhzzf16w4ys6bna7ymndiin";
+    };
+  }
+  {
+    goPackagePath = "github.com/spf13/jwalterweatherman";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/jwalterweatherman";
+      rev = "7c0cea34c8ece3fbeb2b27ab9b59511d360fb394";
+      sha256 = "132p84i20b9s5r6fs597lsa6648vd415ch7c0d018vm8smzqpd0h";
+    };
+  }
+  {
+    goPackagePath = "github.com/spf13/pflag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/pflag";
+      rev = "3ebe029320b2676d667ae88da602a5f854788a8a";
+      sha256 = "11yxs0wqy70wj106fkz8r923yg4ncnc2mbw33v48zmlg4a1rasgp";
+    };
+  }
+  {
+    goPackagePath = "github.com/spf13/viper";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/viper";
+      rev = "b5e8006cbee93ec955a89ab31e0e3ce3204f3736";
+      sha256 = "0y3r6ysi5vn0yq5c7pbl62yg2i64fkv54xgj2jf1hn3v6zzyimis";
+    };
+  }
+  {
+    goPackagePath = "github.com/xeipuuv/gojsonpointer";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xeipuuv/gojsonpointer";
+      rev = "4e3ac2762d5f479393488629ee9370b50873b3a6";
+      sha256 = "13y6iq2nzf9z4ls66bfgnnamj2m3438absmbpqry64bpwjfbsi9q";
+    };
+  }
+  {
+    goPackagePath = "github.com/xeipuuv/gojsonreference";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xeipuuv/gojsonreference";
+      rev = "bd5ef7bd5415a7ac448318e64f11a24cd21e594b";
+      sha256 = "1xby79padc7bmyb8rfbad8wfnfdzpnh51b1n8c0kibch0kwc1db5";
+    };
+  }
+  {
+    goPackagePath = "github.com/xeipuuv/gojsonschema";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xeipuuv/gojsonschema";
+      rev = "9ff6d6c47f3f5de55acc6f464d6e3719b02818ae";
+      sha256 = "0rpkya4lnpv9g33bs0z3vd5dlnadkyq1lg7114nbd73vm878s6sw";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "2d6f6f883a06fc0d5f4b14a81e4c28705ea64c15";
+      sha256 = "1a6x6n1fk5k013w5r4b0bxws1d2fh0s69mbzpi1vkyfpcxabwjhj";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877";
+      sha256 = "03br8p1sb1ffr02l8hyrgcyib7ms0z06wy3v4r1dj2l6q4ghwzfs";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
+]
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index 37431b0fbc44..c68fb48fa1a4 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -14,7 +14,9 @@ let
 in buildGoPackage rec {
   pname   = "minikube";
   name    = "${pname}-${version}";
-  version = "0.28.1";
+  version = "0.29.0";
+
+  kubernetesVersion = "1.11.2";
 
   goPackagePath = "k8s.io/minikube";
 
@@ -22,7 +24,7 @@ in buildGoPackage rec {
     owner  = "kubernetes";
     repo   = "minikube";
     rev    = "v${version}";
-    sha256 = "0c36rzsdzxf9q6l4hl506bsd4qwmw033i0k1xhqszv9agg7qjlmm";
+    sha256 = "09px8pxml7xrnfhyjvlhf1hw7zdj9sw47a0fv5wj5aard54lhs1l";
   };
 
   buildInputs = [ go-bindata makeWrapper gpgme ] ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin vmnet;
@@ -35,7 +37,7 @@ in buildGoPackage rec {
 
     ISO_VERSION=$(grep "^ISO_VERSION" Makefile | sed "s/^.*\s//")
     ISO_BUCKET=$(grep "^ISO_BUCKET" Makefile | sed "s/^.*\s//")
-    KUBERNETES_VERSION=$(${python}/bin/python hack/get_k8s_version.py --k8s-version-only 2>&1) || true
+    KUBERNETES_VERSION=${kubernetesVersion}
 
     export buildFlagsArray="-ldflags=\
       -X k8s.io/minikube/pkg/version.version=v${version} \
diff --git a/pkgs/applications/networking/cluster/terraform-providers/data.nix b/pkgs/applications/networking/cluster/terraform-providers/data.nix
index fead9af601f7..261d067eb1d0 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/data.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/data.nix
@@ -609,6 +609,13 @@
       version = "1.8.1";
       sha256  = "0y6n7mvv1f3jqsxlvf68iq85k69fj7a333203vkvc83dba84aqki";
     };
+  matchbox =
+    {
+      owner   = "coreos";
+      repo    = "terraform-provider-matchbox";
+      version = "0.2.2";
+      sha256  = "07lzslbl41i3h84bpsmxhvchm5kqk87yzin2yvpbq0m3m7r2f547";
+    };
   nixos =
     {
       owner   = "tweag";
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.txt b/pkgs/applications/networking/cluster/terraform-providers/providers.txt
index d0c4a6505981..16305b4b90c6 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.txt
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.txt
@@ -9,5 +9,8 @@
 # include all terraform-providers
 terraform-providers terraform-provider- terraform-provider-\\(azure-classic\\|scaffolding\\|google-beta\\)
 
+# include terraform-provider-matchbox
+coreos/terraform-provider-matchbox
+
 # include terraform-provider-nixos
 tweag/terraform-provider-nixos
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 767eb94454d8..a4ffe27102a6 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -4,6 +4,8 @@
 , buildGoPackage
 , fetchFromGitHub
 , makeWrapper
+, runCommand
+, writeText
 , terraform-providers
 }:
 
@@ -118,4 +120,25 @@ in rec {
   });
 
   terraform_0_11-full = terraform_0_11.withPlugins lib.attrValues;
+
+  # Tests that the plugins are being used. Terraform looks at the specific
+  # file pattern and if the plugin is not found it will try to download it
+  # from the Internet. With sandboxing enable this test will fail if that is
+  # the case.
+  terraform_plugins_test = let
+    mainTf = writeText "main.tf" ''
+      resource "random_id" "test" {}
+    '';
+    terraform = terraform_0_11.withPlugins (p: [ p.random ]);
+    test = runCommand "terraform-plugin-test" { buildInputs = [terraform]; }
+      ''
+        set -e
+        # make it fail outside of sandbox
+        export HTTP_PROXY=http://127.0.0.1:0 HTTPS_PROXY=https://127.0.0.1:0
+        cp ${mainTf} main.tf
+        terraform init
+        touch $out
+      '';
+  in test;
+
 }
diff --git a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
index ff099a909c75..abf67a3b0ac0 100644
--- a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
+++ b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "google-drive-ocamlfuse-${version}";
-  version = "0.6.25";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "astrada";
     repo = "google-drive-ocamlfuse";
     rev = "v${version}";
-    sha256 = "1rjm2jcc93sz7l25zbgqal81534vvvbmwy7847s0k8fkr5nq97gp";
+    sha256 = "14r2y5blvid0640ixd0b4agpcfgkan5j9qdv3g0cn2q6ik39lfyl";
   };
 
   nativeBuildInputs = [ dune ];
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index 2ed7fbcee3b5..fbd326919f33 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -1,5 +1,7 @@
-{ fetchurl, stdenv, gnutls, glib, pkgconfig, check, libotr, python,
-enableLibPurple ? false, pidgin ? null }:
+{ fetchurl, stdenv, gnutls, glib, pkgconfig, check, libotr, python
+, enableLibPurple ? false, pidgin ? null
+, enablePam ? false, pam ? null
+}:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -13,19 +15,23 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ] ++ optional doCheck check;
 
   buildInputs = [ gnutls glib libotr python ]
-    ++ optional enableLibPurple pidgin;
+    ++ optional enableLibPurple pidgin
+    ++ optional enablePam pam;
 
   configureFlags = [
-    "--gcov=1"
     "--otr=1"
     "--ssl=gnutls"
     "--pidfile=/var/lib/bitlbee/bitlbee.pid"
-  ]
-  ++ optional enableLibPurple "--purple=1";
+  ] ++ optional enableLibPurple "--purple=1"
+    ++ optional enablePam "--pam=1";
 
   installTargets = [ "install" "install-dev" ];
 
   doCheck = !enableLibPurple; # Checks fail with libpurple for some reason
+  checkPhase = ''
+    # check flags set VERBOSE=y which breaks the build due overriding a command
+    make check
+  '';
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index 0fdd8dfb4bd3..64e3c822108f 100644
--- a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   name = "psi-plus-${version}";
-  version = "1.3.410";
+  version = "1.3.422";
 
   src = fetchFromGitHub {
     owner = "psi-plus";
     repo = "psi-plus-snapshots";
     rev = "${version}";
-    sha256 = "02m984z2dfmlx522q9x1z0aalvi2mi48s5ghhs80hr5afnfyc5w6";
+    sha256 = "193n3yvhp9m14irb49kg2rc4h7ypdmvidrgvv1i2n373iq751z05";
   };
 
   resources = fetchFromGitHub {
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 8bacf73a80f1..02166e237724 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -2,7 +2,7 @@
 , gnome2, gtk3, 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
+, cups, expat, udev, libnotify
 # Unfortunately this also overwrites the UI language (not just the spell
 # checking language!):
 , hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
@@ -35,6 +35,7 @@ let
     gnome2.GConf
     gtk3
     pango
+    libnotify
     libX11
     libXScrnSaver
     libXcomposite
diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 0985f139238e..193e306f2286 100644
--- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, lib, fetchurl, dpkg, makeDesktopItem, gnome2, gtk2, atk, cairo, pango, gdk_pixbuf, glib
+{ stdenv, fetchurl, dpkg, makeDesktopItem, gnome2, gtk2, atk, cairo, pango, gdk_pixbuf, glib
 , freetype, fontconfig, dbus, libnotify, libX11, xorg, libXi, libXcursor, libXdamage
 , libXrandr, libXcomposite, libXext, libXfixes, libXrender, libXtst, libXScrnSaver
-, nss, nspr, alsaLib, cups, expat, udev, xdg_utils, hunspell
+, nss, nspr, alsaLib, cups, expat, udev, xdg_utils, hunspell, pulseaudio, pciutils
 }:
 let
-  rpath = lib.makeLibraryPath [
+  rpath = stdenv.lib.makeLibraryPath [
     alsaLib
     atk
     cairo
@@ -17,7 +17,6 @@ let
     glib
     gnome2.GConf
     gtk2
-    pango
     hunspell
     libnotify
     libX11
@@ -33,13 +32,16 @@ let
     libXtst
     nspr
     nss
+    pango
+    pciutils
+    pulseaudio
     stdenv.cc.cc
     udev
     xdg_utils
     xorg.libxcb
   ];
 
-  version = "3.2.2840";
+  version = "3.3.2872";
 
   plat = {
     "i686-linux" = "i386";
@@ -47,8 +49,8 @@ let
   }.${stdenv.hostPlatform.system};
 
   sha256 = {
-    "i686-linux" = "071ddh2d8wmiybwafwyb97962zj358l0fq7g2r44231653sgybvq";
-    "x86_64-linux" = "0qp9ms94smnm7k47b0n0jdzvnm1b7gj25hyinsfc6lghrb6jqw3r";
+    "i686-linux" = "16dw4ycajxviqrf4i32rkrhg1j1mdkmk252y8vjwr18xlyn958qb";
+    "x86_64-linux" = "04ysk91h2izyb41b243zki4j08bis9yzjq2va9bakp1lv6ywm8pw";
   }.${stdenv.hostPlatform.system};
 
 in
@@ -74,31 +76,31 @@ in
     nativeBuildInputs = [ dpkg ];
     unpackPhase = "dpkg-deb -x $src .";
     installPhase = ''
-      mkdir -p $out
-      cp -R opt $out
-      cp -R usr/share $out/share
+      mkdir -p "$out"
+      cp -R "opt" "$out"
+      cp -R "usr/share" "$out/share"
 
-      chmod -R g-w $out
+      chmod -R g-w "$out"
 
-      # Patch signal
+      # Patch wire-desktop
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-               --set-rpath "${rpath}:$out/opt/wire-desktop" \
-               "$out/opt/wire-desktop/wire-desktop"
+               --set-rpath "${rpath}:$out/opt/Wire" \
+               "$out/opt/Wire/wire-desktop"
 
       # Symlink to bin
-      mkdir -p $out/bin
-      ln -s "$out/opt/wire-desktop/wire-desktop" $out/bin/wire-desktop
+      mkdir -p "$out/bin"
+      ln -s "$out/opt/Wire/wire-desktop" "$out/bin/wire-desktop"
 
       # Desktop file
-      mkdir -p $out/share/applications
-      cp ${desktopItem}/share/applications/* $out/share/applications
+      mkdir -p "$out/share/applications"
+      cp ${desktopItem}/share/applications/* "$out/share/applications"
     '';
 
-    meta = {
+    meta = with stdenv.lib; {
       description = "A modern, secure messenger";
       homepage    = https://wire.com/;
-      license     = lib.licenses.gpl3;
-      maintainers = with lib.maintainers; [ worldofpeace ];
-      platforms = [ "i686-linux" "x86_64-linux" ];
+      license     = licenses.gpl3;
+      maintainers = with maintainers; [ worldofpeace ];
+      platforms   = [ "i686-linux" "x86_64-linux" ];
     };
   }
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 9b259cad6d0b..2d1b6ee15301 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -89,6 +89,14 @@ stdenv.mkDerivation rec {
     install_name_tool -change "$badname" "$goodname" "$prg"
   '';
 
+  preCheck = let
+    test-database = fetchurl {
+      url = "https://notmuchmail.org/releases/test-databases/database-v1.tar.xz";
+      sha256 = "1lk91s00y4qy4pjh8638b5lfkgwyl282g1m27srsf7qfn58y16a2";
+    };
+  in ''
+    ln -s ${test-database} test/test-databases/database-v1.tar.xz
+  '';
   doCheck = !stdenv.isDarwin && (versionAtLeast gmime.version "3.0");
   checkTarget = "test V=1";
 
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 5097215d4366..a97dfce27448 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,585 +1,585 @@
 {
-  version = "60.0";
+  version = "60.2.1";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/ar/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/ar/thunderbird-60.2.1.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "fd37e00c8b50d1dc932295288ad2865358da2f37f5b170a3a7f75d929e78486165a24f1967defcb4032546a7f712cd6887c7cf47257a4a08685df85f9ecf81bd";
+      sha512 = "026d4f74378ab0c94e14689161187793ec614a3c492a20d41401714d3a51a5478d060d0a6072a48e20dca88e7d0f4853efc293d36999ddfea431de466dcf94d6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/ast/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/ast/thunderbird-60.2.1.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "64a14f40678a64def00597eb1bd7cc0c9759b56da4e72bfe24c3d4e50ef92414bb18346b8ecc9c0a834a063a2a2fe7920b72c2ce59c7cb7ba67442f7e8842b13";
+      sha512 = "a9156cd525d072711a78f7c45261d50e9057f1f797fe0847c0b52ebdcb42a9f283432da036c870209aedc37183b2fd4df12527e128f46a06d5eb289bdb11d379";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/be/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/be/thunderbird-60.2.1.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "6368f3693f0f54f4768d27a4b9f82015d4c789180db3d8ea5302053e2ff8d7bc5e50388b00b7b1d534c0145718255c84d43977361f5d8cff5f432a8336436e9c";
+      sha512 = "d75dc81e7ed655e5bc539362b4ea212ef47bed496c483a6401c8cc52fe2aa7c89f12024ef5364e8e44826c5df2a7cc0eae01a55cbfb22c78b7d29744e05c2389";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/bg/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/bg/thunderbird-60.2.1.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "b881105b39f5a3d66cf77105fb555af692477b387a4fe2c13c9c398968baa705cdf3753665b0e6d28bd8fdb21bc75e439672402dbe1185a9f8289b8236f505ef";
+      sha512 = "4302c20cec5239d3cffd1c5756537059f98eb19ebe6332ce255ddeb555f8f07b6ce03c18ccfd2adc7b1a51c954a0ef3dfbd98ca2a5238cf510d4abea48d10df9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/br/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/br/thunderbird-60.2.1.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "c45a3dfb8ae5564071c2e59a623263f995a83f9ac20c84345be47935a337b863be3d334b2e0f40767842e9a53cbb1eb00dd87645cb0b8a737efce15cd81b9336";
+      sha512 = "c22bd6606886c50fd782f1646f03917d9988a76020fc5e1a210e39a771980badcea965332ddc80f6f08fd062be4f08a499cbf7ea3585c78cb7089d40b40b92af";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/ca/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/ca/thunderbird-60.2.1.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "aec05cd7e9a5f529408bca9691ef68bb384b23b9cd464c9342336b96da0afe20473121128861c20d55bc3c4f5c33f779fe892681270d5b26df6b64aa27c13511";
+      sha512 = "7827c61dcc0294b85db7709029021daf52148a9d00b1d06c3a05f2e3591ca1e9e75a84bed3ac01da3a7f4af7bb2842b7574ec519849c8a5cde30600f0d237c85";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/cs/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/cs/thunderbird-60.2.1.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "e0286e388a1b9a273043bfbcfd2bdf9675bede43d6b3f364882a9f7a9bee1fccd76e5ada76aae309f961c3e0bcae6373cb40457a53d48a9ff37c9fb53245f889";
+      sha512 = "dd51fee0d4e2c87e841c1e13aeff54c49e375bb95ed69f539320815cb551d57853032d42346516627024f88ba77154a8f1aeba651f3e90b5d5ef206dfeb23c5b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/cy/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/cy/thunderbird-60.2.1.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "7f5f28836084132f044b3fcda749dec03fa6234a04eff73a8001f804c98be8df57eba564e864bf09a9938818bb86003d9fcf54cacba2d1efad7a330381e08b0a";
+      sha512 = "29c32c26fc56d1fe7ae47fc93d121b8591e75f0d42b25ef3e1f9d98f3bfa66bdce551d96c8f98f553bca6425173da43f9e9a13f3f006db1259f1b69a68abb7cc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/da/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/da/thunderbird-60.2.1.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "1b9b63abe185fc91ee2e0dea054bc5e94941bc2cdd59cd85c9997ef9d49eed0c93827265847a480845901af8b37e3547c9301896beb538aef724945bca2ed2b9";
+      sha512 = "f57484cf06388193dbf3e6ec9c8c631829e6e0914dd785fa81b007bcd9789cdffc777d6f5df5939a1e125f66f9cd2a04d0b4a9dac5250aa615c7033bffb70d97";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/de/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/de/thunderbird-60.2.1.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "e499f327ed9f4536b7bd9659879b28a2282a6a2b9aeb4514b3a70f774d76427283379293d09e95271e54f7c68ab07beaa60e867936b9de8c09b600914d3e4156";
+      sha512 = "d12857d40c23f3817809e09e1edf9cf1131939d2aa5e830da2e9a13b4971096f33691deed0a29188510c2f84aeaa2a7ab704f54ced3c79885ea7b883cbd88f49";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/dsb/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/dsb/thunderbird-60.2.1.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "d862020f5ae7c50560ba4c58d67af4c0e54622f826934b90887efcff5ae1c97126bbce0bd42f7e1c1215258b92db6a012b184a2106f4beed0d7e8c79b84bae54";
+      sha512 = "c65ce176520eaafe2afe54cf3ff6266bdeaef437c29f82e5580f286c31bb97881fe9724435995b5debd14306332ce2d379e45a30350296473f140d8caaeaee6f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/el/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/el/thunderbird-60.2.1.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "88b98d3558400370b48f1e133147b8ba57fbb240ad6db1bbd79d7e0266c4a2814fc9cad5521ea8c0296b14857bd09cb4e8e0d86f625fc53d621008729f31e002";
+      sha512 = "8aad41efc6bae79e6e5f238ad6209f0cec7ff3ed0f82a4ef22a0e1e12c3ffb2577ff105983b1f1892591e1b2a58f2d8bb8d9ea51051ec930649dfa954341b219";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/en-GB/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/en-GB/thunderbird-60.2.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "02f1eecc4aff0a8691cdf131736c34fa93035d821a645c97213be41a95b4ff00d244411344089e56c24267984bc91d294f1250b1fd7e8c966ee9de9983794427";
+      sha512 = "b75eab236a8749a185083c33b8f28492d903ee84b2b5a9aa3659e04eae7bc72cc93493a6cafa39ca29ebd0c065301e1091d21a23836b41bc4a5b60f4e61f6668";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/en-US/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/en-US/thunderbird-60.2.1.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "87be28d46f22885c730e89c0a945ed307b23da11e331a5911b21353a53536587f8e95658de591d44a9bdf617dc3d50099f537bebe85680dbf1b3f25c7f18fdfb";
+      sha512 = "71308c1d6691894ef60144f7bc119709491eaa3af400197e4fec61f25231266b085e925fe1163d6de8d3d1f3ce34475a299968e9405341a9881c512fbd6e4362";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/es-AR/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/es-AR/thunderbird-60.2.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "4d1651de4d4b3d5324ae5b07581634fc82399a2b0f9793d53797224d2f6b1205389bd0672b1c671fb956191312549b446c317ff98f187e1a7248aba901bd2499";
+      sha512 = "061f0ea13b7c213ef2020aa2cf9ebee51b6b72f0de9b65ccb095f7e67152f5325d6806af90b5f600b7498d8cbd18916079e81914affd29308e04de0c7535939e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/es-ES/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/es-ES/thunderbird-60.2.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "6abc82968464377cb2c05bc09b1bc978af65d9423dcba78e73e8d0817a2dcc1dde89711acb1d5fd9e3539cd33c6e3813e6b00297f3a23ff1c4250771b40c8522";
+      sha512 = "39c7b2806400cd57cd3e778d57f174a45eaa6e15bf1975d7e82f082d31d965e13a43ef130952e00300df9a13470c780c60f0ec9b398210b183593492d30c158a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/et/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/et/thunderbird-60.2.1.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "9e4bba499f39ee7a87676627fe3ec6da2dcba6a55e39aec897953abf00ad08216550d0fe94804a5426e2894970ad2db3f391dd09ae2768580ea05ac6a77ddbb1";
+      sha512 = "29b0399f7d896b09bb74b9ab78d10686061052493b880f72ee31c00db7cc226e3fe04e9519ff23e139c9644045bf9d6a45a8570d105a9675cbbbc310a930370f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/eu/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/eu/thunderbird-60.2.1.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "66aaf66011117c2f9e675f22a68317552ed7673c05dd56266e4a8719e853629648de3d88fd44448ac1d9674b0cdf6cbe48925328f633c1bc23cb5a7f005468ac";
+      sha512 = "d53ced6a20ff89966888d9241fe483d0a6a5586ae8da4a6d9584f6298a8c254a06e2e1e4527536e38c42f92cc14b778cc8264f402efa6abbaba6ca52486c5e06";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/fi/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/fi/thunderbird-60.2.1.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "8c61206e100182080859c45736d973975ae5e1055fc2df170828dc0715e04be5468ba815995be9d60530ba9600e187aed965a1d94f9887337789c8219e2cca6b";
+      sha512 = "2fdf8b87cee0829e78d130ebf87b5d4bf62266abf17475d349440f7dca043ff7e1c14feef1f69b630cc81afb42bca52440643d0e2f833ce0a61f19e1c1f25721";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/fr/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/fr/thunderbird-60.2.1.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "1583081060580dc72d864ca88ae8f114a22db4d4f3177532a4345471bac6ca3a85397b5bd82cc32f85dbfdc4992f788dd15a4dfa9d6fa7b154d3921c0c23fa29";
+      sha512 = "288f8346cf90dd666cbb082f1761ad8fdd77a33e43bcca1cfa58c1f84c86bd6c3f7cd6d1d4effdb9ed77c6a50d07b8e5ef3505dc2e2098dc3c38ec32e7fa99c2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/fy-NL/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/fy-NL/thunderbird-60.2.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "59deb0b3e32dc2dbcce96aed6558dee899e290a469ded997bd2b7b6b2832f5f7c358d44f128cc1fac2327e3c19c43400424dccf4a0478bcbfeae3401fbc93882";
+      sha512 = "836a74aaf424a93304e12a412f0104ed5d577bd10ad1beceed1b78f2dac65d096103e9999298e25cdb8fea9d616fb4f814ad8c3bca84aeaff0cdcdc38b8763e9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/ga-IE/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/ga-IE/thunderbird-60.2.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "8bba0addc0d9d1000ddaed0702b5db0d797f3ac9fff0f04e645d6fb3747f961c2570ee058e53d4084e3c02cbb8490c2a32781517c57bf7971b8f1d4db0fe871d";
+      sha512 = "8c680f783e26193a26c507491b82128b123ed89e73dba328391d18264c5780ad88b9f077d4d12868dab6968f4be7e8f1c0dbe397196b556a5af31c07c1b1072e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/gd/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/gd/thunderbird-60.2.1.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "8e8f5df3aee5f1dbc1e6fd8c761b5d968dd35b9e29a8c04e013a7de08091f65cc2573109f0bfe201048f90a578ea84f1bb05826d7bd8e9fb7dd9110b45623034";
+      sha512 = "e5b092f6b1b79b93225c0cae4022bde8452598d8c36b9e5ebd8fb4b9449d265df048526c30a1207b9ebeb7a5ad421ae77085306dbeb9d1d5b9c34decb98da1af";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/gl/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/gl/thunderbird-60.2.1.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "56a56179eddff5da07ce124f17ed08a6a033d7c2c3d139fd5b00afdb86f0c54215525c40f9c6c108384adeafdcc6f8dab87d72b07d88bd38e0c43c89aac4db0a";
+      sha512 = "ec235f57cdc56a66885f2d8098ab9ce80ab3fb87fb30b4c5cc97cde874ae321e326b3ce4fc9e69a6c7f0e61e43cbfb28c0392349151b25ee25a2503e13bf5c3a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/he/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/he/thunderbird-60.2.1.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "6880b7ab22b3e642d10edce67458fe30935c87dad60f32ac32b443473e5a208a4df0645b2a18ef26d5ce40053b3a9119eb432e640afca8421c4e93815b28bdf9";
+      sha512 = "fc9f1ef3dd117b6b4198a09997e3e4095036dddcbf50a32b94a36f53ec886bfdb33debaa2c69b68c14ba7af945c1a35891b11fe9ae8602c11842d381bdf0286b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/hr/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/hr/thunderbird-60.2.1.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "14b22f95559f1c9addf04d51dcf857c3cd59f3612743970bf9cbfc99c84a3d0fcb898be7e83858c0848e341039493a5aba4189d24941362327f4ef9982dd739e";
+      sha512 = "4d548d121cc8111711ff7a35383ffe859cdd99a692b255dc71d52cb4cfa90614a5415a58f000ce447209c998b03fa545608333a53c5230fe01527aa882eea295";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/hsb/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/hsb/thunderbird-60.2.1.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "5bbddd6bb288cc03015707bd2ed3ef38ff20c7b93b08907e1b90cd8a22725786a293fedb142f99e18e0cf66fa14529097399e95fd157c434414c8fd61c0ba70b";
+      sha512 = "2f98ebdaa190aeebbe60fe20d6246d027425c3d5408abfefcbd50857ba800e9fc53b0177f54cf8b710a013bfc59e4a58b237991058a123cd2f8f0e1f4afaa1b6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/hu/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/hu/thunderbird-60.2.1.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "4f751f64b1417022f6c1487e1f3d92edc0ea1cd603850a9f64b35a71a652be1e51dfa17babb66e3447bc5a8bb2693c6e2dae89a736dc2f070b4b6a9500cf9299";
+      sha512 = "b54703d9b7eb868a771538c0f5ffb0e881efd9137ed29b684dc149e77b3f9a675d0b59feac21c8b1f54c35545b9a2ea2274bcb485ce583102a406e916c3c25f2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/hy-AM/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/hy-AM/thunderbird-60.2.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "c932b56abf6801bfb6ff90978343aea12f67f006ea71882fa7bbb469dd750371330c47581f48aec3ecfca9cfa51f7edfb2aed6a3da874041c2087b5c5ff60abc";
+      sha512 = "f3e3918538df95e6a278bd680d019b39c5382078c79eece57f23810aeadd43fd61810967aa384f222f6d21d5d815cf3bd7520a7d31e44b3d2e6c024ff6b46a47";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/id/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/id/thunderbird-60.2.1.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "d8a61bb0c1c308d7ef89a9f938fd1c738ce8e66cebfdf4a236636e3c9469705c1012d19c3d3cf8837bdabefed01c744692aec2d749c7ec0adb472bc125e54cdf";
+      sha512 = "3b1956f69a4b82a900dca97f90b29d7cb685c79e6d6063b58bd8de629fd604dca58d058c8b0855ae46daf9517edb1451c40f669cc98e986ada02e317b131b19c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/is/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/is/thunderbird-60.2.1.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "1fe98420d0ceda881b50e4dfff667de59b960c1d8a23b5f88140c076fa5bfc8cc01b636a3b9bd46987f87a30ba6cb510eeaeadbf83ada954a5681c3da68cf7a5";
+      sha512 = "fa5e7574bd73c1d85d300b151a5d1c7852fb035ca5e4599b675008170074736045ee034169108eafe6171371ee94b84003922088e8e0dc4b1c05ba7837499c4f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/it/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/it/thunderbird-60.2.1.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "79190716416c48bfaf486470a5f31ef881bce0b97e4c780126581a38ff39e6a14ae12487779ed219e55afa2467139b652f54e989b91f4d438685d1fb174f920d";
+      sha512 = "a2bd51df6adf2caf4bb22edd02b3b70d94abb1d3ce22731a3188c718161b492f860be1cdd94c39c4a64e6ccbbbe80092310448ff08d671d870ec565b36466b33";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/ja/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/ja/thunderbird-60.2.1.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "c8c9d6a31664df4e7ad9668a73197da100f5c0b9bcd7bc500638f1d1c26e123a91cd370cd574185f0a2700c44564df7a048b6942265294c2326c8d0ae02f8c73";
+      sha512 = "b065494dbefeb8ed79b40b255bc8551dca4f0606c204f00d7c0cc0534fa1aeff45d0b7fa80454fe8ae8803b002600d3e332f7b3138894005922aac48cbdf9ef3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/kab/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/kab/thunderbird-60.2.1.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "d76f7178edaee6d16045e332ecac4dd31d7eaa3e8688c24cc48cde48df7df9b1bf9bbc0d76a95e8c35923fe1fb743792bcadf8d3f705f76a8acc7d714b8b0bad";
+      sha512 = "a22017107f11151f2b383d11d6a6b8aa45571c3c4def1ce422fa4b108b546273a362279889c60bf5b01dff73b497879d881b0f8960be97ad92526ceb0ae16488";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/kk/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/kk/thunderbird-60.2.1.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "f3d13ee3665e6345ea8295d616d227ade4be5af166af08b0a2094ae27a69eb82955933967f734e111930d802270f8c5ace57a9f16bc56b920ad9a3081f82acbb";
+      sha512 = "9d9abbd85a6bda636aacf361dafa05b7f64dff8a7cebe81d2ff9b6d5eca9c800753cfbd3e9dd66ca17edea0bdf8b656d242f47e53f5aab364b14a88d2917da0d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/ko/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/ko/thunderbird-60.2.1.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "9ff20db6d945938868b5b9833519a93011d33804f5514f0f347814137f9f8e96b427658f1f086867c0b272ef8fa5c22e92b8093950b534f3ac0224f84bbf2779";
+      sha512 = "083b33b6b50af83380e2976fffcfe9d4fa3fc64199bd6895606392842888ac66734deff738788dbbe449ee7c7a1e06608caa25320c12b1d49885825f7dd8a500";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/lt/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/lt/thunderbird-60.2.1.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "cc0309a724a2b21bd6426af53e5ca6b8168f2e3f1293c16aba954c1484defd0a227a1d93c4d92e946d5327d5ce58fcc37f6848d180426e3cd9673de483676713";
+      sha512 = "33c16ff80c9cea364bf2d4a501d3d7f04eb6a04c70785d99e0d8d5fa2272acfdaeeb09b45e618ea1c08b9da083f7fdbbfd571eb84699d0d93718e103810983aa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/ms/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/ms/thunderbird-60.2.1.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "59351da7225877be43a1e651afd089facd47675497d8f2c0d6bc1c8a2234058ef9362b30309d65b074c8b98faf19b9d4cf80e83cfec2f8e438fc0a7c6d60f899";
+      sha512 = "92368bcdf6157b7fbcaad6f5abd40a6dfea2c12d3aaa6eb58a2cc118621ee8df50f34f506aa124413264a44cedadd1755e5dd827f4ad6df069fab9d6cf3b08ec";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/nb-NO/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/nb-NO/thunderbird-60.2.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "94c5f139cda0a90bc575f32f6121441dd198455482a89d052227777759f912f26aa53d74a6232e3a78ecf1cd3062cadfb3c7f30e349dd59bb8797825dce825a4";
+      sha512 = "d06ccb94bbe15947b8cc1d685e6ab8f8001e717e104cd1af6799a02c47ac79ce8e1b5315feb6ea3683f9d89b72202e1e2e41a0226f994931304880535a25e2dc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/nl/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/nl/thunderbird-60.2.1.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "f1fd359ab66f349643191efc5f112a4512acfb64cf088b963068e54688c34b4244a8b0d31135200a706122ed797e2d2b09237e96c1076bbf086d660b80d44dbb";
+      sha512 = "2650806011a205cf6dfb1756c270a6a8ec33dc36cfa67d85bbf70264bd306a2b98edf973eac001ac79657fc624f2c56d39c24e7ada9b53b6aaf5825d701c4df5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/nn-NO/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/nn-NO/thunderbird-60.2.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "819c02852685cdebf0b3c3b86ab4261ac13ae6067f0a9c3610214d4cab05f3a913da58527be7d3fd2d06fbe9de13481c34c679b317fe0659383b31ac1fd19bec";
+      sha512 = "bd58db3533496758873a273d988f9b53f2d201a176b936b549ca543bd3e612e0898c83a42f761885a9b9ac58f5a3dfd38e93e9f807afed02717dc6b47f574c5c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/pl/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/pl/thunderbird-60.2.1.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "e384e19a68ab56c16266d59abb6b22ad5b7bfef649c2a7537a5822753f856a6e90604e057a7a43b744487294475be6afca2b8484911044422fbf06d01df31e5c";
+      sha512 = "3d2961721fb1d70b4a40b447ff4364039159115b096eb75aff418db20709e102bbf3f752e04bbbc735506b2b4d45554d38b1d217459efa7405676908831fe4f0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/pt-BR/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/pt-BR/thunderbird-60.2.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "edf352970e3292c9f3eb17caf8de07edb924d14500c3dfc6d1864adebcfc174d1639b2d0ca5b4006cd952f9922e09fd220ef50c7ee3f15920d554dbae22eaff4";
+      sha512 = "3610306eeb52cc29ea739b1d5140bf0e4cec8536aed99278a82ea0847a592975e5a9fd23d4763032d3a178a9a830e5a8c87bbe6b0be7765a4f961c00fab05f6a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/pt-PT/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/pt-PT/thunderbird-60.2.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "2d91620bce2051d6c30a3b16f21f7c97b99e3ac4a239e22b582b37ce7e6ef4b6861d66e56e7e7f58cd71cd25fcddb5e161e66248d87fc9984e755f229dbd54b1";
+      sha512 = "30ad1102cd1abdf091cee8971ecd537ee7727e0ff3ef31bc535f830c3c50f8598330b98ab5acd5b1c22d9b4a245f9952b7f6ea0e8ca373c58aaf57f4ae78d554";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/rm/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/rm/thunderbird-60.2.1.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "0ee05046cef873313eea34cb5bc002f9231f015415ba97c23b06e7ed0ef9996e7cb77beab89cc1e312fc74122cbac179af430153b2426d885acef8fb7d1126b1";
+      sha512 = "8581718d7ef1b0e3c6ffbc2dd38f9a183577d80613a79bfdeed4aefdaddb6fe060429c76ac0ecf4c18a4a445499a444f5b0315ec32f3da00ebdd2d1a3e70d262";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/ro/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/ro/thunderbird-60.2.1.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "c53a2bdfbda8cda335d2a9fe03476090034ebfdbd8a8eb345a9fa5d3c0f1422a0e1c2d95bb5a0b75cf84f8338679068436cc90c857a3547f297f3294d5028b70";
+      sha512 = "e9393e95ef620474fa40188bcc3deb110b21c58eedeb2791cd7d17d0621f45f345fe219eaeaf4a5d71d80e303ad23b5d8ab93c8b5f7d085c3eead902ce239e5c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/ru/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/ru/thunderbird-60.2.1.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "ffc6c2729291d8d1c7f32cca8933d3d8adbd54e278940ccd7cb844778b8a55123af0bcc9d435480077551de49d1c2200250209311579d2a34a5609a336eb32b3";
+      sha512 = "dfa9aba3a85bc6f3264849b54d8f6ef14a5cbfcab2eec6f71b5130eaad6b7d8dfdfa2b9572f965fc19b51f80868183008e441961ee0072a1500eef183111f1c4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/si/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/si/thunderbird-60.2.1.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "9f708d01d6a6492d10ff058bd2425172bb90ff9c2827cf88a4307de0df20c6cdac9d8c135daddbca132fc55e89c68924fddfe9ca8cb49d77ca6c874283c49a8d";
+      sha512 = "b669455b70def2b7a8e08cf8f7c77db857ef0062b4f791a91ad636e7fcd0eba0aaa5199bbe49d7895a6872370e8cd442e142d017ec6855327d0f555129fa2d68";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/sk/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/sk/thunderbird-60.2.1.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "44e3dd85654dd91ac9b0bd1f1d7f6f74341e3f39be8f01b028353d3425938825877b8f8b0c296ebf269cc5b1e78dbdde18bc49153ada0065dbc1de3079096ad8";
+      sha512 = "0719f9073db07793a4f061cf430b3aff539ec3e124ae2a7b6596ca5505e0d0ba96d1af1a3e1dfeebc55601be1ea7a173c5c89657036606b0fdf92c07a35efc7d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/sl/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/sl/thunderbird-60.2.1.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "2d77bebf1e3a6466fdddf32f21cbb5d28e46f4b70fbd07eec701559a0accb6f78ed9ed8a3b969d0eb3e249907208ffe8ab096e6bb035bdfb8c91e268ba228992";
+      sha512 = "66d8ab801f86a5a6a68d5fb48ebb255c3348fe7a0e9eee975fee7c939712cf5cc3bcec084c853600235f8f9774c4bfe66507fae856bc4c9a88d170bc3d6d4e6a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/sq/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/sq/thunderbird-60.2.1.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "f705fad8b3a3ec5f760f28205caeb19986cd90084c8db0d921569553aa3cef668443e30594a82a32cb684e4cb2444057d04355b39a2dc02ac2dfc0ad5273bd68";
+      sha512 = "eeb3d2396f8de38cbd9495a82c766183e1640bb05c48dcb4accf770c4c00fb4823be55c5cab6561dbd2dc413316f383265cdae9e0809da1150b9afde678bf4aa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/sr/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/sr/thunderbird-60.2.1.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "37dd80ec39ea566e66d8ace889bdf0353ec63682356472a1d0352f556814bee38793a263b285c65e9a68e62b782caf064d7b530b503e1222a490ad81798b2a76";
+      sha512 = "e251e7c1970e68849bfaa6bd9a34894e9b710c7adba1cd54ea063274e7f07735795879a01b4dde2256eb612539d3fd433507fc9c586a28ec803cd636194ca12f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/sv-SE/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/sv-SE/thunderbird-60.2.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "3685b1788f7da31032b5b16a974af87d729a05aad8f906f6692d7dd688684c6f745fe766a1c5baaaaecac4d1b417d3e91d78ca082a41704a6f9caff29b64d842";
+      sha512 = "c6d2d165eaa2e46adc9131cbc4aa203308852ee80ccbdc226def37be9505c4e2649e70b668ce38d061dbfebc284e0d604db1094418a02092f189ddd3e7317419";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/tr/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/tr/thunderbird-60.2.1.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "3b1de9eb1371ac686c1d28253bab5b5a3c5ee3b91739bd9e272ed496266fbad01fafe5015f257cd0dc6ef553d47d674bf13e5a53444d030f50572c929d0b3c75";
+      sha512 = "d23cb1cac7becb82cedb768376e200108e08814e55c8308492cc65a687d5d9aa5fd38ae742c39572ead41b2d2c3e03dbf2222f88fb0b94ceba6183d6b8a4d0e0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/uk/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/uk/thunderbird-60.2.1.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "0cbd6f8ad5f0bf49e62efeed2d52b3c22ec0dc4701d84771465f3650ca2ca2736acb1e9d83fead6ecba4dbbd64eb883bd9cce9ece31b5e1ec28da4a410db196c";
+      sha512 = "7385c719fb86a3c6d64c5d6ed8bea81cb7366cf1cdc97858dd177fb1435f24f3d3d257c60a319dd2db82da1274b9a2e14b73d3eaf20684ca955a0bd7b7b7e3a5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/vi/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/vi/thunderbird-60.2.1.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "0e0440d0640b7c50aea0a6a6983779524007897dee8996fbf898d110881920041c99891ba282cdd5bd02060d4f8606e57bf9ebd25531ef9cdb87659aa1150e55";
+      sha512 = "369be97c79232b58ce2a096814d63c3ee805e2fca8ba40566ddace637c5d9d3686c06e8e0a158ce38395d7056dcc85416251b73ae7b50bdeb79c26fd65044200";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/zh-CN/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/zh-CN/thunderbird-60.2.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "3fd66874bbb9853da447cd4a4495f848d1ead3a1ef1ceca36590082f4ccec8985280d25f42a643b52f955290a4b9649709909080db8b6a592a943ee1ba4bbb44";
+      sha512 = "934d49874ab0811ad2959de1c43c94e5c94ac52e45dca2e8a6c91ca32c033bbf7c076ab46fbaff5c1f508301d0635b3ada957f09d9f591647d202d09484940c8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-x86_64/zh-TW/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-x86_64/zh-TW/thunderbird-60.2.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "8e716f938a146a14c9f5ad8d99da463a6b5ea8d1705c26a575a4e34de89e1e9a36e1a288f60bd67b87a2560fae7646dd9157c4d60e9a35f7e977d20d55756f0c";
+      sha512 = "50253f13fe918a1f9b066fc9c8b3245aea8fc79502ff7b5130150cf207da080b569fe0aabc5c19cfd77fb79eebe9a9d48f103d6748ea2070bd06476c0bb90e4d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/ar/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/ar/thunderbird-60.2.1.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "2076cd84255a8ad52521a752b8444cafd3490932b69a3ec632d8815a5215d08d4efcbebb888f76b26232eb6edd66c4b9ce2233107de32603d6a7a37b87f3595e";
+      sha512 = "3f0da183490797d4046272a85c9584e95f5b0c66edb94ec4e84906f78f009f8558e4e2c4fcf03f83e8d857aebc13febea3305eb02c6c63ac32474749bd28046b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/ast/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/ast/thunderbird-60.2.1.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "a070d8bf3771ae9a9e09f40888b3c7cf391eef4966bbf437f547eb8a914290d2da918e7a824558aa5a506ce1941fc95ad738bb9ba56cc7418004da6658c42344";
+      sha512 = "e3e0e9d7b30b7a790c681c650e4da123246bb9fc5005dd382f5eb85f3bee9b2e3f79f5a9688f4b5e25da1c1bcb09721ae8c7cce32309e0c554a992fbf1b418ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/be/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/be/thunderbird-60.2.1.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "f9c92aec1316decc523e8bb9136004ef74e184f2213c1ae92541416c36c9f3aa1a8adbe9f875b25120597026dd948a1ca68a9e1074643088d2698f8483a04762";
+      sha512 = "ad8c3794452cf734234421b2e7b0e90553f2012e62c1d7ea887610f74aec4af5d60b1ef37765d9cdef93c23367135fdfee800df0f7bcb59cac1761356877e3e0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/bg/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/bg/thunderbird-60.2.1.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "a576991acf9129ab9a365e80b90fca7aef01e66ce3d06dffb8ecdc0ae3d8dc2902470a99a0293a87c9f112fd13658b71a86e6fb045fa7cefb7773de1cdbbe31c";
+      sha512 = "30076e64f51084059186998f36014047ec53f0ec9d9ea2589808c20793403b777f484569eed31d4ecbfd5dec890e1cd219bf071102140d1b4f5ed401225a411d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/br/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/br/thunderbird-60.2.1.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "d63edb38305e2ee76df5c05dda275ee45ba419bfc6776d007fa39dec36d202158f7eacff9611aee44d3681b0db5b200a6706e8034fffcf1ca7d575787240a5ff";
+      sha512 = "9bf11610fdac1278c66bbe7123269e3ebe4e24b619f8b1ee89769460656825c3a170ad730f5297ca5dc1181833ce833b3a812306d5a6339fb80408992eb9f89e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/ca/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/ca/thunderbird-60.2.1.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "d5ae9f8478c638fb50af671dbd12e95b338333e87b31a7cd42d99e8deb200ec23841ac9b93b0ab26b39306067203d8645976cb99292e3a028149ca549c9d43c0";
+      sha512 = "95a643963817f5105c76d195c1b3ce4def01e0e5262c730a9cf1ee247512e562d16d56e53968d0078cef12514b9294f30ab59f93e4e25c068553d8ed9633dc59";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/cs/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/cs/thunderbird-60.2.1.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "9284fd6b7757c4ba331f2d2e713c247f7fbdecb7724c1d66df1d1f0c81e3803dea4cee6fc4a905020b00ec5b281a4c959eb56ef401af5b8ec5cbf05252d7ab66";
+      sha512 = "a20498a81b5f3a70a0995552875eb8eb2635b1d8d3508540368f6ec9938493927050a17cdbc944e9f0712622666d13ca6e15088cacdfd687de21b83bad7d7b48";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/cy/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/cy/thunderbird-60.2.1.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "182e1c8878e53af87b5b83fe00ba5a8fa7c72ee35002e843d3e1cbbcebb1d2e82c37e90a44c411b238b9c843be6594aa75d34deaa576d213c23af4e2e8b0fe23";
+      sha512 = "9a7ffb9eb9c3d561ba328e43daf232ca2261a30430a17d49010e283f7ae1e190475e3b0c87ab931e26ba6713eb1cd079a1f6f6ac1cd5cf5e991dcee940eae041";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/da/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/da/thunderbird-60.2.1.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "10f22a40283a4202c0e6612a27022ffdd3d2c45727cd170ebeaab6678f59f624c6d2520ddf2c9540e98030c6813760b5d56c70882caada0166985f3206fef4c7";
+      sha512 = "186a96ba0ade51ac1ef53aeb02b2c140f0b1da048d24dc41f97497ec1b37afeba5226cebcd1b1f0226391f20f972aa385f41220844897bf1cf8ed8f64fd895b8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/de/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/de/thunderbird-60.2.1.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "42709aa4778e93ebd61ff44d027eb0445028f036c735943d71ad355870d03da6dabb763367123156922aa56fe66d6968ba9c93e7b9a8b58197624f984c36437b";
+      sha512 = "68aaa7c30f119407f5a7adfcde55865f06841ca60b7819bc4966b16df12af87e32f24d631e483341a171e712979e90d9086fe43a1b1cdd92a512e178d6374ae8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/dsb/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/dsb/thunderbird-60.2.1.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "6b82976526b862c9cae1a056b04f36c6d6cbc4ca91308a1f02a808d88272326c10f34cc77aef00b6f6c1863de42ed9a03328a667e4a0b985ecf837765557f982";
+      sha512 = "0bb90eec8123035e1833b746ac3ad1558ef01fe4647c94706a4988d1c8ed53b01f8621f3ac2aeffda640a8e6fd05cb71b3edca369a7b445608a8eae5dc12dc9d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/el/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/el/thunderbird-60.2.1.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "4314dc7d8fcffa4c4f498d41657332bc476d79f934b4f46181fac4b6cd93d3161271fcd0575f07139186d502c5b833b53ff26d2f8728c9a73765e551963c45d6";
+      sha512 = "8f2072017f5edf494c091e712e26b253ae4809fbb81d1ee22063ad02f2cbde06f04d9873c61691245ddd249c489c4b3f58230ca12cb390abee8375114331121d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/en-GB/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/en-GB/thunderbird-60.2.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "0840f23683c8c109ac802415b4216f778d6e1c2487e0e8d179def2a3b56308a7d9888c46a96d8d509f99fa4aa296213e2772bf1e74a97330c5e2bea97dce7c70";
+      sha512 = "8a91106d035033e9a358f99d1b28cebad978586bf2e363b0856333583e6b1fbee191f3a8518efab85c188fa60c8c5d3d4452fffdd8b5f3a7998e213d5e6eaf05";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/en-US/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/en-US/thunderbird-60.2.1.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "baf0334ba9803cdb79e1a05a6745f6a87575d52bf86f6169b664903608236eda8ba8965481a58b660fb1edb567c681211f328c3f0b9b298e267b5e572b41f642";
+      sha512 = "e104e90333fd9ad786cd59cb323a2a87a532b242aa7e6127ba38df00b9d747278cafda32b359258c9e6ade5a945c4a227ad81595e30717b1a06e314c511e975b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/es-AR/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/es-AR/thunderbird-60.2.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "c7a7ba5a547cbb7b839191b14a0a78835935cf589f82d3ee28e144032e0d94d9209348a45502b7e2da67314427b23d88fabf61db1ea78e55dda9bd1ef97abe9f";
+      sha512 = "a7cfeb77ce146102b8583fa086536c58760ff30b69c8f9373be2277815ed57c1132ffdd04edf782ab8224f2ef231ae4c2c581dc13c174db6ff382a72975279b2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/es-ES/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/es-ES/thunderbird-60.2.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "ae3c7211dea682e133f960a147169e0a7b615a0fd4ad2fd28fed3976a395f16ebbe1184c872746e2872a09466ca84646cfdddd270ecb3567725dab24201297d9";
+      sha512 = "7700206c19f5b8a434e323cd3f64df90696b04790620e6e20d23519dc92a8f3abcdcd8799d7d3843968e78cd8a6cf282924f3ebe442eebd40282fc035e096c0c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/et/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/et/thunderbird-60.2.1.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "e08db3e430bc90b5af7fa5d979d694d38de1bcfbb89d68613f5b3abc2abe135ca19071890fcaa5e08e2c42d7486a113345ec24ce5555d963ef2c072a3f4b77ff";
+      sha512 = "14768d992308cee0fcb30d8c676d89f8e30bebc86f4fb4087c06d38afc41df418666446c65e995e74c67a6a6214c05338fd9471e02d5d5101e438b414c9873e3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/eu/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/eu/thunderbird-60.2.1.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "f3e5ab6e80ef67fb7b05e08dcaab138475f4feede719939a055c0c548a719902a1bd9b7c18c4a76d5e7173f5a01a319c56579c41059a1888fd29bd43f78666ca";
+      sha512 = "b8a33488d452443ee7393d77db68760b96d3f868050f49521a76b522fcddb7f4a573be06810c091e8b02d76b681c393554c01fc6800e420f9adf4c3e42bdb436";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/fi/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/fi/thunderbird-60.2.1.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "b034c2fc5f633e4cc5b9f3258d7073439e805371833e7dccea9e8a7c9bc52ea7bb862642eb32bc02cacf2f114ff9b379edc22eb0df52ce676db52f67a3d48672";
+      sha512 = "670db16b381e68e2f6faa353d91120a787ce360143d72c4a9041a4684688314e3dc466b2beb9166b76a822f8d96348b41bb32410678d711e39947c932424f295";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/fr/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/fr/thunderbird-60.2.1.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "bdc4222ef8f15ec73297b0b1382e2e6da638d103e70c0a00adb5f3aff3b4944be1149f4099cde60e7e0daab273775959110e2354834641f6c85ddcc3f1b8303f";
+      sha512 = "b3474043fb1b3a6fd1d396d6b0490d8db71c135846e4ef74d22e80abf41ab4ca1faf346c9928424e13ef9c12d6cad19f389b4cd38c45385688b5b4587bcc0a0d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/fy-NL/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/fy-NL/thunderbird-60.2.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "d4ccbbed8cd929c385369c7df9b9d031e4e06600cf8d08449d9e60844aad2ccafbb6517327882cecf1e25786a573e2878f15d841851cf30c72646eea7cd028d9";
+      sha512 = "41b9f80ae6e8ce765d8fb057bd49af032532cee9d5f2c4b17a4d3833fbe8ace4c7ed4336433273e59f98a1b4cadef1ed49f77a95eca868a39e76e7454d7bf91a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/ga-IE/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/ga-IE/thunderbird-60.2.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "c89c2ff0a5c06ce0df29300ac2e1ba034b39b021487ddf86e870138dd165459a71dc250a066df1622e4ebec1813b1c315eaeadaad5da6afa522ca2208222f1d7";
+      sha512 = "f89277340c6deb07e73fd7a7227fa216960c89269e9d4ada0f8a6863ee60ba004317beb207a1128930fb8c28477963bb66ffb0a76e86dfcc371579672b0eb26f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/gd/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/gd/thunderbird-60.2.1.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "5f1ab74c7492a6a52b1ddbd38f7b9f85f59bd911cf8a64084d1eb35715f0b9cd45a7650dcfa9771679ac6255eed99dafc0becb8b3e32e315e7d186e118b56afb";
+      sha512 = "d3ac6c868fb504b71823b5a3139155f6f441839c33f10cf73d8e0bafab5e7d9f7bfae3b884b41fee1ced4c10565321bd13900575855d42f70958e569e7756743";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/gl/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/gl/thunderbird-60.2.1.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "690915f4e182b5ecab32675aa03616a2f51f7a4e795991cdfece82f63f074e2d8057d6e87ebf9f74dcc5acd149b1dc844517bee19de3d959a493cb64b51e6158";
+      sha512 = "88f41447654685280aef548951609cb0ce7054a67c632a66892d1707d6d3dad3fe037dcea6ac8222080c0fc2f19d77f622506e82b6ea93114462b131fd4de308";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/he/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/he/thunderbird-60.2.1.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "ea589ef7a9b4897beb23b4595c830fa14e7021472dbab815fb15325e99cf858a28b7265d43df0629d2196c1563a769f36beae1ca048fa3c006cd97d54e923ecf";
+      sha512 = "faa622a8b7fb3c5ba4156cfb6ab4414c0a56a820a1593b555e817c3edcefc59fede6b681a0c6722cb540c81ccc425bb27d2895ff84f5ce2e61eaa7b37114be42";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/hr/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/hr/thunderbird-60.2.1.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "e5b8e4cf40819c9b83339520e832773e3161c9c38c802ca37fe512616f128163bcc2d1e7a40ea6e0bb754973a782f141ed044c4be3a0cb7a39685326a1c3a8e5";
+      sha512 = "74321b6e6833014d60b698d7f83337c846452fc1e2148634150f192425607595795036e13d55ea0366c4d3e7c998c9c3766f50abebd606dd2ce7c3e6fbbf4963";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/hsb/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/hsb/thunderbird-60.2.1.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "81382e35b825b65f95508cf04bdeb1a8709f2cd7b408f3dc068cb75d4c5ec31bdbead8807008c78599bc11043f77437013242f9969333c46e10d9ba4a8e563cc";
+      sha512 = "5964563cc323a606dd33019888ac483bda47f0da073e3d64ba329521cb7a192ae9014cdd2d44e48091d2f3f0219dab11a60497842e42e37a7b3be9415843fd76";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/hu/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/hu/thunderbird-60.2.1.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "190794f6fa1ffdbfc2b8516cf0c954a9abf8408aa04c1d9c51e1a601f8a1d3d8fc32e2ca9644bcd1e11e8cfc47982c55995b2daadbbbafcc713b4c6f5c8aa63e";
+      sha512 = "20ed810d74584d9c79b0dad65c50ab8422f841aa2e4974dcdef249aaf4901315c79ee1f071c4d03cd83fbb973eae35fa730aa0db88fb46617454ad5a4371f107";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/hy-AM/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/hy-AM/thunderbird-60.2.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "a6cc1ebcf284fb7b4fa0873768713dc569efdb39982f37131499434577ab5515448caaa5fac776987bc008074ac6c04eb29e2f60e21626b06dac2dfd17ee09c5";
+      sha512 = "90973c56fb46c3c150efad6cfd48d24916983302dc459f386c5fa11ebeb4b32d7b7d4a35e8b3e0ff7358b4af9c13e112d01eb30abc069dfaa8ef8aa3af043955";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/id/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/id/thunderbird-60.2.1.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "4333f727d2e310bb24e6f266b748d757683523d6c3414c68169bc1a7852edad8d76bc3021aea01bc08e7d95c5fe4da16281306236cb6eca6f3e339cd5cc11fa0";
+      sha512 = "9838d3e9a9fd30e03885f4195a951e285230a33757672c54c60edeecfedd220e6a8951d9bbfad34688ab0d16fe38507b3f8524d1ff3a987482cf761d67a17dc1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/is/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/is/thunderbird-60.2.1.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "f26d7117241a090de6675e3a336b5b0c9b5462acc80248d6e41bf43f8c990a761ce36e6d0a4620a1733d06f5bf7cd8511c88f686b9ae0806f23f5a852be3c0d2";
+      sha512 = "b951f6db2e2a70a6bf43e5cc7ce203d59b9062aad44bae3634db03dfe202aac723bb8b2283deeace96e8401c772f43aa985b76259de538f62dd970e285b09a42";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/it/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/it/thunderbird-60.2.1.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "33dfd7890b6c156b907e40c5442795c8549053362d65272bd08a5ddaeda61783ec914d8c917a7b9731885aff766011b9a667307ee01cac79614eb84133bc8675";
+      sha512 = "389ec0d921b42e4238ce13546df6bdd1256381e95aea9e9e18e46524feeb4837b2be534fa452a4cae51d3fb060e059dbdffe7f26f017adc4f88aebea19f656ae";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/ja/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/ja/thunderbird-60.2.1.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "4ed858b1a1411472bc2029ce1396b78a00f25cabfc2232f6e3daf0acfe91898df769c2397f908db52759c32efc25a79d9d39efa99891a68e2b7d5b7c13820a23";
+      sha512 = "d012b6339c6e18aa49c4f6a4db40aae3315128b89938bbc64fee94a90db8cbd65b27bda9742a7a761c52fa974d9b5ab5e1d98ab485123c33be318d216ea8628e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/kab/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/kab/thunderbird-60.2.1.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "61e8b05c0c952eb493fb5f35b7ce6ee1da586a7a4d25f27224f36b7afae75a0f217717f5afac17b43f763b2f6403f4c50ed01c1d1dc6dd084d24f8821566b552";
+      sha512 = "06b05f5d4c97008706eca67eb9b513b35122716a3083bdf3f3fb97cf0a6f1606c97a097a5c979657234562e505203f66bba483879fc2070c97514000326cdc23";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/kk/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/kk/thunderbird-60.2.1.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "507ad5d46263ada1fb9b3d05f2c6d1a00b76f5d25fe9459edafcb2793070b6771ff52b338bc9963c1810a46740ea1e22ed330a5b935bfef72437b572f0214e67";
+      sha512 = "0ea99590b068925f137a63bfad3a0cce2e380f80388a94910836e7f517f0375d43f6f1325c6660eab13a97d1b9685102cef921f99135504abe70650ba7de9697";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/ko/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/ko/thunderbird-60.2.1.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "2550ae6cd5e8ee1fb6fc0b3fd974c1028edf8b292da72b57d6e27fe2e600d6418c6f4ca2c9d5535cbf1f1c67b20713cfef5732beae79ceebe328f44a73023b69";
+      sha512 = "e89d27c4cae745c902f61d9534b6582e2af3806714e596dffac1a0d49416a0ab4eca76d9810853c759312c192679b2aae4a6cdb289c5b5d1f472450757c71ccb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/lt/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/lt/thunderbird-60.2.1.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "29e47bd8306507fd65d27892863b9cd0b58cff4d2035f7c0d3df8cfb98ddc890e922c0e54e0177b255b6bda70116a72fa630494b7ead05683f928c1a3f6bfed3";
+      sha512 = "3f86701c031aa174ffaacb532f198f7911045a855f8526e8a47ed26695e86bd40d1d83140cdab123e40a9759317724296f4ec7d788781b767590f0135b0c79c5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/ms/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/ms/thunderbird-60.2.1.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "fec173bea9f579e605ea3b40510f26d0cd94ae96ca465f2b6b829eb710fd3154ce6b997c3951b12165491b8d57af8371517a23ec73615b3b53e463b6077efe96";
+      sha512 = "d44ddf44d0c0b5190f3b282be2e3f98dbd28a584727970ceb8b3569672634ae476b85c4dda4659d1a58d8ae36adb9db1c5a4d341f9f1f7d861af64287e546316";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/nb-NO/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/nb-NO/thunderbird-60.2.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "1f15c20580104e6bbfcf07d234ac987e2d35eadeff5437369f62b34acb8b47dd646c365c31e2c5601c675a413cc0d2d73fff6f4a663436b426331d373725aee5";
+      sha512 = "d0455dbd94fddabbd474037325c792e3e30fc4aba419d04f0425bdd33db17a1532c955a992b1bf3ffe2c16f440c6ed5c15a5ca6e259c74a5ee1e3f84f457de5e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/nl/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/nl/thunderbird-60.2.1.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "5f1b20753423ed3882625309ad91e3a6c0931984b502e395cd56d5701eaa6612ba547d996c608b5d87f521989900eb4f02a419036b4f1c9312f9d763bf68e89d";
+      sha512 = "b4c24a1b73078a9196178d5ff0f386502afc451f0108321bb45641b30bbbe8225ffd54e00b883515b4849bc76ad8c4dfce525ae5e2aea378ffc31ffa5867dca1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/nn-NO/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/nn-NO/thunderbird-60.2.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "2a7964d792058c973940cb99add2862f61e66e6ce0cf6988c6b0395274b8791a09f81730a403748962b56be8a183c5d8e063cc8b7e93e166a1d508c8f274ad16";
+      sha512 = "56ee8a0911a7a7034f18f246d1a607733842846f31d9715611b1e3df5aeb5b70f4d13e4af6785be53ba75a79e845066ffc7ce2aaa8d7319dc92d6ff04a2a5901";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/pl/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/pl/thunderbird-60.2.1.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "49e372e264e902eac027db402d5e53683efcdf67faa41696113f7e963dabb85e6fbb8f58759460bb3fefc67ad52100a1d204884dcbafc39ab08e46059f72124e";
+      sha512 = "256331ad82a25c162681e4cc79f5f1c1127b09672e8bb663968950fcfbeeeadce26acb9ecbe10322552ec7d11e80612fab8582906380880e90ae6caa84be6cd3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/pt-BR/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/pt-BR/thunderbird-60.2.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "201398c2c58e55b9d311f87d445727a0a3c455167febe23a597ec97fe80ca189aff3557d8ac0e1957443251af184542d071229664f0a78de2faf31dcf337d951";
+      sha512 = "67c7d28061ce5d1f2062092c308be8f88f7a718be637d359c400e56a772e5ff3722bbe3388b5673262dd12373b9728e6e58afbf9a713dabce5d3172532a8257e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/pt-PT/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/pt-PT/thunderbird-60.2.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "88ba0c8dc4665305c85e00a0f50ff4247abf1a5925436d717c082c4934a6df41f9d45c45ac458598167bfae8633e3fa2c12f938e32480b956b2a61527c677af2";
+      sha512 = "ce818347a10f580eaeb7f97d343a73149db571527ab207e3eef9108aca7309222e0ed7bda41d523d6e371abd6518d3cccfdc760d28eab692e23746b30940b556";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/rm/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/rm/thunderbird-60.2.1.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "f121ad8ca5ee662a9b815d547352b21f7cf46bbabcf12f21617f857821e8a2b303a915fb1b3b3676684a0e79b30c9d97ba34a9223794616b4fd79f85f562d264";
+      sha512 = "c2cf9e67ebc7aeeb8642fc2f32d721f4c9656456d9fc7d04df31672b9c6b07352d87f25d58d75267d9a8388dbaca238d605373559dca4bc238b02bc7a27dd837";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/ro/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/ro/thunderbird-60.2.1.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "a0bff4872cb8186eb187fb7b366a5469cb2f8bbc5c42296195a104432b91e99b4729515d4808651f61faa585979966be903453a75524001b619350b66a6f2349";
+      sha512 = "f567baa16a96617e01753136f74744cc72c147ef59e40861292048fafb37745e0f8654d355c5e60752a4b86236b378fc15d09f656998a920ab970c6f7ca6e4cd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/ru/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/ru/thunderbird-60.2.1.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "e5eb22490436cb0c1456af5f7019b2b1b77dbdc4b68fb9d0d693a8502acde51027a90335ea4adb1b030cb4557ffdcefc8caec423110fbdc40f0c30bd269e1e45";
+      sha512 = "e28699b8884f7859323870987fe425af0a8408152a3d373007b634aea1868ab1de483830c07da7efa1fd49c96b5be6c52f5bef91c21c8de0533216be57644fc6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/si/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/si/thunderbird-60.2.1.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "830965b9d551665e84646e865e66aeabe6082308278669fce95e005643ba5807a0fc17ec294043f5ce908676a53b88ac64d9234b56571dbbb22b5a5de66aefac";
+      sha512 = "e8ea29c2b77398611b79cebd674983f9458d07b4866597fa2bc35ce6d78bf81daebe4311e93604e4e5a391e632eaa9f6601eb75d022ef1b2dfc225b9cc61b0c9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/sk/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/sk/thunderbird-60.2.1.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "40fca2d6bc9d2dea9df6ad7c153bcffcd30687c0fcce17b78583501dda379994ad706f28003248ed2cb62b0a3f0d510c203b7d4eca2f071be6f2d670f7f04c76";
+      sha512 = "587f54eb86b0d0069433e14dce5f24e07ebc355f35f22eaba3ee0982e257782fe4ce5799ee0f7c733fa5a571935d2404ff950acf25b9be61dced6250d76611bd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/sl/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/sl/thunderbird-60.2.1.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "0881ee4832639fe79201260f8c0c755bd2d4bdac7ce5a422a37b9798901815b5b7ee1eefda9d3f82c1d49fbd0c6174ffa3aa5cc850aa260af7133d60b0685ad3";
+      sha512 = "196a31e47578bcf064b42c3d3ed1ac3b623a54b5694fab72e1177257d68c13013352228a09ec8dd4fc53d91a0e8036b2b7c815432fdd35c624852cd74f98541c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/sq/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/sq/thunderbird-60.2.1.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "df1d0639030a33ecd4e0e336aff064dc87daf423ce7c8a6a0279f1a92d3cec4406ff0054eec1c911812f0ec6074308c8e66180e1adf919d366a8b6f138a6ef36";
+      sha512 = "5a2b966e7119853fd98e976e555831058aa0c8cfdc463dcc79ca698aa4bb5d9b43b5fa2e6cb60a51cfee987c360c651de509463002aeb9c4e1fbe58b6fa4dd08";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/sr/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/sr/thunderbird-60.2.1.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "ce264e4a8b5bc11396832533c1dfcfe43b601d4b4e8dad3d3b03c285732ab6b5fba50b90e28dfd883468cdab06e4f726d46478aa8b9e2b3a244c515288fef0bc";
+      sha512 = "62666fe7d94f3486d1d5df1cf479bd21a13b9bdc9a4f24fa1f280a838c008d28a2fd6e78ac445ea6ce126fc54b60151e3c4f9b3820e231c8593fa83aab1076fa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/sv-SE/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/sv-SE/thunderbird-60.2.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "da5e8ee2e9fc35a605481f7351b0391d8ca056ce7f152a5e46b3b91b539f5e35b1ecb0067cd8fdd26f249393d45e22e61d318c9687d66b52accb59e8b3283e13";
+      sha512 = "b8f75bfdb3ad9ffa768a5ef4cdfed93004232d9d4f301b0e5b9ce56fd47d34efc779fafcb67c0b848a83ed59c1fa4bb17dbdb583599a99b78186489099159d92";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/tr/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/tr/thunderbird-60.2.1.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "546c6ed7113af0c52aaa69630561637789381a5e97f2edea3415d14a88edc25124a64427c3a1e1a75e8c4019468aed0ebf4d6ff56ecf26ed1c64eee6b69ee777";
+      sha512 = "b72e4c0d1564248927e1f2d8922651e3f7e37e99de77dc548508d4c0c1951e0e59b461cad18cf0dca0145d7465fe7bac93ecb4841c18db2b57822b0014b2f83e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/uk/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/uk/thunderbird-60.2.1.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "ce3386e90c77fae05c79d4e30abb723fba507e4655bee6667edca9de048c8854184af5c8775b10f2b7560dc9e6e95bbe7b8db79a345e590211cb56ad313f288a";
+      sha512 = "7287cb6fce1c1482e0adf00598139b0e9e97371171a14b15ea42652c5890fb1c7de0aa213220444c68c5fe33a43f242f0475b5836deebcfe5fc6b52e21c195e5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/vi/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/vi/thunderbird-60.2.1.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "9bce245422e162e017198782778995ecc1ac1e2760ca91864605e3002042576a9c53519f085f6159e1654a4dff7dddc19f9fd1dda0a9f4cb9b616baeba8845d5";
+      sha512 = "07886cd20ea43fbac59055d5cf34776fd38616477f8c55f4af78031034f8198ef57d716b365ee7a08f267fef0e3b50ba188dd31b1ba1508545b85fd7001f4326";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/zh-CN/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/zh-CN/thunderbird-60.2.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "db756f120fc2ecfa3478cf07935b12414f79f746a96b0e30f75496f2cb8a7d880b9f3017b12122f0cdc0f64d10ae738da9c026aa9c533dbdaa6e0f38e5a71ee7";
+      sha512 = "d34dde5c5f063d8d79a0aa032f54602570426bcce920810d1fc3c8e842827fdbb0b8b9dfa3e4049bf37de4c98356f7e87942bfdd3f7483bb6e3dc7ddd2ebd246";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.0/linux-i686/zh-TW/thunderbird-60.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.2.1/linux-i686/zh-TW/thunderbird-60.2.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "b589e9f472681bc9ddb5909197db2acf8b54e610998d00df4731c6a1403c5b865334aef2e072b3c7ac0694175f0e7cda6864809fc6079f95681b508267d90a59";
+      sha512 = "e8de34531211a60099e677dd619e9e75883f0d5a935df4807b0075dc3d8c57c97dc364eef629896aa46066d290f7138ed67e002fe0cadf7e86b0c77cf99f080f";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index d925838e642c..419cc2fd2d84 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, pkgconfig, gtk2, pango, perl, python, zip, libIDL
-, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
+{ lib, stdenv, fetchurl, pkgconfig, gtk2, pango, perl, python, zip, fetchpatch
+, libIDL, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
 , freetype, fontconfig, file, nspr, nss, libnotify
 , yasm, libGLU_combined, sqlite, unzip
 , hunspell, libevent, libstartup_notification
@@ -24,11 +24,11 @@ let
   gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
 in stdenv.mkDerivation rec {
   name = "thunderbird-${version}";
-  version = "60.0";
+  version = "60.2.1";
 
   src = fetchurl {
     url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-    sha512 = "1933csh6swcx1z35lbxfkxlln36mx2mny28rzxz53r480wcvar8zcj77gwb06hzn6j5cvqls7qd5n6a7x43sp7w9ykkf4kf9gmlccya";
+    sha512 = "018l9pq03nzlirpaf285qpwvb8s4msam8n91d15lzc1bc1caq9zcy2dnrnvn5av3jlapm9ckz028iar66nhqxi2kkqbmiaq0v4s6kfp";
   };
 
   # from firefox, but without sound libraries
@@ -47,6 +47,19 @@ in stdenv.mkDerivation rec {
   # from firefox + m4 + wrapperTool
   nativeBuildInputs = [ m4 autoconf213 which gnused pkgconfig perl python wrapperTool cargo rustc ];
 
+  patches = [
+    # https://bugzilla.mozilla.org/show_bug.cgi?format=default&id=1479540
+    # https://hg.mozilla.org/releases/mozilla-release/rev/bc651d3d910c
+    (fetchpatch {
+      name = "bc651d3d910c.patch";
+      url = "https://hg.mozilla.org/releases/mozilla-release/raw-rev/bc651d3d910c";
+      sha256 = "0iybkadsgsf6a3pq3jh8z1p110vmpkih8i35jfj8micdkhxzi89g";
+    })
+
+    # Remove buildconfig.html to prevent a dependency on clang etc.
+    ../../browsers/firefox/no-buildconfig.patch
+  ];
+
   configureFlags =
     [ # from firefox, but without sound libraries (alsa, libvpx, pulseaudio)
       "--enable-application=comm/mail"
@@ -181,6 +194,8 @@ in stdenv.mkDerivation rec {
       "$out/bin/thunderbird" --version
     '';
 
+  disallowedRequisites = [ stdenv.cc ];
+
   meta = with stdenv.lib; {
     description = "A full-featured e-mail client";
     homepage = http://www.mozilla.org/thunderbird/;
diff --git a/pkgs/applications/networking/sipcmd/default.nix b/pkgs/applications/networking/sipcmd/default.nix
index 4c8a90137bd0..a36c2286956b 100644
--- a/pkgs/applications/networking/sipcmd/default.nix
+++ b/pkgs/applications/networking/sipcmd/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/tmakkonen/sipcmd;
     description = "The command line SIP/H.323/RTP softphone";
     platforms = with stdenv.lib.platforms; linux;
+    license = stdenv.lib.licenses.gpl2;
   };
 }
 
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index b7bad13a30d8..86c8b6db2c47 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -3,14 +3,14 @@
 let
   common = { stname, target, patches ? [], postInstall ? "" }:
     stdenv.mkDerivation rec {
-      version = "0.14.50";
+      version = "0.14.51";
       name = "${stname}-${version}";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "10lilw20mq1zshysb9zrszcpl4slyyxvnbxfqk04nhz0b1gmm9ri";
+        sha256 = "1ycly3vh10s04pk0fk9hb0my7w5b16dfgmnk1mi0zjylcii3yzi5";
       };
 
       inherit patches;
diff --git a/pkgs/applications/networking/tsung/default.nix b/pkgs/applications/networking/tsung/default.nix
new file mode 100644
index 000000000000..0ee6d45e369a
--- /dev/null
+++ b/pkgs/applications/networking/tsung/default.nix
@@ -0,0 +1,50 @@
+{ fetchurl, stdenv, lib, makeWrapper,
+  erlang,
+  python2, python2Packages,
+  perl, perlPackages,
+  gnuplot }:
+
+stdenv.mkDerivation rec {
+  name = "tsung-${version}";
+  version = "1.7.0";
+  src = fetchurl {
+    url = "http://tsung.erlang-projects.org/dist/tsung-${version}.tar.gz";
+    sha256 = "6394445860ef34faedf8c46da95a3cb206bc17301145bc920151107ffa2ce52a";
+  };
+
+  buildInputs = [ makeWrapper ];
+  propagatedBuildInputs = [
+    erlang
+    gnuplot
+    perl
+    perlPackages.TemplateToolkit
+    python2
+    python2Packages.matplotlib
+  ];
+
+
+  postFixup = ''
+    # Make tsung_stats.pl accessible
+    # Leaving .pl at the end since all of tsung documentation is refering to it
+    # as tsung_stats.pl
+    ln -s $out/lib/tsung/bin/tsung_stats.pl $out/bin/tsung_stats.pl
+
+    # Add Template Toolkit and gnuplot to tsung_stats.pl
+    wrapProgram $out/bin/tsung_stats.pl \
+        --prefix PATH : ${lib.makeBinPath [ gnuplot ]} \
+        --set PERL5LIB "${lib.makePerlPath [ perlPackages.TemplateToolkit ]}"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://tsung.erlang-projects.org/";
+    description = "A high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.";
+    longDescription = ''
+      Tsung is a distributed load testing tool. It is protocol-independent and
+      can currently be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL,
+      AMQP, MQTT, LDAP and Jabber/XMPP servers.
+    '';
+    license = licenses.gpl2;
+    maintainers = [ maintainers.uskudnik ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index 63fda1e0e8be..683db389fedf 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -25,11 +25,11 @@ in
 
 stdenv.mkDerivation rec {
   name = "gnucash-${version}";
-  version = "3.2";
+  version = "3.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
-    sha256 = "0li4b6pvlahgh5n9v91yxfgm972a1kky80xw3q1ggl4f2h6b1rb3";
+    sha256 = "0grr5qi5rn1xvr7qx5d7mcxa2mcgycy2b325ry73bb485a6yv5l3";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper cmake gtest ];
diff --git a/pkgs/applications/science/biology/bowtie2/default.nix b/pkgs/applications/science/biology/bowtie2/default.nix
index 675c7d4eb0b4..73f70efc14d1 100644
--- a/pkgs/applications/science/biology/bowtie2/default.nix
+++ b/pkgs/applications/science/biology/bowtie2/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "bowtie2";
-  version = "2.3.4.2";
+  version = "2.3.4.3";
   name = "${pname}-${version}";
 
   src = fetchFromGitHub {
     owner = "BenLangmead";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gsfaf7rjg4nwhs7vc1vf63xd5r5v1yq58w7x3barycplzbvixzz";
+    sha256 = "1zl3cf327y2p7p03cavymbh7b00djc7lncfaqih33n96iy9q8ibp";
   };
 
   buildInputs = [ zlib tbb ];
diff --git a/pkgs/applications/science/logic/elan/default.nix b/pkgs/applications/science/logic/elan/default.nix
index 2b7cb9c30fae..f0b912c57fc5 100644
--- a/pkgs/applications/science/logic/elan/default.nix
+++ b/pkgs/applications/science/logic/elan/default.nix
@@ -2,15 +2,15 @@
 
 rustPlatform.buildRustPackage rec {
   name = "elan-${version}";
-  version = "0.5.0";
+  version = "0.7.1";
 
-  cargoSha256 = "01d3s47fjszxx8s5gr3haxq3kz3hswkrkr8x97wx8l4nfhm8ndd2";
+  cargoSha256 = "0vv7kr7rc3lvas7ngp5dp99ajjd5v8k5937ish7zqz1k4970q2f1";
 
   src = fetchFromGitHub {
     owner = "kha";
     repo = "elan";
     rev = "v${version}";
-    sha256 = "13zcqlyz0nwvd574llndrs7kvkznj6njljkq3v5j7kb3vndkj6i9";
+    sha256 = "0x5s1wm78yx5ci63wrmlkzm6k3281p33gn4dzw25k5s4vx0p9n24";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/science/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix
index a1779baf5f82..91be7dca1173 100644
--- a/pkgs/applications/science/logic/hol_light/default.nix
+++ b/pkgs/applications/science/logic/hol_light/default.nix
@@ -1,32 +1,37 @@
-{ stdenv, fetchFromGitHub, fetchpatch, ocaml, camlp5 }:
+{ stdenv, fetchFromGitHub, ocaml, num, camlp5 }:
 
 let
-  start_script = ''
-    #!/bin/sh
-    cd "$out/lib/hol_light"
-    exec ${ocaml}/bin/ocaml -I \`${camlp5}/bin/camlp5 -where\` -init make.ml
-  '';
+  load_num =
+    if num == null then "" else
+      ''
+        -I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
+        -I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
+        -I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
+      '';
+
+  start_script =
+    ''
+      #!/bin/sh
+      cd $out/lib/hol_light
+      exec ${ocaml}/bin/ocaml \
+        -I \`${camlp5}/bin/camlp5 -where\` \
+        ${load_num} \
+        -init make.ml
+    '';
 in
 
 stdenv.mkDerivation {
-  name     = "hol_light-2017-07-06";
+  name     = "hol_light-2018-09-30";
 
   src = fetchFromGitHub {
     owner  = "jrh13";
     repo   = "hol-light";
-    rev    = "0ad8cbdb4de08a38dac600f352555e8454499faa";
-    sha256 = "0px9hl1b0mkyqv84j0si1zdq4066ffdrhzp27p2iah9l8ynbvpaq";
+    rev    = "27e09dd27834de46e917057710e9d8ded51a4c9f";
+    sha256 = "1p0rm08wnc2lsrh3xzhlq3zdhzqcv1lbqnkwx3aybrqhbg1ixc1d";
   };
 
   buildInputs = [ ocaml camlp5 ];
-
-  patches = [ (fetchpatch {
-      url = https://github.com/girving/hol-light/commit/f80524bad61fd6f6facaa42153b2e29d1eab4658.patch;
-      sha256 = "1563wp597vakhmsgg8940dpirzzfvvxqp75x3dnx20rvmi2n2xw0";
-    })
-  ];
-
-  postPatch = "cp pa_j_3.1x_{6,7}.xx.ml";
+  propagatedBuildInputs = [ num ];
 
   installPhase = ''
     mkdir -p "$out/lib/hol_light" "$out/bin"
diff --git a/pkgs/applications/science/math/calc/default.nix b/pkgs/applications/science/math/calc/default.nix
index 9d95960bde27..ff6b2d0ad2d1 100644
--- a/pkgs/applications/science/math/calc/default.nix
+++ b/pkgs/applications/science/math/calc/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   name = "calc-${version}";
-  version = "2.12.6.6";
+  version = "2.12.6.8";
 
   src = fetchurl {
     urls = [
       "https://github.com/lcn2/calc/releases/download/${version}/${name}.tar.bz2"
       "http://www.isthe.com/chongo/src/calc/${name}.tar.bz2"
     ];
-    sha256 = "03sg1xhin6qsrz82scf96mmzw8lz1yj68rhj4p4npp4s0fawc9d5";
+    sha256 = "144am0pra3hh7635fmi7kqynba8z246dx1dzclm9qx965p3xb4hb";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/science/math/nauty/default.nix b/pkgs/applications/science/math/nauty/default.nix
index d7b4707420be..9639376fbda3 100644
--- a/pkgs/applications/science/math/nauty/default.nix
+++ b/pkgs/applications/science/math/nauty/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl}:
 stdenv.mkDerivation rec {
   name = "nauty-${version}";
-  version = "26r10";
+  version = "26r11";
   src = fetchurl {
     url = "http://pallini.di.uniroma1.it/nauty${version}.tar.gz";
-    sha256 = "16pdklh066z6mx424wkisr88fz9divn2caj7ggs03wy3y848spq6";
+    sha256 = "05z6mk7c31j70md83396cdjmvzzip1hqb88pfszzc6k4gy8h3m2y";
   };
   buildInputs = [];
   installPhase = ''
diff --git a/pkgs/applications/science/misc/root/5.nix b/pkgs/applications/science/misc/root/5.nix
new file mode 100644
index 000000000000..7f43dfb328a8
--- /dev/null
+++ b/pkgs/applications/science/misc/root/5.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, cmake, pcre, pkgconfig, python2
+, libX11, libXpm, libXft, libXext, libGLU_combined, zlib, libxml2, lzma, gsl_1
+, Cocoa, OpenGL, noSplash ? false }:
+
+stdenv.mkDerivation rec {
+  name = "root-${version}";
+  version = "5.34.36";
+
+  src = fetchurl {
+    url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
+    sha256 = "1kbx1jxc0i5xfghpybk8927a0wamxyayij9c74zlqm0595gqx1pw";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake pcre python2 zlib libxml2 lzma gsl_1 ]
+    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU_combined ]
+    ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
+    ;
+
+  patches = [
+    ./sw_vers_root5.patch
+  ];
+
+  preConfigure = ''
+    patchShebangs build/unix/
+    ln -s ${stdenv.lib.getDev stdenv.cc.libc}/include/AvailabilityMacros.h cint/cint/include/
+  '' + stdenv.lib.optionalString noSplash ''
+    substituteInPlace rootx/src/rootx.cxx --replace "gNoLogo = false" "gNoLogo = true"
+  '';
+
+  cmakeFlags = [
+    "-Drpath=ON"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-Dalien=OFF"
+    "-Dbonjour=OFF"
+    "-Dcastor=OFF"
+    "-Dchirp=OFF"
+    "-Ddavix=OFF"
+    "-Ddcache=OFF"
+    "-Dfftw3=OFF"
+    "-Dfitsio=OFF"
+    "-Dfortran=OFF"
+    "-Dgfal=OFF"
+    "-Dgsl_shared=ON"
+    "-Dgviz=OFF"
+    "-Dhdfs=OFF"
+    "-Dkrb5=OFF"
+    "-Dldap=OFF"
+    "-Dmathmore=ON"
+    "-Dmonalisa=OFF"
+    "-Dmysql=OFF"
+    "-Dodbc=OFF"
+    "-Dopengl=ON"
+    "-Doracle=OFF"
+    "-Dpgsql=OFF"
+    "-Dpythia6=OFF"
+    "-Dpythia8=OFF"
+    "-Drfio=OFF"
+    "-Dsqlite=OFF"
+    "-Dssl=OFF"
+    "-Dxml=ON"
+    "-Dxrootd=OFF"
+  ]
+  ++ stdenv.lib.optional stdenv.isDarwin "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks";
+
+  enableParallelBuilding = true;
+
+  setupHook = ./setup-hook.sh;
+
+  meta = with stdenv.lib; {
+    homepage = https://root.cern.ch/;
+    description = "A data analysis framework";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/applications/science/misc/root/sw_vers_root5.patch b/pkgs/applications/science/misc/root/sw_vers_root5.patch
new file mode 100644
index 000000000000..f044bed91f3d
--- /dev/null
+++ b/pkgs/applications/science/misc/root/sw_vers_root5.patch
@@ -0,0 +1,104 @@
+diff --git a/build/unix/compiledata.sh b/build/unix/compiledata.sh
+--- a/build/unix/compiledata.sh
++++ b/build/unix/compiledata.sh
+@@ -49,7 +49,7 @@ fi
+ 
+ if [ "$ARCH" = "macosx" ] || [ "$ARCH" = "macosx64" ] || \
+    [ "$ARCH" = "macosxicc" ]; then
+-   macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
++   macosx_minor=7
+    SOEXT="so"
+    if [ $macosx_minor -ge 5 ]; then
+       if [ "x`echo $SOFLAGS | grep -- '-install_name'`" != "x" ]; then
+diff --git a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
+--- a/cmake/modules/SetUpMacOS.cmake
++++ b/cmake/modules/SetUpMacOS.cmake
+@@ -12,25 +12,11 @@ set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /usr/X11R6)
+ #---------------------------------------------------------------------------------------------------------
+ 
+ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+-  EXECUTE_PROCESS(COMMAND sw_vers "-productVersion"
+-                  COMMAND cut -d . -f 1-2
+-                  OUTPUT_VARIABLE MACOSX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+-  MESSAGE(STATUS "Found a Mac OS X System ${MACOSX_VERSION}")
+-  EXECUTE_PROCESS(COMMAND sw_vers "-productVersion"
+-                  COMMAND cut -d . -f 2
+-                  OUTPUT_VARIABLE MACOSX_MINOR OUTPUT_STRIP_TRAILING_WHITESPACE)
+-
+-  if(MACOSX_VERSION VERSION_GREATER 10.7 AND ${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
+     set(libcxx ON CACHE BOOL "Build using libc++" FORCE)
+-  endif()
+ 
+-  if(${MACOSX_MINOR} GREATER 4)
+     #TODO: check haveconfig and rpath -> set rpath true
+     #TODO: check Thread, define link command
+     #TODO: more stuff check configure script
+-    execute_process(COMMAND /usr/sbin/sysctl machdep.cpu.extfeatures OUTPUT_VARIABLE SYSCTL_OUTPUT)
+-    if(${SYSCTL_OUTPUT} MATCHES 64)
+-       MESSAGE(STATUS "Found a 64bit system")
+        set(ROOT_ARCHITECTURE macosx64)
+        SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
+        SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -m64")
+@@ -38,28 +24,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
+        SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
+        SET(CMAKE_FORTRAN_FLAGS "${CMAKE_FORTRAN_FLAGS} -m64")
+-    else(${SYSCTL_OUTPUT} MATCHES 64)
+-       MESSAGE(STATUS "Found a 32bit system")
+-       SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
+-       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
+-       SET(CMAKE_FORTRAN_FLAGS "${CMAKE_FORTRAN_FLAGS} -m32")
+-    endif(${SYSCTL_OUTPUT} MATCHES 64)
+-  endif()
+-
+-  if(MACOSX_VERSION VERSION_GREATER 10.6)
+-    set(MACOSX_SSL_DEPRECATED ON)
+-  endif()
+-  if(MACOSX_VERSION VERSION_GREATER 10.7)
+-    set(MACOSX_ODBC_DEPRECATED ON)
+-  endif()
+-  if(MACOSX_VERSION VERSION_GREATER 10.8)
+-    set(MACOSX_GLU_DEPRECATED ON)
+-    set(MACOSX_KRB5_DEPRECATED ON)
+-    set(MACOSX_TMPNAM_DEPRECATED ON)
+-  endif()
+-  if(MACOSX_VERSION VERSION_GREATER 10.9)
+-    set(MACOSX_LDAP_DEPRECATED ON)
+-  endif()
+ 
+   if (CMAKE_COMPILER_IS_GNUCXX)
+      message(STATUS "Found GNU compiler collection")
+@@ -132,7 +96,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+   endif()
+ 
+   #---Set Linker flags----------------------------------------------------------------------
+-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}  -mmacosx-version-min=${MACOSX_VERSION} -Wl,-rpath,@loader_path/../lib")
++  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,@loader_path/../lib")
+ 
+ 
+ else (CMAKE_SYSTEM_NAME MATCHES Darwin)
+diff --git a/config/root-config.in b/config/root-config.in
+--- a/config/root-config.in
++++ b/config/root-config.in
+@@ -391,7 +391,7 @@ macosxicc)
+    ;;
+ macosx64)
+    # MacOS X with gcc (GNU cc v4.x) in 64 bit mode
+-   macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
++   macosx_minor=7
+    # cannot find the one linked to libGraf if relocated after built
+    if [ $macosx_minor -le 4 ]; then
+       rootlibs="$rootlibs -lfreetype"
+diff --git a/cint/ROOT/CMakeLists.txt b/cint/ROOT/CMakeLists.txt
+--- a/cint/ROOT/CMakeLists.txt
++++ b/cint/ROOT/CMakeLists.txt
+@@ -232,9 +232,7 @@ foreach(_name ${CINTINCDLLNAMES})
+                        DEPENDS ${HEADER_OUTPUT_PATH}/systypes.h
+                       )
+
+-    if(MACOSX_MINOR GREATER 4)
+       set(_ExtraFlag "-D__DARWIN_UNIX03")
+-    endif()
+
+     add_custom_command(OUTPUT ${OutFileName}
+                        COMMAND cint_tmp -K -w1 -z${_name} -n${OutFileName} -D__MAKECINT__ -DG__MAKECINT ${_ExtraFlag} -c-2 -Z0 ${InFileName} ${AdditionalHeaderFiles} ${CMAKE_BINARY_DIR}/cint/cint/include/sys/types.h ${CMAKE_SOURCE_DIR}/cint/cint/lib/posix/posix.h
\ No newline at end of file
diff --git a/pkgs/applications/science/physics/xfitter/calling_convention.patch b/pkgs/applications/science/physics/xfitter/calling_convention.patch
new file mode 100644
index 000000000000..5b216b6e0928
--- /dev/null
+++ b/pkgs/applications/science/physics/xfitter/calling_convention.patch
@@ -0,0 +1,355 @@
+diff --git a/DY/src/finterface.cc b/DY/src/finterface.cc
+index 0405786..eb171d0 100644
+--- a/DY/src/finterface.cc
++++ b/DY/src/finterface.cc
+@@ -14,17 +14,17 @@
+ using namespace std;
+ 
+ extern "C" {
+-  int dy_create_calc_(const int *ds_id, const int *chg_prod, 
++  void dy_create_calc_(const int *ds_id, const int *chg_prod, 
+       const double *beam_en, const char *boz,
+       const double *ranges, const char *var_name, 
+       const int *n_bins, const double *bin_edges);
+ 
+-  int dy_do_calc_();
++  void dy_do_calc_();
+ 
+-  int dy_get_res_(const int *ds_id, double *calc_res);
++  void dy_get_res_(const int *ds_id, double *calc_res);
+ 
+   int dy_release_();
+-  int dy_set_ewpars_();
++  void dy_set_ewpars_();
+ }
+ 
+ typedef map <int, DYcalc* > DCmap;
+@@ -34,7 +34,7 @@ vector<BinMatrix*> gBinMatrices;
+ 
+ // initializes Drell-Yan LO calculations with info on
+ // beam, process, kinematic cuts, and bins.
+-int dy_create_calc_(const int *ds_id, const int *chg_prod, 
++void dy_create_calc_(const int *ds_id, const int *chg_prod, 
+     const double *beam_en, const char *boz,
+     const double *ranges, const char *var_name, 
+     const int *n_bins, const double *bin_edges)
+@@ -99,13 +99,11 @@ int dy_create_calc_(const int *ds_id, const int *chg_prod,
+   // create calculator and put to map
+   DYcalc * dc = new DYcalc(bm, pc, int_steps);
+   gCalcs.insert( pair<int,DYcalc*>( *ds_id,dc ) );
+-
+-  return 1;
+ }
+ 
+ 
+ // calculate Drell-Yan LO cross sections for all data sets
+-int dy_do_calc_()
++void dy_do_calc_()
+ {
+   // evolve convolutions
+   vector<PDFconv*>::iterator ipc = gPDFconvs.begin();
+@@ -118,24 +116,20 @@ int dy_do_calc_()
+     if ( true != idc->second->Integrate() ) {
+       cout << "Something is wrong with DY integration for " 
+            << idc->first << " data set." << endl;
+-      return 0;
++      return;
+     }
+   }
+-
+-  return 1;
+ }
+ 
+ 
+ // return DY calculations for data set ds_name
+-int dy_get_res_(const int *ds_id, double *calc_res)
++void dy_get_res_(const int *ds_id, double *calc_res)
+ {
+   DYcalc * dc = gCalcs.find(*ds_id)->second;
+   dc->getCalcRes(calc_res);
+-
+-  return 1;
+ }
+ 
+-int dy_set_ewpars_(){
++void dy_set_ewpars_(){
+   PhysPar::setPhysPar();
+ }
+ 
+@@ -155,6 +149,4 @@ int dy_release_()
+   for (; idc != gCalcs.end() ; idc++){
+     delete (idc->second);
+   }
+-
+-  return 1;
+ }
+diff --git a/FastNLO/src/FastNLOInterface.cc b/FastNLO/src/FastNLOInterface.cc
+index 20f8a75..a6dac79 100644
+--- a/FastNLO/src/FastNLOInterface.cc
++++ b/FastNLO/src/FastNLOInterface.cc
+@@ -39,14 +39,14 @@ void gauleg(double x1,double x2,double *x,double *w, int n);
+ 
+ 
+ extern "C" {
+-  int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale);
+-  int fastnlocalc_(const int *idataset, double *xsec);
+-  int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt);
+-  int fastnlopointskip_(const int *idataset, int *point, int *npoints);
+-  int hf_errlog_(const int* ID, const char* TEXT, long length);
+-  int hf_stop_();
++  void fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale);
++  void fastnlocalc_(const int *idataset, double *xsec);
++  void fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt);
++  void fastnlopointskip_(const int *idataset, int *point, int *npoints);
++  void hf_errlog_(const int* ID, const char* TEXT, long length);
++  void hf_stop_();
+   double interp_(double *A, double *xx1, double *x, int *NGrid1, double *res);
+-  int setfastnlotoppar_(const int *idataset);
++  void setfastnlotoppar_(const int *idataset);
+ }
+ 
+ 
+@@ -58,7 +58,7 @@ map<int, FastNLOxFitter*> gFastNLO_array;
+ map<int, BoolArray*>     gUsedPoints_array;
+ int CreateUsedPointsArray(int idataset, int npoints);
+ 
+-int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale) {
++void fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_FIT_ORDER, bool *PublicationUnits , double* murdef, double* murscale, double *mufdef, double* mufscale) {
+ 
+   
+    map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
+@@ -67,7 +67,7 @@ int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_
+      const char* text = "I: Double initialization of the same fastnlo data set!";
+      hf_errlog_(&id, text, (long)strlen(text));
+      //hf_stop_();
+-     return 1;
++     return;
+    }
+    
+    FastNLOxFitter* fnloreader = new FastNLOxFitter( thfile );  
+@@ -112,10 +112,9 @@ int fastnloinit_(const char *s, const int *idataset, const char *thfile, int *I_
+    }
+    
+    gFastNLO_array.insert(pair<int, FastNLOxFitter*>(*idataset, fnloreader) );
+-   return 0;
+ }
+ 
+-int setfastnlotoppar_(const int *idataset) {
++void setfastnlotoppar_(const int *idataset) {
+    //!< Dedicated settings for difftop
+    map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
+    map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
+@@ -130,11 +129,9 @@ int setfastnlotoppar_(const int *idataset) {
+    fnloreader->SetExternalFuncForMuF( &Function_Mu );
+    fnloreader->SetExternalFuncForMuR( &Function_Mu);
+    //fnloreader->SetScaleFactorsMuRMuF(1.0,1.0); //Be reminded that muR and muF scales are hard coded (that's not true!)
+-
+-   return 0;
+ }
+ 
+-int fastnlocalc_(const int *idataset, double *xsec) {
++void fastnlocalc_(const int *idataset, double *xsec) {
+   
+    map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
+    map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
+@@ -176,13 +173,10 @@ int fastnlocalc_(const int *idataset, double *xsec) {
+        outputidx++;
+      }
+    }
+- 
+-
+-   return 0;
+ }
+ 
+ //MK14 New function for Difftop calculation: it is called in trunk/src/difftop_fastnlo.f
+-int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt){
++void fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *tot, int *Npt){
+   
+    map<int, FastNLOxFitter*>::const_iterator FastNLOIterator = gFastNLO_array.find(*idataset);
+    map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
+@@ -262,10 +256,6 @@ int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *to
+      Total += interpC(xsec,xg[k],thbin,Nthpoints)*wg[k];
+ 
+    *tot = Total;
+-
+-
+-
+-   return 0;
+ }
+ 
+ 
+@@ -277,7 +267,7 @@ int fastnlocalctop_(const int *idataset, double *xsec, double *thbin, double *to
+ 
+ 
+ 
+-int fastnlopointskip_(const int *idataset, int *point, int *npoints) {
++void fastnlopointskip_(const int *idataset, int *point, int *npoints) {
+   map<int, BoolArray*>::const_iterator UsedPointsIterator = gUsedPoints_array.find(*idataset);
+   if(UsedPointsIterator == gUsedPoints_array.end( )) 
+     CreateUsedPointsArray(*idataset, *npoints);
+@@ -292,8 +282,6 @@ int fastnlopointskip_(const int *idataset, int *point, int *npoints) {
+   
+   BoolArray*     usedpoints = UsedPointsIterator->second;
+   usedpoints->at(*point-1) = false;
+-
+-  return 0;
+ }
+ 
+ int CreateUsedPointsArray(int idataset, int npoints) {
+diff --git a/Hathor/src/HathorInterface.cc b/Hathor/src/HathorInterface.cc
+index 7da88b1..96576a3 100644
+--- a/Hathor/src/HathorInterface.cc
++++ b/Hathor/src/HathorInterface.cc
+@@ -6,9 +6,9 @@
+ #include "../interface/xFitterPdf.h"
+ 
+ extern "C" {
+-  int hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
++  void hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
+ 		  const unsigned int& pertubOrder, const unsigned int& precisionLevel);
+-  int hathorcalc_(const int *idataset, double *xsec);
++  void hathorcalc_(const int *idataset, double *xsec);
+ }
+ 
+ extern "C" {
+@@ -19,7 +19,7 @@ extern "C" {
+ }
+ 
+ extern "C" {
+-  int hf_errlog_(const int* ID, const char* TEXT, long length);
++  void hf_errlog_(const int* ID, const char* TEXT, long length);
+ }
+ 
+ // FIXME: delete pointers at the end! (in some hathordestroy_ or so)
+@@ -28,7 +28,7 @@ xFitterPdf* pdf;
+ int* rndStore;
+ double mtop;
+ 
+-int hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
++void hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, const double& mt,
+ 		const unsigned int& pertubOrder, const unsigned int& precisionLevel) {
+ 
+   if(hathor_array.size()==0) {
+@@ -69,7 +69,7 @@ int hathorinit_(const int* idataset, const double& sqrtS, const bool& ppbar, con
+   return 0;
+ }
+ 
+-int hathorcalc_(const int *idataset, double *xsec) {
++void hathorcalc_(const int *idataset, double *xsec) {
+   rlxd_reset(rndStore);
+ 
+   std::map<int, Hathor*>::const_iterator hathorIter = hathor_array.find(*idataset);
+diff --git a/src/ftheor_eval.cc b/src/ftheor_eval.cc
+index 1dd4e8b..8bc7991 100644
+--- a/src/ftheor_eval.cc
++++ b/src/ftheor_eval.cc
+@@ -19,15 +19,15 @@
+ using namespace std;
+ 
+ extern "C" {
+-  int set_theor_eval_(int *dsId);//, int *nTerms, char **TermName, char **TermType, 
++  void set_theor_eval_(int *dsId);//, int *nTerms, char **TermName, char **TermType, 
+ //    char **TermSource, char *TermExpr);
+-  int set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags, 
++  void set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags, 
+     double *allBins);
+ //  int set_theor_units_(int *dsId, double *units);
+-  int init_theor_eval_(int *dsId);
+-  int update_theor_ckm_();
+-  int get_theor_eval_(int *dsId, int* np, int* idx);
+-  int close_theor_eval_();
++  void init_theor_eval_(int *dsId);
++  void update_theor_ckm_();
++  void get_theor_eval_(int *dsId, int* np, int* idx);
++  void close_theor_eval_();
+ }
+ 
+ /// global dataset to theory evaluation pointer map
+@@ -59,7 +59,7 @@ extern struct ord_scales {
+  dataset ID.
+  write details on argumets
+  */
+-int set_theor_eval_(int *dsId)//, int *nTerms, char **TermName, char **TermType, 
++void set_theor_eval_(int *dsId)//, int *nTerms, char **TermName, char **TermType, 
+ //  char **TermSource, char *TermExpr)
+ {
+   // convert fortran strings to c++
+@@ -90,15 +90,13 @@ int set_theor_eval_(int *dsId)//, int *nTerms, char **TermName, char **TermType,
+     << " already exists." << endl;
+     exit(1); // make proper exit later
+   }
+-
+-  return 1;
+ }
+ 
+ /*!
+  Sets datasets bins in theory evaluations.
+  write details on argumets
+  */
+-int set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags, 
++void set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags, 
+   double *allBins)
+ {
+   tTEmap::iterator it = gTEmap.find(*dsId);
+@@ -110,7 +108,6 @@ int set_theor_bins_(int *dsId, int *nBinDimension, int *nPoints, int *binFlags,
+   
+   TheorEval *te = gTEmap.at(*dsId);
+   te->setBins(*nBinDimension, *nPoints, binFlags, allBins);
+-  return 1;
+ }
+ 
+ /*
+@@ -132,7 +129,7 @@ int set_theor_units_(int *dsId, double *units)
+ /*!
+  Initializes theory for requested dataset.
+  */
+-int init_theor_eval_(int *dsId)
++void init_theor_eval_(int *dsId)
+ {
+   tTEmap::iterator it = gTEmap.find(*dsId);
+   if (it == gTEmap.end() ) { 
+@@ -148,7 +145,7 @@ int init_theor_eval_(int *dsId)
+ /*!
+  Updates the CKM matrix to all the initialized appl grids
+  */
+-int update_theor_ckm_()
++void update_theor_ckm_()
+ {
+   double a_ckm[] = { ckm_matrix_.Vud, ckm_matrix_.Vus, ckm_matrix_.Vub,
+                                   ckm_matrix_.Vcd, ckm_matrix_.Vcs, ckm_matrix_.Vcb,
+@@ -164,7 +161,7 @@ int update_theor_ckm_()
+ /*!
+  Evaluates theory for requested dataset and writes it to the global THEO array.
+  */
+-int get_theor_eval_(int *dsId, int *np, int*idx)
++void get_theor_eval_(int *dsId, int *np, int*idx)
+ {
+ 
+   tTEmap::iterator it = gTEmap.find(*dsId);
+@@ -194,11 +191,11 @@ int get_theor_eval_(int *dsId, int *np, int*idx)
+   // write the predictions to THEO array
+   if( ip != *np ){
+     cout << "ERROR in get_theor_eval_: number of points mismatch" << endl;
+-    return -1;
++    return;
+   }
+ }
+ 
+-int close_theor_eval_()
++void close_theor_eval_()
+ {
+   tTEmap::iterator it = gTEmap.begin();
+   for (; it!= gTEmap.end(); it++){
+diff --git a/src/lhapdf6_output.c b/src/lhapdf6_output.c
+index 4b20b68..549c521 100644
+--- a/src/lhapdf6_output.c
++++ b/src/lhapdf6_output.c
+@@ -64,7 +64,7 @@ extern double bvalij_(int *,int *,int *,int *,int *);
+ extern double bvalxq_(int *,int *,double *,double *,int *);

+ extern double hf_get_alphas_(double *);

+ extern int getord_(int *);

+-extern int grpars_(int *, double *, double *, int *, double *, double *, int *);

++extern void grpars_(int *, double *, double *, int *, double *, double *, int *);

+ extern int getcbt_(int *, double *, double *, double *);

+ extern void getpdfunctype_heraf_(int *mc, int *asymh, int *symh, char *name, size_t size);

+ extern void hf_errlog_(int *, char *, size_t);

diff --git a/pkgs/applications/science/physics/xfitter/default.nix b/pkgs/applications/science/physics/xfitter/default.nix
new file mode 100644
index 000000000000..a6ec9960045d
--- /dev/null
+++ b/pkgs/applications/science/physics/xfitter/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, apfel, apfelgrid, applgrid, blas, gfortran, lhapdf, liblapackWithoutAtlas, libyaml, lynx, mela, root5, qcdnum, which }:
+
+stdenv.mkDerivation rec {
+  name = "xfitter-${version}";
+  version = "2.0.0";
+
+  src = fetchurl {
+    name = "${name}.tgz";
+    url = "https://www.xfitter.org/xFitter/xFitter/DownloadPage?action=AttachFile&do=get&target=${name}.tgz";
+    sha256 = "0j47s8laq3aqjlgp769yicvgyzqjb738a3rqss51d9fjrihi2515";
+  };
+
+  patches = [
+    ./calling_convention.patch
+  ];
+
+  preConfigure =
+  # Fix F77LD to workaround for a following build error:
+  #
+  #   gfortran: error: unrecognized command line option '-stdlib=libc++'
+  #
+    stdenv.lib.optionalString stdenv.isDarwin ''
+      substituteInPlace src/Makefile.in \
+        --replace "F77LD = \$(F77)" "F77LD = \$(CXXLD)" \
+    '';
+
+  configureFlags = [
+    "--enable-apfel"
+    "--enable-apfelgrid"
+    "--enable-applgrid"
+    "--enable-mela"
+    "--enable-lhapdf"
+  ];
+
+  nativeBuildInputs = [ gfortran which ];
+  buildInputs =
+    [ apfel apfelgrid applgrid blas lhapdf liblapackWithoutAtlas mela root5 qcdnum ]
+    # pdf2yaml requires fmemopen and open_memstream which are not readily available on Darwin
+    ++ stdenv.lib.optional (!stdenv.isDarwin) libyaml
+    ;
+  propagatedBuildInputs = [ lynx ];
+
+  enableParallelBuilding = true;
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    description = "The xFitter project is an open source QCD fit framework ready to extract PDFs and assess the impact of new data";
+    license     = licenses.gpl3;
+    homepage    = https://www.xfitter.org/xFitter;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/applications/version-management/fossil/default.nix b/pkgs/applications/version-management/fossil/default.nix
index b65ada145b9e..cf58731b46c2 100644
--- a/pkgs/applications/version-management/fossil/default.nix
+++ b/pkgs/applications/version-management/fossil/default.nix
@@ -5,7 +5,7 @@
 
 stdenv.mkDerivation rec {
   name = "fossil-${version}";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchurl {
     urls =
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
         "https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
       ];
     name = "${name}.tar.gz";
-    sha256 = "1nbfzxwnq66f8162nmddd22xn3nyazqr16kka2c1gghqb5ar99vn";
+    sha256 = "0g032502lx4l1lvkczh8v7g0i90vbyriw0lmvi3mwjfp668ka91c";
   };
 
   buildInputs = [ zlib openssl readline sqlite which ed ]
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 8bd6457a9e50..b946d0b7daaf 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -20,7 +20,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.19.0";
+  version = "2.19.1";
   svn = subversionClient.override { perlBindings = perlSupport; };
 in
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "1x1y5z3awabmfg7hk6zb331jxngad4nal4507v96bnf0izsyy3qq";
+    sha256 = "1dfv43lmdnxz42504jc89sihbv1d4d6kgqcz3c5ji140kfm5cl1l";
   };
 
   outputs = [ "out" ] ++ stdenv.lib.optional perlSupport "gitweb";
@@ -303,6 +303,8 @@ EOF
     disable_test t0028-working-tree-encoding
   '';
 
+  stripDebugList = [ "lib" "libexec" "bin" "share/git/contrib/credential/libsecret" ];
+
 
   meta = {
     homepage = https://git-scm.com/;
diff --git a/pkgs/applications/version-management/git-and-tools/grv/default.nix b/pkgs/applications/version-management/git-and-tools/grv/default.nix
index 3b4e3a452111..962ddf98d6ce 100644
--- a/pkgs/applications/version-management/git-and-tools/grv/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/grv/default.nix
@@ -21,7 +21,7 @@ buildGo19Package {
   buildFlagsArray = [ "-ldflags=" "-X main.version=${version}" ];
 
   meta = with stdenv.lib; {
-    description = " GRV is a terminal interface for viewing git repositories";
+    description = "GRV is a terminal interface for viewing Git repositories";
     homepage = https://github.com/rgburke/grv;
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index 64e700273d12..4cc1a6f78dfa 100644
--- a/pkgs/applications/version-management/git-and-tools/stgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python2, git }:
+{ stdenv, fetchFromGitHub, python2, git }:
 
 let
   name = "stgit-${version}";
@@ -7,9 +7,11 @@ in
 stdenv.mkDerivation {
   inherit name;
 
-  src = fetchurl {
-    url = "https://github.com/ctmarinas/stgit/archive/v${version}.tar.gz";
-    sha256 = "19fk6vw3pgp2a98wpd4j3kyiyll5dy9bi4921wq1mrky0l53mj00";
+  src = fetchFromGitHub {
+    owner = "ctmarinas";
+    repo = "stgit";
+    rev = "v${version}";
+    sha256 = "0ydgg744m671nkhg7h4q2z3b9vpbc9914rbc0wcgimqfqsxkxx2y";
   };
 
   buildInputs = [ python2 git ];
@@ -24,12 +26,11 @@ stdenv.mkDerivation {
   doCheck = false;
   checkTarget = "test";
 
-  meta = {
-    homepage = http://procode.org/stgit/;
+  meta = with stdenv.lib; {
     description = "A patch manager implemented on top of Git";
-    license = "GPL";
-
-    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
-    platforms = stdenv.lib.platforms.unix;
+    homepage = http://procode.org/stgit/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ the-kenny ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index 3f05bd08f3f4..a37b4b7b05c0 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -11,7 +11,7 @@ in buildPythonApplication rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "109px6phfizi2jqrc7d7k7j6nvmanbfp5lykqfrk2sky77sand0r";
   };
 
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index 9d843a3bfefb..62a517e80ea6 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchpatch, fetchurl, fetchFromGitHub, makeWrapper
+{ stdenv, fetchurl, fetchFromGitHub, makeWrapper
 , docutils, perl, pkgconfig, python3, which, ffmpeg_4
 , freefont_ttf, freetype, libass, libpthreadstubs
 , lua, luasocket, libuchardet, libiconv ? null, darwin
@@ -89,22 +89,15 @@ let
   };
 in stdenv.mkDerivation rec {
   name = "mpv-${version}";
-  version = "0.29.0";
+  version = "0.29.1";
 
   src = fetchFromGitHub {
     owner = "mpv-player";
     repo  = "mpv";
     rev    = "v${version}";
-    sha256 = "0i2nl65diqsjyz28dj07h6d8gq6ix72ysfm0nhs8514hqccaihs3";
+    sha256 = "138921kx8g6qprim558xin09xximjhsj9ss8b71ifg2m6kclym8m";
   };
 
-  # FIXME: Remove this patch for building on macOS if it gets released in
-  # the future.
-  patches = optional stdenv.isDarwin (fetchpatch {
-    url = https://github.com/mpv-player/mpv/commit/dc553c8cf4349b2ab5d2a373ad2fac8bdd229ebb.patch;
-    sha256 = "0pa8vlb8rsxvd1s39c4iv7gbaqlkn3hx21a6xnpij99jdjkw3pg8";
-  });
-
   postPatch = ''
     patchShebangs ./TOOLS/
   '';
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix
index adb5d237f54f..57ee1cf12750 100644
--- a/pkgs/applications/video/pitivi/default.nix
+++ b/pkgs/applications/video/pitivi/default.nix
@@ -26,7 +26,7 @@ in python3Packages.buildPythonApplication rec {
   name = "pitivi-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pitivi/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0z4gvcr0cvyz2by47f36nqf7x2kfv9wn382w9glhs7l0d7b2zl69";
   };
 
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index 03b60a5f3853..a1ff9bde3ed8 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -5,13 +5,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   name = "containerd-${version}";
-  version = "1.1.2";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    sha256 = "1rp015cm5fw9kfarcmfhfkr1sh0iz7kvqls6f8nfhwrrz5armd5v";
+    sha256 = "1d4qnviv20zi3zk17zz8271mlfqqgfrxblw86izwwfvj3cvsyrah";
   };
 
   hardeningDisable = [ "fortify" ];
diff --git a/pkgs/applications/window-managers/i3/lock-color.nix b/pkgs/applications/window-managers/i3/lock-color.nix
index fa1ddcf810b7..8c775833c28a 100644
--- a/pkgs/applications/window-managers/i3/lock-color.nix
+++ b/pkgs/applications/window-managers/i3/lock-color.nix
@@ -1,22 +1,22 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libxcb,
   xcbutilkeysyms , xcbutilimage, pam, libX11, libev, cairo, libxkbcommon,
-  libxkbfile, libjpeg_turbo
+  libxkbfile, libjpeg_turbo, xcbutilxrm
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.11-c";
+  version = "2.12.c";
   name = "i3lock-color-${version}";
 
   src = fetchFromGitHub {
     owner = "PandorasFox";
     repo = "i3lock-color";
     rev = version;
-    sha256 = "1myq9fazkwd776agrnj27bm5nwskvss9v9a5qb77n037dv8d0rdw";
+    sha256 = "08fhnchf187b73h52xgzb86g6byzxz085zs9galsvl687g5zxk34";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
   buildInputs = [ libxcb xcbutilkeysyms xcbutilimage pam libX11
-    libev cairo libxkbcommon libxkbfile libjpeg_turbo ];
+    libev cairo libxkbcommon libxkbfile libjpeg_turbo xcbutilxrm ];
 
   makeFlags = "all";
   preInstall = ''
diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix
index 366657b8827e..0e3168a5782d 100644
--- a/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/pkgs/applications/window-managers/i3/status-rust.nix
@@ -1,21 +1,21 @@
-{ stdenv, rustPlatform, fetchFromGitHub, pkgconfig, dbus, gperftools }:
+{ stdenv, rustPlatform, fetchFromGitHub, pkgconfig, dbus }:
 
 rustPlatform.buildRustPackage rec {
   name = "i3status-rust-${version}";
-  version = "0.9.0.2018-09-30";
+  version = "0.9.0.2018-10-02";
 
   src = fetchFromGitHub {
     owner = "greshake";
     repo = "i3status-rust";
-    rev = "82ea033250c3fc51a112ac68c389da5264840492";
-    sha256 = "06r1nnv3a5vq3s17rgavq639wrq09z0nd2ck50bj1c8i2ggkpvq9";
+    rev = "11c2a21693ffcd0b6c2e0ac919b2232918293963";
+    sha256 = "019m9qpw7djq6g7lzbm7gjcavlgsp93g3cd7cb408nxnfsi7i9dp";
   };
 
-  cargoSha256 = "02in0hz2kgbmrd8i8s21vbm9pgfnn4axcji5f2a14pha6lx5rnvv";
+  cargoSha256 = "1wnify730f7c3cb8wllqvs7pzrq54g5x81xspvz5gq0iqr0q38zc";
 
   nativeBuildInputs = [ pkgconfig ];
 
-  buildInputs = [ dbus gperftools ];
+  buildInputs = [ dbus ];
 
   meta = with stdenv.lib; {
     description = "Very resource-friendly and feature-rich replacement for i3status";
diff --git a/pkgs/applications/window-managers/oroborus/default.nix b/pkgs/applications/window-managers/oroborus/default.nix
index 13eef1c045a4..2681d31ccb1e 100644
--- a/pkgs/applications/window-managers/oroborus/default.nix
+++ b/pkgs/applications/window-managers/oroborus/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
   version = "2.0.20";
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ freetype fribidi libSM libICE libXt libXaw libXmu libXext libXft libXpm libXrandr libXrender xextproto libXinerama ];
+  buildInputs = [ freetype fribidi libSM libICE libXt libXaw libXmu libXext
+                  libXft libXpm libXrandr libXrender xextproto libXinerama ];
 
   src = fetchurl {
     url = "http://ftp.debian.org/debian/pool/main/o/oroborus/oroborus_${version}.tar.gz";
diff --git a/pkgs/applications/window-managers/pekwm/default.nix b/pkgs/applications/window-managers/pekwm/default.nix
index bdf914fbd751..b2677218e856 100644
--- a/pkgs/applications/window-managers/pekwm/default.nix
+++ b/pkgs/applications/window-managers/pekwm/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
         appear as they should when starting applications.
       - Chainable Keygrabber, usability for everyone.
     '';
-      homepage = https://www.pekwm.org;
+      homepage = http://www.pekwm.org;
       license = licenses.gpl2;
       maintainers = [ maintainers.AndersonTorres ];
       platforms = platforms.linux;
diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix
index 07d37451ddf9..28247bac1021 100644
--- a/pkgs/build-support/build-bazel-package/default.nix
+++ b/pkgs/build-support/build-bazel-package/default.nix
@@ -25,7 +25,13 @@ in stdenv.mkDerivation (fBuildAttrs // {
     buildPhase = fFetchAttrs.buildPhase or ''
       runHook preBuild
 
-      bazel --output_base="$bazelOut" --output_user_root="$bazelUserRoot" fetch $bazelFlags $bazelTarget
+      # Bazel computes the default value of output_user_root before parsing the
+      # flag. The computation of the default value involves getting the $USER
+      # from the environment. I don't have that variable when building with
+      # sandbox enabled. Code here
+      # https://github.com/bazelbuild/bazel/blob/9323c57607d37f9c949b60e293b573584906da46/src/main/cpp/startup_options.cc#L123-L124
+      #
+      USER=homeless-shelter bazel --output_base="$bazelOut" --output_user_root="$bazelUserRoot" fetch $bazelFlags $bazelTarget
 
       runHook postBuild
     '';
@@ -33,10 +39,19 @@ in stdenv.mkDerivation (fBuildAttrs // {
     installPhase = fFetchAttrs.installPhase or ''
       runHook preInstall
 
+      # Remove all built in external workspaces, Bazel will recreate them when building
+      rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker}
+      rm -rf $bazelOut/external/{embedded_jdk,\@embedded_jdk.marker}
+      rm -rf $bazelOut/external/{local_*,\@local_*}
+
       # Patching markers to make them deterministic
-      for i in $bazelOut/external/\@*.marker; do
-        sed -i 's, -\?[0-9][0-9]*$, 1,' "$i"
-      done
+      sed -i 's, -\?[0-9][0-9]*$, 1,' $bazelOut/external/\@*.marker
+
+      # Remove all vcs files
+      rm -rf $(find $bazelOut/external -type d -name .git)
+      rm -rf $(find $bazelOut/external -type d -name .svn)
+      rm -rf $(find $bazelOut/external -type d -name .hg)
+
       # Patching symlinks to remove build directory reference
       find $bazelOut/external -type l | while read symlink; do
         ln -sf $(readlink "$symlink" | sed "s,$NIX_BUILD_TOP,NIX_BUILD_TOP,") "$symlink"
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index d2acc2679afa..7543433640a3 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -12,15 +12,40 @@ in
 
 rec {
 
-  # Run the shell command `buildCommand' to produce a store path named
-  # `name'.  The attributes in `env' are added to the environment
-  # prior to running the command.
+  /* Run the shell command `buildCommand' to produce a store path named
+  * `name'.  The attributes in `env' are added to the environment
+  * prior to running the command. By default `runCommand' runs using
+  * stdenv with no compiler environment. `runCommandCC` 
+  *
+  * Examples:
+  * runCommand "name" {envVariable = true;} ''echo hello''
+  * runCommandNoCC "name" {envVariable = true;} ''echo hello'' # equivalent to prior
+  * runCommandCC "name" {} ''gcc -o myfile myfile.c; cp myfile $out''; 
+  */
   runCommand = runCommandNoCC;
   runCommandNoCC = runCommand' stdenvNoCC;
   runCommandCC = runCommand' stdenv;
 
 
-  # Create a single file.
+  /* Writes a text file to the nix store.
+   * The contents of text is added to the file in the store.
+   *
+   * Examples:
+   * # Writes my-file to /nix/store/<store path>
+   * writeTextFile "my-file"
+   *   ''
+   *   Contents of File
+   *   '';
+   *
+   * # Writes executable my-file to /nix/store/<store path>/bin/my-file
+   * writeTextFile "my-file"
+   *   ''
+   *   Contents of File
+   *   ''
+   *   true
+   *   "/bin/my-file";
+   *   true
+   */
   writeTextFile =
     { name # the name of the derivation
     , text
@@ -51,13 +76,69 @@ rec {
       '';
 
 
-  # Shorthands for `writeTextFile'.
+  /*
+   * Writes a text file to nix store with no optional parameters available.
+   *
+   * Example:
+   * # Writes contents of file to /nix/store/<store path>
+   * writeText "my-file"
+   *   ''
+   *   Contents of File
+   *   '';
+   *
+  */
   writeText = name: text: writeTextFile {inherit name text;};
+  /*
+   * Writes a text file to nix store in a specific directory with no
+   * optional parameters available. Name passed is the destination.
+   *
+   * Example:
+   * # Writes contents of file to /nix/store/<store path>/<name>
+   * writeTextDir "share/my-file"
+   *   ''
+   *   Contents of File
+   *   '';
+   *
+  */
   writeTextDir = name: text: writeTextFile {inherit name text; destination = "/${name}";};
+  /*
+   * Writes a text file to /nix/store/<store path> and marks the file as executable.
+   *
+   * Example:
+   * # Writes my-file to /nix/store/<store path>/bin/my-file and makes executable
+   * writeScript "my-file"
+   *   ''
+   *   Contents of File
+   *   '';
+   *
+  */
   writeScript = name: text: writeTextFile {inherit name text; executable = true;};
+  /*
+   * Writes a text file to /nix/store/<store path>/bin/<name> and
+   * marks the file as executable.
+   *
+   * Example:
+   * # Writes my-file to /nix/store/<store path>/bin/my-file and makes executable.
+   * writeScript "my-file"
+   *   ''
+   *   Contents of File
+   *   '';
+   *
+  */
   writeScriptBin = name: text: writeTextFile {inherit name text; executable = true; destination = "/bin/${name}";};
 
-  # Create a Shell script, check its syntax
+  /*
+   * Writes a Shell script and check its syntax. Automatically includes interpreter
+   * above the contents passed.
+   *
+   * Example:
+   * # Writes my-file to /nix/store/<store path>/bin/my-file and makes executable.
+   * writeScript "my-file"
+   *   ''
+   *   Contents of File
+   *   '';
+   *
+  */
   writeShellScriptBin = name : text :
     writeTextFile {
       inherit name;
@@ -90,7 +171,18 @@ rec {
     $CC -x c code.c -o "$n"
     '';
 
-  # Create a forest of symlinks to the files in `paths'.
+  /*
+  * Create a forest of symlinks to the files in `paths'.
+  *
+  * Examples:
+  * # adds symlinks of hello to current build.
+  * { symlinkJoin, hello }:
+  * symlinkJoin { name = "myhello"; paths = [ hello ]; }
+  *
+  * # adds symlinks of hello to current build and prints "links added"
+  * { symlinkJoin, hello }:
+  * symlinkJoin { name = "myhello"; paths = [ hello ]; postBuild = "echo links added"; }
+  */
   symlinkJoin =
     args_@{ name
          , paths
@@ -112,7 +204,23 @@ rec {
       '';
 
 
-  # Make a package that just contains a setup hook with the given contents.
+  /*
+   * Make a package that just contains a setup hook with the given contents.
+   * This setup hook will be invoked by any package that includes this package
+   * as a buildInput. Optionally takes a list of substitutions that should be
+   * applied to the resulting script.
+   *
+   * Examples:
+   * # setup hook that depends on the hello package and runs ./myscript.sh
+   * myhellohook = makeSetupHook { deps = [ hello ]; } ./myscript.sh;
+   *
+   * # wrotes a setup hook where @bash@ myscript.sh is substituted for the
+   * # bash interpreter. 
+   * myhellohookSub = makeSetupHook {
+   *                 deps = [ hello ];
+   *                 substitutions = { bash = "${pkgs.bash}/bin/bash"; };
+   *               } ./myscript.sh;
+   */
   makeSetupHook = { name ? "hook", deps ? [], substitutions ? {} }: script:
     runCommand name substitutions
       (''
@@ -126,6 +234,7 @@ rec {
 
 
   # Write the references (i.e. the runtime dependencies in the Nix store) of `path' to a file.
+
   writeReferencesToFile = path: runCommand "runtime-deps"
     {
       exportReferencesGraph = ["graph" path];
@@ -141,8 +250,17 @@ rec {
     '';
 
 
-  # Quickly create a set of symlinks to derivations.
-  # entries is a list of attribute sets like { name = "name" ; path = "/nix/store/..."; }
+  /*
+   * Quickly create a set of symlinks to derivations.
+   * entries is a list of attribute sets like
+   * { name = "name" ; path = "/nix/store/..."; }
+   *
+   * Example:
+   *
+   * # Symlinks hello path in store to current $out/hello
+   * linkFarm "hello" entries = [ { name = "hello"; path = pkgs.hello; } ];
+   *
+   */
   linkFarm = name: entries: runCommand name { preferLocalBuild = true; }
     ("mkdir -p $out; cd $out; \n" +
       (lib.concatMapStrings (x: ''
@@ -151,9 +269,20 @@ rec {
       '') entries));
 
 
-  # Print an error message if the file with the specified name and
-  # hash doesn't exist in the Nix store. Do not use this function; it
-  # produces packages that cannot be built automatically.
+  /* Print an error message if the file with the specified name and
+   * hash doesn't exist in the Nix store. This function should only
+   * be used by non-redistributable software with an unfree license
+   * that we need to require the user to download manually. It produces
+   * packages that cannot be built automatically.
+   *
+   * Examples:
+   * 
+   * requireFile {
+   *   name = "my-file";
+   *   url = "http://example.com/download/";
+   *   sha256 = "ffffffffffffffffffffffffffffffffffffffffffffffffffff";
+   * }
+   */
   requireFile = { name ? null
                 , sha256 ? null
                 , sha1 ? null
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 03b3fb1f9f27..7880d98e6b6a 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -990,7 +990,7 @@ rec {
       name = "debian-9.4-stretch-i386";
       fullName = "Debian 9.4 Stretch (i386)";
       packagesList = fetchurl {
-        url = https://web.archive.org/web/20180912163509/http://ftp.debian.org/debian/dists/stretch/main/binary-i386/Packages.xz;
+        url = http://snapshot.debian.org/archive/debian/20180912T154744Z/dists/stretch/main/binary-i386/Packages.xz;
         sha256 = "0flvn8zn7vk04p10ndf3aq0mdr8k2ic01g51aq4lsllkv8lmwzyh";
       };
       urlPrefix = mirror://debian;
@@ -1001,7 +1001,7 @@ rec {
       name = "debian-9.4-stretch-amd64";
       fullName = "Debian 9.4 Stretch (amd64)";
       packagesList = fetchurl {
-        url = https://web.archive.org/web/20180912163152/http://ftp.debian.org/debian/dists/stretch/main/binary-amd64/Packages.xz;
+        url = http://snapshot.debian.org/archive/debian/20180912T154744Z/dists/stretch/main/binary-amd64/Packages.xz;
         sha256 = "11vnn9bba2jabixvabfbw9zparl326c88xn99di7pbr5xsnl15jm";
       };
       urlPrefix = mirror://debian;
diff --git a/pkgs/data/documentation/zeal/default.nix b/pkgs/data/documentation/zeal/default.nix
index e9225900cb7b..63fe26f069c7 100644
--- a/pkgs/data/documentation/zeal/default.nix
+++ b/pkgs/data/documentation/zeal/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "zeal-${version}";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner  = "zealdocs";
     repo   = "zeal";
     rev    = "v${version}";
-    sha256 = "0zsrb89jz04b8in1d69p7mg001yayyljc47vdlvm48cjbhvxwj0k";
+    sha256 = "05qcjpibakv4ibhxgl5ajbkby3w7bkxsv3nfv2a0kppi1z0f8n8v";
   };
 
   # while ads can be disabled from the user settings, by default they are not so
diff --git a/pkgs/data/fonts/cantarell-fonts/default.nix b/pkgs/data/fonts/cantarell-fonts/default.nix
index 9d002ef02ade..7a0b8559b593 100644
--- a/pkgs/data/fonts/cantarell-fonts/default.nix
+++ b/pkgs/data/fonts/cantarell-fonts/default.nix
@@ -7,7 +7,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1286rx1z7mrmi6snx957fprpcmd5p00l6drdfpbgf6mqapl6kb81";
   };
 
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index e9be004c2b77..9bf5b40a78de 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchzip }:
 
 let
-  version = "2.0.0";
+  version = "2.0.1";
 in fetchzip rec {
   name = "iosevka-bin-${version}";
 
@@ -12,7 +12,7 @@ in fetchzip rec {
     unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
   '';
 
-  sha256 = "17ldxs8rn4y5mzpc6h5rms4khk9fp4d1ixz5bh0pglh1kdansz45";
+  sha256 = "1i21ja348k22rlf8z9jp90cidpmcnwqsw12vdrmm556sdwdkrkpc";
 
   meta = with stdenv.lib; {
     homepage = https://be5invis.github.io/Iosevka/;
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index 3126269a6e7a..079fccadfcb1 100644
--- a/pkgs/data/misc/hackage/default.nix
+++ b/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
 { fetchurl }:
 
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/3715ae81be1a8e0c6a1cb5902c054b6cedfb7f41.tar.gz";
-  sha256 = "05bsk99d4k2nq8dfiagpby0cllx19crzn2rh29v26p0irzagrqfb";
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/70f02ad82349a18e1eff41eea4949be532486f7b.tar.gz";
+  sha256 = "1ajqybsl8hfzbhziww57zp9a8kgypj96ngxrargk916v3xpf3x15";
 }
diff --git a/pkgs/data/misc/wireless-regdb/default.nix b/pkgs/data/misc/wireless-regdb/default.nix
index b386b18e69e2..f0ad2c43a9c8 100644
--- a/pkgs/data/misc/wireless-regdb/default.nix
+++ b/pkgs/data/misc/wireless-regdb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "wireless-regdb-${version}";
-  version = "2018.05.31";
+  version = "2018.09.07";
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/network/wireless-regdb/${name}.tar.xz";
-    sha256 = "0yxydxkmcb6iryrbazdk8lqqibig102kq323gw3p64vpjwxvrpz1";
+    sha256 = "0nnn10pk94qnrdy55pwcr7506bxdsywa88a3shgqxsd3y53q2sx3";
   };
 
   dontBuild = true;
diff --git a/pkgs/desktops/gnome-3/apps/accerciser/default.nix b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
index 513948d3b51f..feb865743e6c 100644
--- a/pkgs/desktops/gnome-3/apps/accerciser/default.nix
+++ b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.22.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/accerciser/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/accerciser/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "883306274442c7ecc076b24afca5190c835c40871ded1b9790da69347e9ca3c5";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/bijiben/default.nix b/pkgs/desktops/gnome-3/apps/bijiben/default.nix
index 38c729a1c429..46c76a8ce17c 100644
--- a/pkgs/desktops/gnome-3/apps/bijiben/default.nix
+++ b/pkgs/desktops/gnome-3/apps/bijiben/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "bijiben-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/bijiben/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/bijiben/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0lg92fl6dmrybkxs3gqhyr8rq945y64k51l6s72yiads7pqabli2";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix
index 9da265e75d67..ab985b1473e3 100644
--- a/pkgs/desktops/gnome-3/apps/cheese/default.nix
+++ b/pkgs/desktops/gnome-3/apps/cheese/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/cheese/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/cheese/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "06da5qc5hdvwwd5vkbgbx8pjx1l3mvr07yrnnv3v1hfc3wp7l7jw";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix
index fab175526b1c..8fb8c2307841 100644
--- a/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/pkgs/desktops/gnome-3/apps/evolution/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "evolution-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/evolution/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/evolution/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1q1nfga39f44knrcvcxk8ivhl6fvg92g71cq3hcp4a7krb3jwa5v";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
index bd97393b7b69..1066cea177aa 100644
--- a/pkgs/desktops/gnome-3/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/file-roller/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/file-roller/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "09y2blmlsccfxc2npcayhicq00r9n03897s1aizkahn1m970hjsp";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gedit/default.nix b/pkgs/desktops/gnome-3/apps/gedit/default.nix
index 919ebdd77d17..64ef45f3098f 100644
--- a/pkgs/desktops/gnome-3/apps/gedit/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gedit/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gedit/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gedit/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0791r07d3ixmmfk68lvhp3d5i4vnlrnx10csxwgpfqyfb04vwx7i";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/ghex/default.nix b/pkgs/desktops/gnome-3/apps/ghex/default.nix
index 1f8077ff4af8..d9f1e7850afd 100644
--- a/pkgs/desktops/gnome-3/apps/ghex/default.nix
+++ b/pkgs/desktops/gnome-3/apps/ghex/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.18.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/ghex/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/ghex/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "c67450f86f9c09c20768f1af36c11a66faf460ea00fbba628a9089a6804808d3";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/glade/default.nix b/pkgs/desktops/gnome-3/apps/glade/default.nix
index a1777137c019..c4be9d7259c6 100644
--- a/pkgs/desktops/gnome-3/apps/glade/default.nix
+++ b/pkgs/desktops/gnome-3/apps/glade/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.22.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/glade/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/glade/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index b6679ccc2695..9a9c01fbb1a6 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
@@ -14,7 +14,7 @@ in stdenv.mkDerivation rec {
   name = "gnome-boxes-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-boxes/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-boxes/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1z1qimspx1nw7l79rardxcx2bydj9nmk60vsdb611xzlqa3hkppm";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index 05275fa01ac5..d876569d4df9 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0x6wxngf8fkwgbl6x7rzp0srrb43rm55klpb2vfjk2hahpbjvxyw";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
index 8b497fbf433d..20154359c086 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-characters/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-characters/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "04nmn23iw65wsczx1l6fa4jfdsv65klb511p39zj1pgwyisgj5l0";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
index 78366755ad6a..9943bc778edf 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-clocks/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-clocks/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1dd739vchb592mck1dia2hkywn4213cpramyqzgmlmwv8z80p3nl";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
index e600284550b7..a62965b890af 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-documents/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-documents/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0aannnq39gjg6jnjm4kr8fqigg5npjvd8dyxw7k4hy4ny0ffxwjq";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
index c8a8f8e7e322..de54b6f92e11 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-getting-started-docs/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-getting-started-docs/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0vg0b4nr7azj6p5cpd7h7ya5hw6q89gnzig8hvp6swwrwg2p5nif";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
index 18f7f9f6fd4e..421ef8930c52 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.5";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-logs/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-logs/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0zw6nx1hckv46hn978g57anp4zq4alvz9dpwibgx02wb6gq1r23a";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
index cade274e69a8..65270b7124d3 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1yzi08a9316jplgsl2z0qzlqxhghyqcjhv0m6i94wcain4mxk1z7";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
index eef91ec0fbb8..6602987db374 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -11,7 +11,7 @@ python3.pkgs.buildPythonApplication rec {
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${pname}-${version}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "09lvpiqhijiq0kddnfi9rmmw806qh9a03czfhssqczd9fxmmbx5v";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix b/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix
index 2163e6e875e7..2da382e57223 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1n280j7crgwlzyf09j66f1zkrnnhfrr8pshn824njs1xyk3g0q11";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix b/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix
index a7861dcf74d9..58c67e6441f1 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix
@@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "20aee0b0b4015e7cc6fbabc3cbc4344c07c230fe3d195e90c8ae0dc5d55a2d4e";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix b/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
index 60953d99ac27..1f6e86d49436 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
@@ -7,7 +7,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0y0srj1hvr1waa35p6dj1r1mlgcsscc0i99jni50ijp4zb36fjqy";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix b/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
index 3a9f33f46f00..37b48a744822 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix b/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
index ad759bf5506a..93c8d4147641 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.26.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-weather/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-weather/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "965cc0d1b4d4e53c06d494db96f0b124d232af5c0e731ca900edd10f77a74c78";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/polari/default.nix b/pkgs/desktops/gnome-3/apps/polari/default.nix
index dcdf43b15165..3bb4b7887446 100644
--- a/pkgs/desktops/gnome-3/apps/polari/default.nix
+++ b/pkgs/desktops/gnome-3/apps/polari/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1066j1lbrkpcxhvrg3gcv7gv8dzqv5ny9qi9dnm8r1dsx2hil9yc";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index 1bcf77839007..179b60e98c13 100644
--- a/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "e2b07461ed54a8333e5628e9b8e517ec2b731068377bf376570aad998274c6df";
   };
 
diff --git a/pkgs/desktops/gnome-3/apps/vinagre/default.nix b/pkgs/desktops/gnome-3/apps/vinagre/default.nix
index a8fe76ee03f9..00037f526b64 100644
--- a/pkgs/desktops/gnome-3/apps/vinagre/default.nix
+++ b/pkgs/desktops/gnome-3/apps/vinagre/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.22.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/vinagre/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/vinagre/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "cd1cdbacca25c8d1debf847455155ee798c3e67a20903df8b228d4ece5505e82";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
index 049b586f16db..ce596ec628ec 100644
--- a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
+++ b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/adwaita-icon-theme/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/adwaita-icon-theme/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0l114ildlb3lz3xymfxxi0wpr2x21rd3cg8slb8jyxynzwfqrbks";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix
index 693e284e2700..8d21e9c323b5 100644
--- a/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/core/baobab/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0qsx7vx5c3n4yxlxbr11sppw7qwcv9z3g45b5xb9y7wxw5lv42sk";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/caribou/default.nix b/pkgs/desktops/gnome-3/core/caribou/default.nix
index acfd6dfb3745..fe2b50f296a4 100644
--- a/pkgs/desktops/gnome-3/core/caribou/default.nix
+++ b/pkgs/desktops/gnome-3/core/caribou/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 13d73fa34d2f..8eacbb037dd1 100644
--- a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
@@ -8,7 +8,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0nhcpwqrkmpxbhaf0cafvy6dlp6s7vhm5vknl4lgs3l24zc56ns5";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/dconf/default.nix b/pkgs/desktops/gnome-3/core/dconf/default.nix
index 71779c172807..219aa4e7475f 100644
--- a/pkgs/desktops/gnome-3/core/dconf/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   version = "0.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0hn7v6769xabqz7kvyb2hfm19h46z1whkair7ff752zmbs3b7lv1";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/empathy/default.nix b/pkgs/desktops/gnome-3/core/empathy/default.nix
index 089c32d602ea..f4aeb6c53db2 100644
--- a/pkgs/desktops/gnome-3/core/empathy/default.nix
+++ b/pkgs/desktops/gnome-3/core/empathy/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   version = "3.25.90";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/empathy/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/empathy/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0sn10fcymc6lyrabk7vx8lpvlaxxkqnmcwj9zdkfa8qf3388k4nc";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index 8459ba2c126b..bf5465b16c2e 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1lj8v9m8jdxc3d4nzmgrxcccddg3hh8lkbmz4g71yxa0ykxxvbip";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index 01232b0f9977..3c9b4de9ea8b 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   version = "3.28.3.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/epiphany/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/epiphany/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1xz6xl6b0iihvczyr0cs1z5ifvpai6anb4m0ng1caiph06klc1b9";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index 74f10cc384d7..077ffe65ec47 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/evince/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/evince/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1qbk1x2c7iacmmfwjzh136v2sdacrkqn9d6bnqid7xn9hlnx4m89";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index c355c9bbce69..6ed27750dccd 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/evolution-data-server/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1247gv0ggwnd1i2n7iglb3crfapx6s9nrl896bzy9k87fb94hlyr";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/folks/default.nix b/pkgs/desktops/gnome-3/core/folks/default.nix
index 981b8504487b..ec059873dcbf 100644
--- a/pkgs/desktops/gnome-3/core/folks/default.nix
+++ b/pkgs/desktops/gnome-3/core/folks/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "folks-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/folks/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/folks/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
index a324fda0a7e1..ea2883a5716a 100644
--- a/pkgs/desktops/gnome-3/core/gcr/default.nix
+++ b/pkgs/desktops/gnome-3/core/gcr/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gcr/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gcr/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "02xgky22xgvhgd525khqh64l5i21ca839fj9jzaqdi3yvb8pbq8m";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix
index 6c810eb46342..388fa89acaab 100644
--- a/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/core/gdm/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.28.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gdm/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gdm/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "12d1cp2dyca8rwh9y9cg8xn6grdp8nmxkkqwg4xpkr8i8ml65n88";
   };
 
@@ -37,13 +37,27 @@ stdenv.mkDerivation rec {
 
   # Disable Access Control because our X does not support FamilyServerInterpreted yet
   patches = [
+    # Change hardcoded paths to nix store paths.
     (substituteAll {
       src = ./fix-paths.patch;
       inherit coreutils plymouth xwayland;
     })
+
+    # The following patches implement certain environment variables in GDM which are set by
+    # the gdm configuration module (nixos/modules/services/x11/display-managers/gdm.nix).
+
+    # Look for session definition files in the directory specified by GDM_SESSIONS_DIR.
     ./sessions_dir.patch
+
+    # Allow specifying X server arguments with GDM_X_SERVER_EXTRA_ARGS.
     ./gdm-x-session_extra_args.patch
-    ./gdm-session-worker_xserver-path.patch
+
+    # Allow specifying a wrapper for running the session command.
+    ./gdm-x-session_session-wrapper.patch
+
+    # Forwards certain environment variables to the gdm-x-session child process
+    # to ensure that the above two patches actually work.
+    ./gdm-session-worker_forward-vars.patch
   ];
 
   installFlags = [
diff --git a/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch
new file mode 100644
index 000000000000..401b6aea0c28
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch
@@ -0,0 +1,31 @@
+diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
+index 9ef4c5b..94da834 100644
+--- a/daemon/gdm-session-worker.c
++++ b/daemon/gdm-session-worker.c
+@@ -1515,6 +1515,16 @@ gdm_session_worker_load_env_d (GdmSessionWorker *worker)
+         g_object_unref (dir);
+ }
+ 
++static void
++gdm_session_worker_forward_var (GdmSessionWorker *worker, char const *var)
++{
++        char const *value = g_getenv(var);
++        if (value != NULL) {
++                g_debug ("forwarding %s= %s", var, value);
++                gdm_session_worker_set_environment_variable(worker, var, value);
++        }
++}
++
+ static gboolean
+ gdm_session_worker_accredit_user (GdmSessionWorker  *worker,
+                                   GError           **error)
+@@ -1559,6 +1569,9 @@ gdm_session_worker_accredit_user (GdmSessionWorker  *worker,
+                 goto out;
+         }
+ 
++        gdm_session_worker_forward_var(worker, "GDM_X_SERVER_EXTRA_ARGS");
++        gdm_session_worker_forward_var(worker, "GDM_X_SESSION_WRAPPER");
++
+         gdm_session_worker_update_environment_from_passwd_info (worker,
+                                                                 uid,
+                                                                 gid,
diff --git a/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_xserver-path.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_xserver-path.patch
deleted file mode 100644
index d020752fef3a..000000000000
--- a/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_xserver-path.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/daemon/gdm-session-worker.c.orig b/daemon/gdm-session-worker.c
-index 7bbda49..592691d 100644
---- a/daemon/gdm-session-worker.c.orig
-+++ b/daemon/gdm-session-worker.c
-@@ -1557,6 +1557,12 @@ gdm_session_worker_accredit_user (GdmSessionWorker  *worker,
-                 goto out;
-         }
- 
-+        if (g_getenv ("GDM_X_SERVER_EXTRA_ARGS") != NULL) {
-+                g_debug ("forwarding GDM_X_SERVER_EXTRA_ARGS= %s", g_getenv("GDM_X_SERVER_EXTRA_ARGS"));
-+                gdm_session_worker_set_environment_variable (worker, "GDM_X_SERVER_EXTRA_ARGS",
-+                                                             g_getenv("GDM_X_SERVER_EXTRA_ARGS"));
-+        }
-+
-         gdm_session_worker_update_environment_from_passwd_info (worker,
-                                                                 uid,
-                                                                 gid,
diff --git a/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch
new file mode 100644
index 000000000000..58481f0730fa
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch
@@ -0,0 +1,40 @@
+diff --git a/daemon/gdm-x-session.c b/daemon/gdm-x-session.c
+index 88fe96f..b1b140a 100644
+--- a/daemon/gdm-x-session.c
++++ b/daemon/gdm-x-session.c
+@@ -664,18 +664,34 @@ spawn_session (State        *state,
+                                                           state->session_command,
+                                                           NULL);
+         } else {
++                char const *session_wrapper;
++                char *eff_session_command;
+                 int ret;
+                 char **argv;
+ 
+-                ret = g_shell_parse_argv (state->session_command,
++                session_wrapper = g_getenv("GDM_X_SESSION_WRAPPER");
++                if (session_wrapper != NULL) {
++                        char *quoted_wrapper = g_shell_quote(session_wrapper);
++                        eff_session_command = g_strjoin(" ", quoted_wrapper, state->session_command, NULL);
++                        g_free(quoted_wrapper);
++                } else {
++                        eff_session_command = state->session_command;
++                }
++
++                ret = g_shell_parse_argv (eff_session_command,
+                                           NULL,
+                                           &argv,
+                                           &error);
+ 
++                if (session_wrapper != NULL) {
++                        g_free(eff_session_command);
++                }
++
+                 if (!ret) {
+                         g_debug ("could not parse session arguments: %s", error->message);
+                         goto out;
+                 }
++
+                 subprocess = g_subprocess_launcher_spawnv (launcher,
+                                                            (const char * const *) argv,
+                                                            &error);
diff --git a/pkgs/desktops/gnome-3/core/geocode-glib/default.nix b/pkgs/desktops/gnome-3/core/geocode-glib/default.nix
index f48e9b3b1218..3924f0033465 100644
--- a/pkgs/desktops/gnome-3/core/geocode-glib/default.nix
+++ b/pkgs/desktops/gnome-3/core/geocode-glib/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "installedTests" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/geocode-glib/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/geocode-glib/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1vmydxs5xizcmaxpkfrq75xpj6pqrpdjizxyb30m00h54yqqch7a";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gjs/default.nix b/pkgs/desktops/gnome-3/core/gjs/default.nix
index 1bf640f713f7..5854265d3527 100644
--- a/pkgs/desktops/gnome-3/core/gjs/default.nix
+++ b/pkgs/desktops/gnome-3/core/gjs/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "1.52.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gjs/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1z4n15wdz6pbqd2hfzrqc8mmprhv50v4jk43p08v0xv07yldh8ff";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
index c52fe5c60492..c1f8c08eebfe 100644
--- a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-backgrounds/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-backgrounds/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1qgim0yhzjgcq172y4vp5hqz4rh1ak38a7pgi6s7dq0wklyrcnxj";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
index e7acbe8706ec..946e7adff793 100644
--- a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
@@ -12,7 +12,7 @@ in stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "devdoc" "man" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0ch7lll5n8v7m26y6y485gnrik19ml42rsh1drgcxydm6fn62j8z";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
index 2f4743ee2633..a5a3bd03e9f9 100644
--- a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-calculator/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-calculator/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0izsrqc9fm2lh25jr3nzi94p5hh2d3cklxqczbq16by85wr1xm5s";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix b/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
index 9fcbbe814dce..7fe1c2211e2e 100644
--- a/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
@@ -7,7 +7,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1mixga6mq67wgxdsg6rnl7lvyh3z3yabxjmnyjq2k2v8ljgklczc";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-common/default.nix b/pkgs/desktops/gnome-3/core/gnome-common/default.nix
index 23fd157a528a..d0ab339a504d 100644
--- a/pkgs/desktops/gnome-3/core/gnome-common/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-common/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.18.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-common/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-common/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index a9541d64b03c..effb3d521ef6 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "gnome-contacts-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-contacts/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-contacts/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1ilgmvgprn1slzmrzbs0zwgbzxp04rn5ycqd9c8zfvyh6zzwwr8w";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
index 6a57e4cdff48..638c5fe9941a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -14,7 +14,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0d6pjdbsra16nav8201kaadja5yma92bhziki9601ilk2ry3v7pz";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index d6402a3b5b6c..597f45261a68 100644
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-desktop/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-desktop/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0c439hhpfd9axmv4af6fzhibksh69pnn2nnbghbbqqbwy6zqfl30";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
index ee1feb6ddaeb..1019a809d7f8 100644
--- a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.26.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-dictionary/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-dictionary/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "16b8bc248dcf68987826d5e39234b1bb7fd24a2607fcdbf4258fde88f012f300";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
index a572e617766e..587bd38f16b6 100644
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.28.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-disk-utility/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-disk-utility/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "11ajz4cbsdns81kihd6242b6pwxbw8bkr9qqkf4qnb4kp363a38m";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
index 6af2f7f4b03f..06a5b258c80f 100644
--- a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.30.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-font-viewer/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-font-viewer/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index cce192c9f29d..9d9c874319cb 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-keyring/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-keyring/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
index 4bd2dcbe13e8..023e7b2ce72f 100644
--- a/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "035lmm21imr7ddpzffqabv53g3ggjscmqvlzy3j1qkv00zrlxg47";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
index 1df5465382a9..86e5fba36507 100644
--- a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.26.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-online-miners/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-online-miners/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "7f404db5eccb87524a5dfcef5b6f38b11047b371081559afbe48c34dbca2a98e";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
index c92280ed5663..21c28f0e9534 100644
--- a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1bbc11595d3822f4b92319cdf9ba49dd00f5471b6046c590847dc424a874c8bb";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
index 1882f19bb223..57bcd826038d 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
@@ -7,15 +7,14 @@ stdenv.mkDerivation rec {
   version = "3.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-session/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-session/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "14nmbirgrp2nm16khbz109saqdlinlbrlhjnbjydpnrlimfgg4xq";
   };
 
   patches = [
     (substituteAll {
       src = ./fix-paths.patch;
-      # FIXME: glib binaries shouldn't be in .dev!
-      gsettings = "${glib.dev}/bin/gsettings";
+      gsettings = "${glib.bin}/bin/gsettings";
       dbusLaunch = "${dbus.lib}/bin/dbus-launch";
     })
   ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
index bfaf430d5932..ce025899c806 100644
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-settings-daemon/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0z9dip9p0iav646cmxisii5sbkdr9hmaklc5fzvschpbjkhphksr";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
index a963ea148bad..9609cd537964 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-shell-extensions/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-shell-extensions/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0n4h8rdnq3knrvlg6inrl62a73h20dbhfgniwy18572jicrh5ip9";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 8e09c960e75e..2b2572ac632a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -16,7 +16,7 @@ in stdenv.mkDerivation rec {
   version = "3.28.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-shell/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0xm2a8inj2zkrpgkhy69rbqh44q62gpwm4javzbvvvgx0srza90w";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index 6172f2165439..248acfd17896 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-software/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1s19p50nrkvxg4sb7bkn9ccajgaj251y9iz20bkn31ysq19ih03w";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
index c402a2edd8fb..7bee6f3a8809 100644
--- a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-system-monitor/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-system-monitor/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "164in885dyfvna5yjzgdyrbrsskvh5wzxdmkjgb4mbh54lzqd1zb";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index a0318514c9b9..13442af337a3 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-terminal/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-terminal/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0ybjansg6lr279191w8z8r45gy4rxwzw1ajm98cgkv0fk2jdr0x2";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix b/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix
index 0503d3baa6c1..d42797300e61 100644
--- a/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix
@@ -8,7 +8,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
index 1938c90a8254..d17be1e7182a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.28.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-user-docs/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-user-docs/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0gg1rgg15lbgjdwpwlqazfjv8sm524ys024qsd4n09jlgx21jscd";
   };
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gnome3.yelp itstool libxml2 intltool ];
 
   meta = with stdenv.lib; {
-    homepage = "https://help.gnome.org/users/gnome-help/${gnome3.version}";
+    homepage = https://help.gnome.org/users/gnome-help/;
     description = "User and system administration help for the GNOME desktop";
     maintainers = gnome3.maintainers;
     license = licenses.cc-by-30;
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
index 5ae579417aec..6a5d2fde5018 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-user-share/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-user-share/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "04wjnrcdlmyszj582nsda32sgi44nwgrw2ksy11xp17nb09d7m09";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
index de547ea172d0..f03259c35409 100644
--- a/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
+++ b/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
@@ -5,7 +5,7 @@
 let
   pname = "grilo-plugins";
   version = "0.3.7";
-  major = gnome3.versionBranch version;
+  major = stdenv.lib.versions.majorMinor version;
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
diff --git a/pkgs/desktops/gnome-3/core/grilo/default.nix b/pkgs/desktops/gnome-3/core/grilo/default.nix
index 5554cddd043b..de50cc69ed03 100644
--- a/pkgs/desktops/gnome-3/core/grilo/default.nix
+++ b/pkgs/desktops/gnome-3/core/grilo/default.nix
@@ -12,7 +12,7 @@ in stdenv.mkDerivation rec {
   outputBin = "dev";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "14cwpk9jxi8rfjcmkav37zf0m52b1lqpkpkz858h80jqvn1clr8y";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
index 5dc6137c9fca..657a40d1805e 100644
--- a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
+++ b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gsettings-desktop-schemas/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gsettings-desktop-schemas/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0rwidacwrxlc54x90h9g3wx2zlisc4vm49vmxi15azmpj1vwvd2c";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gsound/default.nix b/pkgs/desktops/gnome-3/core/gsound/default.nix
index 4978223c9b2b..4468ce78f404 100644
--- a/pkgs/desktops/gnome-3/core/gsound/default.nix
+++ b/pkgs/desktops/gnome-3/core/gsound/default.nix
@@ -7,7 +7,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "bba8ff30eea815037e53bee727bbd5f0b6a2e74d452a7711b819a7c444e78e53";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix b/pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix
index 0a37144d8f74..15e9ac41d6c6 100644
--- a/pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix
+++ b/pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.21.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtksourceviewmm/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gtksourceviewmm/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1danc9mp5mnb65j01qxkwj92z8jf1gns41wbgp17qh7050f0pc6v";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/libcroco/default.nix b/pkgs/desktops/gnome-3/core/libcroco/default.nix
index f5ecf088a87c..312231f648f3 100644
--- a/pkgs/desktops/gnome-3/core/libcroco/default.nix
+++ b/pkgs/desktops/gnome-3/core/libcroco/default.nix
@@ -6,7 +6,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0q7qhi7z64i26zabg9dbs5706fa8pmzp1qhpa052id4zdiabbi6x";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/libgdata/default.nix b/pkgs/desktops/gnome-3/core/libgdata/default.nix
index f430986cc474..be32528ef6c0 100644
--- a/pkgs/desktops/gnome-3/core/libgdata/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgdata/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/libgee/default.nix b/pkgs/desktops/gnome-3/core/libgee/default.nix
index a65d0f401f0e..ea0860a3c4e4 100644
--- a/pkgs/desktops/gnome-3/core/libgee/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgee/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0c26x8gi3ivmhlbqcmiag4jwrkvcy28ld24j55nqr3jikb904a5v";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/libgepub/default.nix b/pkgs/desktops/gnome-3/core/libgepub/default.nix
index f43b1de46e50..ad7d2a8ebd43 100644
--- a/pkgs/desktops/gnome-3/core/libgepub/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgepub/default.nix
@@ -8,7 +8,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "16dkyywqdnfngmwsgbyga0kl9vcnzczxi3lmhm27pifrq5f3k2n7";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
index 8f77944577ee..867e08de00ec 100644
--- a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix b/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
index 6301f6f4ab65..a9b27fa65a47 100644
--- a/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.26.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgnomekbd/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/libgnomekbd/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "ea3b418c57c30615f7ee5b6f718def7c9d09ce34637324361150744258968875";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/libgweather/default.nix b/pkgs/desktops/gnome-3/core/libgweather/default.nix
index 23405af50d3b..b0d3679b1b71 100644
--- a/pkgs/desktops/gnome-3/core/libgweather/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgweather/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0xfy5ghwvnz2g9074dy6512m4z2pv66pmja14vhi9imgacbfh708";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/libgxps/default.nix b/pkgs/desktops/gnome-3/core/libgxps/default.nix
index 65f8090e4ead..c9312c228829 100644
--- a/pkgs/desktops/gnome-3/core/libgxps/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgxps/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "412b1343bd31fee41f7204c47514d34c563ae34dafa4cc710897366bd6cd0fae";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/libpeas/default.nix b/pkgs/desktops/gnome-3/core/libpeas/default.nix
index d4ca0e509ddd..03c79a27d818 100644
--- a/pkgs/desktops/gnome-3/core/libpeas/default.nix
+++ b/pkgs/desktops/gnome-3/core/libpeas/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "1.22.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libpeas/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/libpeas/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/libzapojit/default.nix b/pkgs/desktops/gnome-3/core/libzapojit/default.nix
index 10c6185fa821..42a7832a2419 100644
--- a/pkgs/desktops/gnome-3/core/libzapojit/default.nix
+++ b/pkgs/desktops/gnome-3/core/libzapojit/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index b05644366dc0..a08e0fd3cd1a 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.28.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/mutter/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0vq3rmq20d6b1mi6sf67wkzqys6hw5j7n7fd4hndcp19d5i26149";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index 33beb8a87d37..498f6d35b176 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "19dhpa2ylrg8d5274lahy7xqr2p9z3jnq1h4qmsh95czkpy7is4w";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/rest/default.nix b/pkgs/desktops/gnome-3/core/rest/default.nix
index aeef5114435d..b00e4c623d2a 100644
--- a/pkgs/desktops/gnome-3/core/rest/default.nix
+++ b/pkgs/desktops/gnome-3/core/rest/default.nix
@@ -7,7 +7,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0513aad38e5d3cedd4ae3c551634e3be1b9baaa79775e53b2dba9456f15b01c9";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index 8596a059ca5d..3d7e78fa18df 100644
--- a/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/simple-scan/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/simple-scan/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "140vz94vml0vf6kiw3sg436qfvajk21x6q86smvycgf24qfyvk6a";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/sushi/default.nix b/pkgs/desktops/gnome-3/core/sushi/default.nix
index 100a2727fc3c..1881293a2134 100644
--- a/pkgs/desktops/gnome-3/core/sushi/default.nix
+++ b/pkgs/desktops/gnome-3/core/sushi/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.28.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/sushi/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/sushi/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1yydd34q7r05z0jdgym3r4f8jv8snrcvvhxw0vxn6damlvj5lbiw";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix b/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
index 279e7f2e95af..cb10213631ce 100644
--- a/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
+++ b/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.26.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/totem-pl-parser/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/totem-pl-parser/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0k5pnka907invgds48d73c1xx1a366v5dcld3gr2l1dgmjwc9qka";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/totem/default.nix b/pkgs/desktops/gnome-3/core/totem/default.nix
index 50e060c13c3a..2082dc0ac059 100644
--- a/pkgs/desktops/gnome-3/core/totem/default.nix
+++ b/pkgs/desktops/gnome-3/core/totem/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   version = "3.26.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/totem/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/totem/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1llyisls3pzf5bwkpxyfyxc2d3gpa09n5pjy7qsjdqrp3ya4k36g";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
index ad5b40d3c088..1f28c9f0fd05 100644
--- a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
+++ b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   version = "2.1.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "10j6iifq0ccnqckdx7fqlrfifbvs08jbczgxajldz26057kwp8fz";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/tracker/default.nix b/pkgs/desktops/gnome-3/core/tracker/default.nix
index 38e0d7cfa502..c53324dd9b3b 100644
--- a/pkgs/desktops/gnome-3/core/tracker/default.nix
+++ b/pkgs/desktops/gnome-3/core/tracker/default.nix
@@ -12,7 +12,7 @@ in stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0xf58zld6pnfa8k7k70rv8ya8g7zqgahz6q4sapwxs6k97d2fgsx";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/vino/default.nix b/pkgs/desktops/gnome-3/core/vino/default.nix
index 65c6ace8eec0..6ec2b0a17edb 100644
--- a/pkgs/desktops/gnome-3/core/vino/default.nix
+++ b/pkgs/desktops/gnome-3/core/vino/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   version = "3.22.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/vino/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/vino/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "2911c779b6a2c46e5bc8e5a0c94c2a4d5bd4a1ee7e35f2818702cb13d9d23bab";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix
index 47a2c2f19d3b..3fff1dab39c8 100644
--- a/pkgs/desktops/gnome-3/core/vte/default.nix
+++ b/pkgs/desktops/gnome-3/core/vte/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "0.52.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/vte/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/vte/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1br6kg0wzf1wmww1hadihhcpqbamalqmbppfdzjvzk1ayp75f9hg";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/yelp-tools/default.nix b/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
index 5a0a5bd43b5b..6f487eacf972 100644
--- a/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/yelp-tools/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/yelp-tools/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
index 6abaff8e32be..e5ed1f31d703 100644
--- a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/yelp-xsl/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/yelp-xsl/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "14rznm1qpsnmkwksnkd5j7zplakl01kvrcw0fdmd5gdc65xz9kcc";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/yelp/default.nix b/pkgs/desktops/gnome-3/core/yelp/default.nix
index 9a47ecd2842a..0a7918d01bf5 100644
--- a/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "3.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/yelp/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/yelp/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "033w5qnhm495pnvscnb3k2dagzgq4fsnzcrh0k2rgr10mw2mv2p8";
   };
 
diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix
index 7f9996d17d99..2eb515d971b8 100644
--- a/pkgs/desktops/gnome-3/core/zenity/default.nix
+++ b/pkgs/desktops/gnome-3/core/zenity/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/zenity/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/zenity/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0swavrkc5ps3fwzy6h6l5mmim0wwy10xrq0qqkay5d0zf9a965yv";
   };
 
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 5112f8b496f5..7e4fb77b2b34 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -1,13 +1,8 @@
 { config, pkgs, lib }:
 
 lib.makeScope pkgs.newScope (self: with self; {
-  # Convert a version to branch (3.26.18 → 3.26)
-  # Used for finding packages on GNOME mirrors
-  versionBranch = version: builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version));
-
   updateScript = callPackage ./update.nix { };
 
-  version = "3.26";
   maintainers = with pkgs.lib.maintainers; [ lethalman jtojnar ];
 
   corePackages = with gnome3; [
diff --git a/pkgs/desktops/gnome-3/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
index 0e50953b3dea..7dee751314f5 100644
--- a/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/anjuta/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/anjuta/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0ya7ajai9rx9g597sr5wawr6l5pb2s34bbjdsbnx0lkrhnjv11xh";
   };
 
diff --git a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
index aa0f545c2dbd..b20a85b9e717 100644
--- a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.30.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/devhelp/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/devhelp/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1rzilsn0v8dj86djankllc5f10d58f6rwg4w1fffh5zly10nlli5";
   };
 
diff --git a/pkgs/desktops/gnome-3/devtools/gdl/default.nix b/pkgs/desktops/gnome-3/devtools/gdl/default.nix
index 75f9bc48db65..5098ff3bd8bb 100644
--- a/pkgs/desktops/gnome-3/devtools/gdl/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/gdl/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gdl/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gdl/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1dipnzqpxl0yfwzl2lqdf6vb3174gb9f1d5jndkq8505q7n9ik2j";
   };
 
diff --git a/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix b/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix
index 57070f7ce38a..c23ff2e65159 100644
--- a/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-devel-docs/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-devel-docs/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1py0zyfzpaws41p9iw4645ykfnmm408axfghsmq6gnwgp66vl074";
   };
 
diff --git a/pkgs/desktops/gnome-3/devtools/nemiver/default.nix b/pkgs/desktops/gnome-3/devtools/nemiver/default.nix
index e626d293f83a..d48565716c40 100644
--- a/pkgs/desktops/gnome-3/devtools/nemiver/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/nemiver/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "0.9.6";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/nemiver/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/nemiver/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "85ab8cf6c4f83262f441cb0952a6147d075c3c53d0687389a3555e946b694ef2";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/aisleriot/default.nix b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
index a54c336326ab..7627a45b4d2b 100644
--- a/pkgs/desktops/gnome-3/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.22.5";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/aisleriot/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/aisleriot/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0rl39psr5xi584310pyrgw36ini4wn7yr2m1q5118w3a3v1dkhzh";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/five-or-more/default.nix b/pkgs/desktops/gnome-3/games/five-or-more/default.nix
index 4115fda9f8df..e5dfd279bc75 100644
--- a/pkgs/desktops/gnome-3/games/five-or-more/default.nix
+++ b/pkgs/desktops/gnome-3/games/five-or-more/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/five-or-more/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/five-or-more/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1fy4a7qdjqvabm0cl45d6xlx6hy4paxvm0b2paifff73bl250d5c";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
index bf21f7346809..110e2e5c4393 100644
--- a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
+++ b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/four-in-a-row/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/four-in-a-row/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1iszaay2r92swb0q67lmip6r1w3hw2dwmlgnz9v2h6blgdyncs4k";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
index 01e23384b8ea..f7412e022616 100644
--- a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-chess/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-chess/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1q8gc0mq8k2b7pjy363g0yjd80czqknw6ssqzbvgqx5b8nkfvmv1";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
index fc75cd081f9a..0b4d6d770b0d 100644
--- a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
@@ -8,7 +8,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0prc0s28pdflgzyvk1g0yfx982q2grivmz3858nwpqmbkha81r7f";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix b/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
index b9a4638a947c..29763abba559 100644
--- a/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.22.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-mahjongg/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-mahjongg/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "f5972a14fa4ad04153bd6e68475b85cd79c6b44f6cac1fe1edb64dbad4135218";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
index 297e1a9ed7bf..ab978238cf55 100644
--- a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-mines/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-mines/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "16w55hqaxipcv870n9gpn6qiywbqbyg7bjshaa02r75ias8dfxvf";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
index c871fbbf9160..e36ca2a639d1 100644
--- a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.24.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-nibbles/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-nibbles/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "19g44cnrb191v50bdvy2qkrfhvyfsahd0kx9hz95x9gkjfn2nn35";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-robots/default.nix b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
index 9a81c88206df..19a6b60fb5bd 100644
--- a/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "3.22.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-robots/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-robots/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0dzcjd7rdmlzgr6rmljhrbccwif8wj0cr1xcrrj7malj33098wwk";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
index 1d467e542da9..23783c46e2b0 100644
--- a/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-sudoku/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-sudoku/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "07b4lzniaf3gjsss6zl1lslv18smwc4nrijykvn2z90f423q2xav";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
index 855e496dfaf4..85036c70d194 100644
--- a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-taquin/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-taquin/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "096a32nhcz243na56iq2wxixd4f3lbj33a5h718r3j6yppqazjx9";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
index f456b7ee6831..fe81b429e999 100644
--- a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.22.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-tetravex/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-tetravex/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0a6d7ff5ffcd6c05454a919d46a2e389d6b5f87bc80e82c52c2f20d9d914e18d";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/hitori/default.nix b/pkgs/desktops/gnome-3/games/hitori/default.nix
index db01eb86f173..8d4be7f1c6b0 100644
--- a/pkgs/desktops/gnome-3/games/hitori/default.nix
+++ b/pkgs/desktops/gnome-3/games/hitori/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.22.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/hitori/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/hitori/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "dcac6909b6007857ee425ac8c65fed179f2c71da138d5e5300cd62c8b9ea15d3";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/iagno/default.nix b/pkgs/desktops/gnome-3/games/iagno/default.nix
index 55dac4659d0f..4506614b498f 100644
--- a/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/pkgs/desktops/gnome-3/games/iagno/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/iagno/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/iagno/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "12haq1vgrr6wf970rja55rcg0352sm0i3l5z7gj0ipr2isv8506x";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/lightsoff/default.nix b/pkgs/desktops/gnome-3/games/lightsoff/default.nix
index 73b7c092a66d..dcffe7cea7f4 100644
--- a/pkgs/desktops/gnome-3/games/lightsoff/default.nix
+++ b/pkgs/desktops/gnome-3/games/lightsoff/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/lightsoff/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/lightsoff/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0rwh9kz6aphglp79cyrfjab6vy02vclq68f646zjgb9xgg6ar73g";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
index 7ae226b3f8e5..c57ab1a9e14d 100644
--- a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
+++ b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec {
   version = "3.22.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/quadrapassel/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/quadrapassel/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0ed44ef73c8811cbdfc3b44c8fd80eb6e2998d102d59ac324e4748f5d9dddb55";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/swell-foop/default.nix b/pkgs/desktops/gnome-3/games/swell-foop/default.nix
index b7dc6203b8a9..fec448ff47c2 100644
--- a/pkgs/desktops/gnome-3/games/swell-foop/default.nix
+++ b/pkgs/desktops/gnome-3/games/swell-foop/default.nix
@@ -8,7 +8,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1yjmg6sgi7mvp10fsqlkqshajmh8kgdmg6vyj5r8y48pv2ihfk64";
   };
 
diff --git a/pkgs/desktops/gnome-3/games/tali/default.nix b/pkgs/desktops/gnome-3/games/tali/default.nix
index f8d799b69141..e6cdd3c88b72 100644
--- a/pkgs/desktops/gnome-3/games/tali/default.nix
+++ b/pkgs/desktops/gnome-3/games/tali/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.22.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/tali/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/tali/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "5ba17794d6fb06b794daaffa62a6aaa372b7de8886ce5ec596c37e62bb71728b";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/gexiv2/default.nix b/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
index 045dc2ffc331..94f5f4ef7999 100644
--- a/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0088m7p044n741ly1m6i7w25z513h9wpgyw0rmx5f0sy3vyjiic1";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix b/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
index f8d296122235..7e2709fc1c18 100644
--- a/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/gitg/default.nix b/pkgs/desktops/gnome-3/misc/gitg/default.nix
index d2dce9d6f1b8..c50db12f6b0f 100644
--- a/pkgs/desktops/gnome-3/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gitg/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "26730d437d6a30d6e341b9e8da99d2134dce4b96022c195609f45062f82b54d5";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
index b1251f5111a4..056aaaa28fcb 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "0.2.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-autoar/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-autoar/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix b/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
index 7bc0ee371752..da50b657007a 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "3.28.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-packagekit/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-packagekit/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "051q3hc78qa85mfh4jxxprfcrfj1hva6smfqsgzm0kx4zkkj1c1r";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix b/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix
index 0ff21a6b0dd8..c2c4c8e94a7d 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1p5xydr0haz4389h6dvvbna6i1mipdzvmlfksnv0jqfvfs9sy6fp";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix b/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix
index 38b33ff66671..b65e9c1021e7 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix
@@ -6,7 +6,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix b/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix
index 1b912109cfd5..67f2552b4348 100644
--- a/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "4.10.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtkhtml/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gtkhtml/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "ca3b6424fb2c7ac5d9cb8fdafb69318fa2e825c9cf6ed17d1e38d9b29e5606c3";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/libgda/default.nix b/pkgs/desktops/gnome-3/misc/libgda/default.nix
index 069c769efaa2..002310c52762 100644
--- a/pkgs/desktops/gnome-3/misc/libgda/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libgda/default.nix
@@ -12,7 +12,7 @@ assert postgresSupport -> postgresql != null;
   version = "5.2.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgda/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/libgda/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "2cee38dd583ccbaa5bdf6c01ca5f88cc08758b9b144938a51a478eb2684b765e";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
index 13d34c1c2580..f5f6b799b4b5 100644
--- a/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   version = "0.26.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgit2-glib/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/libgit2-glib/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0nhyqas110q7ingw97bvyjdb7v4dzch517dq8sn8c33s8910wqcp";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix b/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix
index 9a55864dfcc2..7054e41d7295 100644
--- a/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix
@@ -8,7 +8,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "02hirpk885jndwarbl3cl5fk7w2z5ziv677csyv1wi2n6rmpn088";
   };
 
diff --git a/pkgs/desktops/gnome-3/misc/libmediaart/default.nix b/pkgs/desktops/gnome-3/misc/libmediaart/default.nix
index 74a4cdca722e..d8a564ac17ea 100644
--- a/pkgs/desktops/gnome-3/misc/libmediaart/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libmediaart/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "a57be017257e4815389afe4f58fdacb6a50e74fd185452b23a652ee56b04813d";
   };
 
diff --git a/pkgs/development/compilers/carp/default.nix b/pkgs/development/compilers/carp/default.nix
new file mode 100644
index 000000000000..65f0481a8010
--- /dev/null
+++ b/pkgs/development/compilers/carp/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, makeWrapper, clang, haskellPackages }:
+
+haskellPackages.mkDerivation rec {
+
+  pname = "carp";
+  version = "unstable-2018-09-15";
+
+  src = fetchFromGitHub {
+    owner = "carp-lang";
+    repo = "Carp";
+    rev = "cf9286c35cab1c170aa819f7b30b5871b9e812e6";
+    sha256 = "1k6kdxbbaclhi40b9p3fgbkc1x6pc4v0029xjm6gny6pcdci2cli";
+  };
+
+  buildDepends = [ makeWrapper ];
+
+  executableHaskellDepends = with haskellPackages; [
+    HUnit blaze-markup blaze-html split cmdargs
+  ];
+
+  isExecutable = true;
+
+  # The carp executable must know where to find its core libraries and other
+  # files. Set the environment variable CARP_DIR so that it points to the root
+  # of the Carp repo. See:
+  # https://github.com/carp-lang/Carp/blob/master/docs/Install.md#setting-the-carp_dir
+  #
+  # Also, clang must be available run-time because carp is compiled to C which
+  # is then compiled with clang.
+  postInstall = ''
+    wrapProgram $out/bin/carp                                  \
+      --set CARP_DIR $src                                      \
+      --prefix PATH : ${clang}/bin
+    wrapProgram $out/bin/carp-header-parse                     \
+      --set CARP_DIR $src                                      \
+      --prefix PATH : ${clang}/bin
+  '';
+
+  description = "A statically typed lisp, without a GC, for real-time applications";
+  homepage    = https://github.com/carp-lang/Carp;
+  license     = stdenv.lib.licenses.asl20;
+  maintainers = with stdenv.lib.maintainers; [ jluttine ];
+
+  # Windows not (yet) supported.
+  platforms   = with stdenv.lib.platforms; unix ++ darwin;
+
+}
diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix
index 692404a19bf6..e9678ddc4ca1 100644
--- a/pkgs/development/compilers/elm/default.nix
+++ b/pkgs/development/compilers/elm/default.nix
@@ -107,26 +107,10 @@ let
 
 
             /*
-            This is not a core Elm package, and it's hosted on GitHub.
-            To update, run:
-
-                cabal2nix --jailbreak --revision refs/tags/foo http://github.com/avh4/elm-format > packages/elm-format.nix
-
-            where foo is a tag for a new version, for example "0.8.0".
+            The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo:
+            `pacakge/nix/build.sh`
             */
-            elm-format = overrideCabal (self.callPackage ./packages/elm-format.nix {  }) (drv: {
-              # https://github.com/avh4/elm-format/issues/529
-              patchPhase = ''
-                cat >Setup.hs <<EOF
-                import Distribution.Simple
-                main = defaultMain
-                EOF
-
-                sed -i '/Build_elm_format/d' elm-format.cabal
-                sed -i 's/Build_elm_format.gitDescribe/""/' src/ElmFormat/Version.hs
-                sed -i '/Build_elm_format/d' src/ElmFormat/Version.hs
-              '';
-            });
+            elm-format = self.callPackage ./packages/elm-format.nix {};
           };
       in elmPkgs // {
         inherit elmPkgs;
@@ -134,6 +118,7 @@ let
 
         # Needed for elm-format
         indents = self.callPackage ./packages/indents.nix {};
+        tasty-quickcheck = self.callPackage ./packages/tasty-quickcheck.nix {};
       };
   };
 in hsPkgs.elmPkgs
diff --git a/pkgs/development/compilers/elm/packages/elm-format.nix b/pkgs/development/compilers/elm/packages/elm-format.nix
index 86d99abab5a5..d773736bba56 100644
--- a/pkgs/development/compilers/elm/packages/elm-format.nix
+++ b/pkgs/development/compilers/elm/packages/elm-format.nix
@@ -1,17 +1,21 @@
-{ mkDerivation, ansi-terminal, ansi-wl-pprint, base, binary
-, bytestring, Cabal, cmark, containers, directory, fetchgit
-, filepath, free, HUnit, indents, json, mtl, optparse-applicative
-, parsec, process, QuickCheck, quickcheck-io, split, stdenv, tasty
-, tasty-golden, tasty-hunit, tasty-quickcheck, text
+{ mkDerivation, fetchgit, ansi-terminal, ansi-wl-pprint, base, binary
+, bytestring, Cabal, cmark, containers, directory, filepath, free
+, HUnit, indents, json, mtl, optparse-applicative, parsec, process
+, QuickCheck, quickcheck-io, split, stdenv, tasty, tasty-golden
+, tasty-hunit, tasty-quickcheck, text
 }:
 mkDerivation {
   pname = "elm-format";
-  version = "0.8.0";
+  version = "0.8.1";
   src = fetchgit {
     url = "http://github.com/avh4/elm-format";
-    sha256 = "1w79xvsyq98vfz3jb4sv8433vdh6pcg8s7yh54lcxzr1p08yhsb6";
-    rev = "f19ac28046d7e83ff95f845849c033cc616f1bd6";
+    sha256 = "0p1dy1m6illsl7i04zsv5jqw7i4znv7pfpdfm53zy0k7mq0fk09j";
+    rev = "89694e858664329e3cbdaeb71b15c4456fd739ff";
   };
+  postPatch = ''
+    sed -i "s|desc <-.*||" ./Setup.hs
+    sed -i "s|gitDescribe = .*|gitDescribe = \\\\\"0.8.1\\\\\"\"|" ./Setup.hs
+  '';
   isLibrary = true;
   isExecutable = true;
   setupHaskellDepends = [ base Cabal directory filepath process ];
@@ -26,8 +30,6 @@ mkDerivation {
     split tasty tasty-golden tasty-hunit tasty-quickcheck text
   ];
   doHaddock = false;
-  jailbreak = true;
-  doCheck = false;
   homepage = "http://elm-lang.org";
   description = "A source code formatter for Elm";
   license = stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/compilers/elm/packages/tasty-quickcheck.nix b/pkgs/development/compilers/elm/packages/tasty-quickcheck.nix
new file mode 100644
index 000000000000..54235489edfa
--- /dev/null
+++ b/pkgs/development/compilers/elm/packages/tasty-quickcheck.nix
@@ -0,0 +1,14 @@
+{ mkDerivation, base, pcre-light, QuickCheck, random, stdenv
+, tagged, tasty, tasty-hunit
+}:
+mkDerivation {
+  pname = "tasty-quickcheck";
+  version = "0.9.2";
+  sha256 = "c5920adeab6e283d5e3ab45f3c80a1b011bedfbe4a3246a52606da2e1da95873";
+  libraryHaskellDepends = [ base QuickCheck random tagged tasty ];
+  testHaskellDepends = [ base pcre-light tasty tasty-hunit ];
+  doCheck = false;
+  homepage = "https://github.com/feuerbach/tasty";
+  description = "QuickCheck support for the Tasty test framework";
+  license = stdenv.lib.licenses.mit;
+}
diff --git a/pkgs/development/compilers/elm/update.sh b/pkgs/development/compilers/elm/update.sh
index 02e5bdc9b581..2b5d85feeb28 100755
--- a/pkgs/development/compilers/elm/update.sh
+++ b/pkgs/development/compilers/elm/update.sh
@@ -1,3 +1 @@
 cabal2nix https://github.com/elm/compiler --revision  32059a289d27e303fa1665e9ada0a52eb688f302 > packages/elm.nix
-cabal2nix --no-check cabal://indents-0.3.3 > packages/indents.nix
-cabal2nix --no-haddock --no-check --jailbreak --revision refs/tags/0.8.0 http://github.com/avh4/elm-format > packages/elm-format.nix
diff --git a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
new file mode 100644
index 000000000000..c22683dae03a
--- /dev/null
+++ b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchurl, ncurses5, python27 }:
+
+with lib;
+
+stdenv.mkDerivation rec {
+  name = "gcc-arm-embedded-${version}";
+  version = "7-2018-q2-update";
+  subdir = "7-2018q2";
+
+  urlString = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-linux.tar.bz2";
+
+  src = fetchurl { url=urlString; sha256="0sgysp3hfpgrkcbfiwkp0a7ymqs02khfbrjabm52b5z61sgi05xv"; };
+
+  phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r * $out
+  '';
+
+  dontPatchELF = true;
+  dontStrip = true;
+
+  preFixup = ''
+    find $out -type f | while read f; do
+      patchelf $f > /dev/null 2>&1 || continue
+      patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
+      patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
+    done
+  '';
+
+  meta = {
+    description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors (Cortex-M0/M0+/M3/M4/M7, Cortex-R4/R5/R7/R8)";
+    homepage = https://developer.arm.com/open-source/gnu-toolchain/gnu-rm;
+    license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
+    maintainers = with maintainers; [ prusnak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/ghc/8.2.1-binary.nix b/pkgs/development/compilers/ghc/8.2.1-binary.nix
index bfb9c4cd6164..6caeaf20f64c 100644
--- a/pkgs/development/compilers/ghc/8.2.1-binary.nix
+++ b/pkgs/development/compilers/ghc/8.2.1-binary.nix
@@ -169,6 +169,5 @@ stdenv.mkDerivation rec {
   };
 
   meta.license = stdenv.lib.licenses.bsd3;
-  # AArch64 should work in theory but eventually some builds start segfaulting
-  meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux" /* "aarch64-linux" */];
+  meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux" "aarch64-linux"];
 }
diff --git a/pkgs/development/compilers/ghc/8.2.2.nix b/pkgs/development/compilers/ghc/8.2.2.nix
index b548b05339e4..8c3012f881c6 100644
--- a/pkgs/development/compilers/ghc/8.2.2.nix
+++ b/pkgs/development/compilers/ghc/8.2.2.nix
@@ -88,7 +88,8 @@ stdenv.mkDerivation (rec {
     sha256 = "1z05vkpaj54xdypmaml50hgsdpw29dhbs2r7magx0cm199iw73mv";
   };
 
-  enableParallelBuilding = true;
+  # https://ghc.haskell.org/trac/ghc/ticket/15449
+  enableParallelBuilding = !buildPlatform.isAarch64;
 
   outputs = [ "out" "doc" ];
 
diff --git a/pkgs/development/compilers/ghc/8.4.3.nix b/pkgs/development/compilers/ghc/8.4.3.nix
index e43f9a57d0a4..7cd7494df050 100644
--- a/pkgs/development/compilers/ghc/8.4.3.nix
+++ b/pkgs/development/compilers/ghc/8.4.3.nix
@@ -90,7 +90,8 @@ stdenv.mkDerivation (rec {
     sha256 = "1mk046vb561j75saz05rghhbkps46ym5aci4264dwc2qk3dayixf";
   };
 
-  enableParallelBuilding = true;
+  # https://ghc.haskell.org/trac/ghc/ticket/15449
+  enableParallelBuilding = !buildPlatform.isAarch64;
 
   outputs = [ "out" "doc" ];
 
diff --git a/pkgs/development/compilers/ghc/8.6.1.nix b/pkgs/development/compilers/ghc/8.6.1.nix
index 62ea39791b90..a2be9d255713 100644
--- a/pkgs/development/compilers/ghc/8.6.1.nix
+++ b/pkgs/development/compilers/ghc/8.6.1.nix
@@ -86,7 +86,8 @@ stdenv.mkDerivation (rec {
     sha256 = "0dkh7idgrqr567fq94a0f5x3w0r4cm2ydn51nb5wfisw3rnw499c";
   };
 
-  enableParallelBuilding = true;
+  # https://ghc.haskell.org/trac/ghc/ticket/15449
+  enableParallelBuilding = !buildPlatform.isAarch64;
 
   outputs = [ "out" "doc" ];
 
diff --git a/pkgs/development/compilers/jsonnet/default.nix b/pkgs/development/compilers/jsonnet/default.nix
index 4a520471f867..15eec4134acf 100644
--- a/pkgs/development/compilers/jsonnet/default.nix
+++ b/pkgs/development/compilers/jsonnet/default.nix
@@ -1,10 +1,8 @@
-{ stdenv, lib, fetchFromGitHub, emscripten }:
+{ stdenv, lib, fetchFromGitHub }:
 
-let version = "0.11.2"; in
-
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "jsonnet-${version}";
-  version = version;
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
@@ -13,18 +11,18 @@ stdenv.mkDerivation {
     sha256 = "05rl5i4g36k2ikxv4sw726mha1qf5bb66wiqpi0s09wj9azm7vym";
   };
 
-  buildInputs = [ emscripten ];
-
   enableParallelBuilding = true;
 
-  makeFlags = [''EM_CACHE=$(TMPDIR)/.em_cache'' ''all''];
+  makeFlags = [
+    "jsonnet"
+    "libjsonnet.so"
+  ];
 
   installPhase = ''
-    mkdir -p $out/bin $out/lib $out/share/
+    mkdir -p $out/bin $out/lib $out/include
     cp jsonnet $out/bin/
-    cp libjsonnet.so $out/lib/
-    cp -a doc $out/share/doc
-    cp -a include $out/include
+    cp libjsonnet*.so $out/lib/
+    cp -a include/*.h $out/include/
   '';
 
   meta = {
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 718628d8ad41..7b88efd1e616 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, makeWrapper, jre, unzip }:
 
 let
-  version = "1.2.70";
+  version = "1.2.71";
 in stdenv.mkDerivation rec {
   inherit version;
   name = "kotlin-${version}";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "0d44rzngpfhgh1qc99b97dczdyrmypbwzrmr00qmcy2ya2il0fm2";
+    sha256 = "0yzanv2jkjx3vfixzvjsihfi00khs7zr47y01cil8bylzvyr50p4";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/coq-modules/coq-haskell/default.nix b/pkgs/development/coq-modules/coq-haskell/default.nix
index 9d9a4cb5f1a1..cbfd79fdd272 100644
--- a/pkgs/development/coq-modules/coq-haskell/default.nix
+++ b/pkgs/development/coq-modules/coq-haskell/default.nix
@@ -19,6 +19,12 @@ let params =
       rev = "e2cf8b270c2efa3b56fab1ef6acc376c2c3de968";
       sha256 = "09dq1vvshhlhgjccrhqgbhnq2hrys15xryfszqq11rzpgvl2zgdv";
     };
+
+    "8.8" = {
+      version = "20171215";
+      rev = "e2cf8b270c2efa3b56fab1ef6acc376c2c3de968";
+      sha256 = "09dq1vvshhlhgjccrhqgbhnq2hrys15xryfszqq11rzpgvl2zgdv";
+    };
   };
   param = params."${coq.coq-version}";
 in
diff --git a/pkgs/development/coq-modules/coqprime/default.nix b/pkgs/development/coq-modules/coqprime/default.nix
new file mode 100644
index 000000000000..54cb7c50e407
--- /dev/null
+++ b/pkgs/development/coq-modules/coqprime/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, coq, bignums }:
+
+let params =
+  {
+    "8.7" = {
+      version = "8.7.2";
+      sha256 = "15zlcrx06qqxjy3nhh22wzy0rb4npc8l4nx2bbsfsvrisbq1qb7k";
+    };
+    "8.8" = {
+      version = "8.8";
+      sha256 = "075yjczk79pf1hd3lgdjiz84ilkzfxjh18lgzrhhqp7d3kz5lxp5";
+    };
+  };
+  param = params."${coq.coq-version}"
+; in
+
+stdenv.mkDerivation rec {
+
+  inherit (param) version;
+  name = "coq${coq.coq-version}-coqprime-${version}";
+
+  src = fetchFromGitHub {
+    owner = "thery";
+    repo = "coqprime";
+    rev = "v${version}";
+    inherit (param) sha256;
+  };
+
+  buildInputs = [ coq ];
+
+  propagatedBuildInputs = [ bignums ];
+
+  installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/";
+
+  meta = with stdenv.lib; {
+    description = "Library to certify primality using Pocklington certificate and Elliptic Curve Certificate";
+    license = licenses.lgpl21;
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    inherit (coq.meta) platforms;
+    inherit (src.meta) homepage;
+  };
+
+  passthru = {
+    compatibleCoqVersions = v: builtins.hasAttr v params;
+  };
+}
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index 9b6f80e0f837..3faa4c268ac0 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -170,6 +170,7 @@ go.stdenv.mkDerivation (
     runHook postBuild
   '';
 
+  doCheck = args.doCheck or false;
   checkPhase = args.checkPhase or ''
     runHook preCheck
 
diff --git a/pkgs/development/guile-modules/guile-reader/default.nix b/pkgs/development/guile-modules/guile-reader/default.nix
index 010c523507fd..35bcd7bfc2f3 100644
--- a/pkgs/development/guile-modules/guile-reader/default.nix
+++ b/pkgs/development/guile-modules/guile-reader/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
        "token readers" of a standard Scheme readers. For example, it
        is used to implement Skribilo's R5RS-derived document syntax.
     '';
-    homepage = https://www.gnu.org/software/guile-reader;
+    homepage = https://www.nongnu.org/guile-reader/;
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.gnu;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 40bd4a7f0c9a..8ff6aed506f2 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -953,13 +953,6 @@ self: super: {
   # https://github.com/yesodweb/Shelly.hs/issues/162
   shelly = dontCheck super.shelly;
 
-  # https://github.com/simonmichael/hledger/issues/852
-  hledger-lib = appendPatch super.hledger-lib (pkgs.fetchpatch {
-    url = "https://github.com/simonmichael/hledger/commit/007b9f8caaf699852511634752a7d7c86f6adc67.patch";
-    sha256 = "1lfp29mi1qyrcr9nfjigbyric0xb9n4ann5w6sr0g5sanr4maqs2";
-    stripLen = 1;
-  });
-
   # Copy hledger man pages from data directory into the proper place. This code
   # should be moved into the cabal2nix generator.
   hledger = overrideCabal super.hledger (drv: {
@@ -1081,6 +1074,10 @@ self: super: {
     hpack = self.hpack_0_31_0;
     yaml = self.yaml_0_10_2_0;
   });
+  stack2nix = super.stack2nix.overrideScope (self: super: {
+    hpack = self.hpack_0_31_0;
+    yaml = self.yaml_0_10_2_0;
+  });
 
   # Break out of "aeson <1.3, temporary <1.3".
   stack = doJailbreak super.stack;
@@ -1159,4 +1156,5 @@ self: super: {
     sha256 = "0ljwcha9l52gs5bghxq3gbzxfqmfz3hxxcg9arjsjw8f7kw946xq";
   });
 
+  xmonad-extras = doJailbreak super.xmonad-extras;
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index dbe3bafc41b3..041227059cde 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -45,23 +45,24 @@ self: super: {
   hoopl = self.hoopl_3_10_2_2;
 
   # LTS-12.x versions do not compile.
+  base-orphans = self.base-orphans_0_8;
   contravariant = self.contravariant_1_5;
   control-monad-free = markBrokenVersion "0.6.1" super.control-monad-free;
-  doctest = self.doctest_0_16_0_1;
-  doctest_0_16_0_1 = dontCheck super.doctest_0_16_0_1;
+  free = self.free_5_1;
   Glob = self.Glob_0_9_3;
   haddock-library = markBroken super.haddock-library;
   hslogger = self.hslogger_1_2_12;
-  hspec = self.hspec_2_5_7;
-  hspec-core = self.hspec-core_2_5_7;
-  hspec-core_2_5_7 = super.hspec-core_2_5_7.overrideScope (self: super: { QuickCheck = self.QuickCheck_2_12_4; });
-  hspec-discover = self.hspec-discover_2_5_7;
+  hspec = self.hspec_2_5_8;
+  hspec-core = self.hspec-core_2_5_8;
+  hspec-core_2_5_8 = super.hspec-core_2_5_8.overrideScope (self: super: { QuickCheck = self.QuickCheck_2_12_6_1; });
+  hspec-discover = self.hspec-discover_2_5_8;
   hspec-meta = self.hspec-meta_2_5_6;
-  hspec-meta_2_5_6 = super.hspec-meta_2_5_6.overrideScope (self: super: { QuickCheck = self.QuickCheck_2_12_4; });
+  hspec-meta_2_5_6 = super.hspec-meta_2_5_6.overrideScope (self: super: { QuickCheck = self.QuickCheck_2_12_6_1; });
   JuicyPixels = self.JuicyPixels_3_3_1;
-  lens = dontCheck super.lens;    # avoid depending on broken polyparse
+  lens = self.lens_4_17;
   polyparse = markBrokenVersion "1.12" super.polyparse;
   primitive = self.primitive_0_6_4_0;
+  semigroupoids = self.semigroupoids_5_3_1;
   tagged = self.tagged_0_8_6;
   unordered-containers = dontCheck super.unordered-containers;
 
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 5d7173bf44a4..f68270ba772e 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -43,7 +43,9 @@ core-packages:
 default-package-overrides:
   # Newer versions require contravariant-1.5.*, which many builds refuse at the moment.
   - base-compat-batteries ==0.10.1
-  # LTS Haskell 12.10
+  # Newer versions don't work in LTS-12.x
+  - cassava-megaparsec < 2
+  # LTS Haskell 12.12
   - abstract-deque ==0.3
   - abstract-deque-tests ==0.3
   - abstract-par ==0.3.3
@@ -60,7 +62,7 @@ default-package-overrides:
   - aeson-attoparsec ==0.0.0
   - aeson-better-errors ==0.9.1.0
   - aeson-casing ==0.1.0.5
-  - aeson-compat ==0.3.8
+  - aeson-compat ==0.3.9
   - aeson-diff ==1.1.0.5
   - aeson-extra ==0.4.1.1
   - aeson-generic-compat ==0.0.1.3
@@ -76,8 +78,9 @@ default-package-overrides:
   - alarmclock ==0.5.0.2
   - alerts ==0.1.0.0
   - alex ==3.2.4
-  - alg ==0.2.6.0
+  - alg ==0.2.7.0
   - algebra ==4.3.1
+  - algebraic-graphs ==0.2
   - Allure ==0.8.3.0
   - almost-fix ==0.0.2
   - alsa-core ==0.5.0.1
@@ -185,7 +188,7 @@ default-package-overrides:
   - apply-refact ==0.5.0.0
   - apportionment ==0.0.0.3
   - approximate ==0.3.1
-  - app-settings ==0.2.0.11
+  - app-settings ==0.2.0.12
   - arithmoi ==0.7.0.0
   - array-memoize ==0.6.0
   - arrow-extras ==0.1.0.1
@@ -210,19 +213,19 @@ default-package-overrides:
   - attoparsec-binary ==0.2
   - attoparsec-expr ==0.1.1.2
   - attoparsec-ip ==0.0.1
-  - attoparsec-iso8601 ==1.0.0.0
+  - attoparsec-iso8601 ==1.0.1.0
   - attoparsec-path ==0.0.0.1
   - attoparsec-uri ==0.0.4
   - audacity ==0.0.2
   - authenticate ==1.3.4
   - authenticate-oauth ==1.6
   - auto ==0.4.3.1
-  - autoexporter ==1.1.11
+  - autoexporter ==1.1.13
   - auto-update ==0.1.4
   - avro ==0.3.5.1
   - avwx ==0.3.0.2
   - backprop ==0.2.5.0
-  - bank-holidays-england ==0.1.0.7
+  - bank-holidays-england ==0.1.0.8
   - barrier ==0.1.1
   - base16-bytestring ==0.1.1.6
   - base32string ==0.9.1
@@ -259,7 +262,7 @@ default-package-overrides:
   - binary-parsers ==0.2.3.0
   - binary-search ==1.0.0.3
   - binary-shared ==0.8.3
-  - binary-tagged ==0.1.5
+  - binary-tagged ==0.1.5.1
   - bindings-DSL ==1.0.25
   - bindings-GLFW ==3.2.1.1
   - bindings-libzip ==1.0.1
@@ -286,7 +289,7 @@ default-package-overrides:
   - blaze-builder ==0.4.1.0
   - blaze-colonnade ==1.2.2
   - blaze-html ==0.9.1.1
-  - blaze-markup ==0.8.2.1
+  - blaze-markup ==0.8.2.2
   - blaze-svg ==0.3.6.1
   - blaze-textual ==0.2.1.0
   - bmp ==1.2.6.3
@@ -306,36 +309,36 @@ default-package-overrides:
   - brick ==0.37.2
   - brittany ==0.11.0.0
   - broadcast-chan ==0.1.1
-  - bsb-http-chunked ==0.0.0.3
+  - bsb-http-chunked ==0.0.0.4
   - bson ==0.3.2.6
   - bson-lens ==0.1.1
   - btrfs ==0.1.2.3
   - buffer-builder ==0.2.4.6
   - buffer-pipe ==0.0
-  - butcher ==1.3.1.1
+  - butcher ==1.3.2.0
   - butter ==0.1.0.6
   - bv ==0.5
-  - bv-little ==0.1.1
+  - bv-little ==0.1.2
   - byteable ==0.1.1
   - bytedump ==1.0
   - byteorder ==1.0.4
   - bytes ==0.15.5
   - byteset ==0.1.1.0
-  - bytestring-builder ==0.10.8.1.0
+  - bytestring-builder ==0.10.8.2.0
   - bytestring-conversion ==0.3.1
   - bytestring-lexing ==0.5.0.2
   - bytestring-strict-builder ==0.4.5.1
   - bytestring-tree-builder ==0.2.7.2
   - bzlib ==0.5.0.5
   - bzlib-conduit ==0.3.0.1
-  - c2hs ==0.28.5
+  - c2hs ==0.28.6
   - Cabal ==2.2.0.1
   - cabal2spec ==2.1.1
   - cabal-doctest ==1.0.6
   - cabal-rpm ==0.12.5
   - cache ==0.1.1.1
-  - cachix ==0.1.1
-  - cachix-api ==0.1.0.1
+  - cachix ==0.1.2
+  - cachix-api ==0.1.0.2
   - cairo ==0.13.5.0
   - calendar-recycling ==0.0.0.1
   - call-stack ==0.1.0
@@ -364,7 +367,7 @@ default-package-overrides:
   - charsetdetect-ae ==1.1.0.4
   - chart-unit ==0.7.0.0
   - chaselev-deque ==0.5.0.5
-  - ChasingBottoms ==1.3.1.4
+  - ChasingBottoms ==1.3.1.5
   - chatwork ==0.1.3.5
   - cheapskate ==0.1.1
   - cheapskate-highlight ==0.1.0.0
@@ -397,7 +400,7 @@ default-package-overrides:
   - clock ==0.7.2
   - clock-extras ==0.1.0.2
   - closed ==0.2.0
-  - clr-host ==0.2.0.1
+  - clr-host ==0.2.1.0
   - clr-marshal ==0.2.0.0
   - clumpiness ==0.17.0.0
   - ClustalParser ==1.2.3
@@ -430,14 +433,14 @@ default-package-overrides:
   - composition-prelude ==1.5.3.1
   - compressed ==3.11
   - concise ==0.1.0.1
-  - concurrency ==1.6.0.0
+  - concurrency ==1.6.1.0
   - concurrent-extra ==0.7.0.12
-  - concurrent-output ==1.10.6
+  - concurrent-output ==1.10.7
   - concurrent-split ==0.0.1
   - concurrent-supply ==0.1.8
   - cond ==0.4.1.1
   - conduit ==1.3.0.3
-  - conduit-algorithms ==0.0.8.1
+  - conduit-algorithms ==0.0.8.2
   - conduit-combinators ==1.3.0
   - conduit-connection ==0.1.0.4
   - conduit-extra ==1.3.0
@@ -458,7 +461,7 @@ default-package-overrides:
   - contravariant ==1.4.1
   - contravariant-extras ==0.3.4
   - control-bool ==0.2.1
-  - control-monad-free ==0.6.1
+  - control-monad-free ==0.6.2
   - control-monad-omega ==0.3.1
   - convertible ==1.1.1.0
   - cookie ==0.4.4
@@ -482,7 +485,7 @@ default-package-overrides:
   - crypto-cipher-tests ==0.0.11
   - crypto-cipher-types ==0.0.9
   - cryptocompare ==0.1.1
-  - crypto-enigma ==0.0.2.12
+  - crypto-enigma ==0.0.2.13
   - cryptohash ==0.11.9
   - cryptohash-cryptoapi ==0.1.4
   - cryptohash-md5 ==0.11.100.1
@@ -543,7 +546,7 @@ default-package-overrides:
   - data-msgpack-types ==0.0.2
   - data-or ==1.0.0.5
   - data-ordlist ==0.4.7.0
-  - data-ref ==0.0.1.1
+  - data-ref ==0.0.1.2
   - data-reify ==0.6.1
   - data-serializer ==0.3.4
   - datasets ==0.2.5
@@ -565,8 +568,8 @@ default-package-overrides:
   - dependent-sum ==0.4
   - dependent-sum-template ==0.0.0.6
   - deque ==0.2.1
-  - deriving-compat ==0.5.1
-  - derulo ==1.0.3
+  - deriving-compat ==0.5.2
+  - derulo ==1.0.5
   - detour-via-sci ==1.0.0
   - df1 ==0.1.1
   - dhall ==1.15.1
@@ -601,10 +604,10 @@ default-package-overrides:
   - discount ==0.1.1
   - discrimination ==0.3
   - disk-free-space ==0.1.0.1
-  - distributed-closure ==0.4.0
+  - distributed-closure ==0.4.1
   - distributed-static ==0.3.8
   - distributive ==0.5.3
-  - dlist ==0.8.0.4
+  - dlist ==0.8.0.5
   - dlist-instances ==0.1.1.1
   - dlist-nonempty ==0.1.1
   - dns ==3.0.4
@@ -612,9 +615,9 @@ default-package-overrides:
   - dockerfile ==0.1.0.1
   - docopt ==0.7.0.5
   - doctemplates ==0.2.2.1
-  - doctest ==0.16.0
+  - doctest ==0.16.0.1
   - doctest-discover ==0.1.0.9
-  - doctest-driver-gen ==0.2.0.3
+  - doctest-driver-gen ==0.2.0.4
   - do-list ==1.0.1
   - dom-parser ==3.1.0
   - dotenv ==0.5.2.5
@@ -657,7 +660,7 @@ default-package-overrides:
   - elm-export ==0.6.0.1
   - email-validate ==2.3.2.7
   - enclosed-exceptions ==1.0.3
-  - entropy ==0.4.1.1
+  - entropy ==0.4.1.3
   - enummapset ==0.5.2.2
   - enumset ==0.0.4.1
   - enum-subset-generate ==0.1.0.0
@@ -666,7 +669,7 @@ default-package-overrides:
   - epub-metadata ==4.5
   - eq ==4.2
   - equal-files ==0.0.5.3
-  - equivalence ==0.3.2
+  - equivalence ==0.3.3
   - erf ==2.0.0.0
   - errors ==2.3.0
   - errors-ext ==0.4.2
@@ -698,7 +701,7 @@ default-package-overrides:
   - exp-pairs ==0.1.6.0
   - extensible ==0.4.9
   - extensible-exceptions ==0.1.1.4
-  - extra ==1.6.9
+  - extra ==1.6.12
   - extractable-singleton ==0.0.1
   - extrapolate ==0.3.3
   - facts ==0.0.1.0
@@ -727,8 +730,8 @@ default-package-overrides:
   - fileplow ==0.1.0.0
   - filter-logger ==0.6.0.0
   - filtrable ==0.1.1.0
+  - Fin ==0.2.6.0
   - fin ==0.0.1
-  - Fin ==0.2.5.0
   - FindBin ==0.0.5
   - find-clumpiness ==0.2.3.1
   - fingertree ==0.1.4.1
@@ -744,16 +747,16 @@ default-package-overrides:
   - flay ==0.4
   - flexible-defaults ==0.0.2
   - floatshow ==0.2.4
-  - flow ==1.0.15
+  - flow ==1.0.17
   - fmlist ==0.9.2
   - fn ==0.3.0.2
   - focus ==0.1.5.2
   - foldable1 ==0.1.0.0
-  - fold-debounce ==0.2.0.7
-  - fold-debounce-conduit ==0.2.0.1
-  - foldl ==1.4.4
+  - fold-debounce ==0.2.0.8
+  - fold-debounce-conduit ==0.2.0.3
+  - foldl ==1.4.5
   - folds ==0.7.4
-  - FontyFruity ==0.5.3.3
+  - FontyFruity ==0.5.3.4
   - force-layout ==0.4.0.6
   - foreign-store ==0.2
   - ForestStructures ==0.0.0.2
@@ -800,15 +803,15 @@ default-package-overrides:
   - genvalidity ==0.5.1.0
   - genvalidity-aeson ==0.2.0.2
   - genvalidity-bytestring ==0.2.0.2
-  - genvalidity-containers ==0.5.0.0
-  - genvalidity-hspec ==0.6.1.1
+  - genvalidity-containers ==0.5.1.0
+  - genvalidity-hspec ==0.6.2.0
   - genvalidity-hspec-aeson ==0.3.0.0
   - genvalidity-hspec-binary ==0.2.0.2
   - genvalidity-hspec-cereal ==0.2.0.2
   - genvalidity-hspec-hashable ==0.2.0.2
   - genvalidity-path ==0.3.0.2
-  - genvalidity-property ==0.2.1.0
-  - genvalidity-scientific ==0.2.0.1
+  - genvalidity-property ==0.2.1.1
+  - genvalidity-scientific ==0.2.1.0
   - genvalidity-text ==0.5.1.0
   - genvalidity-time ==0.2.1.0
   - genvalidity-unordered-containers ==0.2.0.3
@@ -823,7 +826,7 @@ default-package-overrides:
   - ghcjs-codemirror ==0.0.0.2
   - ghc-parser ==0.2.0.2
   - ghc-paths ==0.1.0.9
-  - ghc-prof ==1.4.1.3
+  - ghc-prof ==1.4.1.4
   - ghc-syntax-highlighter ==0.0.2.0
   - ghc-tcplugins-extra ==0.3
   - ghc-typelits-extra ==0.2.6
@@ -837,8 +840,8 @@ default-package-overrides:
   - gi-gio ==2.0.18
   - gi-glib ==2.0.17
   - gi-gobject ==2.0.16
-  - gi-gtk ==3.0.24
-  - gi-gtk-hs ==0.3.6.1
+  - gi-gtk ==3.0.25
+  - gi-gtk-hs ==0.3.6.2
   - gi-gtksource ==3.0.16
   - gi-javascriptcore ==4.0.15
   - gio ==0.13.5.0
@@ -856,7 +859,7 @@ default-package-overrides:
   - glazier ==1.0.0.0
   - GLFW-b ==3.2.1.0
   - glib ==0.13.6.0
-  - Glob ==0.9.2
+  - Glob ==0.9.3
   - gloss ==1.12.0.0
   - gloss-raster ==1.12.0.0
   - gloss-rendering ==1.12.0.0
@@ -872,9 +875,9 @@ default-package-overrides:
   - graph-wrapper ==0.2.5.1
   - gravatar ==0.8.0
   - graylog ==0.1.0.1
-  - greskell ==0.2.1.0
-  - greskell-core ==0.1.2.3
-  - greskell-websocket ==0.1.1.0
+  - greskell ==0.2.1.1
+  - greskell-core ==0.1.2.4
+  - greskell-websocket ==0.1.1.2
   - groom ==0.1.2.1
   - groups ==0.4.1.0
   - gtk ==0.14.10
@@ -886,13 +889,13 @@ default-package-overrides:
   - hackage-security ==0.5.3.0
   - haddock-library ==1.5.0.1
   - hailgun ==0.4.1.8
-  - hakyll ==4.12.3.0
+  - hakyll ==4.12.4.0
   - half ==0.3
   - hamilton ==0.1.0.3
   - hamtsolo ==1.0.3
   - HandsomeSoup ==0.4.2
   - handwriting ==0.1.0.3
-  - hapistrano ==0.3.5.10
+  - hapistrano ==0.3.6.0
   - happstack-server ==7.5.1.1
   - happy ==1.19.9
   - hasbolt ==0.1.3.0
@@ -903,16 +906,16 @@ default-package-overrides:
   - hashtables ==1.2.3.1
   - haskeline ==0.7.4.3
   - haskell-gi ==0.21.4
-  - haskell-gi-base ==0.21.1
+  - haskell-gi-base ==0.21.3
   - haskell-gi-overloading ==1.0
-  - haskell-lexer ==1.0.1
+  - haskell-lexer ==1.0.2
   - haskell-lsp ==0.2.2.0
   - haskell-lsp-types ==0.2.2.0
   - HaskellNet ==0.5.1
   - HaskellNet-SSL ==0.3.4.0
   - haskell-spacegoo ==0.2.0.1
   - haskell-src ==1.0.3.0
-  - haskell-src-exts ==1.20.2
+  - haskell-src-exts ==1.20.3
   - haskell-src-exts-simple ==1.20.0.0
   - haskell-src-exts-util ==0.2.3
   - haskell-src-meta ==0.8.0.3
@@ -934,7 +937,7 @@ default-package-overrides:
   - hasql-transaction ==0.7
   - hasty-hamiltonian ==1.3.2
   - HaTeX ==3.19.0.0
-  - haxl ==2.0.1.0
+  - haxl ==2.0.1.1
   - hbeanstalk ==0.2.4
   - HCodecs ==0.5.1
   - hdaemonize ==0.5.5
@@ -944,7 +947,7 @@ default-package-overrides:
   - heap ==1.0.4
   - heaps ==0.3.6
   - hebrew-time ==0.1.1
-  - hedgehog ==0.6
+  - hedgehog ==0.6.1
   - hedgehog-corpus ==0.1.0
   - hedis ==0.10.4
   - here ==1.2.13
@@ -960,11 +963,11 @@ default-package-overrides:
   - hidden-char ==0.1.0.2
   - hierarchical-clustering ==0.4.6
   - hierarchy ==1.0.2
-  - higher-leveldb ==0.5.0.1
+  - higher-leveldb ==0.5.0.2
   - highlighting-kate ==0.6.4
   - hinotify ==0.3.10
   - hint ==0.8.0
-  - histogram-fill ==0.9.0.0
+  - histogram-fill ==0.9.1.0
   - hjsmin ==0.2.0.2
   - hlibgit2 ==0.18.0.16
   - hlibsass ==0.1.7.0
@@ -978,7 +981,7 @@ default-package-overrides:
   - hmpfr ==0.4.4
   - Hoed ==0.5.1
   - hoopl ==3.10.2.2
-  - hOpenPGP ==2.7.2
+  - hOpenPGP ==2.7.3
   - hopenpgp-tools ==0.21.2
   - hopfli ==0.2.2.1
   - hostname ==1.0
@@ -993,7 +996,7 @@ default-package-overrides:
   - hquantlib ==0.0.4.0
   - hreader ==1.1.0
   - hreader-lens ==0.1.3.0
-  - hruby ==0.3.5.4
+  - hruby ==0.3.6
   - hsass ==0.7.0
   - hs-bibutils ==6.6.0.0
   - hscolour ==1.24.4
@@ -1002,13 +1005,13 @@ default-package-overrides:
   - hsemail ==2
   - HSet ==0.0.1
   - hset ==2.2.0
-  - hsexif ==0.6.1.5
+  - hsexif ==0.6.1.6
   - hs-functors ==0.1.3.0
   - hs-GeoIP ==0.3
   - hsini ==0.5.1.2
   - hsinstall ==1.6
   - HSlippyMap ==3.0.1
-  - hslogger ==1.2.10
+  - hslogger ==1.2.12
   - hslua ==0.9.5.2
   - hslua-aeson ==0.3.0.2
   - hslua-module-text ==0.1.2.1
@@ -1056,10 +1059,10 @@ default-package-overrides:
   - http-date ==0.0.8
   - httpd-shed ==0.4.0.3
   - http-link-header ==1.0.3.1
-  - http-media ==0.7.1.2
+  - http-media ==0.7.1.3
   - http-reverse-proxy ==0.6.0
   - http-streams ==0.8.6.1
-  - http-types ==0.12.1
+  - http-types ==0.12.2
   - human-readable-duration ==0.2.0.3
   - HUnit ==1.6.0.0
   - HUnit-approx ==1.1.1.1
@@ -1068,7 +1071,7 @@ default-package-overrides:
   - hvega ==0.1.0.3
   - hw-balancedparens ==0.2.0.2
   - hw-bits ==0.7.0.3
-  - hw-conduit ==0.2.0.3
+  - hw-conduit ==0.2.0.5
   - hw-diagnostics ==0.0.0.5
   - hweblib ==0.6.3
   - hw-excess ==0.2.0.2
@@ -1081,7 +1084,7 @@ default-package-overrides:
   - hw-mquery ==0.1.0.1
   - hworker ==0.1.0.1
   - hw-parser ==0.0.0.3
-  - hw-prim ==0.6.2.15
+  - hw-prim ==0.6.2.17
   - hw-rankselect ==0.10.0.3
   - hw-rankselect-base ==0.3.2.1
   - hw-string-parse ==0.0.0.4
@@ -1115,10 +1118,10 @@ default-package-overrides:
   - immortal ==0.3
   - include-file ==0.1.0.3
   - incremental-parser ==0.3.1.1
-  - indentation-core ==0.0.0.1
-  - indentation-parsec ==0.0.0.1
+  - indentation-core ==0.0.0.2
+  - indentation-parsec ==0.0.0.2
   - indents ==0.5.0.0
-  - indexed-list-literals ==0.2.1.1
+  - indexed-list-literals ==0.2.1.2
   - inflections ==0.4.0.3
   - influxdb ==1.6.0.9
   - ini ==0.3.6
@@ -1151,11 +1154,11 @@ default-package-overrides:
   - ip ==1.3.0
   - ip6addr ==1.0.0
   - iproute ==1.7.5
-  - IPv6Addr ==1.1.0
+  - IPv6Addr ==1.1.1
   - IPv6DB ==0.3.1
   - ipython-kernel ==0.9.1.0
   - irc ==0.6.1.0
-  - irc-client ==1.1.0.4
+  - irc-client ==1.1.0.5
   - irc-conduit ==0.3.0.1
   - irc-ctcp ==0.1.3.0
   - irc-dcc ==2.0.1
@@ -1164,7 +1167,7 @@ default-package-overrides:
   - iso639 ==0.1.0.3
   - iso8601-time ==0.1.5
   - iterable ==3.0
-  - ixset-typed ==0.4
+  - ixset-typed ==0.4.0.1
   - ix-shapable ==0.1.0
   - jack ==0.7.1.4
   - jmacro ==0.6.15
@@ -1206,7 +1209,7 @@ default-package-overrides:
   - lackey ==1.0.5
   - LambdaHack ==0.8.3.0
   - lame ==0.1.1
-  - language-c ==0.8.1
+  - language-c ==0.8.2
   - language-c-quote ==0.12.2
   - language-docker ==6.0.4
   - language-ecmascript ==0.19
@@ -1224,15 +1227,15 @@ default-package-overrides:
   - lawful ==0.1.0.0
   - lazyio ==0.1.0.4
   - lca ==0.3.1
-  - leancheck ==0.7.4
+  - leancheck ==0.7.5
   - leapseconds-announced ==2017.1.0.1
   - learn-physics ==0.6.3
   - lens ==4.16.1
   - lens-action ==0.2.3
   - lens-aeson ==1.0.2
   - lens-datetime ==0.3
-  - lens-family ==1.2.2
-  - lens-family-core ==1.2.2
+  - lens-family ==1.2.3
+  - lens-family-core ==1.2.3
   - lens-family-th ==0.5.0.2
   - lens-labels ==0.2.0.2
   - lens-misc ==0.0.2.0
@@ -1247,7 +1250,7 @@ default-package-overrides:
   - libmpd ==0.9.0.8
   - libxml-sax ==0.7.5
   - LibZip ==1.0.1
-  - lifted-async ==0.10.0.2
+  - lifted-async ==0.10.0.3
   - lifted-base ==0.2.3.12
   - lift-generics ==0.1.2
   - line ==4.0.1
@@ -1271,7 +1274,7 @@ default-package-overrides:
   - log-domain ==0.12
   - logfloat ==0.13.3.3
   - logger-thread ==0.1.0.2
-  - logging-effect ==1.3.2
+  - logging-effect ==1.3.3
   - logging-facade ==0.3.0
   - logging-facade-syslog ==1
   - logict ==0.6.0.2
@@ -1295,11 +1298,11 @@ default-package-overrides:
   - makefile ==1.1.0.0
   - managed ==1.0.6
   - mapquest-api ==0.3.1
-  - markdown ==0.1.17.1
+  - markdown ==0.1.17.4
   - markdown-unlit ==0.5.0
   - markov-chain ==0.0.3.4
   - marvin-interpolate ==1.1.2
-  - massiv ==0.2.0.0
+  - massiv ==0.2.1.0
   - massiv-io ==0.1.4.0
   - mathexpr ==0.3.0.0
   - math-functions ==0.2.1.0
@@ -1316,7 +1319,7 @@ default-package-overrides:
   - med-module ==0.1.1
   - megaparsec ==6.5.0
   - mega-sdist ==0.3.3.1
-  - memory ==0.14.16
+  - memory ==0.14.18
   - MemoTrie ==0.6.9
   - mercury-api ==0.1.0.1
   - mersenne-random-pure64 ==0.2.2.0
@@ -1327,11 +1330,11 @@ default-package-overrides:
   - microformats2-parser ==1.0.1.9
   - microlens ==0.4.9.1
   - microlens-aeson ==2.3.0
-  - microlens-contra ==0.1.0.1
+  - microlens-contra ==0.1.0.2
   - microlens-ghc ==0.4.9.1
   - microlens-mtl ==0.1.11.1
   - microlens-platform ==0.3.10
-  - microlens-th ==0.4.2.2
+  - microlens-th ==0.4.2.3
   - microspec ==0.1.0.0
   - microstache ==1.0.1.1
   - midi ==0.2.2.2
@@ -1390,7 +1393,7 @@ default-package-overrides:
   - mongoDB ==2.4.0.0
   - monoidal-containers ==0.3.1.0
   - monoid-extras ==0.5
-  - monoid-subclasses ==0.4.6
+  - monoid-subclasses ==0.4.6.1
   - monoid-transformer ==0.0.4
   - mono-traversable ==1.0.9.0
   - mono-traversable-instances ==0.1.0.0
@@ -1403,9 +1406,9 @@ default-package-overrides:
   - multiarg ==0.30.0.10
   - multimap ==1.2.1
   - multipart ==0.1.3
-  - multistate ==0.8.0.0
+  - multistate ==0.8.0.1
   - murmur-hash ==0.1.0.9
-  - MusicBrainz ==0.4
+  - MusicBrainz ==0.4.1
   - mustache ==2.3.0
   - mutable-containers ==0.3.4
   - mwc-probability ==2.0.4
@@ -1444,8 +1447,8 @@ default-package-overrides:
   - network-ip ==0.3.0.2
   - network-multicast ==0.2.0
   - Network-NineP ==0.4.3
-  - network-simple ==0.4.2
-  - network-simple-tls ==0.3
+  - network-simple ==0.4.3
+  - network-simple-tls ==0.3.1
   - network-transport ==0.5.2
   - network-transport-composed ==0.2.1
   - network-transport-inmemory ==0.5.2
@@ -1474,13 +1477,13 @@ default-package-overrides:
   - numhask-test ==0.1.0.0
   - NumInstances ==1.4
   - numtype-dk ==0.5.0.2
-  - nvim-hs ==1.0.0.2
+  - nvim-hs ==1.0.0.3
   - nvim-hs-contrib ==1.0.0.0
   - oauthenticated ==0.2.1.0
   - objective ==1.1.2
   - ObjectName ==1.1.0.1
-  - o-clock ==1.0.0
-  - odbc ==0.2.0
+  - o-clock ==1.0.0.1
+  - odbc ==0.2.2
   - oeis ==0.3.9
   - ofx ==0.4.2.0
   - old-locale ==1.0.0.7
@@ -1507,7 +1510,7 @@ default-package-overrides:
   - opml-conduit ==0.6.0.4
   - optional-args ==1.0.2
   - options ==1.2.1.1
-  - optparse-applicative ==0.14.2.0
+  - optparse-applicative ==0.14.3.0
   - optparse-generic ==1.3.0
   - optparse-simple ==0.1.0
   - optparse-text ==0.1.1.0
@@ -1518,7 +1521,7 @@ default-package-overrides:
   - pagination ==0.2.1
   - palette ==0.3.0.1
   - pandoc ==2.2.1
-  - pandoc-citeproc ==0.14.3.1
+  - pandoc-citeproc ==0.14.5
   - pandoc-types ==1.17.5.1
   - pango ==0.13.5.0
   - papillon ==0.1.0.6
@@ -1573,7 +1576,7 @@ default-package-overrides:
   - pipes-binary ==0.4.2
   - pipes-bytestring ==2.1.6
   - pipes-category ==0.3.0.0
-  - pipes-concurrency ==2.0.11
+  - pipes-concurrency ==2.0.12
   - pipes-csv ==1.4.3
   - pipes-extras ==1.0.15
   - pipes-fastx ==0.3.0.0
@@ -1601,7 +1604,7 @@ default-package-overrides:
   - pooled-io ==0.0.2.2
   - portable-lines ==0.1
   - postgresql-binary ==0.12.1.1
-  - postgresql-libpq ==0.9.4.1
+  - postgresql-libpq ==0.9.4.2
   - postgresql-schema ==0.1.14
   - postgresql-simple ==0.5.4.0
   - postgresql-simple-migration ==0.1.12.0
@@ -1611,7 +1614,7 @@ default-package-overrides:
   - postgresql-typed ==0.5.3.0
   - post-mess-age ==0.2.1.0
   - pptable ==0.3.0.0
-  - pqueue ==1.4.1.1
+  - pqueue ==1.4.1.2
   - prefix-units ==0.2.0
   - prelude-compat ==0.0.0.1
   - prelude-extras ==0.4.0.3
@@ -1735,12 +1738,13 @@ default-package-overrides:
   - relational-schemas ==0.1.6.2
   - relude ==0.1.1
   - renderable ==0.2.0.1
-  - repa ==3.4.1.3
+  - repa ==3.4.1.4
   - repline ==0.1.7.0
   - req ==1.1.0
   - req-conduit ==1.0.0
   - require ==0.2.1
   - req-url-extra ==0.1.0.0
+  - reroute ==0.5.0.0
   - resolv ==0.1.1.1
   - resource-pool ==0.2.3.2
   - resourcet ==1.2.1
@@ -1772,7 +1776,7 @@ default-package-overrides:
   - safe-money ==0.6
   - SafeSemaphore ==0.10.1
   - saltine ==0.1.0.1
-  - salve ==1.0.4
+  - salve ==1.0.6
   - sample-frame ==0.0.3
   - sample-frame-np ==0.0.4.1
   - sampling ==0.3.3
@@ -1811,7 +1815,7 @@ default-package-overrides:
   - servant-auth ==0.3.2.0
   - servant-auth-client ==0.3.3.0
   - servant-auth-docs ==0.2.10.0
-  - servant-auth-server ==0.4.0.0
+  - servant-auth-server ==0.4.0.1
   - servant-auth-swagger ==0.2.10.0
   - servant-blaze ==0.8
   - servant-cassava ==0.10
@@ -1854,7 +1858,7 @@ default-package-overrides:
   - SHA ==1.6.4.4
   - shake ==0.16.4
   - shake-language-c ==0.12.0
-  - shakespeare ==2.0.15
+  - shakespeare ==2.0.18
   - shell-conduit ==4.7.0
   - shell-escape ==0.2.0
   - shelltestrunner ==1.9
@@ -1872,7 +1876,7 @@ default-package-overrides:
   - simple-vec3 ==0.4.0.8
   - since ==0.0.0
   - singleton-bool ==0.1.4
-  - singleton-nats ==0.4.1
+  - singleton-nats ==0.4.2
   - singletons ==2.4.1
   - siphash ==1.0.3
   - size-based ==0.1.1.0
@@ -1911,6 +1915,8 @@ default-package-overrides:
   - splice ==0.6.1.1
   - split ==0.2.3.3
   - splitmix ==0.0.1
+  - Spock ==0.13.0.0
+  - Spock-core ==0.13.0.0
   - spoon ==0.3.1
   - spreadsheet ==0.1.3.8
   - sqlite-simple ==0.4.16.0
@@ -1931,12 +1937,12 @@ default-package-overrides:
   - step-function ==0.2
   - stm ==2.4.5.1
   - stm-chans ==3.0.0.4
-  - stm-conduit ==4.0.0
+  - stm-conduit ==4.0.1
   - stm-containers ==0.2.16
   - stm-delay ==0.1.1.1
   - stm-extras ==0.1.0.3
   - STMonadTrans ==0.4.3
-  - stm-split ==0.0.2
+  - stm-split ==0.0.2.1
   - stm-stats ==0.2.0.0
   - stopwatch ==0.1.0.5
   - storable-complex ==0.2.2
@@ -1948,7 +1954,7 @@ default-package-overrides:
   - store-core ==0.4.4
   - Strafunski-StrategyLib ==5.0.1.0
   - stratosphere ==0.24.4
-  - streaming ==0.2.1.0
+  - streaming ==0.2.2.0
   - streaming-attoparsec ==1.0.0
   - streaming-bytestring ==0.1.6
   - streaming-commons ==0.2.1.0
@@ -1970,7 +1976,6 @@ default-package-overrides:
   - strive ==5.0.6
   - structs ==0.1.1
   - stylish-haskell ==0.9.2.0
-  - summoner ==1.0.6
   - sum-type-boilerplate ==0.1.1
   - sundown ==0.6
   - superbuffer ==0.3.1.1
@@ -1994,7 +1999,7 @@ default-package-overrides:
   - tagged-identity ==0.1.2
   - tagged-transformer ==0.8.1
   - tagshare ==0.0
-  - tagsoup ==0.14.6
+  - tagsoup ==0.14.7
   - tagstream-conduit ==0.5.5.3
   - tao ==1.0.0
   - tao-example ==1.0.0
@@ -2013,7 +2018,7 @@ default-package-overrides:
   - tasty-kat ==0.0.3
   - tasty-program ==1.0.5
   - tasty-quickcheck ==0.10
-  - tasty-silver ==3.1.11
+  - tasty-silver ==3.1.12
   - tasty-smallcheck ==0.8.1
   - tasty-stats ==0.2.0.4
   - tasty-th ==0.1.7
@@ -2035,8 +2040,8 @@ default-package-overrides:
   - test-framework-th ==0.2.4
   - testing-feat ==1.1.0.0
   - testing-type-modifiers ==0.1.0.1
-  - texmath ==0.11.1
-  - text ==1.2.3.0
+  - texmath ==0.11.1.1
+  - text ==1.2.3.1
   - text-binary ==0.2.1.1
   - text-builder ==0.5.4.3
   - text-conversions ==0.3.0
@@ -2057,7 +2062,7 @@ default-package-overrides:
   - th-abstraction ==0.2.8.0
   - th-data-compat ==0.0.2.7
   - th-desugar ==1.8
-  - these ==0.7.4
+  - these ==0.7.5
   - th-expand-syns ==0.4.4.0
   - th-extras ==0.0.0.4
   - th-lift ==0.7.11
@@ -2117,7 +2122,7 @@ default-package-overrides:
   - tuples-homogenous-h98 ==0.1.1.0
   - tuple-sop ==0.3.1.0
   - tuple-th ==0.2.5
-  - turtle ==1.5.10
+  - turtle ==1.5.12
   - TypeCompose ==0.9.13
   - typed-process ==0.2.3.0
   - type-fun ==0.1.1
@@ -2125,7 +2130,7 @@ default-package-overrides:
   - type-level-integers ==0.0.1
   - type-level-kv-list ==1.1.0
   - type-level-numbers ==0.1.1.1
-  - typelits-witnesses ==0.3.0.2
+  - typelits-witnesses ==0.3.0.3
   - typenums ==0.1.2
   - type-of-html ==1.4.0.1
   - type-of-html-static ==0.1.0.2
@@ -2133,10 +2138,10 @@ default-package-overrides:
   - type-spec ==0.3.0.1
   - typography-geometry ==1.0.0.1
   - tz ==0.1.3.1
-  - tzdata ==0.1.20180122.0
+  - tzdata ==0.1.20180501.0
   - uglymemo ==0.1.0.1
   - unbounded-delays ==0.1.1.0
-  - unbound-generics ==0.3.3
+  - unbound-generics ==0.3.4
   - unboxed-ref ==0.4.0.0
   - uncertain ==0.3.1.0
   - unconstrained ==0.1.0.2
@@ -2163,7 +2168,7 @@ default-package-overrides:
   - unix-bytestring ==0.3.7.3
   - unix-compat ==0.5.1
   - unix-time ==0.3.8
-  - unliftio ==0.2.8.0
+  - unliftio ==0.2.8.1
   - unliftio-core ==0.1.2.0
   - unlit ==0.4.0.0
   - unordered-containers ==0.2.9.0
@@ -2199,7 +2204,7 @@ default-package-overrides:
   - vec ==0.1
   - vector ==0.12.0.1
   - vector-algorithms ==0.7.0.4
-  - vector-binary-instances ==0.2.4
+  - vector-binary-instances ==0.2.5
   - vector-buffer ==0.4.1
   - vector-builder ==0.3.6
   - vector-bytes-instances ==0.1.1
@@ -2226,7 +2231,7 @@ default-package-overrides:
   - wai-conduit ==3.0.0.4
   - wai-cors ==0.2.6
   - wai-eventsource ==3.0.0
-  - wai-extra ==3.0.24.2
+  - wai-extra ==3.0.24.3
   - wai-handler-launch ==3.0.2.4
   - wai-logger ==2.3.2
   - wai-middleware-caching ==0.1.0.2
@@ -2257,13 +2262,13 @@ default-package-overrides:
   - web-routes-hsp ==0.24.6.1
   - web-routes-wai ==0.24.3.1
   - webrtc-vad ==0.1.0.3
-  - websockets ==0.12.5.1
+  - websockets ==0.12.5.2
   - websockets-snap ==0.10.3.0
   - weigh ==0.0.12
   - wide-word ==0.1.0.6
   - wikicfp-scraper ==0.1.0.9
-  - wild-bind ==0.1.2.1
-  - wild-bind-x11 ==0.2.0.4
+  - wild-bind ==0.1.2.3
+  - wild-bind-x11 ==0.2.0.6
   - Win32-notify ==0.3.0.3
   - wire-streams ==0.1.1.0
   - withdependencies ==0.2.4.2
@@ -2294,7 +2299,7 @@ default-package-overrides:
   - X11 ==1.9
   - X11-xft ==0.3.1
   - x11-xim ==0.0.9.0
-  - x509 ==1.7.3
+  - x509 ==1.7.4
   - x509-store ==1.6.6
   - x509-system ==1.6.6
   - x509-validation ==1.6.10
@@ -2309,7 +2314,7 @@ default-package-overrides:
   - xml-basic ==0.1.3.1
   - xmlbf ==0.4.1
   - xmlbf-xeno ==0.1.1
-  - xml-conduit ==1.8.0
+  - xml-conduit ==1.8.0.1
   - xml-conduit-parse ==0.3.1.2
   - xml-conduit-writer ==0.1.1.2
   - xmlgen ==0.6.2.2
@@ -2331,7 +2336,7 @@ default-package-overrides:
   - yesod ==1.6.0
   - yesod-alerts ==0.1.2.0
   - yesod-auth ==1.6.4.1
-  - yesod-auth-fb ==1.9.0
+  - yesod-auth-fb ==1.9.1
   - yesod-auth-hashdb ==1.7
   - yesod-bin ==1.6.0.3
   - yesod-core ==1.6.6
@@ -2343,7 +2348,7 @@ default-package-overrides:
   - yesod-gitrepo ==0.3.0
   - yesod-gitrev ==0.2.0.0
   - yesod-newsfeed ==1.6.1.0
-  - yesod-paginator ==1.1.0.0
+  - yesod-paginator ==1.1.0.1
   - yesod-persistent ==1.6.0
   - yesod-recaptcha2 ==0.2.4
   - yesod-sitemap ==1.6.0
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 43ba2d000eb5..bb9b0e5d5fe6 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -131,8 +131,16 @@ self: super: builtins.intersectAttrs super {
   x509-system = if pkgs.stdenv.hostPlatform.isDarwin && !pkgs.stdenv.cc.nativeLibc
     then let inherit (pkgs.darwin) security_tool;
       in pkgs.lib.overrideDerivation (addBuildDepend super.x509-system security_tool) (drv: {
+        # darwin.security_tool is broken in Mojave (#45042)
+
+        # We will use the system provided security for now.
+        # Beware this WILL break in sandboxes!
+
+        # TODO(matthewbauer): If someone really needs this to work in sandboxes,
+        # I think we can add a propagatedImpureHost dep here, but I’m hoping to
+        # get a proper fix available soonish.
         postPatch = (drv.postPatch or "") + ''
-          substituteInPlace System/X509/MacOS.hs --replace security ${security_tool}/bin/security
+          substituteInPlace System/X509/MacOS.hs --replace security /usr/bin/security
         '';
       })
     else super.x509-system;
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 648ee4b6b9b6..4c17581f9d51 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPackages, buildHaskellPackages, ghc
-, jailbreak-cabal, hscolour, cpphs, nodejs
+, jailbreak-cabal, hscolour, cpphs, nodejs, shellFor
 }:
 
 let
@@ -48,7 +48,9 @@ in
 # We cannot enable -j<n> parallelism for libraries because GHC is far more
 # likely to generate a non-determistic library ID in that case. Further
 # details are at <https://github.com/peti/ghc-library-id-bug>.
-, enableParallelBuilding ? (stdenv.lib.versionOlder "7.8" ghc.version && !isLibrary) || stdenv.lib.versionOlder "8.0.1" ghc.version
+#
+# Currently disabled for aarch64. See https://ghc.haskell.org/trac/ghc/ticket/15449.
+, enableParallelBuilding ? ((stdenv.lib.versionOlder "7.8" ghc.version && !isLibrary) || stdenv.lib.versionOlder "8.0.1" ghc.version) && !(stdenv.buildPlatform.isAarch64)
 , maintainers ? []
 , doCoverage ? false
 , doHaddock ? !(ghc.isHaLVM or false)
@@ -174,8 +176,7 @@ let
     (optionalString (versionOlder "7.10" ghc.version && !isHaLVM) "-threaded")
   ];
 
-  isHaskellPkg = x: (x ? pname) && (x ? version) && (x ? env);
-  isSystemPkg = x: !isHaskellPkg x;
+  isHaskellPkg = x: x ? isHaskellLibrary;
 
   allPkgconfigDepends = pkgconfigDepends ++ libraryPkgconfigDepends ++ executablePkgconfigDepends ++
                         optionals doCheck testPkgconfigDepends ++ optionals doBenchmark benchmarkPkgconfigDepends;
@@ -192,20 +193,15 @@ let
                      optionals doCheck (testDepends ++ testHaskellDepends ++ testSystemDepends ++ testFrameworkDepends) ++
                      optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkFrameworkDepends);
 
-  allBuildInputs = propagatedBuildInputs ++ otherBuildInputs;
 
-  haskellBuildInputs = stdenv.lib.filter isHaskellPkg allBuildInputs;
-  systemBuildInputs = stdenv.lib.filter isSystemPkg allBuildInputs;
-
-  # When not cross compiling, also include Setup.hs dependencies.
-  ghcEnv = ghc.withPackages (p:
-    haskellBuildInputs ++ stdenv.lib.optional (!isCross) setupHaskellDepends);
+  allBuildInputs = propagatedBuildInputs ++ otherBuildInputs ++ depsBuildBuild;
+  isHaskellPartition =
+    stdenv.lib.partition isHaskellPkg allBuildInputs;
 
   setupCommand = "./Setup";
 
   ghcCommand' = if isGhcjs then "ghcjs" else "ghc";
   ghcCommand = "${ghc.targetPrefix}${ghcCommand'}";
-  ghcCommandCaps= toUpper ghcCommand';
 
   nativeGhcCommand = "${nativeGhc.targetPrefix}ghc";
 
@@ -215,8 +211,7 @@ let
       continue
     fi
   '';
-
-in
+in stdenv.lib.fix (drv:
 
 assert allPkgconfigDepends != [] -> pkgconfig != null;
 
@@ -429,6 +424,13 @@ stdenv.mkDerivation ({
 
     compiler = ghc;
 
+
+    getBuildInputs = {
+      inherit propagatedBuildInputs otherBuildInputs allPkgconfigDepends;
+      haskellBuildInputs = isHaskellPartition.right;
+      systemBuildInputs = isHaskellPartition.wrong;
+    };
+
     isHaskellLibrary = isLibrary;
 
     # TODO: ask why the split outputs are configurable at all?
@@ -439,23 +441,10 @@ stdenv.mkDerivation ({
     # TODO: fetch the self from the fixpoint instead
     haddockDir = self: if doHaddock then "${docdir self.doc}/html" else null;
 
-    env = stdenv.mkDerivation {
-      name = "interactive-${pname}-${version}-environment";
-      buildInputs = systemBuildInputs;
-      nativeBuildInputs = [ ghcEnv ] ++ nativeBuildInputs;
-      LANG = "en_US.UTF-8";
-      LOCALE_ARCHIVE = optionalString (stdenv.hostPlatform.libc == "glibc") "${glibcLocales}/lib/locale/locale-archive";
-      shellHook = ''
-        export NIX_${ghcCommandCaps}="${ghcEnv}/bin/${ghcCommand}"
-        export NIX_${ghcCommandCaps}PKG="${ghcEnv}/bin/${ghcCommand}-pkg"
-        # TODO: is this still valid?
-        export NIX_${ghcCommandCaps}_DOCDIR="${ghcEnv}/share/doc/ghc/html"
-        ${if isHaLVM
-            then ''export NIX_${ghcCommandCaps}_LIBDIR="${ghcEnv}/lib/HaLVM-${ghc.version}"''
-            else ''export NIX_${ghcCommandCaps}_LIBDIR="${ghcEnv}/lib/${ghcCommand}-${ghc.version}"''}
-        ${shellHook}
-      '';
+    env = shellFor {
+      packages = p: [ drv ];
     };
+
   };
 
   meta = { inherit homepage license platforms; }
@@ -489,3 +478,4 @@ stdenv.mkDerivation ({
 // optionalAttrs (hardeningDisable != []) { inherit hardeningDisable; }
 // optionalAttrs (stdenv.buildPlatform.libc == "glibc"){ LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; }
 )
+)
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 93e36fa78890..352d97d497ab 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -139,6 +139,8 @@ self: {
        pname = "AC-HalfInteger";
        version = "1.2.1";
        sha256 = "0wwnb7a6dmzgh122qg322mi3vpyk93xw52cql6dx18sqdbxyxdbb";
+       revision = "1";
+       editedCabalFile = "02k1fg86iyzbb0bxfn8r6s7z8bkahr8y02wps1l5j958jpckd6c9";
        libraryHaskellDepends = [ base ];
        description = "Efficient half-integer type";
        license = stdenv.lib.licenses.bsd3;
@@ -151,6 +153,8 @@ self: {
        pname = "AC-MiniTest";
        version = "1.1.1";
        sha256 = "0ish59q50npljgmfrcffcyx6scf99xdncmy1kpwy1i5622r1kcps";
+       revision = "1";
+       editedCabalFile = "0faw83njfarccnad1hgy1cf3wmihfghk3qhw2s7zf6p84v6zc27y";
        libraryHaskellDepends = [ base transformers ];
        description = "A simple test framework";
        license = stdenv.lib.licenses.bsd3;
@@ -185,6 +189,8 @@ self: {
        pname = "AC-Terminal";
        version = "1.0";
        sha256 = "0d0vdqf7i49d2hsdm7x9ad88l7kfc1wvkzppzhs8k9xf4gbrvl43";
+       revision = "1";
+       editedCabalFile = "1i9bjryhccdp8gfm9xs5bbfsy32hpyv2zckd95m7g6bc4jvp8cjm";
        libraryHaskellDepends = [ ansi-terminal base ];
        description = "Trivial wrapper over ansi-terminal";
        license = stdenv.lib.licenses.bsd3;
@@ -209,6 +215,8 @@ self: {
        pname = "AC-Vector";
        version = "2.3.2";
        sha256 = "04ahf6ldfhvzbml9xd6yplygn8ih7b8zz7cw03hkr053g5kzylay";
+       revision = "1";
+       editedCabalFile = "05l4sk0lz9iml7282zh9pxqr538s6kjhhl6zrbdwlry21sn14pc0";
        libraryHaskellDepends = [ base ];
        description = "Efficient geometric vectors and transformations";
        license = stdenv.lib.licenses.bsd3;
@@ -2758,24 +2766,6 @@ self: {
      }:
      mkDerivation {
        pname = "ChasingBottoms";
-       version = "1.3.1.4";
-       sha256 = "06cynx6hcbfpky7qq3b3mjjgwbnaxkwin3znbwq4b9ikiw0ng633";
-       libraryHaskellDepends = [
-         base containers mtl QuickCheck random syb
-       ];
-       testHaskellDepends = [
-         array base containers mtl QuickCheck random syb
-       ];
-       description = "For testing partial and infinite values";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "ChasingBottoms_1_3_1_5" = callPackage
-    ({ mkDerivation, array, base, containers, mtl, QuickCheck, random
-     , syb
-     }:
-     mkDerivation {
-       pname = "ChasingBottoms";
        version = "1.3.1.5";
        sha256 = "0hfk2cb9da5fvr96x8lzij93yl3rvax2id9a8gihd5j5aq4kxx30";
        libraryHaskellDepends = [
@@ -2786,7 +2776,6 @@ self: {
        ];
        description = "For testing partial and infinite values";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "CheatSheet" = callPackage
@@ -5437,19 +5426,6 @@ self: {
      }) {};
 
   "Fin" = callPackage
-    ({ mkDerivation, alg, base, foldable1, natural-induction, peano }:
-     mkDerivation {
-       pname = "Fin";
-       version = "0.2.5.0";
-       sha256 = "0jh64an111k7a3limqc03irk914s8asy6h4iik7layw4pagpsiyc";
-       libraryHaskellDepends = [
-         alg base foldable1 natural-induction peano
-       ];
-       description = "Finite totally-ordered sets";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "Fin_0_2_6_0" = callPackage
     ({ mkDerivation, alg, base, foldable1, natural-induction, peano
      , universe-base
      }:
@@ -5462,7 +5438,6 @@ self: {
        ];
        description = "Finite totally-ordered sets";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "Finance-Quote-Yahoo" = callPackage
@@ -5605,8 +5580,8 @@ self: {
      }:
      mkDerivation {
        pname = "FontyFruity";
-       version = "0.5.3.3";
-       sha256 = "0p02w0v93y11f7rzsc1im2rvld6h0pgrhmd827ypzamibry6xl5h";
+       version = "0.5.3.4";
+       sha256 = "0gavpjv83vg5q2x254d3zi3kw5aprl6z8ifcn0vs6hymaj0qgls3";
        libraryHaskellDepends = [
          base binary bytestring containers deepseq directory filepath text
          vector xml
@@ -5828,8 +5803,8 @@ self: {
      }:
      mkDerivation {
        pname = "Frames";
-       version = "0.5.0";
-       sha256 = "0dd2gqgxjhy23a9xhz62gzashjqmcv34gkcys4wz9l6y2fk1a5xl";
+       version = "0.6.0";
+       sha256 = "0ri1x80za9gjcv44xk9kgx5w5jczr2p26jlpwhmn1sgmjdyc2m02";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -5873,6 +5848,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "Frames-dsv" = callPackage
+    ({ mkDerivation, base, bytestring, Frames, hspec, hw-dsv, pipes
+     , template-haskell, text, vector, vinyl
+     }:
+     mkDerivation {
+       pname = "Frames-dsv";
+       version = "0.1.1";
+       sha256 = "0932k8aqn9c08ijbs29g04gcka441gg424g90cqd4ky9b3yxzm7w";
+       libraryHaskellDepends = [
+         base bytestring Frames hw-dsv pipes template-haskell text vector
+         vinyl
+       ];
+       testHaskellDepends = [ base Frames hspec pipes ];
+       description = "Alternative CSV parser for the Frames package";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "Frank" = callPackage
     ({ mkDerivation, base, mtl, newtype, she, void }:
      mkDerivation {
@@ -6600,28 +6592,6 @@ self: {
      }:
      mkDerivation {
        pname = "Glob";
-       version = "0.9.2";
-       sha256 = "1rbwcq9w9951qsnp13vqcm9r01yax2yh1wk8s4zxa3ckk9717iwg";
-       libraryHaskellDepends = [
-         base containers directory dlist filepath transformers
-         transformers-compat
-       ];
-       testHaskellDepends = [
-         base containers directory dlist filepath HUnit QuickCheck
-         test-framework test-framework-hunit test-framework-quickcheck2
-         transformers transformers-compat
-       ];
-       description = "Globbing library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "Glob_0_9_3" = callPackage
-    ({ mkDerivation, base, containers, directory, dlist, filepath
-     , HUnit, QuickCheck, test-framework, test-framework-hunit
-     , test-framework-quickcheck2, transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "Glob";
        version = "0.9.3";
        sha256 = "1s69lk3ic6zlkikhvb78ly9wl3g70a1h1m6ndhsca01pp8z8axrs";
        libraryHaskellDepends = [
@@ -6635,7 +6605,6 @@ self: {
        ];
        description = "Globbing library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "GlomeTrace" = callPackage
@@ -10208,6 +10177,8 @@ self: {
        pname = "IORefCAS";
        version = "0.2.0.1";
        sha256 = "06vfck59x30mqa9h2ljd4r2cx1ks91b9gwcr928brp7filsq9fdb";
+       revision = "1";
+       editedCabalFile = "0s01hpvl0dqb6lszp1s76li1i1k57j1bzhwhfwz552w85pxpv7ib";
        libraryHaskellDepends = [ base bits-atomic ghc-prim ];
        testHaskellDepends = [
          base bits-atomic ghc-prim HUnit QuickCheck time
@@ -10234,8 +10205,8 @@ self: {
      }:
      mkDerivation {
        pname = "IPv6Addr";
-       version = "1.1.0";
-       sha256 = "0f7dckgiv5yq87gb7fd31k0h4adqi6xmdc010rdb6yfgpbk10k29";
+       version = "1.1.1";
+       sha256 = "0l2yfn46xyv0ib30k0kmhw3vl4vfmziqinhbynpi4yrmy6lmj29v";
        libraryHaskellDepends = [
          aeson attoparsec base iproute network network-info random text
        ];
@@ -10677,14 +10648,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "JuicyPixels_3_3_1" = callPackage
+  "JuicyPixels_3_3_2" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, deepseq, mtl
      , primitive, transformers, vector, zlib
      }:
      mkDerivation {
        pname = "JuicyPixels";
-       version = "3.3.1";
-       sha256 = "0k60hc156pj7dj9qqcwi1v3vibfsszccll96fbmn4hrkcqgn1aza";
+       version = "3.3.2";
+       sha256 = "120jlrqwa7i32yddwbyl6iyx99gx1fvrizb5lybj87p4fr7cxj6z";
        libraryHaskellDepends = [
          base binary bytestring containers deepseq mtl primitive
          transformers vector zlib
@@ -10783,8 +10754,8 @@ self: {
        pname = "JuicyPixels-scale-dct";
        version = "0.1.2";
        sha256 = "04rhrmjnh12hh2nz04k245avgdcwqfyjnsbpcrz8j9328j41nf7p";
-       revision = "1";
-       editedCabalFile = "1snx05qpllybd9yvy03p0lpnmimj0m24x1bxa4svxcsiv56yv9w8";
+       revision = "2";
+       editedCabalFile = "0pp67ygrd3m6q8ry5229m1b2rhy401gb74368h09bqc6wa3g7ygv";
        libraryHaskellDepends = [
          base base-compat carray fft JuicyPixels
        ];
@@ -12752,8 +12723,8 @@ self: {
      }:
      mkDerivation {
        pname = "MusicBrainz";
-       version = "0.4";
-       sha256 = "0aanc1c43di5wq9c2w0b5lw3p24cwpaksgxy79lqm8qxj8qd3jxr";
+       version = "0.4.1";
+       sha256 = "0mydq3bjf15ksfrh4lf947ka43i3978q58y2aij3aqd763v2jb16";
        libraryHaskellDepends = [
          aeson base bytestring conduit conduit-extra HTTP http-conduit
          http-types monad-control resourcet text time time-locale-compat
@@ -15038,14 +15009,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "QuickCheck_2_12_4" = callPackage
+  "QuickCheck_2_12_6_1" = callPackage
     ({ mkDerivation, base, containers, deepseq, erf, process, random
      , template-haskell, tf-random, transformers
      }:
      mkDerivation {
        pname = "QuickCheck";
-       version = "2.12.4";
-       sha256 = "0pagxjsj2anyy1af0qc7b5mydblhnk3976bda3qxv47qp4kb5xn9";
+       version = "2.12.6.1";
+       sha256 = "0w51zbbvh46g3wllqfmx251xzbnddy94ixgm6rf8gd95qvssfahb";
        libraryHaskellDepends = [
          base containers deepseq erf random template-haskell tf-random
          transformers
@@ -15552,6 +15523,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "Rasterific_0_7_4_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, dlist, FontyFruity
+     , free, JuicyPixels, mtl, primitive, transformers, vector
+     , vector-algorithms
+     }:
+     mkDerivation {
+       pname = "Rasterific";
+       version = "0.7.4.1";
+       sha256 = "1d0j7xf2xbgrlny30qwm52wby51ic2cqlhb867a7a03k02p7ib2b";
+       libraryHaskellDepends = [
+         base bytestring containers dlist FontyFruity free JuicyPixels mtl
+         primitive transformers vector vector-algorithms
+       ];
+       description = "A pure haskell drawing engine";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ReadArgs" = callPackage
     ({ mkDerivation, base, hspec, system-filepath, text }:
      mkDerivation {
@@ -17381,8 +17370,8 @@ self: {
      }:
      mkDerivation {
        pname = "StrictCheck";
-       version = "0.1.0";
-       sha256 = "1psnawzf9ym1gz6i6qi5rpx8sm7idi30wryb2hq39flqjxviqk0z";
+       version = "0.1.1";
+       sha256 = "1mm1kyrrrwgxdjnafazggblcjlin3i8bjqrj6q0l7xrgllnqalv2";
        libraryHaskellDepends = [
          base bifunctors containers generics-sop QuickCheck template-haskell
        ];
@@ -19987,8 +19976,8 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate";
-       version = "1.2.0.0";
-       sha256 = "0y8wx09smrcxkyyklrf4lrilqasbmaw1w1ga9y110bqgywkw4pmj";
+       version = "1.2.0.1";
+       sha256 = "0vglmasqgq0h8fvm9z8l2b3sygqvix8vr6c3n357gkr2mpz6gq8h";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          ansi-terminal ansi-wl-pprint base base-orphans bytestring
@@ -20283,6 +20272,8 @@ self: {
        pname = "accelerate-io";
        version = "1.2.0.0";
        sha256 = "13pqqsd5pbxmgsxnp9w141mnwscnlmbhxaz6f5jx4ssipnma2pwf";
+       revision = "1";
+       editedCabalFile = "0n1bch7rb2pvfqajjzaxrlw06f7vr583ckvn2ldr6lv59w1jrk3l";
        libraryHaskellDepends = [
          accelerate array base bmp bytestring primitive repa vector
        ];
@@ -21016,11 +21007,11 @@ self: {
     ({ mkDerivation, base, hspec }:
      mkDerivation {
        pname = "acme-smuggler";
-       version = "0.1.0.1";
-       sha256 = "1ivajii0gji1inc9qmli3ri3kyzcxyw90m469gs7a16kbprcs3kl";
+       version = "1.1.1.0";
+       sha256 = "0w4m213dcn07hxbnmkbrg2xgfdv9hlfz72ax9pcinswc10zwph1q";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
-       description = "Smuggle arbitrary values in ()";
+       description = "Smuggle arbitrary values in arbitrary types";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -21042,6 +21033,8 @@ self: {
        pname = "acme-stringly-typed";
        version = "1.0.0.0";
        sha256 = "18wvsvdmbwh9dcawiy4f9pn4vg98kdq9zxc37sz7dpmaigimw16f";
+       revision = "1";
+       editedCabalFile = "0i5hark97zl45iyiijxj07d2pg112kh3jcmjmscpbss5l5n02h23";
        libraryHaskellDepends = [ base ];
        description = "Stringly Typed Programming";
        license = stdenv.lib.licenses.bsd3;
@@ -21113,6 +21106,8 @@ self: {
        pname = "acquire";
        version = "0.2.0.1";
        sha256 = "0l6c3kdvg71z6pfjg71jgaffb403w8y8lixw4dhi7phhhb91phn2";
+       revision = "1";
+       editedCabalFile = "1ihmdh0dpppgshsh7mxdz6bm9kn632xxd3g6nkigpjpfrb372q7z";
        libraryHaskellDepends = [ base ];
        description = "Abstraction over management of resources";
        license = stdenv.lib.licenses.mit;
@@ -21692,34 +21687,6 @@ self: {
      }:
      mkDerivation {
        pname = "aeson-compat";
-       version = "0.3.8";
-       sha256 = "0j4v13pgk21zy8hqkbx8hw0n05jdl17qphxz9rj4h333pr547r3i";
-       revision = "1";
-       editedCabalFile = "0ayf5hkhl63lmlxpl7w5zvnz0lvpxb2rwmf0wbslff0y2s449mbf";
-       libraryHaskellDepends = [
-         aeson attoparsec attoparsec-iso8601 base base-compat bytestring
-         containers exceptions hashable scientific tagged text time
-         time-locale-compat unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base base-compat base-orphans bytestring
-         containers exceptions hashable QuickCheck quickcheck-instances
-         scientific tagged tasty tasty-hunit tasty-quickcheck text time
-         time-locale-compat unordered-containers vector
-       ];
-       description = "Compatibility layer for aeson";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "aeson-compat_0_3_9" = callPackage
-    ({ mkDerivation, aeson, attoparsec, attoparsec-iso8601, base
-     , base-compat, base-orphans, bytestring, containers, exceptions
-     , hashable, QuickCheck, quickcheck-instances, scientific, tagged
-     , tasty, tasty-hunit, tasty-quickcheck, text, time
-     , time-locale-compat, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "aeson-compat";
        version = "0.3.9";
        sha256 = "1j13gykv4ryvmr14w5blz0nnpdb4p0hpa27wahw3mhb1lwdr8hz0";
        libraryHaskellDepends = [
@@ -21735,7 +21702,6 @@ self: {
        ];
        description = "Compatibility layer for aeson";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "aeson-decode" = callPackage
@@ -22003,8 +21969,8 @@ self: {
     ({ mkDerivation, aeson, base }:
      mkDerivation {
        pname = "aeson-options";
-       version = "0.0.0";
-       sha256 = "0z2r1rnh819wms8l1scv18l178i2y1ixcjm6ir59vir5bl19wxm0";
+       version = "0.1.0";
+       sha256 = "0d5wfcgsjrpmangknmrr2lxvr3h96d65y3vkkas6m9aqi1rrkqv4";
        libraryHaskellDepends = [ aeson base ];
        description = "Options to derive FromJSON/ToJSON instances";
        license = stdenv.lib.licenses.mit;
@@ -22947,6 +22913,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "alarmclock_0_6_0_2" = callPackage
+    ({ mkDerivation, async, base, clock, hspec, stm, time
+     , unbounded-delays
+     }:
+     mkDerivation {
+       pname = "alarmclock";
+       version = "0.6.0.2";
+       sha256 = "1zhq3sx6x54v7cjzmjvcs7pzqyql3x4vk3b5n4x7xhgxs54xdasc";
+       libraryHaskellDepends = [
+         async base clock stm time unbounded-delays
+       ];
+       testHaskellDepends = [
+         async base clock hspec stm time unbounded-delays
+       ];
+       description = "Wake up and perform an action at a certain time";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "alea" = callPackage
     ({ mkDerivation, base, optparse-applicative, random, text }:
      mkDerivation {
@@ -23047,6 +23032,8 @@ self: {
        pname = "alex-tools";
        version = "0.4";
        sha256 = "0qyh3dr5nh7whv3qh431l8x4lx3nzkildlyl3xgnaxpbs8gr8sgi";
+       revision = "1";
+       editedCabalFile = "1dwr1w2zhbvwnjc65zzmwfmwb1yxxyyfrjypvqp3m7fpc7dg1nxg";
        libraryHaskellDepends = [ base deepseq template-haskell text ];
        description = "A set of functions for a common use case of Alex";
        license = stdenv.lib.licenses.isc;
@@ -23075,23 +23062,11 @@ self: {
     ({ mkDerivation, base, util }:
      mkDerivation {
        pname = "alg";
-       version = "0.2.6.0";
-       sha256 = "0y0qhhmyjzd8sf6v74066yx41nl1zsnsmk8scjvdym8j8k8mvrpk";
-       libraryHaskellDepends = [ base util ];
-       description = "Algebraic structures";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "alg_0_2_7_0" = callPackage
-    ({ mkDerivation, base, util }:
-     mkDerivation {
-       pname = "alg";
        version = "0.2.7.0";
        sha256 = "00ih68mh1494s856ygkc887m0vhrs2sfchjgqrsgw8v7lqcqjsx6";
        libraryHaskellDepends = [ base util ];
        description = "Algebraic structures";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "alga" = callPackage
@@ -27028,8 +27003,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-athena";
-       version = "6.0.3";
-       sha256 = "0w50dw9fig4fhk40fjgj1hggs1jbw0yhdrzinmwr2a8lg3nxx5z6";
+       version = "6.1.1";
+       sha256 = "1scshv7whw3ylp9nq8zgz12rbkvwq6hmcwn04s8h7ygnb9k3zy21";
        libraryHaskellDepends = [
          amazonka amazonka-athena amazonka-core base lens resourcet text
          unliftio-core
@@ -27045,8 +27020,8 @@ self: {
     ({ mkDerivation, aeson, antiope-s3, avro, base, bytestring, text }:
      mkDerivation {
        pname = "antiope-contract";
-       version = "6.0.3";
-       sha256 = "001qywhyk013148g4cjw5xkr6b006zvn9f18m98mj5wg6wm1yxzc";
+       version = "6.1.1";
+       sha256 = "14nvb786w4cqam3nd3wjfr7m0ysbr07vjm0ivwsxyvda3mwkn7pz";
        libraryHaskellDepends = [
          aeson antiope-s3 avro base bytestring text
        ];
@@ -27061,8 +27036,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-core";
-       version = "6.0.3";
-       sha256 = "1zrp7dp86vgcj215ykwagjwpqnz137qbi1czhasxq3bby6rmkvca";
+       version = "6.1.1";
+       sha256 = "0vmqyhxwfs45x3cqrlm1nij0cfnw2bk6sq3ldq6vrfpzm892g6py";
        libraryHaskellDepends = [
          amazonka amazonka-core base bytestring generic-lens http-client
          lens monad-logger mtl resourcet transformers unliftio-core
@@ -27082,8 +27057,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-dynamodb";
-       version = "6.0.3";
-       sha256 = "1s4x1y88zzac8i5p2yg28q91lknh4cxm72fsxqbpdwq43p1iynb0";
+       version = "6.1.1";
+       sha256 = "1kjsqka70bnkjzgdi427jqihlnm997ii147nzj8w04w5d6ynm2ly";
        libraryHaskellDepends = [
          amazonka amazonka-core amazonka-dynamodb antiope-core base
          generic-lens lens text unliftio-core unordered-containers
@@ -27103,8 +27078,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-messages";
-       version = "6.0.3";
-       sha256 = "1mvg36wbj5knqrzmrvh9pn7aw1a22pcv1j8dafvg9qzm6wkr2liw";
+       version = "6.1.1";
+       sha256 = "0nklh0wi1y6drpm7i4ssjc8xx4b20knpnghn2yv839ph6w0f0r13";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core amazonka-s3 amazonka-sqs antiope-s3
          base generic-lens lens lens-aeson monad-loops network-uri text
@@ -27120,24 +27095,26 @@ self: {
      }) {};
 
   "antiope-s3" = callPackage
-    ({ mkDerivation, amazonka, amazonka-core, amazonka-s3, base
-     , bytestring, conduit, conduit-extra, exceptions, generic-lens
-     , http-types, lens, monad-logger, network-uri, resourcet, text
+    ({ mkDerivation, amazonka, amazonka-core, amazonka-s3, antiope-core
+     , base, bytestring, conduit, conduit-extra, exceptions
+     , generic-lens, hedgehog, hspec, http-types, hw-hspec-hedgehog
+     , lens, monad-logger, mtl, network-uri, resourcet, text
      , unliftio-core
      }:
      mkDerivation {
        pname = "antiope-s3";
-       version = "6.0.3";
-       sha256 = "17ffjl3myk0575cds8z49rv9nkc72yvx37ka5l4r43p8faj82q2m";
+       version = "6.1.1";
+       sha256 = "0aq0qk377wvxm3kgy63zk382rnvjxx8csxj63vnmc5gikz5i2ya7";
        libraryHaskellDepends = [
-         amazonka amazonka-core amazonka-s3 base bytestring conduit
-         conduit-extra exceptions generic-lens http-types lens monad-logger
-         network-uri resourcet text unliftio-core
+         amazonka amazonka-core amazonka-s3 antiope-core base bytestring
+         conduit conduit-extra exceptions generic-lens http-types lens
+         monad-logger mtl network-uri resourcet text unliftio-core
        ];
        testHaskellDepends = [
-         amazonka amazonka-core amazonka-s3 base bytestring conduit
-         conduit-extra exceptions generic-lens http-types lens monad-logger
-         network-uri resourcet text unliftio-core
+         amazonka amazonka-core amazonka-s3 antiope-core base bytestring
+         conduit conduit-extra exceptions generic-lens hedgehog hspec
+         http-types hw-hspec-hedgehog lens monad-logger mtl network-uri
+         resourcet text unliftio-core
        ];
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -27149,8 +27126,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-sns";
-       version = "6.0.3";
-       sha256 = "1zxwhlaypk0pykrg39zi1zlz7zs0dha4ri3b6cb0qdbprcwbfvvx";
+       version = "6.1.1";
+       sha256 = "0jdlm3sl7w5cq2hpikm73763np56g16z48b34wavg9yblrdfvvn7";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core amazonka-sns base generic-lens lens
          text unliftio-core
@@ -27170,8 +27147,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-sqs";
-       version = "6.0.3";
-       sha256 = "0clljlvbz6irxpfjrzhc541991r9spsw8aj5mblb666llc34nbax";
+       version = "6.1.1";
+       sha256 = "189wgl3qpmf4amgc571zv88zpdblaqcbcnw93a6lk6i7rzc6h40r";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core amazonka-s3 amazonka-sqs
          antiope-messages antiope-s3 base generic-lens lens lens-aeson
@@ -27347,8 +27324,8 @@ self: {
      }:
      mkDerivation {
        pname = "apart";
-       version = "0.1.1";
-       sha256 = "1xrmdzaf56gzmrg596kfkp01pvn9m9w2mvz58z3zhx6jda1zvaan";
+       version = "0.1.3";
+       sha256 = "16y5k372kmqsn81bksl9j01nbfhsk0cwriwpfycjsnzgmg8wnkpb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -27367,14 +27344,14 @@ self: {
 
   "apecs" = callPackage
     ({ mkDerivation, base, containers, criterion, linear, mtl
-     , QuickCheck, stm, template-haskell, vector
+     , QuickCheck, template-haskell, vector
      }:
      mkDerivation {
        pname = "apecs";
-       version = "0.5.0.0";
-       sha256 = "11ya44z5lk2vk0pwz1m8ygr0x6gkf7xhwiy0k28s5kd65vlpx6bw";
+       version = "0.5.1.1";
+       sha256 = "1251i3nz2ipg21qyys34ilxi1bnchf4a2v4571l54kaysk8p8lhi";
        libraryHaskellDepends = [
-         base containers mtl stm template-haskell vector
+         base containers mtl template-haskell vector
        ];
        testHaskellDepends = [
          base containers criterion linear QuickCheck vector
@@ -27877,8 +27854,8 @@ self: {
      }:
      mkDerivation {
        pname = "app-settings";
-       version = "0.2.0.11";
-       sha256 = "1cahrpf42g5ids4k6hlzys1kmbgy1ypgax9ljckwymafradcc53a";
+       version = "0.2.0.12";
+       sha256 = "1nncn8vmq55m4b6zh77mdmx19d1s7z0af4pmz1v082bpf2wril9b";
        libraryHaskellDepends = [
          base containers directory mtl parsec text
        ];
@@ -29306,6 +29283,8 @@ self: {
        pname = "asn1-codec";
        version = "0.2.0";
        sha256 = "03c5dknklv8zj69fyhkdfvb7abcp68byhv2h8mmlnfwd9nz8fsrg";
+       revision = "1";
+       editedCabalFile = "0d1m0i06i0agh64hbc182yrmd4lfwi6kwmms0gh2yh91ympmyd89";
        libraryHaskellDepends = [
          base bytestring containers contravariant cryptonite hashable
          integer-gmp memory network pretty stm text vector
@@ -30354,6 +30333,8 @@ self: {
        pname = "atto-lisp";
        version = "0.2.2.3";
        sha256 = "00a7w4jysx55y5xxmgm09akvhxxa3fs68wqn6mp789bvhvdk9khd";
+       revision = "1";
+       editedCabalFile = "0im8kc54hkfj578ck79j0ijc3iaigvx06pgj4sk8za26ryy7v46q";
        libraryHaskellDepends = [
          attoparsec base blaze-builder blaze-textual bytestring containers
          deepseq text
@@ -30551,25 +30532,11 @@ self: {
     ({ mkDerivation, attoparsec, base, base-compat, text, time }:
      mkDerivation {
        pname = "attoparsec-iso8601";
-       version = "1.0.0.0";
-       sha256 = "12l55b76bhya9q89mfmqmy6sl5v39b6gzrw5rf3f70vkb23nsv5a";
-       revision = "1";
-       editedCabalFile = "06f7pgmmc8456p3hc1y23kz1y127gfczy7s00wz1rls9g2sm2vi4";
-       libraryHaskellDepends = [ attoparsec base base-compat text time ];
-       description = "Parsing of ISO 8601 dates, originally from aeson";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "attoparsec-iso8601_1_0_1_0" = callPackage
-    ({ mkDerivation, attoparsec, base, base-compat, text, time }:
-     mkDerivation {
-       pname = "attoparsec-iso8601";
        version = "1.0.1.0";
        sha256 = "0hj10w15qp2z5bz2v4xahhmbgzclpyfi5l2sv97wqycysg9gp7s9";
        libraryHaskellDepends = [ attoparsec base base-compat text time ];
        description = "Parsing of ISO 8601 dates, originally from aeson";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "attoparsec-iteratee" = callPackage
@@ -31051,8 +31018,8 @@ self: {
     ({ mkDerivation, base, Cabal, directory, filepath }:
      mkDerivation {
        pname = "autoexporter";
-       version = "1.1.11";
-       sha256 = "17d1a2fns4b3gw8cggg9yq1fxvkyr859s3y22i9lviz6x7hd8dvn";
+       version = "1.1.13";
+       sha256 = "05mgvif7wiq0vplk92kp8qn4a5wfma1gwdihqlz5lspmczszpdkv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal directory filepath ];
@@ -31227,8 +31194,8 @@ self: {
        pname = "avers";
        version = "0.0.17.1";
        sha256 = "1x96fvx0z7z75c39qcggw70qvqnw7kzjf0qqxb3jwg3b0fmdhi8v";
-       revision = "24";
-       editedCabalFile = "02n8p020d3p52ddsh38w5ih9kmx7qlp7axvxanli945fybjb2m5b";
+       revision = "28";
+       editedCabalFile = "1x653r0x4frpp78jncvr91kc7g41i9c3s561cizyh518318lvsnr";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring clock containers cryptonite
          filepath inflections memory MonadRandom mtl network network-uri
@@ -31480,6 +31447,8 @@ self: {
        pname = "aws";
        version = "0.18";
        sha256 = "0h7473wkvc5xjzx5fd5k5fp70rjq5gqmn1cpy95mswvvfsq3irxj";
+       revision = "1";
+       editedCabalFile = "0y3xkhnaksj926khsy1d8gks2jzphkaibi97h98l47nbh962ickj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -32108,6 +32077,8 @@ self: {
        pname = "axel";
        version = "0.0.6";
        sha256 = "17601gv4rjdxmg2qqp2y9b5lk9ia0z1izhympmwf6zs7wkjs6fyh";
+       revision = "2";
+       editedCabalFile = "12m24klalqxpglh9slhr65sxqd4dsqcaz2abmw29cki0cz6x29dp";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -32701,8 +32672,8 @@ self: {
     ({ mkDerivation, base, containers, hspec, QuickCheck, time }:
      mkDerivation {
        pname = "bank-holidays-england";
-       version = "0.1.0.7";
-       sha256 = "196ldac7aljysw8m4nzdyf5mygswbckkvd6axm8a9yw4vchzcjks";
+       version = "0.1.0.8";
+       sha256 = "0ak7m4xaymbh3cyhddj45p0pcazf79lnp63wvh4kh2f4fwh4f69j";
        libraryHaskellDepends = [ base containers time ];
        testHaskellDepends = [ base containers hspec QuickCheck time ];
        description = "Calculation of bank holidays in England and Wales";
@@ -32730,15 +32701,17 @@ self: {
      }) {};
 
   "barbies" = callPackage
-    ({ mkDerivation, base, bifunctors, QuickCheck, tasty
+    ({ mkDerivation, base, bifunctors, QuickCheck, tasty, tasty-hunit
      , tasty-quickcheck
      }:
      mkDerivation {
        pname = "barbies";
-       version = "0.1.4.0";
-       sha256 = "03ndlns5kmk3v0n153m7r5v91f8pwzi8fazhanjv1paxadwscada";
+       version = "1.0.0.0";
+       sha256 = "05bbn1aqa6r9392fffgjgdl4m8nnagjx27aps5xrcf5x45kk88ci";
        libraryHaskellDepends = [ base bifunctors ];
-       testHaskellDepends = [ base QuickCheck tasty tasty-quickcheck ];
+       testHaskellDepends = [
+         base QuickCheck tasty tasty-hunit tasty-quickcheck
+       ];
        description = "Classes for working with types that can change clothes";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -34068,8 +34041,8 @@ self: {
     ({ mkDerivation, base, bytestring, mtl, time }:
      mkDerivation {
        pname = "benchpress";
-       version = "0.2.2.11";
-       sha256 = "07blpjp84f3xycnrg0dwz3rvlm665dxri2ch54145qd4rxy9hlln";
+       version = "0.2.2.12";
+       sha256 = "0r5b1mdjm08nsxni1qzwq3kap13jflcq7ksd30zl7vaxgz9yhwfm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mtl time ];
@@ -35012,6 +34985,8 @@ self: {
        pname = "binary-serialise-cbor";
        version = "0.2.0.0";
        sha256 = "1kcqmxz77jmdkknpbjr860xmqrib3adh9rm99agidicg66ilsavv";
+       revision = "1";
+       editedCabalFile = "1dkranaa9fn81z0x75b1dblnph9d0pvzzz0jpz374lqsxaimqgp6";
        libraryHaskellDepends = [ base bytestring cborg serialise ];
        description = "Yet Another Binary Serialisation Library (compatibility shim)";
        license = stdenv.lib.licenses.bsd3;
@@ -35102,39 +35077,6 @@ self: {
      }:
      mkDerivation {
        pname = "binary-tagged";
-       version = "0.1.5";
-       sha256 = "1s05hrak9mg8klid5jsdqh1i7d1zyzkpdbdc969g2s9h06lk7dyl";
-       revision = "1";
-       editedCabalFile = "0vddb305g3455f0rh0xs6c9i2vllnf83y0pbp53wjwb3l575bqyp";
-       libraryHaskellDepends = [
-         aeson array base base16-bytestring binary bytestring containers
-         generics-sop hashable scientific SHA tagged text time
-         unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson array base base16-bytestring bifunctors binary binary-orphans
-         bytestring containers generics-sop hashable quickcheck-instances
-         scientific SHA tagged tasty tasty-quickcheck text time
-         unordered-containers vector
-       ];
-       benchmarkHaskellDepends = [
-         aeson array base base16-bytestring binary binary-orphans bytestring
-         containers criterion deepseq generics-sop hashable nats scientific
-         semigroups SHA tagged text time unordered-containers vector
-       ];
-       description = "Tagged binary serialisation";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "binary-tagged_0_1_5_1" = callPackage
-    ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
-     , binary, binary-orphans, bytestring, containers, criterion
-     , deepseq, generics-sop, hashable, nats, quickcheck-instances
-     , scientific, semigroups, SHA, tagged, tasty, tasty-quickcheck
-     , text, time, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "binary-tagged";
        version = "0.1.5.1";
        sha256 = "196msm7v0r41d7gx8aghl0c1gvir60sf0w9sfpcz2dq9akzqzjvh";
        libraryHaskellDepends = [
@@ -35155,7 +35097,6 @@ self: {
        ];
        description = "Tagged binary serialisation";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "binary-tree" = callPackage
@@ -37571,23 +37512,6 @@ self: {
      }:
      mkDerivation {
        pname = "blaze-markup";
-       version = "0.8.2.1";
-       sha256 = "0ih1c3qahkdgzbqihdhny5s313l2m66fbb88w8jbx7yz56y7rawh";
-       libraryHaskellDepends = [ base blaze-builder bytestring text ];
-       testHaskellDepends = [
-         base blaze-builder bytestring containers HUnit QuickCheck tasty
-         tasty-hunit tasty-quickcheck text
-       ];
-       description = "A blazingly fast markup combinator library for Haskell";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "blaze-markup_0_8_2_2" = callPackage
-    ({ mkDerivation, base, blaze-builder, bytestring, containers, HUnit
-     , QuickCheck, tasty, tasty-hunit, tasty-quickcheck, text
-     }:
-     mkDerivation {
-       pname = "blaze-markup";
        version = "0.8.2.2";
        sha256 = "1qc2mn2zb2sdj3xvv73asibqnb11l7b5l30ff05qrfh7sy7wzw66";
        libraryHaskellDepends = [ base blaze-builder bytestring text ];
@@ -37597,7 +37521,6 @@ self: {
        ];
        description = "A blazingly fast markup combinator library for Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "blaze-shields" = callPackage
@@ -39081,6 +39004,8 @@ self: {
        pname = "brick";
        version = "0.37.2";
        sha256 = "176rq7xpwww1c3h7hm6n6z7sxbd3wc2zhxvnk65llk9lipc6rf3w";
+       revision = "1";
+       editedCabalFile = "0cj98cjlr400yf47lg50syj5zpvh6q9mm1hp4blns6ndz2xys5rz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -39358,6 +39283,8 @@ self: {
        pname = "broadcast-chan";
        version = "0.2.0.1";
        sha256 = "0kbs3yz53x7117fykapy70qlmaxkj9zr5r4n9wf126n4g0i6gcpf";
+       revision = "2";
+       editedCabalFile = "1vvs1m5n6lflmp8hdxksxa4ibllfx609y791wg21lvyz5m208hp9";
        libraryHaskellDepends = [ base unliftio-core ];
        benchmarkHaskellDepends = [ async base criterion deepseq stm ];
        description = "Closable, fair, single-wakeup channel type that avoids 0 reader space leaks";
@@ -39503,17 +39430,17 @@ self: {
 
   "bsb-http-chunked" = callPackage
     ({ mkDerivation, attoparsec, base, blaze-builder, bytestring
-     , bytestring-builder, deepseq, doctest, gauge, hedgehog, semigroups
-     , tasty, tasty-hedgehog, tasty-hunit
+     , deepseq, doctest, gauge, hedgehog, semigroups, tasty
+     , tasty-hedgehog, tasty-hunit
      }:
      mkDerivation {
        pname = "bsb-http-chunked";
-       version = "0.0.0.3";
-       sha256 = "181bmywrb6w3v4hljn6lxiqb0ql1imngsm4sma7i792y6m9p05j4";
-       libraryHaskellDepends = [ base bytestring bytestring-builder ];
+       version = "0.0.0.4";
+       sha256 = "0z0f18yc6zlwh29c6175ivfcin325lvi4irpvv0n3cmq7vi0k0ql";
+       libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
-         attoparsec base blaze-builder bytestring bytestring-builder doctest
-         hedgehog tasty tasty-hedgehog tasty-hunit
+         attoparsec base blaze-builder bytestring doctest hedgehog tasty
+         tasty-hedgehog tasty-hunit
        ];
        benchmarkHaskellDepends = [
          base blaze-builder bytestring deepseq gauge semigroups
@@ -39682,6 +39609,8 @@ self: {
        pname = "btrfs";
        version = "0.1.2.3";
        sha256 = "13dq5xdzny1c0yih67r3yhnsr9vxxim8kbqbj5hcygb2cmf0pz3y";
+       revision = "1";
+       editedCabalFile = "1py88k9sjmx9x41l0wmp19a52ng9fdf66rmd0n9404gxxbqd5jxv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring time unix ];
@@ -40196,10 +40125,10 @@ self: {
      }:
      mkDerivation {
        pname = "butcher";
-       version = "1.3.1.1";
-       sha256 = "1llhsqg8m4f7am14kvw4psm5fb8kcph27mk059vg2mq65xns470z";
-       revision = "2";
-       editedCabalFile = "0r600p7pd4l4p75igklwfqqxp2jyl2ghqc3y6jhn473rrw31g36m";
+       version = "1.3.2.0";
+       sha256 = "06pas8iq0qvvraidjid9m85z7wx8cy017xhyqralxz67alirmchc";
+       revision = "1";
+       editedCabalFile = "1r4v2biwd0hp6v1jgx7zngh0hqlsk8ia3bvggbxxn5sp5x7ika1m";
        libraryHaskellDepends = [
          base bifunctors containers deque extra free microlens microlens-th
          mtl multistate pretty transformers unsafe void
@@ -40212,6 +40141,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "butcher_1_3_2_1" = callPackage
+    ({ mkDerivation, base, bifunctors, containers, deque, extra, free
+     , hspec, microlens, microlens-th, mtl, multistate, pretty
+     , transformers, unsafe, void
+     }:
+     mkDerivation {
+       pname = "butcher";
+       version = "1.3.2.1";
+       sha256 = "16jwhj3lrghn11igc5ci484r4xc1ii6hz6ysj39njds547dmznda";
+       libraryHaskellDepends = [
+         base bifunctors containers deque extra free microlens microlens-th
+         mtl multistate pretty transformers unsafe void
+       ];
+       testHaskellDepends = [
+         base containers deque extra free hspec microlens microlens-th mtl
+         multistate pretty transformers unsafe
+       ];
+       description = "Chops a command or program invocation into digestable pieces";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "butter" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers
      , forkable-monad, free, HUnit, network-simple, stm
@@ -40274,8 +40225,8 @@ self: {
      }:
      mkDerivation {
        pname = "bv-little";
-       version = "0.1.1";
-       sha256 = "153bd5y55scp6qd9q7vnkhp8zwj3qssyr4qy8wpfj8k9xp8xdrk8";
+       version = "0.1.2";
+       sha256 = "0xscq4qjwisqiykdhiirxc58gsrmabvxmxwxw80f2m6ia103k3cc";
        libraryHaskellDepends = [
          base deepseq hashable integer-gmp mono-traversable primitive
          QuickCheck
@@ -40460,25 +40411,12 @@ self: {
     ({ mkDerivation, base, bytestring, deepseq }:
      mkDerivation {
        pname = "bytestring-builder";
-       version = "0.10.8.1.0";
-       sha256 = "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d";
-       libraryHaskellDepends = [ base bytestring deepseq ];
-       doHaddock = false;
-       description = "The new bytestring builder, packaged outside of GHC";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "bytestring-builder_0_10_8_2_0" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq }:
-     mkDerivation {
-       pname = "bytestring-builder";
        version = "0.10.8.2.0";
        sha256 = "0grcrgwwwcvwrs9az7l4d3kf0lsqfa9qpmjzf6iyanvwn9nyzyi7";
        libraryHaskellDepends = [ base bytestring deepseq ];
        doHaddock = false;
        description = "The new bytestring builder, packaged outside of GHC";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bytestring-builder-varword" = callPackage
@@ -41071,32 +41009,6 @@ self: {
      }:
      mkDerivation {
        pname = "c2hs";
-       version = "0.28.5";
-       sha256 = "1xid997cc38rym6hsgv8xz5dg8jcsh8hs5rrwaxkij7mc09an45x";
-       revision = "1";
-       editedCabalFile = "1d6i1wr1kbn61yi7nk1scjfm2800vm2ynnx7555fjkdx4d8va711";
-       isLibrary = false;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       executableHaskellDepends = [
-         array base bytestring containers directory dlist filepath
-         language-c pretty process
-       ];
-       testHaskellDepends = [
-         base filepath HUnit shelly test-framework test-framework-hunit text
-         transformers
-       ];
-       description = "C->Haskell FFI tool that gives some cross-language type safety";
-       license = stdenv.lib.licenses.gpl2;
-     }) {};
-
-  "c2hs_0_28_6" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, directory
-     , dlist, filepath, HUnit, language-c, pretty, process, shelly
-     , test-framework, test-framework-hunit, text, transformers
-     }:
-     mkDerivation {
-       pname = "c2hs";
        version = "0.28.6";
        sha256 = "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci";
        isLibrary = false;
@@ -41112,7 +41024,6 @@ self: {
        ];
        description = "C->Haskell FFI tool that gives some cross-language type safety";
        license = stdenv.lib.licenses.gpl2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "c2hs-extra" = callPackage
@@ -41617,6 +41528,8 @@ self: {
        pname = "cabal-lenses";
        version = "0.8.0";
        sha256 = "1xz28mj98qfqra4kb7lwjkwa5ail0pn1fvia916wp6005mgvsh60";
+       revision = "1";
+       editedCabalFile = "1ij976phgmx7y7v9kbbwqqfkm8vnrggh1qry6wsbbq7f6qb0c0dq";
        libraryHaskellDepends = [
          base Cabal lens strict system-fileio system-filepath text
          transformers unordered-containers
@@ -42317,59 +42230,6 @@ self: {
   "cachix" = callPackage
     ({ mkDerivation, async, base, base16-bytestring, base64-bytestring
      , bifunctors, bytestring, cachix-api, conduit, conduit-extra
-     , cookie, cryptonite, dhall, directory, ed25519, fsnotify, here
-     , hspec, hspec-discover, http-client, http-client-tls, http-conduit
-     , http-types, lzma-conduit, megaparsec, memory, mmorph
-     , optparse-applicative, process, protolude, resourcet, servant
-     , servant-auth, servant-auth-client, servant-client
-     , servant-client-core, servant-streaming-client, streaming, text
-     , unix, uri-bytestring, versions
-     }:
-     mkDerivation {
-       pname = "cachix";
-       version = "0.1.1";
-       sha256 = "0jhjan72dp18dblrb7v4h4h4ffvii7n4dwmpgfyjn8kndmxkaqbd";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         async base base16-bytestring base64-bytestring bifunctors
-         bytestring cachix-api conduit conduit-extra cookie cryptonite dhall
-         directory ed25519 fsnotify here http-client http-client-tls
-         http-conduit http-types lzma-conduit megaparsec memory mmorph
-         optparse-applicative process protolude resourcet servant
-         servant-auth servant-auth-client servant-client servant-client-core
-         servant-streaming-client streaming text unix uri-bytestring
-         versions
-       ];
-       executableHaskellDepends = [
-         async base base16-bytestring base64-bytestring bifunctors
-         bytestring cachix-api conduit conduit-extra cookie cryptonite dhall
-         directory ed25519 fsnotify here http-client http-client-tls
-         http-conduit http-types lzma-conduit megaparsec memory mmorph
-         optparse-applicative process protolude resourcet servant
-         servant-auth servant-auth-client servant-client servant-client-core
-         servant-streaming-client streaming text unix uri-bytestring
-         versions
-       ];
-       executableToolDepends = [ hspec-discover ];
-       testHaskellDepends = [
-         async base base16-bytestring base64-bytestring bifunctors
-         bytestring cachix-api conduit conduit-extra cookie cryptonite dhall
-         directory ed25519 fsnotify here hspec http-client http-client-tls
-         http-conduit http-types lzma-conduit megaparsec memory mmorph
-         optparse-applicative process protolude resourcet servant
-         servant-auth servant-auth-client servant-client servant-client-core
-         servant-streaming-client streaming text unix uri-bytestring
-         versions
-       ];
-       description = "Command line client for Nix binary cache hosting https://cachix.org";
-       license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
-  "cachix_0_1_2" = callPackage
-    ({ mkDerivation, async, base, base16-bytestring, base64-bytestring
-     , bifunctors, bytestring, cachix-api, conduit, conduit-extra
      , cookie, cryptonite, dhall, directory, ed25519, filepath, fsnotify
      , here, hspec, hspec-discover, http-client, http-client-tls
      , http-conduit, http-types, lzma-conduit, megaparsec, memory
@@ -42422,48 +42282,6 @@ self: {
 
   "cachix-api" = callPackage
     ({ mkDerivation, aeson, amazonka, base, base16-bytestring
-     , bytestring, conduit, conduit-combinators, cookie, cryptonite
-     , hspec, hspec-discover, http-api-data, http-media, lens, memory
-     , protolude, servant, servant-auth, servant-auth-server
-     , servant-auth-swagger, servant-streaming, servant-swagger
-     , servant-swagger-ui-core, string-conv, swagger2, text
-     , transformers
-     }:
-     mkDerivation {
-       pname = "cachix-api";
-       version = "0.1.0.1";
-       sha256 = "0z9dbci88qyyqc4b8kl6ab3k8yvgnmswi590qwyjvhc6va2fn3y6";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson amazonka base base16-bytestring bytestring conduit
-         conduit-combinators cookie cryptonite http-api-data http-media lens
-         memory servant servant-auth servant-auth-server
-         servant-auth-swagger servant-streaming servant-swagger
-         servant-swagger-ui-core string-conv swagger2 text transformers
-       ];
-       executableHaskellDepends = [
-         aeson amazonka base base16-bytestring bytestring conduit
-         conduit-combinators cookie cryptonite http-api-data http-media lens
-         memory servant servant-auth servant-auth-server
-         servant-auth-swagger servant-streaming servant-swagger
-         servant-swagger-ui-core string-conv swagger2 text transformers
-       ];
-       testHaskellDepends = [
-         aeson amazonka base base16-bytestring bytestring conduit
-         conduit-combinators cookie cryptonite hspec http-api-data
-         http-media lens memory protolude servant servant-auth
-         servant-auth-server servant-auth-swagger servant-streaming
-         servant-swagger servant-swagger-ui-core string-conv swagger2 text
-         transformers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Servant HTTP API specification for https://cachix.org";
-       license = stdenv.lib.licenses.asl20;
-     }) {};
-
-  "cachix-api_0_1_0_2" = callPackage
-    ({ mkDerivation, aeson, amazonka, base, base16-bytestring
      , bytestring, conduit, cookie, cryptonite, hspec, hspec-discover
      , http-api-data, http-media, lens, memory, protolude, servant
      , servant-auth, servant-auth-server, servant-auth-swagger
@@ -42500,7 +42318,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Servant HTTP API specification for https://cachix.org";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cacophony" = callPackage
@@ -43919,6 +43736,27 @@ self: {
      }) {};
 
   "cassava-megaparsec" = callPackage
+    ({ mkDerivation, base, bytestring, cassava, containers, hspec
+     , hspec-megaparsec, megaparsec, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "cassava-megaparsec";
+       version = "1.0.0";
+       sha256 = "14d1idyw4pm8gq41383sy6cid6v1dr9zc7wviy4vd786406j2n28";
+       revision = "1";
+       editedCabalFile = "0dk6bxyvlg0iq83m81cbyysiydcj3dsvhlishjc119hzpy8g8xd6";
+       libraryHaskellDepends = [
+         base bytestring cassava containers megaparsec unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         base bytestring cassava hspec hspec-megaparsec vector
+       ];
+       description = "Megaparsec parser of CSV files that plays nicely with Cassava";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "cassava-megaparsec_2_0_0" = callPackage
     ({ mkDerivation, base, bytestring, cassava, hspec, hspec-megaparsec
      , megaparsec, unordered-containers, vector
      }:
@@ -43934,6 +43772,7 @@ self: {
        ];
        description = "Megaparsec parser of CSV files that plays nicely with Cassava";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cassava-records" = callPackage
@@ -47006,6 +46845,8 @@ self: {
        pname = "classy-prelude";
        version = "1.4.0";
        sha256 = "1q7r4lnrxjsh7rj5nr0cs22ddp9m6maa7bzbkarxw3xbfrb2afrb";
+       revision = "1";
+       editedCabalFile = "1gf615lz0bfsn09vrjgj63d8zcpsmz1cgvdv8px3h0b4jrwdij6v";
        libraryHaskellDepends = [
          async base basic-prelude bifunctors bytestring chunked-data
          containers deepseq dlist ghc-prim hashable mono-traversable
@@ -47944,8 +47785,8 @@ self: {
      }:
      mkDerivation {
        pname = "clr-host";
-       version = "0.2.0.1";
-       sha256 = "15hfdwddqij5dhl8qbq89rsbjvxpymvph8wz2naxa8mrd09yl1jk";
+       version = "0.2.1.0";
+       sha256 = "192yzi7xx2hrk2q0i4qzq0plam2b0xgg9r5s3kjzcvf9hq1vyapy";
        setupHaskellDepends = [
          base Cabal directory filepath transformers
        ];
@@ -48493,23 +48334,21 @@ self: {
      }) {};
 
   "co-log" = callPackage
-    ({ mkDerivation, ansi-terminal, base-noprelude, bytestring
+    ({ mkDerivation, ansi-terminal, base, base-noprelude, bytestring
      , co-log-core, containers, contravariant, markdown-unlit, mtl
      , relude, text, time, transformers, typerep-map
      }:
      mkDerivation {
        pname = "co-log";
-       version = "0.0.0";
-       sha256 = "0bx45ffb1d7sdxcc7srx8sxb6qwjjs8gf90mnr3q1b76b2iczklp";
+       version = "0.1.0";
+       sha256 = "101ajw1qckc7nin5ard3dcamhz447qv0wv1wvnid8xmw9zsjf7gg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-terminal base-noprelude bytestring co-log-core containers
          contravariant mtl relude text time transformers typerep-map
        ];
-       executableHaskellDepends = [
-         base-noprelude relude text typerep-map
-       ];
+       executableHaskellDepends = [ base relude text typerep-map ];
        executableToolDepends = [ markdown-unlit ];
        description = "Logging library";
        license = stdenv.lib.licenses.mpl20;
@@ -48519,8 +48358,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "co-log-core";
-       version = "0.0.0";
-       sha256 = "1xml4qbvjlgcqvh0kmgqm2wr50bzd252a40zpc84sk6kg8a3x734";
+       version = "0.1.0";
+       sha256 = "1yxz7p5df70r0327gxfip2nwjh8gsc2fh1i6bjaf9yzfccar69xx";
        libraryHaskellDepends = [ base ];
        description = "Logging library";
        license = stdenv.lib.licenses.mpl20;
@@ -49299,6 +49138,8 @@ self: {
        pname = "colour-accelerate";
        version = "0.3.0.0";
        sha256 = "0zvzra2w0sajw0hzg2k25khv8c5j1i17g8dnga70w73f3mmh3gbz";
+       revision = "1";
+       editedCabalFile = "1mbz9wdx396q8gdy6yqsc5vsxrkky9zkxczjblvc9zy542v252cn";
        libraryHaskellDepends = [ accelerate base ];
        description = "Working with colours in Accelerate";
        license = stdenv.lib.licenses.bsd3;
@@ -50670,8 +50511,8 @@ self: {
      }:
      mkDerivation {
        pname = "concraft";
-       version = "0.12.1";
-       sha256 = "1zjrv58fl4lkknmmih0dwi9ds241mxi42q3fxlpd8z5hlgq9pxpj";
+       version = "0.13.0";
+       sha256 = "1b03h65ww3cb0vxjrvj8y7bn30ci0fdbjcf8gxnmyy34npgz1ihw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -50858,22 +50699,6 @@ self: {
      }:
      mkDerivation {
        pname = "concurrency";
-       version = "1.6.0.0";
-       sha256 = "14zbwbp5mgnp3nv40qirnw1b8pv2kp1nqlhg36dnhw7l0mq5dwlk";
-       libraryHaskellDepends = [
-         array atomic-primops base exceptions monad-control mtl stm
-         transformers
-       ];
-       description = "Typeclasses, functions, and data types for concurrency and STM";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "concurrency_1_6_1_0" = callPackage
-    ({ mkDerivation, array, atomic-primops, base, exceptions
-     , monad-control, mtl, stm, transformers
-     }:
-     mkDerivation {
-       pname = "concurrency";
        version = "1.6.1.0";
        sha256 = "00cycrgs2zl2jsg1acc1glcw9ladmgqwxxdqq1ss6v36j8qhk920";
        libraryHaskellDepends = [
@@ -50882,7 +50707,6 @@ self: {
        ];
        description = "Typeclasses, functions, and data types for concurrency and STM";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "concurrency-benchmarks" = callPackage
@@ -51019,22 +50843,6 @@ self: {
      }:
      mkDerivation {
        pname = "concurrent-output";
-       version = "1.10.6";
-       sha256 = "1qlp1vij4qgcrkw8ym5xdc0pgfwklbhsfh56sgayy3cvpvcac093";
-       libraryHaskellDepends = [
-         ansi-terminal async base directory exceptions process stm
-         terminal-size text transformers unix
-       ];
-       description = "Ungarble output from several threads or commands";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "concurrent-output_1_10_7" = callPackage
-    ({ mkDerivation, ansi-terminal, async, base, directory, exceptions
-     , process, stm, terminal-size, text, transformers, unix
-     }:
-     mkDerivation {
-       pname = "concurrent-output";
        version = "1.10.7";
        sha256 = "0w5x81n9ljs8l2b8ypy2naazvrv16qqlm1lfzvsksnii2nm1al30";
        libraryHaskellDepends = [
@@ -51043,7 +50851,6 @@ self: {
        ];
        description = "Ungarble output from several threads or commands";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "concurrent-rpc" = callPackage
@@ -51300,41 +51107,6 @@ self: {
      }:
      mkDerivation {
        pname = "conduit-algorithms";
-       version = "0.0.8.1";
-       sha256 = "07gx2q3d1bbfw14q41rmqg0i4m018pci10lswc0k1ij6lw7sb9fd";
-       libraryHaskellDepends = [
-         async base bytestring bzlib-conduit conduit conduit-combinators
-         conduit-extra containers deepseq exceptions lzma-conduit
-         monad-control mtl pqueue resourcet stm stm-conduit
-         streaming-commons transformers unliftio-core vector
-       ];
-       testHaskellDepends = [
-         async base bytestring bzlib-conduit conduit conduit-combinators
-         conduit-extra containers deepseq directory exceptions HUnit
-         lzma-conduit monad-control mtl pqueue resourcet stm stm-conduit
-         streaming-commons test-framework test-framework-hunit
-         test-framework-th transformers unliftio-core vector
-       ];
-       benchmarkHaskellDepends = [
-         async base bytestring bzlib-conduit conduit conduit-combinators
-         conduit-extra containers criterion deepseq exceptions lzma-conduit
-         monad-control mtl pqueue resourcet stm stm-conduit
-         streaming-commons transformers unliftio-core vector
-       ];
-       description = "Conduit-based algorithms";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "conduit-algorithms_0_0_8_2" = callPackage
-    ({ mkDerivation, async, base, bytestring, bzlib-conduit, conduit
-     , conduit-combinators, conduit-extra, containers, criterion
-     , deepseq, directory, exceptions, HUnit, lzma-conduit
-     , monad-control, mtl, pqueue, resourcet, stm, stm-conduit
-     , streaming-commons, test-framework, test-framework-hunit
-     , test-framework-th, transformers, unliftio-core, vector
-     }:
-     mkDerivation {
-       pname = "conduit-algorithms";
        version = "0.0.8.2";
        sha256 = "1s423n2hybxdsady7spi4iy9s5lm07dsl0rjxn400y09faizm5x8";
        libraryHaskellDepends = [
@@ -51358,7 +51130,6 @@ self: {
        ];
        description = "Conduit-based algorithms";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "conduit-audio" = callPackage
@@ -51810,6 +51581,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "config-ini_0_2_3_0" = callPackage
+    ({ mkDerivation, base, containers, directory, hedgehog, ini
+     , megaparsec, text, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "config-ini";
+       version = "0.2.3.0";
+       sha256 = "03sv2y9ax3jqcfydfzfvmsixl8qch2zym3sr065pjsh8qxrknkqc";
+       libraryHaskellDepends = [
+         base containers megaparsec text transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base containers directory hedgehog ini text unordered-containers
+       ];
+       description = "A library for simple INI-based configuration files";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "config-manager" = callPackage
     ({ mkDerivation, base, directory, filepath, HUnit, parsec
      , temporary, test-framework, test-framework-hunit, text, time
@@ -52757,6 +52547,19 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "contiguous-fft" = callPackage
+    ({ mkDerivation, base, contiguous, prim-instances, primitive }:
+     mkDerivation {
+       pname = "contiguous-fft";
+       version = "0.1.0.1";
+       sha256 = "07nv27gj4shh22azf1nl1yr7xvzy4hzmp66yjsgxywj50850i6dq";
+       libraryHaskellDepends = [
+         base contiguous prim-instances primitive
+       ];
+       description = "dft of contiguous memory structures";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "continue" = callPackage
     ({ mkDerivation, base, bifunctors, monad-control, mtl
      , semigroupoids, transformers, transformers-base
@@ -52912,6 +52715,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "control-dsl" = callPackage
+    ({ mkDerivation, base, containers, doctest, doctest-discover
+     , temporary
+     }:
+     mkDerivation {
+       pname = "control-dsl";
+       version = "0.2.1.1";
+       sha256 = "0nfbipf26kkkjbxb9mqbjxqg99z3dfmpada28ajqjvz6n3mg4grg";
+       revision = "1";
+       editedCabalFile = "11rjly75f57a1818hjzy18pms51jicnzn99kx2mqzf7c7lygnsgg";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base containers doctest doctest-discover temporary
+       ];
+       description = "An alternative to monads for control flow DSLs";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "control-event" = callPackage
     ({ mkDerivation, base, containers, stm, time }:
      mkDerivation {
@@ -53050,14 +52871,12 @@ self: {
      }) {};
 
   "control-monad-free" = callPackage
-    ({ mkDerivation, base, prelude-extras, transformers }:
+    ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "control-monad-free";
-       version = "0.6.1";
-       sha256 = "11i297ngwb5ck23vsr84fh5qx4hn7fzm9ml90y79lwi97hyigagy";
-       revision = "1";
-       editedCabalFile = "1901lm2md7flri4ms745lgla18x2k7v0xh51jbjbx6202ppcx3fh";
-       libraryHaskellDepends = [ base prelude-extras transformers ];
+       version = "0.6.2";
+       sha256 = "1habgf7byffqf1rqjkzpihvdhclaafgqsqpfpwp3fgpj5ayk1j33";
+       libraryHaskellDepends = [ base transformers ];
        description = "Free monads and monad transformers";
        license = stdenv.lib.licenses.publicDomain;
      }) {};
@@ -54817,32 +54636,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "criterion_1_5_1_0" = callPackage
+  "criterion_1_5_2_0" = callPackage
     ({ mkDerivation, aeson, ansi-wl-pprint, base, base-compat
      , base-compat-batteries, binary, bytestring, cassava, code-page
      , containers, criterion-measurement, deepseq, directory, exceptions
-     , fail, filepath, Glob, HUnit, js-flot, js-jquery, microstache, mtl
-     , mwc-random, optparse-applicative, parsec, QuickCheck, semigroups
-     , statistics, tasty, tasty-hunit, tasty-quickcheck, text, time
-     , transformers, transformers-compat, vector, vector-algorithms
+     , filepath, Glob, HUnit, js-flot, js-jquery, microstache, mtl
+     , mwc-random, optparse-applicative, parsec, QuickCheck, statistics
+     , tasty, tasty-hunit, tasty-quickcheck, text, time, transformers
+     , transformers-compat, vector, vector-algorithms
      }:
      mkDerivation {
        pname = "criterion";
-       version = "1.5.1.0";
-       sha256 = "1ixmr1mjid3yds5lzhcrjmvvlpgsn579wns96x5n1rkba14srxcq";
+       version = "1.5.2.0";
+       sha256 = "03y4lqkrr08nbsjk6qkrhyai7zzv0rrknn6rgni184f18c091wsd";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson ansi-wl-pprint base base-compat-batteries binary bytestring
          cassava code-page containers criterion-measurement deepseq
-         directory exceptions fail filepath Glob js-flot js-jquery
-         microstache mtl mwc-random optparse-applicative parsec semigroups
-         statistics text time transformers transformers-compat vector
-         vector-algorithms
+         directory exceptions filepath Glob js-flot js-jquery microstache
+         mtl mwc-random optparse-applicative parsec statistics text time
+         transformers transformers-compat vector vector-algorithms
        ];
        executableHaskellDepends = [
-         base base-compat-batteries optparse-applicative semigroups
+         base base-compat-batteries optparse-applicative
        ];
        testHaskellDepends = [
          aeson base base-compat base-compat-batteries bytestring deepseq
@@ -55225,27 +55043,12 @@ self: {
      }:
      mkDerivation {
        pname = "crypto-enigma";
-       version = "0.0.2.12";
-       sha256 = "0g5qnr7pds5q1n77w1sw4m6kmzm020w9mdf4x2cs18iwg8wl5f9b";
-       libraryHaskellDepends = [ base containers MissingH mtl split ];
-       testHaskellDepends = [ base HUnit QuickCheck ];
-       description = "An Enigma machine simulator with display";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "crypto-enigma_0_0_2_13" = callPackage
-    ({ mkDerivation, base, containers, HUnit, MissingH, mtl, QuickCheck
-     , split
-     }:
-     mkDerivation {
-       pname = "crypto-enigma";
        version = "0.0.2.13";
        sha256 = "0w82f9hbhhksqkgj3d846l3cgg210ra5133rji2k41mc74l0r0dl";
        libraryHaskellDepends = [ base containers MissingH mtl split ];
        testHaskellDepends = [ base HUnit QuickCheck ];
        description = "An Enigma machine simulator with display";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "crypto-multihash" = callPackage
@@ -56066,6 +55869,8 @@ self: {
        pname = "css-syntax";
        version = "0.1.0.0";
        sha256 = "02f000nzc0dhjhlp1z82q4far8ablvzalpk918lg54f63lbqdwsh";
+       revision = "1";
+       editedCabalFile = "14241m9nm3wbbhajw95gdj9mvfzf4hmrzvk2wgjvkm71mg4yhwnr";
        libraryHaskellDepends = [ base scientific text ];
        testHaskellDepends = [
          base directory hspec QuickCheck scientific text
@@ -56329,8 +56134,8 @@ self: {
      }:
      mkDerivation {
        pname = "cublas";
-       version = "0.4.0.1";
-       sha256 = "0fk0yrm6arb85xxy7vr2bnkxgwassahfcl8lf9k99s9f9wqc9glr";
+       version = "0.5.0.0";
+       sha256 = "0s47wrmlb35dpym4dz3688qx8m166i2a9d8pqnfdzxy67zv98g1f";
        setupHaskellDepends = [ base Cabal cuda directory filepath ];
        libraryHaskellDepends = [
          base cuda half storable-complex template-haskell
@@ -56356,17 +56161,17 @@ self: {
 
   "cuda" = callPackage
     ({ mkDerivation, base, bytestring, c2hs, Cabal, directory, filepath
-     , pretty, template-haskell
+     , pretty, template-haskell, uuid-types
      }:
      mkDerivation {
        pname = "cuda";
-       version = "0.9.0.3";
-       sha256 = "0ym5j3rllxyl9zqji47pngwbi032hzm0bv5j06756d5cb769k44q";
+       version = "0.10.0.0";
+       sha256 = "17l482fnackx4081mxax0dx0bsaqbbg4rxy4zmi5iv5q6f6v37x7";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath ];
        libraryHaskellDepends = [
-         base bytestring filepath template-haskell
+         base bytestring filepath template-haskell uuid-types
        ];
        libraryToolDepends = [ c2hs ];
        executableHaskellDepends = [ base pretty ];
@@ -56397,8 +56202,8 @@ self: {
        pname = "cue-sheet";
        version = "1.0.1";
        sha256 = "13vzay3i385k8i2k56bl9rr9sy7mnhas4b35xc8q7744gbl5hji1";
-       revision = "2";
-       editedCabalFile = "09h4phhj0j1m4ab5gbfrz6475jn772x46l21k7l2qlxav6hi9w7x";
+       revision = "3";
+       editedCabalFile = "14kgk1digf1vbsr7v5jvj8gajkx0rkn3zjl4m8csqhxalkaxa2zl";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers data-default-class exceptions megaparsec
@@ -56421,6 +56226,8 @@ self: {
        pname = "cue-sheet";
        version = "2.0.0";
        sha256 = "1w6gmxwrqz7jlm7f0rccrik86w0syhjk5w5cvg29gi2yzj3grnql";
+       revision = "1";
+       editedCabalFile = "0cnlyy7psk8qcwahiqfdpaybvrw899bv106p0i53lrdjxfdsmf4g";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers data-default-class exceptions megaparsec
@@ -56442,8 +56249,8 @@ self: {
      }:
      mkDerivation {
        pname = "cufft";
-       version = "0.9.0.0";
-       sha256 = "1is6vk0nhvchi0n7d1kpy4vydf82lsb52pq4hqffiawlp0vp5scv";
+       version = "0.9.0.1";
+       sha256 = "1cf11ia4i19bpbs0wzkz2hqzc22hh2dvbn8m5frnwild83zal4n3";
        setupHaskellDepends = [
          base Cabal cuda directory filepath template-haskell
        ];
@@ -56690,6 +56497,44 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "cursor" = callPackage
+    ({ mkDerivation, base, containers, microlens, text, validity
+     , validity-containers, validity-text
+     }:
+     mkDerivation {
+       pname = "cursor";
+       version = "0.0.0.1";
+       sha256 = "0iq83v3yp7rj1fn82qkwakxi180nri50irzf8p8bzi558c6b3bmr";
+       libraryHaskellDepends = [
+         base containers microlens text validity validity-containers
+         validity-text
+       ];
+       description = "Purely Functional Cursors";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "cursor-gen" = callPackage
+    ({ mkDerivation, base, containers, cursor, genvalidity
+     , genvalidity-containers, genvalidity-hspec
+     , genvalidity-hspec-optics, genvalidity-text, hspec, microlens
+     , pretty-show, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "cursor-gen";
+       version = "0.0.0.0";
+       sha256 = "10jxxy3dx2gsddmq4l95ddim4cj85l7l76lamhgqlhx6zw4j7d52";
+       libraryHaskellDepends = [
+         base containers cursor genvalidity genvalidity-containers
+         genvalidity-text QuickCheck text
+       ];
+       testHaskellDepends = [
+         base containers cursor genvalidity-hspec genvalidity-hspec-optics
+         hspec microlens pretty-show QuickCheck text
+       ];
+       description = "Generators for Purely Functional Cursors";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "curve25519" = callPackage
     ({ mkDerivation, base, bytestring, crypto-api, DRBG, HUnit
      , QuickCheck, tagged, test-framework, test-framework-hunit
@@ -56728,15 +56573,15 @@ self: {
 
   "cusolver" = callPackage
     ({ mkDerivation, base, c2hs, Cabal, cublas, cuda, cusparse
-     , directory, filepath, half, storable-complex
+     , directory, filepath, half, storable-complex, template-haskell
      }:
      mkDerivation {
        pname = "cusolver";
-       version = "0.1.0.1";
-       sha256 = "1wjwdhy51pzvhvr50v7b1s9ljgk001wp9qlmwkkjih0csk79047k";
+       version = "0.2.0.0";
+       sha256 = "0v30wm32jcz7jy940y26zcqvjy1058bqf0v44xf73v53dlwkd07a";
        setupHaskellDepends = [ base Cabal cuda directory filepath ];
        libraryHaskellDepends = [
-         base cublas cuda cusparse half storable-complex
+         base cublas cuda cusparse half storable-complex template-haskell
        ];
        libraryToolDepends = [ c2hs ];
        description = "FFI bindings to CUDA Solver, a LAPACK-like library";
@@ -56750,8 +56595,8 @@ self: {
      }:
      mkDerivation {
        pname = "cusparse";
-       version = "0.1.0.1";
-       sha256 = "1fsldpi4bglh875fc9blki3mlz14dal2j37651br1l587ky1v55w";
+       version = "0.2.0.0";
+       sha256 = "1y6qnxfdcw3ik3mjp4410846pq1l628d02bdasll1xd4r4r87vh6";
        setupHaskellDepends = [ base Cabal cuda directory filepath ];
        libraryHaskellDepends = [ base cuda half storable-complex ];
        libraryToolDepends = [ c2hs ];
@@ -56869,6 +56714,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "czipwith_1_0_1_1" = callPackage
+    ({ mkDerivation, base, template-haskell, transformers }:
+     mkDerivation {
+       pname = "czipwith";
+       version = "1.0.1.1";
+       sha256 = "0hs296mwx62alp9fkpkhw9jsjqlygagvb911nx22b0pgyiwqa52a";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base transformers ];
+       description = "CZipWith class and deriving via TH";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "d-bus" = callPackage
     ({ mkDerivation, async, attoparsec, base, binary, blaze-builder
      , bytestring, conduit, conduit-extra, containers
@@ -56900,6 +56758,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "d10" = callPackage
+    ({ mkDerivation, base, doctest, template-haskell }:
+     mkDerivation {
+       pname = "d10";
+       version = "0.1.0.0";
+       sha256 = "0ymhfarhsryqw0h6nksz9ki640b3xa1613k40hp85mk4rqir0zjq";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base doctest ];
+       description = "Digits 0-9";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "d3d11binding" = callPackage
     ({ mkDerivation, base, c-storable-deriving, d3d11, D3DCompiler
      , d3dx11, d3dxof, dxgi, dxguid, vect, Win32
@@ -58748,23 +58618,11 @@ self: {
     ({ mkDerivation, base, stm, transformers }:
      mkDerivation {
        pname = "data-ref";
-       version = "0.0.1.1";
-       sha256 = "0s7jckxgfd61ngzfqqd36jl1qswj1y3zgsyhj6bij6bl7klbxnm4";
-       libraryHaskellDepends = [ base stm transformers ];
-       description = "Unify STRef and IORef in plain Haskell 98";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "data-ref_0_0_1_2" = callPackage
-    ({ mkDerivation, base, stm, transformers }:
-     mkDerivation {
-       pname = "data-ref";
        version = "0.0.1.2";
        sha256 = "0896wjkpk52cndlzkdr51s1rasi0n9b100058f1sb4qzl1dgcp30";
        libraryHaskellDepends = [ base stm transformers ];
        description = "Unify STRef and IORef in plain Haskell 98";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "data-reify" = callPackage
@@ -60685,16 +60543,22 @@ self: {
 
   "deferred-folds" = callPackage
     ({ mkDerivation, base, bytestring, containers, foldl, hashable
-     , primitive, transformers, unordered-containers, vector
+     , primitive, QuickCheck, quickcheck-instances, rerebase, tasty
+     , tasty-hunit, tasty-quickcheck, transformers, unordered-containers
+     , vector
      }:
      mkDerivation {
        pname = "deferred-folds";
-       version = "0.9.7.1";
-       sha256 = "1mnibf7k40p8y8iqfd28q51nmdz5l3lpmillma2lzbysw24xr6qk";
+       version = "0.9.9";
+       sha256 = "1hsfz93h6d4bzrllgmqr22ankl5pas3vlwg2yhbbcfpf35pdk9vd";
        libraryHaskellDepends = [
          base bytestring containers foldl hashable primitive transformers
          unordered-containers vector
        ];
+       testHaskellDepends = [
+         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         tasty-quickcheck
+       ];
        description = "Abstractions over deferred folds";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -61071,16 +60935,21 @@ self: {
 
   "dense-int-set" = callPackage
     ({ mkDerivation, base, cereal, cereal-vector, deferred-folds
-     , hashable, vector, vector-algorithms
+     , hashable, QuickCheck, quickcheck-instances, rerebase, tasty
+     , tasty-hunit, tasty-quickcheck, vector, vector-algorithms
      }:
      mkDerivation {
        pname = "dense-int-set";
-       version = "0.2";
-       sha256 = "02gfghbpgfcr8vnbahz9y025cb5cvh4ns5xwz9gavpbi8vbcbyv9";
+       version = "0.3";
+       sha256 = "04aww0ffsw1mfj7v3qhvfrbllqiwihyipis3zah0m4y47197x8gh";
        libraryHaskellDepends = [
          base cereal cereal-vector deferred-folds hashable vector
          vector-algorithms
        ];
+       testHaskellDepends = [
+         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         tasty-quickcheck
+       ];
        description = "Dense int-set";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -61278,6 +61147,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "deque_0_2_4" = callPackage
+    ({ mkDerivation, base, semigroups }:
+     mkDerivation {
+       pname = "deque";
+       version = "0.2.4";
+       sha256 = "19bz1i8la16an158wwqqg6zjd93d1n6jx6kqb2zd7lm1sk1055l9";
+       libraryHaskellDepends = [ base semigroups ];
+       description = "Double-ended queue";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dequeue" = callPackage
     ({ mkDerivation, base, Cabal, cabal-test-quickcheck, QuickCheck
      , safe
@@ -61419,8 +61300,8 @@ self: {
      }:
      mkDerivation {
        pname = "derive-storable-plugin";
-       version = "0.2.1.0";
-       sha256 = "1138pkkzkzj4vmh6cnc152fhf50mirys0c9nvyd4n5xi5227rihi";
+       version = "0.2.2.0";
+       sha256 = "0rpwiwwz24j9bq07d89ndp61f95hjy7am2q72jxb0by7pzpy9xw0";
        libraryHaskellDepends = [ base derive-storable ghc ghci ];
        testHaskellDepends = [
          base derive-storable ghc ghc-paths ghci hspec QuickCheck
@@ -61490,29 +61371,6 @@ self: {
      }:
      mkDerivation {
        pname = "deriving-compat";
-       version = "0.5.1";
-       sha256 = "18mkmwm147h601zbdn2lna357z2picpnsxrmkw2jc863chban5vy";
-       libraryHaskellDepends = [
-         base containers ghc-boot-th ghc-prim template-haskell
-         th-abstraction transformers transformers-compat
-       ];
-       testHaskellDepends = [
-         base base-compat base-orphans hspec QuickCheck tagged
-         template-haskell transformers transformers-compat
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Backports of GHC deriving extensions";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "deriving-compat_0_5_2" = callPackage
-    ({ mkDerivation, base, base-compat, base-orphans, containers
-     , ghc-boot-th, ghc-prim, hspec, hspec-discover, QuickCheck, tagged
-     , template-haskell, th-abstraction, transformers
-     , transformers-compat
-     }:
-     mkDerivation {
-       pname = "deriving-compat";
        version = "0.5.2";
        sha256 = "0h5jfpwawp7xn9vi82zqskaypa3vypm97lz2farmmfqvnkw60mj9";
        libraryHaskellDepends = [
@@ -61526,7 +61384,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Backports of GHC deriving extensions";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "derp" = callPackage
@@ -61556,8 +61413,8 @@ self: {
     ({ mkDerivation, base, doctest }:
      mkDerivation {
        pname = "derulo";
-       version = "1.0.3";
-       sha256 = "1z2yv4476a42xndws1zqw0kmiy4wqw1ydqgp7hf7rk3s067wz33m";
+       version = "1.0.5";
+       sha256 = "1pyal6rhnyhqx8gwyh42vf66i18y9nplmqka546ikzps439rvmly";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
@@ -62176,14 +62033,14 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "di_1_1_1" = callPackage
+  "di_1_2" = callPackage
     ({ mkDerivation, base, containers, df1, di-core, di-df1, di-handle
      , di-monad, exceptions
      }:
      mkDerivation {
        pname = "di";
-       version = "1.1.1";
-       sha256 = "0ibbhc0mnf4qwz90hgxnyd2vc6n86qqnyiahcr30lxknvqmbnskk";
+       version = "1.2";
+       sha256 = "0d4ywmnibg9h12bah4bdh03fs2l50f5s590kv45baz010bcqyx0b";
        libraryHaskellDepends = [
          base containers df1 di-core di-df1 di-handle di-monad exceptions
        ];
@@ -62260,14 +62117,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "di-monad_1_2" = callPackage
+  "di-monad_1_3" = callPackage
     ({ mkDerivation, base, containers, di-core, exceptions, mtl, pipes
      , stm, transformers
      }:
      mkDerivation {
        pname = "di-monad";
-       version = "1.2";
-       sha256 = "1zqgsylx6z6p0cvlyhl7vnff5sb4jlv9qzqgbz8kg3zli183gwc3";
+       version = "1.3";
+       sha256 = "019k7jc3lvh6cgmrgdjq13hcvh6ar76n38li4nviikqbsvxmpqsl";
        libraryHaskellDepends = [
          base containers di-core exceptions mtl pipes stm transformers
        ];
@@ -62467,8 +62324,8 @@ self: {
        pname = "diagrams-core";
        version = "1.4.1.1";
        sha256 = "10mnicfyvawy3jlpgf656fx2y4836x04p3z1lpgyyr1nkvwyk0m1";
-       revision = "1";
-       editedCabalFile = "0qf0b27lx8w16x85rr4zf3sf4qzkywyi04incv3667054v7y8m25";
+       revision = "2";
+       editedCabalFile = "1lf7xcq42l4hjksgp1nhj7600shvw9q5a27bh729fyfphmvv3xkf";
        libraryHaskellDepends = [
          adjunctions base containers distributive dual-tree lens linear
          monoid-extras mtl profunctors semigroups unordered-containers
@@ -63838,8 +63695,10 @@ self: {
      }:
      mkDerivation {
        pname = "dirstream";
-       version = "1.0.3";
-       sha256 = "1yga8qzmarskjlnz7wnkrjiv438m2yswz640bcw8dawwqk8xf1x4";
+       version = "1.1.0";
+       sha256 = "1xnxsx1m06jm8yvim1xnvfkwylhyab51wvba1j3fbicy4ysblfz0";
+       revision = "1";
+       editedCabalFile = "01bl222ymniz3q7nbpbxhbckvwqgrawrk553widw5d0hnn0h0hnb";
        libraryHaskellDepends = [
          base directory pipes pipes-safe system-fileio system-filepath unix
        ];
@@ -64222,22 +64081,6 @@ self: {
      }) {};
 
   "distributed-closure" = callPackage
-    ({ mkDerivation, base, binary, bytestring, constraints, hspec
-     , QuickCheck, syb, template-haskell
-     }:
-     mkDerivation {
-       pname = "distributed-closure";
-       version = "0.4.0";
-       sha256 = "1r2ymmnm0misz92x4iz58yqyb4maf3kq8blsvxmclc0d77hblsnm";
-       libraryHaskellDepends = [
-         base binary bytestring constraints syb template-haskell
-       ];
-       testHaskellDepends = [ base binary hspec QuickCheck ];
-       description = "Serializable closures for distributed programming";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "distributed-closure_0_4_1" = callPackage
     ({ mkDerivation, async, base, binary, bytestring, constraints
      , hspec, QuickCheck, syb, template-haskell
      }:
@@ -64254,7 +64097,6 @@ self: {
        testHaskellDepends = [ base binary hspec QuickCheck ];
        description = "Serializable closures for distributed programming";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "distributed-fork" = callPackage
@@ -65071,25 +64913,12 @@ self: {
     ({ mkDerivation, base, Cabal, deepseq, QuickCheck }:
      mkDerivation {
        pname = "dlist";
-       version = "0.8.0.4";
-       sha256 = "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc";
-       libraryHaskellDepends = [ base deepseq ];
-       testHaskellDepends = [ base Cabal QuickCheck ];
-       description = "Difference lists";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "dlist_0_8_0_5" = callPackage
-    ({ mkDerivation, base, Cabal, deepseq, QuickCheck }:
-     mkDerivation {
-       pname = "dlist";
        version = "0.8.0.5";
        sha256 = "0hqvjld86vna9m0za4g37nv2gml2s8q01208igp4l3dl76l8ma4q";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base Cabal QuickCheck ];
        description = "Difference lists";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "dlist-instances" = callPackage
@@ -65333,6 +65162,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "do-notation-dsl" = callPackage
+    ({ mkDerivation, base, containers, doctest, doctest-discover
+     , temporary
+     }:
+     mkDerivation {
+       pname = "do-notation-dsl";
+       version = "0.1.0.3";
+       sha256 = "1q81hl8z4p2mqzijg69znf5cycv27phrrdd9f934brsv8fyvsbzx";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base containers doctest doctest-discover temporary
+       ];
+       description = "An alternative to monads";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "doc-review" = callPackage
     ({ mkDerivation, base, base64-bytestring, binary, bytestring
      , containers, directory, feed, filepath, haskell98, heist, hexpat
@@ -65571,35 +65416,6 @@ self: {
      }:
      mkDerivation {
        pname = "doctest";
-       version = "0.16.0";
-       sha256 = "0hkccch65s3kp0b36h7bqhilnpi4bx8kngncm7ma9vbd3dwacjdv";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base base-compat code-page deepseq directory filepath ghc ghc-paths
-         process syb transformers
-       ];
-       executableHaskellDepends = [
-         base base-compat code-page deepseq directory filepath ghc ghc-paths
-         process syb transformers
-       ];
-       testHaskellDepends = [
-         base base-compat code-page deepseq directory filepath ghc ghc-paths
-         hspec HUnit mockery process QuickCheck setenv silently
-         stringbuilder syb transformers with-location
-       ];
-       description = "Test interactive Haskell examples";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "doctest_0_16_0_1" = callPackage
-    ({ mkDerivation, base, base-compat, code-page, deepseq, directory
-     , filepath, ghc, ghc-paths, hspec, HUnit, mockery, process
-     , QuickCheck, setenv, silently, stringbuilder, syb, transformers
-     , with-location
-     }:
-     mkDerivation {
-       pname = "doctest";
        version = "0.16.0.1";
        sha256 = "106pc4rs4cfym7754gzdgy36dm9aidwmnqpjm9k7yq1hfd4pallv";
        isLibrary = true;
@@ -65619,7 +65435,6 @@ self: {
        ];
        description = "Test interactive Haskell examples";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "doctest-discover" = callPackage
@@ -65696,8 +65511,8 @@ self: {
     ({ mkDerivation, base, doctest }:
      mkDerivation {
        pname = "doctest-driver-gen";
-       version = "0.2.0.3";
-       sha256 = "1vm9rwym2fdl76kwgkh21z2ixfcvza1df4gba2hm7hkk0n4ndcq6";
+       version = "0.2.0.4";
+       sha256 = "0wbsql0pph74nghnnwwm2p8w4wnqs0iiwqfn3p3i26g6cg8yv1nr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base doctest ];
@@ -66848,8 +66663,8 @@ self: {
        pname = "dual-tree";
        version = "0.2.2";
        sha256 = "1sx9p9yr06z7bi7pshjpswizs6bkmfzcpw8xlasriniry86df4kl";
-       revision = "1";
-       editedCabalFile = "1hkjhij3s2a82b0sd898511lr6iphk3myk1l0hpl42ai32sf606q";
+       revision = "2";
+       editedCabalFile = "0r8idr1haqixa9nlp8db5iw9vr9sdk6rcargkr7w7s6i99lm6jmh";
        libraryHaskellDepends = [
          base monoid-extras newtype-generics semigroups
        ];
@@ -69763,10 +69578,10 @@ self: {
      }:
      mkDerivation {
        pname = "engine-io";
-       version = "1.2.21";
-       sha256 = "0rqpxvw2d2m5hlgkc2a3794874dig84vph1wkqnlrv2vxixkqplw";
+       version = "1.2.22";
+       sha256 = "19hmd804r9k20270zlsfbsyvww5syi5h3nl74klvgmni39ahcxcl";
        revision = "1";
-       editedCabalFile = "1n5l2fs0wn7wps2nr8irymrfac2qris75z3p73mmlxrdxmbjb2vr";
+       editedCabalFile = "098nkv1zrc4b80137pxdz87by83bla9cbsv6920cpbspkic8x9xz";
        libraryHaskellDepends = [
          aeson async attoparsec base base64-bytestring bytestring errors
          free monad-loops mwc-random stm stm-delay text transformers
@@ -69883,27 +69698,12 @@ self: {
      }:
      mkDerivation {
        pname = "entropy";
-       version = "0.4.1.1";
-       sha256 = "1ahz5g148l6sax3dy505na2513i99c7bxix68jja5kbx4f271zcf";
-       setupHaskellDepends = [ base Cabal directory filepath process ];
-       libraryHaskellDepends = [ base bytestring unix ];
-       description = "A platform independent entropy source";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "entropy_0_4_1_3" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, directory, filepath
-     , process, unix
-     }:
-     mkDerivation {
-       pname = "entropy";
        version = "0.4.1.3";
        sha256 = "07596n4ligi1a6jddkh5kf94mrcg03kybs5wa198672d2gdfn2ji";
        setupHaskellDepends = [ base Cabal directory filepath process ];
        libraryHaskellDepends = [ base bytestring unix ];
        description = "A platform independent entropy source";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "entwine" = callPackage
@@ -70027,6 +69827,8 @@ self: {
        pname = "enumerator";
        version = "0.4.20";
        sha256 = "02a75dggj295zkhgjry5cb43s6y6ydpjb5w6vgl7kd9b6ma11qik";
+       revision = "1";
+       editedCabalFile = "10mn8a6sj7fvcprfmngr5z1h434k6yhdij064lqxjpiqyr1srg9z";
        libraryHaskellDepends = [
          base bytestring containers text transformers
        ];
@@ -70409,29 +70211,6 @@ self: {
      }:
      mkDerivation {
        pname = "equivalence";
-       version = "0.3.2";
-       sha256 = "0a85bdyyvjqs5z4kfhhf758210k9gi9dv42ik66a3jl0z7aix8kx";
-       revision = "1";
-       editedCabalFile = "010n0gpk2rpninggdnnx0j7fys6hzn80s789b16iw0a55h4z0gn8";
-       libraryHaskellDepends = [
-         base containers mtl STMonadTrans transformers transformers-compat
-       ];
-       testHaskellDepends = [
-         base containers mtl QuickCheck STMonadTrans template-haskell
-         test-framework test-framework-quickcheck2 transformers
-         transformers-compat
-       ];
-       description = "Maintaining an equivalence relation implemented as union-find using STT";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "equivalence_0_3_3" = callPackage
-    ({ mkDerivation, base, containers, mtl, QuickCheck, STMonadTrans
-     , template-haskell, test-framework, test-framework-quickcheck2
-     , transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "equivalence";
        version = "0.3.3";
        sha256 = "02jhn8z1aqyxp3krylhfnwr7zzjcd17q9qriyd9653i92b7di3gf";
        libraryHaskellDepends = [
@@ -70444,7 +70223,6 @@ self: {
        ];
        description = "Maintaining an equivalence relation implemented as union-find using STT";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "erd" = callPackage
@@ -70948,6 +70726,8 @@ self: {
        pname = "esqueleto";
        version = "2.5.3";
        sha256 = "10n49rzqmblky7pwjnysalyy6nacmxfms8dqbsdv6hlyzr8pb69x";
+       revision = "1";
+       editedCabalFile = "1rmqqx2p4bad6psg8jbzf6jwan9z4a5yjskdkw51q0f47jhpfcdj";
        libraryHaskellDepends = [
          base blaze-html bytestring conduit monad-logger persistent
          resourcet tagged text transformers unordered-containers
@@ -72061,6 +71841,8 @@ self: {
        pname = "exception-transformers";
        version = "0.4.0.7";
        sha256 = "1vzjy6mz6y9jacpwq2bax86nwzq9mk4b9y3r3r98l50r7pmn2nwj";
+       revision = "1";
+       editedCabalFile = "0sahi93f75acvmqagkjc1lcwx31crja6z9hyww9abj85x45pqa6f";
        libraryHaskellDepends = [
          base stm transformers transformers-compat
        ];
@@ -72303,34 +72085,87 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "exinst_0_7" = callPackage
+    ({ mkDerivation, base, binary, bytestring, constraints, deepseq
+     , hashable, profunctors, QuickCheck, singletons, tasty, tasty-hunit
+     , tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "exinst";
+       version = "0.7";
+       sha256 = "01m50pixmrw6mrd04nxw6qwx0z5k857pn3nqfiybpmp4zbc3bwac";
+       libraryHaskellDepends = [
+         base binary constraints deepseq hashable profunctors QuickCheck
+         singletons
+       ];
+       testHaskellDepends = [
+         base binary bytestring constraints deepseq hashable profunctors
+         QuickCheck singletons tasty tasty-hunit tasty-quickcheck
+       ];
+       description = "Dependent pairs and their instances";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "exinst-aeson" = callPackage
-    ({ mkDerivation, aeson, base, constraints, exinst, singletons }:
+    ({ mkDerivation, aeson, base, bytestring, constraints, exinst
+     , QuickCheck, singletons, tasty, tasty-quickcheck
+     }:
      mkDerivation {
        pname = "exinst-aeson";
-       version = "0.2";
-       sha256 = "12qnc7kfr51gxnmyj71m82rh76phj207bd6fl8iwhwvzb5xhnnsr";
+       version = "0.7";
+       sha256 = "1dn08xqcfp3bsgvrhcv491kdfmky6925wa33zry8aijwxkchva67";
        libraryHaskellDepends = [
          aeson base constraints exinst singletons
        ];
-       description = "Derive instances for the `aeson` library for your existential types";
+       testHaskellDepends = [
+         aeson base bytestring exinst QuickCheck tasty tasty-quickcheck
+       ];
+       description = "Dependent pairs and their instances";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "exinst-bytes" = callPackage
-    ({ mkDerivation, base, bytes, constraints, exinst, singletons }:
+    ({ mkDerivation, base, binary, bytes, bytestring, cereal
+     , constraints, exinst, exinst-cereal, QuickCheck, singletons, tasty
+     , tasty-quickcheck
+     }:
      mkDerivation {
        pname = "exinst-bytes";
-       version = "0.2";
-       sha256 = "0rxjfy3ljkmjnvsvif0wvcwhcgvz1yr5amj10ii08lr3vn6papnj";
+       version = "0.7";
+       sha256 = "05k2jzlz6aj5wwy3bnysszr6kw85n0j73wkda5vwcrsha4prmf9r";
        libraryHaskellDepends = [
          base bytes constraints exinst singletons
        ];
-       description = "Derive instances for the `bytes` library for your existential types";
+       testHaskellDepends = [
+         base binary bytes bytestring cereal exinst exinst-cereal QuickCheck
+         tasty tasty-quickcheck
+       ];
+       description = "Dependent pairs and their instances";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "exinst-cereal" = callPackage
+    ({ mkDerivation, base, binary, bytestring, cereal, constraints
+     , exinst, QuickCheck, singletons, tasty, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "exinst-cereal";
+       version = "0.7";
+       sha256 = "1qdz4a4qzi3fbkigvng36hz5j322zbbwya2vrs0shja8ry6rvi74";
+       libraryHaskellDepends = [
+         base cereal constraints exinst singletons
+       ];
+       testHaskellDepends = [
+         base binary bytestring cereal exinst QuickCheck tasty
+         tasty-quickcheck
+       ];
+       description = "Dependent pairs and their instances";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "exinst-deepseq" = callPackage
     ({ mkDerivation, base, constraints, deepseq, exinst }:
      mkDerivation {
@@ -72357,6 +72192,24 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "exinst-serialise" = callPackage
+    ({ mkDerivation, base, binary, constraints, exinst, QuickCheck
+     , serialise, singletons, tasty, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "exinst-serialise";
+       version = "0.7";
+       sha256 = "0a51534sifdhq764qa9hrhwnv48f1y08a7f11mhhx3r23pxh4588";
+       libraryHaskellDepends = [
+         base constraints exinst serialise singletons
+       ];
+       testHaskellDepends = [
+         base binary exinst QuickCheck serialise tasty tasty-quickcheck
+       ];
+       description = "Dependent pairs and their instances";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "existential" = callPackage
     ({ mkDerivation, base, cereal, constraints, control-invariants
      , lens, portable-template-haskell-lens, QuickCheck
@@ -72395,8 +72248,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "exit-codes";
-       version = "0.1.1.0";
-       sha256 = "0v8z5wkhyavd7zzcfbjm229mbgp1xcjbz9mvcxnjikcljn5xi181";
+       version = "1.0.0";
+       sha256 = "00cyli96zkyqhjr3lqzrislqyk72xwm2dcqvjagklidh32d4k8ja";
        libraryHaskellDepends = [ base ];
        description = "Exit codes as defined by BSD";
        license = stdenv.lib.licenses.bsd3;
@@ -72482,6 +72335,8 @@ self: {
        pname = "exp-pairs";
        version = "0.1.6.0";
        sha256 = "1qsvly4klhk17r2pk60cf03dyz0cjc449fa2plqrlai9rl7xjfp6";
+       revision = "1";
+       editedCabalFile = "1zbsjlj6wavz9ysfzjqb4ng7688crlfvsbyj4li84khc1jp71xj3";
        libraryHaskellDepends = [
          base containers deepseq ghc-prim prettyprinter
        ];
@@ -72493,6 +72348,29 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "exp-pairs_0_2_0_0" = callPackage
+    ({ mkDerivation, base, containers, deepseq, ghc-prim, matrix
+     , prettyprinter, QuickCheck, random, smallcheck, tasty, tasty-hunit
+     , tasty-quickcheck, tasty-smallcheck
+     }:
+     mkDerivation {
+       pname = "exp-pairs";
+       version = "0.2.0.0";
+       sha256 = "0ry9k89xfy2493j7yypyiqcj0v7h5x9w8gl60dy28w4597yinisp";
+       revision = "1";
+       editedCabalFile = "1fkllbgsygzm1lw3g3a9l8fg8ap74bx0x7ja8yx3lbrjjsaqh8pa";
+       libraryHaskellDepends = [
+         base containers deepseq ghc-prim prettyprinter
+       ];
+       testHaskellDepends = [
+         base matrix QuickCheck random smallcheck tasty tasty-hunit
+         tasty-quickcheck tasty-smallcheck
+       ];
+       description = "Linear programming over exponent pairs";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "expand" = callPackage
     ({ mkDerivation, AspectAG, base, HList, murder, uu-parsinglib }:
      mkDerivation {
@@ -72730,8 +72608,8 @@ self: {
      }:
      mkDerivation {
        pname = "expressions";
-       version = "0.2";
-       sha256 = "1mqkz354w29fyc1sihr8bv10j6igcjhdn807ga9608r1lccgqf2d";
+       version = "0.4.2";
+       sha256 = "0lps0grvknsp0sfsqnd6kxfh6xf518x9ii11s7fy03qcl0v51da5";
        libraryHaskellDepends = [
          attoparsec base containers free lattices singletons text
          transformers
@@ -72747,8 +72625,8 @@ self: {
      }:
      mkDerivation {
        pname = "expressions-z3";
-       version = "0.2";
-       sha256 = "17q4mjlh8dxs1al3mw6xm9maxhbmmqprckqnyq9mwqc5j6c26b84";
+       version = "0.4";
+       sha256 = "1m3s9rm4767z68wpl92vryhg1sb0pllrv18x5x53amfa7kf6vrvv";
        libraryHaskellDepends = [
          base containers expressions list-t singletons transformers z3
        ];
@@ -72820,8 +72698,8 @@ self: {
        pname = "extended-reals";
        version = "0.2.3.0";
        sha256 = "170nxxza6lkczh05qi2qxr8nbr3gmdjpfvl1m703gjq9xwrwg2kw";
-       revision = "1";
-       editedCabalFile = "114s55sx0wq0zq9mgxrhaz4kd87c80zf8s35ani3h4dh1bb33j9w";
+       revision = "2";
+       editedCabalFile = "020aliazf97zrhkcdpblmh9xakabdd8wdxg0667j4553rsijwqcy";
        libraryHaskellDepends = [ base deepseq hashable ];
        testHaskellDepends = [
          base deepseq HUnit QuickCheck tasty tasty-hunit tasty-quickcheck
@@ -72981,22 +72859,6 @@ self: {
      }:
      mkDerivation {
        pname = "extra";
-       version = "1.6.9";
-       sha256 = "0xxcpb00pgwi9cmy6a7ghh6rblxry42p8pz5ssfgj20fs1xwzj1b";
-       libraryHaskellDepends = [
-         base clock directory filepath process time unix
-       ];
-       testHaskellDepends = [ base directory filepath QuickCheck unix ];
-       description = "Extra functions I use";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "extra_1_6_12" = callPackage
-    ({ mkDerivation, base, clock, directory, filepath, process
-     , QuickCheck, time, unix
-     }:
-     mkDerivation {
-       pname = "extra";
        version = "1.6.12";
        sha256 = "177m9f3hdc8sy6m791q6bmns01avzb0j9wj113rm4748k0bnqngz";
        libraryHaskellDepends = [
@@ -73005,7 +72867,6 @@ self: {
        testHaskellDepends = [ base directory filepath QuickCheck unix ];
        description = "Extra functions I use";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "extract-dependencies" = callPackage
@@ -73467,8 +73328,8 @@ self: {
      }:
      mkDerivation {
        pname = "fast-arithmetic";
-       version = "0.6.1.1";
-       sha256 = "0adnngx0bqbrcsxkgpdfb60p4jhvx0b8ls37g94q6cx9s0n3cmb8";
+       version = "0.6.2.2";
+       sha256 = "0rdlsl1k6kp766nm85afilwcvkdbi40kvqi5iy9a1ldkdk277vlk";
        libraryHaskellDepends = [ base composition-prelude gmpint ];
        testHaskellDepends = [
          arithmoi base combinat-compat hspec QuickCheck
@@ -74873,6 +74734,8 @@ self: {
        pname = "fgl";
        version = "5.6.0.0";
        sha256 = "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll";
+       revision = "1";
+       editedCabalFile = "17r5p1c6srgyzpdkqkjcl9k3ax9c82lvps1kqjhxpdzypsnzns70";
        libraryHaskellDepends = [
          array base containers deepseq transformers
        ];
@@ -75734,8 +75597,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "first-class-families";
-       version = "0.2.0.0";
-       sha256 = "0lwxz2dv0mcls0ww00h1x92gn4gdrz49arrl21lwqs1lf3q748f5";
+       version = "0.3.0.1";
+       sha256 = "07291dj197230kq8vxqdgs52zl428w12sgy18y0n5lk18g5isxib";
        libraryHaskellDepends = [ base ];
        description = "First class type families";
        license = stdenv.lib.licenses.mit;
@@ -76014,8 +75877,8 @@ self: {
      }:
      mkDerivation {
        pname = "fixed-vector-binary";
-       version = "1.0.0.0";
-       sha256 = "1q3rjjgn16fa5d8cqrlaac2b29v3045am1aanyn77vi843xzah98";
+       version = "1.0.0.1";
+       sha256 = "10s0mc6xdx7n6dmdgpjysbqmk79ssfw9zmaz5j0spjy7dy55zq3m";
        libraryHaskellDepends = [ base binary fixed-vector ];
        testHaskellDepends = [
          base binary fixed-vector tasty tasty-quickcheck
@@ -76030,8 +75893,8 @@ self: {
      }:
      mkDerivation {
        pname = "fixed-vector-cborg";
-       version = "1.0.0.0";
-       sha256 = "0fmdl4vfg65709iw8s18hjayqhdx4zgn36l17z2x9xlh0prspkki";
+       version = "1.0.0.1";
+       sha256 = "0m5xcy99hydcs99yph6n63517h2asg611rgg0h28blqd1f7bfch8";
        libraryHaskellDepends = [ base cborg fixed-vector serialise ];
        testHaskellDepends = [
          base fixed-vector serialise tasty tasty-quickcheck
@@ -76046,8 +75909,8 @@ self: {
      }:
      mkDerivation {
        pname = "fixed-vector-cereal";
-       version = "1.0.0.0";
-       sha256 = "1vg44xjwf4ffq4jxiqzk5rphbkgys81lzm1nzjsrfr8s7hhn0clp";
+       version = "1.0.0.1";
+       sha256 = "15vg3kr7fkd6i0swm4lm76gkfdnh0ydl4nci5abj1zss8qcn9gam";
        libraryHaskellDepends = [ base cereal fixed-vector ];
        testHaskellDepends = [
          base cereal fixed-vector tasty tasty-quickcheck
@@ -76720,8 +76583,8 @@ self: {
     ({ mkDerivation, base, doctest, QuickCheck, template-haskell }:
      mkDerivation {
        pname = "flow";
-       version = "1.0.15";
-       sha256 = "1i3rhjjl8w9xmvckz0qrlbg7jfdz6v5w5cgmhs8xqjys5ssmla2y";
+       version = "1.0.17";
+       sha256 = "06adx3drx4b283v0aawhzyigvjizbhig8lqxw9cgqfn1pvc1kv46";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest QuickCheck template-haskell ];
        description = "Write more understandable Haskell";
@@ -77250,22 +77113,6 @@ self: {
      }:
      mkDerivation {
        pname = "fold-debounce";
-       version = "0.2.0.7";
-       sha256 = "13y6l6ng5rrva0sx9sa4adp6p2yrpyfz91v3jbkamgh4g99w8zpz";
-       libraryHaskellDepends = [
-         base data-default-class stm stm-delay time
-       ];
-       testHaskellDepends = [ base hspec stm time ];
-       description = "Fold multiple events that happen in a given period of time";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "fold-debounce_0_2_0_8" = callPackage
-    ({ mkDerivation, base, data-default-class, hspec, stm, stm-delay
-     , time
-     }:
-     mkDerivation {
-       pname = "fold-debounce";
        version = "0.2.0.8";
        sha256 = "1j7v11nq2q7p50z27lbmprwqrhvcf9qa5zy2hql68zsi53q3wszw";
        libraryHaskellDepends = [
@@ -77274,7 +77121,6 @@ self: {
        testHaskellDepends = [ base hspec stm time ];
        description = "Fold multiple events that happen in a given period of time";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fold-debounce-conduit" = callPackage
@@ -77283,27 +77129,8 @@ self: {
      }:
      mkDerivation {
        pname = "fold-debounce-conduit";
-       version = "0.2.0.1";
-       sha256 = "02shx123yd9g9y8n9aj6ai6yrlcb7zjqyhvw530kw68ailnl762z";
-       libraryHaskellDepends = [
-         base conduit fold-debounce resourcet stm transformers
-         transformers-base
-       ];
-       testHaskellDepends = [
-         base conduit hspec resourcet stm transformers
-       ];
-       description = "Regulate input traffic from conduit Source with Control.FoldDebounce";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "fold-debounce-conduit_0_2_0_2" = callPackage
-    ({ mkDerivation, base, conduit, fold-debounce, hspec, resourcet
-     , stm, transformers, transformers-base
-     }:
-     mkDerivation {
-       pname = "fold-debounce-conduit";
-       version = "0.2.0.2";
-       sha256 = "18hxlcm0fixx4iiac26cdbkkqivg71qk3z50k71l9n3yashijjdc";
+       version = "0.2.0.3";
+       sha256 = "0rzgaxqv3q0s848bk3hm0mq14sxa1szpxvi9k19n0hpqlx60rj4p";
        libraryHaskellDepends = [
          base conduit fold-debounce resourcet stm transformers
          transformers-base
@@ -77313,7 +77140,6 @@ self: {
        ];
        description = "Regulate input traffic from conduit Source with Control.FoldDebounce";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "foldable1" = callPackage
@@ -77335,10 +77161,8 @@ self: {
      }:
      mkDerivation {
        pname = "foldl";
-       version = "1.4.4";
-       sha256 = "0dy8dhpys2bq6pn0m6klsykk4mfxi6q8hr8gqbfcvqk6g4i5wyn7";
-       revision = "1";
-       editedCabalFile = "1qdllf16djf7w5h8jq1f8sb5a0k5ihr9psai8wgkvnhd9addsk0f";
+       version = "1.4.5";
+       sha256 = "19qjmzc7gaxfwgqbgy0kq4vhbxvh3qjnwsxnc7pzwws2if5bv80b";
        libraryHaskellDepends = [
          base bytestring comonad containers contravariant hashable
          mwc-random primitive profunctors semigroupoids semigroups text
@@ -78518,20 +78342,20 @@ self: {
      }) {};
 
   "free-algebras" = callPackage
-    ({ mkDerivation, base, constraints, containers, data-fix, free
-     , groups, hedgehog, kan-extensions, mtl, natural-numbers
+    ({ mkDerivation, base, constraints, containers, data-fix, dlist
+     , free, groups, hedgehog, kan-extensions, mtl, natural-numbers
      , transformers
      }:
      mkDerivation {
        pname = "free-algebras";
-       version = "0.0.4.0";
-       sha256 = "1rfrdnwsb1kpdc0ha3a7yrykff6fi3ji6ljdxmijv2n4halmxnly";
+       version = "0.0.5.0";
+       sha256 = "1aqzah0c95mi9aqlvhl9r56im59jgjl38r199d7zb4lligfzvacr";
        libraryHaskellDepends = [
-         base constraints containers data-fix free groups kan-extensions mtl
-         natural-numbers transformers
+         base constraints containers data-fix dlist free groups
+         kan-extensions mtl natural-numbers transformers
        ];
        testHaskellDepends = [
-         base constraints containers data-fix free groups hedgehog
+         base constraints containers data-fix dlist free groups hedgehog
          kan-extensions mtl natural-numbers transformers
        ];
        description = "Free algebras in Haskell";
@@ -81452,6 +81276,8 @@ self: {
        pname = "generic-random";
        version = "1.2.0.0";
        sha256 = "130lmblycxnpqbsl7vf6a90zccibnvcb5zaclfajcn3by39007lv";
+       revision = "1";
+       editedCabalFile = "1d0hx41r7yq2a86ydnfh2fv540ah8cz05l071s2z4wxcjw0ymyn4";
        libraryHaskellDepends = [ base QuickCheck ];
        testHaskellDepends = [ base deepseq QuickCheck ];
        description = "Generic random generators";
@@ -81785,6 +81611,8 @@ self: {
        pname = "geniplate-mirror";
        version = "0.7.6";
        sha256 = "1y0m0bw5zpm1y1y6d9qmxj3swl8j8hlw1shxbr5awycf6k884ssb";
+       revision = "1";
+       editedCabalFile = "1pyz2vdkr5w9wadmb5v4alx408dqamny3mkvl4x8v2pf549qn37k";
        libraryHaskellDepends = [ base mtl template-haskell ];
        description = "Use Template Haskell to generate Uniplate-like functions";
        license = stdenv.lib.licenses.bsd3;
@@ -81849,6 +81677,19 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "genvalidity_0_6_1_0" = callPackage
+    ({ mkDerivation, base, hspec, hspec-core, QuickCheck, validity }:
+     mkDerivation {
+       pname = "genvalidity";
+       version = "0.6.1.0";
+       sha256 = "0wjqwn040yn7wpmcmhfp5slvyspal104p5wgkwwi40ykaj2zhayg";
+       libraryHaskellDepends = [ base QuickCheck validity ];
+       testHaskellDepends = [ base hspec hspec-core QuickCheck ];
+       description = "Testing utilities for the validity library";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "genvalidity-aeson" = callPackage
     ({ mkDerivation, aeson, base, genvalidity, genvalidity-hspec
      , genvalidity-scientific, genvalidity-text
@@ -81916,8 +81757,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-containers";
-       version = "0.5.0.0";
-       sha256 = "1qjqwsmdcwww4fwd3m40cckwq3xgmm37kc6s25z75w768grr51br";
+       version = "0.5.1.0";
+       sha256 = "098360pcf522xcwa3lk091pyjl6a08cl12z18ybrlai38saskd83";
        libraryHaskellDepends = [
          base containers genvalidity QuickCheck validity validity-containers
        ];
@@ -81934,8 +81775,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-hspec";
-       version = "0.6.1.1";
-       sha256 = "0jqdsslag6zz499z5ilra3dklsdvil92kzdx6gb591xvc30a74vs";
+       version = "0.6.2.0";
+       sha256 = "05dgfivvsfcnrbdkvx7mssi14xsnxck8h2xasbqnn6xng3pc351v";
        libraryHaskellDepends = [
          base genvalidity genvalidity-property hspec hspec-core QuickCheck
          transformers validity
@@ -82027,8 +81868,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-hspec-optics";
-       version = "0.1.0.0";
-       sha256 = "08p7hv1wr6df8sng906rvys0998nk8j331r2q5v2abw2rg2609m5";
+       version = "0.1.1.0";
+       sha256 = "13nspyfd8apvqf30dr8zz027d60qh2f25rc6gk8fliiq626ajz17";
        libraryHaskellDepends = [
          base genvalidity genvalidity-hspec hspec microlens QuickCheck
        ];
@@ -82088,8 +81929,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-property";
-       version = "0.2.1.0";
-       sha256 = "0xwq2wnrxlxcllina9faxxs8svslpxr73z9cw8asgc4b3hf41drm";
+       version = "0.2.1.1";
+       sha256 = "0cjw5i2pydidda9bnp6x37ylhxdk9g874x5sadr6sscg5kq85a1b";
        libraryHaskellDepends = [
          base genvalidity hspec QuickCheck validity
        ];
@@ -82104,8 +81945,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-scientific";
-       version = "0.2.0.1";
-       sha256 = "1wxrcpmhcbiklzqf5zjn0q7hpgkds5jjmdhl9kq68vbm96lm8zgn";
+       version = "0.2.1.0";
+       sha256 = "0gchsn5pvmbk57y7jn33zcbdr78mx3vb8v4cwr8b4pj5af6d84dg";
        libraryHaskellDepends = [
          base genvalidity QuickCheck scientific validity validity-scientific
        ];
@@ -82150,6 +81991,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "genvalidity-time_0_2_1_1" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-hspec, hspec
+     , QuickCheck, time, validity-time
+     }:
+     mkDerivation {
+       pname = "genvalidity-time";
+       version = "0.2.1.1";
+       sha256 = "0x3qddniy2a0qfyaxi1mfw9kqijky2gwyp19bcsp1gfxxl3c4mf5";
+       libraryHaskellDepends = [
+         base genvalidity QuickCheck time validity-time
+       ];
+       testHaskellDepends = [ base genvalidity-hspec hspec time ];
+       description = "GenValidity support for time";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "genvalidity-unordered-containers" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-hspec, hashable
      , hspec, QuickCheck, unordered-containers, validity
@@ -82352,8 +82210,8 @@ self: {
      }:
      mkDerivation {
        pname = "geojson";
-       version = "3.0.3";
-       sha256 = "05kifzlw077ggxish1hmpqlk180w46qpj4b2c8pjqngk5j0jd5vv";
+       version = "3.0.4";
+       sha256 = "0dnk9cb7y8wgnx8wzzln635r9pijljd9h5rinl0s9g4bjhw0rcw5";
        libraryHaskellDepends = [
          aeson base containers deepseq lens scientific semigroups text
          transformers validation
@@ -82576,26 +82434,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc_8_4_3" = callPackage
+  "ghc_8_6_1" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
-     , deepseq, directory, filepath, ghc-boot, ghc-boot-th, ghci, happy
-     , hpc, process, template-haskell, terminfo, time, transformers
-     , unix
+     , deepseq, directory, filepath, ghc-boot, ghc-boot-th, ghc-heap
+     , ghci, happy, hpc, process, template-haskell, terminfo, time
+     , transformers, unix
      }:
      mkDerivation {
        pname = "ghc";
-       version = "8.4.3";
-       sha256 = "1yryz21fnx5g1khpa7y2ps58kws3s1wjmz1ipnbv3hdcf6gyq46d";
+       version = "8.6.1";
+       sha256 = "1s4iggkyki6fd1wv9l5qgpnkyf1wgyf2mcncj6jwl4whrii3r7br";
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
-         ghc-boot ghc-boot-th ghci hpc process template-haskell terminfo
-         time transformers unix
+         ghc-boot ghc-boot-th ghc-heap ghci hpc process template-haskell
+         terminfo time transformers unix
        ];
        libraryToolDepends = [ alex happy ];
        description = "The GHC API";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
+       broken = true;
+     }) {ghc-heap = null;};
 
   "ghc-boot_8_6_1" = callPackage
     ({ mkDerivation, base, binary, bytestring, directory, filepath
@@ -83223,12 +83082,12 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ghc-prim_0_5_2_0" = callPackage
+  "ghc-prim_0_5_3" = callPackage
     ({ mkDerivation, rts }:
      mkDerivation {
        pname = "ghc-prim";
-       version = "0.5.2.0";
-       sha256 = "1ccvzkw3v4xlj7g126wwlc5rvd480hbv1pcq2rfb85k77rzi6bjr";
+       version = "0.5.3";
+       sha256 = "07s75s4yj33p87zzpvp68hgf72xsxg6rm47g4aaymmlf52aywmv9";
        libraryHaskellDepends = [ rts ];
        description = "GHC primitives";
        license = stdenv.lib.licenses.bsd3;
@@ -83241,27 +83100,6 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-prof";
-       version = "1.4.1.3";
-       sha256 = "16ckk4ldpkq7khka5mhkngrcazrnfxw394rm7mcshhlr7f41ydlr";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         attoparsec base containers scientific text time
-       ];
-       testHaskellDepends = [
-         attoparsec base containers directory filepath process tasty
-         tasty-hunit temporary text
-       ];
-       description = "Library for parsing GHC time and allocation profiling reports";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghc-prof_1_4_1_4" = callPackage
-    ({ mkDerivation, attoparsec, base, containers, directory, filepath
-     , process, scientific, tasty, tasty-hunit, temporary, text, time
-     }:
-     mkDerivation {
-       pname = "ghc-prof";
        version = "1.4.1.4";
        sha256 = "1wrlz2x9zsrip92m254vh0s07j9afjli6n1kcass8z0lw17m26mh";
        isLibrary = true;
@@ -83275,7 +83113,6 @@ self: {
        ];
        description = "Library for parsing GHC time and allocation profiling reports";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-prof-aeson" = callPackage
@@ -83691,6 +83528,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "ghci-hexcalc" = callPackage
+    ({ mkDerivation, base, doctest, QuickCheck }:
+     mkDerivation {
+       pname = "ghci-hexcalc";
+       version = "0.1.0.1";
+       sha256 = "1mwh4wz3ccmh0fi0k0y19bk33vn8p6ylmkklidpw5vg7k3v9d7s2";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base doctest QuickCheck ];
+       description = "GHCi as a Hex Calculator interactive";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ghci-history-parser" = callPackage
     ({ mkDerivation, base, doctest, hspec, parsec }:
      mkDerivation {
@@ -84457,28 +84306,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtk";
-       version = "3.0.24";
-       sha256 = "14cyj1acxs39avciyzqqb1qa5dr4my8rv3mfwv1kv92wa9a5i97v";
-       setupHaskellDepends = [ base Cabal haskell-gi ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf
-         gi-gio gi-glib gi-gobject gi-pango haskell-gi haskell-gi-base
-         haskell-gi-overloading text transformers
-       ];
-       libraryPkgconfigDepends = [ gtk3 ];
-       doHaddock = false;
-       description = "Gtk bindings";
-       license = stdenv.lib.licenses.lgpl21;
-     }) {gtk3 = pkgs.gnome3.gtk;};
-
-  "gi-gtk_3_0_25" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
-     , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
-     , gi-pango, gtk3, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, text, transformers
-     }:
-     mkDerivation {
-       pname = "gi-gtk";
        version = "3.0.25";
        sha256 = "0l6xnh85agjagdmjy72akvxviwkzyngh7rii5idrsd62bb27abx1";
        setupHaskellDepends = [ base Cabal haskell-gi ];
@@ -84491,7 +84318,6 @@ self: {
        doHaddock = false;
        description = "Gtk bindings";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {gtk3 = pkgs.gnome3.gtk;};
 
   "gi-gtk-declarative" = callPackage
@@ -84536,23 +84362,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtk-hs";
-       version = "0.3.6.1";
-       sha256 = "0qa1ig3z44p47badin0v3rnwilck05659jnk7xcvh2pjhmjmpclw";
-       libraryHaskellDepends = [
-         base base-compat containers gi-gdk gi-gdkpixbuf gi-glib gi-gobject
-         gi-gtk haskell-gi-base mtl text transformers
-       ];
-       description = "A wrapper for gi-gtk, adding a few more idiomatic API parts on top";
-       license = stdenv.lib.licenses.lgpl21;
-     }) {};
-
-  "gi-gtk-hs_0_3_6_2" = callPackage
-    ({ mkDerivation, base, base-compat, containers, gi-gdk
-     , gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk, haskell-gi-base, mtl
-     , text, transformers
-     }:
-     mkDerivation {
-       pname = "gi-gtk-hs";
        version = "0.3.6.2";
        sha256 = "04gksr27nqzx77c8kv2c94ysf1pz3nwhvnxvbz8h7cn4hzvzhb8z";
        libraryHaskellDepends = [
@@ -84561,7 +84370,6 @@ self: {
        ];
        description = "A wrapper for gi-gtk, adding a few more idiomatic API parts on top";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "gi-gtkosxapplication" = callPackage
@@ -84947,14 +84755,14 @@ self: {
 
   "ginger" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring
-     , data-default, filepath, http-types, mtl, parsec, safe, scientific
-     , tasty, tasty-hunit, tasty-quickcheck, text, time, transformers
-     , unordered-containers, utf8-string, vector
+     , data-default, filepath, http-types, mtl, parsec, process, safe
+     , scientific, tasty, tasty-hunit, tasty-quickcheck, text, time
+     , transformers, unordered-containers, utf8-string, vector, yaml
      }:
      mkDerivation {
        pname = "ginger";
-       version = "0.7.3.0";
-       sha256 = "1c4k0ixpkdb711arxcn028z27y78ssr6j5n7dfs9cajf93x727gs";
+       version = "0.8.0.1";
+       sha256 = "0ahd12y6qlnqi8wvhczn5hk2k7g48m6a0d2nxbvjx00iixs5dr34";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -84964,8 +84772,8 @@ self: {
          unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [
-         aeson base bytestring data-default text transformers
-         unordered-containers
+         aeson base bytestring data-default process text transformers
+         unordered-containers yaml
        ];
        testHaskellDepends = [
          aeson base bytestring data-default mtl tasty tasty-hunit
@@ -85550,8 +85358,8 @@ self: {
      }:
      mkDerivation {
        pname = "githash";
-       version = "0.1.0.1";
-       sha256 = "03zc7vjlnrr7ix7cnpgi70s0znsi07ms60dci8baxbcmjbibdcgy";
+       version = "0.1.1.0";
+       sha256 = "14532rljfzlkcbqpi69wj31cqlzid0rwwy0kzlwvxp06zh8lq2a0";
        libraryHaskellDepends = [
          base bytestring directory filepath process template-haskell
        ];
@@ -86740,6 +86548,8 @@ self: {
        pname = "gloss";
        version = "1.13.0.1";
        sha256 = "1f19vlx32nkgply25p83n7498lwdpshiibqg7nzkhb2kv7n0y71q";
+       revision = "1";
+       editedCabalFile = "1nyg324icnlky647zq4c21sqxv2bgnwnzgh2hz5d5ys6ba69j59h";
        libraryHaskellDepends = [
          base bmp bytestring containers ghc-prim gloss-rendering GLUT OpenGL
        ];
@@ -86765,6 +86575,8 @@ self: {
        pname = "gloss-algorithms";
        version = "1.13.0.1";
        sha256 = "0vbqcsvyicb409a60fab0c0shixny4l5z2l15n8hrrr1dsvisf95";
+       revision = "1";
+       editedCabalFile = "140zmk3br0nn98mjc6ri36nk8yl93n4v69zybzv2vc41yxgvnac5";
        libraryHaskellDepends = [ base containers ghc-prim gloss ];
        description = "Data structures and algorithms for working with 2D graphics";
        license = stdenv.lib.licenses.mit;
@@ -86804,8 +86616,8 @@ self: {
      }:
      mkDerivation {
        pname = "gloss-examples";
-       version = "1.13.0.1";
-       sha256 = "071b75qlppjff9q7b8312wb382gry4dnz1b8p84sb8lxmxr2848w";
+       version = "1.13.0.2";
+       sha256 = "1g2l3jjj2mmmw9w45bmasqn9nbbsxxny6zhdvda931r6ryanq8db";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -86885,14 +86697,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "gloss-raster_1_13_0_1" = callPackage
+  "gloss-raster_1_13_0_2" = callPackage
     ({ mkDerivation, base, containers, ghc-prim, gloss, gloss-rendering
      , repa
      }:
      mkDerivation {
        pname = "gloss-raster";
-       version = "1.13.0.1";
-       sha256 = "1dyj8r0b3gal54dgyq9jb4s5sqjhp152q63r8nkpzjh1c9d3cp9x";
+       version = "1.13.0.2";
+       sha256 = "1k4l19c1fn1s14phq2qml5ibsli3jmkk6748k9y96lbrgj5nfp49";
        libraryHaskellDepends = [
          base containers ghc-prim gloss gloss-rendering repa
        ];
@@ -86938,6 +86750,8 @@ self: {
        pname = "gloss-rendering";
        version = "1.13.0.2";
        sha256 = "0ivzijqkxn0r4iqk0rmq0bzdzzgv9a8fgwy3gwnfibmvhhm9jfq0";
+       revision = "1";
+       editedCabalFile = "0r57zc8ryxgjb4ydcdlmq19hl3nj6gjm3z85wrmdkn0wrx16mqih";
        libraryHaskellDepends = [
          base bmp bytestring containers GLUT OpenGL
        ];
@@ -90145,6 +89959,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "graphmod-plugin" = callPackage
+    ({ mkDerivation, base, containers, directory, dotgen, filepath, ghc
+     , syb, template-haskell
+     }:
+     mkDerivation {
+       pname = "graphmod-plugin";
+       version = "0.1.0.0";
+       sha256 = "0p95zr37mkvh7gsyj7wkzc3lqqbbkz7jh33jg123hz6qili2hziw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory dotgen filepath ghc syb template-haskell
+       ];
+       executableHaskellDepends = [ base ];
+       description = "A reimplementation of graphmod as a source plugin";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "graphql" = callPackage
     ({ mkDerivation, attoparsec, base, tasty, tasty-hunit, text }:
      mkDerivation {
@@ -90505,8 +90337,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell";
-       version = "0.2.1.0";
-       sha256 = "03a3rgrzmhc3rh8hwz2pmq3w2q6yf8ypcfzbmqm8cwkix5xx1h8z";
+       version = "0.2.1.1";
+       sha256 = "0nplscs0gv9isb1z2i8qh50yssvd7kkd669j53491hjw53rwy1cs";
        libraryHaskellDepends = [
          aeson base greskell-core semigroups text transformers
          unordered-containers vector
@@ -90526,8 +90358,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell-core";
-       version = "0.1.2.3";
-       sha256 = "026lipvhc4kjcmf1d604f6m71b3hrrkaafdvymmn1fsxa360dw0s";
+       version = "0.1.2.4";
+       sha256 = "11agvhvpv94rnylc5ch5cg90w5z1i0ywdw47yca83503lmv3y790";
        libraryHaskellDepends = [
          aeson base containers hashable scientific semigroups text
          unordered-containers uuid vector
@@ -90547,30 +90379,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell-websocket";
-       version = "0.1.1.0";
-       sha256 = "1c3n222ihaqb2gls0c9f4zc8pgbwgan7j1n4h5p7xhp7csg34p13";
-       libraryHaskellDepends = [
-         aeson async base base64-bytestring bytestring greskell-core
-         hashtables safe-exceptions stm text unordered-containers uuid
-         vector websockets
-       ];
-       testHaskellDepends = [
-         aeson base bytestring greskell-core hspec unordered-containers uuid
-         vector
-       ];
-       description = "Haskell client for Gremlin Server using WebSocket serializer";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "greskell-websocket_0_1_1_1" = callPackage
-    ({ mkDerivation, aeson, async, base, base64-bytestring, bytestring
-     , greskell-core, hashtables, hspec, safe-exceptions, stm, text
-     , unordered-containers, uuid, vector, websockets
-     }:
-     mkDerivation {
-       pname = "greskell-websocket";
-       version = "0.1.1.1";
-       sha256 = "133jwmqm5swm214sav8kigg8lqvk64g1nly5zk1xcij6rajxryci";
+       version = "0.1.1.2";
+       sha256 = "1rydw93dscnq41a1j4l7fchbpxgbqgf2kx8c58kb0m8qxi7v6qlh";
        libraryHaskellDepends = [
          aeson async base base64-bytestring bytestring greskell-core
          hashtables safe-exceptions stm text unordered-containers uuid
@@ -90582,7 +90392,6 @@ self: {
        ];
        description = "Haskell client for Gremlin Server using WebSocket serializer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "grid" = callPackage
@@ -91471,6 +91280,8 @@ self: {
        pname = "gtk2hs-buildtools";
        version = "0.13.4.0";
        sha256 = "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg";
+       revision = "1";
+       editedCabalFile = "0nbghg11y4nvxjxrvdm4a7fzj8z12fr12hkj4b7p27imlryg3m10";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -92195,8 +92006,8 @@ self: {
      }:
      mkDerivation {
        pname = "hOpenPGP";
-       version = "2.7.2";
-       sha256 = "1fcpzc1ph0nykjs4k5hm6b67698h1n9452wlpm55acdf53mrk1lg";
+       version = "2.7.3";
+       sha256 = "0qxqq46p4l61chkxk7c6lhnscik3gzsgcvszp6ywspk8zp1yhbi8";
        libraryHaskellDepends = [
          aeson asn1-encoding attoparsec base base16-bytestring
          base64-bytestring bifunctors binary binary-conduit bytestring bzlib
@@ -94085,43 +93896,6 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll";
-       version = "4.12.3.0";
-       sha256 = "1cczcca2h5spvrq8z2nm5ygphcrjfm6k725ppbcc05c4w49dqwm4";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base binary blaze-html blaze-markup bytestring containers
-         cryptohash data-default deepseq directory file-embed filepath
-         fsnotify http-conduit http-types lrucache mtl network-uri
-         optparse-applicative pandoc pandoc-citeproc parsec process random
-         regex-tdfa resourcet scientific tagsoup text time
-         time-locale-compat unordered-containers vector wai wai-app-static
-         warp yaml
-       ];
-       executableHaskellDepends = [ base directory filepath ];
-       testHaskellDepends = [
-         base bytestring containers filepath QuickCheck tasty tasty-hunit
-         tasty-quickcheck text unordered-containers yaml
-       ];
-       testToolDepends = [ utillinux ];
-       description = "A static website compiler library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) utillinux;};
-
-  "hakyll_4_12_4_0" = callPackage
-    ({ mkDerivation, base, binary, blaze-html, blaze-markup, bytestring
-     , containers, cryptohash, data-default, deepseq, directory
-     , file-embed, filepath, fsnotify, http-conduit, http-types
-     , lrucache, mtl, network-uri, optparse-applicative, pandoc
-     , pandoc-citeproc, parsec, process, QuickCheck, random, regex-tdfa
-     , resourcet, scientific, tagsoup, tasty, tasty-hunit
-     , tasty-quickcheck, text, time, time-locale-compat
-     , unordered-containers, utillinux, vector, wai, wai-app-static
-     , warp, yaml
-     }:
-     mkDerivation {
-       pname = "hakyll";
        version = "4.12.4.0";
        sha256 = "0kflvb86maqn15h0dh2r2p415q9k351gl9mpb3vnbmfn0nhvg1x1";
        isLibrary = true;
@@ -94144,7 +93918,6 @@ self: {
        testToolDepends = [ utillinux ];
        description = "A static website compiler library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) utillinux;};
 
   "hakyll-R" = callPackage
@@ -95055,32 +94828,6 @@ self: {
      }:
      mkDerivation {
        pname = "hapistrano";
-       version = "0.3.5.10";
-       sha256 = "1pkgbcpddk5ik0b1b684nnvwil68kla1w7660c1751dyhhh78ikw";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base filepath formatting gitrev mtl path process time transformers
-       ];
-       executableHaskellDepends = [
-         aeson async base formatting gitrev optparse-applicative path
-         path-io stm yaml
-       ];
-       testHaskellDepends = [
-         base directory filepath hspec mtl path path-io process temporary
-       ];
-       description = "A deployment library for Haskell applications";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "hapistrano_0_3_6_0" = callPackage
-    ({ mkDerivation, aeson, async, base, directory, filepath
-     , formatting, gitrev, hspec, mtl, optparse-applicative, path
-     , path-io, process, stm, temporary, time, transformers, yaml
-     }:
-     mkDerivation {
-       pname = "hapistrano";
        version = "0.3.6.0";
        sha256 = "094jv3plkh515mn49hp5bylpxfn7c74n9bdk4843bm88q5hxlnk2";
        isLibrary = true;
@@ -95098,7 +94845,6 @@ self: {
        ];
        description = "A deployment library for Haskell applications";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "happindicator" = callPackage
@@ -97368,25 +97114,12 @@ self: {
     ({ mkDerivation, base, bytestring, containers, glib, text }:
      mkDerivation {
        pname = "haskell-gi-base";
-       version = "0.21.1";
-       sha256 = "0p992mpyy9z699zpvp8i8b5v8a3jhiq6c4n29zlf7qbcxc8z4z36";
-       libraryHaskellDepends = [ base bytestring containers text ];
-       libraryPkgconfigDepends = [ glib ];
-       description = "Foundation for libraries generated by haskell-gi";
-       license = stdenv.lib.licenses.lgpl21;
-     }) {inherit (pkgs) glib;};
-
-  "haskell-gi-base_0_21_3" = callPackage
-    ({ mkDerivation, base, bytestring, containers, glib, text }:
-     mkDerivation {
-       pname = "haskell-gi-base";
        version = "0.21.3";
        sha256 = "1nh2cb8l0yvn6hp5bw273yyj0y15f1sd8115wi7sxyvas5h5q7m4";
        libraryHaskellDepends = [ base bytestring containers text ];
        libraryPkgconfigDepends = [ glib ];
        description = "Foundation for libraries generated by haskell-gi";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) glib;};
 
   "haskell-gi-overloading_0_0" = callPackage
@@ -97536,23 +97269,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "haskell-lexer";
-       version = "1.0.1";
-       sha256 = "0rj3r1pk88hh3sk3mj61whp8czz5kpxhbc78xlr04bxwqjrjmm6p";
-       libraryHaskellDepends = [ base ];
-       description = "A fully compliant Haskell 98 lexer";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "haskell-lexer_1_0_2" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "haskell-lexer";
        version = "1.0.2";
        sha256 = "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq";
        libraryHaskellDepends = [ base ];
        description = "A fully compliant Haskell 98 lexer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-lsp" = callPackage
@@ -98108,28 +97829,6 @@ self: {
      }) {};
 
   "haskell-src-exts" = callPackage
-    ({ mkDerivation, array, base, containers, cpphs, directory
-     , filepath, ghc-prim, happy, mtl, pretty, pretty-show, smallcheck
-     , tasty, tasty-golden, tasty-smallcheck
-     }:
-     mkDerivation {
-       pname = "haskell-src-exts";
-       version = "1.20.2";
-       sha256 = "1sm3z4v1p5yffg01ldgavz71s3bvfhjfa13k428rk14bpkl8crlz";
-       revision = "1";
-       editedCabalFile = "0gxpxs3p4qvky6m8g3fjj09hx7nkg28b9a4999ca7afz359si3r9";
-       libraryHaskellDepends = [ array base cpphs ghc-prim pretty ];
-       libraryToolDepends = [ happy ];
-       testHaskellDepends = [
-         base containers directory filepath mtl pretty-show smallcheck tasty
-         tasty-golden tasty-smallcheck
-       ];
-       doCheck = false;
-       description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "haskell-src-exts_1_20_3" = callPackage
     ({ mkDerivation, array, base, containers, directory, filepath
      , ghc-prim, happy, mtl, pretty, pretty-show, smallcheck, tasty
      , tasty-golden, tasty-smallcheck
@@ -98147,7 +97846,6 @@ self: {
        doCheck = false;
        description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-src-exts-observe" = callPackage
@@ -100778,34 +100476,6 @@ self: {
      }:
      mkDerivation {
        pname = "haxl";
-       version = "2.0.1.0";
-       sha256 = "07s3jxqvdcla3qj8jjxd5088kp7h015i2q20kjhs4n73swa9h9fd";
-       revision = "1";
-       editedCabalFile = "04k5q5hvnbw1shrb8pqw3nwsylpb78fi802xzfq2gcmrnl6hy58p";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base binary bytestring containers deepseq exceptions filepath
-         ghc-prim hashable pretty stm text time transformers
-         unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base binary bytestring containers deepseq filepath hashable
-         HUnit test-framework test-framework-hunit text time
-         unordered-containers
-       ];
-       description = "A Haskell library for efficient, concurrent, and concise data access";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "haxl_2_0_1_1" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, containers
-     , deepseq, exceptions, filepath, ghc-prim, hashable, HUnit, pretty
-     , stm, test-framework, test-framework-hunit, text, time
-     , transformers, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "haxl";
        version = "2.0.1.1";
        sha256 = "1wfnwi3impv4cv359a65yh50c6kdfxhvbwycf5h76w3cvqdhvwsr";
        isLibrary = true;
@@ -100822,7 +100492,6 @@ self: {
        ];
        description = "A Haskell library for efficient, concurrent, and concise data access";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haxl-amazonka" = callPackage
@@ -102150,32 +101819,6 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog";
-       version = "0.6";
-       sha256 = "0c3y4gvl1i2r54ayha2kw5i2gdpd8nfzfzjly5vhxm13ylygwvxq";
-       libraryHaskellDepends = [
-         ansi-terminal async base bytestring concurrent-output containers
-         directory exceptions lifted-async mmorph monad-control mtl
-         pretty-show primitive random resourcet semigroups stm
-         template-haskell text th-lift time transformers transformers-base
-         unix wl-pprint-annotated
-       ];
-       testHaskellDepends = [
-         base containers pretty-show semigroups text transformers
-       ];
-       description = "Hedgehog will eat all your bugs";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hedgehog_0_6_1" = callPackage
-    ({ mkDerivation, ansi-terminal, async, base, bytestring
-     , concurrent-output, containers, directory, exceptions
-     , lifted-async, mmorph, monad-control, mtl, pretty-show, primitive
-     , random, resourcet, semigroups, stm, template-haskell, text
-     , th-lift, time, transformers, transformers-base, unix
-     , wl-pprint-annotated
-     }:
-     mkDerivation {
-       pname = "hedgehog";
        version = "0.6.1";
        sha256 = "0xz10ycdm5vk9nrcym1fi83k19frfwqz18bz8bnpzwvaj0j41yfj";
        revision = "1";
@@ -102192,7 +101835,6 @@ self: {
        ];
        description = "Hedgehog will eat all your bugs";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hedgehog-checkers" = callPackage
@@ -103315,6 +102957,53 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "hevm" = callPackage
+    ({ mkDerivation, abstract-par, aeson, ansi-wl-pprint, async, base
+     , base16-bytestring, base64-bytestring, binary, brick, bytestring
+     , cereal, containers, cryptonite, data-dword, deepseq, directory
+     , fgl, filepath, ghci-pretty, haskeline, here, HUnit, lens
+     , lens-aeson, megaparsec, memory, monad-par, mtl, multiset
+     , operational, optparse-generic, process, QuickCheck
+     , quickcheck-text, readline, regex-tdfa, restless-git, rosezipper
+     , s-cargot, scientific, secp256k1, tasty, tasty-hunit
+     , tasty-quickcheck, temporary, text, text-format, time
+     , transformers, tree-view, unordered-containers, vector, vty, wreq
+     }:
+     mkDerivation {
+       pname = "hevm";
+       version = "0.17";
+       sha256 = "0xp28mm3wxyj3win37nvrjdywkrfzm4l0j441q88bd35vr25yi2k";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         abstract-par aeson ansi-wl-pprint base base16-bytestring
+         base64-bytestring binary brick bytestring cereal containers
+         cryptonite data-dword deepseq directory fgl filepath ghci-pretty
+         haskeline lens lens-aeson megaparsec memory monad-par mtl multiset
+         operational optparse-generic process QuickCheck quickcheck-text
+         readline restless-git rosezipper s-cargot scientific temporary text
+         text-format time transformers tree-view unordered-containers vector
+         vty wreq
+       ];
+       librarySystemDepends = [ secp256k1 ];
+       executableHaskellDepends = [
+         aeson ansi-wl-pprint async base base16-bytestring base64-bytestring
+         binary brick bytestring containers cryptonite data-dword deepseq
+         directory filepath ghci-pretty lens lens-aeson memory mtl
+         optparse-generic process QuickCheck quickcheck-text readline
+         regex-tdfa temporary text text-format unordered-containers vector
+         vty
+       ];
+       testHaskellDepends = [
+         base base16-bytestring binary bytestring ghci-pretty here HUnit
+         lens mtl QuickCheck tasty tasty-hunit tasty-quickcheck text vector
+       ];
+       testSystemDepends = [ secp256k1 ];
+       description = "Ethereum virtual machine evaluator";
+       license = stdenv.lib.licenses.agpl3;
+     }) {inherit (pkgs) secp256k1;};
+
   "hevolisa" = callPackage
     ({ mkDerivation, base, bytestring, cairo, filepath, haskell98 }:
      mkDerivation {
@@ -103673,6 +103362,27 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "heyting-algebras" = callPackage
+    ({ mkDerivation, base, containers, free-algebras, hashable
+     , lattices, QuickCheck, tagged, tasty, tasty-quickcheck
+     , universe-base, unordered-containers
+     }:
+     mkDerivation {
+       pname = "heyting-algebras";
+       version = "0.0.1.2";
+       sha256 = "132r0k0m8b7f8rkyay57k42kjl7nyzqv7942njkz6nwnhjg8i6ag";
+       libraryHaskellDepends = [
+         base containers free-algebras hashable lattices QuickCheck tagged
+         universe-base unordered-containers
+       ];
+       testHaskellDepends = [
+         base containers lattices QuickCheck tasty tasty-quickcheck
+         universe-base
+       ];
+       description = "Heyting and Boolean algebras";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "hfann" = callPackage
     ({ mkDerivation, base, doublefann, fann }:
      mkDerivation {
@@ -104509,8 +104219,8 @@ self: {
      }:
      mkDerivation {
        pname = "higher-leveldb";
-       version = "0.5.0.1";
-       sha256 = "0p7rsawd4d5cbsxlj8ddgx5blg2yw853zjfqcy78gdqn6kk8vz24";
+       version = "0.5.0.2";
+       sha256 = "1wmgz2aqz0vg0fnnigpg27gnzs9i6slyn6lb41myv6m20j0j5z1a";
        libraryHaskellDepends = [
          base bytestring cereal data-default exceptions leveldb-haskell mtl
          resourcet transformers transformers-base unliftio-core
@@ -104708,8 +104418,8 @@ self: {
        pname = "hills";
        version = "0.1.2.6";
        sha256 = "0ggdppg7mbq3ljrb4hvracdv81m9jqnsrl6iqy56sba118k7m0jh";
-       revision = "1";
-       editedCabalFile = "1qdn733rdn4c15avgncgns10j2hw0bvnzdkd5f9yzm3s8vq8sqv9";
+       revision = "2";
+       editedCabalFile = "11f4mmhxivxkdcn4wdcz1hszfyi3hdggls22x2q0m3jxq3lw0izg";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -105050,6 +104760,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hint_0_9_0" = callPackage
+    ({ mkDerivation, base, directory, exceptions, extensible-exceptions
+     , filepath, ghc, ghc-boot, ghc-paths, HUnit, mtl, random, temporary
+     , unix
+     }:
+     mkDerivation {
+       pname = "hint";
+       version = "0.9.0";
+       sha256 = "1g7q4clzc2pdnbvmm265dindjpynabsykd088qjjzlk6590sy9bl";
+       libraryHaskellDepends = [
+         base directory exceptions filepath ghc ghc-boot ghc-paths mtl
+         random temporary unix
+       ];
+       testHaskellDepends = [
+         base directory exceptions extensible-exceptions filepath HUnit unix
+       ];
+       description = "Runtime Haskell interpreter (GHC API wrapper)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hint-server" = callPackage
     ({ mkDerivation, base, eprocess, exceptions, hint, monad-loops, mtl
      }:
@@ -105406,8 +105137,8 @@ self: {
      }:
      mkDerivation {
        pname = "histogram-fill";
-       version = "0.9.0.0";
-       sha256 = "00j4ncqy0s5wil158wx1f8x0n2mj4ki2hgs4hmkrx0vbkc2pil56";
+       version = "0.9.1.0";
+       sha256 = "0qcil8lgkzklgbzb9a81kdzsyzrsgzwdgz424mlvp8sbrfmbnz3m";
        libraryHaskellDepends = [ base deepseq ghc-prim primitive vector ];
        benchmarkHaskellDepends = [ base criterion mwc-random vector ];
        description = "Library for histograms creation";
@@ -105593,12 +105324,12 @@ self: {
      }:
      mkDerivation {
        pname = "hjsonpointer";
-       version = "1.4.0";
-       sha256 = "0hkcaqiich4ap323ir2dmr3v498rlavy34g69m386d4ml1gxm411";
-       revision = "1";
-       editedCabalFile = "0l84zr0p1ywwn81fdb2z365vrs9xaaz7c7bcmx8pjvb5wfx1g9g4";
+       version = "1.5.0";
+       sha256 = "1bdr5jpc2vcx6bk724jmfz7nh3jgqwrmj4hab64h9pjdrl4vz00y";
+       revision = "2";
+       editedCabalFile = "1s43vdkl71msm8kppksn910prs40nwq4cz5klajr8apak77z4dzi";
        libraryHaskellDepends = [
-         aeson base hashable QuickCheck text unordered-containers vector
+         aeson base hashable text unordered-containers vector
        ];
        testHaskellDepends = [
          aeson base hspec http-types QuickCheck text unordered-containers
@@ -105771,55 +105502,54 @@ self: {
 
   "hledger" = callPackage
     ({ mkDerivation, ansi-terminal, base, base-compat-batteries
-     , bytestring, cmdargs, containers, criterion, csv, data-default
-     , Decimal, Diff, directory, file-embed, filepath, hashable
-     , haskeline, here, hledger-lib, html, HUnit, lucid, megaparsec, mtl
+     , bytestring, cmdargs, containers, criterion, data-default, Decimal
+     , Diff, directory, easytest, file-embed, filepath, hashable
+     , haskeline, here, hledger-lib, html, lucid, megaparsec, mtl
      , mtl-compat, old-time, parsec, pretty-show, process, regex-tdfa
-     , safe, shakespeare, split, tabular, temporary, terminfo
-     , test-framework, test-framework-hunit, text, time, timeit
-     , transformers, unordered-containers, utf8-string, utility-ht
-     , wizards
+     , safe, shakespeare, split, statistics, tabular, temporary
+     , terminfo, test-framework, test-framework-hunit, text, time
+     , timeit, transformers, unordered-containers, utf8-string
+     , utility-ht, wizards
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.10";
-       sha256 = "1ly4sp0lhb3w5nrd77xd84bcyvm000fwwjipm7gq8bjhabw20i7n";
-       revision = "1";
-       editedCabalFile = "1kj1by80j7f6rzwfccwl2cp53bb3lyivh8a8xnawdyxab1pkyz34";
+       version = "1.11.1";
+       sha256 = "0cy60ysmydg0ahx6gjmjm97skvjp5a3vgqxsn2l1dp7hk34ac5p9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers csv data-default Decimal Diff directory file-embed
-         filepath hashable haskeline here hledger-lib HUnit lucid megaparsec
-         mtl mtl-compat old-time parsec pretty-show process regex-tdfa safe
-         shakespeare split tabular temporary terminfo text time transformers
-         unordered-containers utf8-string utility-ht wizards
+         containers data-default Decimal Diff directory easytest file-embed
+         filepath hashable haskeline here hledger-lib lucid megaparsec mtl
+         mtl-compat old-time parsec pretty-show process regex-tdfa safe
+         shakespeare split statistics tabular temporary terminfo text time
+         transformers unordered-containers utf8-string utility-ht wizards
        ];
        executableHaskellDepends = [
          ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers csv data-default Decimal directory file-embed filepath
-         haskeline here hledger-lib HUnit megaparsec mtl mtl-compat old-time
-         parsec pretty-show process regex-tdfa safe shakespeare split
-         tabular temporary terminfo text time transformers
+         containers data-default Decimal directory easytest file-embed
+         filepath haskeline here hledger-lib megaparsec mtl mtl-compat
+         old-time parsec pretty-show process regex-tdfa safe shakespeare
+         split statistics tabular temporary terminfo text time transformers
          unordered-containers utf8-string utility-ht wizards
        ];
        testHaskellDepends = [
          ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers csv data-default Decimal directory file-embed filepath
-         haskeline here hledger-lib HUnit megaparsec mtl mtl-compat old-time
-         parsec pretty-show process regex-tdfa safe shakespeare split
-         tabular temporary terminfo test-framework test-framework-hunit text
-         time transformers unordered-containers utf8-string utility-ht
-         wizards
+         containers data-default Decimal directory easytest file-embed
+         filepath haskeline here hledger-lib megaparsec mtl mtl-compat
+         old-time parsec pretty-show process regex-tdfa safe shakespeare
+         split statistics tabular temporary terminfo test-framework
+         test-framework-hunit text time transformers unordered-containers
+         utf8-string utility-ht wizards
        ];
        benchmarkHaskellDepends = [
          ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers criterion csv data-default Decimal directory file-embed
-         filepath haskeline here hledger-lib html HUnit megaparsec mtl
+         containers criterion data-default Decimal directory easytest
+         file-embed filepath haskeline here hledger-lib html megaparsec mtl
          mtl-compat old-time parsec pretty-show process regex-tdfa safe
-         shakespeare split tabular temporary terminfo text time timeit
-         transformers unordered-containers utf8-string utility-ht wizards
+         shakespeare split statistics tabular temporary terminfo text time
+         timeit transformers unordered-containers utf8-string utility-ht
+         wizards
        ];
        description = "Command-line interface for the hledger accounting tool";
        license = stdenv.lib.licenses.gpl3;
@@ -105834,8 +105564,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-api";
-       version = "1.10";
-       sha256 = "1axcpipq6m4r9bh2633j7l88pc4ax8ycb2q0wivhfq2dp1pbylbf";
+       version = "1.11.1";
+       sha256 = "1wsbjsdibdwf4bmhbwcql7yiprhz83zj8g7a1labykmdw8lldlqc";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -105891,6 +105621,8 @@ self: {
        pname = "hledger-iadd";
        version = "1.3.6";
        sha256 = "04gy5pvbcgkr3jg1a2dav3kcd7ih46knn0d39l8670bmwhx3y5br";
+       revision = "1";
+       editedCabalFile = "067mrhg3m77ygv6cph5cxxcyd23acg9mq2fhpkl7714blc58z97v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -105917,8 +105649,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-interest";
-       version = "1.5.2";
-       sha256 = "10ck23d69wxylxbp8cj7ic8slklm9l88xbb4p29nvm5lgjiqidbq";
+       version = "1.5.3";
+       sha256 = "1ff113z2ir07ihdvfa5fca4x326zwm2jd7sjy6hjpr4qgi1mszvs";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -105948,33 +105680,32 @@ self: {
 
   "hledger-lib" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, base-compat-batteries
-     , blaze-markup, bytestring, cmdargs, containers, csv, data-default
-     , Decimal, deepseq, directory, doctest, easytest, extra, filepath
-     , Glob, hashtables, HUnit, megaparsec, mtl, mtl-compat, old-time
-     , parsec, parser-combinators, pretty-show, regex-tdfa, safe, split
-     , tabular, test-framework, test-framework-hunit, text, time
+     , blaze-markup, bytestring, call-stack, cassava, cassava-megaparsec
+     , cmdargs, containers, data-default, Decimal, deepseq, directory
+     , doctest, easytest, extra, filepath, Glob, hashtables, megaparsec
+     , mtl, mtl-compat, old-time, parsec, parser-combinators
+     , pretty-show, regex-tdfa, safe, split, tabular, text, time
      , transformers, uglymemo, utf8-string
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.10";
-       sha256 = "1kj3376gaaq39rwfyhfg7npdsy7z561184wia4rc8ijzf0isz2p1";
-       revision = "1";
-       editedCabalFile = "1b6hj4w1qfh1q8c3ikx5sn8z70cfdmqi4iy3a3l64q4x1j4jgyic";
+       version = "1.11.1";
+       sha256 = "0diz7ygl8zl4bjxq2c627fjvvjcdpkiqp42f5wjmz9pd1nd2da4f";
        libraryHaskellDepends = [
          ansi-terminal array base base-compat-batteries blaze-markup
-         bytestring cmdargs containers csv data-default Decimal deepseq
-         directory extra filepath hashtables HUnit megaparsec mtl mtl-compat
-         old-time parsec parser-combinators pretty-show regex-tdfa safe
-         split tabular text time transformers uglymemo utf8-string
+         bytestring call-stack cassava cassava-megaparsec cmdargs containers
+         data-default Decimal deepseq directory easytest extra filepath Glob
+         hashtables megaparsec mtl mtl-compat old-time parsec
+         parser-combinators pretty-show regex-tdfa safe split tabular text
+         time transformers uglymemo utf8-string
        ];
        testHaskellDepends = [
          ansi-terminal array base base-compat-batteries blaze-markup
-         bytestring cmdargs containers csv data-default Decimal deepseq
-         directory doctest easytest extra filepath Glob hashtables HUnit
-         megaparsec mtl mtl-compat old-time parsec parser-combinators
-         pretty-show regex-tdfa safe split tabular test-framework
-         test-framework-hunit text time transformers uglymemo utf8-string
+         bytestring call-stack cassava cassava-megaparsec cmdargs containers
+         data-default Decimal deepseq directory doctest easytest extra
+         filepath Glob hashtables megaparsec mtl mtl-compat old-time parsec
+         parser-combinators pretty-show regex-tdfa safe split tabular text
+         time transformers uglymemo utf8-string
        ];
        description = "Core data types, parsers and functionality for the hledger accounting tools";
        license = stdenv.lib.licenses.gpl3;
@@ -105983,24 +105714,21 @@ self: {
   "hledger-ui" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, base-compat-batteries
      , brick, cmdargs, containers, data-default, directory, filepath
-     , fsnotify, hledger, hledger-lib, HUnit, megaparsec, microlens
+     , fsnotify, hledger, hledger-lib, megaparsec, microlens
      , microlens-platform, pretty-show, process, safe, split, text
      , text-zipper, time, transformers, vector, vty
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.10.1";
-       sha256 = "1h4hhsyajpiydvs1p6f4z1s3kblyfn4lvnwwbar6lj4z5jfizm67";
-       revision = "1";
-       editedCabalFile = "1xvppxdkrk64mpqb64r016xshxqq25zzflbysmldgiqm1ibngy1g";
+       version = "1.11.1";
+       sha256 = "03k62vsjyk2d7nq3lzas4qac2ck09xhk2x752xncls5rfzj8hjcj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          ansi-terminal async base base-compat-batteries brick cmdargs
          containers data-default directory filepath fsnotify hledger
-         hledger-lib HUnit megaparsec microlens microlens-platform
-         pretty-show process safe split text text-zipper time transformers
-         vector vty
+         hledger-lib megaparsec microlens microlens-platform pretty-show
+         process safe split text text-zipper time transformers vector vty
        ];
        description = "Curses-style user interface for the hledger accounting tool";
        license = stdenv.lib.licenses.gpl3;
@@ -106029,25 +105757,23 @@ self: {
     ({ mkDerivation, base, blaze-html, blaze-markup, bytestring
      , case-insensitive, clientsession, cmdargs, conduit, conduit-extra
      , data-default, directory, filepath, hjsmin, hledger, hledger-lib
-     , http-client, http-conduit, HUnit, json, megaparsec, mtl
-     , semigroups, shakespeare, template-haskell, text, time
-     , transformers, wai, wai-extra, wai-handler-launch, warp, yaml
-     , yesod, yesod-core, yesod-form, yesod-static
+     , http-client, http-conduit, json, megaparsec, mtl, semigroups
+     , shakespeare, template-haskell, text, time, transformers, wai
+     , wai-extra, wai-handler-launch, warp, yaml, yesod, yesod-core
+     , yesod-form, yesod-static
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.10";
-       sha256 = "1hfl9kr3h9lcmy512s3yiv3rp31md7kw5n1145khj2j3l8qd3py9";
-       revision = "1";
-       editedCabalFile = "0zzgc6mjia06fwvjwpzzczh0p9k0a6bi2lib6zq5k1briq4gqblm";
+       version = "1.11.1";
+       sha256 = "1bvhiikz8hlgjvc7s2hk363gjva9izga167bpx074m560q7y77fs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base blaze-html blaze-markup bytestring case-insensitive
          clientsession cmdargs conduit conduit-extra data-default directory
-         filepath hjsmin hledger hledger-lib http-client http-conduit HUnit
-         json megaparsec mtl semigroups shakespeare template-haskell text
-         time transformers wai wai-extra wai-handler-launch warp yaml yesod
+         filepath hjsmin hledger hledger-lib http-client http-conduit json
+         megaparsec mtl semigroups shakespeare template-haskell text time
+         transformers wai wai-extra wai-handler-launch warp yaml yesod
          yesod-core yesod-form yesod-static
        ];
        executableHaskellDepends = [ base ];
@@ -106325,6 +106051,8 @@ self: {
        pname = "hmatrix";
        version = "0.19.0.0";
        sha256 = "10jd69nby29dggghcyjk6ykyr5wrn97nrv1dkpyrp0y5xm12xssj";
+       revision = "1";
+       editedCabalFile = "0krx0ds5mcj28y6zpg0r50lljn8681wi4c5lqcdz2c71nhixfq8h";
        configureFlags = [ "-fdisable-default-paths" "-fopenblas" ];
        libraryHaskellDepends = [
          array base binary bytestring deepseq random semigroups split
@@ -106501,8 +106229,8 @@ self: {
     ({ mkDerivation, base, doctest, hmatrix, nlopt-haskell, vector }:
      mkDerivation {
        pname = "hmatrix-nlopt";
-       version = "0.1.2.0";
-       sha256 = "1w04gi7shpck8z80a3lx77054i39ig7n3rig66hbpq1wp11snivs";
+       version = "0.1.3.0";
+       sha256 = "17c6s4q5sldr3mqqbyg4yknqxfgd45a0aw6sac33xcv9dvgyjyfc";
        libraryHaskellDepends = [ base hmatrix nlopt-haskell vector ];
        testHaskellDepends = [ base doctest ];
        description = "Interface HMatrix with the NLOPT minimizer";
@@ -109556,28 +109284,6 @@ self: {
      }:
      mkDerivation {
        pname = "hruby";
-       version = "0.3.5.4";
-       sha256 = "17nm55xg6v71dp8cvaz9rp2siyywpynlxqxr1j44ciyw114h36vk";
-       setupHaskellDepends = [ base Cabal process ];
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring scientific stm text
-         unordered-containers vector
-       ];
-       librarySystemDepends = [ ruby ];
-       testHaskellDepends = [
-         aeson attoparsec base QuickCheck text vector
-       ];
-       description = "Embed a Ruby intepreter in your Haskell program !";
-       license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) ruby;};
-
-  "hruby_0_3_6" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
-     , process, QuickCheck, ruby, scientific, stm, text
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "hruby";
        version = "0.3.6";
        sha256 = "068mvb6bf583bldx07whc3cc0s3xbjlibi55r0ajjq9v4kxv98yx";
        setupHaskellDepends = [ base Cabal process ];
@@ -109591,7 +109297,6 @@ self: {
        ];
        description = "Embed a Ruby intepreter in your Haskell program !";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) ruby;};
 
   "hs-GeoIP" = callPackage
@@ -111082,14 +110787,16 @@ self: {
      }) {};
 
   "hscrtmpl" = callPackage
-    ({ mkDerivation, base, directory, process, time }:
+    ({ mkDerivation, base, directory, filepath, process, time }:
      mkDerivation {
        pname = "hscrtmpl";
-       version = "1.5";
-       sha256 = "12b5409gaiasgap0lvykvapjbls1p2p9jz62sqpl70181y4812l0";
+       version = "1.6";
+       sha256 = "166xp46bxi079h9bpr8xfnlzzivwkhnykv7g7kg7rnp35cmwxshm";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [ base directory process time ];
+       executableHaskellDepends = [
+         base directory filepath process time
+       ];
        description = "Haskell shell script template";
        license = stdenv.lib.licenses.isc;
      }) {};
@@ -111351,8 +111058,10 @@ self: {
      }:
      mkDerivation {
        pname = "hsexif";
-       version = "0.6.1.5";
-       sha256 = "0vmhd6l9vkzm4pqizqh3hjb86f4vk212plvlzfd6rd5dc08fl4ig";
+       version = "0.6.1.6";
+       sha256 = "0pdm0v3xz308yzdhc646bbkwj156llf9g17c2y74x339xk6i8zhg";
+       revision = "1";
+       editedCabalFile = "1dgcgsmx0k5p3ibfv3n5k0c5p1is2m5zfsd2s6nc6d0pz34d4wl9";
        libraryHaskellDepends = [
          base binary bytestring containers iconv text time
        ];
@@ -111629,23 +111338,6 @@ self: {
      }:
      mkDerivation {
        pname = "hslogger";
-       version = "1.2.10";
-       sha256 = "0as5gvlh6pi2gflakp695qnlizyyp059dqrhvjl4gjxalja6xjnp";
-       revision = "1";
-       editedCabalFile = "04vhwv9qidwan7fbkgvx8z5hnybjaf6wq2951fx4qw3nqsys9250";
-       libraryHaskellDepends = [
-         base containers directory mtl network old-locale process time unix
-       ];
-       description = "Versatile logging framework";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hslogger_1_2_12" = callPackage
-    ({ mkDerivation, base, containers, directory, mtl, network
-     , old-locale, process, time, unix
-     }:
-     mkDerivation {
-       pname = "hslogger";
        version = "1.2.12";
        sha256 = "0ykcsk7wqygvrg60r5kpl6xfinr706al8pfyk5wj67wjs24lqypr";
        libraryHaskellDepends = [
@@ -111653,7 +111345,6 @@ self: {
        ];
        description = "Versatile logging framework";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hslogger-reader" = callPackage
@@ -111747,15 +111438,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {inherit (pkgs) lua5_3;};
 
-  "hslua_1_0_0" = callPackage
+  "hslua_1_0_1" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion, deepseq
      , exceptions, fail, lua5_3, mtl, QuickCheck, quickcheck-instances
      , tasty, tasty-hunit, tasty-quickcheck, text
      }:
      mkDerivation {
        pname = "hslua";
-       version = "1.0.0";
-       sha256 = "0xd47h1f2y3k6qrhbadiczx58ykcsm66hbkwd022r6hd2hfqk34c";
+       version = "1.0.1";
+       sha256 = "185izqlvxn406y6frhjr4sk3lq2hcmfm11hyyrxqf5v9pnxp8kna";
        configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
        libraryHaskellDepends = [
          base bytestring containers exceptions fail mtl text
@@ -112152,8 +111843,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsparql";
-       version = "0.3.5";
-       sha256 = "0557c81wgk930x2bq72f2f3kycanxxvk1s5nrfxn56lmgijzkkqz";
+       version = "0.3.6";
+       sha256 = "0hx1mwdww6i88g497i26qdg0dhw2a41qclvpgwq7rl2m5wshm9qp";
        libraryHaskellDepends = [
          base bytestring HTTP MissingH mtl network network-uri rdf4h text
          xml
@@ -112230,14 +111921,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "hspec_2_5_7" = callPackage
+  "hspec_2_5_8" = callPackage
     ({ mkDerivation, base, hspec-core, hspec-discover
      , hspec-expectations, QuickCheck
      }:
      mkDerivation {
        pname = "hspec";
-       version = "2.5.7";
-       sha256 = "1bbxj0bxxhwkzvxg31a8gjyan1px3kx9md4j0ba177g3mk2fnxxy";
+       version = "2.5.8";
+       sha256 = "061k4r1jlzcnl0mzvk5nvamw1bx36rs2a38958m2hlh2mmfnfnsr";
        libraryHaskellDepends = [
          base hspec-core hspec-discover hspec-expectations QuickCheck
        ];
@@ -112345,7 +112036,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "hspec-core_2_5_7" = callPackage
+  "hspec-core_2_5_8" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
      , deepseq, directory, filepath, hspec-expectations, hspec-meta
      , HUnit, process, QuickCheck, quickcheck-io, random, setenv
@@ -112353,8 +112044,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-core";
-       version = "2.5.7";
-       sha256 = "0rlrc8q92jq3r6qf3bmyy8llz0dv9sdp0n169ni803wzlshaixsn";
+       version = "2.5.8";
+       sha256 = "08y6rhzc2vwmrxzl3bc8iwklkhgzv7x90mf9fnjnddlyaj7wcjg5";
        libraryHaskellDepends = [
          ansi-terminal array base call-stack clock deepseq directory
          filepath hspec-expectations HUnit QuickCheck quickcheck-io random
@@ -112379,8 +112070,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-dirstream";
-       version = "1.0.0.0";
-       sha256 = "0xj7qj6j3mp1j3q4pdm0javjc4rw586brcd399ygh74vpa669pgf";
+       version = "1.0.0.2";
+       sha256 = "1df6rjgwj6rw78dh1ihswk7sgh72c8aqnaaj4r9k0gjq30hkdlfr";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base dirstream filepath hspec hspec-core pipes pipes-safe
@@ -112428,13 +112119,13 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "hspec-discover_2_5_7" = callPackage
+  "hspec-discover_2_5_8" = callPackage
     ({ mkDerivation, base, directory, filepath, hspec-meta, QuickCheck
      }:
      mkDerivation {
        pname = "hspec-discover";
-       version = "2.5.7";
-       sha256 = "042v6wmxw7dwak6wgr02af1majq6qr5migrp360cm3frjfkw22cx";
+       version = "2.5.8";
+       sha256 = "001i0ldxi88qcww2hh3mkdr6svw4kj23lf65camk9bgn5zwvq5aj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory filepath ];
@@ -112763,8 +112454,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-need-env";
-       version = "0.1.0.0";
-       sha256 = "0ny2qbj5ipa8nsigx70x4mhdv5611fis0dm4j9i82zkxc2l92b9d";
+       version = "0.1.0.1";
+       sha256 = "1n364lzmiyb27wl88z8g0kpgsgcxa2hp45w1qxzasl2im4q8adv5";
        libraryHaskellDepends = [ base hspec-core hspec-expectations ];
        testHaskellDepends = [ base hspec hspec-core setenv transformers ];
        description = "Read environment variables for hspec tests";
@@ -113472,6 +113163,8 @@ self: {
        pname = "hstatistics";
        version = "0.3";
        sha256 = "1v7f2844p6bjzcwc2pnjyb8zl42kw1x021gcn688dvdxs6cgdwvs";
+       revision = "1";
+       editedCabalFile = "0qcp1kgpwnqphqq1fd92lfp8d0vcf3l6ighsdiqin51qg499xz9w";
        libraryHaskellDepends = [
          array base hmatrix hmatrix-gsl-stats random vector
        ];
@@ -114333,8 +114026,8 @@ self: {
      }:
      mkDerivation {
        pname = "htoml-megaparsec";
-       version = "2.1.0.2";
-       sha256 = "0m5v4f6djwr6sr9sndfal4gwxl0ryq2cg661ka8br7v1ww2d70yl";
+       version = "2.1.0.3";
+       sha256 = "1fpvfrib4igcmwhfms1spxr2b78srhrh4hrflrlgdgdn9x1m5w1x";
        libraryHaskellDepends = [
          base composition-prelude containers deepseq megaparsec mtl text
          time unordered-containers vector
@@ -114480,7 +114173,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "http-api-data_0_3_9" = callPackage
+  "http-api-data_0_3_10" = callPackage
     ({ mkDerivation, attoparsec, attoparsec-iso8601, base, bytestring
      , Cabal, cabal-doctest, containers, cookie, directory, doctest
      , filepath, hashable, hspec, hspec-discover, http-types, HUnit
@@ -114489,8 +114182,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-api-data";
-       version = "0.3.9";
-       sha256 = "013m662vn02vw37gpffnvffwjirhg8lprknav5rinxffq7ra4cr8";
+       version = "0.3.10";
+       sha256 = "061v98l5j8791jzp6fzhdc0gpmzzf4qxavrjzm7ir8x5h7il3qm8";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          attoparsec attoparsec-iso8601 base bytestring containers cookie
@@ -114498,8 +114191,9 @@ self: {
          unordered-containers uuid-types
        ];
        testHaskellDepends = [
-         base bytestring directory doctest filepath hspec HUnit QuickCheck
-         quickcheck-instances text time unordered-containers uuid-types
+         base bytestring cookie directory doctest filepath hspec HUnit
+         QuickCheck quickcheck-instances text time unordered-containers
+         uuid-types
        ];
        testToolDepends = [ hspec-discover ];
        description = "Converting to/from HTTP API data like URL pieces, headers and query parameters";
@@ -115050,10 +114744,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-media";
-       version = "0.7.1.2";
-       sha256 = "01vvrd6yb2aykha7y1c13ylnkyws2wy68vqbdb7kmbzwbdxdb4zy";
-       revision = "2";
-       editedCabalFile = "0in3xw1hqdz0s8pqvkfqw5qr186cd1yr4zxc5rnr0q95asi8s0rh";
+       version = "0.7.1.3";
+       sha256 = "0kqjzvh5y8r6x5rw2kgd816w2963c6cbyw2qjvaj2mv59zxzqkrr";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers utf8-string
        ];
@@ -115353,24 +115045,6 @@ self: {
      }:
      mkDerivation {
        pname = "http-types";
-       version = "0.12.1";
-       sha256 = "1wv9k6nlvkdsxwlr7gaynphvzmvi5211gvwq96mbcxgk51a739rz";
-       libraryHaskellDepends = [
-         array base bytestring case-insensitive text
-       ];
-       testHaskellDepends = [
-         base bytestring doctest hspec QuickCheck quickcheck-instances text
-       ];
-       description = "Generic HTTP types for Haskell (for both client and server code)";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "http-types_0_12_2" = callPackage
-    ({ mkDerivation, array, base, bytestring, case-insensitive, doctest
-     , hspec, QuickCheck, quickcheck-instances, text
-     }:
-     mkDerivation {
-       pname = "http-types";
        version = "0.12.2";
        sha256 = "01ck5wmzvl5cqd3w2kwkrmp18n78474a3lngk6ry28w9pbbh4caj";
        libraryHaskellDepends = [
@@ -115381,7 +115055,6 @@ self: {
        ];
        description = "Generic HTTP types for Haskell (for both client and server code)";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "http-wget" = callPackage
@@ -115434,6 +115107,8 @@ self: {
        pname = "http2-client";
        version = "0.8.0.1";
        sha256 = "055x0cscrd0idfda4ak48dagkmqkgj1zg29mz4yxrdj9vp2n0xd3";
+       revision = "1";
+       editedCabalFile = "190dhnj34b9xnpf6d3lj5a1fr90k2dy1l1i8505mp49lxzdvzkgc";
        libraryHaskellDepends = [
          async base bytestring containers deepseq http2 network stm time tls
        ];
@@ -116248,16 +115923,16 @@ self: {
 
   "hw-conduit" = callPackage
     ({ mkDerivation, array, base, bytestring, conduit
-     , conduit-combinators, criterion, hspec, mmap, time, vector, word8
+     , conduit-combinators, criterion, hspec, mmap, time, transformers
+     , unliftio-core, vector, word8
      }:
      mkDerivation {
        pname = "hw-conduit";
-       version = "0.2.0.3";
-       sha256 = "19fwlgnpc17h305nmaygd5w9p5yv9jm25jgc440r9frqzw7if83a";
-       revision = "1";
-       editedCabalFile = "0zr1r7px2qgpf5fgq18l6ziy2xaz773qbxc87cp84x0vpwas0yg7";
+       version = "0.2.0.5";
+       sha256 = "00fpinpafvrdkmk6gksqd9v6f3lzrqcg79yja0h55gw7qjz5lz84";
        libraryHaskellDepends = [
-         array base bytestring conduit conduit-combinators time word8
+         array base bytestring conduit conduit-combinators time transformers
+         unliftio-core word8
        ];
        testHaskellDepends = [ base bytestring conduit hspec ];
        benchmarkHaskellDepends = [
@@ -116267,6 +115942,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hw-conduit-merges" = callPackage
+    ({ mkDerivation, base, bytestring, conduit, conduit-extra, hspec
+     , mtl, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hw-conduit-merges";
+       version = "0.2.0.0";
+       sha256 = "1302b2dsvv8yazvq5vz9cs2fbqvdsh6zyprijb41g881riqa5klv";
+       revision = "1";
+       editedCabalFile = "1azji7zc0ygqjgd2shbqw7p8a2ll2qp3b1yq5i3665448brlwpvc";
+       libraryHaskellDepends = [ base conduit conduit-extra mtl ];
+       testHaskellDepends = [
+         base bytestring conduit conduit-extra hspec mtl QuickCheck
+       ];
+       description = "Additional merges and joins for Conduit";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hw-diagnostics" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -116473,8 +116166,8 @@ self: {
        pname = "hw-json";
        version = "0.6.0.0";
        sha256 = "1na1xcgnnig27cv1v773jr7mv5izv8n1dnf6k3irw9rml3l213mv";
-       revision = "1";
-       editedCabalFile = "18w22jnsjv8f4k2q3548vdzl80p4r80pn96rnp69f6l36ibmx771";
+       revision = "2";
+       editedCabalFile = "0ygq95nx4sb70l5kfxlsj6rf2b3ry84ixby567n0jk1g0zks3z7s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -116504,16 +116197,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hw-json_0_8_1_0" = callPackage
+  "hw-json_0_9_0_0" = callPackage
     ({ mkDerivation, ansi-wl-pprint, array, attoparsec, base
-     , bytestring, containers, criterion, directory, dlist, hspec
-     , hw-balancedparens, hw-bits, hw-mquery, hw-parser, hw-prim
-     , hw-rankselect, hw-rankselect-base, mmap, text, vector, word8
+     , bytestring, containers, criterion, directory, dlist, generic-lens
+     , hspec, hw-balancedparens, hw-bits, hw-mquery, hw-parser, hw-prim
+     , hw-rankselect, hw-rankselect-base, lens, mmap
+     , optparse-applicative, resourcet, text, vector, word8
      }:
      mkDerivation {
        pname = "hw-json";
-       version = "0.8.1.0";
-       sha256 = "1dllysbajkjsyb0rr9rhp2pmyrl99l7n086w8ifkm3491vgph179";
+       version = "0.9.0.0";
+       sha256 = "0465pc8k4wvvih4z5klq3ign2cznrb837ivqxg9nrzbx8szsnsc7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -116522,8 +116216,9 @@ self: {
          hw-rankselect-base mmap text vector word8
        ];
        executableHaskellDepends = [
-         base bytestring criterion dlist hw-balancedparens hw-bits hw-mquery
-         hw-prim hw-rankselect hw-rankselect-base mmap vector
+         base bytestring criterion dlist generic-lens hw-balancedparens
+         hw-bits hw-mquery hw-prim hw-rankselect hw-rankselect-base lens
+         mmap optparse-applicative resourcet vector
        ];
        testHaskellDepends = [
          attoparsec base bytestring containers hspec hw-balancedparens
@@ -116697,29 +116392,6 @@ self: {
      }:
      mkDerivation {
        pname = "hw-prim";
-       version = "0.6.2.15";
-       sha256 = "10ab0fmygcgwm748m6grpfdzfxixsns2mbxhxhj3plmcbkfxxbyc";
-       libraryHaskellDepends = [
-         base bytestring mmap semigroups transformers vector
-       ];
-       testHaskellDepends = [
-         base bytestring directory exceptions hedgehog hspec
-         hw-hspec-hedgehog mmap QuickCheck semigroups transformers vector
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion mmap semigroups transformers vector
-       ];
-       description = "Primitive functions and data types";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-prim_0_6_2_17" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, directory, exceptions
-     , hedgehog, hspec, hw-hspec-hedgehog, mmap, QuickCheck, semigroups
-     , transformers, vector
-     }:
-     mkDerivation {
-       pname = "hw-prim";
        version = "0.6.2.17";
        sha256 = "184ymryvfj3s6bc3igahfyd8k9cqf59vmpb9g3afh8xpicpmmiv6";
        libraryHaskellDepends = [
@@ -116734,7 +116406,6 @@ self: {
        ];
        description = "Primitive functions and data types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-prim-bits" = callPackage
@@ -118065,6 +117736,8 @@ self: {
        pname = "hyraxAbif";
        version = "0.2.3.10";
        sha256 = "1x800gx7l3wj0xphip8fhzh9pbhc374p2pgjdvhw5qq5wbxc7r3b";
+       revision = "1";
+       editedCabalFile = "1iq9bw70rwp0lghxi188iidvp29cinyam78n5d30rqb4p807fb55";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -118196,8 +117869,8 @@ self: {
      }:
      mkDerivation {
        pname = "iCalendar";
-       version = "0.4.0.4";
-       sha256 = "1hgji4riaqjpsqi2c7i1md9p8ig4sfigmldllnpkwbbhwhzmnsq5";
+       version = "0.4.0.5";
+       sha256 = "1s1pnwbp6bnsyswrw4vz8hr33jrfd4xs8vnpvrh57a75jdskgsn0";
        libraryHaskellDepends = [
          base base64-bytestring bytestring case-insensitive containers
          data-default mime mtl network network-uri old-locale parsec text
@@ -119966,6 +119639,8 @@ self: {
        pname = "incremental-parser";
        version = "0.3.1.1";
        sha256 = "1p7m897bavh45h755ra97jk06jprls7vrnpzv1kjklgj19vbz1vz";
+       revision = "1";
+       editedCabalFile = "0g6haprqb1w06bazjj107frraxc6bbj8i98im16k66wlx7c9f99i";
        libraryHaskellDepends = [ base monoid-subclasses ];
        testHaskellDepends = [
          base checkers monoid-subclasses QuickCheck tasty tasty-quickcheck
@@ -120015,8 +119690,8 @@ self: {
      }:
      mkDerivation {
        pname = "indentation";
-       version = "0.3.2";
-       sha256 = "1knazqvr6bk07j7q7835z2d2vs3zyd7i4hzir6aqcdxwhrqm5q7k";
+       version = "0.3.3";
+       sha256 = "0iwnz4j4zkr9xpw5f8p42blgifdj6mqbxpqsci76pic6safp3avq";
        libraryHaskellDepends = [
          base indentation-core indentation-parsec indentation-trifecta mtl
          parsec parsers trifecta
@@ -120030,8 +119705,8 @@ self: {
     ({ mkDerivation, base, mtl }:
      mkDerivation {
        pname = "indentation-core";
-       version = "0.0.0.1";
-       sha256 = "136skn3parvsyfii0ywm8cqfmsysi562944fbb0xsgckx0sq1dr1";
+       version = "0.0.0.2";
+       sha256 = "1l1zk5wz9x0m4ird1qk8shi1fkcm3sq2nwkjj6wz2sicp0xkx6h9";
        libraryHaskellDepends = [ base mtl ];
        description = "Indentation sensitive parsing combinators core library";
        license = stdenv.lib.licenses.bsd3;
@@ -120043,8 +119718,8 @@ self: {
      }:
      mkDerivation {
        pname = "indentation-parsec";
-       version = "0.0.0.1";
-       sha256 = "12s7ic8i7l2g7knzzab0c6k1s59cjlcdsrwygzh8l6l9azvya5lp";
+       version = "0.0.0.2";
+       sha256 = "1m7jr1s7h4vrx0lbl88gjrpd6zgzalmqzqsv6rn5s17ay5p88dqf";
        libraryHaskellDepends = [ base indentation-core mtl parsec ];
        testHaskellDepends = [ base parsec tasty tasty-hunit ];
        description = "Indentation sensitive parsing combinators for Parsec";
@@ -120057,8 +119732,8 @@ self: {
      }:
      mkDerivation {
        pname = "indentation-trifecta";
-       version = "0.0.2";
-       sha256 = "0d2mxd1cdcr0zfz618dh4grin4z2bjfv4659i2zsddxm9li0dqis";
+       version = "0.1.0";
+       sha256 = "1za8x4w26ifxvfv5xra5xpykr67ari91c4p0vca89y28q54l9qpj";
        libraryHaskellDepends = [
          base indentation-core mtl parsers trifecta
        ];
@@ -120114,8 +119789,8 @@ self: {
      }:
      mkDerivation {
        pname = "indexation";
-       version = "0.6.4";
-       sha256 = "1lm5ahr57lhwnfvz7kawl211chs4wjkykyicrrg748g4f03sm5a2";
+       version = "0.6.4.1";
+       sha256 = "04xywlx0xngbycc77x14nfvjb8z0q7mmyab75l8z223fj1fh3c21";
        libraryHaskellDepends = [
          base bitvec bytestring cereal cereal-vector contravariant deepseq
          deferred-folds dense-int-set focus foldl hashable list-t mmorph
@@ -120179,8 +119854,8 @@ self: {
     ({ mkDerivation, base, hspec, Only }:
      mkDerivation {
        pname = "indexed-list-literals";
-       version = "0.2.1.1";
-       sha256 = "1b4g2196pi7v347gzl1x68qriwwfgr2iddjqfs49h5swh7qqqpfg";
+       version = "0.2.1.2";
+       sha256 = "043xl356q9n1nw2bw8a8msymy18d6f7nwcyrrpzak9qr75dsx5nq";
        libraryHaskellDepends = [ base Only ];
        testHaskellDepends = [ base hspec ];
        description = "Type safe indexed list literals";
@@ -121919,8 +121594,8 @@ self: {
        pname = "io-string-like";
        version = "0.1.0.1";
        sha256 = "0p8p4xp9qj7h1xa9dyizqpr85j8qjiccj3y9kplbskaqazl9pyqp";
-       revision = "1";
-       editedCabalFile = "1q10d2pjhy3k549pw3lid2lda5z4790x0vmg1qajwyapm7q5cma6";
+       revision = "2";
+       editedCabalFile = "0fn9zq62js0xybfbhd673hbh5zp0l2v1p2ddknwkclh4i01i03i6";
        libraryHaskellDepends = [ base binary bytestring text ];
        description = "Classes to handle Prelude style IO functions for different datatypes";
        license = stdenv.lib.licenses.bsd3;
@@ -122314,26 +121989,6 @@ self: {
      }:
      mkDerivation {
        pname = "irc-client";
-       version = "1.1.0.4";
-       sha256 = "1ag1rmsk53v3j5r0raipfc6w9mfc21w92gbanjfdl5nzsr4fzh87";
-       libraryHaskellDepends = [
-         base bytestring conduit connection containers contravariant
-         exceptions irc-conduit irc-ctcp mtl network-conduit-tls old-locale
-         profunctors stm stm-chans text time tls transformers x509
-         x509-store x509-validation
-       ];
-       description = "An IRC client library";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "irc-client_1_1_0_5" = callPackage
-    ({ mkDerivation, base, bytestring, conduit, connection, containers
-     , contravariant, exceptions, irc-conduit, irc-ctcp, mtl
-     , network-conduit-tls, old-locale, profunctors, stm, stm-chans
-     , text, time, tls, transformers, x509, x509-store, x509-validation
-     }:
-     mkDerivation {
-       pname = "irc-client";
        version = "1.1.0.5";
        sha256 = "13qc5acpkgd80nazlpac3q2viqp76fhq6qjk7fp5dp1w6bhj9qi7";
        libraryHaskellDepends = [
@@ -122344,7 +121999,6 @@ self: {
        ];
        description = "An IRC client library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "irc-colors" = callPackage
@@ -122583,24 +122237,24 @@ self: {
      }) {};
 
   "iridium" = callPackage
-    ({ mkDerivation, ansi-terminal, base, bytestring, Cabal, containers
-     , extra, foldl, http-conduit, lifted-base, monad-control
-     , multistate, process, split, system-filepath, tagged, text
-     , transformers, transformers-base, turtle, unordered-containers
-     , vector, xmlhtml, yaml
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, Cabal
+     , containers, extra, foldl, HTTP, lifted-base, monad-control
+     , multistate, network-uri, process, split, system-filepath, tagged
+     , text, transformers, transformers-base, turtle
+     , unordered-containers, vector, yaml
      }:
      mkDerivation {
        pname = "iridium";
-       version = "0.1.5.7";
-       sha256 = "0jfsz8j9dq0nfr536wp78k02ffg8xgjm3zqgjgfdm1i0zwi5dcbp";
+       version = "0.1.5.8";
+       sha256 = "02l18z38n3cbrav7lyi3d27393invc216j78xgg7qfpbvhm3pfgw";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         ansi-terminal base bytestring Cabal containers extra foldl
-         http-conduit lifted-base monad-control multistate process split
+         aeson ansi-terminal base bytestring Cabal containers extra foldl
+         HTTP lifted-base monad-control multistate network-uri process split
          system-filepath tagged text transformers transformers-base turtle
-         unordered-containers vector xmlhtml yaml
+         unordered-containers vector yaml
        ];
        executableHaskellDepends = [
          base extra multistate text transformers unordered-containers yaml
@@ -123435,8 +123089,8 @@ self: {
      }:
      mkDerivation {
        pname = "ixset-typed";
-       version = "0.4";
-       sha256 = "0xjj7vjyp4p6cid5xcin36xd8lwqah0vix4rj2d4mnmbb9ch19aa";
+       version = "0.4.0.1";
+       sha256 = "135cfc8d39qv02sga03gsym1yfajf0l5ci1s6q9n1xpb9ignblx8";
        libraryHaskellDepends = [
          base containers deepseq safecopy syb template-haskell
        ];
@@ -124094,6 +123748,8 @@ self: {
        pname = "jmacro";
        version = "0.6.15";
        sha256 = "1b3crf16szj11pcgrg3912xq072vnv0myq6mzg0ypaabdzn3zr7s";
+       revision = "1";
+       editedCabalFile = "07jghfxn4m26q8rksxn4v6pcc8mwcjdlz1ypy7dqsvhzc3hs2s4i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -124478,6 +124134,8 @@ self: {
        pname = "jsaddle";
        version = "0.9.5.0";
        sha256 = "1b1d8dvj5lqpn0k6ay90jdgm0a05vbchxy4l3r9s4fn4mx56jp9z";
+       revision = "1";
+       editedCabalFile = "1f77rxrmd0rqdz81dqaw5rxxcrsjw7ibw5qp93lkgw6yj531ki99";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring containers
          deepseq exceptions filepath ghc-prim http-types lens primitive
@@ -125158,6 +124816,8 @@ self: {
        pname = "json-schema";
        version = "0.7.4.2";
        sha256 = "09bgcc00q1v24rdglw9b24dgi690mlax6abarhcgvgmn22406wp8";
+       revision = "1";
+       editedCabalFile = "0pwmh48z54n0mrwzmgff95mwy1jbmy1rwsk5kmddby86f0j5873g";
        libraryHaskellDepends = [
          aeson base base-compat-batteries containers generic-aeson
          generic-deriving mtl scientific text time unordered-containers
@@ -126242,13 +125902,17 @@ self: {
      }) {};
 
   "kansas-lava-shake" = callPackage
-    ({ mkDerivation, base, hastache, kansas-lava, shake, text }:
+    ({ mkDerivation, base, containers, kansas-lava, mustache, shake
+     , text, vector
+     }:
      mkDerivation {
        pname = "kansas-lava-shake";
-       version = "0.2.0";
-       sha256 = "197nyj21r2z9a648ljmqkhzdbhy3syzw1rw4xfggn1rhk94px0rl";
+       version = "0.3.0";
+       sha256 = "00mmk0fsv1vdm3xidmv9wa5dwbnka564bhjp2j3jx5i4l7kw4xrb";
        enableSeparateDataOutput = true;
-       libraryHaskellDepends = [ base hastache kansas-lava shake text ];
+       libraryHaskellDepends = [
+         base containers kansas-lava mustache shake text vector
+       ];
        description = "Shake rules for building Kansas Lava projects";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -126328,8 +125992,10 @@ self: {
      }:
      mkDerivation {
        pname = "katip";
-       version = "0.6.0.0";
-       sha256 = "1ll33qvxlqdja7yljyv1mlc5sy4q8izgdscz6zvbyqnjl9iczrn3";
+       version = "0.6.1.0";
+       sha256 = "0mqx1dvq5v18sd2rqr2zlvmznj84vwml8zdf0hlhviw7kl9wjbah";
+       revision = "1";
+       editedCabalFile = "1znlk9jkrp3hl1frra563c61p49sp56nw1xps593w2qq9hr037rq";
        libraryHaskellDepends = [
          aeson async auto-update base bytestring containers either hostname
          microlens microlens-th monad-control mtl old-locale resourcet
@@ -126361,8 +126027,8 @@ self: {
      }:
      mkDerivation {
        pname = "katip-elasticsearch";
-       version = "0.5.0.0";
-       sha256 = "1wvsk4lnkjpi38z7f9w8dafsw0cc1cgi8q2fsrqc0f7xv1qgzjb3";
+       version = "0.5.1.0";
+       sha256 = "0nl88srx0w7i7h14g97qxki91vbwg2ibkcqd4v39a7l7j0rzw0vh";
        libraryHaskellDepends = [
          aeson async base bloodhound bytestring enclosed-exceptions
          exceptions http-client http-types katip retry scientific semigroups
@@ -127509,18 +127175,18 @@ self: {
      }) {};
 
   "knead" = callPackage
-    ({ mkDerivation, base, llvm-extra, llvm-tf, storable-record
+    ({ mkDerivation, base, bool8, llvm-extra, llvm-tf, storable-record
      , storable-tuple, tfp, transformers, utility-ht
      }:
      mkDerivation {
        pname = "knead";
-       version = "0.2.3";
-       sha256 = "14wi37i3y8hvfiwfs82mg7nanin84if4wlxi3rdg4w3fkdqm9ycl";
+       version = "0.3";
+       sha256 = "0pghy04z5ps1m3v6qmq7pilnflrcswm83c68k2f8d4g56v9lcp40";
        libraryHaskellDepends = [
-         base llvm-extra llvm-tf storable-record storable-tuple tfp
+         base bool8 llvm-extra llvm-tf storable-record storable-tuple tfp
          transformers utility-ht
        ];
-       description = "Repa array processing using LLVM JIT";
+       description = "Repa-like array processing using LLVM JIT";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -127682,8 +127348,8 @@ self: {
        pname = "kraken";
        version = "0.1.0";
        sha256 = "12l24z6alscbdicp11nfc8fwmlhk5mjdjyh6xdqyvlzphp5yfp1k";
-       revision = "1";
-       editedCabalFile = "0ycdikk0mwy1ys9v29ybiws4fr59arwkpibdx62p9vpdv9f0p9k6";
+       revision = "2";
+       editedCabalFile = "141qx2fb3dimv20qsl2q1bagwcn9i0r72z2ha1w7191m557in319";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls mtl
        ];
@@ -128903,26 +128569,6 @@ self: {
      }:
      mkDerivation {
        pname = "language-c";
-       version = "0.8.1";
-       sha256 = "0sdkjj0hq8p69fcdm6ljbjkjvrsrb8a6rl5dq6dj6byj32ajrm3d";
-       revision = "2";
-       editedCabalFile = "08h8a747k68nbv2mmbjlq2y2pqs738v8z54glrrh94963b2bh4h1";
-       libraryHaskellDepends = [
-         array base bytestring containers deepseq directory filepath pretty
-         process syb
-       ];
-       libraryToolDepends = [ alex happy ];
-       testHaskellDepends = [ base directory filepath process ];
-       description = "Analysis and generation of C code";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "language-c_0_8_2" = callPackage
-    ({ mkDerivation, alex, array, base, bytestring, containers, deepseq
-     , directory, filepath, happy, pretty, process, syb
-     }:
-     mkDerivation {
-       pname = "language-c";
        version = "0.8.2";
        sha256 = "05ff3ywh2lpxgd00nv6y3jnqpdl6bg0f2yn3csd043rv4srd6adp";
        revision = "1";
@@ -128935,7 +128581,6 @@ self: {
        testHaskellDepends = [ base directory filepath process ];
        description = "Analysis and generation of C code";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "language-c-comments" = callPackage
@@ -129312,6 +128957,8 @@ self: {
        pname = "language-java";
        version = "0.2.9";
        sha256 = "03hrj8hgyjmw2fvvk4ik30fdmbi3hndpkvf1bqcnpzqy5anwh58x";
+       revision = "1";
+       editedCabalFile = "0fnbg9b8isyk8dpmggh736mms7a2m65956y1z15wds63imzhs2ik";
        libraryHaskellDepends = [ array base parsec pretty ];
        libraryToolDepends = [ alex ];
        testHaskellDepends = [
@@ -130589,6 +130236,8 @@ self: {
        pname = "lazysplines";
        version = "0.2";
        sha256 = "0r6z3b6yaxsnz8cbfr815q97jlzsjrqszb2vvzwjyqbh6qqw006y";
+       revision = "1";
+       editedCabalFile = "0781158jza2q6zdd7z0szsnsw1kvsbhiijivbi61rridjgv1yq23";
        libraryHaskellDepends = [ base ];
        description = "Differential solving with lazy splines";
        license = stdenv.lib.licenses.bsd3;
@@ -130760,25 +130409,12 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "leancheck";
-       version = "0.7.4";
-       sha256 = "1lbr0b3k4fk0xlmqh5v4cidayzi9ijkr1i6ykzg2gd0xmjl9b4bq";
-       libraryHaskellDepends = [ base template-haskell ];
-       testHaskellDepends = [ base ];
-       description = "Enumerative property-based testing";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "leancheck_0_7_5" = callPackage
-    ({ mkDerivation, base, template-haskell }:
-     mkDerivation {
-       pname = "leancheck";
        version = "0.7.5";
        sha256 = "01hmbcp5kn4k0mgv7y5jap54d65ljdd3sm954s5y28h4xvk6dn7g";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base ];
        description = "Enumerative property-based testing";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "leankit-api" = callPackage
@@ -131184,6 +130820,8 @@ self: {
        pname = "lens-accelerate";
        version = "0.2.0.0";
        sha256 = "099vvakv7gq9sr9mh3hxj5byxxb4dw8lw7y1g3c4j1kz4gf2vxfk";
+       revision = "1";
+       editedCabalFile = "0ggm157i4bmgh7k0dv9zncgn4agwk7zn5wvsknxsnfqzy45qabi9";
        libraryHaskellDepends = [ accelerate base lens ];
        description = "Instances to mix lens with accelerate";
        license = stdenv.lib.licenses.bsd3;
@@ -131248,21 +130886,6 @@ self: {
      }:
      mkDerivation {
        pname = "lens-family";
-       version = "1.2.2";
-       sha256 = "0fs34wdhmfln06dnmgnbzgjiib6yb6z4ybcxqibal3amg7jlv8nx";
-       libraryHaskellDepends = [
-         base containers lens-family-core mtl transformers
-       ];
-       description = "Lens Families";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "lens-family_1_2_3" = callPackage
-    ({ mkDerivation, base, containers, lens-family-core, mtl
-     , transformers
-     }:
-     mkDerivation {
-       pname = "lens-family";
        version = "1.2.3";
        sha256 = "0a8fvvc3fsi5fzk5bnqvbgdz22xvvw55nyfac6411q0pm6vy4nc0";
        libraryHaskellDepends = [
@@ -131270,30 +130893,17 @@ self: {
        ];
        description = "Lens Families";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "lens-family-core" = callPackage
     ({ mkDerivation, base, containers, transformers }:
      mkDerivation {
        pname = "lens-family-core";
-       version = "1.2.2";
-       sha256 = "0a26rbgwq9z7lp52zkvwz13sjd35hr06xxc6zz4sglpjc4dqkzlm";
-       libraryHaskellDepends = [ base containers transformers ];
-       description = "Haskell 98 Lens Families";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "lens-family-core_1_2_3" = callPackage
-    ({ mkDerivation, base, containers, transformers }:
-     mkDerivation {
-       pname = "lens-family-core";
        version = "1.2.3";
        sha256 = "009rf10pj1cb50v44cc1pq7qvfrmkkk9dikahs9qmvbvgl3mykwi";
        libraryHaskellDepends = [ base containers transformers ];
        description = "Haskell 98 Lens Families";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "lens-family-th" = callPackage
@@ -132717,27 +132327,6 @@ self: {
      }:
      mkDerivation {
        pname = "lifted-async";
-       version = "0.10.0.2";
-       sha256 = "1073r512c1x2m1v0jar9bwqg656slg7jd1jhsyj6m8awgx1l1mwf";
-       libraryHaskellDepends = [
-         async base constraints lifted-base monad-control transformers-base
-       ];
-       testHaskellDepends = [
-         async base HUnit lifted-base monad-control mtl tasty
-         tasty-expected-failure tasty-hunit tasty-th
-       ];
-       benchmarkHaskellDepends = [ async base criterion deepseq ];
-       description = "Run lifted IO operations asynchronously and wait for their results";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "lifted-async_0_10_0_3" = callPackage
-    ({ mkDerivation, async, base, constraints, criterion, deepseq
-     , HUnit, lifted-base, monad-control, mtl, tasty
-     , tasty-expected-failure, tasty-hunit, tasty-th, transformers-base
-     }:
-     mkDerivation {
-       pname = "lifted-async";
        version = "0.10.0.3";
        sha256 = "131bh83yc3jhy0hwgslvs9p9clgl4i2hhvwz2xgx7igpbhsrrl43";
        libraryHaskellDepends = [
@@ -132750,7 +132339,6 @@ self: {
        benchmarkHaskellDepends = [ async base criterion deepseq ];
        description = "Run lifted IO operations asynchronously and wait for their results";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "lifted-base" = callPackage
@@ -133294,17 +132882,12 @@ self: {
      }) {};
 
   "linear-socket" = callPackage
-    ({ mkDerivation, base, bytestring, hlint, hspec, network
-     , tasty-hspec
-     }:
+    ({ mkDerivation, base, bytestring, hspec, network, tasty-hspec }:
      mkDerivation {
        pname = "linear-socket";
-       version = "0.3.3.2";
-       sha256 = "1a3ddpay2wyl5bwlnysx037ca0x0bh93ingxl6c2wlxab351zm4h";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.3.3.3";
+       sha256 = "0bi2idqny1y5d63xhryxl085plc7w3ybk6fgj9xsp6scyxdx8p82";
        libraryHaskellDepends = [ base bytestring network ];
-       executableHaskellDepends = [ base hlint ];
        testHaskellDepends = [ base hspec network tasty-hspec ];
        description = "Typed sockets";
        license = stdenv.lib.licenses.gpl3;
@@ -134544,18 +134127,18 @@ self: {
      }) {};
 
   "llvm-extra" = callPackage
-    ({ mkDerivation, base, bifunctors, containers, cpuid, llvm-tf
-     , non-empty, tfp, transformers, unsafe, utility-ht
+    ({ mkDerivation, base, bifunctors, bool8, containers, cpuid
+     , llvm-tf, non-empty, tfp, transformers, unsafe, utility-ht
      }:
      mkDerivation {
        pname = "llvm-extra";
-       version = "0.7.3";
-       sha256 = "12h3c86i8hps26rgy1s8m7rpmp7v6sms7m3bnq7l22qca7dny58a";
+       version = "0.8";
+       sha256 = "0gy7zl3ln64aypkci5gc1bxy1j98zfj9wj7z07lk9n07s6ddm9k2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bifunctors containers cpuid llvm-tf non-empty tfp transformers
-         unsafe utility-ht
+         base bifunctors bool8 containers cpuid llvm-tf non-empty tfp
+         transformers unsafe utility-ht
        ];
        description = "Utility functions for the llvm interface";
        license = stdenv.lib.licenses.bsd3;
@@ -134677,8 +134260,35 @@ self: {
        pname = "llvm-hs";
        version = "6.3.0";
        sha256 = "10v13f0pcsjaz7lhpg5wr520qp9rgajbv5c3pqx4v79nmfv797jd";
-       revision = "1";
-       editedCabalFile = "01kmqdma80qzfpzikny0xm69q0ikv5fy3kw4p6mpg15kkypwmcpg";
+       revision = "2";
+       editedCabalFile = "08rm1y7icxp2bdmv65n5nxg5mkppqpqd3m62n50gk6991kki9qdf";
+       setupHaskellDepends = [ base Cabal containers ];
+       libraryHaskellDepends = [
+         array attoparsec base bytestring containers exceptions llvm-hs-pure
+         mtl template-haskell transformers utf8-string
+       ];
+       libraryToolDepends = [ llvm-config ];
+       testHaskellDepends = [
+         base bytestring containers llvm-hs-pure mtl pretty-show process
+         QuickCheck tasty tasty-hunit tasty-quickcheck temporary
+         transformers
+       ];
+       description = "General purpose LLVM bindings";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {llvm-config = null;};
+
+  "llvm-hs_7_0_1" = callPackage
+    ({ mkDerivation, array, attoparsec, base, bytestring, Cabal
+     , containers, exceptions, llvm-config, llvm-hs-pure, mtl
+     , pretty-show, process, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, temporary, transformers
+     , utf8-string
+     }:
+     mkDerivation {
+       pname = "llvm-hs";
+       version = "7.0.1";
+       sha256 = "1ghgmmks22ra6ivhwhy65yj9ihr51lbhwdghm52pna5f14brhlyy";
        setupHaskellDepends = [ base Cabal containers ];
        libraryHaskellDepends = [
          array attoparsec base bytestring containers exceptions llvm-hs-pure
@@ -134736,6 +134346,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "llvm-hs-pure_7_0_0" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers, fail
+     , mtl, tasty, tasty-hunit, tasty-quickcheck, template-haskell
+     , transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "llvm-hs-pure";
+       version = "7.0.0";
+       sha256 = "1b82cin889qkyp9qv5p3yk7wq7ibnx2v9pk0mpvk6k9ca7fpr7dg";
+       libraryHaskellDepends = [
+         attoparsec base bytestring containers fail mtl template-haskell
+         transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base containers mtl tasty tasty-hunit tasty-quickcheck transformers
+       ];
+       description = "Pure Haskell LLVM functionality (no FFI)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "llvm-ht" = callPackage
     ({ mkDerivation, base, bytestring, directory, mtl, process
      , type-level
@@ -135315,8 +134946,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-effect";
-       version = "1.1.0";
-       sha256 = "1x3mj0gcpclv9by51rd1bi1ccaas0cy8yv1g6i08r64hj8jyhlk3";
+       version = "1.1.1";
+       sha256 = "10fd3xnkybca8pi7nw2hq1ggk5g89z8b2ml3avqi1x91chqdqi85";
        libraryHaskellDepends = [
          base bytestring extensible-effects monad-control text
          transformers-base
@@ -135552,8 +135183,8 @@ self: {
      }:
      mkDerivation {
        pname = "logging-effect";
-       version = "1.3.2";
-       sha256 = "1q8mhshz95xckqn4d8wxj0nsg4qrxmc6a826fjzxm1ii0krwpgbd";
+       version = "1.3.3";
+       sha256 = "10pighhav1zmg54gvfnvxcvz83698ziaq9ccs3zqc7jxahmyaslr";
        libraryHaskellDepends = [
          async base exceptions free monad-control mtl prettyprinter
          semigroups stm stm-delay text time transformers transformers-base
@@ -138651,29 +138282,6 @@ self: {
 
   "markdown" = callPackage
     ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup
-     , call-stack, conduit, conduit-extra, containers, data-default
-     , directory, filepath, hspec, text, transformers, xml-conduit
-     , xml-types, xss-sanitize
-     }:
-     mkDerivation {
-       pname = "markdown";
-       version = "0.1.17.1";
-       sha256 = "0n1vcw0vmhpgsmyxxafc82r2kp27g081zwx9md96zj5x5642vxz1";
-       libraryHaskellDepends = [
-         attoparsec base blaze-html blaze-markup conduit conduit-extra
-         containers data-default text transformers xml-conduit xml-types
-         xss-sanitize
-       ];
-       testHaskellDepends = [
-         base blaze-html call-stack conduit conduit-extra containers
-         directory filepath hspec text transformers
-       ];
-       description = "Convert Markdown to HTML, with XSS protection";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "markdown_0_1_17_4" = callPackage
-    ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup
      , bytestring, call-stack, conduit, conduit-extra, containers
      , data-default, directory, filepath, hspec, text, transformers
      , xml-conduit, xml-types, xss-sanitize
@@ -138693,7 +138301,6 @@ self: {
        ];
        description = "Convert Markdown to HTML, with XSS protection";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "markdown-kate" = callPackage
@@ -139038,24 +138645,6 @@ self: {
      }) {};
 
   "massiv" = callPackage
-    ({ mkDerivation, base, data-default, data-default-class, deepseq
-     , ghc-prim, hspec, primitive, QuickCheck, safe-exceptions, vector
-     }:
-     mkDerivation {
-       pname = "massiv";
-       version = "0.2.0.0";
-       sha256 = "0jyripzh4da29bvbhrfmwvjicr22ll9vbd0f3wiv4gcmlpnhls9j";
-       libraryHaskellDepends = [
-         base data-default-class deepseq ghc-prim primitive vector
-       ];
-       testHaskellDepends = [
-         base data-default deepseq hspec QuickCheck safe-exceptions vector
-       ];
-       description = "Massiv (Массив) is an Array Library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "massiv_0_2_1_0" = callPackage
     ({ mkDerivation, base, bytestring, data-default, data-default-class
      , deepseq, ghc-prim, hspec, primitive, QuickCheck, safe-exceptions
      , vector
@@ -139074,7 +138663,6 @@ self: {
        ];
        description = "Massiv (Массив) is an Array Library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "massiv-io" = callPackage
@@ -140708,12 +140296,12 @@ self: {
      }:
      mkDerivation {
        pname = "memory";
-       version = "0.14.16";
-       sha256 = "03rbszi5d4z9rlbfv8ydrl1xf84xsh8z57g07f7j9qccn9587c3v";
+       version = "0.14.18";
+       sha256 = "01rmq3vagxzjmm96qnfxk4f0516cn12bp5m8inn8h5r918bqsigm";
        revision = "1";
-       editedCabalFile = "10j8737fm287ii0nm4hqnhf87apls3xjczkzdw9qqkb4a2dybsbx";
+       editedCabalFile = "0h4d0avv8kv3my4rim79lcamv2dyibld7w6ianq46nhwgr0h2lzm";
        libraryHaskellDepends = [
-         base basement bytestring deepseq foundation ghc-prim
+         base basement bytestring deepseq ghc-prim
        ];
        testHaskellDepends = [ base basement bytestring foundation ];
        description = "memory and related abstraction stuff";
@@ -141378,8 +140966,8 @@ self: {
     ({ mkDerivation, base, contravariant, microlens }:
      mkDerivation {
        pname = "microlens-contra";
-       version = "0.1.0.1";
-       sha256 = "15gmqxi24jy8w83852y5qf4xymiilkl24sppcaw7r2hn6yfz30s9";
+       version = "0.1.0.2";
+       sha256 = "1ny9qhvd7rfzdkq4jdcgh4mfia856rsgpdhg8lprfprh6p7lhy5m";
        libraryHaskellDepends = [ base contravariant microlens ];
        description = "True folds and getters for microlens";
        license = stdenv.lib.licenses.bsd3;
@@ -141449,8 +141037,8 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-th";
-       version = "0.4.2.2";
-       sha256 = "02nj7lnl61yffi3c6wn341arxhld5r0vj6nzcb5zmqjhnqsv8c05";
+       version = "0.4.2.3";
+       sha256 = "13qw0pwcgd6f6i39rwgqwcwk1d4da5x7wv3gna7gdlxaq331h41j";
        libraryHaskellDepends = [
          base containers microlens template-haskell th-abstraction
          transformers
@@ -142330,18 +141918,23 @@ self: {
      }) {};
 
   "mios" = callPackage
-    ({ mkDerivation, base, bytestring, ghc-prim, primitive, vector }:
+    ({ mkDerivation, base, bytestring, ghc-prim, gitrev, hspec
+     , primitive, vector
+     }:
      mkDerivation {
        pname = "mios";
-       version = "1.6.0";
-       sha256 = "1pwcv24csffb734q4z4amjlgv8kkzncz8bjhn4s3wji021ndj1b7";
+       version = "1.6.2";
+       sha256 = "1q2lz5sir6pcxiqxb3vr1xp6zsld0nfwjymg0zbhszd5w0iprxdh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring ghc-prim primitive vector
        ];
        executableHaskellDepends = [
-         base bytestring ghc-prim primitive vector
+         base bytestring ghc-prim gitrev primitive vector
+       ];
+       testHaskellDepends = [
+         base bytestring ghc-prim hspec primitive vector
        ];
        description = "A Minisat-based CDCL SAT solver in Haskell";
        license = stdenv.lib.licenses.gpl3;
@@ -142641,6 +142234,8 @@ self: {
        pname = "mmark";
        version = "0.0.6.0";
        sha256 = "0ifz40fv5fdlj17cb4646amc4spy9dq7xn0bbscljskm7n7n1pxv";
+       revision = "1";
+       editedCabalFile = "0z9r6xjg6qpp2ai1wzkn0cvjw8dv6s94awsys6968ixmdzz9vrbz";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base case-insensitive containers data-default-class deepseq
@@ -143161,6 +142756,8 @@ self: {
        pname = "mole";
        version = "0.0.6";
        sha256 = "0shsx1sc6rc5jxijvrc4bzqpjw4xdjq5ghlj8jnmm7gp8b6h6y5b";
+       revision = "2";
+       editedCabalFile = "1qykba99djdhwm0mmkrfbjdyjcx47gi5clxm8kz87ccx9qs72kfy";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -144273,8 +143870,8 @@ self: {
     ({ mkDerivation, base, mtl, stm }:
      mkDerivation {
        pname = "monadIO";
-       version = "0.11.0.0";
-       sha256 = "11pbg83fw5vdlny5w9afmzdhn3ryg1av429gbsk8w6wl8zqhd4n9";
+       version = "0.11.1.0";
+       sha256 = "1a3gb70fkh28ck13zdkphdip2kzdcivzdrsg9fdn3nci9scbdp2w";
        libraryHaskellDepends = [ base mtl stm ];
        description = "Overloading of concurrency variables";
        license = stdenv.lib.licenses.bsd3;
@@ -144807,8 +144404,8 @@ self: {
        pname = "monoid-extras";
        version = "0.5";
        sha256 = "172d1mfns7agd619rlbb1i9kw2y26kjvivkva06k1r14bar1lmy6";
-       revision = "1";
-       editedCabalFile = "12dq0flvkw8lqbga3wsygcmkzwc9f16kmq31wh79alybzynz36qw";
+       revision = "2";
+       editedCabalFile = "1q73ghd12fd451zm4m045h8v3y61jmfhj6k890gnv6z7lyb7xwg2";
        libraryHaskellDepends = [ base groups semigroupoids semigroups ];
        benchmarkHaskellDepends = [ base criterion semigroups ];
        description = "Various extra monoid-related definitions and utilities";
@@ -144864,8 +144461,8 @@ self: {
      }:
      mkDerivation {
        pname = "monoid-subclasses";
-       version = "0.4.6";
-       sha256 = "1rsipvaab5wpzi4qxzzb3gihg1gnsdiv0iz00gdskgjifggamh8m";
+       version = "0.4.6.1";
+       sha256 = "19mfklkdhyv94pfg5i92h0z90sc99rbgpi8z0w55bz3qhxnqg5yh";
        libraryHaskellDepends = [
          base bytestring containers primes text vector
        ];
@@ -144905,6 +144502,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "monoidal-containers_0_4_0_0" = callPackage
+    ({ mkDerivation, aeson, base, containers, deepseq, hashable, lens
+     , newtype, semigroups, unordered-containers
+     }:
+     mkDerivation {
+       pname = "monoidal-containers";
+       version = "0.4.0.0";
+       sha256 = "15mh2hx7a31gr5zb2g30h2fcnb3a2wvv2y8hvzzk5l9cr2nvhcm1";
+       libraryHaskellDepends = [
+         aeson base containers deepseq hashable lens newtype semigroups
+         unordered-containers
+       ];
+       description = "Containers with monoidal accumulation";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "monoidplus" = callPackage
     ({ mkDerivation, base, contravariant, semigroups, transformers }:
      mkDerivation {
@@ -144947,12 +144561,12 @@ self: {
      }) {};
 
   "monopati" = callPackage
-    ({ mkDerivation, base, comonad, directory, free, split }:
+    ({ mkDerivation, base, directory, free, split }:
      mkDerivation {
        pname = "monopati";
-       version = "0.1.0";
-       sha256 = "18bx5xy3d3mk47499anrl1xlmxb8g3l35ibyllkcqhsx822zk9ij";
-       libraryHaskellDepends = [ base comonad directory free split ];
+       version = "0.1.2";
+       sha256 = "1bimppfh14754a8dra6cjd2ricdyry5fmm0shryf974h9l6wbrp8";
+       libraryHaskellDepends = [ base directory free split ];
        description = "Well-typed paths";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -145266,6 +144880,46 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "moto" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
+     , cryptohash-sha1, df1, di, di-core, di-df1, directory, filepath
+     , mtl, optparse-applicative, pipes, pipes-attoparsec
+     , pipes-bytestring, random, safe-exceptions, tasty, tasty-hunit
+     , tasty-quickcheck, text, time, transformers
+     }:
+     mkDerivation {
+       pname = "moto";
+       version = "0.0.3";
+       sha256 = "1grvw5dlg6gjf83rhz45hnh73p74v85kmyn9yfi2gwbxcs7fsmvx";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring containers cryptohash-sha1 df1
+         di-core di-df1 directory filepath mtl optparse-applicative pipes
+         pipes-attoparsec pipes-bytestring safe-exceptions text time
+         transformers
+       ];
+       testHaskellDepends = [
+         base bytestring containers di di-core directory filepath random
+         safe-exceptions tasty tasty-hunit tasty-quickcheck text time
+       ];
+       description = "General purpose migrations library";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
+  "moto-postgresql" = callPackage
+    ({ mkDerivation, base, bytestring, moto, postgresql-simple
+     , safe-exceptions
+     }:
+     mkDerivation {
+       pname = "moto-postgresql";
+       version = "0.0.1";
+       sha256 = "0z5kxphsgywmnv33lf95by9gxlgr6i8y8lq7sqy495f87b1jv62d";
+       libraryHaskellDepends = [
+         base bytestring moto postgresql-simple safe-exceptions
+       ];
+       description = "PostgreSQL-based migrations registry for moto";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "motor" = callPackage
     ({ mkDerivation, base, indexed, indexed-extras, reflection
      , row-types, template-haskell
@@ -146552,10 +146206,8 @@ self: {
      }:
      mkDerivation {
        pname = "multistate";
-       version = "0.8.0.0";
-       sha256 = "0sax983yjzcbailza3fpjjszg4vn0wb11wjr11jskk22lccbagq1";
-       revision = "2";
-       editedCabalFile = "1dp52gacm8ql3g7xvb1dzp3migwpz2kcnz8pafbf7rs1lmccj1zf";
+       version = "0.8.0.1";
+       sha256 = "1s9fs29ki3l1df0ddi04ckbich1xid413sm2zx59aqp92dfpimvm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -147295,8 +146947,8 @@ self: {
        pname = "mwc-random-accelerate";
        version = "0.1.0.0";
        sha256 = "1qrji6b39zp5wrgz5c59xv06l3khhp4fv2ybdmx4ac5i28yx7yih";
-       revision = "2";
-       editedCabalFile = "16llz1jvpq841a20wvv2j8kkb357y970i54w340hwk4c187hypic";
+       revision = "3";
+       editedCabalFile = "1a7xx3mcli9fx5lqg1zxwqbrgzvgbssn3vprh4wp8zg58pqic6ic";
        libraryHaskellDepends = [ accelerate base mwc-random ];
        description = "Generate Accelerate arrays filled with high quality pseudorandom numbers";
        license = stdenv.lib.licenses.bsd3;
@@ -148046,12 +147698,18 @@ self: {
      }) {};
 
   "nano-cryptr" = callPackage
-    ({ mkDerivation, base, bytestring }:
+    ({ mkDerivation, base, bytestring, HUnit, test-framework
+     , test-framework-hunit, test-framework-quickcheck2
+     }:
      mkDerivation {
        pname = "nano-cryptr";
-       version = "0.1.1.3";
-       sha256 = "1pqwzl8l48c4q83jhjj11jd3kwwa0ail2c6kv3k38kig9yvj7ff8";
+       version = "0.2.1";
+       sha256 = "00c0niyjhkcv942vhm775jml3frhj0i3svgj9xxy0hnfb3nawvjb";
        libraryHaskellDepends = [ base bytestring ];
+       testHaskellDepends = [
+         base bytestring HUnit test-framework test-framework-hunit
+         test-framework-quickcheck2
+       ];
        description = "A threadsafe binding to glibc's crypt_r function";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -148402,6 +148060,8 @@ self: {
        pname = "natural";
        version = "0.3.0.2";
        sha256 = "1haabwh41lyfhdd4mkfj7slhrwxhsxa6plii8jaza5z4bnydr7bd";
+       revision = "1";
+       editedCabalFile = "0y8dg3iplxgk36zbgyf8glzm16gi9x837micw9rbwg4vpzg2a171";
        libraryHaskellDepends = [ base lens semigroupoids ];
        testHaskellDepends = [
          base checkers hedgehog lens QuickCheck tasty tasty-hedgehog
@@ -149632,8 +149292,8 @@ self: {
     ({ mkDerivation, base, bytestring, network, text, time, vector }:
      mkDerivation {
        pname = "network-carbon";
-       version = "1.0.12";
-       sha256 = "0fb1ymk1rnsppvil46pyaxlzc09l6716jbrr0h7rb5nxv0bvk5pd";
+       version = "1.0.13";
+       sha256 = "06cc62fns07flmsl9gbdicmqqg5icmy3m4n0nvp2xqjk1ax8ws39";
        libraryHaskellDepends = [
          base bytestring network text time vector
        ];
@@ -150049,21 +149709,6 @@ self: {
      }) {};
 
   "network-simple" = callPackage
-    ({ mkDerivation, base, bytestring, exceptions, network
-     , safe-exceptions, transformers
-     }:
-     mkDerivation {
-       pname = "network-simple";
-       version = "0.4.2";
-       sha256 = "0h3xq0lv9wqczm93m81irqsirwsrw9jip11rxyghxrk4rf6pg4ip";
-       libraryHaskellDepends = [
-         base bytestring exceptions network safe-exceptions transformers
-       ];
-       description = "Simple network sockets usage patterns";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "network-simple_0_4_3" = callPackage
     ({ mkDerivation, base, bytestring, network, safe-exceptions, socks
      , transformers
      }:
@@ -150076,7 +149721,6 @@ self: {
        ];
        description = "Simple network sockets usage patterns";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "network-simple-sockaddr" = callPackage
@@ -150096,23 +149740,6 @@ self: {
      }) {};
 
   "network-simple-tls" = callPackage
-    ({ mkDerivation, base, bytestring, data-default, exceptions
-     , network, network-simple, tls, transformers, x509, x509-store
-     , x509-system, x509-validation
-     }:
-     mkDerivation {
-       pname = "network-simple-tls";
-       version = "0.3";
-       sha256 = "11s5r7vibba7pmmbnglx1w2v5wxykxrzwkrwy4hifxzpbb2gybdw";
-       libraryHaskellDepends = [
-         base bytestring data-default exceptions network network-simple tls
-         transformers x509 x509-store x509-system x509-validation
-       ];
-       description = "Simple interface to TLS secured network sockets";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "network-simple-tls_0_3_1" = callPackage
     ({ mkDerivation, base, bytestring, data-default, network
      , network-simple, safe-exceptions, tls, transformers, x509
      , x509-store, x509-system, x509-validation
@@ -150127,7 +149754,6 @@ self: {
        ];
        description = "Simple interface to TLS secured network sockets";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "network-socket-options" = callPackage
@@ -151135,8 +150761,8 @@ self: {
     ({ mkDerivation, base, nlopt, vector }:
      mkDerivation {
        pname = "nlopt-haskell";
-       version = "0.1.2.0";
-       sha256 = "0hzg2y11lacgn9793zsk0vib3wb9kyqkcp65vfcfwvd90lny3mmn";
+       version = "0.1.3.0";
+       sha256 = "1lsh2wbl1l291xqwjxdqjpvxss9zzl2ivvwigza7zkbmaz9a0zvx";
        libraryHaskellDepends = [ base vector ];
        librarySystemDepends = [ nlopt ];
        testHaskellDepends = [ base vector ];
@@ -151870,6 +151496,8 @@ self: {
        pname = "nowdoc";
        version = "0.1.1.0";
        sha256 = "0s2j7z9zyb3y3k5hviqjnb3l2z9mvxll5m9nsvq566hn5h5lkzjg";
+       revision = "1";
+       editedCabalFile = "074xgrxs8ynq29bsx66an03q0457f80ga9jf4sqi0q34jgfpmbcv";
        libraryHaskellDepends = [ base bytestring template-haskell ];
        testHaskellDepends = [ base bytestring template-haskell ];
        description = "Here document without variable expansion like PHP Nowdoc";
@@ -152562,8 +152190,8 @@ self: {
      }:
      mkDerivation {
        pname = "nvim-hs";
-       version = "1.0.0.2";
-       sha256 = "00s8anzazzax8kjsa0ciyvx9c5smwb8a81qh625nf2v9pkp7lr20";
+       version = "1.0.0.3";
+       sha256 = "07pnabrb9hs2l8ajrzcs3wz1m9vfq88wqjirf84ygmmnnd8dva71";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -152636,8 +152264,8 @@ self: {
      }:
      mkDerivation {
        pname = "nvvm";
-       version = "0.8.0.3";
-       sha256 = "1kwmgl1bp0mlv4bdnjl6m1v34k68pgg6z00z3i7x3wfjff8gd5sr";
+       version = "0.9.0.0";
+       sha256 = "00ggaycs5z2b617kgjv851ahrakd4v8w374qbym19r1ccrxkdhhb";
        setupHaskellDepends = [
          base Cabal cuda directory filepath template-haskell
        ];
@@ -152705,8 +152333,8 @@ self: {
      }:
      mkDerivation {
        pname = "o-clock";
-       version = "1.0.0";
-       sha256 = "18wmy90fn514dmjsyk8n6q4p1nvks6lbi0077s00p6hv247p353j";
+       version = "1.0.0.1";
+       sha256 = "0nmv0zvhd2wd327q268xd8x9swb5v6pm5fn9p5zyn0khja38s6fr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ghc-prim ];
@@ -153107,35 +152735,6 @@ self: {
      }:
      mkDerivation {
        pname = "odbc";
-       version = "0.2.0";
-       sha256 = "1dv7h2c6y59dsyhz99k1lzydms618i65jra7gzacf88zb4idnvi7";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         async base bytestring containers deepseq formatting parsec
-         semigroups template-haskell text time transformers unliftio-core
-       ];
-       librarySystemDepends = [ unixODBC ];
-       executableHaskellDepends = [
-         base bytestring optparse-applicative text
-       ];
-       testHaskellDepends = [
-         base bytestring hspec parsec QuickCheck text time
-       ];
-       benchmarkHaskellDepends = [ async base text weigh ];
-       description = "Haskell binding to the ODBC API, aimed at SQL Server driver";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) unixODBC;};
-
-  "odbc_0_2_2" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, deepseq
-     , formatting, hspec, optparse-applicative, parsec, QuickCheck
-     , semigroups, template-haskell, text, time, transformers, unixODBC
-     , unliftio-core, weigh
-     }:
-     mkDerivation {
-       pname = "odbc";
        version = "0.2.2";
        sha256 = "0dkkkrv43kl3643i0j4hgj1mcsk1jhrl086dygd6hqb9hd4156k5";
        isLibrary = true;
@@ -153743,8 +153342,8 @@ self: {
        pname = "opaleye";
        version = "0.6.1.0";
        sha256 = "0vjiwpdrff4nrs5ww8q3j77ysrq0if20yfk4gy182lr7nzhhwz0l";
-       revision = "1";
-       editedCabalFile = "07sz4a506hlx8da2ppiglja6hm9ipb2myh6s702ac6xx700cnl7f";
+       revision = "2";
+       editedCabalFile = "07yn6xzynvjz9p6mv9kzh1sz05dqqsmihznba8s9q36lixlslyag";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive
          contravariant postgresql-simple pretty product-profunctors
@@ -154919,8 +154518,8 @@ self: {
      }:
      mkDerivation {
        pname = "optparse-applicative";
-       version = "0.14.2.0";
-       sha256 = "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71";
+       version = "0.14.3.0";
+       sha256 = "0qvn1s7jwrabbpmqmh6d6iafln3v3h9ddmxj2y4m0njmzq166ivj";
        libraryHaskellDepends = [
          ansi-wl-pprint base process transformers transformers-compat
        ];
@@ -156169,7 +155768,7 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
 
-  "pandoc_2_3" = callPackage
+  "pandoc_2_3_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base64-bytestring
      , binary, blaze-html, blaze-markup, bytestring, Cabal
      , case-insensitive, cmark-gfm, containers, criterion, data-default
@@ -156184,8 +155783,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc";
-       version = "2.3";
-       sha256 = "0wyf0rc8macczrql8v1802hdifzk5nbwxzv42kxfx55qnwdil1av";
+       version = "2.3.1";
+       sha256 = "1wf38mqny53ygpaii0vfjrk0889ya7mlsi7hvvqjakjndcyqflbl";
        configureFlags = [ "-fhttps" "-f-trypandoc" ];
        isLibrary = true;
        isExecutable = true;
@@ -156227,44 +155826,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc";
-       version = "0.14.3.1";
-       sha256 = "0yj6rckwsc9vig40cm15ry0j3d01xpk04qma9n4byhal6v4b5h22";
-       revision = "1";
-       editedCabalFile = "1lqz432ij7yp6l412vcfk400nmxzbix6qckgmir46k1jm4glyqwk";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       setupHaskellDepends = [ base Cabal ];
-       libraryHaskellDepends = [
-         aeson base bytestring containers data-default directory filepath
-         hs-bibutils mtl old-locale pandoc pandoc-types parsec rfc5051
-         setenv split syb tagsoup text time unordered-containers vector
-         xml-conduit yaml
-       ];
-       executableHaskellDepends = [
-         aeson aeson-pretty attoparsec base bytestring filepath pandoc
-         pandoc-types syb text yaml
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers directory filepath mtl pandoc
-         pandoc-types process temporary text yaml
-       ];
-       doCheck = false;
-       description = "Supports using pandoc with citeproc";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "pandoc-citeproc_0_14_4" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
-     , Cabal, containers, data-default, directory, filepath, hs-bibutils
-     , mtl, old-locale, pandoc, pandoc-types, parsec, process, rfc5051
-     , setenv, split, syb, tagsoup, temporary, text, time
-     , unordered-containers, vector, xml-conduit, yaml
-     }:
-     mkDerivation {
-       pname = "pandoc-citeproc";
-       version = "0.14.4";
-       sha256 = "00m81bwb0s0m7qm3b8xslwdyifdar2fzsnhjrxkqjlj8axdlb796";
+       version = "0.14.5";
+       sha256 = "0iiai5f2n8f29p52h4fflhngbh8fj9rrgwfz4nnfhjbrdc0irmz8";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -156286,7 +155849,6 @@ self: {
        doCheck = false;
        description = "Supports using pandoc with citeproc";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pandoc-citeproc-preamble" = callPackage
@@ -156520,6 +156082,25 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "pandoc-pyplot" = callPackage
+    ({ mkDerivation, base, containers, directory, filepath
+     , pandoc-types, temporary, typed-process
+     }:
+     mkDerivation {
+       pname = "pandoc-pyplot";
+       version = "1.0.0.1";
+       sha256 = "1sxksn2b7x1mrgla0c3dn5x9js0yhfg125259kh1iqzlkanj81px";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory filepath pandoc-types temporary
+         typed-process
+       ];
+       executableHaskellDepends = [ base pandoc-types ];
+       description = "A Pandoc filter for including figures generated from Matplotlib";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "pandoc-sidenote" = callPackage
     ({ mkDerivation, base, monad-gen, pandoc, pandoc-types }:
      mkDerivation {
@@ -156651,8 +156232,8 @@ self: {
      }:
      mkDerivation {
        pname = "pangraph";
-       version = "0.2.0";
-       sha256 = "1zm19gbidi6a27vi7x66dlw3q0syy5vwdykck716kdfka88vr9k5";
+       version = "0.2.1";
+       sha256 = "09jyhaxl89y8arkm4xmbx3bp859viq00bdnqk3bnvdiwv3klry8l";
        libraryHaskellDepends = [
          algebraic-graphs attoparsec base bytestring containers fgl hexml
          html-entities text
@@ -157459,8 +157040,8 @@ self: {
      }:
      mkDerivation {
        pname = "paripari";
-       version = "0.4.0.0";
-       sha256 = "10pg179pcrrwl321xw7q9wyfpfkaczavhlgrmv2nqd2yxwmkgqdb";
+       version = "0.5.0.0";
+       sha256 = "0wk0b7vb3y2gs1sayd0sh5wa643q5vvc6s2cq9p1h8paxkhd3ypb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -158025,8 +157606,8 @@ self: {
     ({ mkDerivation, base, doctest, hedgehog }:
      mkDerivation {
        pname = "partial-semigroup";
-       version = "0.3.0.3";
-       sha256 = "1vsn82kpv2ny4yjj8gq8xaq8kvi55wzy8ix0k4lsppsda8j3s9rx";
+       version = "0.4.0.1";
+       sha256 = "0jfdybqxqrkxwbvscgy6q6vp32jp5h9xbyfykxbvsc64h02kn6gs";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest hedgehog ];
        description = "A partial binary associative operator";
@@ -158038,8 +157619,8 @@ self: {
     ({ mkDerivation, base, hedgehog, partial-semigroup }:
      mkDerivation {
        pname = "partial-semigroup-hedgehog";
-       version = "0.3.0.1";
-       sha256 = "0i1p3277qv05jrshj3f61l9ag10dlh0hbwx550achlff3blfqhdr";
+       version = "0.4.0.1";
+       sha256 = "1nvfy1cwp7qv77bm0ax3ll7jmqciasq9gsyyrghsx18y1q2d8qzp";
        libraryHaskellDepends = [ base hedgehog partial-semigroup ];
        description = "Property testing for partial semigroups using Hedgehog";
        license = stdenv.lib.licenses.asl20;
@@ -158050,8 +157631,8 @@ self: {
     ({ mkDerivation, partial-semigroup-hedgehog }:
      mkDerivation {
        pname = "partial-semigroup-test";
-       version = "0.3.0.1";
-       sha256 = "006dlck7dr1xs2wwd233bm87mf619dlwnb66xlcfp82ksdmnfl6n";
+       version = "0.4.0.1";
+       sha256 = "0p990b35wqy339mhlbcd0xh82rc4qyahzn4ndjyy1cv33cab7is7";
        libraryHaskellDepends = [ partial-semigroup-hedgehog ];
        doHaddock = false;
        description = "Testing utilities for the partial-semigroup package";
@@ -158249,26 +157830,28 @@ self: {
      }) {};
 
   "patch-image" = callPackage
-    ({ mkDerivation, accelerate, accelerate-arithmetic, accelerate-cuda
+    ({ mkDerivation, accelerate, accelerate-arithmetic
      , accelerate-cufft, accelerate-fourier, accelerate-io
-     , accelerate-utility, array, base, bytestring, Cabal, carray
-     , cassava, containers, enumset, explicit-exception, fft, filepath
-     , gnuplot, hmatrix, JuicyPixels, knead, llvm-extra, llvm-tf
-     , non-empty, pqueue, storable-tuple, tfp, unordered-containers
-     , utility-ht, vector
+     , accelerate-llvm-ptx, accelerate-utility, array, base, bool8
+     , bytestring, Cabal, carray, cassava, containers, dsp, enumset
+     , explicit-exception, fft, filepath, gnuplot, JuicyPixels, knead
+     , llvm-extra, llvm-tf, non-empty, pqueue, prelude-compat
+     , semigroups, storable-complex, storable-tuple, tfp
+     , unordered-containers, utility-ht, vector
      }:
      mkDerivation {
        pname = "patch-image";
-       version = "0.3.1";
-       sha256 = "1l7iv83r145wmfhr8mygc7ln78jv669n2klhm1n9p50dinv1gj17";
+       version = "0.3.2";
+       sha256 = "00zjpbhw5886zc4cmflqw4721kvndyc7r3i7p5493visqr0d1hvk";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         accelerate accelerate-arithmetic accelerate-cuda accelerate-cufft
-         accelerate-fourier accelerate-io accelerate-utility array base
-         bytestring Cabal carray cassava containers enumset
-         explicit-exception fft filepath gnuplot hmatrix JuicyPixels knead
-         llvm-extra llvm-tf non-empty pqueue storable-tuple tfp
+         accelerate accelerate-arithmetic accelerate-cufft
+         accelerate-fourier accelerate-io accelerate-llvm-ptx
+         accelerate-utility array base bool8 bytestring Cabal carray cassava
+         containers dsp enumset explicit-exception fft filepath gnuplot
+         JuicyPixels knead llvm-extra llvm-tf non-empty pqueue
+         prelude-compat semigroups storable-complex storable-tuple tfp
          unordered-containers utility-ht vector
        ];
        description = "Compose a big image from overlapping parts";
@@ -161816,31 +161399,16 @@ self: {
      }:
      mkDerivation {
        pname = "pipes-concurrency";
-       version = "2.0.11";
-       sha256 = "03h87b11c64yvj28lxgbvjvqrsx0zfqb92v0apd8ypb9xxabqd4m";
-       libraryHaskellDepends = [
-         async base contravariant pipes semigroups stm void
-       ];
-       testHaskellDepends = [ async base pipes stm ];
-       description = "Concurrency for the pipes ecosystem";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "pipes-concurrency_2_0_12" = callPackage
-    ({ mkDerivation, async, base, contravariant, pipes, semigroups, stm
-     , void
-     }:
-     mkDerivation {
-       pname = "pipes-concurrency";
        version = "2.0.12";
        sha256 = "17aqh6p1az09n6b6vs06pxcha5aq6dvqjwskgjcdiz7221vwchs3";
+       revision = "1";
+       editedCabalFile = "1c1rys2pp7a2z6si925ps610q8a38a6m26s182phwa5nfhyggpaw";
        libraryHaskellDepends = [
          async base contravariant pipes semigroups stm void
        ];
        testHaskellDepends = [ async base pipes stm ];
        description = "Concurrency for the pipes ecosystem";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pipes-conduit" = callPackage
@@ -162390,8 +161958,8 @@ self: {
        pname = "pipes-safe";
        version = "2.2.9";
        sha256 = "160qba0r8lih186qfrpvnx1m2j632x5b7n1x53mif9aag41n9w8p";
-       revision = "1";
-       editedCabalFile = "08jxmxfhxfi3v19bvvmfs50c74ci6v36503knsb4qdscx9lr864d";
+       revision = "2";
+       editedCabalFile = "1crpzg72nahmffw468d31l23bw3wgi0p3w7ad2pv3jxhy1432c71";
        libraryHaskellDepends = [
          base containers exceptions monad-control mtl pipes primitive
          transformers transformers-base
@@ -162400,6 +161968,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "pipes-safe_2_3_1" = callPackage
+    ({ mkDerivation, base, containers, exceptions, monad-control, mtl
+     , pipes, primitive, transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "pipes-safe";
+       version = "2.3.1";
+       sha256 = "0dfdd3fccfd7wfn5228hbfj3h10xq01sddpy1v2ds63wlg84kwly";
+       libraryHaskellDepends = [
+         base containers exceptions monad-control mtl pipes primitive
+         transformers transformers-base
+       ];
+       description = "Safety for the pipes ecosystem";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "pipes-shell" = callPackage
     ({ mkDerivation, async, base, bytestring, directory, hspec, pipes
      , pipes-bytestring, pipes-safe, process, stm, stm-chans, text
@@ -164842,19 +164427,6 @@ self: {
     ({ mkDerivation, base, bytestring, Cabal, postgresql, unix }:
      mkDerivation {
        pname = "postgresql-libpq";
-       version = "0.9.4.1";
-       sha256 = "0ssn12cs643nd1bliaks0l0ssainydsrzjr3l5p7hm3wnqwa77qd";
-       setupHaskellDepends = [ base Cabal ];
-       libraryHaskellDepends = [ base bytestring unix ];
-       librarySystemDepends = [ postgresql ];
-       description = "low-level binding to libpq";
-       license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) postgresql;};
-
-  "postgresql-libpq_0_9_4_2" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, postgresql, unix }:
-     mkDerivation {
-       pname = "postgresql-libpq";
        version = "0.9.4.2";
        sha256 = "1y86kysakfcf3zq252yl2llrx3765vxvkdwda4q5ql7ikv3m786f";
        setupHaskellDepends = [ base Cabal ];
@@ -164863,7 +164435,6 @@ self: {
        testHaskellDepends = [ base bytestring ];
        description = "low-level binding to libpq";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) postgresql;};
 
   "postgresql-named" = callPackage
@@ -165642,25 +165213,12 @@ self: {
     ({ mkDerivation, base, deepseq, QuickCheck }:
      mkDerivation {
        pname = "pqueue";
-       version = "1.4.1.1";
-       sha256 = "1zvwm1zcqqq5n101s1brjhgbay8rf9fviq6gxbplf40i63m57p1x";
-       libraryHaskellDepends = [ base deepseq ];
-       testHaskellDepends = [ base deepseq QuickCheck ];
-       description = "Reliable, persistent, fast priority queues";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "pqueue_1_4_1_2" = callPackage
-    ({ mkDerivation, base, deepseq, QuickCheck }:
-     mkDerivation {
-       pname = "pqueue";
        version = "1.4.1.2";
        sha256 = "1v4zhv2sc1zsw91hvnarkjhayx2dnf7ccxz6rrhsqpcs0szaranj";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base deepseq QuickCheck ];
        description = "Reliable, persistent, fast priority queues";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pqueue-mtl" = callPackage
@@ -166426,6 +165984,8 @@ self: {
        pname = "pretty-sop";
        version = "0.2.0.2";
        sha256 = "0x1j5ngxwk176kr1qb0vr7zzjph1jxjc3bpzqcnph3rn2j6z4kyn";
+       revision = "1";
+       editedCabalFile = "16j80587sfq4hm2p24awcv388sm2snrwj3fhg9l3x256fbl4bm4s";
        libraryHaskellDepends = [ base generics-sop pretty-show ];
        description = "A generic pretty-printer using generics-sop";
        license = stdenv.lib.licenses.bsd3;
@@ -166624,6 +166184,8 @@ self: {
        pname = "prim-array";
        version = "0.2.2";
        sha256 = "0lr7qni6wfiazn2gj6hnlkfzxdwvfhfqfkacj43w26s34irda4g3";
+       revision = "1";
+       editedCabalFile = "120v58dhida6ms5wd4skw32y2mc70594dhipmz2zp4kjcqmllmdq";
        libraryHaskellDepends = [ base ghc-prim primitive semigroups ];
        description = "Primitive byte array with type variable";
        license = stdenv.lib.licenses.bsd3;
@@ -167741,16 +167303,16 @@ self: {
      , hashable, hashable-time, haskeline, http-api-data, http-types
      , HUnit, list-t, megaparsec, monad-parallel, MonadRandom, mtl
      , network, network-transport, network-transport-tcp, old-locale
-     , optparse-applicative, parallel, path-pieces, QuickCheck, random
-     , random-shuffle, resourcet, rset, scotty, semigroups, stm
-     , stm-containers, template-haskell, temporary, text, time
-     , transformers, unix, unordered-containers, uuid, vector
-     , vector-binary-instances, websockets, zlib
+     , optparse-applicative, parallel, path-pieces, QuickCheck
+     , quickcheck-instances, random, random-shuffle, resourcet, rset
+     , scotty, semigroups, stm, stm-containers, template-haskell
+     , temporary, text, time, transformers, unix, unordered-containers
+     , uuid, vector, vector-binary-instances, websockets, zlib
      }:
      mkDerivation {
        pname = "project-m36";
-       version = "0.5";
-       sha256 = "0k9px4f4yn6fgzc7zaig33w4nqnjgrmizbmmq11yg76gk08f7mv1";
+       version = "0.5.1";
+       sha256 = "1i3g6x3447hy1df6kzh8afpp366lzi9jspqzwi7gjkhkqhxxc94q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -167762,10 +167324,10 @@ self: {
          filepath foldl ghc ghc-boot ghc-paths ghci Glob gnuplot hashable
          hashable-time haskeline http-api-data list-t monad-parallel
          MonadRandom mtl network-transport network-transport-tcp old-locale
-         optparse-applicative parallel path-pieces QuickCheck random-shuffle
-         resourcet rset semigroups stm stm-containers temporary text time
-         transformers unix unordered-containers uuid vector
-         vector-binary-instances zlib
+         optparse-applicative parallel path-pieces QuickCheck
+         quickcheck-instances random-shuffle resourcet rset semigroups stm
+         stm-containers temporary text time transformers unix
+         unordered-containers uuid vector vector-binary-instances zlib
        ];
        executableHaskellDepends = [
          aeson attoparsec base base64-bytestring binary blaze-html
@@ -168921,10 +168483,8 @@ self: {
      }:
      mkDerivation {
        pname = "pseudo-boolean";
-       version = "0.1.6.0";
-       sha256 = "1v28vbhcrx0mvciazlanwyaxwav0gfjc7sxz7adgims7mj64g1ra";
-       revision = "2";
-       editedCabalFile = "1wnp16zs9nx3b250cmh6j84scv821arc0grb8k08h0a3kphavqx1";
+       version = "0.1.7.0";
+       sha256 = "0y470jrqmc2k9j3zf2w2krjg3ial08v71bcq6zxh1g47iz4kszr7";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder containers deepseq
          dlist hashable megaparsec parsec void
@@ -169834,8 +169394,8 @@ self: {
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "1.5.1.5";
-       sha256 = "0bidqvyx5ss3zgw2ypbwnii1vqfqp0kwyf31h53pvza7c3xrpq4x";
+       version = "1.5.1.6";
+       sha256 = "0i5lf3aniff8lnvgkl3mmy5xbjr130baz1h25p6q3asapirbj1k0";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite hashable
          http-client http-types memory text time transformers
@@ -174030,6 +173590,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "rebase_1_3" = callPackage
+    ({ mkDerivation, base, base-prelude, bifunctors, bytestring
+     , containers, contravariant, contravariant-extras, deepseq, dlist
+     , either, fail, hashable, mtl, profunctors, scientific
+     , semigroupoids, semigroups, stm, text, time, transformers
+     , unordered-containers, uuid, vector, void
+     }:
+     mkDerivation {
+       pname = "rebase";
+       version = "1.3";
+       sha256 = "02g14vv4qbzq9vakkr55960r386jmkivgm5ld782b1bqyvpfsfh7";
+       revision = "1";
+       editedCabalFile = "1yz51pghns6xanzdnlkagghpzwnkl7wjqnqcp5gs0zs1iywrbl45";
+       libraryHaskellDepends = [
+         base base-prelude bifunctors bytestring containers contravariant
+         contravariant-extras deepseq dlist either fail hashable mtl
+         profunctors scientific semigroupoids semigroups stm text time
+         transformers unordered-containers uuid vector void
+       ];
+       description = "A more progressive alternative to the \"base\" package";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rebindable" = callPackage
     ({ mkDerivation, base, data-default-class, indexed }:
      mkDerivation {
@@ -175672,8 +175256,8 @@ self: {
      }:
      mkDerivation {
        pname = "regexdot";
-       version = "0.12.1.0";
-       sha256 = "11hv0mc48y42dz0bjfcvjxjxcbag33kvdc2gxbx0lsgyb4lm0q8j";
+       version = "0.12.2.0";
+       sha256 = "12vbdljm38nnl76byik6fzar51v0nyjm1dp4ky8fh16f5ghnm5b8";
        libraryHaskellDepends = [
          base data-default deepseq extra parallel parsec toolshed
        ];
@@ -176551,10 +176135,8 @@ self: {
      }:
      mkDerivation {
        pname = "repa";
-       version = "3.4.1.3";
-       sha256 = "0w3swrv5rdzkngcv1b6lndsg93y0y0wcxg7asgnxd529jsrdfciy";
-       revision = "2";
-       editedCabalFile = "0kmypfnpzjszdzhpd1lskp0plja8zyr8r2y9xyscx4g5md9hh0zp";
+       version = "3.4.1.4";
+       sha256 = "17m3wl4hvf04fxwm4fflhnv41yl9bm263hnbpxc8x6xqwifplq23";
        libraryHaskellDepends = [
          base bytestring ghc-prim QuickCheck template-haskell vector
        ];
@@ -176566,10 +176148,8 @@ self: {
     ({ mkDerivation, base, repa, vector }:
      mkDerivation {
        pname = "repa-algorithms";
-       version = "3.4.1.2";
-       sha256 = "11lqq5j4g7p1dd47y65mfhzfsj8r27h7qj6qpc43g7kmf7h9gd87";
-       revision = "1";
-       editedCabalFile = "1dj9gq4v9y8818d5vx2zlsdl4fspwi4aywfbminr7dvlljhf415k";
+       version = "3.4.1.3";
+       sha256 = "1bhg1vr85j9mqm9lg1577dvlgzdbkh9f48h0ll6h03jfw7knyn6y";
        libraryHaskellDepends = [ base repa vector ];
        description = "Algorithms using the Repa array library";
        license = stdenv.lib.licenses.bsd3;
@@ -176653,10 +176233,8 @@ self: {
      }:
      mkDerivation {
        pname = "repa-examples";
-       version = "3.4.1.1";
-       sha256 = "16jg56021r7974z66rhfyp246cj0r7h6wabnpl590q3fljwh5039";
-       revision = "3";
-       editedCabalFile = "0vdzcx1fixvgqzmjxra8gfwhzs56qdrzixscq074sddv7jh5iz2f";
+       version = "3.4.1.2";
+       sha256 = "1lqqnk3prvw1pr2wi4rhymb8ij6mjp9mcsvjcllnxv567mz9gr4d";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -176714,8 +176292,8 @@ self: {
        pname = "repa-io";
        version = "3.4.1.1";
        sha256 = "1nm9kfin6fv016r02l74c9hf8pr1rz7s33i833cqpyw8m6bcmnxm";
-       revision = "2";
-       editedCabalFile = "0zslqm87abzrsbrw2dlnsmm8jnpvg7ldi2d83d7p5sih78ksfmmm";
+       revision = "3";
+       editedCabalFile = "027vn7an0hm3ysnzk19y0dbjpah0wpg96dgb55149x1310vwybxl";
        libraryHaskellDepends = [
          base binary bmp bytestring old-time repa vector
        ];
@@ -176900,6 +176478,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "repline_0_2_0_0" = callPackage
+    ({ mkDerivation, base, containers, haskeline, mtl, process }:
+     mkDerivation {
+       pname = "repline";
+       version = "0.2.0.0";
+       sha256 = "1ph21kbbanlcs8n5lwk16g9vqkb98mkbz5mzwrp8j2rls2921izc";
+       libraryHaskellDepends = [ base containers haskeline mtl process ];
+       description = "Haskeline wrapper for GHCi-like REPL interfaces";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "repo-based-blog" = callPackage
     ({ mkDerivation, base, blaze-html, containers, data-default
      , directory, dyre, filepath, filestore, hspec, hspec-discover
@@ -177252,8 +176842,8 @@ self: {
     ({ mkDerivation, rebase }:
      mkDerivation {
        pname = "rerebase";
-       version = "1.2.2";
-       sha256 = "11v6rmz7ql2rdx6mhb3lsal952lwihclfhh0m7fcnii5br0906ks";
+       version = "1.3";
+       sha256 = "16c5r69shz9zg01awjpwh7jpw3hqy81p4hh22rwdm0scdc45n5fa";
        libraryHaskellDepends = [ rebase ];
        description = "Reexports from \"base\" with a bunch of other standard libraries";
        license = stdenv.lib.licenses.mit;
@@ -177730,6 +177320,8 @@ self: {
        pname = "rest-types";
        version = "1.14.1.2";
        sha256 = "0cjxnb4zvj7iafgy9h4wq8817wkm1mvas45xcb9346kwd3yqgvmy";
+       revision = "1";
+       editedCabalFile = "06wjl45ravvw4vjwpl15r6qdpj3va7hpsk04z1bh8xh1by0r2yhz";
        libraryHaskellDepends = [
          aeson base base-compat case-insensitive generic-aeson
          generic-xmlpickler hxt json-schema rest-stringmap text uuid
@@ -177780,15 +177372,15 @@ self: {
      }) {};
 
   "restless-git" = callPackage
-    ({ mkDerivation, base, bytestring, containers, HSH, tasty
+    ({ mkDerivation, base, bytestring, clock, containers, HSH, tasty
      , tasty-hunit, temporary, text, time
      }:
      mkDerivation {
        pname = "restless-git";
-       version = "0.5.0";
-       sha256 = "0rz3aqrlsyld6slxq9lbpf3ydngpkka6ksr4qbl9qq6f42hb0pwi";
+       version = "0.7";
+       sha256 = "0r344f4q9bvqfrh1ls1g90xq7r1p30anwhnwjckz5v26idiynxy3";
        libraryHaskellDepends = [
-         base bytestring containers HSH text time
+         base bytestring clock containers HSH text time
        ];
        testHaskellDepends = [
          base bytestring containers tasty tasty-hunit temporary text
@@ -177890,8 +177482,8 @@ self: {
        pname = "rethinkdb-client-driver";
        version = "0.0.25";
        sha256 = "15l9z7ki81cv97lajxcbddavbd254c5adcdi8yw6df31rmbc378g";
-       revision = "1";
-       editedCabalFile = "1hblwarlxjxq2lp52bjlqwdjsqlwm8ffqi2pj1n8zpidjv6m8330";
+       revision = "3";
+       editedCabalFile = "1g4shgl944fd3qbqkd68jv6vh65plaivci4vjzfs4py7a2p62db1";
        libraryHaskellDepends = [
          aeson base binary bytestring containers hashable mtl network
          old-locale scientific stm template-haskell text time
@@ -179956,16 +179548,12 @@ self: {
      }) {};
 
   "rss" = callPackage
-    ({ mkDerivation, base, HaXml, network, network-uri, old-locale
-     , time
-     }:
+    ({ mkDerivation, base, HaXml, network, network-uri, time }:
      mkDerivation {
        pname = "rss";
-       version = "3000.2.0.6";
-       sha256 = "03crzmi9903w6xsdc00wd9jhsr41b8pglz9n502h68w3jkm6zr4d";
-       libraryHaskellDepends = [
-         base HaXml network network-uri old-locale time
-       ];
+       version = "3000.2.0.7";
+       sha256 = "0z48xb610k1h29rg03q19y08fp78agxp2gr48innw5y3rz00s6ym";
+       libraryHaskellDepends = [ base HaXml network network-uri time ];
        description = "A library for generating RSS 2.0 feeds.";
        license = stdenv.lib.licenses.publicDomain;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -181152,8 +180740,8 @@ self: {
     ({ mkDerivation, base, doctest }:
      mkDerivation {
        pname = "salve";
-       version = "1.0.4";
-       sha256 = "0q9z7smss3lf33lq982ghrq8dhv71cppc73zi61b22f0b076njvd";
+       version = "1.0.6";
+       sha256 = "1vgpj0yg27n6hw1gb763hgxv99hpq7511n2ihys0qdi0ri8bpj1j";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest ];
        description = "Semantic version numbers and constraints";
@@ -183642,14 +183230,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "selda_0_3_3_1" = callPackage
+  "selda_0_3_4_0" = callPackage
     ({ mkDerivation, base, bytestring, exceptions, hashable, mtl
      , psqueues, text, time, unordered-containers
      }:
      mkDerivation {
        pname = "selda";
-       version = "0.3.3.1";
-       sha256 = "1rxwyls59mpmvb5f2l47ak5cnzmws847kgmn8fwbxb69h6a87bwr";
+       version = "0.3.4.0";
+       sha256 = "1ww4v30ywmdshcf4fpgqj5ycd9c197xdlvnby366hzsm7byqq8wj";
        libraryHaskellDepends = [
          base bytestring exceptions hashable mtl psqueues text time
          unordered-containers
@@ -184079,8 +183667,8 @@ self: {
      }:
      mkDerivation {
        pname = "semirings";
-       version = "0.2.1.0";
-       sha256 = "0jmd7qgdwbyzck8x9i4acs9fx1ww26qr8s74raf0fv9bykynzyy2";
+       version = "0.2.1.1";
+       sha256 = "0s28qq6fk2zqzz6y76fa1ddrrmpax99mlkxhz89mw15hx04mnsjp";
        libraryHaskellDepends = [
          base containers hashable integer-gmp unordered-containers vector
        ];
@@ -184928,8 +184516,10 @@ self: {
      }:
      mkDerivation {
        pname = "servant-auth-server";
-       version = "0.4.0.0";
-       sha256 = "0fwa3v7nkyhrwxrp4sf0aikh5mgkdpn2grz8sr4sszhswp2js4ip";
+       version = "0.4.0.1";
+       sha256 = "196dcnh1ycb23x6wb5m1p3iy8bws2grlx5i9mnnsav9n95yf15n9";
+       revision = "1";
+       editedCabalFile = "0l35r80yf1i3hjwls9cvhmzrjkgxfs103qcb1m650y77w1h3xr9p";
        libraryHaskellDepends = [
          aeson base base64-bytestring blaze-builder bytestring
          bytestring-conversion case-insensitive cookie crypto-api
@@ -184947,7 +184537,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-auth-server_0_4_0_1" = callPackage
+  "servant-auth-server_0_4_1_0" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, blaze-builder
      , bytestring, bytestring-conversion, case-insensitive, cookie
      , crypto-api, data-default-class, entropy, hspec, hspec-discover
@@ -184958,8 +184548,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-auth-server";
-       version = "0.4.0.1";
-       sha256 = "196dcnh1ycb23x6wb5m1p3iy8bws2grlx5i9mnnsav9n95yf15n9";
+       version = "0.4.1.0";
+       sha256 = "1fxh50fjrdi5j88qs2vsrflqdwq3pc8s5h424nhjrpc24w277bqi";
        libraryHaskellDepends = [
          aeson base base64-bytestring blaze-builder bytestring
          bytestring-conversion case-insensitive cookie crypto-api
@@ -185964,8 +185554,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-proto-lens";
-       version = "0.1.0.2";
-       sha256 = "1p97yp3x8lhdr9z33f0pdaxj1bqjqc36gs54j69laxfq2650v3nx";
+       version = "0.1.0.3";
+       sha256 = "0j85f64rjvkm2d487ahmg64x77iyldvdwyalbxw960sdv80mjavw";
        libraryHaskellDepends = [
          base bytestring http-media proto-lens servant
        ];
@@ -187892,31 +187482,6 @@ self: {
      }:
      mkDerivation {
        pname = "shakespeare";
-       version = "2.0.15";
-       sha256 = "1vk4b19zvwy4mpwaq9z3l3kfmz75gfyf7alhh0y112gspgpccm23";
-       libraryHaskellDepends = [
-         aeson base blaze-html blaze-markup bytestring containers directory
-         exceptions ghc-prim parsec process scientific template-haskell text
-         time transformers unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base blaze-html blaze-markup bytestring containers directory
-         exceptions ghc-prim hspec HUnit parsec process template-haskell
-         text time transformers
-       ];
-       description = "A toolkit for making compile-time interpolated templates";
-       license = stdenv.lib.licenses.mit;
-       maintainers = with stdenv.lib.maintainers; [ psibi ];
-     }) {};
-
-  "shakespeare_2_0_18" = callPackage
-    ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring
-     , containers, directory, exceptions, ghc-prim, hspec, HUnit, parsec
-     , process, scientific, template-haskell, text, time, transformers
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "shakespeare";
        version = "2.0.18";
        sha256 = "1ny9j1p12c134q5y7k2lg8qgf8sqa328vrb8md9ib44w3xwy6wjr";
        libraryHaskellDepends = [
@@ -187931,7 +187496,6 @@ self: {
        ];
        description = "A toolkit for making compile-time interpolated templates";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
@@ -188290,6 +187854,8 @@ self: {
        pname = "shell-monad";
        version = "0.6.4";
        sha256 = "1wmihv2x4pbz9bkrjyyh4hqwsdmlldmyi5jlgxx6ry6z3jyx9i13";
+       revision = "1";
+       editedCabalFile = "0hm3nlr9a3n18f7y0pnw4q4x3s8y1jxz9mify7hplpj2fq23wpdm";
        libraryHaskellDepends = [ base containers text unix ];
        description = "shell monad";
        license = stdenv.lib.licenses.bsd3;
@@ -189213,8 +188779,8 @@ self: {
     ({ mkDerivation, base, directory, filepath, process }:
      mkDerivation {
        pname = "simple-cmd";
-       version = "0.1.0.0";
-       sha256 = "1d9jaar1in01rwg6if6x9p2hacsdd6k6ygkrza9sbklnr4872msl";
+       version = "0.1.1";
+       sha256 = "0y9ga7m3zykrmgfzys6g7k1z79spp2319ln4sayw8i0abpwh63m9";
        libraryHaskellDepends = [ base directory filepath process ];
        description = "Simple String-based process commands";
        license = stdenv.lib.licenses.bsd3;
@@ -189583,6 +189149,8 @@ self: {
        pname = "simple-pipe";
        version = "0.0.0.29";
        sha256 = "0ilc781520h1x65x3cqdzp2067g7rf7vdlnss8wsg2x1f5cxs6yh";
+       revision = "1";
+       editedCabalFile = "1bp8dwhympy43g43496vgp6dclbfjibdwgqsild681bn83yprsdz";
        libraryHaskellDepends = [
          base bytestring lifted-base monad-control monads-tf stm
          transformers-base
@@ -190145,23 +189713,11 @@ self: {
     ({ mkDerivation, base, singletons }:
      mkDerivation {
        pname = "singleton-nats";
-       version = "0.4.1";
-       sha256 = "1fb87qgh35z31rwzrpclf7d071krffr5vvqr1nwvpgikggfjhlss";
-       libraryHaskellDepends = [ base singletons ];
-       description = "Unary natural numbers relying on the singletons infrastructure";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "singleton-nats_0_4_2" = callPackage
-    ({ mkDerivation, base, singletons }:
-     mkDerivation {
-       pname = "singleton-nats";
        version = "0.4.2";
        sha256 = "1wcwks2acnql5ihkjn2543hgdnlw049z8av8x5dp5r552fq6k0cg";
        libraryHaskellDepends = [ base singletons ];
        description = "Unary natural numbers relying on the singletons infrastructure";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "singleton-typelits" = callPackage
@@ -193346,8 +192902,8 @@ self: {
      }:
      mkDerivation {
        pname = "socket-io";
-       version = "1.3.10";
-       sha256 = "0kq4xk1slgp2c7ik1gvpxwb0kxpwmxy943hxiq4g6bn5a1g3qis2";
+       version = "1.3.11";
+       sha256 = "078zbbhrpfb5a15vr2vjfxdyi1yabd07rg41ajvpcfqcwq4svw95";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring engine-io mtl stm text
          transformers unordered-containers vector
@@ -196502,6 +196058,25 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "stacked-dag" = callPackage
+    ({ mkDerivation, base, containers, doctest, graphviz
+     , optparse-applicative, text
+     }:
+     mkDerivation {
+       pname = "stacked-dag";
+       version = "0.1.1.0";
+       sha256 = "0bvifa45dlqnyybydi5lbwhhnkqv1bvjdp6fvsmjnsf7mi5m0fq3";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers graphviz text ];
+       executableHaskellDepends = [
+         base containers graphviz optparse-applicative text
+       ];
+       testHaskellDepends = [ base containers doctest graphviz text ];
+       description = "Ascii DAG(Directed acyclic graph) for visualization of dataflow";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "staf" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -197455,31 +197030,6 @@ self: {
      }:
      mkDerivation {
        pname = "stm-conduit";
-       version = "4.0.0";
-       sha256 = "0paapljn7nqfzrx889y0n8sszci38mdiaxkgr0bb00ph9246rr7z";
-       libraryHaskellDepends = [
-         async base cereal cereal-conduit conduit conduit-extra directory
-         exceptions monad-loops resourcet stm stm-chans transformers
-         unliftio
-       ];
-       testHaskellDepends = [
-         base conduit directory doctest HUnit QuickCheck resourcet stm
-         stm-chans test-framework test-framework-hunit
-         test-framework-quickcheck2 transformers unliftio
-       ];
-       description = "Introduces conduits to channels, and promotes using conduits concurrently";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "stm-conduit_4_0_1" = callPackage
-    ({ mkDerivation, async, base, cereal, cereal-conduit, conduit
-     , conduit-extra, directory, doctest, exceptions, HUnit, monad-loops
-     , QuickCheck, resourcet, stm, stm-chans, test-framework
-     , test-framework-hunit, test-framework-quickcheck2, transformers
-     , unliftio
-     }:
-     mkDerivation {
-       pname = "stm-conduit";
        version = "4.0.1";
        sha256 = "0hhlxvpp7mah8dcvkknh6skx44jfk3092zz2w52zlr255bkmn3p8";
        libraryHaskellDepends = [
@@ -197494,7 +197044,6 @@ self: {
        ];
        description = "Introduces conduits to channels, and promotes using conduits concurrently";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "stm-containers" = callPackage
@@ -197635,6 +197184,8 @@ self: {
        pname = "stm-lifted";
        version = "0.1.1.0";
        sha256 = "1xp3cfpkhkhpva170vwwrwqm0spwm2g778s98gwbil24icx0p32c";
+       revision = "1";
+       editedCabalFile = "0mh0gdfwky4qxyhxrysqj1sr913pffvf420mf8cl9i53fsx4f255";
        libraryHaskellDepends = [ base stm transformers ];
        description = "Software Transactional Memory lifted to MonadIO";
        license = stdenv.lib.licenses.bsd3;
@@ -197701,23 +197252,11 @@ self: {
     ({ mkDerivation, base, stm }:
      mkDerivation {
        pname = "stm-split";
-       version = "0.0.2";
-       sha256 = "01rqf5b75p3np5ym0am98mibmsw6vrqryad5nwjj9h5ci4wa81iw";
-       libraryHaskellDepends = [ base stm ];
-       description = "TMVars, TVars and TChans with distinguished input and output side";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "stm-split_0_0_2_1" = callPackage
-    ({ mkDerivation, base, stm }:
-     mkDerivation {
-       pname = "stm-split";
        version = "0.0.2.1";
        sha256 = "06c41p01x62p79bzwryjxr34l7cj65gl227fwwsvd9l6ihk8grp8";
        libraryHaskellDepends = [ base stm ];
        description = "TMVars, TVars and TChans with distinguished input and output side";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "stm-stats" = callPackage
@@ -198134,15 +197673,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "stratosphere_0_26_0" = callPackage
+  "stratosphere_0_26_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , hashable, hspec, hspec-discover, lens, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.26.0";
-       sha256 = "126fhymf1n96z40lima2kyh2sm68v63f1b7agmdpp6ihjd96xy0i";
+       version = "0.26.1";
+       sha256 = "0npmnj71gaf61gcxi772h4sgsz68j5jk7v5z3bjc120z7vc1a22v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -198348,10 +197887,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming";
-       version = "0.2.1.0";
-       sha256 = "0xah2cn12dxqc54wa5yxx0g0b9n0xy0czc0c32awql63qhw5w7g1";
-       revision = "2";
-       editedCabalFile = "124nccw28cwzjzl82anbwk7phcyfzlz8yx6wyl4baymzdikvbpgq";
+       version = "0.2.2.0";
+       sha256 = "04fdw4f51yb16bv3b7z97vqxbns8rv2ag2aphglm29jsd527fsss";
        libraryHaskellDepends = [
          base containers ghc-prim mmorph mtl semigroups transformers
          transformers-base
@@ -198589,6 +198126,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "streaming-fft" = callPackage
+    ({ mkDerivation, base, contiguous-fft, ghc-prim, prim-instances
+     , primitive, streaming
+     }:
+     mkDerivation {
+       pname = "streaming-fft";
+       version = "0.1.0.0";
+       sha256 = "1qphhbap1va897ghcr8v4d3nnpcb4w0b422d24isz8rg138m99wi";
+       libraryHaskellDepends = [
+         base contiguous-fft ghc-prim prim-instances primitive streaming
+       ];
+       description = "online streaming fft";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "streaming-histogram" = callPackage
     ({ mkDerivation, base, containers, criterion, tasty, tasty-hunit
      , tasty-quickcheck
@@ -198973,6 +198525,8 @@ self: {
        pname = "strict-concurrency";
        version = "0.2.4.2";
        sha256 = "0vzqhd0sqcs2ci3zw7rm3ydmc9brl2sdc8k3jq47kd9l878xanmz";
+       revision = "1";
+       editedCabalFile = "12m1jbf01d4k7w1wiqcpdsbhlxi6ssbz9nx0ax2mrjjq2l0011ny";
        libraryHaskellDepends = [ base deepseq ];
        description = "Strict concurrency abstractions";
        license = stdenv.lib.licenses.bsd3;
@@ -199044,8 +198598,8 @@ self: {
      }:
      mkDerivation {
        pname = "strict-types";
-       version = "0.1.2";
-       sha256 = "0yapmsia9lmgjgvmcpk9m1z6gc63qic6vvnmnxvmh2k9887n41li";
+       version = "0.1.3";
+       sha256 = "0rkycz6fxwqnx5lz3ycmd29402iw8p4896lrmwksphqyl957c0ks";
        libraryHaskellDepends = [
          array base bytestring containers deepseq hashable text
          unordered-containers vector
@@ -200160,30 +199714,6 @@ self: {
      }) {};
 
   "summoner" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, directory
-     , filepath, generic-deriving, hedgehog, neat-interpolation
-     , optparse-applicative, process, relude, tasty, tasty-discover
-     , tasty-hedgehog, text, time, tomland
-     }:
-     mkDerivation {
-       pname = "summoner";
-       version = "1.0.6";
-       sha256 = "0sb877846l34qp2cjl7gayb517fi5igf9vcmksryasnjxlbhs7vx";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson ansi-terminal base bytestring directory filepath
-         generic-deriving neat-interpolation optparse-applicative process
-         relude text time tomland
-       ];
-       executableHaskellDepends = [ base relude ];
-       testHaskellDepends = [ base hedgehog relude tasty tasty-hedgehog ];
-       testToolDepends = [ tasty-discover ];
-       description = "Tool for creating completely configured production Haskell projects";
-       license = stdenv.lib.licenses.mpl20;
-     }) {};
-
-  "summoner_1_1_0_1" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base-noprelude, bytestring
      , directory, filepath, generic-deriving, gitrev, hedgehog
      , neat-interpolation, optparse-applicative, process, relude, tasty
@@ -200193,6 +199723,8 @@ self: {
        pname = "summoner";
        version = "1.1.0.1";
        sha256 = "0l9v85d9s5n6lz9k2k44pxx8yqqmrxnvz9q0pi5rhvwq53c50x83";
+       revision = "1";
+       editedCabalFile = "1r98ypwda43kb5rqzl4jgrbmmvw4wambpp6bmbximjv2glkz13x7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -200207,7 +199739,6 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Tool for creating completely configured production Haskell projects";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "sump" = callPackage
@@ -202427,6 +201958,8 @@ self: {
        pname = "tabl";
        version = "1.0.3";
        sha256 = "1pxh6g1xjbp37fsab3hl2ldrpnbxdnp4s7pcr3mqxv62qi9b3m2f";
+       revision = "1";
+       editedCabalFile = "15zmgsylfmm8pf355i0ph1dcczy0z6jw0d9dh4xfmfba8ailvcdg";
        libraryHaskellDepends = [ base safe text ];
        description = "Table layout";
        license = "unknown";
@@ -202954,22 +202487,6 @@ self: {
      }:
      mkDerivation {
        pname = "tagsoup";
-       version = "0.14.6";
-       sha256 = "1yv3dbyb0i1yqm796jgc4jj5kxkla1sxb3b2klw5ks182kdx8kjb";
-       libraryHaskellDepends = [ base bytestring containers text ];
-       testHaskellDepends = [
-         base bytestring deepseq directory process QuickCheck time
-       ];
-       description = "Parsing and extracting information from (possibly malformed) HTML/XML documents";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "tagsoup_0_14_7" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, directory
-     , process, QuickCheck, text, time
-     }:
-     mkDerivation {
-       pname = "tagsoup";
        version = "0.14.7";
        sha256 = "09gcy5fd5nsk1b7zdrf7yb329fyr8hq5apd6w3cyh3nxd60z504r";
        libraryHaskellDepends = [ base bytestring containers text ];
@@ -202978,7 +202495,6 @@ self: {
        ];
        description = "Parsing and extracting information from (possibly malformed) HTML/XML documents";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tagsoup-ht" = callPackage
@@ -203777,8 +203293,8 @@ self: {
        pname = "tasty-hspec";
        version = "1.1.5";
        sha256 = "0m0ip2l4rg4pnrvk3mjxkbq2l683psv1x3v9l4rglk2k3pvxq36v";
-       revision = "2";
-       editedCabalFile = "0rya3dnhrci40nsf3fd5jdzn875n3awpy2xzb99jfl9i2cs3krc2";
+       revision = "3";
+       editedCabalFile = "14198y7w9y4h36b6agzmsyappkhz4gmmi6nlzj137z5siwic7igm";
        libraryHaskellDepends = [
          base hspec hspec-core QuickCheck tasty tasty-quickcheck
          tasty-smallcheck
@@ -203979,8 +203495,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-rerun";
-       version = "1.1.12";
-       sha256 = "05lp4zy6lwd916snq6hs43848n62j9vdfl3s8sfivqydrax0vvd8";
+       version = "1.1.13";
+       sha256 = "1lf7i3ifszvghy0v1ahgif08bb1pgf7hhf147yr43d0r0hb2vrgp";
        libraryHaskellDepends = [
          base containers mtl optparse-applicative reducers split stm tagged
          tasty transformers
@@ -203997,29 +203513,6 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-silver";
-       version = "3.1.11";
-       sha256 = "1rvky2661s77wnm8c0jh0hkp3jjp5c1vndv9ilg4s47kw77708az";
-       libraryHaskellDepends = [
-         ansi-terminal async base bytestring containers deepseq directory
-         filepath mtl optparse-applicative process process-extras regex-tdfa
-         semigroups stm tagged tasty temporary text
-       ];
-       testHaskellDepends = [
-         base directory filepath process tasty tasty-hunit temporary
-         transformers
-       ];
-       description = "A fancy test runner, including support for golden tests";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "tasty-silver_3_1_12" = callPackage
-    ({ mkDerivation, ansi-terminal, async, base, bytestring, containers
-     , deepseq, directory, filepath, mtl, optparse-applicative, process
-     , process-extras, regex-tdfa, semigroups, stm, tagged, tasty
-     , tasty-hunit, temporary, text, transformers
-     }:
-     mkDerivation {
-       pname = "tasty-silver";
        version = "3.1.12";
        sha256 = "0s6cz0z8xmhc3gqyb68lkx0j94kagbdgc5gagknmfj6an2i33fly";
        libraryHaskellDepends = [
@@ -204033,7 +203526,6 @@ self: {
        ];
        description = "A fancy test runner, including support for golden tests";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tasty-smallcheck" = callPackage
@@ -205215,8 +204707,8 @@ self: {
      }:
      mkDerivation {
        pname = "term-rewriting";
-       version = "0.2.1.1";
-       sha256 = "0kp6hwlki99aqi4dmm0xp26y9f6zqbxz4a9ch27nyfxg283jmsl1";
+       version = "0.3";
+       sha256 = "03y5s9c9n1mnij3yh5z4c69isg5cbpwczj5sjjvajqaaqf6xy5f3";
        libraryHaskellDepends = [
          ansi-wl-pprint array base containers mtl multiset parsec
          union-find-array
@@ -205233,6 +204725,8 @@ self: {
        pname = "termbox";
        version = "0.1.0";
        sha256 = "1wylp818y65rwdrzmh596sn8csiwjma6gh6wm4fn9m9zb1nvzbsa";
+       revision = "1";
+       editedCabalFile = "0qwab9ayd9b8gmcnvy6pbbp16vwnqdzji9qi71jmgvviayqdlly5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ array base ];
@@ -205740,8 +205234,8 @@ self: {
      }:
      mkDerivation {
        pname = "test-karya";
-       version = "0.0.2";
-       sha256 = "16vrpp8qilhfk47fmcvbvdjfgzjh878kn1d4cq0bacihkv79zmf3";
+       version = "0.0.3";
+       sha256 = "1z9zyva8cqrz04ckg7dny297jp5k961nk1l7pp9kz8z78pd7p19q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -206091,10 +205585,10 @@ self: {
      }:
      mkDerivation {
        pname = "texmath";
-       version = "0.11.1";
-       sha256 = "169jp9y6azpkkcbx0h03kbjg7f58wsk7bs18dn3h9m3sia6bnw99";
+       version = "0.11.1.1";
+       sha256 = "1syvyiw84as79c76mssw1p4d3lrnghnwdyy4ip1w48qd07fadxf6";
        revision = "1";
-       editedCabalFile = "0szpd2kbwb9yqial0q583czy21dnkgyrhizmi7hp38kkhqp7vr9y";
+       editedCabalFile = "0740lpg42r0wdj9hm9gvnzrjka9mqpkzazx2s3qnliiigy39zk96";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -206217,7 +205711,7 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "text-builder_0_6_3" = callPackage
+  "text-builder_0_6_4" = callPackage
     ({ mkDerivation, base, base-prelude, bytestring, criterion
      , deferred-folds, QuickCheck, quickcheck-instances, rerebase
      , semigroups, tasty, tasty-hunit, tasty-quickcheck, text
@@ -206225,8 +205719,8 @@ self: {
      }:
      mkDerivation {
        pname = "text-builder";
-       version = "0.6.3";
-       sha256 = "00i0p155sfii0pl3300xa4af57nhhcz690qr0drwby34xqjy2c1z";
+       version = "0.6.4";
+       sha256 = "0s3rphrp9d3pbagmlzz3xdm4fym38j8vg55wlqw1j1pkbdvm2cgg";
        libraryHaskellDepends = [
          base base-prelude bytestring deferred-folds semigroups text
          transformers
@@ -206305,6 +205799,8 @@ self: {
        pname = "text-format";
        version = "0.3.2";
        sha256 = "1qxs8xyjk8nzzzam62lqqml9s0p08m749jri0lfaa844mnw3frij";
+       revision = "1";
+       editedCabalFile = "155bddqabsxdfzdr7wl67qw9w777c2qkwxgjpx625875cvyhqkpa";
        libraryHaskellDepends = [
          array base double-conversion ghc-prim integer-gmp old-locale text
          time transformers
@@ -206726,8 +206222,8 @@ self: {
      }:
      mkDerivation {
        pname = "text-replace";
-       version = "0.0.0.3";
-       sha256 = "0dj024y7qmkmv31n5h6li6wna3gpayr5gmyl6jiiiprdvild2i1n";
+       version = "0.0.0.4";
+       sha256 = "18hiy0d18wxh8v4zd6vg69fwd8vp9b2yd3ngf04yh9y1bl8wwwhb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers ];
@@ -206773,8 +206269,8 @@ self: {
        pname = "text-show";
        version = "3.7.4";
        sha256 = "068yp74k4ybhvycivnr7x238dl1qdnkjdzf25pcz127294rn9yry";
-       revision = "1";
-       editedCabalFile = "0002han9bgcc8m64a3k5wgfmzlma4j3qxqd7m2illyza19hijsj9";
+       revision = "2";
+       editedCabalFile = "10hmmrm5qjc1lhrqgbh7yyyij9v0rpsv9fakynm5myfcc2ayif82";
        libraryHaskellDepends = [
          array base base-compat-batteries bifunctors bytestring
          bytestring-builder containers contravariant generic-deriving
@@ -206794,6 +206290,39 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "text-show_3_7_5" = callPackage
+    ({ mkDerivation, array, base, base-compat-batteries, base-orphans
+     , bifunctors, bytestring, bytestring-builder, containers
+     , contravariant, criterion, deepseq, deriving-compat
+     , generic-deriving, ghc-boot-th, ghc-prim, hspec, hspec-discover
+     , integer-gmp, nats, QuickCheck, quickcheck-instances, semigroups
+     , tagged, template-haskell, text, th-abstraction, th-lift
+     , transformers, transformers-compat, void
+     }:
+     mkDerivation {
+       pname = "text-show";
+       version = "3.7.5";
+       sha256 = "1by89i3c6qyjh7jjld06wb2sphb236rbvwb1mmvq8f6mxliiyf1r";
+       libraryHaskellDepends = [
+         array base base-compat-batteries bifunctors bytestring
+         bytestring-builder containers contravariant generic-deriving
+         ghc-boot-th ghc-prim integer-gmp nats semigroups tagged
+         template-haskell text th-abstraction th-lift transformers
+         transformers-compat void
+       ];
+       testHaskellDepends = [
+         array base base-compat-batteries base-orphans bytestring
+         bytestring-builder deriving-compat generic-deriving ghc-prim hspec
+         nats QuickCheck quickcheck-instances semigroups tagged
+         template-haskell text transformers transformers-compat
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [ base criterion deepseq ghc-prim text ];
+       description = "Efficient conversion of values into Text";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "text-show-instances" = callPackage
     ({ mkDerivation, base, base-compat-batteries, bifunctors, binary
      , containers, directory, generic-deriving, ghc-boot-th, ghc-prim
@@ -206830,6 +206359,40 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "text-show-instances_3_7" = callPackage
+    ({ mkDerivation, base, base-compat-batteries, bifunctors, binary
+     , containers, directory, generic-deriving, ghc-boot-th, ghc-prim
+     , haskeline, hpc, hspec, hspec-discover, old-locale, old-time
+     , pretty, QuickCheck, quickcheck-instances, random, semigroups
+     , tagged, template-haskell, terminfo, text, text-show, th-orphans
+     , time, transformers, transformers-compat, unix
+     , unordered-containers, vector, xhtml
+     }:
+     mkDerivation {
+       pname = "text-show-instances";
+       version = "3.7";
+       sha256 = "1bwpj8fdrfhmhlgdql59f75bkcfng7fx9m409m8k0dq9ymawmj5c";
+       libraryHaskellDepends = [
+         base base-compat-batteries bifunctors binary containers directory
+         ghc-boot-th haskeline hpc old-locale old-time pretty random
+         semigroups tagged template-haskell terminfo text text-show time
+         transformers transformers-compat unix unordered-containers vector
+         xhtml
+       ];
+       testHaskellDepends = [
+         base base-compat-batteries bifunctors binary containers directory
+         generic-deriving ghc-boot-th ghc-prim haskeline hpc hspec
+         old-locale old-time pretty QuickCheck quickcheck-instances random
+         tagged template-haskell terminfo text-show th-orphans time
+         transformers transformers-compat unix unordered-containers vector
+         xhtml
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Additional instances for text-show";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "text-stream-decode" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, hspec, text
      }:
@@ -207832,33 +207395,6 @@ self: {
      }:
      mkDerivation {
        pname = "these";
-       version = "0.7.4";
-       sha256 = "0jl8ippnsy5zmy52cvpn252hm2g7xqp1zb1xcrbgr00pmdxpvwyw";
-       revision = "8";
-       editedCabalFile = "0j3ps7ngrzgxvkbr5gf8zkfkd1ci4dnfh425ndbr2xp9ipy00nkd";
-       libraryHaskellDepends = [
-         aeson base bifunctors binary containers data-default-class deepseq
-         hashable keys mtl profunctors QuickCheck semigroupoids transformers
-         transformers-compat unordered-containers vector vector-instances
-       ];
-       testHaskellDepends = [
-         aeson base bifunctors binary containers hashable QuickCheck
-         quickcheck-instances tasty tasty-quickcheck transformers
-         unordered-containers vector
-       ];
-       description = "An either-or-both data type & a generalized 'zip with padding' typeclass";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "these_0_7_5" = callPackage
-    ({ mkDerivation, aeson, base, bifunctors, binary, containers
-     , data-default-class, deepseq, hashable, keys, mtl, profunctors
-     , QuickCheck, quickcheck-instances, semigroupoids, tasty
-     , tasty-quickcheck, transformers, transformers-compat
-     , unordered-containers, vector, vector-instances
-     }:
-     mkDerivation {
-       pname = "these";
        version = "0.7.5";
        sha256 = "1yrmxkpka0b6hzb7h2j603rjvyzhldrsq8h7336jr7b0ml929b6v";
        libraryHaskellDepends = [
@@ -207873,7 +207409,6 @@ self: {
        ];
        description = "An either-or-both data type & a generalized 'zip with padding' typeclass";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "these-skinny" = callPackage
@@ -208113,17 +207648,17 @@ self: {
 
   "threepenny-editors" = callPackage
     ({ mkDerivation, base, bifunctors, casing, containers, generics-sop
-     , profunctors, text, threepenny-gui
+     , profunctors, semigroups, text, threepenny-gui
      }:
      mkDerivation {
        pname = "threepenny-editors";
-       version = "0.5.6";
-       sha256 = "0gnbzf3a3xykkf8xc5bnn1wznszyrnllf5s6cb4gqz6cbqnf2mnw";
+       version = "0.5.6.1";
+       sha256 = "0x6x4cfs52lwdcxjyqirrb8ka5pm40l89xsxaz9vvz44hmixqjrj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bifunctors casing containers generics-sop profunctors text
-         threepenny-gui
+         base bifunctors casing containers generics-sop profunctors
+         semigroups text threepenny-gui
        ];
        description = "Composable algebraic editors";
        license = stdenv.lib.licenses.bsd3;
@@ -208646,6 +208181,8 @@ self: {
        pname = "tighttp";
        version = "0.0.0.10";
        sha256 = "0q0177nm71c6sl7qdw0za740m52bhqavkn4b7f6dxwvfw15icxdz";
+       revision = "1";
+       editedCabalFile = "077s20c7cl29h65v5sgh4df5r41574srll20r6cmbdbb339jr4nr";
        libraryHaskellDepends = [
          base bytestring handle-like monads-tf old-locale papillon
          simple-pipe time
@@ -209293,6 +208830,8 @@ self: {
        pname = "timer-wheel";
        version = "0.1.0";
        sha256 = "0wjm767yxf3hg3p80nd0hi0bfvdssq0f3lj9pzkmrsnsqafngs2j";
+       revision = "1";
+       editedCabalFile = "0vk0p21x90wiazss30zkbzr5fnsc4gih9a6xaa9myyycw078600v";
        libraryHaskellDepends = [
          atomic-primops base ghc-prim primitive psqueues
        ];
@@ -210281,6 +209820,8 @@ self: {
        pname = "tomland";
        version = "0.3.1";
        sha256 = "0kpgcqix32m0nik54rynpphm4mpd8r05mspypjiwj9sidjxn11gw";
+       revision = "1";
+       editedCabalFile = "0pxc2065zjvsw3qwxhj2iw4d08f4j6y40nr51k6nxkz1px855gyk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -210307,6 +209848,8 @@ self: {
        pname = "tomland";
        version = "0.4.0";
        sha256 = "1rkdlq6js5ia807wh9hga6y9r92bxj8j5g7nynba1ilc3x70znfr";
+       revision = "1";
+       editedCabalFile = "1d02r17m15s5z4xqyy05s515lbsqxc3kcipk25xvn24inz42qg4r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -210342,6 +209885,27 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "toodles" = callPackage
+    ({ mkDerivation, aeson, base, blaze-html, bytestring, cmdargs
+     , directory, filepath, http-types, megaparsec, MissingH
+     , regex-posix, servant, servant-blaze, servant-server, strict, text
+     , transformers, wai, warp, yaml
+     }:
+     mkDerivation {
+       pname = "toodles";
+       version = "0.1.0.0";
+       sha256 = "0hbmnyym6hrwvacc783hl7s26yqbw8vcify4vna0mmp8y67rwjfx";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson base blaze-html bytestring cmdargs directory filepath
+         http-types megaparsec MissingH regex-posix servant servant-blaze
+         servant-server strict text transformers wai warp yaml
+       ];
+       description = "Manage the TODO entries in your code";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "toolshed" = callPackage
     ({ mkDerivation, array, base, containers, data-default, deepseq
      , directory, extra, filepath, HUnit, QuickCheck, random
@@ -212584,31 +212148,8 @@ self: {
      }:
      mkDerivation {
        pname = "turtle";
-       version = "1.5.10";
-       sha256 = "0c2bfwfj1pf3s4kjr4k9g36166pj9wfpp2rrs5blzh77hjmak4rs";
-       libraryHaskellDepends = [
-         ansi-wl-pprint async base bytestring clock containers directory
-         exceptions foldl hostname managed optional-args
-         optparse-applicative process semigroups stm system-fileio
-         system-filepath temporary text time transformers unix unix-compat
-       ];
-       testHaskellDepends = [ base doctest system-filepath temporary ];
-       benchmarkHaskellDepends = [ base criterion text ];
-       description = "Shell programming, Haskell-style";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "turtle_1_5_11" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
-     , containers, criterion, directory, doctest, exceptions, foldl
-     , hostname, managed, optional-args, optparse-applicative, process
-     , semigroups, stm, system-fileio, system-filepath, temporary, text
-     , time, transformers, unix, unix-compat
-     }:
-     mkDerivation {
-       pname = "turtle";
-       version = "1.5.11";
-       sha256 = "19jn9k70qwhdlzkm8kq1jq37i8ck3q4fnkzn1x75prwhs60rgr0f";
+       version = "1.5.12";
+       sha256 = "0hacgsgs64fgp8k562gyly8i19zz18fj0v1v2m5g26vaj356ys5k";
        libraryHaskellDepends = [
          ansi-wl-pprint async base bytestring clock containers directory
          exceptions foldl hostname managed optional-args
@@ -212619,7 +212160,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Shell programming, Haskell-style";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "turtle-options" = callPackage
@@ -214159,16 +213699,12 @@ self: {
      }) {};
 
   "typelits-witnesses" = callPackage
-    ({ mkDerivation, base, base-compat, constraints, reflection
-     , transformers
-     }:
+    ({ mkDerivation, base, constraints, reflection }:
      mkDerivation {
        pname = "typelits-witnesses";
-       version = "0.3.0.2";
-       sha256 = "0k76ir1c6ga44cj3qmjcsnikzz2nnb2kyzkcirb3ila7yfgwc9kf";
-       libraryHaskellDepends = [
-         base base-compat constraints reflection transformers
-       ];
+       version = "0.3.0.3";
+       sha256 = "078r9pbkzwzm1q821zqisj0wrx1rdk9w8c3ip0g1m5j97zzlmpaf";
+       libraryHaskellDepends = [ base constraints reflection ];
        description = "Existential witnesses, singletons, and classes for operations on GHC TypeLits";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -214391,27 +213927,6 @@ self: {
      }:
      mkDerivation {
        pname = "tzdata";
-       version = "0.1.20180122.0";
-       sha256 = "17fv2jvmbplyaxw4jpq78kqws4cmwc53mlnnjw70vmagx52xh6x3";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bytestring containers deepseq vector
-       ];
-       testHaskellDepends = [
-         base bytestring HUnit test-framework test-framework-hunit
-         test-framework-th unix
-       ];
-       description = "Time zone database (as files and as a module)";
-       license = stdenv.lib.licenses.asl20;
-     }) {};
-
-  "tzdata_0_1_20180501_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, HUnit
-     , test-framework, test-framework-hunit, test-framework-th, unix
-     , vector
-     }:
-     mkDerivation {
-       pname = "tzdata";
        version = "0.1.20180501.0";
        sha256 = "0nnzvkm6r7cq4g14zjxzgxx63sy8pxkg2whfgq6knpzhgran9n45";
        enableSeparateDataOutput = true;
@@ -214424,7 +213939,6 @@ self: {
        ];
        description = "Time zone database (as files and as a module)";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "u2f" = callPackage
@@ -214557,6 +214071,8 @@ self: {
        pname = "udbus";
        version = "0.2.3";
        sha256 = "1ifl280n2ib26j4h7h46av6k7ms0j1n2wy4shbqk5xli5bbj3k9n";
+       revision = "1";
+       editedCabalFile = "036yscknrmc7dcm111bsjk7q0ghb6ih5b6z1ffsqf442dg83x8w7";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -214830,6 +214346,8 @@ self: {
        pname = "unagi-chan";
        version = "0.4.1.0";
        sha256 = "0nya6srsnj7f10jim3iqlmdi71n6fl8ly9sqpccgnivnd8i5iavb";
+       revision = "1";
+       editedCabalFile = "0hfyjcngxj7wksjpkpf20w94xjbisi690bzx9clclqillzcqvq4p";
        libraryHaskellDepends = [ atomic-primops base ghc-prim primitive ];
        testHaskellDepends = [
          atomic-primops base containers ghc-prim primitive
@@ -214903,8 +214421,8 @@ self: {
      }:
      mkDerivation {
        pname = "unbound-generics";
-       version = "0.3.3";
-       sha256 = "06md35jmm8xas8dywxxc62nq4d6gi66m7bm4h3920jpvknqwbvbz";
+       version = "0.3.4";
+       sha256 = "01g8zhf9plgl3fcj57fkma3rkdwmh28rla3r1cr0bfmbd03q3fva";
        libraryHaskellDepends = [
          ansi-wl-pprint base containers contravariant deepseq exceptions mtl
          profunctors template-haskell transformers transformers-compat
@@ -216140,28 +215658,6 @@ self: {
      }:
      mkDerivation {
        pname = "unliftio";
-       version = "0.2.8.0";
-       sha256 = "04i03j1ffa3babh0i79zzvxk7xnm4v8ci0mpfzc4dm7m65cwk1h5";
-       revision = "1";
-       editedCabalFile = "1l9hncv1pavdqyy1zmjfypqd23m243x5fiid7vh1rki71fdlh9z0";
-       libraryHaskellDepends = [
-         async base deepseq directory filepath process stm time transformers
-         unix unliftio-core
-       ];
-       testHaskellDepends = [
-         async base deepseq directory filepath hspec process stm time
-         transformers unix unliftio-core
-       ];
-       description = "The MonadUnliftIO typeclass for unlifting monads to IO (batteries included)";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "unliftio_0_2_8_1" = callPackage
-    ({ mkDerivation, async, base, deepseq, directory, filepath, hspec
-     , process, stm, time, transformers, unix, unliftio-core
-     }:
-     mkDerivation {
-       pname = "unliftio";
        version = "0.2.8.1";
        sha256 = "18v8rzm2nxpck5xvg8qixkarhliy16yswgvj6vbjzq8bn4n6nydz";
        revision = "1";
@@ -216176,7 +215672,6 @@ self: {
        ];
        description = "The MonadUnliftIO typeclass for unlifting monads to IO (batteries included)";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "unliftio-core" = callPackage
@@ -216773,8 +216268,8 @@ self: {
     ({ mkDerivation, base, parsec, safe, utf8-string }:
      mkDerivation {
        pname = "uri";
-       version = "0.1.6.4";
-       sha256 = "02g49smrq4j3wnk4f9w73a80fxva4rrlgw9jqw6p8cqxrb9x6359";
+       version = "0.1.6.5";
+       sha256 = "0gfv54ys1h4ac3dhaypnpnm4w781857n2k8680jflnjbkqlandrr";
        libraryHaskellDepends = [ base parsec safe utf8-string ];
        description = "Library for working with URIs";
        license = stdenv.lib.licenses.bsd3;
@@ -218156,6 +217651,19 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "validity_0_8_0_0" = callPackage
+    ({ mkDerivation, base, hspec }:
+     mkDerivation {
+       pname = "validity";
+       version = "0.8.0.0";
+       sha256 = "0yr342gd8ylji7nqa8w3ssik8qcgb4v3h3j30qf5nbzg900k5rsn";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
+       description = "Validity typeclass";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "validity-aeson" = callPackage
     ({ mkDerivation, aeson, base, validity, validity-scientific
      , validity-text, validity-unordered-containers, validity-vector
@@ -218440,16 +217948,16 @@ self: {
      }) {};
 
   "varying" = callPackage
-    ({ mkDerivation, base, criterion, hspec, QuickCheck, time
-     , transformers
+    ({ mkDerivation, base, contravariant, criterion, hspec, QuickCheck
+     , time, transformers
      }:
      mkDerivation {
        pname = "varying";
-       version = "0.7.0.3";
-       sha256 = "0283cjsl7siyjyvppwpss5nc5jwy0lfx47d0sndqy3dksvx1gm3c";
+       version = "0.7.1.0";
+       sha256 = "0lb76yqhb6jyfi046cy0axadi10n2h155dhi9c8sqrlwyc0n7hlx";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base transformers ];
+       libraryHaskellDepends = [ base contravariant transformers ];
        executableHaskellDepends = [ base time transformers ];
        testHaskellDepends = [ base hspec QuickCheck time transformers ];
        benchmarkHaskellDepends = [ base criterion time transformers ];
@@ -218864,16 +218372,14 @@ self: {
      }:
      mkDerivation {
        pname = "vector-binary-instances";
-       version = "0.2.4";
-       sha256 = "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb";
-       revision = "1";
-       editedCabalFile = "196frl4akhfk7xf1nxzn8lmq99dxhzhsimanswn9yy7ym8zhki4i";
+       version = "0.2.5";
+       sha256 = "0l9zj58a4sbpic1dc9if7iwv4rihya2bj4zb4qfna5fb3pf6plwc";
        libraryHaskellDepends = [ base binary vector ];
        testHaskellDepends = [ base binary tasty tasty-quickcheck vector ];
        benchmarkHaskellDepends = [
          base binary bytestring criterion deepseq vector
        ];
-       description = "Instances of Data.Binary and Data.Serialize for vector";
+       description = "Instances of Data.Binary for vector";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -218977,15 +218483,16 @@ self: {
      }) {};
 
   "vector-extras" = callPackage
-    ({ mkDerivation, base, containers, deferred-folds, hashable
+    ({ mkDerivation, base, containers, deferred-folds, foldl, hashable
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "vector-extras";
-       version = "0.2";
-       sha256 = "0c0wq7ymjhfhxdwkgjd7iwp4vb22495ajrv2ddq6iihc4svakzlw";
+       version = "0.2.1";
+       sha256 = "1s9syai0bfdmwzj5r9snxi5plfl2bwnjyyh8dd2w7jmgdy0pkbiz";
        libraryHaskellDepends = [
-         base containers deferred-folds hashable unordered-containers vector
+         base containers deferred-folds foldl hashable unordered-containers
+         vector
        ];
        description = "Utilities for the \"vector\" library";
        license = stdenv.lib.licenses.mit;
@@ -219141,14 +218648,12 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "vector-space_0_14" = callPackage
+  "vector-space_0_15" = callPackage
     ({ mkDerivation, base, Boolean, MemoTrie, NumInstances }:
      mkDerivation {
        pname = "vector-space";
-       version = "0.14";
-       sha256 = "1kfziqdnsjr540y8iajpfmdkarhmjnc5xm897bswjhrpgyh2k6h3";
-       revision = "2";
-       editedCabalFile = "0rz23fkpx6fgn3pjmmnz0mj5iyq70wv4j9z0c4c9ar7g72dalch7";
+       version = "0.15";
+       sha256 = "03swlbn0x8gfb7bilxmh3zckprjc6v64bildmhwzlimjvd1v8jb8";
        libraryHaskellDepends = [ base Boolean MemoTrie NumInstances ];
        description = "Vector & affine spaces, linear maps, and derivatives";
        license = stdenv.lib.licenses.bsd3;
@@ -219468,6 +218973,8 @@ self: {
        pname = "versions";
        version = "3.5.0";
        sha256 = "1g6db0ah78yk1m5wyxp0az7bzlbxsfkychqjcj423wzx90z7ww4w";
+       revision = "1";
+       editedCabalFile = "13gb4n3bdkbgf199q3px7ihaqycbx76cb8isrs3qn16n67mx5b2f";
        libraryHaskellDepends = [ base deepseq hashable megaparsec text ];
        testHaskellDepends = [
          base base-prelude checkers megaparsec microlens QuickCheck tasty
@@ -220697,23 +220204,22 @@ self: {
     ({ mkDerivation, aeson, ansi-terminal, base, base64-bytestring
      , bytestring, case-insensitive, containers, cookie
      , data-default-class, deepseq, directory, fast-logger, hspec
-     , http-types, HUnit, iproute, lifted-base, network, old-locale
-     , resourcet, streaming-commons, stringsearch, text, time
-     , transformers, unix, unix-compat, vault, void, wai, wai-logger
-     , word8, zlib
+     , http-types, HUnit, iproute, network, old-locale, resourcet
+     , streaming-commons, text, time, transformers, unix, unix-compat
+     , vault, void, wai, wai-logger, word8, zlib
      }:
      mkDerivation {
        pname = "wai-extra";
-       version = "3.0.24.2";
-       sha256 = "07gcgq59dki5drkjci9ka34xjsy3bqilbsx0lsc4905w9jlyfbci";
+       version = "3.0.24.3";
+       sha256 = "0ff4mzxqj3h5zn27q9pq0q89x087dy072z24bczn4irry0zzks21";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson ansi-terminal base base64-bytestring bytestring
          case-insensitive containers cookie data-default-class deepseq
-         directory fast-logger http-types iproute lifted-base network
-         old-locale resourcet streaming-commons stringsearch text time
-         transformers unix unix-compat vault void wai wai-logger word8 zlib
+         directory fast-logger http-types iproute network old-locale
+         resourcet streaming-commons text time transformers unix unix-compat
+         vault void wai wai-logger word8 zlib
        ];
        testHaskellDepends = [
          base bytestring case-insensitive cookie fast-logger hspec
@@ -221628,6 +221134,8 @@ self: {
        pname = "wai-middleware-travisci";
        version = "0.1.0";
        sha256 = "0a58mlgimr6137aiwcdxjk15zy3y58dds4zxffd3vvn0lkzg5jdv";
+       revision = "1";
+       editedCabalFile = "0fd99j9lyb562p3rsdb8d7swg31bwahzhgjm6afijc5f6i5awcw3";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring cryptonite http-types text
          transformers vault wai
@@ -222542,6 +222050,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "weak-bag" = callPackage
+    ({ mkDerivation, base, containers }:
+     mkDerivation {
+       pname = "weak-bag";
+       version = "0.1.0.0";
+       sha256 = "0jh5xv02wlifjqdvm2cr9mi3wjj4f14s1ap5pphin2rdzklhl3rc";
+       libraryHaskellDepends = [ base containers ];
+       description = "Mutable bag backed by weak pointers to each item";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "weather-api" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, HTTP, network
      , network-uri, utf8-string, vector
@@ -223435,40 +222954,6 @@ self: {
      }:
      mkDerivation {
        pname = "websockets";
-       version = "0.12.5.1";
-       sha256 = "1v9zmd34bmh0y02njff4n1vkp1d5jdpq9dlva0z7sr0glv8c3drz";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         attoparsec base base64-bytestring binary bytestring
-         bytestring-builder case-insensitive containers entropy network
-         random SHA streaming-commons text
-       ];
-       testHaskellDepends = [
-         attoparsec base base64-bytestring binary bytestring
-         bytestring-builder case-insensitive containers entropy HUnit
-         network QuickCheck random SHA streaming-commons test-framework
-         test-framework-hunit test-framework-quickcheck2 text
-       ];
-       benchmarkHaskellDepends = [
-         attoparsec base base64-bytestring binary bytestring
-         bytestring-builder case-insensitive containers criterion entropy
-         network random SHA text
-       ];
-       doCheck = false;
-       description = "A sensible and clean way to write WebSocket-capable servers in Haskell";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "websockets_0_12_5_2" = callPackage
-    ({ mkDerivation, attoparsec, base, base64-bytestring, binary
-     , bytestring, bytestring-builder, case-insensitive, containers
-     , criterion, entropy, HUnit, network, QuickCheck, random, SHA
-     , streaming-commons, test-framework, test-framework-hunit
-     , test-framework-quickcheck2, text
-     }:
-     mkDerivation {
-       pname = "websockets";
        version = "0.12.5.2";
        sha256 = "0wacifjbskkfv6xq1sbmc8p60wn767xcjhz8hn8hyijxrrmjabci";
        isLibrary = true;
@@ -223492,7 +222977,6 @@ self: {
        doCheck = false;
        description = "A sensible and clean way to write WebSocket-capable servers in Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "websockets-rpc" = callPackage
@@ -223983,26 +223467,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind";
-       version = "0.1.2.1";
-       sha256 = "1jklfafgv9i2xzsrcz77wzf5p4sxz6cgk1nw3ydzsar5f3jyqxmf";
-       libraryHaskellDepends = [
-         base containers semigroups text transformers
-       ];
-       testHaskellDepends = [
-         base hspec microlens QuickCheck stm transformers
-       ];
-       description = "Dynamic key binding framework";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "wild-bind_0_1_2_2" = callPackage
-    ({ mkDerivation, base, containers, hspec, microlens, QuickCheck
-     , semigroups, stm, text, transformers
-     }:
-     mkDerivation {
-       pname = "wild-bind";
-       version = "0.1.2.2";
-       sha256 = "0s1hwgc1fzr2mgls6na6xsc51iw8xp11ydwgwcaqq527gcij101p";
+       version = "0.1.2.3";
+       sha256 = "1dl3vh4xn6mml2mydapyqwlg872pczgz7lv912skzwnzv55hxg12";
        libraryHaskellDepends = [
          base containers semigroups text transformers
        ];
@@ -224011,7 +223477,6 @@ self: {
        ];
        description = "Dynamic key binding framework";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wild-bind-indicator" = callPackage
@@ -224052,27 +223517,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind-x11";
-       version = "0.2.0.4";
-       sha256 = "0wfhva3xkjykf6nl4ghvmp7lx2g0isg09hhb4m44qg0cgv7rzh5z";
-       libraryHaskellDepends = [
-         base containers fold-debounce mtl semigroups stm text transformers
-         wild-bind X11
-       ];
-       testHaskellDepends = [
-         async base hspec text time transformers wild-bind X11
-       ];
-       description = "X11-specific implementation for WildBind";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "wild-bind-x11_0_2_0_5" = callPackage
-    ({ mkDerivation, async, base, containers, fold-debounce, hspec, mtl
-     , semigroups, stm, text, time, transformers, wild-bind, X11
-     }:
-     mkDerivation {
-       pname = "wild-bind-x11";
-       version = "0.2.0.5";
-       sha256 = "0r9nlv96f1aavigd70r33q11a125kn3zah17z5vvsjlw55br0wxy";
+       version = "0.2.0.6";
+       sha256 = "0dqxcmdx3dinqkpwdnkb5nlc0cvn1gnwril5qmzixzshh03c8va9";
        libraryHaskellDepends = [
          base containers fold-debounce mtl semigroups stm text transformers
          wild-bind X11
@@ -224082,7 +223528,6 @@ self: {
        ];
        description = "X11-specific implementation for WildBind";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wilton-ffi" = callPackage
@@ -225885,31 +225330,10 @@ self: {
      }:
      mkDerivation {
        pname = "x509";
-       version = "1.7.3";
-       sha256 = "0mkk29g32fs70bqkikg83v45h9jig9c8aail3mrdqwxpkfa0yx21";
-       revision = "1";
-       editedCabalFile = "06zzirygvzp0ssdg9blipdwmd0b41p4gxh3ldai7ngjyjsdclwsx";
-       libraryHaskellDepends = [
-         asn1-encoding asn1-parse asn1-types base bytestring containers
-         cryptonite hourglass memory mtl pem
-       ];
-       testHaskellDepends = [
-         asn1-types base bytestring cryptonite hourglass mtl tasty
-         tasty-quickcheck
-       ];
-       description = "X509 reader and writer";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "x509_1_7_4" = callPackage
-    ({ mkDerivation, asn1-encoding, asn1-parse, asn1-types, base
-     , bytestring, containers, cryptonite, hourglass, memory, mtl, pem
-     , tasty, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "x509";
        version = "1.7.4";
        sha256 = "1vm1ir0q7nxcyq65bmw7hbwlmf3frya077v9jikcrh8igg18m717";
+       revision = "1";
+       editedCabalFile = "0p9zzzj118n8ymacj6yp7nkf22d09mj31wnzc1alq26w2ybcrifz";
        libraryHaskellDepends = [
          asn1-encoding asn1-parse asn1-types base bytestring containers
          cryptonite hourglass memory mtl pem
@@ -225920,7 +225344,6 @@ self: {
        ];
        description = "X509 reader and writer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "x509-store" = callPackage
@@ -226680,29 +226103,6 @@ self: {
   "xml-conduit" = callPackage
     ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup
      , bytestring, conduit, conduit-extra, containers
-     , data-default-class, deepseq, hspec, HUnit, monad-control
-     , resourcet, text, transformers, xml-types
-     }:
-     mkDerivation {
-       pname = "xml-conduit";
-       version = "1.8.0";
-       sha256 = "0di0ll2p4ykqnlipf2jrlalirxdf9wkli292245rgr3vcb9vz0h3";
-       libraryHaskellDepends = [
-         attoparsec base blaze-html blaze-markup bytestring conduit
-         conduit-extra containers data-default-class deepseq monad-control
-         resourcet text transformers xml-types
-       ];
-       testHaskellDepends = [
-         base blaze-markup bytestring conduit containers hspec HUnit
-         resourcet text transformers xml-types
-       ];
-       description = "Pure-Haskell utilities for dealing with XML with the conduit package";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "xml-conduit_1_8_0_1" = callPackage
-    ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup
-     , bytestring, conduit, conduit-extra, containers
      , data-default-class, deepseq, doctest, hspec, HUnit, resourcet
      , text, transformers, xml-types
      }:
@@ -226721,7 +226121,6 @@ self: {
        ];
        description = "Pure-Haskell utilities for dealing with XML with the conduit package";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "xml-conduit-decode" = callPackage
@@ -227422,8 +226821,8 @@ self: {
      }:
      mkDerivation {
        pname = "xmobar";
-       version = "0.28";
-       sha256 = "1xh87asg8y35srvp7d3gyyy4bkxsw122liihxgzgm8pqv2z3h4zd";
+       version = "0.28.1";
+       sha256 = "1zrpvr1nr6a55sxmjbacacflrxvnw6aibsdal19wx404r74qjgz5";
        configureFlags = [
          "-fwith_alsa" "-fwith_conduit" "-fwith_datezone" "-fwith_dbus"
          "-fwith_inotify" "-fwith_iwlib" "-fwith_mpd" "-fwith_mpris"
@@ -227460,8 +226859,8 @@ self: {
      }:
      mkDerivation {
        pname = "xmonad";
-       version = "0.14.2";
-       sha256 = "0gqyivpw8z1x73p1l1fpyq1wc013a1c07r6xn1a82liijs91b949";
+       version = "0.15";
+       sha256 = "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -227509,10 +226908,8 @@ self: {
      }:
      mkDerivation {
        pname = "xmonad-contrib";
-       version = "0.14";
-       sha256 = "1660w3xhbfrlq8b8s1rviq2mcn1vyqpypli4023gqxwry52brk6y";
-       revision = "2";
-       editedCabalFile = "0412lfkq9y2s7avzm7ajx5fmyacqrad3yzv9cz9xp5dg66dn5h60";
+       version = "0.15";
+       sha256 = "0r9yzgy67j4mi3dyxx714f0ssk5qzca5kh4zw0fhiz1pf008cxms";
        libraryHaskellDepends = [
          base bytestring containers directory extensible-exceptions filepath
          mtl old-locale old-time process random semigroups unix utf8-string
@@ -227651,13 +227048,12 @@ self: {
      }:
      mkDerivation {
        pname = "xmonad-vanessa";
-       version = "2.0.0.0";
-       sha256 = "1j1sd4lvhcg2g5s4bx9pmjnvsj495lksm3v6p4v8y8g5gc488njf";
+       version = "2.1.0.0";
+       sha256 = "1np1rq4rn7xm1wqj3bvb279xab7vv95vxhnnbrn6xjygzd7iblxx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          alsa-mixer base composition-prelude containers process X11 xmonad
-         xmonad-contrib
        ];
        executableHaskellDepends = [
          base containers xmonad xmonad-contrib xmonad-spotify xmonad-volume
@@ -228176,6 +227572,22 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "yak" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, hspec, lens
+     , template-haskell, text, time
+     }:
+     mkDerivation {
+       pname = "yak";
+       version = "0.1.0.0";
+       sha256 = "1zw522pijmad87986m663myzfkvm40y7w3g04z0f67yfzby4s19a";
+       libraryHaskellDepends = [
+         attoparsec base bytestring lens template-haskell text time
+       ];
+       testHaskellDepends = [ base bytestring hspec ];
+       description = "A strongly typed IRC library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "yall" = callPackage
     ({ mkDerivation, base, categories, transformers }:
      mkDerivation {
@@ -229296,8 +228708,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-fb";
-       version = "1.9.0";
-       sha256 = "1hj6xb7rv28dz8jzygckqg5m5igy78zx0gpc6zmp7g5j0dvinxg8";
+       version = "1.9.1";
+       sha256 = "1368hxic51vnilwp6dygc98yfclqi0vn1vwkxpvdd9vzy73kdj0i";
        libraryHaskellDepends = [
          aeson base bytestring conduit fb http-conduit resourcet shakespeare
          text time transformers unliftio wai yesod-auth yesod-core yesod-fb
@@ -229733,6 +229145,43 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "yesod-core_1_6_7" = callPackage
+    ({ mkDerivation, aeson, async, auto-update, base, blaze-html
+     , blaze-markup, byteable, bytestring, case-insensitive, cereal
+     , clientsession, conduit, conduit-extra, containers, cookie
+     , deepseq, fast-logger, gauge, hspec, hspec-expectations
+     , http-types, HUnit, monad-logger, mtl, network, parsec
+     , path-pieces, primitive, random, resourcet, rio, shakespeare
+     , streaming-commons, template-haskell, text, time, transformers
+     , unix-compat, unliftio, unordered-containers, vector, wai
+     , wai-extra, wai-logger, warp, word8
+     }:
+     mkDerivation {
+       pname = "yesod-core";
+       version = "1.6.7";
+       sha256 = "0smjkfidavm1iggdi4wd47ykbx7jw1qknj6glyjq8cc3p75zc3w7";
+       libraryHaskellDepends = [
+         aeson auto-update base blaze-html blaze-markup byteable bytestring
+         case-insensitive cereal clientsession conduit conduit-extra
+         containers cookie deepseq fast-logger http-types monad-logger mtl
+         parsec path-pieces primitive random resourcet rio shakespeare
+         template-haskell text time transformers unix-compat unliftio
+         unordered-containers vector wai wai-extra wai-logger warp word8
+       ];
+       testHaskellDepends = [
+         async base bytestring clientsession conduit conduit-extra
+         containers cookie hspec hspec-expectations http-types HUnit network
+         path-pieces random resourcet shakespeare streaming-commons
+         template-haskell text transformers unliftio wai wai-extra warp
+       ];
+       benchmarkHaskellDepends = [
+         base blaze-html bytestring gauge shakespeare text
+       ];
+       description = "Creation of type-safe, RESTful web applications";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "yesod-crud" = callPackage
     ({ mkDerivation, base, classy-prelude, containers, MissingH
      , monad-control, persistent, random, safe, stm, uuid, yesod-core
@@ -230322,26 +229771,6 @@ self: {
   "yesod-paginator" = callPackage
     ({ mkDerivation, base, blaze-markup, doctest, hspec, path-pieces
      , persistent, safe, text, transformers, uri-encode, yesod-core
-     , yesod-persistent, yesod-test
-     }:
-     mkDerivation {
-       pname = "yesod-paginator";
-       version = "1.1.0.0";
-       sha256 = "03h9zpplsglblcdf0cm36i3kmmfbhk6iqwq2vsh8nw5ygizcqh0n";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base blaze-markup path-pieces persistent safe text transformers
-         uri-encode yesod-core yesod-persistent
-       ];
-       testHaskellDepends = [ base doctest hspec yesod-core yesod-test ];
-       description = "A pagination approach for yesod";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "yesod-paginator_1_1_0_1" = callPackage
-    ({ mkDerivation, base, blaze-markup, doctest, hspec, path-pieces
-     , persistent, safe, text, transformers, uri-encode, yesod-core
      , yesod-test
      }:
      mkDerivation {
@@ -230357,7 +229786,6 @@ self: {
        testHaskellDepends = [ base doctest hspec yesod-core yesod-test ];
        description = "A pagination approach for yesod";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yesod-paypal-rest" = callPackage
@@ -231131,8 +230559,8 @@ self: {
      }:
      mkDerivation {
        pname = "yet-another-logger";
-       version = "0.3.0";
-       sha256 = "0j58lamn7rxvkl0nha9mqpykwiklfg2hj9rm1cxfjlxciz1wg0ri";
+       version = "0.3.1";
+       sha256 = "1dbwrkya2c7wf5ccsvhnk7isc90pp7vwi8ff6yq15vsn4jbirpsq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index 8dae7c8d72c0..6155e158e9de 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -299,12 +299,7 @@ rec {
     overrideCabal drv (_: { inherit src version; editedCabalFile = null; });
 
   # Get all of the build inputs of a haskell package, divided by category.
-  getBuildInputs = p:
-    (overrideCabal p (args: {
-      passthru = (args.passthru or {}) // {
-        _getBuildInputs = extractBuildInputs p.compiler args;
-      };
-    }))._getBuildInputs;
+  getBuildInputs = p: p.getBuildInputs;
 
   # Extract the haskell build inputs of a haskell package.
   # This is useful to build environments for developing on that
@@ -339,55 +334,6 @@ rec {
                   , ...
                   }: { inherit doCheck doBenchmark; };
 
-  # Divide the build inputs of the package into useful sets.
-  extractBuildInputs = ghc:
-    { setupHaskellDepends ? [], extraLibraries ? []
-    , librarySystemDepends ? [], executableSystemDepends ? []
-    , pkgconfigDepends ? [], libraryPkgconfigDepends ? []
-    , executablePkgconfigDepends ? [], testPkgconfigDepends ? []
-    , benchmarkPkgconfigDepends ? [], testDepends ? []
-    , testHaskellDepends ? [], testSystemDepends ? []
-    , testToolDepends ? [], benchmarkDepends ? []
-    , benchmarkHaskellDepends ? [], benchmarkSystemDepends ? []
-    , benchmarkToolDepends ? [], buildDepends ? []
-    , libraryHaskellDepends ? [], executableHaskellDepends ? []
-    , ...
-    }@args:
-    let inherit (ghcInfo ghc) isGhcjs nativeGhc;
-        inherit (controlPhases ghc args) doCheck doBenchmark;
-        isHaskellPkg = x: x ? isHaskellLibrary;
-        allPkgconfigDepends =
-          pkgconfigDepends ++ libraryPkgconfigDepends ++
-          executablePkgconfigDepends ++
-          lib.optionals doCheck testPkgconfigDepends ++
-          lib.optionals doBenchmark benchmarkPkgconfigDepends;
-        otherBuildInputs =
-          setupHaskellDepends ++ extraLibraries ++
-          librarySystemDepends ++ executableSystemDepends ++
-          allPkgconfigDepends ++
-          lib.optionals doCheck ( testDepends ++ testHaskellDepends ++
-                                  testSystemDepends ++ testToolDepends
-                                ) ++
-          # ghcjs's hsc2hs calls out to the native hsc2hs
-          lib.optional isGhcjs nativeGhc ++
-          lib.optionals doBenchmark ( benchmarkDepends ++
-                                      benchmarkHaskellDepends ++
-                                      benchmarkSystemDepends ++
-                                      benchmarkToolDepends
-                                    );
-        propagatedBuildInputs =
-          buildDepends ++ libraryHaskellDepends ++
-          executableHaskellDepends;
-        allBuildInputs = propagatedBuildInputs ++ otherBuildInputs;
-        isHaskellPartition =
-          lib.partition isHaskellPkg allBuildInputs;
-    in
-      { haskellBuildInputs = isHaskellPartition.right;
-        systemBuildInputs = isHaskellPartition.wrong;
-        inherit propagatedBuildInputs otherBuildInputs
-          allPkgconfigDepends;
-      };
-
   # Utility to convert a directory full of `cabal2nix`-generated files into a
   # package override set
   #
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix
index b6fe399058c3..ef2c33c10915 100644
--- a/pkgs/development/haskell-modules/make-package-set.nix
+++ b/pkgs/development/haskell-modules/make-package-set.nix
@@ -43,7 +43,7 @@ let
   mkDerivationImpl = pkgs.callPackage ./generic-builder.nix {
     inherit stdenv;
     nodejs = buildPackages.nodejs-slim;
-    inherit (self) buildHaskellPackages ghc;
+    inherit (self) buildHaskellPackages ghc shellFor;
     inherit (self.buildHaskellPackages) jailbreak-cabal;
     hscolour = overrideCabal self.buildHaskellPackages.hscolour (drv: {
       isLibrary = false;
@@ -259,20 +259,46 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
     shellFor = { packages, withHoogle ? false, ... } @ args:
       let
         selected = packages self;
-        packageInputs = builtins.map getBuildInputs selected;
-        haskellInputs =
-          builtins.filter
-            (input: pkgs.lib.all (p: input.outPath != p.outPath) selected)
-            (pkgs.lib.concatMap (p: p.haskellBuildInputs) packageInputs);
+
+        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 = "ghc-shell-for-packages";
-        nativeBuildInputs = [(withPackages (_: haskellInputs))] ++ mkDrvArgs.nativeBuildInputs or [];
+        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}";
       });
 
     ghc = ghc // {
diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix
index cb351446301d..11feb1170c2c 100644
--- a/pkgs/development/interpreters/j/default.nix
+++ b/pkgs/development/interpreters/j/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchFromGitHub, readline, libedit }:
+{ stdenv, fetchFromGitHub, readline, libedit, bc }:
 
 stdenv.mkDerivation rec {
   name = "j-${version}";
-  version = "808";
+  version = "807";
   jtype = "release";
   src = fetchFromGitHub {
     owner = "jsoftware";
     repo = "jsource";
     rev = "j${version}-${jtype}";
-    sha256 = "1sshm04p3yznlhfp6vyc7g8qxw95y67vhnh92cmz3lfy69n2q6bf";
+    sha256 = "1qciw2yg9x996zglvj2461qby038x89xcmfb3qyrh3myn8m1nq2n";
   };
 
-  buildInputs = [ readline libedit ];
+  buildInputs = [ readline libedit bc ];
   bits = if stdenv.is64bit then "64" else "32";
   platform =
-    /*if stdenv.isRaspberryPi then "raspberry" else*/
+    if (stdenv.isAarch32 || stdenv.isAarch64) then "raspberry" else
     if stdenv.isLinux then "linux" else
     if stdenv.isDarwin then "darwin" else
     "unknown";
@@ -24,18 +24,24 @@ stdenv.mkDerivation rec {
   buildPhase = ''
     export SOURCE_DIR=$(pwd)
     export HOME=$TMPDIR
-    export JBIN=$HOME/j${bits}/bin
     export JLIB=$SOURCE_DIR/jlibrary
+
+    export jbld=$HOME/bld
+    export jplatform=${platform}
+    export jmake=$SOURCE_DIR/make
+    export jgit=$SOURCE_DIR
+    export JBIN=$jbld/j${bits}/bin
     mkdir -p $JBIN
 
+    echo $OUT_DIR
+
     cd make
 
     patchShebangs .
-    sed -i jvars.sh -e '
-      s@~/gitdev/jsource@$SOURCE_DIR@;
+    sed -i jvars.sh -e "
+      s@~/git/jsource@$SOURCE_DIR@;
       s@~/jbld@$HOME@;
-      s@linux@${platform}@;
-      '
+      "
 
     sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;"
 
@@ -48,7 +54,7 @@ stdenv.mkDerivation rec {
       #define jplatform  "${platform}"
       #define jtype      "${jtype}"         // release,beta,...
       #define jlicense   "GPL3"
-      #define jbuilder   "unknown"  // website or email
+      #define jbuilder   "nixpkgs"  // website or email
       ' > ../jsrc/jversion.h
 
     ./build_jconsole.sh j${bits}
@@ -60,16 +66,17 @@ stdenv.mkDerivation rec {
 
     # Now run the real tests
     cd $SOURCE_DIR/test
-    # for f in *.ijs
-    # do
-    #   echo $f
-    #   $JBIN/jconsole < $f
-    # done
+    for f in *.ijs
+    do
+      echo $f
+      $JBIN/jconsole < $f > /dev/null || echo FAIL && echo PASS
+    done
   '';
 
   installPhase = ''
     mkdir -p "$out"
     cp -r $JBIN "$out/bin"
+    rm $out/bin/*.txt # Remove logs from the bin folder
 
     mkdir -p "$out/share/j"
     cp -r $JLIB/{addons,system} "$out/share/j"
@@ -78,8 +85,8 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "J programming language, an ASCII-based APL successor";
-    maintainers = with maintainers; [ raskin ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ raskin synthetica ];
+    platforms = with platforms; linux ++ darwin;
     license = licenses.gpl3Plus;
     homepage = http://jsoftware.com/;
   };
diff --git a/pkgs/development/libraries/CGAL/default.nix b/pkgs/development/libraries/CGAL/default.nix
index 0de1e35440b9..787c54c1b0a3 100644
--- a/pkgs/development/libraries/CGAL/default.nix
+++ b/pkgs/development/libraries/CGAL/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, boost, gmp, mpfr }:
 
 stdenv.mkDerivation rec {
-  version = "4.12.1";
+  version = "4.13";
   name = "cgal-" + version;
 
   src = fetchFromGitHub {
     owner = "CGAL";
     repo = "releases";
     rev = "CGAL-${version}";
-    sha256 = "0b8wwfnvbayxi18jahfdplkjqr59ynq6phk0kz62gqp8vmwia9d9";
+    sha256 = "1gzfz0fz7q5qyhzwfl3n1f5jrqa1ijq9kjjms7hb0ywpagipq6ax";
   };
 
   # note: optional component libCGAL_ImageIO would need zlib and opengl;
diff --git a/pkgs/development/libraries/agda/agda-stdlib/default.nix b/pkgs/development/libraries/agda/agda-stdlib/default.nix
index bd4270e8b935..12d35e270209 100644
--- a/pkgs/development/libraries/agda/agda-stdlib/default.nix
+++ b/pkgs/development/libraries/agda/agda-stdlib/default.nix
@@ -1,14 +1,14 @@
 { stdenv, agda, fetchFromGitHub, ghcWithPackages }:
 
 agda.mkDerivation (self: rec {
-  version = "0.16";
+  version = "0.16.1";
   name = "agda-stdlib-${version}";
 
   src = fetchFromGitHub {
     repo = "agda-stdlib";
     owner = "agda";
     rev = "v${version}";
-    sha256 = "0kqfx6742vbyyr8glqm5bkvj0z0y0dkaajlw10p3pzidrc17767r";
+    sha256 = "17dv5r3ygmbwwh7k8qaffp2965sv165b47i53ymc0gbfcwr6cy2n";
   };
 
   nativeBuildInputs = [ (ghcWithPackages (self : [ self.filemanip ])) ];
diff --git a/pkgs/development/libraries/appstream-glib/default.nix b/pkgs/development/libraries/appstream-glib/default.nix
index 39b3d6aba6bd..2aacfd07364f 100644
--- a/pkgs/development/libraries/appstream-glib/default.nix
+++ b/pkgs/development/libraries/appstream-glib/default.nix
@@ -4,7 +4,7 @@
 , libuuid, json-glib, meson, gperf, ninja
 }:
 stdenv.mkDerivation rec {
-  name = "appstream-glib-0.7.12";
+  name = "appstream-glib-0.7.13";
 
   outputs = [ "out" "dev" "man" "installedTests" ];
   outputBin = "dev";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "appstream-glib";
     rev = stdenv.lib.replaceStrings ["." "-"] ["_" "_"] name;
-    sha256 = "0kqhm3j0nmf9pp9mpykzs2hg3nr6126ibrq1ap21hpasnq4rzlax";
+    sha256 = "0r1gb806p68axspzwvpn1ygmd6pfc17mncg3i6yazk3n10k5cl06";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/arrow-cpp/darwin.patch b/pkgs/development/libraries/arrow-cpp/darwin.patch
new file mode 100644
index 000000000000..de9b1986ffed
--- /dev/null
+++ b/pkgs/development/libraries/arrow-cpp/darwin.patch
@@ -0,0 +1,11 @@
+diff --git a/cmake_modules/FindPythonLibsNew.cmake b/cmake_modules/FindPythonLibsNew.cmake
+--- a/cmake_modules/FindPythonLibsNew.cmake
++++ b/cmake_modules/FindPythonLibsNew.cmake
+@@ -117,6 +117,7 @@ list(GET _PYTHON_VALUES 6 PYTHON_SIZEOF_VOID_P)
+ list(GET _PYTHON_VALUES 7 PYTHON_LIBRARY_SUFFIX)
+ list(GET _PYTHON_VALUES 8 PYTHON_LIBRARY_PATH)
+ list(GET _PYTHON_VALUES 9 PYTHON_OTHER_LIBS)
++string(REPLACE "-lncurses" "" PYTHON_OTHER_LIBS "${PYTHON_OTHER_LIBS}")
+ 
+ # Make sure the Python has the same pointer-size as the chosen compiler
+ # Skip the check on OS X, it doesn't consistently have CMAKE_SIZEOF_VOID_P defined
diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix
index 952f7435c069..16fc7e0c960d 100644
--- a/pkgs/development/libraries/arrow-cpp/default.nix
+++ b/pkgs/development/libraries/arrow-cpp/default.nix
@@ -2,15 +2,18 @@
 
 stdenv.mkDerivation rec {
   name = "arrow-cpp-${version}";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchurl {
     url = "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
-    sha256 = "16l91fixb5dgx3v6xc73ipn1w1hjgbmijyvs81j7ywzpna2cdcdy";
+    sha256 = "0bc4krapz1kzdm16npzmgdz7zvg9lip6rnqbwph8vfn7zji0fcll";
   };
 
   sourceRoot = "apache-arrow-${version}/cpp";
 
+  # patch to fix python-test
+  patches = [ ./darwin.patch ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [ boost python.pkgs.python python.pkgs.numpy ];
 
diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix
index 813f8c3c9640..288bd9a9dd09 100644
--- a/pkgs/development/libraries/atk/default.nix
+++ b/pkgs/development/libraries/atk/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1z7laf6qwv5zsqcnj222dm5f43c6f3liil0cgx4s4s62xjk1wfnd";
   };
 
diff --git a/pkgs/development/libraries/boehm-gc/7.6.6.nix b/pkgs/development/libraries/boehm-gc/7.6.6.nix
new file mode 100644
index 000000000000..da71e40187f4
--- /dev/null
+++ b/pkgs/development/libraries/boehm-gc/7.6.6.nix
@@ -0,0 +1,74 @@
+{ lib, stdenv, fetchurl, fetchpatch, pkgconfig, libatomic_ops
+, enableLargeConfig ? false # doc: https://github.com/ivmai/bdwgc/blob/v7.6.6/doc/README.macros#L179
+}:
+
+stdenv.mkDerivation rec {
+  name = "boehm-gc-${version}";
+  version = "7.6.6";
+
+  src = fetchurl {
+    urls = [
+      "http://www.hboehm.info/gc/gc_source/gc-${version}.tar.gz"
+      "https://github.com/ivmai/bdwgc/releases/download/v${version}/gc-${version}.tar.gz"
+    ];
+    sha256 = "1p1r015a7jbpvkkbgzv1y8nxrbbp6dg0mq3ksi6ji0qdz3wfss79";
+  };
+
+  buildInputs = [ libatomic_ops ];
+  nativeBuildInputs = [ pkgconfig ];
+
+  outputs = [ "out" "dev" "doc" ];
+  separateDebugInfo = stdenv.isLinux;
+
+  preConfigure = stdenv.lib.optionalString (stdenv.hostPlatform.libc == "musl") ''
+    export NIX_CFLAGS_COMPILE+="-D_GNU_SOURCE -DUSE_MMAP -DHAVE_DL_ITERATE_PHDR"
+  '';
+
+  patches = [ (fetchpatch {
+    url = "https://gitweb.gentoo.org/proj/musl.git/plain/dev-libs/boehm-gc/files/boehm-gc-7.6.0-sys_select.patch";
+    sha256 = "1gydwlklvci30f5dpp5ccw2p2qpph5y41r55wx9idamjlq66fbb3";
+  }) ] ++
+    # https://github.com/ivmai/bdwgc/pull/208
+    lib.optional stdenv.hostPlatform.isRiscV ./riscv.patch;
+
+  configureFlags =
+    [ "--enable-cplusplus" ]
+    ++ lib.optional enableLargeConfig "--enable-large-config"
+    ++ lib.optional (stdenv.hostPlatform.libc == "musl") "--disable-static";
+
+  doCheck = true; # not cross;
+
+  # Don't run the native `strip' when cross-compiling.
+  dontStrip = stdenv.hostPlatform != stdenv.buildPlatform;
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "The Boehm-Demers-Weiser conservative garbage collector for C and C++";
+
+    longDescription = ''
+      The Boehm-Demers-Weiser conservative garbage collector can be used as a
+      garbage collecting replacement for C malloc or C++ new.  It allows you
+      to allocate memory basically as you normally would, without explicitly
+      deallocating memory that is no longer useful.  The collector
+      automatically recycles memory when it determines that it can no longer
+      be otherwise accessed.
+
+      The collector is also used by a number of programming language
+      implementations that either use C as intermediate code, want to
+      facilitate easier interoperation with C libraries, or just prefer the
+      simple collector interface.
+
+      Alternatively, the garbage collector may be used as a leak detector for
+      C or C++ programs, though that is not its primary goal.
+    '';
+
+    homepage = http://hboehm.info/gc/;
+
+    # non-copyleft, X11-style license
+    license = http://hboehm.info/gc/license.txt;
+
+    maintainers = [ ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/cl/default.nix b/pkgs/development/libraries/cl/default.nix
index 7cb75d8de0f3..1890d2b25a0d 100644
--- a/pkgs/development/libraries/cl/default.nix
+++ b/pkgs/development/libraries/cl/default.nix
@@ -1,14 +1,14 @@
 {stdenv, fetchFromGitHub, rebar, erlang, opencl-headers, ocl-icd }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.3";
+  version = "1.2.4";
   name = "cl-${version}";
 
   src = fetchFromGitHub {
     owner = "tonyrog";
     repo = "cl";
     rev = "cl-${version}";
-    sha256 = "1dk0k03z0ipxvrnn0kihph135hriw96jpnd31lbq44k6ckh6bm03";
+    sha256 = "1gwkjl305a0231hz3k0w448dsgbgdriaq764sizs5qfn59nzvinz";
   };
 
   buildInputs = [ erlang rebar opencl-headers ocl-icd ];
diff --git a/pkgs/development/libraries/clutter-gst/default.nix b/pkgs/development/libraries/clutter-gst/default.nix
index a06691d5c715..428114986d1b 100644
--- a/pkgs/development/libraries/clutter-gst/default.nix
+++ b/pkgs/development/libraries/clutter-gst/default.nix
@@ -7,7 +7,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0fnblqm4igdx4rn3681bp1gm1y2i00if3iblhlm0zv6ck9nqlqfq";
   };
 
diff --git a/pkgs/development/libraries/clutter-gtk/default.nix b/pkgs/development/libraries/clutter-gtk/default.nix
index 9759e4904b29..6c8951165313 100644
--- a/pkgs/development/libraries/clutter-gtk/default.nix
+++ b/pkgs/development/libraries/clutter-gtk/default.nix
@@ -10,10 +10,12 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j";
   };
 
+  outputs = [ "out" "dev" ];
+
   propagatedBuildInputs = [ clutter gtk3 ];
   nativeBuildInputs = [ meson ninja pkgconfig gobjectIntrospection ];
 
diff --git a/pkgs/development/libraries/clutter/default.nix b/pkgs/development/libraries/clutter/default.nix
index d8150fd11508..090f85554b66 100644
--- a/pkgs/development/libraries/clutter/default.nix
+++ b/pkgs/development/libraries/clutter/default.nix
@@ -11,10 +11,12 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7";
   };
 
+  outputs = [ "out" "dev" ];
+
   buildInputs = [ gtk3 ];
   nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs =
diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix
index 085bab6475c2..f35335e4be7b 100644
--- a/pkgs/development/libraries/cogl/default.nix
+++ b/pkgs/development/libraries/cogl/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   version = "1.22.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "03f0ha3qk7ca0nnkkcr1garrm1n1vvfqhkz9lwjm592fnv6ii9rr";
   };
 
@@ -31,6 +31,8 @@ in stdenv.mkDerivation rec {
     })
   ];
 
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ pkgconfig libintl ];
 
   configureFlags = [
diff --git a/pkgs/development/libraries/cpp-hocon/default.nix b/pkgs/development/libraries/cpp-hocon/default.nix
index 1f4b43db16c3..f08077a9a3cf 100644
--- a/pkgs/development/libraries/cpp-hocon/default.nix
+++ b/pkgs/development/libraries/cpp-hocon/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "cpp-hocon-${version}";
-  version = "0.1.7";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
-    sha256 = "0mfpz349c3arihvngw1a1gfhwlcw6wiwyc44bghjx1q109w7wm1m";
+    sha256 = "084vsn080z8mp5s54jaq0qdwlx0p62nbw1i0rffkag477h8vq68i";
     rev = version;
     repo = "cpp-hocon";
     owner = "puppetlabs";
diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix
index 1fe3bcf6cede..642063220b2c 100644
--- a/pkgs/development/libraries/gdal/default.nix
+++ b/pkgs/development/libraries/gdal/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, fetchpatch, unzip, libjpeg, libtiff, zlib
 , postgresql, mysql, libgeotiff, pythonPackages, proj, geos, openssl
 , libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat
-, libiconv
+, libiconv, libxml2
 , netcdfSupport ? true, netcdf, hdf5, curl
 }:
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ unzip libjpeg libtiff libpng proj openssl sqlite
-    libspatialite poppler hdf4 qhull giflib expat ]
+    libspatialite poppler hdf4 qhull giflib expat libxml2 ]
   ++ (with pythonPackages; [ python numpy wrapPython ])
   ++ stdenv.lib.optional stdenv.isDarwin libiconv
   ++ stdenv.lib.optionals netcdfSupport [ netcdf hdf5 curl ];
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     "--with-proj=${proj}" # optional
     "--with-geos=${geos}/bin/geos-config"# optional
     "--with-hdf4=${hdf4.dev}" # optional
+    "--with-xml2=${libxml2.dev}/bin/xml2-config" # optional
     (if netcdfSupport then "--with-netcdf=${netcdf}" else "")
   ];
 
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index 3fb50e98c1c8..9fece4cb7a54 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   # TODO: Change back once tests/bug753605-atsize.jpg is part of the dist tarball
   # src = fetchurl {
-  #   url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+  #   url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
   #   sha256 = "0d534ysa6n9prd17wwzisq7mj6qkhwh8wcf8qgin1ar3hbs5ry7z";
   # };
   src = fetchFromGitLab {
diff --git a/pkgs/development/libraries/glib-networking/default.nix b/pkgs/development/libraries/glib-networking/default.nix
index 3deaf28373dd..4ac6e87b9dd7 100644
--- a/pkgs/development/libraries/glib-networking/default.nix
+++ b/pkgs/development/libraries/glib-networking/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "14vw8xwajd7m31bpavg2psk693plhjikwpk8bzf3jl1fmsy11za7";
   };
 
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index f03ddfc48b2e..508a012c6900 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   name = "glib-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/glib/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/glib/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1iqgi90fmpl3l23jm2iv44qp7hqsxvnv7978s18933bvx4bnxvzc";
   };
 
diff --git a/pkgs/development/libraries/gmm/default.nix b/pkgs/development/libraries/gmm/default.nix
index 7f8a2276ef25..6423e1fce981 100644
--- a/pkgs/development/libraries/gmm/default.nix
+++ b/pkgs/development/libraries/gmm/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   name = "gmm-${version}";
-  version = "5.1";
+  version = "5.3";
 
   src = fetchurl {
-    url ="http://download.gna.org/getfem/stable/${name}.tar.gz";
-    sha256 = "0di68vdn34kznf96rnwrpb3bbm3ahaczwxd306s9dx41kcqbzrlh";
+    url = "mirror://savannah/getfem/stable/${name}.tar.gz";
+    sha256 = "0lkjd3n0298w1dli446z320sn7mqdap8h9q31nydkbw2k7b4db46";
   };
 
   meta = with stdenv.lib; {
     description = "Generic C++ template library for sparse, dense and skyline matrices";
-    homepage = http://home.gna.org/getfem/gmm_intro.html;
+    homepage = http://getfem.org/gmm.html;
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index f5ab5005bad4..b2c0a9f89a48 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1y50pbn5qqbcv2h9rkz96wvv5jls2gma9bkqjq6wapmaszx5jw0d";
   };
 
diff --git a/pkgs/development/libraries/gspell/default.nix b/pkgs/development/libraries/gspell/default.nix
index 051228aeb152..0145272c2819 100644
--- a/pkgs/development/libraries/gspell/default.nix
+++ b/pkgs/development/libraries/gspell/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
   outputBin = "dev";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1rdv873ixhwr15jwgc2z6k6y0hj353fqnwsy7zkh0c30qwiiv6l1";
   };
 
diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix
index 27052d1922f6..015843c05393 100644
--- a/pkgs/development/libraries/gtk+/3.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   name = "gtk+3-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk+/${gnome3.versionBranch version}/gtk+-${version}.tar.xz";
+    url = "mirror://gnome/sources/gtk+/${stdenv.lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
     sha256 = "0rv5k8fyi2i19k4zncai6vf429s6zy3kncr8vb6f3m034z0sb951";
   };
 
diff --git a/pkgs/development/libraries/gtksourceview/3.x.nix b/pkgs/development/libraries/gtksourceview/3.x.nix
index fe81c97ab6eb..9e1bc5363a1f 100644
--- a/pkgs/development/libraries/gtksourceview/3.x.nix
+++ b/pkgs/development/libraries/gtksourceview/3.x.nix
@@ -8,7 +8,7 @@ in stdenv.mkDerivation rec {
   version = "3.24.6";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtksourceview/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gtksourceview/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "7aa6bdfebcdc73a763dddeaa42f190c40835e6f8495bb9eb8f78587e2577c188";
   };
 
diff --git a/pkgs/development/libraries/gtksourceview/4.x.nix b/pkgs/development/libraries/gtksourceview/4.x.nix
index 2501e0253b39..7cd9de4b06b1 100644
--- a/pkgs/development/libraries/gtksourceview/4.x.nix
+++ b/pkgs/development/libraries/gtksourceview/4.x.nix
@@ -8,7 +8,7 @@ in stdenv.mkDerivation rec {
   version = "4.0.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtksourceview/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gtksourceview/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "0amkspjsvxr3rjznmnwjwsgw030hayf6bw49ya4nligslwl7lp3f";
   };
 
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 360c1fb41f4e..6bcf72b8a7e6 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1xq105596sk9yram5a143b369wpaiiwc9gz86n0j1kfr7nipkqn4";
   };
 
diff --git a/pkgs/development/libraries/libchamplain/default.nix b/pkgs/development/libraries/libchamplain/default.nix
index e4864aded279..95b1ad074b05 100644
--- a/pkgs/development/libraries/libchamplain/default.nix
+++ b/pkgs/development/libraries/libchamplain/default.nix
@@ -9,10 +9,12 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja";
   };
 
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
 
   propagatedBuildInputs = [ glib gtk3 cairo clutter-gtk sqlite libsoup ];
diff --git a/pkgs/development/libraries/libgtop/default.nix b/pkgs/development/libraries/libgtop/default.nix
index d0be9e25b87e..bab7ede2d6e8 100644
--- a/pkgs/development/libraries/libgtop/default.nix
+++ b/pkgs/development/libraries/libgtop/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "04mnxgzyb26wqk6qij4iw8cxwl82r8pcsna5dg8vz2j3pdi0wv2g";
   };
 
diff --git a/pkgs/development/libraries/libgudev/default.nix b/pkgs/development/libraries/libgudev/default.nix
index 54760549a164..e07622eb13af 100644
--- a/pkgs/development/libraries/libgudev/default.nix
+++ b/pkgs/development/libraries/libgudev/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "ee4cb2b9c573cdf354f6ed744f01b111d4b5bed3503ffa956cefff50489c7860";
   };
 
diff --git a/pkgs/development/libraries/libhttpseverywhere/default.nix b/pkgs/development/libraries/libhttpseverywhere/default.nix
index 91e8e2d50f19..81e5f0fe73ea 100644
--- a/pkgs/development/libraries/libhttpseverywhere/default.nix
+++ b/pkgs/development/libraries/libhttpseverywhere/default.nix
@@ -8,7 +8,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1jmn6i4vsm89q1axlq4ajqkzqmlmjaml9xhw3h9jnal46db6y00w";
   };
 
diff --git a/pkgs/development/libraries/libimagequant/default.nix b/pkgs/development/libraries/libimagequant/default.nix
new file mode 100644
index 000000000000..d232e268f309
--- /dev/null
+++ b/pkgs/development/libraries/libimagequant/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, unzip }:
+
+with stdenv;
+
+let
+  version = "2.12.1";
+in
+  mkDerivation {
+    name = "libimagequant-${version}";
+    src = fetchFromGitHub {
+      owner = "ImageOptim";
+      repo = "libimagequant";
+      rev = "${version}";
+      sha256 = "0r7zgsnhqci2rjilh9bzw43miwp669k6b7q16hdjzrq4nr0xpvbl";
+    };
+
+    preConfigure = ''
+      patchShebangs ./configure
+    '';
+
+    meta = {
+      homepage = https://pngquant.org/lib/;
+      description = "Image quantization library";
+      longDescription = "Small, portable C library for high-quality conversion of RGBA images to 8-bit indexed-color (palette) images.";
+      license = lib.licenses.gpl3Plus;
+      platforms = lib.platforms.unix;
+      maintainers = with lib.maintainers; [ ma9e ];
+    };
+  }
diff --git a/pkgs/development/libraries/libinput/default.nix b/pkgs/development/libraries/libinput/default.nix
index 4c85971cc3ce..e2d7d09b259c 100644
--- a/pkgs/development/libraries/libinput/default.nix
+++ b/pkgs/development/libraries/libinput/default.nix
@@ -16,11 +16,11 @@ in
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "libinput-${version}";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libinput/${name}.tar.xz";
-    sha256 = "1901wxh9k8kz3krfmvacf8xa8r4idfyisw8d80a2ql0bxiw2pb0m";
+    sha256 = "14l6bvgq76ls63qc9c448r435q9xiig0rv8ilx6rnjvlgg64h32p";
   };
 
   outputs = [ "bin" "out" "dev" ];
diff --git a/pkgs/development/libraries/libressl/default.nix b/pkgs/development/libraries/libressl/default.nix
index e30f2b0af5d5..1ac4a7185122 100644
--- a/pkgs/development/libraries/libressl/default.nix
+++ b/pkgs/development/libraries/libressl/default.nix
@@ -46,7 +46,7 @@ in {
   };
 
   libressl_2_8 = generic {
-    version = "2.8.0";
-    sha256 = "1hwxg14d6a9wgk360dvi0wfzw7b327a95wf6xqc3a1h6bfbblaxg";
+    version = "2.8.1";
+    sha256 = "0hnga8j7svdbwcy01mh5pxssk7rxq4g5fc5vxrzhid0x1w2zfjrk";
   };
 }
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index 76b7e7ccaee9..7c94919f344a 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1qsd0j7s97ab5fzy5b5gix5b7hbw57cr46ia8pkcrr4ylsi80li2";
   };
 
diff --git a/pkgs/development/libraries/libsecret/default.nix b/pkgs/development/libraries/libsecret/default.nix
index fde3c7a7b30e..4fc0d6688d4e 100644
--- a/pkgs/development/libraries/libsecret/default.nix
+++ b/pkgs/development/libraries/libsecret/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1cychxc3ff8fp857iikw0n2s13s2mhw2dn1mr632f7w3sn6vvrww";
   };
 
diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix
index 2804486e2f0a..9849e2600bb0 100644
--- a/pkgs/development/libraries/libsoup/default.nix
+++ b/pkgs/development/libraries/libsoup/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   version = "2.62.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "1dkrz1iwsswscayfmjxqv2q00b87snlq9nxdccn5vck0vbinylwy";
   };
 
diff --git a/pkgs/development/libraries/libtap/default.nix b/pkgs/development/libraries/libtap/default.nix
index 2671199ab0e0..99e0ab0a4767 100644
--- a/pkgs/development/libraries/libtap/default.nix
+++ b/pkgs/development/libraries/libtap/default.nix
@@ -14,16 +14,16 @@ stdenv.mkDerivation rec{
   nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ cmake perl ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A library to implement a test protocol";
     longDescription = ''
       libtap is a library to implement the Test Anything Protocol for
       C originally created by Nik Clayton. This is a maintenance
       branch by Shlomi Fish.
     '';
-    homepage = http://www.shlomifish.org/open-source/projects/libtap/;
+    homepage = https://www.shlomifish.org/open-source/projects/libtap/;
     license = licenses.bsd3;
     maintainers = [ maintainers.AndersonTorres ];
-    platforms = stdenv.lib.platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libwnck/3.x.nix b/pkgs/development/libraries/libwnck/3.x.nix
index f2d05d14d693..3137ac2c8f2b 100644
--- a/pkgs/development/libraries/libwnck/3.x.nix
+++ b/pkgs/development/libraries/libwnck/3.x.nix
@@ -7,7 +7,7 @@ in stdenv.mkDerivation rec{
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "010zk9zvydggxqnxfml3scml5yxmpjy90irpqcayrzw26lldr9mg";
   };
 
diff --git a/pkgs/development/libraries/parquet-cpp/api.patch b/pkgs/development/libraries/parquet-cpp/api.patch
new file mode 100644
index 000000000000..3fd567ea098f
--- /dev/null
+++ b/pkgs/development/libraries/parquet-cpp/api.patch
@@ -0,0 +1,12 @@
+diff --git a/src/parquet/arrow/reader.cc b/src/parquet/arrow/reader.cc
+--- a/src/parquet/arrow/reader.cc
++++ b/src/parquet/arrow/reader.cc
+@@ -1421,7 +1421,7 @@ Status StructImpl::DefLevelsToNullArray(std::shared_ptr<Buffer>* null_bitmap_out
+   const int16_t* def_levels_data;
+   size_t def_levels_length;
+   RETURN_NOT_OK(GetDefLevels(&def_levels_data, &def_levels_length));
+-  RETURN_NOT_OK(AllocateEmptyBitmap(pool_, def_levels_length, &null_bitmap));
++  RETURN_NOT_OK(GetEmptyBitmap(pool_, def_levels_length, &null_bitmap));
+   uint8_t* null_bitmap_ptr = null_bitmap->mutable_data();
+   for (size_t i = 0; i < def_levels_length; i++) {
+     if (def_levels_data[i] < struct_def_level_) {
diff --git a/pkgs/development/libraries/parquet-cpp/default.nix b/pkgs/development/libraries/parquet-cpp/default.nix
index e281e604380b..804ddb136f03 100644
--- a/pkgs/development/libraries/parquet-cpp/default.nix
+++ b/pkgs/development/libraries/parquet-cpp/default.nix
@@ -2,13 +2,15 @@
 
 stdenv.mkDerivation rec {
   name = "parquet-cpp-${version}";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "https://github.com/apache/parquet-cpp/archive/apache-${name}.tar.gz";
-    sha256 = "1kn7pjzi5san5f05qbl8l8znqsa3f9cq9bflfr4s2jfwr7k9p2aj";
+    sha256 = "19nwqahc0igr0jfprbf2m86rmzz6zicw4z7b8z832wbsyc904wli";
   };
 
+  patches = [ ./api.patch ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [ boost ];
 
diff --git a/pkgs/development/libraries/physics/apfel/default.nix b/pkgs/development/libraries/physics/apfel/default.nix
new file mode 100644
index 000000000000..3eb4ddaab693
--- /dev/null
+++ b/pkgs/development/libraries/physics/apfel/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, gfortran, lhapdf, python2 }:
+
+stdenv.mkDerivation rec {
+  name = "apfel-${version}";
+  version = "3.0.3";
+
+  src = fetchFromGitHub {
+    owner = "scarrazza";
+    repo = "apfel";
+    rev = version;
+    sha256 = "13dvcc5ba6djflrcy5zf5ikaw8s78zd8ac6ickc0hxhbmx1gjb4j";
+  };
+
+  buildInputs = [ gfortran lhapdf python2 ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A PDF Evolution Library";
+    license     = licenses.gpl3;
+    homepage    = http://apfel.mi.infn.it/;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/development/libraries/physics/apfelgrid/default.nix b/pkgs/development/libraries/physics/apfelgrid/default.nix
new file mode 100644
index 000000000000..6509b04f0113
--- /dev/null
+++ b/pkgs/development/libraries/physics/apfelgrid/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, apfel, applgrid, lhapdf, root }:
+
+stdenv.mkDerivation rec {
+  name = "apfelgrid-${version}";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "nhartland";
+    repo = "APFELgrid";
+    rev = "v${version}";
+    sha256 = "0l0cyxd00kmb5aggzwsxg83ah0qiwav0shbxkxwrz3dvw78n89jk";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ apfel applgrid lhapdf root ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Ultra-fast theory predictions for collider observables";
+    license     = licenses.mit;
+    homepage    = http://nhartland.github.io/APFELgrid/;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/development/libraries/physics/applgrid/bad_code.patch b/pkgs/development/libraries/physics/applgrid/bad_code.patch
new file mode 100644
index 000000000000..c1c8f618fbb3
--- /dev/null
+++ b/pkgs/development/libraries/physics/applgrid/bad_code.patch
@@ -0,0 +1,39 @@
+diff --git a/appl_grid/appl_grid.h b/appl_grid/appl_grid.h
+index 5059622..a0651c9 100644
+--- a/appl_grid/appl_grid.h
++++ b/appl_grid/appl_grid.h
+@@ -56,7 +56,7 @@ public:
+   class exception : public std::exception { 
+   public:
+     exception(const std::string& s) { std::cerr << what() << " " << s << std::endl; }; 
+-    exception(std::ostream& s)      { std::cerr << what() << " " << s << std::endl; }; 
++    exception(std::ostream& s)      { s << what() << " " << std::endl; }; 
+     virtual const char* what() const throw() { return "appl::grid::exception"; }
+   };
+ 
+diff --git a/appl_grid/appl_pdf.h b/appl_grid/appl_pdf.h
+index c71fd84..2525527 100644
+--- a/appl_grid/appl_pdf.h
++++ b/appl_grid/appl_pdf.h
+@@ -51,7 +51,7 @@ public:
+   class exception : public std::exception { 
+   public: 
+     exception(const std::string& s="") { std::cerr << what() << " " << s << std::endl; }; 
+-    exception(std::ostream& s)         { std::cerr << what() << " " << s << std::endl; }; 
++    exception(std::ostream& s)         { s << " " << std::endl; }; 
+     const char* what() const throw() { return "appl::appl_pdf::exception "; }
+   };
+   
+diff --git a/src/appl_igrid.h b/src/appl_igrid.h
+index d25288e..be354df 100644
+--- a/src/appl_igrid.h
++++ b/src/appl_igrid.h
+@@ -52,7 +52,7 @@ private:
+   class exception { 
+   public:
+     exception(const std::string& s) { std::cerr << s << std::endl; }; 
+-    exception(std::ostream& s)      { std::cerr << s << std::endl; }; 
++    exception(std::ostream& s)      { s << std::endl; }; 
+   };
+ 
+   typedef double (igrid::*transform_t)(double) const;
diff --git a/pkgs/development/libraries/physics/applgrid/default.nix b/pkgs/development/libraries/physics/applgrid/default.nix
new file mode 100644
index 000000000000..1ad5dcb8b25b
--- /dev/null
+++ b/pkgs/development/libraries/physics/applgrid/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, gfortran, hoppet, lhapdf, root5 }:
+
+stdenv.mkDerivation rec {
+  name = "applgrid-${version}";
+  version = "1.4.70";
+
+  src = fetchurl {
+    url = "https://www.hepforge.org/archive/applgrid/${name}.tgz";
+    sha256 = "1yw9wrk3vjv84kd3j4s1scfhinirknwk6xq0hvj7x2srx3h93q9p";
+  };
+
+  buildInputs = [ gfortran hoppet lhapdf root5 ];
+
+  patches = [
+    ./bad_code.patch
+  ];
+
+  preConfigure = ''
+    substituteInPlace src/Makefile.in \
+      --replace "-L\$(subst /libgfortran.a, ,\$(FRTLIB) )" "-L${gfortran.cc.lib}/lib"
+  '' + (if stdenv.isDarwin then ''
+    substituteInPlace src/Makefile.in \
+      --replace "gfortran -print-file-name=libgfortran.a" "gfortran -print-file-name=libgfortran.dylib"
+  '' else "");
+
+  enableParallelBuilding = false; # broken
+
+  # Install private headers required by APFELgrid
+  postInstall = ''
+    for header in src/*.h; do
+      install -Dm644 "$header" "$out"/include/appl_grid/"`basename $header`"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The APPLgrid project provides a fast and flexible way to reproduce the results of full NLO calculations with any input parton distribution set in only a few milliseconds rather than the weeks normally required to gain adequate statistics";
+    license     = licenses.gpl3;
+    homepage    = http://applgrid.hepforge.org;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/development/libraries/physics/hoppet/default.nix b/pkgs/development/libraries/physics/hoppet/default.nix
new file mode 100644
index 000000000000..55714afbdce9
--- /dev/null
+++ b/pkgs/development/libraries/physics/hoppet/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, gfortran }:
+
+stdenv.mkDerivation rec {
+  name = "hoppet-${version}";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url = "https://hoppet.hepforge.org/downloads/${name}.tgz";
+    sha256 = "0j7437rh4xxbfzmkjr22ry34xm266gijzj6mvrq193fcsfzipzdz";
+  };
+
+  buildInputs = [ gfortran ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Higher Order Perturbative Parton Evolution Toolkit";
+    license     = licenses.gpl2;
+    homepage    = https://hoppet.hepforge.org;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/development/libraries/physics/mela/default.nix b/pkgs/development/libraries/physics/mela/default.nix
new file mode 100644
index 000000000000..a608a7f6b0f7
--- /dev/null
+++ b/pkgs/development/libraries/physics/mela/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, gfortran }:
+
+stdenv.mkDerivation rec {
+  name = "mela-${version}";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "vbertone";
+    repo = "MELA";
+    rev = version;
+    sha256 = "01sgd4mwx4n58x95brphp4dskqkkx8434bvsr38r5drg9na5nc9y";
+  };
+
+  buildInputs = [ gfortran ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "a Mellin Evolution LibrAry";
+    license     = licenses.gpl3;
+    homepage    = https://github.com/vbertone/MELA;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/development/libraries/physics/qcdnum/default.nix b/pkgs/development/libraries/physics/qcdnum/default.nix
new file mode 100644
index 000000000000..1a3334562641
--- /dev/null
+++ b/pkgs/development/libraries/physics/qcdnum/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, gfortran }:
+
+stdenv.mkDerivation rec {
+  name = "QCDNUM-${version}";
+  version = "17-01-14";
+
+  src = fetchurl {
+    url = "http://www.nikhef.nl/user/h24/qcdnum-files/download/qcdnum${builtins.replaceStrings ["-"] [""] version}.tar.gz";
+    sha256 = "199s6kgmszxgjzd9214mpx3kyplq2q6987sii67s5xkg10ynyv31";
+  };
+
+  nativeBuildInputs = [ gfortran ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "QCDNUM is a very fast QCD evolution program written in FORTRAN77";
+    license     = stdenv.lib.licenses.gpl3;
+    homepage    = https://www.nikhef.nl/~h24/qcdnum/index.html;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/development/libraries/proj/default.nix b/pkgs/development/libraries/proj/default.nix
index 0ebf299a8bfb..55af1d8573a1 100644
--- a/pkgs/development/libraries/proj/default.nix
+++ b/pkgs/development/libraries/proj/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "proj-4.9.3";
+  name = "proj-5.2.0";
 
   src = fetchurl {
-    url = https://download.osgeo.org/proj/proj-4.9.3.tar.gz;
-    sha256 = "1xw5f427xk9p2nbsj04j6m5zyjlyd66sbvl2bkg8hd1kx8pm9139";
+    url = https://download.osgeo.org/proj/proj-5.2.0.tar.gz;
+    sha256 = "0q3ydh2j8qhwlxmnac72pg69rw2znbi5b6k5wama8qmwzycr94gg";
   };
 
   doCheck = stdenv.is64bit;
diff --git a/pkgs/development/libraries/qpdf/default.nix b/pkgs/development/libraries/qpdf/default.nix
index 79deb482161f..456c28503e81 100644
--- a/pkgs/development/libraries/qpdf/default.nix
+++ b/pkgs/development/libraries/qpdf/default.nix
@@ -14,14 +14,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ zlib libjpeg ];
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2018-9918.patch";
-      url = "https://github.com/qpdf/qpdf/commit/b4d6cf6836ce025ba1811b7bbec52680c7204223";
-      sha256 = "0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73";
-    })
-  ];
-
   postPatch = ''
     patchShebangs qpdf/fix-qdf
   '';
diff --git a/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix b/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix
index 888f627baab8..d0be6ae77694 100644
--- a/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix
@@ -3,5 +3,5 @@
 qtModule {
   name = "qtgraphicaleffects";
   qtInputs = [ qtdeclarative ];
-  outputs = [ "out" ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/rarian/default.nix b/pkgs/development/libraries/rarian/default.nix
index 4446226fedef..d0a15e866f7a 100644
--- a/pkgs/development/libraries/rarian/default.nix
+++ b/pkgs/development/libraries/rarian/default.nix
@@ -6,7 +6,7 @@ in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.gz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.gz";
     sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577";
   };
 
diff --git a/pkgs/development/libraries/rlog/default.nix b/pkgs/development/libraries/rlog/default.nix
index f96addffb1ae..f8268b5eb7cd 100644
--- a/pkgs/development/libraries/rlog/default.nix
+++ b/pkgs/development/libraries/rlog/default.nix
@@ -12,5 +12,6 @@ stdenv.mkDerivation {
     homepage = http://www.arg0.net/rlog;
     description = "A C++ logging library used in encfs";
     platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.lgpl3;
   };
 }
diff --git a/pkgs/development/libraries/science/math/zn_poly/default.nix b/pkgs/development/libraries/science/math/zn_poly/default.nix
index 19d63d89834e..ad4d4c017376 100644
--- a/pkgs/development/libraries/science/math/zn_poly/default.nix
+++ b/pkgs/development/libraries/science/math/zn_poly/default.nix
@@ -1,17 +1,25 @@
 { stdenv
-, fetchurl
+, lib
+, fetchFromGitLab
+, fetchpatch
 , gmp
 , python2
+, tune ? false # tune to hardware, impure
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.9";
+  version = "0.9.1";
   pname = "zn_poly";
   name = "${pname}-${version}";
 
-  src = fetchurl {
-    url = "http://web.maths.unsw.edu.au/~davidharvey/code/zn_poly/releases/zn_poly-${version}.tar.gz";
-    sha256 = "1kxl25av7i3v68k32hw5bayrfcvmahmqvs97mlh9g238gj4qb851";
+  # sage has picked up the maintenance (bug fixes and building, not development)
+  # from the original, now unmaintained project which can be found at
+  # http://web.maths.unsw.edu.au/~davidharvey/code/zn_poly/
+  src = fetchFromGitLab {
+    owner = "sagemath";
+    repo = "zn_poly";
+    rev = version;
+    sha256 = "0ra5vy585bqq7g3317iw6fp44iqgqvds3j0l1va6mswimypq4vxb";
   };
 
   buildInputs = [
@@ -22,27 +30,42 @@ stdenv.mkDerivation rec {
     python2 # needed by ./configure to create the makefile
   ];
 
-  libname = "libzn_poly${stdenv.targetPlatform.extensions.sharedLibrary}";
+  # name of library file ("libzn_poly.so")
+  libbasename = "libzn_poly";
+  libext = "${stdenv.targetPlatform.extensions.sharedLibrary}";
 
   makeFlags = [ "CC=cc" ];
 
   # Tuning (either autotuning or with hand-written paramters) is possible
   # but not implemented here.
   # It seems buggy anyways (see homepage).
-  buildFlags = [ "all" libname ];
+  buildFlags = [ "all" "${libbasename}${libext}" ];
 
+  configureFlags = lib.optionals (!tune) [
+    "--disable-tuning"
+  ];
+
+  patches = [
+    # fix format-security by not passing variables directly to printf
+    # https://gitlab.com/sagemath/zn_poly/merge_requests/1
+    (fetchpatch {
+      name = "format-security.patch";
+      url = "https://gitlab.com/timokau/zn_poly/commit/1950900a80ec898d342b8bcafa148c8027649766.patch";
+      sha256 = "1gks9chvsfpc6sg5h3nqqfia4cgvph7jmj9dw67k7dk7kv9y0rk1";
+    })
+  ];
 
   # `make install` fails to install some header files and the lib file.
   installPhase = ''
     mkdir -p "$out/include/zn_poly"
     mkdir -p "$out/lib"
-    cp "${libname}" "$out/lib"
+    cp "${libbasename}"*"${libext}" "$out/lib"
     cp include/*.h "$out/include/zn_poly"
   '';
 
   doCheck = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = http://web.maths.unsw.edu.au/~davidharvey/code/zn_poly/;
     description = "Polynomial arithmetic over Z/nZ";
     license = with licenses; [ gpl3 ];
diff --git a/pkgs/development/libraries/sundials/default.nix b/pkgs/development/libraries/sundials/default.nix
index fc9abdc24c7c..c903b041fd4d 100644
--- a/pkgs/development/libraries/sundials/default.nix
+++ b/pkgs/development/libraries/sundials/default.nix
@@ -3,12 +3,12 @@
 stdenv.mkDerivation rec {
 
   pname = "sundials";
-  version = "3.1.2";
+  version = "3.2.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
   url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz";
-  sha256 = "05p19y3vv0vi3nggrvy6ymqkvhab2dxncl044qj0xnaix2qmp658";
+  sha256 = "1yck1qjw5pw5i58x762vc0adg4g53lsan9xv92hbby5dxjpr1dnj";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/tnt/default.nix b/pkgs/development/libraries/tnt/default.nix
index 23ef997e5ce1..229e4cfaa6c0 100644
--- a/pkgs/development/libraries/tnt/default.nix
+++ b/pkgs/development/libraries/tnt/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = https://math.nist.gov/tnt/;
     description = "Template Numerical Toolkit: C++ headers for array and matrices";
+    license = stdenv.lib.licenses.publicDomain;
     platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/vc/default.nix b/pkgs/development/libraries/vc/default.nix
index e2a2af615b88..7f46702c2e8c 100644
--- a/pkgs/development/libraries/vc/default.nix
+++ b/pkgs/development/libraries/vc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "Vc-${version}";
-  version = "1.3.3";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "VcDevel";
     repo = "Vc";
     rev = version;
-    sha256 = "0y4riz2kiw6a9w2zydj6x0vhy2qc9v17wspq3n2q88nbas72yd2m";
+    sha256 = "1jwwp3g8pqngdakqy3dxy3vgzh0gla5wvwqqlfvqdgsw6455xhm7";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 30291a180226..8f57a0bf1b71 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     description = "A small, fast, portable implementation of TLS/SSL for embedded devices";
     homepage    = "https://www.wolfssl.com/";
     platforms   = platforms.all;
+    license = stdenv.lib.licenses.gpl2;
     maintainers = with maintainers; [ mcmtroffaes ];
   };
 }
diff --git a/pkgs/development/mobile/androidenv/platform-tools.nix b/pkgs/development/mobile/androidenv/platform-tools.nix
index 22b5cd81f870..2cfb11bffbca 100644
--- a/pkgs/development/mobile/androidenv/platform-tools.nix
+++ b/pkgs/development/mobile/androidenv/platform-tools.nix
@@ -6,16 +6,16 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "26.0.2";
+  version = "28.0.1";
   name = "android-platform-tools-r${version}";
   src = if (stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux")
     then fetchurl {
       url = "https://dl.google.com/android/repository/platform-tools_r${version}-linux.zip";
-      sha256 = "0695npvxljbbh8xwfm65k34fcpyfkzvfkssgnp46wkmnq8w5mcb3";
+      sha256 = "14kkr9xib5drjjd0bclm0jn3f5xlmlg652mbv4xd83cv7a53a49y";
     }
     else if stdenv.hostPlatform.system == "x86_64-darwin" then fetchurl {
       url = "https://dl.google.com/android/repository/platform-tools_r${version}-darwin.zip";
-      sha256 = "0gy7apw9pmnnm41z6ywglw5va4ghmny4j57778may4q7ar751l56";
+      sha256 = "117syrddq1haicwyjzd1p4pfphj0wldjs7w10fpk3n2b7yp37j1v";
     }
     else throw "System ${stdenv.hostPlatform.system} not supported!";
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
     ${stdenv.lib.optionalString (stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux")
       ''
-        for i in adb dmtracedump fastboot hprof-conv sqlite3
+        for i in adb dmtracedump e2fsdroid fastboot hprof-conv make_f2fs mke2fs sload_f2fs sqlite3
         do
             patchelf --set-interpreter ${stdenv.cc.libc.out}/lib/ld-linux-x86-64.so.2 $i
             patchelf --set-rpath ${stdenv.cc.cc.lib}/lib:`pwd`/lib64 $i
diff --git a/pkgs/development/node-packages/default-v8.nix b/pkgs/development/node-packages/default-v8.nix
index 0144400859ab..020992c86844 100644
--- a/pkgs/development/node-packages/default-v8.nix
+++ b/pkgs/development/node-packages/default-v8.nix
@@ -16,6 +16,10 @@ nodePackages // {
     '';
   };
 
+  jshint = nodePackages.jshint.override {
+    buildInputs = [ pkgs.phantomjs2 ];
+  };
+
   dat = nodePackages.dat.override {
     buildInputs = [ nodePackages.node-gyp-build ];
   };
@@ -103,4 +107,8 @@ nodePackages // {
     dontNpmInstall = true; # We face an error with underscore not found, but the package will work fine if we ignore this.
   };
 
+  webtorrent-cli = nodePackages.webtorrent-cli.override {
+    buildInputs = [ nodePackages.node-gyp-build ];
+  };
+
 }
diff --git a/pkgs/development/node-packages/node-packages-v8.json b/pkgs/development/node-packages/node-packages-v8.json
index a754f3bef61e..40d70f198abf 100644
--- a/pkgs/development/node-packages/node-packages-v8.json
+++ b/pkgs/development/node-packages/node-packages-v8.json
@@ -104,6 +104,7 @@
 , "sinopia"
 , "sloc"
 , "smartdc"
+, "snyk"
 , "socket.io"
 , "stackdriver-statsd-backend"
 , "statsd"
diff --git a/pkgs/development/node-packages/node-packages-v8.nix b/pkgs/development/node-packages/node-packages-v8.nix
index 287623d03e43..c419a0db44e1 100644
--- a/pkgs/development/node-packages/node-packages-v8.nix
+++ b/pkgs/development/node-packages/node-packages-v8.nix
@@ -58,22 +58,22 @@ let
         sha512 = "UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==";
       };
     };
-    "@babel/runtime-7.1.1" = {
+    "@babel/runtime-7.1.2" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.1.1";
+      version = "7.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.1.tgz";
-        sha512 = "5ruvezIb2ccAGj538SRRz6YyZOAVubhUfOq+57LuGd9ADAdiqGWYk1DQ0ReVEdvaAfZfS9+kK3N+BwAuJlzzjQ==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz";
+        sha512 = "Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==";
       };
     };
-    "@babel/runtime-corejs2-7.1.1" = {
+    "@babel/runtime-corejs2-7.1.2" = {
       name = "_at_babel_slash_runtime-corejs2";
       packageName = "@babel/runtime-corejs2";
-      version = "7.1.1";
+      version = "7.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.1.1.tgz";
-        sha512 = "J36jrmX2YeGHx+mIF/KV6By0XS4uCxt8JveYnx4LZaCkXDLopanQmbH7kp4VhSolU6nz3cggwCfkbFWwfxQI3Q==";
+        url = "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.1.2.tgz";
+        sha512 = "drxaPByExlcRDKW4ZLubUO4ZkI8/8ax9k9wve1aEthdLKFzjB7XRkOQ0xoTIWGxqdDnWDElkjYq77bt7yrcYJQ==";
       };
     };
     "@babel/types-7.0.0-beta.38" = {
@@ -1048,13 +1048,13 @@ let
         sha512 = "A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==";
       };
     };
-    "@types/node-10.11.2" = {
+    "@types/node-10.11.3" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.11.2";
+      version = "10.11.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.11.2.tgz";
-        sha512 = "XubfQDIg88PGJ7netQPf3QOKHF7Xht4WXGtg5W7cGBeQs9ETbYKwfchR9o+tRRA9iLTQ7nAre85M205JbYsjJA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-10.11.3.tgz";
+        sha512 = "3AvcEJAh9EMatxs+OxAlvAEs7OTy6AG94mcH1iqyVDwVVndekLxzwkWQ/Z4SDbY6GO2oyUXyWW8tQ4rENSSQVQ==";
       };
     };
     "@types/node-8.10.30" = {
@@ -1561,6 +1561,15 @@ let
         sha512 = "T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==";
       };
     };
+    "acorn-6.0.2" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-6.0.2.tgz";
+        sha512 = "GXmKIvbrN3TV7aVqAzVFaMW8F8wzVX7voEBRO3bDA64+EX37YSayggRJP5Xig6HYHBkWKpFg9W5gg6orklubhg==";
+      };
+    };
     "acorn-dynamic-import-3.0.0" = {
       name = "acorn-dynamic-import";
       packageName = "acorn-dynamic-import";
@@ -1606,13 +1615,22 @@ let
         sha512 = "JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==";
       };
     };
-    "acorn-node-1.5.2" = {
+    "acorn-node-1.6.0" = {
       name = "acorn-node";
       packageName = "acorn-node";
-      version = "1.5.2";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-node/-/acorn-node-1.6.0.tgz";
+        sha512 = "ZsysjEh+Y3i14f7YXCAKJy99RXbd56wHKYBzN4FlFtICIZyFpYwK6OwNJhcz8A/FMtxoUZkJofH1v9KIfNgWmw==";
+      };
+    };
+    "acorn-walk-6.1.0" = {
+      name = "acorn-walk";
+      packageName = "acorn-walk";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-node/-/acorn-node-1.5.2.tgz";
-        sha512 = "krFKvw/d1F17AN3XZbybIUzEY4YEPNiGo05AfP3dBlfVKrMHETKpgjpuZkSF8qDNt9UkQcqj7am8yJLseklCMg==";
+        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.0.tgz";
+        sha512 = "ugTb7Lq7u4GfWSqqpwE0bGyoBZNMTok/zDBXxfEG0QM50jNlGhIWjRC1pPN7bvV1anhF+bs+/gNcRw+o55Evbg==";
       };
     };
     "active-x-obfuscator-0.0.1" = {
@@ -3006,7 +3024,7 @@ let
       packageName = "async";
       version = "0.1.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-0.1.22.tgz";
+        url = "http://registry.npmjs.org/async/-/async-0.1.22.tgz";
         sha1 = "0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061";
       };
     };
@@ -3015,7 +3033,7 @@ let
       packageName = "async";
       version = "0.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-0.2.10.tgz";
+        url = "http://registry.npmjs.org/async/-/async-0.2.10.tgz";
         sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
       };
     };
@@ -3024,7 +3042,7 @@ let
       packageName = "async";
       version = "0.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-0.2.7.tgz";
+        url = "http://registry.npmjs.org/async/-/async-0.2.7.tgz";
         sha1 = "44c5ee151aece6c4bf5364cfc7c28fe4e58f18df";
       };
     };
@@ -3033,7 +3051,7 @@ let
       packageName = "async";
       version = "0.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-0.2.9.tgz";
+        url = "http://registry.npmjs.org/async/-/async-0.2.9.tgz";
         sha1 = "df63060fbf3d33286a76aaf6d55a2986d9ff8619";
       };
     };
@@ -3042,7 +3060,7 @@ let
       packageName = "async";
       version = "0.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-0.9.2.tgz";
+        url = "http://registry.npmjs.org/async/-/async-0.9.2.tgz";
         sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
       };
     };
@@ -3051,7 +3069,7 @@ let
       packageName = "async";
       version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-1.0.0.tgz";
+        url = "http://registry.npmjs.org/async/-/async-1.0.0.tgz";
         sha1 = "f8fc04ca3a13784ade9e1641af98578cfbd647a9";
       };
     };
@@ -3060,7 +3078,7 @@ let
       packageName = "async";
       version = "1.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-1.4.2.tgz";
+        url = "http://registry.npmjs.org/async/-/async-1.4.2.tgz";
         sha1 = "6c9edcb11ced4f0dd2f2d40db0d49a109c088aab";
       };
     };
@@ -3069,7 +3087,7 @@ let
       packageName = "async";
       version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz";
+        url = "http://registry.npmjs.org/async/-/async-1.5.2.tgz";
         sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
       };
     };
@@ -3375,7 +3393,7 @@ let
       packageName = "azure-arm-hdinsight";
       version = "0.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/azure-arm-hdinsight/-/azure-arm-hdinsight-0.2.2.tgz";
+        url = "http://registry.npmjs.org/azure-arm-hdinsight/-/azure-arm-hdinsight-0.2.2.tgz";
         sha1 = "3daeade6d26f6b115d8598320541ad2dcaa9516d";
       };
     };
@@ -4842,7 +4860,7 @@ let
       packageName = "browserify-cache-api";
       version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz";
+        url = "http://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz";
         sha1 = "96247e853f068fd6e0d45cc73f0bb2cd9778ef02";
       };
     };
@@ -4869,7 +4887,7 @@ let
       packageName = "browserify-incremental";
       version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz";
+        url = "http://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz";
         sha1 = "0713cb7587247a632a9f08cf1bd169b878b62a8a";
       };
     };
@@ -8299,7 +8317,7 @@ let
       packageName = "csv";
       version = "0.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv/-/csv-0.4.6.tgz";
+        url = "http://registry.npmjs.org/csv/-/csv-0.4.6.tgz";
         sha1 = "8dbae7ddfdbaae62c1ea987c3e0f8a9ac737b73d";
       };
     };
@@ -8308,7 +8326,7 @@ let
       packageName = "csv-generate";
       version = "0.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv-generate/-/csv-generate-0.0.6.tgz";
+        url = "http://registry.npmjs.org/csv-generate/-/csv-generate-0.0.6.tgz";
         sha1 = "97e4e63ae46b21912cd9475bc31469d26f5ade66";
       };
     };
@@ -11022,13 +11040,13 @@ let
         sha512 = "dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==";
       };
     };
-    "event-stream-4.0.0" = {
+    "event-stream-4.0.1" = {
       name = "event-stream";
       packageName = "event-stream";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/event-stream/-/event-stream-4.0.0.tgz";
-        sha512 = "DOB0pW11hF+A572U9vmYbQuLVvzXb2ZQhP14wAhMesOLoWVmWNKZ05niYwgUEEO7Ex+lbPpsqT+pch4O7Ijqmg==";
+        url = "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz";
+        sha512 = "qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==";
       };
     };
     "event-to-promise-0.8.0" = {
@@ -16936,13 +16954,13 @@ let
         sha1 = "06d4912255093419477d425633606e0e90782967";
       };
     };
-    "joi-13.6.0" = {
+    "joi-13.7.0" = {
       name = "joi";
       packageName = "joi";
-      version = "13.6.0";
+      version = "13.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/joi/-/joi-13.6.0.tgz";
-        sha512 = "E4QB0yRgEa6ZZKcSHJuBC+QeAwy+akCG0Bsa9edLqljyhlr+GuGDSmXYW1q7sj/FuAPy+ECUI3evVtK52tVfwg==";
+        url = "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz";
+        sha512 = "xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==";
       };
     };
     "jquery-3.3.1" = {
@@ -17085,7 +17103,7 @@ let
       packageName = "jsdom";
       version = "7.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz";
+        url = "http://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz";
         sha1 = "40b402770c2bda23469096bee91ab675e3b1fc6e";
       };
     };
@@ -17788,7 +17806,7 @@ let
       packageName = "kind-of";
       version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz";
+        url = "http://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz";
         sha1 = "140a3d2d41a36d2efcfa9377b62c24f8495a5c44";
       };
     };
@@ -17797,7 +17815,7 @@ let
       packageName = "kind-of";
       version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz";
+        url = "http://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz";
         sha1 = "018ec7a4ce7e3a86cb9141be519d24c8faa981b5";
       };
     };
@@ -21640,7 +21658,7 @@ let
       packageName = "nan";
       version = "0.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-0.3.2.tgz";
+        url = "http://registry.npmjs.org/nan/-/nan-0.3.2.tgz";
         sha1 = "0df1935cab15369075ef160ad2894107aa14dc2d";
       };
     };
@@ -21649,7 +21667,7 @@ let
       packageName = "nan";
       version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-1.0.0.tgz";
+        url = "http://registry.npmjs.org/nan/-/nan-1.0.0.tgz";
         sha1 = "ae24f8850818d662fcab5acf7f3b95bfaa2ccf38";
       };
     };
@@ -21658,7 +21676,7 @@ let
       packageName = "nan";
       version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz";
+        url = "http://registry.npmjs.org/nan/-/nan-2.1.0.tgz";
         sha1 = "020a7ccedc63fdee85f85967d5607849e74abbe8";
       };
     };
@@ -21667,17 +21685,17 @@ let
       packageName = "nan";
       version = "2.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz";
+        url = "http://registry.npmjs.org/nan/-/nan-2.10.0.tgz";
         sha512 = "bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==";
       };
     };
-    "nan-2.11.0" = {
+    "nan-2.11.1" = {
       name = "nan";
       packageName = "nan";
-      version = "2.11.0";
+      version = "2.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz";
-        sha512 = "F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==";
+        url = "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz";
+        sha512 = "iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==";
       };
     };
     "nan-2.5.1" = {
@@ -21707,13 +21725,13 @@ let
         sha512 = "N1IBreECNaxmsaOLMqqm01K7XIp+sMvoVX8mvmT/p1VjM2FLcBU0lj0FalKooi2/2i+ph9WsEoEogOJevqQ6LQ==";
       };
     };
-    "nanoid-1.2.4" = {
+    "nanoid-1.2.5" = {
       name = "nanoid";
       packageName = "nanoid";
-      version = "1.2.4";
+      version = "1.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanoid/-/nanoid-1.2.4.tgz";
-        sha512 = "VbM1HbXvDxZhcONUEJ0olXwg5MgOWS89KPL0PlchtB9NJ2dOTva64RR3fypJuEMQffJ7b1rjcPyR39SsV2W5PA==";
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-1.2.5.tgz";
+        sha512 = "mOYdCQS3xdgu81Hg3EQEhORykMk53Pkzg15Y6I+O9T3db9qHPf9z6nXzQBCUaHXlQs57eRKotDTzYlYACL+5uA==";
       };
     };
     "nanolru-1.0.0" = {
@@ -22437,7 +22455,7 @@ let
       packageName = "nodemailer";
       version = "0.3.35";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nodemailer/-/nodemailer-0.3.35.tgz";
+        url = "http://registry.npmjs.org/nodemailer/-/nodemailer-0.3.35.tgz";
         sha1 = "4d38cdc0ad230bdf88cc27d1256ef49fcb422e19";
       };
     };
@@ -22446,7 +22464,7 @@ let
       packageName = "nodemailer";
       version = "1.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nodemailer/-/nodemailer-1.11.0.tgz";
+        url = "http://registry.npmjs.org/nodemailer/-/nodemailer-1.11.0.tgz";
         sha1 = "4e69cb39b03015b1d1ef0c78a815412b9e976f79";
       };
     };
@@ -23324,13 +23342,13 @@ let
         sha1 = "067428230fd67443b2794b22bba528b6867962d4";
       };
     };
-    "ono-4.0.8" = {
+    "ono-4.0.9" = {
       name = "ono";
       packageName = "ono";
-      version = "4.0.8";
+      version = "4.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ono/-/ono-4.0.8.tgz";
-        sha512 = "x7IM7JLrarP9WxfjDHTBs6io1D1ixEZnhKqnjMnwz+9waPZSapkGYe7jBAqnMTL+HAMfsN6rSHW3Pi+C/9dyjg==";
+        url = "https://registry.npmjs.org/ono/-/ono-4.0.9.tgz";
+        sha512 = "HuSv0Z//JsX3246ykva50NDq2dw2UOaUKRK/CrD3UN96FQ3kr9msI5wR0lMezAIKgfN9+utK+iDfWzj1df3TZg==";
       };
     };
     "open-0.0.2" = {
@@ -26237,7 +26255,7 @@ let
       packageName = "pump";
       version = "0.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pump/-/pump-0.3.5.tgz";
+        url = "http://registry.npmjs.org/pump/-/pump-0.3.5.tgz";
         sha1 = "ae5ff8c1f93ed87adc6530a97565b126f585454b";
       };
     };
@@ -29031,13 +29049,13 @@ let
         sha512 = "Wvre/Jq5vgoz31Z9stYWPLn0PqRqmBDpFSdypAnHu5AvRVCYPRYGnvryNLiXu8GOBNDH82J2FRHUGMjjHUpXFw==";
       };
     };
-    "simple-git-1.102.0" = {
+    "simple-git-1.103.0" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "1.102.0";
+      version = "1.103.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-1.102.0.tgz";
-        sha512 = "ox/EDIYtyxG9pFBuboxnmR1FFFS2vsrJejuble9d2W0EWvvMB02/ruMUHp1ROPS0OH5Nzr9+/W7JkRRRXDMs8Q==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-1.103.0.tgz";
+        sha512 = "5QKrOtoXLTA3CdFG//8ZIGIVIVRRMBfSyMXDn1t3y+TOf+Kg39mfzfU4t0CRJBcxBGynjNWVwsx6W04+biIUmg==";
       };
     };
     "simple-lru-cache-0.0.2" = {
@@ -30246,13 +30264,13 @@ let
         sha512 = "LyH5Y/U7xvafmAuG1puyhNv4G3Ew9xC67dYgRX0wwbUf5iT422WB1Cvat9qGFAu3/BQbdctXtdEQPxaAn0+hYA==";
       };
     };
-    "ssb-config-2.3.2" = {
+    "ssb-config-2.3.3" = {
       name = "ssb-config";
       packageName = "ssb-config";
-      version = "2.3.2";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-config/-/ssb-config-2.3.2.tgz";
-        sha512 = "u+pUKX+ZL8KbfdwL49GuHaVD8kh+LkdLcKyCO+Rxn/MKLfZ1JFfuhm6yZ4ppQu9oTmq/1C49eLpNwZtrLIjVCg==";
+        url = "https://registry.npmjs.org/ssb-config/-/ssb-config-2.3.3.tgz";
+        sha512 = "w4tdXE7xEpYe9M071G60Wr/6lf59OTwrsTykUGFySh9Y7Prcu4pORmOIBgQUttZ86QvGMxJO1qdl7toIK53RMA==";
       };
     };
     "ssb-ebt-5.2.3" = {
@@ -31043,7 +31061,7 @@ let
       packageName = "strip-ansi";
       version = "0.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz";
+        url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz";
         sha1 = "39e8a98d044d150660abe4a6808acf70bb7bc991";
       };
     };
@@ -31052,7 +31070,7 @@ let
       packageName = "strip-ansi";
       version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz";
+        url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz";
         sha1 = "25f48ea22ca79187f3174a4db8759347bb126220";
       };
     };
@@ -31061,7 +31079,7 @@ let
       packageName = "strip-ansi";
       version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz";
+        url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz";
         sha1 = "df62c1aa94ed2f114e1d0f21fd1d50482b79a60e";
       };
     };
@@ -31070,7 +31088,7 @@ let
       packageName = "strip-ansi";
       version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
         sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
       };
     };
@@ -33771,7 +33789,7 @@ let
       packageName = "uuid";
       version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz";
+        url = "http://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz";
         sha1 = "67e2e863797215530dff318e5bf9dcebfd47b21a";
       };
     };
@@ -35824,10 +35842,10 @@ in
   asar = nodeEnv.buildNodePackage {
     name = "asar";
     packageName = "asar";
-    version = "0.14.3";
+    version = "0.14.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/asar/-/asar-0.14.3.tgz";
-      sha512 = "+hNnVVDmYbv05We/a9knj/98w171+A94A9DNHj+3kXUr3ENTQoSEcfbJRvBBRHyOh4vukBYWujmHvvaMmQoQbg==";
+      url = "https://registry.npmjs.org/asar/-/asar-0.14.4.tgz";
+      sha512 = "U+Bd2VY5LkLM3DUpLtlQgS+goiXBmSU4P41xUdck/vyHqhMfxBVAXTMLksDGoWvhx7LPgboSUVF0ujHCVsturw==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -36524,9 +36542,9 @@ in
     };
     dependencies = [
       sources."JSONStream-1.3.4"
-      sources."acorn-5.7.3"
-      sources."acorn-dynamic-import-3.0.0"
-      sources."acorn-node-1.5.2"
+      sources."acorn-6.0.2"
+      sources."acorn-node-1.6.0"
+      sources."acorn-walk-6.1.0"
       sources."array-filter-0.0.1"
       sources."array-map-0.0.0"
       sources."array-reduce-0.0.0"
@@ -37194,8 +37212,12 @@ in
       sources."abbrev-1.1.1"
       sources."accepts-1.3.5"
       sources."acorn-5.7.3"
-      sources."acorn-dynamic-import-3.0.0"
-      sources."acorn-node-1.5.2"
+      (sources."acorn-node-1.6.0" // {
+        dependencies = [
+          sources."acorn-6.0.2"
+        ];
+      })
+      sources."acorn-walk-6.1.0"
       sources."ajv-5.5.2"
       sources."aliasify-2.1.0"
       sources."ansi-0.3.1"
@@ -37739,7 +37761,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.0"
-      sources."@types/node-10.11.2"
+      sources."@types/node-10.11.3"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.1.0"
       sources."ansi-regex-2.1.1"
@@ -38312,7 +38334,7 @@ in
       sources."multistream-2.1.1"
       sources."mute-stream-0.0.7"
       sources."mutexify-1.2.0"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."nanoassert-1.1.0"
       sources."nanobus-4.3.4"
       sources."nanoscheduler-1.0.3"
@@ -38580,7 +38602,7 @@ in
       sources."mime-types-2.1.20"
       sources."minimist-0.0.10"
       sources."ms-0.7.0"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       (sources."native-dns-git+https://github.com/okTurtles/node-dns.git#08433ec98f517eed3c6d5e47bdf62603539cd402" // {
         dependencies = [
           sources."native-dns-packet-git+https://github.com/okTurtles/native-dns-packet.git#8bf2714c318cfe7d31bca2006385882ccbf503e4"
@@ -39169,7 +39191,7 @@ in
       })
       sources."ms-2.0.0"
       sources."murmur-hash-js-1.0.0"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -40357,7 +40379,7 @@ in
       })
       sources."ms-2.0.0"
       sources."mute-stream-0.0.7"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -40601,7 +40623,7 @@ in
       sources."microee-0.0.6"
       sources."minilog-3.1.0"
       sources."ms-2.1.1"
-      sources."simple-git-1.102.0"
+      sources."simple-git-1.103.0"
       sources."tabtab-git+https://github.com/mixu/node-tabtab.git"
     ];
     buildInputs = globalBuildInputs;
@@ -40667,7 +40689,7 @@ in
       sources."multicb-1.2.2"
       sources."multiserver-1.13.5"
       sources."muxrpc-6.4.1"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."node-gyp-build-3.4.0"
       sources."node-polyglot-1.0.0"
       sources."non-private-ip-1.4.4"
@@ -40743,7 +40765,7 @@ in
       sources."split-buffer-1.0.0"
       sources."ssb-avatar-0.2.0"
       sources."ssb-client-4.6.0"
-      sources."ssb-config-2.3.2"
+      sources."ssb-config-2.3.3"
       sources."ssb-git-0.5.0"
       sources."ssb-git-repo-2.8.3"
       sources."ssb-issues-1.0.0"
@@ -41178,7 +41200,7 @@ in
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
-      sources."ono-4.0.8"
+      sources."ono-4.0.9"
       sources."open-0.0.5"
       sources."opn-5.4.0"
       sources."ora-1.4.0"
@@ -41688,7 +41710,7 @@ in
       sources."minimist-0.0.8"
       sources."mkdirp-0.5.1"
       sources."msgpack-1.0.2"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."optimist-0.3.7"
       sources."pop-iterate-1.0.1"
       sources."promise-6.1.0"
@@ -43065,7 +43087,7 @@ in
       })
       sources."moment-2.22.2"
       sources."mv-2.1.1"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."ncp-2.0.0"
       sources."once-1.4.0"
       sources."optimist-0.6.1"
@@ -43918,7 +43940,7 @@ in
       sources."minimist-1.2.0"
       sources."morgan-1.9.1"
       sources."ms-2.0.0"
-      sources."nanoid-1.2.4"
+      sources."nanoid-1.2.5"
       sources."negotiator-0.6.1"
       sources."npm-run-path-2.0.2"
       sources."number-is-nan-1.0.1"
@@ -44275,7 +44297,7 @@ in
       sources."mixin-deep-1.3.1"
       sources."mkdirp-0.5.1"
       sources."ms-2.0.0"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."nanomatch-1.2.13"
       sources."negotiator-0.6.1"
       sources."normalize-path-2.1.1"
@@ -45973,7 +45995,7 @@ in
       sources."encodeurl-1.0.2"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."event-stream-4.0.0"
+      sources."event-stream-4.0.1"
       sources."expand-brackets-0.1.5"
       sources."expand-range-1.8.2"
       (sources."extend-shallow-3.0.2" // {
@@ -46074,7 +46096,7 @@ in
       })
       sources."morgan-1.9.1"
       sources."ms-2.0.0"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -46556,7 +46578,7 @@ in
         ];
       })
       sources."ms-2.0.0"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -48146,7 +48168,7 @@ in
         ];
       })
       sources."ms-2.0.0"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."negotiator-0.6.1"
       (sources."node-pre-gyp-0.6.39" // {
         dependencies = [
@@ -48569,7 +48591,7 @@ in
       sources."minimist-1.2.0"
       sources."mixin-deep-1.3.1"
       sources."ms-2.0.0"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."nanomatch-1.2.13"
       sources."nopt-1.0.10"
       sources."normalize-path-2.1.1"
@@ -50022,7 +50044,7 @@ in
         ];
       })
       sources."mv-2.1.1"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."ncp-2.0.0"
       sources."negotiator-git+https://github.com/arlolra/negotiator#full-parse-access"
       sources."normalize-package-data-2.4.0"
@@ -51037,9 +51059,9 @@ in
     };
     dependencies = [
       sources."JSONStream-1.3.4"
-      sources."acorn-5.7.3"
-      sources."acorn-dynamic-import-3.0.0"
-      sources."acorn-node-1.5.2"
+      sources."acorn-6.0.2"
+      sources."acorn-node-1.6.0"
+      sources."acorn-walk-6.1.0"
       sources."anymatch-2.0.0"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
@@ -51152,7 +51174,11 @@ in
       sources."defined-1.0.0"
       sources."deps-sort-2.0.0"
       sources."des.js-1.0.0"
-      sources."detective-4.7.1"
+      (sources."detective-4.7.1" // {
+        dependencies = [
+          sources."acorn-5.7.3"
+        ];
+      })
       sources."diffie-hellman-5.0.3"
       sources."domain-browser-1.1.7"
       sources."duplexer2-0.1.4"
@@ -51286,7 +51312,7 @@ in
       })
       sources."ms-2.0.0"
       sources."mute-stream-0.0.7"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."nanomatch-1.2.13"
       sources."neo-async-2.5.2"
       sources."node-static-0.7.11"
@@ -52463,7 +52489,7 @@ in
           sources."rimraf-2.4.5"
         ];
       })
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -52766,7 +52792,7 @@ in
       sources."split-string-3.1.0"
       sources."ssb-blobs-1.1.5"
       sources."ssb-client-4.6.0"
-      sources."ssb-config-2.3.2"
+      sources."ssb-config-2.3.3"
       sources."ssb-ebt-5.2.3"
       (sources."ssb-friends-3.1.3" // {
         dependencies = [
@@ -53407,7 +53433,7 @@ in
       sources."moment-2.22.2"
       sources."ms-2.0.0"
       sources."mv-2.1.1"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."ncp-2.0.0"
       sources."negotiator-0.6.1"
       sources."number-is-nan-1.0.1"
@@ -53807,7 +53833,7 @@ in
       sources."minimist-0.0.8"
       sources."mkdirp-0.5.1"
       sources."mv-2.1.1"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."ncp-2.0.0"
       sources."negotiator-0.5.3"
       sources."node-uuid-1.4.8"
@@ -53897,6 +53923,296 @@ in
     production = true;
     bypassCache = true;
   };
+  snyk = nodeEnv.buildNodePackage {
+    name = "snyk";
+    packageName = "snyk";
+    version = "1.99.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.99.1.tgz";
+      sha512 = "vN2jUGwHPHAbqqOeZQsBrnWgTvuCnbxsP8i9BIaqZxINeKbuBOS1t5Kg9KMMCRJyqqCB/y76PQSdoqavh4yxkg==";
+    };
+    dependencies = [
+      sources."@yarnpkg/lockfile-1.1.0"
+      sources."abbrev-1.1.1"
+      sources."agent-base-4.2.1"
+      sources."ansi-escapes-3.1.0"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."ansicolors-0.3.2"
+      sources."archy-1.0.0"
+      sources."argparse-1.0.10"
+      sources."asap-2.0.6"
+      sources."ast-types-0.11.5"
+      sources."async-1.5.2"
+      sources."balanced-match-1.0.0"
+      sources."brace-expansion-1.1.11"
+      sources."buffer-from-1.1.1"
+      sources."bytes-3.0.0"
+      sources."camelcase-2.1.1"
+      sources."chalk-2.4.1"
+      sources."chardet-0.4.2"
+      sources."cli-cursor-2.1.0"
+      sources."cli-width-2.2.0"
+      (sources."cliui-3.2.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."clone-deep-0.3.0"
+      sources."co-4.6.0"
+      sources."code-point-at-1.1.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."concat-map-0.0.1"
+      sources."configstore-3.1.2"
+      sources."core-js-2.3.0"
+      sources."core-util-is-1.0.2"
+      sources."crypto-random-string-1.0.0"
+      sources."data-uri-to-buffer-1.2.0"
+      sources."debug-3.2.5"
+      sources."decamelize-1.2.0"
+      sources."deep-is-0.1.3"
+      sources."degenerator-1.0.4"
+      sources."depd-1.1.2"
+      sources."dot-prop-4.2.0"
+      sources."email-validator-2.0.4"
+      sources."es6-promise-4.2.5"
+      sources."es6-promisify-5.0.0"
+      sources."escape-string-regexp-1.0.5"
+      sources."escodegen-1.11.0"
+      sources."esprima-3.1.3"
+      sources."estraverse-4.2.0"
+      sources."esutils-2.0.2"
+      sources."extend-3.0.2"
+      sources."external-editor-2.2.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."figures-2.0.0"
+      sources."file-uri-to-path-1.0.0"
+      sources."for-in-1.0.2"
+      sources."for-own-1.0.0"
+      (sources."ftp-0.3.10" // {
+        dependencies = [
+          sources."readable-stream-1.1.14"
+        ];
+      })
+      (sources."get-uri-2.0.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."graceful-fs-4.1.11"
+      sources."graphlib-2.1.5"
+      sources."has-flag-3.0.0"
+      sources."hasbin-1.2.3"
+      sources."hosted-git-info-2.7.1"
+      sources."http-errors-1.6.3"
+      (sources."http-proxy-agent-2.1.0" // {
+        dependencies = [
+          sources."debug-3.1.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."https-proxy-agent-2.2.1"
+      sources."iconv-lite-0.4.24"
+      sources."immediate-3.0.6"
+      sources."imurmurhash-0.1.4"
+      sources."inherits-2.0.3"
+      sources."ini-1.3.5"
+      sources."inquirer-3.3.0"
+      sources."invert-kv-1.0.0"
+      sources."ip-1.1.5"
+      sources."is-buffer-1.1.6"
+      sources."is-extendable-0.1.1"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-obj-1.0.1"
+      sources."is-plain-object-2.0.4"
+      sources."is-promise-2.1.0"
+      sources."is-wsl-1.1.0"
+      sources."isarray-0.0.1"
+      sources."isobject-3.0.1"
+      (sources."js-yaml-3.12.0" // {
+        dependencies = [
+          sources."esprima-4.0.1"
+        ];
+      })
+      (sources."jszip-3.1.5" // {
+        dependencies = [
+          sources."es6-promise-3.0.2"
+          sources."isarray-1.0.0"
+          sources."process-nextick-args-1.0.7"
+          sources."readable-stream-2.0.6"
+        ];
+      })
+      sources."kind-of-3.2.2"
+      sources."lazy-cache-0.2.7"
+      sources."lcid-1.0.0"
+      sources."levn-0.3.0"
+      sources."lie-3.1.1"
+      sources."lodash-4.17.11"
+      sources."lodash.assign-4.2.0"
+      sources."lodash.assignin-4.2.0"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.get-4.4.2"
+      sources."lodash.set-4.3.2"
+      sources."lru-cache-4.1.3"
+      sources."macos-release-1.1.0"
+      sources."make-dir-1.3.0"
+      sources."mimic-fn-1.2.0"
+      sources."minimatch-3.0.4"
+      (sources."mixin-object-2.0.1" // {
+        dependencies = [
+          sources."for-in-0.1.8"
+        ];
+      })
+      sources."ms-2.1.1"
+      sources."mute-stream-0.0.7"
+      sources."nconf-0.10.0"
+      (sources."needle-2.2.4" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."netmask-1.0.6"
+      sources."number-is-nan-1.0.1"
+      sources."onetime-2.0.1"
+      sources."opn-5.4.0"
+      sources."optionator-0.8.2"
+      sources."os-locale-1.4.0"
+      sources."os-name-2.0.1"
+      sources."os-tmpdir-1.0.2"
+      sources."pac-proxy-agent-2.0.2"
+      sources."pac-resolver-3.0.0"
+      sources."pako-1.0.6"
+      sources."path-0.12.7"
+      sources."pify-3.0.0"
+      sources."prelude-ls-1.1.2"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.0"
+      sources."promise-7.3.1"
+      sources."proxy-agent-2.3.1"
+      sources."proxy-from-env-1.0.0"
+      sources."pseudomap-1.0.2"
+      (sources."raw-body-2.3.3" // {
+        dependencies = [
+          sources."iconv-lite-0.4.23"
+        ];
+      })
+      (sources."readable-stream-2.3.6" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."recursive-readdir-2.2.2"
+      sources."restore-cursor-2.0.0"
+      sources."run-async-2.3.0"
+      sources."rx-lite-4.0.8"
+      sources."rx-lite-aggregates-4.0.8"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."sax-1.2.4"
+      sources."secure-keys-1.0.0"
+      sources."semver-5.5.1"
+      sources."setprototypeof-1.1.0"
+      (sources."shallow-clone-0.1.2" // {
+        dependencies = [
+          sources."kind-of-2.0.1"
+        ];
+      })
+      sources."signal-exit-3.0.2"
+      sources."smart-buffer-1.1.15"
+      sources."snyk-config-2.2.0"
+      sources."snyk-docker-plugin-1.11.0"
+      sources."snyk-go-plugin-1.5.2"
+      sources."snyk-gradle-plugin-2.0.1"
+      sources."snyk-module-1.8.2"
+      sources."snyk-mvn-plugin-2.0.0"
+      (sources."snyk-nodejs-lockfile-parser-1.5.1" // {
+        dependencies = [
+          sources."lodash-4.17.10"
+        ];
+      })
+      sources."snyk-nuget-plugin-1.6.5"
+      sources."snyk-php-plugin-1.5.1"
+      sources."snyk-policy-1.12.0"
+      sources."snyk-python-plugin-1.8.1"
+      sources."snyk-resolve-1.0.1"
+      sources."snyk-resolve-deps-3.1.0"
+      sources."snyk-sbt-plugin-2.0.0"
+      sources."snyk-tree-1.0.0"
+      sources."snyk-try-require-1.3.1"
+      sources."socks-1.1.10"
+      sources."socks-proxy-agent-3.0.1"
+      sources."source-map-0.6.1"
+      sources."source-map-support-0.5.9"
+      sources."sprintf-js-1.0.3"
+      sources."statuses-1.5.0"
+      sources."string-width-2.1.1"
+      sources."string_decoder-0.10.31"
+      sources."strip-ansi-4.0.0"
+      sources."supports-color-5.5.0"
+      sources."temp-dir-1.0.0"
+      sources."tempfile-2.0.0"
+      sources."then-fs-2.0.0"
+      sources."through-2.3.8"
+      sources."thunkify-2.1.2"
+      sources."tmp-0.0.33"
+      sources."toml-2.3.3"
+      sources."tslib-1.9.3"
+      sources."type-check-0.3.2"
+      (sources."undefsafe-2.0.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."unique-string-1.0.0"
+      sources."unpipe-1.0.0"
+      sources."util-0.10.4"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-3.3.2"
+      sources."win-release-1.1.1"
+      sources."window-size-0.1.4"
+      sources."wordwrap-1.0.0"
+      (sources."wrap-ansi-2.1.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."write-file-atomic-2.3.0"
+      sources."xdg-basedir-3.0.0"
+      sources."xml2js-0.4.19"
+      sources."xmlbuilder-9.0.7"
+      sources."xregexp-2.0.0"
+      sources."y18n-3.2.1"
+      sources."yallist-2.1.2"
+      (sources."yargs-3.32.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "snyk library and cli utility";
+      homepage = "https://github.com/snyk/snyk#readme";
+      license = "Apache-2.0";
+    };
+    production = true;
+    bypassCache = true;
+  };
   "socket.io" = nodeEnv.buildNodePackage {
     name = "socket.io";
     packageName = "socket.io";
@@ -53986,7 +54302,7 @@ in
       sources."hashring-3.2.0"
       sources."keypress-0.1.0"
       sources."modern-syslog-1.1.2"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."sequence-2.2.1"
       sources."simple-lru-cache-0.0.2"
       sources."winser-0.1.6"
@@ -54495,7 +54811,7 @@ in
       sources."ms-2.0.0"
       sources."multer-1.4.0"
       sources."mute-stream-0.0.5"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."nanomatch-1.2.13"
       sources."native-promise-only-0.8.1"
       (sources."nodemon-1.18.4" // {
@@ -55054,7 +55370,7 @@ in
       sources."mooremachine-2.2.1"
       sources."mute-stream-0.0.7"
       sources."mv-2.1.1"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."ncp-2.0.0"
       sources."once-1.3.2"
       sources."path-is-absolute-1.0.1"
@@ -56166,8 +56482,8 @@ in
       sources."@akryum/winattr-3.0.0"
       sources."@apollographql/apollo-upload-server-5.0.3"
       sources."@apollographql/graphql-playground-html-1.6.0"
-      sources."@babel/runtime-7.1.1"
-      sources."@babel/runtime-corejs2-7.1.1"
+      sources."@babel/runtime-7.1.2"
+      sources."@babel/runtime-corejs2-7.1.2"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.2"
       sources."@protobufjs/aspromise-1.1.2"
@@ -56190,7 +56506,7 @@ in
       sources."@types/express-serve-static-core-4.16.0"
       sources."@types/long-4.0.0"
       sources."@types/mime-2.0.0"
-      sources."@types/node-10.11.2"
+      sources."@types/node-10.11.3"
       sources."@types/range-parser-1.2.2"
       sources."@types/serve-static-1.13.2"
       sources."@types/ws-5.1.2"
@@ -56616,7 +56932,7 @@ in
       sources."isurl-1.0.0"
       sources."iterall-1.2.2"
       sources."javascript-stringify-1.6.0"
-      sources."joi-13.6.0"
+      sources."joi-13.7.0"
       sources."js-message-1.0.5"
       sources."js-queue-2.0.0"
       sources."js-yaml-3.12.0"
@@ -56675,8 +56991,8 @@ in
       })
       sources."ms-2.0.0"
       sources."mute-stream-0.0.7"
-      sources."nan-2.11.0"
-      sources."nanoid-1.2.4"
+      sources."nan-2.11.1"
+      sources."nanoid-1.2.5"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
@@ -57431,7 +57747,7 @@ in
       sources."mkdirp-0.5.1"
       sources."move-concurrently-1.0.1"
       sources."ms-2.0.0"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       sources."nanomatch-1.2.13"
       sources."neo-async-2.5.2"
       (sources."node-libs-browser-2.1.0" // {
@@ -57954,7 +58270,7 @@ in
     dependencies = [
       sources."@cliqz-oss/firefox-client-0.3.1"
       sources."@cliqz-oss/node-firefox-connect-1.2.1"
-      sources."@types/node-10.11.2"
+      sources."@types/node-10.11.3"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."JSONSelect-0.2.1"
       sources."abbrev-1.1.1"
@@ -58623,7 +58939,7 @@ in
         ];
       })
       sources."mz-2.7.0"
-      sources."nan-2.11.0"
+      sources."nan-2.11.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."kind-of-6.0.2"
diff --git a/pkgs/development/ocaml-modules/camomile/default.nix b/pkgs/development/ocaml-modules/camomile/default.nix
index 53c45d17854c..5e156776f860 100644
--- a/pkgs/development/ocaml-modules/camomile/default.nix
+++ b/pkgs/development/ocaml-modules/camomile/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, ocaml, findlib, dune, cppo }:
 
 stdenv.mkDerivation rec {
-	version = "0.8.7";
+	version = "1.0.1";
 	name = "ocaml${ocaml.version}-camomile-${version}";
 
 	src = fetchFromGitHub {
 		owner = "yoriyuki";
 		repo = "camomile";
-		rev = "rel-${version}";
-		sha256 = "0rh58nl5jrnx01hf0yqbdcc2ncx107pq29zblchww82ci0x1xwsf";
+		rev = "${version}";
+		sha256 = "1pfxr9kzkpd5bsdqrpxasfxkawwkg4cpx3m1h6203sxi7qv1z3fn";
 	};
 
 	buildInputs = [ ocaml findlib dune cppo ];
diff --git a/pkgs/development/ocaml-modules/cohttp/lwt.nix b/pkgs/development/ocaml-modules/cohttp/lwt.nix
index 1630bfd131e4..741df5b06145 100644
--- a/pkgs/development/ocaml-modules/cohttp/lwt.nix
+++ b/pkgs/development/ocaml-modules/cohttp/lwt.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, cohttp, lwt3, uri, ppx_sexp_conv }:
+{ stdenv, ocaml, findlib, dune, cohttp, ocaml_lwt, uri, ppx_sexp_conv }:
 
 if !stdenv.lib.versionAtLeast cohttp.version "0.99"
 then cohttp
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
 	buildInputs = [ ocaml findlib dune uri ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ cohttp lwt3 ];
+	propagatedBuildInputs = [ cohttp ocaml_lwt ];
 
 	buildPhase = "dune build -p cohttp-lwt";
 }
diff --git a/pkgs/development/ocaml-modules/conduit/lwt.nix b/pkgs/development/ocaml-modules/conduit/lwt.nix
index 5b085239cfd0..69d7132a83a4 100644
--- a/pkgs/development/ocaml-modules/conduit/lwt.nix
+++ b/pkgs/development/ocaml-modules/conduit/lwt.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, ppx_sexp_conv, conduit, lwt3 }:
+{ stdenv, ocaml, findlib, dune, ppx_sexp_conv, conduit, ocaml_lwt }:
 
 if !stdenv.lib.versionAtLeast conduit.version "1.0"
 then conduit
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
 	buildInputs = [ ocaml findlib dune ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ conduit lwt3 ];
+	propagatedBuildInputs = [ conduit ocaml_lwt ];
 
 	buildPhase = "dune build -p conduit-lwt";
 }
diff --git a/pkgs/development/ocaml-modules/ezxmlm/default.nix b/pkgs/development/ocaml-modules/ezxmlm/default.nix
new file mode 100644
index 000000000000..d40c47dd7a40
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ezxmlm/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib, dune, xmlm }:
+
+stdenv.mkDerivation rec {
+  version = "1.0.2";
+  name = "ocaml${ocaml.version}-ezxmlm-${version}";
+
+  src = fetchFromGitHub {
+    owner = "avsm";
+    repo = "ezxmlm";
+    rev = "v${version}";
+    sha256 = "1dgr61f0hymywikn67inq908x5adrzl3fjx3v14l9k46x7kkacl9";
+  };
+
+  propagatedBuildInputs = [ xmlm ];
+
+  buildInputs = [ ocaml findlib dune ];
+
+  buildFlags = "build";
+
+  inherit (dune) installPhase;
+
+  meta = with stdenv.lib; {
+    description = "Combinators to use with xmlm for parsing and selection";
+    longDescription = ''
+      An "easy" interface on top of the xmlm library. This version provides
+      more convenient (but far less flexible) input and output functions
+      that go to and from [string] values. This avoids the need to write signal
+      code, which is useful for quick scripts that manipulate XML.
+
+      More advanced users should go straight to the Xmlm library and use it
+      directly, rather than be saddled with the Ezxmlm interface. Since the
+      types in this library are more specific than Xmlm, it should interoperate
+      just fine with it if you decide to switch over.
+    '';
+    maintainers = [ maintainers.carlosdagos ];
+    inherit (src.meta) homepage;
+    inherit (ocaml.meta) platforms;
+    license = licenses.isc;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/3.x.nix
index c8371feb9052..c8371feb9052 100644
--- a/pkgs/development/ocaml-modules/lwt/default.nix
+++ b/pkgs/development/ocaml-modules/lwt/3.x.nix
diff --git a/pkgs/development/ocaml-modules/lwt/4.x.nix b/pkgs/development/ocaml-modules/lwt/4.x.nix
new file mode 100644
index 000000000000..f43a65065b92
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lwt/4.x.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip, pkgconfig, ncurses, libev, dune
+, ocaml, findlib, cppo
+, ocaml-migrate-parsetree, ppx_tools_versioned, result
+}:
+
+let inherit (stdenv.lib) optional versionAtLeast; in
+
+stdenv.mkDerivation rec {
+  version = "4.1.0";
+  name = "ocaml${ocaml.version}-lwt-${version}";
+
+  src = fetchzip {
+    url = "https://github.com/ocsigen/lwt/archive/${version}.tar.gz";
+    sha256 = "16wnc61kfj54z4q8sn9f5iik37pswz328hcz3z6rkza3kh3s6wmm";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ocaml findlib dune cppo
+    ocaml-migrate-parsetree ppx_tools_versioned
+  ] ++ optional (!versionAtLeast ocaml.version "4.07") ncurses;
+  propagatedBuildInputs = [ libev result ];
+
+  configurePhase = "ocaml src/util/configure.ml -use-libev true";
+  buildPhase = "jbuilder build -p lwt";
+  inherit (dune) installPhase;
+
+  meta = {
+    homepage = "https://ocsigen.org/lwt/";
+    description = "A cooperative threads library for OCaml";
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    license = stdenv.lib.licenses.lgpl21;
+    inherit (ocaml.meta) platforms;
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/lwt_log/default.nix b/pkgs/development/ocaml-modules/lwt_log/default.nix
index 42ff2f26b7d3..a3d34b190b86 100644
--- a/pkgs/development/ocaml-modules/lwt_log/default.nix
+++ b/pkgs/development/ocaml-modules/lwt_log/default.nix
@@ -1,10 +1,19 @@
-{ stdenv, ocaml, findlib, dune, lwt }:
+{ stdenv, fetchFromGitHub, ocaml, findlib, dune, lwt }:
+
+if !stdenv.lib.versionAtLeast ocaml.version "4.02"
+then throw "lwt_log is not available for OCaml ${ocaml.version}"
+else
 
 stdenv.mkDerivation rec {
-  version = "1.0.0";
+  version = "1.1.0";
   name = "ocaml${ocaml.version}-lwt_log-${version}";
 
-  inherit (lwt) src;
+  src = fetchFromGitHub {
+    owner = "aantron";
+    repo = "lwt_log";
+    rev = version;
+    sha256 = "1c58gkqfvyf2j11jwj2nh4iq999wj9xpnmr80hz9d0nk9fv333pi";
+  };
 
   buildInputs = [ ocaml findlib dune ];
 
diff --git a/pkgs/development/ocaml-modules/lwt_ssl/default.nix b/pkgs/development/ocaml-modules/lwt_ssl/default.nix
index 8fbec7cd4dff..a06e72529864 100644
--- a/pkgs/development/ocaml-modules/lwt_ssl/default.nix
+++ b/pkgs/development/ocaml-modules/lwt_ssl/default.nix
@@ -1,5 +1,9 @@
 { stdenv, fetchzip, ocaml, findlib, dune, ssl, lwt }:
 
+if !stdenv.lib.versionAtLeast ocaml.version "4.02"
+then throw "lwt_ssl is not available for OCaml ${ocaml.version}"
+else
+
 stdenv.mkDerivation rec {
   version = "1.1.2";
   name = "ocaml${ocaml.version}-lwt_ssl-${version}";
diff --git a/pkgs/development/ocaml-modules/ojquery/default.nix b/pkgs/development/ocaml-modules/ojquery/default.nix
index 8cf5819c9002..6b0eefe195f1 100644
--- a/pkgs/development/ocaml-modules/ojquery/default.nix
+++ b/pkgs/development/ocaml-modules/ojquery/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, ocaml, findlib, ocamlbuild, js_of_ocaml, js_of_ocaml-camlp4, camlp4, lwt3, react }:
+{ stdenv, fetchgit, ocaml, findlib, ocamlbuild, js_of_ocaml, js_of_ocaml-camlp4, camlp4, ocaml_lwt, react }:
 
 if stdenv.lib.versionAtLeast ocaml.version "4.06"
 then throw "ojquery is not available for OCaml ${ocaml.version}"
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ ocaml findlib ocamlbuild js_of_ocaml-camlp4 camlp4 ];
-  propagatedBuildInputs = [ js_of_ocaml lwt3 react ];
+  propagatedBuildInputs = [ js_of_ocaml ocaml_lwt react ];
 
   createFindlibDestdir = true;
 
diff --git a/pkgs/development/python-modules/black/default.nix b/pkgs/development/python-modules/black/default.nix
index b95ed080e66a..f070ab4fd7a4 100644
--- a/pkgs/development/python-modules/black/default.nix
+++ b/pkgs/development/python-modules/black/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "black";
-  version = "18.6b4";
+  version = "18.9b0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i4sfqgz6w15vd50kbhi7g7rifgqlf8yfr8y78rypd56q64qn592";
+    sha256 = "1992ramdwv8sg4mbl5ajirwj5i4a48zjgsycib0fnbaliyiajc70";
   };
 
   checkInputs =  [ pytest glibcLocales ];
diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix
index 1c2cb4a7643d..e73b1717331c 100644
--- a/pkgs/development/python-modules/pyarrow/default.nix
+++ b/pkgs/development/python-modules/pyarrow/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, python, isPy3k, fetchurl, arrow-cpp, cmake, cython, futures, numpy, pandas, pytest, pytestrunner, parquet-cpp, pkgconfig, setuptools_scm, six }:
+{ lib, buildPythonPackage, python, isPy3k, fetchurl, arrow-cpp, cmake, cython, futures, JPype1, numpy, pandas, pytest, pytestrunner, parquet-cpp, pkgconfig, setuptools_scm, six }:
 
 let
   _arrow-cpp = arrow-cpp.override { inherit python;};
@@ -7,18 +7,14 @@ in
 
 buildPythonPackage rec {
   pname = "pyarrow";
-  version = "0.9.0";
 
-  src = fetchurl {
-    url = "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
-    sha256 = "16l91fixb5dgx3v6xc73ipn1w1hjgbmijyvs81j7ywzpna2cdcdy";
-  };
+  inherit (_arrow-cpp) version src;
 
   sourceRoot = "apache-arrow-${version}/python";
 
   nativeBuildInputs = [ cmake cython pkgconfig setuptools_scm ];
   propagatedBuildInputs = [ numpy six ] ++ lib.optionals (!isPy3k) [ futures ];
-  checkInputs = [ pandas pytest pytestrunner ];
+  checkInputs = [ pandas pytest pytestrunner JPype1 ];
 
   PYARROW_BUILD_TYPE = "release";
   PYARROW_CMAKE_OPTIONS = "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib;${PARQUET_HOME}/lib";
diff --git a/pkgs/development/python-modules/pyls-black/default.nix b/pkgs/development/python-modules/pyls-black/default.nix
index b19fad1a1f19..60f6af287652 100644
--- a/pkgs/development/python-modules/pyls-black/default.nix
+++ b/pkgs/development/python-modules/pyls-black/default.nix
@@ -19,6 +19,9 @@ buildPythonPackage rec {
     pytest
   '';
 
+  # Enable when https://github.com/rupert/pyls-black/pull/6 is merged.
+  doCheck = false;
+
   checkInputs = [ pytest ];
 
   propagatedBuildInputs = [ black toml python-language-server ];
diff --git a/pkgs/development/python-modules/yapf/default.nix b/pkgs/development/python-modules/yapf/default.nix
index 3ed7fa640500..9c535d90e919 100644
--- a/pkgs/development/python-modules/yapf/default.nix
+++ b/pkgs/development/python-modules/yapf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "yapf";
-  version = "0.22.0";
+  version = "0.24.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a98a6eacca64d2b920558f4a2f78150db9474de821227e60deaa29f186121c63";
+    sha256 = "0anwby0ydmyzcsgjc5dn1ryddwvii4dq61vck447q0n96npnzfyf";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 0fbd2ae6fa70..c9766a985f6f 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -367,6 +367,7 @@ let
     tkrplot = [ pkgs.xorg.libX11 pkgs.tk.dev ];
     topicmodels = [ pkgs.gsl_1 ];
     udunits2 = [ pkgs.udunits pkgs.expat ];
+    units = [ pkgs.udunits ];
     V8 = [ pkgs.v8_3_14 ];
     VBLPCM = [ pkgs.gsl_1 ];
     WhopGenome = [ pkgs.zlib.dev ];
diff --git a/pkgs/development/ruby-modules/solargraph/Gemfile.lock b/pkgs/development/ruby-modules/solargraph/Gemfile.lock
index 04d274d05621..5c1db601988b 100644
--- a/pkgs/development/ruby-modules/solargraph/Gemfile.lock
+++ b/pkgs/development/ruby-modules/solargraph/Gemfile.lock
@@ -8,7 +8,7 @@ GEM
     jaro_winkler (1.5.1)
     kramdown (1.17.0)
     mini_portile2 (2.3.0)
-    nokogiri (1.8.4)
+    nokogiri (1.8.5)
       mini_portile2 (~> 2.3.0)
     parallel (1.12.1)
     parser (2.5.1.2)
@@ -17,7 +17,7 @@ GEM
     rainbow (3.0.0)
     reverse_markdown (1.1.0)
       nokogiri
-    rubocop (0.59.1)
+    rubocop (0.59.2)
       jaro_winkler (~> 1.5.1)
       parallel (~> 1.10)
       parser (>= 2.5, != 2.5.1.1)
@@ -26,7 +26,7 @@ GEM
       ruby-progressbar (~> 1.7)
       unicode-display_width (~> 1.0, >= 1.0.1)
     ruby-progressbar (1.10.0)
-    solargraph (0.28.1)
+    solargraph (0.28.2)
       coderay (~> 1.1)
       eventmachine (~> 1.2, >= 1.2.5)
       htmlentities (~> 4.3, >= 4.3.4)
diff --git a/pkgs/development/ruby-modules/solargraph/gemset.nix b/pkgs/development/ruby-modules/solargraph/gemset.nix
index 3319f2a68de5..2f46db60984a 100644
--- a/pkgs/development/ruby-modules/solargraph/gemset.nix
+++ b/pkgs/development/ruby-modules/solargraph/gemset.nix
@@ -59,10 +59,10 @@
     dependencies = ["mini_portile2"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1h9nml9h3m0mpvmh8jfnqvblnz5n5y3mmhgfc38avfmfzdrq9bgc";
+      sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
       type = "gem";
     };
-    version = "1.8.4";
+    version = "1.8.5";
   };
   parallel = {
     source = {
@@ -110,10 +110,10 @@
     dependencies = ["jaro_winkler" "parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hz4slfisbq8nqs83mvvh6yv5hb7z7zx9fxvv9cka6b9ldvr2i2b";
+      sha256 = "0110r4yqi6nn97bp2myah76plv6a7daxnm9k04k64n1y4zpqm256";
       type = "gem";
     };
-    version = "0.59.1";
+    version = "0.59.2";
   };
   ruby-progressbar = {
     source = {
@@ -127,10 +127,10 @@
     dependencies = ["coderay" "eventmachine" "htmlentities" "kramdown" "parser" "reverse_markdown" "rubocop" "thor" "tilt" "yard"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11l759mrzjla2iqy5wdd20r01196pfxkw0b0gzgskdbfi8y8mvg5";
+      sha256 = "0xvxifq5871fh2c34hjvsqn38nw4s63d599vbs5mlrrvdl3c5s01";
       type = "gem";
     };
-    version = "0.28.1";
+    version = "0.28.2";
   };
   thor = {
     source = {
diff --git a/pkgs/development/tools/bazel-watcher/default.nix b/pkgs/development/tools/bazel-watcher/default.nix
new file mode 100644
index 000000000000..bedb55ec3742
--- /dev/null
+++ b/pkgs/development/tools/bazel-watcher/default.nix
@@ -0,0 +1,80 @@
+{ buildBazelPackage
+, cacert
+, fetchFromGitHub
+, fetchpatch
+, git
+, go
+, stdenv
+}:
+
+buildBazelPackage rec {
+  name = "bazel-watcher-${version}";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "bazelbuild";
+    repo = "bazel-watcher";
+    rev = "v${version}";
+    sha256 = "1sis723hwax4dg0c28x20yj0hjli66q1ykcvjirgy57znz4iwlq9";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/bazelbuild/bazel-watcher/commit/4d5928eee3dd5843a1b55136d914b78fef7f25d0.patch";
+      sha256 = "0gxzcdqgifrmvznfy0p5nd11b39n2pwxcvpmhc6hxf85mwlxz7dg";
+    })
+
+    ./update-gazelle-fix-ssl.patch
+  ];
+
+  nativeBuildInputs = [ go git ];
+
+  bazelTarget = "//ibazel";
+
+  fetchAttrs = {
+    preBuild = ''
+      patchShebangs .
+
+      # tell rules_go to use the Go binary found in the PATH
+      sed -e 's:go_register_toolchains():go_register_toolchains(go_version = "host"):g' -i WORKSPACE
+
+      # tell rules_go to invoke GIT with custom CAINFO path
+      export GIT_SSL_CAINFO="${cacert}/etc/ssl/certs/ca-bundle.crt"
+    '';
+
+    preInstall = ''
+      # Remove the go_sdk (it's just a copy of the go derivation) and all
+      # references to it from the marker files. Bazel does not need to download
+      # this sdk because we have patched the WORKSPACE file to point to the one
+      # currently present in PATH. Without removing the go_sdk from the marker
+      # file, the hash of it will change anytime the Go derivation changes and
+      # that would lead to impurities in the marker files which would result in
+      # a different sha256 for the fetch phase.
+      rm -rf $bazelOut/external/{go_sdk,\@go_sdk.marker}
+      sed -e '/^FILE:@go_sdk.*/d' -i $bazelOut/external/\@*.marker
+    '';
+
+    sha256 = "1iyjvibvlwg980p7nizr6x5v31dyp4a344f0xn839x393583k59d";
+  };
+
+  buildAttrs = {
+    preBuild = ''
+      patchShebangs .
+
+      # tell rules_go to use the Go binary found in the PATH
+      sed -e 's:go_register_toolchains():go_register_toolchains(go_version = "host"):g' -i WORKSPACE
+    '';
+
+    installPhase = ''
+      install -Dm755 bazel-bin/ibazel/*_pure_stripped/ibazel $out/bin/ibazel
+    '';
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/bazelbuild/bazel-watcher;
+    description = "Tools for building Bazel targets when source files change.";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/bazel-watcher/update-gazelle-fix-ssl.patch b/pkgs/development/tools/bazel-watcher/update-gazelle-fix-ssl.patch
new file mode 100644
index 000000000000..4cf69e9d1723
--- /dev/null
+++ b/pkgs/development/tools/bazel-watcher/update-gazelle-fix-ssl.patch
@@ -0,0 +1,19 @@
+diff --git a/WORKSPACE b/WORKSPACE
+index 4011d9b..d085ae8 100644
+--- a/WORKSPACE
++++ b/WORKSPACE
+@@ -52,11 +52,9 @@ http_archive(
+
+ http_archive(
+     name = "bazel_gazelle",
+-    sha256 = "c0a5739d12c6d05b6c1ad56f2200cb0b57c5a70e03ebd2f7b87ce88cabf09c7b",
+-    urls = [
+-        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/0.14.0/bazel-gazelle-0.14.0.tar.gz",
+-        "https://github.com/bazelbuild/bazel-gazelle/releases/download/0.14.0/bazel-gazelle-0.14.0.tar.gz",
+-    ],
++    sha256 = "0600ea2daf98170211dc561fd348a8a9328c91eb6df66a381eaaf0bcd122e80b",
++    strip_prefix = "bazel-gazelle-b34f46af2f31ee0470e7364352c2376bcc10d079",
++    url = "https://github.com/bazelbuild/bazel-gazelle/archive/b34f46af2f31ee0470e7364352c2376bcc10d079.tar.gz",
+ )
+
+ load("@io_bazel_rules_go//go:def.bzl", "go_register_toolchains", "go_rules_dependencies")
diff --git a/pkgs/development/tools/build-managers/sbt-extras/default.nix b/pkgs/development/tools/build-managers/sbt-extras/default.nix
index d501a7953841..5cb5bbacee95 100644
--- a/pkgs/development/tools/build-managers/sbt-extras/default.nix
+++ b/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, which, curl, makeWrapper, jdk }:
 
 let
-  rev = "3c8fcadc3376edfd8e4b08b35f174935bf97bbac";
-  version = stdenv.lib.strings.substring 0 7 rev;
+  rev = "1d8ee2c0a75374afa1cb687f450aeb095180882b";
+  version = "2018-09-27";
 in
 stdenv.mkDerivation {
   name = "sbt-extras-${version}";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "paulp";
     repo = "sbt-extras";
     inherit rev;
-    sha256 = "0r79w4kgdrsdnm4ma9rmb9k115rvidpaha7sr9rsxv68jpagwgrj";
+    sha256 = "1a6k1lcpd9sknzyx6niq56z1b90mz7br7y13yk98w06r7fmfchw5";
   };
 
   dontBuild = true;
diff --git a/pkgs/development/tools/database/pgcli/default.nix b/pkgs/development/tools/database/pgcli/default.nix
index 2926946cd45a..bc1c2515bfa7 100644
--- a/pkgs/development/tools/database/pgcli/default.nix
+++ b/pkgs/development/tools/database/pgcli/default.nix
@@ -2,13 +2,13 @@
 
 pythonPackages.buildPythonApplication rec {
   name = "pgcli-${version}";
-  version = "1.10.3";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "dbcli";
     repo = "pgcli";
     rev = "v${version}";
-    sha256 = "1qcbv2w036l0gc0li3jpa6amxzqmhv8d1q6wv4pfh0wvl17hqv9r";
+    sha256 = "01qcvl0iwabinq3sb4340js8v3sbwkbxi64sg4xy76wj8xr6kgsk";
   };
 
   buildInputs = with pythonPackages; [ pytest mock ];
diff --git a/pkgs/development/tools/java/visualvm/default.nix b/pkgs/development/tools/java/visualvm/default.nix
index 2a707e35b918..3cec26435050 100644
--- a/pkgs/development/tools/java/visualvm/default.nix
+++ b/pkgs/development/tools/java/visualvm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchzip, lib, makeWrapper, makeDesktopItem, jdk, gtk2, gawk }:
 
 stdenv.mkDerivation rec {
-  version = "1.4.1";
+  version = "1.4.2";
   name = "visualvm-${version}";
 
   src = fetchzip {
     url = "https://github.com/visualvm/visualvm.src/releases/download/${version}/visualvm_${builtins.replaceStrings ["."] [""]  version}.zip";
-    sha256 = "10ciyggf8mcy3c53shpl03fxqwsa2ilgw3xdgqhb1ah151k18p78";
+    sha256 = "0kic1rqxaj2rpnflj1wklsy3gjz50gcb0wak4qi3hjkz5rv6gp1y";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/development/tools/kubectx/default.nix b/pkgs/development/tools/kubectx/default.nix
index 5cf0badf668e..959bb8698682 100644
--- a/pkgs/development/tools/kubectx/default.nix
+++ b/pkgs/development/tools/kubectx/default.nix
@@ -4,13 +4,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   name = "kubectx";
-  version = "0.5.1";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "ahmetb";
     repo = "${name}";
     rev = "v${version}";
-    sha256 = "1bmmaj5fffx4hy55l6x4vl5gr9rp2yhg4vs5b9sya9rjvdkamdx5";
+    sha256 = "1507g8sm73mqfsxl3fabmj37pk9l4jddsdi4qlpf0ixhk3z1lfkg";
   };
 
   buildInputs = [ makeWrapper ];
@@ -20,9 +20,24 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/bin
+    mkdir -p $out/share/zsh/site-functions
+    mkdir -p $out/share/bash-completion/completions
+    mkdir -p $out/share/fish/vendor_completions.d
+
     cp kubectx $out/bin
     cp kubens $out/bin
 
+    # Provide ZSH completions
+    cp completion/kubectx.zsh $out/share/zsh/site-functions/_kubectx
+    cp completion/kubens.zsh $out/share/zsh/site-functions/_kubens
+
+    # Provide BASH completions
+    cp completion/kubectx.bash $out/share/bash-completion/completions/kubectx
+    cp completion/kubens.bash $out/share/bash-completion/completions/kubens
+
+    # Provide FISH completions
+    cp completion/*.fish $out/share/fish/vendor_completions.d/
+
     for f in $out/bin/*; do
       wrapProgram $f --prefix PATH : ${makeBinPath [ kubectl ]}
     done
diff --git a/pkgs/development/tools/misc/blackmagic/default.nix b/pkgs/development/tools/misc/blackmagic/default.nix
index 2d7225ee03ed..2974c653acdd 100644
--- a/pkgs/development/tools/misc/blackmagic/default.nix
+++ b/pkgs/development/tools/misc/blackmagic/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "blacksphere";
     repo = "blackmagic";
-    rev = "d3a8f27fdbf952194e8fc5ce9b2fc9bcef7c545c";
-    sha256 = "0c3l7cfqag3g7zrfn4mmikkx7076hb1r856ybhhdh0f6zji2j6jx";
+    rev = "29386aee140e5e99a958727358f60980418b4c88";
+    sha256 = "05x19y80mixk6blpnfpfngy5d41jpjvdqgjzkmhv1qc03bhyhc82";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/misc/fswatch/default.nix b/pkgs/development/tools/misc/fswatch/default.nix
index a1f33fdfc9e7..0e8e0116a8b0 100644
--- a/pkgs/development/tools/misc/fswatch/default.nix
+++ b/pkgs/development/tools/misc/fswatch/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   name = "fswatch-${version}";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "emcrisostomo";
     repo = "fswatch";
     rev = version;
-    sha256 = "16f3g6s79gs1sp2ra3cka4c5mf5b557cx697bwcdfgj6r19ni5j7";
+    sha256 = "18nrp2l1rzrhnw4p6d9r6jaxkkvxkiahvahgws2j00q623v0f3ij";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/tools/misc/xxdiff/tip.nix b/pkgs/development/tools/misc/xxdiff/tip.nix
index 844758c0f065..1424b8fe1974 100644
--- a/pkgs/development/tools/misc/xxdiff/tip.nix
+++ b/pkgs/development/tools/misc/xxdiff/tip.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromBitbucket, qtbase, flex, bison, docutils }:
 
 stdenv.mkDerivation rec {
-  name = "xxdiff-4.0.1.20170623";
+  name = "xxdiff-5.0b1";
 
   src = fetchFromBitbucket {
     owner = "blais";
diff --git a/pkgs/development/tools/vagrant/Gemfile b/pkgs/development/tools/vagrant/Gemfile
deleted file mode 100644
index d32951f1c054..000000000000
--- a/pkgs/development/tools/vagrant/Gemfile
+++ /dev/null
@@ -1,2 +0,0 @@
-source "https://rubygems.org"
-gem 'vagrant'
diff --git a/pkgs/development/tools/vagrant/Gemfile.lock b/pkgs/development/tools/vagrant/Gemfile.lock
deleted file mode 100644
index 2a1515fd1438..000000000000
--- a/pkgs/development/tools/vagrant/Gemfile.lock
+++ /dev/null
@@ -1,149 +0,0 @@
-GIT
-  remote: https://github.com/hashicorp/vagrant-spec.git
-  revision: 9413ab298407114528766efefd1fb1ff24589636
-  specs:
-    vagrant-spec (0.0.1)
-      childprocess (~> 0.6.0)
-      log4r (~> 1.1.9)
-      rspec (~> 3.5.0)
-      thor (~> 0.18.1)
-
-PATH
-  remote: .
-  specs:
-    vagrant (2.1.2)
-      childprocess (~> 0.6.0)
-      erubis (~> 2.7.0)
-      hashicorp-checkpoint (~> 0.1.5)
-      i18n (>= 0.6.0, <= 0.8.0)
-      listen (~> 3.1.5)
-      log4r (~> 1.1.9, < 1.1.11)
-      net-scp (~> 1.2.0)
-      net-sftp (~> 2.1)
-      net-ssh (~> 4.2.0)
-      rb-kqueue (~> 0.2.0)
-      rest-client (>= 1.6.0, < 3.0)
-      ruby_dep (<= 1.3.1)
-      wdm (~> 0.1.0)
-      winrm (~> 2.1)
-      winrm-elevated (~> 1.1)
-      winrm-fs (~> 1.0)
-
-GEM
-  remote: https://rubygems.org/
-  specs:
-    addressable (2.5.2)
-      public_suffix (>= 2.0.2, < 4.0)
-    builder (3.2.3)
-    childprocess (0.6.3)
-      ffi (~> 1.0, >= 1.0.11)
-    crack (0.4.3)
-      safe_yaml (~> 1.0.0)
-    diff-lcs (1.3)
-    domain_name (0.5.20180417)
-      unf (>= 0.0.5, < 1.0.0)
-    erubis (2.7.0)
-    fake_ftp (0.1.1)
-    ffi (1.9.23)
-    gssapi (1.2.0)
-      ffi (>= 1.0.1)
-    gyoku (1.3.1)
-      builder (>= 2.1.2)
-    hashdiff (0.3.7)
-    hashicorp-checkpoint (0.1.5)
-    http-cookie (1.0.3)
-      domain_name (~> 0.5)
-    httpclient (2.8.3)
-    i18n (0.8.0)
-    listen (3.1.5)
-      rb-fsevent (~> 0.9, >= 0.9.4)
-      rb-inotify (~> 0.9, >= 0.9.7)
-      ruby_dep (~> 1.2)
-    little-plugger (1.1.4)
-    log4r (1.1.10)
-    logging (2.2.2)
-      little-plugger (~> 1.1)
-      multi_json (~> 1.10)
-    mime-types (3.1)
-      mime-types-data (~> 3.2015)
-    mime-types-data (3.2016.0521)
-    multi_json (1.13.1)
-    net-scp (1.2.1)
-      net-ssh (>= 2.6.5)
-    net-sftp (2.1.2)
-      net-ssh (>= 2.6.5)
-    net-ssh (4.2.0)
-    netrc (0.11.0)
-    nori (2.6.0)
-    public_suffix (3.0.1)
-    rake (12.0.0)
-    rb-fsevent (0.10.3)
-    rb-inotify (0.9.10)
-      ffi (>= 0.5.0, < 2)
-    rb-kqueue (0.2.5)
-      ffi (>= 0.5.0)
-    rest-client (2.0.2)
-      http-cookie (>= 1.0.2, < 2.0)
-      mime-types (>= 1.16, < 4.0)
-      netrc (~> 0.8)
-    rspec (3.5.0)
-      rspec-core (~> 3.5.0)
-      rspec-expectations (~> 3.5.0)
-      rspec-mocks (~> 3.5.0)
-    rspec-core (3.5.4)
-      rspec-support (~> 3.5.0)
-    rspec-expectations (3.5.0)
-      diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.5.0)
-    rspec-its (1.2.0)
-      rspec-core (>= 3.0.0)
-      rspec-expectations (>= 3.0.0)
-    rspec-mocks (3.5.0)
-      diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.5.0)
-    rspec-support (3.5.0)
-    ruby_dep (1.3.1)
-    rubyntlm (0.6.2)
-    rubyzip (1.2.1)
-    safe_yaml (1.0.4)
-    thor (0.18.1)
-    unf (0.1.4)
-      unf_ext
-    unf_ext (0.0.7.5)
-    wdm (0.1.1)
-    webmock (2.3.2)
-      addressable (>= 2.3.6)
-      crack (>= 0.3.2)
-      hashdiff
-    winrm (2.2.3)
-      builder (>= 2.1.2)
-      erubis (~> 2.7)
-      gssapi (~> 1.2)
-      gyoku (~> 1.0)
-      httpclient (~> 2.2, >= 2.2.0.2)
-      logging (>= 1.6.1, < 3.0)
-      nori (~> 2.0)
-      rubyntlm (~> 0.6.0, >= 0.6.1)
-    winrm-elevated (1.1.0)
-      winrm (~> 2.0)
-      winrm-fs (~> 1.0)
-    winrm-fs (1.2.0)
-      erubis (~> 2.7)
-      logging (>= 1.6.1, < 3.0)
-      rubyzip (~> 1.1)
-      winrm (~> 2.0)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  fake_ftp (~> 0.1.1)
-  rake (~> 12.0.0)
-  rspec (~> 3.5.0)
-  rspec-its (~> 1.2.0)
-  vagrant!
-  vagrant-spec!
-  webmock (~> 2.3.1)
-
-BUNDLED WITH
-   1.16.2
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index f247a20b1b27..ecc1a2d00946 100644
--- a/pkgs/development/tools/vagrant/default.nix
+++ b/pkgs/development/tools/vagrant/default.nix
@@ -1,10 +1,8 @@
-{ lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive }:
+{ lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive, writeText }:
 
 let
   # NOTE: bumping the version and updating the hash is insufficient;
-  # you must copy a fresh Gemfile.lock from the vagrant source,
-  # and use bundix to generate a new gemset.nix.
-  # Do not change the existing Gemfile.
+  # you must use bundix to generate a new gemset.nix in the Vagrant source.
   version = "2.1.2";
   url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
   sha256 = "0fb90v43d30whhyjlgb9mmy93ccbpr01pz97kp5hrg3wfd7703b1";
@@ -15,7 +13,8 @@ let
     inherit version;
 
     inherit ruby;
-    gemdir = ./.;
+    gemfile = writeText "Gemfile" "";
+    lockfile = writeText "Gemfile.lock" "";
     gemset = lib.recursiveUpdate (import ./gemset.nix) {
       vagrant = {
         source = {
diff --git a/pkgs/development/tools/valadoc/default.nix b/pkgs/development/tools/valadoc/default.nix
index 6515e220f3d5..fba5fe91ed86 100644
--- a/pkgs/development/tools/valadoc/default.nix
+++ b/pkgs/development/tools/valadoc/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   name = "valadoc-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/valadoc/${gnome3.versionBranch version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/valadoc/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
     sha256 = "07501k2j9c016bd7rfr6xzaxdplq7j9sd18b5ixbqdbipvn6whnv";
   };
 
diff --git a/pkgs/games/brogue/default.nix b/pkgs/games/brogue/default.nix
index d48dc8e8006e..4cfac27451b0 100644
--- a/pkgs/games/brogue/default.nix
+++ b/pkgs/games/brogue/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "brogue-${version}";
-  version = "1.7.4";
+  version = "1.7.5";
 
   src = fetchurl {
     url = "https://sites.google.com/site/broguegame/brogue-${version}-linux-amd64.tbz2";
-    sha256 = "1lygf17hm7wqlp0jppaz8dn9a9ksmxz12vw7jyfavvqpwdgz79gb";
+    sha256 = "0i042zb3axjf0cpgpdh8hvfn66dbfizidyvw0iymjk2n760z2kx7";
   };
 
   prePatch = ''
diff --git a/pkgs/games/bzflag/default.nix b/pkgs/games/bzflag/default.nix
index e6d23cf1b9f0..c8618c13347d 100644
--- a/pkgs/games/bzflag/default.nix
+++ b/pkgs/games/bzflag/default.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "bzflag";
-  version = "2.4.14";
+  version = "2.4.16";
 
   src = fetchurl {
     url = "https://download.bzflag.org/${pname}/source/${version}/${name}.tar.bz2";
-    sha256 = "1p4vaap8msk7cfqkcc2nrchw7pp4inbyx706zmlwnmpr9k0nx909";
+    sha256 = "00y2ifjgl4yz1pb2fgkg00vrfb6yk5cfxwjbx3fw2alnsaw6cqgg";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/games/ivan/default.nix b/pkgs/games/ivan/default.nix
index 07b67fa63978..6d31369a1592 100644
--- a/pkgs/games/ivan/default.nix
+++ b/pkgs/games/ivan/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   name = "ivan-${version}";
-  version = "053";
+  version = "054";
 
   src = fetchFromGitHub {
     owner = "Attnam";
     repo = "ivan";
     rev = "v${version}";
-    sha256 = "1r3fcccgpjmzzkg0lfmq76igjapr01kh97vz671z60jg7gyh301b";
+    sha256 = "0ayhp9qvxsi5dsgjvy43i3lpdis883g1xn2b8l5xkwxcqfnvsfmq";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
@@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
   hardeningDisable = ["all"];
 
   # To store bone and high score files in ~/.ivan of the current user
-  patches = [./homedir.patch];
+  patches = [./new.patch];
 
   # Enable wizard mode
-  cmakeFlags = ["-DCMAKE_CXX_FLAGS=-DWIZARD"];
+  cmakeFlags = ["-DCMAKE_CXX_FLAGS=-DWIZARD" "-DFORCE_HOME_AS_STATE_DIR=ON"];
 
   # Help CMake find SDL_mixer.h
   NIX_CFLAGS_COMPILE = "-I${SDL2_mixer}/include/SDL2";
diff --git a/pkgs/games/ivan/homedir.patch b/pkgs/games/ivan/homedir.patch
deleted file mode 100644
index 312099f7ffd9..000000000000
--- a/pkgs/games/ivan/homedir.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-diff --git a/FeLib/Include/hscore.h b/FeLib/Include/hscore.h
-index 4caf3ff..1a02845 100644
---- a/FeLib/Include/hscore.h
-+++ b/FeLib/Include/hscore.h
-@@ -31,11 +31,11 @@ class festring;
- class highscore
- {
-  public:
--  highscore(cfestring& = HIGH_SCORE_FILENAME);
-+  highscore();
-   truth Add(long, cfestring&);
-   void Draw() const;
--  void Save(cfestring& = HIGH_SCORE_FILENAME) const;
--  void Load(cfestring& = HIGH_SCORE_FILENAME);
-+  void Save() const;
-+  void Load();
-   truth LastAddFailed() const;
-   void AddToFile(highscore*) const;
-   truth MergeToFile(highscore*) const;
-diff --git a/FeLib/Source/hscore.cpp b/FeLib/Source/hscore.cpp
-index 2e5318d..ff9c174 100644
---- a/FeLib/Source/hscore.cpp
-+++ b/FeLib/Source/hscore.cpp
-@@ -23,7 +23,7 @@ cfestring& highscore::GetEntry(int I) const { return Entry[I]; }
- long highscore::GetScore(int I) const { return Score[I]; }
- long highscore::GetSize() const { return Entry.size(); }
- 
--highscore::highscore(cfestring& File) : LastAdd(0xFF), Version(HIGH_SCORE_VERSION) { Load(File); }
-+highscore::highscore() : LastAdd(0xFF), Version(HIGH_SCORE_VERSION) { Load(); }
- 
- truth highscore::Add(long NewScore, cfestring& NewEntry,
-                      time_t NewTime, long NewRandomID)
-@@ -98,8 +98,12 @@ void highscore::Draw() const
-   List.Draw();
- }
- 
--void highscore::Save(cfestring& File) const
-+void highscore::Save() const
- {
-+  std::string buffer(getenv("HOME"));
-+  buffer.append("/.ivan/ivan-highscore.scores");
-+  cfestring& File = buffer.c_str();
-+
-   outputfile HighScore(File);
-   long CheckSum = HIGH_SCORE_VERSION + LastAdd;
-   for(ushort c = 0; c < Score.size(); ++c)
-@@ -112,8 +116,12 @@ void highscore::Save(cfestring& File) const
- }
- 
- /* This function needs much more error handling */
--void highscore::Load(cfestring& File)
-+void highscore::Load()
- {
-+  std::string buffer(getenv("HOME"));
-+  buffer.append("/.ivan/ivan-highscore.scores");
-+  cfestring& File = buffer.c_str();
-+
-   {
-     inputfile HighScore(File, 0, false);
- 
-diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp
-index 8927305..c18e790 100644
---- a/Main/Source/game.cpp
-+++ b/Main/Source/game.cpp
-@@ -2380,7 +2380,9 @@ festring game::GetDataDir()
- festring game::GetBoneDir()
- {
- #ifdef UNIX
--  return LOCAL_STATE_DIR "/Bones/";
-+  festring BoneDir;
-+  BoneDir << getenv("HOME") << "/.ivan/Bones/";
-+  return BoneDir;
- #endif
- 
- #if defined(WIN32) || defined(__DJGPP__)
diff --git a/pkgs/games/ivan/new.patch b/pkgs/games/ivan/new.patch
new file mode 100644
index 000000000000..d0ed866b3f32
--- /dev/null
+++ b/pkgs/games/ivan/new.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 13e143e..a6f9176 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,10 +13,14 @@ set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
+ add_definitions(-DIVAN_VERSION="${PROJECT_VERSION}" -DUSE_SDL)
+ 
+ option(BUILD_MAC_APP "Build standalone application for MacOS" OFF)
++option(FORCE_HOME_AS_STATE_DIR "Statedir will be /.ivan/ in current user's homedir" OFF)
+ 
+ if(UNIX)
+   add_definitions(-DUNIX)
+   include(GNUInstallDirs)
++  if(FORCE_HOME_AS_STATE_DIR)
++    add_definitions(-DFORCE_HOME_AS_STATE_DIR)
++  endif(FORCE_HOME_AS_STATE_DIR)
+ 
+   if(BUILD_MAC_APP)
+     install(DIRECTORY Graphics Script Music Sound DESTINATION "ivan")
+diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp
+index 323a185..012feb3 100644
+--- a/Main/Source/game.cpp
++++ b/Main/Source/game.cpp
+@@ -5191,6 +5191,9 @@ festring game::GetDataDir()
+ 
+ festring game::GetStateDir()
+ {
++#ifdef FORCE_HOME_AS_STATE_DIR
++  return GetHomeDir()+"/.ivan/";
++#endif
+ #ifdef UNIX
+ #ifdef MAC_APP
+   return GetHomeDir();
diff --git a/pkgs/misc/cups/drivers/samsung/default.nix b/pkgs/misc/cups/drivers/samsung/1.00.37.nix
index b2c4bbb0f203..b2c4bbb0f203 100644
--- a/pkgs/misc/cups/drivers/samsung/default.nix
+++ b/pkgs/misc/cups/drivers/samsung/1.00.37.nix
diff --git a/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix b/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix
index 35b0ba3684fe..df0a270a5b2b 100644
--- a/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix
+++ b/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix
@@ -39,5 +39,6 @@ in stdenv.mkDerivation rec {
     homepage = http://www.samsung.com/;
     license = licenses.unfree;
     platforms = platforms.linux;
+    broken = true;   # libscmssc.so and libmfp.so can't find their library dependencies at run-time
   };
 }
diff --git a/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix
index fbe44c6540b3..18db78d82ad5 100644
--- a/pkgs/misc/emulators/higan/default.nix
+++ b/pkgs/misc/emulators/higan/default.nix
@@ -23,7 +23,8 @@ stdenv.mkDerivation rec {
   postPatch = "sed '1i#include <cmath>' -i higan/fc/ppu/ppu.cpp";
 
   buildInputs =
-  [ p7zip pkgconfig libX11 libXv udev libGLU_combined SDL libao openal libpulseaudio gtk2 gtksourceview ];
+  [ p7zip pkgconfig libX11 libXv udev libGLU_combined
+    SDL libao openal libpulseaudio gtk2 gtksourceview ];
 
   unpackPhase = ''
     7z x $src
@@ -75,7 +76,7 @@ stdenv.mkDerivation rec {
         - NEC's PC Engine, SuperGrafx;
         - Bandai's WonderSwan, WonderSwan Color.
     '';
-    homepage = https://byuu.org/higan/;
+    homepage = https://byuu.org/emulation/higan/;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; unix;
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index 1a257518e728..c2665353a390 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -39,16 +39,16 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "3.14";
+    version = "3.17";
     url = "https://dl.winehq.org/wine/source/3.x/wine-${version}.tar.xz";
-    sha256 = "01dhn3a6k3dwnrbz4bxvszhh5sxwy6s89y459g805hjmq8s6d2a7";
+    sha256 = "08fcziadw40153a9rv630m7iz6ipfzylms5y191z4sj2vvhy5vac";
     inherit (stable) mono gecko32 gecko64;
   };
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-compholio/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "0h6gck0p92hin0m13q1hnlfnqs4vy474w66ppinvqms2zn3vibgi";
+    sha256 = "1ds9q90xjg59ikic98kqkhmijnqx4yplvwsm6rav4mx72yci7d4w";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 54ad32622756..20b91ba466a2 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -9,9 +9,8 @@ assert x11Support -> xlibsWrapper != null;
 assert cupsSupport -> cups != null;
 let
   version = "9.${ver_min}";
-  ver_min = "24";
-  # ghostscript*.tar.xz in https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9xx/SHA512SUMS
-  sha512 = "dcbeeb5d3dd5ccaf949dc4be68363c50b1d35e647be4790a50b1bbf5f259f1d9181f705be27bfca708c4d270f945ff4b24e3db10b57800c1ee0ea7a40931c547";
+  ver_min = "25";
+  sha512 = "18pcqzva7pq2a9mmqf9pq8x4winb6qmzni49vq2qx50k60rwyv1kdmixik3ym2bpj5p1j8g0vb47w7w2cf4lba5q583ylpd8rshn73s";
 
   fonts = stdenv.mkDerivation {
     name = "ghostscript-fonts";
diff --git a/pkgs/misc/themes/materia-theme/default.nix b/pkgs/misc/themes/materia-theme/default.nix
index 0dd490a35b59..c486d8462ce6 100644
--- a/pkgs/misc/themes/materia-theme/default.nix
+++ b/pkgs/misc/themes/materia-theme/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     patchShebangs install.sh
     sed -i install.sh \
       -e "s|if .*which gnome-shell.*;|if true;|" \
-      -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${gnome3.version}|"
+      -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}|"
     mkdir -p $out/share/themes
     ./install.sh --dest $out/share/themes
     rm $out/share/themes/*/COPYING
diff --git a/pkgs/misc/themes/tetra/default.nix b/pkgs/misc/themes/tetra/default.nix
index bcaf67d79706..0d2ddb95166d 100644
--- a/pkgs/misc/themes/tetra/default.nix
+++ b/pkgs/misc/themes/tetra/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "tetra-gtk-theme-${version}";
-  version = "0.1.6";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner  = "hrdwrrsk";
     repo   = "tetra-gtk-theme";
     rev    = version;
-    sha256 = "0jdgj7ac9842cgrjnzdqlf1f3hlf9v7xk377pvqcz2lwcr1dfaxz";
+    sha256 = "1lzkmswv3ml2zj80z067j1hj1cvpdcl86jllahqx3jwnmr0a4fhd";
   };
 
   preBuild = ''
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index bb6d60e33fb5..4c6c577ce6d1 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -53,12 +53,12 @@
   };
 
   ale = buildVimPluginFrom2Nix {
-    name = "ale-2018-09-29";
+    name = "ale-2018-10-03";
     src = fetchFromGitHub {
       owner = "w0rp";
       repo = "ale";
-      rev = "04ed87c8829015ff3653a35fb4f6d7a71668d736";
-      sha256 = "1iw0chk1sg60yaxzj3m7dp9j7cn8wpklxvz082isk5y1ndcfqz5w";
+      rev = "e984497ec9dc8a465c2873d64c51629c9a559111";
+      sha256 = "074s3rgd71nvnanzz1ivd3xpji3qqnsd4ix9ka2xajlscn7i5x6q";
     };
   };
 
@@ -334,22 +334,22 @@
   };
 
   denite-nvim = buildVimPluginFrom2Nix {
-    name = "denite-nvim-2018-09-27";
+    name = "denite-nvim-2018-09-30";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "67351fc647450ed17f164ca68758d8753e8f0f13";
-      sha256 = "1zxqdwx351z5hf8yr3b86ymxajlywkv9jr3dvnn8lhpipavkvmwf";
+      rev = "3ffc9a27dd6c2ae4c98f0a153564ee64da2722b2";
+      sha256 = "1q1rh1nw90g04jghc4jhaccssv1r7lc69ij00b3v2253ld9bdmlv";
     };
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
-    name = "deol-nvim-2018-06-07";
+    name = "deol-nvim-2018-10-03";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "195e63e10f320c0dc5c7e6372fe4f6ba96e93dd8";
-      sha256 = "0zb0pa1z847hpbb726i2vmryqap0yvdwnib4r8v1a7h06vvj17qy";
+      rev = "61283778287107a5e2a80b360d6d53610a27774f";
+      sha256 = "099dqlrz5baycrgz27m8hk6xy103jrdgph1yg7nmkchavvjp2rz1";
     };
   };
 
@@ -365,12 +365,12 @@
   };
 
   deoplete-go = buildVimPluginFrom2Nix {
-    name = "deoplete-go-2018-08-21";
+    name = "deoplete-go-2018-09-30";
     src = fetchFromGitHub {
       owner = "zchee";
       repo = "deoplete-go";
-      rev = "c1bdcfa71dcdaec8a1be8f396fc681e104e93a05";
-      sha256 = "0v9i6gz150m7dl7hwk1jzk8f0l23rbagfwwmvhn45akgjyxk4dmq";
+      rev = "5b2c70947eaeafabe3d5429527dc0fbd7e1aad64";
+      sha256 = "0vwsd5mpyaa4ixqavqvxc0b0515v9iidqzxzv1di73xlxrmaghzi";
       fetchSubmodules = true;
     };
   };
@@ -417,12 +417,12 @@
   };
 
   deoplete-nvim = buildVimPluginFrom2Nix {
-    name = "deoplete-nvim-2018-09-12";
+    name = "deoplete-nvim-2018-10-03";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "93f6e3bce8229557b952dcad792786b1cc228991";
-      sha256 = "033iskhyz91158ifmpzpv1gi4rfx368c6knakj65spcrlfci58y9";
+      rev = "63fb188c547eb5ccf8cd713a33fbb7c80ac03ec9";
+      sha256 = "1f2cfqyc17b8jvd0a2qw0njaw8ac15zbsnjvnwls3wm1f9mmhh6g";
     };
   };
 
@@ -437,12 +437,12 @@
   };
 
   echodoc-vim = buildVimPluginFrom2Nix {
-    name = "echodoc-vim-2018-09-09";
+    name = "echodoc-vim-2018-09-30";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "echodoc.vim";
-      rev = "781b1622029cd89350e6383da8ead834fb0cedd2";
-      sha256 = "018xrql2prik0v9g0099k883r5gdgnip36vidnzmkr0b0h5bgw6a";
+      rev = "4e229bdc8fadf9842ce873665b63149db200adbf";
+      sha256 = "0xqh1fdi89nph3f400bxqdsp6j0pcxi7l3ay4wldxlljhpva20zr";
     };
   };
 
@@ -549,12 +549,12 @@
   };
 
   fzf-vim = buildVimPluginFrom2Nix {
-    name = "fzf-vim-2018-09-12";
+    name = "fzf-vim-2018-10-01";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "c3954d294a0f6c4fb5a46a1839cd42ec26767dea";
-      sha256 = "0pipa7vgx4vkaysyf195yphggxj5kki66yksfvdvw6yxiicap1ml";
+      rev = "c6275ee1080de4d94bb3f3cfd6e7cc0ccecd9e64";
+      sha256 = "1xy7yk4d9p7mbk8s9nj5kqihdgb4a4b004ivbnxwappj52znzw1g";
     };
   };
 
@@ -719,12 +719,12 @@
   };
 
   julia-vim = buildVimPluginFrom2Nix {
-    name = "julia-vim-2018-09-26";
+    name = "julia-vim-2018-10-01";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "9fe5ce6e4e373ed34a4462bbfac6cedfceb30c22";
-      sha256 = "1xww17h56q1fl83yvfz1kw6v57070ab904l3c0r97s9x0mirlvxb";
+      rev = "6e218a18d7b753423c59790105feb33d0388e2d0";
+      sha256 = "1wl3djm8fc44da6srvw7g3r1xi5j6742wjbz8i98qalai5fkcibd";
     };
   };
 
@@ -809,12 +809,12 @@
   };
 
   ncm2 = buildVimPluginFrom2Nix {
-    name = "ncm2-2018-09-20";
+    name = "ncm2-2018-09-30";
     src = fetchFromGitHub {
       owner = "ncm2";
       repo = "ncm2";
-      rev = "5b5984b5528a90c40bf1d98c48bda1eda6b5e0f0";
-      sha256 = "1fwg5y3kbxdv64kglkd028kyvp8k9i5wppvw56iwf4qncpd66sdg";
+      rev = "02a263f7e38ee9569d8338da2d1cab2708b59150";
+      sha256 = "0gz3vyv9a3kl3bd3mq7qlgkfvz1p9gnk7fjjb7bsabayq3854di9";
     };
   };
 
@@ -939,12 +939,12 @@
   };
 
   neomake = buildVimPluginFrom2Nix {
-    name = "neomake-2018-09-21";
+    name = "neomake-2018-10-01";
     src = fetchFromGitHub {
       owner = "benekastah";
       repo = "neomake";
-      rev = "1686a91cc4ea4b48152e314decb827946221b1ad";
-      sha256 = "1radvd8nvbgjf158jdymvwi050fncqsf7vw3kw7hcz4adk97a1pr";
+      rev = "a6715ed7df767ac75166b22305232687f47f5be8";
+      sha256 = "0g8rm6y9vvzy1wxrxwjg6y0vw8na727z7mvjf8d20zmscpvmarj0";
     };
   };
 
@@ -959,12 +959,12 @@
   };
 
   neosnippet-snippets = buildVimPluginFrom2Nix {
-    name = "neosnippet-snippets-2018-09-12";
+    name = "neosnippet-snippets-2018-09-30";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet-snippets";
-      rev = "e61e966339bbab2abba6ba92bccd8825463b2d0d";
-      sha256 = "0yis1r2ypxym421gwlsm8zszsg490xw5q0h111k077x19qa5j4fs";
+      rev = "ec928a971f32150119f0ab73d289ea82e2740ae0";
+      sha256 = "1ff8a9z1f3f39y3cqxj33kls4mf5ax1pwxcxhfcxprj48vqwpr7p";
     };
   };
 
@@ -1349,12 +1349,12 @@
   };
 
   syntastic = buildVimPluginFrom2Nix {
-    name = "syntastic-2018-08-27";
+    name = "syntastic-2018-10-03";
     src = fetchFromGitHub {
       owner = "scrooloose";
       repo = "syntastic";
-      rev = "0295d8241db23e24b120e0360a899cb375793a1e";
-      sha256 = "1fpfsc8snmkkbsjb4j1l872sgr840q73rdykr29w1q68q4m06vbc";
+      rev = "df9f7057d18f996b9e40c9c57eea3e016350abdf";
+      sha256 = "1yrs2yli39wjvmwnzsxg57i6kldhcmbwr90cqgbf6qi09rba828p";
     };
   };
 
@@ -1519,12 +1519,12 @@
   };
 
   verilog_systemverilog-vim = buildVimPluginFrom2Nix {
-    name = "verilog_systemverilog-vim-2018-09-06";
+    name = "verilog_systemverilog-vim-2018-09-29";
     src = fetchFromGitHub {
       owner = "vhda";
       repo = "verilog_systemverilog.vim";
-      rev = "2cb0da6a325f19bf662c60c5363bb59e98442c33";
-      sha256 = "1gyyaqj7assryaprxm9a3zcnappr3lvqmgphapa53qq6s6vmljw5";
+      rev = "b82caf39715d7645bd6229e033bea5bb5144ae8c";
+      sha256 = "0i7bqg9aw6c3f0zhs7rq38m44xv7qlhhg0nabnhpk2xkw84cms69";
     };
   };
 
@@ -1739,12 +1739,12 @@
   };
 
   vim-airline = buildVimPluginFrom2Nix {
-    name = "vim-airline-2018-09-25";
+    name = "vim-airline-2018-10-03";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "a0298263b7fd55827839862ffd3a8d5b2a787a5c";
-      sha256 = "115mwvkqhfrssihrlb1ds3f82gqmp6ph75nw24l4lwdr1nv6p1r0";
+      rev = "f045452743736d53c7471bfb4698fd48569dc1e0";
+      sha256 = "16wmigvwxxryx1jkpsfbxwmlglrv1jjmmpckgsxwg4j6v4vkgk4g";
     };
   };
 
@@ -1959,12 +1959,12 @@
   };
 
   vim-dispatch = buildVimPluginFrom2Nix {
-    name = "vim-dispatch-2018-09-19";
+    name = "vim-dispatch-2018-10-02";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dispatch";
-      rev = "72a08f297e71f25e569f66a825ce2878b038e045";
-      sha256 = "1d0swdrgp3xls4ac854xsqpjipbml9a8yqxcg888xnm8jsqfhqn1";
+      rev = "ab7470d4b03bae9880bf2b5cef60fc0fb51b1101";
+      sha256 = "01slb3lcbdba0a4xky6i5xflh1cjm0aq6g8yyfzrgn4w8pq50h9p";
     };
   };
 
@@ -2088,6 +2088,16 @@
     };
   };
 
+  vim-flake8 = buildVimPluginFrom2Nix {
+    name = "vim-flake8-2018-09-21";
+    src = fetchFromGitHub {
+      owner = "nvie";
+      repo = "vim-flake8";
+      rev = "d50b3715ef386e4d998ff85dad6392110536478d";
+      sha256 = "135374sr4ymyslc9j8qgf4qbhijc3lm8jl9mhhzq1k0ndsz4w3k3";
+    };
+  };
+
   vim-ft-diff_fold = buildVimPluginFrom2Nix {
     name = "vim-ft-diff_fold-2013-02-10";
     src = fetchFromGitHub {
@@ -2109,12 +2119,12 @@
   };
 
   vim-ghost = buildVimPluginFrom2Nix {
-    name = "vim-ghost-2018-09-12";
+    name = "vim-ghost-2018-10-02";
     src = fetchFromGitHub {
       owner = "raghur";
       repo = "vim-ghost";
-      rev = "4e06bc238d23e6eb245a766105c62344a132b3f4";
-      sha256 = "1n5m7xbv4i0bwdqm39n9j6brbjayk4cpq38sqqbvgh3lia7nkbpv";
+      rev = "306d83c152cd9db54bc45c5a21b92615d07bd4c7";
+      sha256 = "1p6fjqlp1w7zy36isb1i3xzmjvlh2ng6iv3mb2ixllmiq4bdk26i";
     };
   };
 
@@ -2159,12 +2169,12 @@
   };
 
   vim-go = buildVimPluginFrom2Nix {
-    name = "vim-go-2018-09-26";
+    name = "vim-go-2018-10-04";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "3d8e82ecb4f66a151f3c1bff84728fa4e3db0ca9";
-      sha256 = "1fy7xsqrdqs569g03hccxpi17qjkibspjjcpddw7a9n5hb7zp8rv";
+      rev = "92b360fca43553b56766aaccaf3d9166575e6061";
+      sha256 = "0wq2v9damr8yp3nxxwdl1kd1vkndb456m33yjky7nrmxyshhxgnm";
     };
   };
 
@@ -2249,12 +2259,12 @@
   };
 
   vim-highlightedyank = buildVimPluginFrom2Nix {
-    name = "vim-highlightedyank-2018-09-28";
+    name = "vim-highlightedyank-2018-10-02";
     src = fetchFromGitHub {
       owner = "machakann";
       repo = "vim-highlightedyank";
-      rev = "ac2eeb8b384c27a4167fdf1788c2cae93f34ab07";
-      sha256 = "0i4ddagfbrii96msgfsmjsg356z3y71nab84850xqy74m2iivl8m";
+      rev = "26a2ecc1ac08462680074a721c265e42b1c545ba";
+      sha256 = "0ak8jws7qxjf52l3a97ks1ylf5ri7x03b90s2v4q3il4sry5h0m7";
     };
   };
 
@@ -2349,12 +2359,12 @@
   };
 
   vim-janah = buildVimPluginFrom2Nix {
-    name = "vim-janah-2017-04-09";
+    name = "vim-janah-2018-10-01";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-janah";
-      rev = "684a3343f36bb0f1e7c33281321fa3a70c08aa26";
-      sha256 = "0hq626cvyz5x6fmsqgdfp46pr783p6cz8bl49278gkcdgfb91wnr";
+      rev = "3b8ae976987b6ade2abeac25f0208e8bc90d7138";
+      sha256 = "16bygyri9qxyhl8n8md945wwy1i9lss4hwxa7yjl9ms2fzzragv4";
     };
   };
 
@@ -2820,12 +2830,12 @@
   };
 
   vim-ruby = buildVimPluginFrom2Nix {
-    name = "vim-ruby-2018-08-13";
+    name = "vim-ruby-2018-10-02";
     src = fetchFromGitHub {
       owner = "vim-ruby";
       repo = "vim-ruby";
-      rev = "68aa43c524b20aaaa269265d315a87b89e6d0148";
-      sha256 = "027lyy5wjgi0p23qxiaxssbargdv81ip2z04l7c2wgx4lgs5mi86";
+      rev = "a85f078d06ed11faf1b243315d67b6f37326686d";
+      sha256 = "1d76yjbk9jmh3ci1fbdzsfip0r1npk07vlwibjv4cli8icq5pghz";
     };
   };
 
@@ -2890,12 +2900,12 @@
   };
 
   vim-signify = buildVimPluginFrom2Nix {
-    name = "vim-signify-2018-08-05";
+    name = "vim-signify-2018-10-01";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-signify";
-      rev = "40d1a4ee19ac61ad772dfcedc4d4bd21810f1c0b";
-      sha256 = "1gvj2dqq96mf8h2jdyxr21jrvhr6r9bq9lsxgagvzi4ab81fm507";
+      rev = "ce2dd937bf3a394ef2fbeda8ab56d2b4437be3c3";
+      sha256 = "08ah81bn0cmqphi2lw2y7pjdg8sw2wjwc3p3j6pj0gyqx2bsf408";
     };
   };
 
@@ -2970,12 +2980,12 @@
   };
 
   vim-startify = buildVimPluginFrom2Nix {
-    name = "vim-startify-2018-08-02";
+    name = "vim-startify-2018-10-02";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-startify";
-      rev = "187e46aea30e242ef214cbfb20afc0ad49d38171";
-      sha256 = "15gmqm5qscnj70icibdjlw68r5zk1p5xzbznbzhar8l1yd5kkqgk";
+      rev = "556bf1d507dfaddfba4b5795716ea20f8ba902ac";
+      sha256 = "1jjj7iij08455rlc705m3pnbjg87r2l29jclzkiy7nsvjjh3dfwx";
     };
   };
 
@@ -3149,13 +3159,23 @@
     };
   };
 
+  vim-vue = buildVimPluginFrom2Nix {
+    name = "vim-vue-2018-09-01";
+    src = fetchFromGitHub {
+      owner = "posva";
+      repo = "vim-vue";
+      rev = "2df46524311e719af51394726f5f88fc2aa08bd2";
+      sha256 = "0bsg8j4871jvmsyi5mmpyhkmjxajf5ss3dx9072wdc21cx8pn185";
+    };
+  };
+
   vim-wakatime = buildVimPluginFrom2Nix {
-    name = "vim-wakatime-2018-09-24";
+    name = "vim-wakatime-2018-10-03";
     src = fetchFromGitHub {
       owner = "wakatime";
       repo = "vim-wakatime";
-      rev = "17e5d1b21128b955dba244d5d0d5ad9f359a5c68";
-      sha256 = "0v2hb6hzcdn4ks691m511las5mli6igfg3srxnr3a09krgxi512f";
+      rev = "3fe47846572032fc83d8300c596de6ded4f456a2";
+      sha256 = "0qgy2chdisym34892kzs3gbvq7bj64mxs4q4475hhwpr46p7lyrn";
     };
   };
 
@@ -3260,12 +3280,12 @@
   };
 
   vimtex = buildVimPluginFrom2Nix {
-    name = "vimtex-2018-09-28";
+    name = "vimtex-2018-10-03";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "196a8aa7e9f9d04c69adfa7643b0e6ae6b0d3b3b";
-      sha256 = "0d7322cflmi3sxh6nncslp3qdgd766k2mcplgji2744xff65bvma";
+      rev = "10f3304f39ec1b49e77bb351d0972db179cce1b3";
+      sha256 = "1yqajhr5q12yfjn9nvw4d8s89pcgkgv5hi1gd9wj7wjxk85wa6xm";
     };
   };
 
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index b6c1d584d6a4..a503f0bedadc 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -194,6 +194,7 @@ neutaaaaan/iosvkem
 nixprime/cpsm
 NLKNguyen/papercolor-theme
 noc7c9/vim-iced-coffee-script
+nvie/vim-flake8
 osyo-manga/shabadou.vim
 osyo-manga/vim-anzu
 osyo-manga/vim-textobj-multiblock
@@ -203,6 +204,7 @@ parsonsmatt/intero-neovim
 peterhoeg/vim-qml
 phanviet/vim-monokai-pro
 plasticboy/vim-markdown
+posva/vim-vue
 powerman/vim-plugin-AnsiEsc
 python-mode/python-mode
 Quramy/tsuquyomi
diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix
index 2d1909547b61..c53b7e50b9f3 100644
--- a/pkgs/os-specific/bsd/netbsd/default.nix
+++ b/pkgs/os-specific/bsd/netbsd/default.nix
@@ -2,6 +2,9 @@
 , yacc, flex, libressl, bash, less, writeText }:
 
 let
+  inherit (lib) optionalString replaceStrings;
+  inherit (stdenv) hostPlatform;
+
   fetchNetBSD = path: version: sha256: fetchcvs {
     cvsRoot = ":pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot";
     module = "src/${path}";
@@ -9,20 +12,52 @@ let
     tag = "netbsd-${builtins.replaceStrings ["."] ["-"] version}-RELEASE";
   };
 
+  # Needed to support cross correctly. Splicing only happens when we
+  # do callPackage, but sense everything is here, it needs to be done
+  # by hand. All native build inputs should come from here.
+  nbBuildPackages = buildPackages.netbsd;
+
+  MACHINE_ARCH = {
+    "i686" = "i386";
+  }.${hostPlatform.parsed.cpu.name} or hostPlatform.parsed.cpu.name;
+
+  MACHINE = {
+    "x86_64" = "amd64";
+    "aarch64" = "evbarm64";
+    "i686" = "i386";
+  }.${hostPlatform.parsed.cpu.name} or hostPlatform.parsed.cpu.name;
+
   netBSDDerivation = attrs: stdenv.mkDerivation ((rec {
-    name = "bsd-${attrs.pname or (baseNameOf attrs.path)}-netbsd-${attrs.version}";
+    name = "netbsd-${attrs.pname or (baseNameOf attrs.path)}-${attrs.version}";
     src = attrs.src or fetchNetBSD attrs.path attrs.version attrs.sha256;
 
     extraPaths = [ ];
     setOutputFlags = false;
 
-    nativeBuildInputs = [ makeMinimal mandoc groff install stat
-                          yacc flex tsort lorder ];
-    buildInputs = [ compat ];
+    nativeBuildInputs = [ yacc flex mandoc groff
+                          nbBuildPackages.makeMinimal
+                          nbBuildPackages.stat
+                          nbBuildPackages.install
+                          nbBuildPackages.tsort
+                          nbBuildPackages.lorder ];
+    buildInputs = [ nbPackages.compat ];
     installFlags = [ "includes" ];
+    # TODO: eventually move this to a make.conf
+    makeFlags = [
+      "MACHINE=${MACHINE}"
+      "MACHINE_ARCH=${MACHINE_ARCH}"
+
+      "AR=${stdenv.cc.targetPrefix}ar"
+      "CC=${stdenv.cc.targetPrefix}cc"
+      "CPP=${stdenv.cc.targetPrefix}cpp"
+      "CXX=${stdenv.cc.targetPrefix}c++"
+      "LD=${stdenv.cc.targetPrefix}ld"
+      "STRIP=${stdenv.cc.targetPrefix}strip"
+    ] ++ (attrs.makeFlags or []);
 
     # Definitions passed to share/mk/*.mk. Should be pretty simple -
     # eventually maybe move it to a configure script.
+    # TODO: don’t rely on DESTDIR, instead use prefix
     DESTDIR = "$(out)";
     TOOLDIR = "$(out)";
     USETOOLS = "never";
@@ -30,16 +65,21 @@ let
     NOGCCERROR = "yes";
     LEX = "flex";
     MKUNPRIVED = "yes";
-    HOST_SH = "${bash}/bin/sh";
+    HOST_SH = "${buildPackages.bash}/bin/sh";
     OBJCOPY = if stdenv.isDarwin then "true" else "objcopy";
-    MACHINE_ARCH = stdenv.hostPlatform.parsed.cpu.name;
-    MACHINE_CPU = stdenv.hostPlatform.parsed.cpu.name;
+    RPCGEN_CPP = "${stdenv.cc.targetPrefix}cpp";
+
+    MKPIC = if stdenv.isDarwin then "no" else "yes";
+    MKRELRO = if stdenv.isDarwin then "no" else "yes";
 
     INSTALL_FILE = "install -U -c";
     INSTALL_DIR = "xinstall -U -d";
     INSTALL_LINK = "install -U -l h";
     INSTALL_SYMLINK = "install -U -l s";
 
+    HOST_CC = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc";
+    HOST_CXX  = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
+
     # libs will be provided by cc-wrapper
     LIBCRT0 = "";
     LIBCRTI = "";
@@ -82,7 +122,7 @@ let
     # NetBSD makefiles should be able to detect this
     # but without they end up using gcc on Darwin stdenv
     preConfigure = ''
-      export HAVE_${if stdenv.cc.isGNU then "GCC" else "LLVM"}=${lib.head (lib.splitString "." (lib.getVersion stdenv.cc.cc))}
+      export HAVE_${if stdenv.cc.isClang then "LLVM" else "GCC"}=${lib.head (lib.splitString "." (lib.getVersion stdenv.cc.cc))}
 
       # Parallel building. Needs the space.
       export makeFlags+=" -j $NIX_BUILD_CORES"
@@ -125,15 +165,111 @@ let
       platforms = platforms.unix;
       license = licenses.bsd2;
     };
-  }) // attrs);
+  }) // (removeAttrs attrs ["makeFlags"]));
+
+  libutil = netBSDDerivation {
+    path = "lib/libutil";
+    version = "8.0";
+    sha256 = "077syyxd303m4x7avs5nxzk4c9n13d5lyk5aicsacqjvx79qrk3i";
+    extraPaths = [
+      (fetchNetBSD "common/lib/libutil" "8.0" "0q3ixrf36lip1dx0gafs0a03qfs5cs7n0myqq7af4jpjd6kh1831")
+    ];
+  };
+
+  libc = netBSDDerivation {
+    path = "lib/libc";
+    version = "8.0";
+    sha256 = "0lgbc58qgn8kwm3l011x1ml1kgcf7jsgq7hbf0hxhlbvxq5bljl3";
+    extraPaths = [
+      (fetchNetBSD "common/lib/libc" "8.0" "1kbhj0vxixvdy9fvsr5y70ri4mlkmim1v9m98sqjlzc1vdiqfqc8")
+    ];
+  };
+
+  make = netBSDDerivation {
+    path = "usr.bin/make";
+    sha256 = "103643qs3w5kiahir6cca2rkm5ink81qbg071qyzk63qvspfq10c";
+    version = "8.0";
+    postPatch = ''
+      # make needs this to pick up our sys make files
+      export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
+
+      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.prog.mk \
+        --replace '-Wl,-dynamic-linker=''${_SHLINKER}' "" \
+        --replace '-Wl,-rpath,''${SHLIBDIR}' ""
+      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.lib.mk \
+        --replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB='
+      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.kinc.mk \
+        --replace /bin/rm rm
+    '' + lib.optionalString stdenv.isDarwin ''
+      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.sys.mk \
+        --replace '-Wl,--fatal-warnings' "" \
+        --replace '-Wl,--warn-shared-textrel' ""
+      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.lib.mk \
+        --replace '-Wl,-soname,''${_LIB}.so.''${SHLIB_SOVERSION}' "" \
+        --replace '-Wl,--whole-archive' "" \
+        --replace '-Wl,--no-whole-archive' "" \
+        --replace '-Wl,--warn-shared-textrel' "" \
+        --replace '-Wl,-Map=''${_LIB}.so.''${SHLIB_SOVERSION}.map' "" \
+        --replace '-Wl,-rpath,''${SHLIBDIR}' ""
+    '';
+    postInstall = ''
+      make -C $NETBSDSRCDIR/share/mk FILESDIR=/share/mk install
+    '';
+    extraPaths = [
+      (fetchNetBSD "share/mk" "8.0" "033q4w3rmvwznz6m7fn9xcf13chyhwwl8ijj3a9mrn80fkwm55qs")
+    ];
+  };
+
+  libcurses = netBSDDerivation {
+    path = "lib/libcurses";
+    version = "8.0";
+    sha256 = "0azhzh1910v24dqx45zmh4z4dl63fgsykajrbikx5xfvvmkcq7xs";
+    buildInputs = [ nbPackages.libterminfo ];
+    makeFlags = [ "INCSDIR=/include" ];
+    NIX_CFLAGS_COMPILE = [
+      "-D__scanflike(a,b)="
+      "-D__va_list=va_list"
+      "-D__warn_references(a,b)="
+    ] ++ lib.optional stdenv.isDarwin "-D__strong_alias(a,b)=";
+    propagatedBuildInputs = [ nbPackages.compat ];
+    MKDOC = "no"; # missing vfontedpr
+    postPatch = ''
+      substituteInPlace printw.c \
+        --replace "funopen2(win, NULL, winwrite, NULL, NULL, NULL)" NULL \
+        --replace "__strong_alias(vwprintw, vw_printw)" 'extern int vwprintw(WINDOW*, const char*, va_list) __attribute__ ((alias ("vw_printw")));'
+      substituteInPlace scanw.c \
+        --replace "__strong_alias(vwscanw, vw_scanw)" 'extern int vwscanw(WINDOW*, const char*, va_list) __attribute__ ((alias ("vw_scanw")));'
+    '';
+  };
+
+  libedit = netBSDDerivation {
+    path = "lib/libedit";
+    buildInputs = [ nbPackages.libterminfo libcurses ];
+    propagatedBuildInputs = [ nbPackages.compat ];
+    makeFlags = [ "INCSDIR=/include" ];
+    postPatch = ''
+      sed -i '1i #undef bool_t' el.h
+      substituteInPlace config.h \
+        --replace "#define HAVE_STRUCT_DIRENT_D_NAMLEN 1" ""
+    '';
+    NIX_CFLAGS_COMPILE = [
+      "-D__noinline="
+      "-D__scanflike(a,b)="
+      "-D__va_list=va_list"
+    ];
+    version = "8.0";
+    sha256 = "0pmqh2mkfp70bwchiwyrkdyq9jcihx12g1awd6alqi9bpr3f9xmd";
+  };
+
+  nbPackages = rec {
 
   ##
   ## BOOTSTRAPPING
   ##
   makeMinimal = netBSDDerivation rec {
     path = "tools/make";
-    sha256 = "0l4794zwj2haark3azf9xwcwqlkbrifhb2glaa9iba4dkg2mklsb";
-    version = "7.1.2";
+    sha256 = "1xbzfd4i7allrkk1if74a8ymgpizyj0gkvdigzzj37qar7la7nc1";
+    version = "8.0";
 
     buildInputs = [];
     nativeBuildInputs = [];
@@ -162,10 +298,10 @@ let
     extraPaths = [ make.src ] ++ make.extraPaths;
   };
 
-  compat = netBSDDerivation rec {
+  compat = if hostPlatform.isNetBSD then null else netBSDDerivation rec {
     path = "tools/compat";
-    sha256 = "17phkfafybxwhzng44k5bhmag6i55br53ky1nwcmw583kg2fa86z";
-    version = "7.1.2";
+    sha256 = "050449lq5gpxqsripdqip5ks49g5ypjga188nd3ss8dg1zf7ydz3";
+    version = "8.0";
 
     setupHooks = [
       ../../../build-support/setup-hooks/role.bash
@@ -173,7 +309,7 @@ let
     ];
 
     # override defaults to prevent infinite recursion
-    nativeBuildInputs = [ makeMinimal ];
+    nativeBuildInputs = [ nbBuildPackages.makeMinimal ];
     buildInputs = [ zlib ];
 
     # temporarily use gnuinstall for bootstrapping
@@ -206,7 +342,12 @@ let
       install -D $NETBSDSRCDIR/include/utmpx.h $out/include/utmpx.h
       install -D $NETBSDSRCDIR/include/tzfile.h $out/include/tzfile.h
       install -D $NETBSDSRCDIR/sys/sys/tree.h $out/include/sys/tree.h
-
+      install -D $NETBSDSRCDIR/include/nl_types.h $out/include/nl_types.h
+      install -D $NETBSDSRCDIR/include/stringlist.h $out/include/stringlist.h
+   '' + lib.optionalString stdenv.isDarwin ''
+      mkdir -p $out/include/ssp
+      touch $out/include/ssp/ssp.h
+   '' + ''
       mkdir -p $out/lib/pkgconfig
       substitute ${./libbsd-overlay.pc} $out/lib/pkgconfig/libbsd-overlay.pc \
         --subst-var-by out $out \
@@ -222,25 +363,25 @@ let
       find $out -type d -empty -delete
     '';
     extraPaths = [ libc.src libutil.src
-      (fetchNetBSD "include" "7.1.2" "1vc58xrhrp202biiv1chhlh0jwnjr7k3qq91pm46k6v5j95j0qwp")
-      (fetchNetBSD "external/bsd/flex" "7.1.2" "0m0m72r3zzc9gi432h3xkqdzspr4n0hj4m8h7j74pwbvpfg9d9qq")
-      (fetchNetBSD "sys/sys" "7.1.2" "1vwnv5nk7rlgn5w9nkdqj9652hmwmfwqxj3ymcz0zk10abbaib93")
+      (fetchNetBSD "include" "8.0" "128m77k16i7frvk8kifhmxzk7a37m7z1s0bbmja3ywga6sx6v6sq")
+      (fetchNetBSD "external/bsd/flex" "8.0" "0yxcjshz9nj827qhmjwwjmzvmmqgaf0d25b42k7lj84vliwrgyr6")
+      (fetchNetBSD "sys/sys" "8.0" "0b0yjjy0c0cvk5nyffppqwxlwh2s1qr2xzl97a9ldck00dibar94")
     ] ++ libutil.extraPaths ++ libc.extraPaths;
   };
 
   # HACK to ensure parent directories exist. This emulates GNU
   # install’s -D option. No alternative seems to exist in BSD install.
   install = let binstall = writeText "binstall" ''
-    #!/usr/bin/env sh
+    #!${stdenv.shell}
     for last in $@; do true; done
     mkdir -p $(dirname $last)
     xinstall "$@"
   ''; in netBSDDerivation {
     path = "usr.bin/xinstall";
-    version = "7.1.2";
-    sha256 = "0nzhyh714m19h61m45gzc5dszkbafp5iaphbp5mza6w020fzf2y8";
+    version = "8.0";
+    sha256 = "1f6pbz3qv1qcrchdxif8p5lbmnwl8b9nq615hsd3cyl4avd5bfqj";
     extraPaths = [ mtree.src make.src ];
-    nativeBuildInputs = [ makeMinimal mandoc groff ];
+    nativeBuildInputs = [ nbBuildPackages.makeMinimal mandoc groff ];
     buildInputs = [ compat fts ];
     installPhase = ''
       runHook preInstall
@@ -258,13 +399,13 @@ let
     pname = "fts";
     path = "include/fts.h";
     sha256 = "01d4fpxvz1pgzfk5xznz5dcm0x0gdzwcsfm1h3d0xc9kc6hj2q77";
-    version = "7.1.2";
+    version = "8.0";
     nativeBuildInputs = [ ];
     propagatedBuildInputs = [ compat ];
     extraPaths = [
-      (fetchNetBSD "lib/libc/gen/fts.c" "7.1.2" "1yfd2liypj6xky2h0mgxi5lgpflmkkg4zf3ii3apz5cf8jq9gmn9")
-      (fetchNetBSD "lib/libc/include/namespace.h" "7.1.2" "0kwd4v8y0mfjhmwplsk52pvzbcpvpp2qy2g8c0jmfraam63q6q1y")
-      (fetchNetBSD "lib/libc/gen/fts.3" "7.1.2" "1asxw0n3fhjdadwkkq3xplfgqgl3q32w1lyrvbakfa3gs0wz5zc1")
+      (fetchNetBSD "lib/libc/gen/fts.c" "8.0" "1a8hmf26242nmv05ipn3ircxb0jqmmi66rh78kkyi9vjwkfl3qn7")
+      (fetchNetBSD "lib/libc/include/namespace.h" "8.0" "1sjvh9nw3prnk4rmdwrfsxh6gdb9lmilkn46jcfh3q5c8glqzrd7")
+      (fetchNetBSD "lib/libc/gen/fts.3" "8.0" "1asxw0n3fhjdadwkkq3xplfgqgl3q32w1lyrvbakfa3gs0wz5zc1")
     ];
     buildPhase = ''
       cc  -c -Iinclude -Ilib/libc/include lib/libc/gen/fts.c \
@@ -289,322 +430,124 @@ let
 
   stat = netBSDDerivation {
     path = "usr.bin/stat";
-    version = "7.1.2";
+    version = "8.0";
     sha256 = "0z4r96id2r4cfy443rw2s1n52n186xm0lqvs8s3qjf4314z7r7yh";
-    nativeBuildInputs = [ makeMinimal mandoc groff install ];
+    nativeBuildInputs = [ nbBuildPackages.makeMinimal nbBuildPackages.install
+                          mandoc groff ];
   };
 
   tsort = netBSDDerivation {
     path = "usr.bin/tsort";
-    version = "7.1.2";
+    version = "8.0";
     sha256 = "1dqvf9gin29nnq3c4byxc7lfd062pg7m84843zdy6n0z63hnnwiq";
-    nativeBuildInputs = [ makeMinimal mandoc groff install ];
+    nativeBuildInputs = [ nbBuildPackages.makeMinimal nbBuildPackages.install
+                          mandoc groff ];
   };
 
   lorder = netBSDDerivation {
     path = "usr.bin/lorder";
-    version = "7.1.2";
+    version = "8.0";
     sha256 = "0rjf9blihhm0n699vr2bg88m4yjhkbxh6fxliaay3wxkgnydjwn2";
-    nativeBuildInputs = [ makeMinimal mandoc groff install ];
+    nativeBuildInputs = [ nbBuildPackages.makeMinimal nbBuildPackages.install
+                          mandoc groff ];
   };
   ##
   ## END BOOTSTRAPPING
   ##
 
-  libutil = netBSDDerivation {
-    path = "lib/libutil";
-    version = "7.1.2";
-    sha256 = "12848ynizz13mvn2kndrkq482xhkw323b7c8fg0zli1nhfsmwsm8";
-    extraPaths = [
-      (fetchNetBSD "common/lib/libutil" "7.1.2" "0q3ixrf36lip1dx0gafs0a03qfs5cs7n0myqq7af4jpjd6kh1831")
-    ];
-  };
-
-  libc = netBSDDerivation {
-    path = "lib/libc";
-    version = "7.1.2";
-    sha256 = "13rcx3mbx2644z01zgk9gggdfr0hqdbsvd7zrsm2l13yf9aix6pg";
-    extraPaths = [
-      (fetchNetBSD "common/lib/libc" "7.1.2" "1va8zd4lqyrc1d0c9q04r8y88cfxpkhwcxasggxxvhksd3khkpha")
-    ];
-  };
-
-  make = netBSDDerivation {
-    path = "usr.bin/make";
-    sha256 = "0srkkg6qdzqlccfi4xh19gl766ks6hpss76bnfvwmd0zg4q4zdar";
-    version = "7.1.2";
-    postPatch = ''
-      # make needs this to pick up our sys make files
-      export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
-
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.prog.mk \
-        --replace '-Wl,-dynamic-linker=''${_SHLINKER}' "" \
-        --replace '-Wl,-rpath,''${SHLIBDIR}' ""
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.lib.mk \
-        --replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB='
-    '' + lib.optionalString stdenv.isDarwin ''
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.sys.mk \
-        --replace '-Wl,--fatal-warnings' "" \
-        --replace '-Wl,--warn-shared-textrel' ""
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.lib.mk \
-        --replace '-Wl,-soname,''${_LIB}.so.''${SHLIB_SOVERSION}' "" \
-        --replace '-Wl,--whole-archive' "" \
-        --replace '-Wl,--no-whole-archive' "" \
-        --replace '-Wl,--warn-shared-textrel' "" \
-        --replace '-Wl,-Map=''${_LIB}.so.''${SHLIB_SOVERSION}.map' "" \
-        --replace '-Wl,-rpath,''${SHLIBDIR}' ""
-    '';
-    postInstall = ''
-      (cd $NETBSDSRCDIR/share/mk && make FILESDIR=/share/mk install)
-    '';
-    extraPaths = [
-      (fetchNetBSD "share/mk" "7.1.2" "0570v0siv0wygn8ygs1yy9pgk9xjw9x1axr5qg4xrddv3lskf9xa")
-    ];
-  };
-
   mtree = netBSDDerivation {
     path = "usr.sbin/mtree";
-    version = "7.1.2";
-    sha256 = "1dhsyfvcm67kf5zdbg5dmx5y8fimnbll6qxwp3gjfmbxqigmc52m";
+    version = "8.0";
+    sha256 = "0hanmzm8bgwz2bhsinmsgfmgy6nbdhprwmgwbyjm6bl17vgn7vid";
+    extraPaths = [ mknod.src ];
   };
 
-  who = netBSDDerivation {
-    path = "usr.bin/who";
-    version = "7.1.2";
-    sha256 = "17ffwww957m3qw0b6fkgjpp12pd5ydg2hs9dxkkw0qpv11j00d88";
-    postPatch = lib.optionalString stdenv.isLinux ''
-      substituteInPlace $NETBSDSRCDIR/usr.bin/who/utmpentry.c \
-        --replace "utmptime = st.st_mtimespec" "utmptime = st.st_mtim" \
-        --replace "timespeccmp(&st.st_mtimespec, &utmptime, >)" "st.st_mtim.tv_sec == utmptime.tv_sec ? st.st_mtim.tv_nsec > utmptime.tv_nsec : st.st_mtim.tv_sec > utmptime.tv_sec"
-   '' + lib.optionalString stdenv.isDarwin ''
-      substituteInPlace $NETBSDSRCDIR/usr.bin/who/utmpentry.c \
-        --replace "timespeccmp(&st.st_mtimespec, &utmpxtime, >)" "st.st_mtimespec.tv_sec == utmpxtime.tv_sec ? st.st_mtimespec.tv_nsec > utmpxtime.tv_nsec : st.st_mtimespec.tv_sec > utmpxtime.tv_sec"
-   '' + ''
-      substituteInPlace $NETBSDSRCDIR/usr.bin/who/utmpentry.c \
-        --replace "strncpy(e->name, up->ut_name, sizeof(up->ut_name))" "strncpy(e->name, up->ut_user, sizeof(up->ut_user))" \
-        --replace "timespecclear(&utmptime)" "utmptime.tv_sec = utmptime.tv_nsec = 0" \
-        --replace "timespecclear(&utmpxtime)" "utmpxtime.tv_sec = utmpxtime.tv_nsec = 0"
-    '';
+  mknod = netBSDDerivation {
+    path = "sbin/mknod";
+    version = "8.0";
+    sha256 = "0vq66v0hj0r4z2r2z2d3l3c5vh48pvcdmddc8bhm8hzq2civ5df2";
   };
 
-in rec {
-  inherit compat install netBSDDerivation fts;
-
   getent = netBSDDerivation {
     path = "usr.bin/getent";
     sha256 = "1ylhw4dnpyrmcy8n5kjcxywm8qc9p124dqnm17x4magiqx1kh9iz";
-    version = "7.1.2";
+    version = "8.0";
     patches = [ ./getent.patch ];
   };
 
   getconf = netBSDDerivation {
     path = "usr.bin/getconf";
     sha256 = "122vslz4j3h2mfs921nr2s6m078zcj697yrb75rwp2hnw3qz4s8q";
-    version = "7.1.2";
+    version = "8.0";
   };
 
   dict = netBSDDerivation {
     path = "share/dict";
-    version = "7.1.2";
-    sha256 = "0nickhsjwgnr2h9nvwflvgfz93kqms5hzdnpyq02crpj35w98bh4";
+    version = "8.0";
+    sha256 = "1pk0y3xc5ihc2k89wjkh33qqx3w9q34k03k2qcffvbqh1l6wm36l";
     makeFlags = [ "BINDIR=/share" ];
   };
 
-  games = netBSDDerivation {
-    path = "games";
-    sha256 = "04wjsang8f8kxsifiayklbxaaxmm3vx9rfr91hfbxj4hk8gkqzy1";
-    version = "7.1.2";
-    makeFlags = [ "BINDIR=/bin"
-                  "SCRIPTSDIR=/bin" ];
-    postPatch = ''
-      sed -i '1i #include <time.h>' adventure/save.c
-
-      for f in $(find . -name pathnames.h); do
-        substituteInPlace $f \
-          --replace /usr/share/games $out/share/games \
-          --replace /usr/games $out/bin \
-          --replace /usr/libexec $out/libexec \
-          --replace /usr/bin/more ${less}/bin/less \
-          --replace /usr/share/dict ${dict}/share/dict
-      done
-      substituteInPlace boggle/boggle/bog.h \
-        --replace /usr/share/games $out/share/games
-      substituteInPlace ching/ching/ching.sh \
-        --replace /usr/share $out/share \
-        --replace /usr/libexec $out/libexec
-      substituteInPlace hunt/huntd/driver.c \
-        --replace "(void) setpgrp(getpid(), getpid());" ""
-
-      # Disable some games that don't build. They should be possible
-      # to build but need to look at how to implement stuff in
-      # Linux. macOS is missing gettime. TODO try to get these
-      # working.
-      disableGame() {
-        substituteInPlace Makefile --replace $1 ""
-      }
-
-      disableGame atc
-      disableGame dm
-      disableGame dab
-      disableGame sail
-      disableGame trek
-      ${lib.optionalString stdenv.isLinux "disableGame boggle"}
-      ${lib.optionalString stdenv.isLinux "disableGame hunt"}
-      ${lib.optionalString stdenv.isLinux "disableGame larn"}
-      ${lib.optionalString stdenv.isLinux "disableGame phantasia"}
-      ${lib.optionalString stdenv.isLinux "disableGame rogue"}
-      ${lib.optionalString stdenv.isDarwin "disableGame adventure"}
-      ${lib.optionalString stdenv.isDarwin "disableGame factor"}
-      ${lib.optionalString stdenv.isDarwin "disableGame gomoku"}
-      ${lib.optionalString stdenv.isDarwin "disableGame mille"}
-    '';
-
-    # HACK strfile needs to be installed first & in the path. The
-    # Makefile should do this for us but haven't gotten it to work
-    preBuild = ''
-      (cd fortune/strfile && make && make BINDIR=/bin install)
-      export PATH=$out/bin:$PATH
-    '';
-
-    postInstall = ''
-      substituteInPlace $out/usr/share/games/quiz.db/index \
-        --replace /usr $out
-    '';
-
-    NIX_CFLAGS_COMPILE = [
-      "-D__noinline="
-      "-D__scanflike(a,b)="
-      "-D__va_list=va_list"
-      "-DOXTABS=XTABS"
-      "-DRANDOM_MAX=RAND_MAX"
-      "-DINFTIM=-1"
-      (lib.optionalString stdenv.hostPlatform.isMusl "-include sys/ttydefaults.h -include sys/file.h")
-      "-DBE32TOH(x)=((void)0)"
-      "-DBE64TOH(x)=((void)0)"
-      "-D__c99inline=__inline"
-    ];
-
-    buildInputs = [ compat libcurses libterminfo libressl ];
-    extraPaths = [ dict.src who.src ];
-  };
-
-  finger = netBSDDerivation {
-    path = "usr.bin/finger";
-    sha256 = "0jl672z50f2yf7ikp682b3xrarm6bnrrx9vi94xnp2fav8m8zfyi";
-    version = "7.1.2";
-    NIX_CFLAGS_COMPILE = [
-      (if stdenv.isLinux then "-DSUPPORT_UTMP" else "-USUPPORT_UTMP")
-      (if stdenv.isDarwin then "-DSUPPORT_UTMPX" else "-USUPPORT_UTMPX")
-    ];
-    postPatch = ''
-      NIX_CFLAGS_COMPILE+=" -I$NETBSDSRCDIR/include"
-
-      substituteInPlace extern.h \
-        --replace psort _psort
-
-      ${who.postPatch}
-    '';
-    extraPaths = [ who.src ]
-              ++ lib.optional stdenv.isDarwin (fetchNetBSD "include/utmp.h" "7.1.2" "05690fzz0825p2bq0sfyb00mxwd0wa06qryqgqkwpqk9y2xzc7px");
-  };
-
   fingerd = netBSDDerivation {
     path = "libexec/fingerd";
-    sha256 = "1hhdq70hrxxkjnjfmjm3w8w9g9xq2ngxaxk0chy4vm7chg9nfpmp";
-    version = "7.1.2";
-  };
-
-  libedit = netBSDDerivation {
-    path = "lib/libedit";
-    buildInputs = [ libterminfo libcurses ];
-    propagatedBuildInputs = [ compat ];
-    makeFlags = [ "INCSDIR=/include" ];
-    postPatch = ''
-      sed -i '1i #undef bool_t' el.h
-      substituteInPlace config.h \
-        --replace "#define HAVE_STRUCT_DIRENT_D_NAMLEN 1" ""
-    '';
-    NIX_CFLAGS_COMPILE = [
-      "-D__noinline="
-      "-D__scanflike(a,b)="
-      "-D__va_list=va_list"
-    ];
-    version = "7.1.2";
-    sha256 = "0qvr52j4qih10m7fa8nddn1psyjy9l0pa4ix02acyssjvgbz2kca";
+    sha256 = "0blcahhgyj1lm0mimrbvgmq3wkjvqk5wy85sdvbs99zxg7da1190";
+    version = "8.0";
   };
 
   libterminfo = netBSDDerivation {
     path = "lib/libterminfo";
-    version = "7.1.2";
-    sha256 = "06plg0bjqgbb0aghpb9qlk8wkp1l2izdlr64vbr5laqyw8jg84zq";
+    version = "8.0";
+    sha256 = "14gp0d6fh6zjnbac2yjhyq5m6rca7gm6q1s9gilhzpdgl9m7vb9r";
     buildInputs = [ compat tic nbperf ];
-    MKPIC = if stdenv.isDarwin then "no" else "yes";
     makeFlags = [ "INCSDIR=/include" ];
     postPatch = ''
       substituteInPlace term.c --replace /usr/share $out/share
+      substituteInPlace setupterm.c --replace '#include <curses.h>' 'void use_env(bool);'
+
     '';
     postInstall = ''
-      (cd $NETBSDSRCDIR/share/terminfo && make && make BINDIR=/share install)
+      make -C $NETBSDSRCDIR/share/terminfo BINDIR=/share
+      make -C $NETBSDSRCDIR/share/terminfo BINDIR=/share install
     '';
     extraPaths = [
-      (fetchNetBSD "share/terminfo" "7.1.2" "1z5vzq8cw24j05r6df4vd6r57cvdbv7vbm4h962kplp14xrbg2h3")
+      (fetchNetBSD "share/terminfo" "8.0" "18db0fk1dw691vk6lsm6dksm4cf08g8kdm0gc4052ysdagg2m6sm")
     ];
   };
 
-  libcurses = netBSDDerivation {
-    path = "lib/libcurses";
-    version = "7.1.2";
-    sha256 = "04djah9dadzw74nswn0xydkxn900kav8xdvxlxdl50nbrynxg9yf";
-    buildInputs = [ libterminfo ];
-    makeFlags = [ "INCSDIR=/include" ];
-    NIX_CFLAGS_COMPILE = [
-      "-D__scanflike(a,b)="
-      "-D__va_list=va_list"
-      "-D__warn_references(a,b)="
-    ] ++ lib.optional stdenv.isDarwin "-D__strong_alias(a,b)=";
-    propagatedBuildInputs = [ compat ];
-    MKDOC = "no"; # missing vfontedpr
-    MKPIC = if stdenv.isDarwin then "no" else "yes";
-    postPatch = lib.optionalString (!stdenv.isDarwin) ''
-      substituteInPlace printw.c \
-        --replace "funopen(win, NULL, __winwrite, NULL, NULL)" NULL \
-        --replace "__strong_alias(vwprintw, vw_printw)" 'extern int vwprintw(WINDOW*, const char*, va_list) __attribute__ ((alias ("vw_printw")));'
-      substituteInPlace scanw.c \
-        --replace "__strong_alias(vwscanw, vw_scanw)" 'extern int vwscanw(WINDOW*, const char*, va_list) __attribute__ ((alias ("vw_scanw")));'
-    '';
-  };
-
   nbperf = netBSDDerivation {
     path = "usr.bin/nbperf";
-    version = "7.1.2";
+    version = "8.0";
     sha256 = "0gzm0zv2400lasnsswnjw9bwzyizhxzdbrcjwcl1k65aj86aqyqb";
   };
 
   tic = netBSDDerivation {
     path = "tools/tic";
-    version = "7.1.2";
+    version = "8.0";
     sha256 = "092y7db7k4kh2jq8qc55126r5qqvlb8lq8mhmy5ipbi36hwb4zrz";
     HOSTPROG = "tic";
     buildInputs = [ compat nbperf ];
     extraPaths = [
       libterminfo.src
-      (fetchNetBSD "usr.bin/tic" "7.1.2" "1ghwsaag4gbwvgp3lfxscnh8hn27n8cscwmgjwp3bkx5vl85nfsa")
-      (fetchNetBSD "tools/Makefile.host" "7.1.2" "076r3amivb6xranpvqjmg7x5ibj4cbxaa3z2w1fh47h7d55dw9w8")
+      (fetchNetBSD "usr.bin/tic" "8.0" "0diirnzmdnpc5bixyb34c9rid9paw2a4zfczqrpqrfvjsf1nnljf")
+      (fetchNetBSD "tools/Makefile.host" "8.0" "1p23dsc4qrv93vc6gzid9w2479jwswry9qfn88505s0pdd7h6nvp")
     ];
   };
 
   misc = netBSDDerivation {
     path = "share/misc";
-    version = "7.1.2";
-    sha256 = "1vyn30js14nnadlls55mg7g1gz8h14l75rbrrh8lgn49qg289665";
+    version = "8.0";
+    sha256 = "0d34b3irjbqsqfk8v8aaj36fjyvwyx410igl26jcx2ryh3ispch8";
     makeFlags = [ "BINDIR=/share" ];
   };
 
   locale = netBSDDerivation {
     path = "usr.bin/locale";
-    version = "7.1.2";
+    version = "8.0";
     sha256 = "0kk6v9k2bygq0wf9gbinliqzqpzs9bgxn0ndyl2wcv3hh2bmsr9p";
     patches = [ ./locale.patch ];
+    NIX_CFLAGS_COMPILE = "-DYESSTR=__YESSTR -DNOSTR=__NOSTR";
+  };
+
   };
 
-}
+in nbPackages
diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix
index 1e3286f64d68..f30eac588a2f 100644
--- a/pkgs/os-specific/linux/iwd/default.nix
+++ b/pkgs/os-specific/linux/iwd/default.nix
@@ -3,17 +3,17 @@
 let
   ell = fetchgit {
      url = https://git.kernel.org/pub/scm/libs/ell/ell.git;
-     rev = "0.10";
-     sha256 = "1yzbx4l3a6hbdmirgbvnrjfiwflyzd38mbxnp23gn9hg3ni3br34";
+     rev = "0.11";
+     sha256 = "0nifa5w6fxy7cagyas2a0zhcppi83yrcsnnp70ls2rc90x4r1ip8";
   };
 in stdenv.mkDerivation rec {
   name = "iwd-${version}";
-  version = "0.8";
+  version = "0.9";
 
   src = fetchgit {
     url = https://git.kernel.org/pub/scm/network/wireless/iwd.git;
     rev = version;
-    sha256 = "0bx31f77mz3rbl3xja48lb5zgwgialg7hvax889kpkz92wg26mgv";
+    sha256 = "1l1jbwsshjbz32s4rf0zfcn3fd16si4y9qa0zaxp00bfzflnpcd4";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 6c1740ea2e43..6755e8f90ee1 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.73";
+  version = "4.14.74";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${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 = "07p3w3p8izgk1d0dblvn9ckk4ay10f40pqbwpzvpsi6c3ha3i7lr";
+    sha256 = "0wjw05brv7l1qpi38drc2z01sa7kpk3kadw36gx9cbvvzn4r3rkh";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.18.nix b/pkgs/os-specific/linux/kernel/linux-4.18.nix
index 00e8a04f1b9d..aa936929a44c 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.18.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.18.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.18.11";
+  version = "4.18.12";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${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 = "131chbsavavz2hnjyx1xjvsnxdcr0y02p054n9mdvxfalvsiklrn";
+    sha256 = "1icz2nkhkb1xhpmc9gxfhc3ywkni8nywk25ixrmgcxp5rgcmlsl4";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 5c4bee036d86..cdd2c67d25b2 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.130";
+  version = "4.9.131";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0zqaidirnr3v9xibp04rr2cjww3nd3phg28cgid0s8q0idm3xnv0";
+    sha256 = "0q2xmbkh42ikw26bdxgk1f9192hygyq9ffkhjfpr0fcx8sak5nsp";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix b/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
index 0afb92d705c6..fc9cb2f238b2 100644
--- a/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
@@ -1,10 +1,10 @@
 { stdenv, buildPackages, fetchFromGitHub, perl, buildLinux, libelf, utillinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.14.69-148";
+  version = "4.14.73-149";
 
   # modDirVersion needs to be x.y.z.
-  modDirVersion = "4.14.69";
+  modDirVersion = "4.14.73";
 
   # branchVersion needs to be x.y.
   extraMeta.branch = "4.14";
@@ -13,7 +13,7 @@ buildLinux (args // rec {
     owner = "hardkernel";
     repo = "linux";
     rev = version;
-    sha256 = "1grsmb7lnxnkva03nh8ny4zizvrxjim5kf5ssqkcbfz5mx1fqni0";
+    sha256 = "1zc5py6v3xyvy6dwghnqb7nsn9l1aib3d96i5bqy9dd56vyiy5m2";
   };
 
   defconfig = "odroidxu4_defconfig";
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index cabaa59966c1..3d28bd68121d 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.19-rc6";
-  modDirVersion = "4.19.0-rc6";
+  version = "4.19-rc7";
+  modDirVersion = "4.19.0-rc7";
   extraMeta.branch = "4.19";
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "0cq0xr4lwvngyiyall62hddbk27gy72zjiigb8xdsry96a8ccvgl";
+    sha256 = "0wjh62vfhvi2prz9sx9c0s0f9sa9z1775qn4jf8zz5y5isixzdml";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/pkgs/os-specific/linux/light/default.nix b/pkgs/os-specific/linux/light/default.nix
index d500019c50b4..1856c8861cc4 100644
--- a/pkgs/os-specific/linux/light/default.nix
+++ b/pkgs/os-specific/linux/light/default.nix
@@ -1,26 +1,31 @@
-{ stdenv, fetchFromGitHub, help2man }:
+{ stdenv, fetchFromGitHub, autoreconfHook, coreutils }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.2";
+  version = "1.2";
   name = "light-${version}";
   src = fetchFromGitHub {
     owner = "haikarainen";
     repo = "light";
-    rev = version;
-    sha256 = "0c934gxav9cgdf94li6dp0rfqmpday9d33vdn9xb2mfp4war9n4w";
+    rev = "v${version}";
+    sha256 = "1h286va0r1xgxlnxfaaarrj3qhxmjjsivfn3khwm0wq1mhkfihra";
   };
 
-  buildInputs = [ help2man ];
+  configureFlags = [ "--with-udev" ];
 
-  installPhase = "mkdir -p $out/bin; cp light $out/bin/";
+  nativeBuildInputs = [ autoreconfHook ];
 
-  preFixup = "make man; mkdir -p $out/man/man1; mv light.1.gz $out/man/man1";
+  # ensure udev rules can find the commands used
+  postPatch = ''
+    substituteInPlace 90-backlight.rules \
+      --replace '/bin/chgrp' '${coreutils}/bin/chgrp' \
+      --replace '/bin/chmod' '${coreutils}/bin/chmod'
+  '';
 
   meta = {
     description = "GNU/Linux application to control backlights";
     homepage = https://haikarainen.github.io/light/;
     license = stdenv.lib.licenses.gpl3;
-    maintainers = with stdenv.lib.maintainers; [ puffnfresh ];
+    maintainers = with stdenv.lib.maintainers; [ puffnfresh dtzWill ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/pscircle/default.nix b/pkgs/os-specific/linux/pscircle/default.nix
index a334465fb71d..1efbd7bc2c9f 100644
--- a/pkgs/os-specific/linux/pscircle/default.nix
+++ b/pkgs/os-specific/linux/pscircle/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "pscircle-${version}";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitLab {
     owner = "mildlyparallel";
     repo = "pscircle";
     rev = "v${version}";
-    sha256 = "188d0db62215pycmx2qfmbbjpmih03vigsz2j448zhsbyxapavv3";
+    sha256 = "1sxdnhkcr26l29nk0zi1zkvkd7128xglfql47rdb1bx940vflgb6";
   };
 
   buildInputs = [
diff --git a/pkgs/os-specific/linux/roccat-tools/default.nix b/pkgs/os-specific/linux/roccat-tools/default.nix
index a413008ffd1a..c2fb55b344b4 100644
--- a/pkgs/os-specific/linux/roccat-tools/default.nix
+++ b/pkgs/os-specific/linux/roccat-tools/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cmake, pkgconfig, gettext
-, dbus, dbus_glib, libgaminggear, libgudev, lua
+, dbus, dbus-glib, libgaminggear, libgudev, lua
 }:
 
 stdenv.mkDerivation rec {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ cmake pkgconfig gettext ];
-  buildInputs = [ dbus dbus_glib libgaminggear libgudev lua ];
+  buildInputs = [ dbus dbus-glib libgaminggear libgudev lua ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/os-specific/linux/systemd-wait/default.nix b/pkgs/os-specific/linux/systemd-wait/default.nix
new file mode 100644
index 000000000000..114f4c2444e6
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd-wait/default.nix
@@ -0,0 +1,25 @@
+{ python3Packages, fetchFromGitHub, lib }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "systemd-wait";
+  version = "0.1+2018-10-05";
+
+  src = fetchFromGitHub {
+    owner = "Stebalien";
+    repo = pname;
+    rev = "bbb58dd4584cc08ad20c3888edb7628f28aee3c7";
+    sha256 = "1l8rd0wzf3m7fk0g1c8wc0csdisdfac0filhixpgp0ck9ignayq5";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    dbus-python pygobject3
+  ];
+
+  meta = {
+    homepage = https://github.com/Stebalien/systemd-wait;
+    license = lib.licenses.gpl3;
+    description = "Wait for a systemd unit to enter a specific state";
+    maintainers = [ lib.maintainers.benley ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/servers/dico/default.nix b/pkgs/servers/dico/default.nix
index 76a3f51caa2e..0e4c392c7a3e 100644
--- a/pkgs/servers/dico/default.nix
+++ b/pkgs/servers/dico/default.nix
@@ -2,11 +2,11 @@
 , guile, python, pcre, libffi, groff }:
 
 stdenv.mkDerivation rec {
-  name = "dico-2.6";
+  name = "dico-2.7";
 
   src = fetchurl {
     url = "mirror://gnu/dico/${name}.tar.xz";
-    sha256 = "0zmi041gv5nd5fmyzgdrgrsy2pvjaq9p8dvvhxwi842hiyng5b7i";
+    sha256 = "0dg4aacnmlf3ljssd7dwh8z5644xzq8k1501mbsx8nz8p8a9mbsq";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/servers/dns/nsd/default.nix b/pkgs/servers/dns/nsd/default.nix
index ee09024dc0eb..5f330c4f06e2 100644
--- a/pkgs/servers/dns/nsd/default.nix
+++ b/pkgs/servers/dns/nsd/default.nix
@@ -15,11 +15,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nsd-4.1.24";
+  name = "nsd-4.1.25";
 
   src = fetchurl {
     url = "https://www.nlnetlabs.nl/downloads/nsd/${name}.tar.gz";
-    sha256 = "04ck8ia6xq1xqdk2g922262xywzd070pl4iad7c0lqclwk48gdjg";
+    sha256 = "0zyzjd3wmq258jiry62ci1z23qfd0rc5ggnpmybc60xvpddgynwg";
   };
 
   prePatch = ''
diff --git a/pkgs/servers/emby/default.nix b/pkgs/servers/emby/default.nix
index 11cb914bfd80..932d070577e6 100644
--- a/pkgs/servers/emby/default.nix
+++ b/pkgs/servers/emby/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, unzip, sqlite, makeWrapper, mono54, ffmpeg }:
+{ stdenv, fetchurl, unzip, sqlite, makeWrapper, dotnet-sdk, ffmpeg }:
 
 stdenv.mkDerivation rec {
   name = "emby-${version}";
-  version = "3.5.2.0";
+  version = "3.5.3.0";
 
   # We are fetching a binary here, however, a source build is possible.
   # See -> https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=emby-server-git#n43
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
   # This may also need msbuild (instead of xbuild) which isn't in nixpkgs
   # See -> https://github.com/NixOS/nixpkgs/issues/29817
   src = fetchurl {
-    url = "https://github.com/MediaBrowser/Emby.Releases/releases/download/${version}/embyserver-mono_${version}.zip";
-    sha256 = "12f9skvnr9qxnrvr3q014yggfwvkpjk0ynbgf0fwk56h4kal7fx8";
+    url = "https://github.com/MediaBrowser/Emby.Releases/releases/download/${version}/embyserver-netcore_${version}.zip";
+    sha256 = "0311af3q813cx0ykbdk9vkmnyqi2l8rx66jnvdkw927q6invnnpj";
   };
 
   buildInputs = [
@@ -21,26 +21,25 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    mono54
+    dotnet-sdk
     sqlite
   ];
 
   preferLocalBuild = true;
 
-  # Need to set sourceRoot as unpacker will complain about multiple directory output
-  sourceRoot = ".";
-
   buildPhase = ''
-    substituteInPlace SQLitePCLRaw.provider.sqlite3.dll.config --replace libsqlite3.so ${sqlite.out}/lib/libsqlite3.so
-    substituteInPlace MediaBrowser.Server.Mono.exe.config --replace ProgramData-Server "/var/lib/emby/ProgramData-Server"
+    rm -rf {electron,runtimes}
   '';
 
   installPhase = ''
-    mkdir -p "$out/bin"
-    cp -r * "$out/bin"
-
-    makeWrapper "${mono54}/bin/mono" $out/bin/MediaBrowser.Server.Mono \
-      --add-flags "$out/bin/MediaBrowser.Server.Mono.exe -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe"
+    install -dm 755 "$out/opt/emby-server"
+    cp -r * "$out/opt/emby-server"
+
+    makeWrapper "${dotnet-sdk}/bin/dotnet" $out/bin/emby \
+      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
+        sqlite
+      ]}" \
+      --add-flags "$out/opt/emby-server/EmbyServer.dll -programdata /var/lib/emby/ProgramData-Server -ffmpeg ${ffmpeg}/bin/ffmpeg -ffprobe ${ffmpeg}/bin/ffprobe"
   '';
 
   meta =  with stdenv.lib; {
diff --git a/pkgs/servers/http/webhook/default.nix b/pkgs/servers/http/webhook/default.nix
new file mode 100644
index 000000000000..5d6b47d28b5d
--- /dev/null
+++ b/pkgs/servers/http/webhook/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "webhook-${version}";
+  version = "2.6.8";
+
+  goPackagePath = "github.com/adnanh/webhook";
+  excludedPackages = [ "test" ];
+
+  src = fetchFromGitHub {
+    owner = "adnanh";
+    repo = "webhook";
+    rev = version;
+    sha256 = "05q6nv04ml1gr4k79czg03i3ifl05xq29iapkgrl3k0a36czxlgs";
+  };
+
+  meta = with lib; {
+    homepage = https://github.com/adnanh/webhook;
+    license = [ licenses.mit ];
+    description = "incoming webhook server that executes shell commands";
+  };
+}
diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix
index b85c9c9204ef..4c384c7b2b89 100644
--- a/pkgs/servers/jackett/default.nix
+++ b/pkgs/servers/jackett/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "jackett-${version}";
-  version = "0.10.250";
+  version = "0.10.258";
 
   src = fetchurl {
     url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz";
-    sha256 = "0695r03cgmiwrsjrcippiibpcahxb55pma5a6plcfl1f8jxiwv76";
+    sha256 = "1wlg1spz2cxddaagjs6hv5fks3n1wwfm9jmih3rh1vq1rx8j1xnq";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/lidarr/default.nix b/pkgs/servers/lidarr/default.nix
index 3290d8ba1d1a..9bffb27665dd 100644
--- a/pkgs/servers/lidarr/default.nix
+++ b/pkgs/servers/lidarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "lidarr-${version}";
-  version = "0.3.1.471";
+  version = "0.4.0.524";
 
   src = fetchurl {
     url = "https://github.com/lidarr/Lidarr/releases/download/v${version}/Lidarr.develop.${version}.linux.tar.gz";
-    sha256 = "1x8q5yivkz8rwpkz0gdi73iaszb253bm1c3rdzar7xgrqr3g11nm";
+    sha256 = "121898v8n9sr9wwys65c28flpmk941wk6df11bb47pfjcalrr3bj";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index acd08f658e66..5b7f433feb63 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, perl, pkgconfig, systemd, openssl
 , bzip2, zlib, lz4, inotify-tools, pam, libcap
-, clucene_core_2, icu, openldap, libsodium, libstemmer
+, clucene_core_2, icu, openldap, libsodium, libstemmer, cyrus_sasl
 # Auth modules
 , withMySQL ? false, mysql
 , withPgSQL ? false, postgresql
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ perl pkgconfig ];
   buildInputs =
-    [ openssl bzip2 zlib lz4 clucene_core_2 icu openldap libsodium libstemmer ]
+    [ openssl bzip2 zlib lz4 clucene_core_2 icu openldap libsodium libstemmer cyrus_sasl.dev ]
     ++ lib.optionals (stdenv.isLinux) [ systemd pam libcap inotify-tools ]
     ++ lib.optional withMySQL mysql.connector-c
     ++ lib.optional withPgSQL postgresql
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 8cb93c209de1..dab58d2edd6b 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -26,13 +26,13 @@ let
   };
 in python2Packages.buildPythonApplication rec {
   name = "matrix-synapse-${version}";
-  version = "0.33.5";
+  version = "0.33.6";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "synapse";
     rev = "v${version}";
-    sha256 = "0m8pyh27cxz761wiwspj6w5dqxpm683nlrjn40fsrgf1sgiprgl6";
+    sha256 = "0c1dr09f1msv6xvpmdlncx7yyj6qxnpihd93lqckd115fds12g5h";
   };
 
   patches = [
diff --git a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
index ce9e2f8c40b2..b8649715eb37 100644
--- a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
+++ b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "check_ssl_cert-${version}";
-  version = "1.72.0";
+  version = "1.73.0";
 
   src = fetchFromGitHub {
     owner = "matteocorti";
     repo = "check_ssl_cert";
     rev = "v${version}";
-    sha256 = "1125yffw0asxa3blcgg6gr8nvwc5jhxbqi0wak5w06svw8ka9wpr";
+    sha256 = "0ymaypsv1s5pmk8fg9d67khcjy5h7vjbg6hd1fgslp92qcw90dqa";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 8a0a848aa5d6..3b5e46cdb2a8 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -1,14 +1,20 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
-  name= "nextcloud-${version}";
-  version = "13.0.6";
+  name = "nextcloud-${version}";
+  version = "14.0.1";
 
   src = fetchurl {
     url = "https://download.nextcloud.com/server/releases/${name}.tar.bz2";
-    sha256 = "1m38k5jafz2lniy6fmq17xffkgaqs6rl4w789sqpniva1fb9xz4h";
+    sha256 = "14ymc6fr91735yyc2gqh7c89mbbwsgamhhysf6crp9kp27l83z5a";
   };
 
+  patches = [ (fetchpatch {
+    name = "Mailer-discover-sendmail-path-instead-of-hardcoding-.patch";
+    url = https://github.com/nextcloud/server/pull/11404.patch;
+    sha256 = "1h0cqnfwn735vqrm3yh9nh6a7h6srr9h29p13vywd6rqbcndqjjd";
+  }) ];
+
   installPhase = ''
     mkdir -p $out/
     cp -R . $out/
@@ -17,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Sharing solution for files, calendars, contacts and more";
     homepage = https://nextcloud.com;
-    maintainers = with stdenv.lib.maintainers; [ schneefux bachp ];
+    maintainers = with stdenv.lib.maintainers; [ schneefux bachp globin fpletz ];
     license = stdenv.lib.licenses.agpl3Plus;
     platforms = with stdenv.lib.platforms; unix;
   };
diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix
index 72485d388a15..1f4876c11183 100644
--- a/pkgs/servers/nosql/arangodb/default.nix
+++ b/pkgs/servers/nosql/arangodb/default.nix
@@ -3,14 +3,14 @@
 
 let
 in stdenv.mkDerivation rec {
-  version = "3.3.15";
+  version = "3.3.16";
   name    = "arangodb-${version}";
 
   src = fetchFromGitHub {
     repo = "arangodb";
     owner = "arangodb";
     rev = "v${version}";
-    sha256 = "177n2l8k8fswxvz102n6lm0qsn0fvq0s2zx6skrfg4g7gil3wkyb";
+    sha256 = "0pw930ri5a0f1s6mhsbjc58lsmpy535f5wv2vcp8mzdx1rk3l091";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/nosql/neo4j/default.nix b/pkgs/servers/nosql/neo4j/default.nix
index cc16838d082f..1fba6571e281 100644
--- a/pkgs/servers/nosql/neo4j/default.nix
+++ b/pkgs/servers/nosql/neo4j/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "neo4j-${version}";
-  version = "3.4.6";
+  version = "3.4.7";
 
   src = fetchurl {
     url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz";
-    sha256 = "0bby42sp7gpyglp03c5nq9hzzlcckzfsc84i07jlx8gglidw80l3";
+    sha256 = "0jgk7kvsalpmawdds0ln76ma7qbdxwgh004lkalicciiljkyv8pj";
   };
 
   buildInputs = [ makeWrapper jre8 which gawk ];
diff --git a/pkgs/servers/search/groonga/default.nix b/pkgs/servers/search/groonga/default.nix
index c346d6bd37b7..861bd7fe5ed5 100644
--- a/pkgs/servers/search/groonga/default.nix
+++ b/pkgs/servers/search/groonga/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
 
   name    = "groonga-${version}";
-  version = "8.0.6";
+  version = "8.0.7";
 
   src = fetchurl {
     url    = "https://packages.groonga.org/source/groonga/${name}.tar.gz";
-    sha256 = "1q00p02jprbsx2c6l3dnv2m04pzxlfag4j1pan0jlb4g3fvb20wf";
+    sha256 = "040q525qdlxlypgs7jzklndshdvd5shzss67lcs6xhkbs0f977cc";
   };
 
   buildInputs = with stdenv.lib;
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index da6143c21f0d..b7793c1ac56f 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, pkgconfig, ncurses, zlib, xz, lzo, lz4, bzip2, snappy
+{ stdenv, fetchurl, fetchFromGitHub, cmake, pkgconfig, ncurses, zlib, xz, lzo, lz4, bzip2, snappy
 , libiconv, openssl, pcre, boost, judy, bison, libxml2
 , libaio, libevent, jemalloc, cracklib, systemd, numactl, perl
 , fixDarwinDylibNames, cctools, CoreServices
@@ -221,11 +221,14 @@ connector-c = stdenv.mkDerivation rec {
 
 galera = stdenv.mkDerivation rec {
   name = "mariadb-galera-${version}";
-  version = "25.3.23";
-
-  src = fetchurl {
-    url = "https://mirrors.nxthost.com/mariadb/mariadb-10.2.14/galera-${version}/src/galera-${version}.tar.gz";
-    sha256 = "11pfc85z29jk0h6g6bmi3hdv4in4yb00xsr2r0qm1b0y7m2wq3ra";
+  version = "25.3.24";
+
+  src = fetchFromGitHub {
+    owner = "codership";
+    repo = "galera";
+    rev = "release_${version}";
+    sha256 = "1yx3rqy7r4w2l3hnrri30hvsa296v8xidi18p5fdzcpmnhnlwjbi";
+    fetchSubmodules = true;
   };
 
   buildInputs = [ asio boost check openssl scons ];
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index 7436c06d7b84..ae7dd9805776 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -49,13 +49,13 @@ in rec {
   };
 
   unifiStable = generic {
-    version = "5.8.28";
-    sha256  = "1zyc6n54dwqy9diyqnzlwypgnj3hqcv0lfx47s4rkq3kbm49nwnl";
+    version = "5.8.30";
+    sha256  = "051cx1y51xmhvd3s8zbmknrcjdi46mj4yf1rlnngzr77rj77sqvi";
   };
 
   unifiTesting = generic {
-    version = "5.9.22";
-    suffix  = "-d2a4718971";
-    sha256  = "1xxpvvn0815snag4bmmsdm8zh0cb2qjrhnvlkgn8i478ja1r3n54";
+    version = "5.9.29";
+    suffix  = "-04b5d20997";
+    sha256  = "0djdjh7lwaa5nvhvz2yh6dn07iad5nq4jpab7rc909sljl6wvwvx";
   };
 }
diff --git a/pkgs/shells/elvish/default.nix b/pkgs/shells/elvish/default.nix
index dc7133e988fa..0b7b934646e2 100644
--- a/pkgs/shells/elvish/default.nix
+++ b/pkgs/shells/elvish/default.nix
@@ -6,6 +6,10 @@ buildGoPackage rec {
 
   goPackagePath = "github.com/elves/elvish";
   excludedPackages = [ "website" ];
+  buildFlagsArray = ''
+    -ldflags=
+      -X ${goPackagePath}/buildinfo.Version=${version}
+  '';
 
   src = fetchFromGitHub {
     repo = "elvish";
diff --git a/pkgs/shells/zsh/antibody/default.nix b/pkgs/shells/zsh/antibody/default.nix
index 60304531bfbe..bf3d7773640e 100644
--- a/pkgs/shells/zsh/antibody/default.nix
+++ b/pkgs/shells/zsh/antibody/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "antibody-${version}";
-  version = "3.6.1";
+  version = "3.7.0";
   rev = "v${version}";
 
   goPackagePath = "github.com/getantibody/antibody";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner  = "getantibody";
     repo   = "antibody";
-    sha256 = "1xlaf3440hs1ffa23ja0fc185sj0rxjv0808ib8li3rq2qfkd0k8";
+    sha256 = "1c7f0b1lgl4pm3cs39kr6dgr19lfykjhamg74k5ryrizag0j68l5";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix
index 28b69f5c2dc9..26cd9f8beb96 100644
--- a/pkgs/stdenv/generic/check-meta.nix
+++ b/pkgs/stdenv/generic/check-meta.nix
@@ -42,8 +42,7 @@ let
   allowUnsupportedSystem = config.allowUnsupportedSystem or false
     || builtins.getEnv "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM" == "1";
 
-  isUnfree = licenses: lib.lists.any (l:
-    !l.free or true || l == "unfree" || l == "unfree-redistributable") licenses;
+  isUnfree = licenses: lib.lists.any (l: !l.free or true) licenses;
 
   # Alow granular checks to allow only some unfree packages
   # Example:
@@ -56,7 +55,7 @@ let
 
   # Check whether unfree packages are allowed and if not, whether the
   # package has an unfree license and is not explicitely allowed by the
-  # `allowUNfreePredicate` function.
+  # `allowUnfreePredicate` function.
   hasDeniedUnfreeLicense = attrs:
     !allowUnfree &&
     hasLicense attrs &&
diff --git a/pkgs/tools/admin/aws-env/default.nix b/pkgs/tools/admin/aws-env/default.nix
new file mode 100644
index 000000000000..19f149b02274
--- /dev/null
+++ b/pkgs/tools/admin/aws-env/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, lib }:
+
+buildGoPackage rec {
+  pname = "aws-env";
+  version = "0.4";
+  name = "${pname}-${version}";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/Droplr/aws-env";
+
+  src = fetchFromGitHub {
+    owner = "Droplr";
+    repo = pname;
+    inherit rev;
+    sha256 = "0pw1qz1nn0ig90p8d8c1qcwsdz0m9w63ib07carhh86gw55425j7";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "Secure way to handle environment variables in Docker and envfile with AWS Parameter Store";
+    homepage = "https://github.com/Droplr/aws-env";
+    license = licenses.mit;
+    maintainers = with maintainers; [ srhb ];
+  };
+}
diff --git a/pkgs/tools/admin/aws-env/deps.nix b/pkgs/tools/admin/aws-env/deps.nix
new file mode 100644
index 000000000000..891a6ecb5962
--- /dev/null
+++ b/pkgs/tools/admin/aws-env/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/aws/aws-sdk-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aws/aws-sdk-go";
+      rev = "5f03c87445c9dcd6aa831a76a77170919265aa97";
+      sha256 = "146rwinw2x4r0f2pixv62b7mmhvnnfvvjmfaj6dqjxrhp0imcxdi";
+    };
+  }
+]
diff --git a/pkgs/tools/admin/aws-rotate-key/default.nix b/pkgs/tools/admin/aws-rotate-key/default.nix
index cffb67e7d6ca..a8c00cf0eefa 100644
--- a/pkgs/tools/admin/aws-rotate-key/default.nix
+++ b/pkgs/tools/admin/aws-rotate-key/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "aws-rotate-key-${version}";
-  version = "1.0.0";
+  version = "1.0.3";
 
   goPackagePath = "github.com/Fullscreen/aws-rotate-key";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "Fullscreen";
     repo = "aws-rotate-key";
-    sha256 = "13q7rns65cj8b4i0s75dbswijpra9z74b462zribwfjdm29by5k1";
+    sha256 = "15na7flc0vp14amaq3116a5glqlb4ydvdlzv0q7mwl73pc38zxn3";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/tools/admin/bubblewrap/default.nix b/pkgs/tools/admin/bubblewrap/default.nix
index a037a2e42aaa..ba07f75bb36d 100644
--- a/pkgs/tools/admin/bubblewrap/default.nix
+++ b/pkgs/tools/admin/bubblewrap/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "bubblewrap-${version}";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchurl {
     url = "https://github.com/projectatomic/bubblewrap/releases/download/v${version}/${name}.tar.xz";
-    sha256 = "0b5gkr5xiqnr9cz5padkkkhm74ia9cb06pkpfi8j642anmq2irf8";
+    sha256 = "1y2bdlxnlr84xcbf31lzirc292c5ak9bd2wvcvh4ppsliih6pjny";
   };
 
   nativeBuildInputs = [ libcap libxslt docbook_xsl ];
@@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
     description = "Unprivileged sandboxing tool";
     homepage = https://github.com/projectatomic/bubblewrap;
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ konimex ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/admin/sec/default.nix b/pkgs/tools/admin/sec/default.nix
index dede514729ec..6ce42b69f2cf 100644
--- a/pkgs/tools/admin/sec/default.nix
+++ b/pkgs/tools/admin/sec/default.nix
@@ -1,11 +1,13 @@
-{ fetchurl, perl, stdenv }:
+{ fetchFromGitHub, perl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "sec-2.8.0";
+  name = "sec-${meta.version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/simple-evcorr/${name}.tar.gz";
-    sha256 = "0q9fhkkh0n0jya4kf5c54smk4xbnv01hqhip2y6fnnj9imwskymz";
+  src = fetchFromGitHub {
+    owner = "simple-evcorr";
+    repo = "sec";
+    rev = meta.version;
+    sha256 = "17qzw7k1r3svagaf6jb7166grwqsyxwd6p23b2m9q9h3ggcwynp9";
   };
 
   buildInputs = [ perl ];
@@ -20,10 +22,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = http://simple-evcorr.sourceforge.net/;
+    homepage = https://simple-evcorr.github.io;
     license = stdenv.lib.licenses.gpl2;
     description = "Simple Event Correlator";
     maintainers = [ stdenv.lib.maintainers.tv ];
     platforms = stdenv.lib.platforms.all;
+    version = "2.8.1";
   };
 }
diff --git a/pkgs/tools/admin/sewer/default.nix b/pkgs/tools/admin/sewer/default.nix
new file mode 100644
index 000000000000..5410d0c833df
--- /dev/null
+++ b/pkgs/tools/admin/sewer/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "sewer";
+  version = "0.6.0";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "180slmc2zk4mvjqp25ks0j8kd63ai4y77ds5icm7qd7av865rryp";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ pyopenssl requests tldextract ];
+
+  postPatch = ''
+    # The README has non-ascii characters which makes setup.py crash.
+    sed -i 's/[\d128-\d255]//g' README.md
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/komuw/sewer;
+    description = "ACME client";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kevincox ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index fe2f771c7227..72f6cd03e038 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python3Packages, acl, libb2, lz4, zstd, openssl, openssh }:
+{ stdenv, fetchpatch, python3Packages, acl, libb2, lz4, zstd, openssl, openssh }:
 
 python3Packages.buildPythonApplication rec {
   pname = "borgbackup";
@@ -9,6 +9,15 @@ python3Packages.buildPythonApplication rec {
     sha256 = "f7b51a132e9edfbe1cacb4f478b28caf3622d79fffcb369bdae9f92d8c8a7fdc";
   };
 
+  patches = [
+    # Workarounds for https://github.com/borgbackup/borg/issues/4093
+    # Can be deleted when 1.1.8 comes out
+    (fetchpatch {
+      url = "https://github.com/borgbackup/borg/commit/975cc33206e0e3644626fb7204c34d2157715b61.patch";
+      sha256 = "0b7apaixpa7bk0sy7g5ycm98cjpkg5gkwcgm7m37xj35lzxdlxhc";
+    })
+  ];
+
   nativeBuildInputs = with python3Packages; [
     # For building documentation:
     sphinx guzzle_sphinx_theme
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index b870c08d755f..a96326c76cfd 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -3,12 +3,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.5.16";
+  version = "2.5.17";
   name = "dar-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${name}.tar.gz";
-    sha256 = "0fy39y6kfda0lvbymc0dblvzmli5y9bq81q0r8fwjzd105qwjmz9";
+    sha256 = "1pw6l9nh7w9n7ysh8m6wdzr3k4i9sd6fkmrprnssay5cz7rsbx3v";
   };
 
   buildInputs = [ zlib bzip2 openssl lzo libgcrypt gpgme xz ]
diff --git a/pkgs/tools/cd-dvd/xorriso/default.nix b/pkgs/tools/cd-dvd/xorriso/default.nix
index 8f2577c43442..f396cbad955d 100644
--- a/pkgs/tools/cd-dvd/xorriso/default.nix
+++ b/pkgs/tools/cd-dvd/xorriso/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libcdio, zlib, bzip2, readline, acl, attr, libiconv }:
 
 stdenv.mkDerivation rec {
-  name = "xorriso-1.4.8";
+  name = "xorriso-1.5.0";
 
   src = fetchurl {
     url = "mirror://gnu/xorriso/${name}.tar.gz";
-    sha256 = "10c44yr3dpmwxa7rf23mwfsy1bahny3jpcg9ig0xjv090jg0d0pc";
+    sha256 = "0aq6lvlwlkxz56l5sbvgycr6j5c82ch2bv6zrnc2345ibfpafgx9";
   };
 
   doCheck = true;
diff --git a/pkgs/tools/filesystems/disorderfs/default.nix b/pkgs/tools/filesystems/disorderfs/default.nix
index 0bde9b0b26e1..138f727c3d30 100644
--- a/pkgs/tools/filesystems/disorderfs/default.nix
+++ b/pkgs/tools/filesystems/disorderfs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "disorderfs-${version}";
-  version = "0.5.3";
+  version = "0.5.4";
 
   src = fetchurl {
     url = "http://http.debian.net/debian/pool/main/d/disorderfs/disorderfs_${version}.orig.tar.gz";
-    sha256 = "1zx6248cwfcci5555sk9iwl9lz6x8kzc9qgiq4jv04zjiapivdnq";
+    sha256 = "0rp789qll5nmzw0jffx36ppcl9flr6hvdz84ah080mvghqkfdq8y";
   };
 
   nativeBuildInputs = [ pkgconfig asciidoc ];
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index f153e59019e3..762368651d70 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "mtools-4.0.18";
+  name = "mtools-4.0.19";
 
   src = fetchurl {
     url = "mirror://gnu/mtools/${name}.tar.bz2";
-    sha256 = "119gdfnsxc6hzicnsf718k0fxgy2q14pxn7557rc96aki20czsar";
+    sha256 = "1pqhv5l4fqj1d3698vajkccz65xqxs3991wpylbw7hm1kqcrgh8v";
   };
 
   # Prevents errors such as "mainloop.c:89:15: error: expected ')'"
diff --git a/pkgs/tools/graphics/fbv/default.nix b/pkgs/tools/graphics/fbv/default.nix
new file mode 100644
index 000000000000..c7fab1710672
--- /dev/null
+++ b/pkgs/tools/graphics/fbv/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, getopt, libjpeg, libpng12, libungif }:
+
+stdenv.mkDerivation rec {
+  name = "fbv-1.0b";
+
+  src = fetchurl {
+    url = "http://s-tech.elsat.net.pl/fbv/${name}.tar.gz";
+    sha256 = "0g5b550vk11l639y8p5sx1v1i6ihgqk0x1hd0ri1bc2yzpdbjmcv";
+  };
+
+  buildInputs = [ getopt libjpeg libpng12 libungif ];
+
+  enableParallelBuilding = true;
+
+  preInstall = ''
+    mkdir -p $out/{bin,man/man1}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "View pictures on a linux framebuffer device";
+    homepage = http://s-tech.elsat.net.pl/fbv/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/tools/graphics/gnuplot/default.nix b/pkgs/tools/graphics/gnuplot/default.nix
index f2be9fafc605..8de7ca3262cf 100644
--- a/pkgs/tools/graphics/gnuplot/default.nix
+++ b/pkgs/tools/graphics/gnuplot/default.nix
@@ -19,11 +19,11 @@ let
   withX = libX11 != null && !aquaterm && !stdenv.isDarwin;
 in
 stdenv.mkDerivation rec {
-  name = "gnuplot-5.2.4";
+  name = "gnuplot-5.2.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnuplot/${name}.tar.gz";
-    sha256 = "1jvh8xmd2cvrhlsg88kxwh55wkwx31sg50v1n59slfippl0g058m";
+    sha256 = "1ajw8xcb1kg2vy8n3rhrz71knjr2yivfavv9lqqzvp1dwv6b5783";
   };
 
   nativeBuildInputs = [ makeWrapper pkgconfig texinfo ] ++ lib.optional withQt qttools;
diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix
index e2688e930cf6..489442e4c2a4 100644
--- a/pkgs/tools/graphics/vips/default.nix
+++ b/pkgs/tools/graphics/vips/default.nix
@@ -1,24 +1,34 @@
-{ stdenv, fetchurl, pkgconfig, glib, libxml2, expat,
+{ stdenv, pkgconfig, glib, libxml2, expat,
   fftw, orc, lcms, imagemagick, openexr, libtiff, libjpeg, libgsf, libexif,
   ApplicationServices,
-  python27, libpng ? null
+  python27, libpng ? null,
+  fetchFromGitHub,
+  autoreconfHook,
+  gtk-doc,
+  gobjectIntrospection,
 }:
 
 stdenv.mkDerivation rec {
   name = "vips-${version}";
-  version = "8.6.5";
+  version = "8.7.0";
 
-  src = fetchurl {
-    url = "https://github.com/jcupitt/libvips/releases/download/v${version}/${name}.tar.gz";
-    sha256 = "1nymm4vzscb68aifin9q742ff64b4k4ddppq1060w8hf6h7ay0l7";
+  src = fetchFromGitHub {
+    owner = "libvips";
+    repo = "libvips";
+    rev = "v${version}";
+    sha256 = "1dwcpmpqbgb9lkajnqv50mrsn97mxbxpq6b5aya7fgfkgdnrs9sw";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig autoreconfHook gtk-doc gobjectIntrospection ];
   buildInputs = [ glib libxml2 fftw orc lcms
     imagemagick openexr libtiff libjpeg
     libgsf libexif python27 libpng expat ]
     ++ stdenv.lib.optional stdenv.isDarwin ApplicationServices;
 
+  autoreconfPhase = ''
+    ./autogen.sh
+  '';
+
   meta = with stdenv.lib; {
     homepage = http://www.vips.ecs.soton.ac.uk;
     description = "Image processing system for large images";
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
index c5aaa032b40e..b75ce90cf29f 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
@@ -13,13 +13,13 @@ in
 
 stdenv.mkDerivation rec {
   name = "ibus-typing-booster-${version}";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "mike-fabian";
     repo = "ibus-typing-booster";
     rev = version;
-    sha256 = "01kpxplk9nh56f32fkq3nnsqykbzpi7pcxbfp38dq0prgrhw9a6b";
+    sha256 = "0qg49d0hsb1mvq33p14nc6mdw6x3km1ax620gphczfmz9ki5bf4g";
   };
 
   patches = [ ./hunspell-dirs.patch ];
diff --git a/pkgs/tools/misc/dateutils/default.nix b/pkgs/tools/misc/dateutils/default.nix
index 9b52d3fd3608..e33376243bd6 100644
--- a/pkgs/tools/misc/dateutils/default.nix
+++ b/pkgs/tools/misc/dateutils/default.nix
@@ -1,14 +1,20 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, autoreconfHook, tzdata }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.4";
+  version = "0.4.5";
   name = "dateutils-${version}";
 
   src = fetchurl {
     url = "https://bitbucket.org/hroptatyr/dateutils/downloads/${name}.tar.xz";
-    sha256 = "0ky8177is4swgxfqczc78d7yjc13w626k515qw517086n7xjxk59";
+    sha256 = "1pnbc186mnvmyb5rndm0ym50sjihsy6m6crz62xxsjbxggza1mhn";
   };
 
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ tzdata ]; # needed for datezone
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
   meta = with stdenv.lib; {
     description = "A bunch of tools that revolve around fiddling with dates and times in the command line";
     homepage = http://www.fresse.org/dateutils/;
diff --git a/pkgs/tools/misc/duc/default.nix b/pkgs/tools/misc/duc/default.nix
index 7e98b7d64d2d..f5091ac9720a 100644
--- a/pkgs/tools/misc/duc/default.nix
+++ b/pkgs/tools/misc/duc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "duc-${version}";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "zevv";
     repo = "duc";
     rev = "${version}";
-    sha256 = "1h7vll8a78ijan9bmnimmsviywmc39x8h9iikx8vm98kwyxi4xif";
+    sha256 = "1i7ry25xzy027g6ysv6qlf09ax04q4vy0kikl8h0aq5jbxsl9q52";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/misc/envsubst/default.nix b/pkgs/tools/misc/envsubst/default.nix
new file mode 100644
index 000000000000..86f78af25603
--- /dev/null
+++ b/pkgs/tools/misc/envsubst/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+  name = "envsubst-${version}";
+  version = "1.1.0";
+
+  goPackagePath = "github.com/a8m/envsubst";
+  src = fetchFromGitHub {
+    owner = "a8m";
+    repo = "envsubst";
+    rev = "v${version}";
+    sha256 = "1d6nipagjn40n6iw1p3r489l2km5xjd5db9gbh1vc5sxc617l7yk";
+  };
+
+  meta = with lib; {
+    description = "Environment variables substitution for Go";
+    homepage = https://github.com/a8m/envsubst;
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ nicknovitski ];
+  };
+}
diff --git a/pkgs/tools/misc/hyperfine/default.nix b/pkgs/tools/misc/hyperfine/default.nix
index d9c255d2a7a8..339c8dea4606 100644
--- a/pkgs/tools/misc/hyperfine/default.nix
+++ b/pkgs/tools/misc/hyperfine/default.nix
@@ -1,17 +1,21 @@
-{ stdenv, fetchFromGitHub, rustPlatform }:
+{ stdenv, fetchFromGitHub, rustPlatform
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   name = "hyperfine-${version}";
-  version = "1.1.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner  = "sharkdp";
     repo   = "hyperfine";
     rev    = "refs/tags/v${version}";
-    sha256 = "13h43sjp059yq3bmdbb9i1082fkx5yzmhrkf5kpkxhnyn67xbdsg";
+    sha256 = "06kghk3gmi47c8g28n8srpb578yym104fa30s4m33ajb60fvwlld";
   };
 
-  cargoSha256 = "0saf0hl21ba2ckqbsw64908nvs0x1rjrnm73ackzpmv5pi9j567s";
+  cargoSha256 = "1rwh8kyrkk5jza4lx7sf1pln68ljwsv4ccyfvzcvc140y7ya8ps0";
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
   meta = with stdenv.lib; {
     description = "Command-line benchmarking tool";
diff --git a/pkgs/tools/misc/profile-sync-daemon/default.nix b/pkgs/tools/misc/profile-sync-daemon/default.nix
index c1b99b315677..cfc13b0e108e 100644
--- a/pkgs/tools/misc/profile-sync-daemon/default.nix
+++ b/pkgs/tools/misc/profile-sync-daemon/default.nix
@@ -1,15 +1,24 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, utillinux}:
 
 stdenv.mkDerivation rec {
-  version = "5.53";
+  version = "6.33";
   name = "profile-sync-daemon-${version}";
 
   src = fetchurl {
     url = "http://github.com/graysky2/profile-sync-daemon/archive/v${version}.tar.gz";
-    sha256 = "0m7h9l7dndqgb5k3grpc00f6dpg73p6h4q5sgkf8bvyzvcbdafwx";
+    sha256 = "0dzs51xbszzmcg82n2dil6nljj4gn0aw9rqjmhyi4a5frc8g6xmb";
   };
 
-  installPhase = "PREFIX=\"\" DESTDIR=$out make install-systemd-all";
+  installPhase = ''
+    PREFIX=\"\" DESTDIR=$out make install
+    substituteInPlace $out/bin/profile-sync-daemon \
+      --replace "/usr/" "$out/" \
+      --replace "sudo " "/run/wrappers/bin/sudo "
+    # $HOME detection fails (and is unnecessary)
+    sed -i '/^HOME/d' $out/bin/profile-sync-daemon
+    substituteInPlace $out/bin/psd-overlay-helper \
+      --replace "PATH=/usr/bin:/bin" "PATH=${utillinux.bin}/bin"
+  '';
 
   preferLocalBuild = true;
 
diff --git a/pkgs/tools/misc/tmuxp/default.nix b/pkgs/tools/misc/tmuxp/default.nix
index dd0fb4de702e..fe31d324087c 100644
--- a/pkgs/tools/misc/tmuxp/default.nix
+++ b/pkgs/tools/misc/tmuxp/default.nix
@@ -4,11 +4,11 @@ with python.pkgs;
 
 buildPythonApplication rec {
   pname = "tmuxp";
-  version = "1.4.0";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ghi6w0cfgs94zlz304q37h3lga2jalfm0hqi3g2060zfdnb96n7";
+    sha256 = "087icp1n1qdf53f1314g5biz16sigrnpqr835xqlr6vj85imm2dm";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/uutils-coreutils/default.nix b/pkgs/tools/misc/uutils-coreutils/default.nix
index 411e0324457a..70f304134d90 100644
--- a/pkgs/tools/misc/uutils-coreutils/default.nix
+++ b/pkgs/tools/misc/uutils-coreutils/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchFromGitHub, rustPlatform, cargo, cmake, sphinx, lib, prefix ? "uutils-" }:
 
 rustPlatform.buildRustPackage {
-  name = "uutils-coreutils-2018-02-09";
+  name = "uutils-coreutils-2018-09-30";
   src = fetchFromGitHub {
     owner = "uutils";
     repo = "coreutils";
-    rev = "f333ab26b03294a32a10c1c203a03c6b5cf8a89a";
-    sha256 = "0nkggs5nqvc1mxzzgcsqm1ahchh4ll11xh0xqmcljrr5yg1rhhzf";
+    rev = "a161b7e803aef08455ae0547dccd9210e38a4574";
+    sha256 = "19j40cma7rz6yf5j6nyid8qslbcmrnxdk6by53hflal2qx3g555z";
   };
 
   # too many impure/platform-dependent tests
   doCheck = false;
 
-  cargoSha256 = "0qv2wz1bxhm5xhzbic7cqmn8jj8fyap0s18ylia4fbwpmv89nkc5";
+  cargoSha256 = "1a9k7i4829plkxgsflmpji3mrw2i1vln6jsnhxmkl14h554yi5j4";
 
   makeFlags =
     [ "CARGO=${cargo}/bin/cargo" "PREFIX=$(out)" "PROFILE=release" "INSTALLDIR_MAN=$(out)/share/man/man1" ]
@@ -34,6 +34,6 @@ rustPlatform.buildRustPackage {
     homepage = https://github.com/uutils/coreutils;
     maintainers = with maintainers; [ ma27 ];
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 8cc224f475b1..9de0f850d49b 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -16,11 +16,11 @@
 buildPythonPackage rec {
 
   pname = "youtube-dl";
-  version = "2018.09.26";
+  version = "2018.10.05";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0b26cnzdzai82d2bsy91jy1aas8m8psakdrs789xy0v4kwwgrk3n";
+    sha256 = "1iq02kwxdgh07bf0w0fvbsjbdshs4kja35gy8m70ji9cj10l1mbw";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/babeld/default.nix b/pkgs/tools/networking/babeld/default.nix
index 9c8f8d31c0cc..c65c59265b56 100644
--- a/pkgs/tools/networking/babeld/default.nix
+++ b/pkgs/tools/networking/babeld/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "babeld-1.8.2";
+  name = "babeld-1.8.3";
 
   src = fetchurl {
     url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/${name}.tar.gz";
-    sha256 = "1p751zb7h75f8w7jz37432dj610f432jnj37lxhmav9q6aqyrv87";
+    sha256 = "1gb6fcvi1cyl05sr9zhhasqlcbi927sbc2dns1jbnyz029lcb31n";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index 8f72976d7dce..381489cc4360 100644
--- a/pkgs/tools/networking/haproxy/default.nix
+++ b/pkgs/tools/networking/haproxy/default.nix
@@ -9,12 +9,12 @@ assert usePcre -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "haproxy";
-  version = "1.8.13";
+  version = "1.8.14";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${stdenv.lib.versions.majorMinor version}/src/${name}.tar.gz";
-    sha256 = "2bf5dafbb5f1530c0e67ab63666565de948591f8e0ee2a1d3c84c45e738220f1";
+    sha256 = "1przpp8xp2ygcklz4ypnm6z56nb73ydwksm3yy5fb1dyg0jl0zmi";
   };
 
   buildInputs = [ openssl zlib ]
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index 3920405fe4d1..9ecf69637872 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -11,13 +11,13 @@ stdenv.mkDerivation rec {
 
   name = pname + "-" + version;
   pname = "i2pd";
-  version = "2.20.0";
+  version = "2.21.0";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "182iwfaz9ar18pqknrg60w89iinj91rn2651yaz2ap77h2a2psvf";
+    sha256 = "02zsig63cambwm479ckw4kl1dk00g1q2sbzsvn9vy1xpjy928n7v";
   };
 
   buildInputs = with stdenv.lib; [ boost zlib openssl ]
diff --git a/pkgs/tools/networking/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index f794a4e27c7a..f3cd9ea6a819 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -1,5 +1,10 @@
-{ stdenv, fetchurl, iptables, libuuid, pkgconfig }:
+{ stdenv, lib, fetchurl, iptables, libuuid, pkgconfig
+, which, iproute, gnused, coreutils, gawk, makeWrapper
+}:
 
+let
+  scriptBinEnv = lib.makeBinPath [ which iproute iptables gnused coreutils gawk ];
+in
 stdenv.mkDerivation rec {
   name = "miniupnpd-2.1";
 
@@ -10,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ iptables libuuid ];
-  nativeBuildInputs= [ pkgconfig ];
+  nativeBuildInputs= [ pkgconfig makeWrapper ];
 
   makefile = "Makefile.linux";
 
@@ -18,6 +23,13 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "PREFIX=$(out)" "INSTALLPREFIX=$(out)" ];
 
+  postFixup = ''
+    for script in $out/etc/miniupnpd/ip{,6}tables_{init,removeall}.sh
+    do
+      wrapProgram $script --set PATH '${scriptBinEnv}:$PATH'
+    done
+  '';
+
   meta = with stdenv.lib; {
     homepage = http://miniupnp.free.fr/;
     description = "A daemon that implements the UPnP Internet Gateway Device (IGD) specification";
diff --git a/pkgs/tools/networking/network-manager/openvpn/default.nix b/pkgs/tools/networking/network-manager/openvpn/default.nix
index 66a306ffb66c..d911acc58f4d 100644
--- a/pkgs/tools/networking/network-manager/openvpn/default.nix
+++ b/pkgs/tools/networking/network-manager/openvpn/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, substituteAll, openvpn, intltool, libxml2, pkgconfig, networkmanager, libsecret
+{ stdenv, fetchurl, substituteAll, openvpn, intltool, libxml2, pkgconfig, file, networkmanager, libsecret
 , withGnome ? true, gnome3, kmod }:
 
 let
   pname = "NetworkManager-openvpn";
-  version = "1.8.4";
+  version = "1.8.6";
 in stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr";
+    sha256 = "1ksij9438f2lrwkg287qjlfaxja6jgmqxqap96585r3nf5zj69ch";
   };
 
   patches = [
@@ -22,7 +22,7 @@ in stdenv.mkDerivation rec {
   buildInputs = [ openvpn networkmanager ]
     ++ stdenv.lib.optionals withGnome [ gnome3.gtk libsecret gnome3.networkmanagerapplet ];
 
-  nativeBuildInputs = [ intltool pkgconfig libxml2 ];
+  nativeBuildInputs = [ intltool pkgconfig file libxml2 ];
 
   configureFlags = [
     "--without-libnm-glib"
diff --git a/pkgs/tools/networking/pykms/default.nix b/pkgs/tools/networking/pykms/default.nix
index a0bac7854c1d..676f1d048554 100644
--- a/pkgs/tools/networking/pykms/default.nix
+++ b/pkgs/tools/networking/pykms/default.nix
@@ -31,13 +31,13 @@ let
 
 in buildPythonApplication rec {
   name = "pykms-${version}";
-  version = "20171224";
+  version = "20180208";
 
   src = fetchFromGitHub {
     owner  = "ThunderEX";
     repo   = "py-kms";
-    rev    = "885f67904f002042d7758e38f9c5426461c5cdc7";
-    sha256 = "155khy1285f8xkzi6bsqm9vzz043jsjmp039va1qsh675gz3q9ha";
+    rev    = "a1666a0ee5b404569a234afd05b164accc9a8845";
+    sha256 = "17yj5n8byxp09l5zkap73hpphjy35px84wy68ps824w8l0l8kcd4";
   };
 
   propagatedBuildInputs = [ argparse pytz ];
@@ -61,8 +61,8 @@ in buildPythonApplication rec {
 
     mv * $siteDir
     for b in client server ; do
-      chmod 0755 $siteDir/$b.py
       makeWrapper ${python.interpreter} $out/bin/$b.py \
+        --argv0 $b \
         --add-flags $siteDir/$b.py
     done
 
diff --git a/pkgs/tools/networking/telepresence/default.nix b/pkgs/tools/networking/telepresence/default.nix
index 54d54a76fcb3..2eca68a98f68 100644
--- a/pkgs/tools/networking/telepresence/default.nix
+++ b/pkgs/tools/networking/telepresence/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchgit, fetchFromGitHub, makeWrapper, git
-, python3, sshfs-fuse, torsocks, sshuttle, conntrack-tools
-, openssh, which, coreutils, iptables, bash }:
+{ lib, stdenv, pythonPackages, fetchgit, fetchFromGitHub, makeWrapper, git
+, sshfs-fuse, torsocks, sshuttle, conntrack-tools , openssh, coreutils
+, iptables, bash }:
 
 let
   sshuttle-telepresence = lib.overrideDerivation sshuttle (p: {
@@ -15,47 +15,35 @@ let
     postPatch = "rm sshuttle/tests/client/test_methods_nat.py";
     postInstall = "mv $out/bin/sshuttle $out/bin/sshuttle-telepresence";
   });
-in stdenv.mkDerivation rec {
+in pythonPackages.buildPythonPackage rec {
   pname = "telepresence";
-  version = "0.85";
-  name = "${pname}-${version}";
+  version = "0.93";
 
   src = fetchFromGitHub {
     owner = "datawire";
     repo = "telepresence";
     rev = version;
-    sha256 = "1iypqrx9pnhaz3p5bvl6g0c0c3d1799dv0xdjrzc1z5wa8diawvj";
+    sha256 = "1x8yjcqj8v35a5pxy2rxaixbznb4vk8ll958b4l46gnkfxf1kh1d";
   };
 
-  buildInputs = [ makeWrapper python3 ];
-
-  phases = ["unpackPhase" "installPhase"];
-
-  installPhase = ''
-    mkdir -p $out/libexec $out/bin
-
-    export PREFIX=$out
-    substituteInPlace ./install.sh \
-      --replace "#!/bin/bash" "#!${stdenv.shell}" \
-      --replace '"''${VENVDIR}/bin/pip" -q install "git+https://github.com/datawire/sshuttle.git@telepresence"' "" \
-      --replace '"''${VENVDIR}/bin/sshuttle-telepresence"' '"${sshuttle-telepresence}/bin/sshuttle-telepresence"'
-    ./install.sh
+  buildInputs = [ makeWrapper ];
 
+  postInstall = ''
     wrapProgram $out/bin/telepresence \
       --prefix PATH : ${lib.makeBinPath [
-        python3
         sshfs-fuse
         torsocks
         conntrack-tools
         sshuttle-telepresence
         openssh
-        which
         coreutils
         iptables
         bash
       ]}
   '';
 
+  doCheck = false;
+
   meta = {
     homepage = https://www.telepresence.io/;
     description = "Local development against a remote Kubernetes or OpenShift cluster";
diff --git a/pkgs/tools/networking/tinc/default.nix b/pkgs/tools/networking/tinc/default.nix
index bf039b653cc6..a17f382557ac 100644
--- a/pkgs/tools/networking/tinc/default.nix
+++ b/pkgs/tools/networking/tinc/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, lzo, openssl, zlib}:
 
 stdenv.mkDerivation rec {
-  version = "1.0.34";
+  version = "1.0.35";
   name = "tinc-${version}";
 
   src = fetchurl {
     url = "https://www.tinc-vpn.org/packages/tinc-${version}.tar.gz";
-    sha256 = "1nngdp2x5kykrgh13q5wjry8m82vahqv53csvlb22ifxvrhrnfn0";
+    sha256 = "0pl92sdwrkiwgll78x0ww06hfljd07mkwm62g8x17qn3gha3pj0q";
   };
 
   buildInputs = [ lzo openssl zlib ];
diff --git a/pkgs/tools/networking/tinc/pre.nix b/pkgs/tools/networking/tinc/pre.nix
index 09c737c048ae..0cc1fb99455a 100644
--- a/pkgs/tools/networking/tinc/pre.nix
+++ b/pkgs/tools/networking/tinc/pre.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "tinc-${version}";
-  version = "1.1pre16";
+  version = "1.1pre17";
 
   src = fetchgit {
     rev = "refs/tags/release-${version}";
     url = "git://tinc-vpn.org/tinc";
-    sha256 = "03dsm1kxagq8srskzg649xyhbdqbbqxc84pdwrz7yakpa9m6225c";
+    sha256 = "12abmx9qglchgn94a1qwgzldf2kaz77p8705ylpggzyncxv6bw2q";
   };
 
   outputs = [ "out" "man" "info" ];
diff --git a/pkgs/tools/networking/twa/default.nix b/pkgs/tools/networking/twa/default.nix
index f8004ad0068d..8e9a88ad6f94 100644
--- a/pkgs/tools/networking/twa/default.nix
+++ b/pkgs/tools/networking/twa/default.nix
@@ -1,19 +1,29 @@
-{ stdenv, fetchFromGitHub, makeWrapper, bash, gawk, curl, netcat, ncurses }:
+{ stdenv
+, bash
+, curl
+, fetchFromGitHub
+, gawk
+, host
+, lib
+, makeWrapper
+, ncurses
+, netcat
+}:
 
 stdenv.mkDerivation rec {
   name = "twa-${version}";
-  version = "1.3.1";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "trailofbits";
     repo = "twa";
     rev = version;
-    sha256 = "16x9nzsrf10waqmjm423vx44820c6mls7gxc8azrdqnz18vdy1h4";
+    sha256 = "14pwiq1kza92w2aq358zh5hrxpxpfhg31am03b56g6vlvqzsvib7";
   };
 
   dontBuild = true;
 
-  buildInputs = [ makeWrapper bash gawk curl netcat ];
+  buildInputs = [ makeWrapper bash gawk curl netcat host.dnsutils ];
 
   installPhase = ''
     install -Dm 0755 twa "$out/bin/twa"
@@ -22,13 +32,14 @@ stdenv.mkDerivation rec {
     install -Dm 0644 README.md "$out/share/doc/twa/README.md"
 
     wrapProgram "$out/bin/twa" \
-      --prefix PATH : ${stdenv.lib.makeBinPath [ curl netcat ncurses ]}
+      --prefix PATH : ${stdenv.lib.makeBinPath [ curl netcat ncurses host.dnsutils ]}
   '';
 
-  meta = {
+  meta = with lib; {
     description = "A tiny web auditor with strong opinions";
     homepage = https://github.com/trailofbits/twa;
-    license = stdenv.lib.licenses.mit;
-    maintainers = with stdenv.lib.maintainers; [ avaq ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ avaq ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index 3f1949d4bb68..493f52bd11b1 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "wireguard-tools-${version}";
-  version = "0.0.20180918";
+  version = "0.0.20180925";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz";
-    sha256 = "0ax6wvapzmn52l7js6n416852npgapa9875yl2ixs271y8m9kv40";
+    sha256 = "10k63ld0f5q5aykpcrg9m3xmrsf3qmlkvhiv18q73hnky2cjfx62";
   };
 
   sourceRoot = "source/src/tools";
diff --git a/pkgs/tools/security/eid-mw/default.nix b/pkgs/tools/security/eid-mw/default.nix
index 143b95d92c40..cc61cce463ce 100644
--- a/pkgs/tools/security/eid-mw/default.nix
+++ b/pkgs/tools/security/eid-mw/default.nix
@@ -7,10 +7,10 @@
 
 stdenv.mkDerivation rec {
   name = "eid-mw-${version}";
-  version = "4.4.7";
+  version = "4.4.8";
 
   src = fetchFromGitHub {
-    sha256 = "0b1i4slxw1l2p1gpfhd5v6n1fzwi8qwf4gsbxmrbhj9qxi4c73ci"; 
+    sha256 = "0khpkpfnbin46aqnb9xkhh5d89lvsshgp4kqpdgk95l73lx8kdqp"; 
     rev = "v${version}";
     repo = "eid-mw";
     owner = "Fedict";
diff --git a/pkgs/tools/security/sbsigntool/autoconf.patch b/pkgs/tools/security/sbsigntool/autoconf.patch
index 27f5b77c8848..f436a73bca72 100644
--- a/pkgs/tools/security/sbsigntool/autoconf.patch
+++ b/pkgs/tools/security/sbsigntool/autoconf.patch
@@ -1,17 +1,27 @@
-diff -uNr sbsigntool/configure.ac sbsigntool-new/configure.ac
---- sbsigntool/configure.ac	2015-07-05 12:18:18.932717136 +0200
-+++ sbsigntool-new/configure.ac	2015-07-05 14:51:39.659284938 +0200
-@@ -65,7 +65,7 @@
+--- sbsigntools/configure.ac	2018-09-25 10:30:00.878766256 -0500
++++ configure.ac.new	2018-09-25 10:34:56.231277375 -0500
+@@ -71,15 +71,16 @@
+ # no consistent view of where gnu-efi should dump the efi stuff, so find it
+ ##
+ for path in /lib /lib64 /usr/lib /usr/lib64 /usr/lib32 /lib/efi /lib64/efi /usr/lib/efi /usr/lib64/efi; do
+-    if test -e $path/crt0-efi-$EFI_ARCH.o; then
+-       CRTPATH=$path
++    if test -e @@NIX_GNUEFI@@/$path/crt0-efi-$EFI_ARCH.o; then
++       CRTPATH=@@NIX_GNUEFI@@/$path
++       break
+     fi
+ done
+ if test -z "$CRTPATH"; then
+    AC_MSG_ERROR([cannot find the gnu-efi crt path])
+ fi
  
- dnl gnu-efi headers require extra include dirs
- EFI_ARCH=$(uname -m)
 -EFI_CPPFLAGS="-I/usr/include/efi -I/usr/include/efi/$EFI_ARCH \
 +EFI_CPPFLAGS="-I@@NIX_GNUEFI@@/include/efi -I@@NIX_GNUEFI@@/include/efi/$EFI_ARCH \
   -DEFI_FUNCTION_WRAPPER"
  CPPFLAGS_save="$CPPFLAGS"
  CPPFLAGS="$CPPFLAGS $EFI_CPPFLAGS"
-@@ -74,5 +74,5 @@
- AC_SUBST(EFI_CPPFLAGS, $EFI_CPPFLAGS)
+@@ -90,5 +91,5 @@
+ AC_SUBST(CRTPATH, $CRTPATH)
  
  AC_CONFIG_FILES([Makefile src/Makefile lib/ccan/Makefile]
 -		[docs/Makefile tests/Makefile])
diff --git a/pkgs/tools/security/sbsigntool/default.nix b/pkgs/tools/security/sbsigntool/default.nix
index cfe54967cce3..4f4cbf4fb6f5 100644
--- a/pkgs/tools/security/sbsigntool/default.nix
+++ b/pkgs/tools/security/sbsigntool/default.nix
@@ -5,12 +5,12 @@
 
 stdenv.mkDerivation rec {
   name = "sbsigntool-${version}";
-  version = "0.5";
+  version = "0.9.1";
 
   src = fetchgit {
-    url = "git://kernel.ubuntu.com/jk/sbsigntool";
-    rev = "951ee95a301674c046f55330cd7460e1314deff2";
-    sha256 = "1skqrfhvsaay01l94m57sxxqp909rvn07xwmzc6vzzfcnsh6f2yk";
+    url = "https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git";
+    rev = "v0.9.1";
+    sha256 = "098gxmhjn8acxjw5bq59wq4xhgkpx1xn8kjvxwdzpqkwq9ivrsbp";
   };
 
   patches = [ ./autoconf.patch ];
@@ -18,12 +18,12 @@ stdenv.mkDerivation rec {
   prePatch = "patchShebangs .";
 
   nativeBuildInputs = [ autoconf automake pkgconfig help2man ];
-  buildInputs = [ utillinux openssl libuuid gnu-efi libbfd ];
+  buildInputs = [ openssl libuuid libbfd gnu-efi ];
 
   configurePhase = ''
     substituteInPlace configure.ac --replace "@@NIX_GNUEFI@@" "${gnu-efi}"
 
-    lib/ccan.git/tools/create-ccan-tree --build-type=automake lib/ccan "talloc read_write_all build_assert array_size"
+    lib/ccan.git/tools/create-ccan-tree --build-type=automake lib/ccan "talloc read_write_all build_assert array_size endian"
     touch AUTHORS
     touch ChangeLog
 
diff --git a/pkgs/tools/security/softhsm/default.nix b/pkgs/tools/security/softhsm/default.nix
index 4a4b790181d5..ec5eea52a6f8 100644
--- a/pkgs/tools/security/softhsm/default.nix
+++ b/pkgs/tools/security/softhsm/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
 
   name = "softhsm-${version}";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchurl {
     url = "https://dist.opendnssec.org/source/${name}.tar.gz";
-    sha256 = "01ysfmq0pzr3g9laq40xwq8vg8w135d4m8n05mr1bkdavqmw3ai6";
+    sha256 = "1cijq78jr3mzg7jj11r0krawijp99p253f4qdqr94n728p7mdalj";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/system/acpica-tools/default.nix b/pkgs/tools/system/acpica-tools/default.nix
index c738b611f946..54303d0c177d 100644
--- a/pkgs/tools/system/acpica-tools/default.nix
+++ b/pkgs/tools/system/acpica-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "acpica-tools-${version}";
-  version = "20180810";
+  version = "20180927";
 
   src = fetchurl {
     url = "https://acpica.org/sites/acpica/files/acpica-unix-${version}.tar.gz";
-    sha256 = "1wqy5kizmlk8y92vqhj387j5j9cfzaxxn55r490jxibl1qfr2hr6";
+    sha256 = "1c9d505mw1wyga65y4nmiz55gs357z97wnycx77yvjwvi08qsh6w";
   };
 
   NIX_CFLAGS_COMPILE = "-O3";
diff --git a/pkgs/tools/system/bfs/default.nix b/pkgs/tools/system/bfs/default.nix
index 56b7b26c7bd4..3734fefe60a2 100644
--- a/pkgs/tools/system/bfs/default.nix
+++ b/pkgs/tools/system/bfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "bfs-${version}";
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     repo = "bfs";
     owner = "tavianator";
     rev = version;
-    sha256 = "01vcqanj2sifa5i51wvrkxh55d6hrq6iq7zmnhv4ls221dqmbyyn";
+    sha256 = "0nxx2njjp04ik6msfmf07hprw0j88wg04m0q1sf17mhkliw2d78s";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index 300778c0935e..ba21fabe4350 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "facter-${version}";
-  version = "3.11.4";
+  version = "3.12.0";
 
   src = fetchFromGitHub {
-    sha256 = "1v134lnh035fpgqqqb7cxvyssvvgxvc42649qzqmsw459di9iqv0";
+    sha256 = "1bg044j3dv6kcksy3cyda650ara8s4awdf665k10gaaxa0gwn0jj";
     rev = version;
     repo = "facter";
     owner = "puppetlabs";
diff --git a/pkgs/tools/system/hwinfo/default.nix b/pkgs/tools/system/hwinfo/default.nix
index 066848ea7be9..af934b54185a 100644
--- a/pkgs/tools/system/hwinfo/default.nix
+++ b/pkgs/tools/system/hwinfo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "hwinfo-${version}";
-  version = "21.56";
+  version = "21.57";
 
   src = fetchFromGitHub {
     owner = "opensuse";
     repo = "hwinfo";
     rev = "${version}";
-    sha256 = "09zc8k1d9l673bb41vjpz3zrzaxaymqgk8m1v7pccvg70rq005kv";
+    sha256 = "1zxc26bljhj04mqzpwnqd6zfnz4dd2syapzn8xcakj882v4a8gnz";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/system/ipmiutil/default.nix b/pkgs/tools/system/ipmiutil/default.nix
index cd6577694890..a578f9db97a6 100644
--- a/pkgs/tools/system/ipmiutil/default.nix
+++ b/pkgs/tools/system/ipmiutil/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   baseName = "ipmiutil";
-  version = "3.1.2";
+  version = "3.1.3";
   name = "${baseName}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${baseName}/${name}.tar.gz";
-    sha256 = "00s7qbmywk3wka985lhhki17xs7d0ll8p172avv1pzmdwfrm703n";
+    sha256 = "0mxydn6pwdhky659rz6k1jlh95hy43pmz4nx53kligjwy2v060xq";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/system/plan9port/builder.sh b/pkgs/tools/system/plan9port/builder.sh
index 6085e6f841ac..7729bae897c0 100644
--- a/pkgs/tools/system/plan9port/builder.sh
+++ b/pkgs/tools/system/plan9port/builder.sh
@@ -5,7 +5,8 @@ export PLAN9_TARGET=$PLAN9
 
 configurePhase()
 {
-    echo CFLAGS=\"-I${fontconfig_dev}/include -I${libXt_dev}/include -I${freetype_dev}/include\" > LOCAL.config
+    echo CFLAGS=\"-I${fontconfig_dev}/include -I${xproto_exp}/include -I${xextproto_exp}/include -I${libX11_dev}/include -I${libXt_dev}/include -I${libXext_dev}/include -I${freetype_dev}/include -I${zlib_dev}/include\" > LOCAL.config
+    echo LDFLAGS=\"-L${fontconfig_lib}/lib -L${xproto_exp}/lib -L${xextproto_exp}/lib -L${libX11_exp}/lib -L${libXt_exp}/lib -L${libXext_exp}/lib -L${freetype_exp}/lib -L${zlib_exp}/lib\" >> LOCAL.config    
     echo X11=\"${libXt_dev}/include\" >> LOCAL.config
 
     for f in `grep -l -r /usr/local/plan9`; do
diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix
index dc588e54aea8..c71c70b57a7a 100644
--- a/pkgs/tools/system/plan9port/default.nix
+++ b/pkgs/tools/system/plan9port/default.nix
@@ -2,24 +2,23 @@
 , xproto ? null
 , xextproto ? null
 , libXext ? null
+, zlib ? null
   # For building web manuals
 , perl ? null
 , samChordingSupport ? true #from 9front
 }:
 
 stdenv.mkDerivation rec {
-  name = "plan9port-2016-04-18";
+  name = "plan9port-2018-09-20";
 
   src = fetchgit {
     # Latest, same as on github, google code is old
-    url = "https://plan9port.googlesource.com/plan9";
-    rev = "35d43924484b88b9816e40d2f6bff4547f3eec47";
-    sha256 = "1dvg580rkav09fra2gnrzh271b4fw6bgqfv4ib7ds5k3j55ahcdc";
+    url = "https://github.com/9fans/plan9port.git";
+    rev = "a82a8b6368274d77d42f526e379b74e79c137e26";
+    sha256 = "1icywcnqv0dz1mkm7giakii536nycp0ajxnmzkx4944dxsmhcwq1";
   };
 
-  patches = [
-    ./fontsrv.patch
-  ] ++ stdenv.lib.optionals samChordingSupport [ ./sam_chord_9front.patch ];
+  patches = stdenv.lib.optionals samChordingSupport [ ./sam_chord_9front.patch ];
 
   postPatch = ''
     #hardcoded path
@@ -59,11 +58,24 @@ stdenv.mkDerivation rec {
     homepage = http://swtch.com/plan9port/;
     description = "Plan 9 from User Space";
     license = licenses.lpl-102;
-    maintainers = with maintainers; [ ftrvxmtrx kovirobi ];
+    maintainers = with maintainers; [ bbarker ftrvxmtrx kovirobi ];
     platforms = platforms.unix;
   };
-
+  
+  libX11_dev = libX11.dev;
   libXt_dev = libXt.dev;
+  libXext_dev = libXext.dev;
   fontconfig_dev = fontconfig.dev;
   freetype_dev = freetype.dev;
+  zlib_dev = zlib.dev;
+  
+  xproto_exp = xproto;
+  xextproto_exp = xextproto;
+  libX11_exp = libX11;
+  libXt_exp = libXt;
+  libXext_exp = libXext;
+  freetype_exp = freetype;
+  zlib_exp = zlib;
+
+  fontconfig_lib = fontconfig.lib;
 }
diff --git a/pkgs/tools/system/plan9port/fontsrv.patch b/pkgs/tools/system/plan9port/fontsrv.patch
deleted file mode 100644
index 49fd9c04231b..000000000000
--- a/pkgs/tools/system/plan9port/fontsrv.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -r dc0640f14d07 src/cmd/mkfile
---- a/src/cmd/mkfile	Tue Mar 25 23:23:10 2014 -0400
-+++ b/src/cmd/mkfile	Mon Apr 14 22:36:05 2014 +0530
-@@ -4,8 +4,8 @@
- 
- <$PLAN9/src/mkmany
- 
--BUGGERED='CVS|faces|factotum|fontsrv|lp|ip|mailfs|upas|vncv|mnihongo|mpm|index|u9fs|secstore|smugfs|snarfer'
--DIRS=lex `ls -l |sed -n 's/^d.* //p' |egrep -v "^($BUGGERED)$"|egrep -v '^lex$'` $FONTSRV
-+BUGGERED='CVS|faces|factotum|lp|ip|mailfs|upas|vncv|mnihongo|mpm|index|u9fs|secstore|smugfs|snarfer'
-+DIRS=lex `ls -l |sed -n 's/^d.* //p' |egrep -v "^($BUGGERED)$"|egrep -v '^lex$'`
- 
- <$PLAN9/src/mkdirs
- 
diff --git a/pkgs/tools/system/thermald/default.nix b/pkgs/tools/system/thermald/default.nix
index a8670203775a..818c76712c7e 100644
--- a/pkgs/tools/system/thermald/default.nix
+++ b/pkgs/tools/system/thermald/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "thermald-${version}";
-  version = "1.7.2";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "01org";
     repo = "thermal_daemon";
     rev = "v${version}";
-    sha256 = "1cs2pq8xvfnsvrhg2bxawk4kn3z1qmfrnpnhs178pvfbglzh15hc";
+    sha256 = "1g1l7k8yxj8bl1ysdx8v6anv1s7xk9j072y44gwki70dy48n7j92";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/text/languagetool/default.nix b/pkgs/tools/text/languagetool/default.nix
index 42ba36adf310..7e784b917b42 100644
--- a/pkgs/tools/text/languagetool/default.nix
+++ b/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "LanguageTool-${version}";
-  version = "4.2";
+  version = "4.3";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${name}.zip";
-    sha256 = "01iy3cq6rwkm8sflj2nwp4ib29hyykd23hfsnrmqxji9csj8pf71";
+    sha256 = "0zsz82jc39j5wjwynmjny7h82kjz7clyk37n6pxmi85ibbdm0zn4";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/pkgs/tools/text/link-grammar/default.nix b/pkgs/tools/text/link-grammar/default.nix
new file mode 100644
index 000000000000..294aa1576801
--- /dev/null
+++ b/pkgs/tools/text/link-grammar/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, python3, sqlite, libedit, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  version = "5.5.1";
+  pname = "link-grammar";
+
+  outputs = [ "bin" "out" "dev" "man" ];
+
+  src = fetchurl {
+    url = "http://www.abisource.com/downloads/${pname}/${version}/${name}.tar.gz";
+    sha256 = "1x8kj1yr3b7b6qrvc5b8mm90ff3m4qdbdqplvzii2xlkpvik92ff";
+  };
+
+  nativeBuildInputs = [ pkgconfig python3 ];
+  buildInputs = [ sqlite libedit zlib ];
+
+  configureFlags = [
+    "--disable-java-bindings"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A Grammar Checking library";
+    homepage = https://www.abisource.com/projects/link-grammar/;
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/text/unoconv/default.nix b/pkgs/tools/text/unoconv/default.nix
index ac90cb556f90..879f903ade97 100644
--- a/pkgs/tools/text/unoconv/default.nix
+++ b/pkgs/tools/text/unoconv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python3, libreoffice, asciidoc, makeWrapper
+{ stdenv, fetchurl, python3, libreoffice-unwrapped, asciidoc, makeWrapper
 # whether to install odt2pdf/odt2doc/... symlinks to unoconv
 , installSymlinks ? true
 }:
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     sed -i "s|/usr/bin/env python.*|${python3}/bin/${python3.executable}|" "$out/bin/unoconv"
-    wrapProgram "$out/bin/unoconv" --set UNO_PATH "${libreoffice}/lib/libreoffice/program/"
+    wrapProgram "$out/bin/unoconv" --set UNO_PATH "${libreoffice-unwrapped}/lib/libreoffice/program/"
   '' + (if installSymlinks then ''
     make install-links prefix="$out"
   '' else "");
diff --git a/pkgs/tools/text/zimreader/default.nix b/pkgs/tools/text/zimreader/default.nix
index 4271bf095a14..fbd9bc3fa20a 100644
--- a/pkgs/tools/text/zimreader/default.nix
+++ b/pkgs/tools/text/zimreader/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A tool to serve ZIM files using HTTP";
     homepage = http://git.wikimedia.org/log/openzim;
+    license = stdenv.lib.licenses.gpl2;
     maintainers = with stdenv.lib.maintainers; [ robbinch juliendehos ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/tools/typesetting/scdoc/default.nix b/pkgs/tools/typesetting/scdoc/default.nix
index bdf074b558e7..3a4c7813c695 100644
--- a/pkgs/tools/typesetting/scdoc/default.nix
+++ b/pkgs/tools/typesetting/scdoc/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
   name = "scdoc-${version}";
-  version = "1.4.2";
+  version = "1.5.1";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~sircmpwn/scdoc/snapshot/scdoc-${version}.tar.xz";
-    sha256 = "1hhvg9cifx1v8b5i91lgq5cjdcskzl3rz7vwmwdq7ad0nqnykz82";
+  src = fetchgit {
+    url = "https://git.sr.ht/~sircmpwn/scdoc";
+    rev = version;
+    sha256 = "0fm3x6ma1pzlajfcy32ayqrcab8lwl64nxfaqgc6019mxw87y1ja";
   };
 
   postPatch = ''
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7b7534d8ee4b..2548afe22f58 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -569,6 +569,7 @@ with pkgs;
   asymptote = callPackage ../tools/graphics/asymptote {
     texLive = texlive.combine { inherit (texlive) scheme-small epsf cm-super; };
     gsl = gsl_1;
+    boehmgc = boehmgc_766;
   };
 
   atomicparsley = callPackage ../tools/video/atomicparsley { };
@@ -585,6 +586,8 @@ with pkgs;
 
   awslogs = callPackage ../tools/admin/awslogs { };
 
+  aws-env = callPackage ../tools/admin/aws-env { };
+
   aws-okta = callPackage ../tools/security/aws-okta { };
 
   aws-rotate-key = callPackage ../tools/admin/aws-rotate-key { };
@@ -1284,6 +1287,8 @@ with pkgs;
 
   envconsul = callPackage ../tools/system/envconsul { };
 
+  envsubst = callPackage ../tools/misc/envsubst { };
+
   eschalot = callPackage ../tools/security/eschalot { };
 
   esptool = callPackage ../tools/misc/esptool { };
@@ -1432,6 +1437,8 @@ with pkgs;
 
   libxnd = callPackage ../development/libraries/libxnd { };
 
+  link-grammar = callPackage ../tools/text/link-grammar { };
+
   loadwatch = callPackage ../tools/system/loadwatch { };
 
   loccount = callPackage ../development/tools/misc/loccount { };
@@ -2342,6 +2349,8 @@ with pkgs;
 
   buildEmscriptenPackage = callPackage ../development/em-modules/generic { };
 
+  carp = callPackage ../development/compilers/carp { };
+
   emscriptenVersion = "1.37.36";
 
   emscripten = callPackage ../development/compilers/emscripten { };
@@ -2588,6 +2597,8 @@ with pkgs;
 
   feedgnuplot = callPackage ../tools/graphics/feedgnuplot { };
 
+  fbv = callPackage ../tools/graphics/fbv { };
+
   fim = callPackage ../tools/graphics/fim { };
 
   flac123 = callPackage ../applications/audio/flac123 { };
@@ -3400,8 +3411,6 @@ with pkgs;
   isync = callPackage ../tools/networking/isync { };
   isyncUnstable = callPackage ../tools/networking/isync/unstable.nix { };
 
-  ivan = callPackage ../games/ivan { };
-
   jaaa = callPackage ../applications/audio/jaaa { };
 
   jackett = callPackage ../servers/jackett {
@@ -5208,6 +5217,8 @@ with pkgs;
 
   seqdiag = with python3Packages; toPythonApplication seqdiag;
 
+  sewer = callPackage ../tools/admin/sewer { };
+
   screenfetch = callPackage ../tools/misc/screenfetch { };
 
   sg3_utils = callPackage ../tools/system/sg3_utils { };
@@ -5430,6 +5441,8 @@ with pkgs;
     tlsSupport = true;
   };
 
+  ssocr = callPackage ../applications/misc/ssocr { };
+
   ssss = callPackage ../tools/security/ssss { };
 
   stabber = callPackage ../misc/stabber { };
@@ -5535,7 +5548,9 @@ with pkgs;
 
   teleport = callPackage ../servers/teleport {};
 
-  telepresence = callPackage ../tools/networking/telepresence { };
+  telepresence = callPackage ../tools/networking/telepresence {
+    pythonPackages = python3Packages;
+  };
 
   termplay = callPackage ../tools/misc/termplay { };
 
@@ -6761,7 +6776,8 @@ with pkgs;
     ncurses = pkgsi686Linux.ncurses5;
   };
   gcc-arm-embedded-6 = callPackage ../development/compilers/gcc-arm-embedded/6 {};
-  gcc-arm-embedded = gcc-arm-embedded-6;
+  gcc-arm-embedded-7 = callPackage ../development/compilers/gcc-arm-embedded/7 {};
+  gcc-arm-embedded = gcc-arm-embedded-7;
 
   gforth = callPackage ../development/compilers/gforth {};
 
@@ -8057,6 +8073,8 @@ with pkgs;
     buildBazelPackage = buildBazelPackage.override { enableNixHacks = false; };
   };
 
+  bazel-watcher = callPackage ../development/tools/bazel-watcher { };
+
   buildBazelPackage = callPackage ../build-support/build-bazel-package { };
 
   bear = callPackage ../development/tools/build-managers/bear { };
@@ -9061,6 +9079,7 @@ with pkgs;
   bobcat = callPackage ../development/libraries/bobcat { };
 
   boehmgc = callPackage ../development/libraries/boehm-gc { };
+  boehmgc_766 = callPackage ../development/libraries/boehm-gc/7.6.6.nix { };
 
   boolstuff = callPackage ../development/libraries/boolstuff { };
 
@@ -10097,9 +10116,7 @@ with pkgs;
 
   jsoncpp = callPackage ../development/libraries/jsoncpp { };
 
-  jsonnet = callPackage ../development/compilers/jsonnet {
-    emscripten = emscripten.override {python=python2;};
-  };
+  jsonnet = callPackage ../development/compilers/jsonnet { };
 
   jsonrpc-glib = callPackage ../development/libraries/jsonrpc-glib { };
 
@@ -10748,6 +10765,8 @@ with pkgs;
 
   libiec61883 = callPackage ../development/libraries/libiec61883 { };
 
+  libimagequant = callPackage ../development/libraries/libimagequant {};
+
   libinfinity = callPackage ../development/libraries/libinfinity { };
 
   libinput = callPackage ../development/libraries/libinput {
@@ -13683,6 +13702,8 @@ with pkgs;
 
   webmetro = callPackage ../servers/webmetro { };
 
+  webhook = callPackage ../servers/http/webhook { };
+
   winstone = callPackage ../servers/http/winstone { };
 
   xinetd = callPackage ../servers/xinetd { };
@@ -14767,6 +14788,8 @@ with pkgs;
       '';
   }));
 
+  systemd-wait = callPackage ../os-specific/linux/systemd-wait { };
+
   sysvinit = callPackage ../os-specific/linux/sysvinit { };
 
   sysvtools = sysvinit.override {
@@ -16428,6 +16451,14 @@ with pkgs;
   flink = callPackage ../applications/networking/cluster/flink { };
   flink_1_5 = flink.override { version = "1.5"; };
 
+  fllog = callPackage ../applications/misc/fllog { };
+
+  flmsg = callPackage ../applications/misc/flmsg { };
+
+  flrig = callPackage ../applications/misc/flrig { };
+
+  flwrap = callPackage ../applications/misc/flwrap { };
+
   fluidsynth = callPackage ../applications/audio/fluidsynth {
      inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio CoreMIDI CoreServices;
   };
@@ -16999,6 +17030,8 @@ with pkgs;
     gtk = gtk3;
   };
 
+  howl = callPackage ../applications/editors/howl { };
+
   ht = callPackage ../applications/editors/ht { };
 
   hubstaff = callPackage ../applications/misc/hubstaff { };
@@ -17361,6 +17394,8 @@ with pkgs;
 
   kubecfg = callPackage ../applications/networking/cluster/kubecfg { };
 
+  kubeval = callPackage ../applications/networking/cluster/kubeval { };
+
   kubernetes = callPackage ../applications/networking/cluster/kubernetes {  };
 
   kubectl = (kubernetes.override { components = [ "cmd/kubectl" ]; }).overrideAttrs(oldAttrs: {
@@ -17496,6 +17531,8 @@ with pkgs;
 
   lrzsz = callPackage ../tools/misc/lrzsz { };
 
+  lsp-plugins = callPackage ../applications/audio/lsp-plugins { };
+
   luminanceHDR = libsForQt5.callPackage ../applications/graphics/luminance-hdr { };
 
   lxdvdrip = callPackage ../applications/video/lxdvdrip { };
@@ -19780,6 +19817,8 @@ with pkgs;
 
   zim = callPackage ../applications/office/zim { };
 
+  zita-njbridge = callPackage ../applications/audio/zita-njbridge { };
+
   zoom-us = libsForQt59.callPackage ../applications/networking/instant-messengers/zoom-us { };
 
   zotero = callPackage ../applications/office/zotero { };
@@ -20096,6 +20135,8 @@ with pkgs;
 
   instead-launcher = callPackage ../games/instead-launcher { };
 
+  ivan = callPackage ../games/ivan { };
+
   ja2-stracciatella = callPackage ../games/ja2-stracciatella { };
 
   klavaro = callPackage ../games/klavaro {};
@@ -21066,6 +21107,8 @@ with pkgs;
 
   sherpa = callPackage ../applications/science/physics/sherpa {};
 
+  xfitter = callPackage ../applications/science/physics/xfitter {};
+
   ### SCIENCE/PROGRAMMING
 
   dafny = dotnetPackages.Dafny;
@@ -21458,6 +21501,10 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
   };
 
+  root5 = lowPrio (callPackage ../applications/science/misc/root/5.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
+  });
+
   simgrid = callPackage ../applications/science/misc/simgrid { };
 
   spyder = callPackage ../applications/science/spyder { };
@@ -21479,6 +21526,14 @@ with pkgs;
 
   ### SCIENCE / PHYSICS
 
+  apfelgrid = callPackage ../development/libraries/physics/apfelgrid { };
+
+  apfel = callPackage ../development/libraries/physics/apfel { };
+
+  applgrid = callPackage ../development/libraries/physics/applgrid { };
+
+  hoppet = callPackage ../development/libraries/physics/hoppet { };
+
   fastjet = callPackage ../development/libraries/physics/fastjet { };
 
   fastnlo = callPackage ../development/libraries/physics/fastnlo { };
@@ -21497,6 +21552,8 @@ with pkgs;
 
   mcgrid = callPackage ../development/libraries/physics/mcgrid { };
 
+  mela = callPackage ../development/libraries/physics/mela { };
+
   nlojet = callPackage ../development/libraries/physics/nlojet { };
 
   pythia = callPackage ../development/libraries/physics/pythia { };
@@ -21512,6 +21569,8 @@ with pkgs;
     withRootSupport = true;
   });
 
+  qcdnum = callPackage ../development/libraries/physics/qcdnum { };
+
   ### SCIENCE/ROBOTICS
 
   apmplanner2 = libsForQt5.callPackage ../applications/science/robotics/apmplanner2 { };
@@ -21734,7 +21793,9 @@ with pkgs;
 
   hplipWithPlugin_3_16_11 = hplip_3_16_11.override { withPlugin = true; };
 
-  hyperfine = callPackage ../tools/misc/hyperfine { };
+  hyperfine = callPackage ../tools/misc/hyperfine {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   epkowa = callPackage ../misc/drivers/epkowa { };
 
@@ -22064,9 +22125,10 @@ with pkgs;
   mfcl8690cdwcupswrapper = callPackage ../misc/cups/drivers/mfcl8690cdwcupswrapper { };
   mfcl8690cdwlpr = callPackage ../misc/cups/drivers/mfcl8690cdwlpr { };
 
-  samsung-unified-linux-driver_1_00_37 = callPackage ../misc/cups/drivers/samsung { };
+  samsung-unified-linux-driver_1_00_37 = callPackage ../misc/cups/drivers/samsung/1.00.37.nix { };
+  samsung-unified-linux-driver_4_00_39 = callPackage ../misc/cups/drivers/samsung/4.00.39 { };
   samsung-unified-linux-driver_4_01_17 = callPackage ../misc/cups/drivers/samsung/4.01.17.nix { };
-  samsung-unified-linux-driver = callPackage ../misc/cups/drivers/samsung/4.00.39 { };
+  samsung-unified-linux-driver = self.samsung-unified-linux-driver_4_01_17;
 
   sane-backends = callPackage ../applications/graphics/sane/backends {
     gt68xxFirmware = config.sane.gt68xxFirmware or null;
@@ -22144,6 +22206,7 @@ with pkgs;
     terraform_0_10-full
     terraform_0_11
     terraform_0_11-full
+    terraform_plugins_test
     ;
 
   terraform = terraform_0_11;
@@ -22153,11 +22216,6 @@ with pkgs;
     callPackage ../applications/networking/cluster/terraform-providers {}
   );
 
-  terraform-provider-libvirt = callPackage ../applications/networking/cluster/terraform-provider-libvirt {};
-
-  terraform-provider-ibm = callPackage ../applications/networking/cluster/terraform-provider-ibm {};
-
-
   terraform-inventory = callPackage ../applications/networking/cluster/terraform-inventory {};
 
   terraform-landscape = callPackage ../applications/networking/cluster/terraform-landscape {};
@@ -22549,4 +22607,6 @@ with pkgs;
   alibuild = callPackage ../development/tools/build-managers/alibuild {
     python = python27;
   };
+
+  tsung = callPackage ../applications/networking/tsung {};
 }
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index 9c4c9aa9bdab..bc21137903af 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -22,6 +22,7 @@ let
       CoLoR = callPackage ../development/coq-modules/CoLoR {};
       coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {};
       coq-haskell = callPackage ../development/coq-modules/coq-haskell { };
+      coqprime = callPackage ../development/coq-modules/coqprime {};
       coquelicot = callPackage ../development/coq-modules/coquelicot {};
       dpdgraph = callPackage ../development/coq-modules/dpdgraph {};
       equations = callPackage ../development/coq-modules/equations { };
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 9e324257e03d..7de4bf3fad40 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -238,7 +238,16 @@ let
 
     easy-format = callPackage ../development/ocaml-modules/easy-format { };
 
-    eliom = callPackage ../development/ocaml-modules/eliom { };
+    eliom = callPackage ../development/ocaml-modules/eliom {
+      js_of_ocaml-lwt = js_of_ocaml-lwt.override {
+        ocaml_lwt = lwt3;
+        lwt_log = lib.overrideDerivation
+          (lwt_log.override { lwt = lwt3; })
+          (_: { inherit (lwt3) src; });
+      };
+      lwt_react = lwt_react.override { lwt = lwt3; };
+      lwt_ssl = lwt_ssl.override { lwt = lwt3; };
+    };
 
     elpi = callPackage ../development/ocaml-modules/elpi { };
 
@@ -252,6 +261,8 @@ let
 
     ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { };
 
+    ezxmlm = callPackage ../development/ocaml-modules/ezxmlm { };
+
     facile = callPackage ../development/ocaml-modules/facile { };
 
     faillib = callPackage ../development/ocaml-modules/faillib { };
@@ -399,25 +410,27 @@ let
     lwt2 = callPackage ../development/ocaml-modules/lwt/legacy.nix { };
 
     lwt3 = if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/lwt { }
+      then callPackage ../development/ocaml-modules/lwt/3.x.nix { }
       else throw "lwt3 is not available for OCaml ${ocaml.version}";
 
-    ocaml_lwt = if lib.versionOlder "4.02" ocaml.version then lwt3 else lwt2;
+    lwt4 = callPackage ../development/ocaml-modules/lwt/4.x.nix { };
+
+    ocaml_lwt = if lib.versionOlder "4.02" ocaml.version then lwt4 else lwt2;
 
     lwt_log = callPackage ../development/ocaml-modules/lwt_log {
-      lwt = lwt3;
+      lwt = lwt4;
     };
 
     lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix {
-      lwt = lwt3;
+      lwt = ocaml_lwt;
     };
 
     lwt_react = callPackage ../development/ocaml-modules/lwt_react {
-      lwt = lwt3;
+      lwt = ocaml_lwt;
     };
 
     lwt_ssl = callPackage ../development/ocaml-modules/lwt_ssl {
-      lwt = lwt3;
+      lwt = ocaml_lwt;
     };
 
     macaque = callPackage ../development/ocaml-modules/macaque { };
@@ -533,7 +546,10 @@ let
 
     ocplib-simplex = callPackage ../development/ocaml-modules/ocplib-simplex { };
 
-    ocsigen_server = callPackage ../development/ocaml-modules/ocsigen-server { };
+    ocsigen_server = callPackage ../development/ocaml-modules/ocsigen-server {
+      lwt_react = lwt_react.override { lwt = lwt3; };
+      lwt_ssl = lwt_ssl.override { lwt = lwt3; };
+    };
 
     ocsigen-start = callPackage ../development/ocaml-modules/ocsigen-start { };
 
@@ -543,7 +559,9 @@ let
 
     odoc = callPackage ../development/ocaml-modules/odoc { };
 
-    ojquery = callPackage ../development/ocaml-modules/ojquery { };
+    ojquery = callPackage ../development/ocaml-modules/ojquery {
+      ocaml_lwt = lwt3;
+    };
 
     omd = callPackage ../development/ocaml-modules/omd { };
 
@@ -1041,6 +1059,7 @@ let
     };
 
     hol_light = callPackage ../applications/science/logic/hol_light {
+      inherit num;
       camlp5 = camlp5_strict;
     };
 
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 56a59b04b5b9..f12f75c69fa9 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -3113,6 +3113,22 @@ let
     buildInputs = [ CryptOpenSSLGuess ];
   };
 
+  CryptEd25519 = buildPerlPackage rec {
+    name = "Crypt-Ed25519-1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${name}.tar.gz";
+      sha256 = "1jwh6b8b2ppvzxaljz287zakj4q3ip4zq121i23iwh26wxhlll2q";
+    };
+
+    nativeBuildInputs = [ CanaryStability ];
+
+    meta = {
+      description = "Minimal Ed25519 bindings";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = [ maintainers.thoughtpolice ];
+    };
+  };
+
   CryptSSLeay = buildPerlPackage rec {
     name = "Crypt-SSLeay-0.72";
     src = fetchurl {
@@ -10005,10 +10021,10 @@ let
   };
 
   Mojolicious = buildPerlPackage rec {
-    name = "Mojolicious-8.01";
+    name = "Mojolicious-8.02";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SR/SRI/${name}.tar.gz";
-      sha256 = "1gwf45s6vblff0ima2awjq3awj4wws4hn7df4d9jmyj9rji04z9c";
+      sha256 = "0m36zlh58bvww15k9ybi6khrrr6ga308y38p49hfq204k7cy02zp";
     };
     buildInputs = [ ExtUtilsMakeMaker ];
     propagatedBuildInputs = [ IOSocketIP JSONPP PodSimple TimeLocal ];
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 93400bf0ee65..59e3d5133bbe 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -8,7 +8,7 @@
 
    $ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
 */
-{ nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; }
+{ nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; revision = "0000000000000000000000000000000000000000"; }
 , officialRelease ? false
   # The platforms for which we build Nixpkgs.
 , supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]
@@ -32,7 +32,7 @@ let
 
       metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
 
-      manual = import ../../doc;
+      manual = import ../../doc { inherit pkgs nixpkgs; };
       lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
 
       darwin-tested = if supportDarwin then pkgs.releaseTools.aggregate