about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixpkgs/doc/languages-frameworks/haskell.section.md2
-rw-r--r--nixpkgs/doc/package-notes.xml48
-rw-r--r--nixpkgs/doc/stdenv.xml7
-rw-r--r--nixpkgs/lib/generators.nix2
-rw-r--r--nixpkgs/lib/sources.nix4
-rw-r--r--nixpkgs/lib/trivial.nix2
-rw-r--r--nixpkgs/maintainers/maintainer-list.nix38
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-1903.xml7
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-1909.xml4
-rw-r--r--nixpkgs/nixos/maintainers/option-usages.nix2
-rw-r--r--nixpkgs/nixos/modules/config/fonts/fontconfig-penultimate.nix2
-rw-r--r--nixpkgs/nixos/modules/config/fonts/fontconfig.nix2
-rw-r--r--nixpkgs/nixos/modules/config/sysctl.nix2
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix4
-rw-r--r--nixpkgs/nixos/modules/misc/ids.nix4
-rw-r--r--nixpkgs/nixos/modules/module-list.nix1
-rw-r--r--nixpkgs/nixos/modules/programs/bash/bash.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/fish.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/ssmtp.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/zsh/zsh.nix2
-rw-r--r--nixpkgs/nixos/modules/rename.nix1
-rw-r--r--nixpkgs/nixos/modules/services/backup/znapzend.nix4
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/addons/dns.nix8
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix8
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix6
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix2
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/buildkite-agent.nix2
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/jenkins/default.nix2
-rw-r--r--nixpkgs/nixos/modules/services/databases/cassandra.nix22
-rw-r--r--nixpkgs/nixos/modules/services/databases/cockroachdb.nix4
-rw-r--r--nixpkgs/nixos/modules/services/databases/foundationdb.nix12
-rw-r--r--nixpkgs/nixos/modules/services/databases/pgmanage.nix4
-rw-r--r--nixpkgs/nixos/modules/services/databases/postgresql.nix91
-rw-r--r--nixpkgs/nixos/modules/services/desktops/geoclue2.nix188
-rw-r--r--nixpkgs/nixos/modules/services/games/factorio.nix44
-rw-r--r--nixpkgs/nixos/modules/services/games/minecraft-server.nix4
-rw-r--r--nixpkgs/nixos/modules/services/logging/logcheck.nix2
-rw-r--r--nixpkgs/nixos/modules/services/mail/dovecot.nix12
-rw-r--r--nixpkgs/nixos/modules/services/misc/bepasty.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/errbot.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/home-assistant.nix35
-rw-r--r--nixpkgs/nixos/modules/services/misc/taskserver/default.nix4
-rw-r--r--nixpkgs/nixos/modules/services/misc/zoneminder.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/graphite.nix4
-rw-r--r--nixpkgs/nixos/modules/services/networking/flannel.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/i2pd.nix8
-rw-r--r--nixpkgs/nixos/modules/services/networking/mxisd.nix10
-rw-r--r--nixpkgs/nixos/modules/services/networking/strongswan-swanctl/param-constructors.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/strongswan-swanctl/param-lib.nix4
-rw-r--r--nixpkgs/nixos/modules/services/networking/syncthing.nix260
-rw-r--r--nixpkgs/nixos/modules/services/networking/xinetd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/search/kibana.nix2
-rw-r--r--nixpkgs/nixos/modules/services/security/fprintd.nix12
-rw-r--r--nixpkgs/nixos/modules/services/security/oauth2_proxy.nix8
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/miniflux.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/restya-board.nix12
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/winstone.nix129
-rw-r--r--nixpkgs/nixos/modules/services/x11/colord.nix1
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix21
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix11
-rw-r--r--nixpkgs/nixos/modules/virtualisation/docker-containers.nix6
-rw-r--r--nixpkgs/nixos/modules/virtualisation/google-compute-image.nix2
-rw-r--r--nixpkgs/nixos/tests/all-tests.nix3
-rw-r--r--nixpkgs/nixos/tests/redmine.nix53
-rw-r--r--nixpkgs/nixos/tests/syncthing-init.nix30
-rw-r--r--nixpkgs/nixos/tests/tinydns.nix26
-rw-r--r--nixpkgs/nixos/tests/upnp.nix4
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity/beta.nix6
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/audacity/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/fluidsynth/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/moc/default.nix93
-rw-r--r--nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch33
-rw-r--r--nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch800
-rw-r--r--nixpkgs/pkgs/applications/audio/renoise/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/sfxr/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/sublime/3/packages.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/tiled/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/buku/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/dbeaver/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/update.nix59
-rw-r--r--nixpkgs/pkgs/applications/misc/guake/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/lifelines/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/pstree/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/termite/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/misc/waybar/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/xmind/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch40
-rw-r--r--nixpkgs/pkgs/applications/networking/Sylk/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/server.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/unison/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock2
-rw-r--r--nixpkgs/pkgs/applications/office/timetrap/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/office/timetrap/gemset.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/molden/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/cplex/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/misc/simgrid/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch37
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-lfs/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/pijul/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/video/devede/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/plugins.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/wf-recorder/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cri-o/default.nix75
-rw-r--r--nixpkgs/pkgs/build-support/emacs/melpa.nix2
-rw-r--r--nixpkgs/pkgs/build-support/libredirect/libredirect.c7
-rw-r--r--nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/libertinus/default.nix8
-rw-r--r--nixpkgs/pkgs/data/fonts/redhat-official/default.nix22
-rw-r--r--nixpkgs/pkgs/data/misc/iana-etc/default.nix4
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch10
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix115
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch30
-rw-r--r--nixpkgs/pkgs/data/themes/zuki/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix55
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gedit/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/polari/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gjs/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.28.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/yelp-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/fix-missing-line.patch21
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix26
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/clang/default.nix60
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/clang/purity.patch17
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/default.nix59
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/darwin.patch30
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/default.nix48
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/r242056.patch16
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/setup-hook.sh6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/xlocale-glibc-2.26.patch17
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/libc++abi.nix61
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/lldb.nix49
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/3.7/llvm.nix105
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/rustc.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/solc/default.nix50
-rw-r--r--nixpkgs/pkgs/development/compilers/souper/cmake-fix.patch14
-rw-r--r--nixpkgs/pkgs/development/compilers/souper/default.nix59
-rw-r--r--nixpkgs/pkgs/development/compilers/vala/default.nix53
-rw-r--r--nixpkgs/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch (renamed from nixpkgs/pkgs/development/compilers/vala/disable-graphviz-0.44.1.patch)56
-rw-r--r--nixpkgs/pkgs/development/compilers/z88dk/default.nix43
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-cairo/default.nix2
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-lib/default.nix9
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-common.nix5
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml66
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix2253
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/make-package-set.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/racket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/racket/minimal.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/default.nix31
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/rubygems-src.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/rubygems/0001-add-post-extract-hook.patch34
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/rubygems/0002-binaries-with-env-shebang.patch28
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/rubygems/0003-gem-install-default-to-user.patch26
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/1.59.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-cstdint-cygwin.patch20
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-iostreams-cygwin.patch24
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-python-cygwin.patch35
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-regex-cygwin.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.45.0-jam-cygwin.patch12
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.50.0-jam-pep3149.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.55.0-asio-MSG_EOR.patch14
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.55.0-interlocked-cygwin.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-asio-cygwin.patch1835
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-config-cygwin.patch76
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-context-cygwin.patch600
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-filesystem-cygwin.patch32
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-locale-cygwin.patch81
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-log-cygwin.patch46
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-smart_ptr-cygwin.patch77
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-system-cygwin.patch22
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.50.0-fix-non-utf8-files.patch22
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.50.0-pool.patch122
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-locale-unused_typedef.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-pool-max_chunks_shadow.patch14
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-python-unused_typedef.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-move-is_class.patch20
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-mpl-print.patch31
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-pool-test_linking.patch33
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-signals2-weak_ptr.patch10
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-spirit-unused_typedef.patch19
-rw-r--r--nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-uuid-comparison.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/c-blosc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/g2o/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/gdcm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch23
-rw-r--r--nixpkgs/pkgs/development/libraries/geoclue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gnutls/3.5.10.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/gnutls/3.6.nix22
-rw-r--r--nixpkgs/pkgs/development/libraries/gnutls/default.nix (renamed from nixpkgs/pkgs/development/libraries/gnutls/generic.nix)52
-rw-r--r--nixpkgs/pkgs/development/libraries/gnutls/nix-ssl-cert-file.patch19
-rw-r--r--nixpkgs/pkgs/development/libraries/gnutls/no-security-framework.patch126
-rw-r--r--nixpkgs/pkgs/development/libraries/herqq/gcc6.patch1320
-rw-r--r--nixpkgs/pkgs/development/libraries/libcdio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcsptr/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/libdrm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libdvdread/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libfaketime/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libfprint/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/libjpeg-turbo/djpeg-rgb-islow-icc-cmp.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/libmbim/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libnice/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/libqmi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libsass/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libshout/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libu2f-host/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/libuv/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libxmlb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pcre2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pixman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-4.x/4.8/dlopen-webkit-nsplugin.diff4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/quazip/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/spdk/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/vte/default.nix4
-rw-r--r--nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock6
-rw-r--r--nixpkgs/pkgs/development/mobile/cocoapods/Gemfile.lock8
-rw-r--r--nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix8
-rw-r--r--nixpkgs/pkgs/development/mobile/cocoapods/gemset.nix12
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/build-vm-legacy.nix1
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/16x16/apps/pharo.pngbin902 -> 0 bytes
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/256x256/apps/pharo.pngbin52181 -> 0 bytes
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/32x32/apps/pharo.pngbin2368 -> 0 bytes
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/48x48/apps/pharo.pngbin4602 -> 0 bytes
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/resources/share/mime/packages/pharo-image.xml9
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/share.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/anytree/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/anytree/graphviz.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/astroid/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/blis/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/block-io/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/worker.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/celery/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fasttext/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/fitbit/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/gphoto2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpretty/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/macropy/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/pamqp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plyvel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyatmo/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysonos/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-slugify/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytricia/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytzdata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxl3/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/r2pipe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/models.json70
-rw-r--r--nixpkgs/pkgs/development/python-modules/srsly/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/thinc/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/wasabi/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/zxcvbn-python/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/brakeman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/buildah/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/chit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/devd/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/devd/deps.nix201
-rw-r--r--nixpkgs/pkgs/development/tools/misc/binutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/help2man/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/sloccount/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tokei/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix30
-rw-r--r--nixpkgs/pkgs/development/tools/packer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/pgloader/default.nix39
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix43
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/skaffold/default.nix8
-rw-r--r--nixpkgs/pkgs/development/web/minify/default.nix24
-rw-r--r--nixpkgs/pkgs/development/web/minify/deps.nix74
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v12.nix4
-rw-r--r--nixpkgs/pkgs/games/flare/default.nix24
-rw-r--r--nixpkgs/pkgs/games/flare/engine.nix24
-rw-r--r--nixpkgs/pkgs/games/flare/game.nix23
-rw-r--r--nixpkgs/pkgs/games/openra/common.nix7
-rw-r--r--nixpkgs/pkgs/games/openra/engines.nix14
-rw-r--r--nixpkgs/pkgs/games/openra/mod-launch-game.sh6
-rwxr-xr-xnixpkgs/pkgs/games/openra/mod-update.sh27
-rw-r--r--nixpkgs/pkgs/games/openra/mods.nix48
-rw-r--r--nixpkgs/pkgs/games/pioneer/default.nix25
-rw-r--r--nixpkgs/pkgs/games/steam/chrootenv.nix3
-rw-r--r--nixpkgs/pkgs/games/xbill/default.nix34
-rw-r--r--nixpkgs/pkgs/misc/emulators/wine/base.nix2
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/generated.nix204
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/anbox/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fwts/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iputils/default.nix19
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-5.0.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-5.1.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/manual-config.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/shadow/default.nix18
-rw-r--r--nixpkgs/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch30
-rw-r--r--nixpkgs/pkgs/os-specific/linux/util-linux/default.nix16
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/appdaemon.nix8
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/component-packages.nix1570
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/default.nix44
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/frontend.nix4
-rwxr-xr-xnixpkgs/pkgs/servers/home-assistant/parse-requirements.py55
-rw-r--r--nixpkgs/pkgs/servers/http/winstone/default.nix26
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mxisd/0001-gradle.patch14
-rw-r--r--nixpkgs/pkgs/servers/mxisd/default.nix14
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix39
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/packages.nix2
-rw-r--r--nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--nixpkgs/pkgs/stdenv/adapters.nix2
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/default.nix2
-rw-r--r--nixpkgs/pkgs/stdenv/linux/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/X11/alttab/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/admin/analog/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/compression/lz4/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/filesystems/android-file-transfer/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/filesystems/idsk/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/filesystems/mergerfs/tools.nix14
-rw-r--r--nixpkgs/pkgs/tools/filesystems/yandex-disk/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/misc/getopt/builder.sh4
-rw-r--r--nixpkgs/pkgs/tools/misc/getopt/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/memtest86+/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/memtest86/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/misc/nyancat/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/networking/dnstracer/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/networking/horst/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/miniupnpc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/miniupnpd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/fix-docs-build.patch11
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrok-2/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrok-2/versions.json30
-rw-r--r--nixpkgs/pkgs/tools/networking/openvpn/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/ubridge/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/b2sum/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/bettercap/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/security/bettercap/deps.nix132
-rw-r--r--nixpkgs/pkgs/tools/security/fprintd/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/monkeysphere/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/monkeysphere/monkeysphere.patch21
-rw-r--r--nixpkgs/pkgs/tools/security/spectre-meltdown-checker/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/osquery/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/kdiff3/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/text/transifex-client/default.nix2
-rw-r--r--nixpkgs/pkgs/top-level/aliases.nix2
-rw-r--r--nixpkgs/pkgs/top-level/all-packages.nix107
-rw-r--r--nixpkgs/pkgs/top-level/php-packages.nix85
-rw-r--r--nixpkgs/pkgs/top-level/python-packages.nix24
412 files changed, 7035 insertions, 9366 deletions
diff --git a/nixpkgs/doc/languages-frameworks/haskell.section.md b/nixpkgs/doc/languages-frameworks/haskell.section.md
index d832716c0308..48d22831cd9b 100644
--- a/nixpkgs/doc/languages-frameworks/haskell.section.md
+++ b/nixpkgs/doc/languages-frameworks/haskell.section.md
@@ -953,7 +953,7 @@ is essentially a "free software" license (BSD3), according to
 paragraph 2 of the LGPL, GHC must be distributed under the terms of the LGPL!
 
 To work around these problems GHC can be build with a slower but LGPL-free
-alternative implemention for Integer called
+alternative implementation for Integer called
 [integer-simple](http://hackage.haskell.org/package/integer-simple).
 
 To get a GHC compiler build with `integer-simple` instead of `integer-gmp` use
diff --git a/nixpkgs/doc/package-notes.xml b/nixpkgs/doc/package-notes.xml
index 12d81ae29bff..54f3079d5541 100644
--- a/nixpkgs/doc/package-notes.xml
+++ b/nixpkgs/doc/package-notes.xml
@@ -918,4 +918,52 @@ citrix_receiver.override {
    </para>
   </section>
  </section>
+ <section xml:id="sec-nginx">
+  <title>Nginx</title>
+
+  <para>
+    <link xlink:href="https://nginx.org/">Nginx</link> is a
+    reverse proxy and lightweight webserver.
+  </para>
+
+  <section xml:id="sec-nginx-etag">
+   <title>ETags on static files served from the Nix store</title>
+
+   <para>
+     HTTP has a couple different mechanisms for caching to prevent
+     clients from having to download the same content repeatedly
+     if a resource has not changed since the last time it was requested.
+     When nginx is used as a server for static files, it implements
+     the caching mechanism based on the
+     <link xlink:href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified"><literal>Last-Modified</literal></link>
+     response header automatically; unfortunately, it works by using
+     filesystem timestamps to determine the value of the
+     <literal>Last-Modified</literal> header. This doesn't give the
+     desired behavior when the file is in the Nix store, because all
+     file timestamps are set to 0 (for reasons related to build
+     reproducibility).
+   </para>
+
+   <para>
+     Fortunately, HTTP supports an alternative (and more effective)
+     caching mechanism: the
+    <link xlink:href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag"><literal>ETag</literal></link>
+    response header. The value of the <literal>ETag</literal> header
+    specifies some identifier for the particular content that the
+    server is sending (e.g. a hash). When a client makes a second
+    request for the same resource, it sends that value back in an
+    <literal>If-None-Match</literal> header. If the ETag value is
+    unchanged, then the server does not need to resend the content.
+   </para>
+
+   <para>
+    As of NixOS 19.09, the nginx package in Nixpkgs is patched such
+    that when nginx serves a file out of <filename>/nix/store</filename>,
+    the hash in the store path is used as the <literal>ETag</literal>
+    header in the HTTP response, thus providing proper caching functionality.
+    This happens automatically; you do not need to do modify any
+    configuration to get this behavior.
+   </para>
+  </section>
+ </section>
 </chapter>
diff --git a/nixpkgs/doc/stdenv.xml b/nixpkgs/doc/stdenv.xml
index 63e6450860ac..00d1ec870988 100644
--- a/nixpkgs/doc/stdenv.xml
+++ b/nixpkgs/doc/stdenv.xml
@@ -747,7 +747,8 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
    latter is convenient from a build script. However, typically one only wants
    to <emphasis>add</emphasis> some commands to a phase, e.g. by defining
    <literal>postInstall</literal> or <literal>preFixup</literal>, as skipping
-   some of the default actions may have unexpected consequences.
+   some of the default actions may have unexpected consequences. The default
+   script for each phase is defined in the file <filename>pkgs/stdenv/generic/setup.sh</filename>.
   </para>
 
   <section xml:id="ssec-controlling-phases">
@@ -1579,7 +1580,7 @@ installTargets = "install-bin install-doc";</programlisting>
      </term>
      <listitem>
       <para>
-       Like <varname>dontStripHost</varname>, but only affects the
+       Like <varname>dontStrip</varname>, but only affects the
        <command>strip</command> command targetting the package's host platform.
        Useful when supporting cross compilation, but otherwise feel free to
        ignore.
@@ -1592,7 +1593,7 @@ installTargets = "install-bin install-doc";</programlisting>
      </term>
      <listitem>
       <para>
-       Like <varname>dontStripHost</varname>, but only affects the
+       Like <varname>dontStrip</varname>, but only affects the
        <command>strip</command> command targetting the packages' target
        platform. Useful when supporting cross compilation, but otherwise feel
        free to ignore.
diff --git a/nixpkgs/lib/generators.nix b/nixpkgs/lib/generators.nix
index 863ba847423e..a71654bec6c3 100644
--- a/nixpkgs/lib/generators.nix
+++ b/nixpkgs/lib/generators.nix
@@ -178,7 +178,7 @@ rec {
   toPlist = {}: v: let
     isFloat = builtins.isFloat or (x: false);
     expr = ind: x:  with builtins;
-      if isNull x   then "" else
+      if x == null  then "" else
       if isBool x   then bool ind x else
       if isInt x    then int ind x else
       if isString x then str ind x else
diff --git a/nixpkgs/lib/sources.nix b/nixpkgs/lib/sources.nix
index f02ddad17c6d..0ffadea8f1bc 100644
--- a/nixpkgs/lib/sources.nix
+++ b/nixpkgs/lib/sources.nix
@@ -83,7 +83,7 @@ rec {
                  # Sometimes git stores the commitId directly in the file but
                  # sometimes it stores something like: «ref: refs/heads/branch-name»
                  matchRef    = match "^ref: (.*)$" fileContent;
-             in if   isNull matchRef
+             in if   matchRef == null
                 then fileContent
                 else readCommitFromFile (lib.head matchRef) path
            # Sometimes, the file isn't there at all and has been packed away in the
@@ -92,7 +92,7 @@ rec {
            then
              let fileContent = readFile packedRefsName;
                  matchRef    = match (".*\n([^\n ]*) " + file + "\n.*") fileContent;
-             in if   isNull matchRef
+             in if   matchRef == null
                 then throw ("Could not find " + file + " in " + packedRefsName)
                 else lib.head matchRef
            else throw ("Not a .git directory: " + path);
diff --git a/nixpkgs/lib/trivial.nix b/nixpkgs/lib/trivial.nix
index 2d682961035f..f2710a6f0338 100644
--- a/nixpkgs/lib/trivial.nix
+++ b/nixpkgs/lib/trivial.nix
@@ -112,7 +112,7 @@ rec {
     # Function to call
     f:
     # Argument to check for null before passing it to `f`
-    a: if isNull a then a else f a;
+    a: if a == null then a else f a;
 
   # Pull in some builtins not included elsewhere.
   inherit (builtins)
diff --git a/nixpkgs/maintainers/maintainer-list.nix b/nixpkgs/maintainers/maintainer-list.nix
index 73858c179b79..7f8fb9bad2f2 100644
--- a/nixpkgs/maintainers/maintainer-list.nix
+++ b/nixpkgs/maintainers/maintainer-list.nix
@@ -762,6 +762,11 @@
     github = "brian-dawn";
     name = "Brian Dawn";
   };
+  brianhicks = {
+    email = "brian@brianthicks.com";
+    github = "BrianHicks";
+    name = "Brian Hicks";
+  };
   bricewge = {
     email = "bricewge@gmail.com";
     github = "bricewge";
@@ -1354,9 +1359,13 @@
     name = "David Sferruzza";
   };
   dtzWill = {
-    email = "nix@wdtz.org";
+    email = "w@wdtz.org";
     github = "dtzWill";
     name = "Will Dietz";
+    keys = [{
+      longkeyid = "rsa4096/0xFD42C7D0D41494C8";
+      fingerprint = "389A 78CB CD88 5E0C 4701  DEB9 FD42 C7D0 D414 94C8";
+    }];
   };
   dxf = {
     email = "dingxiangfei2009@gmail.com";
@@ -1737,6 +1746,13 @@
     github = "fps";
     name = "Florian Paul Schmidt";
   };
+
+  fragamus = {
+    email = "innovative.engineer@gmail.com";
+    github = "fragamus";
+    name = "Michael Gough";
+  };
+
   fredeb = {
     email = "im@fredeb.dev";
     github = "fredeeb";
@@ -2470,6 +2486,11 @@
     github = "jtojnar";
     name = "Jan Tojnar";
   };
+  juaningan = {
+    email = "juaningan@gmail.com";
+    github = "juaningan";
+    name = "Juan Rodal";
+  };
   juliendehos = {
     email = "dehos@lisic.univ-littoral.fr";
     github = "juliendehos";
@@ -3989,6 +4010,11 @@
     github = "Ptival";
     name = "Valentin Robert";
   };
+  ptrhlm = {
+    email = "ptrhlm0@gmail.com";
+    github = "ptrhlm";
+    name = "Piotr Halama";
+  };
   puffnfresh = {
     email = "brian@brianmckenna.org";
     github = "puffnfresh";
@@ -4376,6 +4402,11 @@
     github = "sargon";
     name = "Daniel Ehlers";
   };
+  saschagrunert = {
+    email = "mail@saschagrunert.de";
+    github = "saschagrunert";
+    name = "Sascha Grunert";
+  };
   sauyon = {
     email = "s@uyon.co";
     github = "sauyon";
@@ -4479,6 +4510,11 @@
     github = "sfrijters";
     name = "Stefan Frijters";
   };
+  sgraf = {
+    email = "sgraf1337@gmail.com";
+    github = "sgraf812";
+    name = "Sebastian Graf";
+  };
   shanemikel = {
     email = "shanemikel1@gmail.com";
     github = "shanemikel";
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-1903.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-1903.xml
index e9c6cd7e9acb..8ff1681d3b4a 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-1903.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-1903.xml
@@ -3,7 +3,7 @@
          xmlns:xi="http://www.w3.org/2001/XInclude"
          version="5.0"
          xml:id="sec-release-19.03">
- <title>Release 19.03 (“Koiâ€, 2019/03/??)</title>
+ <title>Release 19.03 (“Koiâ€, 2019/04/11)</title>
 
  <section xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
@@ -20,6 +20,11 @@
   <itemizedlist>
    <listitem>
     <para>
+     End of support is planned for end of October 2019, handing over to 19.09.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      The default Python 3 interpreter is now CPython 3.7 instead of CPython
      3.6.
     </para>
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-1909.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-1909.xml
index ead8f3abd8b2..b78c3e08b799 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-1909.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-1909.xml
@@ -19,7 +19,9 @@
 
   <itemizedlist>
    <listitem>
-    <para />
+    <para>
+     End of support is planned for end of April 2020, handing over to 20.03.
+    </para>
    </listitem>
   </itemizedlist>
  </section>
diff --git a/nixpkgs/nixos/maintainers/option-usages.nix b/nixpkgs/nixos/maintainers/option-usages.nix
index 242c2a4dd442..a67a0ab960e5 100644
--- a/nixpkgs/nixos/maintainers/option-usages.nix
+++ b/nixpkgs/nixos/maintainers/option-usages.nix
@@ -145,7 +145,7 @@ let
   displayOptionsGraph =
      let
        checkList =
-         if !(isNull testOption) then [ testOption ]
+         if testOption != null then [ testOption ]
          else testOptions;
        checkAll = checkList == [];
      in
diff --git a/nixpkgs/nixos/modules/config/fonts/fontconfig-penultimate.nix b/nixpkgs/nixos/modules/config/fonts/fontconfig-penultimate.nix
index 2c18244621af..04fa8b9559a9 100644
--- a/nixpkgs/nixos/modules/config/fonts/fontconfig-penultimate.nix
+++ b/nixpkgs/nixos/modules/config/fonts/fontconfig-penultimate.nix
@@ -31,7 +31,7 @@ let
   # use latest when no version is passed
   makeCacheConf = { version ? null }:
     let
-      fcPackage = if builtins.isNull version
+      fcPackage = if version == null
                   then "fontconfig"
                   else "fontconfig_${version}";
       makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
diff --git a/nixpkgs/nixos/modules/config/fonts/fontconfig.nix b/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
index d79c43c0b5b9..724158f73821 100644
--- a/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
+++ b/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
@@ -46,7 +46,7 @@ let cfg = config.fonts.fontconfig;
     # use latest when no version is passed
     makeCacheConf = { version ? null }:
       let
-        fcPackage = if builtins.isNull version
+        fcPackage = if version == null
                     then "fontconfig"
                     else "fontconfig_${version}";
         makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
diff --git a/nixpkgs/nixos/modules/config/sysctl.nix b/nixpkgs/nixos/modules/config/sysctl.nix
index 74bff602a477..0c6a7e2431aa 100644
--- a/nixpkgs/nixos/modules/config/sysctl.nix
+++ b/nixpkgs/nixos/modules/config/sysctl.nix
@@ -8,7 +8,7 @@ let
     name = "sysctl option value";
     check = val:
       let
-        checkType = x: isBool x || isString x || isInt x || isNull x;
+        checkType = x: isBool x || isString x || isInt x || x == null;
       in
         checkType val || (val._type or "" == "override" && checkType val.content);
     merge = loc: defs: mergeOneOption loc (filterOverrides defs);
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix b/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
index fd780be20825..d5c92cfc1d9e 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -198,7 +198,7 @@ let
     fi
 
     ${ # When there is a theme configured, use it, otherwise use the background image.
-    if (!isNull config.isoImage.grubTheme) then ''
+    if config.isoImage.grubTheme != null then ''
       # Sets theme.
       set theme=(hd0)/EFI/boot/grub-theme/theme.txt
       # Load theme fonts
@@ -622,7 +622,7 @@ in
         { source = "${pkgs.memtest86plus}/memtest.bin";
           target = "/boot/memtest.bin";
         }
-      ] ++ optionals (!isNull config.isoImage.grubTheme) [
+      ] ++ optionals (config.isoImage.grubTheme != null) [
         { source = config.isoImage.grubTheme;
           target = "/EFI/boot/grub-theme";
         }
diff --git a/nixpkgs/nixos/modules/misc/ids.nix b/nixpkgs/nixos/modules/misc/ids.nix
index 96ad4e904a49..aabf961f90c3 100644
--- a/nixpkgs/nixos/modules/misc/ids.nix
+++ b/nixpkgs/nixos/modules/misc/ids.nix
@@ -265,7 +265,7 @@
       syncthing = 237;
       caddy = 239;
       taskd = 240;
-      factorio = 241;
+      # factorio = 241; # DynamicUser = true
       # emby = 242; # unusued, removed 2019-05-01
       graylog = 243;
       sniproxy = 244;
@@ -567,7 +567,7 @@
       syncthing = 237;
       caddy = 239;
       taskd = 240;
-      factorio = 241;
+      # factorio = 241; # unused
       # emby = 242; # unused, removed 2019-05-01
       sniproxy = 244;
       nzbget = 245;
diff --git a/nixpkgs/nixos/modules/module-list.nix b/nixpkgs/nixos/modules/module-list.nix
index 089919d1d550..df9b0096393c 100644
--- a/nixpkgs/nixos/modules/module-list.nix
+++ b/nixpkgs/nixos/modules/module-list.nix
@@ -794,7 +794,6 @@
   ./services/web-servers/traefik.nix
   ./services/web-servers/uwsgi.nix
   ./services/web-servers/varnish/default.nix
-  ./services/web-servers/winstone.nix
   ./services/web-servers/zope2.nix
   ./services/x11/colord.nix
   ./services/x11/compton.nix
diff --git a/nixpkgs/nixos/modules/programs/bash/bash.nix b/nixpkgs/nixos/modules/programs/bash/bash.nix
index 27b5f9e4b642..a7e57b8608d7 100644
--- a/nixpkgs/nixos/modules/programs/bash/bash.nix
+++ b/nixpkgs/nixos/modules/programs/bash/bash.nix
@@ -34,7 +34,7 @@ let
 
   bashAliases = concatStringsSep "\n" (
     mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}")
-      (filterAttrs (k: v: !isNull v) cfg.shellAliases)
+      (filterAttrs (k: v: v != null) cfg.shellAliases)
   );
 
 in
diff --git a/nixpkgs/nixos/modules/programs/fish.nix b/nixpkgs/nixos/modules/programs/fish.nix
index 622d2f96fe41..87f6816e4ac0 100644
--- a/nixpkgs/nixos/modules/programs/fish.nix
+++ b/nixpkgs/nixos/modules/programs/fish.nix
@@ -10,7 +10,7 @@ let
 
   fishAliases = concatStringsSep "\n" (
     mapAttrsFlatten (k: v: "alias ${k} ${escapeShellArg v}")
-      (filterAttrs (k: v: !isNull v) cfg.shellAliases)
+      (filterAttrs (k: v: v != null) cfg.shellAliases)
   );
 
 in
diff --git a/nixpkgs/nixos/modules/programs/ssmtp.nix b/nixpkgs/nixos/modules/programs/ssmtp.nix
index 44756171b74c..0e060e3f5226 100644
--- a/nixpkgs/nixos/modules/programs/ssmtp.nix
+++ b/nixpkgs/nixos/modules/programs/ssmtp.nix
@@ -148,7 +148,7 @@ in
         UseSTARTTLS=${yesNo cfg.useSTARTTLS}
         #Debug=YES
         ${optionalString (cfg.authUser != "")       "AuthUser=${cfg.authUser}"}
-        ${optionalString (!isNull cfg.authPassFile) "AuthPassFile=${cfg.authPassFile}"}
+        ${optionalString (cfg.authPassFile != null) "AuthPassFile=${cfg.authPassFile}"}
       '';
 
     environment.systemPackages = [pkgs.ssmtp];
diff --git a/nixpkgs/nixos/modules/programs/zsh/zsh.nix b/nixpkgs/nixos/modules/programs/zsh/zsh.nix
index b7117e5f90d7..bdb37eae23ef 100644
--- a/nixpkgs/nixos/modules/programs/zsh/zsh.nix
+++ b/nixpkgs/nixos/modules/programs/zsh/zsh.nix
@@ -12,7 +12,7 @@ let
 
   zshAliases = concatStringsSep "\n" (
     mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}")
-      (filterAttrs (k: v: !isNull v) cfg.shellAliases)
+      (filterAttrs (k: v: v != null) cfg.shellAliases)
   );
 
 in
diff --git a/nixpkgs/nixos/modules/rename.nix b/nixpkgs/nixos/modules/rename.nix
index aa3d120c97f1..b2c030fb7791 100644
--- a/nixpkgs/nixos/modules/rename.nix
+++ b/nixpkgs/nixos/modules/rename.nix
@@ -210,6 +210,7 @@ with lib;
     (mkRemovedOptionModule [ "virtualisation" "xen" "qemu" ] "You don't need this option anymore, it will work without it.")
     (mkRemovedOptionModule [ "services" "logstash" "enableWeb" ] "The web interface was removed from logstash")
     (mkRemovedOptionModule [ "boot" "zfs" "enableLegacyCrypto" ] "The corresponding package was removed from nixpkgs.")
+    (mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
 
     # ZSH
     (mkRenamedOptionModule [ "programs" "zsh" "enableSyntaxHighlighting" ] [ "programs" "zsh" "syntaxHighlighting" "enable" ])
diff --git a/nixpkgs/nixos/modules/services/backup/znapzend.nix b/nixpkgs/nixos/modules/services/backup/znapzend.nix
index 9c4c5545e35e..9c7f84655727 100644
--- a/nixpkgs/nixos/modules/services/backup/znapzend.nix
+++ b/nixpkgs/nixos/modules/services/backup/znapzend.nix
@@ -248,7 +248,7 @@ let
   cfg = config.services.znapzend;
 
   onOff = b: if b then "on" else "off";
-  nullOff = b: if isNull b then "off" else toString b;
+  nullOff = b: if b == null then "off" else toString b;
   stripSlashes = replaceStrings [ "/" ] [ "." ];
 
   attrsToFile = config: concatStringsSep "\n" (builtins.attrValues (
@@ -256,7 +256,7 @@ let
 
   mkDestAttrs = dst: with dst;
     mapAttrs' (n: v: nameValuePair "dst_${label}${n}" v) ({
-      "" = optionalString (! isNull host) "${host}:" + dataset;
+      "" = optionalString (host != null) "${host}:" + dataset;
       _plan = plan;
     } // optionalAttrs (presend != null) {
       _precmd = presend;
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/addons/dns.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/addons/dns.nix
index 4368159ea6e3..ee0ac632ecf0 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/addons/dns.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/addons/dns.nix
@@ -3,7 +3,7 @@
 with lib;
 
 let
-  version = "1.3.1";
+  version = "1.5.0";
   cfg = config.services.kubernetes.addons.dns;
   ports = {
     dns = 10053;
@@ -55,9 +55,9 @@ in {
       type = types.attrs;
       default = {
         imageName = "coredns/coredns";
-        imageDigest = "sha256:02382353821b12c21b062c59184e227e001079bb13ebd01f9d3270ba0fcbf1e4";
+        imageDigest = "sha256:e83beb5e43f8513fa735e77ffc5859640baea30a882a11cc75c4c3244a737d3c";
         finalImageTag = version;
-        sha256 = "0vbylgyxv2jm2mnzk6f28jbsj305zsxmx3jr6ngjq461czcl5fi5";
+        sha256 = "15sbmhrxjxidj0j0cccn1qxpg6al175w43m6ngspl0mc132zqc9q";
       };
     };
   };
@@ -160,7 +160,7 @@ in {
               fallthrough in-addr.arpa ip6.arpa
             }
             prometheus :${toString ports.metrics}
-            proxy . /etc/resolv.conf
+            forward . /etc/resolv.conf
             cache 30
             loop
             reload
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix
index 0c04648355b4..f293dd79f42a 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix
@@ -184,6 +184,12 @@ in
       type = bool;
     };
 
+    preferredAddressTypes = mkOption {
+      description = "List of the preferred NodeAddressTypes to use for kubelet connections.";
+      type = nullOr str;
+      default = null;
+    };
+
     proxyClientCertFile = mkOption {
       description = "Client certificate to use for connections to proxy.";
       default = null;
@@ -349,6 +355,8 @@ in
                 "--kubelet-client-certificate=${cfg.kubeletClientCertFile}"} \
               ${optionalString (cfg.kubeletClientKeyFile != null)
                 "--kubelet-client-key=${cfg.kubeletClientKeyFile}"} \
+              ${optionalString (cfg.preferredAddressTypes != null)
+                "--kubelet-preferred-address-types=${cfg.preferredAddressTypes}"} \
               ${optionalString (cfg.proxyClientCertFile != null)
                 "--proxy-client-cert-file=${cfg.proxyClientCertFile}"} \
               ${optionalString (cfg.proxyClientKeyFile != null)
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
index 2a4a0624555d..ccc8a16e788a 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -7,9 +7,9 @@ let
   cfg = top.kubelet;
 
   cniConfig =
-    if cfg.cni.config != [] && !(isNull cfg.cni.configDir) then
+    if cfg.cni.config != [] && cfg.cni.configDir != null then
       throw "Verbatim CNI-config and CNI configDir cannot both be set."
-    else if !(isNull cfg.cni.configDir) then
+    else if cfg.cni.configDir != null then
       cfg.cni.configDir
     else
       (pkgs.buildEnv {
@@ -373,7 +373,7 @@ in
       boot.kernelModules = ["br_netfilter"];
 
       services.kubernetes.kubelet.hostname = with config.networking;
-        mkDefault (hostName + optionalString (!isNull domain) ".${domain}");
+        mkDefault (hostName + optionalString (domain != null) ".${domain}");
 
       services.kubernetes.pki.certs = with top.lib; {
         kubelet = mkCert {
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
index 32eacad9025f..e68660e8bdd4 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
@@ -285,7 +285,7 @@ in
         };
       };
 
-      environment.etc.${cfg.etcClusterAdminKubeconfig}.source = mkIf (!isNull cfg.etcClusterAdminKubeconfig)
+      environment.etc.${cfg.etcClusterAdminKubeconfig}.source = mkIf (cfg.etcClusterAdminKubeconfig != null)
         (top.lib.mkKubeConfig "cluster-admin" clusterAdminKubeconfig);
 
       environment.systemPackages = mkIf (top.kubelet.enable || top.proxy.enable) [
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agent.nix b/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agent.nix
index 2136778aff47..12cc3d2b1ccc 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agent.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agent.nix
@@ -236,7 +236,7 @@ in
       };
 
     assertions = [
-      { assertion = cfg.hooksPath == hooksDir || all isNull (attrValues cfg.hooks);
+      { assertion = cfg.hooksPath == hooksDir || all (v: v == null) (attrValues cfg.hooks);
         message = ''
           Options `services.buildkite-agent.hooksPath' and
           `services.buildkite-agent.hooks.<name>' are mutually exclusive.
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixpkgs/nixos/modules/services/continuous-integration/jenkins/default.nix
index 1eca45fbd570..ec6a36413fe7 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/jenkins/default.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/jenkins/default.nix
@@ -189,7 +189,7 @@ in {
 
       preStart =
         let replacePlugins =
-              if isNull cfg.plugins
+              if cfg.plugins == null
               then ""
               else
                 let pluginCmds = lib.attrsets.mapAttrsToList
diff --git a/nixpkgs/nixos/modules/services/databases/cassandra.nix b/nixpkgs/nixos/modules/services/databases/cassandra.nix
index d741ee48c48f..688938868020 100644
--- a/nixpkgs/nixos/modules/services/databases/cassandra.nix
+++ b/nixpkgs/nixos/modules/services/databases/cassandra.nix
@@ -22,11 +22,11 @@ let
              else {})
     );
   cassandraConfigWithAddresses = cassandraConfig //
-    ( if isNull cfg.listenAddress
+    ( if cfg.listenAddress == null
         then { listen_interface = cfg.listenInterface; }
         else { listen_address = cfg.listenAddress; }
     ) // (
-      if isNull cfg.rpcAddress
+      if cfg.rpcAddress == null
         then { rpc_interface = cfg.rpcInterface; }
         else { rpc_address = cfg.rpcAddress; }
     );
@@ -219,19 +219,13 @@ in {
   config = mkIf cfg.enable {
     assertions =
       [ { assertion =
-            ((isNull cfg.listenAddress)
-             || (isNull cfg.listenInterface)
-            ) && !((isNull cfg.listenAddress)
-                   && (isNull cfg.listenInterface)
-                  );
+          (cfg.listenAddress == null || cfg.listenInterface == null)
+          && !(cfg.listenAddress == null && cfg.listenInterface == null);
           message = "You have to set either listenAddress or listenInterface";
         }
         { assertion =
-            ((isNull cfg.rpcAddress)
-             || (isNull cfg.rpcInterface)
-            ) && !((isNull cfg.rpcAddress)
-                   && (isNull cfg.rpcInterface)
-                  );
+          (cfg.rpcAddress == null || cfg.rpcInterface == null)
+          && !(cfg.rpcAddress == null && cfg.rpcInterface == null);
           message = "You have to set either rpcAddress or rpcInterface";
         }
       ];
@@ -276,7 +270,7 @@ in {
           };
       };
     systemd.timers.cassandra-full-repair =
-      mkIf (!isNull cfg.fullRepairInterval) {
+      mkIf (cfg.fullRepairInterval != null) {
         description = "Schedule full repairs on Cassandra";
         wantedBy = [ "timers.target" ];
         timerConfig =
@@ -300,7 +294,7 @@ in {
           };
       };
     systemd.timers.cassandra-incremental-repair =
-      mkIf (!isNull cfg.incrementalRepairInterval) {
+      mkIf (cfg.incrementalRepairInterval != null) {
         description = "Schedule incremental repairs on Cassandra";
         wantedBy = [ "timers.target" ];
         timerConfig =
diff --git a/nixpkgs/nixos/modules/services/databases/cockroachdb.nix b/nixpkgs/nixos/modules/services/databases/cockroachdb.nix
index e977751b21ef..268fdcc819fd 100644
--- a/nixpkgs/nixos/modules/services/databases/cockroachdb.nix
+++ b/nixpkgs/nixos/modules/services/databases/cockroachdb.nix
@@ -7,7 +7,7 @@ let
   crdb = cfg.package;
 
   escape    = builtins.replaceStrings ["%"] ["%%"];
-  ifNotNull = v: s: optionalString (!isNull v) s;
+  ifNotNull = v: s: optionalString (v != null) s;
 
   startupCommand = lib.concatStringsSep " "
     [ # Basic startup
@@ -164,7 +164,7 @@ in
 
   config = mkIf config.services.cockroachdb.enable {
     assertions = [
-      { assertion = !cfg.insecure -> !(isNull cfg.certsDir);
+      { assertion = !cfg.insecure -> cfg.certsDir != null;
         message = "CockroachDB must have a set of SSL certificates (.certsDir), or run in Insecure Mode (.insecure = true)";
       }
     ];
diff --git a/nixpkgs/nixos/modules/services/databases/foundationdb.nix b/nixpkgs/nixos/modules/services/databases/foundationdb.nix
index 169ed37b348e..490c5e9d005a 100644
--- a/nixpkgs/nixos/modules/services/databases/foundationdb.nix
+++ b/nixpkgs/nixos/modules/services/databases/foundationdb.nix
@@ -35,7 +35,10 @@ let
     ${optionalString (cfg.class != null) "class = ${cfg.class}"}
     memory         = ${cfg.memory}
     storage_memory = ${cfg.storageMemory}
+
+    ${optionalString (lib.versionAtLeast cfg.package.version "6.1") ''
     trace_format   = ${cfg.traceFormat}
+    ''}
 
     ${optionalString (cfg.tls != null) ''
       tls_plugin           = ${pkg}/libexec/plugins/FDBLibTLS.so
@@ -327,6 +330,15 @@ in
   };
 
   config = mkIf cfg.enable {
+    assertions = [
+      { assertion = lib.versionOlder cfg.package.version "6.1" -> cfg.traceFormat == "xml";
+        message = ''
+          Versions of FoundationDB before 6.1 do not support configurable trace formats (only XML is supported).
+          This option has no effect for version '' + cfg.package.version + '', and enabling it is an error.
+        '';
+      }
+    ];
+
     environment.systemPackages = [ pkg ];
 
     users.users = optionalAttrs (cfg.user == "foundationdb") (singleton
diff --git a/nixpkgs/nixos/modules/services/databases/pgmanage.nix b/nixpkgs/nixos/modules/services/databases/pgmanage.nix
index 1a34c7f5ecee..1050c2dd481a 100644
--- a/nixpkgs/nixos/modules/services/databases/pgmanage.nix
+++ b/nixpkgs/nixos/modules/services/databases/pgmanage.nix
@@ -16,7 +16,7 @@ let
 
       super_only = ${builtins.toJSON cfg.superOnly}
 
-      ${optionalString (!isNull cfg.loginGroup) "login_group = ${cfg.loginGroup}"}
+      ${optionalString (cfg.loginGroup != null) "login_group = ${cfg.loginGroup}"}
 
       login_timeout = ${toString cfg.loginTimeout}
 
@@ -24,7 +24,7 @@ let
 
       sql_root = ${cfg.sqlRoot}
 
-      ${optionalString (!isNull cfg.tls) ''
+      ${optionalString (cfg.tls != null) ''
       tls_cert = ${cfg.tls.cert}
       tls_key = ${cfg.tls.key}
       ''}
diff --git a/nixpkgs/nixos/modules/services/databases/postgresql.nix b/nixpkgs/nixos/modules/services/databases/postgresql.nix
index 87b236dd5fd1..5661edbee2db 100644
--- a/nixpkgs/nixos/modules/services/databases/postgresql.nix
+++ b/nixpkgs/nixos/modules/services/databases/postgresql.nix
@@ -105,6 +105,80 @@ in
         '';
       };
 
+      ensureDatabases = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Ensures that the specified databases exist.
+          This option will never delete existing databases, especially not when the value of this
+          option is changed. This means that databases created once through this option or
+          otherwise have to be removed manually.
+        '';
+        example = [
+          "gitea"
+          "nextcloud"
+        ];
+      };
+
+      ensureUsers = mkOption {
+        type = types.listOf (types.submodule {
+          options = {
+            name = mkOption {
+              type = types.str;
+              description = ''
+                Name of the user to ensure.
+              '';
+            };
+            ensurePermissions = mkOption {
+              type = types.attrsOf types.str;
+              default = {};
+              description = ''
+                Permissions to ensure for the user, specified as an attribute set.
+                The attribute names specify the database and tables to grant the permissions for.
+                The attribute values specify the permissions to grant. You may specify one or
+                multiple comma-separated SQL privileges here.
+
+                For more information on how to specify the target
+                and on which privileges exist, see the
+                <link xlink:href="https://www.postgresql.org/docs/current/sql-grant.html">GRANT syntax</link>.
+                The attributes are used as <code>GRANT ''${attrName} ON ''${attrValue}</code>.
+              '';
+              example = literalExample ''
+                {
+                  "DATABASE nextcloud" = "ALL PRIVILEGES";
+                  "ALL TABLES IN SCHEMA public" = "ALL PRIVILEGES";
+                }
+              '';
+            };
+          };
+        });
+        default = [];
+        description = ''
+          Ensures that the specified users exist and have at least the ensured permissions.
+          The PostgreSQL users will be identified using peer authentication. This authenticates the Unix user with the
+          same name only, and that without the need for a password.
+          This option will never delete existing users or remove permissions, especially not when the value of this
+          option is changed. This means that users created and permissions assigned once through this option or
+          otherwise have to be removed manually.
+        '';
+        example = literalExample ''
+          [
+            {
+              name = "nextcloud";
+              ensurePermissions = {
+                "DATABASE nextcloud" = "ALL PRIVILEGES";
+              };
+            }
+            {
+              name = "superuser";
+              ensurePermissions = {
+                "ALL TABLES IN SCHEMA public" = "ALL PRIVILEGES";
+              };
+            }
+          ]
+        '';
+      };
+
       enableTCPIP = mkOption {
         type = types.bool;
         default = false;
@@ -256,17 +330,30 @@ in
         # Wait for PostgreSQL to be ready to accept connections.
         postStart =
           ''
-            while ! ${pkgs.sudo}/bin/sudo -u ${cfg.superUser} psql --port=${toString cfg.port} -d postgres -c "" 2> /dev/null; do
+            PSQL="${pkgs.sudo}/bin/sudo -u ${cfg.superUser} psql --port=${toString cfg.port}"
+
+            while ! $PSQL -d postgres -c "" 2> /dev/null; do
                 if ! kill -0 "$MAINPID"; then exit 1; fi
                 sleep 0.1
             done
 
             if test -e "${cfg.dataDir}/.first_startup"; then
               ${optionalString (cfg.initialScript != null) ''
-                ${pkgs.sudo}/bin/sudo -u ${cfg.superUser} psql -f "${cfg.initialScript}" --port=${toString cfg.port} -d postgres
+                $PSQL -f "${cfg.initialScript}" -d postgres
               ''}
               rm -f "${cfg.dataDir}/.first_startup"
             fi
+          '' + optionalString (cfg.ensureDatabases != []) ''
+            ${concatMapStrings (database: ''
+              $PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = '${database}'" | grep -q 1 || $PSQL -tAc "CREATE DATABASE ${database}"
+            '') cfg.ensureDatabases}
+          '' + ''
+            ${concatMapStrings (user: ''
+              $PSQL -tAc "SELECT 1 FROM pg_roles WHERE rolname='${user.name}'" | grep -q 1 || $PSQL -tAc "CREATE USER ${user.name}"
+              ${concatStringsSep "\n" (mapAttrsToList (database: permission: ''
+                $PSQL -tAc "GRANT ${permission} ON ${database} TO ${user.name}"
+              '') user.ensurePermissions)}
+            '') cfg.ensureUsers}
           '';
 
         unitConfig.RequiresMountsFor = "${cfg.dataDir}";
diff --git a/nixpkgs/nixos/modules/services/desktops/geoclue2.nix b/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
index 840aa5294ed0..a16dbc04a5f7 100644
--- a/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
+++ b/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
@@ -7,6 +7,56 @@ with lib;
 let
   # the demo agent isn't built by default, but we need it here
   package = pkgs.geoclue2.override { withDemoAgent = config.services.geoclue2.enableDemoAgent; };
+
+  cfg = config.services.geoclue2;
+
+  defaultWhitelist = [ "gnome-shell" "io.elementary.desktop.agent-geoclue2" ];
+
+  appConfigModule = types.submodule ({ name, ... }: {
+    options = {
+      desktopID = mkOption {
+        type = types.str;
+        description = "Desktop ID of the application.";
+      };
+
+      isAllowed = mkOption {
+        type = types.bool;
+        default = null;
+        description = ''
+          Whether the application will be allowed access to location information.
+        '';
+      };
+
+      isSystem = mkOption {
+        type = types.bool;
+        default = null;
+        description = ''
+          Whether the application is a system component or not.
+        '';
+      };
+
+      users = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          List of UIDs of all users for which this application is allowed location
+          info access, Defaults to an empty string to allow it for all users.
+        '';
+      };
+    };
+
+    config.desktopID = mkDefault name;
+  });
+
+  appConfigToINICompatible = _: { desktopID, isAllowed, isSystem, users, ... }: {
+    name = desktopID;
+    value = {
+      allowed = isAllowed;
+      system = isSystem;
+      users = concatStringsSep ";" users;
+    };
+  };
+
 in
 {
 
@@ -35,23 +85,117 @@ in
         '';
       };
 
+      enableNmea = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to fetch location from NMEA sources on local network.
+        '';
+      };
+
+      enable3G = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable 3G source.
+        '';
+      };
+
+      enableCDMA = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable CDMA source.
+        '';
+      };
+
+      enableModemGPS = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable Modem-GPS source.
+        '';
+      };
+
+      enableWifi = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable WiFi source.
+        '';
+      };
+
+      geoProviderUrl = mkOption {
+        type = types.str;
+        default = "https://location.services.mozilla.com/v1/geolocate?key=geoclue";
+        example = "https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_KEY";
+        description = ''
+          The url to the wifi GeoLocation Service.
+        '';
+      };
+
+      submitData = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to submit data to a GeoLocation Service.
+        '';
+      };
+
+      submissionUrl = mkOption {
+        type = types.str;
+        default = "https://location.services.mozilla.com/v1/submit?key=geoclue";
+        description = ''
+          The url to submit data to a GeoLocation Service.
+        '';
+      };
+
+      submissionNick = mkOption {
+        type = types.str;
+        default = "geoclue";
+        description = ''
+          A nickname to submit network data with.
+          Must be 2-32 characters long.
+        '';
+      };
+
+      appConfig = mkOption {
+        type = types.loaOf appConfigModule;
+        default = {};
+        example = literalExample ''
+          "com.github.app" = {
+            isAllowed = true;
+            isSystem = true;
+            users = [ "300" ];
+          };
+        '';
+        description = ''
+          Specify extra settings per application.
+        '';
+      };
+
     };
 
   };
 
 
   ###### implementation
-  config = mkIf config.services.geoclue2.enable {
+  config = mkIf cfg.enable {
 
     environment.systemPackages = [ package ];
 
     services.dbus.packages = [ package ];
 
     systemd.packages = [ package ];
-  
+
+    # restart geoclue service when the configuration changes
+    systemd.services."geoclue".restartTriggers = [
+      config.environment.etc."geoclue/geoclue.conf".source
+    ];
+
     # this needs to run as a user service, since it's associated with the
     # user who is making the requests
-    systemd.user.services = mkIf config.services.geoclue2.enableDemoAgent { 
+    systemd.user.services = mkIf cfg.enableDemoAgent {
       "geoclue-agent" = {
         description = "Geoclue agent";
         script = "${package}/libexec/geoclue-2.0/demos/agent";
@@ -62,7 +206,41 @@ in
       };
     };
 
-    environment.etc."geoclue/geoclue.conf".source = "${package}/etc/geoclue/geoclue.conf";
-  };
+    services.geoclue2.appConfig."epiphany" = {
+      isAllowed = true;
+      isSystem = false;
+    };
 
+    services.geoclue2.appConfig."firefox" = {
+      isAllowed = true;
+      isSystem = false;
+    };
+
+    environment.etc."geoclue/geoclue.conf".text =
+      generators.toINI {} ({
+        agent = {
+          whitelist = concatStringsSep ";"
+            (optional cfg.enableDemoAgent "geoclue-demo-agent" ++ defaultWhitelist);
+        };
+        network-nmea = {
+          enable = cfg.enableNmea;
+        };
+        "3g" = {
+          enable = cfg.enable3G;
+        };
+        cdma = {
+          enable = cfg.enableCDMA;
+        };
+        modem-gps = {
+          enable = cfg.enableModemGPS;
+        };
+        wifi = {
+          enable = cfg.enableWifi;
+          url = cfg.geoProviderUrl;
+          submit-data = boolToString cfg.submitData;
+          submission-url = cfg.submissionUrl;
+          submission-nick = cfg.submissionNick;
+        };
+      } // mapAttrs' appConfigToINICompatible cfg.appConfig);
+  };
 }
diff --git a/nixpkgs/nixos/modules/services/games/factorio.nix b/nixpkgs/nixos/modules/services/games/factorio.nix
index 3f6bf9de8931..d04673a6c8b8 100644
--- a/nixpkgs/nixos/modules/services/games/factorio.nix
+++ b/nixpkgs/nixos/modules/services/games/factorio.nix
@@ -6,7 +6,7 @@ let
   cfg = config.services.factorio;
   factorio = pkgs.factorio-headless;
   name = "Factorio";
-  stateDir = cfg.stateDir;
+  stateDir = "/var/lib/${cfg.stateDirName}";
   mkSavePath = name: "${stateDir}/saves/${name}.zip";
   configFile = pkgs.writeText "factorio.conf" ''
     use-system-read-write-data-directories=true
@@ -80,11 +80,11 @@ in
           customizations.
         '';
       };
-      stateDir = mkOption {
-        type = types.path;
-        default = "/var/lib/factorio";
+      stateDirName = mkOption {
+        type = types.string;
+        default = "factorio";
         description = ''
-          The server's data directory.
+          Name of the directory under /var/lib holding the server's data.
 
           The configuration and map will be stored here.
         '';
@@ -176,20 +176,6 @@ in
   };
 
   config = mkIf cfg.enable {
-    users = {
-      users.factorio = {
-        uid             = config.ids.uids.factorio;
-        description     = "Factorio server user";
-        group           = "factorio";
-        home            = stateDir;
-        createHome      = true;
-      };
-
-      groups.factorio = {
-        gid = config.ids.gids.factorio;
-      };
-    };
-
     systemd.services.factorio = {
       description   = "Factorio headless server";
       wantedBy      = [ "multi-user.target" ];
@@ -205,12 +191,10 @@ in
       ];
 
       serviceConfig = {
-        User = "factorio";
-        Group = "factorio";
         Restart = "always";
         KillSignal = "SIGINT";
-        WorkingDirectory = stateDir;
-        PrivateTmp = true;
+        DynamicUser = true;
+        StateDirectory = cfg.stateDirName;
         UMask = "0007";
         ExecStart = toString [
           "${factorio}/bin/factorio"
@@ -220,6 +204,20 @@ in
           "--server-settings=${serverSettingsFile}"
           (optionalString (cfg.mods != []) "--mod-directory=${modDir}")
         ];
+
+        # Sandboxing
+        NoNewPrivileges = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        ProtectControlGroups = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ];
+        RestrictRealtime = true;
+        RestrictNamespaces = true;
+        MemoryDenyWriteExecute = true;
       };
     };
 
diff --git a/nixpkgs/nixos/modules/services/games/minecraft-server.nix b/nixpkgs/nixos/modules/services/games/minecraft-server.nix
index 7d26d1501650..39a68f4b5536 100644
--- a/nixpkgs/nixos/modules/services/games/minecraft-server.nix
+++ b/nixpkgs/nixos/modules/services/games/minecraft-server.nix
@@ -215,8 +215,8 @@ in {
     networking.firewall = mkIf cfg.openFirewall (if cfg.declarative then {
       allowedUDPPorts = [ serverPort ];
       allowedTCPPorts = [ serverPort ]
-        ++ optional (! isNull queryPort) queryPort
-        ++ optional (! isNull rconPort) rconPort;
+        ++ optional (queryPort != null) queryPort
+        ++ optional (rconPort != null) rconPort;
     } else {
       allowedUDPPorts = [ defaultServerPort ];
       allowedTCPPorts = [ defaultServerPort ];
diff --git a/nixpkgs/nixos/modules/services/logging/logcheck.nix b/nixpkgs/nixos/modules/services/logging/logcheck.nix
index 9c64160e92bc..f139190a1709 100644
--- a/nixpkgs/nixos/modules/services/logging/logcheck.nix
+++ b/nixpkgs/nixos/modules/services/logging/logcheck.nix
@@ -227,7 +227,7 @@ in
     '';
 
     services.cron.systemCronJobs =
-        let withTime = name: {timeArgs, ...}: ! (builtins.isNull timeArgs);
+        let withTime = name: {timeArgs, ...}: timeArgs != null;
             mkCron = name: {user, cmdline, timeArgs, ...}: ''
               ${timeArgs} ${user} ${cmdline}
             '';
diff --git a/nixpkgs/nixos/modules/services/mail/dovecot.nix b/nixpkgs/nixos/modules/services/mail/dovecot.nix
index 30ad7d82fb80..139011dca23a 100644
--- a/nixpkgs/nixos/modules/services/mail/dovecot.nix
+++ b/nixpkgs/nixos/modules/services/mail/dovecot.nix
@@ -16,13 +16,13 @@ let
       sendmail_path = /run/wrappers/bin/sendmail
     ''
 
-    (if isNull cfg.sslServerCert then ''
+    (if cfg.sslServerCert == null then ''
       ssl = no
       disable_plaintext_auth = no
     '' else ''
       ssl_cert = <${cfg.sslServerCert}
       ssl_key = <${cfg.sslServerKey}
-      ${optionalString (!(isNull cfg.sslCACert)) ("ssl_ca = <" + cfg.sslCACert)}
+      ${optionalString (cfg.sslCACert != null) ("ssl_ca = <" + cfg.sslCACert)}
       ssl_dh = <${config.security.dhparams.params.dovecot2.path}
       disable_plaintext_auth = yes
     '')
@@ -298,7 +298,7 @@ in
   config = mkIf cfg.enable {
     security.pam.services.dovecot2 = mkIf cfg.enablePAM {};
 
-    security.dhparams = mkIf (! isNull cfg.sslServerCert) {
+    security.dhparams = mkIf (cfg.sslServerCert != null) {
       enable = true;
       params.dovecot2 = {};
     };
@@ -384,14 +384,14 @@ in
       { assertion = intersectLists cfg.protocols [ "pop3" "imap" ] != [];
         message = "dovecot needs at least one of the IMAP or POP3 listeners enabled";
       }
-      { assertion = isNull cfg.sslServerCert == isNull cfg.sslServerKey
-          && (!(isNull cfg.sslCACert) -> !(isNull cfg.sslServerCert || isNull cfg.sslServerKey));
+      { assertion = (cfg.sslServerCert == null) == (cfg.sslServerKey == null)
+          && (cfg.sslCACert != null -> !(cfg.sslServerCert == null || cfg.sslServerKey == null));
         message = "dovecot needs both sslServerCert and sslServerKey defined for working crypto";
       }
       { assertion = cfg.showPAMFailure -> cfg.enablePAM;
         message = "dovecot is configured with showPAMFailure while enablePAM is disabled";
       }
-      { assertion = (cfg.sieveScripts != {}) -> ((cfg.mailUser != null) && (cfg.mailGroup != null));
+      { assertion = cfg.sieveScripts != {} -> (cfg.mailUser != null && cfg.mailGroup != null);
         message = "dovecot requires mailUser and mailGroup to be set when sieveScripts is set";
       }
     ];
diff --git a/nixpkgs/nixos/modules/services/misc/bepasty.nix b/nixpkgs/nixos/modules/services/misc/bepasty.nix
index 006feca42b32..87d360681445 100644
--- a/nixpkgs/nixos/modules/services/misc/bepasty.nix
+++ b/nixpkgs/nixos/modules/services/misc/bepasty.nix
@@ -143,7 +143,7 @@ in
           serviceConfig = {
             Type = "simple";
             PrivateTmp = true;
-            ExecStartPre = assert !isNull server.secretKeyFile; pkgs.writeScript "bepasty-server.${name}-init" ''
+            ExecStartPre = assert server.secretKeyFile != null; pkgs.writeScript "bepasty-server.${name}-init" ''
               #!/bin/sh
               mkdir -p "${server.workDir}"
               mkdir -p "${server.dataDir}"
diff --git a/nixpkgs/nixos/modules/services/misc/errbot.nix b/nixpkgs/nixos/modules/services/misc/errbot.nix
index ac6ba2181de2..256adce2f02e 100644
--- a/nixpkgs/nixos/modules/services/misc/errbot.nix
+++ b/nixpkgs/nixos/modules/services/misc/errbot.nix
@@ -81,7 +81,7 @@ in {
 
     systemd.services = mapAttrs' (name: instanceCfg: nameValuePair "errbot-${name}" (
     let
-      dataDir = if !isNull instanceCfg.dataDir then instanceCfg.dataDir else
+      dataDir = if instanceCfg.dataDir != null then instanceCfg.dataDir else
         "/var/lib/errbot/${name}";
     in {
       after = [ "network-online.target" ];
diff --git a/nixpkgs/nixos/modules/services/misc/home-assistant.nix b/nixpkgs/nixos/modules/services/misc/home-assistant.nix
index 7f8d31bcf0b8..f1b351246740 100644
--- a/nixpkgs/nixos/modules/services/misc/home-assistant.nix
+++ b/nixpkgs/nixos/modules/services/misc/home-assistant.nix
@@ -21,32 +21,23 @@ let
 
   availableComponents = cfg.package.availableComponents;
 
-  # Given component "parentConfig.platform", returns whether config.parentConfig
-  # is a list containing a set with set.platform == "platform".
+  usedPlatforms = config:
+    if isAttrs config then
+      optional (config ? platform) config.platform
+      ++ concatMap usedPlatforms (attrValues config)
+    else if isList config then
+      concatMap usedPlatforms config
+    else [ ];
+
+  # Given a component "platform", looks up whether it is used in the config
+  # as `platform = "platform";`.
   #
-  # For example, the component sensor.luftdaten is used as follows:
+  # For example, the component mqtt.sensor is used as follows:
   # config.sensor = [ {
-  #   platform = "luftdaten";
+  #   platform = "mqtt";
   #   ...
   # } ];
-  #
-  # Beginning with 0.87 Home Assistant is migrating their components to the
-  # scheme "platform.subComponent", e.g. "hue.light" instead of "light.hue".
-  # See https://developers.home-assistant.io/blog/2019/02/19/the-great-migration.html.
-  # Hence, we also check whether we find an entry in the config when interpreting
-  # the first part of the path as the component.
-  useComponentPlatform = component:
-    let
-      path = splitString "." component;
-      # old: platform is the last part of path
-      parentConfig = attrByPath (init path) null cfg.config;
-      platform = last path;
-      # new: platform is the first part of the path
-      parentConfig' = attrByPath (tail path) null cfg.config;
-      platform' = head path;
-    in
-      (isList parentConfig && any (item: item.platform or null == platform) parentConfig)
-      || (isList parentConfig' && any (item: item.platform or null == platform') parentConfig');
+  useComponentPlatform = component: elem component (usedPlatforms cfg.config);
 
   # Returns whether component is used in config
   useComponent = component:
diff --git a/nixpkgs/nixos/modules/services/misc/taskserver/default.nix b/nixpkgs/nixos/modules/services/misc/taskserver/default.nix
index 483bc99ad946..07dbee69db0c 100644
--- a/nixpkgs/nixos/modules/services/misc/taskserver/default.nix
+++ b/nixpkgs/nixos/modules/services/misc/taskserver/default.nix
@@ -48,7 +48,7 @@ let
     type = types.nullOr types.int;
     default = null;
     example = 365;
-    apply = val: if isNull val then -1 else val;
+    apply = val: if val == null then -1 else val;
     description = mkAutoDesc ''
       The expiration time of ${desc} in days or <literal>null</literal> for no
       expiration time.
@@ -82,7 +82,7 @@ let
          then attrByPath newPath (notFound newPath) cfg.pki.manual
          else findPkiDefinitions newPath val;
     in flatten (mapAttrsToList mkSublist attrs);
-  in all isNull (findPkiDefinitions [] manualPkiOptions);
+  in all (x: x == null) (findPkiDefinitions [] manualPkiOptions);
 
   orgOptions = { ... }: {
     options.users = mkOption {
diff --git a/nixpkgs/nixos/modules/services/misc/zoneminder.nix b/nixpkgs/nixos/modules/services/misc/zoneminder.nix
index 2bd2f3c7cc08..01720ba432ed 100644
--- a/nixpkgs/nixos/modules/services/misc/zoneminder.nix
+++ b/nixpkgs/nixos/modules/services/misc/zoneminder.nix
@@ -17,7 +17,7 @@ let
   defaultDir = "/var/lib/${user}";
   home = if useCustomDir then cfg.storageDir else defaultDir;
 
-  useCustomDir = !(builtins.isNull cfg.storageDir);
+  useCustomDir = cfg.storageDir != null;
 
   socket = "/run/phpfpm/${dirName}.sock";
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/graphite.nix b/nixpkgs/nixos/modules/services/monitoring/graphite.nix
index 2365142af40e..d6473220c140 100644
--- a/nixpkgs/nixos/modules/services/monitoring/graphite.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/graphite.nix
@@ -19,13 +19,13 @@ let
 
   graphiteLocalSettings = pkgs.writeText "graphite_local_settings.py" (
     "STATIC_ROOT = '${staticDir}'\n" +
-    optionalString (! isNull config.time.timeZone) "TIME_ZONE = '${config.time.timeZone}'\n"
+    optionalString (config.time.timeZone != null) "TIME_ZONE = '${config.time.timeZone}'\n"
     + cfg.web.extraConfig
   );
 
   graphiteApiConfig = pkgs.writeText "graphite-api.yaml" ''
     search_index: ${dataDir}/index
-    ${optionalString (!isNull config.time.timeZone) ''time_zone: ${config.time.timeZone}''}
+    ${optionalString (config.time.timeZone != null) ''time_zone: ${config.time.timeZone}''}
     ${optionalString (cfg.api.finders != []) ''finders:''}
     ${concatMapStringsSep "\n" (f: "  - " + f.moduleName) cfg.api.finders}
     ${optionalString (cfg.api.functions != []) ''functions:''}
diff --git a/nixpkgs/nixos/modules/services/networking/flannel.nix b/nixpkgs/nixos/modules/services/networking/flannel.nix
index c1f778ac139a..dd2f6454e954 100644
--- a/nixpkgs/nixos/modules/services/networking/flannel.nix
+++ b/nixpkgs/nixos/modules/services/networking/flannel.nix
@@ -92,7 +92,7 @@ in {
         Needed when running with Kubernetes as backend as this cannot be auto-detected";
       '';
       type = types.nullOr types.str;
-      default = with config.networking; (hostName + optionalString (!isNull domain) ".${domain}");
+      default = with config.networking; (hostName + optionalString (domain != null) ".${domain}");
       example = "node1.example.com";
     };
 
diff --git a/nixpkgs/nixos/modules/services/networking/i2pd.nix b/nixpkgs/nixos/modules/services/networking/i2pd.nix
index 40478b85b75e..f2be417738ee 100644
--- a/nixpkgs/nixos/modules/services/networking/i2pd.nix
+++ b/nixpkgs/nixos/modules/services/networking/i2pd.nix
@@ -12,9 +12,9 @@ let
   boolOpt = k: v: k + " = " + boolToString v;
   intOpt = k: v: k + " = " + toString v;
   lstOpt = k: xs: k + " = " + concatStringsSep "," xs;
-  optionalNullString = o: s: optional (! isNull s) (strOpt o s);
-  optionalNullBool = o: b: optional (! isNull b) (boolOpt o b);
-  optionalNullInt = o: i: optional (! isNull i) (intOpt o i);
+  optionalNullString = o: s: optional (s != null) (strOpt o s);
+  optionalNullBool = o: b: optional (b != null) (boolOpt o b);
+  optionalNullInt = o: i: optional (i != null) (intOpt o i);
   optionalEmptyList = o: l: optional ([] != l) (lstOpt o l);
 
   mkEnableTrueOption = name: mkEnableOption name // { default = true; };
@@ -225,7 +225,7 @@ let
   i2pdSh = pkgs.writeScriptBin "i2pd" ''
     #!/bin/sh
     exec ${pkgs.i2pd}/bin/i2pd \
-      ${if isNull cfg.address then "" else "--host="+cfg.address} \
+      ${if cfg.address == null then "" else "--host="+cfg.address} \
       --service \
       --conf=${i2pdConf} \
       --tunconf=${tunnelConf}
diff --git a/nixpkgs/nixos/modules/services/networking/mxisd.nix b/nixpkgs/nixos/modules/services/networking/mxisd.nix
index 0b9824f29fd7..02e89f441b34 100644
--- a/nixpkgs/nixos/modules/services/networking/mxisd.nix
+++ b/nixpkgs/nixos/modules/services/networking/mxisd.nix
@@ -103,20 +103,12 @@ in {
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
 
-      # mxisd / spring.boot needs the configuration to be named "application.yaml"
-      preStart = ''
-        config=${cfg.dataDir}/application.yaml
-        cp ${configFile} $config
-        chmod 444 $config
-      '';
-
       serviceConfig = {
         Type = "simple";
         User = "mxisd";
         Group = "mxisd";
-        ExecStart = "${cfg.package}/bin/mxisd --spring.config.location=${cfg.dataDir}/ --spring.profiles.active=systemd --java.security.egd=file:/dev/./urandom";
+        ExecStart = "${cfg.package}/bin/mxisd -c ${configFile}";
         WorkingDirectory = cfg.dataDir;
-        SuccessExitStatus = 143;
         Restart = "on-failure";
       };
     };
diff --git a/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/param-constructors.nix b/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/param-constructors.nix
index 5e74a96664f0..95a174122d04 100644
--- a/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/param-constructors.nix
+++ b/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/param-constructors.nix
@@ -56,7 +56,7 @@ rec {
   };
 
   documentDefault = description : strongswanDefault :
-    if isNull strongswanDefault
+    if strongswanDefault == null
     then description
     else description + ''
       </para><para>
diff --git a/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/param-lib.nix b/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/param-lib.nix
index fb87e81f3215..193ad27f035a 100644
--- a/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/param-lib.nix
+++ b/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/param-lib.nix
@@ -45,10 +45,10 @@ rec {
     filterEmptySets (
       (mapParamsRecursive (path: name: param:
         let value = attrByPath path null cfg;
-        in optionalAttrs (!isNull value) (param.render name value)
+        in optionalAttrs (value != null) (param.render name value)
       ) ps));
 
-  filterEmptySets = set : filterAttrs (n: v: !(isNull v)) (mapAttrs (name: value:
+  filterEmptySets = set : filterAttrs (n: v: (v != null)) (mapAttrs (name: value:
     if isAttrs value
     then let value' = filterEmptySets value;
          in if value' == {}
diff --git a/nixpkgs/nixos/modules/services/networking/syncthing.nix b/nixpkgs/nixos/modules/services/networking/syncthing.nix
index 114a64dfb175..89dae7bb3f86 100644
--- a/nixpkgs/nixos/modules/services/networking/syncthing.nix
+++ b/nixpkgs/nixos/modules/services/networking/syncthing.nix
@@ -5,6 +5,57 @@ with lib;
 let
   cfg = config.services.syncthing;
   defaultUser = "syncthing";
+
+  devices = mapAttrsToList (name: device: {
+    deviceID = device.id;
+    inherit (device) name addresses introducer;
+  }) cfg.declarative.devices;
+
+  folders = mapAttrsToList ( _: folder: {
+    inherit (folder) path id label type;
+    devices = map (device: { deviceId = cfg.declarative.devices.${device}.id; }) folder.devices;
+    rescanIntervalS = folder.rescanInterval;
+    fsWatcherEnabled = folder.watch;
+    fsWatcherDelayS = folder.watchDelay;
+    ignorePerms = folder.ignorePerms;
+  }) cfg.declarative.folders;
+
+  # get the api key by parsing the config.xml
+  getApiKey = pkgs.writers.writeDash "getAPIKey" ''
+    ${pkgs.libxml2}/bin/xmllint \
+      --xpath 'string(configuration/gui/apikey)'\
+      ${cfg.configDir}/config.xml
+  '';
+
+  updateConfig = pkgs.writers.writeDash "merge-syncthing-config" ''
+    set -efu
+    # wait for syncthing port to open
+    until ${pkgs.curl}/bin/curl -Ss ${cfg.guiAddress} -o /dev/null; do
+      sleep 1
+    done
+
+    API_KEY=$(${getApiKey})
+    OLD_CFG=$(${pkgs.curl}/bin/curl -Ss \
+      -H "X-API-Key: $API_KEY" \
+      ${cfg.guiAddress}/rest/system/config)
+
+    # generate the new config by merging with the nixos config options
+    NEW_CFG=$(echo "$OLD_CFG" | ${pkgs.jq}/bin/jq -s '.[] as $in | $in * {
+      "devices": (${builtins.toJSON devices}${optionalString (! cfg.declarative.overrideDevices) " + $in.devices"}),
+      "folders": (${builtins.toJSON folders}${optionalString (! cfg.declarative.overrideFolders) " + $in.folders"})
+    }')
+
+    # POST the new config to syncthing
+    echo "$NEW_CFG" | ${pkgs.curl}/bin/curl -Ss \
+      -H "X-API-Key: $API_KEY" \
+      ${cfg.guiAddress}/rest/system/config -d @-
+
+    # restart syncthing after sending the new config
+    ${pkgs.curl}/bin/curl -Ss \
+      -H "X-API-Key: $API_KEY" \
+      -X POST \
+      ${cfg.guiAddress}/rest/system/restart
+  '';
 in {
   ###### interface
   options = {
@@ -16,6 +67,187 @@ in {
         available on http://127.0.0.1:8384/.
       '';
 
+      declarative = {
+        cert = mkOption {
+          type = types.nullOr types.str;
+          default = null;
+          description = ''
+            Path to users cert.pem file, will be copied into the syncthing's
+            <literal>configDir</literal>
+          '';
+        };
+
+        key = mkOption {
+          type = types.nullOr types.str;
+          default = null;
+          description = ''
+            Path to users key.pem file, will be copied into the syncthing's
+            <literal>configDir</literal>
+          '';
+        };
+
+        overrideDevices = mkOption {
+          type = types.bool;
+          default = true;
+          description = ''
+            Whether to delete the devices which are not configured via the
+            <literal>declarative.devices</literal> option.
+            If set to false, devices added via the webinterface will
+            persist but will have to be deleted manually.
+          '';
+        };
+
+        devices = mkOption {
+          default = {};
+          description = ''
+            Peers/devices which syncthing should communicate with.
+          '';
+          example = [
+            {
+              name = "bigbox";
+              id = "7CFNTQM-IMTJBHJ-3UWRDIU-ZGQJFR6-VCXZ3NB-XUH3KZO-N52ITXR-LAIYUAU";
+              addresses = [ "tcp://192.168.0.10:51820" ];
+            }
+          ];
+          type = types.attrsOf (types.submodule ({ config, ... }: {
+            options = {
+
+              name = mkOption {
+                type = types.str;
+                default = config._module.args.name;
+                description = ''
+                  Name of the device
+                '';
+              };
+
+              addresses = mkOption {
+                type = types.listOf types.str;
+                default = [];
+                description = ''
+                  The addresses used to connect to the device.
+                  If this is let empty, dynamic configuration is attempted
+                '';
+              };
+
+              id = mkOption {
+                type = types.str;
+                description = ''
+                  The id of the other peer, this is mandatory. It's documented at
+                  https://docs.syncthing.net/dev/device-ids.html
+                '';
+              };
+
+              introducer = mkOption {
+                type = types.bool;
+                default = false;
+                description = ''
+                  If the device should act as an introducer and be allowed
+                  to add folders on this computer.
+                '';
+              };
+
+            };
+          }));
+        };
+
+        overrideFolders = mkOption {
+          type = types.bool;
+          default = true;
+          description = ''
+            Whether to delete the folders which are not configured via the
+            <literal>declarative.folders</literal> option.
+            If set to false, folders added via the webinterface will persist
+            but will have to be deleted manually.
+          '';
+        };
+
+        folders = mkOption {
+          default = {};
+          description = ''
+            folders which should be shared by syncthing.
+          '';
+          type = types.attrsOf (types.submodule ({ config, ... }: {
+            options = {
+
+              path = mkOption {
+                type = types.str;
+                default = config._module.args.name;
+                description = ''
+                  The path to the folder which should be shared.
+                '';
+              };
+
+              id = mkOption {
+                type = types.str;
+                default = config._module.args.name;
+                description = ''
+                  The id of the folder. Must be the same on all devices.
+                '';
+              };
+
+              label = mkOption {
+                type = types.str;
+                default = config._module.args.name;
+                description = ''
+                  The label of the folder.
+                '';
+              };
+
+              devices = mkOption {
+                type = types.listOf types.str;
+                default = [];
+                description = ''
+                  The devices this folder should be shared with. Must be defined
+                  in the <literal>declarative.devices</literal> attribute.
+                '';
+              };
+
+              rescanInterval = mkOption {
+                type = types.int;
+                default = 3600;
+                description = ''
+                  How often the folders should be rescaned for changes.
+                '';
+              };
+
+              type = mkOption {
+                type = types.enum [ "sendreceive" "sendonly" "receiveonly" ];
+                default = "sendreceive";
+                description = ''
+                  Whether to send only changes from this folder, only receive them
+                  or propagate both.
+                '';
+              };
+
+              watch = mkOption {
+                type = types.bool;
+                default = true;
+                description = ''
+                  Whether the folder should be watched for changes by inotify.
+                '';
+              };
+
+              watchDelay = mkOption {
+                type = types.int;
+                default = 10;
+                description = ''
+                  The delay after an inotify event is triggered.
+                '';
+              };
+
+              ignorePerms = mkOption {
+                type = types.bool;
+                default = true;
+                description = ''
+                  Whether to propagate permission changes.
+                '';
+              };
+
+            };
+          }));
+        };
+      };
+
       guiAddress = mkOption {
         type = types.str;
         default = "127.0.0.1:8384";
@@ -151,6 +383,23 @@ in {
           RestartForceExitStatus="3 4";
           User = cfg.user;
           Group = cfg.group;
+          ExecStartPre = mkIf (cfg.declarative.cert != null || cfg.declarative.key != null)
+            "+${pkgs.writers.writeBash "syncthing-copy-keys" ''
+              mkdir -p ${cfg.configDir}
+              chown ${cfg.user}:${cfg.group} ${cfg.configDir}
+              chmod 700 ${cfg.configDir}
+              ${optionalString (cfg.declarative.cert != null) ''
+                cp ${toString cfg.declarative.cert} ${cfg.configDir}/cert.pem
+                chown ${cfg.user}:${cfg.group} ${cfg.configDir}/cert.pem
+                chmod 400 ${cfg.configDir}/cert.pem
+              ''}
+              ${optionalString (cfg.declarative.key != null) ''
+                cp ${toString cfg.declarative.key} ${cfg.configDir}/key.pem
+                chown ${cfg.user}:${cfg.group} ${cfg.configDir}/key.pem
+                chmod 400 ${cfg.configDir}/key.pem
+              ''}
+            ''}"
+          ;
           ExecStart = ''
             ${cfg.package}/bin/syncthing \
               -no-browser \
@@ -159,6 +408,17 @@ in {
           '';
         };
       };
+      syncthing-init = {
+        after = [ "syncthing.service" ];
+        wantedBy = [ "multi-user.target" ];
+
+        serviceConfig = {
+          User = cfg.user;
+          RemainAfterExit = true;
+          Type = "oneshot";
+          ExecStart = updateConfig;
+        };
+      };
 
       syncthing-resume = {
         wantedBy = [ "suspend.target" ];
diff --git a/nixpkgs/nixos/modules/services/networking/xinetd.nix b/nixpkgs/nixos/modules/services/networking/xinetd.nix
index 002245027804..2d7cd5cebb48 100644
--- a/nixpkgs/nixos/modules/services/networking/xinetd.nix
+++ b/nixpkgs/nixos/modules/services/networking/xinetd.nix
@@ -146,7 +146,7 @@ in
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       path = [ pkgs.xinetd ];
-      script = "xinetd -syslog daemon -dontfork -stayalive -f ${configFile}";
+      script = "exec xinetd -syslog daemon -dontfork -stayalive -f ${configFile}";
     };
   };
 }
diff --git a/nixpkgs/nixos/modules/services/search/kibana.nix b/nixpkgs/nixos/modules/services/search/kibana.nix
index 2a6e8250850c..c096af731ad4 100644
--- a/nixpkgs/nixos/modules/services/search/kibana.nix
+++ b/nixpkgs/nixos/modules/services/search/kibana.nix
@@ -129,7 +129,7 @@ in {
 
           This defaults to the singleton list [ca] when the <option>ca</option> option is defined.
         '';
-        default = if isNull cfg.elasticsearch.ca then [] else [ca];
+        default = if cfg.elasticsearch.ca == null then [] else [ca];
         type = types.listOf types.path;
       };
 
diff --git a/nixpkgs/nixos/modules/services/security/fprintd.nix b/nixpkgs/nixos/modules/services/security/fprintd.nix
index 9ed7f2a2efd9..8ece1ca19013 100644
--- a/nixpkgs/nixos/modules/services/security/fprintd.nix
+++ b/nixpkgs/nixos/modules/services/security/fprintd.nix
@@ -25,6 +25,16 @@ in
         '';
       };
 
+      package = mkOption {
+        type = types.package;
+        default = pkgs.fprintd;
+        defaultText = "pkgs.fprintd";
+        example = "pkgs.fprintd-thinkpad";
+        description = ''
+          fprintd package to use.
+        '';
+      };
+
     };
 
   };
@@ -38,7 +48,7 @@ in
 
     environment.systemPackages = [ pkgs.fprintd ];
 
-    systemd.packages = [ pkgs.fprintd ];
+    systemd.packages = [ cfg.package ];
 
   };
 
diff --git a/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix b/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix
index 0c5fe8c0ef5f..61f203ef9e7d 100644
--- a/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix
+++ b/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix
@@ -58,11 +58,11 @@ let
       httponly = cookie.httpOnly;
     };
     set-xauthrequest = setXauthrequest;
-  } // lib.optionalAttrs (!isNull cfg.email.addresses) {
+  } // lib.optionalAttrs (cfg.email.addresses != null) {
     authenticated-emails-file = authenticatedEmailsFile;
   } // lib.optionalAttrs (cfg.passBasicAuth) {
     basic-auth-password = cfg.basicAuthPassword;
-  } // lib.optionalAttrs (!isNull cfg.htpasswd.file) {
+  } // lib.optionalAttrs (cfg.htpasswd.file != null) {
     display-htpasswd-file = cfg.htpasswd.displayForm;
   } // lib.optionalAttrs tls.enable {
     tls-cert = tls.certificate;
@@ -71,7 +71,7 @@ let
   } // (getProviderOptions cfg cfg.provider) // cfg.extraConfig;
 
   mapConfig = key: attr:
-  if (!isNull attr && attr != []) then (
+  if attr != null && attr != [] then (
     if isDerivation attr then mapConfig key (toString attr) else
     if (builtins.typeOf attr) == "set" then concatStringsSep " "
       (mapAttrsToList (name: value: mapConfig (key + "-" + name) value) attr) else
@@ -538,7 +538,7 @@ in
 
   config = mkIf cfg.enable {
 
-    services.oauth2_proxy = mkIf (!isNull cfg.keyFile) {
+    services.oauth2_proxy = mkIf (cfg.keyFile != null) {
       clientID = mkDefault null;
       clientSecret = mkDefault null;
       cookie.secret = mkDefault null;
diff --git a/nixpkgs/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix b/nixpkgs/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix
index 644aad82df2c..910e1d937bf3 100644
--- a/nixpkgs/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix
@@ -215,7 +215,7 @@ in {
 
     # /etc/icingaweb2
     environment.etc = let
-      doModule = name: optionalAttrs (cfg.modules."${name}".enable) (nameValuePair "icingaweb2/enabledModules/${name}" { source = "${pkgs.icingaweb2}/modules/${name}"; });
+      doModule = name: optionalAttrs (cfg.modules."${name}".enable) { "icingaweb2/enabledModules/${name}".source = "${pkgs.icingaweb2}/modules/${name}"; };
     in {}
       # Module packages
       // (mapAttrs' (k: v: nameValuePair "icingaweb2/enabledModules/${k}" { source = v; }) cfg.modulePackages)
diff --git a/nixpkgs/nixos/modules/services/web-apps/miniflux.nix b/nixpkgs/nixos/modules/services/web-apps/miniflux.nix
index 1d60004e574d..304712d0efc3 100644
--- a/nixpkgs/nixos/modules/services/web-apps/miniflux.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/miniflux.nix
@@ -85,7 +85,7 @@ in
         DynamicUser = true;
         RuntimeDirectory = "miniflux";
         RuntimeDirectoryMode = "0700";
-        EnvironmentFile = if isNull cfg.adminCredentialsFile
+        EnvironmentFile = if cfg.adminCredentialsFile == null
         then defaultCredentials
         else cfg.adminCredentialsFile;
       };
diff --git a/nixpkgs/nixos/modules/services/web-apps/restya-board.nix b/nixpkgs/nixos/modules/services/web-apps/restya-board.nix
index 15fd943a0826..2e5e0ea6622d 100644
--- a/nixpkgs/nixos/modules/services/web-apps/restya-board.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/restya-board.nix
@@ -184,7 +184,7 @@ in
         phpOptions = ''
           date.timezone = "CET"
 
-          ${optionalString (!isNull cfg.email.server) ''
+          ${optionalString (cfg.email.server != null) ''
             SMTP = ${cfg.email.server}
             smtp_port = ${toString cfg.email.port}
             auth_username = ${cfg.email.login}
@@ -282,7 +282,7 @@ in
 
         sed -i "s@^php@${config.services.phpfpm.phpPackage}/bin/php@" "${runDir}/server/php/shell/"*.sh
 
-        ${if (isNull cfg.database.host) then ''
+        ${if (cfg.database.host == null) then ''
           sed -i "s/^.*'R_DB_HOST'.*$/define('R_DB_HOST', 'localhost');/g" "${runDir}/server/php/config.inc.php"
           sed -i "s/^.*'R_DB_PASSWORD'.*$/define('R_DB_PASSWORD', 'restya');/g" "${runDir}/server/php/config.inc.php"
         '' else ''
@@ -311,7 +311,7 @@ in
         chown -R "${cfg.user}"."${cfg.group}" "${cfg.dataDir}/media"
         chown -R "${cfg.user}"."${cfg.group}" "${cfg.dataDir}/client/img"
 
-        ${optionalString (isNull cfg.database.host) ''
+        ${optionalString (cfg.database.host == null) ''
           if ! [ -e "${cfg.dataDir}/.db-initialized" ]; then
             ${pkgs.sudo}/bin/sudo -u ${config.services.postgresql.superUser} \
               ${config.services.postgresql.package}/bin/psql -U ${config.services.postgresql.superUser} \
@@ -367,14 +367,14 @@ in
     };
     users.groups.restya-board = {};
 
-    services.postgresql.enable = mkIf (isNull cfg.database.host) true;
+    services.postgresql.enable = mkIf (cfg.database.host == null) true;
 
-    services.postgresql.identMap = optionalString (isNull cfg.database.host)
+    services.postgresql.identMap = optionalString (cfg.database.host == null)
       ''
         restya-board-users restya-board restya_board
       '';
 
-    services.postgresql.authentication = optionalString (isNull cfg.database.host)
+    services.postgresql.authentication = optionalString (cfg.database.host == null)
       ''
         local restya_board all ident map=restya-board-users
       '';
diff --git a/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
index 8f00f81b078c..a8fb11f114ec 100644
--- a/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -690,7 +690,7 @@ in
 
         ; Don't advertise PHP
         expose_php = off
-      '' + optionalString (!isNull config.time.timeZone) ''
+      '' + optionalString (config.time.timeZone != null) ''
 
         ; Apparently PHP doesn't use $TZ.
         date.timezone = "${config.time.timeZone}"
diff --git a/nixpkgs/nixos/modules/services/web-servers/winstone.nix b/nixpkgs/nixos/modules/services/web-servers/winstone.nix
deleted file mode 100644
index 064ead5ce4bb..000000000000
--- a/nixpkgs/nixos/modules/services/web-servers/winstone.nix
+++ /dev/null
@@ -1,129 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  cfg = config.services.winstone;
-
-  winstoneOpts = { name, ... }: {
-    options = {
-      name = mkOption {
-        default = name;
-        internal = true;
-      };
-
-      serviceName = mkOption {
-        type = types.str;
-        description = ''
-          The name of the systemd service. By default, it is
-          derived from the winstone instance name.
-        '';
-      };
-
-      warFile = mkOption {
-        type = types.str;
-        description = ''
-          The WAR file that Winstone should serve.
-        '';
-      };
-
-      javaPackage = mkOption {
-        type = types.package;
-        default = pkgs.jre;
-        defaultText = "pkgs.jre";
-        description = ''
-          Which Java derivation to use for running Winstone.
-        '';
-      };
-
-      user = mkOption {
-        type = types.str;
-        description = ''
-          The user that should run this Winstone process and
-          own the working directory.
-        '';
-      };
-
-      group = mkOption {
-        type = types.str;
-        description = ''
-          The group that will own the working directory.
-        '';
-      };
-
-      workDir = mkOption {
-        type = types.str;
-        description = ''
-          The working directory for this Winstone instance. Will
-          contain extracted webapps etc. The directory will be
-          created if it doesn't exist.
-        '';
-      };
-
-      extraJavaOptions = mkOption {
-        type = types.listOf types.str;
-        default = [];
-        description = ''
-          Extra command line options given to the java process running
-          Winstone.
-        '';
-      };
-
-      extraOptions = mkOption {
-        type = types.listOf types.str;
-        default = [];
-        description = ''
-          Extra command line options given to the Winstone process.
-        '';
-      };
-    };
-
-    config = {
-      workDir = mkDefault "/run/winstone/${name}";
-      serviceName = mkDefault "winstone-${name}";
-    };
-  };
-
-  mkService = cfg: let
-    opts = concatStringsSep " " (cfg.extraOptions ++ [
-      "--warfile ${cfg.warFile}"
-    ]);
-
-    javaOpts = concatStringsSep " " (cfg.extraJavaOptions ++ [
-      "-Djava.io.tmpdir=${cfg.workDir}"
-      "-jar ${pkgs.winstone}/lib/winstone.jar"
-    ]);
-  in {
-    wantedBy = [ "multi-user.target" ];
-    description = "winstone service for ${cfg.name}";
-    preStart = ''
-      mkdir -p "${cfg.workDir}"
-      chown ${cfg.user}:${cfg.group} "${cfg.workDir}"
-    '';
-    serviceConfig = {
-      ExecStart = "${cfg.javaPackage}/bin/java ${javaOpts} ${opts}";
-      User = cfg.user;
-      PermissionsStartOnly = true;
-    };
-  };
-
-in {
-
-  options = {
-    services.winstone = mkOption {
-      default = {};
-      type = with types; attrsOf (submodule winstoneOpts);
-      description = ''
-        Defines independent Winstone services, each serving one WAR-file.
-      '';
-    };
-  };
-
-  config = mkIf (cfg != {}) {
-
-    systemd.services = mapAttrs' (n: c: nameValuePair c.serviceName (mkService c)) cfg;
-
-  };
-
-}
diff --git a/nixpkgs/nixos/modules/services/x11/colord.nix b/nixpkgs/nixos/modules/services/x11/colord.nix
index 17568df091d4..cf113ad2af8c 100644
--- a/nixpkgs/nixos/modules/services/x11/colord.nix
+++ b/nixpkgs/nixos/modules/services/x11/colord.nix
@@ -29,6 +29,7 @@ in {
     environment.etc."tmpfiles.d/colord.conf".source = "${pkgs.colord}/lib/tmpfiles.d/colord.conf";
 
     users.users.colord = {
+      isSystemUser = true;
       home = "/var/lib/colord";
       group = "colord";
     };
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix
index 7b65f1b85c69..ef6820d33260 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -120,9 +120,6 @@ in {
     security.polkit.enable = true;
     services.udisks2.enable = true;
     services.accounts-daemon.enable = true;
-    services.geoclue2.enable = mkDefault true;
-    # GNOME should have its own geoclue agent
-    services.geoclue2.enableDemoAgent = false;
     services.dleyna-renderer.enable = mkDefault true;
     services.dleyna-server.enable = mkDefault true;
     services.gnome3.at-spi2-core.enable = true;
@@ -191,6 +188,24 @@ in {
       '') cfg.sessionPath}
     '';
 
+
+    services.geoclue2.enable = mkDefault true;
+    # GNOME should have its own geoclue agent
+    services.geoclue2.enableDemoAgent = false;
+
+    services.geoclue2.appConfig."gnome-datetime-panel" = {
+      isAllowed = true;
+      isSystem = true;
+    };
+    services.geoclue2.appConfig."gnome-color-panel" = {
+      isAllowed = true;
+      isSystem = true;
+    };
+    services.geoclue2.appConfig."org.gnome.Shell" = {
+      isAllowed = true;
+      isSystem = true;
+    };
+
     environment.variables.GNOME_SESSION_DEBUG = optionalString cfg.debug "1";
 
     # Override default mimeapps
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
index e1eeb32aa1a0..9a0f77a856a7 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -118,9 +118,6 @@ in
       (mkIf config.services.printing.enable  ([pkgs.system-config-printer]) )
     ];
     services.pantheon.contractor.enable = mkDefault true;
-    services.geoclue2.enable = mkDefault true;
-    # pantheon has pantheon-agent-geoclue2
-    services.geoclue2.enableDemoAgent = false;
     services.gnome3.at-spi2-core.enable = true;
     services.gnome3.evince.enable = mkDefault true;
     services.gnome3.evolution-data-server.enable = true;
@@ -140,6 +137,14 @@ in
     services.xserver.updateDbusEnvironment = true;
     services.zeitgeist.enable = mkDefault true;
 
+    services.geoclue2.enable = mkDefault true;
+    # pantheon has pantheon-agent-geoclue2
+    services.geoclue2.enableDemoAgent = false;
+    services.geoclue2.appConfig."io.elementary.desktop.agent-geoclue2" = {
+      isAllowed = true;
+      isSystem = true;
+    };
+
     networking.networkmanager.enable = mkDefault true;
     networking.networkmanager.basePackages =
       { inherit (pkgs) networkmanager modemmanager wpa_supplicant;
diff --git a/nixpkgs/nixos/modules/virtualisation/docker-containers.nix b/nixpkgs/nixos/modules/virtualisation/docker-containers.nix
index c1f0ba303e32..3e882a1383ff 100644
--- a/nixpkgs/nixos/modules/virtualisation/docker-containers.nix
+++ b/nixpkgs/nixos/modules/virtualisation/docker-containers.nix
@@ -174,13 +174,13 @@ let
         "--rm"
         "--name=%n"
         "--log-driver=${container.log-driver}"
-      ] ++ optional (! isNull container.entrypoint)
+      ] ++ optional (container.entrypoint != null)
         "--entrypoint=${escapeShellArg container.entrypoint}"
         ++ (mapAttrsToList (k: v: "-e ${escapeShellArg k}=${escapeShellArg v}") container.environment)
         ++ map (p: "-p ${escapeShellArg p}") container.ports
-        ++ optional (! isNull container.user) "-u ${escapeShellArg container.user}"
+        ++ optional (container.user != null) "-u ${escapeShellArg container.user}"
         ++ map (v: "-v ${escapeShellArg v}") container.volumes
-        ++ optional (! isNull container.workdir) "-w ${escapeShellArg container.workdir}"
+        ++ optional (container.workdir != null) "-w ${escapeShellArg container.workdir}"
         ++ map escapeShellArg container.extraDockerOptions
         ++ [container.image]
         ++ map escapeShellArg container.cmd
diff --git a/nixpkgs/nixos/modules/virtualisation/google-compute-image.nix b/nixpkgs/nixos/modules/virtualisation/google-compute-image.nix
index 0d2d25d30752..d172ae38fdcf 100644
--- a/nixpkgs/nixos/modules/virtualisation/google-compute-image.nix
+++ b/nixpkgs/nixos/modules/virtualisation/google-compute-image.nix
@@ -51,7 +51,7 @@ in
         popd
       '';
       format = "raw";
-      configFile = if isNull cfg.configFile then defaultConfigFile else cfg.configFile;
+      configFile = if cfg.configFile == null then defaultConfigFile else cfg.configFile;
       inherit (cfg) diskSize;
       inherit config lib pkgs;
     };
diff --git a/nixpkgs/nixos/tests/all-tests.nix b/nixpkgs/nixos/tests/all-tests.nix
index d495b2fa6333..5be7c4292e5f 100644
--- a/nixpkgs/nixos/tests/all-tests.nix
+++ b/nixpkgs/nixos/tests/all-tests.nix
@@ -151,6 +151,7 @@ in
   mumble = handleTest ./mumble.nix {};
   munin = handleTest ./munin.nix {};
   mutableUsers = handleTest ./mutable-users.nix {};
+  mxisd = handleTest ./mxisd.nix {};
   mysql = handleTest ./mysql.nix {};
   mysqlBackup = handleTest ./mysql-backup.nix {};
   mysqlReplication = handleTest ./mysql-replication.nix {};
@@ -230,12 +231,14 @@ in
   strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
   sudo = handleTest ./sudo.nix {};
   switchTest = handleTest ./switch-test.nix {};
+  syncthing-init = handleTest ./syncthing-init.nix {};
   syncthing-relay = handleTest ./syncthing-relay.nix {};
   systemd = handleTest ./systemd.nix {};
   systemd-confinement = handleTest ./systemd-confinement.nix {};
   pdns-recursor = handleTest ./pdns-recursor.nix {};
   taskserver = handleTest ./taskserver.nix {};
   telegraf = handleTest ./telegraf.nix {};
+  tinydns = handleTest ./tinydns.nix {};
   tomcat = handleTest ./tomcat.nix {};
   tor = handleTest ./tor.nix {};
   transmission = handleTest ./transmission.nix {};
diff --git a/nixpkgs/nixos/tests/redmine.nix b/nixpkgs/nixos/tests/redmine.nix
index ea72a0121d11..cbdb5c8d2954 100644
--- a/nixpkgs/nixos/tests/redmine.nix
+++ b/nixpkgs/nixos/tests/redmine.nix
@@ -7,7 +7,7 @@ with import ../lib/testing.nix { inherit system pkgs; };
 with pkgs.lib;
 
 let
-  redmineTest = package: makeTest {
+  mysqlTest = package: makeTest {
     machine =
       { config, pkgs, ... }:
       { services.mysql.enable = true;
@@ -21,6 +21,7 @@ let
 
         services.redmine.enable = true;
         services.redmine.package = package;
+        services.redmine.database.type = "mysql2";
         services.redmine.database.socket = "/run/mysqld/mysqld.sock";
         services.redmine.plugins = {
           redmine_env_auth = pkgs.fetchurl {
@@ -38,7 +39,44 @@ let
 
     testScript = ''
       startAll;
+      $machine->waitForUnit('redmine.service');
+      $machine->waitForOpenPort('3000');
+      $machine->succeed("curl --fail http://localhost:3000/");
+    '';
+  };
+
+  pgsqlTest = package: makeTest {
+    machine =
+      { config, pkgs, ... }:
+      { services.postgresql.enable = true;
+        services.postgresql.ensureDatabases = [ "redmine" ];
+        services.postgresql.ensureUsers = [
+          { name = "redmine";
+            ensurePermissions = { "DATABASE redmine" = "ALL PRIVILEGES"; };
+          }
+        ];
+
+        services.redmine.enable = true;
+        services.redmine.package = package;
+        services.redmine.database.type = "postgresql";
+        services.redmine.database.host = "";
+        services.redmine.database.port = 5432;
+        services.redmine.plugins = {
+          redmine_env_auth = pkgs.fetchurl {
+            url = https://github.com/Intera/redmine_env_auth/archive/0.7.zip;
+            sha256 = "1xb8lyarc7mpi86yflnlgyllh9hfwb9z304f19dx409gqpia99sc";
+          };
+        };
+        services.redmine.themes = {
+          dkuk-redmine_alex_skin = pkgs.fetchurl {
+            url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip;
+            sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl";
+          };
+        };
+      };
 
+    testScript = ''
+      startAll;
       $machine->waitForUnit('redmine.service');
       $machine->waitForOpenPort('3000');
       $machine->succeed("curl --fail http://localhost:3000/");
@@ -46,13 +84,18 @@ let
   };
 in
 {
-  redmine_3 = redmineTest pkgs.redmine // {
-    name = "redmine_3";
+  v3-mysql = mysqlTest pkgs.redmine // {
+    name = "v3-mysql";
+    meta.maintainers = [ maintainers.aanderse ];
+  };
+
+  v4-mysql = mysqlTest pkgs.redmine_4 // {
+    name = "v4-mysql";
     meta.maintainers = [ maintainers.aanderse ];
   };
 
-  redmine_4 = redmineTest pkgs.redmine_4 // {
-    name = "redmine_4";
+  v4-pgsql = pgsqlTest pkgs.redmine_4 // {
+    name = "v4-pgsql";
     meta.maintainers = [ maintainers.aanderse ];
   };
 }
diff --git a/nixpkgs/nixos/tests/syncthing-init.nix b/nixpkgs/nixos/tests/syncthing-init.nix
new file mode 100644
index 000000000000..811a466ff941
--- /dev/null
+++ b/nixpkgs/nixos/tests/syncthing-init.nix
@@ -0,0 +1,30 @@
+import ./make-test.nix ({ lib, pkgs, ... }: let
+
+  testId = "7CFNTQM-IMTJBHJ-3UWRDIU-ZGQJFR6-VCXZ3NB-XUH3KZO-N52ITXR-LAIYUAU";
+
+in {
+  name = "syncthing-init";
+  meta.maintainers = with pkgs.stdenv.lib.maintainers; [ lassulus ];
+
+  machine = {
+    services.syncthing = {
+      enable = true;
+      declarative = {
+        devices.testDevice = {
+          id = testId;
+        };
+        folders.testFolder = {
+          path = "/tmp/test";
+          devices = [ "testDevice" ];
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    $machine->waitForUnit("syncthing-init.service");
+    $machine->succeed("cat /var/lib/syncthing/config.xml") =~ /${testId}/ or die;
+    $machine->succeed("cat /var/lib/syncthing/config.xml") =~ /testFolder/ or die;
+  '';
+})
+
diff --git a/nixpkgs/nixos/tests/tinydns.nix b/nixpkgs/nixos/tests/tinydns.nix
new file mode 100644
index 000000000000..cb7ee0c5fb5e
--- /dev/null
+++ b/nixpkgs/nixos/tests/tinydns.nix
@@ -0,0 +1,26 @@
+import ./make-test.nix ({ lib, ...} : {
+  name = "tinydns";
+  meta = {
+    maintainers = with lib.maintainers; [ basvandijk ];
+  };
+  nodes = {
+    nameserver = { config, lib, ... } : let
+      ip = (lib.head config.networking.interfaces.eth1.ipv4.addresses).address;
+    in {
+      networking.nameservers = [ ip ];
+      services.tinydns = {
+        enable = true;
+        inherit ip;
+        data = ''
+          .foo.bar:${ip}
+          +.bla.foo.bar:1.2.3.4:300
+        '';
+      };
+    };
+  };
+  testScript = ''
+    $nameserver->start;
+    $nameserver->waitForUnit("tinydns.service");
+    $nameserver->succeed("host bla.foo.bar | grep '1\.2\.3\.4'");
+  '';
+})
diff --git a/nixpkgs/nixos/tests/upnp.nix b/nixpkgs/nixos/tests/upnp.nix
index 3f2dd13fb560..98344aee3efa 100644
--- a/nixpkgs/nixos/tests/upnp.nix
+++ b/nixpkgs/nixos/tests/upnp.nix
@@ -47,7 +47,7 @@ in
 
       client1 =
         { pkgs, nodes, ... }:
-        { environment.systemPackages = [ pkgs.miniupnpc pkgs.netcat ];
+        { environment.systemPackages = [ pkgs.miniupnpc_2 pkgs.netcat ];
           virtualisation.vlans = [ 2 ];
           networking.defaultGateway = internalRouterAddress;
           networking.interfaces.eth1.ipv4.addresses = [
@@ -63,7 +63,7 @@ in
 
       client2 =
         { pkgs, ... }:
-        { environment.systemPackages = [ pkgs.miniupnpc ];
+        { environment.systemPackages = [ pkgs.miniupnpc_2 ];
           virtualisation.vlans = [ 1 ];
           networking.interfaces.eth1.ipv4.addresses = [
             { address = externalClient2Address; prefixLength = 24; }
diff --git a/nixpkgs/pkgs/applications/altcoins/parity/beta.nix b/nixpkgs/pkgs/applications/altcoins/parity/beta.nix
index b844c441bbc0..ed3f691122ce 100644
--- a/nixpkgs/pkgs/applications/altcoins/parity/beta.nix
+++ b/nixpkgs/pkgs/applications/altcoins/parity/beta.nix
@@ -1,6 +1,6 @@
 let
-  version     = "2.5.0";
-  sha256      = "1dsckybjg2cvrvcs1bya03xymcm0whfxcb1v0vljn5pghyazgvhx";
-  cargoSha256 = "0z7dmzpqg0qnkga7r4ykwrvz8ds1k9ik7cx58h2vnmhrhrddvizr";
+  version     = "2.5.1";
+  sha256      = "0nnrgc2qyqqld3znjigryqpg5jaqh3jnmin4a334dbr4jw50dz3d";
+  cargoSha256 = "184vfhsalk5dims3k13zrsv4lmm45a7nm3r0b84g72q7hhbl8pkf";
 in
   import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/nixpkgs/pkgs/applications/altcoins/parity/default.nix b/nixpkgs/pkgs/applications/altcoins/parity/default.nix
index d01ef9ad059e..18e3dd4129e4 100644
--- a/nixpkgs/pkgs/applications/altcoins/parity/default.nix
+++ b/nixpkgs/pkgs/applications/altcoins/parity/default.nix
@@ -1,6 +1,6 @@
 let
-  version     = "2.4.5";
-  sha256      = "02ajwjw6cz86x6zybvw5l0pgv7r370hickjv9ja141w7bhl70q3v";
-  cargoSha256 = "1n218c43gf200xlb3q03bd6w4kas0jsqx6ciw9s6h7h18wwibvf1";
+  version     = "2.4.6";
+  sha256      = "0vfq1pyd92n60h9gimn4d5j56xanvl43sgxk9h2kb16amy0mmh3z";
+  cargoSha256 = "04gi9vddahq1q207f83n3wriwdjnmmnby6mq4crdh7yx1p4b26m9";
 in
   import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/nixpkgs/pkgs/applications/audio/audacity/default.nix b/nixpkgs/pkgs/applications/audio/audacity/default.nix
index 3b12ffe3463f..b685fda7683d 100644
--- a/nixpkgs/pkgs/applications/audio/audacity/default.nix
+++ b/nixpkgs/pkgs/applications/audio/audacity/default.nix
@@ -7,12 +7,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.3.1";
+  version = "2.3.2";
   name = "audacity-${version}";
 
   src = fetchurl {
     url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
-    sha256 = "089kz6hgqg0caz33sps19wpkfnza5gf7brdq2p9y6bnwkipw1w9f";
+    sha256 = "0cf7fr1qhyyylj8g9ax1rq5sb887bcv5b8d7hwlcfwamzxqpliyc";
   };
 
   preConfigure = /* we prefer system-wide libs */ ''
diff --git a/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix b/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
index 04b1dafe7e84..404c9cc825e9 100644
--- a/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
+++ b/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
@@ -11,8 +11,8 @@ let
       sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh";
     };
     "2" = {
-      fluidsynthVersion = "2.0.4";
-      sha256 = "1v2vji02fbrjgypwb4fw2r90hnfwfbfh3d24j8vjwlbqxhxp16s0";
+      fluidsynthVersion = "2.0.5";
+      sha256 = "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y";
     };
   };
 in
diff --git a/nixpkgs/pkgs/applications/audio/moc/default.nix b/nixpkgs/pkgs/applications/audio/moc/default.nix
index ea83a1012ebb..3ed330cc7437 100644
--- a/nixpkgs/pkgs/applications/audio/moc/default.nix
+++ b/nixpkgs/pkgs/applications/audio/moc/default.nix
@@ -1,9 +1,35 @@
-{ stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg
-, libvorbis, libmpc, libsndfile, libjack2, db, libmodplug, timidity, libid3tag
-, libtool
+{ stdenv, fetchurl, pkgconfig
+, ncurses, db , popt, libtool
+# Sound sub-systems
+, alsaSupport ? true, alsaLib
+, pulseSupport ? true, libpulseaudio, autoreconfHook
+, jackSupport ? true, libjack2
+, ossSupport ? true
+# Audio formats
+, aacSupport ? true, faad2, libid3tag
+, flacSupport ? true, flac
+, midiSupport ? true, timidity
+, modplugSupport ? true, libmodplug
+, mp3Support ? true, libmad
+, musepackSupport ? true, libmpc, libmpcdec, taglib
+, vorbisSupport ? true, libvorbis
+, speexSupport ? true, speex
+, ffmpegSupport ? true, ffmpeg
+, sndfileSupport ? true, libsndfile
+, wavpackSupport ? true, wavpack
+# Misc
+, withffmpeg4 ? false, ffmpeg_4
+, curlSupport ? true, curl
+, samplerateSupport ? true, libsamplerate
+, withDebug ? false
 }:
 
-stdenv.mkDerivation rec {
+let
+  opt = stdenv.lib.optional;
+  mkFlag = c: f: if c then "--with-${f}" else "--without-${f}";
+
+in stdenv.mkDerivation rec {
+
   name = "moc-${version}";
   version = "2.5.2";
 
@@ -12,18 +38,67 @@ stdenv.mkDerivation rec {
     sha256 = "026v977kwb0wbmlmf6mnik328plxg8wykfx9ryvqhirac0aq39pk";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  patches = []
+    ++ opt withffmpeg4 ./moc-ffmpeg4.patch
+    ++ opt pulseSupport ./pulseaudio.patch;
+
+  nativeBuildInputs = [ pkgconfig ]
+    ++ opt pulseSupport autoreconfHook;
+
+  buildInputs = [ ncurses db popt libtool ]
+    # Sound sub-systems
+    ++ opt alsaSupport alsaLib
+    ++ opt pulseSupport libpulseaudio
+    ++ opt jackSupport libjack2
+    # Audio formats
+    ++ opt (aacSupport || mp3Support) libid3tag
+    ++ opt aacSupport faad2
+    ++ opt flacSupport flac
+    ++ opt midiSupport timidity
+    ++ opt modplugSupport libmodplug
+    ++ opt mp3Support libmad
+    ++ opt musepackSupport [ libmpc libmpcdec taglib ]
+    ++ opt vorbisSupport libvorbis
+    ++ opt speexSupport speex
+    ++ opt (ffmpegSupport && !withffmpeg4) ffmpeg
+    ++ opt (ffmpegSupport && withffmpeg4) ffmpeg_4
+    ++ opt sndfileSupport libsndfile
+    ++ opt wavpackSupport wavpack
+    # Misc
+    ++ opt curlSupport curl
+    ++ opt samplerateSupport libsamplerate;
 
-  buildInputs = [
-    ncurses alsaLib flac libmad speex ffmpeg libvorbis libmpc libsndfile libjack2
-    db libmodplug timidity libid3tag libtool
+  configureFlags = [
+    # Sound sub-systems
+    (mkFlag alsaSupport "alsa")
+    (mkFlag pulseSupport "pulse")
+    (mkFlag jackSupport "jack")
+    (mkFlag ossSupport "oss")
+    # Audio formats
+    (mkFlag aacSupport "aac")
+    (mkFlag flacSupport "flac")
+    (mkFlag midiSupport "timidity")
+    (mkFlag modplugSupport "modplug")
+    (mkFlag mp3Support "mp3")
+    (mkFlag musepackSupport "musepack")
+    (mkFlag vorbisSupport "vorbis")
+    (mkFlag speexSupport "speex")
+    (mkFlag ffmpegSupport "ffmpeg")
+    (mkFlag sndfileSupport "sndfile")
+    (mkFlag wavpackSupport "wavpack")
+    # Misc
+    (mkFlag curlSupport "curl")
+    (mkFlag samplerateSupport "samplerate")
+    ("--enable-debug=" + (if withDebug then "yes" else "no"))
+    "--disable-cache"
+    "--without-rcc"
   ];
 
   meta = with stdenv.lib; {
     description = "An ncurses console audio player designed to be powerful and easy to use";
     homepage = http://moc.daper.net/;
     license = licenses.gpl2;
-    maintainers = with maintainers; [ pSub jagajaga ];
+    maintainers = with maintainers; [ aethelz pSub jagajaga ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch b/nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch
new file mode 100644
index 000000000000..7499f9c539bc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch
@@ -0,0 +1,33 @@
+Index: decoder_plugins/ffmpeg/ffmpeg.c
+===================================================================
+--- /decoder_plugins/ffmpeg/ffmpeg.c	(revisión: 2963)
++++ /decoder_plugins/ffmpeg/ffmpeg.c	(copia de trabajo)
+@@ -697,7 +697,7 @@
+ 	 * FFmpeg/LibAV in use.  For some versions this will be caught in
+ 	 * *_find_stream_info() above and misreported as an unfound codec
+ 	 * parameters error. */
+-	if (data->codec->capabilities & CODEC_CAP_EXPERIMENTAL) {
++	if (data->codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) {
+ 		decoder_error (&data->error, ERROR_FATAL, 0,
+ 				"The codec is experimental and may damage MOC: %s",
+ 				data->codec->name);
+@@ -705,8 +705,8 @@
+ 	}
+ 
+ 	set_downmixing (data);
+-	if (data->codec->capabilities & CODEC_CAP_TRUNCATED)
+-		data->enc->flags |= CODEC_FLAG_TRUNCATED;
++	if (data->codec->capabilities & AV_CODEC_CAP_TRUNCATED)
++		data->enc->flags |= AV_CODEC_FLAG_TRUNCATED;
+ 
+ 	if (avcodec_open2 (data->enc, data->codec, NULL) < 0)
+ 	{
+@@ -725,7 +725,7 @@
+ 
+ 	data->sample_width = sfmt_Bps (data->fmt);
+ 
+-	if (data->codec->capabilities & CODEC_CAP_DELAY)
++	if (data->codec->capabilities & AV_CODEC_CAP_DELAY)
+ 		data->delay = true;
+ 	data->seek_broken = is_seek_broken (data);
+ 	data->timing_broken = is_timing_broken (data->ic);
diff --git a/nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch b/nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch
new file mode 100644
index 000000000000..37d81dddf2bc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch
@@ -0,0 +1,800 @@
+diff --git a/audio.c b/audio.c
+--- a/audio.c
++++ b/audio.c
+@@ -32,6 +32,9 @@
+ #include "log.h"
+ #include "lists.h"
+ 
++#ifdef HAVE_PULSE
++# include "pulse.h"
++#endif
+ #ifdef HAVE_OSS
+ # include "oss.h"
+ #endif
+@@ -893,6 +896,15 @@
+ 		}
+ #endif
+ 
++#ifdef HAVE_PULSE
++		if (!strcasecmp(name, "pulseaudio")) {
++			pulse_funcs (funcs);
++			printf ("Trying PulseAudio...\n");
++			if (funcs->init(&hw_caps))
++				return;
++		}
++#endif
++
+ #ifdef HAVE_OSS
+ 		if (!strcasecmp(name, "oss")) {
+ 			oss_funcs (funcs);
+diff --git a/configure.in b/configure.in
+--- a/configure.in
++++ b/configure.in
+@@ -162,6 +162,21 @@
+ 		       AC_MSG_ERROR([BerkeleyDB (libdb) not found.]))
+ fi
+ 
++AC_ARG_WITH(pulse, AS_HELP_STRING(--without-pulse,
++				  Compile without PulseAudio support.))
++
++if test "x$with_pulse" != "xno"
++then
++	PKG_CHECK_MODULES(PULSE, [libpulse],
++		 [SOUND_DRIVERS="$SOUND_DRIVERS PULSE"
++		  EXTRA_OBJS="$EXTRA_OBJS pulse.o"
++		  AC_DEFINE([HAVE_PULSE], 1, [Define if you have PulseAudio.])
++		  EXTRA_LIBS="$EXTRA_LIBS $PULSE_LIBS"
++		  CFLAGS="$CFLAGS $PULSE_CFLAGS"],
++		  [true])
++fi
++
++
+ AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],
+                                 [Compile without OSS support]))
+ 
+diff --git a/options.c b/options.c
+--- a/options.c
++++ b/options.c
+@@ -572,10 +572,11 @@
+ 
+ #ifdef OPENBSD
+ 	add_list ("SoundDriver", "SNDIO:JACK:OSS",
+-	          CHECK_DISCRETE(5), "SNDIO", "Jack", "ALSA", "OSS", "null");
++		  CHECK_DISCRETE(5), "SNDIO", "PulseAudio", "Jack", "ALSA", "OSS", "null");
++
+ #else
+ 	add_list ("SoundDriver", "Jack:ALSA:OSS",
+-	          CHECK_DISCRETE(5), "SNDIO", "Jack", "ALSA", "OSS", "null");
++	          CHECK_DISCRETE(5), "SNDIO", "PulseAudio", "Jack", "ALSA", "OSS", "null");
+ #endif
+ 
+ 	add_str  ("JackClientName", "moc", CHECK_NONE);
+diff --git a/pulse.c b/pulse.c
+new file mode 100644
+--- /dev/null
++++ b/pulse.c
+@@ -0,0 +1,705 @@
++/*
++ * MOC - music on console
++ * Copyright (C) 2011 Marien Zwart <marienz@marienz.net>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ */
++
++/* PulseAudio backend.
++ *
++ * FEATURES:
++ *
++ * Does not autostart a PulseAudio server, but uses an already-started
++ * one, which should be better than alsa-through-pulse.
++ *
++ * Supports control of either our stream's or our entire sink's volume
++ * while we are actually playing. Volume control while paused is
++ * intentionally unsupported: the PulseAudio documentation strongly
++ * suggests not passing in an initial volume when creating a stream
++ * (allowing the server to track this instead), and we do not know
++ * which sink to control if we do not have a stream open.
++ *
++ * IMPLEMENTATION:
++ *
++ * Most client-side (resource allocation) errors are fatal. Failure to
++ * create a server context or stream is not fatal (and MOC should cope
++ * with these failures too), but server communication failures later
++ * on are currently not handled (MOC has no great way for us to tell
++ * it we no longer work, and I am not sure if attempting to reconnect
++ * is worth it or even a good idea).
++ *
++ * The pulse "simple" API is too simple: it combines connecting to the
++ * server and opening a stream into one operation, while I want to
++ * connect to the server when MOC starts (and fall back to a different
++ * backend if there is no server), and I cannot open a stream at that
++ * time since I do not know the audio format yet.
++ *
++ * PulseAudio strongly recommends we use a high-latency connection,
++ * which the MOC frontend code might not expect from its audio
++ * backend. We'll see.
++ *
++ * We map MOC's percentage volumes linearly to pulse's PA_VOLUME_MUTED
++ * (0) .. PA_VOLUME_NORM range. This is what the PulseAudio docs recommend
++ * ( http://pulseaudio.org/wiki/WritingVolumeControlUIs ). It does mean
++ * PulseAudio volumes above PA_VOLUME_NORM do not work well with MOC.
++ *
++ * Comments in audio.h claim "All functions are executed only by one
++ * thread" (referring to the function in the hw_funcs struct). This is
++ * a blatant lie. Most of them are invoked off the "output buffer"
++ * thread (out_buf.c) but at least the "playing" thread (audio.c)
++ * calls audio_close which calls our close function. We can mostly
++ * ignore this problem because we serialize on the pulseaudio threaded
++ * mainloop lock. But it does mean that functions that are normally
++ * only called between open and close (like reset) are sometimes
++ * called without us having a stream. Bulletproof, therefore:
++ * serialize setting/unsetting our global stream using the threaded
++ * mainloop lock, and check for that stream being non-null before
++ * using it.
++ *
++ * I am not convinced there are no further dragons lurking here: can
++ * the "playing" thread(s) close and reopen our output stream while
++ * the "output buffer" thread is sending output there? We can bail if
++ * our stream is simply closed, but we do not currently detect it
++ * being reopened and no longer using the same sample format, which
++ * might have interesting results...
++ *
++ * Also, read_mixer is called from the main server thread (handling
++ * commands). This crashed me once when it got at a stream that was in
++ * the "creating" state and therefore did not have a valid stream
++ * index yet. Fixed by only assigning to the stream global when the
++ * stream is valid.
++ */
++
++#ifdef HAVE_CONFIG_H
++# include "config.h"
++#endif
++
++#define DEBUG
++
++#include <pulse/pulseaudio.h>
++#include "common.h"
++#include "log.h"
++#include "audio.h"
++
++
++/* The pulse mainloop and context are initialized in pulse_init and
++ * destroyed in pulse_shutdown.
++ */
++static pa_threaded_mainloop *mainloop = NULL;
++static pa_context *context = NULL;
++
++/* The stream is initialized in pulse_open and destroyed in pulse_close. */
++static pa_stream *stream = NULL;
++
++static int showing_sink_volume = 0;
++
++/* Callbacks that do nothing but wake up the mainloop. */
++
++static void context_state_callback (pa_context *context ATTR_UNUSED,
++				    void *userdata)
++{
++	pa_threaded_mainloop *m = userdata;
++
++	pa_threaded_mainloop_signal (m, 0);
++}
++
++static void stream_state_callback (pa_stream *stream ATTR_UNUSED,
++				   void *userdata)
++{
++	pa_threaded_mainloop *m = userdata;
++
++	pa_threaded_mainloop_signal (m, 0);
++}
++
++static void stream_write_callback (pa_stream *stream ATTR_UNUSED,
++				   size_t nbytes ATTR_UNUSED, void *userdata)
++{
++	pa_threaded_mainloop *m = userdata;
++
++	pa_threaded_mainloop_signal (m, 0);
++}
++
++/* Initialize pulse mainloop and context. Failure to connect to the
++ * pulse daemon is nonfatal, everything else is fatal (as it
++ * presumably means we ran out of resources).
++ */
++static int pulse_init (struct output_driver_caps *caps)
++{
++	pa_context *c;
++	pa_proplist *proplist;
++
++	assert (!mainloop);
++	assert (!context);
++
++	mainloop = pa_threaded_mainloop_new ();
++	if (!mainloop)
++		fatal ("Cannot create PulseAudio mainloop");
++
++	if (pa_threaded_mainloop_start (mainloop) < 0)
++		fatal ("Cannot start PulseAudio mainloop");
++
++	/* TODO: possibly add more props.
++	 *
++	 * There are a few we could set in proplist.h but nothing I
++	 * expect to be very useful.
++	 *
++	 * http://pulseaudio.org/wiki/ApplicationProperties recommends
++	 * setting at least application.name, icon.name and media.role.
++	 *
++	 * No need to set application.name here, the name passed to
++	 * pa_context_new_with_proplist overrides it.
++	 */
++	proplist = pa_proplist_new ();
++	if (!proplist)
++		fatal ("Cannot allocate PulseAudio proplist");
++
++	pa_proplist_sets (proplist,
++			  PA_PROP_APPLICATION_VERSION, PACKAGE_VERSION);
++	pa_proplist_sets (proplist, PA_PROP_MEDIA_ROLE, "music");
++	pa_proplist_sets (proplist, PA_PROP_APPLICATION_ID, "net.daper.moc");
++
++	pa_threaded_mainloop_lock (mainloop);
++
++	c = pa_context_new_with_proplist (
++		pa_threaded_mainloop_get_api (mainloop),
++		PACKAGE_NAME, proplist);
++	pa_proplist_free (proplist);
++
++	if (!c)
++		fatal ("Cannot allocate PulseAudio context");
++
++	pa_context_set_state_callback (c, context_state_callback, mainloop);
++
++	/* Ignore return value, rely on state being set properly */
++	pa_context_connect (c, NULL, PA_CONTEXT_NOAUTOSPAWN, NULL);
++
++	while (1) {
++		pa_context_state_t state = pa_context_get_state (c);
++
++		if (state == PA_CONTEXT_READY)
++			break;
++
++		if (!PA_CONTEXT_IS_GOOD (state)) {
++			error ("PulseAudio connection failed: %s",
++			       pa_strerror (pa_context_errno (c)));
++
++			goto unlock_and_fail;
++		}
++
++		debug ("waiting for context to become ready...");
++		pa_threaded_mainloop_wait (mainloop);
++	}
++
++	/* Only set the global now that the context is actually ready */
++	context = c;
++
++	pa_threaded_mainloop_unlock (mainloop);
++
++	/* We just make up the hardware capabilities, since pulse is
++	 * supposed to be abstracting these out. Assume pulse will
++	 * deal with anything we want to throw at it, and that we will
++	 * only want mono or stereo audio.
++	 */
++	caps->min_channels = 1;
++	caps->max_channels = 2;
++	caps->formats = (SFMT_S8 | SFMT_S16 | SFMT_S32 |
++			 SFMT_FLOAT | SFMT_BE | SFMT_LE);
++
++	return 1;
++
++unlock_and_fail:
++
++	pa_context_unref (c);
++
++	pa_threaded_mainloop_unlock (mainloop);
++
++	pa_threaded_mainloop_stop (mainloop);
++	pa_threaded_mainloop_free (mainloop);
++	mainloop = NULL;
++
++	return 0;
++}
++
++static void pulse_shutdown (void)
++{
++	pa_threaded_mainloop_lock (mainloop);
++
++	pa_context_disconnect (context);
++	pa_context_unref (context);
++	context = NULL;
++
++	pa_threaded_mainloop_unlock (mainloop);
++
++	pa_threaded_mainloop_stop (mainloop);
++	pa_threaded_mainloop_free (mainloop);
++	mainloop = NULL;
++}
++
++static int pulse_open (struct sound_params *sound_params)
++{
++	pa_sample_spec ss;
++	pa_buffer_attr ba;
++	pa_stream *s;
++
++	assert (!stream);
++	/* Initialize everything to -1, which in practice gets us
++	 * about 2 seconds of latency (which is fine). This is not the
++	 * same as passing NULL for this struct, which gets us an
++	 * unnecessarily short alsa-like latency.
++	 */
++	ba.fragsize = (uint32_t) -1;
++	ba.tlength = (uint32_t) -1;
++	ba.prebuf = (uint32_t) -1;
++	ba.minreq = (uint32_t) -1;
++	ba.maxlength = (uint32_t) -1;
++
++	ss.channels = sound_params->channels;
++	ss.rate = sound_params->rate;
++	switch (sound_params->fmt) {
++	case SFMT_U8:
++		ss.format = PA_SAMPLE_U8;
++		break;
++	case SFMT_S16 | SFMT_LE:
++		ss.format = PA_SAMPLE_S16LE;
++		break;
++	case SFMT_S16 | SFMT_BE:
++		ss.format = PA_SAMPLE_S16BE;
++		break;
++	case SFMT_FLOAT | SFMT_LE:
++		ss.format = PA_SAMPLE_FLOAT32LE;
++		break;
++	case SFMT_FLOAT | SFMT_BE:
++		ss.format = PA_SAMPLE_FLOAT32BE;
++		break;
++	case SFMT_S32 | SFMT_LE:
++		ss.format = PA_SAMPLE_S32LE;
++		break;
++	case SFMT_S32 | SFMT_BE:
++		ss.format = PA_SAMPLE_S32BE;
++		break;
++
++	default:
++		fatal ("pulse: got unrequested format");
++	}
++
++	debug ("opening stream");
++
++	pa_threaded_mainloop_lock (mainloop);
++
++	/* TODO: figure out if there are useful stream properties to set.
++	 *
++	 * I do not really see any in proplist.h that we can set from
++	 * here (there are media title/artist/etc props but we do not
++	 * have that data available here).
++	 */
++	s = pa_stream_new (context, "music", &ss, NULL);
++	if (!s)
++		fatal ("pulse: stream allocation failed");
++
++	pa_stream_set_state_callback (s, stream_state_callback, mainloop);
++	pa_stream_set_write_callback (s, stream_write_callback, mainloop);
++
++	/* Ignore return value, rely on failed stream state instead. */
++	pa_stream_connect_playback (
++		s, NULL, &ba,
++		PA_STREAM_INTERPOLATE_TIMING |
++		PA_STREAM_AUTO_TIMING_UPDATE |
++		PA_STREAM_ADJUST_LATENCY,
++		NULL, NULL);
++
++	while (1) {
++		pa_stream_state_t state = pa_stream_get_state (s);
++
++		if (state == PA_STREAM_READY)
++			break;
++
++		if (!PA_STREAM_IS_GOOD (state)) {
++			error ("PulseAudio stream connection failed");
++
++			goto fail;
++		}
++
++		debug ("waiting for stream to become ready...");
++		pa_threaded_mainloop_wait (mainloop);
++	}
++
++	/* Only set the global stream now that it is actually ready */
++	stream = s;
++
++	pa_threaded_mainloop_unlock (mainloop);
++
++	return 1;
++
++fail:
++	pa_stream_unref (s);
++
++	pa_threaded_mainloop_unlock (mainloop);
++	return 0;
++}
++
++static void pulse_close (void)
++{
++	debug ("closing stream");
++
++	pa_threaded_mainloop_lock (mainloop);
++
++	pa_stream_disconnect (stream);
++	pa_stream_unref (stream);
++	stream = NULL;
++
++	pa_threaded_mainloop_unlock (mainloop);
++}
++
++static int pulse_play (const char *buff, const size_t size)
++{
++	size_t offset = 0;
++
++	debug ("Got %d bytes to play", (int)size);
++
++	pa_threaded_mainloop_lock (mainloop);
++
++	/* The buffer is usually writable when we get here, and there
++	 * are usually few (if any) writes after the first one. So
++	 * there is no point in doing further writes directly from the
++	 * callback: we can just do all writes from this thread.
++	 */
++
++	/* Break out of the loop if some other thread manages to close
++	 * our stream underneath us.
++	 */
++	while (stream) {
++		size_t towrite = MIN(pa_stream_writable_size (stream),
++				     size - offset);
++		debug ("writing %d bytes", (int)towrite);
++
++		/* We have no working way of dealing with errors
++		 * (see below). */
++		if (pa_stream_write(stream, buff + offset, towrite,
++				    NULL, 0, PA_SEEK_RELATIVE))
++			error ("pa_stream_write failed");
++
++		offset += towrite;
++
++		if (offset >= size)
++			break;
++
++		pa_threaded_mainloop_wait (mainloop);
++	}
++
++	pa_threaded_mainloop_unlock (mainloop);
++
++	debug ("Done playing!");
++
++	/* We should always return size, calling code does not deal
++	 * well with anything else. Only read the rest if you want to
++	 * know why.
++	 *
++	 * The output buffer reader thread (out_buf.c:read_thread)
++	 * repeatedly loads some 64k/0.1s of audio into a buffer on
++	 * the stack, then calls audio_send_pcm repeatedly until this
++	 * entire buffer has been processed (similar to the loop in
++	 * this function). audio_send_pcm applies the softmixer and
++	 * equalizer, then feeds the result to this function, passing
++	 * through our return value.
++	 *
++	 * So if we return less than size the equalizer/softmixer is
++	 * re-applied to the remaining data, which is silly. Also,
++	 * audio_send_pcm checks for our return value being zero and
++	 * calls fatal() if it is, so try to always process *some*
++	 * data. Also, out_buf.c uses the return value of this
++	 * function from the last run through its inner loop to update
++	 * its time attribute, which means it will be interestingly
++	 * off if that loop ran more than once.
++	 *
++	 * Oh, and alsa.c seems to think it can return -1 to indicate
++	 * failure, which will cause out_buf.c to rewind its buffer
++	 * (to before its start, usually).
++	 */
++	return size;
++}
++
++static void volume_cb (const pa_cvolume *v, void *userdata)
++{
++	int *result = userdata;
++
++	if (v)
++		*result = 100 * pa_cvolume_avg (v) / PA_VOLUME_NORM;
++
++	pa_threaded_mainloop_signal (mainloop, 0);
++}
++
++static void sink_volume_cb (pa_context *c ATTR_UNUSED,
++			    const pa_sink_info *i, int eol ATTR_UNUSED,
++			    void *userdata)
++{
++	volume_cb (i ? &i->volume : NULL, userdata);
++}
++
++static void sink_input_volume_cb (pa_context *c ATTR_UNUSED,
++				  const pa_sink_input_info *i,
++				  int eol ATTR_UNUSED,
++				  void *userdata ATTR_UNUSED)
++{
++	volume_cb (i ? &i->volume : NULL, userdata);
++}
++
++static int pulse_read_mixer (void)
++{
++	pa_operation *op;
++	int result = 0;
++
++	debug ("read mixer");
++
++	pa_threaded_mainloop_lock (mainloop);
++
++	if (stream) {
++		if (showing_sink_volume)
++			op = pa_context_get_sink_info_by_index (
++				context, pa_stream_get_device_index (stream),
++				sink_volume_cb, &result);
++		else
++			op = pa_context_get_sink_input_info (
++				context, pa_stream_get_index (stream),
++				sink_input_volume_cb, &result);
++
++		while (pa_operation_get_state (op) == PA_OPERATION_RUNNING)
++			pa_threaded_mainloop_wait (mainloop);
++
++		pa_operation_unref (op);
++	}
++
++	pa_threaded_mainloop_unlock (mainloop);
++
++	return result;
++}
++
++static void pulse_set_mixer (int vol)
++{
++	pa_cvolume v;
++	pa_operation *op;
++
++	/* Setting volume for one channel does the right thing. */
++	pa_cvolume_set(&v, 1, vol * PA_VOLUME_NORM / 100);
++
++	pa_threaded_mainloop_lock (mainloop);
++
++	if (stream) {
++		if (showing_sink_volume)
++			op = pa_context_set_sink_volume_by_index (
++				context, pa_stream_get_device_index (stream),
++				&v, NULL, NULL);
++		else
++			op = pa_context_set_sink_input_volume (
++				context, pa_stream_get_index (stream),
++				&v, NULL, NULL);
++
++		pa_operation_unref (op);
++	}
++
++	pa_threaded_mainloop_unlock (mainloop);
++}
++
++static int pulse_get_buff_fill (void)
++{
++	/* This function is problematic. MOC uses it to for the "time
++	 * remaining" in the UI, but calls it more than once per
++	 * second (after each chunk of audio played, not for each
++	 * playback time update). We have to be fairly accurate here
++	 * for that time remaining to not jump weirdly. But PulseAudio
++	 * cannot give us a 100% accurate value here, as it involves a
++	 * server roundtrip. And if we call this a lot it suggests
++	 * switching to a mode where the value is interpolated, making
++	 * it presumably more inaccurate (see the flags we pass to
++	 * pa_stream_connect_playback).
++	 *
++	 * MOC also contains what I believe to be a race: it calls
++	 * audio_get_buff_fill "soon" (after playing the first chunk)
++	 * after starting playback of the next song, at which point we
++	 * still have part of the previous song buffered. This means
++	 * our position into the new song is negative, which fails an
++	 * assert (in out_buf.c:out_buf_time_get). There is no sane
++	 * way for us to detect this condition. I believe no other
++	 * backend triggers this because the assert sits after an
++	 * implicit float -> int seconds conversion, which means we
++	 * have to be off by at least an entire second to get a
++	 * negative value, and none of the other backends have buffers
++	 * that large (alsa buffers are supposedly a few 100 ms).
++	 */
++	pa_usec_t buffered_usecs = 0;
++	int buffered_bytes = 0;
++
++	pa_threaded_mainloop_lock (mainloop);
++
++	/* Using pa_stream_get_timing_info and returning the distance
++	 * between write_index and read_index would be more obvious,
++	 * but because of how the result is actually used I believe
++	 * using the latency value is slightly more correct, and it
++	 * makes the following crash-avoidance hack more obvious.
++	 */
++
++	/* This function will frequently fail the first time we call
++	 * it (pulse does not have the requested data yet). We ignore
++	 * that and just return 0.
++	 *
++	 * Deal with stream being NULL too, just in case this is
++	 * called in a racy fashion similar to how reset() is.
++	 */
++	if (stream &&
++	    pa_stream_get_latency (stream, &buffered_usecs, NULL) >= 0) {
++		/* Crash-avoidance HACK: floor our latency to at most
++		 * 1 second. It is usually more, but reporting that at
++		 * the start of playback crashes MOC, and we cannot
++		 * sanely detect when reporting it is safe.
++		 */
++		if (buffered_usecs > 1000000)
++			buffered_usecs = 1000000;
++
++		buffered_bytes = pa_usec_to_bytes (
++			buffered_usecs,
++			pa_stream_get_sample_spec (stream));
++	}
++
++	pa_threaded_mainloop_unlock (mainloop);
++
++	debug ("buffer fill: %d usec / %d bytes",
++	       (int) buffered_usecs, (int) buffered_bytes);
++
++	return buffered_bytes;
++}
++
++static void flush_callback (pa_stream *s ATTR_UNUSED, int success,
++			    void *userdata)
++{
++	int *result = userdata;
++
++	*result = success;
++
++	pa_threaded_mainloop_signal (mainloop, 0);
++}
++
++static int pulse_reset (void)
++{
++	pa_operation *op;
++	int result = 0;
++
++	debug ("reset requested");
++
++	pa_threaded_mainloop_lock (mainloop);
++
++	/* We *should* have a stream here, but MOC is racy, so bulletproof */
++	if (stream) {
++		op = pa_stream_flush (stream, flush_callback, &result);
++
++		while (pa_operation_get_state (op) == PA_OPERATION_RUNNING)
++			pa_threaded_mainloop_wait (mainloop);
++
++		pa_operation_unref (op);
++	} else
++		logit ("pulse_reset() called without a stream");
++
++	pa_threaded_mainloop_unlock (mainloop);
++
++	return result;
++}
++
++static int pulse_get_rate (void)
++{
++	/* This is called once right after open. Do not bother making
++	 * this fast. */
++
++	int result;
++
++	pa_threaded_mainloop_lock (mainloop);
++
++	if (stream)
++		result = pa_stream_get_sample_spec (stream)->rate;
++	else {
++		error ("get_rate called without a stream");
++		result = 0;
++	}
++
++	pa_threaded_mainloop_unlock (mainloop);
++
++	return result;
++}
++
++static void pulse_toggle_mixer_channel (void)
++{
++	showing_sink_volume = !showing_sink_volume;
++}
++
++static void sink_name_cb (pa_context *c ATTR_UNUSED,
++			  const pa_sink_info *i, int eol ATTR_UNUSED,
++			  void *userdata)
++{
++	char **result = userdata;
++
++	if (i && !*result)
++		*result = xstrdup (i->name);
++
++	pa_threaded_mainloop_signal (mainloop, 0);
++}
++
++static void sink_input_name_cb (pa_context *c ATTR_UNUSED,
++				const pa_sink_input_info *i,
++				int eol ATTR_UNUSED,
++				void *userdata)
++{
++	char **result = userdata;
++
++	if (i && !*result)
++		*result = xstrdup (i->name);
++
++	pa_threaded_mainloop_signal (mainloop, 0);
++}
++
++static char *pulse_get_mixer_channel_name (void)
++{
++	char *result = NULL;
++	pa_operation *op;
++
++	pa_threaded_mainloop_lock (mainloop);
++
++	if (stream) {
++		if (showing_sink_volume)
++			op = pa_context_get_sink_info_by_index (
++				context, pa_stream_get_device_index (stream),
++				sink_name_cb, &result);
++		else
++			op = pa_context_get_sink_input_info (
++				context, pa_stream_get_index (stream),
++				sink_input_name_cb, &result);
++
++		while (pa_operation_get_state (op) == PA_OPERATION_RUNNING)
++			pa_threaded_mainloop_wait (mainloop);
++
++		pa_operation_unref (op);
++	}
++
++	pa_threaded_mainloop_unlock (mainloop);
++
++	if (!result)
++		result = xstrdup ("disconnected");
++
++	return result;
++}
++
++void pulse_funcs (struct hw_funcs *funcs)
++{
++	funcs->init = pulse_init;
++	funcs->shutdown = pulse_shutdown;
++	funcs->open = pulse_open;
++	funcs->close = pulse_close;
++	funcs->play = pulse_play;
++	funcs->read_mixer = pulse_read_mixer;
++	funcs->set_mixer = pulse_set_mixer;
++	funcs->get_buff_fill = pulse_get_buff_fill;
++	funcs->reset = pulse_reset;
++	funcs->get_rate = pulse_get_rate;
++	funcs->toggle_mixer_channel = pulse_toggle_mixer_channel;
++	funcs->get_mixer_channel_name = pulse_get_mixer_channel_name;
++}
+diff --git a/pulse.h b/pulse.h
+new file mode 100644
+--- /dev/null
++++ b/pulse.h
+@@ -0,0 +1,14 @@
++#ifndef PULSE_H
++#define PULSE_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void pulse_funcs (struct hw_funcs *funcs);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
diff --git a/nixpkgs/pkgs/applications/audio/renoise/default.nix b/nixpkgs/pkgs/applications/audio/renoise/default.nix
index 081c4ab41acb..ddbefd129ffe 100644
--- a/nixpkgs/pkgs/applications/audio/renoise/default.nix
+++ b/nixpkgs/pkgs/applications/audio/renoise/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   src =
     if stdenv.hostPlatform.system == "x86_64-linux" then
-        if builtins.isNull releasePath then
+        if releasePath == null then
         fetchurl {
           url = "https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_x86_64.tar.bz2";
           sha256 = "0pan68fr22xbj7a930y29527vpry3f07q3i9ya4fp6g7aawffsga";
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
         else
         releasePath
     else if stdenv.hostPlatform.system == "i686-linux" then
-        if builtins.isNull releasePath then
+        if releasePath == null then
         fetchurl {
           url = "http://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_x86.tar.bz2";
           sha256 = "1lccjj4k8hpqqxxham5v01v2rdwmx3c5kgy1p9lqvzqma88k4769";
diff --git a/nixpkgs/pkgs/applications/audio/sfxr/default.nix b/nixpkgs/pkgs/applications/audio/sfxr/default.nix
new file mode 100644
index 000000000000..fbd0f3c5def3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sfxr/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, fetchurl
+, pkgconfig
+, desktop-file-utils
+, SDL
+, gtk3
+, gsettings-desktop-schemas
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sfxr";
+  version = "1.2.1";
+
+  src = fetchurl {
+    url = "http://www.drpetter.se/files/sfxr-sdl-${version}.tar.gz";
+    sha256 = "0dfqgid6wzzyyhc0ha94prxax59wx79hqr25r6if6by9cj4vx4ya";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile --replace "usr/" ""
+    substituteInPlace sdlkit.h --replace \
+      "/usr/share/sfxr/sfxr.bmp" \
+      "$out/share/sfxr/sfxr.bmp"
+    substituteInPlace main.cpp \
+      --replace \
+      "/usr/share/sfxr/font.tga" \
+      "$out/share/sfxr/font.tga" \
+      --replace \
+      "/usr/share/sfxr/ld48.tga" \
+      "$out/share/sfxr/ld48.tga"
+  '';
+
+  nativeBuildInputs = [
+    pkgconfig
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    SDL
+    gtk3
+    gsettings-desktop-schemas
+    wrapGAppsHook
+  ];
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.drpetter.se/project_sfxr.html";
+    description = "A videogame sound effect generator";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
index 85687090721d..61d65cb64b6b 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
@@ -9,7 +9,7 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "lightdm";
-  version = "1.28.0";
+  version = "1.30.0";
 
   outputs = [ "out" "dev" ];
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "CanonicalLtd";
     repo = pname;
     rev = version;
-    sha256 = "1mmqy1jdvgc0h0h9gli7n4vdv5p8m5019qjr5ni4h73iz6mjdj2b";
+    sha256 = "0i1yygmjbkdjnqdl9jn8zsa1mfs2l19qc4k2capd8q1ndhnjm2dx";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/editors/android-studio/default.nix b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
index 8af0a6475613..af5adca20ed8 100644
--- a/nixpkgs/pkgs/applications/editors/android-studio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
@@ -8,15 +8,15 @@ let
     inherit (gnome2) GConf gnome_vfs;
   };
   stableVersion = {
-    version = "3.4.0.18"; # "Android Studio 3.4.0"
-    build = "183.5452501";
-    sha256Hash = "0i8wz9v6nxzr27a07cv2330i84v94pcl13gjwvpglp55hyzd8axd";
+    version = "3.4.1.0"; # "Android Studio 3.4.1"
+    build = "183.5522156";
+    sha256Hash = "0y4l9d1yrvv1csx6vl4jnqgqy96y44rl6p8hcxrnbvrg61iqnj30";
   };
   betaVersion = latestVersion;
   latestVersion = { # canary & dev
-    version = "3.5.0.13"; # "Android Studio 3.5 Beta 1"
-    build = "191.5529924";
-    sha256Hash = "0i710n2wr0a8lvxf1mg6a5pmdh1l72wa0hwyricyixi0mylwwc6l";
+    version = "3.5.0.14"; # "Android Studio 3.5 Beta 2"
+    build = "191.5549111";
+    sha256Hash = "1zy2x0m1nsx3yy64cp1jvgb9aqkribwm64mv50g9355sdz7qjhcf";
   };
 in rec {
   # Attributes are named by their corresponding release channels
diff --git a/nixpkgs/pkgs/applications/editors/neovim/default.nix b/nixpkgs/pkgs/applications/editors/neovim/default.nix
index a53c499fe5c2..5d623cdfc6db 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/default.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/default.nix
@@ -80,6 +80,7 @@ in
       "-DGPERF_PRG=${gperf}/bin/gperf"
     ]
     ++ optional doCheck "-DBUSTED_PRG=${neovimLuaEnv}/bin/busted"
+    ++ optional (!lua.pkgs.isLuaJIT) "-DPREFER_LUA=ON"
     ;
 
     # triggers on buffer overflow bug while running tests
@@ -122,8 +123,5 @@ in
       license = with licenses; [ asl20 vim ];
       maintainers = with maintainers; [ manveru garbas rvolosatovs ];
       platforms   = platforms.unix;
-      # `lua: bad light userdata pointer`
-      # https://nix-cache.s3.amazonaws.com/log/9ahcb52905d9d417zsskjpc331iailpq-neovim-unwrapped-0.2.2.drv
-      broken = stdenv.isAarch64;
     };
   }
diff --git a/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix b/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix
index ebceb4a8b352..b8fef39d3ea2 100644
--- a/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix
+++ b/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix
@@ -12,8 +12,8 @@ in
     } {};
 
     sublime3 = common {
-      buildVersion = "3200";
-      x32sha256 = "01krmbji8z62x4kl1hf3c1nfj4c4n4xmg1df62ljiwhkcfm74izr";
-      x64sha256 = "1gagc50fqb0d2bszi8m5spzb64shkaylvrwl6fxah55xcmy2kmdr";
+      buildVersion = "3207";
+      x32sha256 = "14hfb8x8zb49zjq0pd8s73xk333gmf38h5b7g979czcmbhdxiyqy";
+      x64sha256 = "1i1q9592sc8idvlpygksdkclh7h506hsz5l0i02g1814w0flzdmc";
     } {};
   }
diff --git a/nixpkgs/pkgs/applications/editors/tiled/default.nix b/nixpkgs/pkgs/applications/editors/tiled/default.nix
index 1cfb04b7b2ef..4fa93d78235e 100644
--- a/nixpkgs/pkgs/applications/editors/tiled/default.nix
+++ b/nixpkgs/pkgs/applications/editors/tiled/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tiled";
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = "bjorn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zsfhw539zwyf5qfnirzkkgy5bmrrs2cry4gimrhpky9fjlaa9h8";
+    sha256 = "18a0pkq8j20v1njrl0sswm0ch10c6c4fas7q9kk2d2fd610ga6gh";
   };
 
   nativeBuildInputs = [ pkgconfig qmake ];
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
index 714a1f921d62..1787b1d9e7fc 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -3,7 +3,7 @@
 # preferences -> Folders -> Plug-ins
 # same applies for the scripts
 
-{ pkgs, gimp }:
+{ config, pkgs, gimp }:
 let
   inherit (pkgs) stdenv fetchurl pkgconfig intltool glib fetchFromGitHub;
   inherit (gimp) targetPluginDir targetScriptDir;
@@ -35,7 +35,8 @@ let
   };
 
 in
-rec {
+
+stdenv.lib.makeScope pkgs.newScope (self: with self; {
   gap = pluginDerivation {
     /* menu:
        Video
@@ -90,32 +91,15 @@ rec {
     meta.broken = true;
   };
 
-  resynthesizer = pluginDerivation {
+  resynthesizer = pluginDerivation rec {
     /* menu:
-      Filters/Map/Resynthesize
-      Filters/Enhance/Smart enlarge
-      Filters/Enhance/Smart sharpen
-      Filters/Enhance/Smart remove selection
-    */
-    name = "resynthesizer-0.16";
-    buildInputs = with pkgs; [ fftw ];
-    src = fetchurl {
-      url = http://www.logarithmic.net/pfh-files/resynthesizer/resynthesizer-0.16.tar.gz;
-      sha256 = "1k90a1jzswxmajn56rdxa4r60v9v34fmqsiwfdxqcvx3yf4yq96x";
-    };
-
-    installPhase = "
-      installPlugins resynth
-      installScripts smart-{enlarge,remove}.scm
-    ";
-  };
-
-  resynthesizer2 = pluginDerivation rec {
-    /* menu:
-      Filters/Map/Resynthesize
-      Filters/Enhance/Smart enlarge
-      Filters/Enhance/Smart sharpen
-      Filters/Enhance/Smart remove selection
+      Edit/Fill with pattern seamless...
+      Filters/Enhance/Heal selection...
+      Filters/Enhance/Heal transparency...
+      Filters/Enhance/Sharpen by synthesis...
+      Filters/Enhance/Uncrop...
+      Filters/Map/Style...
+      Filters/Render/Texture...
     */
     pname = "resynthesizer";
     version = "2.0.3";
@@ -243,4 +227,8 @@ rec {
   };
   */
 
-}
+} // stdenv.lib.optionalAttrs (config.allowAliases or true) {
+
+  resynthesizer2 = resynthesizer;
+
+})
diff --git a/nixpkgs/pkgs/applications/misc/buku/default.nix b/nixpkgs/pkgs/applications/misc/buku/default.nix
index bde8fab81441..9822a187b9e8 100644
--- a/nixpkgs/pkgs/applications/misc/buku/default.nix
+++ b/nixpkgs/pkgs/applications/misc/buku/default.nix
@@ -1,14 +1,14 @@
 { stdenv, python3, fetchFromGitHub, fetchpatch }:
 
 with python3.pkgs; buildPythonApplication rec {
-  version = "4.1";
+  version = "4.2";
   pname = "buku";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = "buku";
     rev = "v${version}";
-    sha256 = "166l1fmpqn4hys4l0ssc4yd590mmav1w62vm9l5ijhjhmlnrzfax";
+    sha256 = "1ipvhd9wa4iq0763b9h4f3xa6x31bssi6m0595w97mdhh9n6bgxg";
   };
 
   checkInputs = [
@@ -18,6 +18,7 @@ with python3.pkgs; buildPythonApplication rec {
     pylint
     flake8
     pyyaml
+    mypy_extensions
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
index 2552cf18f078..fc0c39b13cc9 100644
--- a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   name = "dbeaver-ce-${version}";
-  version = "6.0.3";
+  version = "6.0.4";
 
   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 = "0pcf8p9nmbj6kf32zrjjrfyxb07x37h56zm3s5gdf1jk2hvrarvl";
+    sha256 = "1b3yv91bvwrkln63asn6ybkdhzb8pibz55rr99rv0z8rbmwnbjpn";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/electrum/default.nix b/nixpkgs/pkgs/applications/misc/electrum/default.nix
index 9cabd6dda7c6..2f8b98f3a446 100644
--- a/nixpkgs/pkgs/applications/misc/electrum/default.nix
+++ b/nixpkgs/pkgs/applications/misc/electrum/default.nix
@@ -1,14 +1,27 @@
-{ stdenv, fetchurl, fetchFromGitHub, python3, python3Packages, zbar, secp256k1 }:
+{ stdenv, fetchurl, fetchFromGitHub, python3, python3Packages, zbar, secp256k1
+
+
+# for updater.nix
+, writeScript
+, common-updater-scripts
+, bash
+, coreutils
+, curl
+, gnugrep
+, gnupg
+, gnused
+, nix
+}:
 
 let
-  version = "3.3.5";
+  version = "3.3.6";
 
   # Not provided in official source releases, which are what upstream signs.
   tests = fetchFromGitHub {
     owner = "spesmilo";
     repo = "electrum";
     rev = version;
-    sha256 = "11rzzrv5xxqazcb7q1ig93d6cisqmd1x0jrgvfgzysbzvi51gg11";
+    sha256 = "0s8i6fn1jwk80d036n4c7csv4qnx2k15f6347kr4mllglcpa9hb3";
 
     extraPostFetch = ''
       mv $out ./all
@@ -23,7 +36,7 @@ python3Packages.buildPythonApplication rec {
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "1csj0n96zlajnrs39wsazfj5lmy7v7n77cdz56lr8nkmchh6k9z1";
+    sha256 = "0am5ki3z0yvhrz16vp2jjy5fkxxqph0mj9qqpbw3kpql65shykwz";
   };
 
   postUnpack = ''
@@ -85,6 +98,21 @@ python3Packages.buildPythonApplication rec {
     $out/bin/electrum help >/dev/null
   '';
 
+  passthru.updateScript = import ./update.nix {
+    inherit (stdenv) lib;
+    inherit
+      writeScript
+      common-updater-scripts
+      bash
+      coreutils
+      curl
+      gnupg
+      gnugrep
+      gnused
+      nix
+    ;
+  };
+
   meta = with stdenv.lib; {
     description = "A lightweight Bitcoin wallet";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/misc/electrum/update.nix b/nixpkgs/pkgs/applications/misc/electrum/update.nix
new file mode 100644
index 000000000000..247fabe3891f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/electrum/update.nix
@@ -0,0 +1,59 @@
+{ lib
+, writeScript
+, common-updater-scripts
+, bash
+, coreutils
+, curl
+, gnugrep
+, gnupg
+, gnused
+, nix
+}:
+
+with lib;
+
+let
+  downloadPageUrl = "https://download.electrum.org";
+
+  signingKeys = ["6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6"];
+in
+
+writeScript "update-electrum" ''
+#! ${bash}/bin/bash
+
+set -eu -o pipefail
+
+export PATH=${makeBinPath [
+  common-updater-scripts
+  coreutils
+  curl
+  gnugrep
+  gnupg
+  gnused
+  nix
+]}
+
+version=$(curl -L --list-only -- '${downloadPageUrl}' \
+    | grep -Po '<a href="\K([[:digit:]]+\.?)+' \
+    | sort -Vu \
+    | tail -n1)
+
+srcName=Electrum-$version
+srcFile=$srcName.tar.gz
+srcUrl="${downloadPageUrl}/$version/$srcFile"
+sigUrl=$srcUrl.asc
+sigFile=$srcFile.asc
+
+[[ -e "$srcFile" ]] || curl -L -o "$srcFile" -- "$srcUrl"
+[[ -e "$sigFile" ]] || curl -L -o "$sigFile" -- "$sigUrl"
+
+export GNUPGHOME=$PWD/gnupg
+mkdir -m 700 -p "$GNUPGHOME"
+
+gpg --batch --recv-keys ${concatStringsSep " " (map (x: "'${x}'") signingKeys)}
+gpg --batch --verify "$sigFile" "$srcFile"
+
+sha256=$(nix-prefetch-url --type sha256 "file://$PWD/$srcFile")
+
+update-source-version electrum "$version" "$sha256"
+''
diff --git a/nixpkgs/pkgs/applications/misc/guake/default.nix b/nixpkgs/pkgs/applications/misc/guake/default.nix
index 0d7f460fb062..37352915cb84 100644
--- a/nixpkgs/pkgs/applications/misc/guake/default.nix
+++ b/nixpkgs/pkgs/applications/misc/guake/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, python3, gettext, gobject-introspection, wrapGAppsHook, glibcLocales
-, gtk3, keybinder3, libnotify, libutempter, vte }:
+, gtk3, keybinder3, libnotify, libutempter, vte, libwnck3 }:
 
 let
-  version = "3.5.0";
+  version = "3.6.3";
 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 = "0fz0gciw5fpxrp6yyji27l7q8c0r9ljsq6vw584mr70bcl1gzjqx";
+    sha256 = "13ipnmqcyixpa6qv83m0f91za4kar14s5jpib68b32z65x1h0j3b";
   };
 
   # Strict deps breaks guake
@@ -23,7 +23,7 @@ in python3.pkgs.buildPythonApplication rec {
 
   buildInputs = [ gtk3 keybinder3 libnotify python3 vte ];
 
-  propagatedBuildInputs = with python3.pkgs; [ dbus-python pbr pycairo pygobject3 ];
+  propagatedBuildInputs = with python3.pkgs; [ dbus-python pbr pycairo pygobject3 libwnck3 ];
 
   LC_ALL = "en_US.UTF-8"; # fixes weird encoding error, see https://github.com/NixOS/nixpkgs/pull/38642#issuecomment-379727699
 
diff --git a/nixpkgs/pkgs/applications/misc/lifelines/default.nix b/nixpkgs/pkgs/applications/misc/lifelines/default.nix
new file mode 100644
index 000000000000..7207dea9d522
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/lifelines/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, gettext, libiconv, bison, ncurses, perl, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "lifelines";
+  version = "unstable-2019-05-07";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "43f29285ed46fba322b6a14322771626e6b02c59";
+    sha256 = "1agszzlmkxmznpc1xj0vzxkskrcfagfjvqsdyw1yp5yg6bsq272y";
+  };
+
+  buildInputs = [
+    gettext
+    libiconv
+    ncurses
+    perl
+  ];
+  nativeBuildInputs = [ autoreconfHook bison ];
+
+  meta = with stdenv.lib; {
+    description = "Genealogy tool with ncurses interface";
+    homepage = "https://lifelines.github.io/lifelines/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ disassembler ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/pstree/default.nix b/nixpkgs/pkgs/applications/misc/pstree/default.nix
new file mode 100644
index 000000000000..7aaa8a8c38d2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pstree/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "pstree";
+  version = "2.39";
+
+  src = fetchurl {
+    urls = [
+      "https://distfiles.macports.org/${pname}/${pname}-${version}.tar.gz"
+      "https://fossies.org/linux/misc/${pname}-${version}.tar.gz"
+      "ftp://ftp.thp.uni-duisburg.de/pub/source/${pname}-${version}.tar.gz"
+    ];
+    sha256 = "17s7v15c4gryjpi11y1xq75022nkg4ggzvjlq2dkmyg67ssc76vw";
+  };
+
+  sourceRoot = ".";
+  buildPhase = ''
+    runHook preBuild
+    $CC $NIX_CFLAGS -o pstree pstree.c
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm0555 ${pname} -t $out/bin
+    install -Dm0444 ${pname}.1 -t $out/share/man/man1
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Show the set of running processes as a tree";
+    homepage = "http://www.thp.uni-duisburg.de/pstree/";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.c0bw3b ];
+    platforms = platforms.unix;
+    priority = 5; # Lower than psmisc also providing pstree on Linux platforms
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/termite/default.nix b/nixpkgs/pkgs/applications/misc/termite/default.nix
index 22f669f03294..674b228746d4 100644
--- a/nixpkgs/pkgs/applications/misc/termite/default.nix
+++ b/nixpkgs/pkgs/applications/misc/termite/default.nix
@@ -1,20 +1,26 @@
-{ stdenv, fetchFromGitHub, pkgconfig, vte-ng, gtk3, ncurses, wrapGAppsHook }:
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, vte-ng, gtk3, ncurses, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   name = "termite-${version}";
-  version = "14";
+  version = "15";
 
   src = fetchFromGitHub {
     owner = "thestinger";
     repo = "termite";
     rev = "v${version}";
-    sha256 = "0dmz9rpc2fdvcwhcmjnhb48ixn403gxpq03g334d1hgjw2hsyx7x";
+    sha256 = "0hp1x6lj098m3jgna274wv5dv60lnzg22297di68g4hw9djjyd2k";
     fetchSubmodules = true;
   };
 
   # https://github.com/thestinger/termite/pull/516
   patches = [ ./url_regexp_trailing.patch ./add_errno_header.patch
-              ] ++ stdenv.lib.optional stdenv.isDarwin ./remove_ldflags_macos.patch;
+    # Fix off-by-one in select_text() on libvte >= 0.55.0
+    # Expected to be included in next release (16).
+    (fetchpatch {
+      url = "https://github.com/thestinger/termite/commit/7e9a93b421b9596f8980645a46ac2ad5468dac06.patch";
+      sha256 = "0vph2m5919f7w1xnc8i6z0j44clsm1chxkfg7l71nahxyfw5yh4j";
+    })
+  ] ++ stdenv.lib.optional stdenv.isDarwin ./remove_ldflags_macos.patch;
 
   makeFlags = [ "VERSION=v${version}" "PREFIX=" "DESTDIR=$(out)" ];
 
diff --git a/nixpkgs/pkgs/applications/misc/waybar/default.nix b/nixpkgs/pkgs/applications/misc/waybar/default.nix
index 776ba8f081e3..cdd78866cdcb 100644
--- a/nixpkgs/pkgs/applications/misc/waybar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/waybar/default.nix
@@ -9,13 +9,13 @@
 }:
   stdenv.mkDerivation rec {
     name = "waybar-${version}";
-    version = "0.6.1";
+    version = "0.6.5";
 
     src = fetchFromGitHub {
       owner = "Alexays";
       repo = "Waybar";
       rev = version;
-      sha256 = "1hzwqg22sjiirx6743512271p3jlakrw0155av1phrv5b7p3ws8a";
+      sha256 = "1k3ynx5ssq7ji0nlx0n7zrgrshxv5abj8fa8c5lcyxr2wxffna9z";
     };
 
     nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/xmind/default.nix b/nixpkgs/pkgs/applications/misc/xmind/default.nix
index a12f3dc304ba..fc5abf109894 100644
--- a/nixpkgs/pkgs/applications/misc/xmind/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xmind/default.nix
@@ -1,20 +1,23 @@
-{ stdenv, lib, dpkg, fetchurl, gtk2, jre, libXtst, makeWrapper }:
+{ stdenv, lib, fetchzip, fetchurl, gtk2, jre, libXtst, makeWrapper, makeDesktopItem, runtimeShell }:
 
 stdenv.mkDerivation rec {
   name = "xmind-${version}";
-  version = "7.5-update1";
+  version = "8-update8";
 
-  src = if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
-    url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_i386.deb";
-    sha256 = "04kr6pw0kwy715bp9wcnqnw1k5wl65xa87lhljrskm291p402jy1";
-  } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl {
-    url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_amd64.deb";
-    sha256 = "1j2ynhk7p3m3vd6c4mjwpnlzqgfj5c4q3zydab3nfwncwx6gaqj9";
-  } else throw "platform ${stdenv.hostPlatform.system} not supported!";
+  src = fetchzip {
+    url = "https://xmind.net/xmind/downloads/${name}-linux.zip";
+    stripRoot = false;
+    sha256 = "1p68z0b4brgiyybz190alqv716ncql49vsksm41y90mcjd8s4jhn";
+  };
+
+  srcIcon = fetchurl {
+    url = "https://aur.archlinux.org/cgit/aur.git/plain/xmind.png?h=xmind";
+    sha256 = "0jxq2fiq69q9ly0m6hx2qfybqad22sl42ciw636071khpqgc885f";
+  };
 
-  nativeBuildInputs = [ dpkg makeWrapper ];
+  patches = [ ./java-env-config-fixes.patch ];
 
-  unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
+  nativeBuildInputs = [ makeWrapper ];
 
   dontBuild = true;
   dontPatchELF = true;
@@ -22,12 +25,27 @@ stdenv.mkDerivation rec {
 
   libPath = lib.makeLibraryPath [ gtk2 libXtst ];
 
-  installPhase = ''
-    mkdir -p $out
-    cp -r usr/lib/xmind $out/libexec
-    cp -r usr/bin usr/share $out
-    rm $out/libexec/XMind.ini
-    mv etc/XMind.ini $out/libexec
+  desktopItem = makeDesktopItem {
+    name = "XMind";
+    exec = "XMind";
+    icon = "xmind";
+    desktopName = "XMind";
+    comment = meta.description;
+    categories = "Office;";
+    mimeType = "application/xmind;xscheme-handler/xmind";
+  };
+
+  installPhase = let
+    targetDir = if stdenv.hostPlatform.system == "i686-linux"
+      then "XMind_i386"
+      else "XMind_amd64";
+  in ''
+    mkdir -p $out/{bin,libexec/configuration/,share/{applications/,fonts/,icons/hicolor/scalable/apps/}}
+    cp -r ${targetDir}/{configuration,p2,XMind{,.ini}} $out/libexec
+    cp -r {plugins,features} $out/libexec/
+    cp -r fonts $out/share/fonts/
+    cp "${desktopItem}/share/applications/XMind.desktop" $out/share/applications/XMind.desktop
+    cp ${srcIcon} $out/share/icons/hicolor/scalable/apps/xmind.png
 
     patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
       $out/libexec/XMind
@@ -35,8 +53,17 @@ stdenv.mkDerivation rec {
     wrapProgram $out/libexec/XMind \
       --prefix LD_LIBRARY_PATH : "${libPath}"
 
-    substituteInPlace "$out/bin/XMind" \
-       --replace '/usr/lib/xmind' "$out/libexec"
+    # Inspired by https://aur.archlinux.org/cgit/aur.git/tree/?h=xmind
+    cat >$out/bin/XMind <<EOF
+      #! ${runtimeShell}
+      if [ ! -d "\$HOME/.xmind" ]; then
+        mkdir -p "\$HOME/.xmind/configuration-cathy/"
+        cp -r $out/libexec/configuration/ \$HOME/.xmind/configuration-cathy/
+      fi
+
+      exec "$out/libexec/XMind" "$@"
+    EOF
+    chmod +x $out/bin/XMind
 
     ln -s ${jre} $out/libexec/jre
   '';
@@ -55,9 +82,9 @@ stdenv.mkDerivation rec {
       GTD. Meanwhile, XMind can read FreeMind and MindManager files,
       and save to Evernote.
     '';
-    homepage = http://www.xmind.net/;
+    homepage = https://www.xmind.net/;
     license = licenses.unfree;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ michalrus ];
+    maintainers = with maintainers; [ michalrus ma27 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch b/nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch
new file mode 100644
index 000000000000..f359a9c2ba46
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xmind/java-env-config-fixes.patch
@@ -0,0 +1,40 @@
+diff --git a/XMind_amd64/XMind.ini b/XMind_amd64/XMind.ini
+index bdd8a37..5f35daf 100644
+--- a/XMind_amd64/XMind.ini
++++ b/XMind_amd64/XMind.ini
+@@ -1,11 +1,11 @@
+ -configuration
+-./configuration
++@user.home/.xmind/configuration-cathy_linux_64
+ -data
+-../workspace
++@user.home/.xmind/workspace-cathy
+ -startup
+-../plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
++plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
+ --launcher.library
+-../plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444
++plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444
+ --launcher.defaultAction
+ openFile
+ --launcher.GTK_version
+diff --git a/XMind_i386/XMind.ini b/XMind_i386/XMind.ini
+index 4ed3225..1d74258 100644
+--- a/XMind_i386/XMind.ini
++++ b/XMind_i386/XMind.ini
+@@ -1,11 +1,11 @@
+ -configuration
+-./configuration
++@user.home/.xmind/configuration-cathy_linux_64
+ -data
+-../workspace
++@user.home/.xmind/workspace-cathy
+ -startup
+-../plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
++plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
+ --launcher.library
+-../plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.400.v20160518-1444
++plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.400.v20160518-1444
+ --launcher.defaultAction
+ openFile
+ --launcher.GTK_version
diff --git a/nixpkgs/pkgs/applications/networking/Sylk/default.nix b/nixpkgs/pkgs/applications/networking/Sylk/default.nix
new file mode 100644
index 000000000000..36f6279c2092
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/Sylk/default.nix
@@ -0,0 +1,32 @@
+{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }:
+
+let
+  pname = "Sylk";
+  version = "2.1.0";
+in
+
+appimageTools.wrapType2 rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
+    sha256 = "1ifi8qr6f84dcssxhv5ar1s48nsqxiv2j1blc82248hmq5is24mf";
+  };
+
+  profile = ''
+    export LC_ALL=C.UTF-8
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
+  multiPkgs = null; # no 32bit needed
+  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+  extraInstallCommands = "mv $out/bin/{${name},${pname}}";
+
+  meta = with lib; {
+    description = "Sylk WebRTC client";
+    homepage = "http://sylkserver.com/";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ zimbatm ];
+    platforms = [ "i386-linux" "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
index a910f1d14bdf..430642d83497 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
@@ -1,14 +1,14 @@
 { stdenv, buildGoPackage, fetchurl, fetchFromGitHub, go-bindata }:
 
 let
-  version = "1.4.13";
+  version = "1.5.0";
 
   # TODO: must build the extension instead of downloading it. But since it's
   # literally an asset that is indifferent regardless of the platform, this
   # might be just enough.
   webext = fetchurl {
     url = "https://github.com/browsh-org/browsh/releases/download/v${version}/browsh-${version}-an.fx.xpi";
-    sha256 = "11477z7mva8lwfxsrfxckvgqkxrjhc80czra8cqhpakf0fih1a4g";
+    sha256 = "063m6rcdyf2zcrswkm56k8h3w15124bw5iykklzm60q5jk4ywn3f";
   };
 
 in buildGoPackage rec {
@@ -18,18 +18,19 @@ in buildGoPackage rec {
 
   goPackagePath = "browsh";
 
+  # further go package dependencies are defined in deps.nix, see line below.
   src = fetchFromGitHub {
     owner = "browsh-org";
     repo = "browsh";
     rev = "v${version}";
-    sha256 = "0lvb20zziknlbgy509ccpvlc21sqjc53xar26blmb6sdl6yqkj0w";
+    sha256 = "14addyb1zdk1b9mizfxdagyzlkd9nf5gawnbrs44j5a3ggnl14ln";
   };
 
   buildInputs = [ go-bindata ];
 
   # embed the web extension in a go file and place it where it's supposed to
   # be. See
-  # https://github.com/browsh-org/browsh/blob/9abc3aaa3f575ca6ec9a483408d9fdfcf76300fa/interfacer/contrib/xpi2bin.sh
+  # https://github.com/browsh-org/browsh/blob/v1.5.0/interfacer/contrib/xpi2bin.sh
   preBuild = ''
     xpiprefix="$(mktemp -d)"
     cp "${webext}" "$xpiprefix/browsh.xpi"
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index 6e96cf217f59..0de95c7d6a94 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,18 +1,18 @@
 # This file is autogenerated from update.sh in the same directory.
 {
   beta = {
-    sha256 = "1b5hpf1j7ygvh15p11jswr8qf33b6k7l8nnsda93fya5bkc34mgd";
-    sha256bin64 = "1mwia5l9zz858186m9kj2daq38jw75fipyhh3ncvhkw5hqggx0cd";
-    version = "75.0.3770.18";
+    sha256 = "01sw6ql4fr1zwbw4l4c3xgmd3jqil9lgmpmlhfyj9ga4kp2qlnim";
+    sha256bin64 = "0xwxb54l1ylrckxd36pkzcla34d5hbnhxz3gkrv4id530l6ms6jh";
+    version = "75.0.3770.27";
   };
   dev = {
-    sha256 = "1mmkj89pmbkgf6p7wb1q75j1rsrqcf7wncy3rl03rlhj64b231w7";
-    sha256bin64 = "0mjcdg8las81lyrgyqymsb80k4wwzsib4sw3nyxd3cgrdxgc5vi9";
-    version = "76.0.3783.0";
+    sha256 = "0fq8sjyscz998ha4wnn4npr3bb4jslcjc1i7xgwz6bh4yhi1az4f";
+    sha256bin64 = "1yb6ff6bg662klki7dcrdaysmsnqrnlp8syxcvwl2rysswll3wyl";
+    version = "76.0.3788.1";
   };
   stable = {
-    sha256 = "11m9mlzrqzmz7rhl0ff7lry2s4yjrdkfi36qfv48m1cg5y2cfy6i";
-    sha256bin64 = "034w01k0c84bx33agc2pj8149ff8rfxnsw371ankx0nzhjbn74ln";
-    version = "74.0.3729.131";
+    sha256 = "01ifjsss3nqr15xx2iqsiqgjq1xc07j7ljnapsb484m7dcfk3gnw";
+    sha256bin64 = "0zkv4x4vbra476c6wy4igp6k80r9ssb9632wsyrzjni9w3zk9qvy";
+    version = "74.0.3729.157";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix b/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix
new file mode 100644
index 000000000000..26b3c3ace8bf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, fetchFromGitHub
+, desktop-file-utils
+, gettext
+, glib
+, gtk3
+, hicolor-icon-theme
+, libgee
+, libdazzle
+, meson
+, ninja
+, pantheon
+, pkgconfig
+, python3
+, webkitgtk
+, wrapGAppsHook
+, glib-networking
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ephemeral";
+  version = "5.1.0";
+
+  src = fetchFromGitHub {
+    owner = "cassidyjames";
+    repo = "ephemeral";
+    rev = version;
+    sha256 = "1wfrbbdw429q2mkycn87fhci0jidcsflk5f2lbzfzccbcs8msffz";
+  };
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    gettext
+    meson
+    ninja
+    pantheon.vala
+    pkgconfig
+    python3
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    glib-networking
+    gtk3
+    hicolor-icon-theme
+    libdazzle
+    libgee
+    pantheon.granite
+    webkitgtk
+  ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The always-incognito web browser";
+    homepage = https://github.com/cassidyjames/ephemeral;
+    maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers;
+    platforms = platforms.linux;
+    license = licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
index c1764aa3d5fa..39351512a6a8 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -16,11 +16,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "2.5.1525.41-1";
+  version = "2.5.1525.43-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "0hdyk2f0jwp9rgzkqidksrmbri6lgihlgny6hpksfz132m00lv0b";
+    sha256 = "0mmyl32fz6p43gz8vzkhh0z1wcb3l5cckxl8vkz53lb9k2mckjqi";
   };
 
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix
index cda455d9e56e..2f588cd304d9 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/default.nix
@@ -1,7 +1,7 @@
 { callPackage, stdenv }:
 
 let
-  stableVersion = "2.1.16";
+  stableVersion = "2.1.17";
   previewVersion = "2.2.0a5";
   addVersion = args:
     let version = if args.stable then stableVersion else previewVersion;
@@ -9,8 +9,8 @@ let
     in args // { inherit version branch; };
   mkGui = args: callPackage (import ./gui.nix (addVersion args)) { };
   mkServer = args: callPackage (import ./server.nix (addVersion args)) { };
-  guiSrcHash = "03d7yjdnks568njkrgyh7g6c3vf6v7wkifshz2bcvry79pp2h4nl";
-  serverSrcHash = "0p331aaqxw16kk5l2074qn9a7ih6fkivm05n8da3fwydzp9hjmcp";
+  guiSrcHash = "1caqb644nq0hhszlg3ac87730m1xmw48b17jisqiq7zmk9scsh40";
+  serverSrcHash = "0zyfh5sw8r2n41v0nazgdbr50cz6g5an2myvlgj5xx41smr9gflb";
 in {
   guiStable = mkGui {
     stable = true;
diff --git a/nixpkgs/pkgs/applications/networking/gns3/server.nix b/nixpkgs/pkgs/applications/networking/gns3/server.nix
index 556d341231f6..dcad3027e96b 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/server.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/server.nix
@@ -47,6 +47,8 @@ in python.pkgs.buildPythonPackage {
   postPatch = ''
     # "typing" is only required for Python 3.4 and breaks Python 3.7:
     sed -iE "s/.*typing.*//" requirements.txt
+    # Only 2.x is problematic:
+    sed -iE "s/prompt-toolkit==1.0.15/prompt-toolkit<2.0.0/" requirements.txt
   '';
 
   propagatedBuildInputs = with python.pkgs; [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
index 2d3a10cec5e4..5b3e09440a63 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, fetchurl, pidgin, intltool, libxml2, nss, nspr }:
+{ stdenv, fetchurl, pidgin, intltool, libxml2, gmime, nss }:
 
-let version = "1.23.3"; in
-
-stdenv.mkDerivation {
-  name = "pidgin-sipe-${version}";
+stdenv.mkDerivation rec {
+  pname = "pidgin-sipe";
+  version = "1.24.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz";
-    sha256 = "0aaiblnagncb0lhdwb8qbps6hxxmyfjg7sdi15lrkl98i3fahg4n";
+    url = "mirror://sourceforge/sipe/${pname}-${version}.tar.gz";
+    sha256 = "04cxprz6dbcsc4n2jg72mr1r9630nhrywn0zim9kwvbgps3wdd9c";
   };
 
+  nativeBuildInputs = [ intltool ];
+  buildInputs = [ pidgin gmime libxml2 nss ];
+  enableParallelBuilding = true;
+
+  postInstall = "find $out -ls; ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe";
+
   meta = with stdenv.lib; {
     description = "SIPE plugin for Pidgin IM";
-    homepage = http://sipe.sourceforge.net/;
+    homepage = "http://sipe.sourceforge.net/";
     license = licenses.gpl2;
     platforms = platforms.linux;
   };
-
-  postInstall = "find $out -ls; ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe";
-
-  buildInputs = [ pidgin intltool libxml2 nss nspr ];
-
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 45d0dadbe902..b477a194faf1 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -13,11 +13,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
 let
   inherit (stdenv.lib) concatStringsSep makeBinPath optional;
 
-  version = "2.8.183302.0415";
+  version = "2.8.222599.0519";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
-      sha256 = "07afq614fy09mjymmv3cf8vwa8ps78s2s4909g1a2rwvgkj8bw2x";
+      sha256 = "0bmrqxz41pxcz41dcdbwd2b0hjv8fvix09jwxrnca4d50jq9fx7j";
     };
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix
index 79deab46912b..bc0918737dd5 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix
@@ -10,7 +10,7 @@ let
   alternativeConfig = builtins.toFile "lumail2.lua"
     (builtins.readFile alternativeGlobalConfigFilePath);
 
-  globalConfig = if isNull alternativeGlobalConfigFilePath then ''
+  globalConfig = if alternativeGlobalConfigFilePath == null then ''
     mkdir -p $out/etc/lumail2
     cp global.config.lua $out/etc/lumail2.lua
     for n in ./lib/*.lua; do
diff --git a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
index 7862cc1e6e4f..ad5a35eb251f 100644
--- a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
@@ -20,8 +20,10 @@ stdenv.mkDerivation (rec {
   echo -e '\ninstall:\n\tcp $(FSMONITOR)$(EXEC_EXT) $(INSTALLDIR)' >> src/fsmonitor/linux/Makefile
   '';
 
-  makeFlags = "INSTALLDIR=$(out)/bin/" + (if enableX11 then " UISTYLE=gtk2" else "")
-    + (if ! ocaml.nativeCompilers then " NATIVE=false" else "");
+  makeFlags = [
+    "INSTALLDIR=$(out)/bin/"
+    "UISTYLE=${if enableX11 then "gtk2" else "text"}"
+  ] ++ stdenv.lib.optional (!ocaml.nativeCompilers) "NATIVE=false";
 
   preInstall = "mkdir -p $out/bin";
 
diff --git a/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock b/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock
index f71f4eaa4085..9f2ea82cee05 100644
--- a/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock
@@ -16,4 +16,4 @@ DEPENDENCIES
   timetrap
 
 BUNDLED WITH
-   1.10.6
+   1.17.2
diff --git a/nixpkgs/pkgs/applications/office/timetrap/default.nix b/nixpkgs/pkgs/applications/office/timetrap/default.nix
index 20dd27fa2873..ad0d5c636f36 100644
--- a/nixpkgs/pkgs/applications/office/timetrap/default.nix
+++ b/nixpkgs/pkgs/applications/office/timetrap/default.nix
@@ -1,17 +1,15 @@
-{ lib, bundlerEnv, ruby }:
+{ lib, bundlerApp }:
 
-bundlerEnv rec {
-  name = "timetrap-${version}";
-
-  version = (import gemset).timetrap.version;
-  inherit ruby;
+bundlerApp {
+  pname = "timetrap";
   gemdir = ./.;
-  gemset = ./gemset.nix;
+  exes = [ "timetrap" ];
 
   meta = with lib; {
     description = "A simple command line time tracker written in ruby";
-    homepage = https://github.com/samg/timetrap;
-    license = licenses.mit;
-    maintainers = [ maintainers.jerith666 ];
+    homepage    = https://github.com/samg/timetrap;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ jerith666 manveru ];
+    platforms   = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/timetrap/gemset.nix b/nixpkgs/pkgs/applications/office/timetrap/gemset.nix
index 5764016573fc..1ea489b92c3f 100644
--- a/nixpkgs/pkgs/applications/office/timetrap/gemset.nix
+++ b/nixpkgs/pkgs/applications/office/timetrap/gemset.nix
@@ -1,5 +1,7 @@
 {
   chronic = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
@@ -8,6 +10,8 @@
     version = "0.10.2";
   };
   sequel = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "121z4sq2m4vsgxwy8hs6d12cc1i4xa5rjiv0nbviyj87jldxapw0";
@@ -16,6 +20,8 @@
     version = "4.43.0";
   };
   sqlite3 = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i";
@@ -25,6 +31,8 @@
   };
   timetrap = {
     dependencies = ["chronic" "sequel" "sqlite3"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0ylaz9q99hbxnw6h1df6wphmh68fj847d1l4f9jylcx3nzzp5cyd";
diff --git a/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix b/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix
new file mode 100644
index 000000000000..3464e134ee85
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, argtable }:
+
+stdenv.mkDerivation rec {
+  version = "1.2.4";
+  name = "clustal-omega-${version}";
+
+  src = fetchurl {
+    url = "http://www.clustal.org/omega/${name}.tar.gz";
+    sha256 = "1vm30mzncwdv881vrcwg11vzvrsmwy4wg80j5i0lcfk6dlld50w6";
+  };
+
+  buildInputs = [ argtable ];
+
+  preConfigure = ''
+    for f in configure \
+             src/clustal-omega-config.h \
+             src/clustal-omega-config.h \
+             src/config.h.in \
+             src/mymain.c
+    do
+      sed -i -re 's/argtable2/argtable3/g' $f
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "General purpose multiple sequence alignment program for protein and DNA/RNA";
+    homepage = http://www.clustal.org/omega/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix b/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix
index 35d21848e2b3..274afd5fc3d8 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, which, gfortran, libGLU, xorg } :
 
 stdenv.mkDerivation rec {
-  version = "5.9.5";
+  version = "6.1";
   name = "molden-${version}";
 
   src = fetchurl {
     url = "ftp://ftp.cmbi.ru.nl/pub/molgraph/molden/molden${version}.tar.gz";
-    sha256 = "0va5g03kvnzydx0b77y1p536iy7swzvnx6yknp87qgpw1bgrzdj9";
+    sha256 = "0swbjnqlkwhy8lvjkbx8yklqj4zfphwdg6s3haawxi3dd65ij539";
   };
 
   nativeBuildInputs = [ which ];
diff --git a/nixpkgs/pkgs/applications/science/math/cplex/default.nix b/nixpkgs/pkgs/applications/science/math/cplex/default.nix
index dae5e1b76d35..dc0e9ea1aa5d 100644
--- a/nixpkgs/pkgs/applications/science/math/cplex/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/cplex/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   version = "128";
   
   src =
-    if builtins.isNull releasePath then
+    if releasePath == null then
       throw ''
         This nix expression requires that the cplex installer is already
         downloaded to your machine. Get it from IBM: 
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix
index 18060f342a92..5bb7eda47d5d 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix
@@ -59,7 +59,7 @@ let
 
   # return the names of all dependencies in the transitive closure
   transitiveClosure = dep:
-  if isNull dep then
+  if dep == null then
     # propagatedBuildInputs might contain null
     # (although that might be considered a programming error in the derivation)
     []
diff --git a/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix b/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
index 0b663b2fb63b..554ef695a4ac 100644
--- a/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, perl, python3, boost, valgrind
+{ stdenv, fetchFromGitLab, cmake, perl, python3, boost, valgrind
 # Optional requirements
 # Lua 5.3 needed and not available now
 #, luaSupport ? false, lua5
@@ -17,14 +17,15 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "simgrid-${version}";
-  version = "3.21";
-
-  src = fetchFromGitHub {
-    owner = "simgrid";
-    repo = "simgrid";
-    rev = "v${replaceChars ["."] ["_"] version}";
-    sha256 = "1v0dwlww2wl56ms8lvg5zwffzbmz3sjzpkqc73f714mrc9g02bxs";
+  pname = "simgrid";
+  version = "3.22.2";
+
+  src = fetchFromGitLab {
+    domain = "framagit.org";
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "02zzivp3k7n2yvlr79p9kapzxpxq9x4x7jf2vrkpkwnssv4f9b4p";
   };
 
   nativeBuildInputs = [ cmake perl python3 boost valgrind ]
@@ -52,7 +53,7 @@ stdenv.mkDerivation rec {
   # - lua53:  for enable_lua
   #
   # For more information see:
-  # http://simgrid.gforge.inria.fr/simgrid/latest/doc/install.html#install_cmake_list
+  # https://simgrid.org/doc/3.22/Installing_SimGrid.html#simgrid-compilation-options)
   cmakeFlags= ''
     -Denable_documentation=${optionOnOff buildDocumentation}
     -Denable_java=${optionOnOff buildJavaBindings}
@@ -84,12 +85,11 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  checkPhase = ''
-    runHook preCheck
-
-    ctest -j $NIX_BUILD_CORES --output-on-failure -E smpi-replay-multiple
-
-    runHook postCheck
+  # Prevent the execution of tests known to fail.
+  preCheck = ''
+    cat <<EOW >CTestCustom.cmake
+    SET(CTEST_CUSTOM_TESTS_IGNORE smpi-replay-multiple)
+    EOW
   '';
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
index 35e9c17438f7..cea588f76ca2 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, git, makeWrapper, openssl }:
+{ stdenv, fetchFromGitHub, git, makeWrapper, openssl, coreutils, utillinux, gnugrep, gnused, gawk }:
 
 stdenv.mkDerivation rec {
   name = "transcrypt-${version}";
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "1dkr69plk16wllk5bzlkchrzw63pk239dgbjhrb3mb61i065jdam";
   };
 
-  buildInputs = [ git makeWrapper openssl ];
+  buildInputs = [ makeWrapper git openssl coreutils utillinux gnugrep gnused gawk ];
+
+  patches = [ ./helper-scripts_depspathprefix.patch ];
 
   installPhase = ''
     install -m 755 -D transcrypt $out/bin/transcrypt
@@ -20,7 +22,13 @@ stdenv.mkDerivation rec {
     install -m 644 -D contrib/zsh/_transcrypt $out/share/zsh/site-functions/_transcrypt
 
     wrapProgram $out/bin/transcrypt \
-      --prefix PATH : "${stdenv.lib.makeBinPath [ git openssl ]}"
+      --prefix PATH : "${stdenv.lib.makeBinPath [ git openssl coreutils utillinux gnugrep gnused gawk ]}"
+
+    cat > $out/bin/transcrypt-depspathprefix << EOF
+    #!${stdenv.shell}
+    echo "${stdenv.lib.makeBinPath [ git openssl coreutils gawk ]}:"
+    EOF
+    chmod +x $out/bin/transcrypt-depspathprefix
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch
new file mode 100644
index 000000000000..925aadab3dd5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch
@@ -0,0 +1,37 @@
+diff --git a/transcrypt b/transcrypt
+index a0b562d..7888f5d 100755
+--- a/transcrypt
++++ b/transcrypt
+@@ -278,6 +278,7 @@ save_helper_scripts() {
+ 
+ 	cat <<-'EOF' > "${GIT_DIR}/crypt/clean"
+ 		#!/usr/bin/env bash
++		PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH"
+ 		filename=$1
+ 		# ignore empty files
+ 		if [[ -s $filename ]]; then
+@@ -300,6 +301,7 @@ save_helper_scripts() {
+ 
+ 	cat <<-'EOF' > "${GIT_DIR}/crypt/smudge"
+ 		#!/usr/bin/env bash
++		PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH"
+ 		tempfile=$(mktemp 2> /dev/null || mktemp -t tmp)
+ 		trap 'rm -f "$tempfile"' EXIT
+ 		cipher=$(git config --get --local transcrypt.cipher)
+@@ -309,6 +311,7 @@ save_helper_scripts() {
+ 
+ 	cat <<-'EOF' > "${GIT_DIR}/crypt/textconv"
+ 		#!/usr/bin/env bash
++		PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH"
+ 		filename=$1
+ 		# ignore empty files
+ 		if [[ -s $filename ]]; then
+@@ -351,7 +354,7 @@ save_configuration() {
+ 	git config merge.renormalize 'true'
+ 
+ 	# add a git alias for listing encrypted files
+-	git config alias.ls-crypt "!git ls-files | git check-attr --stdin filter | awk 'BEGIN { FS = \":\" }; /crypt$/{ print \$1 }'"
++	git config alias.ls-crypt "!PATH=\"\$(transcrypt-depspathprefix 2>/dev/null)\$PATH\"; git ls-files | git check-attr --stdin filter | awk 'BEGIN { FS = \":\" }; /crypt$/{ print \$1 }'"
+ }
+ 
+ # display the current configuration settings
diff --git a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
index 67c07072d41f..92ba57382501 100644
--- a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "git-lfs-${version}";
-  version = "2.5.2";
+  version = "2.7.2";
 
   goPackagePath = "github.com/git-lfs/git-lfs";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "git-lfs";
     repo = "git-lfs";
-    sha256 = "1y9l35j59d422v9hsbi117anm5d0177nspiy9r2zbjz3ygd9a4ck";
+    sha256 = "1nf40rbdz901vsahg5cm09pznpina6wimmxl0lmh8pn0mi51yzvc";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/applications/version-management/pijul/default.nix b/nixpkgs/pkgs/applications/version-management/pijul/default.nix
index b97123926eb5..4f716251153c 100644
--- a/nixpkgs/pkgs/applications/version-management/pijul/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/pijul/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, rustPlatform, darwin, openssl, libsodium, pkgconfig }:
+{ stdenv, fetchurl, rustPlatform, darwin, openssl, libsodium, nettle, clang, libclang, pkgconfig }:
 
 with rustPlatform;
 
 buildRustPackage rec {
   name = "pijul-${version}";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchurl {
     url = "https://pijul.org/releases/${name}.tar.gz";
-    sha256 = "e60793ab124e9054c1d5509698acbae507ebb2fab5364d964067bc9ae8b6b5e5";
+    sha256 = "1rm787kkh3ya8ix0rjvj7sbrg9armm0rnpkga6gjmsbg5bx20y4q";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig clang ];
 
   postInstall = ''
     mkdir -p $out/share/{bash-completion/completions,zsh/site-functions,fish/vendor_completions.d}
@@ -20,12 +20,14 @@ buildRustPackage rec {
     $out/bin/pijul generate-completions --fish > $out/share/fish/vendor_completions.d/pijul.fish
   '';
 
-  buildInputs = [ openssl libsodium ] ++ stdenv.lib.optionals stdenv.isDarwin
+  LIBCLANG_PATH = libclang + "/lib";
+
+  buildInputs = [ openssl libsodium nettle libclang ] ++ stdenv.lib.optionals stdenv.isDarwin
     (with darwin.apple_sdk.frameworks; [ Security ]);
 
   doCheck = false;
 
-  cargoSha256 = "1r76azmka1d76ff0ddfhzr24b0ry496qrp13945i3vs0fgzk2sdz";
+  cargoSha256 = "1w77s5q18yr1gqqif15wmrfdvv2chq8rq3w4dnmxg2gn0r7bmz2k";
 
   meta = with stdenv.lib; {
     description = "A distributed version control system";
diff --git a/nixpkgs/pkgs/applications/video/devede/default.nix b/nixpkgs/pkgs/applications/video/devede/default.nix
index 48c5032f2da2..4802d259fb23 100644
--- a/nixpkgs/pkgs/applications/video/devede/default.nix
+++ b/nixpkgs/pkgs/applications/video/devede/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, python3Packages, ffmpeg, mplayer, vcdimager, cdrkit, dvdauthor
-, gtk3, gettext, wrapGAppsHook, gdk_pixbuf }:
+, gtk3, gettext, wrapGAppsHook, gdk_pixbuf, gobject-introspection }:
 
 let
   inherit (python3Packages) dbus-python buildPythonApplication pygobject3 urllib3;
@@ -15,8 +15,18 @@ in buildPythonApplication rec {
     sha256 = "0ncb8nykchrjlllbzfjpvirmfvfaps9qhilc56kvcw3nzqrnkx8q";
   };
 
+  # Temporary fix
+  # See https://github.com/NixOS/nixpkgs/issues/61578
+  # and https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
   nativeBuildInputs = [
     gettext wrapGAppsHook
+
+    # Temporary fix
+    # See https://github.com/NixOS/nixpkgs/issues/61578
+    # and https://github.com/NixOS/nixpkgs/issues/56943
+    gobject-introspection
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/kodi/plugins.nix b/nixpkgs/pkgs/applications/video/kodi/plugins.nix
index 91fd7eab1268..b9976e540196 100644
--- a/nixpkgs/pkgs/applications/video/kodi/plugins.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/plugins.nix
@@ -59,7 +59,7 @@ let self = rec {
     extraRuntimeDependencies = [ ];
 
     installPhase = ''
-      ${if isNull sourceDir then "" else "cd $src/$sourceDir"}
+      ${if sourceDir == null then "" else "cd $src/$sourceDir"}
       d=$out${pluginDir}/${namespace}
       mkdir -p $d
       sauce="."
diff --git a/nixpkgs/pkgs/applications/video/wf-recorder/default.nix b/nixpkgs/pkgs/applications/video/wf-recorder/default.nix
index 6a15132fd245..d52a4a6ab9b9 100644
--- a/nixpkgs/pkgs/applications/video/wf-recorder/default.nix
+++ b/nixpkgs/pkgs/applications/video/wf-recorder/default.nix
@@ -1,14 +1,16 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, wayland, wayland-protocols, ffmpeg, x264, libpulseaudio }:
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, wayland, wayland-protocols
+, ffmpeg, x264, libpulseaudio
+}:
 
 stdenv.mkDerivation rec {
   pname = "wf-recorder";
-  version = "unstable-2019-04-21";
+  version = "0.1";
 
   src = fetchFromGitHub {
     owner = "ammen99";
     repo = pname;
-    rev = "ddb96690556371007e316577ed1b14f0cb62e13c";
-    sha256 = "04amfd1kyklcj6nmmmf21dz333ykglvhxb3cbzak06v2fxlrp2w3";
+    rev = "v${version}";
+    sha256 = "1rl75r87ijja9mfyrwrsz8r4zvjnhm0103qmgyhq2phlrdpkks5d";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix b/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
new file mode 100644
index 000000000000..6e2790ef8590
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
@@ -0,0 +1,75 @@
+{ flavor ? ""
+, ldflags ? ""
+, stdenv
+, btrfs-progs
+, buildGoPackage
+, fetchFromGitHub
+, glibc
+, gpgme
+, libapparmor
+, libassuan
+, libgpgerror
+, libseccomp
+, libselinux
+, lvm2
+, pkgconfig
+}:
+
+buildGoPackage rec {
+  project = "cri-o";
+  version = "1.14.1";
+  name = "${project}-${version}${flavor}";
+
+  goPackagePath = "github.com/${project}/${project}";
+
+  src = fetchFromGitHub {
+    owner = "cri-o";
+    repo = "cri-o";
+    rev = "v${version}";
+    sha256 = "1cclxarwabk5zlqysm2dzgsm6qkxyzbnlylr0gs57ppn4ibky3nk";
+  };
+
+  outputs = [ "bin" "out" ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ btrfs-progs gpgme libapparmor libassuan libgpgerror
+                 libseccomp libselinux lvm2 ]
+                ++ stdenv.lib.optionals (glibc != null) [ glibc glibc.static ];
+
+  makeFlags = ''BUILDTAGS="apparmor seccomp selinux
+    containers_image_ostree_stub"'';
+
+  buildPhase = ''
+    pushd go/src/${goPackagePath}
+
+    # Build conmon and pause
+    go build -tags ${makeFlags} -o bin/crio-config -buildmode=pie \
+      -ldflags '-s -w ${ldflags}' ${goPackagePath}/cmd/crio-config
+
+    pushd conmon
+    ../bin/crio-config
+    popd
+
+    make -C conmon
+    make -C pause
+
+    # Build the crio binary
+    go build -tags ${makeFlags} -o bin/crio -buildmode=pie \
+      -ldflags '-s -w ${ldflags}' ${goPackagePath}/cmd/crio
+  '';
+  installPhase = ''
+    install -Dm755 bin/crio $bin/bin/crio${flavor}
+
+    mkdir -p $bin/libexec/crio
+    install -Dm755 bin/conmon $bin/libexec/crio/conmon${flavor}
+    install -Dm755 bin/pause $bin/libexec/crio/pause${flavor}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://cri-o.io;
+    description = ''Open Container Initiative-based implementation of the
+                    Kubernetes Container Runtime Interface'';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ saschagrunert ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/build-support/emacs/melpa.nix b/nixpkgs/pkgs/build-support/emacs/melpa.nix
index 96e61bbf90e5..e2ec84c75e66 100644
--- a/nixpkgs/pkgs/build-support/emacs/melpa.nix
+++ b/nixpkgs/pkgs/build-support/emacs/melpa.nix
@@ -31,7 +31,7 @@ in
 import ./generic.nix { inherit lib stdenv emacs texinfo; } ({
 
   ename =
-    if isNull(ename)
+    if ename == null
     then pname
     else ename;
 
diff --git a/nixpkgs/pkgs/build-support/libredirect/libredirect.c b/nixpkgs/pkgs/build-support/libredirect/libredirect.c
index dcf3a2016bc2..655399af58f5 100644
--- a/nixpkgs/pkgs/build-support/libredirect/libredirect.c
+++ b/nixpkgs/pkgs/build-support/libredirect/libredirect.c
@@ -166,10 +166,3 @@ int execv(const char *path, char *const argv[])
     char buf[PATH_MAX];
     return execv_real(rewrite(path, buf), argv);
 }
-
-void *dlopen(const char *filename, int flag)
-{
-    void * (*__dlopen_real) (const char *, int) = dlsym(RTLD_NEXT, "dlopen");
-    char buf[PATH_MAX];
-    return __dlopen_real(rewrite(filename, buf), flag);
-}
diff --git a/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix b/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix
new file mode 100644
index 000000000000..965bf119f6e7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchurl }:
+
+let
+  version = "0.0.4.7";
+in fetchurl {
+  name = "cnstrokeorder-${version}";
+
+  url = "http://rtega.be/chmn/CNstrokeorder-${version}.ttf";
+
+  recursiveHash = true;
+  downloadToTemp = true;
+
+  postFetch = ''
+    install -D $downloadedFile $out/share/fonts/truetype/CNstrokeorder-${version}.ttf
+  '';
+
+  sha256 = "0cizgfdgbq9av5c8234mysr2q54iw9pkxrmq5ga8gv32hxhl5bx4";
+
+  meta = with lib; {
+    description = "Chinese font that shows stroke order for HSK 1-4";
+    homepage = "http://rtega.be/chmn/index.php?subpage=68";
+    license = [ licenses.arphicpl ];
+    maintainers = with maintainers; [ johnazoidberg ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix b/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix
new file mode 100644
index 000000000000..1c1609b03f19
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "4.002";
+in fetchzip {
+  name = "kanji-stroke-order-font-${version}";
+
+  url = "https://sites.google.com/site/nihilistorguk/KanjiStrokeOrders_v${version}.zip?attredirects=0";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/kanji-stroke-order $out/share/doc/kanji-stroke-order
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/kanji-stroke-order
+    unzip -j $downloadedFile \*.txt -d $out/share/doc/kanji-stroke-order
+  '';
+
+  sha256 = "194ylkx5p7r1461wnnd3hisv5dz1xl07fyxmg8gv47zcwvdmwkc0";
+
+  meta = with stdenv.lib; {
+    description = "Font containing stroke order diagrams for over 6500 kanji, 180 kana and other characters";
+    homepage = "https://sites.google.com/site/nihilistorguk/";
+
+    license = [ licenses.bsd3 ];
+    maintainers = with maintainers; [ ptrhlm ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libertinus/default.nix b/nixpkgs/pkgs/data/fonts/libertinus/default.nix
index 246d4a91a964..578550bbe452 100644
--- a/nixpkgs/pkgs/data/fonts/libertinus/default.nix
+++ b/nixpkgs/pkgs/data/fonts/libertinus/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchFromGitHub }:
 
 let
-  version = "6.6";
+  version = "6.8";
 in fetchFromGitHub rec {
   name = "libertinus-${version}";
 
-  owner  = "khaledhosny";
+  owner  = "alif-type";
   repo   = "libertinus";
   rev    = "v${version}";
 
@@ -14,7 +14,7 @@ in fetchFromGitHub rec {
     install -m444 -Dt $out/share/fonts/opentype *.otf
     install -m444 -Dt $out/share/doc/${name}    *.txt
   '';
-  sha256 = "11pxb2zwvjlk06zbqrfv2pgwsl4awf68fak1ks4881i8xbl1910m";
+  sha256 = "0iwbw3sw8rcsifpzw72g3cz0a960scv7cib8mwrw53282waqq2gc";
 
   meta = with lib; {
     description = "A fork of the Linux Libertine and Linux Biolinum fonts";
@@ -23,7 +23,7 @@ in fetchFromGitHub rec {
       that started as an OpenType math companion of the Libertine font family,
       but grown as a full fork to address some of the bugs in the fonts.
     '';
-    homepage = https://github.com/khaledhosny/libertinus;
+    homepage = https://github.com/alif-type/libertinus;
     license = licenses.ofl;
     maintainers = with maintainers; [ siddharthist ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/data/fonts/redhat-official/default.nix b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
new file mode 100644
index 000000000000..c05b9c69aef5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+let version = "2.2.0"; in
+fetchzip rec {
+  name = "redhat-official-${version}";
+  url = "https://github.com/RedHatOfficial/RedHatFont/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0yb6shgq6jrv3kq9faky66qpdbv4g580c3jl942844grwyngymyj";
+
+  meta = with lib; {
+    homepage = https://github.com/RedHatOfficial/RedHatFont;
+    description = "Red Hat's Open Source Fonts - Red Hat Display and Red Hat Text";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/iana-etc/default.nix b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
index 59773e34ccec..163f230e077a 100644
--- a/nixpkgs/pkgs/data/misc/iana-etc/default.nix
+++ b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchzip }:
 
 let
-  version = "20181219";
+  version = "20190504";
 in fetchzip {
   name = "iana-etc-${version}";
   url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
-  sha256 = "0i3f7shvf1g6dp984w8xfix6id3q5c10b292wz2qw3v5n7h6wkm3";
+  sha256 = "1h61qnb3ybyfivyq8qjnisj4arbnhn8hcwad1bp4iqidjk6rjfv3";
 
   postFetch = ''
     tar -xzvf $downloadedFile --strip-components=1
diff --git a/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch
new file mode 100644
index 000000000000..72922eee96c4
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch
@@ -0,0 +1,10 @@
+--- a/catalog.xml
++++ b/catalog.xml
+@@ -5,4 +5,7 @@
+   <rewriteSystem systemIdStartString="http://cdn.docbook.org/release/xsl@suffix@/current/" rewritePrefix="./"/>
+   <rewriteURI uriStartString="http://cdn.docbook.org/release/xsl@suffix@/@version@/" rewritePrefix="./"/>
+   <rewriteSystem systemIdStartString="http://cdn.docbook.org/release/xsl@suffix@/@version@/" rewritePrefix="./"/>
++  <!-- legacy URIs -->
++  <rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl@legacySuffix@/current/" rewritePrefix="./"/>
++  <rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl@legacySuffix@/current/" rewritePrefix="./"/>
+ </catalog>
diff --git a/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
index ef7b1f93d74e..5297d5dbd5dc 100644
--- a/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
+++ b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
@@ -1,66 +1,77 @@
-{ lib, stdenv, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }:
+{ lib, stdenv, substituteAll, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }:
 
 let
 
-  common = { pname, sha256, patches ? [] }: let self = stdenv.mkDerivation rec {
-    name = "${pname}-1.79.1";
-
-    src = fetchurl {
-      url = "mirror://sourceforge/docbook/${name}.tar.bz2";
-      inherit sha256;
-    };
-
-    inherit patches;
-
-    propagatedBuildInputs = [ findXMLCatalogs ];
-
-    dontBuild = true;
-
-    installPhase = ''
-      dst=$out/share/xml/${pname}
-      mkdir -p $dst
-      rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh svn* tools log Makefile tests extensions webhelp
-      mv * $dst/
-
-      # Backwards compatibility. Will remove eventually.
-      mkdir -p $out/xml/xsl
-      ln -s $dst $out/xml/xsl/docbook
-    '';
-
-    passthru.dbtoepub = writeScriptBin "dbtoepub"
-      ''
-        #!${bash}/bin/bash
-        exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@"
+  common = { pname, sha256, suffix ? "" }: let
+    legacySuffix = if suffix == "-nons" then "" else "-ns";
+    self = stdenv.mkDerivation rec {
+      inherit pname;
+      version = "1.79.2";
+
+      src = fetchurl {
+        url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F${version}/docbook-xsl${suffix}-${version}.tar.bz2";
+        inherit sha256;
+      };
+
+      patches = [
+        # Prevent a potential stack overflow
+        # https://github.com/docbook/xslt10-stylesheets/pull/37
+        (fetchpatch {
+          url = https://src.fedoraproject.org/rpms/docbook-style-xsl/raw/e3ae7a97ed1d185594dd35954e1a02196afb205a/f/docbook-style-xsl-non-recursive-string-subst.patch;
+          sha256 = "0lrjjg5kpwwmbhkxzz6i5zmimb6lsvrrdhzc2qgjmb3r6jnsmii3";
+          stripLen = "1";
+        })
+
+        # Add legacy sourceforge.net URIs to the catalog
+        (substituteAll {
+          src = ./catalog-legacy-uris.patch;
+          inherit legacySuffix suffix version;
+        })
+      ];
+
+      propagatedBuildInputs = [ findXMLCatalogs ];
+
+      dontBuild = true;
+
+      installPhase = ''
+        dst=$out/share/xml/${pname}
+        mkdir -p $dst
+        rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh tools Makefile tests extensions webhelp
+        mv * $dst/
+
+        # Backwards compatibility. Will remove eventually.
+        mkdir -p $out/xml/xsl
+        ln -s $dst $out/xml/xsl/docbook
+
+        # More backwards compatibility
+        ln -s $dst $out/share/xml/docbook-xsl${legacySuffix}
       '';
 
-    meta = {
-      homepage = http://wiki.docbook.org/topic/DocBookXslStylesheets;
-      description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats";
-      maintainers = [ lib.maintainers.eelco ];
-      platforms = lib.platforms.all;
+      passthru.dbtoepub = writeScriptBin "dbtoepub"
+        ''
+          #!${bash}/bin/bash
+          exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@"
+        '';
+
+      meta = {
+        homepage = http://wiki.docbook.org/topic/DocBookXslStylesheets;
+        description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats";
+        maintainers = [ lib.maintainers.eelco ];
+        platforms = lib.platforms.all;
+      };
     };
-  }; in self;
+  in self;
 
 in {
 
-  docbook_xsl = common {
-    pname = "docbook-xsl";
-    sha256 = "0s59lihif2fr7rznckxr2kfyrvkirv76r1zvidp9b5mj28p4apvj";
-
-    patches = [(fetchpatch {
-      name = "potential-infinite-template-recursion.patch";
-      url = "https://src.fedoraproject.org/cgit/rpms/docbook-style-xsl.git/"
-          + "plain/docbook-style-xsl-non-recursive-string-subst.patch?id=bf9e5d16fd";
-      sha256 = "1pfb468bsj3j879ip0950waih0r1s6rzfbm2p70glbz0g3903p7h";
-      stripLen = "1";
-    })];
-
+  docbook-xsl-nons = common {
+    pname = "docbook-xsl-nons";
+    suffix = "-nons";
+    sha256 = "00i1hdyxim8jymv2dz68ix3wbs5w6isxm8ijb03qk3vs1g59x2zf";
   };
 
-  docbook_xsl_ns = common {
+  docbook-xsl-ns = common {
     pname = "docbook-xsl-ns";
-    sha256 = "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin";
-
-    patches = [ ./docbook-xsl-ns-infinite.patch ];
+    sha256 = "0wd33z41kdsybyx3ay21w6bdlmgpd9kyn3mr5y520lsf8km28r9i";
   };
 }
diff --git a/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch
deleted file mode 100644
index 5729f9b43c80..000000000000
--- a/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Description: Remove infinite recursion
-Attribute: docbook5_xsl
-Version: 1.79.1
-URL: https://github.com/NixOS/nixpkgs/issues/39090
-diff -ru a/lib/lib.xsl b/lib/lib.xsl
---- a/lib/lib.xsl	2015-12-26 15:15:37.000000000 -0800
-+++ b/lib/lib.xsl	2018-03-22 11:52:45.311949264 -0700
-@@ -11,8 +11,10 @@
- 
-      ******************************************************************** -->
- <xsl:stylesheet exclude-result-prefixes="d"
--                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://docbook.org/ns/docbook"
--version="1.0">
-+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-+                xmlns:d="http://docbook.org/ns/docbook"
-+                xmlns:str="http://exslt.org/strings"
-+                version="1.0">
- 
- <xsl:template name="dot.count">
-   <!-- Returns the number of "." characters in a string -->
-@@ -58,6 +61,9 @@
-   <xsl:param name="replacement"/>
- 
-   <xsl:choose>
-+    <xsl:when test="function-available('str:replace')">
-+      <xsl:value-of select="str:replace($string, string($target), string($replacement))"/>
-+    </xsl:when>
-     <xsl:when test="contains($string, $target)">
-       <xsl:variable name="rest">
-         <xsl:call-template name="string.subst">
diff --git a/nixpkgs/pkgs/data/themes/zuki/default.nix b/nixpkgs/pkgs/data/themes/zuki/default.nix
index 2e74e2819e38..69399bdb0eb5 100644
--- a/nixpkgs/pkgs/data/themes/zuki/default.nix
+++ b/nixpkgs/pkgs/data/themes/zuki/default.nix
@@ -1,24 +1,21 @@
-{ stdenv, fetchFromGitHub, gdk_pixbuf, librsvg, gtk-engine-murrine }:
+{ stdenv, fetchFromGitHub, meson, ninja, sassc, gdk_pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "zuki-themes";
-  version = "3.32-1";
+  version = "3.32-3";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x6ghc7n5y7p0agm2yp7rygz9154f58s891zxzhd07wc2c4mzp0s";
+    sha256 = "1al1fb7pqrcdi4g6llz8ka4sc9hsprv2ba0kkc21r6vajs0qp83n";
   };
 
-  buildInputs = [ gdk_pixbuf librsvg ];
+  nativeBuildInputs = [ meson ninja sassc ];
 
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+  buildInputs = [ gdk_pixbuf librsvg gtk_engines ];
 
-  installPhase = ''
-    install -dm 755 $out/share/themes
-    cp -a Zuki* $out/share/themes/
-  '';
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   meta = with stdenv.lib; {
     description = "Themes for GTK3, gnome-shell and more";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix
index efff8f846b94..f7d22220e644 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix
@@ -1,27 +1,60 @@
-{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook, gobject-introspection
-, itstool, libxml2, python3Packages, at-spi2-core
-, dbus, gettext, libwnck3 }:
+{ stdenv
+, fetchurl
+, pkgconfig
+, gnome3
+, gtk3
+, glib
+, wrapGAppsHook
+, gobject-introspection
+, itstool
+, libxml2
+, python3
+, at-spi2-core
+, dbus
+, gettext
+, libwnck3
+, adwaita-icon-theme
+}:
 
-stdenv.mkDerivation rec {
+ python3.pkgs.buildPythonApplication rec {
   name = "accerciser-${version}";
-  version = "3.32.1";
+  version = "3.32.2";
+
+  format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/accerciser/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0afzhbig5yw87zyfmid61368jj8l6i7k8gs29x0hv65fz4yiv4h4";
+    sha256 = "05ssj8whzhf98lpcaca7m45h03g0wx0i8jlsrh3yn943mshzidy8";
   };
 
   nativeBuildInputs = [
-    pkgconfig wrapGAppsHook itstool gettext
+    gettext
     gobject-introspection # For setup hook
+    itstool
+    libxml2
+    pkgconfig
+    dbus
+    wrapGAppsHook
   ];
+
   buildInputs = [
-    gtk3 libxml2 python3Packages.python python3Packages.pyatspi
-    python3Packages.pygobject3 python3Packages.ipython
-    at-spi2-core dbus libwnck3 gnome3.adwaita-icon-theme
+    adwaita-icon-theme
+    at-spi2-core
+    gtk3
+    libwnck3
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    ipython
+    pyatspi
+    pycairo
+    pygobject3
+    xlib
   ];
 
-  wrapPrefixVariables = [ "PYTHONPATH" ];
+  # Strict deps breaks accerciser
+  # and https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
 
   passthru = {
     updateScript = gnome3.updateScript {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix
index a423dd85887c..83202a75c264 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix
@@ -7,13 +7,13 @@
 , libcanberra-gtk3, bogofilter, gst_all_1, procps, p11-kit, openldap }:
 
 let
-  version = "3.32.1";
+  version = "3.32.2";
 in stdenv.mkDerivation rec {
   name = "evolution-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0ns76w6vwv5k1nxpaqrizp1pnm89xzfgs60i6cwwfs35zqlmb7iq";
+    sha256 = "1sb60zhdawza33zlp0n3hbd7mq43a4y09jmkphpnxdifypfkar55";
   };
 
   propagatedUserEnvPkgs = [ evolution-data-server ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gedit/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gedit/default.nix
index f767e309a65a..532e8dcb0f08 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gedit/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gedit/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   name = "gedit-${version}";
-  version = "3.32.0";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gedit/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1lray9vvbcrnhjv5cr5fc4bqfd68km2x79cj50byyqn9cnlf5qn9";
+    sha256 = "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index a983c59d192e..3b68bec7585e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
@@ -9,13 +9,13 @@
 # TODO: ovirt (optional)
 
 let
-  version = "3.32.0.2";
+  version = "3.32.1";
 in stdenv.mkDerivation rec {
   name = "gnome-boxes-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-boxes/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1239x1bbkn0gxxq82zpvjjr7srla2d5ghi5rqwxnhsab0c2ypswk";
+    sha256 = "159sxii3g4s5pjb4s4i3kc4q162w5vicp4g6wvk1y2yv68bgmcl4";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index 3244fa639c2f..03619f38c9ba 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "gnome-calendar";
-  version = "3.32.1";
+  version = "3.32.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1wip968nvp1yj34hbpc3wjbrmrgjm1f82ag5ngv90z38953vi9vl";
+    sha256 = "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
index b3b9fb0dddd6..a059ec3ac3ce 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "gnome-maps";
-  version = "3.32.1";
+  version = "3.32.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1q15qsp0ca67y4l0x31518cfakrj85x9g0cbcm0wysnbddi1aik0";
+    sha256 = "1yvwzdfxjdgx4478l2i240ssvbr8hm5sg4krc1gw2ps08sgap7yx";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
index 4e601849a35f..1f1bfafb5950 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gnome-music";
-  version = "3.32.1";
+  version = "3.32.2";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11fdij1jznjsph1q5rkkvdhikzdh2lls921lv2m2di9x7i2xn3h4";
+    sha256 = "0cn7l1d3ayima1w3bxpshijabd7ibhnvqxv2mpvffzizk04ln6hk";
   };
 
   nativeBuildInputs = [ meson ninja gettext itstool pkgconfig libxml2 wrapGAppsHook desktop-file-utils appstream-glib gobject-introspection ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/polari/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/polari/default.nix
index cf056ca78413..73b8016d97b4 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/polari/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/polari/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "polari";
-  version = "3.32.1";
+  version = "3.32.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0z2dxj1hd798jn79y9a7lkb77lm8l7y5fsqh9g6lbr7pnmg559yk";
+    sha256 = "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp";
   };
 
   propagatedUserEnvPkgs = [ telepathy-idle telepathy-logger ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index b3feb230d0f4..a1bcb406eb3a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "seahorse";
-  version = "3.32.1";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1nh2gahiixj661a3l008yhidx952q50fqgdckg8l0d237wnwp7f6";
+    sha256 = "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gjs/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gjs/default.nix
index 25c3cef3f6a4..ef4de3699151 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gjs/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gjs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "gjs-${version}";
-  version = "1.56.1";
+  version = "1.56.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0wylq6r0c0gf558hridlyly84vb03qzdrfph21z8dbqy8l7g2937";
+    sha256 = "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 33095a0f1b98..d9001d9b1b94 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -14,11 +14,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "gnome-shell-${version}";
-  version = "3.32.1";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1pb00af3w4wivdhcvdy59z2xlxasg90bcm5a9ck0p5lf97adwx08";
+    sha256 = "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5";
   };
 
   LANG = "en_US.UTF-8";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index f71df437d113..ab4b360221e5 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-software-${version}";
-  version = "3.32.1";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0xxhvyqfwlcyvlqc36rpcili00dpwy8b5c5klaqccn5qrc87rl38";
+    sha256 = "12kw5vyg8jy0xiq1shfh4ksar2dpyzcdxbyx8lrp9494d606nrlx";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index 9b25ae9218d4..77a630261fb5 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-terminal-${version}";
-  version = "3.32.1";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-terminal/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0i613844gf5dmzpvwiy68lg8walhj4zr88scacp2qwpqs870si8x";
+    sha256 = "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
index 02bcb52b3875..d9f938621433 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-user-docs-${version}";
-  version = "3.32.1";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-user-docs/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "09g6fi9b1xpk0fnp6wgh350v1x318mrf20j4bfarww25vrj6irrw";
+    sha256 = "1ny7cwkyskrykzsrabjnlc9jsdl4kdk73smwxas6ddmca02hpm7c";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.28.nix b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.28.nix
index 9be383220e6e..8aa7cff2d030 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.28.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.28.nix
@@ -6,14 +6,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mutter";
-  version = "3.28.3";
+  version = "3.28.4";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = pname;
-    rev = "4af8d9d4752a94612a98d619e65828f0070a7b0e"; # HEAD of https://gitlab.gnome.org/GNOME/mutter/tree/gnome-3-28
-    sha256 = "1rmc1bf80yq776xhygi1jzgia1y44j2mr2n94vlxgzqc0whamx2v";
+    rev = version;
+    sha256 = "0p8ky306dnm4alkncmsnd8r2awpsi37p0bzvkv313pgqw2hbwq9i";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix
index 2c305f002fd5..a8bc4e770110 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mutter";
-  version = "3.32.1";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1q74lrb08vy0ynxbssqyxvbzf9252xgf9l6jxr9g4q0gmvpq402j";
+    sha256 = "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva";
   };
 
   mesonFlags = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix
index 688e8cc93657..2eeb77db0c65 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -7,13 +7,13 @@
 
 let
   pname = "nautilus";
-  version = "3.32.0";
+  version = "3.32.1";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1pnh32fal7dkwadga5savg1nv0zqnbakhk0hxr5726087i6y6ii2";
+    sha256 = "0vmrvimv4183l3ij4kv0ir2c9rfzk7gh3xc2pa4wkqq9kn7h6m7s";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index ad2ac5d6e690..047e79e14e5c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "simple-scan-${version}";
-  version = "3.32.2";
+  version = "3.32.2.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/simple-scan/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "12r5hacwpf0gzca3p73xpmx3dksa1kx50nlj6w4nw8jfqzjlkq1k";
+    sha256 = "0xqb642bsd2hddsm4bd199vyq8jcipdlxm0br3mjlc5vjcxgkxyp";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/yelp-tools/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
index 41120a74b084..d6ed0c22e4b7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "yelp-tools-${version}";
-  version = "3.32.0";
+  version = "3.32.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp-tools/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "037fd6xpy3zab7j5p7c0vfc6c3nk6qs0prvz1hbilzc31p8l1pdz";
+    sha256 = "1qrn8ss3wc601w8j0ziicgmgic0yh01az6611n3jgd7wll9c79wr";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix
index ecbb7b277ff3..24a49413960c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "yelp-${version}";
-  version = "3.32.1";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "159ayfyswn9yh7g5hjs6lphh510n6qkyd1cj47hnc3ynnab9hn4r";
+    sha256 = "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f";
   };
 
   nativeBuildInputs = [ pkgconfig gettext itstool wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
index 9ceb65f83083..b2c8e99e8239 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-mines-${version}";
-  version = "3.32.0";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-mines/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "13ia8a7bmdnp1281lwp8nvdqqkclvg1n3pw4bbr2dgsrsswfkscj";
+    sha256 = "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g";
   };
 
   # gobject-introspection for finding vapi files
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
index de0d70ae42f4..7bb162b7b8b4 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
@@ -26,13 +26,13 @@
 
 let
   pname = "gnome-applets";
-  version = "3.30.0";
+  version = "3.32.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1cvl32486kqw301wy40l1a1sdhanra7bx4smq0a3lmnl3x01zg43";
+    sha256 = "10kd19ymxl2z65121g90mx96m6vcn2a8a50g6a56prrdjsgbgia1";
   };
 
   nativeBuildInputs = [
@@ -68,7 +68,7 @@ in stdenv.mkDerivation rec {
   doCheck = true;
 
   configureFlags = [
-    "--with-libpanel-applet-dir=$(out)/share/gnome-panel/applets"
+    "--with-libpanel-applet-dir=${placeholder ''out''}/share/gnome-panel/applets"
   ];
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
index f9387c11b819..6d8f48f0d8e6 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , autoreconfHook
 , fetchurl
-, fetchpatch
 , gettext
 , glib
 , gnome-bluetooth
@@ -29,25 +28,16 @@
 
 let
   pname = "gnome-flashback";
-  version = "3.30.0";
+  version = "3.32.0";
   requiredComponents = wmName: "RequiredComponents=${wmName};gnome-flashback-init;gnome-flashback;gnome-panel;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;";
   gnome-flashback = stdenv.mkDerivation rec {
     name = "${pname}-${version}";
 
     src = fetchurl {
       url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-      sha256 = "18rwql2pi78155l9zp1i50xfi5z8xz2l08m9d81x6qqbfr1nyy57";
+      sha256 = "0jfzr7vdmnxpxqqa38ni1p3c508xhlnxqpmmqshk3rvrf0afqn62";
     };
 
-    patches =[
-      # overrides do not respect gsettingsschemasdir
-      # https://gitlab.gnome.org/GNOME/gnome-flashback/issues/9
-      (fetchpatch {
-       url = https://gitlab.gnome.org/GNOME/gnome-flashback/commit/a55530f58ccd600414a5420b287868ab7d219705.patch;
-       sha256 = "1la94lhhb9zlw7bnbpl6hl26zv3kxbsvgx996mhph720wxg426mh";
-      })
-    ];
-
     # make .desktop Execs absolute
     postPatch = ''
       patch -p0 <<END_PATCH
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
index db00758fb55f..3031b2c1d78f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , fetchurl
 , autoreconfHook
-, fetchpatch
 , dconf
 , evolution-data-server
 , gdm
@@ -24,7 +23,7 @@
 
 let
   pname = "gnome-panel";
-  version = "3.30.0";
+  version = "3.32.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
@@ -32,18 +31,9 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "12q0l7wy6hzl46i7xpvv82ka3bn14z0jg6fhv5xhnk7j9mkbmgqw";
+    sha256 = "0a9zi1jb0b42zd6wx3251cnns9v1w0cbwasmrx9hsj1dsb9pjq3a";
   };
 
-  patches = [
-    # https://github.com/NixOS/nixpkgs/issues/36468
-    # https://gitlab.gnome.org/GNOME/gnome-panel/issues/8
-    (fetchpatch {
-      url = https://gitlab.gnome.org/GNOME/gnome-panel/commit/77be9c3507bd1b5d70d97649b85ec9f47f6c359c.patch;
-      sha256 = "00b1ihnc6hp2g6x1v1njbc6mhsk44izl2wigviibmka2znfk03nv";
-    })
-  ];
-
   # make .desktop Exec absolute
   postPatch = ''
     patch -p0 <<END_PATCH
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix
index c42356aa16aa..8b1d2b05df11 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix
@@ -16,13 +16,13 @@
 
 let
   pname = "metacity";
-  version = "3.30.1";
+  version = "3.32.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "12kr472gblx7jxh9rvnamy09bkg29ms2pgc0c3373piqmavi24qg";
+    sha256 = "177dmb1smizfgkddk49n2kr90graj9r6xw5hg3aq0y2qqg6v4rcg";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 493e7a97805b..4ee2aef17601 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -5,7 +5,7 @@
 
 stdenv.mkDerivation rec {
   pname = "photos";
-  version = "2.6.3";
+  version = "2.6.4";
 
   name = "elementary-${pname}-${version}";
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1s0ww5g26wj0gd1drj8gxs74gvg2c9fdj4ixpifj8jh8yafdmrvg";
+    sha256 = "17r9658s0pqy6s45ysi3915sm8hpvmsp7cw2jahqvjc61r4qpdc1";
   };
 
   passthru = {
@@ -66,12 +66,6 @@ stdenv.mkDerivation rec {
     "-Dplugins=false"
   ];
 
-  patches = [
-    # https://github.com/elementary/photos/pull/505
-    # Unrelated line got dropped in https://github.com/elementary/photos/pull/498
-    ./fix-missing-line.patch
-  ];
-
   postPatch = ''
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/fix-missing-line.patch b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/fix-missing-line.patch
deleted file mode 100644
index ae859d9dff92..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/fix-missing-line.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 88ee69b57f94efa2779595d1544109fed6a3211c Mon Sep 17 00:00:00 2001
-From: Fabio Valentini <decathorpe@gmail.com>
-Date: Tue, 16 Apr 2019 16:12:47 +0200
-Subject: [PATCH] photos/PhotoMetadata: fix issue introduced with PR #498
-
----
- src/photos/PhotoMetadata.vala | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/photos/PhotoMetadata.vala b/src/photos/PhotoMetadata.vala
-index f0a4a73b..34dcbb55 100644
---- a/src/photos/PhotoMetadata.vala
-+++ b/src/photos/PhotoMetadata.vala
-@@ -197,6 +197,7 @@ public class PhotoMetadata : MediaMetadata {
- #else
-         exiv2.from_app1_segment (buffer, length);
- #endif
-+        exif = Exif.Data.new_from_data (buffer, length);
-         source_name = "<app1 segment %d bytes>".printf (length);
-     }
- 
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index 2461ea4875ec..e905ce9d854b 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchFromGitHub, pantheon, substituteAll, cmake, ninja
+{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, python3
 , pkgconfig, vala, granite, libgee, gettext, gtk3, appstream, gnome-menus
 , json-glib, plank, bamf, switchboard, libunity, libsoup, wingpanel, libwnck3
-, zeitgeist, gobject-introspection, elementary-icon-theme, bc, wrapGAppsHook }:
+, zeitgeist, bc }:
 
 stdenv.mkDerivation rec {
   pname = "applications-menu";
-  version = "2.4.2";
+  version = "2.4.3";
 
   name = "wingpanel-${pname}-${version}";
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0y7kh50ixvm4m56v18c70s05hhpfp683c4qi3sxy50p2368d772x";
+    sha256 = "15mwfynaa57jii43x77iaz5gqjlylh5zxc70am8zgp8vhgzflvyd";
   };
 
   passthru = {
@@ -25,18 +25,16 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     appstream
-    cmake
-    ninja
     gettext
-    gobject-introspection
+    meson
+    ninja
     pkgconfig
+    python3
     vala
-    wrapGAppsHook
    ];
 
   buildInputs = [
     bamf
-    elementary-icon-theme
     gnome-menus
     granite
     gtk3
@@ -51,6 +49,10 @@ stdenv.mkDerivation rec {
     zeitgeist
    ];
 
+  mesonFlags = [
+    "--sysconfdir=${placeholder ''out''}/etc"
+  ];
+
   PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
   PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
 
@@ -59,9 +61,13 @@ stdenv.mkDerivation rec {
       src = ./bc.patch;
       exec = "${bc}/bin/bc";
     })
-    ./xdg.patch
   ];
 
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
   meta = with stdenv.lib; {
     description = "Lightweight and stylish app launcher for Pantheon";
     homepage = https://github.com/elementary/applications-menu;
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch
deleted file mode 100644
index f17e2581e07e..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 928976a..7f0ea58 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -90,7 +90,7 @@ link_directories (${DEPS_LIBRARY_DIRS})
- 
- # Installation
- install (TARGETS ${APPNAME} RUNTIME DESTINATION bin)
--install (FILES ${applications_menu} DESTINATION /etc/xdg/menus)
-+install (FILES ${applications_menu} DESTINATION etc/xdg/menus)
- file (GLOB resources "${CMAKE_CURRENT_SOURCE_DIR}/data/*")
- 
- # Settings schema
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/3.7/clang/default.nix
deleted file mode 100644
index 4ccd00af6846..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/clang/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src }:
-
-let
-  gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
-  self = stdenv.mkDerivation {
-    name = "clang-${version}";
-
-    unpackPhase = ''
-      unpackFile ${fetch "cfe" "0x065d0w9b51xvdjxwfzjxng0gzpbx45fgiaxpap45ragi61dqjn"}
-      mv cfe-${version}.src clang
-      sourceRoot=$PWD/clang
-      unpackFile ${clang-tools-extra_src}
-      mv clang-tools-extra-* $sourceRoot/tools/extra
-    '';
-
-    buildInputs = [ cmake libxml2 llvm ];
-
-    cmakeFlags = [
-      "-DCMAKE_CXX_FLAGS=-std=c++11"
-    ] ++
-    # Maybe with compiler-rt this won't be needed?
-    (stdenv.lib.optional stdenv.isLinux "-DGCC_INSTALL_PREFIX=${gcc}") ++
-    (stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include");
-
-    patches = [ ./purity.patch ];
-
-    postPatch = ''
-      sed -i -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/Tools.cpp
-      sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' lib/Driver/ToolChains.cpp
-    '';
-
-    # Clang expects to find LLVMgold in its own prefix
-    # Clang expects to find sanitizer libraries in its own prefix
-    postInstall = ''
-      if [ -e ${llvm}/lib/LLVMgold.so ]; then
-        ln -sv ${llvm}/lib/LLVMgold.so $out/lib
-      fi
-
-      ln -sv ${llvm}/lib/clang/${version}/lib $out/lib/clang/${version}/
-      ln -sv $out/bin/clang $out/bin/cpp
-    '';
-
-    enableParallelBuilding = true;
-
-    passthru = {
-      lib = self; # compatibility with gcc, so that `stdenv.cc.cc.lib` works on both
-      isClang = true;
-      inherit llvm;
-    } // stdenv.lib.optionalAttrs stdenv.isLinux {
-      inherit gcc;
-    };
-
-    meta = {
-      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
-      homepage    = http://llvm.org/;
-      license     = stdenv.lib.licenses.ncsa;
-      platforms   = stdenv.lib.platforms.all;
-    };
-  };
-in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/clang/purity.patch b/nixpkgs/pkgs/development/compilers/llvm/3.7/clang/purity.patch
deleted file mode 100644
index ee73b26eb5ce..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/clang/purity.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/lib/Driver/Tools.cpp	2015-07-31 00:47:41.000000000 +0200
-+++ b/lib/Driver/Tools.cpp	2015-09-11 21:30:50.057895565 +0200
-@@ -8150,15 +8150,6 @@
-     CmdArgs.push_back("-shared");
-   }
- 
--  if (Arch == llvm::Triple::arm || Arch == llvm::Triple::armeb ||
--      Arch == llvm::Triple::thumb || Arch == llvm::Triple::thumbeb ||
--      (!Args.hasArg(options::OPT_static) &&
--       !Args.hasArg(options::OPT_shared))) {
--    CmdArgs.push_back("-dynamic-linker");
--    CmdArgs.push_back(Args.MakeArgString(
--        D.DyldPrefix + getLinuxDynamicLinker(Args, ToolChain)));
--  }
--
-   CmdArgs.push_back("-o");
-   CmdArgs.push_back(Output.getFilename());
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/default.nix b/nixpkgs/pkgs/development/compilers/llvm/3.7/default.nix
deleted file mode 100644
index 3c557711449f..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ newScope, stdenv, libstdcxxHook, isl, fetchurl
-, overrideCC, wrapCCWith
-, buildLlvmTools # tools, but from the previous stage, for cross
-, targetLlvmLibraries # libraries, but from the next stage, for cross
-}:
-
-let
-  version = "3.7.1";
-
-  fetch = fetch_v version;
-  fetch_v = ver: name: sha256: fetchurl {
-    url = "https://releases.llvm.org/${ver}/${name}-${ver}.src.tar.xz";
-    inherit sha256;
-  };
-
-  compiler-rt_src = fetch "compiler-rt" "10c1mz2q4bdq9bqfgr3dirc6hz1h3sq8573srd5q5lr7m7j6jiwx";
-  clang-tools-extra_src = fetch "clang-tools-extra" "0sxw2l3q5msbrwxv1ck72arggdw6n5ysi929gi69ikniranfv4aa";
-
-  tools = stdenv.lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv isl version fetch; });
-  in {
-    llvm = callPackage ./llvm.nix {
-      inherit compiler-rt_src;
-      inherit (targetLlvmLibraries) libcxxabi;
-    };
-
-    clang-unwrapped = callPackage ./clang {
-      inherit clang-tools-extra_src;
-    };
-
-    clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
-
-    libstdcxxClang = wrapCCWith {
-      cc = tools.clang-unwrapped;
-      extraPackages = [ libstdcxxHook ];
-    };
-
-    libcxxClang = wrapCCWith {
-      cc = tools.clang-unwrapped;
-      extraPackages = [ targetLlvmLibraries.libcxx targetLlvmLibraries.libcxxabi ];
-    };
-
-    lldb = callPackage ./lldb.nix {};
-  });
-
-  libraries = stdenv.lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv isl version fetch; });
-  in {
-
-    stdenv = overrideCC stdenv buildLlvmTools.clang;
-
-    libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
-
-    libcxx = callPackage ./libc++ {};
-
-    libcxxabi = callPackage ./libc++abi.nix {};
-  });
-
-in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/darwin.patch b/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/darwin.patch
deleted file mode 100644
index bf83f169cfc3..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/darwin.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -ru -x '*~' libcxx-3.4.2.src-orig/lib/CMakeLists.txt libcxx-3.4.2.src/lib/CMakeLists.txt
---- libcxx-3.4.2.src-orig/lib/CMakeLists.txt	2013-11-15 18:18:57.000000000 +0100
-+++ libcxx-3.4.2.src/lib/CMakeLists.txt	2014-09-24 14:04:01.000000000 +0200
-@@ -56,7 +56,7 @@
-       "-compatibility_version 1"
-       "-current_version ${LIBCXX_VERSION}"
-       "-install_name /usr/lib/libc++.1.dylib"
--      "-Wl,-reexport_library,/usr/lib/libc++abi.dylib"
-+      "-Wl,-reexport_library,${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib"
-       "-Wl,-unexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++unexp.exp"
-       "/usr/lib/libSystem.B.dylib")
-   else()
-@@ -64,14 +64,14 @@
-       list(FIND ${CMAKE_OSX_ARCHITECTURES} "armv7" OSX_HAS_ARMV7)
-       if (OSX_HAS_ARMV7)
-         set(OSX_RE_EXPORT_LINE
--          "${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib"
-+          "${CMAKE_OSX_SYSROOT}${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib"
-           "-Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++sjlj-abi.exp")
-       else()
-         set(OSX_RE_EXPORT_LINE
--          "-Wl,-reexport_library,${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib")
-+          "-Wl,-reexport_library,${CMAKE_OSX_SYSROOT}${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib")
-       endif()
-     else()
--      set (OSX_RE_EXPORT_LINE "/usr/lib/libc++abi.dylib -Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++abi${LIBCXX_LIBCPPABI_VERSION}.exp")
-+      set (OSX_RE_EXPORT_LINE "${LIBCXX_LIBCXXABI_LIB_PATH}/libc++abi.dylib -Wl,-reexported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/libc++abi${LIBCXX_LIBCPPABI_VERSION}.exp")
-     endif()
- 
-     list(APPEND link_flags
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/default.nix b/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/default.nix
deleted file mode 100644
index 7b7ac7297ba3..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib, stdenv, fetch, cmake, libcxxabi, fixDarwinDylibNames, version }:
-
-stdenv.mkDerivation rec {
-  name = "libc++-${version}";
-
-  src = fetch "libcxx" "0i7iyzk024krda5spfpfi8jksh83yp3bxqkal0xp76ffi11bszrm";
-
-  postUnpack = ''
-    unpackFile ${libcxxabi.src}
-  '';
-
-  preConfigure = ''
-    # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
-    cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$NIX_BUILD_TOP/libcxxabi-${version}.src/include")
-  '';
-
-  patches = [
-    ./darwin.patch
-    ./r242056.patch
-    # glibc 2.26 fix
-    ./xlocale-glibc-2.26.patch
-  ];
-
-  buildInputs = [ cmake libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
-
-  cmakeFlags = [
-    "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib"
-    "-DLIBCXX_LIBCPPABI_VERSION=2"
-    "-DLIBCXX_CXX_ABI=libcxxabi"
-  ];
-
-  enableParallelBuilding = true;
-
-  linkCxxAbi = stdenv.isLinux;
-
-  setupHooks = [
-    ../../../../../build-support/setup-hooks/role.bash
-    ./setup-hook.sh
-  ];
-
-  meta = {
-    homepage = http://libcxx.llvm.org/;
-    description = "A new implementation of the C++ standard library, targeting C++11";
-    license = with stdenv.lib.licenses; [ ncsa mit ];
-    platforms = stdenv.lib.platforms.unix;
-    badPlatforms = [ "x86_64-darwin" ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/r242056.patch b/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/r242056.patch
deleted file mode 100644
index 96245e76653a..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/r242056.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/include/string	2015/07/13 20:04:56	242056
-+++ b/include/string	2015/07/18 20:40:46	242623
-@@ -1936,7 +1936,12 @@
- template <class _CharT, class _Traits, class _Allocator>
- inline _LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
--    : __r_(__a)
-+#if _LIBCPP_STD_VER <= 14
-+        _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)
-+#else
-+        _NOEXCEPT
-+#endif
-+: __r_(__a)
- {
- #if _LIBCPP_DEBUG_LEVEL >= 2
-     __get_db()->__insert_c(this);
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/setup-hook.sh b/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/setup-hook.sh
deleted file mode 100644
index 6611259165ae..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/setup-hook.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# See pkgs/build-support/setup-hooks/role.bash
-getHostRole
-
-linkCxxAbi="@linkCxxAbi@"
-export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
-export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/xlocale-glibc-2.26.patch b/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/xlocale-glibc-2.26.patch
deleted file mode 100644
index 5ee8f6b82305..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++/xlocale-glibc-2.26.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/include/__locale b/include/__locale
-index 1989558..1e42905 100644
---- a/include/__locale
-+++ b/include/__locale
-@@ -34,10 +34,10 @@
- # include <support/solaris/xlocale.h>
- #elif defined(_NEWLIB_VERSION)
- # include <support/newlib/xlocale.h>
--#elif (defined(__GLIBC__) || defined(__APPLE__)      || defined(__FreeBSD__) \
-+#elif (defined(__APPLE__)      || defined(__FreeBSD__) \
-     || defined(__EMSCRIPTEN__) || defined(__IBMCPP__))
- # include <xlocale.h>
--#endif // __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || __EMSCRIPTEN__ || __IBMCPP__
-+#endif // __APPLE__ || __FreeBSD__ || __sun__ || __EMSCRIPTEN__ || __IBMCPP__
- 
- #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
- #pragma GCC system_header
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++abi.nix b/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++abi.nix
deleted file mode 100644
index 2c79d7b3b1b5..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/libc++abi.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{ stdenv, cmake, fetch, fetchpatch, libcxx, libunwind, llvm, version }:
-
-let
-  # Newer LLVMs (3.8 onwards) have changed how some basic C++ stuff works, which breaks builds of this older version
-  llvm38-and-above = fetchpatch {
-    url    = "https://trac.macports.org/raw-attachment/ticket/50304/0005-string-Fix-exception-declaration.patch";
-    sha256 = "1lm38n7s0l5dbl7kp4i49pvzxz1mcvlr2vgsnj47agnwhhm63jvr";
-  };
-in stdenv.mkDerivation {
-  name = "libc++abi-${version}";
-
-  src = fetch "libcxxabi" "0ambfcmr2nh88hx000xb7yjm9lsqjjz49w5mlf6dlxzmj3nslzx4";
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
-
-  postUnpack = ''
-    unpackFile ${libcxx.src}
-    unpackFile ${llvm.src}
-    export NIX_CFLAGS_COMPILE+=" -I$PWD/include"
-    export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_INCLUDES=$PWD/$(ls -d libcxx-*)/include"
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '';
-
-  # I can't use patches directly because this is actually a patch for libc++'s source, which we manually extract
-  # into the libc++abi build environment above.
-  prePatch = ''(
-    cd ../libcxx-*
-    patch -p1 < ${llvm38-and-above}
-  )'';
-
-  installPhase = if stdenv.isDarwin
-    then ''
-      for file in lib/*.dylib; do
-        # this should be done in CMake, but having trouble figuring out
-        # the magic combination of necessary CMake variables
-        # if you fancy a try, take a look at
-        # http://www.cmake.org/Wiki/CMake_RPATH_handling
-        install_name_tool -id $out/$file $file
-      done
-      make install
-      install -d 755 $out/include
-      install -m 644 ../include/*.h $out/include
-    ''
-    else ''
-      install -d -m 755 $out/include $out/lib
-      install -m 644 lib/libc++abi.so.1.0 $out/lib
-      install -m 644 ../include/cxxabi.h $out/include
-      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
-      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
-    '';
-
-  meta = {
-    homepage = http://libcxxabi.llvm.org/;
-    description = "A new implementation of low level support for a standard C++ library";
-    license = with stdenv.lib.licenses; [ ncsa mit ];
-    maintainers = with stdenv.lib.maintainers; [ vlstill ];
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/lldb.nix b/nixpkgs/pkgs/development/compilers/llvm/3.7/lldb.nix
deleted file mode 100644
index 294410f99869..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/lldb.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ stdenv
-, fetch
-, cmake
-, zlib
-, ncurses
-, swig
-, which
-, libedit
-, llvm
-, clang-unwrapped
-, python2
-, version
-}:
-
-stdenv.mkDerivation {
-  name = "lldb-${version}";
-
-  src = fetch "lldb" "008fdbyza13ym3v0xpans4z4azw4y16hcbgrrnc4rx2mxwaw62ws";
-
-  patchPhase = ''
-    sed -i 's|/usr/bin/env||' \
-      scripts/Python/finish-swig-Python-LLDB.sh \
-      scripts/Python/build-swig-Python.sh
-  '';
-
-  buildInputs = [ cmake python2 which swig ncurses zlib libedit ];
-
-  preConfigure = ''
-    export CXXFLAGS="-pthread"
-    export LDFLAGS="-ldl"
-  '';
-
-  cmakeFlags = [
-    "-DLLDB_PATH_TO_LLVM_BUILD=${llvm}"
-    "-DLLDB_PATH_TO_CLANG_BUILD=${clang-unwrapped}"
-    "-DPYTHON_VERSION_MAJOR=2"
-    "-DPYTHON_VERSION_MINOR=7"
-    "-DLLDB_DISABLE_LIBEDIT=1" # https://llvm.org/bugs/show_bug.cgi?id=28898
-  ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "A next-generation high-performance debugger";
-    homepage    = http://llvm.org/;
-    license     = stdenv.lib.licenses.ncsa;
-    platforms   = stdenv.lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.7/llvm.nix b/nixpkgs/pkgs/development/compilers/llvm/3.7/llvm.nix
deleted file mode 100644
index a6fd18f94d68..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/3.7/llvm.nix
+++ /dev/null
@@ -1,105 +0,0 @@
-{ stdenv
-, fetch
-, fetchpatch
-, perl
-, groff
-, cmake
-, python2
-, libffi
-, libbfd
-, libxml2
-, ncurses
-, version
-, zlib
-, compiler-rt_src
-, libcxxabi
-, debugVersion ? false
-, enableSharedLibraries ? !stdenv.isDarwin
-}:
-
-let
-  src = fetch "llvm" "1masakdp9g2dan1yrazg7md5am2vacbkb3nahb3dchpc1knr8xxy";
-in stdenv.mkDerivation rec {
-  name = "llvm-${version}";
-
-  unpackPhase = ''
-    unpackFile ${src}
-    mv llvm-${version}.src llvm
-    sourceRoot=$PWD/llvm
-    unpackFile ${compiler-rt_src}
-    mv compiler-rt-* $sourceRoot/projects/compiler-rt
-  '';
-
-  buildInputs = [ perl groff cmake libxml2 python2 libffi ]
-    ++ stdenv.lib.optional stdenv.isDarwin libcxxabi;
-
-  propagatedBuildInputs = [ ncurses zlib ];
-
-  # The goal here is to disable LLVM bindings (currently go and ocaml) regardless
-  # of whether the impure CMake search sheananigans find the compilers in global
-  # paths. This mostly exists because sandbox builds don't work very well on Darwin
-  # and sometimes you get weird behavior if CMake finds go in your system path.
-  # This would be far prettier if there were a CMake option to just disable bindings
-  # but from what I can tell, there isn't such a thing. The file in question only
-  # contains `if(WIN32)` conditions to check whether to disable bindings, so making
-  # those always succeed has the net effect of disabling all bindings.
-  prePatch = ''
-    substituteInPlace cmake/config-ix.cmake --replace "if(WIN32)" "if(1)"
-  ''
-  + stdenv.lib.optionalString (stdenv ? glibc) ''
-    (
-      cd projects/compiler-rt
-      patch -p1 < ${
-        fetchpatch {
-          name = "sigaltstack.patch"; # for glibc-2.26
-          url = https://github.com/llvm-mirror/compiler-rt/commit/8a5e425a68d.diff;
-          sha256 = "0h4y5vl74qaa7dl54b1fcyqalvlpd8zban2d1jxfkxpzyi7m8ifi";
-        }
-      }
-    )
-  '';
-
-  # hacky fix: created binaries need to be run before installation
-  preBuild = ''
-    mkdir -p $out/
-    ln -sv $PWD/lib $out
-  '';
-
-  patches = stdenv.lib.optionals (!stdenv.isDarwin) [
-    # llvm-config --libfiles returns (non-existing) static libs
-    ../fix-llvm-config.patch
-  ];
-
-  cmakeFlags = with stdenv; [
-    "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
-    "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
-    "-DLLVM_BUILD_TESTS=ON"
-    "-DLLVM_ENABLE_FFI=ON"
-    "-DLLVM_ENABLE_RTTI=ON"
-  ] ++ stdenv.lib.optional enableSharedLibraries
-    "-DBUILD_SHARED_LIBS=ON"
-    ++ stdenv.lib.optional (!isDarwin)
-    "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
-    ++ stdenv.lib.optionals ( isDarwin) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DCAN_TARGET_i386=false"
-  ];
-
-  NIX_LDFLAGS = "-lpthread"; # no idea what's the problem
-
-  postBuild = ''
-    rm -fR $out
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.src = src;
-
-  meta = {
-    description = "Collection of modular and reusable compiler and toolchain technologies";
-    homepage    = http://llvm.org/;
-    license     = stdenv.lib.licenses.ncsa;
-    maintainers = with stdenv.lib.maintainers; [ lovek323 raskin ];
-    platforms   = stdenv.lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/rust/rustc.nix b/nixpkgs/pkgs/development/compilers/rust/rustc.nix
index 9b9800431005..59264ca6efad 100644
--- a/nixpkgs/pkgs/development/compilers/rust/rustc.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/rustc.nix
@@ -17,11 +17,11 @@ let
   llvmShared = llvm_7.override { enableSharedLibraries = true; };
 in stdenv.mkDerivation rec {
   pname = "rustc";
-  version = "1.34.0";
+  version = "1.34.2";
 
   src = fetchurl {
     url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz";
-    sha256 = "0n8z1wngkxab1rvixqg6w8b727hzpnm9wp9h8iy3mpbrzp7mmj3s";
+    sha256 = "0mig0prkmlnpbba1cmi17vlsl88ikv5pi26zjy2kcr64l62lm6n6";
   };
 
   __darwinAllowLocalNetworking = true;
diff --git a/nixpkgs/pkgs/development/compilers/solc/default.nix b/nixpkgs/pkgs/development/compilers/solc/default.nix
index 8f005d475dc7..a4fb9b6c6d81 100644
--- a/nixpkgs/pkgs/development/compilers/solc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/solc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, fetchFromGitHub, boost, cmake
+{ stdenv, fetchzip, fetchFromGitHub, boost, cmake, ncurses, python2
 , z3Support ? true, z3 ? null
 }:
 
@@ -6,14 +6,15 @@ assert z3Support -> z3 != null;
 assert z3Support -> stdenv.lib.versionAtLeast z3.version "4.6.0";
 
 let
-  version = "0.5.7";
-  rev = "6da8b019e4a155d1f70abe7a3acc0f9765480a9e";
-  sha256 = "0ii868r0ra6brjnn453kxqvw76p4bwjbvdyqfcn6v1bl2h4s60ir";
+  version = "0.5.8";
+  rev = "23d335f28e4055e67c3b22466ac7c4e41dc48344";
+  sha256 = "10fa4qwfr3gfvxkzzjfs0w2fyij67cczklpj2x5hghcg08amkq37";
   jsoncppURL = https://github.com/open-source-parsers/jsoncpp/archive/1.8.4.tar.gz;
   jsoncpp = fetchzip {
     url = jsoncppURL;
     sha256 = "1z0gj7a6jypkijmpknis04qybs1hkd04d1arr3gy89lnxmp6qzlm";
   };
+  buildSharedLibs = stdenv.hostPlatform.isLinux;
 in
 stdenv.mkDerivation {
   name = "solc-${version}";
@@ -24,9 +25,7 @@ stdenv.mkDerivation {
     inherit rev sha256;
   };
 
-  patches = [
-    ./patches/shared-libs-install.patch
-  ];
+  patches = stdenv.lib.optionals buildSharedLibs [ ./patches/shared-libs-install.patch ];
 
   postPatch = ''
     touch prerelease.txt
@@ -37,18 +36,41 @@ stdenv.mkDerivation {
 
   cmakeFlags = [
     "-DBoost_USE_STATIC_LIBS=OFF"
+  ] ++ stdenv.lib.optionals buildSharedLibs [
     "-DBUILD_SHARED_LIBS=ON"
   ] ++ stdenv.lib.optionals (!z3Support) [
     "-DUSE_Z3=OFF"
   ];
 
-  doCheck = stdenv.hostPlatform.isLinux && stdenv.hostPlatform == stdenv.buildPlatform;
-  checkPhase = "LD_LIBRARY_PATH=./libsolc:./libsolidity:./libevmasm:./libdevcore:./libyul:./liblangutil:./test/tools/yulInterpreter:$LD_LIBRARY_PATH " +
-               "./test/soltest -p true -- --no-ipc --no-smt --testpath ../test";
-
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ boost ]
-    ++ stdenv.lib.optionals z3Support [ z3 ];
+  buildInputs = [ boost ] ++ stdenv.lib.optionals z3Support [ z3 ];
+  checkInputs = [ ncurses python2 ];
+
+  # Test fails on darwin for unclear reason
+  doCheck = stdenv.hostPlatform.isLinux;
+
+  checkPhase = ''
+    while IFS= read -r -d ''' dir
+    do
+      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/$dir
+      export LD_LIBRARY_PATH
+    done <   <(find . -type d -print0)
+
+    pushd ..
+    # IPC tests need aleth avaliable, so we disable it
+    sed -i "s/IPC_ENABLED=true/IPC_ENABLED=false\nIPC_FLAGS=\"--no-ipc\"/" ./scripts/tests.sh
+    for i in ./scripts/*.sh; do
+      patchShebangs "$i"
+    done
+    for i in ./scripts/*.py; do
+      patchShebangs "$i"
+    done
+    for i in ./test/*.sh; do
+      patchShebangs "$i"
+    done
+    TERM=xterm ./scripts/tests.sh
+    popd
+  '';
 
   outputs = [ "out" "dev" ];
 
@@ -57,7 +79,7 @@ stdenv.mkDerivation {
     homepage = https://github.com/ethereum/solidity;
     license = licenses.gpl3;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ dbrock akru lionello ];
+    maintainers = with maintainers; [ dbrock akru lionello sifmelcara ];
     inherit version;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/souper/cmake-fix.patch b/nixpkgs/pkgs/development/compilers/souper/cmake-fix.patch
deleted file mode 100644
index 5ef289f53e93..000000000000
--- a/nixpkgs/pkgs/development/compilers/souper/cmake-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- souper-1be75fe6a96993b57dcba038798fe6d1c7d113eb-src/CMakeLists.txt.orig     2017-01-20 13:55:14.783632588 -0600
-+++ souper-1be75fe6a96993b57dcba038798fe6d1c7d113eb-src/CMakeLists.txt  2017-01-20 13:55:20.505728456 -0600
-@@ -33,7 +33,10 @@
-   OUTPUT_VARIABLE LLVM_SYSTEM_LIBS
-   OUTPUT_STRIP_TRAILING_WHITESPACE
- )
--set(LLVM_LIBS "${LLVM_LIBS} ${LLVM_SYSTEM_LIBS}")
-+
-+if (LLVM_SYSTEM_LIBS)
-+  set(LLVM_LIBS "${LLVM_LIBS} ${LLVM_SYSTEM_LIBS}")
-+endif()
-
- execute_process(
-   COMMAND ${LLVM_CONFIG_EXECUTABLE} --ldflags
diff --git a/nixpkgs/pkgs/development/compilers/souper/default.nix b/nixpkgs/pkgs/development/compilers/souper/default.nix
deleted file mode 100644
index 2203dc980b13..000000000000
--- a/nixpkgs/pkgs/development/compilers/souper/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ stdenv, fetchFromGitHub, cmake, makeWrapper
-, llvmPackages_4, hiredis, z3, gtest
-}:
-
-let
-  klee = fetchFromGitHub {
-    owner = "rsas";
-    repo  = "klee";
-    rev   = "57cd3d43056b029d9da3c6b3c666c4153554c04f";
-    sha256 = "197wb7nbirlfpx2jr3afpjjhcj7slc4dxxi02j3kmazz9kcqaygz";
-  };
-in stdenv.mkDerivation rec {
-  name = "souper-unstable-${version}";
-  version = "2017-03-23";
-
-  src = fetchFromGitHub {
-    owner  = "google";
-    repo   = "souper";
-    rev    = "cf2911d2eb1e7c8ab465df5a722fa5cdac06e6fc";
-    sha256 = "1kg08a1af4di729pn1pip2lzqzlvjign6av95214f5rr3cq2q0cl";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    makeWrapper
-  ];
-
-  buildInputs = [
-    llvmPackages_4.llvm
-    llvmPackages_4.clang-unwrapped
-    hiredis
-    gtest
-  ];
-
-  patches = [ ./cmake-fix.patch ];
-
-  enableParallelBuilding = true;
-
-  preConfigure = ''
-      mkdir -pv third_party
-      cp -R "${klee}" third_party/klee
-  '';
-
-  installPhase = ''
-      mkdir -pv $out/bin
-      cp -v ./souper       $out/bin/
-      cp -v ./clang-souper $out/bin/
-      wrapProgram "$out/bin/souper" \
-          --add-flags "-z3-path=\"${z3}/bin/z3\""
-  '';
-
-  meta = with stdenv.lib; {
-    description = "A superoptimizer for LLVM IR";
-    homepage    = "https://github.com/google/souper";
-    license     = licenses.asl20;
-    maintainers = with maintainers; [ taktoa ];
-    platforms   = with platforms; linux;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/vala/default.nix b/nixpkgs/pkgs/development/compilers/vala/default.nix
index dfd40c92ecfa..65a3f19102e0 100644
--- a/nixpkgs/pkgs/development/compilers/vala/default.nix
+++ b/nixpkgs/pkgs/development/compilers/vala/default.nix
@@ -4,14 +4,12 @@
 
 let
   generic = lib.makeOverridable ({
-    major, minor, sha256,
+    version, sha256,
     extraNativeBuildInputs ? [],
     extraBuildInputs ? [],
     withGraphviz ? false
   }:
   let
-    atLeast = lib.versionAtLeast "${major}.${minor}";
-
     # Patches from the openembedded-core project to build vala without graphviz
     # support. We need to apply an additional patch to allow building when the
     # header file isn't available at all, but that patch (./gvc-compat.patch)
@@ -43,23 +41,23 @@ let
         # We've reverted the addition of the "--disable-valadoc" option
         # and then applied the following patch.
         #     0.42.4: https://github.com/openembedded/openembedded-core/raw/f2b4f9ec6f44dced7f88df849cca68961419eeb8/meta/recipes-devtools/vala/vala/disable-graphviz.patch
-        "0.44" = ./disable-graphviz-0.44.1.patch;
+        "0.44" = ./disable-graphviz-0.44.3.patch;
 
-      }.${major} or (throw "no graphviz patch for this version of vala");
+      }.${lib.versions.majorMinor version} or (throw "no graphviz patch for this version of vala");
 
-    disableGraphviz = atLeast "0.38" && !withGraphviz;
+    disableGraphviz = lib.versionAtLeast version "0.38" && !withGraphviz;
 
   in stdenv.mkDerivation rec {
-    name = "vala-${version}";
-    version = "${major}.${minor}";
+    pname = "vala";
+    inherit version;
 
     setupHook = substituteAll {
       src = ./setup-hook.sh;
-      apiVersion = major;
+      apiVersion = lib.versions.majorMinor version;
     };
 
     src = fetchurl {
-      url = "mirror://gnome/sources/vala/${major}/${name}.tar.xz";
+      url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
       inherit sha256;
     };
 
@@ -78,19 +76,27 @@ let
 
     nativeBuildInputs = [
       pkgconfig flex bison libxslt
-    ] ++ lib.optional (stdenv.isDarwin && (atLeast "0.38")) expat
+    ] ++ lib.optional (stdenv.isDarwin && (lib.versionAtLeast version "0.38")) expat
       ++ lib.optional disableGraphviz autoreconfHook # if we changed our ./configure script, need to reconfigure
       ++ extraNativeBuildInputs;
 
     buildInputs = [
       glib libiconv libintl
-    ] ++ lib.optional (atLeast "0.38" && withGraphviz) graphviz
+    ] ++ lib.optional (lib.versionAtLeast version "0.38" && withGraphviz) graphviz
       ++ extraBuildInputs;
 
     enableParallelBuilding = true;
 
     doCheck = false; # fails, requires dbus daemon
 
+    # Wait for PR #59372
+    #passthru = {
+    #  updateScript = gnome3.updateScript {
+    #    attrPath = "${pname}_${lib.versions.major version}_${lib.versions.minor version}";
+    #    packageName = pname;
+    #  };
+    #};
+
     meta = with stdenv.lib; {
       description = "Compiler for GObject type system";
       homepage = https://wiki.gnome.org/Projects/Vala;
@@ -102,34 +108,29 @@ let
 
 in rec {
   vala_0_36 = generic {
-    major   = "0.36";
-    minor   = "18";
-    sha256  = "0csb9skgy663y05kl813dsarzjbfcdsmx5fvz13p8gas3hycciq9";
+    version = "0.36.19";
+    sha256 = "05si2f4zjvq0q3wqfh1wxdq20jy1xqxq2skqh8vfh2jyp355lwar";
   };
 
   vala_0_38 = generic {
-    major   = "0.38";
-    minor   = "10";
+    version = "0.38.10";
     sha256  = "1rdwwqs973qv225v8b5izcgwvqn56jxgr4pa3wxxbliar3aww5sw";
     extraNativeBuildInputs = [ autoconf ] ++ lib.optional stdenv.isDarwin libtool;
   };
 
   vala_0_40 = generic {
-    major   = "0.40";
-    minor   = "14";
-    sha256  = "0llid9b9cgjcrcclc0pw2skkssb7br7b2clq9cql3p14dl94gki0";
+    version = "0.40.15";
+    sha256 = "0mfayli159yyw6abjf6sgq41j54mr3nspg25b1kxhypcz0scjm19";
   };
 
   vala_0_42 = generic {
-    major   = "0.42";
-    minor   = "6";
-    sha256  = "14024gvs23q323fmd62hqd8jiypaxbjjvamyd782ixbhxmpz8x1p";
+    version = "0.42.7";
+    sha256 = "029ksbsdpl581wzy570kj4kkw8b4bizgh494c051zsvkwck55p83";
   };
 
   vala_0_44 = generic {
-    major   = "0.44";
-    minor   = "1";
-    sha256 = "1qiglkgymws6a3m8xz1v8b3na165ywx2dbipp3bdg134bi0w3a4n";
+    version = "0.44.3";
+    sha256 = "1sgas7z6y9r2mf4pxry3fx2awdnzn3vlg2sxd3hqpy2a90ib8lw5";
   };
 
   vala = vala_0_44;
diff --git a/nixpkgs/pkgs/development/compilers/vala/disable-graphviz-0.44.1.patch b/nixpkgs/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch
index 2752aa1e2050..fc971c26492b 100644
--- a/nixpkgs/pkgs/development/compilers/vala/disable-graphviz-0.44.1.patch
+++ b/nixpkgs/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch
@@ -19,17 +19,17 @@ index f70234759..b3d6c3833 100644
 -	--enable-valadoc \
 -	--enable-unversioned \
 -	$(NULL)
- 
+
  if ENABLE_UNVERSIONED
  aclocaldir = $(datadir)/aclocal
 diff --git a/configure.ac b/configure.ac
-index 16ebd1f81..cf23db4b8 100644
+index 504db13aa..622397747 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -156,10 +156,11 @@ PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= $GLIB_REQUIRED)
- AC_SUBST(GMODULE_CFLAGS)
+@@ -157,10 +157,11 @@ AC_SUBST(GMODULE_CFLAGS)
  AC_SUBST(GMODULE_LIBS)
- 
+
+ AC_ARG_WITH(cgraph, AS_HELP_STRING([--with-cgraph], [Required flag for cross-compilation to define capability of graphviz]), [], with_cgraph=check)
 -AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes)
 -if test x$enable_valadoc = xyes; then
 +AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes)
@@ -40,14 +40,14 @@ index 16ebd1f81..cf23db4b8 100644
  	cgraph_tmp_LIBADD="$LIBADD"
  	cgraph_tmp_CFLAGS="$CFLAGS"
  	LIBADD="$LIBADD $LIBGVC_LIBS"
-@@ -186,8 +187,8 @@ if test x$enable_valadoc = xyes; then
+@@ -198,8 +199,8 @@ if test x$enable_valadoc = xyes; then
  	LIBADD="$cgraph_tmp_LIBADD"
  	CFLAGS="$cgraph_tmp_CFLAGS"
  fi
 +AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes)
  AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes")
 -AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes)
- 
+
  AC_PATH_PROG([XSLTPROC], [xsltproc], :)
  AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != :)
 diff --git a/doc/Makefile.am b/doc/Makefile.am
@@ -55,14 +55,14 @@ index d2684a0e0..b343c7c10 100644
 --- a/doc/Makefile.am
 +++ b/doc/Makefile.am
 @@ -6,16 +6,11 @@ SUBDIRS = \
- 
+
  dist_man_MANS = \
  	valac.1 \
 +	valadoc.1 \
  	vala-gen-introspect.1 \
  	vapigen.1 \
  	$(NULL)
- 
+
 -if ENABLE_VALADOC
 -dist_man_MANS += \
 -	valadoc.1 \
@@ -74,7 +74,7 @@ index d2684a0e0..b343c7c10 100644
  	valadoc.h2m \
 @@ -24,11 +19,7 @@ EXTRA_DIST = \
  	$(NULL)
- 
+
  if HAVE_HELP2MAN
 -if ENABLE_VALADOC
  manpages: valac.1 valadoc.1 vala-gen-introspect.1 vapigen.1
@@ -83,7 +83,7 @@ index d2684a0e0..b343c7c10 100644
 -endif
  	@rm $^
  	$(MAKE) $(AM_MAKEFLAGS) $^
- 
+
 @@ -37,13 +28,11 @@ valac.1:
  		--include $(srcdir)/valac.h2m \
  		--libtool --no-info \
@@ -108,18 +108,18 @@ index d2684a0e0..b343c7c10 100644
  	cd $(DESTDIR)$(man1dir) && $(LN_S) -f vala-gen-introspect@PACKAGE_SUFFIX@.1 vala-gen-introspect.1
  	cd $(DESTDIR)$(man1dir) && $(LN_S) -f vapigen@PACKAGE_SUFFIX@.1 vapigen.1
  endif
- 
- 
+
+
 -if ENABLE_VALADOC
  COMMON_VALADOCFLAGS = \
  	--force \
  	--verbose \
 @@ -150,7 +136,6 @@ internal-apis/valadoc: $(valadoc_VALASOURCES) internal-apis/codegen
  	@touch $@
- 
+
  internal-api-docs: internal-apis/gee internal-apis/vala internal-apis/ccode internal-apis/codegen internal-apis/valadoc
 -endif
- 
+
  clean-local:
  	rm -rf $(builddir)/internal-apis
 diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am
@@ -147,7 +147,7 @@ index 7456fb836..107338e91 100644
  	html/htmlmarkupwriter.vala \
  	html/htmlrenderer.vala \
  	$(NULL)
- 
+
 +if ENABLE_GRAPHVIZ
 +libvaladoc_la_VALASOURCES += \
 +	charts/chart.vala \
@@ -177,23 +177,23 @@ index 7456fb836..107338e91 100644
  		$(filter %.vala %.c,$^)
  	touch $@
 @@ -207,6 +214,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc
- 
+
  valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc
  	cp $< $@
 +if !ENABLE_GRAPHVIZ
 +	sed -i "s/libgvc //g" $@
 +endif
- 
+
  vapidir = $(datadir)/vala/vapi
  dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi
 @@ -214,6 +224,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps
- 
+
  valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps
  	cp $< $@
 +if !ENABLE_GRAPHVIZ
 +	sed -i "s/libgvc//g" $@
 +endif
- 
+
  EXTRA_DIST = \
  	$(libvaladoc_la_VALASOURCES) \
 diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala
@@ -211,20 +211,20 @@ index 46578c28f..f6ce7097c 100644
 +#endif
  	protected ErrorReporter reporter;
  	protected string package_list_link = "../index.html";
- 
+
 @@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
  		this.linker = new LinkHelper ();
- 
+
  		_renderer = new HtmlRenderer (settings, this.linker, this.cssresolver);
 +#if HAVE_GRAPHVIZ
  		this.image_factory = new SimpleChartFactory (settings, linker);
 +#endif
  	}
- 
- 
+
+
 @@ -1025,6 +1031,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
  	}
- 
+
  	protected void write_image_block (Api.Node element) {
 +#if HAVE_GRAPHVIZ
  		if (element is Class || element is Interface || element is Struct) {
@@ -236,7 +236,7 @@ index 46578c28f..f6ce7097c 100644
  		}
 +#endif
  	}
- 
+
  	public void write_namespace_content (Namespace node, Api.Node? parent) {
 diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala
 index 5aa4afdea..e79b0b8f5 100644
@@ -245,7 +245,7 @@ index 5aa4afdea..e79b0b8f5 100644
 @@ -51,12 +51,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter {
  		}
  	}
- 
+
 +#if HAVE_GRAPHVIZ
  	public unowned MarkupWriter add_usemap (Charts.Chart chart) {
  		string? buf = (string?) chart.write_buffer ("cmapx");
@@ -256,6 +256,6 @@ index 5aa4afdea..e79b0b8f5 100644
 +#else
 +	public unowned MarkupWriter add_usemap (void* chart) {
 +#endif
- 
+
  		return this;
  	}
diff --git a/nixpkgs/pkgs/development/compilers/z88dk/default.nix b/nixpkgs/pkgs/development/compilers/z88dk/default.nix
index 1590075dc2a0..19056ec2b6fd 100644
--- a/nixpkgs/pkgs/development/compilers/z88dk/default.nix
+++ b/nixpkgs/pkgs/development/compilers/z88dk/default.nix
@@ -1,37 +1,46 @@
-{ fetchFromGitHub, fetchpatch, stdenv, makeWrapper, unzip, libxml2, m4, uthash }:
+{ fetchFromGitHub, stdenv, makeWrapper, unzip, libxml2, m4, uthash, which }:
 
 stdenv.mkDerivation rec {
-  name = "z88dk-${version}";
-  version = "20180217";
-  rev = "49a7c6032b2675af742f5b0b3aa5bd5260bdd814";
-  short_rev = "${builtins.substring 0 7 rev}";
+  pname = "z88dk";
+  version = "unstable-2019-05-09";
 
   src = fetchFromGitHub {
     owner = "z88dk";
     repo  = "z88dk";
-    inherit rev;
-    sha256 = "00vbklh6lkq1gyd08ig2vcg6c1mghvlwfx3vq3wldf34hcs3k4pp";
+    rev = "826d68632c3a7c17df88dd2ec54571a6041da69c";
+    sha256 = "104qgb01sdb97mkcxnq1cdlqi5qvjm4rd9bg5r42pdfz81ss49xj";
+    fetchSubmodules = true;
   };
 
-  # https://github.com/z88dk/z88dk/pull/612
-  patches = [(fetchpatch {
-    url = "https://github.com/Mic92/z88dk/commit/5b4ca132fa1f31c9ac48cf2220358715739ca0b2.patch";
-    sha256 = "1p2l31j68p7jzykhkhd9iagn2lr08hdclk3cl9l32p1q6ghdipfv";
-  })];
-
   postPatch = ''
     # we dont rely on build.sh :
     export PATH="$PWD/bin:$PATH" # needed to have zcc in testsuite
     export ZCCCFG=$PWD/lib/config/
+    # we don't want to build zsdcc since it required network (svn)
+    # we test in checkPhase
+    substituteInPlace Makefile \
+      --replace 'testsuite bin/z88dk-lib$(EXESUFFIX)' 'bin/z88dk-lib$(EXESUFFIX)'\
+      --replace 'ALL_EXT = bin/zsdcc$(EXESUFFIX)' 'ALL_EXT ='   
+  '';
+
+  checkPhase = ''
+    make testsuite
   '';
+  #failed on Issue_1105_function_pointer_calls
+  doCheck = stdenv.hostPlatform.system != "aarch64-linux";
+
+  #_FORTIFY_SOURCE requires compiling with optimization (-O)
+  NIX_CFLAGS_COMPILE = "-O";
 
+  short_rev = "${builtins.substring 0 7 src.rev}";
   makeFlags = [
-    "prefix=$(out)"
     "git_rev=${short_rev}"
     "version=${version}"
+    "prefix=$(out)"
     "git_count=0"
   ];
-  nativeBuildInputs = [ makeWrapper unzip ];
+
+  nativeBuildInputs = [ which makeWrapper unzip ];
   buildInputs = [ libxml2 m4 uthash ];
 
   preInstall = ''
@@ -41,10 +50,10 @@ stdenv.mkDerivation rec {
   installTargets = "libs install";
 
   meta = with stdenv.lib; {
-    homepage    = https://www.z88dk.org;
+    homepage    = "https://www.z88dk.org";
     description = "z80 Development Kit";
     license     = licenses.clArtistic;
     maintainers = [ maintainers.genesis ];
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-cairo/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-cairo/default.nix
index 4bd49b06796d..592e6ad89994 100644
--- a/nixpkgs/pkgs/development/guile-modules/guile-cairo/default.nix
+++ b/nixpkgs/pkgs/development/guile-modules/guile-cairo/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ guile cairo expat ];
   enableParallelBuilding = true;
 
-  doCheck = true;
+  doCheck = false; # Cannot find unit-test module from guile-lib
   checkInputs = [ guile-lib ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-lib/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-lib/default.nix
index c3aa84007917..cea464ad5d27 100644
--- a/nixpkgs/pkgs/development/guile-modules/guile-lib/default.nix
+++ b/nixpkgs/pkgs/development/guile-modules/guile-lib/default.nix
@@ -4,23 +4,18 @@ assert stdenv ? cc && stdenv.cc.isGNU;
 
 let
   name = "guile-lib-${version}";
-  version = "0.2.2";
+  version = "0.2.6.1";
 in stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "mirror://savannah/guile-lib/${name}.tar.gz";
-    sha256 = "1f9n2b5b5r75lzjinyk6zp6g20g60msa0jpfrk5hhg4j8cy0ih4b";
+    sha256 = "0aizxdif5dpch9cvs8zz5g8ds5s4xhfnwza2il5ji7fv2h7ks7bd";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ guile texinfo ];
 
-  # One test doesn't seem to be compatible with guile_2_2.
-  patchPhase = ''
-    sed -i -e '/sxml.ssax.scm/d' unit-tests/Makefile*
-  '';
-
   doCheck = true;
 
   preCheck = ''
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
index ba1e461feab1..548f9750d7e9 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
@@ -1236,8 +1236,9 @@ self: super: {
   pandoc = doDistribute super.pandoc_2_7_2;
   pandoc-citeproc = doDistribute super.pandoc-citeproc_0_16_2;
 
-  # https://github.com/qfpl/tasty-hedgehog/issues/24
-  tasty-hedgehog = dontCheck super.tasty-hedgehog;
+  # Current versions of tasty-hedgehog need hedgehog 1.x, which
+  # we don't have in LTS-13.x.
+  tasty-hedgehog = super.tasty-hedgehog.override { hedgehog = self.hedgehog_1_0; };
 
   # The latest release version is ancient. You really need this tool from git.
   haskell-ci = generateOptparseApplicativeCompletion "haskell-ci"
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index fe76c581edaa..0f942bb25b47 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -46,7 +46,7 @@ default-package-overrides:
   # Newer versions don't work in LTS-12.x
   - alsa-mixer < 0.3
   - cassava-megaparsec < 2
-  # LTS Haskell 13.20
+  # LTS Haskell 13.21
   - abstract-deque ==0.3
   - abstract-deque-tests ==0.3
   - abstract-par ==0.3.3
@@ -196,7 +196,7 @@ default-package-overrides:
   - apecs-gloss ==0.2.0
   - apecs-physics ==0.3.2
   - api-field-json-th ==0.1.0.2
-  - appar ==0.1.7
+  - appar ==0.1.8
   - appendmap ==0.1.5
   - apply-refact ==0.6.0.0
   - apportionment ==0.0.0.3
@@ -282,7 +282,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.1
+  - binary-tagged ==0.1.5.2
   - bindings-DSL ==1.0.25
   - bindings-GLFW ==3.2.1.1
   - bindings-libzip ==1.0.1
@@ -458,7 +458,7 @@ default-package-overrides:
   - conduit-throttle ==0.3.1.0
   - conduit-zstd ==0.0.1.1
   - confcrypt ==0.1.0.4
-  - configuration-tools ==0.4.0
+  - configuration-tools ==0.4.1
   - configurator ==0.3.0.0
   - configurator-export ==0.1.0.1
   - connection ==0.2.8
@@ -795,7 +795,7 @@ default-package-overrides:
   - generics-eot ==0.4.0.1
   - generics-mrsop ==1.2.2
   - generics-sop ==0.4.0.1
-  - generics-sop-lens ==0.1.2.1
+  - generics-sop-lens ==0.1.3
   - genvalidity ==0.7.0.2
   - genvalidity-aeson ==0.2.0.2
   - genvalidity-bytestring ==0.3.0.1
@@ -804,7 +804,7 @@ default-package-overrides:
   - genvalidity-hspec-aeson ==0.3.0.1
   - genvalidity-hspec-binary ==0.2.0.3
   - genvalidity-hspec-cereal ==0.2.0.3
-  - genvalidity-hspec-hashable ==0.2.0.3
+  - genvalidity-hspec-hashable ==0.2.0.4
   - genvalidity-hspec-optics ==0.1.1.1
   - genvalidity-path ==0.3.0.2
   - genvalidity-property ==0.3.0.0
@@ -895,7 +895,7 @@ default-package-overrides:
   - hamtsolo ==1.0.3
   - HandsomeSoup ==0.4.2
   - hapistrano ==0.3.9.2
-  - happy ==1.19.9
+  - happy ==1.19.10
   - hasbolt ==0.1.3.3
   - hashable ==1.2.7.0
   - hashable-time ==0.2.0.2
@@ -1000,7 +1000,7 @@ default-package-overrides:
   - hsinstall ==2.2
   - HSlippyMap ==3.0.1
   - hslogger ==1.2.12
-  - hslua ==1.0.3
+  - hslua ==1.0.3.1
   - hslua-aeson ==1.0.0
   - hslua-module-text ==0.2.1
   - HsOpenSSL ==0.11.4.16
@@ -1046,7 +1046,7 @@ default-package-overrides:
   - http-common ==0.8.2.0
   - http-conduit ==2.3.7.1
   - http-date ==0.0.8
-  - http-directory ==0.1.1
+  - http-directory ==0.1.2
   - httpd-shed ==0.4.0.3
   - http-link-header ==1.0.3.1
   - http-media ==0.7.1.3
@@ -1063,7 +1063,7 @@ default-package-overrides:
   - hw-bits ==0.7.0.6
   - hw-conduit ==0.2.0.5
   - hw-conduit-merges ==0.2.0.0
-  - hw-diagnostics ==0.0.0.5
+  - hw-diagnostics ==0.0.0.7
   - hweblib ==0.6.3
   - hw-eliasfano ==0.1.0.1
   - hw-excess ==0.2.0.2
@@ -1174,7 +1174,7 @@ default-package-overrides:
   - JuicyPixels-scale-dct ==0.1.2
   - justified-containers ==0.3.0.0
   - kan-extensions ==5.2
-  - kanji ==3.4.0
+  - kanji ==3.4.0.2
   - katip ==0.7.0.0
   - kawhi ==0.3.0
   - kazura-queue ==0.1.0.4
@@ -1310,7 +1310,7 @@ default-package-overrides:
   - microbench ==0.1
   - microformats2-parser ==1.0.1.9
   - microlens ==0.4.10
-  - microlens-aeson ==2.3.0.1
+  - microlens-aeson ==2.3.0.4
   - microlens-contra ==0.1.0.2
   - microlens-ghc ==0.4.10
   - microlens-mtl ==0.1.11.1
@@ -1430,7 +1430,7 @@ default-package-overrides:
   - network-transport ==0.5.2
   - network-transport-composed ==0.2.1
   - network-uri ==2.6.1.0
-  - newtype ==0.2
+  - newtype ==0.2.1.0
   - newtype-generics ==0.5.3
   - nicify-lib ==1.0.1
   - NineP ==0.0.2.1
@@ -1472,7 +1472,7 @@ default-package-overrides:
   - OpenAL ==1.7.0.4
   - open-browser ==0.2.1.0
   - openexr-write ==0.1.0.2
-  - OpenGL ==3.0.2.2
+  - OpenGL ==3.0.3.0
   - OpenGLRaw ==3.3.2.0
   - openpgp-asciiarmor ==0.1.1
   - opensource ==0.1.1.0
@@ -1505,7 +1505,7 @@ default-package-overrides:
   - parsec-numbers ==0.1.0
   - parsec-numeric ==0.1.0.0
   - ParsecTools ==0.0.2.0
-  - parser-combinators ==1.0.2
+  - parser-combinators ==1.0.3
   - parsers ==0.12.10
   - partial-handler ==1.0.3
   - partial-isomorphisms ==0.2.2.1
@@ -1602,7 +1602,7 @@ default-package-overrides:
   - prettyprinter-compat-wl-pprint ==1.0.0.1
   - pretty-show ==1.9.5
   - pretty-simple ==2.2.0.1
-  - pretty-sop ==0.2.0.2
+  - pretty-sop ==0.2.0.3
   - pretty-types ==0.2.3.1
   - primes ==0.2.1.0
   - primitive ==0.6.4.0
@@ -1687,7 +1687,7 @@ default-package-overrides:
   - read-env-var ==1.0.0.0
   - rebase ==1.3.1
   - record-dot-preprocessor ==0.1.5
-  - records-sop ==0.1.0.2
+  - records-sop ==0.1.0.3
   - recursion-schemes ==5.1.3
   - reducers ==3.12.3
   - refact ==0.3.0.2
@@ -1704,10 +1704,10 @@ default-package-overrides:
   - regex-pcre-builtin ==0.94.4.8.8.35
   - regex-pcre-text ==0.94.0.1
   - regex-posix ==0.95.2
-  - regex-tdfa ==1.2.3.1
+  - regex-tdfa ==1.2.3.2
   - regex-tdfa-text ==1.0.0.3
   - regex-with-pcre ==1.0.2.0
-  - registry ==0.1.3.6
+  - registry ==0.1.4.0
   - reinterpret-cast ==0.1.0
   - relapse ==1.0.0.0
   - relational-query ==0.12.1.0
@@ -1927,7 +1927,7 @@ default-package-overrides:
   - Strafunski-StrategyLib ==5.0.1.0
   - stratosphere ==0.29.1
   - streaming ==0.2.2.0
-  - streaming-attoparsec ==1.0.0
+  - streaming-attoparsec ==1.0.0.1
   - streaming-bytestring ==0.1.6
   - streaming-commons ==0.2.1.0
   - streaming-wai ==0.1.1
@@ -2057,7 +2057,7 @@ default-package-overrides:
   - throttle-io-stream ==0.2.0.1
   - throwable-exceptions ==0.1.0.9
   - th-strict-compat ==0.1.0.1
-  - th-utilities ==0.2.1.0
+  - th-utilities ==0.2.3.0
   - thyme ==0.3.5.5
   - tidal ==1.0.13
   - tile ==0.3.0.0
@@ -2092,7 +2092,7 @@ default-package-overrides:
   - transformers-compat ==0.6.4
   - transformers-fix ==1.0
   - traverse-with-class ==1.0.0.0
-  - tree-diff ==0.0.2
+  - tree-diff ==0.0.2.1
   - tree-fun ==0.8.1.0
   - trifecta ==2
   - triplesec ==0.2.2.0
@@ -2201,7 +2201,7 @@ default-package-overrides:
   - vivid ==0.4.2.3
   - vivid-osc ==0.5.0.0
   - vivid-supercollider ==0.4.1.2
-  - void ==0.7.2
+  - void ==0.7.3
   - vty ==5.25.1
   - wai ==3.2.2
   - wai-app-static ==3.1.6.3
@@ -2239,7 +2239,7 @@ default-package-overrides:
   - web-routes-wai ==0.24.3.1
   - webrtc-vad ==0.1.0.3
   - websockets ==0.12.5.3
-  - websockets-snap ==0.10.3.0
+  - websockets-snap ==0.10.3.1
   - weigh ==0.0.14
   - wide-word ==0.1.0.8
   - wikicfp-scraper ==0.1.0.11
@@ -2899,6 +2899,7 @@ broken-packages:
   - atomic-primops-vector
   - atomo
   - ats-format
+  - ats-pkg
   - ats-setup
   - ats-storable
   - attic-schedule
@@ -2968,6 +2969,7 @@ broken-packages:
   - azure-service-api
   - azure-servicebus
   - azurify
+  - b9
   - babylon
   - backdropper
   - backtracking-exceptions
@@ -3054,6 +3056,7 @@ broken-packages:
   - binary-ext
   - binary-file
   - binary-indexed-tree
+  - binary-instances
   - binary-protocol
   - binary-protocol-zmq
   - binary-streams
@@ -3321,6 +3324,7 @@ broken-packages:
   - cabin
   - cabocha
   - cached
+  - cacophony
   - caffegraph
   - cairo-core
   - cake
@@ -3696,6 +3700,7 @@ broken-packages:
   - context-free-grammar
   - context-stack
   - ContextAlgebra
+  - contiguous-checked
   - contiguous-fft
   - continue
   - continuum
@@ -4006,6 +4011,7 @@ broken-packages:
   - derp-lib
   - descript-lang
   - deterministic-game-engine
+  - detour-via-sci
   - detour-via-uom
   - deunicode
   - devil
@@ -4197,6 +4203,7 @@ broken-packages:
   - Dust-crypto
   - Dust-tools
   - Dust-tools-pcap
+  - dvault
   - dvda
   - dvdread
   - dvi-processing
@@ -4542,6 +4549,7 @@ broken-packages:
   - flexiwrap
   - flexiwrap-smallcheck
   - flickr
+  - flight-kml
   - Flippi
   - flite
   - float-binstring
@@ -4821,6 +4829,7 @@ broken-packages:
   - gi-wnck
   - giak
   - Gifcurry
+  - ginger
   - ginsu
   - gipeda
   - gist
@@ -5429,6 +5438,7 @@ broken-packages:
   - heckle
   - hedgehog-checkers
   - hedgehog-checkers-lens
+  - hedgehog-fn
   - hedgehog-gen-json
   - Hedi
   - hedis-config
@@ -5520,6 +5530,7 @@ broken-packages:
   - hgrib
   - hharp
   - HHDL
+  - hhp
   - hi3status
   - hiccup
   - hichi
@@ -6519,6 +6530,7 @@ broken-packages:
   - ldif
   - leaf
   - leaky
+  - lean
   - leanpub-wreq
   - leapseconds
   - learn
@@ -6720,6 +6732,7 @@ broken-packages:
   - LslPlus
   - lsp-test
   - lsystem
+  - ltext
   - ltk
   - lua-bc
   - luachunk
@@ -7276,6 +7289,7 @@ broken-packages:
   - Nomyx-Web
   - non-empty-zipper
   - NonEmpty
+  - nonempty-containers
   - NonEmptyList
   - normalization-insensitive
   - NoSlow
@@ -7785,6 +7799,7 @@ broken-packages:
   - primitive-indexed
   - primitive-maybe
   - primitive-simd
+  - primitive-sort
   - primula-board
   - primula-bot
   - pringletons
@@ -8097,6 +8112,7 @@ broken-packages:
   - regions-mtl
   - register-machine-typelevel
   - registry
+  - registry-hedgehog
   - regress
   - regular
   - regular-extras
@@ -8109,6 +8125,7 @@ broken-packages:
   - relacion
   - relation
   - relational-postgresql8
+  - relational-record-examples
   - relative-date
   - reload
   - remark
@@ -9074,6 +9091,7 @@ broken-packages:
   - tasty-jenkins-xml
   - tasty-laws
   - tasty-lens
+  - tasty-lua
   - tasty-quickcheck-laws
   - tasty-stats
   - tasty-tap
diff --git a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
index ddcfa0ff447c..4cc3c34b9d1b 100644
--- a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
@@ -768,8 +768,8 @@ self: {
      }:
      mkDerivation {
        pname = "Agda";
-       version = "2.6.0";
-       sha256 = "1f3gq1vd9ra3421ff5an6q33mlfzc2qvaxmfg9qhvr4z99ivqwdz";
+       version = "2.6.0.1";
+       sha256 = "1s600ry1qwizr3ynyj05rvlx7jdcw9a1viyc0ycjamm5sjf8mf3v";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -4846,8 +4846,8 @@ self: {
      }:
      mkDerivation {
        pname = "ENIG";
-       version = "0.0.0.2";
-       sha256 = "0rnqp6bdib4w683gvj6i0p3p7ms0zw6vwvmsgy9gwfwxqkh6m3ps";
+       version = "0.0.1.0";
+       sha256 = "1zv6dybsnj3kssiyyg69lxyj5wvi5qjx0xp7skg362xzqmi97ch3";
        libraryHaskellDepends = [ base text unicode-transforms vector ];
        testHaskellDepends = [
          base HUnit QuickCheck test-framework test-framework-hunit
@@ -6221,8 +6221,8 @@ self: {
      }:
      mkDerivation {
        pname = "Frames-map-reduce";
-       version = "0.1.0.0";
-       sha256 = "05xk49qc5l8h7qnxhyxj9k2r2igcf7qc4njiw9w28fajlmnrgcw3";
+       version = "0.1.0.1";
+       sha256 = "1m3ifx867hn4zhrj9xlars44w3sv1sp6ja38kb6f3lnhr86nf8g2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -10545,6 +10545,22 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
+  "HsYAML_0_1_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, mtl, parsec, text }:
+     mkDerivation {
+       pname = "HsYAML";
+       version = "0.1.2.0";
+       sha256 = "1pajfhj16559v64ixm8j7bvxdqmxg6c3c0z3wz7in8ckswgzfp54";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers mtl parsec text
+       ];
+       description = "Pure Haskell YAML 1.2 parser";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "HsYAML-aeson" = callPackage
     ({ mkDerivation, aeson, base, bytestring, HsYAML, mtl, text, vector
      }:
@@ -11299,6 +11315,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "JuicyPixels-extra_0_4_1" = callPackage
+    ({ mkDerivation, base, criterion, hspec, hspec-discover
+     , JuicyPixels
+     }:
+     mkDerivation {
+       pname = "JuicyPixels-extra";
+       version = "0.4.1";
+       sha256 = "0k2bz2xn15qg400xl6xs52j2abcc3js42rd9p9sy4dwlkcdmblbj";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base JuicyPixels ];
+       testHaskellDepends = [ base hspec JuicyPixels ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [ base criterion JuicyPixels ];
+       description = "Efficiently scale, crop, flip images with JuicyPixels";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "JuicyPixels-repa" = callPackage
     ({ mkDerivation, base, bytestring, JuicyPixels, repa, vector }:
      mkDerivation {
@@ -12926,7 +12960,7 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "MissingH_1_4_0_1" = callPackage
+  "MissingH" = callPackage
     ({ mkDerivation, array, base, containers, directory
      , errorcall-eq-instance, filepath, hslogger, HUnit, mtl, network
      , old-locale, old-time, parsec, process, QuickCheck, random
@@ -12934,10 +12968,10 @@ self: {
      }:
      mkDerivation {
        pname = "MissingH";
-       version = "1.4.0.1";
-       sha256 = "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8";
+       version = "1.4.1.0";
+       sha256 = "1jp0vk6w9a7fzrbxfhx773105jp2s1n50klq9ak6spfl7bgx5v29";
        revision = "2";
-       editedCabalFile = "0dqrzacp2qr5bm9p8jipnadknizn9zr5gyk5fvgf9av36yl4p2rb";
+       editedCabalFile = "1k7d8cgvpmln4imcrfpj4c02n3c5l1gkd5hs4hnar9ln0qh61cfx";
        libraryHaskellDepends = [
          array base containers directory filepath hslogger HUnit mtl network
          old-locale old-time parsec process random regex-compat time unix
@@ -12949,30 +12983,30 @@ self: {
        ];
        description = "Large utility library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "MissingH" = callPackage
+  "MissingH_1_4_2_0" = callPackage
     ({ mkDerivation, array, base, containers, directory
      , errorcall-eq-instance, filepath, hslogger, HUnit, mtl, network
-     , old-locale, old-time, parsec, process, QuickCheck, random
-     , regex-compat, testpack, time, unix
+     , network-bsd, old-locale, old-time, parsec, process, random
+     , regex-compat, time, unix
      }:
      mkDerivation {
        pname = "MissingH";
-       version = "1.4.1.0";
-       sha256 = "1jp0vk6w9a7fzrbxfhx773105jp2s1n50klq9ak6spfl7bgx5v29";
+       version = "1.4.2.0";
+       sha256 = "1wfhpb351nrqjryf9si9j13nkvrqybhkkyc9643wqq8ywkdd59b9";
        libraryHaskellDepends = [
-         array base containers directory filepath hslogger HUnit mtl network
-         old-locale old-time parsec process random regex-compat time unix
+         array base containers directory filepath hslogger mtl network
+         network-bsd old-locale old-time parsec process random regex-compat
+         time unix
        ];
        testHaskellDepends = [
-         array base containers directory errorcall-eq-instance filepath
-         hslogger HUnit mtl network old-locale old-time parsec process
-         QuickCheck random regex-compat testpack time unix
+         base containers directory errorcall-eq-instance filepath HUnit
+         old-time parsec regex-compat time unix
        ];
        description = "Large utility library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "MissingK" = callPackage
@@ -14510,22 +14544,6 @@ self: {
      }:
      mkDerivation {
        pname = "OpenGL";
-       version = "3.0.2.2";
-       sha256 = "19vxwvx2n8zq2klj176l25n2b64ybp0b8mhm4p46gvpcivz41fjc";
-       libraryHaskellDepends = [
-         base bytestring containers GLURaw ObjectName OpenGLRaw StateVar
-         text transformers
-       ];
-       description = "A binding for the OpenGL graphics system";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "OpenGL_3_0_3_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, GLURaw, ObjectName
-     , OpenGLRaw, StateVar, text, transformers
-     }:
-     mkDerivation {
-       pname = "OpenGL";
        version = "3.0.3.0";
        sha256 = "069fg8jcxqq2z9iikynd8vi3jxm2b5y3qywdh4bdviyzab3zy1as";
        libraryHaskellDepends = [
@@ -14534,7 +14552,6 @@ self: {
        ];
        description = "A binding for the OpenGL graphics system";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "OpenGLCheck" = callPackage
@@ -15852,8 +15869,8 @@ self: {
        pname = "QuickCheck";
        version = "2.12.6.1";
        sha256 = "0w51zbbvh46g3wllqfmx251xzbnddy94ixgm6rf8gd95qvssfahb";
-       revision = "1";
-       editedCabalFile = "0w5gygp6pmyjzjjx5irfflcbx586zfnqidq669ssqqfsadf944xv";
+       revision = "2";
+       editedCabalFile = "0d7dzba96vglz4k7ryf0zzqm18vl0wrr9v3xwwjf4cv91cc8cql2";
        libraryHaskellDepends = [
          base containers deepseq erf random template-haskell tf-random
          transformers
@@ -15871,6 +15888,8 @@ self: {
        pname = "QuickCheck";
        version = "2.13.1";
        sha256 = "1inri6n4rr7v7wrmajikcqmbjh77lvf9m4fw2ib6szdgwyb3lim6";
+       revision = "1";
+       editedCabalFile = "1i8h75cxxpkriqprkr0ry5ig29pqhhhs5syjjxsyf1df6rngxipx";
        libraryHaskellDepends = [
          base containers deepseq random splitmix template-haskell
          transformers
@@ -20073,8 +20092,8 @@ self: {
      }:
      mkDerivation {
        pname = "Win32-errors";
-       version = "0.2.2.3";
-       sha256 = "1glcaykk6ylmmsqxw4jfhrdnw5dg4syxc4v77q13wxsbzzrz3yn6";
+       version = "0.2.2.4";
+       sha256 = "1iziwz05s1rvq3xhidkciwyb39fbyn6bqqzn6g2m12pi0xjfzgc2";
        libraryHaskellDepends = [ base template-haskell text Win32 ];
        testHaskellDepends = [ base hspec QuickCheck Win32 ];
        description = "Alternative error handling for Win32 foreign calls";
@@ -20141,8 +20160,8 @@ self: {
     ({ mkDerivation, Advapi32, base, Win32, Win32-errors }:
      mkDerivation {
        pname = "Win32-services";
-       version = "0.4";
-       sha256 = "1zxi8m98n5pgpx7z20f4g40w4njqllw7gfnlfxwgw3iismxiyyp8";
+       version = "0.4.0.1";
+       sha256 = "1skf8w3d1n61847bjpvll3bql65mrc6vg03q84bg21mlh77mx1s3";
        libraryHaskellDepends = [ base Win32 Win32-errors ];
        librarySystemDepends = [ Advapi32 ];
        description = "Windows service applications";
@@ -23218,22 +23237,21 @@ self: {
 
   "aeson-gadt-th" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, containers, dependent-map
-     , dependent-sum, hspec, HUnit, markdown-unlit, template-haskell
-     , transformers
+     , dependent-sum, dependent-sum-template, hspec, HUnit
+     , template-haskell, transformers
      }:
      mkDerivation {
        pname = "aeson-gadt-th";
-       version = "0.2.1.0";
-       sha256 = "09529lpjmm7hpqwrs3w8z1d6zzy4dw5wyqyx88ra68wf2a5nlwsh";
+       version = "0.2.1.1";
+       sha256 = "18lkf75pw8lp03bj4b8vknj7ysvbhpix6zkzd86qaq0z3yh6s6jv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base containers dependent-sum template-haskell transformers
        ];
        executableHaskellDepends = [
-         aeson base dependent-map dependent-sum
+         aeson base dependent-map dependent-sum dependent-sum-template
        ];
-       executableToolDepends = [ markdown-unlit ];
        testHaskellDepends = [
          aeson aeson-qq base dependent-sum hspec HUnit
        ];
@@ -27174,20 +27192,19 @@ self: {
      }) {};
 
   "amazonka-s3-streaming" = callPackage
-    ({ mkDerivation, amazonka, amazonka-core, amazonka-s3, base
-     , bytestring, conduit, deepseq, dlist, exceptions, http-client
-     , lens, lifted-async, mmap, mmorph, mtl, resourcet
+    ({ mkDerivation, amazonka, amazonka-core, amazonka-s3, async, base
+     , bytestring, conduit, dlist, exceptions, http-client, lens, mmorph
+     , mtl
      }:
      mkDerivation {
        pname = "amazonka-s3-streaming";
-       version = "0.2.0.5";
-       sha256 = "1j9jp409gjq7gnwx163i7qpk4ih3rff7z2icsfmzakiarwmg2ff2";
+       version = "1.0.0.2";
+       sha256 = "1k7l49h3zdqw3va70mr4rrmsyjpbzgbnr3bhj7yl24np77r6cs99";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         amazonka amazonka-core amazonka-s3 base bytestring conduit deepseq
-         dlist exceptions http-client lens lifted-async mmap mmorph mtl
-         resourcet
+         amazonka amazonka-core amazonka-s3 async base bytestring conduit
+         dlist exceptions http-client lens mmorph mtl
        ];
        description = "Provides conduits to upload data to S3 using the Multipart API";
        license = stdenv.lib.licenses.bsd3;
@@ -28337,12 +28354,12 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ansi-terminal_0_9" = callPackage
+  "ansi-terminal_0_9_1" = callPackage
     ({ mkDerivation, base, colour }:
      mkDerivation {
        pname = "ansi-terminal";
-       version = "0.9";
-       sha256 = "00xcq21rp0y8248pwik9rlrfb2m8c27aasla37zdg741yb0c4mfp";
+       version = "0.9.1";
+       sha256 = "1yr0ld0kqns3w3j9gl62bdwshvyazidx4dv1qkvq19ivnf08w23l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base colour ];
@@ -28353,19 +28370,22 @@ self: {
 
   "ansi-terminal-game" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, bytestring, cereal
-     , clock, hspec, linebreak, split, terminal-size, timers-tick
+     , clock, hspec, linebreak, mtl, split, terminal-size, timers-tick
      }:
      mkDerivation {
        pname = "ansi-terminal-game";
-       version = "0.2.1.0";
-       sha256 = "0a227gs7a0hz705lgq97mx4sdlbwqflns0zls7qsr9yr6ljc4836";
+       version = "0.3.1.0";
+       sha256 = "0q62lq4i638hn23qvmlv7qa6gdnxl3bnrhpp2j2liw885x4qxlhz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         ansi-terminal array base bytestring cereal clock linebreak split
-         terminal-size timers-tick
+         ansi-terminal array base bytestring cereal clock linebreak mtl
+         split terminal-size timers-tick
+       ];
+       testHaskellDepends = [
+         ansi-terminal array base bytestring cereal clock hspec linebreak
+         mtl split terminal-size timers-tick
        ];
-       testHaskellDepends = [ array base hspec linebreak ];
        description = "sdl-like functions for terminal applications, based on ansi-terminal";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -28387,6 +28407,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ansi-wl-pprint_0_6_9" = callPackage
+    ({ mkDerivation, ansi-terminal, base }:
+     mkDerivation {
+       pname = "ansi-wl-pprint";
+       version = "0.6.9";
+       sha256 = "1b2fg8px98dzbaqyns10kvs8kn6cl1hdq5wb9saz40izrpkyicm7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ ansi-terminal base ];
+       description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ansigraph" = callPackage
     ({ mkDerivation, ansi-terminal, base, hspec, QuickCheck }:
      mkDerivation {
@@ -28533,14 +28567,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "antiope-athena_7_0_2" = callPackage
+  "antiope-athena_7_0_3" = callPackage
     ({ mkDerivation, amazonka, amazonka-athena, amazonka-core, base
      , lens, resourcet, text, unliftio-core
      }:
      mkDerivation {
        pname = "antiope-athena";
-       version = "7.0.2";
-       sha256 = "0jnw1r2qxdsgb2a96ibayy504ndmgwnr083y3hxvsf081bi72n03";
+       version = "7.0.3";
+       sha256 = "15z64bwqnz7ypv35alj1wfvw0ab1zp0h7sdhw300mq3715snw0x1";
        libraryHaskellDepends = [
          amazonka amazonka-athena amazonka-core base lens resourcet text
          unliftio-core
@@ -28558,8 +28592,8 @@ self: {
     ({ mkDerivation, aeson, antiope-s3, avro, base, bytestring, text }:
      mkDerivation {
        pname = "antiope-contract";
-       version = "7.0.2";
-       sha256 = "0pf9dqx4px93fvq9rsl13ckngylj9dywzapn8largccvw0j5g8zk";
+       version = "7.0.3";
+       sha256 = "1c2q532dy6zash5ap3mq9qx9316gqhd3ilafvqs3xvfx6gddb7k6";
        libraryHaskellDepends = [
          aeson antiope-s3 avro base bytestring text
        ];
@@ -28591,7 +28625,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "antiope-core_7_0_2" = callPackage
+  "antiope-core_7_0_3" = callPackage
     ({ mkDerivation, aeson, aeson-lens, amazonka, amazonka-core, base
      , bytestring, exceptions, generic-lens, hedgehog, hspec
      , http-client, http-types, hw-hspec-hedgehog, lens, mtl, resourcet
@@ -28599,8 +28633,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-core";
-       version = "7.0.2";
-       sha256 = "1rybjb99sqgs2qa0b2mjrfwi5h8112ipwjphapcbgzg2y7nicw60";
+       version = "7.0.3";
+       sha256 = "0qn89pij3gg129y4waiwq6y6i7d7lny9ibjz9zdv5n6fzsgmrz8l";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core base bytestring exceptions
          generic-lens http-client http-types lens mtl resourcet text
@@ -28637,15 +28671,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "antiope-dynamodb_7_0_2" = callPackage
+  "antiope-dynamodb_7_0_3" = callPackage
     ({ mkDerivation, amazonka, amazonka-core, amazonka-dynamodb
      , antiope-core, base, generic-lens, lens, text, unliftio-core
      , unordered-containers
      }:
      mkDerivation {
        pname = "antiope-dynamodb";
-       version = "7.0.2";
-       sha256 = "0apbpikpcj400qn4jq0s29rmsbk3ngi7drd8jmkpnnlqvz7g4cyv";
+       version = "7.0.3";
+       sha256 = "1shfi2l9pys211pxq03z71d53578d2amwlyvsj4cb9qspccqmxb0";
        libraryHaskellDepends = [
          amazonka amazonka-core amazonka-dynamodb antiope-core base
          generic-lens lens text unliftio-core unordered-containers
@@ -28683,7 +28717,7 @@ self: {
        broken = true;
      }) {};
 
-  "antiope-messages_7_0_2" = callPackage
+  "antiope-messages_7_0_3" = callPackage
     ({ mkDerivation, aeson, amazonka, amazonka-core, base, bytestring
      , generic-lens, hedgehog, hspec, hw-hspec-hedgehog, lens
      , lens-aeson, monad-loops, network-uri, scientific, text
@@ -28691,8 +28725,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-messages";
-       version = "7.0.2";
-       sha256 = "1v0wfhniy5gaqnn8b39vc8whzmj9a58zh6l0zz234n5yghggz7fq";
+       version = "7.0.3";
+       sha256 = "05xrjlm5w2pbx9dlgi800j28zxyhbilhd902f8mshdw5jq7l3ws3";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core base bytestring generic-lens lens
          lens-aeson monad-loops network-uri text unliftio-core
@@ -28714,8 +28748,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-optparse-applicative";
-       version = "7.0.1";
-       sha256 = "018jnswibppmr3qzk6bn64r3xg55msp4bzmcg99vkr6nzgjl1zad";
+       version = "7.0.3";
+       sha256 = "1pw8jhbhn11jjp5zlsx2sdf3swjqcda0ka6xm09wzk14njyj2m0a";
        libraryHaskellDepends = [
          amazonka amazonka-core amazonka-s3 base optparse-applicative text
        ];
@@ -28754,7 +28788,7 @@ self: {
        broken = true;
      }) {};
 
-  "antiope-s3_7_0_2" = callPackage
+  "antiope-s3_7_0_3" = callPackage
     ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-s3
      , antiope-core, antiope-messages, attoparsec, base, bytestring
      , conduit, conduit-extra, exceptions, generic-lens, hedgehog, hspec
@@ -28763,8 +28797,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-s3";
-       version = "7.0.2";
-       sha256 = "1g46qy0xxwszx7mnsyd04yi83wf0kv57h4sb1jfq6ds6sh9l0xnc";
+       version = "7.0.3";
+       sha256 = "0n5jzp1ab3nk99z0n2d4kp400cg2ygxnk9s9siks2qncpgx3bb42";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core amazonka-s3 antiope-core
          antiope-messages attoparsec base bytestring conduit conduit-extra
@@ -28802,15 +28836,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "antiope-sns_7_0_2" = callPackage
+  "antiope-sns_7_0_3" = callPackage
     ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-sns, base
      , bytestring, generic-lens, hedgehog, hspec, hw-hspec-hedgehog
      , lens, text, time, unliftio-core
      }:
      mkDerivation {
        pname = "antiope-sns";
-       version = "7.0.2";
-       sha256 = "19l0sl33ywr2j5kxkqk0bbpqiahlzn1k883vhyki585hhgh2dad1";
+       version = "7.0.3";
+       sha256 = "0kq669k1h11cjrx4d0rdyzfv94br5w0pxl0zm0xa0pq4inagz06q";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core amazonka-sns base bytestring
          generic-lens lens text time unliftio-core
@@ -28849,19 +28883,20 @@ self: {
        broken = true;
      }) {};
 
-  "antiope-sqs_7_0_2" = callPackage
+  "antiope-sqs_7_0_3" = callPackage
     ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-sqs, base
      , bytestring, conduit, generic-lens, hedgehog, hspec
      , hw-hspec-hedgehog, lens, lens-aeson, monad-loops, mtl
-     , network-uri, text, time, unliftio-core, unordered-containers
+     , network-uri, split, text, time, unliftio-core
+     , unordered-containers
      }:
      mkDerivation {
        pname = "antiope-sqs";
-       version = "7.0.2";
-       sha256 = "0wpfcr3z3vpsy1m0zwrzszpsa4w4p9261ys8bnmvwg1qa8fpg278";
+       version = "7.0.3";
+       sha256 = "152w0zg2psdgii74k8h1wpq2qcnpmiybh0fa3y8i7fj75v8y0wj9";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core amazonka-sqs base bytestring conduit
-         generic-lens lens lens-aeson monad-loops mtl network-uri text
+         generic-lens lens lens-aeson monad-loops mtl network-uri split text
          unliftio-core unordered-containers
        ];
        testHaskellDepends = [
@@ -29186,21 +29221,19 @@ self: {
   "api-builder" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, bytestring, Cabal
      , containers, hspec, HTTP, http-client, http-client-tls, http-types
-     , text, tls, transformers
+     , QuickCheck, text, tls, transformers
      }:
      mkDerivation {
        pname = "api-builder";
-       version = "0.15.0.0";
-       sha256 = "1bjqg484z9si3pyfwpvcakm0y71gca80bh6j1njc0qnjf2ddd3ad";
-       revision = "1";
-       editedCabalFile = "0sw6vdnzlqyv9n7gdhy1ibh7vrzfflc1cy2q558a4i23gn74k74s";
+       version = "0.16.0.0";
+       sha256 = "1va2h0sbmx15a29ffmnqqidwzj1kk6dbcgdlcx2lpfk3cwwnpj8m";
        libraryHaskellDepends = [
          aeson base bifunctors bytestring HTTP http-client http-client-tls
          http-types text tls transformers
        ];
        testHaskellDepends = [
-         aeson base bytestring Cabal containers hspec http-client text
-         transformers
+         aeson base bytestring Cabal containers hspec http-client QuickCheck
+         text transformers
        ];
        description = "Library for easily building REST API wrappers in Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -29688,23 +29721,11 @@ self: {
     ({ mkDerivation, base, bytestring }:
      mkDerivation {
        pname = "appar";
-       version = "0.1.7";
-       sha256 = "07zjgx7xpjgkjqvga0wv542cyrjzh1mszlczg82nbmij2cflzppn";
-       libraryHaskellDepends = [ base bytestring ];
-       description = "A simple applicative parser";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "appar_0_1_8" = callPackage
-    ({ mkDerivation, base, bytestring }:
-     mkDerivation {
-       pname = "appar";
        version = "0.1.8";
        sha256 = "07v3h766q9mnhphsm53718h1lds147ix7dj15kc5hnsj4vffvkn4";
        libraryHaskellDepends = [ base bytestring ];
        description = "A simple applicative parser";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "appc" = callPackage
@@ -32413,10 +32434,8 @@ self: {
      }:
      mkDerivation {
        pname = "ats-pkg";
-       version = "3.2.5.13";
-       sha256 = "040ac4pw1f4nfrydqx56jv0mzap306sbr76kd164vi2n8y4a09cz";
-       revision = "1";
-       editedCabalFile = "1by5wg58g69r8xcp3nds4s5w2n3zjb1gshgsxi4fg52gfjq0wlfh";
+       version = "3.2.5.16";
+       sha256 = "044i1a6faw7r7ds910wk99mmg09ks1gdzc1md114nml614n3fqih";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -32435,6 +32454,8 @@ self: {
        doHaddock = false;
        description = "A build tool for ATS";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ats-setup" = callPackage
@@ -34607,6 +34628,8 @@ self: {
        ];
        description = "A tool and library for building virtual machine images";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "babl" = callPackage
@@ -36729,8 +36752,8 @@ self: {
     ({ mkDerivation, attoparsec, base, bytestring, time }:
      mkDerivation {
        pname = "bgmax";
-       version = "0.2.0.3";
-       sha256 = "15w8ib36spnlsvr41rb4n6dp6nh6ksyb07lzwlcf1a4ajfx23ns6";
+       version = "0.2.0.4";
+       sha256 = "0cgxdq5dfs9dvj5ly9sd52pf75yslrnds45hg9nwv5zrfld90rdv";
        libraryHaskellDepends = [ attoparsec base bytestring time ];
        description = "Parse BgMax-files";
        license = stdenv.lib.licenses.bsd3;
@@ -37125,6 +37148,8 @@ self: {
        pname = "binary";
        version = "0.8.6.0";
        sha256 = "0pz1va9bmj4daw8gi8r6d1rrnqsd4bislky6d8pjwwbyrgrw9s8y";
+       revision = "1";
+       editedCabalFile = "1mig95fa26jpjr0lwdkgl1l6ldxg5wzgnd1psps17xzv15cbahb2";
        libraryHaskellDepends = [ array base bytestring containers ];
        testHaskellDepends = [
          array base bytestring Cabal containers directory filepath HUnit
@@ -37296,6 +37321,33 @@ self: {
        broken = true;
      }) {};
 
+  "binary-instances" = callPackage
+    ({ mkDerivation, aeson, base, binary, binary-orphans
+     , case-insensitive, hashable, QuickCheck, quickcheck-instances
+     , scientific, tagged, tasty, tasty-quickcheck, text, text-binary
+     , time-compat, unordered-containers, vector
+     , vector-binary-instances
+     }:
+     mkDerivation {
+       pname = "binary-instances";
+       version = "1";
+       sha256 = "07y9582vsw94ks8whkd3dcmf4wdwlq8riyk2shmxxprkq0gsv3z0";
+       libraryHaskellDepends = [
+         aeson base binary binary-orphans case-insensitive hashable
+         scientific tagged text text-binary time-compat unordered-containers
+         vector vector-binary-instances
+       ];
+       testHaskellDepends = [
+         aeson base binary case-insensitive hashable QuickCheck
+         quickcheck-instances scientific tagged tasty tasty-quickcheck text
+         time-compat unordered-containers vector
+       ];
+       description = "Orphan instances for binary";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "binary-list" = callPackage
     ({ mkDerivation, base, binary, bytestring, criterion, deepseq
      , phantom-state, transformers
@@ -37351,6 +37403,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "binary-orphans_1_0_1" = callPackage
+    ({ mkDerivation, base, binary, QuickCheck, quickcheck-instances
+     , tagged, tasty, tasty-quickcheck, transformers
+     }:
+     mkDerivation {
+       pname = "binary-orphans";
+       version = "1.0.1";
+       sha256 = "0gbmn5rpvyxhw5bxjmxwld6918lslv03b2f6hshssaw1il5x86j3";
+       libraryHaskellDepends = [ base binary transformers ];
+       testHaskellDepends = [
+         base binary QuickCheck quickcheck-instances tagged tasty
+         tasty-quickcheck
+       ];
+       description = "Compatibility package for binary; provides instances";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "binary-parser" = callPackage
     ({ mkDerivation, base, base-prelude, bytestring, mtl
      , quickcheck-instances, rerebase, tasty, tasty-hunit
@@ -37547,10 +37617,8 @@ self: {
      }:
      mkDerivation {
        pname = "binary-tagged";
-       version = "0.1.5.1";
-       sha256 = "196msm7v0r41d7gx8aghl0c1gvir60sf0w9sfpcz2dq9akzqzjvh";
-       revision = "1";
-       editedCabalFile = "1z612d3wbrlywcx96lc52svi9b2s6nskdnwnwm3d5mylcqaqckcx";
+       version = "0.1.5.2";
+       sha256 = "04yy7af7iv6i4wbv69j9vldk8c2xaxd9vz3cg0j1dn7h4dmwwbsz";
        libraryHaskellDepends = [
          aeson array base base16-bytestring binary bytestring containers
          generics-sop hashable scientific SHA tagged text time
@@ -37571,32 +37639,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "binary-tagged_0_1_5_2" = callPackage
+  "binary-tagged_0_2" = 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
+     , binary, binary-instances, bytestring, containers, criterion
+     , cryptohash-sha1, deepseq, generics-sop, hashable, nats
+     , quickcheck-instances, scientific, semigroups, SHA, tagged, tasty
+     , tasty-hunit, tasty-quickcheck, text, time, unordered-containers
+     , vector
      }:
      mkDerivation {
        pname = "binary-tagged";
-       version = "0.1.5.2";
-       sha256 = "04yy7af7iv6i4wbv69j9vldk8c2xaxd9vz3cg0j1dn7h4dmwwbsz";
+       version = "0.2";
+       sha256 = "1pgb2p0kdh9vkmgn509c2v3h9dnhl9vyq2gyisfqvn27g2422c0j";
        libraryHaskellDepends = [
          aeson array base base16-bytestring binary bytestring containers
-         generics-sop hashable scientific SHA tagged text time
+         cryptohash-sha1 generics-sop hashable scientific 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
+         aeson array base base16-bytestring bifunctors binary
+         binary-instances bytestring containers generics-sop hashable
+         quickcheck-instances scientific tagged tasty tasty-hunit
+         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
+         aeson array base base16-bytestring binary binary-instances
+         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;
@@ -38831,8 +38901,8 @@ self: {
      }:
      mkDerivation {
        pname = "birch-beer";
-       version = "0.1.2.0";
-       sha256 = "0xqx7y0nv80wywp6ybcb23z77plizfvv6rk04gkykcpfjna6ijai";
+       version = "0.1.2.1";
+       sha256 = "18mz6qij6frpg7d4jh1cw6jwkxd5gymrhdvprm8yq84ndcn6jxrx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -41386,6 +41456,8 @@ self: {
        pname = "both";
        version = "0.1.1.0";
        sha256 = "13hf6j8qfaqw446ifyx0y60j9kvlvm0yj3r4h910bcszfjvyhkkg";
+       revision = "1";
+       editedCabalFile = "0fi2lvxcdnj9bi683kl840xpyj12wxwxvqbi86a6qp4r8bq8442n";
        libraryHaskellDepends = [ base semigroups zero ];
        description = "Like Maybe, but with a different Monoid instance";
        license = stdenv.lib.licenses.mit;
@@ -41711,8 +41783,8 @@ self: {
      }:
      mkDerivation {
        pname = "breve";
-       version = "0.4.4.0";
-       sha256 = "1pkjiwxm8lkrjnyya14f6kmmyv9w5lx7328wdyf1w1871daw208p";
+       version = "0.4.5.1";
+       sha256 = "1db93l3lb09rsb6yh3pkbfpyh736a9ki0q1x8s8rcp4dsy79b3va";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -41723,7 +41795,7 @@ self: {
          xdg-basedir
        ];
        description = "a url shortener";
-       license = stdenv.lib.licenses.mit;
+       license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -44210,8 +44282,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-cache";
-       version = "1.0.0.9";
-       sha256 = "1h7wp30gmggsrjgspsahn6b045njy6c23mhgkmhz6nn5s4wa1hak";
+       version = "1.0.0.10";
+       sha256 = "1iy7a7zmf3z539snj6rgg3qkcx8f8xwqvjry6wwagalr6z5smhmx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45458,6 +45530,8 @@ self: {
        ];
        description = "A library implementing the Noise protocol";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "caf" = callPackage
@@ -48707,17 +48781,18 @@ self: {
 
   "check-pvp" = callPackage
     ({ mkDerivation, base, Cabal, containers, explicit-exception
-     , filepath, haskell-src-exts, non-empty, transformers, utility-ht
+     , filepath, haskell-packages, haskell-src-exts, hse-cpp, non-empty
+     , tagged, transformers, utility-ht
      }:
      mkDerivation {
        pname = "check-pvp";
-       version = "0.0.1";
-       sha256 = "18xhm11xwvy9cz149ddm3lj4gxb514jglwhdr50mkrdd4rw8w59f";
+       version = "0.0.2.1";
+       sha256 = "0n3rq7zf0q92jm6y1gicp98b5yww8s8d430kc6a48rsxqs96i1w6";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base Cabal containers explicit-exception filepath haskell-src-exts
-         non-empty transformers utility-ht
+         base Cabal containers explicit-exception filepath haskell-packages
+         haskell-src-exts hse-cpp non-empty tagged transformers utility-ht
        ];
        description = "Check whether module and package imports conform to the PVP";
        license = stdenv.lib.licenses.bsd3;
@@ -48849,7 +48924,7 @@ self: {
      }) {};
 
   "chessIO" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, containers
+    ({ mkDerivation, attoparsec, base, binary, bytestring, containers
      , directory, extra, file-embed, haskeline, megaparsec, MonadRandom
      , mtl, o-clock, optparse-applicative, parallel, parser-combinators
      , prettyprinter, process, random, stm, text, time
@@ -48857,23 +48932,23 @@ self: {
      }:
      mkDerivation {
        pname = "chessIO";
-       version = "0.3.0.0";
-       sha256 = "18ni11hlcd4mkd6s0a22afiads83vhspxabchspnjyn9vm75spfg";
+       version = "0.3.1.0";
+       sha256 = "1aj0lnvscc07q879s9mxv0kgr8spnzvdskazi2maf7hsgirpijsl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         attoparsec base bytestring containers file-embed megaparsec
+         attoparsec base binary bytestring containers file-embed megaparsec
          MonadRandom o-clock parser-combinators prettyprinter process random
          stm text unordered-containers vector
        ];
        executableHaskellDepends = [
-         attoparsec base bytestring containers extra file-embed haskeline
-         megaparsec MonadRandom mtl o-clock optparse-applicative
+         attoparsec base binary bytestring containers extra file-embed
+         haskeline megaparsec MonadRandom mtl o-clock optparse-applicative
          parser-combinators prettyprinter process random stm text time
          unordered-containers vector
        ];
        testHaskellDepends = [
-         attoparsec base bytestring containers directory file-embed
+         attoparsec base binary bytestring containers directory file-embed
          megaparsec MonadRandom o-clock parallel parser-combinators
          prettyprinter process random stm text time unordered-containers
          vector
@@ -52135,8 +52210,8 @@ self: {
        pname = "co-log";
        version = "0.3.0.0";
        sha256 = "0rrxgc3qs10lj94d0v42fd6979znvmzxd7dmffp2lxpzmnymnsha";
-       revision = "1";
-       editedCabalFile = "0qf4icy6mrvkwc8kd4w3x47ckhqsx5d5zqpc6cd9qcv1r6pw2vhj";
+       revision = "2";
+       editedCabalFile = "12h6rgqgqd1wcm2ahl6b3wglsgq4ynjacrz9m0wkyry3k0jwzd8f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -54864,6 +54939,23 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "concurrent-output_1_10_10" = callPackage
+    ({ mkDerivation, ansi-terminal, async, base, directory, exceptions
+     , process, stm, terminal-size, text, transformers, unix
+     }:
+     mkDerivation {
+       pname = "concurrent-output";
+       version = "1.10.10";
+       sha256 = "1wnjxnwbc3l853kiiijagzjyb6fmhz3lmkwls24plbximl1qrr22";
+       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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "concurrent-rpc" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -55285,8 +55377,8 @@ self: {
        pname = "conduit-extra";
        version = "1.2.3.2";
        sha256 = "1xihl8zrd6jyfnlmsrqshwwqc8176whs5im4jvxvk9038wl6cnqx";
-       revision = "2";
-       editedCabalFile = "0x77alx5h3v07ra0l0l5b36rx5qb3vg2f5k711yvin1q40vwvhqg";
+       revision = "3";
+       editedCabalFile = "0m68hvcmg4wwn12wcczqx1i60i8g2nv95c05abnl8ymq0377c7wi";
        libraryHaskellDepends = [
          async attoparsec base blaze-builder bytestring conduit directory
          exceptions filepath monad-control network primitive process
@@ -55856,41 +55948,6 @@ self: {
      , case-insensitive, connection, data-default, deepseq, directory
      , dlist, enclosed-exceptions, filepath, http-client
      , http-client-tls, http-types, monad-control, mtl, network-uri
-     , optparse-applicative, process, profunctors, semigroups, text, tls
-     , transformers, unordered-containers, wai, warp, warp-tls, x509
-     , x509-system, x509-validation, yaml
-     }:
-     mkDerivation {
-       pname = "configuration-tools";
-       version = "0.4.0";
-       sha256 = "0bsxvbdhcgrhz9dm32bs5fb7ywdjb68xii74wdli4s0axs4q5dpx";
-       setupHaskellDepends = [
-         base bytestring Cabal directory filepath process
-       ];
-       libraryHaskellDepends = [
-         aeson ansi-wl-pprint attoparsec base base-unicode-symbols
-         base64-bytestring bytestring Cabal case-insensitive connection
-         data-default deepseq directory dlist enclosed-exceptions filepath
-         http-client http-client-tls http-types monad-control mtl
-         network-uri optparse-applicative process profunctors semigroups
-         text tls transformers unordered-containers x509 x509-system
-         x509-validation yaml
-       ];
-       testHaskellDepends = [
-         base base-unicode-symbols bytestring Cabal enclosed-exceptions
-         http-types monad-control mtl text transformers unordered-containers
-         wai warp warp-tls yaml
-       ];
-       description = "Tools for specifying and parsing configurations";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "configuration-tools_0_4_1" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, attoparsec, base
-     , base-unicode-symbols, base64-bytestring, bytestring, Cabal
-     , case-insensitive, connection, data-default, deepseq, directory
-     , dlist, enclosed-exceptions, filepath, http-client
-     , http-client-tls, http-types, monad-control, mtl, network-uri
      , optparse-applicative, process, profunctors, semigroupoids
      , semigroups, text, tls, transformers, unordered-containers, wai
      , warp, warp-tls, x509, x509-system, x509-validation, yaml
@@ -55918,7 +55975,6 @@ self: {
        ];
        description = "Tools for specifying and parsing configurations";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "configurator" = callPackage
@@ -56422,8 +56478,8 @@ self: {
      }:
      mkDerivation {
        pname = "constraints-deriving";
-       version = "1.0.2.0";
-       sha256 = "0czsxil1mzswm9l88df4lnrgsgp634n06k14vs6f4zh2s9xxb59g";
+       version = "1.0.3.0";
+       sha256 = "0mx3r79sc86afpa0fnb8jhxk2g8cfr4hax7q5j8a8lfyxp1bcf3z";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal ];
@@ -56456,18 +56512,15 @@ self: {
      }) {};
 
   "constraints-extras" = callPackage
-    ({ mkDerivation, aeson, base, constraints, markdown-unlit
-     , template-haskell
-     }:
+    ({ mkDerivation, aeson, base, constraints, template-haskell }:
      mkDerivation {
        pname = "constraints-extras";
-       version = "0.2.3.5";
-       sha256 = "1p45847w48waqvwmsvk44bvg39p2ifzdrwhk5h3n7l1avsmks37w";
+       version = "0.3.0.1";
+       sha256 = "0majx5yrddpyvymfl84dqwrqf4bf91jskgaki4ia0h8vhzqfcivx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base constraints template-haskell ];
        executableHaskellDepends = [ aeson base constraints ];
-       executableToolDepends = [ markdown-unlit ];
        description = "Utility package for constraints";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -56757,12 +56810,19 @@ self: {
      }) {};
 
   "contiguous" = callPackage
-    ({ mkDerivation, base, deepseq, primitive }:
+    ({ mkDerivation, base, deepseq, primitive, primitive-unlifted
+     , QuickCheck, quickcheck-instances, vector
+     }:
      mkDerivation {
        pname = "contiguous";
-       version = "0.3.3.0";
-       sha256 = "0hpglbbydyi46rw0jybb87g4wsc5qp4vnswijznav90j8sl34lhc";
-       libraryHaskellDepends = [ base deepseq primitive ];
+       version = "0.4.0.1";
+       sha256 = "1hs9jvl9zzy7jdbxna0aw8nbq3af327xfgb0cgzwmp55iwpjn9rn";
+       libraryHaskellDepends = [
+         base deepseq primitive primitive-unlifted
+       ];
+       testHaskellDepends = [
+         base primitive QuickCheck quickcheck-instances vector
+       ];
        description = "Unified interface for primitive arrays";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -56776,6 +56836,8 @@ self: {
        libraryHaskellDepends = [ base contiguous primitive ];
        description = "contiguous with bounds checks";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "contiguous-fft" = callPackage
@@ -56960,9 +57022,10 @@ self: {
     ({ mkDerivation, base, containers, stm, time }:
      mkDerivation {
        pname = "control-event";
-       version = "1.2.1.1";
-       sha256 = "0hwsidsxnzi4b3aphn3f7lsf1z508ql6cnhfq6zbqfsvcynm7565";
+       version = "1.3";
+       sha256 = "1a48h7nna7padcffdfyaavhfl43lqfhvib5ddsxbqm7y99nylni6";
        libraryHaskellDepends = [ base containers stm time ];
+       testHaskellDepends = [ base containers stm time ];
        description = "Event scheduling system";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -57437,8 +57500,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-c99";
-       version = "3.0.1";
-       sha256 = "11vrin2d0zfqzn3c9ikn1ra76m2083nlrk3l8j4hk0pnssy9kjvp";
+       version = "3.0.2";
+       sha256 = "02987kxwsrxcjicgfnj55prabiv12y5d1s82nr34kk3scrlixl1y";
        libraryHaskellDepends = [
          base containers copilot-core directory filepath language-c99
          language-c99-simple language-c99-util mtl pretty
@@ -64144,6 +64207,34 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "dbus_1_2_7" = callPackage
+    ({ mkDerivation, base, bytestring, cereal, conduit, containers
+     , criterion, deepseq, directory, exceptions, extra, filepath, lens
+     , network, parsec, process, QuickCheck, random, resourcet, split
+     , tasty, tasty-hunit, tasty-quickcheck, template-haskell, text
+     , th-lift, transformers, unix, vector, xml-conduit, xml-types
+     }:
+     mkDerivation {
+       pname = "dbus";
+       version = "1.2.7";
+       sha256 = "0ypkjlw9fn65g7p28kb3p82glk7qs7p7vyffccw7qxa3z57s12w5";
+       libraryHaskellDepends = [
+         base bytestring cereal conduit containers deepseq exceptions
+         filepath lens network parsec random split template-haskell text
+         th-lift transformers unix vector xml-conduit xml-types
+       ];
+       testHaskellDepends = [
+         base bytestring cereal containers directory extra filepath network
+         parsec process QuickCheck random resourcet tasty tasty-hunit
+         tasty-quickcheck text transformers unix vector
+       ];
+       benchmarkHaskellDepends = [ base criterion ];
+       doCheck = false;
+       description = "A client library for the D-Bus IPC system";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dbus-client" = callPackage
     ({ mkDerivation, base, containers, dbus-core, monads-tf, text
      , transformers
@@ -66309,6 +66400,8 @@ self: {
        ];
        description = "JSON and CSV encoding for rationals as decimal point numbers";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "detour-via-uom" = callPackage
@@ -66786,19 +66879,19 @@ self: {
 
   "dhall-to-cabal" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, contravariant
-     , dhall, Diff, directory, filepath, hashable, microlens
-     , optparse-applicative, prettyprinter, tasty, tasty-golden
-     , tasty-hunit, text, transformers, vector
+     , dhall, Diff, directory, filepath, microlens, optparse-applicative
+     , prettyprinter, tasty, tasty-golden, tasty-hunit, text
+     , transformers, vector
      }:
      mkDerivation {
        pname = "dhall-to-cabal";
-       version = "1.3.2.0";
-       sha256 = "1cy7pqqfrmli3a8p24j0dgksfwhj08kjpbp31bdibnr8ix204jjc";
+       version = "1.3.3.0";
+       sha256 = "0nh7sn8hzm38prx4c2h9azw351gns4mscjnn7dsgxpn34l5yyql7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring Cabal containers contravariant dhall filepath
-         hashable text transformers vector
+         base bytestring Cabal containers contravariant dhall filepath text
+         transformers vector
        ];
        executableHaskellDepends = [
          base bytestring Cabal dhall directory filepath microlens
@@ -68664,6 +68757,17 @@ self: {
        broken = true;
      }) {};
 
+  "discokitty" = callPackage
+    ({ mkDerivation, base, containers }:
+     mkDerivation {
+       pname = "discokitty";
+       version = "0.1.0";
+       sha256 = "0axz9k5j9yfk58icnycr93b6d5fqylgqlxi8v7w5sv1n28hrpvvj";
+       libraryHaskellDepends = [ base containers ];
+       description = "DisCoCat implementation";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "discord-gateway" = callPackage
     ({ mkDerivation, aeson, base, discord-types, hslogger, transformers
      , url, websockets, wuss
@@ -69637,8 +69741,8 @@ self: {
      }:
      mkDerivation {
        pname = "distributed-static";
-       version = "0.3.8";
-       sha256 = "1hpzsjwmmaj3cj4i54mg6g9dkk6vgwda66y8j14pjqmn49bzcjwm";
+       version = "0.3.9";
+       sha256 = "1nch2k8dnlf6is2p4skh8vd0qbkgai4r6msfn6r5cr0cqaarb6pf";
        libraryHaskellDepends = [
          base binary bytestring containers deepseq rank1dynamic
        ];
@@ -72078,6 +72182,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "dvault" = callPackage
+    ({ mkDerivation, base, bytestring, containers, crypto-rng
+     , data-default, directory, process, vector
+     }:
+     mkDerivation {
+       pname = "dvault";
+       version = "0.1.0.0";
+       sha256 = "1djk7c7zbkhr95nvrn4wf864yl425w0ifwgsb5f4al0gyv1cx0c9";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring containers crypto-rng data-default directory
+         process vector
+       ];
+       description = "Dead simple password manager";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "dvda" = callPackage
     ({ mkDerivation, ad, base, containers, directory, fgl
      , file-location, graphviz, hashable, hashtables, mtl, process
@@ -72468,19 +72592,18 @@ self: {
   "dynamodb-simple" = callPackage
     ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-dynamodb
      , base, bytestring, conduit, containers, double-conversion
-     , exceptions, generics-sop, hashable, hspec, lens, monad-loops
-     , monad-supply, safe-exceptions, scientific, semigroups, tagged
-     , template-haskell, text, transformers, unordered-containers
-     , uuid-types, vector
+     , exceptions, generics-sop, hashable, hspec, lens, monad-loops, mtl
+     , safe-exceptions, scientific, semigroups, tagged, template-haskell
+     , text, transformers, unordered-containers, uuid-types, vector
      }:
      mkDerivation {
        pname = "dynamodb-simple";
-       version = "0.6.0.1";
-       sha256 = "00966z61119p2qammdiaxnfc5by0b12pj95745i792kqw647vygj";
+       version = "0.6.0.2";
+       sha256 = "1mx2ylbvcyskv0pc053mcwlz3mycqrq3g4rgrbk4qhnywx8p7gav";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core amazonka-dynamodb base bytestring
          conduit containers double-conversion exceptions generics-sop
-         hashable lens monad-loops monad-supply scientific semigroups tagged
+         hashable lens monad-loops mtl scientific semigroups tagged
          template-haskell text transformers unordered-containers uuid-types
          vector
        ];
@@ -73437,8 +73560,8 @@ self: {
      }:
      mkDerivation {
        pname = "egison";
-       version = "3.7.14";
-       sha256 = "0iilizs6nj901fmzfam9s0s2phz91m2292wggqvzj8p6260589iq";
+       version = "3.8.1";
+       sha256 = "1qr4abniwhigx2b5bjgc444r17gbn59qrmafnb1d0vn4p2872n5w";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -77095,6 +77218,8 @@ self: {
        pname = "eventful-sql-common";
        version = "0.2.0";
        sha256 = "1g5f6rvb14hi81dby2hdcq444zhv2vl76ql4lsrh9gdmpf6a2vm4";
+       revision = "1";
+       editedCabalFile = "1w2qq0p4304zsjkwmqx79azpq5v0ajz5grg740vwkca8qvdvdq91";
        libraryHaskellDepends = [
          aeson base bytestring eventful-core mtl persistent
          persistent-template text uuid
@@ -78474,29 +78599,29 @@ self: {
     ({ mkDerivation, async, base, bytestring, containers, data-default
      , deepseq, directory, exceptions, extensible-effects, filepath
      , hostname, HUnit, lens, monad-control, mtl, network, parallel
-     , process, QuickCheck, safe-exceptions, stm, tasty, tasty-discover
-     , tasty-hunit, text, time, transformers-base
+     , pretty-types, process, QuickCheck, safe-exceptions, stm, tasty
+     , tasty-discover, tasty-hunit, text, time, transformers-base
      }:
      mkDerivation {
        pname = "extensible-effects-concurrent";
-       version = "0.22.1";
-       sha256 = "1vjd8rr60zxgvv96i9fx5vjbvvxagj8fxz6891irmjgxhlb1v75z";
+       version = "0.23.0";
+       sha256 = "0lyhkpds8j8b6vb9sk4ibad8a36zanfdq59mg1kiasxx6wmy20v5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          async base bytestring containers data-default deepseq directory
          exceptions extensible-effects filepath hostname lens monad-control
-         mtl network parallel process QuickCheck safe-exceptions stm text
-         time transformers-base
+         mtl network parallel pretty-types process QuickCheck
+         safe-exceptions stm text time transformers-base
        ];
        executableHaskellDepends = [
          base data-default deepseq directory extensible-effects filepath
-         lens text
+         lens pretty-types text
        ];
        testHaskellDepends = [
          async base containers data-default deepseq extensible-effects
-         filepath hostname HUnit lens QuickCheck stm tasty tasty-discover
-         tasty-hunit text time
+         filepath hostname HUnit lens pretty-types QuickCheck stm tasty
+         tasty-discover tasty-hunit text time
        ];
        testToolDepends = [ tasty-discover ];
        description = "Message passing concurrency as extensible-effect";
@@ -78966,8 +79091,8 @@ self: {
      }:
      mkDerivation {
        pname = "fakedata";
-       version = "0.2.0";
-       sha256 = "0297bppk69gn4sv5m5w1wh4wbshiz9w3b81sr9ps309k7bb6va9j";
+       version = "0.2.1";
+       sha256 = "11dsj2b1dyg6hdjhj3l7q04w896mrc32zkn1zkj2l032zlbwi44n";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers directory exceptions filepath random
@@ -79459,15 +79584,17 @@ self: {
      }) {inherit (pkgs) openssl;};
 
   "fastsum" = callPackage
-    ({ mkDerivation, base, ghc-prim, hashable, template-haskell }:
+    ({ mkDerivation, base, deepseq, ghc-prim, hashable
+     , template-haskell
+     }:
      mkDerivation {
        pname = "fastsum";
-       version = "0.1.0.0";
-       sha256 = "19an2yx0x10mj1lxwh3sqj5zs8fcwbw1zj530sxs64127l2dby57";
+       version = "0.1.1.0";
+       sha256 = "0fa3wjdsjl8wwlw194g1b7j8rvwix2b1hgwm1s10fq91a10mca6n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base ghc-prim hashable template-haskell
+         base deepseq ghc-prim hashable template-haskell
        ];
        description = "A fast open-union type suitable for 100+ contained alternatives";
        license = stdenv.lib.licenses.bsd3;
@@ -82560,6 +82687,8 @@ self: {
        ];
        description = "Parsing of pilot tracklogs dumped as KML";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "flip-cmd" = callPackage
@@ -86530,15 +86659,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "fused-effects_0_3_1_0" = callPackage
+  "fused-effects_0_4_0_0" = callPackage
     ({ mkDerivation, base, criterion, deepseq, doctest, hspec
      , inspection-testing, MonadRandom, QuickCheck, random, transformers
      , unliftio-core
      }:
      mkDerivation {
        pname = "fused-effects";
-       version = "0.3.1.0";
-       sha256 = "0mg6sgp4j6my34wzsdpvjvsb07s9k515shvi8nnrnzf0djqq95rv";
+       version = "0.4.0.0";
+       sha256 = "1r6yzw0212p5wn9rad2r7pjijnw6jajhypirm4j8h1gz1a393ds8";
        libraryHaskellDepends = [
          base deepseq MonadRandom random transformers unliftio-core
        ];
@@ -86552,12 +86681,16 @@ self: {
      }) {};
 
   "fused-effects-exceptions" = callPackage
-    ({ mkDerivation, base, fused-effects, safe-exceptions }:
+    ({ mkDerivation, base, fused-effects, safe-exceptions
+     , unliftio-core
+     }:
      mkDerivation {
        pname = "fused-effects-exceptions";
-       version = "0.1.0.0";
-       sha256 = "0ga4cjlmrc577gps0mhy37n1np2ds0wcfnq3nbhvz3fy3m5fzylz";
-       libraryHaskellDepends = [ base fused-effects safe-exceptions ];
+       version = "0.1.1.0";
+       sha256 = "0b9rj752ry72n6ln4fj9n6m2d1qfdxp229hzkgxznag0rr3bm5rd";
+       libraryHaskellDepends = [
+         base fused-effects safe-exceptions unliftio-core
+       ];
        description = "Handle exceptions thrown in IO with fused-effects";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -88238,21 +88371,19 @@ self: {
     ({ mkDerivation, base, generics-sop, lens }:
      mkDerivation {
        pname = "generics-sop-lens";
-       version = "0.1.2.1";
-       sha256 = "0p2ji955hy9r6c1wmiziga9pbbli24my3vmx19gf4i8db36d8jaf";
-       revision = "6";
-       editedCabalFile = "0j4j3kk2nsl5n5gp0vrzqdc5y9ly31b4nvhq0bpgcpzibvik7ssw";
+       version = "0.1.3";
+       sha256 = "1dk2v2ax2cryxpmgdv0bbawdfd30is3b5vzylhy9rr7bb5727vay";
        libraryHaskellDepends = [ base generics-sop lens ];
        description = "Lenses for types in generics-sop";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "generics-sop-lens_0_1_3" = callPackage
+  "generics-sop-lens_0_2" = callPackage
     ({ mkDerivation, base, generics-sop, lens }:
      mkDerivation {
        pname = "generics-sop-lens";
-       version = "0.1.3";
-       sha256 = "1dk2v2ax2cryxpmgdv0bbawdfd30is3b5vzylhy9rr7bb5727vay";
+       version = "0.2";
+       sha256 = "0cm3xnz5h1pxhvbgl8mm16fg8y339m6wvm6nlqmsm0jh37gvqc2a";
        libraryHaskellDepends = [ base generics-sop lens ];
        description = "Lenses for types in generics-sop";
        license = stdenv.lib.licenses.bsd3;
@@ -88780,27 +88911,6 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-hspec-hashable";
-       version = "0.2.0.3";
-       sha256 = "0lb1aiv07fbbkyhh8ig2lhqgm9yibrny2bw9qwbdkwwsi6hk4566";
-       libraryHaskellDepends = [
-         base genvalidity genvalidity-hspec genvalidity-property hashable
-         hspec QuickCheck validity
-       ];
-       testHaskellDepends = [
-         base doctest genvalidity genvalidity-hspec genvalidity-property
-         hashable hspec hspec-core QuickCheck validity
-       ];
-       description = "Standard spec's for Hashable instances";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "genvalidity-hspec-hashable_0_2_0_4" = callPackage
-    ({ mkDerivation, base, doctest, genvalidity, genvalidity-hspec
-     , genvalidity-property, hashable, hspec, hspec-core, QuickCheck
-     , validity
-     }:
-     mkDerivation {
-       pname = "genvalidity-hspec-hashable";
        version = "0.2.0.4";
        sha256 = "1vyd14cmsj54kbfbidgsy8r695zza635bxwg2i95gl1i314dzy1n";
        libraryHaskellDepends = [
@@ -88813,7 +88923,6 @@ self: {
        ];
        description = "Standard spec's for Hashable instances";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-hspec-optics" = callPackage
@@ -89707,8 +89816,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-events";
-       version = "0.8.0.2";
-       sha256 = "1cg2p0scnjk4ijr1kjp41d2kls2v7ixsfhdv5331bs04nah06ddy";
+       version = "0.9.0";
+       sha256 = "004dfjqhqy0lpmadjmvz270ja6k2dmwbprnispdxmlg8rc5y3m10";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -89955,8 +90064,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "0.20190423";
-       sha256 = "1jj4ph9ldxicccs3myqmll9x3a1rl9zv95b797mm9yas80sbijnx";
+       version = "0.20190516";
+       sha256 = "0jk0k870iznichiw7f99snv2syyqhaqh3faglc32fkhghmawv9y5";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -89980,8 +90089,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "0.20190423";
-       sha256 = "1vwfsyyj8h0x56zq498mhjbpj6bz9n901v3mwyn5hzp7c25zdv5k";
+       version = "0.20190516";
+       sha256 = "0blwr9gii81rh689skmzxqfhiya412hic9rvkqafwwrilppn8043";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -91973,15 +92082,15 @@ self: {
 
   "ginger" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring
-     , data-default, filepath, http-types, mtl, parsec, process
-     , regex-tdfa, safe, scientific, tasty, tasty-hunit
+     , data-default, filepath, http-types, mtl, optparse-applicative
+     , parsec, process, regex-tdfa, safe, scientific, tasty, tasty-hunit
      , tasty-quickcheck, text, time, transformers, unordered-containers
      , utf8-string, vector, yaml
      }:
      mkDerivation {
        pname = "ginger";
-       version = "0.8.4.0";
-       sha256 = "0mk0jmw0qvbv73n7g8n14shnyxjkkq6wp3vnk1gx1dnmbk20vdm7";
+       version = "0.8.4.1";
+       sha256 = "0mvqp9p4lz4qzdiymv91858ywrkjjbra0ah0hryya9h4jdnbid5p";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -91991,8 +92100,8 @@ self: {
          unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [
-         aeson base bytestring data-default process text transformers
-         unordered-containers yaml
+         aeson base bytestring data-default optparse-applicative process
+         text transformers unordered-containers utf8-string yaml
        ];
        testHaskellDepends = [
          aeson base bytestring data-default mtl tasty tasty-hunit
@@ -92001,6 +92110,8 @@ self: {
        ];
        description = "An implementation of the Jinja2 template language in Haskell";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "gingersnap" = callPackage
@@ -92233,13 +92344,12 @@ self: {
          bup curl git gnupg lsof openssh perl rsync wget which
        ];
        preConfigure = "export HOME=$TEMPDIR; patchShebangs .";
-       installPhase = "make PREFIX=$out BUILDER=: install";
-       checkPhase = ''
+       postBuild = ''
          ln -sf dist/build/git-annex/git-annex git-annex
          ln -sf git-annex git-annex-shell
-         export PATH+=":$PWD"
-         git-annex test
        '';
+       installPhase = "make PREFIX=$out BUILDER=: install install-completions";
+       checkPhase = ''PATH+=":$PWD" git-annex test'';
        enableSharedExecutables = false;
        description = "manage files with git, without checking their contents into git";
        license = stdenv.lib.licenses.agpl3;
@@ -93632,13 +93742,14 @@ self: {
      , bytestring, Cabal, config-schema, config-value, containers
      , directory, filepath, free, gitrev, hashable, hookup, HsOpenSSL
      , HUnit, irc-core, kan-extensions, lens, network, process, psqueues
-     , regex-tdfa, semigroupoids, split, stm, template-haskell, text
-     , time, transformers, unix, unordered-containers, vector, vty
+     , regex-tdfa, regex-tdfa-text, semigroupoids, split, stm
+     , template-haskell, text, time, transformers, unix
+     , unordered-containers, vector, vty
      }:
      mkDerivation {
        pname = "glirc";
-       version = "2.30";
-       sha256 = "1ky0xwspnfknbjyf0fa459f38nwqakwq6fh7ady4rch8ck22phql";
+       version = "2.31";
+       sha256 = "1div9xkls0jgsi3h0pm7y9rdlyr5rnc07ld3ka285g0hkg5yyban";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal filepath ];
@@ -93646,8 +93757,9 @@ self: {
          async attoparsec base base64-bytestring bytestring config-schema
          config-value containers directory filepath free gitrev hashable
          hookup HsOpenSSL irc-core kan-extensions lens network process
-         psqueues regex-tdfa semigroupoids split stm template-haskell text
-         time transformers unix unordered-containers vector vty
+         psqueues regex-tdfa regex-tdfa-text semigroupoids split stm
+         template-haskell text time transformers unix unordered-containers
+         vector vty
        ];
        executableHaskellDepends = [ base lens text vty ];
        testHaskellDepends = [ base HUnit ];
@@ -101206,8 +101318,8 @@ self: {
        pname = "hackage-security";
        version = "0.5.3.0";
        sha256 = "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v";
-       revision = "5";
-       editedCabalFile = "07mzv3bwb4rcwlmsd9c36g71y605qh72li0rsxf3c1k5bpcnl3yi";
+       revision = "6";
+       editedCabalFile = "1xs2nkzlvkdz8g27yzfxbjdbdadfmgiydnlpn5dm77cg18r495ay";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring Cabal
          containers cryptohash-sha256 directory ed25519 filepath ghc-prim
@@ -102430,8 +102542,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll-dhall";
-       version = "0.2.2.2";
-       sha256 = "0w2vhma28904mg7bymk0qd3gzwirbjkjkw862jxg2zzcnsg8m04i";
+       version = "0.2.3.0";
+       sha256 = "1a8aq1gmj6mwpv43s2vr7asp6v6bflms1vhd9dvs04jfnw3jbvpz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -102625,6 +102737,8 @@ self: {
        pname = "hakyll-shortcut-links";
        version = "0.0.0.0";
        sha256 = "1bzkq83rcpvx0cah77q6p27fd7f0l9hrnk8jyzpmngrnvgyjb2sz";
+       revision = "1";
+       editedCabalFile = "0ds3pb90djvqgz1z1w1kp2zdmwvbqkkgvwm05i34a9rh84lh8y8p";
        libraryHaskellDepends = [
          base hakyll megaparsec mtl pandoc-types shortcut-links text
        ];
@@ -104085,25 +104199,6 @@ self: {
      }:
      mkDerivation {
        pname = "happy";
-       version = "1.19.9";
-       sha256 = "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y";
-       revision = "3";
-       editedCabalFile = "0kwlh964nyqvfbm02np8vpc28gbhsby0r65jhz1918rm0wip9izq";
-       isLibrary = false;
-       isExecutable = true;
-       setupHaskellDepends = [ base Cabal directory filepath ];
-       executableHaskellDepends = [ array base containers mtl ];
-       testHaskellDepends = [ base process ];
-       description = "Happy is a parser generator for Haskell";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "happy_1_19_10" = callPackage
-    ({ mkDerivation, array, base, Cabal, containers, directory
-     , filepath, mtl, process
-     }:
-     mkDerivation {
-       pname = "happy";
        version = "1.19.10";
        sha256 = "1vfaa8x6asmyabmd4i1ygyl2a8501h97xhkx3ip3jnqhjxn61sr2";
        isLibrary = false;
@@ -104113,7 +104208,6 @@ self: {
        testHaskellDepends = [ base process ];
        description = "Happy is a parser generator for Haskell";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "happy-meta" = callPackage
@@ -104982,6 +105076,8 @@ self: {
        pname = "hashtables";
        version = "1.2.3.1";
        sha256 = "1giw9caajr07slf09j7zry9b0kvm4yj9q78zy1mawzi6gk3wglcg";
+       revision = "1";
+       editedCabalFile = "1yyqnqn85mlw03f2bpvwa1w9gigswk9n30i918myqyxwr595l7rr";
        libraryHaskellDepends = [
          base ghc-prim hashable primitive vector
        ];
@@ -105651,18 +105747,19 @@ self: {
   "haskell-docs" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring, Cabal
      , containers, cryptohash, directory, filepath, ghc, ghc-paths
-     , haddock-api, monad-loops, process, text, unordered-containers
+     , haddock-api, haddock-library, monad-loops, process, text
+     , unordered-containers
      }:
      mkDerivation {
        pname = "haskell-docs";
-       version = "4.2.8";
-       sha256 = "00a93rva9mpg0wf3fj0h9l4ljz566vx1dv9hh4xhc5n1zqijycpz";
+       version = "4.2.9";
+       sha256 = "10pgziq2f9wx92afmwh1m4bwxcyygpf4xg99vghm6r4ilh1fbkg7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring Cabal containers cryptohash
-         directory filepath ghc ghc-paths haddock-api monad-loops process
-         text unordered-containers
+         directory filepath ghc ghc-paths haddock-api haddock-library
+         monad-loops process text unordered-containers
        ];
        executableHaskellDepends = [ base ghc text ];
        testHaskellDepends = [ base ];
@@ -107870,6 +107967,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "haskey-btree_0_3_0_1" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers, data-ordlist
+     , hashable, HUnit, mtl, QuickCheck, semigroups, test-framework
+     , test-framework-hunit, test-framework-quickcheck2, text
+     , transformers, vector
+     }:
+     mkDerivation {
+       pname = "haskey-btree";
+       version = "0.3.0.1";
+       sha256 = "11zkj4a5j2f7g9kann4f0ab27aq30v6yn8cyn9hn7mhc3gslrx9m";
+       libraryHaskellDepends = [
+         base binary bytestring containers hashable mtl semigroups text
+         transformers vector
+       ];
+       testHaskellDepends = [
+         base binary bytestring containers data-ordlist HUnit mtl QuickCheck
+         test-framework test-framework-hunit test-framework-quickcheck2
+         transformers vector
+       ];
+       description = "B+-tree implementation in Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskey-mtl" = callPackage
     ({ mkDerivation, base, binary, exceptions, haskey, haskey-btree
      , lens, monad-control, mtl, text, transformers, transformers-base
@@ -108191,8 +108312,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.14.7";
-       sha256 = "0dn0d71jdpa4dmrwmpqipkdbl2cb8w8i2p18fly3b1xhpqra20il";
+       version = "0.15.2";
+       sha256 = "078w4a3xymp79dk17rprspm4c2m3p7qbcdqzmcgxjzz7kzsr5mmr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -111229,8 +111350,8 @@ self: {
        pname = "hedgehog";
        version = "0.6.1";
        sha256 = "0xz10ycdm5vk9nrcym1fi83k19frfwqz18bz8bnpzwvaj0j41yfj";
-       revision = "4";
-       editedCabalFile = "0iaqqdv4qvkzw1vasnz829k9lh7mz5nkqr8i803rilwnq40xgipx";
+       revision = "5";
+       editedCabalFile = "0kwmxjb1y3gk85njacw5wcvmq3bzp1649dbjzgzpiba2w342f7il";
        libraryHaskellDepends = [
          ansi-terminal async base bytestring concurrent-output containers
          directory exceptions lifted-async mmorph monad-control mtl
@@ -111245,6 +111366,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hedgehog_1_0" = callPackage
+    ({ mkDerivation, ansi-terminal, async, base, bytestring
+     , concurrent-output, containers, directory, exceptions, fail
+     , lifted-async, mmorph, monad-control, mtl, pretty-show, primitive
+     , random, resourcet, semigroups, stm, template-haskell, text, time
+     , transformers, transformers-base, wl-pprint-annotated
+     }:
+     mkDerivation {
+       pname = "hedgehog";
+       version = "1.0";
+       sha256 = "1np9xg58x20kalfci9dxbd4wsg0sl3ka56ragzy3i9p0nx29pmns";
+       revision = "1";
+       editedCabalFile = "1b2hvd3z5mnwfdp5xwdwrh2f1l0wshnnz6ggak2dqqm57wyifdql";
+       libraryHaskellDepends = [
+         ansi-terminal async base bytestring concurrent-output containers
+         directory exceptions fail lifted-async mmorph monad-control mtl
+         pretty-show primitive random resourcet semigroups stm
+         template-haskell text time transformers transformers-base
+         wl-pprint-annotated
+       ];
+       testHaskellDepends = [
+         base containers mmorph mtl pretty-show semigroups text transformers
+       ];
+       description = "Release with confidence";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hedgehog-checkers" = callPackage
     ({ mkDerivation, base, containers, either, hedgehog, semigroupoids
      , semigroups
@@ -111307,10 +111456,8 @@ self: {
     ({ mkDerivation, base, contravariant, hedgehog, transformers }:
      mkDerivation {
        pname = "hedgehog-fn";
-       version = "0.6";
-       sha256 = "0xi1y2cv2kkyxav261qaw9a4r4q8ng91187bdwi4rqlpp9zvc0pv";
-       revision = "1";
-       editedCabalFile = "19v7amg8l6s1gadnya8nxkcbi0vd3wqc7h6gvqvs099qaqm7zbb1";
+       version = "1.0";
+       sha256 = "05drd7jsz54kgwxr5z9vifmql6xif7ma7878qddw2nss5s6wa2qp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -111318,6 +111465,8 @@ self: {
        ];
        description = "Function generation for `hedgehog`";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hedgehog-gen-json" = callPackage
@@ -111363,8 +111512,8 @@ self: {
        pname = "hedgehog-quickcheck";
        version = "0.1";
        sha256 = "04l4dyk662wf6a0p6bnv9n2x2qi5sqm65ni5bdznakfvzk6mq2k1";
-       revision = "3";
-       editedCabalFile = "08pglka9hc7q3fql7fsmqn17wm1xmixkpqfslv86l79hn4y3rfq3";
+       revision = "5";
+       editedCabalFile = "0x3vsw9pvdgbi0a2fc0kbk9x3dbfq963bb8lkpj8cy2in29qv77f";
        libraryHaskellDepends = [ base hedgehog QuickCheck transformers ];
        description = "Use QuickCheck generators in Hedgehog and vice versa";
        license = stdenv.lib.licenses.bsd3;
@@ -111396,7 +111545,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hedis_0_12_4" = callPackage
+  "hedis_0_12_5" = callPackage
     ({ mkDerivation, async, base, bytestring, bytestring-lexing
      , deepseq, doctest, errors, HTTP, HUnit, mtl, network, network-uri
      , resource-pool, scanner, stm, test-framework, test-framework-hunit
@@ -111404,8 +111553,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedis";
-       version = "0.12.4";
-       sha256 = "1d1r0ghf1fpiiarpywx7j48bhc86q86lass3b837dcyfni8z2sxw";
+       version = "0.12.5";
+       sha256 = "1alabz8j9lmd2ydm34hndqcyvihnfyvl7cgda6ycsch5sbffmjlp";
        libraryHaskellDepends = [
          async base bytestring bytestring-lexing deepseq errors HTTP mtl
          network network-uri resource-pool scanner stm text time tls
@@ -111533,6 +111682,8 @@ self: {
        pname = "hedn";
        version = "0.2.0.1";
        sha256 = "16yi4x6g27zabgqwd4xckp5zibxq882919mmyyr95g56r7pm8v1j";
+       revision = "1";
+       editedCabalFile = "1wr3zv0bj1714y1ip40va34zysmypicd6qp0l50bg9wj2db0misz";
        libraryHaskellDepends = [
          base containers deepseq deriving-compat megaparsec
          parser-combinators prettyprinter scientific template-haskell text
@@ -113535,6 +113686,8 @@ self: {
        ];
        description = "Happy Haskell Programming";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hi" = callPackage
@@ -113864,8 +114017,8 @@ self: {
      }:
      mkDerivation {
        pname = "higgledy";
-       version = "0.1.1.0";
-       sha256 = "0qkmf8bjg311a01qwb20vcihk1w8q4avy3lcfz0rj7qqhmfp6542";
+       version = "0.1.1.1";
+       sha256 = "03jza44q99qfc46kb1r66qjirgklp7h8l2c28k4cmkzd2r23bd7a";
        libraryHaskellDepends = [ barbies base generic-lens QuickCheck ];
        testHaskellDepends = [ base doctest hspec lens QuickCheck ];
        description = "Partial types as a type constructor";
@@ -114899,6 +115052,8 @@ self: {
        pname = "hit-on";
        version = "0.0.0";
        sha256 = "14npvwxh33cn8z2klp7liij41r9pyr00rs4g28yva2zry75bf98r";
+       revision = "1";
+       editedCabalFile = "1fwvm0fz2agqziaspxlxxmdv44xrv65pf601i0938wkx4452v8fz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -115080,21 +115235,25 @@ self: {
      }) {};
 
   "hjugement-protocol" = callPackage
-    ({ mkDerivation, base, bytestring, containers, cryptonite, hashable
-     , memory, mmorph, QuickCheck, random, tasty, tasty-hunit
-     , tasty-quickcheck, text, transformers, unordered-containers
+    ({ mkDerivation, base, bytestring, containers, criterion
+     , cryptonite, deepseq, memory, QuickCheck, random, tasty
+     , tasty-hunit, tasty-quickcheck, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "hjugement-protocol";
-       version = "0.0.0.20190501";
-       sha256 = "0jhc5qjraf3v54892134g1qlsi1wrl87kv9c0m4k40hd4fkjh894";
+       version = "0.0.0.20190513";
+       sha256 = "0m51216rxy0lm8q6v0hc1fa1qkxmxlnrd47plm3jjcxl5pg2li25";
        libraryHaskellDepends = [
-         base bytestring containers cryptonite memory mmorph random text
+         base bytestring containers cryptonite deepseq memory random text
          transformers unordered-containers
        ];
        testHaskellDepends = [
-         base containers hashable QuickCheck random tasty tasty-hunit
-         tasty-quickcheck text transformers unordered-containers
+         base containers QuickCheck random tasty tasty-hunit
+         tasty-quickcheck text transformers
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion QuickCheck random text transformers
        ];
        description = "A cryptographic protocol for the Majority Judgment";
        license = stdenv.lib.licenses.gpl3;
@@ -115329,8 +115488,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-flow";
-       version = "0.12.0.0";
-       sha256 = "0d57q99p1ph70mmwanlyps7vfj6iph9wmx0nza2jlg6falr7wrbj";
+       version = "0.12.2.1";
+       sha256 = "1vx74i1cqjmrrjq0mrdxmar6v221lir1zzkl8bn7iza4czkdarg9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -115624,22 +115783,22 @@ self: {
   "hlint" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
      , containers, cpphs, data-default, directory, extra, filepath
-     , haskell-src-exts, haskell-src-exts-util, hscolour, process
-     , refact, text, transformers, uniplate, unordered-containers
-     , vector, yaml
+     , ghc-lib-parser, haskell-src-exts, haskell-src-exts-util, hscolour
+     , process, refact, text, transformers, uniplate
+     , unordered-containers, vector, yaml
      }:
      mkDerivation {
        pname = "hlint";
-       version = "2.1.17";
-       sha256 = "0brinb3fjy619qh8yingqz2k03gcixc7mvqxzhzjadj69zlns6j3";
+       version = "2.1.20";
+       sha256 = "01dgz9lqkx6j06r9vclicjaiylk05pzcglnqmrvyy3yk9h93lhs1";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring cmdargs containers cpphs
-         data-default directory extra filepath haskell-src-exts
-         haskell-src-exts-util hscolour process refact text transformers
-         uniplate unordered-containers vector yaml
+         data-default directory extra filepath ghc-lib-parser
+         haskell-src-exts haskell-src-exts-util hscolour process refact text
+         transformers uniplate unordered-containers vector yaml
        ];
        executableHaskellDepends = [ base ];
        description = "Source code suggestions";
@@ -116722,6 +116881,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hoauth2_1_8_6" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, exceptions, http-conduit
+     , http-types, microlens, text, unordered-containers, uri-bytestring
+     , uri-bytestring-aeson
+     }:
+     mkDerivation {
+       pname = "hoauth2";
+       version = "1.8.6";
+       sha256 = "1m1www5i2wp49vb03zm0d0gaq0dlgdjafwjgp2zcc16gajpabami";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring exceptions http-conduit http-types microlens
+         text unordered-containers uri-bytestring uri-bytestring-aeson
+       ];
+       description = "Haskell OAuth2 authentication client";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hob" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
      , glib, gtk-largeTreeStore, gtk3, gtksourceview3, hspec, mtl, pango
@@ -117556,28 +117735,30 @@ self: {
      }) {};
 
   "hoogle" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, cmdargs, conduit
-     , conduit-extra, connection, containers, deepseq, directory, extra
-     , filepath, foundation, hashable, haskell-src-exts, http-conduit
-     , http-types, js-flot, js-jquery, mmap, network-uri, old-locale
-     , process-extras, QuickCheck, resourcet, storable-tuple, tar
-     , template-haskell, text, time, transformers, uniplate, utf8-string
-     , vector, wai, wai-logger, warp, warp-tls, zlib
+    ({ mkDerivation, aeson, base, binary, blaze-html, blaze-markup
+     , bytestring, cmdargs, conduit, conduit-extra, connection
+     , containers, deepseq, directory, extra, filepath, foundation
+     , hashable, haskell-src-exts, http-conduit, http-types, js-flot
+     , js-jquery, mmap, network-uri, old-locale, process-extras
+     , QuickCheck, resourcet, storable-tuple, tar, template-haskell
+     , text, time, transformers, uniplate, utf8-string, vector, wai
+     , wai-logger, warp, warp-tls, zlib
      }:
      mkDerivation {
        pname = "hoogle";
-       version = "5.0.17.7";
-       sha256 = "1nk255n7lwar9l70pz3z48c4fsp3a07gqhpci37iya1mw6kdnbbp";
+       version = "5.0.17.8";
+       sha256 = "0cdxxrq3c5jpkb469y7s571q8lbw7a2adq535cx0nsjldwxvjvlb";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base binary bytestring cmdargs conduit conduit-extra
-         connection containers deepseq directory extra filepath foundation
-         hashable haskell-src-exts http-conduit http-types js-flot js-jquery
-         mmap network-uri old-locale process-extras QuickCheck resourcet
-         storable-tuple tar template-haskell text time transformers uniplate
-         utf8-string vector wai wai-logger warp warp-tls zlib
+         aeson base binary blaze-html blaze-markup bytestring cmdargs
+         conduit conduit-extra connection containers deepseq directory extra
+         filepath foundation hashable haskell-src-exts http-conduit
+         http-types js-flot js-jquery mmap network-uri old-locale
+         process-extras QuickCheck resourcet storable-tuple tar
+         template-haskell text time transformers uniplate utf8-string vector
+         wai wai-logger warp warp-tls zlib
        ];
        executableHaskellDepends = [ base ];
        testTarget = "--test-option=--no-net";
@@ -117625,10 +117806,10 @@ self: {
      }:
      mkDerivation {
        pname = "hookup";
-       version = "0.2.2";
-       sha256 = "1q9w8j4g8j9ijfvwpng4i3k2b8pkf4ln27bcdaalnp9yyidmxlqf";
-       revision = "4";
-       editedCabalFile = "1l52m4pl1l0mrnl4czx25i8xvba03l7bvqskk59cgwfk8q1kk935";
+       version = "0.2.3";
+       sha256 = "03svzlzkykz4yqwq4vfgwdq6jdz8zzqhy1ggz3wps9cbx6yrl4cj";
+       revision = "1";
+       editedCabalFile = "1pc0ijak6psp5db1q29nzhp8pw0h15y2g8ssa1xxmlfjdl1c509d";
        libraryHaskellDepends = [
          attoparsec base bytestring HsOpenSSL HsOpenSSL-x509-system network
        ];
@@ -121472,8 +121653,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsimport";
-       version = "0.8.8";
-       sha256 = "0q6348iz4w8zfdrzv98vydw5rdxlhqapdqhxrnhd6dqlcjq3rf1j";
+       version = "0.10.0";
+       sha256 = "0l98yylpmpnlq6ahicpz86p4khg02yjjcg19nyf9rgml3qdw6829";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -121484,7 +121665,8 @@ self: {
        testHaskellDepends = [
          base filepath haskell-src-exts tasty tasty-golden
        ];
-       description = "A command line program for extending the import list of a Haskell source file";
+       doHaddock = false;
+       description = "Extend the import list of a Haskell source file";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -121702,29 +121884,6 @@ self: {
      }:
      mkDerivation {
        pname = "hslua";
-       version = "1.0.3";
-       sha256 = "1g2llcffj4yah326lf9axffziz0bla443zddr0lhpz8nqrpbh4j1";
-       configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
-       libraryHaskellDepends = [
-         base bytestring containers exceptions fail mtl text
-       ];
-       librarySystemDepends = [ lua5_3 ];
-       testHaskellDepends = [
-         base bytestring containers exceptions fail mtl QuickCheck
-         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
-       ];
-       benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
-       description = "Bindings to Lua, an embeddable scripting language";
-       license = stdenv.lib.licenses.mit;
-     }) {inherit (pkgs) lua5_3;};
-
-  "hslua_1_0_3_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.3.1";
        sha256 = "1w11d5csjl5jdzjzcq8gkd7lzyfsgaxmby5gq97jaj6r32l3zy9m";
        configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
@@ -121739,7 +121898,6 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
        description = "Bindings to Lua, an embeddable scripting language";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) lua5_3;};
 
   "hslua-aeson" = callPackage
@@ -121751,6 +121909,8 @@ self: {
        pname = "hslua-aeson";
        version = "1.0.0";
        sha256 = "0wvcf0adv2b5fn7mvi8p6ydzsyzbn43qyk1kjvvi9achrgvc59zz";
+       revision = "1";
+       editedCabalFile = "1ysgh5s99zv0khkwqw1kcli2r2vi77r7wz3yc0y0i7qr35shzklh";
        libraryHaskellDepends = [
          aeson base hashable hslua scientific text unordered-containers
          vector
@@ -124865,22 +125025,6 @@ self: {
 
   "http-directory" = callPackage
     ({ mkDerivation, base, bytestring, html-conduit, http-client
-     , http-date, http-types, text, time, xml-conduit
-     }:
-     mkDerivation {
-       pname = "http-directory";
-       version = "0.1.1";
-       sha256 = "1wv92w3dfsxp4y9qai6qxxv7fq807p9vcmm844ggcc9xblmmcr4r";
-       libraryHaskellDepends = [
-         base bytestring html-conduit http-client http-date http-types text
-         time xml-conduit
-       ];
-       description = "http directory listing library";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "http-directory_0_1_2" = callPackage
-    ({ mkDerivation, base, bytestring, html-conduit, http-client
      , http-client-tls, http-date, http-types, text, time, xml-conduit
      }:
      mkDerivation {
@@ -124893,7 +125037,6 @@ self: {
        ];
        description = "http directory listing library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "http-dispatch" = callPackage
@@ -126477,23 +126620,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "hw-diagnostics";
-       version = "0.0.0.5";
-       sha256 = "0cfrgcjj7c2bi5l4qan23ipylfa73qh19xc9x03sbia6qh0yrsjw";
-       libraryHaskellDepends = [ base ];
-       description = "Diagnostics library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-diagnostics_0_0_0_7" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "hw-diagnostics";
        version = "0.0.0.7";
        sha256 = "1wfmrdpkvk2p045xchvwhnd1glq527ksgg0bs2qg5r0nyhsg55zi";
        libraryHaskellDepends = [ base ];
        description = "Diagnostics library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-dsv" = callPackage
@@ -126507,6 +126638,8 @@ self: {
        pname = "hw-dsv";
        version = "0.3.5";
        sha256 = "15dy96ah7frs79g102vvsrihzlk2qc5c773y7bqdcm66mjhin3x2";
+       revision = "1";
+       editedCabalFile = "1i67wr9yhks9bzpcr0dqhqgvv2i94izv4p6wrcb2vbjl7wzzgs1v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -126607,19 +126740,18 @@ self: {
      }) {};
 
   "hw-fingertree" = callPackage
-    ({ mkDerivation, base, deepseq, hedgehog, hspec, HUnit
-     , hw-hspec-hedgehog, QuickCheck, test-framework
-     , test-framework-hunit, test-framework-quickcheck2
+    ({ mkDerivation, base, deepseq, hedgehog, hspec, hspec-discover
+     , hw-hspec-hedgehog
      }:
      mkDerivation {
        pname = "hw-fingertree";
-       version = "0.1.0.1";
-       sha256 = "1nlla161156w21g3kdcv42bm5rfz9aslh5lw7rmlw8pdrgg6g3f3";
+       version = "0.1.0.3";
+       sha256 = "0r5bbhyc9gwr23s2h39qfdrsvjil56k2jfj8897hswn2q1fxcpjv";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [
-         base deepseq hedgehog hspec HUnit hw-hspec-hedgehog QuickCheck
-         test-framework test-framework-hunit test-framework-quickcheck2
+         base deepseq hedgehog hspec hw-hspec-hedgehog
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Generic finger-tree structure, with example instances";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -126648,6 +126780,8 @@ self: {
        pname = "hw-hedgehog";
        version = "0.1.0.3";
        sha256 = "0cck3kxxc7fxfqji9jv15vc9v1zpqz7rzacxfcjc0i6s1ll9vbv2";
+       revision = "1";
+       editedCabalFile = "1wvjv13pznqxzhix7ikjx2gpqc3ppn7z20yl7l6z80yslalh7pm2";
        libraryHaskellDepends = [ base hedgehog vector ];
        testHaskellDepends = [ base ];
        description = "Extra hedgehog functionality";
@@ -126676,6 +126810,8 @@ self: {
        pname = "hw-hspec-hedgehog";
        version = "0.1.0.7";
        sha256 = "0445b5ycr622qjann2yyri8ghkhkw0vqaqn2rlar9wq2ni3b85rv";
+       revision = "1";
+       editedCabalFile = "0gcfhqasff8ij0xr5wq74blp90ldzgv992agadp63bs4ikg4rajm";
        libraryHaskellDepends = [
          base call-stack hedgehog hspec HUnit transformers
        ];
@@ -127021,6 +127157,8 @@ self: {
        pname = "hw-prim";
        version = "0.6.2.23";
        sha256 = "1kilyiq6gj44gz9hqy11ab1sm4j399rkz5k0a98fpzjd6b7ndrmy";
+       revision = "1";
+       editedCabalFile = "0pwgw9fqrfmfk3fjcdc9xss1vc6fl53pdnp8xcawia4mskd38sv7";
        libraryHaskellDepends = [
          base bytestring mmap semigroups transformers vector
        ];
@@ -127916,6 +128054,8 @@ self: {
        pname = "hybrid-vectors";
        version = "0.2.2";
        sha256 = "1mw69xjdncj6kqa2mvag8xc79y4jijnh2qg6ahrhifb4vxqw7ij1";
+       revision = "1";
+       editedCabalFile = "16wpgh7cxgmap5acyccbff02b2jvhqiad5m3fknribpbahvmkk88";
        libraryHaskellDepends = [
          base deepseq primitive semigroups vector
        ];
@@ -131912,8 +132052,8 @@ self: {
      }:
      mkDerivation {
        pname = "intero";
-       version = "0.1.39";
-       sha256 = "0qfns2rwgkmd1i28p5pgvcp0yza8lrpi9xlq3zpl7jqrawbxbp3v";
+       version = "0.1.40";
+       sha256 = "09p5bjjqagbz1xkcfd5psmgxbg3z057kyv39j0i63g4q484zznz3";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -133151,6 +133291,27 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "irc-client_1_1_0_6" = 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.6";
+       sha256 = "0mp8zqrjplaa2xdzrbfaz4g78frhhh47a3v8l2r2p57j4v96l2b1";
+       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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "irc-colors" = callPackage
     ({ mkDerivation, base, text }:
      mkDerivation {
@@ -133180,14 +133341,33 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "irc-conduit_0_3_0_2" = callPackage
+    ({ mkDerivation, async, base, bytestring, conduit, conduit-extra
+     , connection, irc, irc-ctcp, network-conduit-tls, profunctors, text
+     , time, tls, transformers, x509-validation
+     }:
+     mkDerivation {
+       pname = "irc-conduit";
+       version = "0.3.0.2";
+       sha256 = "12352l9qx7cj2f2y2rk144llfr2p4ibks67gq4krjvsnhx7231m5";
+       libraryHaskellDepends = [
+         async base bytestring conduit conduit-extra connection irc irc-ctcp
+         network-conduit-tls profunctors text time tls transformers
+         x509-validation
+       ];
+       description = "Streaming IRC message library using conduits";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "irc-core" = callPackage
     ({ mkDerivation, attoparsec, base, base64-bytestring, bytestring
      , hashable, HUnit, primitive, text, time, vector
      }:
      mkDerivation {
        pname = "irc-core";
-       version = "2.6.0";
-       sha256 = "07w8nyvscc2d643dq02bl533c2kwx8zw8j1b1dizfwhixwnzgphq";
+       version = "2.7.0";
+       sha256 = "1bsj4b8xwavc2z0amd2lmh4qn4gmxfmsicwdr1h3a2sqyx8qdv9m";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring bytestring hashable primitive
          text time vector
@@ -133743,8 +133923,8 @@ self: {
      }:
      mkDerivation {
        pname = "itanium-abi";
-       version = "0.1.1.0";
-       sha256 = "01fhzxgarbaccmkixn6l09wrbl5xr23kxcq3pf21k13zq6p971d8";
+       version = "0.1.1.1";
+       sha256 = "1dmr6sz4mf24781md81jjrwjsp431zyh7alkz71jlb224phc81nz";
        libraryHaskellDepends = [
          base boomerang text transformers unordered-containers
        ];
@@ -137184,36 +137364,6 @@ self: {
      }:
      mkDerivation {
        pname = "kanji";
-       version = "3.4.0";
-       sha256 = "1wc17b5515vb19ah7wm1zwmpf7b3jgjzrhk21hk8ysr14pcxwifr";
-       revision = "2";
-       editedCabalFile = "1bcc3kh6kndmkqi3vaxp27mg1qb7xbg1h8pgjc1kk1iawnhl930j";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base containers deepseq hashable text
-       ];
-       executableHaskellDepends = [
-         aeson aeson-pretty base containers microlens microlens-aeson
-         optparse-applicative text transformers
-       ];
-       testHaskellDepends = [
-         aeson base containers HUnit-approx tasty tasty-hunit text
-       ];
-       benchmarkHaskellDepends = [ aeson base containers criterion text ];
-       description = "Perform 漢字検定 (Japan Kanji Aptitude Test) level analysis on Japanese Kanji";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "kanji_3_4_0_2" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, containers, criterion
-     , deepseq, hashable, HUnit-approx, microlens, microlens-aeson
-     , optparse-applicative, tasty, tasty-hunit, text, transformers
-     }:
-     mkDerivation {
-       pname = "kanji";
        version = "3.4.0.2";
        sha256 = "017j8nwmwfbkxyaxjfp75js578kv6g5k7szsc46kidbw4l68dwmy";
        isLibrary = true;
@@ -138859,26 +139009,27 @@ self: {
   "knit-haskell" = callPackage
     ({ mkDerivation, aeson-pretty, base, base64-bytestring
      , blaze-colonnade, blaze-html, bytestring, case-insensitive
-     , colonnade, containers, directory, Glob, here, http-client
-     , http-client-tls, http-types, hvega, logging-effect, lucid, mtl
-     , network, network-uri, pandoc, polysemy, prettyprinter, random
-     , random-fu, random-source, text, time
+     , colonnade, containers, diagrams-lib, diagrams-svg, directory
+     , Glob, here, http-client, http-client-tls, http-types, hvega
+     , logging-effect, lucid, mtl, network, network-uri, pandoc, plots
+     , polysemy, prettyprinter, random, random-fu, random-source
+     , svg-builder, text, time
      }:
      mkDerivation {
        pname = "knit-haskell";
-       version = "0.2.0.0";
-       sha256 = "0028g05plj8dsakb2c78ryl3lcbfaagg4n1hjfj6b92cxn1bg5hv";
+       version = "0.3.0.0";
+       sha256 = "1mhxixiz07zlyhrdw68d2ajax40s01ikh27g56hlp1ilwnp8zqcv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson-pretty base base64-bytestring blaze-colonnade blaze-html
-         bytestring case-insensitive colonnade containers directory Glob
-         http-client http-client-tls http-types hvega logging-effect lucid
-         mtl network network-uri pandoc polysemy prettyprinter random
-         random-fu random-source text time
+         bytestring case-insensitive colonnade containers diagrams-lib
+         diagrams-svg directory Glob http-client http-client-tls http-types
+         hvega logging-effect lucid mtl network network-uri pandoc polysemy
+         prettyprinter random random-fu random-source svg-builder text time
        ];
        executableHaskellDepends = [
-         base blaze-html colonnade containers here hvega mtl polysemy
+         base blaze-html colonnade containers here hvega mtl plots polysemy
          random-fu text
        ];
        description = "a minimal Rmarkdown sort-of-thing for haskell, by way of Pandoc";
@@ -140521,8 +140672,8 @@ self: {
     ({ mkDerivation, base, language-c99, language-c99-util, mtl }:
      mkDerivation {
        pname = "language-c99-simple";
-       version = "0.1.1";
-       sha256 = "15as36j4bsxxy59683h5p6k0r9d21pv5kr90nr82d2lmnwf46xic";
+       version = "0.1.2";
+       sha256 = "0v0y50n2ks8jp91y37az6q46ax6dqx1igmlkb4b7c76qngak88xi";
        libraryHaskellDepends = [
          base language-c99 language-c99-util mtl
        ];
@@ -142182,6 +142333,25 @@ self: {
        broken = true;
      }) {};
 
+  "lazyboy" = callPackage
+    ({ mkDerivation, aeson, base, hspec, microstache, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "lazyboy";
+       version = "0.2.0.1";
+       sha256 = "1f5r0dpwf4x3zp9ii03pqw1j9iy0cyrrl6a9pfnmximzw753dhkp";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base hspec microstache text transformers
+       ];
+       testHaskellDepends = [
+         aeson base hspec microstache text transformers
+       ];
+       description = "An EDSL for programming the Game Boy";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "lazyio" = callPackage
     ({ mkDerivation, base, transformers, unsafe }:
      mkDerivation {
@@ -142407,6 +142577,23 @@ self: {
        broken = true;
      }) {};
 
+  "lean" = callPackage
+    ({ mkDerivation, base, base-unicode-symbols, text-utf8
+     , transformers, util
+     }:
+     mkDerivation {
+       pname = "lean";
+       version = "0.0.0.1";
+       sha256 = "1i1xkaipjaczp32hn5g5g4x9a3ml98hamb4qaycy7rlcfbildiga";
+       libraryHaskellDepends = [
+         base base-unicode-symbols text-utf8 transformers util
+       ];
+       description = "Bonds to Lean theorem prover";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "leancheck" = callPackage
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
@@ -143221,8 +143408,8 @@ self: {
      }:
      mkDerivation {
        pname = "lentil";
-       version = "1.2.2.0";
-       sha256 = "0xm3nvh5irw3nw4cn94xh8i6z63mgkiymgf99yh582rbf047dfms";
+       version = "1.2.3.0";
+       sha256 = "07q7s710mcsbf51cwx68ps616nlsddll5k4cq6sn81bdd2n72fbx";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -143576,8 +143763,8 @@ self: {
      }:
      mkDerivation {
        pname = "libarchive";
-       version = "1.0.5.0";
-       sha256 = "0ndla9nkrgc3q10dp2c407whqfwcwjv95rd22cmjx70c3609mm9r";
+       version = "1.0.5.1";
+       sha256 = "1fchnvs03hg513v7a45a3qbfr3kbh3nmqjqljzr2y1mg2ghkr7cz";
        libraryHaskellDepends = [
          base bytestring composition-prelude dlist filepath
        ];
@@ -144204,6 +144391,17 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "librdkafka" = callPackage
+    ({ mkDerivation }:
+     mkDerivation {
+       pname = "librdkafka";
+       version = "0.0.0.0";
+       sha256 = "09iyvp3271l5a1idklzxdcs3wxmjxqigkn1cjjv4vk8vww6zwzkb";
+       doHaddock = false;
+       description = "TBA";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "libretls" = callPackage
     ({ mkDerivation, base, containers, hspec, HUnit, libressl, libtls
      , monad-ste, primitive, transformers, vector
@@ -144316,8 +144514,8 @@ self: {
      }:
      mkDerivation {
        pname = "libsystemd-journal";
-       version = "1.4.3";
-       sha256 = "1n79f0fzgrqyr9lw1qy8fzxsh74ai899pydpzpl6pfh2gfp7qvaq";
+       version = "1.4.4";
+       sha256 = "1114fv3dvljxkwgxyx9ycpks8bwzj401d4ziri80rkf2ycl0pxc7";
        libraryHaskellDepends = [
          base bytestring hashable hsyslog pipes pipes-safe semigroups text
          transformers uniplate unix-bytestring unordered-containers uuid
@@ -147395,8 +147593,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-elasticsearch";
-       version = "0.10.0.1";
-       sha256 = "1nnchsrkcm08r1lrlldr7icqnzsz3g024dlwg2z9la66n9d0fvl0";
+       version = "0.10.1.0";
+       sha256 = "10a7p0z9bqjfmc04xvqsflwqrhhnxk72kbhk62sh8l1is0i94vcs";
        libraryHaskellDepends = [
          aeson aeson-pretty base base64-bytestring bloodhound bytestring
          deepseq http-client http-client-tls log-base semigroups text
@@ -147416,10 +147614,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-postgres";
-       version = "0.7.0.2";
-       sha256 = "16v3wli0jll5j24pdzmya90lyawqv3rcvsfd4z88kgcchds07iji";
-       revision = "1";
-       editedCabalFile = "1f18nzrh3bxnb58cmd3zyqpwaw2jyfl92dg6qd30zhlvlnkz1q7q";
+       version = "0.7.1.0";
+       sha256 = "01xkkmdxlxn66a884ymzpxqqf0x8h2inagzvigg3d3iyn9sgrrh1";
        libraryHaskellDepends = [
          aeson aeson-pretty base base64-bytestring bytestring deepseq
          hpqtypes http-client lifted-base log-base mtl semigroups split text
@@ -147617,6 +147813,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "logging-effect_1_3_4" = callPackage
+    ({ mkDerivation, async, base, bytestring, criterion, exceptions
+     , fast-logger, free, lifted-async, monad-control, monad-logger, mtl
+     , prettyprinter, semigroups, stm, stm-delay, text, time
+     , transformers, transformers-base, unliftio-core
+     }:
+     mkDerivation {
+       pname = "logging-effect";
+       version = "1.3.4";
+       sha256 = "10xgh61ghwri21j7jr6svkd24h2s9nmawc33xkzjc6d4nbg261jf";
+       libraryHaskellDepends = [
+         async base exceptions free monad-control mtl prettyprinter
+         semigroups stm stm-delay text time transformers transformers-base
+         unliftio-core
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion fast-logger lifted-async monad-logger
+         prettyprinter text time
+       ];
+       description = "A mtl-style monad transformer for general purpose & compositional logging";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "logging-effect-extra" = callPackage
     ({ mkDerivation, base, logging-effect, logging-effect-extra-file
      , logging-effect-extra-handler, prettyprinter
@@ -148201,6 +148421,23 @@ self: {
        broken = true;
      }) {};
 
+  "looper" = callPackage
+    ({ mkDerivation, aeson, base, hspec, optparse-applicative, text
+     , time, unliftio
+     }:
+     mkDerivation {
+       pname = "looper";
+       version = "0.0.0.2";
+       sha256 = "0w4aancb0lbfgmk2drnbc1w6bxlbdkhg0zy1qj7xp3kvgc76vqli";
+       libraryHaskellDepends = [
+         aeson base optparse-applicative text time unliftio
+       ];
+       testHaskellDepends = [
+         aeson base hspec optparse-applicative text time unliftio
+       ];
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "loops" = callPackage
     ({ mkDerivation, base, criterion, primitive, tasty
      , tasty-quickcheck, transformers, vector
@@ -148620,6 +148857,8 @@ self: {
        ];
        description = "Parameterized file evaluator";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ltiv1p1" = callPackage
@@ -150780,8 +151019,8 @@ self: {
      }:
      mkDerivation {
        pname = "map-reduce-folds";
-       version = "0.1.0.0";
-       sha256 = "03f5jkjsrn5a82g0cvjwm9dq1hn4c9m6a8hsyh035f92vflfk5vc";
+       version = "0.1.0.1";
+       sha256 = "0jvgg1wk8qaxd7w3d5y7hr62xswy7xqs7b12jdjwzxm7d6k47lvq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -151057,6 +151296,23 @@ self: {
        license = "GPL";
      }) {};
 
+  "markov-chain-usage-model" = callPackage
+    ({ mkDerivation, base, doctest, matrix, tasty, tasty-discover
+     , tasty-hunit, vector
+     }:
+     mkDerivation {
+       pname = "markov-chain-usage-model";
+       version = "0.0.0";
+       sha256 = "14r73bvh6w7qz7rqb97ky2iyf2z2j7y14iy4fcr8mjyxag3mk3jc";
+       libraryHaskellDepends = [ base matrix vector ];
+       testHaskellDepends = [
+         base doctest matrix tasty tasty-discover tasty-hunit vector
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Computations for Markov chain usage models";
+       license = stdenv.lib.licenses.bsd2;
+     }) {};
+
   "markov-processes" = callPackage
     ({ mkDerivation, assertions, base, bifunctors, memoize, MonadRandom
      , random
@@ -153875,29 +154131,6 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-aeson";
-       version = "2.3.0.1";
-       sha256 = "1ncb0dhhr62yw8808c1h43cl48ib6clifklcrfx7acj5j482ikcs";
-       revision = "1";
-       editedCabalFile = "18490w9yvsn8rx18wb29bg1wj5vxa7il3gsi3cz2myx9iawhnnxq";
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring deepseq hashable microlens
-         scientific text unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base bytestring deepseq hashable microlens tasty tasty-hunit
-         text unordered-containers vector
-       ];
-       description = "Law-abiding lenses for Aeson, using microlens";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "microlens-aeson_2_3_0_4" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, deepseq
-     , hashable, microlens, scientific, tasty, tasty-hunit, text
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "microlens-aeson";
        version = "2.3.0.4";
        sha256 = "0w630kk5bnily1qh41081gqgbwmslrh5ad21899gwnb2r3jripyw";
        libraryHaskellDepends = [
@@ -153910,7 +154143,6 @@ self: {
        ];
        description = "Law-abiding lenses for Aeson, using microlens";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "microlens-contra" = callPackage
@@ -154781,36 +155013,36 @@ self: {
        broken = true;
      }) {};
 
-  "minio-hs_1_3_0" = callPackage
+  "minio-hs_1_3_1" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring
-     , case-insensitive, conduit, conduit-extra, containers, cryptonite
-     , cryptonite-conduit, digest, directory, exceptions, filepath
-     , http-client, http-conduit, http-types, ini, memory, protolude
-     , QuickCheck, raw-strings-qq, resourcet, retry, tasty, tasty-hunit
-     , tasty-quickcheck, tasty-smallcheck, temporary, text, time
-     , transformers, unliftio, unliftio-core, unordered-containers
-     , xml-conduit
+     , case-insensitive, conduit, conduit-extra, connection, containers
+     , cryptonite, cryptonite-conduit, digest, directory, exceptions
+     , filepath, http-client, http-client-tls, http-conduit, http-types
+     , ini, memory, protolude, QuickCheck, raw-strings-qq, resourcet
+     , retry, tasty, tasty-hunit, tasty-quickcheck, tasty-smallcheck
+     , temporary, text, time, transformers, unliftio, unliftio-core
+     , unordered-containers, xml-conduit
      }:
      mkDerivation {
        pname = "minio-hs";
-       version = "1.3.0";
-       sha256 = "1caia9dyxirxl7qy7ijhk1s4hp56m0f901ik34nbf5aizhl0qx94";
+       version = "1.3.1";
+       sha256 = "1z553cpflxmr5hy723bgmwyq061fpivi1jw0vq64x1i0bz0q1llp";
        libraryHaskellDepends = [
          aeson base base64-bytestring binary bytestring case-insensitive
-         conduit conduit-extra containers cryptonite cryptonite-conduit
-         digest directory exceptions filepath http-client http-conduit
-         http-types ini memory protolude raw-strings-qq resourcet retry text
-         time transformers unliftio unliftio-core unordered-containers
-         xml-conduit
+         conduit conduit-extra connection containers cryptonite
+         cryptonite-conduit digest directory exceptions filepath http-client
+         http-client-tls http-conduit http-types ini memory protolude
+         raw-strings-qq resourcet retry text time transformers unliftio
+         unliftio-core unordered-containers xml-conduit
        ];
        testHaskellDepends = [
          aeson base base64-bytestring binary bytestring case-insensitive
-         conduit conduit-extra containers cryptonite cryptonite-conduit
-         digest directory exceptions filepath http-client http-conduit
-         http-types ini memory protolude QuickCheck raw-strings-qq resourcet
-         retry tasty tasty-hunit tasty-quickcheck tasty-smallcheck temporary
-         text time transformers unliftio unliftio-core unordered-containers
-         xml-conduit
+         conduit conduit-extra connection containers cryptonite
+         cryptonite-conduit digest directory exceptions filepath http-client
+         http-client-tls http-conduit http-types ini memory protolude
+         QuickCheck raw-strings-qq resourcet retry tasty tasty-hunit
+         tasty-quickcheck tasty-smallcheck temporary text time transformers
+         unliftio unliftio-core unordered-containers xml-conduit
        ];
        description = "A MinIO Haskell Library for Amazon S3 compatible cloud storage";
        license = stdenv.lib.licenses.asl20;
@@ -158805,6 +159037,26 @@ self: {
        broken = true;
      }) {};
 
+  "ms-tds" = callPackage
+    ({ mkDerivation, array, base, binary, bytestring
+     , data-default-class, mtl, network, text, time, tls, uuid-types
+     , x509-store, x509-system
+     }:
+     mkDerivation {
+       pname = "ms-tds";
+       version = "0.1.0.0";
+       sha256 = "05g5y0c105p1dqcd8mybqnrky495nb0320yrjgk7dr7lhfwsyb6s";
+       libraryHaskellDepends = [
+         array base binary bytestring data-default-class mtl network text
+         time tls uuid-types x509-store x509-system
+       ];
+       testHaskellDepends = [
+         array base binary bytestring data-default-class mtl network text
+         time tls uuid-types x509-store x509-system
+       ];
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "msgpack" = callPackage
     ({ mkDerivation, async, base, binary, bytestring, containers
      , data-binary-ieee754, deepseq, hashable, mtl, QuickCheck, tasty
@@ -158925,6 +159177,23 @@ self: {
        broken = true;
      }) {};
 
+  "mssql-simple" = callPackage
+    ({ mkDerivation, base, binary, bytestring, ms-tds, network
+     , network-bsd, text, time, tls
+     }:
+     mkDerivation {
+       pname = "mssql-simple";
+       version = "0.1.0.1";
+       sha256 = "0vprjbr7w4273p15d74xjl0axxn0xsbxa3j2vbjx30jmizz8imqq";
+       libraryHaskellDepends = [
+         base binary bytestring ms-tds network network-bsd text time tls
+       ];
+       testHaskellDepends = [
+         base binary bytestring ms-tds network network-bsd text time tls
+       ];
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "mstate" = callPackage
     ({ mkDerivation, base, fail, monad-peel, mtl, stm }:
      mkDerivation {
@@ -163378,6 +163647,8 @@ self: {
        pname = "network-info";
        version = "0.2.0.10";
        sha256 = "0anmgzcpnz7nw3n6vq0r25m1s9l2svpwi83wza0lzkrlbnbzd02n";
+       revision = "1";
+       editedCabalFile = "07kiw56lhc56kqrnvpa11f5nnnid6by3aq00jrkcbbg7w0q71a6d";
        libraryHaskellDepends = [ base ];
        description = "Access the local computer's basic network configuration";
        license = stdenv.lib.licenses.bsd3;
@@ -163797,6 +164068,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "network-transport_0_5_4" = callPackage
+    ({ mkDerivation, base, binary, bytestring, deepseq, hashable
+     , transformers
+     }:
+     mkDerivation {
+       pname = "network-transport";
+       version = "0.5.4";
+       sha256 = "0izcqi3zl7ynav0qqrrfmiax8vziqwrhflprddhjj6x6nkzhp1sv";
+       libraryHaskellDepends = [
+         base binary bytestring deepseq hashable transformers
+       ];
+       description = "Network abstraction layer";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "network-transport-amqp" = callPackage
     ({ mkDerivation, amqp, async, base, bytestring, cereal, containers
      , exceptions, lens-family, lens-family-th, network-transport
@@ -164286,25 +164573,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "newtype";
-       version = "0.2";
-       sha256 = "0ng4i5r73256gzwl6bw57h0abqixj783c3ggph1hk2wsplx0655p";
-       revision = "1";
-       editedCabalFile = "0rbhpa1krcmvv4hsy3h5h8l4vqjk9wckddcz34rfcq0m7zlmsrfz";
-       libraryHaskellDepends = [ base ];
-       description = "A typeclass and set of functions for working with newtypes";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "newtype_0_2_1_0" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "newtype";
        version = "0.2.1.0";
        sha256 = "03fr1yfip09dvwff87dssy7r0vrv4rv184flxnp9gjzbg6h9byvb";
        libraryHaskellDepends = [ base ];
        description = "A typeclass and set of functions for working with newtypes";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "newtype-deriving" = callPackage
@@ -165422,6 +165695,29 @@ self: {
        ];
        description = "Non-empty variants of containers data types, with full API";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "nonempty-containers_0_2_0_0" = callPackage
+    ({ mkDerivation, base, comonad, containers, data-or, deepseq
+     , hedgehog, hedgehog-fn, semigroupoids, tasty, tasty-hedgehog, text
+     }:
+     mkDerivation {
+       pname = "nonempty-containers";
+       version = "0.2.0.0";
+       sha256 = "1rj8ynavi9h31l4fpivx7xkb7b8gcwcig2yl7d332z4xc76yg0jw";
+       libraryHaskellDepends = [
+         base comonad containers data-or deepseq semigroupoids
+       ];
+       testHaskellDepends = [
+         base comonad containers data-or hedgehog hedgehog-fn semigroupoids
+         tasty tasty-hedgehog text
+       ];
+       description = "Non-empty variants of containers data types, with full API";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "nonemptymap" = callPackage
@@ -165817,6 +166113,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "nsis_0_3_3" = callPackage
+    ({ mkDerivation, base, directory, process, transformers, uniplate
+     }:
+     mkDerivation {
+       pname = "nsis";
+       version = "0.3.3";
+       sha256 = "12vp44g56x6lkagh9qm5rf0hfrn7kqk4jxsswlml60iji7r8x9mx";
+       libraryHaskellDepends = [ base transformers uniplate ];
+       testHaskellDepends = [
+         base directory process transformers uniplate
+       ];
+       description = "DSL for producing Windows Installer using NSIS";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "nth-prime" = callPackage
     ({ mkDerivation, base, opentheory-prime, opentheory-primitive }:
      mkDerivation {
@@ -169008,6 +169320,8 @@ self: {
        pname = "optional-args";
        version = "1.0.2";
        sha256 = "1r5hhn6xvc01grggxdyy48daibwzi0aikgidq0ahpa6bfynm8d1f";
+       revision = "1";
+       editedCabalFile = "0fda6mhm44qpbc9hfkf6jxnm3a7qszabywsmxa2iw0dz734a9xl3";
        libraryHaskellDepends = [ base ];
        description = "Optional function arguments";
        license = stdenv.lib.licenses.bsd3;
@@ -170829,7 +171143,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "pandoc-pyplot_2_1_1_0" = callPackage
+  "pandoc-pyplot_2_1_1_1" = callPackage
     ({ mkDerivation, base, containers, data-default-class, deepseq
      , directory, filepath, hashable, hspec, hspec-expectations
      , open-browser, pandoc, pandoc-types, tasty, tasty-hspec
@@ -170838,8 +171152,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-pyplot";
-       version = "2.1.1.0";
-       sha256 = "0s66m591v6x91qqdkyxl40zwlv6nan86zfq5z4cx73yz9xf3gjsx";
+       version = "2.1.1.1";
+       sha256 = "0m066z26z0w3jq96f4i8r45r1iwzy2wp8hzjq179z6jip4pjfh2m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -172173,23 +172487,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "parser-combinators";
-       version = "1.0.2";
-       sha256 = "1wb6xbx3p9fyisza9d7svnby4makv2bkp0yh7lfi2bg3kybg41ry";
-       libraryHaskellDepends = [ base ];
-       description = "Lightweight package providing commonly useful parser combinators";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "parser-combinators_1_0_3" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "parser-combinators";
        version = "1.0.3";
        sha256 = "0cqic88xwi60x5x6pli0r8401yljvg2cis8a67766zypfg0il3bp";
        libraryHaskellDepends = [ base ];
        description = "Lightweight package providing commonly useful parser combinators";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "parser-combinators-tests" = callPackage
@@ -172465,12 +172767,25 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "partial-semigroup_0_5_1_1" = callPackage
+    ({ mkDerivation, base, doctest, hedgehog }:
+     mkDerivation {
+       pname = "partial-semigroup";
+       version = "0.5.1.1";
+       sha256 = "1n0nr7yprkg9ca86yd1w8d42zqjjdf6k7bbk818kfwbh72csxl0q";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base doctest hedgehog ];
+       description = "A partial binary associative operator";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "partial-semigroup-hedgehog" = callPackage
     ({ mkDerivation, base, hedgehog, partial-semigroup }:
      mkDerivation {
        pname = "partial-semigroup-hedgehog";
-       version = "0.6.0.0";
-       sha256 = "1qd9bg9qv0n80asfkrycvqwv92cdyy590871ypgkl82kx8x7qgbf";
+       version = "0.6.0.1";
+       sha256 = "0wn5gdgjza17qhxqmkp8mkj77ky2q39xs1gpjx4nrs5af34pavpy";
        libraryHaskellDepends = [ base hedgehog partial-semigroup ];
        description = "Property testing for partial semigroups using Hedgehog";
        license = stdenv.lib.licenses.asl20;
@@ -175148,38 +175463,23 @@ self: {
      }) {};
 
   "persistent-test" = callPackage
-    ({ mkDerivation, aeson, aeson-compat, attoparsec, base
-     , base64-bytestring, blaze-builder, blaze-html, blaze-markup
-     , bytestring, cereal, conduit, containers, exceptions, fast-logger
-     , hashable, hspec, hspec-expectations, http-api-data, HUnit
-     , lifted-base, monad-logger, mtl, network, old-locale, path-pieces
-     , persistent, persistent-sqlite, persistent-template, QuickCheck
-     , quickcheck-instances, random, resource-pool, resourcet
-     , scientific, semigroups, silently, system-fileio, system-filepath
-     , tagged, template-haskell, text, time, transformers
-     , transformers-base, unliftio, unliftio-core, unordered-containers
-     , vector
+    ({ mkDerivation, aeson, base, blaze-html, bytestring, conduit
+     , containers, exceptions, hspec, hspec-expectations, HUnit
+     , monad-control, monad-logger, path-pieces, persistent
+     , persistent-template, QuickCheck, quickcheck-instances, random
+     , resourcet, text, time, transformers, transformers-base, unliftio
+     , unliftio-core, unordered-containers
      }:
      mkDerivation {
        pname = "persistent-test";
-       version = "2.0.0.3";
-       sha256 = "1xjjbr780ipzxkbnj8cly0xl8wxbvqjvm293aqm0rnkyqwndhbn3";
-       isLibrary = true;
-       isExecutable = true;
+       version = "2.0.3.0";
+       sha256 = "1bspcv64qhcqiam964kxfxlc9afbns41dffh00k36dl2akr7p99a";
        libraryHaskellDepends = [
-         aeson aeson-compat attoparsec base base64-bytestring blaze-builder
-         blaze-html blaze-markup bytestring cereal conduit containers
-         exceptions fast-logger hashable hspec hspec-expectations
-         http-api-data HUnit lifted-base monad-logger mtl network old-locale
-         path-pieces persistent persistent-sqlite persistent-template
-         QuickCheck quickcheck-instances random resource-pool resourcet
-         scientific semigroups silently tagged template-haskell text time
-         transformers transformers-base unliftio unliftio-core
-         unordered-containers vector
-       ];
-       executableHaskellDepends = [
-         base hspec persistent resourcet scientific system-fileio
-         system-filepath
+         aeson base blaze-html bytestring conduit containers exceptions
+         hspec hspec-expectations HUnit monad-control monad-logger
+         path-pieces persistent persistent-template QuickCheck
+         quickcheck-instances random resourcet text time transformers
+         transformers-base unliftio unliftio-core unordered-containers
        ];
        description = "Tests for Persistent";
        license = stdenv.lib.licenses.mit;
@@ -175569,6 +175869,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "pgp-wordlist_0_1_0_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
+     , HUnit, tasty, tasty-hunit, tasty-quickcheck, text, vector
+     }:
+     mkDerivation {
+       pname = "pgp-wordlist";
+       version = "0.1.0.3";
+       sha256 = "15g6qh0fb7kjj3l0w8cama7cxgnhnhybw760md9yy7cqfq15cfzg";
+       libraryHaskellDepends = [ base bytestring containers text vector ];
+       testHaskellDepends = [
+         base bytestring deepseq doctest HUnit tasty tasty-hunit
+         tasty-quickcheck text
+       ];
+       description = "Translate between binary data and a human-readable collection of words";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "pgsql-simple" = callPackage
     ({ mkDerivation, attoparsec, base, base16-bytestring, binary
      , blaze-builder, blaze-textual, bytestring, containers
@@ -178351,10 +178669,8 @@ self: {
      }:
      mkDerivation {
        pname = "plots";
-       version = "0.1.0.2";
-       sha256 = "0kdn2s686rfanqq4qfkbjfys53zzf2hgc2jx3m9zpfzjb3wabhg5";
-       revision = "1";
-       editedCabalFile = "1n3qzplpis1h90kw4x8fi4d8qhqy1xxxflv1d38516ikffwvai9x";
+       version = "0.1.1.0";
+       sha256 = "0hhmxwz18d2wdj2xnf9mn51ibym5dxc1gmji87cdccdf6a4wcxpa";
        libraryHaskellDepends = [
          adjunctions base base-orphans colour containers data-default
          diagrams-core diagrams-lib directory distributive filepath
@@ -178722,8 +179038,8 @@ self: {
        pname = "pointful";
        version = "1.0.11.0";
        sha256 = "0kz786xp2sjl6ldbbfg3ln8l6nib6i8lw0d15hqr6yawrnf32qr2";
-       revision = "1";
-       editedCabalFile = "1a7fc03c586w011amjq770ifvf7ajbp9x3xp2w2yz1da9rkga2qv";
+       revision = "2";
+       editedCabalFile = "0zdhhflhz853iwlcjfxh57bx1wf8capij4b0ysjgmp7bi8hw5ww0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -181757,19 +182073,6 @@ self: {
      }) {};
 
   "pretty-sop" = callPackage
-    ({ mkDerivation, base, generics-sop, pretty-show }:
-     mkDerivation {
-       pname = "pretty-sop";
-       version = "0.2.0.2";
-       sha256 = "0x1j5ngxwk176kr1qb0vr7zzjph1jxjc3bpzqcnph3rn2j6z4kyn";
-       revision = "2";
-       editedCabalFile = "04hzf2ajlnh3ynk72xr5s396v8y0d8fkr4pf11nqss7yf60dkxwi";
-       libraryHaskellDepends = [ base generics-sop pretty-show ];
-       description = "A generic pretty-printer using generics-sop";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "pretty-sop_0_2_0_3" = callPackage
     ({ mkDerivation, base, generics-sop, markdown-unlit, pretty-show }:
      mkDerivation {
        pname = "pretty-sop";
@@ -181780,7 +182083,6 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "A generic pretty-printer using generics-sop";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pretty-terminal" = callPackage
@@ -182127,6 +182429,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "primitive_0_7_0_0" = callPackage
+    ({ mkDerivation, base, base-orphans, ghc-prim, QuickCheck
+     , semigroups, tagged, tasty, tasty-quickcheck, transformers
+     , transformers-compat
+     }:
+     mkDerivation {
+       pname = "primitive";
+       version = "0.7.0.0";
+       sha256 = "0xhmin3z2vp8jina1wzxg11nqiz8x63wisv2nw2ggji8lgz48skq";
+       libraryHaskellDepends = [ base ghc-prim transformers ];
+       testHaskellDepends = [
+         base base-orphans ghc-prim QuickCheck semigroups tagged tasty
+         tasty-quickcheck transformers transformers-compat
+       ];
+       description = "Primitive memory-related operations";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "primitive-addr" = callPackage
+    ({ mkDerivation, base, primitive }:
+     mkDerivation {
+       pname = "primitive-addr";
+       version = "0.1.0.0";
+       sha256 = "0nm6l9gy57l1hli7zjlh2mfdzhwi602dnicxis1d8ylqqyv633gw";
+       libraryHaskellDepends = [ base primitive ];
+       description = "Addresses to unmanaged memory";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "primitive-atomic" = callPackage
     ({ mkDerivation, base, primitive }:
      mkDerivation {
@@ -182231,6 +182563,17 @@ self: {
        broken = true;
      }) {};
 
+  "primitive-offset" = callPackage
+    ({ mkDerivation, base, primitive }:
+     mkDerivation {
+       pname = "primitive-offset";
+       version = "0.1.0.0";
+       sha256 = "0la56iw09x83ci5v82z8hpb0zdzdwi6awy5czszd78kj3n8ni3ax";
+       libraryHaskellDepends = [ base primitive ];
+       description = "Types for offsets into unboxed arrays";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "primitive-simd" = callPackage
     ({ mkDerivation, base, criterion, deepseq, ghc-prim, primitive
      , random, vector
@@ -182266,6 +182609,31 @@ self: {
        benchmarkHaskellDepends = [ base gauge ghc-prim primitive random ];
        description = "Sort primitive arrays";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "primitive-stablename" = callPackage
+    ({ mkDerivation, base, primitive }:
+     mkDerivation {
+       pname = "primitive-stablename";
+       version = "0.1";
+       sha256 = "1kdrzam5m2svxrpa7k3byg061i5xs0lc6q12hwgiq6l09savql6j";
+       libraryHaskellDepends = [ base primitive ];
+       description = "primitive operations on StableNames";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "primitive-unlifted" = callPackage
+    ({ mkDerivation, base, primitive, stm }:
+     mkDerivation {
+       pname = "primitive-unlifted";
+       version = "0.1.0.0";
+       sha256 = "014vkxfc2jas5qcsnlkxyczwsibm70vpb7zfzc5mhmfy60pib0vy";
+       libraryHaskellDepends = [ base primitive ];
+       testHaskellDepends = [ base primitive stm ];
+       description = "Primitive GHC types with unlifted types inside";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "primula-board" = callPackage
@@ -186814,21 +187182,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "quickcheck-instances_0_3_20" = callPackage
+  "quickcheck-instances_0_3_21" = callPackage
     ({ mkDerivation, array, base, base-compat, bytestring
      , case-insensitive, containers, hashable, old-time, QuickCheck
-     , scientific, splitmix, tagged, text, time, transformers
-     , transformers-compat, unordered-containers, uuid-types, vector
+     , scientific, splitmix, tagged, text, time, time-compat
+     , transformers, transformers-compat, unordered-containers
+     , uuid-types, vector
      }:
      mkDerivation {
        pname = "quickcheck-instances";
-       version = "0.3.20";
-       sha256 = "1f5mr70hgzg0ys8x6fkhdlh7bvvy4c1p4z23s4qzc6r9jvd11vya";
+       version = "0.3.21";
+       sha256 = "0kk9i5lck40jbx1sxcvaq66hywgnfslcx2cgy7lacq4cnjmyzrh1";
        libraryHaskellDepends = [
          array base base-compat bytestring case-insensitive containers
          hashable old-time QuickCheck scientific splitmix tagged text time
-         transformers transformers-compat unordered-containers uuid-types
-         vector
+         time-compat transformers transformers-compat unordered-containers
+         uuid-types vector
        ];
        testHaskellDepends = [
          base containers QuickCheck tagged uuid-types
@@ -190455,24 +190824,6 @@ self: {
      }:
      mkDerivation {
        pname = "records-sop";
-       version = "0.1.0.2";
-       sha256 = "187x3cq7h1rkmbv8qp810fcnr5y4byqwgw329v7f0s0px2vmg4h5";
-       revision = "1";
-       editedCabalFile = "082f4dmdvbnv6jq28mrva8clxif366vcbn9m8d1bb8lcf9h3qxjb";
-       libraryHaskellDepends = [ base deepseq generics-sop ghc-prim ];
-       testHaskellDepends = [
-         base deepseq generics-sop hspec should-not-typecheck
-       ];
-       description = "Record subtyping and record utilities with generics-sop";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "records-sop_0_1_0_3" = callPackage
-    ({ mkDerivation, base, deepseq, generics-sop, ghc-prim, hspec
-     , should-not-typecheck
-     }:
-     mkDerivation {
-       pname = "records-sop";
        version = "0.1.0.3";
        sha256 = "120kb6z4si5wqkahbqxqhm3qb8xpc9ivwg293ymz8a4ri1hdr0a5";
        libraryHaskellDepends = [ base deepseq generics-sop ghc-prim ];
@@ -190481,7 +190832,6 @@ self: {
        ];
        description = "Record subtyping and record utilities with generics-sop";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "records-th" = callPackage
@@ -191914,21 +192264,6 @@ self: {
      }:
      mkDerivation {
        pname = "regex-tdfa";
-       version = "1.2.3.1";
-       sha256 = "0l7ajnh4hpgggf2a1r9dg0hx2fy679vd2kada5y7r02hy3nfxala";
-       libraryHaskellDepends = [
-         array base bytestring containers ghc-prim mtl parsec regex-base
-       ];
-       description = "Replaces/Enhances Text.Regex";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "regex-tdfa_1_2_3_2" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, ghc-prim, mtl
-     , parsec, regex-base
-     }:
-     mkDerivation {
-       pname = "regex-tdfa";
        version = "1.2.3.2";
        sha256 = "03yhpqrqz977nwlnhnyz9dacnbzw8xb6j18h365rkgmbc05sb3hf";
        libraryHaskellDepends = [
@@ -191936,7 +192271,6 @@ self: {
        ];
        description = "Replaces/Enhances Text.Regex";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "regex-tdfa-pipes" = callPackage
@@ -192284,25 +192618,25 @@ self: {
 
   "registry" = callPackage
     ({ mkDerivation, async, base, containers, exceptions, generic-lens
-     , hashable, hedgehog, hedgehog-corpus, io-memoize, MonadRandom, mtl
-     , multimap, protolude, random, resourcet, semigroupoids, semigroups
-     , tasty, tasty-discover, tasty-hedgehog, tasty-th, template-haskell
-     , text, transformers-base, universum
+     , hashable, hedgehog, hedgehog-corpus, io-memoize, mmorph
+     , MonadRandom, mtl, multimap, protolude, random, resourcet
+     , semigroupoids, semigroups, tasty, tasty-discover, tasty-hedgehog
+     , tasty-th, template-haskell, text, transformers-base, universum
      }:
      mkDerivation {
        pname = "registry";
-       version = "0.1.3.6";
-       sha256 = "19wch1vd41r3hvgr9a1yjvbiz7fmib1qlhviqivsdd5apncgn2jk";
+       version = "0.1.4.0";
+       sha256 = "0iqx0pa5dzf4nbjjdjignn7baf9vckppsz81c4a1m1zrlv1ipyig";
        libraryHaskellDepends = [
-         base containers exceptions hashable mtl protolude resourcet
+         base containers exceptions hashable mmorph mtl protolude resourcet
          semigroupoids semigroups template-haskell text transformers-base
        ];
        testHaskellDepends = [
          async base containers exceptions generic-lens hashable hedgehog
-         hedgehog-corpus io-memoize MonadRandom mtl multimap protolude
-         random resourcet semigroupoids semigroups tasty tasty-discover
-         tasty-hedgehog tasty-th template-haskell text transformers-base
-         universum
+         hedgehog-corpus io-memoize mmorph MonadRandom mtl multimap
+         protolude random resourcet semigroupoids semigroups tasty
+         tasty-discover tasty-hedgehog tasty-th template-haskell text
+         transformers-base universum
        ];
        testToolDepends = [ tasty-discover ];
        description = "data structure for assembling components";
@@ -192311,27 +192645,27 @@ self: {
        broken = true;
      }) {};
 
-  "registry_0_1_4_2" = callPackage
+  "registry_0_1_5_1" = callPackage
     ({ mkDerivation, async, base, containers, exceptions, generic-lens
-     , hashable, hedgehog, hedgehog-corpus, io-memoize, mmorph
-     , MonadRandom, mtl, multimap, protolude, random, resourcet
-     , semigroupoids, semigroups, tasty, tasty-discover, tasty-hedgehog
-     , tasty-th, template-haskell, text, transformers-base, universum
+     , hashable, hedgehog, io-memoize, mmorph, MonadRandom, mtl
+     , multimap, protolude, random, resourcet, semigroupoids, semigroups
+     , tasty, tasty-discover, tasty-hedgehog, tasty-th, template-haskell
+     , text, transformers-base, universum
      }:
      mkDerivation {
        pname = "registry";
-       version = "0.1.4.2";
-       sha256 = "0jfwxpf4w4laj0allbalkb0haircf0w33j0h2c2b5dzrhmmsg2gp";
+       version = "0.1.5.1";
+       sha256 = "1yvfrxhldbw6y8rawx5dddqrbgn8z8fsg5n745bx8wrag63s0vna";
        libraryHaskellDepends = [
          base containers exceptions hashable mmorph mtl protolude resourcet
          semigroupoids semigroups template-haskell text transformers-base
        ];
        testHaskellDepends = [
          async base containers exceptions generic-lens hashable hedgehog
-         hedgehog-corpus io-memoize mmorph MonadRandom mtl multimap
-         protolude random resourcet semigroupoids semigroups tasty
-         tasty-discover tasty-hedgehog tasty-th template-haskell text
-         transformers-base universum
+         io-memoize mmorph MonadRandom mtl multimap protolude random
+         resourcet semigroupoids semigroups tasty tasty-discover
+         tasty-hedgehog tasty-th template-haskell text transformers-base
+         universum
        ];
        testToolDepends = [ tasty-discover ];
        description = "data structure for assembling components";
@@ -192340,6 +192674,33 @@ self: {
        broken = true;
      }) {};
 
+  "registry-hedgehog" = callPackage
+    ({ mkDerivation, base, containers, generic-lens, hedgehog, mmorph
+     , multimap, protolude, registry, tasty, tasty-discover
+     , tasty-hedgehog, tasty-th, template-haskell, text, transformers
+     , universum, unordered-containers
+     }:
+     mkDerivation {
+       pname = "registry-hedgehog";
+       version = "0.2.0.0";
+       sha256 = "19wjy4dmv3cycql0aharg6qxd7bkb87qkr206apfi0km58mb01d8";
+       libraryHaskellDepends = [
+         base containers hedgehog mmorph multimap protolude registry tasty
+         tasty-discover tasty-hedgehog tasty-th template-haskell text
+         transformers universum unordered-containers
+       ];
+       testHaskellDepends = [
+         base containers generic-lens hedgehog mmorph multimap protolude
+         registry tasty tasty-discover tasty-hedgehog tasty-th
+         template-haskell text transformers universum unordered-containers
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "utilities to work with Hedgehog generators and `registry`";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "regress" = callPackage
     ({ mkDerivation, ad, base, vector }:
      mkDerivation {
@@ -192545,10 +192906,12 @@ self: {
      }:
      mkDerivation {
        pname = "relation";
-       version = "0.4";
-       sha256 = "1jy5m0jih6ik05zagngrskk1ibiiblxsydxgdq6kjx1aa2pqnmqi";
+       version = "0.5";
+       sha256 = "13vzx6hq7ncd9z05ikvls60xp5dc4f7qb926s8df26zll4ayndlb";
        libraryHaskellDepends = [ base containers ];
-       testHaskellDepends = [ base hedgehog hspec hw-hspec-hedgehog ];
+       testHaskellDepends = [
+         base containers hedgehog hspec hw-hspec-hedgehog
+       ];
        testToolDepends = [ hspec-discover ];
        description = "A data structure representing Relations on Sets";
        license = stdenv.lib.licenses.bsd3;
@@ -192597,6 +192960,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "relational-query_0_12_2_1" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, dlist
+     , names-th, persistable-record, product-isomorphic
+     , quickcheck-simple, sql-words, template-haskell, text
+     , th-reify-compat, time, time-locale-compat, transformers
+     }:
+     mkDerivation {
+       pname = "relational-query";
+       version = "0.12.2.1";
+       sha256 = "09ihkynff79kpgph6kwb0rr6q9crkppdhal4nz7gvb1nx3y8fw9s";
+       libraryHaskellDepends = [
+         array base bytestring containers dlist names-th persistable-record
+         product-isomorphic sql-words template-haskell text th-reify-compat
+         time time-locale-compat transformers
+       ];
+       testHaskellDepends = [
+         base containers product-isomorphic quickcheck-simple transformers
+       ];
+       description = "Typeful, Modular, Relational, algebraic query engine";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "relational-query-HDBC" = callPackage
     ({ mkDerivation, base, containers, convertible, dlist, HDBC
      , HDBC-session, names-th, persistable-record, product-isomorphic
@@ -192621,6 +193007,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "relational-query-HDBC_0_7_2_0" = callPackage
+    ({ mkDerivation, base, containers, convertible, dlist, HDBC
+     , HDBC-session, names-th, persistable-record, product-isomorphic
+     , QuickCheck, quickcheck-simple, relational-query
+     , relational-schemas, sql-words, template-haskell, th-data-compat
+     , transformers
+     }:
+     mkDerivation {
+       pname = "relational-query-HDBC";
+       version = "0.7.2.0";
+       sha256 = "0gzgjqh6pp4nf2zkc77xmm9sm02h2hya1bn339z1sa71nxs0ksc3";
+       libraryHaskellDepends = [
+         base containers convertible dlist HDBC HDBC-session names-th
+         persistable-record product-isomorphic relational-query
+         relational-schemas sql-words template-haskell th-data-compat
+         transformers
+       ];
+       testHaskellDepends = [
+         base convertible HDBC QuickCheck quickcheck-simple
+       ];
+       description = "HDBC instance of relational-query and typed query interface for HDBC";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "relational-record" = callPackage
     ({ mkDerivation, base, persistable-record
      , persistable-types-HDBC-pg, product-isomorphic, relational-query
@@ -192640,13 +193051,13 @@ self: {
 
   "relational-record-examples" = callPackage
     ({ mkDerivation, base, HDBC, HDBC-session, HDBC-sqlite3
-     , persistable-record, relational-query, relational-query-HDBC
-     , relational-schemas, template-haskell
+     , persistable-record, product-isomorphic, relational-query
+     , relational-query-HDBC, relational-schemas, template-haskell, time
      }:
      mkDerivation {
        pname = "relational-record-examples";
-       version = "0.5.1.1";
-       sha256 = "0ll6yjp0scbv2fl18b8qplj488a4wp985dr2km0hf4zjb1mri0i0";
+       version = "0.6.0.0";
+       sha256 = "1f37pzz60zrg5z09vf6sdp9in5f78kyvxag6gbyanapi7iki14k3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -192654,8 +193065,13 @@ self: {
          relational-query relational-query-HDBC relational-schemas
          template-haskell
        ];
+       executableHaskellDepends = [
+         base product-isomorphic relational-query template-haskell time
+       ];
        description = "Examples of Haskell Relationa Record";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "relational-schemas" = callPackage
@@ -192673,6 +193089,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "relational-schemas_0_1_7_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, relational-query
+     , template-haskell, time
+     }:
+     mkDerivation {
+       pname = "relational-schemas";
+       version = "0.1.7.0";
+       sha256 = "1yhgn2sjq7530s31fyyaxms5vnqwl03pwvsn0sm8f6yyzjvwm38b";
+       libraryHaskellDepends = [
+         base bytestring containers relational-query template-haskell time
+       ];
+       description = "RDBMSs' schema templates for relational-query";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "relative-date" = callPackage
     ({ mkDerivation, base, concatenative, datetime, mtl, parsec, time
      }:
@@ -193807,6 +194239,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "rerebase_1_3_1_1" = callPackage
+    ({ mkDerivation, rebase }:
+     mkDerivation {
+       pname = "rerebase";
+       version = "1.3.1.1";
+       sha256 = "1jbqif6k249rkknm2zwk8v8jil3kgi9ar53358v8l4ffx346rm82";
+       libraryHaskellDepends = [ rebase ];
+       description = "Reexports from \"base\" with a bunch of other standard libraries";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "reroute" = callPackage
     ({ mkDerivation, base, criterion, deepseq, graph-core, hashable
      , hspec, http-api-data, hvect, mtl, random, regex-compat, text
@@ -200888,19 +201332,17 @@ self: {
      }) {};
 
   "selective" = callPackage
-    ({ mkDerivation, base, checkers, containers, mtl, QuickCheck, tasty
+    ({ mkDerivation, base, containers, mtl, QuickCheck, tasty
      , tasty-expected-failure, tasty-quickcheck, transformers
      }:
      mkDerivation {
        pname = "selective";
-       version = "0.1.0";
-       sha256 = "1f30y2q5xph8jp2pfwkqdy59byad3q70kfp9jgcy2039i268fjfv";
-       revision = "1";
-       editedCabalFile = "1p6r23ahxpsq6rkb925ryd0cn09876z435q61wfz4r2rnb3s2wb2";
-       libraryHaskellDepends = [ base containers mtl transformers ];
+       version = "0.2";
+       sha256 = "0xg0pd3vffdxfzwkiirhnzqwqsshfb7grs7a7p3lf4yrd08h90ms";
+       libraryHaskellDepends = [ base containers transformers ];
        testHaskellDepends = [
-         base checkers containers mtl QuickCheck tasty
-         tasty-expected-failure tasty-quickcheck
+         base containers mtl QuickCheck tasty tasty-expected-failure
+         tasty-quickcheck
        ];
        description = "Selective applicative functors";
        license = stdenv.lib.licenses.mit;
@@ -201284,6 +201726,22 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "semver_0_3_4" = callPackage
+    ({ mkDerivation, attoparsec, base, criterion, deepseq, hashable
+     , tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "semver";
+       version = "0.3.4";
+       sha256 = "0swffqyqraz2nxn64mwxp29zfdq7135q2j815yzwh2pk135xmns2";
+       libraryHaskellDepends = [ attoparsec base deepseq hashable text ];
+       testHaskellDepends = [ base tasty tasty-hunit text ];
+       benchmarkHaskellDepends = [ base criterion text ];
+       description = "Representation, manipulation, and de/serialisation of Semantic Versions";
+       license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "semver-range" = callPackage
     ({ mkDerivation, base, classy-prelude, hspec, parsec, QuickCheck
      , text, unordered-containers
@@ -205486,8 +205944,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake";
-       version = "0.17.9";
-       sha256 = "0kkglnw7cwj9xkxg7ffj09dnjyribgs1vrsyl2hmpl3xy4gs0sdk";
+       version = "0.18";
+       sha256 = "1manjf4834dh556j8x7zxndw94vz1xlmilqdqlhd2q8hcfdxlc3q";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -206248,6 +206706,8 @@ self: {
        pname = "shellmet";
        version = "0.0.1";
        sha256 = "11c53h3dvhmnkjhcjw1xjr1kx6pvdmayf86i5b6zhpl4q3q2ixlk";
+       revision = "1";
+       editedCabalFile = "0v6j5fgmbbqizqx800adnkij1b1b8f7zkjmyfqvcpgljgg6xada5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base process text ];
@@ -207369,6 +207829,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "simple-enumeration" = callPackage
+    ({ mkDerivation, base, doctest }:
+     mkDerivation {
+       pname = "simple-enumeration";
+       version = "0.1";
+       sha256 = "08zqs36v8vm3iqz9pnj6df0f8c15j9gl0883xxbr27nma9mwqygx";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base doctest ];
+       description = "Finite or countably infinite sequences of values";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "simple-eval" = callPackage
     ({ mkDerivation, base, parsec, text, transformers }:
      mkDerivation {
@@ -208162,6 +208634,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "simplistic-generics" = callPackage
+    ({ mkDerivation, base, comonad, kind-apply }:
+     mkDerivation {
+       pname = "simplistic-generics";
+       version = "0.1.0.0";
+       sha256 = "11z02m4dr9p2y29xwhy6a3l2cz2np164c8cwp0a0b9vkhphw4y1j";
+       libraryHaskellDepends = [ base comonad kind-apply ];
+       description = "Generic programming without too many type classes";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "simseq" = callPackage
     ({ mkDerivation, base, bio, bytestring, random }:
      mkDerivation {
@@ -210136,8 +210619,8 @@ self: {
      }:
      mkDerivation {
        pname = "snap-language";
-       version = "0.1.0.4";
-       sha256 = "144l44s587hizsxkh38bqrabyjndwacipklsg30hiwk8cdhqa8f4";
+       version = "0.1.0.5";
+       sha256 = "04zn5d8qz17gm1c77xmas059hvl4ach8sayh81q676fkadiwk3x7";
        libraryHaskellDepends = [
          attoparsec base bytestring containers snap-core
        ];
@@ -211602,6 +212085,8 @@ self: {
        pname = "soap-tls";
        version = "0.1.1.4";
        sha256 = "051shlb128lsacd2cjm4kpyqkmzdcwcj7ppl7l4n1k5j9g6k72yf";
+       revision = "1";
+       editedCabalFile = "11djy824gaw3cbsvphq263hxjrn1b3v5p1kdivsvlyn7q9bgvms9";
        libraryHaskellDepends = [
          base configurator connection data-default http-client
          http-client-tls soap text tls x509 x509-store x509-validation
@@ -213691,6 +214176,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "sql-words_0_1_6_3" = callPackage
+    ({ mkDerivation, base, QuickCheck, quickcheck-simple }:
+     mkDerivation {
+       pname = "sql-words";
+       version = "0.1.6.3";
+       sha256 = "11z6g85dzrvkhnz0g6rhv5s2ssqcyyzbi2pp5rwzp30xp0ivsx95";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base QuickCheck quickcheck-simple ];
+       description = "SQL keywords data constructors into OverloadedString";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "sqlcipher" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, directory, filepath
      , hspec, openssl, pretty, temporary, time, utf8-string
@@ -215864,17 +216362,16 @@ self: {
     ({ mkDerivation, base, case-insensitive, deepseq, exceptions
      , ghc-prim, hashable, hspec, hspec-discover, HUnit, integer-gmp
      , libuv, primitive, QuickCheck, quickcheck-instances, scientific
-     , stm, template-haskell, time, word8
+     , stm, tagged, template-haskell, time, unordered-containers, word8
      }:
      mkDerivation {
        pname = "stdio";
-       version = "0.1.1.0";
-       sha256 = "1sspnrflqac9clf9h6zwnhlvsw52xx97dlxyl6lhw6czy2qy813d";
-       revision = "1";
-       editedCabalFile = "1xdw84i0nlc3iz3i01li9p44raxn265kqjd284ifbf83vvhbp897";
+       version = "0.2.0.0";
+       sha256 = "0j2ywcrzwx2q9fwa8slx7clzgrmfsnfz22ma08b77ii0yg0za271";
        libraryHaskellDepends = [
          base case-insensitive deepseq exceptions ghc-prim hashable
-         integer-gmp primitive scientific stm template-haskell time word8
+         integer-gmp primitive QuickCheck scientific stm tagged
+         template-haskell time unordered-containers
        ];
        libraryPkgconfigDepends = [ libuv ];
        libraryToolDepends = [ hspec-discover ];
@@ -216782,15 +217279,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "stratosphere_0_36_0" = callPackage
+  "stratosphere_0_37_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , hashable, hspec, hspec-discover, lens, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.36.0";
-       sha256 = "0890g86djpwg9nisqbb5nxxj42r2r8rh98vd5a0dk7lc72navp3k";
+       version = "0.37.0";
+       sha256 = "02m5cf4cxf32y3haqgx0nvwy64fmhbpmgk4g3i024mh1ab00k5fn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -217025,27 +217522,6 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-attoparsec";
-       version = "1.0.0";
-       sha256 = "00k1vwqr7ns7s4r6xvq59kpwimqd0f02jj0ay4zg167dd5994a7z";
-       revision = "2";
-       editedCabalFile = "07hqs8nn1rhsqckqmw46yp19kd0vk35q139al6yq0k1dzpvsrcsx";
-       libraryHaskellDepends = [
-         attoparsec base bytestring streaming streaming-bytestring
-       ];
-       testHaskellDepends = [
-         attoparsec base bytestring streaming streaming-bytestring tasty
-         tasty-hunit
-       ];
-       description = "Attoparsec integration for the streaming ecosystem";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "streaming-attoparsec_1_0_0_1" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, streaming
-     , streaming-bytestring, tasty, tasty-hunit
-     }:
-     mkDerivation {
-       pname = "streaming-attoparsec";
        version = "1.0.0.1";
        sha256 = "151gjivqbadh1wfbj53d0ahw4cjax4nnhg1v0l1piqnp1mbz7j8y";
        libraryHaskellDepends = [
@@ -217057,7 +217533,6 @@ self: {
        ];
        description = "Attoparsec integration for the streaming ecosystem";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "streaming-base64" = callPackage
@@ -217238,8 +217713,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-concurrency";
-       version = "0.3.1.2";
-       sha256 = "0ra4svn595qx08rfg3qz2n30y6dsv2xj2kdl4s61xbhi4cmff819";
+       version = "0.3.1.3";
+       sha256 = "07fk9kdfh2983qawl78sy0ibqa8ngwna2slz3ckbm1fgc8sybzip";
        libraryHaskellDepends = [
          base exceptions lifted-async monad-control stm streaming
          streaming-with transformers-base
@@ -219152,8 +219627,8 @@ self: {
        pname = "summoner";
        version = "1.3.0.1";
        sha256 = "1m08n2ip9rjx06mcwcv636ncicmpxcmhx82i3p4yc5vylibxr57s";
-       revision = "1";
-       editedCabalFile = "0cw9vzvmmg13iyqh9g12c6yblv4ibxzcn61n4y7s59zmy4rqxg65";
+       revision = "2";
+       editedCabalFile = "0y3c59flsiz9w5a88ciy3jxzs1hvnlzyb3z5bz0199g0wrpwjxr6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -219617,8 +220092,8 @@ self: {
        pname = "sv";
        version = "1.3.1";
        sha256 = "0j92jgma41ggfjvd8a1la1wi2vms8ia1y6aqf6l7casavcn5vf2k";
-       revision = "1";
-       editedCabalFile = "19khsv0s2gk78fiwjkd3b1f2dkv78yhsl88rlb2jb2j48sjaqsgn";
+       revision = "2";
+       editedCabalFile = "1c0q010bpzdmjlncjn58fvz50l5z2wqp4hjpj0isvdr5iq96pgza";
        libraryHaskellDepends = [
          attoparsec base bifunctors bytestring contravariant hw-dsv
          semigroupoids sv-core transformers utf8-string validation
@@ -219695,8 +220170,8 @@ self: {
        pname = "sv-core";
        version = "0.4.1";
        sha256 = "1brjdh22sarg9v0qak8xgzyhpcilwn0czab9mh65l2izp3nzkfn7";
-       revision = "1";
-       editedCabalFile = "1zdg2v5sxz0x6q6sgz79s71kqj79g8vn9pyl8hvqkw43b3g6zs4i";
+       revision = "2";
+       editedCabalFile = "05h0lsj434qv81b2fvnm80wyb7272wcwly3jfk4l1qp5hjyq6917";
        libraryHaskellDepends = [
          attoparsec base bifunctors bytestring containers contravariant
          deepseq double-conversion lens mtl parsec profunctors readable
@@ -221482,6 +221957,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "systemd_1_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, network, transformers, unix }:
+     mkDerivation {
+       pname = "systemd";
+       version = "1.2.0";
+       sha256 = "04jzgixwy267bx75byi1pavfgic2h3znn42psb70i6l6xvwn875g";
+       libraryHaskellDepends = [
+         base bytestring network transformers unix
+       ];
+       testHaskellDepends = [ base network unix ];
+       description = "Systemd facilities (Socket activation, Notify)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "systemstats" = callPackage
     ({ mkDerivation, base, micrologger, optparse-applicative, statgrab
      , text, text-format, transformers
@@ -222793,15 +223283,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "tasty_1_2_1" = callPackage
+  "tasty_1_2_2" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, clock, containers, mtl
      , optparse-applicative, stm, tagged, unbounded-delays, unix
      , wcwidth
      }:
      mkDerivation {
        pname = "tasty";
-       version = "1.2.1";
-       sha256 = "0yw8bb92x723md31nisd75mdbfsq9can1h5r4gchdjvwafxy98ia";
+       version = "1.2.2";
+       sha256 = "0jng1smav3cyam5k3a5wswgqdirlvrkwdmjyc2d9jvx1i8549mih";
        libraryHaskellDepends = [
          ansi-terminal async base clock containers mtl optparse-applicative
          stm tagged unbounded-delays unix wcwidth
@@ -222976,10 +223466,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-hedgehog";
-       version = "0.2.0.0";
-       sha256 = "10m1akbiblnjq9ljk469725k30b254d36d267rk51z2f171py42s";
-       revision = "6";
-       editedCabalFile = "0d7s1474pvnyad6ilr5rvpama7s468ya9ns4ksbl0827z9vvga43";
+       version = "1.0.0.0";
+       sha256 = "1sdgadqw0y6cdaa46i4z2jah03654iikjr04i92h06cpw1aw2mqm";
        libraryHaskellDepends = [ base hedgehog tagged tasty ];
        testHaskellDepends = [
          base hedgehog tasty tasty-expected-failure
@@ -223057,6 +223545,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty-hunit_0_10_0_2" = callPackage
+    ({ mkDerivation, base, call-stack, tasty }:
+     mkDerivation {
+       pname = "tasty-hunit";
+       version = "0.10.0.2";
+       sha256 = "1xvf5xs0r8xqkcg354klz4wyzwyzvinalyl6f4fnxwqmzrgch8s8";
+       libraryHaskellDepends = [ base call-stack tasty ];
+       description = "HUnit support for the Tasty test framework";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tasty-hunit-adapter" = callPackage
     ({ mkDerivation, base, HUnit, tasty, tasty-hunit }:
      mkDerivation {
@@ -223187,19 +223687,25 @@ self: {
      }) {};
 
   "tasty-lua" = callPackage
-    ({ mkDerivation, base, bytestring, directory, file-embed, hslua
-     , tasty, tasty-hunit, text
+    ({ mkDerivation, base, bytestring, directory, file-embed, filepath
+     , hslua, tasty, tasty-hunit, text
      }:
      mkDerivation {
        pname = "tasty-lua";
-       version = "0.1.0";
-       sha256 = "199zhrd48ixyi32spnm85v0dj6i09sl3rwi42kaxdlxkkmc54i1z";
+       version = "0.1.1";
+       sha256 = "0a6b02aq9wzbdkz8mkq8ii5pp65ijbj0ayr4ay5ipqn3jzimmr71";
+       revision = "1";
+       editedCabalFile = "1di6lpqjkrq3mcmaix7ar136kfmc54m4jma7byz6vc41gha388yr";
        libraryHaskellDepends = [
          base bytestring file-embed hslua tasty text
        ];
-       testHaskellDepends = [ base directory hslua tasty tasty-hunit ];
+       testHaskellDepends = [
+         base directory filepath hslua tasty tasty-hunit
+       ];
        description = "Write tests in Lua, integrate into tasty";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tasty-program" = callPackage
@@ -223234,6 +223740,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty-quickcheck_0_10_1" = callPackage
+    ({ mkDerivation, base, optparse-applicative, pcre-light, QuickCheck
+     , random, tagged, tasty, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "tasty-quickcheck";
+       version = "0.10.1";
+       sha256 = "0k4vvd5vmrncv1s6gdf03l4xijwlk428sb9jfx8n1zaz02971msh";
+       libraryHaskellDepends = [
+         base optparse-applicative QuickCheck random tagged tasty
+       ];
+       testHaskellDepends = [ base pcre-light tasty tasty-hunit ];
+       description = "QuickCheck support for the Tasty test framework";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tasty-quickcheck-laws" = callPackage
     ({ mkDerivation, base, QuickCheck, tasty, tasty-quickcheck }:
      mkDerivation {
@@ -227265,26 +227788,6 @@ self: {
      }:
      mkDerivation {
        pname = "th-utilities";
-       version = "0.2.1.0";
-       sha256 = "1kc3zv43948whv47cpmwnqw90iz68dmi1bmw9b183bnd0yr7wnfb";
-       libraryHaskellDepends = [
-         base bytestring containers directory filepath primitive syb
-         template-haskell text th-orphans
-       ];
-       testHaskellDepends = [
-         base bytestring containers directory filepath hspec primitive syb
-         template-haskell text th-orphans vector
-       ];
-       description = "Collection of useful functions for use with Template Haskell";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "th-utilities_0_2_3_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, directory, filepath
-     , hspec, primitive, syb, template-haskell, text, th-orphans, vector
-     }:
-     mkDerivation {
-       pname = "th-utilities";
        version = "0.2.3.0";
        sha256 = "0bl4j81k7szn0lza8rnn1db6glc57dsn63ni0hwbwr3kxa3pb4x4";
        libraryHaskellDepends = [
@@ -227297,7 +227800,6 @@ self: {
        ];
        description = "Collection of useful functions for use with Template Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "thank-you-stars" = callPackage
@@ -228378,6 +228880,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "time-compat_1_9_2_2" = callPackage
+    ({ mkDerivation, base, base-compat, base-orphans, deepseq, HUnit
+     , QuickCheck, tagged, tasty, tasty-hunit, tasty-quickcheck, time
+     }:
+     mkDerivation {
+       pname = "time-compat";
+       version = "1.9.2.2";
+       sha256 = "05va0rqs759vbridbcl6hksp967j9anjvys8vx72fnfkhlrn2s52";
+       libraryHaskellDepends = [ base base-orphans deepseq time ];
+       testHaskellDepends = [
+         base base-compat deepseq HUnit QuickCheck tagged tasty tasty-hunit
+         tasty-quickcheck time
+       ];
+       description = "Compatibility package for time";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "time-extras" = callPackage
     ({ mkDerivation, base, time }:
      mkDerivation {
@@ -230093,7 +230613,7 @@ self: {
        broken = true;
      }) {};
 
-  "tomland_1_0_0" = callPackage
+  "tomland_1_0_1_0" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, deepseq
      , gauge, hashable, hedgehog, hspec-megaparsec, htoml
      , htoml-megaparsec, markdown-unlit, megaparsec, mtl, parsec
@@ -230103,10 +230623,8 @@ self: {
      }:
      mkDerivation {
        pname = "tomland";
-       version = "1.0.0";
-       sha256 = "0zxal12gn6d2657a14idzzjxymwmnrzkkicf7gqwlgwpn0lnr4p6";
-       revision = "1";
-       editedCabalFile = "14n2zgnzfdg549pjrj7f8v02wz68mp5lr9gnyx3w1hv96jb9ksx6";
+       version = "1.0.1.0";
+       sha256 = "1f5819bxv9ybj5ygpndlhyfsjl3i6x03xfrgpxnjkjk0pyjmywx2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -230298,8 +230816,8 @@ self: {
      }:
      mkDerivation {
        pname = "too-many-cells";
-       version = "0.1.6.0";
-       sha256 = "1nwjf5qmvshgcg2zf0mqav5kz19rj0a4vd7w6x1zbalysj9v5nb7";
+       version = "0.1.6.1";
+       sha256 = "1bs2x7y1g11lbryvih78my6vnjplzm8pkxrl209s5vdkfks8pf8x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -231156,6 +231674,8 @@ self: {
        pname = "transformers-bifunctors";
        version = "0.1";
        sha256 = "01s8516m9cybx5gqxk8g00fnkbwpfi5vrm1pgi62pxk1cgbx699w";
+       revision = "1";
+       editedCabalFile = "1vjyk2ldwfi2pkvk79p37ii5xgg1399kxqhkq3l4wvag4j5p4afs";
        libraryHaskellDepends = [ base mmorph transformers ];
        description = "Bifunctors over monad transformers";
        license = stdenv.lib.licenses.bsd3;
@@ -231676,33 +232196,6 @@ self: {
      }:
      mkDerivation {
        pname = "tree-diff";
-       version = "0.0.2";
-       sha256 = "0zlviaikyk50l577q7h06w5z058v1ngjlhwzfn965xkp978hnsgq";
-       revision = "2";
-       editedCabalFile = "07pz7mhzvh7iwgn2rvw29valfdm4y845zqqffxb89ywbb6gnm8x8";
-       libraryHaskellDepends = [
-         aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
-         containers generics-sop hashable MemoTrie parsec parsers pretty
-         QuickCheck scientific tagged text time unordered-containers
-         uuid-types vector
-       ];
-       testHaskellDepends = [
-         ansi-terminal ansi-wl-pprint base base-compat parsec QuickCheck
-         tasty tasty-golden tasty-quickcheck trifecta
-       ];
-       description = "Diffing of (expression) trees";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "tree-diff_0_0_2_1" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, base
-     , base-compat, bytestring, containers, generics-sop, hashable
-     , MemoTrie, parsec, parsers, pretty, QuickCheck, scientific, tagged
-     , tasty, tasty-golden, tasty-quickcheck, text, time, trifecta
-     , unordered-containers, uuid-types, vector
-     }:
-     mkDerivation {
-       pname = "tree-diff";
        version = "0.0.2.1";
        sha256 = "0hz7jklzb4cc63l68jxc58ik0ybgim9niwq2gfi0cskv5g2yr3ym";
        libraryHaskellDepends = [
@@ -231717,7 +232210,6 @@ self: {
        ];
        description = "Diffing of (expression) trees";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tree-fun" = callPackage
@@ -234330,6 +234822,8 @@ self: {
        pname = "typed-process";
        version = "0.2.4.0";
        sha256 = "02xvyaq4sxwjqbmkn29n5x58l4rni6gbqp526r3q7wn6jalgazwr";
+       revision = "1";
+       editedCabalFile = "1i46snkrdpjjsfqbjjarnivadlrd7gbc4nab868ki848vd38qgf1";
        libraryHaskellDepends = [
          async base bytestring process stm transformers
        ];
@@ -234601,6 +235095,8 @@ self: {
        pname = "typerep-map";
        version = "0.3.2";
        sha256 = "0s77hj0m9jiqgybccdfl1x88j05fx7grkg16q6kldd1lgqrvrgb0";
+       revision = "1";
+       editedCabalFile = "1ka2ah7cg7hzd7yvnj6iasa57bszzif1b5r94sd8fk00l1qspjag";
        libraryHaskellDepends = [
          base containers deepseq ghc-prim primitive vector
        ];
@@ -236538,6 +237034,8 @@ self: {
        pname = "unix-compat";
        version = "0.5.1";
        sha256 = "0llwl7rp63fy2ychwdclz1afj45pbin5pfl01dvn6rwhvmwhr7d3";
+       revision = "1";
+       editedCabalFile = "0c4ak3y72nhv3nf025cyfi1dri2wjmsal3icjwj0aczmlb0imwrd";
        libraryHaskellDepends = [ base unix ];
        description = "Portable POSIX-compatibility layer";
        license = stdenv.lib.licenses.bsd3;
@@ -238839,6 +239337,8 @@ self: {
        pname = "validation";
        version = "1.1";
        sha256 = "1acj7mh3581ks405xswxw6667z7y1y0slisg6jvp6chc191ji9l5";
+       revision = "1";
+       editedCabalFile = "1rrjg9z399k6pb55nv85mlr5bkmdqbjwkvl1cy7ydccdx6ks4syp";
        libraryHaskellDepends = [
          base bifunctors deepseq lens semigroupoids semigroups
        ];
@@ -239552,8 +240052,8 @@ self: {
        pname = "vector";
        version = "0.12.0.3";
        sha256 = "1a756s4w759ji3als5alfxwlckh5zcmykfg9rll4mlr2knzvz8mq";
-       revision = "1";
-       editedCabalFile = "0nkx1kwrvskp7xx1193d7b72fk7b678nlljzjqazhcbvi7qxpdxr";
+       revision = "2";
+       editedCabalFile = "1kjs6jnbxziv1q0md2jiqic0r19ry8xlg7wdr8b52rz7yjyb08hl";
        libraryHaskellDepends = [ base deepseq ghc-prim primitive ];
        testHaskellDepends = [
          base base-orphans HUnit primitive QuickCheck random
@@ -239572,8 +240072,8 @@ self: {
        pname = "vector-algorithms";
        version = "0.8.0.1";
        sha256 = "1zip8r7hh5g12xrjvhbg38z6hfxy7l6h6pl88qcqc0ygdmwdxg0m";
-       revision = "1";
-       editedCabalFile = "18jm5zjzbphyzgc1hjqay04c6j4h7bq2bs8rzngnxk2q8gv658vz";
+       revision = "2";
+       editedCabalFile = "0ms473xd1d81dbg47kjr9gxqs11ipg2j1kk99q37rhvrbr5xv5l4";
        libraryHaskellDepends = [ base bytestring primitive vector ];
        testHaskellDepends = [
          base bytestring containers QuickCheck vector
@@ -240951,23 +241451,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "void";
-       version = "0.7.2";
-       sha256 = "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk";
-       libraryHaskellDepends = [ base ];
-       description = "A Haskell 98 logically uninhabited data type";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "void_0_7_3" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "void";
        version = "0.7.3";
        sha256 = "05vk3x1r9a2pqnzfji475m5gdih2im1h7rbi2sc67p1pvj6pbbsk";
        libraryHaskellDepends = [ base ];
        description = "A Haskell 98 logically uninhabited data type";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "vorbiscomment" = callPackage
@@ -244008,6 +244496,41 @@ self: {
        broken = true;
      }) {};
 
+  "web3_0_8_3_2" = callPackage
+    ({ mkDerivation, aeson, async, base, basement, bytestring, cereal
+     , cryptonite, data-default, exceptions, generics-sop, hspec
+     , hspec-contrib, hspec-discover, hspec-expectations, http-client
+     , http-client-tls, machines, memory, microlens, microlens-aeson
+     , microlens-mtl, microlens-th, mtl, OneTuple, parsec, random
+     , relapse, split, stm, tagged, template-haskell, text, time
+     , transformers, uuid-types, vinyl
+     }:
+     mkDerivation {
+       pname = "web3";
+       version = "0.8.3.2";
+       sha256 = "1yk24r1pbavvp8si8yxk4p5n4s80h1klz5rav49sgrw8zj69n3x7";
+       libraryHaskellDepends = [
+         aeson async base basement bytestring cereal cryptonite data-default
+         exceptions generics-sop http-client http-client-tls machines memory
+         microlens microlens-aeson microlens-mtl microlens-th mtl OneTuple
+         parsec relapse tagged template-haskell text transformers uuid-types
+         vinyl
+       ];
+       testHaskellDepends = [
+         aeson async base basement bytestring cereal cryptonite data-default
+         exceptions generics-sop hspec hspec-contrib hspec-discover
+         hspec-expectations http-client http-client-tls machines memory
+         microlens microlens-aeson microlens-mtl microlens-th mtl OneTuple
+         parsec random relapse split stm tagged template-haskell text time
+         transformers uuid-types vinyl
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Ethereum API for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "webapi" = callPackage
     ({ mkDerivation, aeson, base, binary, blaze-builder, bytestring
      , bytestring-lexing, bytestring-trie, case-insensitive, containers
@@ -244674,22 +245197,6 @@ self: {
      }:
      mkDerivation {
        pname = "websockets-snap";
-       version = "0.10.3.0";
-       sha256 = "1r1v6ypnaap99vy2gh3lmghqv2y3zaaq0wiv4d2bn49179c40jmk";
-       libraryHaskellDepends = [
-         base bytestring bytestring-builder io-streams mtl snap-core
-         snap-server websockets
-       ];
-       description = "Snap integration for the websockets library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "websockets-snap_0_10_3_1" = callPackage
-    ({ mkDerivation, base, bytestring, bytestring-builder, io-streams
-     , mtl, snap-core, snap-server, websockets
-     }:
-     mkDerivation {
-       pname = "websockets-snap";
        version = "0.10.3.1";
        sha256 = "1hpszqb61xhbgfvxd6g56kdfxsyi14q7xh12jbdnyycbfijb9bqk";
        libraryHaskellDepends = [
@@ -244698,7 +245205,6 @@ self: {
        ];
        description = "Snap integration for the websockets library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "webwire" = callPackage
@@ -251966,6 +252472,25 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
+  "yesod-markdown_0_12_6_2" = callPackage
+    ({ mkDerivation, base, blaze-html, blaze-markup, bytestring
+     , directory, hspec, pandoc, persistent, shakespeare, text
+     , xss-sanitize, yesod-core, yesod-form
+     }:
+     mkDerivation {
+       pname = "yesod-markdown";
+       version = "0.12.6.2";
+       sha256 = "0w9fmqk49b4c9g26dhrrmbwshrfcrnwcnsba97jyhb2m8bc4s1xj";
+       libraryHaskellDepends = [
+         base blaze-html blaze-markup bytestring directory pandoc persistent
+         shakespeare text xss-sanitize yesod-core yesod-form
+       ];
+       testHaskellDepends = [ base blaze-html hspec text ];
+       description = "Tools for using markdown in a yesod application";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "yesod-media-simple" = callPackage
     ({ mkDerivation, base, bytestring, diagrams-cairo, diagrams-core
      , diagrams-lib, directory, JuicyPixels, vector, yesod
@@ -254037,6 +254562,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "zero_0_1_5" = callPackage
+    ({ mkDerivation, base, semigroups }:
+     mkDerivation {
+       pname = "zero";
+       version = "0.1.5";
+       sha256 = "1yb00wcgcyckzlf8kdxsdxpqra0r1sakwdph7pv9naa6q8zhhllw";
+       libraryHaskellDepends = [ base semigroups ];
+       description = "Semigroups with absorption";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "zerobin" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
      , cryptonite, docopt, http-conduit, memory, raw-strings-qq
diff --git a/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix b/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
index 6b5ecc1df8af..04cbd88989a6 100644
--- a/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
@@ -118,9 +118,10 @@ let
     inherit packages;
   };
 
+  # Use cabal2nix to create a default.nix for the package sources found at 'src'.
   haskellSrc2nix = { name, src, sha256 ? null, extraCabal2nixOptions ? "" }:
     let
-      sha256Arg = if isNull sha256 then "--sha256=" else ''--sha256="${sha256}"'';
+      sha256Arg = if sha256 == null then "--sha256=" else ''--sha256="${sha256}"'';
     in pkgs.buildPackages.stdenv.mkDerivation {
       name = "cabal2nix-${name}";
       nativeBuildInputs = [ pkgs.buildPackages.cabal2nix ];
@@ -174,8 +175,14 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
 
     inherit (haskellLib) packageSourceOverrides;
 
+    # callHackage :: Text -> Text -> AttrSet -> HaskellPackage
+    #
+    # e.g., while overriding a package set:
+    #    '... foo = self.callHackage "foo" "1.5.3" {}; ...'
     callHackage = name: version: callPackageKeepDeriver (self.hackage2nix name version);
 
+    # callHackageDirect :: Text -> Text -> AttrSet -> HaskellPackage
+    #
     # This function does not depend on all-cabal-hashes and therefore will work
     # for any version that has been released on hackage as opposed to only
     # versions released before whatever version of all-cabal-hashes you happen
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/default.nix b/nixpkgs/pkgs/development/interpreters/acl2/default.nix
index cc88b32119e7..a88d07d1655f 100644
--- a/nixpkgs/pkgs/development/interpreters/acl2/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/acl2/default.nix
@@ -4,15 +4,15 @@
 
 let hashes = {
   "8.0" = "1x1giy2c1y6krg3kf8pf9wrmvk981shv0pxcwi483yjqm90xng4r";
-  "8.1" = "0isi75j94q79x4341rhd94c60228iwvccy71ssnyvh1025m93xcd";
+  "8.2" = "1x33kv6w9cbqzvyrihn61pzmqlvnk3drm8ksd5v0arg38i95awi3";
 };
 revs = {
   "8.0" = "8.0";
-  "8.1" = "8.1";
+  "8.2" = "8.2";
 };
 in stdenv.mkDerivation rec {
   name = "acl2-${version}";
-  version = "8.1";
+  version = "8.2";
 
   src = fetchFromGitHub {
     owner = "acl2-devel";
diff --git a/nixpkgs/pkgs/development/interpreters/racket/default.nix b/nixpkgs/pkgs/development/interpreters/racket/default.nix
index 9d65997ffe5a..c2147fb5f6a7 100644
--- a/nixpkgs/pkgs/development/interpreters/racket/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/racket/default.nix
@@ -46,7 +46,7 @@ in
 
 stdenv.mkDerivation rec {
   name = "racket-${version}";
-  version = "7.2"; # always change at once with ./minimal.nix
+  version = "7.3"; # always change at once with ./minimal.nix
 
   src = (stdenv.lib.makeOverridable ({ name, sha256 }:
     fetchurl rec {
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     }
   )) {
     inherit name;
-    sha256 = "12cq0kiigmf9bxb4rcgxdhwc2fcdwvlyb1q3f8x4hswcpgq1ybg4";
+    sha256 = "0h6072njhb87rkz4arijvahxgjzn8r14s4wns0ijvxm89bg136yl";
   };
 
   FONTCONFIG_FILE = fontsConf;
diff --git a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
index 0710c4e2d2a6..a3d4a7a3c4fd 100644
--- a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
+++ b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
@@ -5,7 +5,7 @@ racket.overrideAttrs (oldAttrs: rec {
   name = "racket-minimal-${oldAttrs.version}";
   src = oldAttrs.src.override {
     inherit name;
-    sha256 = "01wsiyqfiiwn2n4xxk8d8di92l2ng7yhc4bfmgrvkgaqzy3zfhhx";
+    sha256 = "1byvg1vy8hn1j64d5gjiwzfbghdp7lhja9xwz9x8iicwfldkjybj";
   };
 
   meta = oldAttrs.meta // {
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/default.nix
index b24aa596214c..b090f0847c13 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/default.nix
@@ -11,14 +11,7 @@ let
   opString = lib.optionalString;
   patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
   config = import ./config.nix { inherit fetchFromSavannah; };
-  rubygemsSrc = import ./rubygems-src.nix { inherit fetchurl; };
-  rubygemsPatch = fetchpatch {
-    url = "https://github.com/zimbatm/rubygems/compare/v2.6.6...v2.6.6-nix.patch";
-    sha256 = "0297rdb1m6v75q8665ry9id1s74p9305dv32l95ssf198liaihhd";
-  };
-  unpackdir = obj:
-    lib.removeSuffix ".tgz"
-      (lib.removeSuffix ".tar.gz" obj.name);
+  rubygems = import ./rubygems { inherit stdenv lib fetchurl fetchpatch; };
 
   # Contains the ruby version heuristics
   rubyVersion = import ./ruby-version.nix { inherit lib; };
@@ -51,8 +44,10 @@ let
       , buildEnv, bundler, bundix
       , libiconv, libobjc, libunwind, Foundation
       }:
-      let rubySrc =
-        if useRailsExpress then fetchFromGitHub {
+      stdenv.mkDerivation rec {
+        name = "ruby-${version}";
+
+        src = if useRailsExpress then fetchFromGitHub {
           owner  = "ruby";
           repo   = "ruby";
           rev    = tag;
@@ -61,16 +56,6 @@ let
           url = "https://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz";
           sha256 = sha256.src;
         };
-      in
-      stdenv.mkDerivation rec {
-        name = "ruby-${version}";
-
-        srcs = [ rubySrc rubygemsSrc ];
-        sourceRoot =
-          if useRailsExpress then
-            rubySrc.name
-          else
-            unpackdir rubySrc;
 
         # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
         NROFF = if docSupport then "${groff}/bin/nroff" else null;
@@ -104,10 +89,7 @@ let
           })."${ver.majMinTiny}";
 
         postUnpack = ''
-          cp -r ${unpackdir rubygemsSrc} ${sourceRoot}/rubygems
-          pushd ${sourceRoot}/rubygems
-          patch -p1 < ${rubygemsPatch}
-          popd
+          cp -r ${rubygems} $sourceRoot/rubygems
         '' + opString isRuby21 ''
           rm "$sourceRoot/enc/unicode/name2ctype.h"
         '';
@@ -157,6 +139,7 @@ let
         postInstall = ''
           # Update rubygems
           pushd rubygems
+          chmod +w bundler/bundler.gemspec
           ${buildRuby} setup.rb --destdir $GEM_HOME
           popd
 
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rubygems-src.nix b/nixpkgs/pkgs/development/interpreters/ruby/rubygems-src.nix
deleted file mode 100644
index 4e5793f11139..000000000000
--- a/nixpkgs/pkgs/development/interpreters/ruby/rubygems-src.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ fetchurl
-, version ? "2.7.7"
-, sha256 ? "1jsmmd31j8j066b83lin4bbqz19jhrirarzb41f3sjhfdjiwkcjc"
-}:
-fetchurl {
-  url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
-  sha256 = sha256;
-}
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/0001-add-post-extract-hook.patch b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/0001-add-post-extract-hook.patch
new file mode 100644
index 000000000000..84d1d52409e5
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/0001-add-post-extract-hook.patch
@@ -0,0 +1,34 @@
+From a6485cfcdf51ff8be452980f93cebfea97f34dec Mon Sep 17 00:00:00 2001
+From: zimbatm <zimbatm@zimbatm.com>
+Date: Wed, 21 Sep 2016 09:32:34 +0100
+Subject: [PATCH 1/3] add post-extract hook
+
+Allows nix to execute scripts just after the gem extraction
+---
+ lib/rubygems/installer.rb | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index d26b1e88..bf18fb7f 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -848,7 +848,15 @@ TEXT
+   # Ensures that files can't be installed outside the gem directory.
+ 
+   def extract_files
+-    @package.extract_files gem_dir
++    ret = @package.extract_files gem_dir
++    if ENV['NIX_POST_EXTRACT_FILES_HOOK']
++      puts
++      puts "running NIX_POST_EXTRACT_FILES_HOOK #{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{gem_dir}"
++      system(ENV['NIX_POST_EXTRACT_FILES_HOOK'], gem_dir.to_s)
++      puts "running NIX_POST_EXTRACT_FILES_HOOK done"
++      puts
++    end
++    ret
+   end
+ 
+   ##
+-- 
+2.21.0
+
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/0002-binaries-with-env-shebang.patch b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/0002-binaries-with-env-shebang.patch
new file mode 100644
index 000000000000..d6eba67e1065
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/0002-binaries-with-env-shebang.patch
@@ -0,0 +1,28 @@
+From 2e1328bcdddd35e557eabdff83ac07f3591dc693 Mon Sep 17 00:00:00 2001
+From: zimbatm <zimbatm@zimbatm.com>
+Date: Wed, 21 Sep 2016 19:37:05 +0100
+Subject: [PATCH 2/3] binaries with env shebang
+
+By default, don't point to the absolute ruby derivation path. As a user
+installing a gem in the home, it would freeze the selected ruby version
+to the currently-installed ruby derivation.
+---
+ lib/rubygems/dependency_installer.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb
+index 34620860..00ab31d9 100644
+--- a/lib/rubygems/dependency_installer.rb
++++ b/lib/rubygems/dependency_installer.rb
+@@ -18,7 +18,7 @@ class Gem::DependencyInstaller
+   extend Gem::Deprecate
+ 
+   DEFAULT_OPTIONS = { # :nodoc:
+-    :env_shebang         => false,
++    :env_shebang         => true,
+     :document            => %w[ri],
+     :domain              => :both, # HACK dup
+     :force               => false,
+-- 
+2.21.0
+
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/0003-gem-install-default-to-user.patch b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/0003-gem-install-default-to-user.patch
new file mode 100644
index 000000000000..138d432c8203
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/0003-gem-install-default-to-user.patch
@@ -0,0 +1,26 @@
+From d69249d0ff210316121b44d971ddd2439b1bc393 Mon Sep 17 00:00:00 2001
+From: zimbatm <zimbatm@zimbatm.com>
+Date: Wed, 21 Sep 2016 09:40:39 +0100
+Subject: [PATCH 3/3] gem install default to user
+
+Default to not installing gems to the read-only system derivation.
+---
+ lib/rubygems/path_support.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/rubygems/path_support.rb b/lib/rubygems/path_support.rb
+index ed680d65..749b9ea6 100644
+--- a/lib/rubygems/path_support.rb
++++ b/lib/rubygems/path_support.rb
+@@ -23,7 +23,7 @@ class Gem::PathSupport
+   # hashtable, or defaults to ENV, the system environment.
+   #
+   def initialize(env)
+-    @home = env["GEM_HOME"] || Gem.default_dir
++    @home = env["GEM_HOME"] || Gem.user_dir
+ 
+     if File::ALT_SEPARATOR
+       @home = @home.gsub(File::ALT_SEPARATOR, File::SEPARATOR)
+-- 
+2.21.0
+
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
new file mode 100644
index 000000000000..db28cbe28fae
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, fetchurl, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  name = "rubygems";
+  version = "3.0.3";
+
+  src = fetchurl {
+    url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
+    sha256 = "0b6b9ads8522804xv8b8498gqwsv4qawv13f81kyc7g966y7lfmy";
+  };
+
+  patches = [
+    ./0001-add-post-extract-hook.patch
+    ./0002-binaries-with-env-shebang.patch
+    ./0003-gem-install-default-to-user.patch
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    cp -r . $out
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Package management framework for Ruby";
+    homepage = https://rubygems.org/;
+    license = with licenses; [ mit /* or */ ruby ];
+    maintainers = with maintainers; [ qyliss zimbatm ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix b/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix
index 0fc50f2c641f..e5d5313eeb10 100644
--- a/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix
+++ b/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix
@@ -19,11 +19,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "at-spi2-core";
-  version = "2.32.0";
+  version = "2.32.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "083j1v7kdjrpjsv1b9dl3d8xqj39jyp4cfn8i9gbbm7q2g93b923";
+    sha256 = "0lqd7gsl471v6538iighkvb21gjglcb9pklvas32rjpsxcvsjaiw";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/boost/1.59.nix b/nixpkgs/pkgs/development/libraries/boost/1.59.nix
index 603d7883c647..f4931dfe5474 100644
--- a/nixpkgs/pkgs/development/libraries/boost/1.59.nix
+++ b/nixpkgs/pkgs/development/libraries/boost/1.59.nix
@@ -7,34 +7,4 @@ callPackage ./generic.nix (args // rec {
     url = "mirror://sourceforge/boost/boost_1_59_0.tar.bz2";
     sha256 = "1jj1aai5rdmd72g90a3pd8sw9vi32zad46xv5av8fhnr48ir6ykj";
   };
-
-  patches = stdenv.lib.optionals stdenv.isCygwin [
-    ./cygwin-fedora-boost-1.50.0-fix-non-utf8-files.patch
-    ./cygwin-fedora-boost-1.50.0-pool.patch
-    ./cygwin-fedora-boost-1.57.0-mpl-print.patch
-    ./cygwin-fedora-boost-1.57.0-spirit-unused_typedef.patch
-    ./cygwin-fedora-boost-1.54.0-locale-unused_typedef.patch
-    ./cygwin-fedora-boost-1.54.0-python-unused_typedef.patch
-    ./cygwin-fedora-boost-1.57.0-pool-test_linking.patch
-    ./cygwin-fedora-boost-1.54.0-pool-max_chunks_shadow.patch
-    ./cygwin-fedora-boost-1.57.0-signals2-weak_ptr.patch
-    ./cygwin-fedora-boost-1.57.0-uuid-comparison.patch
-    ./cygwin-fedora-boost-1.57.0-move-is_class.patch
-    ./cygwin-1.40.0-cstdint-cygwin.patch
-    ./cygwin-1.57.0-asio-cygwin.patch
-    ./cygwin-1.55.0-asio-MSG_EOR.patch
-    ./cygwin-1.57.0-config-cygwin.patch
-    ./cygwin-1.57.0-context-cygwin.patch
-    ./cygwin-1.57.0-filesystem-cygwin.patch
-    ./cygwin-1.55.0-interlocked-cygwin.patch
-    ./cygwin-1.40.0-iostreams-cygwin.patch
-    ./cygwin-1.57.0-locale-cygwin.patch
-    ./cygwin-1.57.0-log-cygwin.patch
-    ./cygwin-1.40.0-python-cygwin.patch
-    ./cygwin-1.40.0-regex-cygwin.patch
-    ./cygwin-1.57.0-smart_ptr-cygwin.patch
-    ./cygwin-1.57.0-system-cygwin.patch
-    ./cygwin-1.45.0-jam-cygwin.patch
-    ./cygwin-1.50.0-jam-pep3149.patch
-  ];
 })
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-cstdint-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-cstdint-cygwin.patch
deleted file mode 100644
index 61791c60d9e0..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-cstdint-cygwin.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-These were fixed in ~1.7.0-46
-
---- boost_1_40_0/boost/cstdint.hpp	2009-01-14 04:18:19.000000000 -0600
-+++ boost_1_40_0/boost/cstdint.hpp	2009-08-27 23:41:34.063543700 -0500
-@@ -40,15 +40,6 @@
- #   include <inttypes.h>
- # else
- #   include <stdint.h>
--
--// There is a bug in Cygwin two _C macros
--#   if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__)
--#     undef INTMAX_C
--#     undef UINTMAX_C
--#     define INTMAX_C(c) c##LL
--#     define UINTMAX_C(c) c##ULL
--#   endif
--
- # endif
- 
- #ifdef __QNX__
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-iostreams-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-iostreams-cygwin.patch
deleted file mode 100644
index 6641ba823b17..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-iostreams-cygwin.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- boost_1_40_0/boost/iostreams/detail/config/wide_streams.hpp	2008-03-22 16:45:55.000000000 -0500
-+++ boost_1_40_0/boost/iostreams/detail/config/wide_streams.hpp	2009-08-27 23:41:34.082544800 -0500
-@@ -44,8 +44,7 @@
- //------------------Locale support--------------------------------------------//
- 
- #ifndef BOOST_IOSTREAMS_NO_LOCALE
--# if defined(BOOST_NO_STD_LOCALE) || \
--     defined(__CYGWIN__) && \
-+# if defined(BOOST_NO_STD_LOCALE) && \
-      ( !defined(__MSL_CPP__) || defined(_MSL_NO_WCHART_CPP_SUPPORT) ) \
-      /**/
- #  define BOOST_IOSTREAMS_NO_LOCALE
---- boost_1_40_0/boost/iostreams/detail/config/windows_posix.hpp	2008-03-22 16:45:55.000000000 -0500
-+++ boost_1_40_0/boost/iostreams/detail/config/windows_posix.hpp	2009-08-27 23:41:34.087545100 -0500
-@@ -13,8 +13,7 @@
- 
- // BOOST_IOSTREAMS_POSIX or BOOST_IOSTREAMS_WINDOWS specify which API to use.
- #if !defined( BOOST_IOSTREAMS_WINDOWS ) && !defined( BOOST_IOSTREAMS_POSIX )
--# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && \
--     !defined(__CYGWIN__) \
-+# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32))
-      /**/
- #  define BOOST_IOSTREAMS_WINDOWS
- # else
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-python-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-python-cygwin.patch
deleted file mode 100644
index 7932b0e124b5..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-python-cygwin.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- boost_1_40_0/boost/python/detail/config.hpp	2007-11-25 12:07:19.000000000 -0600
-+++ boost_1_40_0/boost/python/detail/config.hpp	2009-08-27 23:41:34.092545400 -0500
-@@ -83,7 +83,7 @@
- #     endif
- #     define BOOST_PYTHON_DECL_FORWARD
- #     define BOOST_PYTHON_DECL_EXCEPTION __attribute__ ((__visibility__("default")))
--#  elif (defined(_WIN32) || defined(__CYGWIN__))
-+#  elif defined(_WIN32)
- #     if defined(BOOST_PYTHON_SOURCE)
- #        define BOOST_PYTHON_DECL __declspec(dllexport)
- #        define BOOST_PYTHON_BUILD_DLL
---- boost_1_40_0/boost/python/detail/wrap_python.hpp	2007-04-27 17:16:47.000000000 -0500
-+++ boost_1_40_0/boost/python/detail/wrap_python.hpp	2009-08-27 23:41:34.096545600 -0500
-@@ -82,8 +82,8 @@
- // Some things we need in order to get Python.h to work with compilers other
- // than MSVC on Win32
- //
--#if defined(_WIN32) || defined(__CYGWIN__)
--# if defined(__GNUC__) && defined(__CYGWIN__)
-+#if defined(_WIN32)
-+# if defined(__GNUC__)
- 
- #  define SIZEOF_LONG 4
- 
---- boost_1_40_0/boost/python/module_init.hpp	2007-06-07 13:08:54.000000000 -0500
-+++ boost_1_40_0/boost/python/module_init.hpp	2009-08-27 23:41:34.101545900 -0500
-@@ -15,7 +15,7 @@ BOOST_PYTHON_DECL void init_module(char 
- 
- }}}
- 
--#  if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(BOOST_PYTHON_STATIC_MODULE)
-+#  if defined(_WIN32) && !defined(BOOST_PYTHON_STATIC_MODULE)
- 
- #   define BOOST_PYTHON_MODULE_INIT(name)               \
- void init_module_##name();                              \
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-regex-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-regex-cygwin.patch
deleted file mode 100644
index 969bb814bd10..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.40.0-regex-cygwin.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- boost_1_40_0/boost/regex/v4/fileiter.hpp	2007-11-25 12:07:19.000000000 -0600
-+++ boost_1_40_0/boost/regex/v4/fileiter.hpp	2009-08-27 23:41:34.106546200 -0500
-@@ -28,11 +28,7 @@
- 
- #ifndef BOOST_REGEX_NO_FILEITER
- 
--#if (defined(__CYGWIN__) || defined(__CYGWIN32__)) && !defined(BOOST_REGEX_NO_W32)
--#error "Sorry, can't mix <windows.h> with STL code and gcc compiler: if you ran configure, try again with configure --disable-ms-windows"
--#define BOOST_REGEX_FI_WIN32_MAP
--#define BOOST_REGEX_FI_POSIX_DIR
--#elif (defined(__WIN32__) || defined(_WIN32) || defined(WIN32)) && !defined(BOOST_REGEX_NO_W32)
-+#if (defined(__WIN32__) || defined(_WIN32) || defined(WIN32)) && !defined(BOOST_REGEX_NO_W32)
- #define BOOST_REGEX_FI_WIN32_MAP
- #define BOOST_REGEX_FI_WIN32_DIR
- #else
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.45.0-jam-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.45.0-jam-cygwin.patch
deleted file mode 100644
index 1a00851fa92e..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.45.0-jam-cygwin.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-OS_CYGWIN is used to assume cygpath, Win32-isms
-
---- boost_1_48_0/tools/build/src/engine/jam.h
-+++ boost_1_48_0/tools/build/src/engine/jam.h
-@@ -245,7 +245,6 @@
- #endif
- #if defined(__cygwin__) || defined(__CYGWIN__)
-     #define OSMINOR "OS=CYGWIN"
--    #define OS_CYGWIN
- #endif
- #if defined(__FreeBSD__) && !defined(__DragonFly__)
-     #define OSMINOR "OS=FREEBSD"
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.50.0-jam-pep3149.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.50.0-jam-pep3149.patch
deleted file mode 100644
index 4bc6ec9d36e1..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.50.0-jam-pep3149.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/tools/build/src/tools/python.jam	2012-04-25 22:35:55.000000000 -0500
-+++ b/tools/build/src/tools/python.jam	2013-01-21 07:22:30.814373200 -0600
-@@ -376,7 +376,7 @@ local rule path-to-native ( paths * )
- #
- local rule split-version ( version )
- {
--    local major-minor = [ MATCH ^([0-9]+)\.([0-9]+)(.*)$ : $(version) : 1 2 3 ] ;
-+    local major-minor = [ MATCH ^([0-9]+)\.([0-9]+[dmu]*)(.*)$ : $(version) : 1 2 3 ] ;
-     if ! $(major-minor[2]) || $(major-minor[3])
-     {
-         ECHO "Warning: \"using python\" expects a two part (major, minor) version number; got" $(version) instead ;
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.55.0-asio-MSG_EOR.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.55.0-asio-MSG_EOR.patch
deleted file mode 100644
index 46308a59cb07..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.55.0-asio-MSG_EOR.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- boost_1_55_0/boost/asio/detail/socket_types.hpp	2014-08-31 12:43:54.186255800 -0500
-+++ boost_1_55_0/boost/asio/detail/socket_types.hpp	2014-08-31 12:43:03.887868700 -0500
-@@ -332,7 +332,11 @@ typedef int signed_size_type;
- # define BOOST_ASIO_OS_DEF_MSG_OOB MSG_OOB
- # define BOOST_ASIO_OS_DEF_MSG_PEEK MSG_PEEK
- # define BOOST_ASIO_OS_DEF_MSG_DONTROUTE MSG_DONTROUTE
-+#ifdef MSG_EOR
- # define BOOST_ASIO_OS_DEF_MSG_EOR MSG_EOR
-+#else
-+# define BOOST_ASIO_OS_DEF_MSG_EOR 0
-+#endif
- # define BOOST_ASIO_OS_DEF_SHUT_RD SHUT_RD
- # define BOOST_ASIO_OS_DEF_SHUT_WR SHUT_WR
- # define BOOST_ASIO_OS_DEF_SHUT_RDWR SHUT_RDWR
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.55.0-interlocked-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.55.0-interlocked-cygwin.patch
deleted file mode 100644
index df3edf51e7b9..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.55.0-interlocked-cygwin.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- boost_1_55_0/boost/detail/interlocked.hpp	2013-10-24 09:01:53.000000000 -0500
-+++ boost_1_55_0/boost/detail/interlocked.hpp	2014-08-31 13:01:33.830313500 -0500
-@@ -160,7 +160,7 @@ extern "C" void* __cdecl _InterlockedExc
-     ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
- # endif
- 
--#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
-+#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
- 
- #define BOOST_INTERLOCKED_IMPORT __declspec(dllimport)
- 
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-asio-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-asio-cygwin.patch
deleted file mode 100644
index 3702d475c8e9..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-asio-cygwin.patch
+++ /dev/null
@@ -1,1835 +0,0 @@
---- boost_1_57_0/boost/asio/detail/buffer_sequence_adapter.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/buffer_sequence_adapter.hpp	2015-05-04 17:33:18.798985800 -0500
-@@ -42,7 +42,7 @@ protected:
-   BOOST_ASIO_DECL static void init_native_buffer(
-       native_buffer_type& buf,
-       const boost::asio::const_buffer& buffer);
--#elif defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#elif defined(BOOST_ASIO_WINDOWS)
-   // The maximum number of buffers to support in a single operation.
-   enum { max_buffers = 64 < max_iov_len ? 64 : max_iov_len };
- 
-@@ -61,7 +61,7 @@ protected:
-     buf.buf = const_cast<char*>(boost::asio::buffer_cast<const char*>(buffer));
-     buf.len = static_cast<ULONG>(boost::asio::buffer_size(buffer));
-   }
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   // The maximum number of buffers to support in a single operation.
-   enum { max_buffers = 64 < max_iov_len ? 64 : max_iov_len };
- 
-@@ -92,7 +92,7 @@ protected:
-           boost::asio::buffer_cast<const void*>(buffer)));
-     iov.iov_len = boost::asio::buffer_size(buffer);
-   }
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- };
- 
- // Helper class to translate buffers into the native buffer representation.
---- boost_1_57_0/boost/asio/detail/config.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/config.hpp	2015-05-04 17:34:30.756623300 -0500
-@@ -474,7 +474,7 @@
- #endif // !defined(BOOST_ASIO_WINDOWS)
- 
- // Windows: target OS version.
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- # if !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS)
- #  if defined(_MSC_VER) || defined(__BORLANDC__)
- #   pragma message( \
-@@ -512,29 +512,29 @@
- #   error You must add -D__USE_W32_SOCKETS to your compiler options.
- #  endif // !defined(__USE_W32_SOCKETS)
- # endif // defined(__CYGWIN__)
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- // Windows: minimise header inclusion.
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- # if !defined(BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN)
- #  if !defined(WIN32_LEAN_AND_MEAN)
- #   define WIN32_LEAN_AND_MEAN
- #  endif // !defined(WIN32_LEAN_AND_MEAN)
- # endif // !defined(BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN)
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- // Windows: suppress definition of "min" and "max" macros.
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- # if !defined(BOOST_ASIO_NO_NOMINMAX)
- #  if !defined(NOMINMAX)
- #   define NOMINMAX 1
- #  endif // !defined(NOMINMAX)
- # endif // !defined(BOOST_ASIO_NO_NOMINMAX)
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- // Windows: IO Completion Ports.
- #if !defined(BOOST_ASIO_HAS_IOCP)
--# if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# if defined(BOOST_ASIO_WINDOWS)
- #  if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400)
- #   if !defined(UNDER_CE)
- #    if !defined(BOOST_ASIO_DISABLE_IOCP)
-@@ -542,7 +542,7 @@
- #    endif // !defined(BOOST_ASIO_DISABLE_IOCP)
- #   endif // !defined(UNDER_CE)
- #  endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400)
--# endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# endif // defined(BOOST_ASIO_WINDOWS)
- #endif // !defined(BOOST_ASIO_HAS_IOCP)
- 
- // Linux: epoll, eventfd and timerfd.
-@@ -599,8 +599,7 @@
- #if !defined(BOOST_ASIO_HAS_SERIAL_PORT)
- # if defined(BOOST_ASIO_HAS_IOCP) \
-   || !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- #  if !defined(__SYMBIAN32__)
- #   if !defined(BOOST_ASIO_DISABLE_SERIAL_PORT)
- #    define BOOST_ASIO_HAS_SERIAL_PORT 1
-@@ -609,7 +608,6 @@
- # endif // defined(BOOST_ASIO_HAS_IOCP)
-         //   || !defined(BOOST_ASIO_WINDOWS)
-         //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--        //   && !defined(__CYGWIN__)
- #endif // !defined(BOOST_ASIO_HAS_SERIAL_PORT)
- 
- // Windows: stream handles.
-@@ -633,11 +631,11 @@
- // Windows: object handles.
- #if !defined(BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE)
- # if !defined(BOOST_ASIO_DISABLE_WINDOWS_OBJECT_HANDLE)
--#  if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#  if defined(BOOST_ASIO_WINDOWS)
- #   if !defined(UNDER_CE)
- #    define BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE 1
- #   endif // !defined(UNDER_CE)
--#  endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#  endif // defined(BOOST_ASIO_WINDOWS)
- # endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_OBJECT_HANDLE)
- #endif // !defined(BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE)
- 
-@@ -654,12 +652,10 @@
- #if !defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR)
- # if !defined(BOOST_ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR)
- #  if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- #   define BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR 1
- #  endif // !defined(BOOST_ASIO_WINDOWS)
-          //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--         //   && !defined(__CYGWIN__)
- # endif // !defined(BOOST_ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR)
- #endif // !defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR)
- 
-@@ -667,12 +663,10 @@
- #if !defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)
- # if !defined(BOOST_ASIO_DISABLE_LOCAL_SOCKETS)
- #  if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- #   define BOOST_ASIO_HAS_LOCAL_SOCKETS 1
- #  endif // !defined(BOOST_ASIO_WINDOWS)
-          //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--         //   && !defined(__CYGWIN__)
- # endif // !defined(BOOST_ASIO_DISABLE_LOCAL_SOCKETS)
- #endif // !defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)
- 
-@@ -680,12 +674,10 @@
- #if !defined(BOOST_ASIO_HAS_SIGACTION)
- # if !defined(BOOST_ASIO_DISABLE_SIGACTION)
- #  if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- #   define BOOST_ASIO_HAS_SIGACTION 1
- #  endif // !defined(BOOST_ASIO_WINDOWS)
-          //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--         //   && !defined(__CYGWIN__)
- # endif // !defined(BOOST_ASIO_DISABLE_SIGACTION)
- #endif // !defined(BOOST_ASIO_HAS_SIGACTION)
- 
-@@ -700,7 +692,7 @@
- 
- // Can use getaddrinfo() and getnameinfo().
- #if !defined(BOOST_ASIO_HAS_GETADDRINFO)
--# if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# if defined(BOOST_ASIO_WINDOWS)
- #  if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501)
- #   define BOOST_ASIO_HAS_GETADDRINFO 1
- #  elif defined(UNDER_CE)
---- boost_1_57_0/boost/asio/detail/descriptor_ops.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/descriptor_ops.hpp	2015-05-04 17:33:18.826989400 -0500
-@@ -18,8 +18,7 @@
- #include <boost/asio/detail/config.hpp>
- 
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
- #include <cstddef>
- #include <boost/system/error_code.hpp>
-@@ -114,6 +113,5 @@ BOOST_ASIO_DECL int poll_write(int d,
- 
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- 
- #endif // BOOST_ASIO_DETAIL_DESCRIPTOR_OPS_HPP
---- boost_1_57_0/boost/asio/detail/descriptor_read_op.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/descriptor_read_op.hpp	2015-05-04 17:33:18.830489800 -0500
-@@ -17,7 +17,7 @@
- 
- #include <boost/asio/detail/config.hpp>
- 
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
- 
- #include <boost/asio/detail/addressof.hpp>
- #include <boost/asio/detail/bind_handler.hpp>
-@@ -116,6 +116,6 @@ private:
- 
- #include <boost/asio/detail/pop_options.hpp>
- 
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- 
- #endif // BOOST_ASIO_DETAIL_DESCRIPTOR_READ_OP_HPP
---- boost_1_57_0/boost/asio/detail/descriptor_write_op.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/descriptor_write_op.hpp	2015-05-04 17:33:18.833490200 -0500
-@@ -17,7 +17,7 @@
- 
- #include <boost/asio/detail/config.hpp>
- 
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
- 
- #include <boost/asio/detail/addressof.hpp>
- #include <boost/asio/detail/bind_handler.hpp>
-@@ -116,6 +116,6 @@ private:
- 
- #include <boost/asio/detail/pop_options.hpp>
- 
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- 
- #endif // BOOST_ASIO_DETAIL_DESCRIPTOR_WRITE_OP_HPP
---- boost_1_57_0/boost/asio/detail/fd_set_adapter.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/fd_set_adapter.hpp	2015-05-04 17:33:18.836490600 -0500
-@@ -26,7 +26,7 @@ namespace boost {
- namespace asio {
- namespace detail {
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- typedef win_fd_set_adapter fd_set_adapter;
- #else
- typedef posix_fd_set_adapter fd_set_adapter;
---- boost_1_57_0/boost/asio/detail/hash_map.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/hash_map.hpp	2015-05-04 17:33:18.839991000 -0500
-@@ -21,9 +21,9 @@
- #include <boost/asio/detail/assert.hpp>
- #include <boost/asio/detail/noncopyable.hpp>
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- # include <boost/asio/detail/socket_types.hpp>
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- #include <boost/asio/detail/push_options.hpp>
- 
-@@ -42,12 +42,12 @@ inline std::size_t calculate_hash_value(
-     + (reinterpret_cast<std::size_t>(p) >> 3);
- }
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- inline std::size_t calculate_hash_value(SOCKET s)
- {
-   return static_cast<std::size_t>(s);
- }
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- // Note: assumes K and V are POD types.
- template <typename K, typename V>
---- boost_1_57_0/boost/asio/detail/impl/descriptor_ops.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/impl/descriptor_ops.ipp	2015-05-04 17:33:18.843491500 -0500
-@@ -21,8 +21,7 @@
- #include <boost/asio/error.hpp>
- 
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
- #include <boost/asio/detail/push_options.hpp>
- 
-@@ -448,6 +447,5 @@ int poll_write(int d, state_type state,
- 
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- 
- #endif // BOOST_ASIO_DETAIL_IMPL_DESCRIPTOR_OPS_IPP
---- boost_1_57_0/boost/asio/detail/impl/pipe_select_interrupter.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/impl/pipe_select_interrupter.ipp	2015-05-04 17:33:18.846991900 -0500
-@@ -19,7 +19,6 @@
- 
- #if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- #if !defined(BOOST_ASIO_WINDOWS)
--#if !defined(__CYGWIN__)
- #if !defined(__SYMBIAN32__)
- #if !defined(BOOST_ASIO_HAS_EVENTFD)
- 
-@@ -119,7 +118,6 @@ bool pipe_select_interrupter::reset()
- 
- #endif // !defined(BOOST_ASIO_HAS_EVENTFD)
- #endif // !defined(__SYMBIAN32__)
--#endif // !defined(__CYGWIN__)
- #endif // !defined(BOOST_ASIO_WINDOWS)
- #endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
---- boost_1_57_0/boost/asio/detail/impl/reactive_descriptor_service.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/impl/reactive_descriptor_service.ipp	2015-05-04 17:33:18.849992300 -0500
-@@ -18,8 +18,7 @@
- #include <boost/asio/detail/config.hpp>
- 
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
- #include <boost/asio/error.hpp>
- #include <boost/asio/detail/reactive_descriptor_service.hpp>
-@@ -205,6 +204,5 @@ void reactive_descriptor_service::start_
- 
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- 
- #endif // BOOST_ASIO_DETAIL_IMPL_REACTIVE_DESCRIPTOR_SERVICE_IPP
---- boost_1_57_0/boost/asio/detail/impl/reactive_serial_port_service.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/impl/reactive_serial_port_service.ipp	2015-05-04 17:33:18.853492700 -0500
-@@ -19,7 +19,7 @@
- #include <boost/asio/detail/config.hpp>
- 
- #if defined(BOOST_ASIO_HAS_SERIAL_PORT)
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
- 
- #include <cstring>
- #include <boost/asio/detail/reactive_serial_port_service.hpp>
-@@ -147,7 +147,7 @@ boost::system::error_code reactive_seria
- 
- #include <boost/asio/detail/pop_options.hpp>
- 
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- #endif // defined(BOOST_ASIO_HAS_SERIAL_PORT)
- 
- #endif // BOOST_ASIO_DETAIL_IMPL_REACTIVE_SERIAL_PORT_SERVICE_IPP
---- boost_1_57_0/boost/asio/detail/impl/select_reactor.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/impl/select_reactor.ipp	2015-05-04 17:29:21.281324900 -0500
-@@ -187,7 +187,7 @@ void select_reactor::run(bool block, op_
-       max_fd = fd_sets_[i].max_descriptor();
-   }
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   // Connection operations on Windows use both except and write fd_sets.
-   have_work_to_do = have_work_to_do || !op_queue_[connect_op].empty();
-   fd_sets_[write_op].set(op_queue_[connect_op], ops);
-@@ -196,7 +196,7 @@ void select_reactor::run(bool block, op_
-   fd_sets_[except_op].set(op_queue_[connect_op], ops);
-   if (fd_sets_[except_op].max_descriptor() > max_fd)
-     max_fd = fd_sets_[except_op].max_descriptor();
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
-   // We can return immediately if there's no work to do and the reactor is
-   // not supposed to block.
-@@ -226,11 +226,11 @@ void select_reactor::run(bool block, op_
-   // Dispatch all ready operations.
-   if (retval > 0)
-   {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-     // Connection operations on Windows use both except and write fd_sets.
-     fd_sets_[except_op].perform(op_queue_[connect_op], ops);
-     fd_sets_[write_op].perform(op_queue_[connect_op], ops);
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
-     // Exception operations must be processed first to ensure that any
-     // out-of-band data is read before normal data.
---- boost_1_57_0/boost/asio/detail/impl/signal_set_service.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/impl/signal_set_service.ipp	2015-05-04 17:33:18.857993300 -0500
-@@ -60,12 +60,10 @@ signal_state* get_signal_state()
- void boost_asio_signal_handler(int signal_number)
- {
- #if defined(BOOST_ASIO_WINDOWS) \
--  || defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  || defined(__CYGWIN__)
-+  || defined(BOOST_ASIO_WINDOWS_RUNTIME)
-   signal_set_service::deliver_signal(signal_number);
- #else // defined(BOOST_ASIO_WINDOWS)
-       //   || defined(BOOST_ASIO_WINDOWS_RUNTIME)
--      //   || defined(__CYGWIN__)
-   int saved_errno = errno;
-   signal_state* state = get_signal_state();
-   signed_size_type result = ::write(state->write_descriptor_,
-@@ -74,7 +72,6 @@ void boost_asio_signal_handler(int signa
-   errno = saved_errno;
- #endif // defined(BOOST_ASIO_WINDOWS)
-        //   || defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   || defined(__CYGWIN__)
- 
- #if defined(BOOST_ASIO_HAS_SIGNAL) && !defined(BOOST_ASIO_HAS_SIGACTION)
-   ::signal(signal_number, boost_asio_signal_handler);
-@@ -82,8 +79,7 @@ void boost_asio_signal_handler(int signa
- }
- 
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- class signal_set_service::pipe_read_op : public reactor_op
- {
- public:
-@@ -115,30 +111,25 @@ public:
- };
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- 
- signal_set_service::signal_set_service(
-     boost::asio::io_service& io_service)
-   : io_service_(boost::asio::use_service<io_service_impl>(io_service)),
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
-     reactor_(boost::asio::use_service<reactor>(io_service)),
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
-     next_(0),
-     prev_(0)
- {
-   get_signal_state()->mutex_.init();
- 
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
-   reactor_.init_task();
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- 
-   for (int i = 0; i < max_signal_number; ++i)
-     registrations_[i] = 0;
-@@ -174,8 +165,7 @@ void signal_set_service::fork_service(
-     boost::asio::io_service::fork_event fork_ev)
- {
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
-   signal_state* state = get_signal_state();
-   static_mutex::scoped_lock lock(state->mutex_);
- 
-@@ -217,11 +207,9 @@ void signal_set_service::fork_service(
-   }
- #else // !defined(BOOST_ASIO_WINDOWS)
-       //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--      //   && !defined(__CYGWIN__)
-   (void)fork_ev;
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- }
- 
- void signal_set_service::construct(
-@@ -281,12 +269,12 @@ boost::system::error_code signal_set_ser
-       if (::signal(signal_number, boost_asio_signal_handler) == SIG_ERR)
- # endif // defined(BOOST_ASIO_HAS_SIGACTION)
-       {
--# if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# if defined(BOOST_ASIO_WINDOWS)
-         ec = boost::asio::error::invalid_argument;
--# else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# else // defined(BOOST_ASIO_WINDOWS)
-         ec = boost::system::error_code(errno,
-             boost::asio::error::get_system_category());
--# endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# endif // defined(BOOST_ASIO_WINDOWS)
-         delete new_registration;
-         return ec;
-       }
-@@ -351,12 +339,12 @@ boost::system::error_code signal_set_ser
-       if (::signal(signal_number, SIG_DFL) == SIG_ERR)
- # endif // defined(BOOST_ASIO_HAS_SIGACTION)
-       {
--# if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# if defined(BOOST_ASIO_WINDOWS)
-         ec = boost::asio::error::invalid_argument;
--# else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# else // defined(BOOST_ASIO_WINDOWS)
-         ec = boost::system::error_code(errno,
-             boost::asio::error::get_system_category());
--# endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# endif // defined(BOOST_ASIO_WINDOWS)
-         return ec;
-       }
-     }
-@@ -405,12 +393,12 @@ boost::system::error_code signal_set_ser
-       if (::signal(reg->signal_number_, SIG_DFL) == SIG_ERR)
- # endif // defined(BOOST_ASIO_HAS_SIGACTION)
-       {
--# if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# if defined(BOOST_ASIO_WINDOWS)
-         ec = boost::asio::error::invalid_argument;
--# else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# else // defined(BOOST_ASIO_WINDOWS)
-         ec = boost::system::error_code(errno,
-             boost::asio::error::get_system_category());
--# endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# endif // defined(BOOST_ASIO_WINDOWS)
-         return ec;
-       }
-     }
-@@ -500,11 +488,11 @@ void signal_set_service::add_service(sig
-   signal_state* state = get_signal_state();
-   static_mutex::scoped_lock lock(state->mutex_);
- 
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
-   // If this is the first service to be created, open a new pipe.
-   if (state->service_list_ == 0)
-     open_descriptors();
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- 
-   // Insert service into linked list of all services.
-   service->next_ = state->service_list_;
-@@ -514,8 +502,7 @@ void signal_set_service::add_service(sig
-   state->service_list_ = service;
- 
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
-   // Register for pipe readiness notifications.
-   int read_descriptor = state->read_descriptor_;
-   lock.unlock();
-@@ -523,7 +510,6 @@ void signal_set_service::add_service(sig
-       read_descriptor, service->reactor_data_, new pipe_read_op);
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- }
- 
- void signal_set_service::remove_service(signal_set_service* service)
-@@ -534,8 +520,7 @@ void signal_set_service::remove_service(
-   if (service->next_ || service->prev_ || state->service_list_ == service)
-   {
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
-     // Disable the pipe readiness notifications.
-     int read_descriptor = state->read_descriptor_;
-     lock.unlock();
-@@ -544,7 +529,6 @@ void signal_set_service::remove_service(
-     lock.lock();
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- 
-     // Remove service from linked list of all services.
-     if (state->service_list_ == service)
-@@ -556,19 +540,18 @@ void signal_set_service::remove_service(
-     service->next_ = 0;
-     service->prev_ = 0;
- 
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
-     // If this is the last service to be removed, close the pipe.
-     if (state->service_list_ == 0)
-       close_descriptors();
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
-   }
- }
- 
- void signal_set_service::open_descriptors()
- {
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
-   signal_state* state = get_signal_state();
- 
-   int pipe_fds[2];
-@@ -593,14 +576,12 @@ void signal_set_service::open_descriptor
-   }
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- }
- 
- void signal_set_service::close_descriptors()
- {
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
-   signal_state* state = get_signal_state();
- 
-   if (state->read_descriptor_ != -1)
-@@ -612,7 +593,6 @@ void signal_set_service::close_descripto
-   state->write_descriptor_ = -1;
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- }
- 
- void signal_set_service::start_wait_op(
---- boost_1_57_0/boost/asio/detail/impl/socket_ops.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/impl/socket_ops.ipp	2015-05-04 17:32:20.048025400 -0500
-@@ -33,12 +33,12 @@
- # include <string>
- #endif // defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) \
-+#if defined(BOOST_ASIO_WINDOWS) \
-   || defined(__MACH__) && defined(__APPLE__)
- # if defined(BOOST_ASIO_HAS_PTHREADS)
- #  include <pthread.h>
- # endif // defined(BOOST_ASIO_HAS_PTHREADS)
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
-        // || defined(__MACH__) && defined(__APPLE__)
- 
- #include <boost/asio/detail/push_options.hpp>
-@@ -50,9 +50,9 @@ namespace socket_ops {
- 
- #if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- struct msghdr { int msg_namelen; };
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- #if defined(__hpux)
- // HP-UX doesn't declare these functions extern "C", so they are declared again
-@@ -65,7 +65,7 @@ extern "C" unsigned int if_nametoindex(c
- 
- inline void clear_last_error()
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   WSASetLastError(0);
- #else
-   errno = 0;
-@@ -78,7 +78,7 @@ template <typename ReturnType>
- inline ReturnType error_wrapper(ReturnType return_value,
-     boost::system::error_code& ec)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   ec = boost::system::error_code(WSAGetLastError(),
-       boost::asio::error::get_system_category());
- #else
-@@ -313,11 +313,11 @@ int close(socket_type s, state_type& sta
-     }
- 
-     clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-     result = error_wrapper(::closesocket(s), ec);
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-     result = error_wrapper(::close(s), ec);
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
-     if (result != 0
-         && (ec == boost::asio::error::would_block
-@@ -329,10 +329,10 @@ int close(socket_type s, state_type& sta
-       // current OS where this behaviour is seen, Windows, says that the socket
-       // remains open. Therefore we'll put the descriptor back into blocking
-       // mode and have another attempt at closing it.
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-       ioctl_arg_type arg = 0;
-       ::ioctlsocket(s, FIONBIO, &arg);
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
- # if defined(__SYMBIAN32__)
-       int flags = ::fcntl(s, F_GETFL, 0);
-       if (flags >= 0)
-@@ -341,15 +341,15 @@ int close(socket_type s, state_type& sta
-       ioctl_arg_type arg = 0;
-       ::ioctl(s, FIONBIO, &arg);
- # endif // defined(__SYMBIAN32__)
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
-       state &= ~non_blocking;
- 
-       clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-       result = error_wrapper(::closesocket(s), ec);
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-       result = error_wrapper(::close(s), ec);
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
-     }
-   }
- 
-@@ -368,7 +368,7 @@ bool set_user_non_blocking(socket_type s
-   }
- 
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   ioctl_arg_type arg = (value ? 1 : 0);
-   int result = error_wrapper(::ioctlsocket(s, FIONBIO, &arg), ec);
- #elif defined(__SYMBIAN32__)
-@@ -421,7 +421,7 @@ bool set_internal_non_blocking(socket_ty
-   }
- 
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   ioctl_arg_type arg = (value ? 1 : 0);
-   int result = error_wrapper(::ioctlsocket(s, FIONBIO, &arg), ec);
- #elif defined(__SYMBIAN32__)
-@@ -543,7 +543,6 @@ bool non_blocking_connect(socket_type s,
-   // Check if the connect operation has finished. This is required since we may
-   // get spurious readiness notifications from the reactor.
- #if defined(BOOST_ASIO_WINDOWS) \
--  || defined(__CYGWIN__) \
-   || defined(__SYMBIAN32__)
-   fd_set write_fds;
-   FD_ZERO(&write_fds);
-@@ -556,7 +555,6 @@ bool non_blocking_connect(socket_type s,
-   zero_timeout.tv_usec = 0;
-   int ready = ::select(s + 1, 0, &write_fds, &except_fds, &zero_timeout);
- #else // defined(BOOST_ASIO_WINDOWS)
--      // || defined(__CYGWIN__)
-       // || defined(__SYMBIAN32__)
-   pollfd fds;
-   fds.fd = s;
-@@ -564,7 +562,6 @@ bool non_blocking_connect(socket_type s,
-   fds.revents = 0;
-   int ready = ::poll(&fds, 1, 0);
- #endif // defined(BOOST_ASIO_WINDOWS)
--       // || defined(__CYGWIN__)
-        // || defined(__SYMBIAN32__)
-   if (ready == 0)
-   {
-@@ -593,7 +590,7 @@ bool non_blocking_connect(socket_type s,
- int socketpair(int af, int type, int protocol,
-     socket_type sv[2], boost::system::error_code& ec)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   (void)(af);
-   (void)(type);
-   (void)(protocol);
-@@ -619,11 +616,11 @@ bool sockatmark(socket_type s, boost::sy
- 
- #if defined(SIOCATMARK)
-   ioctl_arg_type value = 0;
--# if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# if defined(BOOST_ASIO_WINDOWS)
-   int result = error_wrapper(::ioctlsocket(s, SIOCATMARK, &value), ec);
--# else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# else // defined(BOOST_ASIO_WINDOWS)
-   int result = error_wrapper(::ioctl(s, SIOCATMARK, &value), ec);
--# endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+# endif // defined(BOOST_ASIO_WINDOWS)
-   if (result == 0)
-     ec = boost::system::error_code();
- # if defined(ENOTTY)
-@@ -648,11 +645,11 @@ size_t available(socket_type s, boost::s
-   }
- 
-   ioctl_arg_type value = 0;
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   int result = error_wrapper(::ioctlsocket(s, FIONREAD, &value), ec);
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   int result = error_wrapper(::ioctl(s, FIONREAD, &value), ec);
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
-   if (result == 0)
-     ec = boost::system::error_code();
- #if defined(ENOTTY)
-@@ -689,32 +686,32 @@ inline void init_buf_iov_base(T& base, v
-   base = static_cast<T>(addr);
- }
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- typedef WSABUF buf;
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
- typedef iovec buf;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- void init_buf(buf& b, void* data, size_t size)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   b.buf = static_cast<char*>(data);
-   b.len = static_cast<u_long>(size);
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   init_buf_iov_base(b.iov_base, data);
-   b.iov_len = size;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- }
- 
- void init_buf(buf& b, const void* data, size_t size)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   b.buf = static_cast<char*>(const_cast<void*>(data));
-   b.len = static_cast<u_long>(size);
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   init_buf_iov_base(b.iov_base, const_cast<void*>(data));
-   b.iov_len = size;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- }
- 
- inline void init_msghdr_msg_name(void*& name, socket_addr_type* addr)
-@@ -743,7 +740,7 @@ signed_size_type recv(socket_type s, buf
-     int flags, boost::system::error_code& ec)
- {
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   // Receive some data.
-   DWORD recv_buf_count = static_cast<DWORD>(count);
-   DWORD bytes_transferred = 0;
-@@ -758,7 +755,7 @@ signed_size_type recv(socket_type s, buf
-     return socket_error_retval;
-   ec = boost::system::error_code();
-   return bytes_transferred;
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   msghdr msg = msghdr();
-   msg.msg_iov = bufs;
-   msg.msg_iovlen = static_cast<int>(count);
-@@ -766,7 +763,7 @@ signed_size_type recv(socket_type s, buf
-   if (result >= 0)
-     ec = boost::system::error_code();
-   return result;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- }
- 
- size_t sync_recv(socket_type s, state_type state, buf* bufs,
-@@ -889,7 +886,7 @@ signed_size_type recvfrom(socket_type s,
-     boost::system::error_code& ec)
- {
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   // Receive some data.
-   DWORD recv_buf_count = static_cast<DWORD>(count);
-   DWORD bytes_transferred = 0;
-@@ -906,7 +903,7 @@ signed_size_type recvfrom(socket_type s,
-     return socket_error_retval;
-   ec = boost::system::error_code();
-   return bytes_transferred;
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   msghdr msg = msghdr();
-   init_msghdr_msg_name(msg.msg_name, addr);
-   msg.msg_namelen = static_cast<int>(*addrlen);
-@@ -917,7 +914,7 @@ signed_size_type recvfrom(socket_type s,
-   if (result >= 0)
-     ec = boost::system::error_code();
-   return result;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- }
- 
- size_t sync_recvfrom(socket_type s, state_type state, buf* bufs,
-@@ -1014,10 +1011,10 @@ signed_size_type recvmsg(socket_type s,
-     int in_flags, int& out_flags, boost::system::error_code& ec)
- {
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   out_flags = 0;
-   return socket_ops::recv(s, bufs, count, in_flags, ec);
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   msghdr msg = msghdr();
-   msg.msg_iov = bufs;
-   msg.msg_iovlen = static_cast<int>(count);
-@@ -1030,7 +1027,7 @@ signed_size_type recvmsg(socket_type s,
-   else
-     out_flags = 0;
-   return result;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- }
- 
- size_t sync_recvmsg(socket_type s, state_type state,
-@@ -1126,7 +1123,7 @@ signed_size_type send(socket_type s, con
-     int flags, boost::system::error_code& ec)
- {
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   // Send the data.
-   DWORD send_buf_count = static_cast<DWORD>(count);
-   DWORD bytes_transferred = 0;
-@@ -1141,7 +1138,7 @@ signed_size_type send(socket_type s, con
-     return socket_error_retval;
-   ec = boost::system::error_code();
-   return bytes_transferred;
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   msghdr msg = msghdr();
-   msg.msg_iov = const_cast<buf*>(bufs);
-   msg.msg_iovlen = static_cast<int>(count);
-@@ -1152,7 +1149,7 @@ signed_size_type send(socket_type s, con
-   if (result >= 0)
-     ec = boost::system::error_code();
-   return result;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- }
- 
- size_t sync_send(socket_type s, state_type state, const buf* bufs,
-@@ -1253,7 +1250,7 @@ signed_size_type sendto(socket_type s, c
-     boost::system::error_code& ec)
- {
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   // Send the data.
-   DWORD send_buf_count = static_cast<DWORD>(count);
-   DWORD bytes_transferred = 0;
-@@ -1268,7 +1265,7 @@ signed_size_type sendto(socket_type s, c
-     return socket_error_retval;
-   ec = boost::system::error_code();
-   return bytes_transferred;
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   msghdr msg = msghdr();
-   init_msghdr_msg_name(msg.msg_name, addr);
-   msg.msg_namelen = static_cast<int>(addrlen);
-@@ -1281,7 +1278,7 @@ signed_size_type sendto(socket_type s, c
-   if (result >= 0)
-     ec = boost::system::error_code();
-   return result;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- }
- 
- size_t sync_sendto(socket_type s, state_type state, const buf* bufs,
-@@ -1358,7 +1355,7 @@ socket_type socket(int af, int type, int
-     boost::system::error_code& ec)
- {
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   socket_type s = error_wrapper(::WSASocketW(af, type, protocol, 0, 0,
-         WSA_FLAG_OVERLAPPED), ec);
-   if (s == invalid_socket)
-@@ -1556,7 +1553,7 @@ int getsockopt(socket_type s, state_type
-   }
-   ec = boost::asio::error::fault;
-   return socket_error_retval;
--#elif defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#elif defined(BOOST_ASIO_WINDOWS)
-   clear_last_error();
-   int result = error_wrapper(call_getsockopt(&msghdr::msg_namelen,
-         s, level, optname, optval, optlen), ec);
-@@ -1574,7 +1571,7 @@ int getsockopt(socket_type s, state_type
-   if (result == 0)
-     ec = boost::system::error_code();
-   return result;
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   clear_last_error();
-   int result = error_wrapper(call_getsockopt(&msghdr::msg_namelen,
-         s, level, optname, optval, optlen), ec);
-@@ -1593,7 +1590,7 @@ int getsockopt(socket_type s, state_type
-   if (result == 0)
-     ec = boost::system::error_code();
-   return result;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- }
- 
- template <typename SockLenType>
-@@ -1615,7 +1612,7 @@ int getpeername(socket_type s, socket_ad
-     return socket_error_retval;
-   }
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   if (cached)
-   {
-     // Check if socket is still connected.
-@@ -1636,9 +1633,9 @@ int getpeername(socket_type s, socket_ad
-     ec = boost::system::error_code();
-     return 0;
-   }
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   (void)cached;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
-   clear_last_error();
-   int result = error_wrapper(call_getpeername(
-@@ -1685,7 +1682,7 @@ int ioctl(socket_type s, state_type& sta
-   }
- 
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   int result = error_wrapper(::ioctlsocket(s, cmd, arg), ec);
- #elif defined(__MACH__) && defined(__APPLE__) \
-   || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
-@@ -1726,7 +1723,7 @@ int select(int nfds, fd_set* readfds, fd
-     fd_set* exceptfds, timeval* timeout, boost::system::error_code& ec)
- {
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   if (!readfds && !writefds && !exceptfds && timeout)
-   {
-     DWORD milliseconds = timeout->tv_sec * 1000 + timeout->tv_usec / 1000;
-@@ -1746,7 +1743,7 @@ int select(int nfds, fd_set* readfds, fd
-   if (timeout && timeout->tv_sec == 0
-       && timeout->tv_usec > 0 && timeout->tv_usec < 1000)
-     timeout->tv_usec = 1000;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- #if defined(__hpux) && defined(__SELECT)
-   timespec ts;
-@@ -1772,7 +1769,6 @@ int poll_read(socket_type s, state_type
-   }
- 
- #if defined(BOOST_ASIO_WINDOWS) \
--  || defined(__CYGWIN__) \
-   || defined(__SYMBIAN32__)
-   fd_set fds;
-   FD_ZERO(&fds);
-@@ -1784,7 +1780,6 @@ int poll_read(socket_type s, state_type
-   clear_last_error();
-   int result = error_wrapper(::select(s + 1, &fds, 0, 0, timeout), ec);
- #else // defined(BOOST_ASIO_WINDOWS)
--      // || defined(__CYGWIN__)
-       // || defined(__SYMBIAN32__)
-   pollfd fds;
-   fds.fd = s;
-@@ -1794,7 +1789,6 @@ int poll_read(socket_type s, state_type
-   clear_last_error();
-   int result = error_wrapper(::poll(&fds, 1, timeout), ec);
- #endif // defined(BOOST_ASIO_WINDOWS)
--       // || defined(__CYGWIN__)
-        // || defined(__SYMBIAN32__)
-   if (result == 0)
-     ec = (state & user_set_non_blocking)
-@@ -1813,7 +1807,6 @@ int poll_write(socket_type s, state_type
-   }
- 
- #if defined(BOOST_ASIO_WINDOWS) \
--  || defined(__CYGWIN__) \
-   || defined(__SYMBIAN32__)
-   fd_set fds;
-   FD_ZERO(&fds);
-@@ -1825,7 +1818,6 @@ int poll_write(socket_type s, state_type
-   clear_last_error();
-   int result = error_wrapper(::select(s + 1, 0, &fds, 0, timeout), ec);
- #else // defined(BOOST_ASIO_WINDOWS)
--      // || defined(__CYGWIN__)
-       // || defined(__SYMBIAN32__)
-   pollfd fds;
-   fds.fd = s;
-@@ -1835,7 +1827,6 @@ int poll_write(socket_type s, state_type
-   clear_last_error();
-   int result = error_wrapper(::poll(&fds, 1, timeout), ec);
- #endif // defined(BOOST_ASIO_WINDOWS)
--       // || defined(__CYGWIN__)
-        // || defined(__SYMBIAN32__)
-   if (result == 0)
-     ec = (state & user_set_non_blocking)
-@@ -1854,7 +1845,6 @@ int poll_connect(socket_type s, boost::s
-   }
- 
- #if defined(BOOST_ASIO_WINDOWS) \
--  || defined(__CYGWIN__) \
-   || defined(__SYMBIAN32__)
-   fd_set write_fds;
-   FD_ZERO(&write_fds);
-@@ -1869,7 +1859,6 @@ int poll_connect(socket_type s, boost::s
-     ec = boost::system::error_code();
-   return result;
- #else // defined(BOOST_ASIO_WINDOWS)
--      // || defined(__CYGWIN__)
-       // || defined(__SYMBIAN32__)
-   pollfd fds;
-   fds.fd = s;
-@@ -1881,7 +1870,6 @@ int poll_connect(socket_type s, boost::s
-     ec = boost::system::error_code();
-   return result;
- #endif // defined(BOOST_ASIO_WINDOWS)
--       // || defined(__CYGWIN__)
-        // || defined(__SYMBIAN32__)
- }
- 
-@@ -1926,7 +1914,7 @@ const char* inet_ntop(int af, const void
-     ec = boost::asio::error::address_family_not_supported;
-     return 0;
-   }
--#elif defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#elif defined(BOOST_ASIO_WINDOWS)
-   using namespace std; // For memcpy.
- 
-   if (af != BOOST_ASIO_OS_DEF(AF_INET) && af != BOOST_ASIO_OS_DEF(AF_INET6))
-@@ -1981,7 +1969,7 @@ const char* inet_ntop(int af, const void
-     ec = boost::asio::error::invalid_argument;
- 
-   return result == socket_error_retval ? 0 : dest;
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   const char* result = error_wrapper(::inet_ntop(
-         af, src, dest, static_cast<int>(length)), ec);
-   if (result == 0 && !ec)
-@@ -2001,7 +1989,7 @@ const char* inet_ntop(int af, const void
-     strcat(dest, if_name);
-   }
-   return result;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- }
- 
- int inet_pton(int af, const char* src, void* dest,
-@@ -2152,7 +2140,7 @@ int inet_pton(int af, const char* src, v
-     ec = boost::asio::error::address_family_not_supported;
-     return -1;
-   }
--#elif defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#elif defined(BOOST_ASIO_WINDOWS)
-   using namespace std; // For memcpy and strcmp.
- 
-   if (af != BOOST_ASIO_OS_DEF(AF_INET) && af != BOOST_ASIO_OS_DEF(AF_INET6))
-@@ -2212,7 +2200,7 @@ int inet_pton(int af, const char* src, v
-     ec = boost::system::error_code();
- 
-   return result == socket_error_retval ? -1 : 1;
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   int result = error_wrapper(::inet_pton(af, src, dest), ec);
-   if (result <= 0 && !ec)
-     ec = boost::asio::error::invalid_argument;
-@@ -2234,7 +2222,7 @@ int inet_pton(int af, const char* src, v
-     }
-   }
-   return result;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- }
- 
- int gethostname(char* name, int namelen, boost::system::error_code& ec)
-@@ -2310,7 +2298,7 @@ inline hostent* gethostbyaddr(const char
-     hostent* result, char* buffer, int buflength, boost::system::error_code& ec)
- {
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   (void)(buffer);
-   (void)(buflength);
-   hostent* retval = error_wrapper(::gethostbyaddr(addr, length, af), ec);
-@@ -2353,7 +2341,7 @@ inline hostent* gethostbyname(const char
-     char* buffer, int buflength, int ai_flags, boost::system::error_code& ec)
- {
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   (void)(buffer);
-   (void)(buflength);
-   (void)(ai_flags);
-@@ -3153,7 +3141,7 @@ inline boost::system::error_code transla
-   case EAI_SOCKTYPE:
-     return boost::asio::error::socket_type_not_supported;
-   default: // Possibly the non-portable EAI_SYSTEM.
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-     return boost::system::error_code(
-         WSAGetLastError(), boost::asio::error::get_system_category());
- #else
-@@ -3170,7 +3158,7 @@ boost::system::error_code getaddrinfo(co
-   host = (host && *host) ? host : 0;
-   service = (service && *service) ? service : 0;
-   clear_last_error();
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- # if defined(BOOST_ASIO_HAS_GETADDRINFO)
-   // Building for Windows XP, Windows Server 2003, or later.
-   int error = ::getaddrinfo(host, service, &hints, result);
-@@ -3213,7 +3201,7 @@ boost::system::error_code background_get
- 
- void freeaddrinfo(addrinfo_type* ai)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- # if defined(BOOST_ASIO_HAS_GETADDRINFO)
-   // Building for Windows XP, Windows Server 2003, or later.
-   ::freeaddrinfo(ai);
-@@ -3241,7 +3229,7 @@ boost::system::error_code getnameinfo(co
-     std::size_t addrlen, char* host, std::size_t hostlen,
-     char* serv, std::size_t servlen, int flags, boost::system::error_code& ec)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- # if defined(BOOST_ASIO_HAS_GETADDRINFO)
-   // Building for Windows XP, Windows Server 2003, or later.
-   clear_last_error();
---- boost_1_57_0/boost/asio/detail/impl/socket_select_interrupter.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/impl/socket_select_interrupter.ipp	2015-05-04 17:33:18.861493700 -0500
-@@ -20,7 +20,6 @@
- #if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
- #if defined(BOOST_ASIO_WINDOWS) \
--  || defined(__CYGWIN__) \
-   || defined(__SYMBIAN32__)
- 
- #include <cstdlib>
-@@ -169,7 +168,6 @@ bool socket_select_interrupter::reset()
- #include <boost/asio/detail/pop_options.hpp>
- 
- #endif // defined(BOOST_ASIO_WINDOWS)
--       // || defined(__CYGWIN__)
-        // || defined(__SYMBIAN32__)
- 
- #endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
---- boost_1_57_0/boost/asio/detail/impl/winsock_init.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/impl/winsock_init.ipp	2015-05-04 17:33:18.864494100 -0500
-@@ -17,7 +17,7 @@
- 
- #include <boost/asio/detail/config.hpp>
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- 
- #include <boost/asio/detail/socket_types.hpp>
- #include <boost/asio/detail/winsock_init.hpp>
-@@ -79,6 +79,6 @@ void winsock_init_base::throw_on_error(d
- 
- #include <boost/asio/detail/pop_options.hpp>
- 
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- #endif // BOOST_ASIO_DETAIL_IMPL_WINSOCK_INIT_IPP
---- boost_1_57_0/boost/asio/detail/local_free_on_block_exit.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/local_free_on_block_exit.hpp	2015-05-04 17:33:18.867994600 -0500
-@@ -17,7 +17,7 @@
- 
- #include <boost/asio/detail/config.hpp>
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- 
- #include <boost/asio/detail/noncopyable.hpp>
- #include <boost/asio/detail/socket_types.hpp>
-@@ -54,6 +54,6 @@ private:
- 
- #include <boost/asio/detail/pop_options.hpp>
- 
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- #endif // BOOST_ASIO_DETAIL_LOCAL_FREE_ON_BLOCK_EXIT_HPP
---- boost_1_57_0/boost/asio/detail/null_signal_blocker.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/null_signal_blocker.hpp	2015-05-04 17:33:18.870994900 -0500
-@@ -20,7 +20,6 @@
- #if !defined(BOOST_ASIO_HAS_THREADS) \
-   || defined(BOOST_ASIO_WINDOWS) \
-   || defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  || defined(__CYGWIN__) \
-   || defined(__SYMBIAN32__)
- 
- #include <boost/asio/detail/noncopyable.hpp>
-@@ -65,7 +64,6 @@ public:
- #endif // !defined(BOOST_ASIO_HAS_THREADS)
-        // || defined(BOOST_ASIO_WINDOWS)
-        // || defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       // || defined(__CYGWIN__)
-        // || defined(__SYMBIAN32__)
- 
- #endif // BOOST_ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP
---- boost_1_57_0/boost/asio/detail/old_win_sdk_compat.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/old_win_sdk_compat.hpp	2015-05-04 17:33:18.874495400 -0500
-@@ -17,7 +17,7 @@
- 
- #include <boost/asio/detail/config.hpp>
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- 
- // Guess whether we are building against on old Platform SDK.
- #if !defined(IN6ADDR_ANY_INIT)
-@@ -211,6 +211,6 @@ struct addrinfo_emulation
- # define IPPROTO_ICMPV6 58
- #endif
- 
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- #endif // BOOST_ASIO_DETAIL_OLD_WIN_SDK_COMPAT_HPP
---- boost_1_57_0/boost/asio/detail/pipe_select_interrupter.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/pipe_select_interrupter.hpp	2015-05-04 17:33:18.877995800 -0500
-@@ -19,7 +19,6 @@
- 
- #if !defined(BOOST_ASIO_WINDOWS)
- #if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--#if !defined(__CYGWIN__)
- #if !defined(__SYMBIAN32__)
- #if !defined(BOOST_ASIO_HAS_EVENTFD)
- 
-@@ -84,7 +83,6 @@ private:
- 
- #endif // !defined(BOOST_ASIO_HAS_EVENTFD)
- #endif // !defined(__SYMBIAN32__)
--#endif // !defined(__CYGWIN__)
- #endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- #endif // !defined(BOOST_ASIO_WINDOWS)
- 
---- boost_1_57_0/boost/asio/detail/posix_fd_set_adapter.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/posix_fd_set_adapter.hpp	2015-05-04 17:33:18.881496300 -0500
-@@ -18,7 +18,6 @@
- #include <boost/asio/detail/config.hpp>
- 
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(__CYGWIN__) \
-   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
- #include <cstring>
-@@ -114,7 +113,6 @@ private:
- #include <boost/asio/detail/pop_options.hpp>
- 
- #endif // !defined(BOOST_ASIO_WINDOWS)
--       // && !defined(__CYGWIN__)
-        // && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
- #endif // BOOST_ASIO_DETAIL_POSIX_FD_SET_ADAPTER_HPP
---- boost_1_57_0/boost/asio/detail/reactive_descriptor_service.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/reactive_descriptor_service.hpp	2015-05-04 17:33:18.886496900 -0500
-@@ -18,8 +18,7 @@
- #include <boost/asio/detail/config.hpp>
- 
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
- #include <boost/asio/buffer.hpp>
- #include <boost/asio/io_service.hpp>
-@@ -319,6 +318,5 @@ private:
- 
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- 
- #endif // BOOST_ASIO_DETAIL_REACTIVE_DESCRIPTOR_SERVICE_HPP
---- boost_1_57_0/boost/asio/detail/reactive_serial_port_service.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/reactive_serial_port_service.hpp	2015-05-04 17:33:18.889497300 -0500
-@@ -19,7 +19,7 @@
- #include <boost/asio/detail/config.hpp>
- 
- #if defined(BOOST_ASIO_HAS_SERIAL_PORT)
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
- 
- #include <string>
- #include <boost/asio/error.hpp>
-@@ -230,7 +230,7 @@ private:
- # include <boost/asio/detail/impl/reactive_serial_port_service.ipp>
- #endif // defined(BOOST_ASIO_HEADER_ONLY)
- 
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- #endif // defined(BOOST_ASIO_HAS_SERIAL_PORT)
- 
- #endif // BOOST_ASIO_DETAIL_REACTIVE_SERIAL_PORT_SERVICE_HPP
---- boost_1_57_0/boost/asio/detail/select_interrupter.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/select_interrupter.hpp	2015-05-04 17:33:18.892497700 -0500
-@@ -19,7 +19,7 @@
- 
- #if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) || defined(__SYMBIAN32__)
-+#if defined(BOOST_ASIO_WINDOWS) || defined(__SYMBIAN32__)
- # include <boost/asio/detail/socket_select_interrupter.hpp>
- #elif defined(BOOST_ASIO_HAS_EVENTFD)
- # include <boost/asio/detail/eventfd_select_interrupter.hpp>
-@@ -31,7 +31,7 @@ namespace boost {
- namespace asio {
- namespace detail {
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__) || defined(__SYMBIAN32__)
-+#if defined(BOOST_ASIO_WINDOWS) || defined(__SYMBIAN32__)
- typedef socket_select_interrupter select_interrupter;
- #elif defined(BOOST_ASIO_HAS_EVENTFD)
- typedef eventfd_select_interrupter select_interrupter;
---- boost_1_57_0/boost/asio/detail/select_reactor.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/select_reactor.hpp	2015-05-04 17:33:18.895498100 -0500
-@@ -51,13 +51,13 @@ class select_reactor
-   : public boost::asio::detail::service_base<select_reactor>
- {
- public:
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   enum op_types { read_op = 0, write_op = 1, except_op = 2,
-     max_select_ops = 3, connect_op = 3, max_ops = 4 };
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-   enum op_types { read_op = 0, write_op = 1, except_op = 2,
-     max_select_ops = 3, connect_op = 1, max_ops = 3 };
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
-   // Per-descriptor data.
-   struct per_descriptor_data
---- boost_1_57_0/boost/asio/detail/signal_blocker.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/signal_blocker.hpp	2015-05-04 17:33:18.898498400 -0500
-@@ -19,7 +19,7 @@
- 
- #if !defined(BOOST_ASIO_HAS_THREADS) || defined(BOOST_ASIO_WINDOWS) \
-   || defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  || defined(__CYGWIN__) || defined(__SYMBIAN32__)
-+  || defined(__SYMBIAN32__)
- # include <boost/asio/detail/null_signal_blocker.hpp>
- #elif defined(BOOST_ASIO_HAS_PTHREADS)
- # include <boost/asio/detail/posix_signal_blocker.hpp>
-@@ -33,7 +33,7 @@ namespace detail {
- 
- #if !defined(BOOST_ASIO_HAS_THREADS) || defined(BOOST_ASIO_WINDOWS) \
-   || defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  || defined(__CYGWIN__) || defined(__SYMBIAN32__)
-+  || defined(__SYMBIAN32__)
- typedef null_signal_blocker signal_blocker;
- #elif defined(BOOST_ASIO_HAS_PTHREADS)
- typedef posix_signal_blocker signal_blocker;
---- boost_1_57_0/boost/asio/detail/signal_init.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/signal_init.hpp	2015-05-04 17:33:18.901998900 -0500
-@@ -17,7 +17,7 @@
- 
- #include <boost/asio/detail/config.hpp>
- 
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
- 
- #include <csignal>
- 
-@@ -44,6 +44,6 @@ public:
- 
- #include <boost/asio/detail/pop_options.hpp>
- 
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- 
- #endif // BOOST_ASIO_DETAIL_SIGNAL_INIT_HPP
---- boost_1_57_0/boost/asio/detail/signal_set_service.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/signal_set_service.hpp	2015-05-04 17:33:18.904999300 -0500
-@@ -28,9 +28,9 @@
- #include <boost/asio/detail/signal_op.hpp>
- #include <boost/asio/detail/socket_types.hpp>
- 
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
- # include <boost/asio/detail/reactor.hpp>
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- 
- #include <boost/asio/detail/push_options.hpp>
- 
-@@ -183,8 +183,7 @@ private:
-   io_service_impl& io_service_;
- 
- #if !defined(BOOST_ASIO_WINDOWS) \
--  && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
--  && !defined(__CYGWIN__)
-+  && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
-   // The type used for registering for pipe reactor notifications.
-   class pipe_read_op;
- 
-@@ -195,7 +194,6 @@ private:
-   reactor::per_descriptor_data reactor_data_;
- #endif // !defined(BOOST_ASIO_WINDOWS)
-        //   && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
--       //   && !defined(__CYGWIN__)
- 
-   // A mapping from signal number to the registered signal sets.
-   registration* registrations_[max_signal_number];
---- boost_1_57_0/boost/asio/detail/socket_ops.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/socket_ops.hpp	2015-05-04 17:33:18.907999600 -0500
-@@ -128,11 +128,11 @@ BOOST_ASIO_DECL size_t available(socket_
- BOOST_ASIO_DECL int listen(socket_type s,
-     int backlog, boost::system::error_code& ec);
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- typedef WSABUF buf;
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
- typedef iovec buf;
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- BOOST_ASIO_DECL void init_buf(buf& b, void* data, size_t size);
- 
---- boost_1_57_0/boost/asio/detail/socket_select_interrupter.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/socket_select_interrupter.hpp	2015-05-04 17:33:18.912500200 -0500
-@@ -20,7 +20,6 @@
- #if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
- 
- #if defined(BOOST_ASIO_WINDOWS) \
--  || defined(__CYGWIN__) \
-   || defined(__SYMBIAN32__)
- 
- #include <boost/asio/detail/socket_types.hpp>
-@@ -85,7 +84,6 @@ private:
- #endif // defined(BOOST_ASIO_HEADER_ONLY)
- 
- #endif // defined(BOOST_ASIO_WINDOWS)
--       // || defined(__CYGWIN__)
-        // || defined(__SYMBIAN32__)
- 
- #endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
---- boost_1_57_0/boost/asio/detail/socket_types.hpp	2015-05-04 17:16:30.021887400 -0500
-+++ boost_1_57_0/boost/asio/detail/socket_types.hpp	2015-05-04 17:33:18.915500600 -0500
-@@ -19,7 +19,7 @@
- 
- #if defined(BOOST_ASIO_WINDOWS_RUNTIME)
- // Empty.
--#elif defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#elif defined(BOOST_ASIO_WINDOWS)
- # if defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)
- #  error WinSock.h has already been included
- # endif // defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)
-@@ -169,7 +169,7 @@ typedef int signed_size_type;
- # define BOOST_ASIO_OS_DEF_AI_V4MAPPED 0x800
- # define BOOST_ASIO_OS_DEF_AI_ALL 0x100
- # define BOOST_ASIO_OS_DEF_AI_ADDRCONFIG 0x400
--#elif defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#elif defined(BOOST_ASIO_WINDOWS)
- typedef SOCKET socket_type;
- const SOCKET invalid_socket = INVALID_SOCKET;
- const int socket_error_retval = SOCKET_ERROR;
---- boost_1_57_0/boost/asio/detail/win_fd_set_adapter.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/win_fd_set_adapter.hpp	2015-05-04 17:33:18.919001000 -0500
-@@ -17,7 +17,7 @@
- 
- #include <boost/asio/detail/config.hpp>
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- 
- #include <boost/asio/detail/noncopyable.hpp>
- #include <boost/asio/detail/reactor_op_queue.hpp>
-@@ -146,6 +146,6 @@ private:
- 
- #include <boost/asio/detail/pop_options.hpp>
- 
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- #endif // BOOST_ASIO_DETAIL_WIN_FD_SET_ADAPTER_HPP
---- boost_1_57_0/boost/asio/detail/winsock_init.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/detail/winsock_init.hpp	2015-05-04 17:33:18.923501600 -0500
-@@ -17,7 +17,7 @@
- 
- #include <boost/asio/detail/config.hpp>
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- 
- #include <boost/asio/detail/push_options.hpp>
- 
-@@ -125,6 +125,6 @@ static const winsock_init<>& winsock_ini
- # include <boost/asio/detail/impl/winsock_init.ipp>
- #endif // defined(BOOST_ASIO_HEADER_ONLY)
- 
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
- 
- #endif // BOOST_ASIO_DETAIL_WINSOCK_INIT_HPP
---- boost_1_57_0/boost/asio/error.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/error.hpp	2015-05-04 17:33:18.926502000 -0500
-@@ -20,7 +20,6 @@
- #include <boost/system/error_code.hpp>
- #include <boost/system/system_error.hpp>
- #if defined(BOOST_ASIO_WINDOWS) \
--  || defined(__CYGWIN__) \
-   || defined(BOOST_ASIO_WINDOWS_RUNTIME)
- # include <winerror.h>
- #else
-@@ -45,7 +44,7 @@
- # define BOOST_ASIO_NETDB_ERROR(e) __HRESULT_FROM_WIN32(WSA ## e)
- # define BOOST_ASIO_GETADDRINFO_ERROR(e) __HRESULT_FROM_WIN32(WSA ## e)
- # define BOOST_ASIO_WIN_OR_POSIX(e_win, e_posix) e_win
--#elif defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#elif defined(BOOST_ASIO_WINDOWS)
- # define BOOST_ASIO_NATIVE_ERROR(e) e
- # define BOOST_ASIO_SOCKET_ERROR(e) WSA ## e
- # define BOOST_ASIO_NETDB_ERROR(e) WSA ## e
-@@ -225,7 +224,7 @@ inline const boost::system::error_catego
-   return boost::system::system_category();
- }
- 
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
- 
- extern BOOST_ASIO_DECL
- const boost::system::error_category& get_netdb_category();
-@@ -233,7 +232,7 @@ const boost::system::error_category& get
- extern BOOST_ASIO_DECL
- const boost::system::error_category& get_addrinfo_category();
- 
--#else // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#else // !defined(BOOST_ASIO_WINDOWS)
- 
- inline const boost::system::error_category& get_netdb_category()
- {
-@@ -245,7 +244,7 @@ inline const boost::system::error_catego
-   return get_system_category();
- }
- 
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- 
- extern BOOST_ASIO_DECL
- const boost::system::error_category& get_misc_category();
---- boost_1_57_0/boost/asio/impl/error.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/impl/error.ipp	2015-05-04 17:33:18.931002600 -0500
-@@ -25,7 +25,7 @@ namespace boost {
- namespace asio {
- namespace error {
- 
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
- 
- namespace detail {
- 
-@@ -87,7 +87,7 @@ const boost::system::error_category& get
-   return instance;
- }
- 
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- 
- namespace detail {
- 
---- boost_1_57_0/boost/asio/impl/serial_port_base.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/impl/serial_port_base.ipp	2015-05-04 17:33:18.936503300 -0500
-@@ -27,7 +27,7 @@
- 
- #if defined(GENERATING_DOCUMENTATION)
- # define BOOST_ASIO_OPTION_STORAGE implementation_defined
--#elif defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#elif defined(BOOST_ASIO_WINDOWS)
- # define BOOST_ASIO_OPTION_STORAGE DCB
- #else
- # define BOOST_ASIO_OPTION_STORAGE termios
-@@ -41,7 +41,7 @@ namespace asio {
- boost::system::error_code serial_port_base::baud_rate::store(
-     BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) const
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   storage.BaudRate = value_;
- #else
-   speed_t baud;
-@@ -128,7 +128,7 @@ boost::system::error_code serial_port_ba
- boost::system::error_code serial_port_base::baud_rate::load(
-     const BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   value_ = storage.BaudRate;
- #else
-   speed_t baud = ::cfgetospeed(&storage);
-@@ -221,7 +221,7 @@ serial_port_base::flow_control::flow_con
- boost::system::error_code serial_port_base::flow_control::store(
-     BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) const
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   storage.fOutxCtsFlow = FALSE;
-   storage.fOutxDsrFlow = FALSE;
-   storage.fTXContinueOnXoff = TRUE;
-@@ -288,7 +288,7 @@ boost::system::error_code serial_port_ba
- boost::system::error_code serial_port_base::flow_control::load(
-     const BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   if (storage.fOutX && storage.fInX)
-   {
-     value_ = software;
-@@ -339,7 +339,7 @@ serial_port_base::parity::parity(serial_
- boost::system::error_code serial_port_base::parity::store(
-     BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) const
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   switch (value_)
-   {
-   case none:
-@@ -386,7 +386,7 @@ boost::system::error_code serial_port_ba
- boost::system::error_code serial_port_base::parity::load(
-     const BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   if (storage.Parity == EVENPARITY)
-   {
-     value_ = even;
-@@ -434,7 +434,7 @@ serial_port_base::stop_bits::stop_bits(
- boost::system::error_code serial_port_base::stop_bits::store(
-     BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) const
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   switch (value_)
-   {
-   case one:
-@@ -470,7 +470,7 @@ boost::system::error_code serial_port_ba
- boost::system::error_code serial_port_base::stop_bits::load(
-     const BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   if (storage.StopBits == ONESTOPBIT)
-   {
-     value_ = one;
-@@ -507,7 +507,7 @@ serial_port_base::character_size::charac
- boost::system::error_code serial_port_base::character_size::store(
-     BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) const
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   storage.ByteSize = value_;
- #else
-   storage.c_cflag &= ~CSIZE;
-@@ -527,7 +527,7 @@ boost::system::error_code serial_port_ba
- boost::system::error_code serial_port_base::character_size::load(
-     const BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec)
- {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   value_ = storage.ByteSize;
- #else
-   if ((storage.c_cflag & CSIZE) == CS5) { value_ = 5; }
---- boost_1_57_0/boost/asio/io_service.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/io_service.hpp	2015-05-04 17:33:18.940003700 -0500
-@@ -24,7 +24,7 @@
- #include <boost/asio/detail/wrapped_handler.hpp>
- #include <boost/system/error_code.hpp>
- 
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
- # include <boost/asio/detail/winsock_init.hpp>
- #elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX) \
-   || defined(__osf__)
-@@ -600,7 +600,7 @@ public:
-   friend bool has_service(io_service& ios);
- 
- private:
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-   detail::winsock_init<> init_;
- #elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX) \
-   || defined(__osf__)
---- boost_1_57_0/boost/asio/serial_port_base.hpp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/serial_port_base.hpp	2015-05-04 17:33:18.943004100 -0500
-@@ -21,16 +21,16 @@
- #if defined(BOOST_ASIO_HAS_SERIAL_PORT) \
-   || defined(GENERATING_DOCUMENTATION)
- 
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
- # include <termios.h>
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- 
- #include <boost/asio/detail/socket_types.hpp>
- #include <boost/system/error_code.hpp>
- 
- #if defined(GENERATING_DOCUMENTATION)
- # define BOOST_ASIO_OPTION_STORAGE implementation_defined
--#elif defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#elif defined(BOOST_ASIO_WINDOWS)
- # define BOOST_ASIO_OPTION_STORAGE DCB
- #else
- # define BOOST_ASIO_OPTION_STORAGE termios
---- boost_1_57_0/boost/asio/ssl/detail/impl/openssl_init.ipp	2014-10-17 17:49:08.000000000 -0500
-+++ boost_1_57_0/boost/asio/ssl/detail/impl/openssl_init.ipp	2015-05-04 17:33:18.946504500 -0500
-@@ -85,15 +85,15 @@ public:
- private:
-   static unsigned long openssl_id_func()
-   {
--#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_ASIO_WINDOWS)
-     return ::GetCurrentThreadId();
--#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#else // defined(BOOST_ASIO_WINDOWS)
-     void* id = instance()->thread_id_;
-     if (id == 0)
-       instance()->thread_id_ = id = &id; // Ugh.
-     BOOST_ASIO_ASSERT(sizeof(unsigned long) >= sizeof(void*));
-     return reinterpret_cast<unsigned long>(id);
--#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_ASIO_WINDOWS)
-   }
- 
-   static void openssl_locking_func(int mode, int n, 
-@@ -109,10 +109,10 @@ private:
-   std::vector<boost::asio::detail::shared_ptr<
-         boost::asio::detail::mutex> > mutexes_;
- 
--#if !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#if !defined(BOOST_ASIO_WINDOWS)
-   // The thread identifiers to be used by openssl.
-   boost::asio::detail::tss_ptr<void> thread_id_;
--#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
-+#endif // !defined(BOOST_ASIO_WINDOWS)
- 
- #if !defined(SSL_OP_NO_COMPRESSION) \
-   && (OPENSSL_VERSION_NUMBER >= 0x00908000L)
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-config-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-config-cygwin.patch
deleted file mode 100644
index 97acc72689d2..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-config-cygwin.patch
+++ /dev/null
@@ -1,76 +0,0 @@
---- boost_1_57_0/boost/config/platform/cygwin.hpp	2015-05-04 18:02:21.742811600 -0500
-+++ boost_1_57_0/boost/config/platform/cygwin.hpp	2015-05-04 17:16:30.183407900 -0500
-@@ -39,18 +39,8 @@
- #define BOOST_HAS_STDINT_H
- #endif
- 
--/// Cygwin has no fenv.h
--#define BOOST_NO_FENV_H
--
- // boilerplate code:
- #include <boost/config/posix_features.hpp>
--
--//
--// Cygwin lies about XSI conformance, there is no nl_types.h:
--//
--#ifdef BOOST_HAS_NL_TYPES_H
--#  undef BOOST_HAS_NL_TYPES_H
--#endif
-  
- 
- 
---- boost_1_57_0/boost/config/stdlib/libstdcpp3.hpp	2014-10-26 07:36:42.000000000 -0500
-+++ boost_1_57_0/boost/config/stdlib/libstdcpp3.hpp	2015-05-04 17:54:44.835791700 -0500
-@@ -68,7 +68,7 @@
- #endif
- 
- // Apple doesn't seem to reliably defined a *unix* macro
--#if !defined(CYGWIN) && (  defined(__unix__)  \
-+#if (  defined(__unix__)  \
-                         || defined(__unix)    \
-                         || defined(unix)      \
-                         || defined(__APPLE__) \
---- boost_1_57_0/boost/config/stdlib/sgi.hpp	2014-10-26 07:36:42.000000000 -0500
-+++ boost_1_57_0/boost/config/stdlib/sgi.hpp	2015-05-04 17:54:52.911817300 -0500
-@@ -41,7 +41,7 @@
- #endif
- 
- // Apple doesn't seem to reliably defined a *unix* macro
--#if !defined(CYGWIN) && (  defined(__unix__)  \
-+#if (  defined(__unix__)  \
-                         || defined(__unix)    \
-                         || defined(unix)      \
-                         || defined(__APPLE__) \
---- boost_1_57_0/boost/config/stdlib/stlport.hpp	2014-10-26 07:36:42.000000000 -0500
-+++ boost_1_57_0/boost/config/stdlib/stlport.hpp	2015-05-04 17:55:00.621796300 -0500
-@@ -17,7 +17,7 @@
- #endif
- 
- // Apple doesn't seem to reliably defined a *unix* macro
--#if !defined(CYGWIN) && (  defined(__unix__)  \
-+#if (  defined(__unix__)  \
-                         || defined(__unix)    \
-                         || defined(unix)      \
-                         || defined(__APPLE__) \
---- boost_1_57_0/boost/config/stdlib/vacpp.hpp	2014-10-26 07:36:42.000000000 -0500
-+++ boost_1_57_0/boost/config/stdlib/vacpp.hpp	2015-05-04 17:55:07.424660200 -0500
-@@ -13,7 +13,7 @@
- #define BOOST_NO_STD_MESSAGES
- 
- // Apple doesn't seem to reliably defined a *unix* macro
--#if !defined(CYGWIN) && (  defined(__unix__)  \
-+#if (  defined(__unix__)  \
-                         || defined(__unix)    \
-                         || defined(unix)      \
-                         || defined(__APPLE__) \
---- boost_1_57_0/boost/predef/os/cygwin.h	2014-07-10 08:53:53.000000000 -0500
-+++ boost_1_57_0/boost/predef/os/cygwin.h	2015-05-04 17:57:31.634472500 -0500
-@@ -29,7 +29,7 @@ http://www.boost.org/LICENSE_1_0.txt)
-     defined(__CYGWIN__) \
-     )
- #   undef BOOST_OS_CYGWIN
--#   define BOOST_OS_CGYWIN BOOST_VERSION_NUMBER_AVAILABLE
-+#   define BOOST_OS_CYGWIN BOOST_VERSION_NUMBER_AVAILABLE
- #endif
- 
- #if BOOST_OS_CYGWIN
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-context-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-context-cygwin.patch
deleted file mode 100644
index 3d9726179be6..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-context-cygwin.patch
+++ /dev/null
@@ -1,600 +0,0 @@
---- boost_1_57_0/libs/context/build/Jamfile.v2	2014-10-20 01:26:00.000000000 -0500
-+++ boost_1_57_0/libs/context/build/Jamfile.v2	2015-05-04 17:43:10.812161900 -0500
-@@ -29,6 +29,7 @@ local rule default_binary_format ( )
-     local tmp = elf ;
-     if [ os.name ] = "MACOSX" { tmp = mach-o ; }
-     if [ os.name ] = "NT" { tmp = pe ; }
-+    if [ os.name ] = "CYGWIN" { tmp = pe ; }
-     if [ os.name ] = "AIX" { tmp = xcoff ; }
-     return $(tmp) ;
- }
-@@ -581,6 +582,16 @@ alias asm_context_sources
-    ;
- 
- alias asm_context_sources
-+   : asm/make_i386_ms_pe_gas.S
-+     asm/jump_i386_ms_pe_gas.S
-+     dummy.cpp
-+   : <address-model>32
-+     <architecture>x86
-+     <binary-format>pe
-+     <toolset>gcc
-+   ;
-+
-+alias asm_context_sources
-    : asm/make_i386_ms_pe_masm.asm
-      asm/jump_i386_ms_pe_masm.asm
-      dummy.cpp
-@@ -715,6 +726,16 @@ alias asm_context_sources
-    ;
- 
- alias asm_context_sources
-+   : asm/make_x86_64_ms_pe_gas.S
-+     asm/jump_x86_64_ms_pe_gas.S
-+     dummy.cpp
-+   : <address-model>64
-+     <architecture>x86
-+     <binary-format>pe
-+     <toolset>gcc
-+   ;
-+
-+alias asm_context_sources
-    : asm/make_x86_64_ms_pe_masm.asm
-      asm/jump_x86_64_ms_pe_masm.asm
-      dummy.cpp
---- boost_1_57_0/libs/context/src/asm/jump_i386_ms_pe_gas.S	1969-12-31 18:00:00.000000000 -0600
-+++ boost_1_57_0/libs/context/src/asm/jump_i386_ms_pe_gas.S	2015-05-04 17:43:10.821663100 -0500
-@@ -0,0 +1,108 @@
-+/*
-+            Copyright Oliver Kowalke 2009.
-+            Copyright Thomas Sailer 2013.
-+   Distributed under the Boost Software License, Version 1.0.
-+      (See accompanying file LICENSE_1_0.txt or copy at
-+            http://www.boost.org/LICENSE_1_0.txt)
-+*/
-+
-+/********************************************************************
-+ *                                                                  *
-+ *  --------------------------------------------------------------  *
-+ *  |    0    |    1    |    2    |    3    |    4     |    5    |  *
-+ *  --------------------------------------------------------------  *
-+ *  |    0h   |   04h   |   08h   |   0ch   |   010h   |   014h  |  *
-+ *  --------------------------------------------------------------  *
-+ *  |   EDI   |   ESI   |   EBX   |   EBP   |   ESP    |   EIP   |  *
-+ *  --------------------------------------------------------------  *
-+ *  --------------------------------------------------------------  *
-+ *  |    6    |    7    |    8    |                              |  *
-+ *  --------------------------------------------------------------  *
-+ *  |   018h  |   01ch  |   020h  |                              |  *
-+ *  --------------------------------------------------------------  *
-+ *  |    sp   |   size  |  limit  |                              |  *
-+ *  --------------------------------------------------------------  *
-+ *  --------------------------------------------------------------  *
-+ *  |    9    |                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  |  024h   |                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  |fc_execpt|                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  --------------------------------------------------------------  *
-+ *  |   10    |                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  |  028h   |                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  |fc_strage|                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  --------------------------------------------------------------  *
-+ *  |   11    |    12   |                                        |  *
-+ *  --------------------------------------------------------------  *
-+ *  |  02ch   |   030h  |                                        |  *
-+ *  --------------------------------------------------------------  *
-+ *  | fc_mxcsr|fc_x87_cw|                                        |  *
-+ *  --------------------------------------------------------------  *
-+ *                                                                  *
-+ * *****************************************************************/
-+
-+.file	"jump_i386_ms_pe_gas.S"
-+.text
-+.p2align 4,,15
-+.globl	_jump_fcontext
-+.def	_jump_fcontext;	.scl	2;	.type	32;	.endef
-+_jump_fcontext:
-+    movl    0x04(%esp), %ecx        /* load address of the first fcontext_t arg */
-+    movl    %edi,       (%ecx)      /* save EDI */
-+    movl    %esi,       0x04(%ecx)  /* save ESI */
-+    movl    %ebx,       0x08(%ecx)  /* save EBX */
-+    movl    %ebp,       0x0c(%ecx)  /* save EBP */
-+
-+    movl    %fs:(0x18), %edx        /* load NT_TIB */
-+    movl    (%edx),     %eax        /* load current SEH exception list */
-+    movl    %eax,       0x24(%ecx)  /* save current exception list */
-+    movl    0x04(%edx), %eax        /* load current stack base */
-+    movl    %eax,       0x18(%ecx)  /* save current stack base */
-+    movl    0x08(%edx), %eax        /* load current stack limit */
-+    movl    %eax,       0x20(%ecx)  /* save current stack limit */
-+    movl    0x10(%edx), %eax        /* load fiber local storage */
-+    movl    %eax,       0x28(%ecx)  /* save fiber local storage */
-+
-+    leal    0x04(%esp), %eax        /* exclude the return address */
-+    movl    %eax,       0x10(%ecx)  /* save as stack pointer */
-+    movl    (%esp),     %eax        /* load return address */
-+    movl    %eax,       0x14(%ecx)  /* save return address */
-+
-+    movl    0x08(%esp), %edx        /* load address of the second fcontext_t arg */
-+    movl    (%edx),     %edi        /* restore EDI */
-+    movl    0x04(%edx), %esi        /* restore ESI */
-+    movl    0x08(%edx), %ebx        /* restore EBX */
-+    movl    0x0c(%edx), %ebp        /* restore EBP */
-+
-+    movl    0x10(%esp), %eax        /* check if fpu enve preserving was requested */
-+    testl   %eax,       %eax 
-+    je      1f
-+
-+    stmxcsr 0x2c(%ecx)              /* save MMX control word */
-+    fnstcw  0x30(%ecx)              /* save x87 control word */
-+    ldmxcsr 0x2c(%edx)              /* restore MMX control word */
-+    fldcw   0x30(%edx)              /* restore x87 control word */
-+1:
-+    movl    %edx,       %ecx        
-+    movl    %fs:(0x18), %edx        /* load NT_TIB */
-+    movl    0x24(%ecx), %eax        /* load SEH exception list */
-+    movl    %eax,       (%edx)      /* restore next SEH item */
-+    movl    0x18(%ecx), %eax        /* load stack base */
-+    movl    %eax,       0x04(%edx)  /* restore stack base */
-+    movl    0x20(%ecx), %eax        /* load stack limit */
-+    movl    %eax,       0x08(%edx)  /* restore stack limit */
-+    movl    0x28(%ecx), %eax        /* load fiber local storage */
-+    movl    %eax,       0x10(%edx)  /* restore fiber local storage */
-+			            
-+    movl    0x0c(%esp), %eax        /* use third arg as return value after jump */
-+			            
-+    movl    0x10(%ecx), %esp        /* restore ESP */
-+    movl    %eax,       0x04(%esp)  /* use third arg as first arg in context function */
-+    movl    0x14(%ecx), %ecx        /* fetch the address to return to */
-+
-+    jmp     *%ecx                   /* indirect jump to context */
---- boost_1_57_0/libs/context/src/asm/jump_x86_64_ms_pe_gas.S	1969-12-31 18:00:00.000000000 -0600
-+++ boost_1_57_0/libs/context/src/asm/jump_x86_64_ms_pe_gas.S	2015-05-04 17:43:10.829664200 -0500
-@@ -0,0 +1,189 @@
-+/*
-+            Copyright Oliver Kowalke 2009.
-+            Copyright Thomas Sailer 2013.
-+   Distributed under the Boost Software License, Version 1.0.
-+      (See accompanying file LICENSE_1_0.txt or copy at
-+            http://www.boost.org/LICENSE_1_0.txt)
-+*/
-+
-+/****************************************************************************************
-+ *                                                                                      *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    0    |    1    |    2    |    3    |    4     |    5    |    6    |    7    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x0   |   0x4   |   0x8   |   0xc   |   0x10   |   0x14  |   0x18  |   0x1c  |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |        R12        |         R13       |         R14        |        R15        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    8    |    9    |   10    |   11    |    12    |    13   |    14   |    15   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x20  |   0x24  |   0x28  |  0x2c   |   0x30   |   0x34  |   0x38  |   0x3c  |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |        RDI        |        RSI        |         RBX        |        RBP        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    16   |    17   |    18   |    19   |                                        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x40  |   0x44  |   0x48  |   0x4c  |                                        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |        RSP        |        RIP        |                                        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    20   |    21   |    22   |    23   |    24    |    25   |                   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x50  |   0x54  |   0x58  |   0x5c  |   0x60   |   0x64  |                   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |        sp         |       size        |        limit       |                   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    26   |   27    |                                                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x68  |   0x6c  |                                                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |      fbr_strg     |                                                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    28   |   29    |    30   |    31   |    32    |    33   |   34    |   35    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x70  |   0x74  |   0x78  |   0x7c  |   0x80   |   0x84  |  0x88   |  0x8c   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  | fc_mxcsr|fc_x87_cw|      fc_xmm       |      SEE registers (XMM6-XMM15)        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   36    |    37   |    38   |    39   |    40    |    41   |   42    |   43    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |  0x90   |   0x94  |   0x98  |   0x9c  |   0xa0   |   0xa4  |  0xa8   |  0xac   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |                          SEE registers (XMM6-XMM15)                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    44    |   45    |    46   |    47  |    48    |    49   |   50    |   51    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0xb0   |  0xb4   |  0xb8   |  0xbc  |   0xc0   |   0xc4  |  0xc8   |  0xcc   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |                          SEE registers (XMM6-XMM15)                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    52    |   53    |    54   |   55   |    56    |    57   |   58    |   59    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0xd0   |  0xd4   |   0xd8  |  0xdc  |   0xe0   |  0xe4   |  0xe8   |  0xec   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |                          SEE registers (XMM6-XMM15)                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    60   |    61   |    62    |    63  |    64    |    65   |   66    |   67    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |  0xf0   |  0xf4   |   0xf8   |  0xfc  |   0x100  |  0x104  |  0x108  |  0x10c  |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |                          SEE registers (XMM6-XMM15)                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    68   |    69   |    70    |    71  |    72    |    73   |   74    |   75    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |  0x110  |  0x114  |   0x118  |  0x11c |   0x120  |  0x124  |  0x128  |  0x12c  |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |                          SEE registers (XMM6-XMM15)                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *                                                                                      *
-+ * *************************************************************************************/
-+
-+.file	"jump_x86_64_ms_pe_gas.S"
-+.text
-+.p2align 4,,15
-+.globl	jump_fcontext
-+.def	jump_fcontext;	.scl	2;	.type	32;	.endef
-+.seh_proc	jump_fcontext
-+jump_fcontext:
-+.seh_endprologue
-+    movq    %r12,       (%rcx)      /* save R12 */
-+    movq    %r13,       0x08(%rcx)  /* save R13 */
-+    movq    %r14,       0x10(%rcx)  /* save R14 */
-+    movq    %r15,       0x18(%rcx)  /* save R15 */
-+    movq    %rdi,       0x20(%rcx)  /* save RDI */
-+    movq    %rsi,       0x28(%rcx)  /* save RSI */
-+    movq    %rbx,       0x30(%rcx)  /* save RBX */
-+    movq    %rbp,       0x38(%rcx)  /* save RBP */
-+
-+    movq    %gs:(0x30), %r10        /* load NT_TIB */
-+    movq    0x08(%r10), %rax        /* load current stack base */
-+    movq    %rax,       0x50(%rcx)  /* save current stack base */
-+    movq    0x10(%r10), %rax        /* load current stack limit */
-+    movq    %rax,       0x60(%rcx)  /* save current stack limit */
-+    movq    0x18(%r10), %rax        /* load fiber local storage */
-+    movq    %rax,       0x68(%rcx)  /* save fiber local storage */
-+
-+    testq   %r9,        %r9
-+    je      1f
-+
-+    stmxcsr 0x70(%rcx)              /* save MMX control and status word */
-+    fnstcw  0x74(%rcx)              /* save x87 control word */
-+    /* save XMM storage */
-+    /* save start address of SSE register block in R10 */
-+    leaq    0x90(%rcx), %r10
-+    /* shift address in R10 to lower 16 byte boundary */
-+    /* == pointer to SEE register block */
-+    andq    $-16,       %r10
-+
-+    movaps  %xmm6,      (%r10)
-+    movaps  %xmm7,      0x10(%r10)
-+    movaps  %xmm8,      0x20(%r10)
-+    movaps  %xmm9,      0x30(%r10)
-+    movaps  %xmm10,     0x40(%r10)
-+    movaps  %xmm11,     0x50(%r10)
-+    movaps  %xmm12,     0x60(%r10)
-+    movaps  %xmm13,     0x70(%r10)
-+    movaps  %xmm14,     0x80(%r10)
-+    movaps  %xmm15,     0x90(%r10)
-+
-+    ldmxcsr 0x70(%rdx)              /* restore MMX control and status word */
-+    fldcw   0x74(%rdx)              /* restore x87 control word */
-+    /* restore XMM storage */
-+	/* save start address of SSE register block in R10 */
-+    leaq    0x90(%rdx), %r10
-+    /* shift address in R10 to lower 16 byte boundary */
-+    /* == pointer to SEE register block */
-+    andq    $-16,       %r10
-+
-+    movaps  (%r10),     %xmm6
-+    movaps  0x10(%r10), %xmm7
-+    movaps  0x20(%r10), %xmm8
-+    movaps  0x30(%r10), %xmm9
-+    movaps  0x40(%r10), %xmm10
-+    movaps  0x50(%r10), %xmm11
-+    movaps  0x60(%r10), %xmm12
-+    movaps  0x70(%r10), %xmm13
-+    movaps  0x80(%r10), %xmm14
-+    movaps  0x90(%r10), %xmm15
-+
-+1:
-+    leaq    0x08(%rsp), %rax        /* exclude the return address */
-+    movq    %rax,       0x40(%rcx)  /* save as stack pointer */
-+    movq    (%rsp),     %rax        /* load return address */
-+    movq    %rax,       0x48(%rcx)  /* save return address */
-+
-+    movq    (%rdx),     %r12        /* restore R12 */
-+    movq    0x08(%rdx), %r13        /* restore R13 */
-+    movq    0x10(%rdx), %r14        /* restore R14 */
-+    movq    0x18(%rdx), %r15        /* restore R15 */
-+    movq    0x20(%rdx), %rdi        /* restore RDI */
-+    movq    0x28(%rdx), %rsi        /* restore RSI */
-+    movq    0x30(%rdx), %rbx        /* restore RBX */
-+    movq    0x38(%rdx), %rbp        /* restore RBP */
-+
-+    movq    %gs:(0x30), %r10        /* load NT_TIB */
-+    movq    0x50(%rdx), %rax        /* load stack base */
-+    movq    %rax,       0x08(%r10)  /* restore stack base */
-+    movq    0x60(%rdx), %rax        /* load stack limit */
-+    movq    %rax,       0x10(%r10)  /* restore stack limit */
-+    movq    0x68(%rdx), %rax        /* load fiber local storage */
-+    movq    %rax,       0x18(%r10)  /* restore fiber local storage */
-+
-+    movq    0x40(%rdx), %rsp        /* restore RSP */
-+    movq    0x48(%rdx), %r10        /* fetch the address to returned to */
-+
-+    movq    %r8,        %rax        /* use third arg as return value after jump */
-+    movq    %r8,        %rcx        /* use third arg as first arg in context function */
-+
-+    jmp     *%r10                   /* indirect jump to caller */
-+.seh_endproc
---- boost_1_57_0/libs/context/src/asm/make_i386_ms_pe_gas.S	1969-12-31 18:00:00.000000000 -0600
-+++ boost_1_57_0/libs/context/src/asm/make_i386_ms_pe_gas.S	2015-05-04 17:43:10.836165000 -0500
-@@ -0,0 +1,115 @@
-+/*
-+            Copyright Oliver Kowalke 2009.
-+            Copyright Thomas Sailer 2013.
-+   Distributed under the Boost Software License, Version 1.0.
-+      (See accompanying file LICENSE_1_0.txt or copy at
-+            http://www.boost.org/LICENSE_1_0.txt)
-+*/
-+
-+/********************************************************************
-+ *                                                                  *
-+ *  --------------------------------------------------------------  *
-+ *  |    0    |    1    |    2    |    3    |    4     |    5    |  *
-+ *  --------------------------------------------------------------  *
-+ *  |    0h   |   04h   |   08h   |   0ch   |   010h   |   014h  |  *
-+ *  --------------------------------------------------------------  *
-+ *  |   EDI   |   ESI   |   EBX   |   EBP   |   ESP    |   EIP   |  *
-+ *  --------------------------------------------------------------  *
-+ *  --------------------------------------------------------------  *
-+ *  |    6    |    7    |    8    |                              |  *
-+ *  --------------------------------------------------------------  *
-+ *  |   018h  |   01ch  |   020h  |                              |  *
-+ *  --------------------------------------------------------------  *
-+ *  |    sp   |   size  |  limit  |                              |  *
-+ *  --------------------------------------------------------------  *
-+ *  --------------------------------------------------------------  *
-+ *  |    9    |                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  |  024h   |                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  |fc_execpt|                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  --------------------------------------------------------------  *
-+ *  |   10    |                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  |  028h   |                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  |fc_strage|                                                  |  *
-+ *  --------------------------------------------------------------  *
-+ *  --------------------------------------------------------------  *
-+ *  |   11    |    12   |                                        |  *
-+ *  --------------------------------------------------------------  *
-+ *  |  02ch   |   030h  |                                        |  *
-+ *  --------------------------------------------------------------  *
-+ *  | fc_mxcsr|fc_x87_cw|                                        |  *
-+ *  --------------------------------------------------------------  *
-+ *                                                                  *
-+ * *****************************************************************/
-+
-+.file	"make_i386_ms_pe_gas.S"
-+.text
-+.p2align 4,,15
-+.globl	_make_fcontext
-+.def	_make_fcontext;	.scl	2;	.type	32;	.endef
-+_make_fcontext:
-+    movl    0x04(%esp), %eax        /* load 1. arg of make_fcontext, pointer to context stack (base) */
-+    leal    -0x34(%eax),%eax        /* reserve space for fcontext_t at top of context stack */
-+
-+    /* shift address in EAX to lower 16 byte boundary */
-+    /* == pointer to fcontext_t and address of context stack */
-+    andl    $-16,       %eax
-+
-+    movl    0x04(%esp), %ecx        /* load 1. arg of make_fcontext, pointer to context stack (base) */
-+    movl    %ecx,       0x18(%eax)  /* save address of context stack (base) in fcontext_t */
-+    movl    0x08(%esp), %edx        /* load 2. arg of make_fcontext, context stack size */
-+    movl    %edx,       0x1c(%eax)  /* save context stack size in fcontext_t */
-+    negl    %edx                    /* negate stack size for LEA instruction (== substraction) */
-+    leal    (%ecx,%edx),%ecx        /* compute bottom address of context stack (limit) */
-+    movl    %ecx,       0x20(%eax)  /* save address of context stack (limit) in fcontext_t */
-+    movl    0x0c(%esp), %ecx        /* load 3. arg of make_fcontext, pointer to context function */
-+    movl    %ecx,       0x14(%eax)  /* save address of context function in fcontext_t */
-+
-+    stmxcsr 0x02c(%eax)             /* save MMX control word */
-+    fnstcw  0x030(%eax)             /* save x87 control word */
-+
-+    leal    -0x1c(%eax),%edx        /* reserve space for last frame and seh on context stack, (ESP - 0x4) % 16 == 0 */
-+    movl    %edx,       0x10(%eax)  /* save address in EDX as stack pointer for context function */
-+
-+    movl    $finish,    %ecx        /* abs address of finish */
-+    movl    %ecx,       (%edx)      /* save address of finish as return address for context function */
-+                                    /* entered after context function returns */
-+
-+    /* traverse current seh chain to get the last exception handler installed by Windows */
-+    /* note that on Windows Server 2008 and 2008 R2, SEHOP is activated by default */
-+    /* the exception handler chain is tested for the presence of ntdll.dll!FinalExceptionHandler */
-+    /* at its end by RaiseException all seh andlers are disregarded if not present and the */
-+    /* program is aborted */
-+    movl    %fs:(0x18), %ecx        /* load NT_TIB into ECX */
-+
-+walk:
-+    movl    (%ecx),     %edx        /* load 'next' member of current SEH into EDX */
-+    incl    %edx                    /* test if 'next' of current SEH is last (== 0xffffffff) */
-+    jz      found
-+    decl    %edx
-+    xchgl    %ecx,      %edx        /* exchange content; ECX contains address of next SEH */
-+    jmp     walk                    /* inspect next SEH */
-+
-+found:
-+    movl    0x04(%ecx), %ecx        /* load 'handler' member of SEH == address of last SEH handler installed by Windows */
-+    movl    0x10(%eax), %edx        /* load address of stack pointer for context function */
-+    movl    %ecx,       0x18(%edx)  /* save address in ECX as SEH handler for context */
-+    movl    $0xffffffff,%ecx        /* set ECX to -1 */
-+    movl    %ecx,       0x14(%edx)  /* save ECX as next SEH item */
-+    leal    0x14(%edx), %ecx        /* load address of next SEH item */
-+    movl    %ecx,       0x24(%eax)  /* save next SEH */
-+
-+    ret
-+
-+finish:
-+    /* ESP points to same address as ESP on entry of context function + 0x4 */
-+    xorl    %eax,       %eax
-+    movl    %eax,       (%esp)      /* exit code is zero */
-+    call    __exit                  /* exit application */
-+    hlt
-+
-+.def	__exit;	.scl	2;	.type	32;	.endef  /* standard C library function */
---- boost_1_57_0/libs/context/src/asm/make_x86_64_ms_pe_gas.S	1969-12-31 18:00:00.000000000 -0600
-+++ boost_1_57_0/libs/context/src/asm/make_x86_64_ms_pe_gas.S	2015-05-04 17:43:10.843165900 -0500
-@@ -0,0 +1,132 @@
-+/*
-+            Copyright Oliver Kowalke 2009.
-+            Copyright Thomas Sailer 2013.
-+   Distributed under the Boost Software License, Version 1.0.
-+      (See accompanying file LICENSE_1_0.txt or copy at
-+            http://www.boost.org/LICENSE_1_0.txt)
-+*/
-+
-+/****************************************************************************************
-+ *                                                                                      *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    0    |    1    |    2    |    3    |    4     |    5    |    6    |    7    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x0   |   0x4   |   0x8   |   0xc   |   0x10   |   0x14  |   0x18  |   0x1c  |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |        R12        |         R13       |         R14        |        R15        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    8    |    9    |   10    |   11    |    12    |    13   |    14   |    15   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x20  |   0x24  |   0x28  |  0x2c   |   0x30   |   0x34  |   0x38  |   0x3c  |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |        RDI        |        RSI        |         RBX        |        RBP        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    16   |    17   |    18   |    19   |                                        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x40  |   0x44  |   0x48  |   0x4c  |                                        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |        RSP        |        RIP        |                                        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    20   |    21   |    22   |    23   |    24    |    25   |                   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x50  |   0x54  |   0x58  |   0x5c  |   0x60   |   0x64  |                   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |        sp         |       size        |        limit       |                   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    26   |   27    |                                                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x68  |   0x6c  |                                                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |      fbr_strg     |                                                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    28   |   29    |    30   |    31   |    32    |    33   |   34    |   35    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0x70  |   0x74  |   0x78  |   0x7c  |   0x80   |   0x84  |  0x88   |  0x8c   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  | fc_mxcsr|fc_x87_cw|      fc_xmm       |      SEE registers (XMM6-XMM15)        |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   36    |    37   |    38   |    39   |    40    |    41   |   42    |   43    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |  0x90   |   0x94  |   0x98  |   0x9c  |   0xa0   |   0xa4  |  0xa8   |  0xac   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |                          SEE registers (XMM6-XMM15)                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    44    |   45    |    46   |    47  |    48    |    49   |   50    |   51    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0xb0   |  0xb4   |  0xb8   |  0xbc  |   0xc0   |   0xc4  |  0xc8   |  0xcc   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |                          SEE registers (XMM6-XMM15)                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    52    |   53    |    54   |   55   |    56    |    57   |   58    |   59    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |   0xd0   |  0xd4   |   0xd8  |  0xdc  |   0xe0   |  0xe4   |  0xe8   |  0xec   |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |                          SEE registers (XMM6-XMM15)                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    60   |    61   |    62    |    63  |    64    |    65   |   66    |   67    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |  0xf0   |  0xf4   |   0xf8   |  0xfc  |   0x100  |  0x104  |  0x108  |  0x10c  |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |                          SEE registers (XMM6-XMM15)                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |    68   |    69   |    70    |    71  |    72    |    73   |   74    |   75    |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |  0x110  |  0x114  |   0x118  |  0x11c |   0x120  |  0x124  |  0x128  |  0x12c  |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *  |                          SEE registers (XMM6-XMM15)                            |  *
-+ *  ----------------------------------------------------------------------------------  *
-+ *                                                                                      *
-+ * *************************************************************************************/
-+
-+.file	"make_x86_64_ms_pe_gas.S"
-+.text
-+.p2align 4,,15
-+.globl	make_fcontext
-+.def	make_fcontext;	.scl	2;	.type	32;	.endef
-+.seh_proc	make_fcontext
-+make_fcontext:
-+.seh_endprologue
-+    leaq    -0x130(%rcx),%rax       /* reserve space for fcontext_t at top of context stack */
-+
-+    /* shift address in RAX to lower 16 byte boundary */
-+    /* == pointer to fcontext_t and address of context stack */
-+    andq    $-16,       %rax
-+
-+    movq    %r8,        0x48(%rax)  /* save address of context function in fcontext_t */
-+    movq    %rdx,       0x58(%rax)  /* save context stack size in fcontext_t */
-+    movq    %rcx,       0x50(%rax)  /* save address of context stack pointer (base) in fcontext_t */
-+
-+    negq    %rdx                    /* negate stack size for LEA instruction (== substraction) */
-+    leaq    (%rcx,%rdx),%rcx        /* compute bottom address of context stack (limit) */
-+    movq    %rcx,       0x60(%rax)  /* save bottom address of context stack (limit) in fcontext_t */
-+
-+    stmxcsr 0x70(%rax)              /* save MMX control and status word */
-+    fnstcw  0x74(%rax)              /* save x87 control word */
-+
-+    leaq    -0x28(%rax),%rdx        /* reserve 32byte shadow space + return address on stack, (RSP - 0x8) % 16 == 0 */
-+    movq    %rdx,       0x40(%rax)  /* save address in RDX as stack pointer for context function */
-+
-+    leaq    finish(%rip),%rcx       /* compute abs address of label finish */
-+    movq    %rcx,(%rdx)             /* save address of finish as return address for context function */
-+                                    /* entered after context function returns */
-+
-+    ret
-+
-+finish:
-+    /* RSP points to same address as RSP on entry of context function + 0x8 */
-+    xorq    %rcx,       %rcx        /* exit code is zero */
-+    call    _exit                   /* exit application */
-+    hlt
-+.seh_endproc
-+
-+.def	_exit;	.scl	2;	.type	32;	.endef  /* standard C library function */
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-filesystem-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-filesystem-cygwin.patch
deleted file mode 100644
index cbb5757746da..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-filesystem-cygwin.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- boost_1_57_0/libs/filesystem/src/operations.cpp	2014-10-29 10:34:00.000000000 -0500
-+++ boost_1_57_0/libs/filesystem/src/operations.cpp	2015-05-04 23:30:34.278446000 -0500
-@@ -1966,8 +1966,7 @@ namespace
-   {
-     errno = 0;
- 
--#   if !defined(__CYGWIN__)\
--    && defined(_POSIX_THREAD_SAFE_FUNCTIONS)\
-+#   if defined(_POSIX_THREAD_SAFE_FUNCTIONS)\
-     && defined(_SC_THREAD_SAFE_FUNCTIONS)\
-     && (_POSIX_THREAD_SAFE_FUNCTIONS+0 >= 0)\
-     && (!defined(__hpux) || defined(_REENTRANT)) \
---- boost_1_57_0/libs/filesystem/src/path.cpp	2014-10-29 10:34:00.000000000 -0500
-+++ boost_1_57_0/libs/filesystem/src/path.cpp	2015-05-04 17:45:45.582315200 -0500
-@@ -36,7 +36,7 @@
- # include "windows_file_codecvt.hpp"
- # include <windows.h>
- #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \
-- || defined(__FreeBSD__) || defined(__OPEN_BSD__)
-+ || defined(__FreeBSD__) || defined(__OPEN_BSD__) || defined(__CYGWIN__)
- # include <boost/filesystem/detail/utf8_codecvt_facet.hpp>
- #endif
- 
-@@ -831,7 +831,7 @@ namespace
-     std::locale global_loc = std::locale();
-     return std::locale(global_loc, new windows_file_codecvt);
- # elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \
--  || defined(__FreeBSD__) || defined(__OpenBSD__)
-+  || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__)
-     // "All BSD system functions expect their string parameters to be in UTF-8 encoding
-     // and nothing else." See
-     // http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPInternational/Articles/FileEncodings.html
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-locale-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-locale-cygwin.patch
deleted file mode 100644
index 16208385a9b9..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-locale-cygwin.patch
+++ /dev/null
@@ -1,81 +0,0 @@
---- boost_1_57_0/libs/locale/build/Jamfile.v2	2014-04-06 08:11:49.000000000 -0500
-+++ boost_1_57_0/libs/locale/build/Jamfile.v2	2015-05-04 18:11:52.956846500 -0500
-@@ -261,7 +261,7 @@ rule configure-full ( properties * : fla
- 
-     }
-         
--    if ! $(found-iconv) && ! $(found-icu) && ! <target-os>windows in $(properties) && ! <target-os>cygwin in $(properties) 
-+    if ! $(found-iconv) && ! $(found-icu) && ! <target-os>windows in $(properties) 
-     {
-         ECHO "- Boost.Locale needs either iconv or ICU library to be built." ;
-         result += <build>no ;
-@@ -298,7 +298,6 @@ rule configure-full ( properties * : fla
-     if ! <boost.locale.winapi> in $(properties:G)
-     {
-         if <target-os>windows in $(properties) 
--          || <target-os>cygwin in $(properties)
-         {
-             properties += <boost.locale.winapi>on ;
-         }      
-@@ -335,7 +334,7 @@ rule configure-full ( properties * : fla
-     }
-     
-     if ( ! <boost.locale.winapi>off in $(properties) || ! <boost.locale.std>off in $(properties) )
--       && ( <target-os>windows in $(properties) || <target-os>cygwin in $(properties) )
-+       && <target-os>windows in $(properties)
-     {
-         result += <source>win32/lcid.cpp ;
-     }
---- boost_1_57_0/libs/locale/src/encoding/codepage.cpp	2014-04-06 08:11:49.000000000 -0500
-+++ boost_1_57_0/libs/locale/src/encoding/codepage.cpp	2015-05-04 23:16:01.778652600 -0500
-@@ -8,7 +8,7 @@
- #define BOOST_LOCALE_SOURCE
- #include <boost/config.hpp>
- 
--#if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_WINDOWS)
- #define BOOST_LOCALE_WITH_WCONV
- #endif
- 
---- boost_1_57_0/libs/locale/src/encoding/conv.hpp	2014-04-06 08:11:49.000000000 -0500
-+++ boost_1_57_0/libs/locale/src/encoding/conv.hpp	2015-05-04 23:16:08.454000300 -0500
-@@ -59,7 +59,7 @@ namespace boost {
-                     return normalize_encoding(l).compare(normalize_encoding(r));
-                 }
-             
--                #if defined(BOOST_WINDOWS)  || defined(__CYGWIN__)
-+                #if defined(BOOST_WINDOWS)
-                 int encoding_to_windows_codepage(char const *ccharset);
-                 #endif
-             
---- boost_1_57_0/libs/locale/src/util/default_locale.cpp	2014-04-06 08:11:49.000000000 -0500
-+++ boost_1_57_0/libs/locale/src/util/default_locale.cpp	2015-05-04 23:16:16.311998100 -0500
-@@ -15,7 +15,7 @@
- #  pragma warning(disable : 4996)
- #endif
- 
--#if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_WINDOWS)
- #ifndef NOMINMAX
- #define NOMINMAX
- #endif
---- boost_1_57_0/libs/locale/test/test_codepage.cpp	2014-04-06 08:11:49.000000000 -0500
-+++ boost_1_57_0/libs/locale/test/test_codepage.cpp	2015-05-04 23:16:40.883618300 -0500
-@@ -23,7 +23,7 @@
- # include <locale.h>
- #endif
- 
--#if !defined(BOOST_LOCALE_WITH_ICU) && !defined(BOOST_LOCALE_WITH_ICONV) && (defined(BOOST_WINDOWS) || defined(__CYGWIN__))
-+#if !defined(BOOST_LOCALE_WITH_ICU) && !defined(BOOST_LOCALE_WITH_ICONV) && defined(BOOST_WINDOWS)
- #ifndef NOMINMAX
- # define NOMINMAX
- #endif
-@@ -395,7 +395,7 @@ int main()
-         def.push_back("posix");
-         #endif
- 
--        #if !defined(BOOST_LOCALE_WITH_ICU) && !defined(BOOST_LOCALE_WITH_ICONV) && (defined(BOOST_WINDOWS) || defined(__CYGWIN__))
-+        #if !defined(BOOST_LOCALE_WITH_ICU) && !defined(BOOST_LOCALE_WITH_ICONV) && defined(BOOST_WINDOWS)
-         test_iso_8859_8 = IsValidCodePage(28598)!=0;
-         #endif
- 
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-log-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-log-cygwin.patch
deleted file mode 100644
index a7748ec58d82..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-log-cygwin.patch
+++ /dev/null
@@ -1,46 +0,0 @@
---- boost_1_57_0/boost/log/detail/config.hpp	2014-10-29 19:19:00.000000000 -0500
-+++ boost_1_57_0/boost/log/detail/config.hpp	2015-05-04 17:56:38.663746100 -0500
-@@ -96,11 +96,6 @@
- #   define BOOST_LOG_BROKEN_CONSTANT_EXPRESSIONS
- #endif
- 
--#if defined(__CYGWIN__)
--    // Boost.ASIO is broken on Cygwin
--#   define BOOST_LOG_NO_ASIO
--#endif
--
- #if !defined(BOOST_LOG_USE_NATIVE_SYSLOG) && defined(BOOST_LOG_NO_ASIO)
- #   ifndef BOOST_LOG_WITHOUT_SYSLOG
- #       define BOOST_LOG_WITHOUT_SYSLOG
---- boost_1_57_0/libs/log/build/Jamfile.v2	2014-10-29 19:19:00.000000000 -0500
-+++ boost_1_57_0/libs/log/build/Jamfile.v2	2015-05-04 22:16:49.242537800 -0500
-@@ -170,10 +170,6 @@ project boost/log
-         <target-os>windows:<library>ws2_32
-         <target-os>windows:<library>mswsock
- 
--        <target-os>cygwin:<define>__USE_W32_SOCKETS
--        <target-os>cygwin:<library>ws2_32
--        <target-os>cygwin:<library>mswsock
--
-         <target-os>linux:<library>rt
-         <target-os>linux:<define>_XOPEN_SOURCE=600
-         <target-os>linux:<define>_GNU_SOURCE=1
---- boost_1_57_0/libs/log/src/windows_version.hpp	2014-10-29 19:19:00.000000000 -0500
-+++ boost_1_57_0/libs/log/src/windows_version.hpp	2015-05-04 23:17:08.281597400 -0500
-@@ -18,7 +18,7 @@
- 
- #include <boost/log/detail/config.hpp>
- 
--#if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
-+#if defined(BOOST_WINDOWS)
- 
- #if defined(BOOST_LOG_USE_WINNT6_API)
- 
-@@ -50,6 +50,6 @@
- #define WIN32_LEAN_AND_MEAN
- #endif
- 
--#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
-+#endif // defined(BOOST_WINDOWS)
- 
- #endif // BOOST_LOG_WINDOWS_VERSION_HPP_INCLUDED_
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-smart_ptr-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-smart_ptr-cygwin.patch
deleted file mode 100644
index 35e6905b0f33..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-smart_ptr-cygwin.patch
+++ /dev/null
@@ -1,77 +0,0 @@
---- boost_1_57_0/boost/smart_ptr/detail/atomic_count.hpp	2014-08-21 15:48:32.000000000 -0500
-+++ boost_1_57_0/boost/smart_ptr/detail/atomic_count.hpp	2015-05-04 17:47:15.556740500 -0500
-@@ -79,7 +79,7 @@
- #elif defined( BOOST_SP_HAS_SYNC )
- # include <boost/smart_ptr/detail/atomic_count_sync.hpp>
- 
--#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-+#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
- # include <boost/smart_ptr/detail/atomic_count_win32.hpp>
- 
- #elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
---- boost_1_57_0/boost/smart_ptr/detail/lightweight_mutex.hpp	2014-08-21 15:48:32.000000000 -0500
-+++ boost_1_57_0/boost/smart_ptr/detail/lightweight_mutex.hpp	2015-05-04 17:47:45.234509100 -0500
-@@ -32,7 +32,7 @@
- #  include <boost/smart_ptr/detail/lwm_nop.hpp>
- #elif defined(BOOST_HAS_PTHREADS)
- #  include <boost/smart_ptr/detail/lwm_pthreads.hpp>
--#elif defined(BOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-+#elif defined(BOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
- #  include <boost/smart_ptr/detail/lwm_win32_cs.hpp>
- #else
- // Use #define BOOST_DISABLE_THREADS to avoid the error
---- boost_1_57_0/boost/smart_ptr/detail/sp_counted_base.hpp	2014-08-21 15:48:32.000000000 -0500
-+++ boost_1_57_0/boost/smart_ptr/detail/sp_counted_base.hpp	2015-05-04 17:47:45.240009800 -0500
-@@ -65,7 +65,7 @@
- #elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) )
- # include <boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp>
- 
--#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__)
-+#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
- # include <boost/smart_ptr/detail/sp_counted_base_w32.hpp>
- 
- #elif defined( _AIX )
---- boost_1_57_0/boost/smart_ptr/detail/sp_interlocked.hpp	2014-08-21 15:48:32.000000000 -0500
-+++ boost_1_57_0/boost/smart_ptr/detail/sp_interlocked.hpp	2015-05-04 17:48:39.316376700 -0500
-@@ -119,7 +119,7 @@ extern "C" long __cdecl _InterlockedExch
- # define BOOST_SP_INTERLOCKED_EXCHANGE _InterlockedExchange
- # define BOOST_SP_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
- 
--#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
-+#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
- 
- namespace boost
- {
---- boost_1_57_0/boost/smart_ptr/detail/spinlock.hpp	2014-08-21 15:48:32.000000000 -0500
-+++ boost_1_57_0/boost/smart_ptr/detail/spinlock.hpp	2015-05-04 17:47:45.247510800 -0500
-@@ -49,7 +49,7 @@
- #elif defined( BOOST_SP_HAS_SYNC )
- #  include <boost/smart_ptr/detail/spinlock_sync.hpp>
- 
--#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-+#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
- #  include <boost/smart_ptr/detail/spinlock_w32.hpp>
- 
- #elif defined(BOOST_HAS_PTHREADS)
---- boost_1_57_0/boost/smart_ptr/detail/yield_k.hpp	2014-08-21 15:48:32.000000000 -0500
-+++ boost_1_57_0/boost/smart_ptr/detail/yield_k.hpp	2015-05-04 17:47:45.253511600 -0500
-@@ -47,7 +47,7 @@ extern "C" void _mm_pause();
- 
- //
- 
--#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
-+#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
- 
- #if defined( BOOST_USE_WINDOWS_H )
- # include <windows.h>
---- boost_1_57_0/libs/smart_ptr/test/sp_interlocked_test.cpp	2014-08-21 15:48:32.000000000 -0500
-+++ boost_1_57_0/libs/smart_ptr/test/sp_interlocked_test.cpp	2015-05-04 23:18:21.717422600 -0500
-@@ -8,7 +8,7 @@
- //  http://www.boost.org/LICENSE_1_0.txt
- //
- 
--#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
-+#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
- 
- #include <boost/smart_ptr/detail/sp_interlocked.hpp>
- #include <boost/detail/lightweight_test.hpp>
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-system-cygwin.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-system-cygwin.patch
deleted file mode 100644
index e241f37f2036..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-1.57.0-system-cygwin.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- boost_1_57_0/boost/system/api_config.hpp	2014-08-03 15:44:11.000000000 -0500
-+++ boost_1_57_0/boost/system/api_config.hpp	2015-05-04 17:51:31.189701800 -0500
-@@ -33,7 +33,7 @@
- //    Standalone MinGW and all other known Windows compilers do predefine _WIN32
- //    Compilers that predefine _WIN32 or __MINGW32__ do so for Windows 64-bit builds too.
- 
--# if defined(_WIN32) || defined(__CYGWIN__) // Windows default, including MinGW and Cygwin
-+# if defined(_WIN32) // Windows default, including MinGW and Cygwin
- #   define BOOST_WINDOWS_API
- # else
- #   define BOOST_POSIX_API 
---- boost_1_57_0/boost/system/detail/error_code.ipp	2014-08-03 15:44:11.000000000 -0500
-+++ boost_1_57_0/boost/system/detail/error_code.ipp	2015-05-04 17:51:02.925112700 -0500
-@@ -97,7 +97,7 @@ namespace
-       char buf[64];
-       char * bp = buf;
-       std::size_t sz = sizeof(buf);
--  #  if defined(__CYGWIN__) || defined(__USE_GNU)
-+  #  if defined(__GNU_VISIBLE) || defined(__USE_GNU)
-       // Oddball version of strerror_r
-       const char * c_str = strerror_r( ev, bp, sz );
-       return  c_str
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.50.0-fix-non-utf8-files.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.50.0-fix-non-utf8-files.patch
deleted file mode 100644
index b60a3ac49d3c..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.50.0-fix-non-utf8-files.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/libs/units/example/autoprefixes.cpp b/libs/units/example/autoprefixes.cpp
-index 8b2bc43..d04f2fe 100644
---- a/libs/units/example/autoprefixes.cpp
-+++ b/libs/units/example/autoprefixes.cpp
-@@ -67,7 +67,7 @@ struct thing_base_unit : boost::units::base_unit<thing_base_unit, boost::units::
- struct euro_base_unit : boost::units::base_unit<euro_base_unit, boost::units::dimensionless_type, 5>
- {
-   static const char* name() { return("EUR"); }
--  static const char* symbol() { return("€"); }
-+  static const char* symbol() { return("€"); }
- };
- 
- int main()
-@@ -140,7 +140,7 @@ int main()
- 
-   quantity<euro_base_unit::unit_type> ce = 2048. * euro_base_unit::unit_type();
-   cout << name_format << engineering_prefix << ce << endl;  // 2.048 kiloEUR
--  cout << symbol_format << engineering_prefix << ce << endl;  // 2.048 k€
-+  cout << symbol_format << engineering_prefix << ce << endl;  // 2.048 k€
- 
- 
-     return 0;
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.50.0-pool.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.50.0-pool.patch
deleted file mode 100644
index 15ce4007675d..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.50.0-pool.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-Index: boost/pool/pool.hpp
-===================================================================
---- a/boost/pool/pool.hpp	(revision 78317)
-+++ b/boost/pool/pool.hpp	(revision 78326)
-@@ -27,4 +27,6 @@
- #include <boost/pool/poolfwd.hpp>
- 
-+// std::numeric_limits
-+#include <boost/limits.hpp>
- // boost::math::static_lcm
- #include <boost/math/common_factor_ct.hpp>
-@@ -358,4 +360,13 @@
-     }
- 
-+    size_type max_chunks() const
-+    { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool.
-+      size_type partition_size = alloc_size();
-+      size_type POD_size = math::static_lcm<sizeof(size_type), sizeof(void *)>::value + sizeof(size_type);
-+      size_type max_chunks = (std::numeric_limits<size_type>::max() - POD_size) / alloc_size();
-+    
-+      return max_chunks;
-+    }
-+
-     static void * & nextof(void * const ptr)
-     { //! \returns Pointer dereferenced.
-@@ -377,5 +388,7 @@
-       //!   the first time that object needs to allocate system memory.
-       //!   The default is 32. This parameter may not be 0.
--      //! \param nmax_size is the maximum number of chunks to allocate in one block.
-+      //! \param nmax_size is the maximum number of chunks to allocate in one block.			
-+      set_next_size(nnext_size);
-+      set_max_size(nmax_size);
-     }
- 
-@@ -400,7 +413,7 @@
-     }
-     void set_next_size(const size_type nnext_size)
--    { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
--      //! \returns nnext_size.
--      next_size = start_size = nnext_size;
-+    { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.     
-+      BOOST_USING_STD_MIN();
-+      next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
-     }
-     size_type get_max_size() const
-@@ -410,5 +423,6 @@
-     void set_max_size(const size_type nmax_size)
-     { //! Set max_size.
--      max_size = nmax_size;
-+      BOOST_USING_STD_MIN();
-+      max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks());
-     }
-     size_type get_requested_size() const
-@@ -713,7 +727,7 @@
-   BOOST_USING_STD_MIN();
-   if(!max_size)
--    next_size <<= 1;
-+    set_next_size(next_size << 1);
-   else if( next_size*partition_size/requested_size < max_size)
--    next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
-+    set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
- 
-   //  initialize it,
-@@ -753,7 +767,7 @@
-   BOOST_USING_STD_MIN();
-   if(!max_size)
--    next_size <<= 1;
-+    set_next_size(next_size << 1);
-   else if( next_size*partition_size/requested_size < max_size)
--    next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
-+    set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
- 
-   //  initialize it,
-@@ -797,4 +811,6 @@
-   //! \returns Address of chunk n if allocated ok.
-   //! \returns 0 if not enough memory for n chunks.
-+  if (n > max_chunks())
-+    return 0;
- 
-   const size_type partition_size = alloc_size();
-@@ -845,7 +861,7 @@
-   BOOST_USING_STD_MIN();
-   if(!max_size)
--    next_size <<= 1;
-+    set_next_size(next_size << 1);
-   else if( next_size*partition_size/requested_size < max_size)
--    next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
-+    set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
- 
-   //  insert it into the list,
-Index: libs/pool/test/test_bug_6701.cpp
-===================================================================
---- a/libs/pool/test/test_bug_6701.cpp	(revision 78326)
-+++ b/libs/pool/test/test_bug_6701.cpp	(revision 78326)
-@@ -0,0 +1,27 @@
-+/* Copyright (C) 2012 Étienne Dupuis
-+* 
-+* Use, modification and distribution is subject to the 
-+* Boost Software License, Version 1.0. (See accompanying
-+* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-+*/
-+
-+// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701)
-+
-+#include <boost/pool/object_pool.hpp>
-+#include <boost/limits.hpp>
-+
-+int main()
-+{
-+  boost::pool<> p(1024, std::numeric_limits<size_t>::max() / 768);
-+
-+  void *x = p.malloc();
-+  BOOST_ASSERT(!x);
-+  
-+  BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_next_size());
-+  BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_max_size());
-+
-+  void *y = p.ordered_malloc(std::numeric_limits<size_t>::max() / 768);
-+  BOOST_ASSERT(!y);
-+
-+  return 0;
-+}
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-locale-unused_typedef.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-locale-unused_typedef.patch
deleted file mode 100644
index b7c91284d9bb..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-locale-unused_typedef.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -urp boost_1_54_0-orig/boost/locale/boundary/segment.hpp boost_1_54_0/boost/locale/boundary/segment.hpp
---- boost_1_54_0-orig/boost/locale/boundary/segment.hpp	2013-07-23 00:47:27.020787174 +0200
-+++ boost_1_54_0/boost/locale/boundary/segment.hpp	2013-07-23 00:50:40.382959016 +0200
-@@ -27,7 +27,6 @@ namespace boundary {
-         int compare_text(LeftIterator l_begin,LeftIterator l_end,RightIterator r_begin,RightIterator r_end)
-         {
-             typedef LeftIterator left_iterator;
--            typedef RightIterator right_iterator;
-             typedef typename std::iterator_traits<left_iterator>::value_type char_type;
-             typedef std::char_traits<char_type> traits;
-             while(l_begin!=l_end && r_begin!=r_end) {
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-pool-max_chunks_shadow.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-pool-max_chunks_shadow.patch
deleted file mode 100644
index 6c1d0a021ed1..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-pool-max_chunks_shadow.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up ./boost/pool/pool.hpp~ ./boost/pool/pool.hpp
---- a/boost/pool/pool.hpp~	2013-08-21 17:49:56.023296922 +0200
-+++ b/boost/pool/pool.hpp	2013-08-22 11:38:01.133912638 +0200
-@@ -361,9 +361,7 @@ class pool: protected simple_segregated_
-     { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool.
-       size_type partition_size = alloc_size();
-       size_type POD_size = math::static_lcm<sizeof(size_type), sizeof(void *)>::value + sizeof(size_type);
--      size_type max_chunks = (std::numeric_limits<size_type>::max() - POD_size) / alloc_size();
--    
--      return max_chunks;
-+      return (std::numeric_limits<size_type>::max() - POD_size) / alloc_size();
-     }
- 
-     static void * & nextof(void * const ptr)
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-python-unused_typedef.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-python-unused_typedef.patch
deleted file mode 100644
index 8adf8ed2080d..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.54.0-python-unused_typedef.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up boost_1_53_0/boost/python/to_python_value.hpp\~ boost_1_53_0/boost/python/to_python_value.hpp
---- boost_1_53_0/boost/python/to_python_value.hpp~	2007-12-16 11:12:07.000000000 +0100
-+++ boost_1_53_0/boost/python/to_python_value.hpp	2013-07-23 16:19:02.518904596 +0200
-@@ -147,8 +147,8 @@ namespace detail
-   template <class T>
-   inline PyObject* registry_to_python_value<T>::operator()(argument_type x) const
-   {
--      typedef converter::registered<argument_type> r;
- # if BOOST_WORKAROUND(__GNUC__, < 3)
-+      typedef converter::registered<argument_type> r;
-       // suppresses an ICE, somehow
-       (void)r::converters;
- # endif 
-
-Diff finished.  Tue Jul 23 16:19:05 2013
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-move-is_class.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-move-is_class.patch
deleted file mode 100644
index cf9756e40ea4..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-move-is_class.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -up ./move/core.hpp~ ./move/core.hpp
---- a/boost/move/core.hpp~	2015-02-09 17:33:35.000000000 +0100
-+++ b/boost/move/core.hpp	2015-02-13 13:54:52.012130813 +0100
-@@ -43,6 +43,7 @@
- #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED)
- 
-    #include <boost/move/detail/meta_utils.hpp>
-+   #include <boost/type_traits/is_class.hpp>
- 
-    //Move emulation rv breaks standard aliasing rules so add workarounds for some compilers
-    #if defined(__GNUC__) && (__GNUC__ >= 4) && \
-@@ -65,7 +66,7 @@
-    template <class T>
-    class rv
-       : public ::boost::move_detail::if_c
--         < ::boost::move_detail::is_class_or_union<T>::value
-+         < ::boost::is_class<T>::value
-          , T
-          , ::boost::move_detail::nat
-          >::type
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-mpl-print.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-mpl-print.patch
deleted file mode 100644
index 561cef19eb23..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-mpl-print.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -up boost_1_57_0/boost/mpl/print.hpp\~ boost_1_57_0/boost/mpl/print.hpp
---- boost_1_57_0/boost/mpl/print.hpp~	2014-07-09 23:12:31.000000000 +0200
-+++ boost_1_57_0/boost/mpl/print.hpp	2015-01-20 12:44:59.621400948 +0100
-@@ -52,16 +52,15 @@ struct print
-     enum { n = sizeof(T) + -1 };
- #elif defined(__MWERKS__)
-     void f(int);
--#else 
--    enum {
--        n =
--# if defined(__EDG_VERSION__)
--           aux::dependent_unsigned<T>::value > -1
--# else 
--           sizeof(T) > -1
--# endif 
--        };
--#endif 
-+#elif defined(__EDG_VERSION__)
-+    enum { n = aux::dependent_unsigned<T>::value > -1 };
-+#elif defined(BOOST_GCC)
-+    enum { n1 };
-+    enum { n2 };
-+    enum { n = n1 != n2 };
-+#else
-+    enum { n = sizeof(T) > -1 };
-+#endif
- };
- 
- #if defined(BOOST_MSVC)
-
-Diff finished.  Tue Jan 20 12:45:03 2015
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-pool-test_linking.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-pool-test_linking.patch
deleted file mode 100644
index 57e6206bba15..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-pool-test_linking.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up boost_1_57_0/libs/pool/test/Jamfile.v2\~ boost_1_57_0/libs/pool/test/Jamfile.v2
---- boost_1_57_0/libs/pool/test/Jamfile.v2~	2014-07-10 06:36:10.000000000 +0200
-+++ boost_1_57_0/libs/pool/test/Jamfile.v2	2015-01-20 13:59:10.818700586 +0100
-@@ -28,17 +28,17 @@ explicit valgrind_config_check ;
- local use-valgrind = [ check-target-builds valgrind_config_check "valgrind" : <testing.launcher>"valgrind --error-exitcode=1" : <build>no ] ;
- 
- test-suite pool :
--    [ run test_simple_seg_storage.cpp ]
--    [ run test_pool_alloc.cpp ]
--    [ run pool_msvc_compiler_bug_test.cpp ]
--    [ run test_msvc_mem_leak_detect.cpp ]
--    [ run test_bug_3349.cpp ]
--    [ run test_bug_4960.cpp ]
--    [ run test_bug_1252.cpp ]
--    [ run test_bug_2696.cpp ]
--    [ run test_bug_5526.cpp ]
-+    [ run test_simple_seg_storage.cpp : : : <library>/boost/system//boost_system ]
-+    [ run test_pool_alloc.cpp : : : <library>/boost/system//boost_system ]
-+    [ run pool_msvc_compiler_bug_test.cpp : : : <library>/boost/system//boost_system ]
-+    [ run test_msvc_mem_leak_detect.cpp : : : <library>/boost/system//boost_system ]
-+    [ run test_bug_3349.cpp : : : <library>/boost/system//boost_system ]
-+    [ run test_bug_4960.cpp : : : <library>/boost/system//boost_system ]
-+    [ run test_bug_1252.cpp : : : <library>/boost/system//boost_system ]
-+    [ run test_bug_2696.cpp : : : <library>/boost/system//boost_system ]
-+    [ run test_bug_5526.cpp : : : <library>/boost/system//boost_system ]
-     [ run test_threading.cpp : : : <threading>multi <library>/boost/thread//boost_thread <toolset>gcc:<cxxflags>-Wno-attributes <toolset>gcc:<cxxflags>-Wno-missing-field-initializers ]
--    [ run  ../example/time_pool_alloc.cpp ]
-+    [ run  ../example/time_pool_alloc.cpp : : : <library>/boost/system//boost_system ]
-     [ compile test_poisoned_macros.cpp ]
- 
- #
-
-Diff finished.  Tue Jan 20 13:59:16 2015
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-signals2-weak_ptr.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-signals2-weak_ptr.patch
deleted file mode 100644
index eb9ea14011ff..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-signals2-weak_ptr.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/boost/signals2/trackable.hpp
-+++ b/boost/signals2/trackable.hpp
-@@ -18,6 +18,7 @@
- 
- #include <boost/assert.hpp>
- #include <boost/shared_ptr.hpp>
-+#include <boost/weak_ptr.hpp>
- 
- namespace boost {
-   namespace signals2 {
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-spirit-unused_typedef.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-spirit-unused_typedef.patch
deleted file mode 100644
index 282962987c59..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-spirit-unused_typedef.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -up boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp\~ boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
---- boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp~	2014-10-13 12:21:40.000000000 +0200
-+++ boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp	2015-01-20 13:25:50.069710766 +0100
-@@ -282,12 +282,12 @@ struct grammar_definition
- #if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)
-         typedef impl::grammar_helper_base<GrammarT> helper_base_t;
-         typedef grammar_helper_list<GrammarT> helper_list_t;
--        typedef typename helper_list_t::vector_t::reverse_iterator iterator_t;
- 
-         helper_list_t&  helpers =
-         grammartract_helper_list::do_(self);
- 
- # if defined(BOOST_INTEL_CXX_VERSION)
-+        typedef typename helper_list_t::vector_t::reverse_iterator iterator_t;
-         for (iterator_t i = helpers.rbegin(); i != helpers.rend(); ++i)
-             (*i)->undefine(self);
- # else
-
-Diff finished.  Tue Jan 20 13:25:53 2015
diff --git a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-uuid-comparison.patch b/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-uuid-comparison.patch
deleted file mode 100644
index 30ebb981b70b..000000000000
--- a/nixpkgs/pkgs/development/libraries/boost/cygwin-fedora-boost-1.57.0-uuid-comparison.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/boost/uuid/detail/uuid_x86.hpp
-+++ b/boost/uuid/detail/uuid_x86.hpp
-@@ -100,7 +100,7 @@ inline bool operator< (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT
-     cmp = (cmp - 1u) ^ cmp;
-     rcmp = (rcmp - 1u) ^ rcmp;
- 
--    return static_cast< uint16_t >(cmp) < static_cast< uint16_t >(rcmp);
-+    return cmp < rcmp;
- }
- 
- } // namespace uuids
diff --git a/nixpkgs/pkgs/development/libraries/c-blosc/default.nix b/nixpkgs/pkgs/development/libraries/c-blosc/default.nix
index 4c28ca9f2c71..3603667fbf21 100644
--- a/nixpkgs/pkgs/development/libraries/c-blosc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/c-blosc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "c-blosc-${version}";
-  version = "1.16.2";
+  version = "1.16.3";
 
   src = fetchFromGitHub {
     owner = "Blosc";
     repo = "c-blosc";
     rev = "v${version}";
-    sha256 = "19wb699rb5bn6h9qhw1m18m2w77lws7r50vxpgrvggnl27mvm3xc";
+    sha256 = "1c58wkf34rp5wh9qp09zdk7zcfn037sk56p4xq1g0vapbnglv603";
   };
 
   buildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/g2o/default.nix b/nixpkgs/pkgs/development/libraries/g2o/default.nix
new file mode 100644
index 000000000000..1486b5bfc55a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/g2o/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, cmake, eigen, suitesparse }:
+
+stdenv.mkDerivation rec {
+  pname = "g2o";
+  version = "unstable-2019-04-07";
+
+  src = fetchFromGitHub {
+    owner = "RainerKuemmerle";
+    repo = pname;
+    rev = "9b41a4ea5ade8e1250b9c1b279f3a9c098811b5a";
+    sha256 = "1rgrz6zxiinrik3lgwgvsmlww1m2fnpjmvcx1mf62xi1s2ma5w2i";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ eigen suitesparse ];
+
+  meta = {
+    description = "A General Framework for Graph Optimization";
+    homepage = "https://github.com/RainerKuemmerle/g2o";
+    license = with lib.licenses; [ bsd3 lgpl3 gpl3 ];
+    maintainers = with lib.maintainers; [ lopsided98 ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/gdcm/default.nix b/nixpkgs/pkgs/development/libraries/gdcm/default.nix
index a1d623c7b98d..fca567d683dd 100644
--- a/nixpkgs/pkgs/development/libraries/gdcm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gdcm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, cmake, vtk }:
 
 stdenv.mkDerivation rec {
-  version = "2.8.9";
+  version = "3.0.0";
   name = "gdcm-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/gdcm/${name}.tar.bz2";
-    sha256 = "1za252d1chv40d78bkjngrg1p2yx0vya8y9q3vqmz66ip2zilvx7";
+    sha256 = "1rhblnl0q4bl3hmanz4ckv5kzdrzdiqp9xlcqh8df3rfrgk4d81x";
   };
 
   dontUseCmakeBuildDir = true;
diff --git a/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch b/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch
index feb46021f8c7..9eb53acebb0a 100644
--- a/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch
+++ b/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch
@@ -1,5 +1,5 @@
 diff --git a/data/meson.build b/data/meson.build
-index f826864..8b8a25e 100644
+index c189753..12c10cb 100644
 --- a/data/meson.build
 +++ b/data/meson.build
 @@ -7,7 +7,7 @@ if get_option('enable-backend')
@@ -11,7 +11,16 @@ index f826864..8b8a25e 100644
      configure_file(output: 'geoclue.conf',
                     input: 'geoclue.conf.in',
                     configuration: conf,
-@@ -26,7 +26,7 @@ if get_option('enable-backend')
+@@ -16,7 +16,7 @@ if get_option('enable-backend')
+     conf = configuration_data()
+     conf.set('libexecdir', libexecdir)
+     conf.set('dbus_srv_user', get_option('dbus-srv-user'))
+-    conf.set('sysconfdir', sysconfdir)
++    conf.set('sysconfdir', sysconfdir_install)
+ 
+     service_dir = join_paths(datadir, 'dbus-1', 'system-services')
+     configure_file(output: 'org.freedesktop.GeoClue2.service',
+@@ -33,7 +33,7 @@ if get_option('enable-backend')
      # DBus Service policy file
      dbus_service_dir = get_option('dbus-sys-dir')
      if dbus_service_dir == ''
@@ -21,10 +30,10 @@ index f826864..8b8a25e 100644
      configure_file(output: 'org.freedesktop.GeoClue2.conf',
                     input: 'org.freedesktop.GeoClue2.conf.in',
 diff --git a/demo/meson.build b/demo/meson.build
-index 99c094f..a29ca96 100644
+index 1427fbe..2623f16 100644
 --- a/demo/meson.build
 +++ b/demo/meson.build
-@@ -56,7 +56,7 @@ if get_option('demo-agent')
+@@ -54,7 +54,7 @@ if get_option('demo-agent')
                                     install_dir: desktop_dir)
  
      # Also install in the autostart directory.
@@ -34,7 +43,7 @@ index 99c094f..a29ca96 100644
                               desktop_file.full_path(),
                               autostart_dir)
 diff --git a/meson.build b/meson.build
-index d738ef6..c794a1d 100644
+index fde6fa3..39b7b0a 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -12,7 +12,11 @@ gclue_api_version='2.0'
@@ -50,8 +59,8 @@ index d738ef6..c794a1d 100644
  localedir = join_paths(datadir, 'locale')
  
  header_dir = 'libgeoclue-' + gclue_api_version
-@@ -29,7 +33,7 @@ conf.set_quoted('PACKAGE_URL', 'http://www.freedesktop.org/wiki/Software/GeoClue
- conf.set_quoted('PACKAGE_BUGREPORT', 'http://bugs.freedesktop.org/enter_bug.cgi?product=GeoClue')
+@@ -29,7 +33,7 @@ conf.set_quoted('PACKAGE_URL', 'https://gitlab.freedesktop.org/geoclue/geoclue/w
+ conf.set_quoted('PACKAGE_BUGREPORT', 'https://gitlab.freedesktop.org/geoclue/geoclue/issues/new')
  conf.set_quoted('TEST_SRCDIR', meson.source_root() + '/data/')
  conf.set_quoted('LOCALEDIR', localedir)
 -conf.set_quoted('SYSCONFDIR', sysconfdir)
diff --git a/nixpkgs/pkgs/development/libraries/geoclue/default.nix b/nixpkgs/pkgs/development/libraries/geoclue/default.nix
index 5b8951cb3e07..70319c9151f5 100644
--- a/nixpkgs/pkgs/development/libraries/geoclue/default.nix
+++ b/nixpkgs/pkgs/development/libraries/geoclue/default.nix
@@ -7,14 +7,14 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "geoclue";
-  version = "2.5.2";
+  version = "2.5.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "1zk6n28q030a9v03whad928b9zwq16d30ch369qv2c0994axdr5p";
+    sha256 = "1wbpi74dw3p7izxwd57irz2i1g55r7wzl5h2yf0ns0hgq2njdfsg";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gnutls/3.5.10.nix b/nixpkgs/pkgs/development/libraries/gnutls/3.5.10.nix
deleted file mode 100644
index a44e2b04ed71..000000000000
--- a/nixpkgs/pkgs/development/libraries/gnutls/3.5.10.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ callPackage, fetchurl, libunistring, ... } @ args:
-
-callPackage ./generic.nix (args // rec {
-  version = "3.5.10";
-
-  src = fetchurl {
-    url = "mirror://gnupg/gnutls/v3.5/gnutls-${version}.tar.xz";
-    sha256 = "17apwvdkkazh5w8z8mbanpj2yj8s2002qwy46wz4v3akpa33wi5g";
-  };
-})
diff --git a/nixpkgs/pkgs/development/libraries/gnutls/3.6.nix b/nixpkgs/pkgs/development/libraries/gnutls/3.6.nix
deleted file mode 100644
index b05624ee0b28..000000000000
--- a/nixpkgs/pkgs/development/libraries/gnutls/3.6.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ callPackage, fetchurl, ... } @ args:
-
-callPackage ./generic.nix (args // rec {
-  version = "3.6.7";
-
-  src = fetchurl {
-    url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz";
-    sha256 = "1ql8l6l5bxks2pgpwb1602zc0j6ivhpy27hdfc49h8xgbanhjd2v";
-  };
-
-  # Skip some tests:
-  #  - pkgconfig: building against the result won't work before installing (3.5.11)
-  #  - fastopen: no idea; it broke between 3.6.2 and 3.6.3 (3437fdde6 in particular)
-  #  - trust-store: default trust store path (/etc/ssl/...) is missing in sandbox (3.5.11)
-  #  - psk-file: no idea; it broke between 3.6.3 and 3.6.4
-  # Change p11-kit test to use pkg-config to find p11-kit
-  postPatch = ''
-    sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh
-    sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c
-    sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh
-  '';
-})
diff --git a/nixpkgs/pkgs/development/libraries/gnutls/generic.nix b/nixpkgs/pkgs/development/libraries/gnutls/default.nix
index 086c0560cc44..8a92390ca302 100644
--- a/nixpkgs/pkgs/development/libraries/gnutls/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/gnutls/default.nix
@@ -1,33 +1,52 @@
-{ config, lib, stdenv, zlib, lzo, libtasn1, nettle, pkgconfig, lzip
-, perl, gmp, autogen, libidn, p11-kit, libiconv
+{ config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkgconfig, lzip
+, perl, gmp, autoconf, autogen, automake, libidn, p11-kit, libiconv
+, unbound, dns-root-data, gettext
 , guileBindings ? config.gnutls.guile or false, guile
 , tpmSupport ? false, trousers, which, nettools, libunistring
-, unbound, dns-root-data, gettext
-
-# Version dependent args
-, version, src, patches ? [], postPatch ? "", nativeBuildInputs ? []
-, buildInputs ? []
-, ...}:
+, withSecurity ? false, Security  # darwin Security.framework
+}:
 
 assert guileBindings -> guile != null;
 let
+  version = "3.6.7";
+
   # XXX: Gnulib's `test-select' fails on FreeBSD:
   # http://hydra.nixos.org/build/2962084/nixlog/1/raw .
   doCheck = !stdenv.isFreeBSD && !stdenv.isDarwin && lib.versionAtLeast version "3.4"
       && stdenv.buildPlatform == stdenv.hostPlatform;
+
+  inherit (stdenv.hostPlatform) isDarwin;
 in
+
 stdenv.mkDerivation {
   name = "gnutls-${version}";
+  inherit version;
 
-  inherit src patches;
+  src = fetchurl {
+    url = "mirror://gnupg/gnutls/v3.6/gnutls-${version}.tar.xz";
+    sha256 = "1ql8l6l5bxks2pgpwb1602zc0j6ivhpy27hdfc49h8xgbanhjd2v";
+  };
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
   outputInfo = "devdoc";
 
+  patches = [ ./nix-ssl-cert-file.patch ]
+    # Disable native add_system_trust.
+    ++ lib.optional (isDarwin && !withSecurity) ./no-security-framework.patch;
+
+  # Skip some tests:
+  #  - pkgconfig: building against the result won't work before installing (3.5.11)
+  #  - fastopen: no idea; it broke between 3.6.2 and 3.6.3 (3437fdde6 in particular)
+  #  - trust-store: default trust store path (/etc/ssl/...) is missing in sandbox (3.5.11)
+  #  - psk-file: no idea; it broke between 3.6.3 and 3.6.4
+  # Change p11-kit test to use pkg-config to find p11-kit
   postPatch = lib.optionalString (lib.versionAtLeast version "3.4") ''
-    sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' \
-      -i tests/cert-tests/name-constraints
-  '' + postPatch;
+    sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' -i tests/cert-tests/name-constraints
+  '' + lib.optionalString (lib.versionAtLeast version "3.6") ''
+    sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh
+    sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c
+    sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh
+  '';
 
   preConfigure = "patchShebangs .";
   configureFlags =
@@ -42,11 +61,12 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp autogen libunistring unbound gettext libiconv ]
+    ++ lib.optional (isDarwin && withSecurity) Security
     ++ lib.optional (tpmSupport && stdenv.isLinux) trousers
-    ++ lib.optional guileBindings guile
-    ++ buildInputs;
+    ++ lib.optional guileBindings guile;
 
-  nativeBuildInputs = [ perl pkgconfig ] ++ nativeBuildInputs
+  nativeBuildInputs = [ perl pkgconfig ]
+    ++ lib.optionals (isDarwin && !withSecurity) [ autoconf automake ]
     ++ lib.optionals doCheck [ which nettools ];
 
   propagatedBuildInputs = [ nettle ];
@@ -54,7 +74,7 @@ stdenv.mkDerivation {
   inherit doCheck;
 
   # Fixup broken libtool and pkgconfig files
-  preFixup = lib.optionalString (!stdenv.isDarwin) ''
+  preFixup = lib.optionalString (!isDarwin) ''
     sed ${lib.optionalString tpmSupport "-e 's,-ltspi,-L${trousers}/lib -ltspi,'"} \
         -e 's,-lz,-L${zlib.out}/lib -lz,' \
         -e 's,-L${gmp.dev}/lib,-L${gmp.out}/lib,' \
diff --git a/nixpkgs/pkgs/development/libraries/gnutls/nix-ssl-cert-file.patch b/nixpkgs/pkgs/development/libraries/gnutls/nix-ssl-cert-file.patch
new file mode 100644
index 000000000000..90d1e85ee8c0
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gnutls/nix-ssl-cert-file.patch
@@ -0,0 +1,19 @@
+allow overriding system trust store location via $NIX_SSL_CERT_FILE
+
+diff --git a/lib/system/certs.c b/lib/system/certs.c
+index 611c645..6ef6edb 100644
+--- a/lib/system/certs.c
++++ b/lib/system/certs.c
+@@ -369,6 +369,11 @@ gnutls_x509_trust_list_add_system_trust(gnutls_x509_trust_list_t list,
+ 					unsigned int tl_flags,
+ 					unsigned int tl_vflags)
+ {
+-	return add_system_trust(list, tl_flags|GNUTLS_TL_NO_DUPLICATES, tl_vflags);
++	tl_flags = tl_flags|GNUTLS_TL_NO_DUPLICATES;
++	const char *file = secure_getenv("NIX_SSL_CERT_FILE");
++	return file
++		? gnutls_x509_trust_list_add_trust_file(
++			list, file, NULL/*CRL*/, GNUTLS_X509_FMT_PEM, tl_flags, tl_vflags)
++		: add_system_trust(list, tl_flags, tl_vflags);
+ }
+ 
diff --git a/nixpkgs/pkgs/development/libraries/gnutls/no-security-framework.patch b/nixpkgs/pkgs/development/libraries/gnutls/no-security-framework.patch
new file mode 100644
index 000000000000..7f5808e50535
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gnutls/no-security-framework.patch
@@ -0,0 +1,126 @@
+commit 9bcdde1ab9cdff6a4471f9a926dd488ab70c7247
+Author: Daiderd Jordan <daiderd@gmail.com>
+Date:   Mon Apr 22 16:38:27 2019 +0200
+
+    Revert "gnutls_x509_trust_list_add_system_trust: Add macOS keychain support"
+    
+    This reverts commit c0eb46d3463cd21b3f822ac377ff37f067f66b8d.
+
+diff --git a/configure.ac b/configure.ac
+index 8ad597bfd..8d14f26cd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -781,7 +781,7 @@ dnl auto detect https://lists.gnu.org/archive/html/help-gnutls/2012-05/msg00004.
+ AC_ARG_WITH([default-trust-store-file],
+   [AS_HELP_STRING([--with-default-trust-store-file=FILE],
+     [use the given file default trust store])], with_default_trust_store_file="$withval",
+-  [if test "$build" = "$host" && test x$with_default_trust_store_pkcs11 = x && test x$with_default_trust_store_dir = x && test x$have_macosx = x;then
++  [if test "$build" = "$host" && test x$with_default_trust_store_pkcs11 = x && test x$with_default_trust_store_dir = x;then
+   for i in \
+     /etc/ssl/ca-bundle.pem \
+     /etc/ssl/certs/ca-certificates.crt \
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index fe9cf63a2..745695f7e 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -203,10 +203,6 @@ if WINDOWS
+ thirdparty_libadd += -lcrypt32
+ endif
+ 
+-if MACOSX
+-libgnutls_la_LDFLAGS += -framework Security -framework CoreFoundation
+-endif
+-
+ libgnutls_la_LIBADD += $(thirdparty_libadd)
+ 
+ # C++ library
+diff --git a/lib/system/certs.c b/lib/system/certs.c
+index 611c645e0..912b0aa5e 100644
+--- a/lib/system/certs.c
++++ b/lib/system/certs.c
+@@ -44,12 +44,6 @@
+ # endif
+ #endif
+ 
+-#ifdef __APPLE__
+-# include <CoreFoundation/CoreFoundation.h>
+-# include <Security/Security.h>
+-# include <Availability.h>
+-#endif
+-
+ /* System specific function wrappers for certificate stores.
+  */
+ 
+@@ -276,72 +270,6 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
+ 
+ 	return r;
+ }
+-#elif defined(__APPLE__) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
+-static
+-int osstatus_error(status)
+-{
+-	CFStringRef err_str = SecCopyErrorMessageString(status, NULL);
+-	_gnutls_debug_log("Error loading system root certificates: %s\n",
+-			  CFStringGetCStringPtr(err_str, kCFStringEncodingUTF8));
+-	CFRelease(err_str);
+-	return GNUTLS_E_FILE_ERROR;
+-}
+-
+-static
+-int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
+-		     unsigned int tl_vflags)
+-{
+-	int r=0;
+-
+-	SecTrustSettingsDomain domain[] = { kSecTrustSettingsDomainUser,
+-					    kSecTrustSettingsDomainAdmin,
+-					    kSecTrustSettingsDomainSystem };
+-	for (size_t d=0; d<sizeof(domain)/sizeof(*domain); d++) {
+-		CFArrayRef certs = NULL;
+-		OSStatus status = SecTrustSettingsCopyCertificates(domain[d],
+-								   &certs);
+-		if (status == errSecNoTrustSettings)
+-			continue;
+-		if (status != errSecSuccess)
+-			return osstatus_error(status);
+-
+-		int cert_count = CFArrayGetCount(certs);
+-		for (int i=0; i<cert_count; i++) {
+-			SecCertificateRef cert =
+-				(void*)CFArrayGetValueAtIndex(certs, i);
+-			CFDataRef der;
+-			status = SecItemExport(cert, kSecFormatX509Cert, 0,
+-					       NULL, &der);
+-			if (status != errSecSuccess) {
+-				CFRelease(der);
+-				CFRelease(certs);
+-				return osstatus_error(status);
+-			}
+-
+-			if (gnutls_x509_trust_list_add_trust_mem(list,
+-								 &(gnutls_datum_t) {
+-									.data = (void*)CFDataGetBytePtr(der),
+-									.size = CFDataGetLength(der),
+-								 },
+-								 NULL,
+-			                                         GNUTLS_X509_FMT_DER,
+-								 tl_flags,
+-								 tl_vflags) > 0)
+-				r++;
+-			CFRelease(der);
+-		}
+-		CFRelease(certs);
+-	}
+-
+-#ifdef DEFAULT_BLACKLIST_FILE
+-	ret = gnutls_x509_trust_list_remove_trust_file(list, DEFAULT_BLACKLIST_FILE, GNUTLS_X509_FMT_PEM);
+-	if (ret < 0) {
+-		_gnutls_debug_log("Could not load blacklist file '%s'\n", DEFAULT_BLACKLIST_FILE);
+-	}
+-#endif
+-
+-	return r;
+-}
+ #else
+ 
+ #define add_system_trust(x,y,z) GNUTLS_E_UNIMPLEMENTED_FEATURE
diff --git a/nixpkgs/pkgs/development/libraries/herqq/gcc6.patch b/nixpkgs/pkgs/development/libraries/herqq/gcc6.patch
deleted file mode 100644
index b0f7d8d0c6fa..000000000000
--- a/nixpkgs/pkgs/development/libraries/herqq/gcc6.patch
+++ /dev/null
@@ -1,1320 +0,0 @@
-diff --git c/herqq/apps/simple_avtest-app/mediamanager_dialog.cpp i/herqq/apps/simple_avtest-app/mediamanager_dialog.cpp
-index c4d2ebe..707dbdb 100644
---- c/herqq/apps/simple_avtest-app/mediamanager_dialog.cpp
-+++ i/herqq/apps/simple_avtest-app/mediamanager_dialog.cpp
-@@ -306,7 +306,7 @@ void MediaManagerDialog::avTransportStateChanged(
- {
-     foreach(const HAvtLastChangeInfo& info, infos)
-     {
--        if (info.propertyName().compare("TransportState", Qt::CaseInsensitive) == 0)
-+        if (info.propertyName().compare(QString("TransportState"), Qt::CaseInsensitive) == 0)
-         {
-             HTransportState state(info.value().toString());
-             if (state.isValid())
-diff --git c/herqq/hupnp/src/dataelements/hproduct_tokens.cpp i/herqq/hupnp/src/dataelements/hproduct_tokens.cpp
-index 40f9fda..6739a58 100644
---- c/herqq/hupnp/src/dataelements/hproduct_tokens.cpp
-+++ i/herqq/hupnp/src/dataelements/hproduct_tokens.cpp
-@@ -99,7 +99,7 @@ bool HProductToken::isValidUpnpToken() const
- {
-     QString vrs = version();
- 
--    return (m_token.compare("upnp", Qt::CaseInsensitive) == 0) &&
-+    return (m_token.compare(QString("upnp"), Qt::CaseInsensitive) == 0) &&
-            (vrs.size() == 3    &&
-            (vrs[0]     == '1') &&
-             vrs[1]     == '.'  &&
-@@ -110,7 +110,7 @@ bool HProductToken::isValidDlnaDocToken() const
- {
-     QString vrs = version();
- 
--    bool b = m_token.compare("DLNADOC", Qt::CaseInsensitive) == 0 &&
-+    bool b = m_token.compare(QString("DLNADOC"), Qt::CaseInsensitive) == 0 &&
-              vrs.size() >= 3 &&
-              vrs[0] == '1' &&
-              vrs[1] == '.';
-diff --git c/herqq/hupnp/src/dataelements/hresourcetype.cpp i/herqq/hupnp/src/dataelements/hresourcetype.cpp
-index 8ed2492..94ab1e0 100644
---- c/herqq/hupnp/src/dataelements/hresourcetype.cpp
-+++ i/herqq/hupnp/src/dataelements/hresourcetype.cpp
-@@ -56,7 +56,7 @@ HResourceType::HResourceType(const QString& resourceTypeAsStr) :
-     {
-         return;
-     }
--    if (tmp[1].compare("schemas-upnp-org") != 0)
-+    if (tmp[1].compare(QString("schemas-upnp-org")) != 0)
-     {
-         flags = 0x01;
-         tmp[1] = tmp[1].replace('.', '-');
-@@ -67,11 +67,11 @@ HResourceType::HResourceType(const QString& resourceTypeAsStr) :
-     }
- 
-     tmp[2] = tmp[2].simplified();
--    if (tmp[2].compare("device") == 0)
-+    if (tmp[2].compare(QString("device")) == 0)
-     {
-         flags |= 0x04;
-     }
--    else if (tmp[2].compare("service") == 0)
-+    else if (tmp[2].compare(QString("service")) == 0)
-     {
-         flags |= 0x08;
-     }
-diff --git c/herqq/hupnp/src/dataelements/hserviceid.cpp i/herqq/hupnp/src/dataelements/hserviceid.cpp
-index 9b0fad6..11a8640 100644
---- c/herqq/hupnp/src/dataelements/hserviceid.cpp
-+++ i/herqq/hupnp/src/dataelements/hserviceid.cpp
-@@ -64,7 +64,7 @@ public:
-             return;
-         }
- 
--        if (tmp[0].compare("urn", Qt::CaseInsensitive) != 0)
-+        if (tmp[0].compare(QString("urn"), Qt::CaseInsensitive) != 0)
-         {
-             HLOG_WARN_NONSTD(
-                 QString("Invalid service identifier [%1]").arg(arg));
-@@ -72,7 +72,7 @@ public:
-             return;
-         }
- 
--        if (tmp[1].compare("upnp-org", Qt::CaseInsensitive) != 0)
-+        if (tmp[1].compare(QString("upnp-org"), Qt::CaseInsensitive) != 0)
-         {
-             tmp[1] = tmp[1].replace('.', '-');
-             if (tmp[1].isEmpty())
-@@ -85,7 +85,7 @@ public:
-         }
- 
-         bool warned = false;
--        if (tmp[2].compare("serviceId", Qt::CaseInsensitive) != 0)
-+        if (tmp[2].compare(QString("serviceId"), Qt::CaseInsensitive) != 0)
-         {
-             HLOG_WARN_NONSTD(QString("Invalid service identifier [%1]").arg(arg));
-             warned = true;
-diff --git c/herqq/hupnp/src/devicehosting/hddoc_parser_p.cpp i/herqq/hupnp/src/devicehosting/hddoc_parser_p.cpp
-index b3a58fa..d1853e1 100644
---- c/herqq/hupnp/src/devicehosting/hddoc_parser_p.cpp
-+++ i/herqq/hupnp/src/devicehosting/hddoc_parser_p.cpp
-@@ -195,7 +195,7 @@ bool HDocParser::parseActionArguments(
-         }
- 
-         HActionArgument createdArg;
--        if (dirStr.compare("out", Qt::CaseInsensitive) == 0)
-+        if (dirStr.compare(QString("out"), Qt::CaseInsensitive) == 0)
-         {
-             if (retValWasDefined)
-             {
-@@ -228,7 +228,7 @@ bool HDocParser::parseActionArguments(
- 
-             outArgs->push_back(createdArg);
-         }
--        else if (dirStr.compare("in", Qt::CaseInsensitive) == 0)
-+        else if (dirStr.compare(QString("in"), Qt::CaseInsensitive) == 0)
-         {
-             if (firstOutArgFound)
-             {
-@@ -677,11 +677,11 @@ bool HDocParser::parseStateVariable(
- 
-     QString strSendEvents = stateVariableElement.attribute("sendEvents", "no");
-     bool bSendEvents      = false;
--    if (strSendEvents.compare("yes", Qt::CaseInsensitive) == 0)
-+    if (strSendEvents.compare(QString("yes"), Qt::CaseInsensitive) == 0)
-     {
-         bSendEvents = true;
-     }
--    else if (strSendEvents.compare("no", Qt::CaseInsensitive) != 0)
-+    else if (strSendEvents.compare(QString("no"), Qt::CaseInsensitive) != 0)
-     {
-         m_lastError = InvalidServiceDescriptionError;
-         m_lastErrorDescription = QString(
-@@ -694,11 +694,11 @@ bool HDocParser::parseStateVariable(
- 
-     QString strMulticast  = stateVariableElement.attribute("multicast", "no");
-     bool bMulticast       = false;
--    if (strMulticast.compare("yes", Qt::CaseInsensitive) == 0)
-+    if (strMulticast.compare(QString("yes"), Qt::CaseInsensitive) == 0)
-     {
-         bMulticast = true;
-     }
--    else if (strMulticast.compare("no", Qt::CaseInsensitive) != 0)
-+    else if (strMulticast.compare(QString("no"), Qt::CaseInsensitive) != 0)
-     {
-         m_lastError = InvalidServiceDescriptionError;
-         m_lastErrorDescription = QString(
-diff --git c/herqq/hupnp/src/devicehosting/messages/hevent_messages_p.cpp i/herqq/hupnp/src/devicehosting/messages/hevent_messages_p.cpp
-index 2e375a0..2d6a8cc 100644
---- c/herqq/hupnp/src/devicehosting/messages/hevent_messages_p.cpp
-+++ i/herqq/hupnp/src/devicehosting/messages/hevent_messages_p.cpp
-@@ -197,7 +197,7 @@ HSubscribeRequest::RetVal HSubscribeRequest::setContents(
- 
-     // this appears to be an initial subscription
- 
--    if (nt.simplified().compare("upnp:event", Qt::CaseInsensitive) != 0)
-+    if (nt.simplified().compare(QString("upnp:event"), Qt::CaseInsensitive) != 0)
-     {
-         return PreConditionFailed;
-     }
-diff --git c/herqq/hupnp/src/devicehosting/messages/hnt_p.cpp i/herqq/hupnp/src/devicehosting/messages/hnt_p.cpp
-index aacdfcf..b618ba7 100644
---- c/herqq/hupnp/src/devicehosting/messages/hnt_p.cpp
-+++ i/herqq/hupnp/src/devicehosting/messages/hnt_p.cpp
-@@ -37,7 +37,7 @@ HNt::HNt(const QString& type) :
-     m_typeValue(qMakePair(Type_Undefined, QString(""))),

-     m_subTypeValue(qMakePair(SubType_Undefined, QString("")))

- {

--    if (type.compare("upnp:event", Qt::CaseInsensitive) == 0)

-+    if (type.compare(QString("upnp:event"), Qt::CaseInsensitive) == 0)

-     {

-         m_typeValue.first  = Type_UpnpEvent;

-         m_typeValue.second = "upnp:event";

-@@ -48,13 +48,13 @@ HNt::HNt(const QString& type, const QString& subtype) :
-     m_typeValue(qMakePair(Type_Undefined, QString(""))),

-     m_subTypeValue(qMakePair(SubType_Undefined, QString("")))

- {

--    if (type.compare("upnp:event", Qt::CaseInsensitive) == 0)

-+    if (type.compare(QString("upnp:event"), Qt::CaseInsensitive) == 0)

-     {

-         m_typeValue.first  = Type_UpnpEvent;

-         m_typeValue.second = "upnp:event";

-     }

- 

--    if (subtype.compare("upnp:propchange", Qt::CaseInsensitive) == 0)

-+    if (subtype.compare(QString("upnp:propchange"), Qt::CaseInsensitive) == 0)

-     {

-         m_subTypeValue.first  = SubType_UpnpPropChange;

-         m_subTypeValue.second = "upnp:propchange";

-diff --git c/herqq/hupnp/src/devicehosting/messages/htimeout_p.cpp i/herqq/hupnp/src/devicehosting/messages/htimeout_p.cpp
-index 0faf7f4..addbaaf 100644
---- c/herqq/hupnp/src/devicehosting/messages/htimeout_p.cpp
-+++ i/herqq/hupnp/src/devicehosting/messages/htimeout_p.cpp
-@@ -43,7 +43,7 @@ HTimeout::HTimeout(const QString& timeout) :
-     m_value(-1)

- {

-     QString tmp(timeout.simplified());

--    if (tmp.compare("infinite", Qt::CaseInsensitive) != 0)

-+    if (tmp.compare(QString("infinite"), Qt::CaseInsensitive) != 0)

-     {

-         if (tmp.startsWith("Second-", Qt::CaseInsensitive))

-         {

-diff --git c/herqq/hupnp/src/general/hupnp_datatypes.cpp i/herqq/hupnp/src/general/hupnp_datatypes.cpp
-index 9f2084f..ae8e9ae 100644
---- c/herqq/hupnp/src/general/hupnp_datatypes.cpp
-+++ i/herqq/hupnp/src/general/hupnp_datatypes.cpp
-@@ -424,15 +424,15 @@ QVariant HUpnpDataTypes::convertToRightVariantType(
- 

-     case HUpnpDataTypes::boolean:

-     {

--        if (value.compare("true", Qt::CaseInsensitive) == 0 ||

--            value.compare("yes", Qt::CaseInsensitive) == 0 ||

--            value.compare("1") == 0)

-+        if (value.compare(QString("true"), Qt::CaseInsensitive) == 0 ||

-+            value.compare(QString("yes"), Qt::CaseInsensitive) == 0 ||

-+            value.compare(QString("1")) == 0)

-         {

-             retVal = true;

-         }

--        else if (value.compare("false", Qt::CaseInsensitive) == 0 ||

--            value.compare("no", Qt::CaseInsensitive) == 0 ||

--            value.compare("0") == 0)

-+        else if (value.compare(QString("false"), Qt::CaseInsensitive) == 0 ||

-+            value.compare(QString("no"), Qt::CaseInsensitive) == 0 ||

-+            value.compare(QString("0")) == 0)

-         {

-             retVal = false;

-         }

-diff --git c/herqq/hupnp/src/http/hhttp_server_p.cpp i/herqq/hupnp/src/http/hhttp_server_p.cpp
-index eb1a56c..42e93ca 100644
---- c/herqq/hupnp/src/http/hhttp_server_p.cpp
-+++ i/herqq/hupnp/src/http/hhttp_server_p.cpp
-@@ -121,27 +121,27 @@ void HHttpServer::processRequest(HHttpAsyncOperation* op)
-     mi->setKeepAlive(HHttpUtils::keepAlive(*hdr));
- 
-     QString method = hdr->method();
--    if (method.compare("GET", Qt::CaseInsensitive) == 0)
-+    if (method.compare(QString("GET"), Qt::CaseInsensitive) == 0)
-     {
-         processGet(op->takeMessagingInfo(), *hdr);
-     }
--    else if (method.compare("HEAD"), Qt::CaseInsensitive)
-+    else if (method.compare(QString("HEAD")), Qt::CaseInsensitive)
-     {
-         processHead(op->takeMessagingInfo(), *hdr);
-     }
--    else if (method.compare("POST", Qt::CaseInsensitive) == 0)
-+    else if (method.compare(QString("POST"), Qt::CaseInsensitive) == 0)
-     {
-         processPost(op->takeMessagingInfo(), *hdr, op->dataRead());
-     }
--    else if (method.compare("NOTIFY", Qt::CaseInsensitive) == 0)
-+    else if (method.compare(QString("NOTIFY"), Qt::CaseInsensitive) == 0)
-     {
-         processNotifyMessage(op->takeMessagingInfo(), *hdr, op->dataRead());
-     }
--    else if (method.compare("SUBSCRIBE", Qt::CaseInsensitive) == 0)
-+    else if (method.compare(QString("SUBSCRIBE"), Qt::CaseInsensitive) == 0)
-     {
-         processSubscription(op->takeMessagingInfo(), *hdr);
-     }
--    else if (method.compare("UNSUBSCRIBE", Qt::CaseInsensitive) == 0)
-+    else if (method.compare(QString("UNSUBSCRIBE"), Qt::CaseInsensitive) == 0)
-     {
-         processUnsubscription(op->takeMessagingInfo(), *hdr);
-     }
-diff --git c/herqq/hupnp/src/http/hhttp_utils_p.h i/herqq/hupnp/src/http/hhttp_utils_p.h
-index 7285190..b3ee62e 100644
---- c/herqq/hupnp/src/http/hhttp_utils_p.h
-+++ i/herqq/hupnp/src/http/hhttp_utils_p.h
-@@ -64,10 +64,10 @@ public:
-         QString connection = hdr.value("CONNECTION");

-         if (hdr.minorVersion() == 1)

-         {

--            return connection.compare("close", Qt::CaseInsensitive) != 0;

-+            return connection.compare(QString("close"), Qt::CaseInsensitive) != 0;

-         }

- 

--        return connection.compare("Keep-Alive", Qt::CaseInsensitive) == 0;

-+        return connection.compare(QString("Keep-Alive"), Qt::CaseInsensitive) == 0;

-     }

- 

-     // returns the URLs as a string inside brackets. This is the format used in

-diff --git c/herqq/hupnp/src/utils/hmisc_utils_p.cpp i/herqq/hupnp/src/utils/hmisc_utils_p.cpp
-index 6641d14..7ea567a 100644
---- c/herqq/hupnp/src/utils/hmisc_utils_p.cpp
-+++ i/herqq/hupnp/src/utils/hmisc_utils_p.cpp
-@@ -70,10 +70,10 @@ bool toBool(const QString& arg, bool* ok)
-     bool retVal = false, match = true;

-     if (arg == "1") { retVal = true; }

-     else if (arg == "0") { retVal = false; }

--    else if (arg.compare("true", Qt::CaseInsensitive) == 0) { retVal = true; }

--    else if (arg.compare("false", Qt::CaseInsensitive) == 0) { retVal =  false; }

--    else if (arg.compare("yes", Qt::CaseInsensitive) == 0) { retVal = true; }

--    else if (arg.compare("no", Qt::CaseInsensitive) == 0) { retVal = false; }

-+    else if (arg.compare(QString("true"), Qt::CaseInsensitive) == 0) { retVal = true; }

-+    else if (arg.compare(QString("false"), Qt::CaseInsensitive) == 0) { retVal =  false; }

-+    else if (arg.compare(QString("yes"), Qt::CaseInsensitive) == 0) { retVal = true; }

-+    else if (arg.compare(QString("no"), Qt::CaseInsensitive) == 0) { retVal = false; }

-     else { match = false; }

- 

-     if (ok) { *ok = match; }

-diff --git c/herqq/hupnp_av/src/cds_model/cds_objects/hobject.cpp i/herqq/hupnp_av/src/cds_model/cds_objects/hobject.cpp
-index 6531929..8bd05c5 100644
---- c/herqq/hupnp_av/src/cds_model/cds_objects/hobject.cpp
-+++ i/herqq/hupnp_av/src/cds_model/cds_objects/hobject.cpp
-@@ -680,15 +680,15 @@ QString HObject::writeStatusToString(WriteStatus status)
- HObject::WriteStatus HObject::writeStatusFromString(const QString& status)
- {
-     WriteStatus retVal = UnknownWriteStatus;
--    if (status.compare("writable", Qt::CaseInsensitive) == 0)
-+    if (status.compare(QString("writable"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = WritableWriteStatus;
-     }
--    else if (status.compare("protected", Qt::CaseInsensitive) == 0)
-+    else if (status.compare(QString("protected"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = ProtectedWriteStatus;
-     }
--    else if (status.compare("mixed", Qt::CaseInsensitive) == 0)
-+    else if (status.compare(QString("mixed"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = MixedWriteStatus;
-     }
-diff --git c/herqq/hupnp_av/src/cds_model/hmatching_id.cpp i/herqq/hupnp_av/src/cds_model/hmatching_id.cpp
-index 25ee560..bea6ece 100644
---- c/herqq/hupnp_av/src/cds_model/hmatching_id.cpp
-+++ i/herqq/hupnp_av/src/cds_model/hmatching_id.cpp
-@@ -77,11 +77,11 @@ QString HMatchingId::toString(Type type)
- HMatchingId::Type HMatchingId::fromString(const QString& type)
- {
-     Type retVal = Undefined;
--    if (type.compare("SI_SERIESID", Qt::CaseInsensitive) == 0)
-+    if (type.compare(QString("SI_SERIESID"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = SeriesId;
-     }
--    else if (type.compare("SI_PROGRAMID", Qt::CaseInsensitive) == 0)
-+    else if (type.compare(QString("SI_PROGRAMID"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = ProgramId;
-     }
-diff --git c/herqq/hupnp_av/src/cds_model/hscheduledtime.cpp i/herqq/hupnp_av/src/cds_model/hscheduledtime.cpp
-index 06ab6bf..e7cec20 100644
---- c/herqq/hupnp_av/src/cds_model/hscheduledtime.cpp
-+++ i/herqq/hupnp_av/src/cds_model/hscheduledtime.cpp
-@@ -108,11 +108,11 @@ QString HScheduledTime::toString(Type type)
- HScheduledTime::Type HScheduledTime::fromString(const QString& type)
- {
-     Type retVal = Undefined;
--    if (type.compare("SCHEDULED_PROGRAM", Qt::CaseInsensitive) == 0)
-+    if (type.compare(QString("SCHEDULED_PROGRAM"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = ScheduledProgram;
-     }
--    else if (type.compare("ON_DEMAND", Qt::CaseInsensitive) == 0)
-+    else if (type.compare(QString("ON_DEMAND"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = OnDemand;
-     }
-diff --git c/herqq/hupnp_av/src/cds_model/hsortinfo.cpp i/herqq/hupnp_av/src/cds_model/hsortinfo.cpp
-index 078d719..31e1af0 100644
---- c/herqq/hupnp_av/src/cds_model/hsortinfo.cpp
-+++ i/herqq/hupnp_av/src/cds_model/hsortinfo.cpp
-@@ -115,19 +115,19 @@ QString HSortModifier::toString(Type type)
- HSortModifier::Type HSortModifier::fromString(const QString& type)
- {
-     Type retVal = Undefined;
--    if (type.compare("+", Qt::CaseInsensitive) == 0)
-+    if (type.compare(QString("+"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = AscendingByValue;
-     }
--    else if (type.compare("-", Qt::CaseInsensitive) == 0)
-+    else if (type.compare(QString("-"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = DescendingByValue;
-     }
--    else if (type.compare("TIME+", Qt::CaseInsensitive) == 0)
-+    else if (type.compare(QString("TIME+"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = AscendingByTime;
-     }
--    else if (type.compare("TIME-", Qt::CaseInsensitive) == 0)
-+    else if (type.compare(QString("TIME-"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = DescendingByTime;
-     }
-diff --git c/herqq/hupnp_av/src/cds_model/hstatevariablecollection.cpp i/herqq/hupnp_av/src/cds_model/hstatevariablecollection.cpp
-index 65b67f8..f51e6b2 100644
---- c/herqq/hupnp_av/src/cds_model/hstatevariablecollection.cpp
-+++ i/herqq/hupnp_av/src/cds_model/hstatevariablecollection.cpp
-@@ -198,11 +198,11 @@ HStateVariableCollection::RcsInstanceType HStateVariableCollection::fromString(
-     const QString& type)
- {
-     RcsInstanceType retVal = Undefined;
--    if (type.compare("pre-mix", Qt::CaseInsensitive) == 0)
-+    if (type.compare(QString("pre-mix"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = PreMix;
-     }
--    else if (type.compare("post-mix", Qt::CaseInsensitive) == 0)
-+    else if (type.compare(QString("post-mix"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = PostMix;
-     }
-diff --git c/herqq/hupnp_av/src/cds_model/model_mgmt/hcds_dlite_serializer.cpp i/herqq/hupnp_av/src/cds_model/model_mgmt/hcds_dlite_serializer.cpp
-index 9f5712d..cd4dacb 100644
---- c/herqq/hupnp_av/src/cds_model/model_mgmt/hcds_dlite_serializer.cpp
-+++ i/herqq/hupnp_av/src/cds_model/model_mgmt/hcds_dlite_serializer.cpp
-@@ -568,7 +568,7 @@ bool HCdsDidlLiteSerializer::serializeFromXml(
-         addNamespaces(reader);
-         if (reader.readNextStartElement())
-         {
--            if (reader.name().compare("DIDL-Lite", Qt::CaseInsensitive) != 0)
-+            if (reader.name().compare(QString("DIDL-Lite"), Qt::CaseInsensitive) != 0)
-             {
-                 h_ptr->m_lastErrorDescription = "Missing mandatory DIDL-Lite element";
-                 return false;
-diff --git c/herqq/hupnp_av/src/cds_model/model_mgmt/hcdsproperty_db.cpp i/herqq/hupnp_av/src/cds_model/model_mgmt/hcdsproperty_db.cpp
-index 30af243..af03c5c 100644
---- c/herqq/hupnp_av/src/cds_model/model_mgmt/hcdsproperty_db.cpp
-+++ i/herqq/hupnp_av/src/cds_model/model_mgmt/hcdsproperty_db.cpp
-@@ -749,7 +749,7 @@ bool HCdsPropertyDbPrivate::serializeSvCollectionIn(
- 
-     if (stateVariableReader.readNextStartElement())
-     {
--        if (stateVariableReader.name().compare("stateVariableValuePairs", Qt::CaseInsensitive) != 0)
-+        if (stateVariableReader.name().compare(QString("stateVariableValuePairs"), Qt::CaseInsensitive) != 0)
-         {
-             return false;
-         }
-diff --git c/herqq/hupnp_av/src/common/hradioband.cpp i/herqq/hupnp_av/src/common/hradioband.cpp
-index d35a559..85b7e32 100644
---- c/herqq/hupnp_av/src/common/hradioband.cpp
-+++ i/herqq/hupnp_av/src/common/hradioband.cpp
-@@ -83,23 +83,23 @@ QString HRadioBand::toString(Type type)
- HRadioBand::Type HRadioBand::fromString(const QString& arg)

- {

-     Type retVal = Undefined;

--    if (arg.compare("am", Qt::CaseInsensitive) == 0)

-+    if (arg.compare(QString("am"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = AM;

-     }

--    else if (arg.compare("fm", Qt::CaseInsensitive) == 0)

-+    else if (arg.compare(QString("fm"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = FM;

-     }

--    else if (arg.compare("shortwave", Qt::CaseInsensitive) == 0)

-+    else if (arg.compare(QString("shortwave"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = ShortWave;

-     }

--    else if (arg.compare("internet", Qt::CaseInsensitive) == 0)

-+    else if (arg.compare(QString("internet"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Internet;

-     }

--    else if (arg.compare("satellite", Qt::CaseInsensitive) == 0)

-+    else if (arg.compare(QString("satellite"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Satellite;

-     }

-diff --git c/herqq/hupnp_av/src/common/hstoragemedium.cpp i/herqq/hupnp_av/src/common/hstoragemedium.cpp
-index 37ab7e0..c7f2109 100644
---- c/herqq/hupnp_av/src/common/hstoragemedium.cpp
-+++ i/herqq/hupnp_av/src/common/hstoragemedium.cpp
-@@ -187,155 +187,155 @@ QString HStorageMedium::toString(Type type)
- HStorageMedium::Type HStorageMedium::fromString(const QString& type)

- {

-     Type retVal = Unknown;

--    if (type.compare("UNKNOWN", Qt::CaseInsensitive) == 0)

-+    if (type.compare(QString("UNKNOWN"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Unknown;

-     }

--    else if (type.compare("DV", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("DV"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DigitalVideo;

-     }

--    else if (type.compare("VHS", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("VHS"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = VHS;

-     }

--    else if (type.compare("W-VHS", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("W-VHS"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = W_VHS;

-     }

--    else if (type.compare("S-VHS", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("S-VHS"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = S_VHS;

-     }

--    else if (type.compare("D_VHS", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("D_VHS"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = D_VHS;

-     }

--    else if (type.compare("VHSC", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("VHSC"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = VHSC;

-     }

--    else if (type.compare("VIDEO8", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("VIDEO8"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Video8;

-     }

--    else if (type.compare("HI8", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("HI8"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = HI8;

-     }

--    else if (type.compare("CD-ROM", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("CD-ROM"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = CD_ROM;

-     }

--    else if (type.compare("CD-DA", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("CD-DA"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = CD_DA;

-     }

--    else if (type.compare("CD-R", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("CD-R"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = CD_R;

-     }

--    else if (type.compare("CD-RW", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("CD-RW"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = CD_RW;

-     }

--    else if (type.compare("VIDEO-CD", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("VIDEO-CD"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Video_CD;

-     }

--    else if (type.compare("SACD", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("SACD"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = SACD;

-     }

--    else if (type.compare("MD-AUDIO", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("MD-AUDIO"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = MiniDiscAudio;

-     }

--    else if (type.compare("MD-PICTURE", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("MD-PICTURE"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = MiniDiscPicture;

-     }

--    else if (type.compare("DVD-ROM", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("DVD-ROM"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DVD_ROM;

-     }

--    else if (type.compare("DVD-VIDEO", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("DVD-VIDEO"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DVD_Video;

-     }

--    else if (type.compare("DVD+R", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("DVD+R"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DVD_PlusRecordable;

-     }

--    else if (type.compare("DVD-R", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("DVD-R"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DVD_MinusRecordable;

-     }

--    else if (type.compare("DVD+RW", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("DVD+RW"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DVD_PlusRewritable;

-     }

--    else if (type.compare("DVD-RW", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("DVD-RW"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DVD_MinusRewritable;

-     }

--    else if (type.compare("DVD-RAM", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("DVD-RAM"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DVD_RAM;

-     }

--    else if (type.compare("DAT", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("DAT"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DAT;

-     }

--    else if (type.compare("LD", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("LD"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = LD;

-     }

--    else if (type.compare("HDD", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("HDD"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = HDD;

-     }

--    else if (type.compare("MICRO-MV", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("MICRO-MV"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = MicroMV;

-     }

--    else if (type.compare("NETWORK", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("NETWORK"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Network;

-     }

--    else if (type.compare("NONE", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("NONE"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = None;

-     }

--    else if (type.compare("NOT_IMPLEMENTED", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("NOT_IMPLEMENTED"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = NotImplemented;

-     }

--    else if (type.compare("SD", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("SD"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = SecureDigital;

-     }

--    else if (type.compare("PC-CARD", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("PC-CARD"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = PC_Card;

-     }

--    else if (type.compare("MMC", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("MMC"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = MultimediaCard;

-     }

--    else if (type.compare("CF", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("CF"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = CompactFlash;

-     }

--    else if (type.compare("BD", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("BD"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = BluRay;

-     }

--    else if (type.compare("MS", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("MS"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = MemoryStick;

-     }

--    else if (type.compare("HD_DVD", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("HD_DVD"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = HD_DVD;

-     }

-diff --git c/herqq/hupnp_av/src/connectionmanager/hconnectionmanager_info.cpp i/herqq/hupnp_av/src/connectionmanager/hconnectionmanager_info.cpp
-index 89d44ae..bb364b5 100644
---- c/herqq/hupnp_av/src/connectionmanager/hconnectionmanager_info.cpp
-+++ i/herqq/hupnp_av/src/connectionmanager/hconnectionmanager_info.cpp
-@@ -57,11 +57,11 @@ HConnectionManagerInfo::Direction
-     HConnectionManagerInfo::directionFromString(const QString& arg)

- {

-     Direction retVal = DirectionUndefined;

--    if (arg.compare("Input", Qt::CaseInsensitive) == 0)

-+    if (arg.compare(QString("Input"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DirectionInput;

-     }

--    else if (arg.compare("Output", Qt::CaseInsensitive) == 0)

-+    else if (arg.compare(QString("Output"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = DirectionOutput;

-     }

-@@ -92,23 +92,23 @@ HConnectionManagerInfo::ConnectionStatus
-     HConnectionManagerInfo::statusFromString(const QString& arg)

- {

-     ConnectionStatus retVal = StatusUnknown;

--    if (arg.compare("Ok", Qt::CaseInsensitive) == 0)

-+    if (arg.compare(QString("Ok"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = StatusOk;

-     }

--    else if (arg.compare("Unknown", Qt::CaseInsensitive) == 0)

-+    else if (arg.compare(QString("Unknown"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = StatusUnknown;

-     }

--    else if (arg.compare("ContentFormatMismatch", Qt::CaseInsensitive) == 0)

-+    else if (arg.compare(QString("ContentFormatMismatch"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = StatusContentFormatMismatch;

-     }

--    else if (arg.compare("InsufficientBandwidth", Qt::CaseInsensitive) == 0)

-+    else if (arg.compare(QString("InsufficientBandwidth"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = StatusInsufficientBandwidth;

-     }

--    else if (arg.compare("UnreliableChannel", Qt::CaseInsensitive) == 0)

-+    else if (arg.compare(QString("UnreliableChannel"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = StatusUnreliableChannel;

-     }

-diff --git c/herqq/hupnp_av/src/contentdirectory/hcontentdirectory_info.cpp i/herqq/hupnp_av/src/contentdirectory/hcontentdirectory_info.cpp
-index 5c0c0d0..743ed1e 100644
---- c/herqq/hupnp_av/src/contentdirectory/hcontentdirectory_info.cpp
-+++ i/herqq/hupnp_av/src/contentdirectory/hcontentdirectory_info.cpp
-@@ -80,11 +80,11 @@ HContentDirectoryInfo::BrowseFlag
-     HContentDirectoryInfo::browseFlagFromString(const QString& arg)

- {

-     BrowseFlag retVal = Undefined;

--    if (arg.compare("BrowseMetadata", Qt::CaseInsensitive) == 0)

-+    if (arg.compare(QString("BrowseMetadata"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = BrowseMetadata;

-     }

--    else if (arg.compare("BrowseDirectChildren", Qt::CaseInsensitive) == 0)

-+    else if (arg.compare(QString("BrowseDirectChildren"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = BrowseDirectChildren;

-     }

-diff --git c/herqq/hupnp_av/src/contentdirectory/htransferprogressinfo.cpp i/herqq/hupnp_av/src/contentdirectory/htransferprogressinfo.cpp
-index 0a663dc..1771b6f 100644
---- c/herqq/hupnp_av/src/contentdirectory/htransferprogressinfo.cpp
-+++ i/herqq/hupnp_av/src/contentdirectory/htransferprogressinfo.cpp
-@@ -85,15 +85,15 @@ HTransferProgressInfo::~HTransferProgressInfo()
- HTransferProgressInfo::Status HTransferProgressInfo::fromString(const QString& arg)
- {
-     Status retVal = Error;
--    if (arg.compare("IN_PROGRESS", Qt::CaseInsensitive) == 0)
-+    if (arg.compare(QString("IN_PROGRESS"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = InProgress;
-     }
--    else if (arg.compare("STOPPED", Qt::CaseInsensitive) == 0)
-+    else if (arg.compare(QString("STOPPED"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = Stopped;
-     }
--    else if (arg.compare("COMPLETED", Qt::CaseInsensitive) == 0)
-+    else if (arg.compare(QString("COMPLETED"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = Completed;
-     }
-diff --git c/herqq/hupnp_av/src/hav_global.cpp i/herqq/hupnp_av/src/hav_global.cpp
-index c3f93a9..27d98a0 100644
---- c/herqq/hupnp_av/src/hav_global.cpp
-+++ i/herqq/hupnp_av/src/hav_global.cpp
-@@ -647,7 +647,7 @@ HStateVariableCollection parseStateVariableCollection(const QString& arg)
-     addNamespaces(reader);
- 
-     if (!reader.readNextStartElement() ||
--        reader.name().compare("stateVariableValuePairs", Qt::CaseInsensitive) != 0)
-+        reader.name().compare(QString("stateVariableValuePairs"), Qt::CaseInsensitive) != 0)
-     {
-         return retVal;
-     }
-diff --git c/herqq/hupnp_av/src/mediabrowser/hmediabrowser.cpp i/herqq/hupnp_av/src/mediabrowser/hmediabrowser.cpp
-index f9e2dc4..69b7648 100644
---- c/herqq/hupnp_av/src/mediabrowser/hmediabrowser.cpp
-+++ i/herqq/hupnp_av/src/mediabrowser/hmediabrowser.cpp
-@@ -287,7 +287,7 @@ void HMediaBrowserPrivate::lastChangeReceived(
- 
-     if (reader.readNextStartElement())
-     {
--        if (reader.name().compare("StateEvent", Qt::CaseInsensitive) != 0)
-+        if (reader.name().compare(QString("StateEvent"), Qt::CaseInsensitive) != 0)
-         {
-             return;
-         }
-diff --git c/herqq/hupnp_av/src/mediarenderer/hconnection.cpp i/herqq/hupnp_av/src/mediarenderer/hconnection.cpp
-index 651e727..9fb4958 100644
---- c/herqq/hupnp_av/src/mediarenderer/hconnection.cpp
-+++ i/herqq/hupnp_av/src/mediarenderer/hconnection.cpp
-@@ -144,7 +144,7 @@ void HConnection::lastChangeReceived(
- 
-     if (reader.readNextStartElement())
-     {
--        if (reader.name().compare("Event", Qt::CaseInsensitive) != 0)
-+        if (reader.name().compare(QString("Event"), Qt::CaseInsensitive) != 0)
-         {
-             return;
-         }
-@@ -159,7 +159,7 @@ void HConnection::lastChangeReceived(
-     {
-         QStringRef name = reader.name();
- 
--        if (name.compare("InstanceID", Qt::CaseInsensitive))
-+        if (name.compare(QString("InstanceID"), Qt::CaseInsensitive))
-         {
-             continue;
-         }
-@@ -205,7 +205,7 @@ void HConnection::lastChangeReceived(HAvTransportAdapter*, const QString& data)
- 
-     if (reader.readNextStartElement())
-     {
--        if (reader.name().compare("Event", Qt::CaseInsensitive) != 0)
-+        if (reader.name().compare(QString("Event"), Qt::CaseInsensitive) != 0)
-         {
-             return;
-         }
-@@ -220,7 +220,7 @@ void HConnection::lastChangeReceived(HAvTransportAdapter*, const QString& data)
-     {
-         QStringRef name = reader.name();
- 
--        if (name.compare("InstanceID", Qt::CaseInsensitive))
-+        if (name.compare(QString("InstanceID"), Qt::CaseInsensitive))
-         {
-             continue;
-         }
-diff --git c/herqq/hupnp_av/src/mediarenderer/hconnectionmanager_sinkservice_p.cpp i/herqq/hupnp_av/src/mediarenderer/hconnectionmanager_sinkservice_p.cpp
-index 174f423..bf7e9f2 100644
---- c/herqq/hupnp_av/src/mediarenderer/hconnectionmanager_sinkservice_p.cpp
-+++ i/herqq/hupnp_av/src/mediarenderer/hconnectionmanager_sinkservice_p.cpp
-@@ -109,7 +109,7 @@ qint32 HConnectionManagerSinkService::prepareForConnection(
-         return HConnectionManagerInfo::IncompatibleDirections;
-     }
- 
--    if (remoteProtocolInfo.protocol().compare("http-get", Qt::CaseInsensitive) &&
-+    if (remoteProtocolInfo.protocol().compare(QString("http-get"), Qt::CaseInsensitive) &&
-         remoteProtocolInfo.protocol() != "*")
-     {
-         return HConnectionManagerInfo::IncompatibleProtocolInfo;
-diff --git c/herqq/hupnp_av/src/mediarenderer/hrendererconnection_info.cpp i/herqq/hupnp_av/src/mediarenderer/hrendererconnection_info.cpp
-index 1ad337a..0f5e209 100644
---- c/herqq/hupnp_av/src/mediarenderer/hrendererconnection_info.cpp
-+++ i/herqq/hupnp_av/src/mediarenderer/hrendererconnection_info.cpp
-@@ -1578,19 +1578,19 @@ bool HRendererConnectionInfo::hasChannelAssociated(const QString& svName)
- {
-     bool retVal = false;
-     QString trimmed = svName.trimmed();
--    if (trimmed.compare("Mute", Qt::CaseInsensitive) == 0)
-+    if (trimmed.compare(QString("Mute"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = true;
-     }
--    else if (trimmed.compare("Volume", Qt::CaseInsensitive) == 0)
-+    else if (trimmed.compare(QString("Volume"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = true;
-     }
--    else if (trimmed.compare("VolumeDB", Qt::CaseInsensitive) == 0)
-+    else if (trimmed.compare(QString("VolumeDB"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = true;
-     }
--    else if (trimmed.compare("Loudness", Qt::CaseInsensitive) == 0)
-+    else if (trimmed.compare(QString("Loudness"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = true;
-     }
-diff --git c/herqq/hupnp_av/src/mediarenderer/htransport_sinkservice_p.cpp i/herqq/hupnp_av/src/mediarenderer/htransport_sinkservice_p.cpp
-index a614e17..fbb3258 100644
---- c/herqq/hupnp_av/src/mediarenderer/htransport_sinkservice_p.cpp
-+++ i/herqq/hupnp_av/src/mediarenderer/htransport_sinkservice_p.cpp
-@@ -449,7 +449,7 @@ qint32 HTransportSinkService::getStateVariables(
-     foreach(QString svName, stateVarNames)
-     {
-         svName = svName.trimmed();
--        if (svName.compare("LastChange", Qt::CaseInsensitive) == 0 ||
-+        if (svName.compare(QString("LastChange"), Qt::CaseInsensitive) == 0 ||
-             svName.startsWith("A_ARG", Qt::CaseInsensitive))
-         {
-             return HAvTransportInfo::InvalidStateVariableList;
-@@ -512,7 +512,7 @@ qint32 HTransportSinkService::setStateVariables(
- 
-     if (reader.readNextStartElement())
-     {
--        if (reader.name().compare("stateVariableValuePairs", Qt::CaseInsensitive) != 0)
-+        if (reader.name().compare(QString("stateVariableValuePairs"), Qt::CaseInsensitive) != 0)
-         {
-             return UpnpInvalidArgs;
-         }
-diff --git c/herqq/hupnp_av/src/renderingcontrol/hchannel.cpp i/herqq/hupnp_av/src/renderingcontrol/hchannel.cpp
-index 751a3d9..51c1ff4 100644
---- c/herqq/hupnp_av/src/renderingcontrol/hchannel.cpp
-+++ i/herqq/hupnp_av/src/renderingcontrol/hchannel.cpp
-@@ -110,59 +110,59 @@ QString HChannel::toString(Type type)
- HChannel::Type HChannel::fromString(const QString& type)

- {

-     Type retVal = Undefined;

--    if (type.compare("MASTER", Qt::CaseInsensitive) == 0)

-+    if (type.compare(QString("MASTER"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Master;

-     }

--    else if (type.compare("LF", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("LF"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = LeftFront;

-     }

--    else if (type.compare("RF", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("RF"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = RightFront;

-     }

--    else if (type.compare("CF", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("CF"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = CenterFront;

-     }

--    else if (type.compare("LFE", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("LFE"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = LFE;

-     }

--    else if (type.compare("LS", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("LS"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = LeftSurround;

-     }

--    else if (type.compare("RS", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("RS"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = RightSurround;

-     }

--    else if (type.compare("LFC", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("LFC"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = LeftOfCenter;

-     }

--    else if (type.compare("RFC", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("RFC"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = RightOfCenter;

-     }

--    else if (type.compare("SD", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("SD"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Surround;

-     }

--    else if (type.compare("SL", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("SL"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = SideLeft;

-     }

--    else if (type.compare("SR", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("SR"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = SideRight;

-     }

--    else if (type.compare("T", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("T"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Top;

-     }

--    else if (type.compare("B", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("B"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Bottom;

-     }

-diff --git c/herqq/hupnp_av/src/renderingcontrol/hrenderingcontrol_service_p.cpp i/herqq/hupnp_av/src/renderingcontrol/hrenderingcontrol_service_p.cpp
-index fd52f9a..84f5579 100644
---- c/herqq/hupnp_av/src/renderingcontrol/hrenderingcontrol_service_p.cpp
-+++ i/herqq/hupnp_av/src/renderingcontrol/hrenderingcontrol_service_p.cpp
-@@ -859,7 +859,7 @@ qint32 HRenderingControlService::setStateVariables(
- 
-     if (reader.readNextStartElement())
-     {
--        if (reader.name().compare("stateVariableValuePairs", Qt::CaseInsensitive) != 0)
-+        if (reader.name().compare(QString("stateVariableValuePairs"), Qt::CaseInsensitive) != 0)
-         {
-             return UpnpInvalidArgs;
-         }
-diff --git c/herqq/hupnp_av/src/transport/havtransport_info.cpp i/herqq/hupnp_av/src/transport/havtransport_info.cpp
-index cb18ce0..e3fcd64 100644
---- c/herqq/hupnp_av/src/transport/havtransport_info.cpp
-+++ i/herqq/hupnp_av/src/transport/havtransport_info.cpp
-@@ -94,35 +94,35 @@ HAvTransportInfo::DrmState
-     HAvTransportInfo::drmStateFromString(const QString& state)
- {
-     DrmState retVal = DrmState_Unknown;
--    if (state.compare("OK", Qt::CaseInsensitive) == 0)
-+    if (state.compare(QString("OK"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = DrmState_Ok;
-     }
--    else if (state.compare("UNKNOWN", Qt::CaseInsensitive) == 0)
-+    else if (state.compare(QString("UNKNOWN"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = DrmState_Unknown;
-     }
--    else if (state.compare("PROCESSING_CONTENT_KEY", Qt::CaseInsensitive) == 0)
-+    else if (state.compare(QString("PROCESSING_CONTENT_KEY"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = DrmState_ProcessingContentKey;
-     }
--    else if (state.compare("CONTENT_KEY_FAILURE", Qt::CaseInsensitive) == 0)
-+    else if (state.compare(QString("CONTENT_KEY_FAILURE"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = DrmState_ContentKeyFailure;
-     }
--    else if (state.compare("ATTEMPTING_AUTHENTICATION", Qt::CaseInsensitive) == 0)
-+    else if (state.compare(QString("ATTEMPTING_AUTHENTICATION"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = DrmState_AttemptingAuthentication;
-     }
--    else if (state.compare("FAILED_AUTHENTICATION", Qt::CaseInsensitive) == 0)
-+    else if (state.compare(QString("FAILED_AUTHENTICATION"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = DrmState_FailedAuthentication;
-     }
--    else if (state.compare("NOT_AUTHENTICATED", Qt::CaseInsensitive) == 0)
-+    else if (state.compare(QString("NOT_AUTHENTICATED"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = DrmState_NotAuthenticated;
-     }
--    else if (state.compare("DEVICE_REVOCATION", Qt::CaseInsensitive) == 0)
-+    else if (state.compare(QString("DEVICE_REVOCATION"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = DrmState_DeviceRevocation;
-     }
-diff --git c/herqq/hupnp_av/src/transport/hmediainfo.cpp i/herqq/hupnp_av/src/transport/hmediainfo.cpp
-index 9e642c1..5f33847 100644
---- c/herqq/hupnp_av/src/transport/hmediainfo.cpp
-+++ i/herqq/hupnp_av/src/transport/hmediainfo.cpp
-@@ -180,15 +180,15 @@ HMediaInfo::MediaCategory HMediaInfo::mediaCategoryFromString(
-     const QString& category)
- {
-     MediaCategory retVal = Undefined;
--    if (category.compare("NO_MEDIA", Qt::CaseInsensitive) == 0)
-+    if (category.compare(QString("NO_MEDIA"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = NoMedia;
-     }
--    else if (category.compare("TRACK_AWARE", Qt::CaseInsensitive) == 0)
-+    else if (category.compare(QString("TRACK_AWARE"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = TrackAware;
-     }
--    else if (category.compare("TRACK_UNAWARE", Qt::CaseInsensitive) == 0)
-+    else if (category.compare(QString("TRACK_UNAWARE"), Qt::CaseInsensitive) == 0)
-     {
-         retVal = TrackUnaware;
-     }
-diff --git c/herqq/hupnp_av/src/transport/hplaymode.cpp i/herqq/hupnp_av/src/transport/hplaymode.cpp
-index 8d3a20e..57605f0 100644
---- c/herqq/hupnp_av/src/transport/hplaymode.cpp
-+++ i/herqq/hupnp_av/src/transport/hplaymode.cpp
-@@ -87,31 +87,31 @@ QString HPlayMode::toString(HPlayMode::Type type)
- HPlayMode::Type HPlayMode::fromString(const QString& type)

- {

-     Type retVal = Undefined;

--    if (type.compare("NORMAL", Qt::CaseInsensitive) == 0)

-+    if (type.compare(QString("NORMAL"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Normal;

-     }

--    else if (type.compare("SHUFFLE", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("SHUFFLE"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Shuffle;

-     }

--    else if (type.compare("REPEAT_ONE", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("REPEAT_ONE"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = RepeatOne;

-     }

--    else if (type.compare("REPEAT_ALL", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("REPEAT_ALL"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = RepeatAll;

-     }

--    else if (type.compare("RANDOM", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("RANDOM"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Random;

-     }

--    else if (type.compare("DIRECT_1", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("DIRECT_1"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Direct_1;

-     }

--    else if (type.compare("INTRO", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("INTRO"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Intro;

-     }

-diff --git c/herqq/hupnp_av/src/transport/hrecordmediumwritestatus.cpp i/herqq/hupnp_av/src/transport/hrecordmediumwritestatus.cpp
-index ab29f09..a1a5de0 100644
---- c/herqq/hupnp_av/src/transport/hrecordmediumwritestatus.cpp
-+++ i/herqq/hupnp_av/src/transport/hrecordmediumwritestatus.cpp
-@@ -81,23 +81,23 @@ HRecordMediumWriteStatus::Type HRecordMediumWriteStatus::fromString(
-     const QString& type)

- {

-     Type retVal = Unknown;

--    if (type.compare("WRITABLE", Qt::CaseInsensitive) == 0)

-+    if (type.compare(QString("WRITABLE"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Writable;

-     }

--    else if (type.compare("PROTECTED", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("PROTECTED"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Protected;

-     }

--    else if (type.compare("NOT_WRITABLE", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("NOT_WRITABLE"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = NotWritable;

-     }

--    else if (type.compare("NOT_IMPLEMENTED", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("NOT_IMPLEMENTED"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = NotImplemented;

-     }

--    else if (type.compare("UNKNOWN", Qt::CaseInsensitive) != 0 && !type.isEmpty())

-+    else if (type.compare(QString("UNKNOWN"), Qt::CaseInsensitive) != 0 && !type.isEmpty())

-     {

-         retVal = VendorDefined;

-     }

-diff --git c/herqq/hupnp_av/src/transport/hrecordqualitymode.cpp i/herqq/hupnp_av/src/transport/hrecordqualitymode.cpp
-index bf7dd90..b659fd7 100644
---- c/herqq/hupnp_av/src/transport/hrecordqualitymode.cpp
-+++ i/herqq/hupnp_av/src/transport/hrecordqualitymode.cpp
-@@ -88,31 +88,31 @@ QString HRecordQualityMode::toString(Type mode)
- HRecordQualityMode::Type HRecordQualityMode::fromString(const QString& mode)

- {

-     Type retVal = Undefined;

--    if (mode.compare("0:EP", Qt::CaseInsensitive) == 0)

-+    if (mode.compare(QString("0:EP"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Ep;

-     }

--    else if (mode.compare("1:LP", Qt::CaseInsensitive) == 0)

-+    else if (mode.compare(QString("1:LP"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Lp;

-     }

--    else if (mode.compare("2:SP", Qt::CaseInsensitive) == 0)

-+    else if (mode.compare(QString("2:SP"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Sp;

-     }

--    else if (mode.compare("0:BASIC", Qt::CaseInsensitive) == 0)

-+    else if (mode.compare(QString("0:BASIC"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Basic;

-     }

--    else if (mode.compare("1:MEDIUM", Qt::CaseInsensitive) == 0)

-+    else if (mode.compare(QString("1:MEDIUM"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Medium;

-     }

--    else if (mode.compare("2:HIGH", Qt::CaseInsensitive) == 0)

-+    else if (mode.compare(QString("2:HIGH"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = High;

-     }

--    else if (mode.compare("NOT_IMPLEMENTED", Qt::CaseInsensitive) == 0)

-+    else if (mode.compare(QString("NOT_IMPLEMENTED"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = NotImplemented;

-     }

-diff --git c/herqq/hupnp_av/src/transport/hseekinfo.cpp i/herqq/hupnp_av/src/transport/hseekinfo.cpp
-index c2ac69a..d3eee2b 100644
---- c/herqq/hupnp_av/src/transport/hseekinfo.cpp
-+++ i/herqq/hupnp_av/src/transport/hseekinfo.cpp
-@@ -102,43 +102,43 @@ QString HSeekMode::toString(Type type)
- HSeekMode::Type HSeekMode::fromString(const QString& type)

- {

-     Type retVal = Unknown;

--    if (type.compare("TRACK_NR", Qt::CaseInsensitive) == 0)

-+    if (type.compare(QString("TRACK_NR"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = TrackNr;

-     }

--    else if (type.compare("ABS_TIME", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("ABS_TIME"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = AbsTime;

-     }

--    else if (type.compare("REL_TIME", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("REL_TIME"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = RelTime;

-     }

--    else if (type.compare("ABS_COUNT", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("ABS_COUNT"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = AbsCount;

-     }

--    else if (type.compare("REL_COUNT", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("REL_COUNT"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = RelCount;

-     }

--    else if (type.compare("CHANNEL_FREQ", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("CHANNEL_FREQ"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = ChannelFreq;

-     }

--    else if (type.compare("TAPE-INDEX", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("TAPE-INDEX"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = TapeIndex;

-     }

--    else if (type.compare("REL_TAPE-INDEX", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("REL_TAPE-INDEX"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = RelTapeIndex;

-     }

--    else if (type.compare("FRAME", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("FRAME"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Frame;

-     }

--    else if (type.compare("REL_FRAME", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("REL_FRAME"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = RelFrame;

-     }

-diff --git c/herqq/hupnp_av/src/transport/htransportaction.cpp i/herqq/hupnp_av/src/transport/htransportaction.cpp
-index d64b1bc..4a34b8d 100644
---- c/herqq/hupnp_av/src/transport/htransportaction.cpp
-+++ i/herqq/hupnp_av/src/transport/htransportaction.cpp
-@@ -91,31 +91,31 @@ QString HTransportAction::toString(Type type)
- HTransportAction::Type HTransportAction::fromString(const QString& type)

- {

-     Type retVal = Undefined;

--    if (type.compare("PLAY", Qt::CaseInsensitive) == 0)

-+    if (type.compare(QString("PLAY"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Play;

-     }

--    else if (type.compare("STOP", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("STOP"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Stop;

-     }

--    else if (type.compare("PAUSE", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("PAUSE"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Pause;

-     }

--    else if (type.compare("SEEK", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("SEEK"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Seek;

-     }

--    else if (type.compare("NEXT", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("NEXT"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Next;

-     }

--    else if (type.compare("PREVIOUS", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("PREVIOUS"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Previous;

-     }

--    else if (type.compare("RECORD", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("RECORD"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Record;

-     }

-diff --git c/herqq/hupnp_av/src/transport/htransportinfo.cpp i/herqq/hupnp_av/src/transport/htransportinfo.cpp
-index ecfaf0b..8ca9b1c 100644
---- c/herqq/hupnp_av/src/transport/htransportinfo.cpp
-+++ i/herqq/hupnp_av/src/transport/htransportinfo.cpp
-@@ -71,11 +71,11 @@ QString HTransportStatus::toString(HTransportStatus::Type type)
- HTransportStatus::Type HTransportStatus::fromString(const QString& type)

- {

-     Type retVal = Undefined;

--    if (type.compare("OK", Qt::CaseInsensitive) == 0)

-+    if (type.compare(QString("OK"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = OK;

-     }

--    else if (type.compare("ERROR_OCCURRED", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("ERROR_OCCURRED"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = ErrorOccurred;

-     }

-diff --git c/herqq/hupnp_av/src/transport/htransportstate.cpp i/herqq/hupnp_av/src/transport/htransportstate.cpp
-index b460065..f2a1ac3 100644
---- c/herqq/hupnp_av/src/transport/htransportstate.cpp
-+++ i/herqq/hupnp_av/src/transport/htransportstate.cpp
-@@ -89,31 +89,31 @@ QString HTransportState::toString(HTransportState::Type type)
- HTransportState::Type HTransportState::fromString(const QString& type)

- {

-     Type retVal = Undefined;

--    if (type.compare("NO_MEDIA_PRESENT", Qt::CaseInsensitive) == 0)

-+    if (type.compare(QString("NO_MEDIA_PRESENT"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = NoMediaPresent;

-     }

--    else if (type.compare("STOPPED", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("STOPPED"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Stopped;

-     }

--    else if (type.compare("PLAYING", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("PLAYING"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Playing;

-     }

--    else if (type.compare("TRANSITIONING", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("TRANSITIONING"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Transitioning;

-     }

--    else if (type.compare("PAUSED_PLAYBACK", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("PAUSED_PLAYBACK"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = PausedPlayback;

-     }

--    else if (type.compare("PAUSED_RECORDING", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("PAUSED_RECORDING"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = PausedRecording;

-     }

--    else if (type.compare("RECORDING", Qt::CaseInsensitive) == 0)

-+    else if (type.compare(QString("RECORDING"), Qt::CaseInsensitive) == 0)

-     {

-         retVal = Recording;

-     }

diff --git a/nixpkgs/pkgs/development/libraries/libcdio/default.nix b/nixpkgs/pkgs/development/libraries/libcdio/default.nix
index 531ca4102afe..9c3132a3e637 100644
--- a/nixpkgs/pkgs/development/libraries/libcdio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcdio/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libcddb, pkgconfig, ncurses, help2man, libiconv, Carbon, IOKit }:
 
 stdenv.mkDerivation rec {
-  name = "libcdio-2.0.0";
+  name = "libcdio-2.1.0";
 
   src = fetchurl {
     url = "mirror://gnu/libcdio/${name}.tar.bz2";
-    sha256 = "0jr8ppdm80c533nzmrpz3iffnpc6nhvsria1di9f4jg1l19a03fd";
+    sha256 = "0avi6apv5ydjy6b9c3z9a46rvp5i57qyr09vr7x4nndxkmcfjl45";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/libcsptr/default.nix b/nixpkgs/pkgs/development/libraries/libcsptr/default.nix
new file mode 100644
index 000000000000..d7638dd20597
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libcsptr/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake, git }:
+
+stdenv.mkDerivation rec {
+  name = "libcsptr-${version}";
+  version = "2.0.4";
+
+  src = fetchFromGitHub {
+    owner = "Snaipe";
+    repo = "libcsptr";
+    rev = "v${version}";
+    sha256 = "0i1498h2i6zq3fn3zf3iw7glv6brn597165hnibgwccqa8sh3ich";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "Smart pointer constructs for the (GNU) C programming language";
+    homepage = https://github.com/Snaipe/libcsptr;
+    license = licenses.mit;
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    maintainers = [ maintainers.fragamus ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libdrm/default.nix b/nixpkgs/pkgs/development/libraries/libdrm/default.nix
index a8daf5754165..7415aa754e7d 100644
--- a/nixpkgs/pkgs/development/libraries/libdrm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdrm/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, valgrind-light }:
 
 stdenv.mkDerivation rec {
-  name = "libdrm-2.4.97";
+  name = "libdrm-2.4.98";
 
   src = fetchurl {
     url = "https://dri.freedesktop.org/libdrm/${name}.tar.bz2";
-    sha256 = "08yimlp6jir1rs5ajgdx74xa5qdzcqahpdzdk0rmkmhh7vdcrl3p";
+    sha256 = "150qdzsm2nx6dfacc75rx53anzsc6m31nhxidf5xxax3mk6fvq4b";
   };
 
   outputs = [ "out" "dev" "bin" ];
diff --git a/nixpkgs/pkgs/development/libraries/libdvdread/default.nix b/nixpkgs/pkgs/development/libraries/libdvdread/default.nix
index 95815f4abcda..5f0f08275035 100644
--- a/nixpkgs/pkgs/development/libraries/libdvdread/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdvdread/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "libdvdread-${version}";
-  version = "6.0.0";
+  version = "6.0.1";
 
   src = fetchurl {
     url = "http://get.videolan.org/libdvdread/${version}/${name}.tar.bz2";
-    sha256 = "0dgr23fzcjhb7ck54xkr9zmf4jcq3ph0dz3fbyvla1c6ni9ijfxk";
+    sha256 = "1gfmh8ii3s2fw1c8vn57piwxc0smd3va4h7xgp9s8g48cc04zki8";
   };
 
   buildInputs = [libdvdcss];
diff --git a/nixpkgs/pkgs/development/libraries/libfaketime/default.nix b/nixpkgs/pkgs/development/libraries/libfaketime/default.nix
index cc9db8f7e661..65d04cb53f16 100644
--- a/nixpkgs/pkgs/development/libraries/libfaketime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfaketime/default.nix
@@ -21,9 +21,8 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  preBuild = ''
-    makeFlagsArray+=(PREFIX="$out" LIBDIRNAME=/lib)
-  '';
+  PREFIX = placeholder "out";
+  LIBDIRNAME = "/lib";
 
   checkInputs = [ perl ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libfprint/default.nix b/nixpkgs/pkgs/development/libraries/libfprint/default.nix
index 3f3062e3c081..410496a7bb77 100644
--- a/nixpkgs/pkgs/development/libraries/libfprint/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfprint/default.nix
@@ -1,16 +1,29 @@
-{ stdenv, fetchurl, pkgconfig, meson, ninja, libusb, pixman, glib, nss, gtk3
-, coreutils, gtk-doc, docbook_xsl, docbook_xml_dtd_43 }:
+{ thinkpad ? false, stdenv, fetchFromGitHub, fetchurl, pkgconfig, meson, ninja, libusb, pixman, glib, nss, gtk3
+, coreutils, gtk-doc, docbook_xsl, docbook_xml_dtd_43, openssl ? null }:
+
+assert thinkpad -> openssl != null;
 
 stdenv.mkDerivation rec {
-  name = "libfprint-${version}";
+  pname = "libfprint" + stdenv.lib.optionalString thinkpad "-thinkpad";
   version = "0.99.0";
 
-  src = fetchurl {
-    url = "https://gitlab.freedesktop.org/libfprint/libfprint/uploads/82ba3cef5bdf72997df711eacdb13c0f/libfprint-${version}.tar.xz";
-    sha256 = "16r4nl40y0jri57jiqmdz4s87byblx22lbhyvqpljd6mqm5rg187";
-  };
+  src = {
+    libfprint-thinkpad =
+      fetchFromGitHub {
+        owner = "3v1n0";
+        repo = "libfprint";
+        rev = "2e2e3821717e9042e93a995bdbd3d00f2df0be9c";
+        sha256 = "1vps1wrp7hskf13f7jrv0dwry2fcid76x2w463wplngp63cj7b3b";
+      };
+    libfprint = fetchurl {
+      url = "https://gitlab.freedesktop.org/libfprint/libfprint/uploads/82ba3cef5bdf72997df711eacdb13c0f/libfprint-${version}.tar.xz";
+      sha256 = "16r4nl40y0jri57jiqmdz4s87byblx22lbhyvqpljd6mqm5rg187";
+    };
+  }.${pname};
+
+  buildInputs = [ libusb pixman glib nss gtk3 ]
+    ++ stdenv.lib.optional thinkpad openssl;
 
-  buildInputs = [ libusb pixman glib nss gtk3 ];
   nativeBuildInputs = [ pkgconfig meson ninja gtk-doc docbook_xsl docbook_xml_dtd_43 ];
 
   mesonFlags = [ "-Dudev_rules_dir=lib/udev/rules.d" "-Dx11-examples=false" ];
diff --git a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
index ebcf51dfd030..23fa2f44b46f 100644
--- a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -2,29 +2,16 @@
 
 stdenv.mkDerivation rec {
   name = "libjpeg-turbo-${version}";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/libjpeg-turbo/${name}.tar.gz";
-    sha256 = "1zv6z093l3x3jzygvni7b819j7xhn6d63jhcdrckj7fz67n6ry75";
+    sha256 = "1v9gx1gdzgxf51nd55ncq7rghmj4x9x91rby50ag36irwngmkf5c";
   };
 
   patches =
     stdenv.lib.optional (stdenv.hostPlatform.libc or null == "msvcrt")
-      ./mingw-boolean.patch
-  ++ [
-    ./djpeg-rgb-islow-icc-cmp.patch # https://github.com/libjpeg-turbo/libjpeg-turbo/pull/321
-    (fetchpatch {
-      name = "cve-2018-19664.diff";
-      url = "https://github.com/libjpeg-turbo/libjpeg-turbo/commit/f8cca819a4fb.diff";
-      sha256 = "1kgfag62qmphlrq0mz15g17zw7zrg9nzaz7d2vg50m6m7m5aw4y5";
-    })
-    (fetchpatch {
-      name = "CVE-2018-20330.patch";
-      url = "https://github.com/libjpeg-turbo/libjpeg-turbo/commit/3d9c64e9f8aa1ee954d1d0bb3390fc894bb84da3.diff";
-      sha256 = "1jai8izw6xl05ihx24rpc96d1jcr9rp421cb02pbz3v53cxdasji";
-    })
-  ];
+      ./mingw-boolean.patch;
 
   outputs = [ "bin" "dev" "out" "man" "doc" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/djpeg-rgb-islow-icc-cmp.patch b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/djpeg-rgb-islow-icc-cmp.patch
deleted file mode 100644
index c0f7fef44938..000000000000
--- a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/djpeg-rgb-islow-icc-cmp.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -999,6 +999,8 @@ foreach(libtype ${TEST_LIBTYPES})
- 
-   add_test(djpeg-${libtype}-rgb-islow-icc-cmp
-     ${MD5CMP} b06a39d730129122e85c1363ed1bbc9e testout_rgb_islow.icc)
-+  set_tests_properties(djpeg-${libtype}-rgb-islow-icc-cmp PROPERTIES
-+    DEPENDS djpeg-${libtype}-rgb-islow)
- 
-   add_bittest(jpegtran icc "-copy;all;-icc;${TESTIMAGES}/test2.icc"
-     testout_rgb_islow2.jpg testout_rgb_islow.jpg ${MD5_JPEG_RGB_ISLOW2})
diff --git a/nixpkgs/pkgs/development/libraries/libmbim/default.nix b/nixpkgs/pkgs/development/libraries/libmbim/default.nix
index 021cfbb1bb48..406b88ea8c1b 100644
--- a/nixpkgs/pkgs/development/libraries/libmbim/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmbim/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmbim";
-  version = "1.18.0";
+  version = "1.18.2";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz";
-    sha256 = "10mjjy860aakfd3h1yaj9l1jw816amrpwmyqlx37j21xv0l03x3c";
+    sha256 = "0s4jsfsydp2vykv7lnimalp9i680aas1qcx7zdpjiic64b5g48vp";
   };
 
   outputs = [ "out" "dev" "man" ];
diff --git a/nixpkgs/pkgs/development/libraries/libnice/default.nix b/nixpkgs/pkgs/development/libraries/libnice/default.nix
index e71bcd0e3680..d6bb8ec50463 100644
--- a/nixpkgs/pkgs/development/libraries/libnice/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnice/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, fetchpatch, meson, ninja, pkgconfig, python3, gobject-introspection, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, gupnp-igd, gst_all_1, gnutls }:
 
 stdenv.mkDerivation rec {
-  name = "libnice-0.1.15";
+  name = "libnice-0.1.16";
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "https://nice.freedesktop.org/releases/${name}.tar.gz";
-    sha256 = "1nl7fn07f4i513s9c1s1ic3rki8rm2d000wsf6f4157mb0zhya7p";
+    sha256 = "1pzgxq0qrqlrhd78qnvpfgp8bl5c4znqh599ljaybpcldw37idh6";
   };
 
   patches = [
@@ -18,19 +18,6 @@ stdenv.mkDerivation rec {
       url = https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch;
       sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
     })
-
-    # Fix test-different-number-streams
-    # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/36
-    (fetchpatch {
-      url = https://gitlab.freedesktop.org/libnice/libnice/commit/a38c2adfc4bed2a69dc02568417f0926dd555b9a.patch;
-      sha256 = "1rh4z4iknrimmm3b3v8ln8vl3dsqi91g4vf0dl85348kvnf0sv6z";
-    })
-    # Fix test-gstreamer
-    # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35
-    (fetchpatch {
-      url = https://gitlab.freedesktop.org/libnice/libnice/commit/02de1fa1956105b09d9db4fd6331452b0ff0b8a2.patch;
-      sha256 = "12dymq1v20wj5n1cway4n3y8fkra1ffnpj5w7pbz38i612b82qw0";
-    })
   ];
 
   nativeBuildInputs = [ meson ninja pkgconfig python3 gobject-introspection gtk-doc docbook_xsl docbook_xml_dtd_412 ];
diff --git a/nixpkgs/pkgs/development/libraries/libqmi/default.nix b/nixpkgs/pkgs/development/libraries/libqmi/default.nix
index 083b5c8bc851..8a2390483908 100644
--- a/nixpkgs/pkgs/development/libraries/libqmi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqmi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libqmi";
-  version = "1.22.2";
+  version = "1.22.4";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz";
-    sha256 = "09w20dsgr16bgbqw5ds7r6j2s6ihwyalh9zpbjhcn7cvm0afbwgi";
+    sha256 = "1wgrrb9vb3myl8xgck8ik86876ycbg8crylybs3ssi21vrxqwnsc";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libsass/default.nix b/nixpkgs/pkgs/development/libraries/libsass/default.nix
index 54108e1a007b..ce43ed734324 100644
--- a/nixpkgs/pkgs/development/libraries/libsass/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsass/default.nix
@@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "0w6v1xa00jvfyk4b29ir7dfkhiq72anz015gg580bi7x3n7saz28";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2018-19827.patch";
+      url = "https://github.com/sass/libsass/commit/b21fb9f84096d9927780b86fa90629a096af358d.patch";
+      sha256 = "0ix12x9plmpgs3xda2fjdcykca687h16qfwqr57i5qphjr9vp33l";
+    })
+  ];
+
   preConfigure = ''
     export LIBSASS_VERSION=${version}
   '';
diff --git a/nixpkgs/pkgs/development/libraries/libshout/default.nix b/nixpkgs/pkgs/development/libraries/libshout/default.nix
index ef0236406213..3753a070c639 100644
--- a/nixpkgs/pkgs/development/libraries/libshout/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libshout/default.nix
@@ -4,11 +4,11 @@
 # need pkgconfig so that libshout installs ${out}/lib/pkgconfig/shout.pc
 
 stdenv.mkDerivation rec {
-  name = "libshout-2.4.1";
+  name = "libshout-2.4.2";
 
   src = fetchurl {
     url = "http://downloads.xiph.org/releases/libshout/${name}.tar.gz";
-    sha256 = "0kgjpf8jkgyclw11nilxi8vyjk4s8878x23qyxnvybbgqbgbib7k";
+    sha256 = "0qgwarqp2p6jy3zadds6dzj8z1jfb2mbwc3lsdlidf527h0a86ym";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libu2f-host/default.nix b/nixpkgs/pkgs/development/libraries/libu2f-host/default.nix
index c163720f56ed..ad0557049e3e 100644
--- a/nixpkgs/pkgs/development/libraries/libu2f-host/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libu2f-host/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, pkgconfig, json_c, hidapi }:
 
 stdenv.mkDerivation rec {
-  name = "libu2f-host-1.1.9";
+  pname = "libu2f-host";
+  version = "1.1.10";
 
   src = fetchurl {
-    url = "https://developers.yubico.com/libu2f-host/Releases/${name}.tar.xz";
-    sha256 = "1hnh3f4scx07v9jfkr1nnxasmydk1cmivn0nijcp2p75bc1fznip";
+    url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.xz";
+    sha256 = "0vrivl1dwql6nfi48z6dy56fwy2z13d7abgahgrs2mcmqng7hra2";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/libuv/default.nix b/nixpkgs/pkgs/development/libraries/libuv/default.nix
index 4fdfc8556425..78abbe7392c9 100644
--- a/nixpkgs/pkgs/development/libraries/libuv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libuv/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
       "spawn_setuid_fails" "spawn_setgid_fails" "fs_chown" # user namespaces
       "getaddrinfo_fail" "getaddrinfo_fail_sync"
       "threadpool_multiple_event_loops" # times out on slow machines
+      "get_passwd" # passed on NixOS but failed on other Linuxes
+      "tcp_writealot" # times out sometimes
     ] ++ stdenv.lib.optionals stdenv.isDarwin [
         # Sometimes: timeout (no output), failed uv_listen. Someone
         # should report these failures to libuv team. There tests should
diff --git a/nixpkgs/pkgs/development/libraries/libxmlb/default.nix b/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
index c5ff7c11713b..9edb9b475e8a 100644
--- a/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "libxmlb-${version}";
-  version = "0.1.9";
+  version = "0.1.10";
 
   outputs = [ "out" "lib" "dev" "devdoc" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libxmlb";
     rev = version;
-    sha256 = "1rdpsssrwpx24snqb82hisjybnpz9fq91wbmxfi2s63xllzi14b6";
+    sha256 = "1ismh3bdwd0l1fjlhwycam89faxjmpb0wxqlbv58m0z6cxykp6rd";
   };
 
   nativeBuildInputs = [ meson ninja python3 pkgconfig gobject-introspection gtk-doc shared-mime-info docbook_xsl docbook_xml_dtd_43 ];
diff --git a/nixpkgs/pkgs/development/libraries/pcre2/default.nix b/nixpkgs/pkgs/development/libraries/pcre2/default.nix
index 89649f0bf308..f080de82ddc2 100644
--- a/nixpkgs/pkgs/development/libraries/pcre2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pcre2/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "pcre2-${version}";
-  version = "10.32";
+  version = "10.33";
   src = fetchurl {
     url = "https://ftp.pcre.org/pub/pcre/${name}.tar.bz2";
-    sha256 = "0bkwp2czcckvvbdls7b331cad11rxsm020aqhrbz84z8bp68k7pj";
+    sha256 = "1anqi7vpbfzag7imccrc6di1zl5rl63ab7rfpmajpw6d1kzlsl9m";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/pixman/default.nix b/nixpkgs/pkgs/development/libraries/pixman/default.nix
index 639d6266b5a8..2a033304b66e 100644
--- a/nixpkgs/pkgs/development/libraries/pixman/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pixman/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "pixman-${version}";
-  version = "0.38.0";
+  version = "0.38.4";
 
   src = fetchurl {
     url = "mirror://xorg/individual/lib/${name}.tar.bz2";
-    sha256 = "1a1nnkjv0rqdj26847r0saly0kzckjfp4y3ly30bvpjxi7vy6s5p";
+    sha256 = "0l0m48lnmdlmnaxn2021qi5cj366d9fzfjxkqgcj9bs14pxbgaw4";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
index de9a656f6ff1..d5bd065ab648 100644
--- a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -100,7 +100,6 @@ stdenv.mkDerivation rec {
     ++ lib.optional flashplayerFix (substituteAll {
         src = ./dlopen-webkit-nsplugin.diff;
         gtk = gtk2.out;
-        gdk_pixbuf = gdk_pixbuf.out;
       })
     ++ lib.optional stdenv.isAarch64 (fetchpatch {
         url = "https://src.fedoraproject.org/rpms/qt/raw/ecf530486e0fb7fe31bad26805cde61115562b2b/f/qt-aarch64.patch";
diff --git a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/dlopen-webkit-nsplugin.diff b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/dlopen-webkit-nsplugin.diff
index 14199d405030..d2ebbf3b45a8 100644
--- a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/dlopen-webkit-nsplugin.diff
+++ b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/dlopen-webkit-nsplugin.diff
@@ -20,7 +20,7 @@ index 2fe69d1..b658e4a 100644
      // The code below has the same effect as this one:
      // Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
 -    QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
-+    QLibrary library(QLatin1String("@gdk_pixbuf@/lib/libgdk-x11-2.0"), 0);
++    QLibrary library(QLatin1String("@gtk@/lib/libgdk-x11-2.0"), 0);
      if (!library.load())
          return 0;
  
@@ -46,7 +46,7 @@ index b8c8f2a..e7f4dc5 100644
      // Display *gdkDisplay = gdk_x11_display_get_xdisplay(gdk_display_get_default());
  
 -    QLibrary library(QLatin1String("libgdk-x11-2.0"), 0);
-+    QLibrary library(QLatin1String("@gdk_pixbuf@/lib/libgdk-x11-2.0"), 0);
++    QLibrary library(QLatin1String("@gtk@/lib/libgdk-x11-2.0"), 0);
      if (!library.load())
          return 0;
  
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
index 6b43f6ed25c0..2a474ab0ffea 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
@@ -58,7 +58,8 @@ qtModule {
     ++ optionals flashplayerFix
       [
         ''-DNIXPKGS_LIBGTK2="${getLib gtk2}/lib/libgtk-x11-2.0"''
-        ''-DNIXPKGS_LIBGDK2="${getLib gdk_pixbuf}/lib/libgdk-x11-2.0"''
+        # this file used to exist in gdk_pixbuf?
+        ''-DNIXPKGS_LIBGDK2="${getLib gtk2}/lib/libgdk-x11-2.0"''
       ]
     ++ optional (!stdenv.isDarwin) ''-DNIXPKGS_LIBUDEV="${getLib systemd}/lib/libudev"'';
 
diff --git a/nixpkgs/pkgs/development/libraries/quazip/default.nix b/nixpkgs/pkgs/development/libraries/quazip/default.nix
index b53335f45c34..addf9a1dbd6c 100644
--- a/nixpkgs/pkgs/development/libraries/quazip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/quazip/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, stdenv, zlib, qtbase, qmake }:
+{ fetchFromGitHub, stdenv, zlib, qtbase, qmake, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "quazip";
@@ -12,12 +12,15 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ zlib qtbase ];
-  nativeBuildInputs = [ qmake ];
+  nativeBuildInputs = [ qmake ]
+    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+  qmakeFlags = [ "quazip" ]
+    ++ stdenv.lib.optional stdenv.isDarwin [ "LIBS=-lz" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Provides access to ZIP archives from Qt programs";
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = licenses.lgpl21Plus;
     homepage = https://stachenov.github.io/quazip/; # Migrated from http://quazip.sourceforge.net/
-    platforms = stdenv.lib.platforms.linux;
+    platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/spdk/default.nix b/nixpkgs/pkgs/development/libraries/spdk/default.nix
index 14672c78d21c..cab0e69ad1a7 100644
--- a/nixpkgs/pkgs/development/libraries/spdk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/spdk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "spdk-${version}";
-  version = "18.04";
+  version = "19.04";
 
   src = fetchFromGitHub {
     owner = "spdk";
     repo = "spdk";
     rev = "v${version}";
-    sha256 = "07i13jkf63h5ld9djksxl445v1mj6m5cbq4xydix9y5qcxwlss3n";
+    sha256 = "10mzal1hspnh26ws5d7sc54gyjfzkf6amr0gkd7b368ng2a9z8s6";
   };
 
   nativeBuildInputs = [ python ];
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Set of libraries for fast user-mode storage";
-    homepage = http://www.spdk.io;
+    homepage = "https://spdk.io/";
     license = licenses.bsd3;
     platforms =  [ "x86_64-linux" ];
     maintainers = with maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/development/libraries/vte/default.nix b/nixpkgs/pkgs/development/libraries/vte/default.nix
index 33262325674e..273072e93239 100644
--- a/nixpkgs/pkgs/development/libraries/vte/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vte/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vte";
-  version = "0.56.2";
+  version = "0.56.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0dyj2dqbzap37dvjax6vy2kwfqsw9d1hrc4ji33lha3mk1q3b5bf";
+    sha256 = "0j166gic5znssdb9r45qazq4kb4v9fial82czand5wa8i2yd988p";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock b/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
index 64eb87294a43..c9b27c366785 100644
--- a/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
+++ b/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
@@ -9,10 +9,10 @@ GEM
       tzinfo (~> 1.1)
     atomos (0.1.3)
     claide (1.0.2)
-    cocoapods (1.7.0.rc.1)
+    cocoapods (1.7.0.rc.2)
       activesupport (>= 4.0.2, < 5)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.7.0.rc.1)
+      cocoapods-core (= 1.7.0.rc.2)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 1.2.2, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -28,7 +28,7 @@ GEM
       nap (~> 1.0)
       ruby-macho (~> 1.4)
       xcodeproj (>= 1.8.2, < 2.0)
-    cocoapods-core (1.7.0.rc.1)
+    cocoapods-core (1.7.0.rc.2)
       activesupport (>= 4.0.2, < 6)
       fuzzy_match (~> 2.0.4)
       nap (~> 1.0)
diff --git a/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile.lock b/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile.lock
index 9145ca181883..37915b87431b 100644
--- a/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile.lock
+++ b/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile.lock
@@ -9,10 +9,10 @@ GEM
       tzinfo (~> 1.1)
     atomos (0.1.3)
     claide (1.0.2)
-    cocoapods (1.6.1)
+    cocoapods (1.6.2)
       activesupport (>= 4.0.2, < 5)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.6.1)
+      cocoapods-core (= 1.6.2)
       cocoapods-deintegrate (>= 1.0.2, < 2.0)
       cocoapods-downloader (>= 1.2.2, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -28,7 +28,7 @@ GEM
       nap (~> 1.0)
       ruby-macho (~> 1.4)
       xcodeproj (>= 1.8.1, < 2.0)
-    cocoapods-core (1.6.1)
+    cocoapods-core (1.6.2)
       activesupport (>= 4.0.2, < 6)
       fuzzy_match (~> 2.0.4)
       nap (~> 1.0)
@@ -59,7 +59,7 @@ GEM
     thread_safe (0.3.6)
     tzinfo (1.2.5)
       thread_safe (~> 0.1)
-    xcodeproj (1.8.2)
+    xcodeproj (1.9.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
diff --git a/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix b/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix
index e5841c4d2d33..643760a91c0f 100644
--- a/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix
+++ b/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix
@@ -46,10 +46,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wdy3kjlz121i6b0njq09xz6wvw6l6pkwabgswbmk5b8m74q97ml";
+      sha256 = "0s9kqrmlvmgyd9aqrv89lg1ccspbk9hw2qx3fpb56xff1zk69gwf";
       type = "gem";
     };
-    version = "1.7.0.rc.1";
+    version = "1.7.0.rc.2";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "fuzzy_match" "nap"];
@@ -57,10 +57,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k7zb0afy49hb24mfg8ypdsbk6j1sr9m8bwqm8p11w4113wbv95w";
+      sha256 = "0x940n7ifn8fpr9siicqassryarg13sxh6nmi3cgbbdmnd1ic8b1";
       type = "gem";
     };
-    version = "1.7.0.rc.1";
+    version = "1.7.0.rc.2";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/development/mobile/cocoapods/gemset.nix b/nixpkgs/pkgs/development/mobile/cocoapods/gemset.nix
index de6c524633f6..6ef71592bb5b 100644
--- a/nixpkgs/pkgs/development/mobile/cocoapods/gemset.nix
+++ b/nixpkgs/pkgs/development/mobile/cocoapods/gemset.nix
@@ -40,10 +40,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sjipdbybs2ikjz9drpwfq1msisha3cbf3508ywaj5w3i481av37";
+      sha256 = "1f2xdcar9yk3x4v18pjh3rnn489h252wh3llxx39ig18pcijwzmg";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "1.6.2";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "fuzzy_match" "nap"];
@@ -51,10 +51,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03g31gn8k9q8ky1qhg9i2xawg6xdpl8x3mq4fdah17jclsg8y0sh";
+      sha256 = "052fwscc9k3pvka6y8c2mh8i7wm6a6jk44b236krj33jyzk0z2vw";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "1.6.2";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -254,9 +254,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ji3wmpr6xm4172vxh9y6731vm2xrvv7ccwk4ijd5n4if1dakm03";
+      sha256 = "0qhanxa4zbirbdq6skdpg7hvx1vivwy1i5x22c3xkdb7pykh7dm7";
       type = "gem";
     };
-    version = "1.8.2";
+    version = "1.9.0";
   };
 }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/pharo/vm/build-vm-legacy.nix b/nixpkgs/pkgs/development/pharo/vm/build-vm-legacy.nix
index f2fd6eebd56e..bd84dd06e7f4 100644
--- a/nixpkgs/pkgs/development/pharo/vm/build-vm-legacy.nix
+++ b/nixpkgs/pkgs/development/pharo/vm/build-vm-legacy.nix
@@ -14,7 +14,6 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     cd build/
   '';
-  resources = ./resources;
 
   installPhase = ''
     mkdir -p "$prefix/lib/$name"
diff --git a/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/16x16/apps/pharo.png b/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/16x16/apps/pharo.png
deleted file mode 100644
index 7910e17ebc49..000000000000
--- a/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/16x16/apps/pharo.png
+++ /dev/null
Binary files differdiff --git a/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/256x256/apps/pharo.png b/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/256x256/apps/pharo.png
deleted file mode 100644
index f6e881417524..000000000000
--- a/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/256x256/apps/pharo.png
+++ /dev/null
Binary files differdiff --git a/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/32x32/apps/pharo.png b/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/32x32/apps/pharo.png
deleted file mode 100644
index ec8a5f95c6c4..000000000000
--- a/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/32x32/apps/pharo.png
+++ /dev/null
Binary files differdiff --git a/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/48x48/apps/pharo.png b/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/48x48/apps/pharo.png
deleted file mode 100644
index 3f206cf8b18c..000000000000
--- a/nixpkgs/pkgs/development/pharo/vm/resources/share/icons/hicolor/48x48/apps/pharo.png
+++ /dev/null
Binary files differdiff --git a/nixpkgs/pkgs/development/pharo/vm/resources/share/mime/packages/pharo-image.xml b/nixpkgs/pkgs/development/pharo/vm/resources/share/mime/packages/pharo-image.xml
deleted file mode 100644
index 927514dd215b..000000000000
--- a/nixpkgs/pkgs/development/pharo/vm/resources/share/mime/packages/pharo-image.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
-  <mime-type type="application/x-pharo-image">
-    <comment>Pharo image file</comment>
-    <comment xml:lang="fr">Fichier d'image Pharo</comment>
-    <glob pattern="*.image"/>
-    <icon name="pharo"/>
-  </mime-type>
-</mime-info>
diff --git a/nixpkgs/pkgs/development/pharo/vm/share.nix b/nixpkgs/pkgs/development/pharo/vm/share.nix
index 1a24ecd274ee..75ce2ff771c9 100644
--- a/nixpkgs/pkgs/development/pharo/vm/share.nix
+++ b/nixpkgs/pkgs/development/pharo/vm/share.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   version = "1.0";
   name = "pharo-share-${version}";
 
-  src = ./resources;
+  unpackPhase = "true";
 
   sources10Zip = fetchurl {
     url = http://files.pharo.org/sources/PharoV10.sources.zip;
@@ -41,8 +41,6 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $prefix/lib
 
-    cp -R "$src/"* "$prefix/"
-
     unzip ${sources10Zip} -d $prefix/lib/
     unzip ${sources20Zip} -d $prefix/lib/
     unzip ${sources30Zip} -d $prefix/lib/
diff --git a/nixpkgs/pkgs/development/python-modules/anytree/default.nix b/nixpkgs/pkgs/development/python-modules/anytree/default.nix
new file mode 100644
index 000000000000..3821fea2446c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/anytree/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, substituteAll
+, fetchpatch
+, nose
+, six
+, graphviz
+, fontconfig
+}:
+
+buildPythonPackage rec {
+  pname = "anytree";
+  version = "2.6.0";
+
+  src = fetchFromGitHub {
+    owner = "c0fec0de";
+    repo = pname;
+    rev = version;
+    sha256 = "1k3yj9h3ssjlz57r4g1qzxvprxjp7n92vms9fv0d46pigylxm5i3";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./graphviz.patch;
+      inherit graphviz;
+    })
+    # Fix tests python3.7
+    # See: https://github.com/c0fec0de/anytree/pull/85
+    (fetchpatch {
+      url = "https://github.com/c0fec0de/anytree/commit/dd1b3d325546fef7436711e4cfea9a5fb61daaf8.patch";
+      sha256 = "1dpa2jh2kakfaapnqrz03frb67q5fwxzc8c70i6nv1b01i9xw0bn";
+    })
+  ];
+
+  checkInputs = [
+    nose
+  ];
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  # Fontconfig error: Cannot load default config file
+  preCheck = ''
+    export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+
+    nosetests
+
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Powerful and Lightweight Python Tree Data Structure";
+    homepage = https://github.com/c0fec0de/anytree;
+    license = licenses.asl20;
+    maintainers = [ maintainers.worldofpeace ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/anytree/graphviz.patch b/nixpkgs/pkgs/development/python-modules/anytree/graphviz.patch
new file mode 100644
index 000000000000..583b60444e35
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/anytree/graphviz.patch
@@ -0,0 +1,13 @@
+diff --git a/anytree/exporter/dotexporter.py b/anytree/exporter/dotexporter.py
+index 9c10a68..209a952 100644
+--- a/anytree/exporter/dotexporter.py
++++ b/anytree/exporter/dotexporter.py
+@@ -228,7 +228,7 @@ class DotExporter(object):
+             for line in self:
+                 dotfile.write(("%s\n" % line).encode("utf-8"))
+             dotfile.flush()
+-            cmd = ["dot", dotfilename, "-T", fileformat, "-o", filename]
++            cmd = ["@graphviz@/bin/dot", dotfilename, "-T", fileformat, "-o", filename]
+             check_call(cmd)
+         try:
+             remove(dotfilename)
diff --git a/nixpkgs/pkgs/development/python-modules/astroid/default.nix b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
index 4cef66a5c2e9..591726ea1ace 100644
--- a/nixpkgs/pkgs/development/python-modules/astroid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
@@ -5,19 +5,19 @@
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.1.0";
+  version = "2.2.5";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08hz675knh4294bancdapql392fmbjyimhbyrmfkz1ka7l035c1m";
+    sha256 = "1x5c8fiqa18frwwfdsw41lpqsyff3w4lxvjx9d5ccs4zfkhy2q35";
   };
 
   # From astroid/__pkginfo__.py
   propagatedBuildInputs = [ lazy-object-proxy six wrapt ]
     ++ lib.optional (pythonOlder "3.5") typing
-    ++ lib.optional (pythonOlder "3.7" && !isPyPy) typed-ast;
+    ++ lib.optional (!isPyPy) typed-ast;
 
   checkInputs = [ pytestrunner pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/blis/default.nix b/nixpkgs/pkgs/development/python-modules/blis/default.nix
new file mode 100644
index 000000000000..5fee40a941f9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/blis/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchPypi
+, cython
+, hypothesis
+, numpy
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "blis";
+  version = "0.2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0c5hd0bim9134sk8wb31cqzvi9c380rbl5zwjiwrq8nnix8a2k1d";
+  };
+
+  nativeBuildInputs = [
+    cython
+  ];
+
+
+  checkInputs = [
+    cython
+    hypothesis
+    numpy
+    pytest
+  ];
+
+  meta = with stdenv.lib; {
+    description = "BLAS-like linear algebra library";
+    homepage = https://github.com/explosion/cython-blis;
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+    };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/block-io/default.nix b/nixpkgs/pkgs/development/python-modules/block-io/default.nix
index 03a1181a014d..f90f3f9af75a 100644
--- a/nixpkgs/pkgs/development/python-modules/block-io/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/block-io/default.nix
@@ -1,21 +1,14 @@
-{ stdenv, fetchPypi, fetchpatch, buildPythonPackage, base58, ecdsa, pycryptodome, requests, six }:
+{ stdenv, fetchPypi, buildPythonPackage, base58, ecdsa, pycryptodome, requests, six }:
 
 buildPythonPackage rec {
   pname = "block-io";
-  version = "1.1.9";
+  version = "1.1.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4909d58b32ab7f93d3cd83fa4bbe4edef42ab7566f016bdb6a405a0d8b1907c9";
+    sha256 = "ba2e750085d9da4d1567932f3f719974fdc3f02649ee0d5c2f85fce592208723";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/BlockIo/block_io-python/commit/8ec0a0cd1afcfcb439d6dc306d8497dd9e4a0993.patch";
-      sha256 = "1i6c153wvkr5ncm3cpn34faxvavz534x5kndwn4adlaxlzq30snn";
-    })
-  ];
-
   propagatedBuildInputs = [
     base58
     ecdsa
@@ -24,6 +17,11 @@ buildPythonPackage rec {
     six
   ];
 
+  preConfigure = ''
+    substituteInPlace setup.py \
+      --replace "ecdsa==0.13" "ecdsa>=0.13"
+  '';
+
   # Tests needs a BlockIO API key to run properly
   # https://github.com/BlockIo/block_io-python/blob/79006bc8974544b70a2d8e9f19c759941d32648e/test.py#L18
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/default.nix b/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
index 268c08ced848..066d7058fed5 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildPythonPackage, /*fetchPypi,*/ fetchFromGitHub, makeWrapper, isPy3k,
+{ stdenv, lib, buildPythonPackage, fetchPypi, makeWrapper, isPy3k,
   python, twisted, jinja2, zope_interface, future, sqlalchemy,
   sqlalchemy_migrate, dateutil, txaio, autobahn, pyjwt, pyyaml, treq,
   txrequests, txgithub, pyjade, boto3, moto, mock, python-lz4, setuptoolsTrial,
@@ -25,21 +25,12 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "2.1.0";
+    version = "2.3.0";
 
-    /*src = fetchPypi {
+    src = fetchPypi {
       inherit pname version;
-      sha256 = "1745hj9s0c0fcdjv6w05bma76xqg1fv42v0dslmi4d8yz9phf37w";
-    };*/
-    # Temporarily use GitHub source because PyPi archive is missing some files
-    # needed for the tests to pass. This has been fixed upstream.
-    # See: https://github.com/buildbot/buildbot/commit/30f5927cf9a80f98ed909241a149469dec3ce68d
-    src = fetchFromGitHub {
-      owner = "buildbot";
-      repo = "buildbot";
-      rev = "v${version}";
-      sha256 = "022ybhdvp0hp2z0cwgx7n41jyh56bpxj3fwm4z7ppzj1qhm7lb65";
-    } + "/master";
+      sha256 = "1fdahbpihs93pj640y2079yilca6w7vlwirfcz221885ih148257";
+    };
 
     propagatedBuildInputs = [
       # core
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix b/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
index 35524040da99..f95d71dc2903 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "buildbot-pkg";
-  version = "2.1.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03lv97q4pp2izjfbwfv4zmf2fyiz7jyp537bi3gc6rhfbrfgib1i";
+    sha256 = "1ajgvnhwvryi10q9bklpfazi7vxw2my9jlqgwnjccycbr6yznzsw";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix b/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
index 2f73fbc81a4f..d15b33912aed 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
@@ -11,7 +11,7 @@
     src = fetchPypi {
       inherit pname version format;
       python = "py3";
-      sha256 = "011sagw8zp1z12vzkxi44w3w2lbxncz5yahkrbxj8hp6iwfzfm5v";
+      sha256 = "134b8y498bq5fp4863hj9058wr7mcw0xgl74br0f1dy9n7jdcl39";
     };
 
     meta = with lib; {
@@ -28,7 +28,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "11gz4ry1law3l64ii383cj5fnbw9409czp2ybzkqafr4xi1qbk9h";
+      sha256 = "1yh8xij3wizz0f88chjpdijm7i35ql87g84ph3f76sqyr6aj6ckw";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
@@ -48,7 +48,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0w4iwpj1rg20fbli0ppqz70l1mc9ilg0crq8g3xrf29f9z8d1w27";
+      sha256 = "04iihy1s9r4n5jlk57pdjy3yvp6zym2iv2bgqjhw6fy0hff5j8ys";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
@@ -68,7 +68,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0xyvxamw45qhnfml3x5hfg9nai1jhdwbmq4pm8csf3ad0cw6vqya";
+      sha256 = "0bcilhcz9xnr8799d5j4sm6qz8pdjlckdck7a282nfs64liajsrh";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
@@ -88,7 +88,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1szcrx8vslskifzxaq7lrfg2arilaq1w1aqr0nc8pjclj7idp92c";
+      sha256 = "13lr7lzi9sv0s6xrfalq0dkcys6fp7hn0787rjhnz9gc7x83aqjv";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix b/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
index f888448db218..c8ebdf34b868 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage (rec {
   pname = "buildbot-worker";
-  version = "2.1.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14qimaf513h2hklcpix8vscrawvr1qiyn1vy88ycpsbz9mcqbhps";
+    sha256 = "0nldf4ws1nrkhbapxiy2s8j9fjfbkhp17c5912p6qy3ximfcfa93";
   };
 
   propagatedBuildInputs = [ twisted future ];
diff --git a/nixpkgs/pkgs/development/python-modules/celery/default.nix b/nixpkgs/pkgs/development/python-modules/celery/default.nix
index 404ead243a98..41c9493922a9 100644
--- a/nixpkgs/pkgs/development/python-modules/celery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/celery/default.nix
@@ -13,6 +13,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace requirements/test.txt \
+      --replace "moto==1.3.7" moto \
       --replace "pytest>=4.3.1,<4.4.0" pytest
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/fasttext/default.nix b/nixpkgs/pkgs/development/python-modules/fasttext/default.nix
new file mode 100644
index 000000000000..05034dc75262
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fasttext/default.nix
@@ -0,0 +1,28 @@
+{stdenv, buildPythonPackage, fetchFromGitHub, numpy, pybind11}:
+
+buildPythonPackage rec {
+  pname = "fasttext";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "facebookresearch";
+    repo = "fastText";
+    rev = version;
+    sha256 = "1fcrz648r2s80bf7vc0l371xillz5jk3ldaiv9jb7wnsyri831b4";
+  };
+
+  buildInputs = [ pybind11 ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  preBuild = ''
+    HOME=$TMPDIR
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python module for text classification and representation learning";
+    homepage = https://fasttext.cc/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fitbit/default.nix b/nixpkgs/pkgs/development/python-modules/fitbit/default.nix
new file mode 100644
index 000000000000..93bf4716073f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fitbit/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, coverage
+, dateutil
+, freezegun
+, mock
+, requests-mock
+, requests_oauthlib
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "fitbit";
+  version = "0.3.0";
+
+  checkInputs = [ coverage freezegun mock requests-mock sphinx ];
+  propagatedBuildInputs = [ dateutil requests_oauthlib ];
+
+  # The source package on PyPi is missing files required for unit testing.
+  # https://github.com/orcasgit/python-fitbit/issues/148
+  src = fetchFromGitHub {
+    rev = version;
+    owner = "orcasgit";
+    repo = "python-fitbit";
+    sha256 = "0s1kp4qcxvxghqf9nb71843slm4r5lhl2rlvj3yvhbby3cqs4g84";
+  };
+
+  postPatch = ''
+    substituteInPlace requirements/test.txt \
+      --replace 'Sphinx>=1.2,<1.4' 'Sphinx' \
+      --replace 'coverage>=3.7,<4.0' 'coverage'
+  '';
+
+  meta = with lib; {
+    description = "Fitbit API Python Client Implementation";
+    license = licenses.asl20;
+    homepage = https://github.com/orcasgit/python-fitbit;
+    maintainers = with maintainers; [ delroth ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/gphoto2/default.nix b/nixpkgs/pkgs/development/python-modules/gphoto2/default.nix
index 199f568322ac..9d760b37d379 100644
--- a/nixpkgs/pkgs/development/python-modules/gphoto2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gphoto2/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "gphoto2";
-  version = "1.9.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9c8e0c3ca22c0a2bfd0f27d24be6e4da5fe315d39d51f5af7bb5da416dbfa4b7";
+    sha256 = "01vcbjsy5zpfd9rzshk2d6150vhb66m5n420j0wd0k0i0p74ya98";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/python-modules/httpretty/default.nix b/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
index 0f61fd6d516b..7d8f25ca9540 100644
--- a/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
@@ -34,7 +34,11 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  NOSE_EXCLUDE = stdenv.lib.optionalString (stdenv.isAarch64) "tests.functional.test_httplib2.test_callback_response";
+  # Those flaky tests are failing intermittently on all platforms
+  NOSE_EXCLUDE = stdenv.lib.concatStringsSep "," [
+    "tests.functional.test_httplib2.test_callback_response"
+    "tests.functional.test_requests.test_streaming_responses"
+  ];
 
   meta = with stdenv.lib; {
     homepage = "https://httpretty.readthedocs.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
index 6d9d2a6b309f..db8c5b774e41 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "0.35.4";
+  version = "0.35.6";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "deba0b2803640fcad72c61366bff11d5945173015961586d5e3b2f629ffeb455";
+    sha256 = "2ec845845d51221e39d0d753884a19342c953f39febf3148a68631bf57ecb774";
   };
 
   propagatedBuildInputs = [ jupyterlab_server notebook ];
diff --git a/nixpkgs/pkgs/development/python-modules/macropy/default.nix b/nixpkgs/pkgs/development/python-modules/macropy/default.nix
new file mode 100644
index 000000000000..952740d78376
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/macropy/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, python
+, isPy27
+, pinqSupport ? false, sqlalchemy
+, pyxlSupport ? false, pyxl3
+}:
+
+buildPythonPackage rec {
+  # https://github.com/lihaoyi/macropy/issues/94
+  version = "1.1.0b2";
+  pname = "macropy";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "lihaoyi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1bd2fzpa30ddva3f8lw2sbixxf069idwib8srd64s5v46ricm2cf";
+  };
+
+  # js_snippets extra only works with python2
+  propagatedBuildInputs = [ ]
+    ++ lib.optional pinqSupport sqlalchemy
+    ++ lib.optional pyxlSupport pyxl3;
+
+  checkPhase = ''
+    ${python.interpreter} run_tests.py
+  '';
+
+  meta = with lib; {
+    homepage = https://github.com/lihaoyi/macropy;
+    description = "Macros in Python: quasiquotes, case classes, LINQ and more";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pamqp/default.nix b/nixpkgs/pkgs/development/python-modules/pamqp/default.nix
index 844a66392c65..07eab3b7bc92 100644
--- a/nixpkgs/pkgs/development/python-modules/pamqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pamqp/default.nix
@@ -9,12 +9,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.1.0";
+  version = "2.3.0";
   pname = "pamqp";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e1fa1107a195993fca6e04f1eb7286b60e223c958944d7808a501258ccc0ef8c";
+    sha256 = "1s4lwbsiikz3czqad7jarb7k303q0wamla0rirghvwl9bslgbl2w";
   };
 
   buildInputs = [ mock nose pep8 pylint mccabe ];
diff --git a/nixpkgs/pkgs/development/python-modules/plyvel/default.nix b/nixpkgs/pkgs/development/python-modules/plyvel/default.nix
index 9ce01c098fd4..b66d32311461 100644
--- a/nixpkgs/pkgs/development/python-modules/plyvel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plyvel/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "plyvel";
-  version = "1.0.5";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14cbdyq1s8xmvha3lj942gw478cd6jyhkw8n0mhxpgbz8px9jkfn";
+    sha256 = "1icsycqqjj8048a0drj3j75a71yiv2cmijh4w3jf9zxahh3k2c9p";
   };
 
   buildInputs = [ pkgs.leveldb ] ++ stdenv.lib.optional isPy3k pytest;
diff --git a/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix b/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
new file mode 100644
index 000000000000..13f8efbb5813
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pyatmo";
+  version = "1.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "13ca794416707b8cefcb7584bbfff65a4640fcc2510ad73e818fef94d424fca6";
+  };
+
+  # Upstream provides no unit tests.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Simple API to access Netatmo weather station data";
+    license = licenses.mit;
+    homepage = https://github.com/jabesq/netatmo-api-python;
+    maintainers = with maintainers; [ delroth ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
index 7d0f7da5d96c..ff4059d862ee 100644
--- a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "3.2.0";
+  version = "3.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jksh7rb4880kni8iw3hb5q9dm5gi40zmx4r2fwydnpfhadhq5af";
+    sha256 = "e1e71e30581e1021b6bdd50a80cfcdcfa86d9082171fdd719c5ca6a77b8a9699";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/pylint/default.nix b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
index 6cfb6367307c..8f1f4378a394 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.2.3";
+  version = "2.3.1";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13109caab4972cb6d7395e94ad7189e93e9454f09ededaa6b6784cc5456d41f1";
+    sha256 = "1wgzq0da87m7708hrc9h4bc5m4z2p7379i4xyydszasmjns3sgkj";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysonos/default.nix b/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
new file mode 100644
index 000000000000..7e9414d5207c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, xmltodict
+, requests
+, ifaddr
+
+# Test dependencies
+, pytest_3, pylint, flake8, graphviz
+, mock, sphinx, sphinx_rtd_theme
+}:
+
+buildPythonPackage rec {
+  pname = "pysonos";
+  version = "0.0.13";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0azkbd20qdzdilv5pi4qngw7pjjcsv269dim7xh3qv7s9bp0xik8";
+  };
+
+  propagatedBuildInputs = [ xmltodict requests ifaddr ];
+
+  checkInputs = [
+    pytest_3 pylint flake8 graphviz
+    mock sphinx sphinx_rtd_theme
+  ];
+
+  meta = {
+    homepage = https://github.com/amelchio/pysonos;
+    description = "A SoCo fork with fixes for Home Assistant";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ juaningan ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix b/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
index 39950b97f6c7..699d370af757 100644
--- a/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
@@ -1,17 +1,19 @@
-{ stdenv, fetchPypi, buildPythonPackage, unidecode, regex, isPy3k }:
+{ stdenv, fetchPypi, buildPythonPackage, python, text-unidecode }:
 
 buildPythonPackage rec {
     pname = "python-slugify";
-    version = "2.0.1";
+    version = "3.0.2";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "d3e034397236020498e677a35e5c05dcc6ba1624b608b9ef7e5fe3090ccbd5a8";
+      sha256 = "57163ffb345c7e26063435a27add1feae67fa821f1ef4b2f292c25847575d758";
     };
-    doCheck = !isPy3k;
-    # (only) on python3 unittest loader (loadTestsFromModule) fails
 
-    propagatedBuildInputs = [ unidecode regex ];
+    propagatedBuildInputs = [ text-unidecode ];
+
+    checkPhase = ''
+      ${python.interpreter} test.py
+    '';
 
     meta = with stdenv.lib; {
       homepage = https://github.com/un33k/python-slugify;
diff --git a/nixpkgs/pkgs/development/python-modules/pytricia/default.nix b/nixpkgs/pkgs/development/python-modules/pytricia/default.nix
new file mode 100644
index 000000000000..2f95d7fcecb2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytricia/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "pytricia";
+  version = "unstable-2019-01-16";
+
+  src = fetchFromGitHub {
+    owner = "jsommers";
+    repo = pname;
+    rev = "4ba88f68c3125f789ca8cd1cfae156e1464bde87";
+    sha256 = "0qp5774xkm700g35k5c76pck8pdzqlyzbaqgrz76a1yh67s2ri8h";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library for fast IP address lookup in Python";
+    homepage = https://github.com/jsommers/pytricia;
+    license = with licenses; [ lgpl3Plus ];
+    maintainers = with maintainers; [ mkg ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytz/default.nix b/nixpkgs/pkgs/development/python-modules/pytz/default.nix
index 0de3e989c24b..534bb1618bc4 100644
--- a/nixpkgs/pkgs/development/python-modules/pytz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytz/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytz";
-  version = "2018.9";
+  version = "2019.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d5f05e487007e29e03409f9398d074e158d920d36eb82eaf66fb1136b0c5374c";
+    sha256 = "d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix b/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix
index 9fb057800db3..6fa4eb6387d0 100644
--- a/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytzdata";
-  version = "2018.9";
+  version = "2019.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dddaaf4f1717820a6fdcac94057e03c1a15b3829a44d9eaf19988917977db408";
+    sha256 = "f0469062f799c66480fcc7eae69a8270dc83f0e6522c0e70db882d6bd708d378";
   };
 
   # No tests
diff --git a/nixpkgs/pkgs/development/python-modules/pyxl3/default.nix b/nixpkgs/pkgs/development/python-modules/pyxl3/default.nix
new file mode 100644
index 000000000000..159645c425eb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyxl3/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, python
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "pyxl3";
+  version = "1.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "df413d86664e2d261f67749beffff07eb830ab8c7bbe631d11d4c42f3a5e5fde";
+  };
+
+  checkInputs = [ unittest2 ];
+
+  checkPhase = ''
+     ${python.interpreter} tests/test_basic.py
+  '';
+
+  # tests require weird codec installation
+  # which is not necessary for major use of package
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python 3 port of pyxl for writing structured and reusable inline HTML";
+    homepage = https://github.com/gvanrossum/pyxl3;
+    license = licenses.asl20;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix b/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix
index 354f2743e984..1612c31562fb 100644
--- a/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/r2pipe/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "r2pipe";
-  version = "1.2.0";
+  version = "1.3.1";
 
   postPatch = let
     r2lib = "${lib.getOutput "lib" radare2}/lib";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qs3xqmi9alahsgr8akzw06ia4c3554dz8pran1h7z5llk262nj4";
+    sha256 = "0xvv12q3cwbibim3r97dsz6lbj7xxhlbq7fdm4pznwfzg803cmiv";
   };
 
   # Tiny sanity check to make sure r2pipe finds radare2 (since r2pipe doesn't
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/default.nix b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
index a39593bb9e78..80524154f671 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
@@ -17,22 +17,24 @@
 , pathlib
 , msgpack-python
 , msgpack-numpy
+, jsonschema
+, blis
+, wasabi
+, srsly
 }:
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "2.0.18";
+  version = "2.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mybdms7c40jvk8ak180n65anjiyg4c8gkaqwkzicrd1mxq3ngqj";
+    sha256 = "03m4c59aaqpqr2x5yhv7y37z0vxhmmkfi6dv4cbp9nxsq9wv100d";
   };
 
   prePatch = ''
     substituteInPlace setup.py \
-      --replace "regex==" "regex>=" \
-      --replace "plac<1.0.0,>=0.9.6" "plac>=0.9.6" \
-      --replace "wheel>=0.32.0,<0.33.0" "wheel>=0.32.0"
+      --replace "plac<1.0.0,>=0.9.6" "plac>=0.9.6"
   '';
 
   propagatedBuildInputs = [
@@ -49,6 +51,10 @@ buildPythonPackage rec {
    ftfy
    msgpack-python
    msgpack-numpy
+   jsonschema
+   blis
+   wasabi
+   srsly
   ] ++ lib.optional (pythonOlder "3.4") pathlib;
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/models.json b/nixpkgs/pkgs/development/python-modules/spacy/models.json
index 34b8082872b7..d8078c116c2f 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/models.json
+++ b/nixpkgs/pkgs/development/python-modules/spacy/models.json
@@ -1,78 +1,96 @@
 [{
+  "pname": "de_core_news_md",
+  "version": "2.1.0",
+  "sha256": "0q1flyrp2n8ja11kdlw6x1k0gll0r096pxy8ba4xv15hjng2zay1",
+  "license": "cc-by-sa-40"
+},
+{
   "pname": "de_core_news_sm",
-  "version": "2.0.0",
-  "sha256": "13fs4f46qg9mlxd9ynmh81gxizm11kfq3g52pk8d2m7wp89xfc6a",
+  "version": "2.1.0",
+  "sha256": "0fj4dqa915i6niyskxmw2318fxzjhgdjhjx79h9cpp4mxw719w95",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "el_core_news_md",
+  "version": "2.1.0",
+  "sha256": "1rgy9hlb92amhlbwkd91yh87xssqj2a1ign0wm59aai69rb79q3s",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "el_core_news_sm",
+  "version": "2.1.0",
+  "sha256": "07n7qg0nnzg5gjq7vs72j9qc6z4zjx65qsrrj0hjhiihk3ps378z",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "en_core_web_lg",
-  "version": "2.0.0",
-  "sha256": "1r33l02jrkzjn78nd0bzzzd6rwjlz7qfgs3bg5yr2ki6q0m7qxvw",
+  "version": "2.1.0",
+  "sha256": "0ywcczd9nsxmpfwknxa7z54h566bwi7chq0jzx3sqk2a6lva4q52",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "en_core_web_md",
-  "version": "2.0.0",
-  "sha256": "1b5g5gma1gzm8ffj0pgli1pllccx5jpjvb7a19n7c8bfswpifxzc",
+  "version": "2.1.0",
+  "sha256": "10vgq1xd6dpdl7xdssgf0kywbq7xpxp79yqc2vcnl3c4axfpwk5q",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "en_core_web_sm",
-  "version": "2.0.0",
-  "sha256": "161298pl6kzc0cgf2g7ji84xbqv8ayrgsrmmg0hxiflwghfj77cx",
+  "version": "2.1.0",
+  "sha256": "1wg5a7nxq82sfmnc3j5xfr8il65rprmcx2h36va5dvydm1h6icad",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "en_vectors_web_lg",
-  "version": "2.0.0",
-  "sha256": "15qfd8vzdv56x41fzghy7k5x1c8ql92ds70r37b6a8hkb87z9byw",
+  "version": "2.1.0",
+  "sha256": "1sq41pr70215f2s8k35x5ni4w0i4xhbzbfg3iyxgbp1b35gizg94",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "es_core_news_md",
-  "version": "2.0.0",
-  "sha256": "03056qz866r641q4nagymw6pc78qnn5vdvcp7p1ph2cvxh7081kp",
+  "version": "2.1.0",
+  "sha256": "02v7hm711r9ma8p5yk057z7hm2pcvpfjgnjszc697d0ymfn4avby",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "es_core_news_sm",
-  "version": "2.0.0",
-  "sha256": "1b91lcmw2kyqmcrxlfq7m5vlj1a57i3bb9a5h4y31smjgzmsr81s",
+  "version": "2.1.0",
+  "sha256": "1smyyb1gqp090sailqdqp5v5ww4kf99a3hcd9d9rdhn1wgsv28dh",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "fr_core_news_md",
-  "version": "2.0.0",
-  "sha256": "06kva46l1nw819bidzj2vks69ap1a9fa7rnvpd28l3z2haci38ls",
+  "version": "2.1.0",
+  "sha256": "0n94ja7y4jbvz0k0x5bij2dypy11ikvgpd9dav0m0hw1wpqgls1i",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "fr_core_news_sm",
-  "version": "2.0.0",
-  "sha256": "1zlhm9646g3cwcv4cs33160f3v8gxmzdr02x8hx7jpw1fbnmc5mx",
+  "version": "2.1.0",
+  "sha256": "1czr40y5sqs0n2dd4s37kc2xawkh2nsj41wvmsx48bw0aksb1n75",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "it_core_news_sm",
-  "version": "2.0.0",
-  "sha256": "0fs68rdq19migb3x3hb510b96aabibsi01adlk1fipll1x48msaz",
+  "version": "2.1.0",
+  "sha256": "1i8dm703mf1l39jwis3mn5mb9azpx6bsimh66iriax94612x64mb",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "nl_core_news_sm",
-  "version": "2.0.0",
-  "sha256": "0n5x61jp8rdxa3ki250ipbd68rjpp9li6xwbx3fbzycpngffwy8z",
+  "version": "2.1.0",
+  "sha256": "0ywyn7jprsfr10bvwnm3qk270raxm9s9rvzyp1cp7ca037ab633y",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "pt_core_news_sm",
-  "version": "2.0.0",
-  "sha256": "1sg500b3f3qnx1ga32hbq9p4qfynqhpdzhlmdjrxgqw8i58ys23g",
+  "version": "2.1.0",
+  "sha256": "0vigc9x7158sdqxjgcxgvp6458k5936jlmlp2qdmlmzxr5wmfrbc",
   "license": "cc-by-sa-40"
 },
 {
   "pname": "xx_ent_wiki_sm",
-  "version": "2.0.0",
-  "sha256": "0mc3mm6nfjp31wbjysdj2x72akyi52hgprm1g54djxfypm3pmn35",
+  "version": "2.1.0",
+  "sha256": "19sfsxwjqdzlfm43gb4hbyj0hgqcfhcfxwdib4g5i1pcfx1v3pf4",
   "license": "cc-by-sa-40"
 }]
diff --git a/nixpkgs/pkgs/development/python-modules/srsly/default.nix b/nixpkgs/pkgs/development/python-modules/srsly/default.nix
new file mode 100644
index 000000000000..ca5909f02f68
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/srsly/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, mock
+, numpy
+, pathlib
+, pytest
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "srsly";
+  version = "0.0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0apgm8znc3k79ifja16fvxsxwgpy3n2fvbp7iwf9szizzpjscylp";
+  };
+
+  propagatedBuildInputs = lib.optional (pythonOlder "3.4") pathlib;
+
+  checkInputs = [
+    mock
+    numpy
+    pytest
+    pytz
+  ];
+
+  # TypeError: cannot serialize '_io.BufferedRandom' object
+  # Possibly because of sandbox restrictions.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Modern high-performance serialization utilities for Python";
+    homepage = https://github.com/explosion/srsly;
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/thinc/default.nix b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
index 79ae18d33eaa..9cb25af7a92e 100644
--- a/nixpkgs/pkgs/development/python-modules/thinc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
@@ -21,15 +21,18 @@
 , mock
 , wrapt
 , dill
+, blis
+, srsly
+, wasabi
 }:
 
 buildPythonPackage rec {
   pname = "thinc";
-  version = "6.12.1";
+  version = "7.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kkp8b3xcs3yn3ia5sxrh086c9xv27s2khdxd17abdypxxa99ich";
+    sha256 = "14v8ygjrkj63dwd4pi490ld6i2d8n8wzcf15hnacjjfwij93pa1q";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
@@ -37,6 +40,7 @@ buildPythonPackage rec {
   ]);
 
   propagatedBuildInputs = [
+   blis
    cython
    cymem
    msgpack-numpy
@@ -48,8 +52,10 @@ buildPythonPackage rec {
    cytoolz
    plac
    six
+   srsly
    wrapt
    dill
+   wasabi
   ] ++ lib.optional (pythonOlder "3.4") pathlib;
 
 
@@ -61,12 +67,7 @@ buildPythonPackage rec {
 
   prePatch = ''
     substituteInPlace setup.py \
-      --replace "pathlib==1.0.1" "pathlib>=1.0.0,<2.0.0" \
-      --replace "plac>=0.9.6,<1.0.0" "plac>=0.9.6" \
-      --replace "msgpack-numpy<0.4.4" "msgpack-numpy" \
-      --replace "wheel>=0.32.0,<0.33.0" "wheel" \
-      --replace "wrapt>=1.10.0,<1.11.0" "wrapt" \
-      --replace "msgpack>=0.5.6,<0.6.0" "msgpack"
+      --replace "plac>=0.9.6,<1.0.0" "plac>=0.9.6"
   '';
 
   # Cannot find cython modules.
diff --git a/nixpkgs/pkgs/development/python-modules/wasabi/default.nix b/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
new file mode 100644
index 000000000000..01a9a4034d59
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "wasabi";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xxjc9bvvcaz1qq1jyhcxyl2v39jz8d8dz4zhpfbc7dz53kq6b7r";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest wasabi/tests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A lightweight console printing and formatting toolkit";
+    homepage = https://github.com/ines/wasabi;
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+    };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/zxcvbn-python/default.nix b/nixpkgs/pkgs/development/python-modules/zxcvbn-python/default.nix
index 8287c05f743b..94e8fc977e06 100644
--- a/nixpkgs/pkgs/development/python-modules/zxcvbn-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zxcvbn-python/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-}:
+{ lib, buildPythonPackage, fetchFromGitHub
+, pytest_3 }:
 
 buildPythonPackage rec {
   pname = "zxcvbn-python";
-  version = "4.4.24";
+  version = "4.4.27";
 
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "900b28cc5e96be4091d8778f19f222832890264e338765a1c1c09fca2db64b2d";
+  src = fetchFromGitHub {
+    owner = "dwolfhub";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0w0sx9ssjks8da973cdv5xi87yjsf038jqxmzj2y26xvpyjsg2v2";
   };
 
-  # No tests in archive
-  doCheck = false;
+  checkInputs = [
+    pytest_3
+  ];
 
   meta = {
     description = "Python implementation of Dropbox's realistic password strength estimator, zxcvbn";
     homepage = https://github.com/dwolfhub/zxcvbn-python;
     license = with lib.licenses; [ mit ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/analysis/brakeman/default.nix b/nixpkgs/pkgs/development/tools/analysis/brakeman/default.nix
index 90eeffd58da1..78a4396698b6 100644
--- a/nixpkgs/pkgs/development/tools/analysis/brakeman/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/brakeman/default.nix
@@ -4,8 +4,8 @@ buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "brakeman";
-  version = "4.5.0";
-  source.sha256 = "0c11i01yw87fssmwbybaqf5rdxsjp44hvxdw54c3iqb8fvj76b68";
+  version = "4.5.1";
+  source.sha256 = "0vqnhlswvrg5fpxszfkjmla85gdlvgspz0whlli730ydx648mi68";
 
   meta = with lib; {
     description = "Static analysis security scanner for Ruby on Rails";
diff --git a/nixpkgs/pkgs/development/tools/buildah/default.nix b/nixpkgs/pkgs/development/tools/buildah/default.nix
index 47db8c9fea63..002d90e3f1f8 100644
--- a/nixpkgs/pkgs/development/tools/buildah/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildah/default.nix
@@ -3,13 +3,13 @@
 , go-md2man }:
 
 let
-  version = "1.7.3";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "buildah";
-    sha256 = "154zjkccinf6nvbz5a8rdlkgy7fi6yz11wi100jn9cmsjydspax8";
+    sha256 = "1w8w10pw5mpr3lc78z2dx3vck40cl7s3zsizsxhs0a9kxnfp01j9";
   };
   goPackagePath = "github.com/containers/buildah";
 
diff --git a/nixpkgs/pkgs/development/tools/chit/default.nix b/nixpkgs/pkgs/development/tools/chit/default.nix
index c0fa754e1e9d..b312b888e908 100644
--- a/nixpkgs/pkgs/development/tools/chit/default.nix
+++ b/nixpkgs/pkgs/development/tools/chit/default.nix
@@ -6,13 +6,13 @@ with rustPlatform;
 
 buildRustPackage rec {
   pname = "chit";
-  version = "0.1.13";
+  version = "0.1.14";
 
   src = fetchFromGitHub {
     owner = "peterheesterman";
     repo = pname;
     rev = version;
-    sha256 = "1qp5ad83lvfz9l4ihz1l500p8bgf7q0z1k4f3i13nd5n7i3ksdjc";
+    sha256 = "1rzy15xwlf87c8kpy9pwvir6s9z3qc8d9iz4pk0gfdj2il3vmjwv";
   };
 
   cargoSha256 = "1jqnnf4jgjpm1i310hda15423nxfw9frgpmc2kbrs66qcsj7avaw";
diff --git a/nixpkgs/pkgs/development/tools/devd/default.nix b/nixpkgs/pkgs/development/tools/devd/default.nix
new file mode 100644
index 000000000000..f3e63c537897
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/devd/default.nix
@@ -0,0 +1,22 @@
+{ buildGoPackage, fetchFromGitHub, stdenv }:
+
+buildGoPackage rec {
+  pname = "devd";
+  version = "0.9";
+  src = fetchFromGitHub {
+    owner = "cortesi";
+    repo = "devd";
+    rev = "v${version}";
+    sha256 = "1b02fj821k68q7xl48wc194iinqw9jiavzfl136hlzvg4m07p1wf";
+  };
+  goPackagePath = "github.com/cortesi/devd";
+  subPackages = [ "cmd/devd" ];
+  goDeps = ./deps.nix;
+  meta = with stdenv.lib; {
+    description = "A local webserver for developers";
+    homepage = https://github.com/cortesi/devd;
+    license = licenses.mit;
+    maintainers = with maintainers; [ brianhicks ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/devd/deps.nix b/nixpkgs/pkgs/development/tools/devd/deps.nix
new file mode 100644
index 000000000000..2cf6dd7eb23b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/devd/deps.nix
@@ -0,0 +1,201 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/GeertJohan/go.rice";
+    fetch = {
+      type = "git";
+      url = "https://github.com/GeertJohan/go.rice";
+      rev =  "c02ca9a983da5807ddf7d796784928f5be4afd09";
+      sha256 = "1wzi3fprizg29dd4b4bmwz49x154k8cry9d7c08441y1i8w895yw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/alecthomas/template";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/template";
+      rev =  "a0175ee3bccc567396460bf5acd36800cb10c49c";
+      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+    };
+  }
+  {
+    goPackagePath  = "github.com/alecthomas/units";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/units";
+      rev =  "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
+      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+    };
+  }
+  {
+    goPackagePath  = "github.com/bmatcuk/doublestar";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bmatcuk/doublestar";
+      rev =  "85a78806aa1b4707d1dbace9be592cf1ece91ab3";
+      sha256 = "01fd5j142pgsj5gfba43646aa6vd09fzvjhhik2r30nj4lsyy3z8";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cortesi/moddwatch";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cortesi/moddwatch";
+      rev =  "0a1e0881aa8823d4dbec04c5b65a32a33f467e46";
+      sha256 = "0f9gi2vvrhsbbvfqzlx2dcgn389qj1h77rvh2iffqhnsn3cxf5fr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cortesi/termlog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cortesi/termlog";
+      rev =  "87cefd5ac843f65364f70a1fd2477bb6437690e8";
+      sha256 = "1mygv1bv6dkm5p1wsvzrsyq771k6apdcxlyfqdp5ay8vl75jxvmb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/daaku/go.zipexe";
+    fetch = {
+      type = "git";
+      url = "https://github.com/daaku/go.zipexe";
+      rev =  "a5fe2436ffcb3236e175e5149162b41cd28bd27d";
+      sha256 = "0vi5pskhifb6zw78w2j97qbhs09zmrlk4b48mybgk5b3sswp6510";
+    };
+  }
+  {
+    goPackagePath  = "github.com/dustin/go-humanize";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dustin/go-humanize";
+      rev =  "9f541cc9db5d55bce703bd99987c9d5cb8eea45e";
+      sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/fatih/color";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/color";
+      rev =  "3f9d52f7176a6927daacff70a3e8d1dc2025c53e";
+      sha256 = "165ww24x6ba47ji4j14mp3f006ksnmi53ws9280pgd2zcw91nbn8";
+    };
+  }
+  {
+    goPackagePath  = "github.com/goji/httpauth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/goji/httpauth";
+      rev =  "2da839ab0f4df05a6db5eb277995589dadbd4fb9";
+      sha256 = "0rcz1qxdbc2gw0gaj81kag94k98izs9vmhcp5mzs7979s7q4kym1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gorilla/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/websocket";
+      rev =  "66b9c49e59c6c48f0ffce28c2d8b8a5678502c6d";
+      sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
+    };
+  }
+  {
+    goPackagePath  = "github.com/juju/ratelimit";
+    fetch = {
+      type = "git";
+      url = "https://github.com/juju/ratelimit";
+      rev =  "59fac5042749a5afb9af70e813da1dd5474f0167";
+      sha256 = "0ppwvwbh9jdpdk4f9924vw373cpfz5g5ad10c707p22a984vanrz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/kardianos/osext";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kardianos/osext";
+      rev =  "ae77be60afb1dcacde03767a8c37337fad28ac14";
+      sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-colorable";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-colorable";
+      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
+      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev =  "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
+      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mitchellh/go-homedir";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-homedir";
+      rev =  "ae18d6b8b3205b561c79e8e5f69bff09736185f4";
+      sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/rjeczalik/notify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/rjeczalik/notify";
+      rev =  "629144ba06a1c6af28c1e42c228e3d42594ce081";
+      sha256 = "0745w0mdr9xfr4rxw4pfr1sl8apc7wr7mvfykdl4wslq3mdj8a91";
+    };
+  }
+  {
+    goPackagePath  = "github.com/toqueteos/webbrowser";
+    fetch = {
+      type = "git";
+      url = "https://github.com/toqueteos/webbrowser";
+      rev =  "43eedf9c266f511c55ef7eace9ee549e269b54b4";
+      sha256 = "0wa8xv0gh9iq3dlwb48dx8w2awrsarqa900hszan8gaxgag7x7ih";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "505ab145d0a99da450461ae2c1a9f6cd10d1f447";
+      sha256 = "1vbsvcvmjz6c00p5vf8ls533p52fx2y3gy6v4k5qrdlzl4wf0i5s";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "927f97764cc334a6575f4b7a1584a147864d5723";
+      sha256 = "0np7b766gb92vbm514yhdl7cjmqvn0dxdxskd84aas2ri1fkpgw5";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "b4a75ba826a64a70990f11a225237acd6ef35c9f";
+      sha256 = "0kzrd2wywkcq35iakbzplqyma4bvf2ng3mzi7917kxcbdq3fflrj";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/alecthomas/kingpin.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/kingpin";
+      rev =  "947dcec5ba9c011838740e680966fd7087a71d0d";
+      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/development/tools/misc/binutils/default.nix b/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
index 91dbd9e314f3..1edd2944eab9 100644
--- a/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, buildPackages
-, fetchurl, zlib, autoreconfHook
+, fetchurl, zlib, autoreconfHook, gettext
 # Enabling all targets increases output size to a multiple.
 , withAllTargets ? false, libbfd, libopcodes
 , enableShared ? true
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.targetPlatform.isiOS [
     autoreconfHook
   ];
-  buildInputs = [ zlib ];
+  buildInputs = [ zlib gettext ];
 
   inherit noSysDirs;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/help2man/default.nix b/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
index f544f48e57c2..264f2aec44d4 100644
--- a/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perlPackages, gettext }:
 
 stdenv.mkDerivation rec {
-  name = "help2man-1.47.9";
+  name = "help2man-1.47.10";
 
   src = fetchurl {
     url = "mirror://gnu/help2man/${name}.tar.xz";
-    sha256 = "1li3b6vifhysc2ckx0d7krwrqb8bk0kzn3k18ff1963hjc1qp7nz";
+    sha256 = "1yywli520246aba12vpgj7bhr1r13swad3xm49a0cygqcgywnwgk";
   };
 
   nativeBuildInputs = [ gettext perlPackages.LocaleGettext ];
diff --git a/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix b/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
index 0c5ec6404260..29d713a9af44 100644
--- a/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
+++ b/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "patchelf-${version}";
-  version = "0.10-pre-20180509";
+  version = "0.10-pre-20190328";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "patchelf";
-    rev = "27ffe8ae871e7a186018d66020ef3f6162c12c69";
-    sha256 = "1sfkqsvwqqm2kdgkiddrxni86ilbrdw5my29szz81nj1m2j16asr";
+    rev = "e1e39f3639e39360ceebb2f7ed533cede4623070";
+    sha256 = "09q1b1yqfzg1ih51v7qjh55vxfdbd8x5anycl8sfz6qy107wr02k";
   };
 
   # Drop test that fails on musl (?)
diff --git a/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix b/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
index 779f6c76fef9..19e4423f7d86 100644
--- a/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
@@ -26,13 +26,13 @@ assert stdenv.hostPlatform.system == "x86_64-linux";
 
 stdenv.mkDerivation rec {
   pname = "saleae-logic";
-  version = "1.2.28";
+  version = "1.2.18";
   name = "${pname}-${version}";
 
   src = fetchurl {
     name = "saleae-logic-${version}-64bit.zip";
     url = "http://downloads.saleae.com/logic/${version}/Logic%20${version}%20(64-bit).zip";
-    sha256 = "0apq8hmn39k0ads4xy8iyy9rp8bvia60mh7a944rk1gjpqv227g5";
+    sha256 = "0lhair2vsg8sjvzicvfcjfmvy30q7i01xj4z02iqh7pgzpb025h8";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix b/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix
index 28500ee08eee..965f0ed096cd 100644
--- a/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, perl }:
+{ fetchurl, stdenv, perl, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "sloccount-2.26";
@@ -8,6 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ayiwfjdh1946asah861ah9269s5xkc8p5fv1wnxs9znyaxs4zzs";
   };
 
+  nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ perl ];
 
   # Make sure the Flex-generated files are newer than the `.l' files, so that
@@ -40,6 +41,13 @@ stdenv.mkDerivation rec {
     mkdir -p "$out/share/doc"
   '';
 
+  postInstall = ''
+    for w in "$out/bin"/*; do
+      isScript "$w" || continue
+      wrapProgram "$w" --prefix PATH : "$out/bin"
+    done
+    '';
+
   meta = {
     description = "Set of tools for counting physical Source Lines of Code (SLOC)";
 
diff --git a/nixpkgs/pkgs/development/tools/misc/tokei/default.nix b/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
index f9b4343a63a7..de60d91bf837 100644
--- a/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, rustPlatform, libiconv }:
+{ stdenv, fetchFromGitHub, rustPlatform, libiconv, darwin }:
 
 rustPlatform.buildRustPackage rec {
   pname = "tokei";
@@ -13,7 +13,9 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1xai3jxvs8r3s3v5d5w40miw6nihnj9gzlzzdrwphmgrkywr88c4";
 
-  buildInputs = [ libiconv ];
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [
+    libiconv darwin.apple_sdk.frameworks.Security
+  ];
 
   meta = with stdenv.lib; {
     description = "Program that displays statistics about your code";
diff --git a/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix b/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix
new file mode 100644
index 000000000000..0c6e4f568ffc
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, python3, fetchFromGitHub, clang-unwrapped }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "whatstyle";
+  version = "0.1.7";
+  src = fetchFromGitHub {
+    owner = "mikr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "16ak4g149cr764c1lqakiyzmf5s98w8bdc4gk69m8qacimfg3mzm";
+  };
+
+  # Fix references to previous version, to avoid confusion:
+  postPatch = ''
+    substituteInPlace setup.py --replace 0.1.6 ${version}
+    substituteInPlace ${pname}.py --replace 0.1.6 ${version}
+  '';
+
+  checkInputs = [ clang-unwrapped /* clang-format */ ];
+
+  doCheck = false; # 3 or 4 failures depending on version, haven't investigated.
+
+  meta = with stdenv.lib; {
+    description = "Find a code format style that fits given source files";
+    homepage = https://github.com/mikr/whatstyle;
+    license = licenses.mit;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/packer/default.nix b/nixpkgs/pkgs/development/tools/packer/default.nix
index 5e54a8b37058..162ac045a9de 100644
--- a/nixpkgs/pkgs/development/tools/packer/default.nix
+++ b/nixpkgs/pkgs/development/tools/packer/default.nix
@@ -1,7 +1,7 @@
 { stdenv, buildGoPackage, fetchFromGitHub }:
 buildGoPackage rec {
   name = "packer-${version}";
-  version = "1.3.3";
+  version = "1.4.0";
 
   goPackagePath = "github.com/hashicorp/packer";
 
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "1b1yp5k2apccyqw9zb2xclnm16gfnnkaiwh2s0p79prsy6gjkp7y";
+    sha256 = "0fpzmwh7vq8vc7gvlnpx4ji4yaxwi2h2ksz0z4782469pkcnbg56";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/pgloader/default.nix b/nixpkgs/pkgs/development/tools/pgloader/default.nix
new file mode 100644
index 000000000000..47b426604da0
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/pgloader/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, makeWrapper, sbcl, sqlite, freetds, libzip, curl, git, cacert, openssl }:
+stdenv.mkDerivation rec {
+  pname = "pgloader";
+  version = "3.6.1";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/dimitri/pgloader/releases/download/v3.6.1/pgloader-bundle-3.6.1.tgz";
+    sha256 = "1sm8xmq30d1biin5br0y3vrv4fydbrzfqglz1hnvrkdyxrg7d6f9";
+  };
+
+  nativeBuildInputs = [ git makeWrapper ];
+  buildInputs = [ sbcl cacert sqlite freetds libzip curl openssl ];
+
+  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ sqlite libzip curl git openssl freetds ];
+
+  buildPhase = ''
+    export PATH=$PATH:$out/bin
+    export HOME=$TMPDIR
+
+    make pgloader
+  '';
+
+  dontStrip = true;
+  enableParallelBuilding = false;
+
+  installPhase = ''
+    install -Dm755 bin/pgloader "$out/bin/pgloader"
+    wrapProgram $out/bin/pgloader --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://pgloader.io/;
+    description = "pgloader loads data into PostgreSQL and allows you to implement Continuous Migration from your current database to PostgreSQL";
+    maintainers = with maintainers; [ mguentner ];
+    license = licenses.postgresql;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
new file mode 100644
index 000000000000..056ecd0ca680
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, runCommand, fetchFromGitHub, rustPlatform, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-make";
+  version = "0.19.1";
+
+  src =
+    let
+      source = fetchFromGitHub {
+        owner = "sagiegurari";
+        repo = pname;
+        rev = version;
+        sha256 = "1bv5gv5zd9h0yw7wb28r0c4z9wqa6n7ac4ipd855apwz1v7sm9n3";
+      };
+      cargo-lock = fetchurl {
+        url = "https://gist.githubusercontent.com/xrelkd/e4c9c7738b21f284d97cb7b1d181317d/raw/8a12a07cafeff4ef4a01983f5243dd8c95d10c48/cargo-make-0.19.1-Cargo.lock";
+        sha256 = "0v2hygkpsyjcpzrgyzl5mah0y8gmprfbnz7kn4hh6zfhz2lhqqwm";
+      };
+    in
+    runCommand "cargo-make-src" {} ''
+      cp -R ${source} $out
+      chmod +w $out
+      cp ${cargo-lock} $out/Cargo.lock
+    '';
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+  cargoSha256 = "0j7gyg6l428gypjpfgdz082vz8m86cx1wy2r47az3sc3skl6dhkq";
+
+  # Some tests fail because they need network access.
+  # However, Travis ensures a proper build.
+  # See also:
+  #   https://travis-ci.org/sagiegurari/cargo-make
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A Rust task runner and build tool";
+    homepage = https://github.com/sagiegurari/cargo-make;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ xrelkd ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
index 52198665e9f3..a6068a96dc7e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1zp0x0jy5bjqbxawlwvpj6vb3y602mnh19p48rw70kdx6vripbvj";
   };
 
-  cargoSha256 = "06hx8mlqarjnqrprwdp80cmanmacg3xz62r1bbn27pn60xv719hn";
+  cargoSha256 = "1j5i4gp5mspgb8l6a25lqlyr5c16pchbh3g3yn8h1qlxj8g2vgnh";
 
   meta = with stdenv.lib; {
     description = "A Cargo subcommand for cleaning up unused build files generated by Cargo";
diff --git a/nixpkgs/pkgs/development/tools/skaffold/default.nix b/nixpkgs/pkgs/development/tools/skaffold/default.nix
index 417f0a749c98..cf31d0ad9342 100644
--- a/nixpkgs/pkgs/development/tools/skaffold/default.nix
+++ b/nixpkgs/pkgs/development/tools/skaffold/default.nix
@@ -2,9 +2,9 @@
 
 buildGoPackage rec {
   name = "skaffold-${version}";
-  version = "0.28.0";
-  # rev is the 0.28.0 commit, mainly for skaffold version command output
-  rev = "2b6143bb6d185de9b9fbf2eaa981c8e7acff7339";
+  version = "0.29.0";
+  # rev is the 0.29.0 commit, mainly for skaffold version command output
+  rev = "1bbf9a3f13094e58c90399a4bd7e07250e0d2da5";
 
   goPackagePath = "github.com/GoogleContainerTools/skaffold";
   subPackages = ["cmd/skaffold"];
@@ -20,7 +20,7 @@ buildGoPackage rec {
     owner = "GoogleContainerTools";
     repo = "skaffold";
     rev = "v${version}";
-    sha256 = "1j7wf2a5xmrk944nc0b9634qa9al3cln3lrij8383avylbx68prw";
+    sha256 = "1rf23f7cwmmsycwdyk09wsrsq20vbzg2pi44r3516qsaz7x98mf1";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/web/minify/default.nix b/nixpkgs/pkgs/development/web/minify/default.nix
index e63f609fc2b6..76434809cb52 100644
--- a/nixpkgs/pkgs/development/web/minify/default.nix
+++ b/nixpkgs/pkgs/development/web/minify/default.nix
@@ -1,18 +1,24 @@
-{ buildGoPackage, fetchFromGitHub }:
+{ buildGoModule, fetchFromGitHub, lib }:
 
-buildGoPackage rec {
-  name = "minify-${version}";
-  version = "v2.0.0";
-  rev = "41f3effd65817bac8acea89d49b3982211803a4d";
+buildGoModule rec {
+  pname = "minify";
+  version = "2.5.0";
 
   goPackagePath = "github.com/tdewolff/minify";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "tdewolff";
-    repo = "minify";
-    sha256 = "15d9ivg1a9v9c2n0a9pfw74952xhd4vqgx8d60dhvif9lx1d8wlq";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ja26fs7klzggmfqvz5nzj9icaa8r8h4a91qg8rj4gx5cnvwx38d";
   };
 
-  goDeps = ./deps.nix;
+  modSha256 = "0kff2nj66bifbfi8srcvcsipbddw43mvjdwlq0lz04qak524pbvr";
+
+  meta = with lib; {
+    description = "Minifiers for web formats";
+    license = licenses.mit;
+    homepage = https://go.tacodewolff.nl/minify;
+    platforms = platforms.all;
+  };
 }
diff --git a/nixpkgs/pkgs/development/web/minify/deps.nix b/nixpkgs/pkgs/development/web/minify/deps.nix
deleted file mode 100644
index 4efaec46d571..000000000000
--- a/nixpkgs/pkgs/development/web/minify/deps.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "d9157a9621b69ad1d8d77a1933590c416593f24f";
-      sha256 = "1asdbp7rj1j1m1aar1a022wpcwbml6zih6cpbxaw7b2m8v8is931";
-    };
-  }
-  {
-    goPackagePath = "github.com/dustin/go-humanize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dustin/go-humanize";
-      rev = "8929fe90cee4b2cb9deb468b51fb34eba64d1bf0";
-      sha256 = "1g155kxjh6hd3ibx41nbpj6f7h5bh54zgl9dr53xzg2xlxljgjy0";
-    };
-  }
-  {
-    goPackagePath = "github.com/tdewolff/buffer";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tdewolff/buffer";
-      rev = "0edfcb7b750146ff879e95831de2ef53605a5cb5";
-      sha256 = "1mdd4k9byp22mw0a399j3w73zjb5g0vn58g76rjy7ajb0dzm80vl";
-    };
-  }
-  {
-    goPackagePath = "github.com/tdewolff/parse";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tdewolff/parse";
-      rev = "34d5c1160d4503da4b456e5094609f2331d6dde3";
-      sha256 = "0hxf65fgkrc1q4p99p33xxxy1s6wxpn1vfsnqf9p846awwbqsy0v";
-    };
-  }
-  {
-    goPackagePath = "github.com/tdewolff/strconv";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tdewolff/strconv";
-      rev = "3e8091f4417ebaaa3910da63a45ea394ebbfb0e3";
-      sha256 = "00w2mryfjhz3vaqzxvbwvyhi1vgpc1s4xfv1r9hxn8hwa078q5gp";
-    };
-  }
-  {
-    goPackagePath = "github.com/matryer/try";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matryer/try";
-      rev = "93d30e50512f879b73829eb79867df38084bcd31";
-      sha256 = "0dmc8iar9685ks1ba3vnycjsx8qxwyqv51jb7677dvwnzbqhgw6f";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "30411dbcefb7a1da7e84f75530ad3abe4011b4f8";
-      sha256 = "0kbpvyi6p9942k0vmcw5z13mja47f7hq7nqd332pn2zydss6kddm";
-    };
-  }
-  {
-    goPackagePath = "github.com/ogier/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ogier/pflag";
-      rev = "45c278ab3607870051a2ea9040bb85fcb8557481";
-      sha256 = "0620v75wppfd84d95n312wpngcb73cph4q3ivs1h0waljfnsrd5l";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/web/nodejs/v12.nix b/nixpkgs/pkgs/development/web/nodejs/v12.nix
index d087e7dea99f..66133b432eed 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v12.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v12.nix
@@ -5,6 +5,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "12.1.0";
-    sha256 = "1efb792c689fed2e028025e1398e84193281f329427a17a62b0bffee8e771395";
+    version = "12.2.0";
+    sha256 = "10vr8yqrvdmcaszg7l7cjchzzik709vcygcnpkjf2sjhz929glf5";
   }
diff --git a/nixpkgs/pkgs/games/flare/default.nix b/nixpkgs/pkgs/games/flare/default.nix
new file mode 100644
index 000000000000..5ae656d1fc18
--- /dev/null
+++ b/nixpkgs/pkgs/games/flare/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildEnv, callPackage, makeWrapper }:
+
+buildEnv {
+  name = "flare-1.10";
+
+  paths = [
+    (callPackage ./engine.nix {})
+    (callPackage ./game.nix {})
+  ];
+
+  buildInputs = [ makeWrapper ];
+  postBuild = ''
+    mkdir -p $out/bin
+    makeWrapper $out/games/flare $out/bin/flare --run "cd $out/share/games/flare"
+  '';
+
+  meta = with lib; {
+    description = "Fantasy action RPG using the FLARE engine";
+    homepage = "http://flarerpg.org/";
+    maintainers = [ maintainers.aanderse ];
+    license = [ licenses.gpl3 licenses.cc-by-sa-30 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/flare/engine.nix b/nixpkgs/pkgs/games/flare/engine.nix
new file mode 100644
index 000000000000..8b620835f857
--- /dev/null
+++ b/nixpkgs/pkgs/games/flare/engine.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf }:
+
+stdenv.mkDerivation rec {
+  pname = "flare-engine";
+  version = "1.10";
+
+  src = fetchFromGitHub {
+    owner = "flareteam";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0fm7jmxl86h8199nazdi9ivsrhcv9gcymhz1l5c6l2f4d0aqdqiq";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf ];
+
+  meta = with stdenv.lib; {
+    description = "Free/Libre Action Roleplaying Engine";
+    homepage = "https://github.com/flareteam/flare-engine";
+    maintainers = [ maintainers.aanderse ];
+    license = [ licenses.gpl3 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/flare/game.nix b/nixpkgs/pkgs/games/flare/game.nix
new file mode 100644
index 000000000000..b10d7dfedb0f
--- /dev/null
+++ b/nixpkgs/pkgs/games/flare/game.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "flare-game";
+  version = "1.10";
+
+  src = fetchFromGitHub {
+    owner = "flareteam";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1lfra4ww8za08vcgza2jvh3jrwi6zryk4ljyj32lpp9v4ws9hdh4";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "Fantasy action RPG using the FLARE engine";
+    homepage = "https://github.com/flareteam/flare-game";
+    maintainers = [ maintainers.aanderse ];
+    license = [ licenses.cc-by-sa-30 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/openra/common.nix b/nixpkgs/pkgs/games/openra/common.nix
index 200b9da4a7eb..b0d1f2a5455e 100644
--- a/nixpkgs/pkgs/games/openra/common.nix
+++ b/nixpkgs/pkgs/games/openra/common.nix
@@ -3,7 +3,7 @@
 */
 { stdenv, makeSetupHook, curl, unzip, dos2unix, pkgconfig, makeWrapper
 , lua, mono, dotnetPackages, python
-, libGL, openal, SDL2
+, libGL, freetype, openal, SDL2
 , zenity
 }:
 
@@ -11,7 +11,7 @@ with stdenv.lib;
 
 let
   path = makeBinPath ([ mono python ] ++ optional (zenity != null) zenity);
-  rpath = makeLibraryPath [ lua openal SDL2 ];
+  rpath = makeLibraryPath [ lua freetype openal SDL2 ];
   mkdirp = makeSetupHook { } ./mkdirp.sh;
 
 in {
@@ -54,10 +54,7 @@ in {
       StyleCopMSBuild
       StyleCopPlusMSBuild
     ] ++ [
-      lua
       libGL
-      openal
-      SDL2
     ];
 
     # TODO: Test if this is correct.
diff --git a/nixpkgs/pkgs/games/openra/engines.nix b/nixpkgs/pkgs/games/openra/engines.nix
index 7454d32c1139..2bdbce6d939d 100644
--- a/nixpkgs/pkgs/games/openra/engines.nix
+++ b/nixpkgs/pkgs/games/openra/engines.nix
@@ -22,20 +22,20 @@ let
 
 in {
   release = name: (buildUpstreamOpenRAEngine rec {
-    version = "20181215";
+    version = "20190314";
     rev = "${name}-${version}";
-    sha256 = "0p0izykjnz7pz02g2khp7msqa00jhjsrzk9y0g29dirmdv75qa4r";
+    sha256 = "15pvn5cx3g0nzbrgpsfz8dngad5wkzp5dz25ydzn8bmxafiijvcr";
   } name);
 
   playtest = name: (buildUpstreamOpenRAEngine rec {
-    version = "20190106";
+    version = "20190302";
     rev = "${name}-${version}";
-    sha256 = "0ps9x379plrrj1hnj4fpr26lc46mzgxknv5imxi0bmrh5y4781ql";
+    sha256 = "1vqvfk2p2lpk3m0d3rpvj34i8cmk3mfc7w4cn4llqd9zp4kk9pya";
   } name);
 
   bleed = buildUpstreamOpenRAEngine {
-    version = "9c9cad1";
-    rev = "9c9cad1a15c3a34dc2a61b305e4a9a735381a5f8";
-    sha256 = "0100p7wrnnlvkmy581m0gbyg3cvi4i1w3lzx2gq91ndz1sbm8nd2";
+    version = "8ee1102";
+    rev = "8ee11028d72cde7556b31d45f556b40be65b4b70";
+    sha256 = "0f1fpf37ms8d7fhlh3rjzsxsk9w23iyi3phs2i7g561292d5rk3l";
   };
 }
diff --git a/nixpkgs/pkgs/games/openra/mod-launch-game.sh b/nixpkgs/pkgs/games/openra/mod-launch-game.sh
index c0b6feb69c88..88b53e71e1bc 100644
--- a/nixpkgs/pkgs/games/openra/mod-launch-game.sh
+++ b/nixpkgs/pkgs/games/openra/mod-launch-game.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 show_error() {
   if command -v zenity > /dev/null; then
     zenity --no-wrap --no-markup --error --title "OpenRA - @title@" --text "$1" 2>/dev/null
@@ -12,7 +12,7 @@ cd "@out@/lib/openra-@name@"
 
 # Check for missing assets
 assetsError='@assetsError@'
-if [ -n "$assetsError" -a ! -d "$HOME/.openra/Content/@name@" ]; then
+if [[ -n "$assetsError" && ! -d "$HOME/.openra/Content/@name@" ]]; then
   show_error "$assetsError"
 fi
 
@@ -20,6 +20,6 @@ fi
 mono --debug OpenRA.Game.exe Game.Mod=@name@ Engine.LaunchPath="@out@/bin/openra-@name@" Engine.ModSearchPaths="@out@/lib/openra-@name@/mods" "$@"
 
 # Show a crash dialog if something went wrong
-if [ $? -ne 0 -a $? -ne 1 ]; then
+if (( $? != 0 && $? != 1 )); then
   show_error $'OpenRA - @title@ has encountered a fatal error.\nPlease refer to the crash logs for more information.\n\nLog files are located in ~/.openra/Logs'
 fi
diff --git a/nixpkgs/pkgs/games/openra/mod-update.sh b/nixpkgs/pkgs/games/openra/mod-update.sh
index 52bcada8f9a1..8489d5a97a7c 100755
--- a/nixpkgs/pkgs/games/openra/mod-update.sh
+++ b/nixpkgs/pkgs/games/openra/mod-update.sh
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# shellcheck disable=SC2034
 
 # for mod in $(nix eval --raw '(
 #   with import <nixpkgs> { };
@@ -9,9 +10,7 @@
 #   ./mod-update.sh "$mod"
 # done
 
-# Uses:
-# https://github.com/msteen/nix-prefetch
-# https://github.com/msteen/nix-update-fetch
+# Uses: https://github.com/msteen/nix-upfetch
 
 mod=$1
 commit_count=$2
@@ -19,7 +18,7 @@ token=
 nixpkgs='<nixpkgs>'
 
 die() {
-  ret=$?
+  local ret=$?
   echo "$*" >&2
   exit $ret
 }
@@ -34,13 +33,16 @@ get_sha1() {
   curl -H "Authorization: token $token" -H 'Accept: application/vnd.github.VERSION.sha' "https://api.github.com/repos/$owner/$repo/commits/$ref"
 }
 
+[[ -n $mod ]] || die "The first argument of this script has to be a mod identifier."
+
 [[ -n $token ]] || die "Please edit this script to include a GitHub API access token, which is required for API v4:
 https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/"
 
 # Get current mod_owner and mod_repo.
-vars=$(nix-prefetch --file "$nixpkgs" "openraPackages.mods.$mod" --index 0 --quiet --output json --skip-hash > >(
+vars=$(nix-prefetch --file "$nixpkgs" "openraPackages.mods.$mod" --index 0 --quiet --output json --no-compute-hash > >(
   jq --raw-output 'with_entries(select(.value | contains("\n") | not)) | to_entries | .[] | .key + "=" + .value')) || exit
 
+mod_owner=; mod_repo=; mod_rev=
 while IFS='=' read -r key val; do
   declare "mod_${key}=${val}"
 done <<< "$vars"
@@ -65,11 +67,12 @@ else
 }'
 fi
 
-query='query {
-  repository(owner: \"'"$mod_owner"'\", name: \"'"$mod_repo"'\") {
+# shellcheck disable=SC2089
+query='{
+  repository(owner: "'$mod_owner'", name: "'$mod_repo'") {
     defaultBranchRef {
       target {
-        ... on Commit '"$query_on_commit"'
+        ... on Commit '$query_on_commit'
       }
     }
     licenseInfo {
@@ -80,7 +83,9 @@ query='query {
 
 # Newlines are not allowed in a query.
 # https://developer.github.com/v4/guides/forming-calls/#communicating-with-graphql
+# shellcheck disable=SC2086 disable=SC2090 disable=SC2116
 query=$(echo $query)
+query=${query//\"/\\\"}
 
 # https://developer.github.com/v4/guides/using-the-explorer/#configuring-graphiql
 json=$(curl -H "Authorization: bearer $token" -X POST -d '{ "query": "'"$query"'" }' https://api.github.com/graphql) || exit
@@ -99,12 +104,14 @@ vars=$(jq --raw-output '.data.repository | {
   rev: .oid,
 }) | to_entries | .[] | .key + "=" + (.value | tostring)' <<< "$json") || exit
 
+mod_license_key=; mod_version=; mod_rev=
 while IFS='=' read -r key val; do
   declare "mod_${key}=${val}"
 done <<< "$vars"
 
 mod_config=$(curl "https://raw.githubusercontent.com/$mod_owner/$mod_repo/$mod_rev/mod.config") || exit
 
+mod_id=; engine_version=; automatic_engine_management=; automatic_engine_source=
 while IFS='=' read -r key val; do
   declare "${key,,}=$(jq --raw-output . <<< "$val")"
 done < <(grep '^\(MOD_ID\|ENGINE_VERSION\|AUTOMATIC_ENGINE_MANAGEMENT\|AUTOMATIC_ENGINE_SOURCE\)=' <<< "$mod_config")
@@ -116,6 +123,7 @@ echo >&2
 
 [[ $mod_id == "$mod" ]] ||
   die "The mod '$mod' reports being mod '$mod_id' instead."
+# shellcheck disable=SC2005 disable=SC2046
 [[ $mod_license_key == gpl-3.0 ]] ||
 [[ $(echo $(head -2 <(curl "https://raw.githubusercontent.com/$mod_owner/$mod_repo/$mod_rev/COPYING"))) == 'GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007' ]] ||
   die "The mod '$mod' is licensed under '$mod_license_key' while expecting 'gpl-3.0'."
@@ -126,6 +134,7 @@ echo >&2
 
 engine_owner=${BASH_REMATCH[1]}
 engine_repo=${BASH_REMATCH[2]}
+# shellcheck disable=SC2016
 [[ ${BASH_REMATCH[3]} == '${ENGINE_VERSION}' ]] || engine_version=${BASH_REMATCH[3]}
 engine_rev=$(get_sha1 "$engine_owner" "$engine_repo" "$engine_version")
 
@@ -146,6 +155,6 @@ for type in mod engine; do
   done
   var="${type}_version"
   version=${!var}
-  nix-update-fetch --yes --version "$version" "$(nix-prefetch --quiet --file "$nixpkgs" "openraPackages.mods.$mod" --index $i --output json --with-position --diff -- "${fetcher_args[@]}")"
+  nix-upfetch --yes --version "$version" "$(nix-preupfetch --file "$nixpkgs" "openraPackages.mods.$mod" --index $i -- "${fetcher_args[@]}")"
   (( i++ ))
 done
diff --git a/nixpkgs/pkgs/games/openra/mods.nix b/nixpkgs/pkgs/games/openra/mods.nix
index ddc34dbda8f6..1e81e02e59f1 100644
--- a/nixpkgs/pkgs/games/openra/mods.nix
+++ b/nixpkgs/pkgs/games/openra/mods.nix
@@ -60,23 +60,23 @@ in {
   };
 
   dr = buildOpenRAMod rec {
-    version = "266.git.920b476";
+    version = "324.git.ffcd6ba";
     title = "Dark Reign";
     description = "A re-imagination of the original Command & Conquer: ${title} game";
     homepage = https://github.com/drogoganor/DarkReign;
     src = fetchFromGitHub {
       owner = "drogoganor";
       repo = "DarkReign";
-      rev = "920b476be1b7751db087f1f7acd504b8a048d1e2";
-      sha256 = "11ir4pnichrnv4z9532fp9g166jl8fvy5kk03a2fgxssp3g40zz2";
+      rev = "ffcd6ba72979e5f77508136ed7b0efc13e4b100e";
+      sha256 = "07g4qw909649s3i1yhw75613mpwfka05jana5mpp5smhnf0pkack";
     };
     engine = {
       version = "DarkReign";
       src = fetchFromGitHub {
         owner = "drogoganor";
         repo = "OpenRA" ;
-        rev = "e08b75c2add30439228ea3dd61d6be60d1800329";
-        sha256 = "125vf962p69ajrh5pxgfwsi0ksczqwvlw5kn2fvffiwvh8d5in23";
+        rev = "f91d3f2603bbf51afaa89357e4defcdc36138102";
+        sha256 = "05g900ri6q0zrkrk8rmjaz576vjggmi2y6jm0xz3cwli54prn11w";
         name = "engine";
         inherit extraPostFetch;
       };
@@ -161,15 +161,15 @@ in {
   };
 
   ra2 = buildOpenRAMod rec {
-    version = "881.git.b37f4f9";
+    version = "903.git.2f7c700";
     title = "Red Alert 2";
     description = "Re-imagination of the original Command & Conquer: ${title} game";
     homepage = https://github.com/OpenRA/ra2;
     src = fetchFromGitHub {
       owner = "OpenRA";
       repo = "ra2";
-      rev = "b37f4f9f07404127062d9061966e9cc89dd86445";
-      sha256 = "1jiww66ma3qdk9hzyvhbcaa5h4p2mxxk22kvrw92ckpxy0bqba3h";
+      rev = "2f7c700d6d63c0625e7158ef3098221fa6741569";
+      sha256 = "11vnzwczn47wjfrq6y7z9q234p27ihdrcl5p87i6h2xnrpwi8b6m";
     };
     engine = rec {
       version = "release-20180923";
@@ -189,23 +189,23 @@ in {
   };
 
   raclassic = buildOpenRAMod {
-    version = "181.git.8240890";
+    version = "183.git.c76c13e";
     title = "Red Alert Classic";
     description = "A modernization of the original Command & Conquer: Red Alert game";
     homepage = https://github.com/OpenRA/raclassic;
     src = fetchFromGitHub {
       owner = "OpenRA";
       repo = "raclassic";
-      rev = "8240890b32191ce34241c22158b8a79e8c380879";
-      sha256 = "0dznyb6qa4n3ab87g1c4bihfc2nx53k6z0kajc7ynjdnwzvx69ww";
+      rev = "c76c13e9f0912a66ddebae8d05573632b19736b2";
+      sha256 = "1cnr3ccvrkjlv8kkdcglcfh133yy0fkva9agwgvc7wlj9n5ydl4g";
     };
     engine = rec {
-      version = "playtest-20190106";
+      version = "release-20190314";
       src = fetchFromGitHub {
         owner = "OpenRA";
         repo = "OpenRA" ;
         rev = version;
-        sha256 = "0ps9x379plrrj1hnj4fpr26lc46mzgxknv5imxi0bmrh5y4781ql";
+        sha256 = "15pvn5cx3g0nzbrgpsfz8dngad5wkzp5dz25ydzn8bmxafiijvcr";
         name = "engine";
         inherit extraPostFetch;
       };
@@ -242,24 +242,24 @@ in {
   };
 
   sp = unsafeBuildOpenRAMod {
-    version = "176.git.fc89ae8";
+    version = "221.git.ac000cc";
     title = "Shattered Paradise";
     description = "Re-imagination of the original Command & Conquer: Tiberian Sun game";
     homepage = https://github.com/ABrandau/OpenRAModSDK;
     src = fetchFromGitHub {
       owner = "ABrandau";
       repo = "OpenRAModSDK";
-      rev = "fc89ae8a10e0f765ac735f923e01aa24dd20e8d2";
-      sha256 = "0xyxhipmjlld0kp23fwsdwnspr7fci0mdnjd60gcsh34c7m0341p";
+      rev = "ac000cc15377cdf6d3c2b72c737d692aa0ed8bcd";
+      sha256 = "16mzs5wcxj9nlpcyx2c87idsqpbm40lx0rznsccclnlb3hiwqas9";
     };
     engine = {
-      version = "SP-Bleed-Branch";
+      version = "SP-22-04-19";
       mods = [ "as" "ts" ];
       src = fetchFromGitHub {
         owner = "ABrandau";
         repo = "OpenRA" ;
-        rev = "d3545c0b751aea2105748eddaab5919313e35314";
-        sha256 = "1jsldl6vnf3r9dzppdm4z7kqbrzkidda5k74wc809i8c4jjnq9rq";
+        rev = "bb0930008a57c07f3002421023f6b446e3e3af69";
+        sha256 = "1jvgpbf56hd02ikhklv49br4d1jiv5hphc5kl79qnjlaacnj222x";
         name = "engine";
         inherit extraPostFetch;
       };
@@ -315,23 +315,23 @@ in {
   };
 
   yr = unsafeBuildOpenRAMod rec {
-    version = "118.git.c26bf14";
+    version = "199.git.5b8b952";
     homepage = https://github.com/cookgreen/yr;
     title = "Yuri's Revenge";
     description = "Re-imagination of the original Command & Conquer: ${title} game";
     src = fetchFromGitHub {
       owner = "cookgreen";
       repo = "yr";
-      rev = "c26bf14155d040edf33c6c5eb3677517d07b39f8";
-      sha256 = "15k6gv4rx3490n0cs9q7ah7q31z89v0pddsw6nqv0fhcahhvq1bc";
+      rev = "5b8b952dbe21f194a6d00485f20e215ce8362712";
+      sha256 = "0hxzrqnz5d7qj1jjr20imiyih62x1cnmndf75nnil4c4sj82f9a6";
     };
     engine = rec {
-      version = "release-20180923";
+      version = "release-20190314";
       src = fetchFromGitHub {
         owner = "OpenRA";
         repo = "OpenRA" ;
         rev = version;
-        sha256 = "1pgi3zaq9fwwdq6yh19bwxscslqgabjxkvl9bcn1a5agy4bfbqk5";
+        sha256 = "15pvn5cx3g0nzbrgpsfz8dngad5wkzp5dz25ydzn8bmxafiijvcr";
         name = "engine";
         inherit extraPostFetch;
       };
diff --git a/nixpkgs/pkgs/games/pioneer/default.nix b/nixpkgs/pkgs/games/pioneer/default.nix
index ffe0841184b1..b6035918af7b 100644
--- a/nixpkgs/pkgs/games/pioneer/default.nix
+++ b/nixpkgs/pkgs/games/pioneer/default.nix
@@ -1,33 +1,30 @@
-{ fetchFromGitHub, stdenv, autoconf, automake, pkgconfig
-, curl, libsigcxx, SDL2, SDL2_image, freetype, libvorbis, libpng, assimp, libGLU_combined
+{ fetchFromGitHub, stdenv, cmake, pkgconfig, curl, libsigcxx, SDL2
+, SDL2_image, freetype, libvorbis, libpng, assimp, libGLU_combined
+, glew
 }:
 
 stdenv.mkDerivation rec {
-  name = "pioneer-${version}";
-  version = "20180203";
+  pname = "pioneer";
+  version = "20190203";
 
   src = fetchFromGitHub{
     owner = "pioneerspacesim";
     repo = "pioneer";
     rev = version;
-    sha256 = "0hp2mf36kj2v93hka8m8lxw2qhmnjc62wjlpw7c7ix0r8xa01i6h";
+    sha256 = "1g34wvgyvz793dhm1k64kl82ib0cavkbg0f2p3fp05b457ycljff";
   };
 
-  nativeBuildInputs = [ autoconf automake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
-  buildInputs = [ curl libsigcxx SDL2 SDL2_image freetype libvorbis libpng assimp libGLU_combined ];
-
-  NIX_CFLAGS_COMPILE = [
-    "-I${SDL2}/include/SDL2"
+  buildInputs = [
+    curl libsigcxx SDL2 SDL2_image freetype libvorbis libpng
+    assimp libGLU_combined glew
   ];
 
   preConfigure = ''
-     export PIONEER_DATA_DIR="$out/share/pioneer/data";
-    ./bootstrap
+    export PIONEER_DATA_DIR="$out/share/pioneer/data";
   '';
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "A space adventure game set in the Milky Way galaxy at the turn of the 31st century";
     homepage = https://pioneerspacesim.net;
diff --git a/nixpkgs/pkgs/games/steam/chrootenv.nix b/nixpkgs/pkgs/games/steam/chrootenv.nix
index 598ddc485630..0082b97eb22d 100644
--- a/nixpkgs/pkgs/games/steam/chrootenv.nix
+++ b/nixpkgs/pkgs/games/steam/chrootenv.nix
@@ -28,6 +28,9 @@ let
       iana-etc
       # Steam Play / Proton
       python3
+      # Steam VR
+      procps
+      usbutils
     ] ++ lib.optional withJava jdk
       ++ lib.optional withPrimus primus
       ++ extraPkgs pkgs;
diff --git a/nixpkgs/pkgs/games/xbill/default.nix b/nixpkgs/pkgs/games/xbill/default.nix
new file mode 100644
index 000000000000..119cd8f08769
--- /dev/null
+++ b/nixpkgs/pkgs/games/xbill/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchurl, libX11, libXpm, libXt, motif, ... }:
+
+stdenv.mkDerivation rec {
+  pname = "xbill";
+  version = "2.1";
+
+  buildInputs = [ libX11 libXpm libXt motif ];
+
+  NIX_CFLAGS_LINK = [ "-lXpm" ];
+
+  configureFlags = [
+    "--with-x"
+    "--enable-motif"
+  ];
+
+  src = fetchurl {
+    url = "http://www.xbill.org/download/${pname}-${version}.tar.gz";
+    sha256 = "13b08lli2gvppmvyhy0xs8cbjbkvrn4b87302mx0pxrdrvqzzz8f";
+  };
+
+  meta = with stdenv; {
+    description = "Protect a computer network from getting infected.";
+    homepage = "http://www.xbill.org/";
+    license = lib.licenses.gpl1;
+    maintainers = with lib.maintainers; [ aw ];
+    longDescription = ''
+      Ever get the feeling that nothing is going right? You're a sysadmin,
+      and someone's trying to destroy your computers. The little people
+      running around the screen are trying to infect your computers with
+      Wingdows [TM], a virus cleverly designed to resemble a popular
+      operating system.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/wine/base.nix b/nixpkgs/pkgs/misc/emulators/wine/base.nix
index 2b9d048f77e6..4c3a2b2d588f 100644
--- a/nixpkgs/pkgs/misc/emulators/wine/base.nix
+++ b/nixpkgs/pkgs/misc/emulators/wine/base.nix
@@ -7,7 +7,7 @@
 
 with import ./util.nix { inherit lib; };
 
-stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) {
+stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
   builder = buildScript;
 }) // rec {
   inherit name src configureFlags;
diff --git a/nixpkgs/pkgs/misc/vim-plugins/generated.nix b/nixpkgs/pkgs/misc/vim-plugins/generated.nix
index 97121e2d6cef..7e9e49f82de0 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/generated.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/generated.nix
@@ -61,12 +61,12 @@ let
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2019-05-09";
+    version = "2019-05-16";
     src = fetchFromGitHub {
       owner = "w0rp";
       repo = "ale";
-      rev = "f444abdfe66696505cb891889b18c4144d12d4ea";
-      sha256 = "1id66swgzkgal2hxppm3ls0asffvmsbz81sl1qvci053jr9mr5d0";
+      rev = "e5ea809094fd1d521ac88516f5b4b6870e656f3a";
+      sha256 = "1wq12ycfkkcj70gprzwrp88v0i7jjzf1340mmkhs46wyd5ds82vz";
     };
   };
 
@@ -248,12 +248,12 @@ let
 
   command-t = buildVimPluginFrom2Nix {
     pname = "command-t";
-    version = "2019-03-31";
+    version = "2019-05-12";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "command-t";
-      rev = "792d6079d32f1973c142c6fab89d2fdc94019ac8";
-      sha256 = "0bi2bmx0k6fwi1jwajgafbb750ajlzz1jncvvg0cssv6h5syxvpk";
+      rev = "57e112c12c99185e062a4330896cfaf422d1ea64";
+      sha256 = "19ajaxga54kij9ii68cd38frq4y7lr7896wqa5xgs5qq83wh1b1z";
       fetchSubmodules = true;
     };
   };
@@ -403,12 +403,12 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2019-05-01";
+    version = "2019-05-12";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "f16b581357a575f37f4c51f6c809e8f2fd98b5bf";
-      sha256 = "17fsngxpfy1m0r76c99xphwlcip85s4fyf9zj3vcdvb69hdgva2s";
+      rev = "67475c70b4c48b99a0b327a3ff93ca8d25aa3632";
+      sha256 = "0bgz2ljfpccawklzhhxvg5z77h4569p6ihf64rqs2q0b3laswmcx";
     };
   };
 
@@ -505,12 +505,12 @@ let
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2019-04-15";
+    version = "2019-05-15";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "9d4e88f6cce63ed1b52ca2401d809c55ab443b25";
-      sha256 = "165vxlr2zjh0p7mcqaj60axpnffcrjfx6rvp786nxch4kmfhrz5p";
+      rev = "310371d7e0cf123a725dd3f1d1fe02e4919d2d8a";
+      sha256 = "15j6hq3ckjmgwr3a2wc43r7kv9bi8ns4x9sg9gn8lwp4c325khfw";
     };
   };
 
@@ -695,12 +695,12 @@ let
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf-vim";
-    version = "2019-04-29";
+    version = "2019-05-14";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "ac4e7bfb36c88d27799c080218cea3bb833bdbd9";
-      sha256 = "10m6v1jrry4fhrbkgb8kkdjasl0pz2qgr9khxl94nlg42fxb1r20";
+      rev = "5c87ab86c0e7b0ec8a5edd39a4ce5500bb9e9333";
+      sha256 = "0ippj4xpxx8yypfp4fa66hahz9ciy2inyq9275ajpgs7gxs6yx7n";
     };
   };
 
@@ -949,12 +949,12 @@ let
 
   lightline-vim = buildVimPluginFrom2Nix {
     pname = "lightline-vim";
-    version = "2019-05-02";
+    version = "2019-05-12";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "lightline.vim";
-      rev = "78b1cc9e715f509a7e9f157e0d7a0e02b7e5125e";
-      sha256 = "0j2i09shwi8fcqfh7m48m4d6bi5pzfgn8mf6iw53v4ah2cdp2m93";
+      rev = "bb0b4013611e11200d2ae5a65e8804bbd930a770";
+      sha256 = "1sjsrih8cl8pksb3ikycarszhx8cvkgvj4nn63db59fnvdr7nqyl";
     };
   };
 
@@ -1037,12 +1037,12 @@ let
 
   ncm2-jedi = buildVimPluginFrom2Nix {
     pname = "ncm2-jedi";
-    version = "2019-05-09";
+    version = "2019-05-16";
     src = fetchFromGitHub {
       owner = "ncm2";
       repo = "ncm2-jedi";
-      rev = "485520af57aee528a3448d1f26bb7761dd915b0e";
-      sha256 = "1qq5mydg99y2865gx3i3kzk0vl6agx26l8if4nq47wlxnfcbgslv";
+      rev = "10f7d917c5fbc99c0029cf4aa6befb91e4b90364";
+      sha256 = "0hap4plkqs21908h1l1y54i77da9nh26ii636ymw8948d7gyb0wc";
     };
   };
 
@@ -1147,34 +1147,34 @@ let
 
   neoformat = buildVimPluginFrom2Nix {
     pname = "neoformat";
-    version = "2019-05-03";
+    version = "2019-05-10";
     src = fetchFromGitHub {
       owner = "sbdchd";
       repo = "neoformat";
-      rev = "7fe72c5d84765e0af19718a57e24659f81471393";
-      sha256 = "1kpb6ycsnf0sncpixf3016i2aq82wxvm9q9hjcg9bb7d9706s15d";
+      rev = "787b1bff2a48a85b823abb9d50f8c8553273776a";
+      sha256 = "1vdnbplv5spy18azcsn2plcfgnxxbbmr1dca2pfalzgs7bww0la1";
     };
   };
 
   neoinclude-vim = buildVimPluginFrom2Nix {
     pname = "neoinclude-vim";
-    version = "2019-04-17";
+    version = "2019-05-11";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neoinclude.vim";
-      rev = "9baaab193f461193e737dd1342a43d43a380bca6";
-      sha256 = "0gh2sdz32hp7wa5rvnrgwp8ga75sxpb4d3fxszkf8vd3gdxkxsq4";
+      rev = "5125e73de0a8b4f2c399e4896e21be1b8f7b3d39";
+      sha256 = "0qw63xyvrxvdzx01k5nnsv3p8zmnd77cwbkk24pikqrscxw3ypsz";
     };
   };
 
   neomake = buildVimPluginFrom2Nix {
     pname = "neomake";
-    version = "2019-05-09";
+    version = "2019-05-13";
     src = fetchFromGitHub {
       owner = "benekastah";
       repo = "neomake";
-      rev = "9575d0f72b82c453281eac697630d85cb097550f";
-      sha256 = "12mbgglszgqrbpwwfxhmiq77h6ml4hd0z4ambrdzzl8hidp73d55";
+      rev = "786e76cfc1124355f68ff7820439268a0cf9779d";
+      sha256 = "02l5rh9n31c8k2vjnm8wx323x21ssg1pxnlhm2svhkpm1qax5q45";
     };
   };
 
@@ -1334,12 +1334,12 @@ let
 
   nvim-yarp = buildVimPluginFrom2Nix {
     pname = "nvim-yarp";
-    version = "2018-12-23";
+    version = "2019-05-15";
     src = fetchFromGitHub {
       owner = "roxma";
       repo = "nvim-yarp";
-      rev = "1524cf7988d1e1ed7475ead3654987f64943a1f0";
-      sha256 = "1iblb9hy4svbabhkid1qh7v085dkpq7dwg4aj38d8xvhj9b7mf6v";
+      rev = "9eac5b198ad87210a498d4f93344b7450537ab00";
+      sha256 = "17y1lcq92dkynjv5hbk3mjnc8g1yg8f19rw1imak7smwx4xjiqv8";
     };
   };
 
@@ -1708,12 +1708,12 @@ let
 
   syntastic = buildVimPluginFrom2Nix {
     pname = "syntastic";
-    version = "2019-05-05";
+    version = "2019-05-10";
     src = fetchFromGitHub {
       owner = "scrooloose";
       repo = "syntastic";
-      rev = "29e15407b2b372bf1bad95bf0c5264dc7fdc1882";
-      sha256 = "1vnxm49zjsk0w7n9arpl9pgy5lh7hrqa2392yl68rhk0vvh5fn46";
+      rev = "1e8bae3d13e62628ec2262fcc2dc8aa36d6953fe";
+      sha256 = "1bbvbvj8yr83kk6rpai24mhdb2q18yq0rnjj2kxfvzm3cwchbdwz";
     };
   };
 
@@ -1829,12 +1829,12 @@ let
 
   traces-vim = buildVimPluginFrom2Nix {
     pname = "traces-vim";
-    version = "2019-04-27";
+    version = "2019-05-14";
     src = fetchFromGitHub {
       owner = "markonm";
       repo = "traces.vim";
-      rev = "971d0f6c293002bea7c90773c8fd67f4345ddf7c";
-      sha256 = "0aj5x96g4ngir73h79brmijw5gikz6vgbblpbd3np64nb3h86a7c";
+      rev = "d07bb40a3064ff5a2fb16c90946a6259ceb447a3";
+      sha256 = "18b9215ifp591hkirs9h09g7r7baal2kcxccpz0siq9939y32b9p";
     };
   };
 
@@ -2170,12 +2170,12 @@ let
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2019-05-08";
+    version = "2019-05-14";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "9a1acf144fd63cae6f48a3b445958d737c0b167e";
-      sha256 = "14n3fcmiv733si64226vm72f7gicffrkcq3xadpzzy0n22dnb1hz";
+      rev = "7b20361baf5f8947ff55ac5d26dd4a75aacfc7d7";
+      sha256 = "07bcd3f41jc52kn3spjrn8s3p58fsy6vn6kjrsl1j9qvmjc7x1q8";
     };
   };
 
@@ -2390,12 +2390,12 @@ let
 
   vim-css-color = buildVimPluginFrom2Nix {
     pname = "vim-css-color";
-    version = "2019-05-03";
+    version = "2019-05-14";
     src = fetchFromGitHub {
       owner = "ap";
       repo = "vim-css-color";
-      rev = "10eae530889331457b738b28eafcfa3789481fcd";
-      sha256 = "0y9m2jnzz58y5h7r8xgfimha8fz0if2pc760g4qbm922afm3a00a";
+      rev = "8a84356d5319cad3da2835bd5fbc6318500f31ce";
+      sha256 = "1yad8jrcna82ll893wf53ms2hqmcaa63g43yafxvlgmxw5yrh3im";
     };
   };
 
@@ -2434,12 +2434,12 @@ let
 
   vim-dirdiff = buildVimPluginFrom2Nix {
     pname = "vim-dirdiff";
-    version = "2019-03-05";
+    version = "2019-05-14";
     src = fetchFromGitHub {
       owner = "will133";
       repo = "vim-dirdiff";
-      rev = "2257a283fc6e03d018ff503382c2ae97e32d5afa";
-      sha256 = "0fqshk92dn62lz44csavpl9jg5bpd8jfik20ci9plns8nd9g6pg4";
+      rev = "7049f5061ee48301fc00ea69f2473325d43bf5cb";
+      sha256 = "1x65adb2xfscbyx8w3wl1av9c0jqlch0kpch49jxyvcbmxdlgf65";
     };
   };
 
@@ -2456,12 +2456,12 @@ let
 
   vim-dispatch = buildVimPluginFrom2Nix {
     pname = "vim-dispatch";
-    version = "2019-03-26";
+    version = "2019-05-15";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dispatch";
-      rev = "178acd05aaf26b14afd0a29f8e1c318ca96637f5";
-      sha256 = "1qxblrwm8zssg8zavfxq3a43yz69fk4ylqgxbi6mq3hvz3bnkb6k";
+      rev = "d8bf968958f4bdc838321cceace52299f28ad750";
+      sha256 = "0y1wwscj5vn9ssmysr12zwx1k1a4j6l0gchhlrvgzj4ar2wpvig0";
     };
   };
 
@@ -2533,12 +2533,12 @@ let
 
   vim-elixir = buildVimPluginFrom2Nix {
     pname = "vim-elixir";
-    version = "2019-05-02";
+    version = "2019-05-14";
     src = fetchFromGitHub {
       owner = "elixir-lang";
       repo = "vim-elixir";
-      rev = "98c03047d15dfa62cedf56e27bffb03772d41753";
-      sha256 = "0pbad3hlsy6glhmbz6nkb6lfx9y3yb6rw23vc48acxw936zm282n";
+      rev = "38e8bbfd0019033ae53d623e3fd1d9cf6ec2d335";
+      sha256 = "1mbgks1460vm8sl2hkag6hrsvbf9gfvdlswqr5hh8hy3laylh6qf";
     };
   };
 
@@ -2577,12 +2577,12 @@ let
 
   vim-fireplace = buildVimPluginFrom2Nix {
     pname = "vim-fireplace";
-    version = "2019-05-09";
+    version = "2019-05-17";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fireplace";
-      rev = "f327d6e523975e1544b2effd426b99df25b01d18";
-      sha256 = "0abh80w4xyg1wpc1fra9m68f882x430ky0vjfbp9xsnz3i5xd44c";
+      rev = "6f12616ee3d2160054270a9fb444006f580667d6";
+      sha256 = "0ms1xpp3kw98qq4dl7mp4c353acqncav6dwfz690lacpy0bgb9d3";
     };
   };
 
@@ -2676,12 +2676,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2019-03-11";
+    version = "2019-05-15";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "7eeea63e62b1cc088a75c7a7c244fc774d82e5bb";
-      sha256 = "0m7mkhm5cq4aknaxxn476lykkgyapb350cn20ax5c9nrmpfzf4rz";
+      rev = "e5936a22cfd2e25893e2ac34af4b0afdec1e36f5";
+      sha256 = "04nhkg1axpcvzjba6rvjn16v3gfdch12y74mfcrbmj0v2qqs8rgk";
     };
   };
 
@@ -2698,12 +2698,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2019-05-07";
+    version = "2019-05-16";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "c4b419db6c57125e91d6f292daa664b73b155b7b";
-      sha256 = "1whcmgr0isa7np6xmc66jrc68an58677bnpzyrd1y817np5f2336";
+      rev = "d2f1bbe458d8c7c3154ed113c3768bd84451f872";
+      sha256 = "0dcj36vcrbai049bjv8gw6kfd594lny17vvi7c817av6yclmxjqf";
     };
   };
 
@@ -3062,12 +3062,12 @@ let
 
   vim-localvimrc = buildVimPluginFrom2Nix {
     pname = "vim-localvimrc";
-    version = "2019-03-24";
+    version = "2019-05-10";
     src = fetchFromGitHub {
       owner = "embear";
       repo = "vim-localvimrc";
-      rev = "08f1389285902473a8b2de045c2d916fcc5affbc";
-      sha256 = "1sfcq50f5gkpwa2c5szi8aa7h2x50ki87knba8rsq58h58pgbnq1";
+      rev = "0b36a367f4d46b7f060836fcbfec029cce870ea9";
+      sha256 = "119ah0mx7ais335spdy5apk40wbfvhr1mnvjfs429fvym3xdqfk3";
     };
   };
 
@@ -3084,12 +3084,12 @@ let
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2019-04-24";
+    version = "2019-05-15";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "9616bcb14c0128a6722806dafe2b6f325fa0c26f";
-      sha256 = "10vsmcifjinqd26rw4fk94l4pymqzsqm66d8gwdqpp3jkx5birwg";
+      rev = "1fb7e1a50a11f5c45988c6515141b83e131d674f";
+      sha256 = "065yfp499640kkdn3n1n246lq3dhvgpc9ibpzn77qvqpmjavanzh";
     };
   };
 
@@ -3172,12 +3172,12 @@ let
 
   vim-nix = buildVimPluginFrom2Nix {
     pname = "vim-nix";
-    version = "2018-08-27";
+    version = "2019-05-13";
     src = fetchFromGitHub {
       owner = "LnL7";
       repo = "vim-nix";
-      rev = "be0c6bb409732b79cc86c177ca378b0b334e1efe";
-      sha256 = "1ivkwlm6lz43xk1m7aii0bgn2p3225dixck0qyhxw4zxhp2xiz06";
+      rev = "1403934ebe9f2e1951ebafa38dd93ca9326c890e";
+      sha256 = "0910slyddcgl03ijayx2p2vhvsz4442q7ffsz7xsrl6fr0k0xkj9";
     };
   };
 
@@ -3260,12 +3260,12 @@ let
 
   vim-pandoc = buildVimPluginFrom2Nix {
     pname = "vim-pandoc";
-    version = "2019-05-05";
+    version = "2019-05-16";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc";
-      rev = "2e342ac8b841934c66a1c9afade42e709a068095";
-      sha256 = "1hzjp9s490k8rcvv74zhjn8k17xn9igxbzxxkxy3n3zxhfd3jw8j";
+      rev = "2b91b338c371c4d7a7ab75901246d992b3542d7e";
+      sha256 = "1yn1kip09s37hs8ngld67zxa20gvvman6jd7q4vdrxlmy2miy9q4";
     };
   };
 
@@ -3282,12 +3282,12 @@ let
 
   vim-pandoc-syntax = buildVimPluginFrom2Nix {
     pname = "vim-pandoc-syntax";
-    version = "2019-05-05";
+    version = "2019-05-16";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc-syntax";
-      rev = "e557ade9aceb4925cd919c412fe9660b8c4f4cba";
-      sha256 = "1msryzjzlv4mil05h17jjy09839dzqp9r11g1f369zxi5hini8g2";
+      rev = "14c778e5bf069a1f13a4645aa8a34e1b46c980a8";
+      sha256 = "1a66f0shycqkl1329lgbvrbbzwdv8pgi9d8zaybw9jddn64rx9r7";
     };
   };
 
@@ -3601,12 +3601,12 @@ let
 
   vim-sneak = buildVimPluginFrom2Nix {
     pname = "vim-sneak";
-    version = "2018-08-29";
+    version = "2019-05-10";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-sneak";
-      rev = "91192d8969af1d86c98beff4001612976ea25d7a";
-      sha256 = "0nmbrp0ma9s3yfzb8z70l0pcxv8p115zv6fz4injxn1c436x9337";
+      rev = "045b3c0a70815de8e928a094c36d3b6bfde0aade";
+      sha256 = "1qwhfbsjwz58wph91l4disk1ab1c63lirf9j472wlwb22nf4yzlc";
     };
   };
 
@@ -3623,12 +3623,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2019-05-01";
+    version = "2019-05-10";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "9827f1713407ace7d7608b5dec4db256979d5858";
-      sha256 = "1l3pig6v0k629av50vcdhc0qwh5v1lsg7wlmm77q11sk0jacw2sv";
+      rev = "7ade68cb23b33e9483667a09dc6683bb5b4de682";
+      sha256 = "0ix30glpl55xz9knpi9p7gmyjpjg2nr4yg94qa8wj9y8hs54zm5l";
     };
   };
 
@@ -3667,12 +3667,12 @@ let
 
   vim-startify = buildVimPluginFrom2Nix {
     pname = "vim-startify";
-    version = "2019-04-11";
+    version = "2019-05-10";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-startify";
-      rev = "0a212847827933436d0b139f37b9825e28e3c0a1";
-      sha256 = "08si59jvwlgj1i8z1i0ly439ar75ifrnlraa6nw20n3ii6nwzsvh";
+      rev = "2e5d068572f1e6899d7cb7b509020b0a6f0c3f68";
+      sha256 = "1hkf8lc63bdjwdcp0cabwx3p1jydiy4h5gzm042110szxx5xir3q";
     };
   };
 
@@ -3755,23 +3755,23 @@ let
 
   vim-terraform = buildVimPluginFrom2Nix {
     pname = "vim-terraform";
-    version = "2019-03-31";
+    version = "2019-05-14";
     src = fetchFromGitHub {
       owner = "hashivim";
       repo = "vim-terraform";
-      rev = "a44bf0b1a142bb39e84e5d525f7d98b5d3a66057";
-      sha256 = "12wyjfmwz3lsd45vv4ava361ph6gravggi9vvvr9qgf5zc1shd3b";
+      rev = "d98d657d29691118b2ac830ca876f297d8567800";
+      sha256 = "1hhr3d8z9mfhylwx6vj49hs3b54hrhkipy67si5mds38g92rqfhg";
     };
   };
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2019-05-09";
+    version = "2019-05-15";
     src = fetchFromGitHub {
       owner = "janko-m";
       repo = "vim-test";
-      rev = "8e137f223df427e620496f02f0fda6363a76435f";
-      sha256 = "0qj4f597mr20lglvyapviqzn390yiwbaksb2bz42v4s0zh33nahg";
+      rev = "f665955382b4baf4f2e33344250a9914c5281681";
+      sha256 = "0mx4gz072gx7kvrhmfn7kdh3ccx9q1hfibkwz6870a3hxsciin6a";
     };
   };
 
@@ -3854,12 +3854,12 @@ let
 
   vim-vinegar = buildVimPluginFrom2Nix {
     pname = "vim-vinegar";
-    version = "2019-04-20";
+    version = "2019-05-13";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-vinegar";
-      rev = "e48cc1d71b838e6223a0ece54b9457ed76f92676";
-      sha256 = "16cx1j76b9kdrcjs8hhl15kfhpgan69qs9djda0c1pvzphj4bbgp";
+      rev = "09ac84c4d152a944caa341e913220087211c72ef";
+      sha256 = "18ki85s1l4f0q40k26jvcdcbq6a73x870dnxkw20ji3pfwdaa5v3";
     };
   };
 
@@ -4019,12 +4019,12 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2019-05-03";
+    version = "2019-05-14";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "ee10671c2b25287196194426607c2684827126f7";
-      sha256 = "04mxx4ww1qmr6918dryfh956lwmyz4nlq4dissms440p4kqf5giv";
+      rev = "26de8b92c9e9f2428f27d241cab1e7e15af56d3a";
+      sha256 = "0zvj6f02x3gf3qpv877n01yxyi7hqk5gczw0z3m7x3yz81xpv1m1";
     };
   };
 
@@ -4163,12 +4163,12 @@ let
 
   youcompleteme = buildVimPluginFrom2Nix {
     pname = "youcompleteme";
-    version = "2019-05-08";
+    version = "2019-05-11";
     src = fetchFromGitHub {
       owner = "valloric";
       repo = "youcompleteme";
-      rev = "f7e0a6cb7580471d1fc1c68ab85467ff207b5dee";
-      sha256 = "0cbv9ahnl70zh3abrr43ijyaqxnprp1kp6bgiwkpi7qzvcbvwzca";
+      rev = "dbcc3b0e14876fd4f39d38dfdef22351f74da3a5";
+      sha256 = "17rmmdnmj4pa1admls3d3w43vl9r040x3yhf4nnr1pf2jarv028v";
       fetchSubmodules = true;
     };
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix
index 90319efd7c78..2956b107aa71 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alsa-plugins";
-  version = "1.1.8";
+  version = "1.1.9";
 
   src = fetchurl {
     url = "mirror://alsa/plugins/${pname}-${version}.tar.bz2";
-    sha256 = "152r82i6f97gfilfgiax5prxkd4xlcipciv8ha8yrk452qbxyxvz";
+    sha256 = "01zrg0h2jw9dlj9233vjsn916yf4f2s667yry6xsn8d57lq745qn";
   };
 
   # ToDo: a52, etc.?
@@ -15,10 +15,6 @@ stdenv.mkDerivation rec {
     ++ lib.optional (libpulseaudio != null) libpulseaudio
     ++ lib.optional (libjack2 != null) libjack2;
 
-  configureFlags = [
-    "--with-alsalconfdir=${placeholder "out"}/etc/alsa/conf.d"
-  ];
-
   meta = with lib; {
     description = "Various plugins for ALSA";
     homepage = http://alsa-project.org/;
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix
index 2ced9c6094ec..09c430bcd53b 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "alsa-utils-${version}";
-  version = "1.1.8";
+  version = "1.1.9";
 
   src = fetchurl {
     url = "mirror://alsa/utils/${name}.tar.bz2";
-    sha256 = "1kx45yhrxai3k595yyqs4wj0p2n5b0c9mf0k36ljjf1bj8lgb6zx";
+    sha256 = "0fi11b7r8hg1bdjw74s8sqx8rc4qb310jaj9lsia9labvfyjrpsx";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/anbox/default.nix b/nixpkgs/pkgs/os-specific/linux/anbox/default.nix
index a21a0bb58bd8..9d3f7c34b0fb 100644
--- a/nixpkgs/pkgs/os-specific/linux/anbox/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/anbox/default.nix
@@ -45,13 +45,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "anbox";
-  version = "unstable-2019-03-07";
+  version = "unstable-2019-05-03";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "d521e282965462e82465045ab95d4ae1c4619685";
-    sha256 = "1wfx4bsyxvrjl16dq5pqgial8rnnsnxzbak2ap0waddz847czxwz";
+    rev = "ea2b7a3dea34a6803134f4adc16c276f4c2479eb";
+    sha256 = "00x772nbrbx7ma0scr24m65g50pmi4v6d6q3cwbbi55r8qiy2yz7";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/fwts/default.nix b/nixpkgs/pkgs/os-specific/linux/fwts/default.nix
index 566d1e9f56a7..7f31ac1dac07 100644
--- a/nixpkgs/pkgs/os-specific/linux/fwts/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fwts/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "fwts-${version}";
-  version = "19.03.00";
+  version = "19.05.00";
 
   src = fetchzip {
     url = "http://fwts.ubuntu.com/release/fwts-V${version}.tar.gz";
-    sha256 = "1zri73qmpgc0dwmdcfbcywcvxld7dqz7rkwwqncfkvvfc9zchk5l";
+    sha256 = "0hhwp25a7lknzmbbm067nxlzgyb3p7gh119jra2gdkm6d3p2gc47";
     stripRoot = false;
   };
 
diff --git a/nixpkgs/pkgs/os-specific/linux/iputils/default.nix b/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
index 223d5c4fe0fb..57eb09e40cfc 100644
--- a/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
@@ -6,7 +6,7 @@
 with stdenv.lib;
 
 let
-  time = "20190324";
+  time = "20190515";
   # ninfod probably could build on cross, but the Makefile doesn't pass --host
   # etc to the sub configure...
   withNinfod = stdenv.hostPlatform == stdenv.buildPlatform;
@@ -21,19 +21,19 @@ in stdenv.mkDerivation {
     owner = "iputils";
     repo = "iputils";
     rev = "s${time}";
-    sha256 = "0b755gv3370c0rrphx14mrsqjb396zqnsm9lsws842a4k4zrqmvi";
+    sha256 = "1k2wzgk0d47d1g9k8c1a5l24ml8h8xxz1vrs0vfbyxr7qghdhn4i";
   };
 
   # ninfod cannot be build with nettle yet:
   patches =
     [ ./build-ninfod-with-openssl.patch
-      (fetchpatch { # tracepath: fix musl build, again
-        url = "https://github.com/iputils/iputils/commit/c9aca1b53324bcd1b5a2de5c645813f80eccd016.patch";
-        sha256 = "0faqgkqbi57cyx1zgzzy6xgd24xr0iawix7mjs47j92ra9gw90cz";
+      (fetchpatch { # build-sys/doc: Fix the dependency on xsltproc
+        url = "https://github.com/iputils/iputils/commit/3b013f271931c3fe771e5a2c591f35d617de90f3.patch";
+        sha256 = "0ilhlgiqdflry7km3ik8i4h1yymm5f5zmwyl5r029q7x1p8kinfw";
       })
-      (fetchpatch { # doc: Use namespace correctly
-        url = "https://github.com/iputils/iputils/commit/c503834519d21973323980850431101f90e663ef.patch";
-        sha256 = "1yp6b6403ddccbhfzsb36cscxd36d4xb8syc1g02a18xkswiwf09";
+      (fetchpatch { # build-sys: Make setcap really optional
+        url = "https://github.com/iputils/iputils/commit/473be6467f995865244e7e68b2fa587a4ee79551.patch";
+        sha256 = "0781147qaf0jwa177jbmh474r8hqs0jwgi5vgx9csb43jzdm8hqf";
       })
     ];
 
@@ -41,13 +41,14 @@ in stdenv.mkDerivation {
     [ "-DUSE_CRYPTO=nettle"
       "-DBUILD_RARPD=true"
       "-DBUILD_TRACEROUTE6=true"
+      "-DNO_SETCAP_OR_SUID=true"
       "-Dsystemdunitdir=etc/systemd/system"
     ]
     ++ optional (!withNinfod) "-DBUILD_NINFOD=false"
     # Disable idn usage w/musl (https://github.com/iputils/iputils/pull/111):
     ++ optional stdenv.hostPlatform.isMusl "-DUSE_IDN=false";
 
-  nativeBuildInputs = [ meson ninja pkgconfig gettext libxslt.bin docbook_xsl_ns libcap ];
+  nativeBuildInputs = [ meson ninja pkgconfig gettext libxslt.bin docbook_xsl_ns ];
   buildInputs = [ libcap nettle systemd ]
     ++ optional (!stdenv.hostPlatform.isMusl) libidn2
     ++ optional withNinfod openssl; # TODO: Build with nettle
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
index 8a735ea7b910..c5136768c152 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
@@ -184,6 +184,7 @@ let
       VGA_SWITCHEROO         = yes; # Hybrid graphics support
       DRM_GMA600             = yes;
       DRM_GMA3600            = yes;
+      DRM_VMWGFX_FBCON       = yes;
       # necessary for amdgpu polaris support
       DRM_AMD_POWERPLAY = whenBetween "4.5" "4.9" yes;
       # (experimental) amdgpu support for verde and newer chipsets
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 0a8b8cd40420..c10b2b8a6d4a 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.119";
+  version = "4.14.120";
 
   # 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 = "0z1vmpbjkn9vqf380dgdcdmi2a22cymjs0spm9708x4x709vf5an";
+    sha256 = "0k6bphnwwbgj06v8a4xafb23ysrvh8kg0imwhbvm6vsyyrnfif6x";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
index 2119c11dee4d..bd5f2fe347d1 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19.43";
+  version = "4.19.44";
 
   # 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 = "0myzsbajwvskiqdlqsahw87f0ppj9gj7kh05vbs8ndmjzahij5hi";
+    sha256 = "125jlsy42qlprg6yhinsm87ir7x4iw2v2fd0myjihmkpjgll4xkh";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
index 7ffe5dc88f11..dc6998410cfb 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.179";
+  version = "4.4.180";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1l979wmxridq9psjlhmgkax3bi769pvmmvdgf0j2y67gclkrssic";
+    sha256 = "0ykai953rpy9zkb4qxb63y6pwwbwlnvx69nhb797zfw1scbh4i8s";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 2f2ff1f929ea..ca30427a8833 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.176";
+  version = "4.9.177";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0y5i0picww914ljynqjdpv7cld7380y9lrlgnza02zvkq04d151a";
+    sha256 = "1vl7g21538ndlygpjsbjnayi9f37zi8s2g37gcznany3phz1wfy7";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.0.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.0.nix
index 4571a570d4dd..28ea81e8795b 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.0.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.0.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.0.16";
+  version = "5.0.17";
 
   # 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/v5.x/linux-${version}.tar.xz";
-    sha256 = "1b7wz577mdn2cdpn8mm8bl5kgxvm3rq7fzy0nc8cxl2j1wwwx9sw";
+    sha256 = "0acng2xdpjagqabhirb85yj2z9h6yplgdiicvk2kyklsvjdh4dxb";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.1.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.1.nix
index e06cdd26fddd..5db24b34ec9d 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.1.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.1.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.1.2";
+  version = "5.1.3";
 
   # 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/v5.x/linux-${version}.tar.xz";
-    sha256 = "0nzgkg4si0378pz6cv3hwj7qmmi5wdz1qvml0198b61n89xdcypc";
+    sha256 = "18malq2ps7v8c21xp8vaba9kvnnpnzg3wcsi46ci1rzqv893xxdh";
   };
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
index 3fcb2fcbb24a..df741d9a029b 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
+++ b/nixpkgs/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.102-156";
+  version = "4.14.120-160";
 
   # modDirVersion needs to be x.y.z.
-  modDirVersion = "4.14.102";
+  modDirVersion = "4.14.120";
 
   # branchVersion needs to be x.y.
   extraMeta.branch = "4.14";
@@ -13,7 +13,7 @@ buildLinux (args // rec {
     owner = "hardkernel";
     repo = "linux";
     rev = version;
-    sha256 = "12af0n1lg2w2qm9aq1v8w3x8npaka60ks9xp6jwaw0l06j23ryyv";
+    sha256 = "0sb7k8kpbm4h98jsqjnjmj0ysp55n9cpczpw0jsg0x0sj9qp73nr";
   };
 
   defconfig = "odroidxu4_defconfig";
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
index 144ac0e07cbc..45e55e03c817 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
@@ -1,13 +1,13 @@
 { stdenv, buildPackages, fetchgit, fetchpatch, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "5.0.2019.04.04";
+  version = "5.0.2019.05.08";
   modDirVersion = "5.0.0";
 
   src = fetchgit {
     url = "https://evilpiepirate.org/git/bcachefs.git";
-    rev = "d83b992f653d9f742f3f8567dbcfd1f4f72e858f";
-    sha256 = "17xipjhkl4arshyj3riwq4pgl2qqcnlfhaga77a430wy22s7plh2";
+    rev = "454bd4f82d85bb42a86b8eb0172b13e86e5788a7";
+    sha256 = "1k11yz464lr02yncy231p06ja7w72w9l1nr7cihyiyj1ynzwpdls";
   };
 
   extraConfig = "BCACHEFS_FS m";
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
index 7888ac6af44c..e9cc370f4e7b 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "5.1-rc7";
-  modDirVersion = "5.1.0-rc7";
-  extraMeta.branch = "5.1";
+  version = "5.2-rc1";
+  modDirVersion = "5.2.0-rc1";
+  extraMeta.branch = "5.2";
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "05085j84kn3mf5s2hy8i9jgvnglpr9v918kmc9lmpn5vq7frh9s1";
+    sha256 = "169gjmciijgmwwfyz3n7pvf2x18pmfvgdk73s8jlx30ggwzgac1l";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/manual-config.nix b/nixpkgs/pkgs/os-specific/linux/kernel/manual-config.nix
index 1512f47ade40..6210523d62a5 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -198,6 +198,10 @@ let
         cp $buildRoot/{.config,Module.symvers} $dev/lib/modules/${modDirVersion}/build
         make modules_prepare $makeFlags "''${makeFlagsArray[@]}" O=$dev/lib/modules/${modDirVersion}/build
 
+        # For reproducibility, removes accidental leftovers from a `cc1` call
+        # from a `try-run` call from the Makefile
+        rm -f $dev/lib/modules/${modDirVersion}/build/.[0-9]*.d
+
         # Keep some extra files on some arches (powerpc, aarch64)
         for f in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o; do
           if [ -f "$buildRoot/$f" ]; then
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
index ed71f27bdcc8..ff0416b4efcc 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -20,10 +20,10 @@ rec {
 
   # No active beta right now
   beta = generic {
-    version = "430.09";
-    sha256_64bit = "0k59ahljya286ararncf3mc7sfgsw82vnrszczqicpysn3qfar95";
-    settingsSha256 = "082v0xmz83sf4wdvcb2zawddy5vh3pbwjz0fda1rayc7fdadni05";
-    persistencedSha256 = "028vs23mnb345sxjxqqmln9pwq8n6cc6dhfzq4hj21ghc6l6fg54";
+    version = "430.14";
+    sha256_64bit = "05qgakc0sqv9zr6j4i49iqrd271nris8pmnv3l431r71ygx6zm00";
+    settingsSha256 = "1hh07258a6z0g8dl6mxrizdxqcgswv58r4rbamfhhwh9i42fpdgg";
+    persistencedSha256 = "1wmwmg9ma9rfx03s2qa249f0p7yf0lxdpiadab0raajk1lzlrrc8";
   };
 
   stable_418 = generic {
diff --git a/nixpkgs/pkgs/os-specific/linux/shadow/default.nix b/nixpkgs/pkgs/os-specific/linux/shadow/default.nix
index 8c778e72b704..6b808f0d6a63 100644
--- a/nixpkgs/pkgs/os-specific/linux/shadow/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/shadow/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, libxslt, libxml2
-, docbook_xml_dtd_412, docbook_xsl, gnome-doc-utils, flex, bison
+, docbook_xml_dtd_45, docbook_xsl, gnome-doc-utils, flex, bison
 , pam ? null, glibcCross ? null
 }:
 
@@ -30,12 +30,21 @@ stdenv.mkDerivation rec {
 
   buildInputs = stdenv.lib.optional (pam != null && stdenv.isLinux) pam;
   nativeBuildInputs = [autoreconfHook libxslt libxml2
-    docbook_xml_dtd_412 docbook_xsl gnome-doc-utils flex bison
+    docbook_xml_dtd_45 docbook_xsl gnome-doc-utils flex bison
     ];
 
   patches =
     [ ./keep-path.patch
+      # Obtain XML resources from XML catalog (patch adapted from gtk-doc)
+      ./respect-xml-catalog-files-var.patch
       dots_in_usernames
+
+      # Check for correct DocBook version during configure
+      # https://github.com/shadow-maint/shadow/pull/162
+      (fetchpatch {
+        url = "https://github.com/shadow-maint/shadow/commit/47797ca6654f79e3de854a6c69db2bdb0516db08.patch";
+        sha256 = "1zn8f6fd26gj5sh60099xqc7mjwgbbkkic5xfigvxa4b90vm8fd7";
+      })
     ];
 
   # The nix daemon often forbids even creating set[ug]id files.
@@ -52,11 +61,6 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     export ac_cv_func_setpgrp_void=yes
     export shadow_cv_logdir=/var/log
-    (
-    head -n -1 "${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml"
-    tail -n +3 "${docbook_xsl}/share/xml/docbook-xsl/catalog.xml"
-    ) > xmlcatalog
-    configureFlags="$configureFlags --with-xml-catalog=$PWD/xmlcatalog ";
   '';
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch b/nixpkgs/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch
new file mode 100644
index 000000000000..7d922eae71fc
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch
@@ -0,0 +1,30 @@
+diff --git a/acinclude.m4 b/acinclude.m4
+index dd01f165..e23160ee 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -46,9 +46,21 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
+     ifelse([$3],,,[$3
+ ])dnl
+   else
+-    AC_MSG_RESULT([not found])
+-    ifelse([$4],,
+-       [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],
+-       [$4])
++    jh_check_xml_catalog_saved_ifs="$IFS"
++    IFS=' '
++    for f in $XML_CATALOG_FILES; do
++      if [[ -f "$f" ]] && \
++        AC_RUN_LOG([$XMLCATALOG --noout "$f" "$1" >&2]); then
++        jh_found_xmlcatalog=true
++        AC_MSG_RESULT([found])
++        ifelse([$3],,,[$3])
++        break
++      fi
++    done
++    IFS="$jh_check_xml_catalog_saved_ifs"
++    if ! $jh_found_xmlcatalog; then
++      AC_MSG_RESULT([not found])
++      ifelse([$4],,[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],[$4])
++    fi
+   fi
+ ])
diff --git a/nixpkgs/pkgs/os-specific/linux/util-linux/default.nix b/nixpkgs/pkgs/os-specific/linux/util-linux/default.nix
index 3e94ba5c1ea2..0962bd911329 100644
--- a/nixpkgs/pkgs/os-specific/linux/util-linux/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/util-linux/default.nix
@@ -5,14 +5,14 @@ let
   version = lib.concatStringsSep "." ([ majorVersion ]
     ++ lib.optional (patchVersion != "") patchVersion);
   majorVersion = "2.33";
-  patchVersion = "1";
+  patchVersion = "2";
 
 in stdenv.mkDerivation rec {
   name = "util-linux-${version}";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/util-linux/v${majorVersion}/${name}.tar.xz";
-    sha256 = "08ggvgrb59m5jbq29950xxirsgv4xj3nwsc7vf82nyg1nvrxjjy1";
+    sha256 = "15yf2dh4jd1kg6066hydlgdhhs2j3na13qld8yx30qngqvmfh6v3";
   };
 
   patches = [
@@ -41,15 +41,19 @@ in stdenv.mkDerivation rec {
     "--disable-use-tty-group"
     "--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin"
     "--disable-makeinstall-setuid" "--disable-makeinstall-chown"
+    "--disable-su" # provided by shadow
     (lib.withFeature (ncurses != null) "ncursesw")
     (lib.withFeature (systemd != null) "systemd")
     (lib.withFeatureAs (systemd != null)
-       "systemdsystemunitdir" "$(bin)/lib/systemd/system/")
+       "systemdsystemunitdir" "${placeholder "bin"}/lib/systemd/system/")
   ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
        "scanf_cv_type_modifier=ms"
   ;
 
-  makeFlags = "usrbin_execdir=$(bin)/bin usrsbin_execdir=$(bin)/sbin";
+  makeFlags = [
+    "usrbin_execdir=${placeholder "bin"}/bin"
+    "usrsbin_execdir=${placeholder "bin"}/sbin"
+  ];
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs =
@@ -58,9 +62,7 @@ in stdenv.mkDerivation rec {
 
   doCheck = false; # "For development purpose only. Don't execute on production system!"
 
-  postInstall = ''
-    rm "$bin/bin/su" # su should be supplied by the su package (shadow)
-  '' + lib.optionalString minimal ''
+  postInstall = lib.optionalString minimal ''
     rm -rf $out/share/{locale,doc,bash-completion}
   '';
 
diff --git a/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix b/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
index ca8ddbc7af33..82df1f6b988f 100644
--- a/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
@@ -24,10 +24,10 @@ let
       });
 
       jinja2 = super.jinja2.overridePythonAttrs (oldAttrs: rec {
-        version = "2.10";
+        version = "2.10.1";
         src = oldAttrs.src.override {
           inherit version;
-          sha256 = "f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4";
+          sha256 = "065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013";
         };
       });
 
@@ -52,11 +52,11 @@ let
 
 in python.pkgs.buildPythonApplication rec {
   pname = "appdaemon";
-  version = "3.0.4";
+  version = "3.0.5";
 
   src = python.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "e2393b5e0bb34e94e61f5debc95ad74c1c6929635b74bf8ba15c22b40cbdec69";
+    sha256 = "623897ce08dc2efe24d04380df36e4b7fb35c0e4007e882857d4047f0b60349d";
   };
 
   propagatedBuildInputs = with python.pkgs; [
diff --git a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
index 48fa3793d9a2..c7f1bb475c1b 100644
--- a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
@@ -2,2144 +2,826 @@
 # Do not edit!
 
 {
-  version = "0.91.4";
+  version = "0.92.2";
   components = {
     "abode" = ps: with ps; [  ];
-    "abode.alarm_control_panel" = ps: with ps; [  ];
-    "abode.binary_sensor" = ps: with ps; [  ];
-    "abode.camera" = ps: with ps; [  ];
-    "abode.cover" = ps: with ps; [  ];
-    "abode.light" = ps: with ps; [  ];
-    "abode.lock" = ps: with ps; [  ];
-    "abode.sensor" = ps: with ps; [  ];
-    "abode.switch" = ps: with ps; [  ];
-    "acer_projector" = ps: with ps; [  ];
-    "acer_projector.switch" = ps: with ps; [ pyserial ];
+    "acer_projector" = ps: with ps; [ pyserial ];
     "actiontec" = ps: with ps; [  ];
-    "actiontec.device_tracker" = ps: with ps; [  ];
     "ads" = ps: with ps; [  ];
-    "ads.binary_sensor" = ps: with ps; [  ];
-    "ads.light" = ps: with ps; [  ];
-    "ads.sensor" = ps: with ps; [  ];
-    "ads.switch" = ps: with ps; [  ];
     "aftership" = ps: with ps; [  ];
-    "aftership.sensor" = ps: with ps; [  ];
     "air_quality" = ps: with ps; [  ];
-    "airvisual" = ps: with ps; [  ];
-    "airvisual.sensor" = ps: with ps; [ pyairvisual ];
+    "airvisual" = ps: with ps; [ pyairvisual ];
     "aladdin_connect" = ps: with ps; [  ];
-    "aladdin_connect.cover" = ps: with ps; [  ];
     "alarm_control_panel" = ps: with ps; [  ];
     "alarmdecoder" = ps: with ps; [  ];
-    "alarmdecoder.alarm_control_panel" = ps: with ps; [  ];
-    "alarmdecoder.binary_sensor" = ps: with ps; [  ];
-    "alarmdecoder.sensor" = ps: with ps; [  ];
     "alarmdotcom" = ps: with ps; [  ];
-    "alarmdotcom.alarm_control_panel" = ps: with ps; [  ];
     "alert" = ps: with ps; [  ];
     "alexa" = ps: with ps; [ aiohttp-cors ];
-    "alexa.auth" = ps: with ps; [  ];
-    "alexa.const" = ps: with ps; [  ];
-    "alexa.flash_briefings" = ps: with ps; [  ];
-    "alexa.intent" = ps: with ps; [  ];
-    "alexa.smart_home" = ps: with ps; [  ];
     "alpha_vantage" = ps: with ps; [  ];
-    "alpha_vantage.sensor" = ps: with ps; [  ];
-    "amazon_polly" = ps: with ps; [  ];
-    "amazon_polly.tts" = ps: with ps; [ boto3 ];
+    "amazon_polly" = ps: with ps; [ boto3 ];
     "ambient_station" = ps: with ps; [  ];
-    "ambient_station.binary_sensor" = ps: with ps; [  ];
-    "ambient_station.config_flow" = ps: with ps; [  ];
-    "ambient_station.const" = ps: with ps; [  ];
-    "ambient_station.sensor" = ps: with ps; [  ];
     "amcrest" = ps: with ps; [ ha-ffmpeg ];
-    "amcrest.camera" = ps: with ps; [ ha-ffmpeg ];
-    "amcrest.sensor" = ps: with ps; [ ha-ffmpeg ];
-    "amcrest.switch" = ps: with ps; [ ha-ffmpeg ];
+    "ampio" = ps: with ps; [  ];
     "android_ip_webcam" = ps: with ps; [  ];
-    "android_ip_webcam.binary_sensor" = ps: with ps; [  ];
-    "android_ip_webcam.sensor" = ps: with ps; [  ];
-    "android_ip_webcam.switch" = ps: with ps; [  ];
     "androidtv" = ps: with ps; [  ];
-    "androidtv.media_player" = ps: with ps; [  ];
     "anel_pwrctrl" = ps: with ps; [  ];
-    "anel_pwrctrl.switch" = ps: with ps; [  ];
     "anthemav" = ps: with ps; [  ];
-    "anthemav.media_player" = ps: with ps; [  ];
     "apcupsd" = ps: with ps; [  ];
-    "apcupsd.binary_sensor" = ps: with ps; [  ];
-    "apcupsd.sensor" = ps: with ps; [  ];
     "api" = ps: with ps; [ aiohttp-cors ];
-    "api_streams" = ps: with ps; [  ];
     "apns" = ps: with ps; [  ];
-    "apns.notify" = ps: with ps; [  ];
     "apple_tv" = ps: with ps; [ pyatv ];
-    "apple_tv.media_player" = ps: with ps; [ pyatv ];
-    "apple_tv.remote" = ps: with ps; [ pyatv ];
     "aqualogic" = ps: with ps; [  ];
-    "aqualogic.sensor" = ps: with ps; [  ];
-    "aqualogic.switch" = ps: with ps; [  ];
     "aquostv" = ps: with ps; [  ];
-    "aquostv.media_player" = ps: with ps; [  ];
     "arduino" = ps: with ps; [  ];
-    "arduino.sensor" = ps: with ps; [  ];
-    "arduino.switch" = ps: with ps; [  ];
     "arest" = ps: with ps; [  ];
-    "arest.binary_sensor" = ps: with ps; [  ];
-    "arest.sensor" = ps: with ps; [  ];
-    "arest.switch" = ps: with ps; [  ];
-    "arlo" = ps: with ps; [  ];
-    "arlo.alarm_control_panel" = ps: with ps; [  ];
-    "arlo.camera" = ps: with ps; [ ha-ffmpeg ];
-    "arlo.sensor" = ps: with ps; [  ];
-    "aruba" = ps: with ps; [  ];
-    "aruba.device_tracker" = ps: with ps; [ pexpect ];
-    "arwn" = ps: with ps; [  ];
-    "arwn.sensor" = ps: with ps; [ paho-mqtt ];
+    "arlo" = ps: with ps; [ ha-ffmpeg ];
+    "aruba" = ps: with ps; [ pexpect ];
+    "arwn" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ];
     "asterisk_cdr" = ps: with ps; [  ];
-    "asterisk_cdr.mailbox" = ps: with ps; [  ];
     "asterisk_mbox" = ps: with ps; [  ];
-    "asterisk_mbox.mailbox" = ps: with ps; [  ];
     "asuswrt" = ps: with ps; [  ];
-    "asuswrt.device_tracker" = ps: with ps; [  ];
-    "asuswrt.sensor" = ps: with ps; [  ];
     "august" = ps: with ps; [  ];
-    "august.binary_sensor" = ps: with ps; [  ];
-    "august.camera" = ps: with ps; [  ];
-    "august.lock" = ps: with ps; [  ];
     "aurora" = ps: with ps; [  ];
-    "aurora.binary_sensor" = ps: with ps; [  ];
     "auth" = ps: with ps; [ aiohttp-cors ];
-    "auth.indieauth" = ps: with ps; [  ];
-    "auth.login_flow" = ps: with ps; [  ];
-    "auth.mfa_setup_flow" = ps: with ps; [  ];
-    "automatic" = ps: with ps; [  ];
-    "automatic.device_tracker" = ps: with ps; [ aiohttp-cors ];
-    "automation" = ps: with ps; [  ];
-    "automation.event" = ps: with ps; [  ];
-    "automation.geo_location" = ps: with ps; [  ];
-    "automation.homeassistant" = ps: with ps; [  ];
-    "automation.litejet" = ps: with ps; [  ];
-    "automation.mqtt" = ps: with ps; [ paho-mqtt ];
-    "automation.numeric_state" = ps: with ps; [  ];
-    "automation.state" = ps: with ps; [  ];
-    "automation.sun" = ps: with ps; [  ];
-    "automation.template" = ps: with ps; [  ];
-    "automation.time" = ps: with ps; [  ];
-    "automation.time_pattern" = ps: with ps; [  ];
-    "automation.webhook" = ps: with ps; [ aiohttp-cors ];
-    "automation.zone" = ps: with ps; [  ];
+    "automatic" = ps: with ps; [ aiohttp-cors ];
+    "automation" = ps: with ps; [ aiohttp-cors ];
     "avion" = ps: with ps; [  ];
-    "avion.light" = ps: with ps; [  ];
     "awair" = ps: with ps; [  ];
-    "awair.sensor" = ps: with ps; [  ];
     "aws" = ps: with ps; [  ];
-    "aws.config_flow" = ps: with ps; [  ];
-    "aws.const" = ps: with ps; [  ];
-    "aws.notify" = ps: with ps; [  ];
-    "aws_lambda" = ps: with ps; [  ];
-    "aws_lambda.notify" = ps: with ps; [ boto3 ];
-    "aws_sns" = ps: with ps; [  ];
-    "aws_sns.notify" = ps: with ps; [ boto3 ];
-    "aws_sqs" = ps: with ps; [  ];
-    "aws_sqs.notify" = ps: with ps; [ boto3 ];
     "axis" = ps: with ps; [  ];
-    "axis.binary_sensor" = ps: with ps; [  ];
-    "axis.camera" = ps: with ps; [  ];
-    "axis.config_flow" = ps: with ps; [  ];
-    "axis.const" = ps: with ps; [  ];
-    "axis.device" = ps: with ps; [  ];
-    "axis.errors" = ps: with ps; [  ];
     "baidu" = ps: with ps; [  ];
-    "baidu.tts" = ps: with ps; [  ];
     "bayesian" = ps: with ps; [  ];
-    "bayesian.binary_sensor" = ps: with ps; [  ];
     "bbb_gpio" = ps: with ps; [  ];
-    "bbb_gpio.binary_sensor" = ps: with ps; [  ];
-    "bbb_gpio.switch" = ps: with ps; [  ];
     "bbox" = ps: with ps; [  ];
-    "bbox.device_tracker" = ps: with ps; [  ];
-    "bbox.sensor" = ps: with ps; [  ];
     "bh1750" = ps: with ps; [  ];
-    "bh1750.sensor" = ps: with ps; [  ];
     "binary_sensor" = ps: with ps; [  ];
     "bitcoin" = ps: with ps; [  ];
-    "bitcoin.sensor" = ps: with ps; [  ];
     "blackbird" = ps: with ps; [  ];
-    "blackbird.media_player" = ps: with ps; [  ];
     "blink" = ps: with ps; [  ];
-    "blink.alarm_control_panel" = ps: with ps; [  ];
-    "blink.binary_sensor" = ps: with ps; [  ];
-    "blink.camera" = ps: with ps; [  ];
-    "blink.sensor" = ps: with ps; [  ];
-    "blinksticklight" = ps: with ps; [  ];
-    "blinksticklight.light" = ps: with ps; [ BlinkStick ];
+    "blinksticklight" = ps: with ps; [ BlinkStick ];
     "blinkt" = ps: with ps; [  ];
-    "blinkt.light" = ps: with ps; [  ];
     "blockchain" = ps: with ps; [  ];
-    "blockchain.sensor" = ps: with ps; [  ];
     "bloomsky" = ps: with ps; [  ];
-    "bloomsky.binary_sensor" = ps: with ps; [  ];
-    "bloomsky.camera" = ps: with ps; [  ];
-    "bloomsky.sensor" = ps: with ps; [  ];
-    "bluesound" = ps: with ps; [  ];
-    "bluesound.media_player" = ps: with ps; [ xmltodict ];
+    "bluesound" = ps: with ps; [ xmltodict ];
     "bluetooth_le_tracker" = ps: with ps; [  ];
-    "bluetooth_le_tracker.device_tracker" = ps: with ps; [  ];
-    "bluetooth_tracker" = ps: with ps; [  ];
-    "bluetooth_tracker.device_tracker" = ps: with ps; [ bt_proximity ];
+    "bluetooth_tracker" = ps: with ps; [ bt_proximity ];
     "bme280" = ps: with ps; [  ];
-    "bme280.sensor" = ps: with ps; [  ];
     "bme680" = ps: with ps; [  ];
-    "bme680.sensor" = ps: with ps; [  ];
     "bmw_connected_drive" = ps: with ps; [  ];
-    "bmw_connected_drive.binary_sensor" = ps: with ps; [  ];
-    "bmw_connected_drive.device_tracker" = ps: with ps; [  ];
-    "bmw_connected_drive.lock" = ps: with ps; [  ];
-    "bmw_connected_drive.sensor" = ps: with ps; [  ];
     "bom" = ps: with ps; [  ];
-    "bom.sensor" = ps: with ps; [  ];
-    "bom.weather" = ps: with ps; [  ];
     "braviatv" = ps: with ps; [  ];
-    "braviatv.media_player" = ps: with ps; [  ];
-    "broadlink" = ps: with ps; [  ];
-    "broadlink.sensor" = ps: with ps; [ broadlink ];
-    "broadlink.switch" = ps: with ps; [ broadlink ];
+    "broadlink" = ps: with ps; [ broadlink ];
     "brottsplatskartan" = ps: with ps; [  ];
-    "brottsplatskartan.sensor" = ps: with ps; [  ];
     "browser" = ps: with ps; [  ];
     "brunt" = ps: with ps; [  ];
-    "brunt.cover" = ps: with ps; [  ];
     "bt_home_hub_5" = ps: with ps; [  ];
-    "bt_home_hub_5.device_tracker" = ps: with ps; [  ];
     "bt_smarthub" = ps: with ps; [  ];
-    "bt_smarthub.device_tracker" = ps: with ps; [  ];
     "buienradar" = ps: with ps; [  ];
-    "buienradar.sensor" = ps: with ps; [  ];
-    "buienradar.weather" = ps: with ps; [  ];
-    "caldav" = ps: with ps; [  ];
-    "caldav.calendar" = ps: with ps; [  ];
+    "caldav" = ps: with ps; [ caldav ];
     "calendar" = ps: with ps; [ aiohttp-cors ];
     "camera" = ps: with ps; [ aiohttp-cors ];
-    "camera.const" = ps: with ps; [  ];
-    "camera.prefs" = ps: with ps; [  ];
-    "canary" = ps: with ps; [  ];
-    "canary.alarm_control_panel" = ps: with ps; [  ];
-    "canary.camera" = ps: with ps; [ ha-ffmpeg ];
-    "canary.sensor" = ps: with ps; [  ];
+    "canary" = ps: with ps; [ ha-ffmpeg ];
     "cast" = ps: with ps; [ PyChromecast ];
-    "cast.media_player" = ps: with ps; [ PyChromecast ];
     "cert_expiry" = ps: with ps; [  ];
-    "cert_expiry.sensor" = ps: with ps; [  ];
     "channels" = ps: with ps; [  ];
-    "channels.media_player" = ps: with ps; [  ];
-    "cisco_ios" = ps: with ps; [  ];
-    "cisco_ios.device_tracker" = ps: with ps; [ pexpect ];
+    "cisco_ios" = ps: with ps; [ pexpect ];
     "cisco_mobility_express" = ps: with ps; [  ];
-    "cisco_mobility_express.device_tracker" = ps: with ps; [  ];
+    "cisco_webex_teams" = ps: with ps; [  ];
     "ciscospark" = ps: with ps; [  ];
-    "ciscospark.notify" = ps: with ps; [  ];
     "citybikes" = ps: with ps; [  ];
-    "citybikes.sensor" = ps: with ps; [  ];
     "clementine" = ps: with ps; [  ];
-    "clementine.media_player" = ps: with ps; [  ];
     "clickatell" = ps: with ps; [  ];
-    "clickatell.notify" = ps: with ps; [  ];
     "clicksend" = ps: with ps; [  ];
-    "clicksend.notify" = ps: with ps; [  ];
     "clicksend_tts" = ps: with ps; [  ];
-    "clicksend_tts.notify" = ps: with ps; [  ];
     "climate" = ps: with ps; [  ];
-    "climate.const" = ps: with ps; [  ];
-    "climate.reproduce_state" = ps: with ps; [  ];
     "cloud" = ps: with ps; [ aiohttp-cors ];
-    "cloud.binary_sensor" = ps: with ps; [ aiohttp-cors ];
-    "cloud.const" = ps: with ps; [  ];
-    "cloud.http_api" = ps: with ps; [  ];
-    "cloud.prefs" = ps: with ps; [  ];
-    "cloud.utils" = ps: with ps; [  ];
     "cloudflare" = ps: with ps; [  ];
     "cmus" = ps: with ps; [  ];
-    "cmus.media_player" = ps: with ps; [  ];
     "co2signal" = ps: with ps; [  ];
-    "co2signal.sensor" = ps: with ps; [  ];
     "coinbase" = ps: with ps; [  ];
-    "coinbase.sensor" = ps: with ps; [  ];
-    "coinmarketcap" = ps: with ps; [  ];
-    "coinmarketcap.sensor" = ps: with ps; [ coinmarketcap ];
+    "coinmarketcap" = ps: with ps; [ coinmarketcap ];
     "comed_hourly_pricing" = ps: with ps; [  ];
-    "comed_hourly_pricing.sensor" = ps: with ps; [  ];
     "comfoconnect" = ps: with ps; [  ];
-    "comfoconnect.fan" = ps: with ps; [  ];
-    "comfoconnect.sensor" = ps: with ps; [  ];
     "command_line" = ps: with ps; [  ];
-    "command_line.binary_sensor" = ps: with ps; [  ];
-    "command_line.cover" = ps: with ps; [  ];
-    "command_line.notify" = ps: with ps; [  ];
-    "command_line.sensor" = ps: with ps; [  ];
-    "command_line.switch" = ps: with ps; [  ];
     "concord232" = ps: with ps; [  ];
-    "concord232.alarm_control_panel" = ps: with ps; [  ];
-    "concord232.binary_sensor" = ps: with ps; [  ];
     "config" = ps: with ps; [ aiohttp-cors ];
-    "config.area_registry" = ps: with ps; [  ];
-    "config.auth" = ps: with ps; [  ];
-    "config.automation" = ps: with ps; [  ];
-    "config.config_entries" = ps: with ps; [  ];
-    "config.core" = ps: with ps; [  ];
-    "config.customize" = ps: with ps; [  ];
-    "config.device_registry" = ps: with ps; [  ];
-    "config.entity_registry" = ps: with ps; [  ];
-    "config.group" = ps: with ps; [  ];
-    "config.script" = ps: with ps; [  ];
-    "config.zwave" = ps: with ps; [  ];
     "configurator" = ps: with ps; [  ];
     "conversation" = ps: with ps; [ aiohttp-cors ];
-    "conversation.util" = ps: with ps; [  ];
     "coolmaster" = ps: with ps; [  ];
-    "coolmaster.climate" = ps: with ps; [  ];
     "counter" = ps: with ps; [  ];
     "cover" = ps: with ps; [  ];
     "cppm_tracker" = ps: with ps; [  ];
-    "cppm_tracker.device_tracker" = ps: with ps; [  ];
-    "cpuspeed" = ps: with ps; [  ];
-    "cpuspeed.sensor" = ps: with ps; [ py-cpuinfo ];
+    "cpuspeed" = ps: with ps; [ py-cpuinfo ];
     "crimereports" = ps: with ps; [  ];
-    "crimereports.sensor" = ps: with ps; [  ];
-    "cups" = ps: with ps; [  ];
-    "cups.sensor" = ps: with ps; [ pycups ];
+    "cups" = ps: with ps; [ pycups ];
     "currencylayer" = ps: with ps; [  ];
-    "currencylayer.sensor" = ps: with ps; [  ];
     "daikin" = ps: with ps; [  ];
-    "daikin.climate" = ps: with ps; [  ];
-    "daikin.config_flow" = ps: with ps; [  ];
-    "daikin.const" = ps: with ps; [  ];
-    "daikin.sensor" = ps: with ps; [  ];
-    "daikin.switch" = ps: with ps; [  ];
     "danfoss_air" = ps: with ps; [  ];
-    "danfoss_air.binary_sensor" = ps: with ps; [  ];
-    "danfoss_air.sensor" = ps: with ps; [  ];
-    "danfoss_air.switch" = ps: with ps; [  ];
-    "darksky" = ps: with ps; [  ];
-    "darksky.sensor" = ps: with ps; [ python-forecastio ];
-    "darksky.weather" = ps: with ps; [ python-forecastio ];
+    "darksky" = ps: with ps; [ python-forecastio ];
     "datadog" = ps: with ps; [ datadog ];
     "ddwrt" = ps: with ps; [  ];
-    "ddwrt.device_tracker" = ps: with ps; [  ];
     "deconz" = ps: with ps; [  ];
-    "deconz.binary_sensor" = ps: with ps; [  ];
-    "deconz.climate" = ps: with ps; [  ];
-    "deconz.config_flow" = ps: with ps; [  ];
-    "deconz.const" = ps: with ps; [  ];
-    "deconz.cover" = ps: with ps; [  ];
-    "deconz.deconz_device" = ps: with ps; [  ];
-    "deconz.errors" = ps: with ps; [  ];
-    "deconz.gateway" = ps: with ps; [  ];
-    "deconz.light" = ps: with ps; [  ];
-    "deconz.scene" = ps: with ps; [  ];
-    "deconz.sensor" = ps: with ps; [  ];
-    "deconz.switch" = ps: with ps; [  ];
     "decora" = ps: with ps; [  ];
-    "decora.light" = ps: with ps; [  ];
     "decora_wifi" = ps: with ps; [  ];
-    "decora_wifi.light" = ps: with ps; [  ];
     "default_config" = ps: with ps; [ pynacl aiohttp-cors distro sqlalchemy zeroconf ];
-    "deluge" = ps: with ps; [  ];
-    "deluge.sensor" = ps: with ps; [ deluge-client ];
-    "deluge.switch" = ps: with ps; [ deluge-client ];
+    "deluge" = ps: with ps; [ deluge-client ];
     "demo" = ps: with ps; [ aiohttp-cors ];
-    "demo.air_quality" = ps: with ps; [  ];
-    "demo.alarm_control_panel" = ps: with ps; [  ];
-    "demo.binary_sensor" = ps: with ps; [  ];
-    "demo.calendar" = ps: with ps; [  ];
-    "demo.camera" = ps: with ps; [  ];
-    "demo.climate" = ps: with ps; [  ];
-    "demo.cover" = ps: with ps; [  ];
-    "demo.device_tracker" = ps: with ps; [  ];
-    "demo.fan" = ps: with ps; [  ];
-    "demo.geo_location" = ps: with ps; [  ];
-    "demo.image_processing" = ps: with ps; [  ];
-    "demo.light" = ps: with ps; [  ];
-    "demo.lock" = ps: with ps; [  ];
-    "demo.mailbox" = ps: with ps; [  ];
-    "demo.media_player" = ps: with ps; [  ];
-    "demo.notify" = ps: with ps; [  ];
-    "demo.remote" = ps: with ps; [  ];
-    "demo.sensor" = ps: with ps; [  ];
-    "demo.switch" = ps: with ps; [  ];
-    "demo.tts" = ps: with ps; [  ];
-    "demo.vacuum" = ps: with ps; [  ];
-    "demo.water_heater" = ps: with ps; [  ];
-    "demo.weather" = ps: with ps; [  ];
     "denon" = ps: with ps; [  ];
-    "denon.media_player" = ps: with ps; [  ];
     "denonavr" = ps: with ps; [  ];
-    "denonavr.media_player" = ps: with ps; [  ];
     "deutsche_bahn" = ps: with ps; [  ];
-    "deutsche_bahn.sensor" = ps: with ps; [  ];
     "device_sun_light_trigger" = ps: with ps; [  ];
     "device_tracker" = ps: with ps; [  ];
     "dht" = ps: with ps; [  ];
-    "dht.sensor" = ps: with ps; [  ];
     "dialogflow" = ps: with ps; [ aiohttp-cors ];
     "digital_ocean" = ps: with ps; [ digital-ocean ];
-    "digital_ocean.binary_sensor" = ps: with ps; [ digital-ocean ];
-    "digital_ocean.switch" = ps: with ps; [ digital-ocean ];
     "digitalloggers" = ps: with ps; [  ];
-    "digitalloggers.switch" = ps: with ps; [  ];
     "directv" = ps: with ps; [  ];
-    "directv.media_player" = ps: with ps; [  ];
-    "discogs" = ps: with ps; [  ];
-    "discogs.sensor" = ps: with ps; [ discogs_client ];
-    "discord" = ps: with ps; [  ];
-    "discord.notify" = ps: with ps; [ discordpy ];
+    "discogs" = ps: with ps; [ discogs_client ];
+    "discord" = ps: with ps; [ discordpy ];
     "discovery" = ps: with ps; [ netdisco ];
-    "dlib_face_detect" = ps: with ps; [  ];
-    "dlib_face_detect.image_processing" = ps: with ps; [ face_recognition ];
-    "dlib_face_identify" = ps: with ps; [  ];
-    "dlib_face_identify.image_processing" = ps: with ps; [ face_recognition ];
+    "dlib_face_detect" = ps: with ps; [ face_recognition ];
+    "dlib_face_identify" = ps: with ps; [ face_recognition ];
     "dlink" = ps: with ps; [  ];
-    "dlink.switch" = ps: with ps; [  ];
     "dlna_dmr" = ps: with ps; [  ];
-    "dlna_dmr.media_player" = ps: with ps; [  ];
-    "dnsip" = ps: with ps; [  ];
-    "dnsip.sensor" = ps: with ps; [ aiodns ];
+    "dnsip" = ps: with ps; [ aiodns ];
     "dominos" = ps: with ps; [ aiohttp-cors ];
     "doorbird" = ps: with ps; [  ];
-    "doorbird.camera" = ps: with ps; [  ];
-    "doorbird.switch" = ps: with ps; [  ];
     "dovado" = ps: with ps; [  ];
-    "dovado.notify" = ps: with ps; [  ];
-    "dovado.sensor" = ps: with ps; [  ];
     "downloader" = ps: with ps; [  ];
     "dsmr" = ps: with ps; [  ];
-    "dsmr.sensor" = ps: with ps; [  ];
     "dte_energy_bridge" = ps: with ps; [  ];
-    "dte_energy_bridge.sensor" = ps: with ps; [  ];
     "dublin_bus_transport" = ps: with ps; [  ];
-    "dublin_bus_transport.sensor" = ps: with ps; [  ];
     "duckdns" = ps: with ps; [  ];
     "duke_energy" = ps: with ps; [  ];
-    "duke_energy.sensor" = ps: with ps; [  ];
     "dunehd" = ps: with ps; [  ];
-    "dunehd.media_player" = ps: with ps; [  ];
     "dwd_weather_warnings" = ps: with ps; [  ];
-    "dwd_weather_warnings.sensor" = ps: with ps; [  ];
     "dweet" = ps: with ps; [  ];
-    "dweet.sensor" = ps: with ps; [  ];
     "dyson" = ps: with ps; [  ];
-    "dyson.climate" = ps: with ps; [  ];
-    "dyson.fan" = ps: with ps; [  ];
-    "dyson.sensor" = ps: with ps; [  ];
-    "dyson.vacuum" = ps: with ps; [  ];
     "ebox" = ps: with ps; [  ];
-    "ebox.sensor" = ps: with ps; [  ];
     "ebusd" = ps: with ps; [  ];
-    "ebusd.const" = ps: with ps; [  ];
-    "ebusd.sensor" = ps: with ps; [  ];
     "ecoal_boiler" = ps: with ps; [  ];
-    "ecoal_boiler.sensor" = ps: with ps; [  ];
-    "ecoal_boiler.switch" = ps: with ps; [  ];
     "ecobee" = ps: with ps; [  ];
-    "ecobee.binary_sensor" = ps: with ps; [  ];
-    "ecobee.climate" = ps: with ps; [  ];
-    "ecobee.notify" = ps: with ps; [  ];
-    "ecobee.sensor" = ps: with ps; [  ];
-    "ecobee.weather" = ps: with ps; [  ];
     "econet" = ps: with ps; [  ];
-    "econet.water_heater" = ps: with ps; [  ];
     "ecovacs" = ps: with ps; [  ];
-    "ecovacs.vacuum" = ps: with ps; [  ];
-    "eddystone_temperature" = ps: with ps; [  ];
-    "eddystone_temperature.sensor" = ps: with ps; [ construct ];
+    "eddystone_temperature" = ps: with ps; [ construct ];
     "edimax" = ps: with ps; [  ];
-    "edimax.switch" = ps: with ps; [  ];
     "edp_redy" = ps: with ps; [  ];
-    "edp_redy.sensor" = ps: with ps; [  ];
-    "edp_redy.switch" = ps: with ps; [  ];
     "ee_brightbox" = ps: with ps; [  ];
-    "ee_brightbox.device_tracker" = ps: with ps; [  ];
     "efergy" = ps: with ps; [  ];
-    "efergy.sensor" = ps: with ps; [  ];
     "egardia" = ps: with ps; [  ];
-    "egardia.alarm_control_panel" = ps: with ps; [  ];
-    "egardia.binary_sensor" = ps: with ps; [  ];
     "eight_sleep" = ps: with ps; [  ];
-    "eight_sleep.binary_sensor" = ps: with ps; [  ];
-    "eight_sleep.sensor" = ps: with ps; [  ];
     "eliqonline" = ps: with ps; [  ];
-    "eliqonline.sensor" = ps: with ps; [  ];
     "elkm1" = ps: with ps; [  ];
-    "elkm1.alarm_control_panel" = ps: with ps; [  ];
-    "elkm1.climate" = ps: with ps; [  ];
-    "elkm1.light" = ps: with ps; [  ];
-    "elkm1.scene" = ps: with ps; [  ];
-    "elkm1.sensor" = ps: with ps; [  ];
-    "elkm1.switch" = ps: with ps; [  ];
     "emby" = ps: with ps; [  ];
-    "emby.media_player" = ps: with ps; [  ];
     "emoncms" = ps: with ps; [  ];
-    "emoncms.sensor" = ps: with ps; [  ];
     "emoncms_history" = ps: with ps; [  ];
     "emulated_hue" = ps: with ps; [ aiohttp-cors ];
-    "emulated_hue.hue_api" = ps: with ps; [  ];
-    "emulated_hue.upnp" = ps: with ps; [  ];
     "emulated_roku" = ps: with ps; [  ];
-    "emulated_roku.binding" = ps: with ps; [  ];
-    "emulated_roku.config_flow" = ps: with ps; [  ];
-    "emulated_roku.const" = ps: with ps; [  ];
     "enigma2" = ps: with ps; [  ];
-    "enigma2.media_player" = ps: with ps; [  ];
     "enocean" = ps: with ps; [  ];
-    "enocean.binary_sensor" = ps: with ps; [  ];
-    "enocean.light" = ps: with ps; [  ];
-    "enocean.sensor" = ps: with ps; [  ];
-    "enocean.switch" = ps: with ps; [  ];
     "enphase_envoy" = ps: with ps; [  ];
-    "enphase_envoy.sensor" = ps: with ps; [  ];
     "entur_public_transport" = ps: with ps; [  ];
-    "entur_public_transport.sensor" = ps: with ps; [  ];
     "envirophat" = ps: with ps; [  ];
-    "envirophat.sensor" = ps: with ps; [  ];
     "envisalink" = ps: with ps; [  ];
-    "envisalink.alarm_control_panel" = ps: with ps; [  ];
-    "envisalink.binary_sensor" = ps: with ps; [  ];
-    "envisalink.sensor" = ps: with ps; [  ];
     "ephember" = ps: with ps; [  ];
-    "ephember.climate" = ps: with ps; [  ];
     "epson" = ps: with ps; [  ];
-    "epson.media_player" = ps: with ps; [  ];
-    "eq3btsmart" = ps: with ps; [  ];
-    "eq3btsmart.climate" = ps: with ps; [ construct ];
+    "epsonworkforce" = ps: with ps; [  ];
+    "eq3btsmart" = ps: with ps; [ construct ];
     "esphome" = ps: with ps; [ aioesphomeapi ];
-    "esphome.binary_sensor" = ps: with ps; [ aioesphomeapi ];
-    "esphome.camera" = ps: with ps; [ aioesphomeapi ];
-    "esphome.config_flow" = ps: with ps; [  ];
-    "esphome.cover" = ps: with ps; [ aioesphomeapi ];
-    "esphome.fan" = ps: with ps; [ aioesphomeapi ];
-    "esphome.light" = ps: with ps; [ aioesphomeapi ];
-    "esphome.sensor" = ps: with ps; [ aioesphomeapi ];
-    "esphome.switch" = ps: with ps; [ aioesphomeapi ];
     "etherscan" = ps: with ps; [  ];
-    "etherscan.sensor" = ps: with ps; [  ];
     "eufy" = ps: with ps; [  ];
-    "eufy.light" = ps: with ps; [  ];
-    "eufy.switch" = ps: with ps; [  ];
     "everlights" = ps: with ps; [  ];
-    "everlights.light" = ps: with ps; [  ];
     "evohome" = ps: with ps; [  ];
-    "evohome.climate" = ps: with ps; [  ];
     "facebook" = ps: with ps; [  ];
-    "facebook.notify" = ps: with ps; [  ];
     "facebox" = ps: with ps; [  ];
-    "facebox.image_processing" = ps: with ps; [  ];
     "fail2ban" = ps: with ps; [  ];
-    "fail2ban.sensor" = ps: with ps; [  ];
     "familyhub" = ps: with ps; [  ];
-    "familyhub.camera" = ps: with ps; [  ];
     "fan" = ps: with ps; [  ];
     "fastdotcom" = ps: with ps; [  ];
-    "fastdotcom.sensor" = ps: with ps; [  ];
     "fedex" = ps: with ps; [  ];
-    "fedex.sensor" = ps: with ps; [  ];
     "feedreader" = ps: with ps; [  ];
     "ffmpeg" = ps: with ps; [ ha-ffmpeg ];
-    "ffmpeg.camera" = ps: with ps; [ ha-ffmpeg ];
-    "ffmpeg_motion" = ps: with ps; [  ];
-    "ffmpeg_motion.binary_sensor" = ps: with ps; [ ha-ffmpeg ];
-    "ffmpeg_noise" = ps: with ps; [  ];
-    "ffmpeg_noise.binary_sensor" = ps: with ps; [ ha-ffmpeg ];
+    "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ];
+    "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ];
     "fibaro" = ps: with ps; [  ];
-    "fibaro.binary_sensor" = ps: with ps; [  ];
-    "fibaro.cover" = ps: with ps; [  ];
-    "fibaro.light" = ps: with ps; [  ];
-    "fibaro.scene" = ps: with ps; [  ];
-    "fibaro.sensor" = ps: with ps; [  ];
-    "fibaro.switch" = ps: with ps; [  ];
     "fido" = ps: with ps; [  ];
-    "fido.sensor" = ps: with ps; [  ];
     "file" = ps: with ps; [  ];
-    "file.notify" = ps: with ps; [  ];
-    "file.sensor" = ps: with ps; [  ];
     "filesize" = ps: with ps; [  ];
-    "filesize.sensor" = ps: with ps; [  ];
     "filter" = ps: with ps; [  ];
-    "filter.sensor" = ps: with ps; [  ];
-    "fints" = ps: with ps; [  ];
-    "fints.sensor" = ps: with ps; [ fints ];
-    "fitbit" = ps: with ps; [  ];
-    "fitbit.sensor" = ps: with ps; [ aiohttp-cors ];
+    "fints" = ps: with ps; [ fints ];
+    "fitbit" = ps: with ps; [ aiohttp-cors fitbit ];
     "fixer" = ps: with ps; [  ];
-    "fixer.sensor" = ps: with ps; [  ];
     "flexit" = ps: with ps; [  ];
-    "flexit.climate" = ps: with ps; [  ];
     "flic" = ps: with ps; [  ];
-    "flic.binary_sensor" = ps: with ps; [  ];
     "flock" = ps: with ps; [  ];
-    "flock.notify" = ps: with ps; [  ];
     "flunearyou" = ps: with ps; [  ];
-    "flunearyou.sensor" = ps: with ps; [  ];
     "flux" = ps: with ps; [  ];
-    "flux.switch" = ps: with ps; [  ];
     "flux_led" = ps: with ps; [  ];
-    "flux_led.light" = ps: with ps; [  ];
     "folder" = ps: with ps; [  ];
-    "folder.sensor" = ps: with ps; [  ];
     "folder_watcher" = ps: with ps; [ watchdog ];
     "foobot" = ps: with ps; [  ];
-    "foobot.sensor" = ps: with ps; [  ];
     "foscam" = ps: with ps; [  ];
-    "foscam.camera" = ps: with ps; [  ];
     "foursquare" = ps: with ps; [ aiohttp-cors ];
     "free_mobile" = ps: with ps; [  ];
-    "free_mobile.notify" = ps: with ps; [  ];
     "freebox" = ps: with ps; [  ];
-    "freebox.device_tracker" = ps: with ps; [  ];
-    "freebox.sensor" = ps: with ps; [  ];
-    "freebox.switch" = ps: with ps; [  ];
     "freedns" = ps: with ps; [  ];
-    "fritz" = ps: with ps; [  ];
-    "fritz.device_tracker" = ps: with ps; [ fritzconnection ];
+    "fritz" = ps: with ps; [ fritzconnection ];
     "fritzbox" = ps: with ps; [  ];
-    "fritzbox.binary_sensor" = ps: with ps; [  ];
-    "fritzbox.climate" = ps: with ps; [  ];
-    "fritzbox.sensor" = ps: with ps; [  ];
-    "fritzbox.switch" = ps: with ps; [  ];
-    "fritzbox_callmonitor" = ps: with ps; [  ];
-    "fritzbox_callmonitor.sensor" = ps: with ps; [ fritzconnection ];
-    "fritzbox_netmonitor" = ps: with ps; [  ];
-    "fritzbox_netmonitor.sensor" = ps: with ps; [ fritzconnection ];
+    "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ];
+    "fritzbox_netmonitor" = ps: with ps; [ fritzconnection ];
     "fritzdect" = ps: with ps; [  ];
-    "fritzdect.switch" = ps: with ps; [  ];
     "frontend" = ps: with ps; [ aiohttp-cors ];
-    "frontend.storage" = ps: with ps; [  ];
     "frontier_silicon" = ps: with ps; [  ];
-    "frontier_silicon.media_player" = ps: with ps; [  ];
     "futurenow" = ps: with ps; [  ];
-    "futurenow.light" = ps: with ps; [  ];
     "garadget" = ps: with ps; [  ];
-    "garadget.cover" = ps: with ps; [  ];
     "gc100" = ps: with ps; [  ];
-    "gc100.binary_sensor" = ps: with ps; [  ];
-    "gc100.switch" = ps: with ps; [  ];
     "gearbest" = ps: with ps; [  ];
-    "gearbest.sensor" = ps: with ps; [  ];
     "geizhals" = ps: with ps; [  ];
-    "geizhals.sensor" = ps: with ps; [  ];
     "generic" = ps: with ps; [  ];
-    "generic.camera" = ps: with ps; [  ];
     "generic_thermostat" = ps: with ps; [  ];
-    "generic_thermostat.climate" = ps: with ps; [  ];
+    "geniushub" = ps: with ps; [  ];
     "geo_json_events" = ps: with ps; [  ];
-    "geo_json_events.geo_location" = ps: with ps; [  ];
     "geo_location" = ps: with ps; [  ];
     "geo_rss_events" = ps: with ps; [  ];
-    "geo_rss_events.sensor" = ps: with ps; [  ];
     "geofency" = ps: with ps; [ aiohttp-cors ];
-    "geofency.device_tracker" = ps: with ps; [ aiohttp-cors ];
-    "github" = ps: with ps; [  ];
-    "github.sensor" = ps: with ps; [ PyGithub ];
-    "gitlab_ci" = ps: with ps; [  ];
-    "gitlab_ci.sensor" = ps: with ps; [ python-gitlab ];
+    "github" = ps: with ps; [ PyGithub ];
+    "gitlab_ci" = ps: with ps; [ python-gitlab ];
     "gitter" = ps: with ps; [  ];
-    "gitter.sensor" = ps: with ps; [  ];
     "glances" = ps: with ps; [  ];
-    "glances.sensor" = ps: with ps; [  ];
     "gntp" = ps: with ps; [  ];
-    "gntp.notify" = ps: with ps; [  ];
     "goalfeed" = ps: with ps; [  ];
     "gogogate2" = ps: with ps; [  ];
-    "gogogate2.cover" = ps: with ps; [  ];
     "google" = ps: with ps; [ google_api_python_client httplib2 oauth2client ];
-    "google.calendar" = ps: with ps; [  ];
-    "google.tts" = ps: with ps; [  ];
     "google_assistant" = ps: with ps; [ aiohttp-cors ];
-    "google_assistant.const" = ps: with ps; [  ];
-    "google_assistant.helpers" = ps: with ps; [  ];
-    "google_assistant.http" = ps: with ps; [  ];
-    "google_assistant.smart_home" = ps: with ps; [  ];
-    "google_assistant.trait" = ps: with ps; [  ];
     "google_domains" = ps: with ps; [  ];
     "google_maps" = ps: with ps; [  ];
-    "google_maps.device_tracker" = ps: with ps; [  ];
     "google_pubsub" = ps: with ps; [ google_cloud_pubsub ];
+    "google_translate" = ps: with ps; [  ];
     "google_travel_time" = ps: with ps; [  ];
-    "google_travel_time.sensor" = ps: with ps; [  ];
     "google_wifi" = ps: with ps; [  ];
-    "google_wifi.sensor" = ps: with ps; [  ];
     "googlehome" = ps: with ps; [  ];
-    "googlehome.device_tracker" = ps: with ps; [  ];
-    "googlehome.sensor" = ps: with ps; [  ];
-    "gpmdp" = ps: with ps; [  ];
-    "gpmdp.media_player" = ps: with ps; [ websocket_client ];
+    "gpmdp" = ps: with ps; [ websocket_client ];
     "gpsd" = ps: with ps; [  ];
-    "gpsd.sensor" = ps: with ps; [  ];
     "gpslogger" = ps: with ps; [ aiohttp-cors ];
-    "gpslogger.device_tracker" = ps: with ps; [ aiohttp-cors ];
     "graphite" = ps: with ps; [  ];
     "greeneye_monitor" = ps: with ps; [  ];
-    "greeneye_monitor.sensor" = ps: with ps; [  ];
     "greenwave" = ps: with ps; [  ];
-    "greenwave.light" = ps: with ps; [  ];
     "group" = ps: with ps; [  ];
-    "group.cover" = ps: with ps; [  ];
-    "group.light" = ps: with ps; [  ];
-    "group.notify" = ps: with ps; [  ];
-    "group.reproduce_state" = ps: with ps; [  ];
     "gstreamer" = ps: with ps; [  ];
-    "gstreamer.media_player" = ps: with ps; [  ];
     "gtfs" = ps: with ps; [  ];
-    "gtfs.sensor" = ps: with ps; [  ];
     "gtt" = ps: with ps; [  ];
-    "gtt.sensor" = ps: with ps; [  ];
     "habitica" = ps: with ps; [  ];
-    "habitica.sensor" = ps: with ps; [  ];
     "hangouts" = ps: with ps; [  ];
-    "hangouts.config_flow" = ps: with ps; [  ];
-    "hangouts.const" = ps: with ps; [  ];
-    "hangouts.hangouts_bot" = ps: with ps; [  ];
-    "hangouts.intents" = ps: with ps; [  ];
-    "hangouts.notify" = ps: with ps; [  ];
     "harman_kardon_avr" = ps: with ps; [  ];
-    "harman_kardon_avr.media_player" = ps: with ps; [  ];
     "harmony" = ps: with ps; [  ];
-    "harmony.remote" = ps: with ps; [  ];
     "hassio" = ps: with ps; [ aiohttp-cors ];
-    "hassio.auth" = ps: with ps; [  ];
-    "hassio.const" = ps: with ps; [  ];
-    "hassio.discovery" = ps: with ps; [  ];
-    "hassio.handler" = ps: with ps; [  ];
-    "hassio.http" = ps: with ps; [  ];
-    "hassio.ingress" = ps: with ps; [  ];
     "haveibeenpwned" = ps: with ps; [  ];
-    "haveibeenpwned.sensor" = ps: with ps; [  ];
     "hddtemp" = ps: with ps; [  ];
-    "hddtemp.sensor" = ps: with ps; [  ];
     "hdmi_cec" = ps: with ps; [  ];
-    "hdmi_cec.media_player" = ps: with ps; [  ];
-    "hdmi_cec.switch" = ps: with ps; [  ];
     "heatmiser" = ps: with ps; [  ];
-    "heatmiser.climate" = ps: with ps; [  ];
+    "heos" = ps: with ps; [  ];
     "hikvision" = ps: with ps; [  ];
-    "hikvision.binary_sensor" = ps: with ps; [  ];
     "hikvisioncam" = ps: with ps; [  ];
-    "hikvisioncam.switch" = ps: with ps; [  ];
     "hipchat" = ps: with ps; [  ];
-    "hipchat.notify" = ps: with ps; [  ];
     "history" = ps: with ps; [ aiohttp-cors sqlalchemy ];
     "history_graph" = ps: with ps; [ aiohttp-cors sqlalchemy ];
-    "history_stats" = ps: with ps; [  ];
-    "history_stats.sensor" = ps: with ps; [ aiohttp-cors sqlalchemy ];
+    "history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy ];
     "hitron_coda" = ps: with ps; [  ];
-    "hitron_coda.device_tracker" = ps: with ps; [  ];
     "hive" = ps: with ps; [  ];
-    "hive.binary_sensor" = ps: with ps; [  ];
-    "hive.climate" = ps: with ps; [  ];
-    "hive.light" = ps: with ps; [  ];
-    "hive.sensor" = ps: with ps; [  ];
-    "hive.switch" = ps: with ps; [  ];
     "hlk_sw16" = ps: with ps; [  ];
-    "hlk_sw16.switch" = ps: with ps; [  ];
     "homeassistant" = ps: with ps; [  ];
-    "homeassistant.scene" = ps: with ps; [  ];
     "homekit" = ps: with ps; [  ];
-    "homekit.const" = ps: with ps; [  ];
-    "homekit.util" = ps: with ps; [  ];
     "homekit_controller" = ps: with ps; [  ];
-    "homekit_controller.alarm_control_panel" = ps: with ps; [  ];
-    "homekit_controller.binary_sensor" = ps: with ps; [  ];
-    "homekit_controller.climate" = ps: with ps; [  ];
-    "homekit_controller.config_flow" = ps: with ps; [  ];
-    "homekit_controller.connection" = ps: with ps; [  ];
-    "homekit_controller.const" = ps: with ps; [  ];
-    "homekit_controller.cover" = ps: with ps; [  ];
-    "homekit_controller.light" = ps: with ps; [  ];
-    "homekit_controller.lock" = ps: with ps; [  ];
-    "homekit_controller.sensor" = ps: with ps; [  ];
-    "homekit_controller.switch" = ps: with ps; [  ];
     "homematic" = ps: with ps; [ pyhomematic ];
-    "homematic.binary_sensor" = ps: with ps; [ pyhomematic ];
-    "homematic.climate" = ps: with ps; [ pyhomematic ];
-    "homematic.cover" = ps: with ps; [ pyhomematic ];
-    "homematic.light" = ps: with ps; [ pyhomematic ];
-    "homematic.lock" = ps: with ps; [ pyhomematic ];
-    "homematic.notify" = ps: with ps; [ pyhomematic ];
-    "homematic.sensor" = ps: with ps; [ pyhomematic ];
-    "homematic.switch" = ps: with ps; [ pyhomematic ];
     "homematicip_cloud" = ps: with ps; [  ];
-    "homematicip_cloud.alarm_control_panel" = ps: with ps; [  ];
-    "homematicip_cloud.binary_sensor" = ps: with ps; [  ];
-    "homematicip_cloud.climate" = ps: with ps; [  ];
-    "homematicip_cloud.config_flow" = ps: with ps; [  ];
-    "homematicip_cloud.const" = ps: with ps; [  ];
-    "homematicip_cloud.cover" = ps: with ps; [  ];
-    "homematicip_cloud.device" = ps: with ps; [  ];
-    "homematicip_cloud.errors" = ps: with ps; [  ];
-    "homematicip_cloud.hap" = ps: with ps; [  ];
-    "homematicip_cloud.light" = ps: with ps; [  ];
-    "homematicip_cloud.sensor" = ps: with ps; [  ];
-    "homematicip_cloud.switch" = ps: with ps; [  ];
-    "homematicip_cloud.weather" = ps: with ps; [  ];
     "homeworks" = ps: with ps; [  ];
-    "homeworks.light" = ps: with ps; [  ];
     "honeywell" = ps: with ps; [  ];
-    "honeywell.climate" = ps: with ps; [  ];
     "hook" = ps: with ps; [  ];
-    "hook.switch" = ps: with ps; [  ];
     "horizon" = ps: with ps; [  ];
-    "horizon.media_player" = ps: with ps; [  ];
     "hp_ilo" = ps: with ps; [  ];
-    "hp_ilo.sensor" = ps: with ps; [  ];
-    "html5" = ps: with ps; [  ];
-    "html5.notify" = ps: with ps; [ aiohttp-cors ];
+    "html5" = ps: with ps; [ aiohttp-cors ];
     "http" = ps: with ps; [ aiohttp-cors ];
-    "http.auth" = ps: with ps; [  ];
-    "http.ban" = ps: with ps; [  ];
-    "http.const" = ps: with ps; [  ];
-    "http.cors" = ps: with ps; [  ];
-    "http.data_validator" = ps: with ps; [  ];
-    "http.real_ip" = ps: with ps; [  ];
-    "http.static" = ps: with ps; [  ];
-    "http.view" = ps: with ps; [  ];
     "htu21d" = ps: with ps; [  ];
-    "htu21d.sensor" = ps: with ps; [  ];
     "huawei_lte" = ps: with ps; [  ];
-    "huawei_lte.device_tracker" = ps: with ps; [  ];
-    "huawei_lte.notify" = ps: with ps; [  ];
-    "huawei_lte.sensor" = ps: with ps; [  ];
     "huawei_router" = ps: with ps; [  ];
-    "huawei_router.device_tracker" = ps: with ps; [  ];
     "hue" = ps: with ps; [ aiohue ];
-    "hue.bridge" = ps: with ps; [  ];
-    "hue.config_flow" = ps: with ps; [  ];
-    "hue.const" = ps: with ps; [  ];
-    "hue.errors" = ps: with ps; [  ];
-    "hue.light" = ps: with ps; [ aiohue ];
     "hunterdouglas_powerview" = ps: with ps; [  ];
-    "hunterdouglas_powerview.scene" = ps: with ps; [  ];
     "hydrawise" = ps: with ps; [  ];
-    "hydrawise.binary_sensor" = ps: with ps; [  ];
-    "hydrawise.sensor" = ps: with ps; [  ];
-    "hydrawise.switch" = ps: with ps; [  ];
     "hydroquebec" = ps: with ps; [  ];
-    "hydroquebec.sensor" = ps: with ps; [  ];
     "hyperion" = ps: with ps; [  ];
-    "hyperion.light" = ps: with ps; [  ];
     "ialarm" = ps: with ps; [  ];
-    "ialarm.alarm_control_panel" = ps: with ps; [  ];
     "icloud" = ps: with ps; [  ];
-    "icloud.device_tracker" = ps: with ps; [  ];
     "idteck_prox" = ps: with ps; [  ];
     "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
-    "ifttt.alarm_control_panel" = ps: with ps; [ aiohttp-cors pyfttt ];
     "iglo" = ps: with ps; [  ];
-    "iglo.light" = ps: with ps; [  ];
+    "ign_sismologia" = ps: with ps; [  ];
     "ihc" = ps: with ps; [ defusedxml ];
-    "ihc.binary_sensor" = ps: with ps; [ defusedxml ];
-    "ihc.const" = ps: with ps; [  ];
-    "ihc.ihcdevice" = ps: with ps; [  ];
-    "ihc.light" = ps: with ps; [ defusedxml ];
-    "ihc.sensor" = ps: with ps; [ defusedxml ];
-    "ihc.switch" = ps: with ps; [ defusedxml ];
-    "ihc.util" = ps: with ps; [  ];
     "image_processing" = ps: with ps; [ aiohttp-cors ];
     "imap" = ps: with ps; [  ];
-    "imap.sensor" = ps: with ps; [  ];
     "imap_email_content" = ps: with ps; [  ];
-    "imap_email_content.sensor" = ps: with ps; [  ];
     "influxdb" = ps: with ps; [ influxdb ];
-    "influxdb.sensor" = ps: with ps; [ influxdb ];
     "input_boolean" = ps: with ps; [  ];
     "input_datetime" = ps: with ps; [  ];
     "input_number" = ps: with ps; [  ];
     "input_select" = ps: with ps; [  ];
     "input_text" = ps: with ps; [  ];
     "insteon" = ps: with ps; [  ];
-    "insteon.binary_sensor" = ps: with ps; [  ];
-    "insteon.cover" = ps: with ps; [  ];
-    "insteon.fan" = ps: with ps; [  ];
-    "insteon.light" = ps: with ps; [  ];
-    "insteon.sensor" = ps: with ps; [  ];
-    "insteon.switch" = ps: with ps; [  ];
-    "insteon_local" = ps: with ps; [  ];
-    "insteon_plm" = ps: with ps; [  ];
     "integration" = ps: with ps; [  ];
-    "integration.sensor" = ps: with ps; [  ];
     "intent_script" = ps: with ps; [  ];
-    "introduction" = ps: with ps; [  ];
     "ios" = ps: with ps; [ aiohttp-cors zeroconf ];
-    "ios.notify" = ps: with ps; [ aiohttp-cors zeroconf ];
-    "ios.sensor" = ps: with ps; [ aiohttp-cors zeroconf ];
     "iota" = ps: with ps; [  ];
-    "iota.sensor" = ps: with ps; [  ];
     "iperf3" = ps: with ps; [  ];
-    "iperf3.sensor" = ps: with ps; [  ];
     "ipma" = ps: with ps; [  ];
-    "ipma.config_flow" = ps: with ps; [  ];
-    "ipma.const" = ps: with ps; [  ];
-    "ipma.weather" = ps: with ps; [  ];
     "irish_rail_transport" = ps: with ps; [  ];
-    "irish_rail_transport.sensor" = ps: with ps; [  ];
     "islamic_prayer_times" = ps: with ps; [  ];
-    "islamic_prayer_times.sensor" = ps: with ps; [  ];
     "iss" = ps: with ps; [  ];
-    "iss.binary_sensor" = ps: with ps; [  ];
     "isy994" = ps: with ps; [  ];
-    "isy994.binary_sensor" = ps: with ps; [  ];
-    "isy994.cover" = ps: with ps; [  ];
-    "isy994.fan" = ps: with ps; [  ];
-    "isy994.light" = ps: with ps; [  ];
-    "isy994.lock" = ps: with ps; [  ];
-    "isy994.sensor" = ps: with ps; [  ];
-    "isy994.switch" = ps: with ps; [  ];
     "itach" = ps: with ps; [  ];
-    "itach.remote" = ps: with ps; [  ];
     "itunes" = ps: with ps; [  ];
-    "itunes.media_player" = ps: with ps; [  ];
     "jewish_calendar" = ps: with ps; [  ];
-    "jewish_calendar.sensor" = ps: with ps; [  ];
     "joaoapps_join" = ps: with ps; [  ];
-    "joaoapps_join.notify" = ps: with ps; [  ];
     "juicenet" = ps: with ps; [  ];
-    "juicenet.sensor" = ps: with ps; [  ];
     "kankun" = ps: with ps; [  ];
-    "kankun.switch" = ps: with ps; [  ];
     "keenetic_ndms2" = ps: with ps; [  ];
-    "keenetic_ndms2.device_tracker" = ps: with ps; [  ];
     "keyboard" = ps: with ps; [  ];
     "keyboard_remote" = ps: with ps; [ evdev ];
     "kira" = ps: with ps; [  ];
-    "kira.remote" = ps: with ps; [  ];
-    "kira.sensor" = ps: with ps; [  ];
     "kiwi" = ps: with ps; [  ];
-    "kiwi.lock" = ps: with ps; [  ];
     "knx" = ps: with ps; [  ];
-    "knx.binary_sensor" = ps: with ps; [  ];
-    "knx.climate" = ps: with ps; [  ];
-    "knx.cover" = ps: with ps; [  ];
-    "knx.light" = ps: with ps; [  ];
-    "knx.notify" = ps: with ps; [  ];
-    "knx.scene" = ps: with ps; [  ];
-    "knx.sensor" = ps: with ps; [  ];
-    "knx.switch" = ps: with ps; [  ];
-    "kodi" = ps: with ps; [  ];
-    "kodi.media_player" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ];
-    "kodi.notify" = ps: with ps; [ jsonrpc-async ];
+    "kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ];
     "konnected" = ps: with ps; [ aiohttp-cors ];
-    "konnected.binary_sensor" = ps: with ps; [ aiohttp-cors ];
-    "konnected.const" = ps: with ps; [  ];
-    "konnected.handlers" = ps: with ps; [  ];
-    "konnected.sensor" = ps: with ps; [ aiohttp-cors ];
-    "konnected.switch" = ps: with ps; [ aiohttp-cors ];
     "kwb" = ps: with ps; [  ];
-    "kwb.sensor" = ps: with ps; [  ];
     "lacrosse" = ps: with ps; [  ];
-    "lacrosse.sensor" = ps: with ps; [  ];
     "lametric" = ps: with ps; [  ];
-    "lametric.notify" = ps: with ps; [  ];
     "lannouncer" = ps: with ps; [  ];
-    "lannouncer.notify" = ps: with ps; [  ];
-    "lastfm" = ps: with ps; [  ];
-    "lastfm.sensor" = ps: with ps; [ pylast ];
+    "lastfm" = ps: with ps; [ pylast ];
     "launch_library" = ps: with ps; [  ];
-    "launch_library.sensor" = ps: with ps; [  ];
     "lcn" = ps: with ps; [  ];
-    "lcn.const" = ps: with ps; [  ];
-    "lcn.cover" = ps: with ps; [  ];
-    "lcn.light" = ps: with ps; [  ];
-    "lcn.sensor" = ps: with ps; [  ];
-    "lcn.switch" = ps: with ps; [  ];
     "lg_netcast" = ps: with ps; [  ];
-    "lg_netcast.media_player" = ps: with ps; [  ];
     "lg_soundbar" = ps: with ps; [  ];
-    "lg_soundbar.media_player" = ps: with ps; [  ];
-    "lifx" = ps: with ps; [ aiolifx ];
-    "lifx.light" = ps: with ps; [ aiolifx aiolifx-effects ];
+    "lifx" = ps: with ps; [ aiolifx aiolifx-effects ];
     "lifx_cloud" = ps: with ps; [  ];
-    "lifx_cloud.scene" = ps: with ps; [  ];
     "lifx_legacy" = ps: with ps; [  ];
-    "lifx_legacy.light" = ps: with ps; [  ];
     "light" = ps: with ps; [  ];
     "lightwave" = ps: with ps; [  ];
-    "lightwave.light" = ps: with ps; [  ];
-    "lightwave.switch" = ps: with ps; [  ];
-    "limitlessled" = ps: with ps; [  ];
-    "limitlessled.light" = ps: with ps; [ limitlessled ];
-    "linksys_ap" = ps: with ps; [  ];
-    "linksys_ap.device_tracker" = ps: with ps; [ beautifulsoup4 ];
+    "limitlessled" = ps: with ps; [ limitlessled ];
+    "linksys_ap" = ps: with ps; [ beautifulsoup4 ];
     "linksys_smart" = ps: with ps; [  ];
-    "linksys_smart.device_tracker" = ps: with ps; [  ];
     "linky" = ps: with ps; [  ];
-    "linky.sensor" = ps: with ps; [  ];
     "linode" = ps: with ps; [ linode-api ];
-    "linode.binary_sensor" = ps: with ps; [ linode-api ];
-    "linode.switch" = ps: with ps; [ linode-api ];
-    "linux_battery" = ps: with ps; [  ];
-    "linux_battery.sensor" = ps: with ps; [ batinfo ];
+    "linux_battery" = ps: with ps; [ batinfo ];
     "lirc" = ps: with ps; [  ];
     "litejet" = ps: with ps; [  ];
-    "litejet.light" = ps: with ps; [  ];
-    "litejet.scene" = ps: with ps; [  ];
-    "litejet.switch" = ps: with ps; [  ];
     "liveboxplaytv" = ps: with ps; [  ];
-    "liveboxplaytv.media_player" = ps: with ps; [  ];
     "llamalab_automate" = ps: with ps; [  ];
-    "llamalab_automate.notify" = ps: with ps; [  ];
     "local_file" = ps: with ps; [  ];
-    "local_file.camera" = ps: with ps; [  ];
     "locative" = ps: with ps; [ aiohttp-cors ];
-    "locative.device_tracker" = ps: with ps; [ aiohttp-cors ];
     "lock" = ps: with ps; [  ];
     "lockitron" = ps: with ps; [  ];
-    "lockitron.lock" = ps: with ps; [  ];
     "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy ];
     "logentries" = ps: with ps; [  ];
     "logger" = ps: with ps; [  ];
-    "logi_circle" = ps: with ps; [  ];
-    "logi_circle.camera" = ps: with ps; [  ];
-    "logi_circle.sensor" = ps: with ps; [  ];
+    "logi_circle" = ps: with ps; [ ha-ffmpeg ];
     "london_air" = ps: with ps; [  ];
-    "london_air.sensor" = ps: with ps; [  ];
     "london_underground" = ps: with ps; [  ];
-    "london_underground.sensor" = ps: with ps; [  ];
     "loopenergy" = ps: with ps; [  ];
-    "loopenergy.sensor" = ps: with ps; [  ];
     "lovelace" = ps: with ps; [  ];
     "luci" = ps: with ps; [  ];
-    "luci.device_tracker" = ps: with ps; [  ];
     "luftdaten" = ps: with ps; [ luftdaten ];
-    "luftdaten.config_flow" = ps: with ps; [  ];
-    "luftdaten.const" = ps: with ps; [  ];
-    "luftdaten.sensor" = ps: with ps; [ luftdaten ];
     "lupusec" = ps: with ps; [  ];
-    "lupusec.alarm_control_panel" = ps: with ps; [  ];
-    "lupusec.binary_sensor" = ps: with ps; [  ];
-    "lupusec.switch" = ps: with ps; [  ];
     "lutron" = ps: with ps; [  ];
-    "lutron.cover" = ps: with ps; [  ];
-    "lutron.light" = ps: with ps; [  ];
-    "lutron.scene" = ps: with ps; [  ];
-    "lutron.switch" = ps: with ps; [  ];
     "lutron_caseta" = ps: with ps; [  ];
-    "lutron_caseta.cover" = ps: with ps; [  ];
-    "lutron_caseta.light" = ps: with ps; [  ];
-    "lutron_caseta.scene" = ps: with ps; [  ];
-    "lutron_caseta.switch" = ps: with ps; [  ];
     "lw12wifi" = ps: with ps; [  ];
-    "lw12wifi.light" = ps: with ps; [  ];
     "lyft" = ps: with ps; [  ];
-    "lyft.sensor" = ps: with ps; [  ];
     "magicseaweed" = ps: with ps; [  ];
-    "magicseaweed.sensor" = ps: with ps; [  ];
     "mailbox" = ps: with ps; [ aiohttp-cors ];
     "mailgun" = ps: with ps; [ aiohttp-cors ];
-    "mailgun.notify" = ps: with ps; [ aiohttp-cors ];
     "manual" = ps: with ps; [  ];
-    "manual.alarm_control_panel" = ps: with ps; [  ];
-    "manual_mqtt" = ps: with ps; [  ];
-    "manual_mqtt.alarm_control_panel" = ps: with ps; [ paho-mqtt ];
-    "map" = ps: with ps; [  ];
+    "manual_mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ];
+    "map" = ps: with ps; [ aiohttp-cors ];
     "marytts" = ps: with ps; [  ];
-    "marytts.tts" = ps: with ps; [  ];
     "mastodon" = ps: with ps; [  ];
-    "mastodon.notify" = ps: with ps; [  ];
     "matrix" = ps: with ps; [ matrix-client ];
-    "matrix.notify" = ps: with ps; [ matrix-client ];
     "maxcube" = ps: with ps; [  ];
-    "maxcube.binary_sensor" = ps: with ps; [  ];
-    "maxcube.climate" = ps: with ps; [  ];
     "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ];
     "media_player" = ps: with ps; [ aiohttp-cors ];
-    "media_player.const" = ps: with ps; [  ];
-    "media_player.reproduce_state" = ps: with ps; [  ];
     "mediaroom" = ps: with ps; [  ];
-    "mediaroom.media_player" = ps: with ps; [  ];
     "melissa" = ps: with ps; [  ];
-    "melissa.climate" = ps: with ps; [  ];
-    "meraki" = ps: with ps; [  ];
-    "meraki.device_tracker" = ps: with ps; [ aiohttp-cors ];
+    "meraki" = ps: with ps; [ aiohttp-cors ];
     "message_bird" = ps: with ps; [  ];
-    "message_bird.notify" = ps: with ps; [  ];
     "met" = ps: with ps; [  ];
-    "met.weather" = ps: with ps; [  ];
     "meteo_france" = ps: with ps; [  ];
-    "meteo_france.sensor" = ps: with ps; [  ];
-    "meteo_france.weather" = ps: with ps; [  ];
     "metoffice" = ps: with ps; [  ];
-    "metoffice.sensor" = ps: with ps; [  ];
-    "metoffice.weather" = ps: with ps; [  ];
     "mfi" = ps: with ps; [  ];
-    "mfi.sensor" = ps: with ps; [  ];
-    "mfi.switch" = ps: with ps; [  ];
     "mhz19" = ps: with ps; [  ];
-    "mhz19.sensor" = ps: with ps; [  ];
     "microsoft" = ps: with ps; [  ];
-    "microsoft.tts" = ps: with ps; [  ];
     "microsoft_face" = ps: with ps; [ aiohttp-cors ];
-    "microsoft_face_detect" = ps: with ps; [  ];
-    "microsoft_face_detect.image_processing" = ps: with ps; [ aiohttp-cors ];
-    "microsoft_face_identify" = ps: with ps; [  ];
-    "microsoft_face_identify.image_processing" = ps: with ps; [ aiohttp-cors ];
+    "microsoft_face_detect" = ps: with ps; [ aiohttp-cors ];
+    "microsoft_face_identify" = ps: with ps; [ aiohttp-cors ];
     "miflora" = ps: with ps; [  ];
-    "miflora.sensor" = ps: with ps; [  ];
     "mikrotik" = ps: with ps; [  ];
-    "mikrotik.device_tracker" = ps: with ps; [  ];
     "mill" = ps: with ps; [  ];
-    "mill.climate" = ps: with ps; [  ];
     "min_max" = ps: with ps; [  ];
-    "min_max.sensor" = ps: with ps; [  ];
     "mitemp_bt" = ps: with ps; [  ];
-    "mitemp_bt.sensor" = ps: with ps; [  ];
     "mjpeg" = ps: with ps; [  ];
-    "mjpeg.camera" = ps: with ps; [  ];
     "mobile_app" = ps: with ps; [ pynacl aiohttp-cors ];
-    "mobile_app.binary_sensor" = ps: with ps; [ pynacl aiohttp-cors ];
-    "mobile_app.const" = ps: with ps; [  ];
-    "mobile_app.entity" = ps: with ps; [  ];
-    "mobile_app.helpers" = ps: with ps; [  ];
-    "mobile_app.http_api" = ps: with ps; [  ];
-    "mobile_app.notify" = ps: with ps; [ pynacl aiohttp-cors ];
-    "mobile_app.sensor" = ps: with ps; [ pynacl aiohttp-cors ];
-    "mobile_app.webhook" = ps: with ps; [  ];
-    "mobile_app.websocket_api" = ps: with ps; [  ];
     "mochad" = ps: with ps; [  ];
-    "mochad.light" = ps: with ps; [  ];
-    "mochad.switch" = ps: with ps; [  ];
     "modbus" = ps: with ps; [  ];
-    "modbus.binary_sensor" = ps: with ps; [  ];
-    "modbus.climate" = ps: with ps; [  ];
-    "modbus.sensor" = ps: with ps; [  ];
-    "modbus.switch" = ps: with ps; [  ];
     "modem_callerid" = ps: with ps; [  ];
-    "modem_callerid.sensor" = ps: with ps; [  ];
     "mold_indicator" = ps: with ps; [  ];
-    "mold_indicator.sensor" = ps: with ps; [  ];
     "monoprice" = ps: with ps; [  ];
-    "monoprice.media_player" = ps: with ps; [  ];
     "moon" = ps: with ps; [  ];
-    "moon.sensor" = ps: with ps; [  ];
     "mopar" = ps: with ps; [  ];
-    "mopar.lock" = ps: with ps; [  ];
-    "mopar.sensor" = ps: with ps; [  ];
-    "mopar.switch" = ps: with ps; [  ];
     "mpchc" = ps: with ps; [  ];
-    "mpchc.media_player" = ps: with ps; [  ];
-    "mpd" = ps: with ps; [  ];
-    "mpd.media_player" = ps: with ps; [ mpd2 ];
-    "mqtt" = ps: with ps; [ paho-mqtt ];
-    "mqtt.alarm_control_panel" = ps: with ps; [ paho-mqtt ];
-    "mqtt.binary_sensor" = ps: with ps; [ paho-mqtt ];
-    "mqtt.camera" = ps: with ps; [ paho-mqtt ];
-    "mqtt.climate" = ps: with ps; [ paho-mqtt ];
-    "mqtt.config_flow" = ps: with ps; [  ];
-    "mqtt.const" = ps: with ps; [  ];
-    "mqtt.cover" = ps: with ps; [ paho-mqtt ];
-    "mqtt.device_tracker" = ps: with ps; [ paho-mqtt ];
-    "mqtt.discovery" = ps: with ps; [  ];
-    "mqtt.fan" = ps: with ps; [ paho-mqtt ];
-    "mqtt.light" = ps: with ps; [ paho-mqtt ];
-    "mqtt.lock" = ps: with ps; [ paho-mqtt ];
-    "mqtt.sensor" = ps: with ps; [ paho-mqtt ];
-    "mqtt.server" = ps: with ps; [ aiohttp-cors hbmqtt ];
-    "mqtt.subscription" = ps: with ps; [  ];
-    "mqtt.switch" = ps: with ps; [ paho-mqtt ];
-    "mqtt.vacuum" = ps: with ps; [ paho-mqtt ];
-    "mqtt_eventstream" = ps: with ps; [ paho-mqtt ];
-    "mqtt_json" = ps: with ps; [  ];
-    "mqtt_json.device_tracker" = ps: with ps; [ paho-mqtt ];
-    "mqtt_room" = ps: with ps; [  ];
-    "mqtt_room.sensor" = ps: with ps; [ paho-mqtt ];
-    "mqtt_statestream" = ps: with ps; [ paho-mqtt ];
-    "mvglive" = ps: with ps; [  ];
-    "mvglive.sensor" = ps: with ps; [ PyMVGLive ];
+    "mpd" = ps: with ps; [ mpd2 ];
+    "mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ];
+    "mqtt_eventstream" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ];
+    "mqtt_json" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ];
+    "mqtt_room" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ];
+    "mqtt_statestream" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ];
+    "mvglive" = ps: with ps; [ PyMVGLive ];
     "mychevy" = ps: with ps; [  ];
-    "mychevy.binary_sensor" = ps: with ps; [  ];
-    "mychevy.sensor" = ps: with ps; [  ];
     "mycroft" = ps: with ps; [  ];
-    "mycroft.notify" = ps: with ps; [  ];
     "myq" = ps: with ps; [  ];
-    "myq.cover" = ps: with ps; [  ];
     "mysensors" = ps: with ps; [  ];
-    "mysensors.binary_sensor" = ps: with ps; [  ];
-    "mysensors.climate" = ps: with ps; [  ];
-    "mysensors.const" = ps: with ps; [  ];
-    "mysensors.cover" = ps: with ps; [  ];
-    "mysensors.device" = ps: with ps; [  ];
-    "mysensors.device_tracker" = ps: with ps; [  ];
-    "mysensors.gateway" = ps: with ps; [  ];
-    "mysensors.handler" = ps: with ps; [  ];
-    "mysensors.helpers" = ps: with ps; [  ];
-    "mysensors.light" = ps: with ps; [  ];
-    "mysensors.notify" = ps: with ps; [  ];
-    "mysensors.sensor" = ps: with ps; [  ];
-    "mysensors.switch" = ps: with ps; [  ];
-    "mystrom" = ps: with ps; [  ];
-    "mystrom.binary_sensor" = ps: with ps; [ aiohttp-cors ];
-    "mystrom.light" = ps: with ps; [  ];
-    "mystrom.switch" = ps: with ps; [  ];
+    "mystrom" = ps: with ps; [ aiohttp-cors ];
     "mythicbeastsdns" = ps: with ps; [  ];
+    "n26" = ps: with ps; [  ];
     "nad" = ps: with ps; [  ];
-    "nad.media_player" = ps: with ps; [  ];
     "namecheapdns" = ps: with ps; [ defusedxml ];
     "nanoleaf" = ps: with ps; [  ];
-    "nanoleaf.light" = ps: with ps; [  ];
     "neato" = ps: with ps; [ pybotvac ];
-    "neato.camera" = ps: with ps; [ pybotvac ];
-    "neato.switch" = ps: with ps; [ pybotvac ];
-    "neato.vacuum" = ps: with ps; [ pybotvac ];
     "nederlandse_spoorwegen" = ps: with ps; [  ];
-    "nederlandse_spoorwegen.sensor" = ps: with ps; [  ];
     "nello" = ps: with ps; [  ];
-    "nello.lock" = ps: with ps; [  ];
     "ness_alarm" = ps: with ps; [  ];
-    "ness_alarm.alarm_control_panel" = ps: with ps; [  ];
-    "ness_alarm.binary_sensor" = ps: with ps; [  ];
     "nest" = ps: with ps; [  ];
-    "nest.binary_sensor" = ps: with ps; [  ];
-    "nest.camera" = ps: with ps; [  ];
-    "nest.climate" = ps: with ps; [  ];
-    "nest.config_flow" = ps: with ps; [  ];
-    "nest.const" = ps: with ps; [  ];
-    "nest.local_auth" = ps: with ps; [  ];
-    "nest.sensor" = ps: with ps; [  ];
-    "netatmo" = ps: with ps; [ aiohttp-cors ];
-    "netatmo.binary_sensor" = ps: with ps; [ aiohttp-cors ];
-    "netatmo.camera" = ps: with ps; [ aiohttp-cors ];
-    "netatmo.climate" = ps: with ps; [ aiohttp-cors ];
-    "netatmo.sensor" = ps: with ps; [ aiohttp-cors ];
-    "netatmo_public" = ps: with ps; [  ];
-    "netatmo_public.sensor" = ps: with ps; [ aiohttp-cors ];
+    "netatmo" = ps: with ps; [ aiohttp-cors pyatmo ];
+    "netatmo_public" = ps: with ps; [ aiohttp-cors pyatmo ];
     "netdata" = ps: with ps; [  ];
-    "netdata.sensor" = ps: with ps; [  ];
     "netgear" = ps: with ps; [  ];
-    "netgear.device_tracker" = ps: with ps; [  ];
     "netgear_lte" = ps: with ps; [  ];
-    "netgear_lte.notify" = ps: with ps; [  ];
-    "netgear_lte.sensor" = ps: with ps; [  ];
-    "netgear_lte.sensor_types" = ps: with ps; [  ];
-    "netio" = ps: with ps; [  ];
-    "netio.switch" = ps: with ps; [ aiohttp-cors ];
+    "netio" = ps: with ps; [ aiohttp-cors ];
     "neurio_energy" = ps: with ps; [  ];
-    "neurio_energy.sensor" = ps: with ps; [  ];
     "nfandroidtv" = ps: with ps; [  ];
-    "nfandroidtv.notify" = ps: with ps; [  ];
     "niko_home_control" = ps: with ps; [  ];
-    "niko_home_control.light" = ps: with ps; [  ];
     "nilu" = ps: with ps; [  ];
-    "nilu.air_quality" = ps: with ps; [  ];
     "nissan_leaf" = ps: with ps; [  ];
-    "nissan_leaf.binary_sensor" = ps: with ps; [  ];
-    "nissan_leaf.device_tracker" = ps: with ps; [  ];
-    "nissan_leaf.sensor" = ps: with ps; [  ];
-    "nissan_leaf.switch" = ps: with ps; [  ];
     "nmap_tracker" = ps: with ps; [  ];
-    "nmap_tracker.device_tracker" = ps: with ps; [  ];
     "nmbs" = ps: with ps; [  ];
-    "nmbs.sensor" = ps: with ps; [  ];
     "no_ip" = ps: with ps; [  ];
     "noaa_tides" = ps: with ps; [  ];
-    "noaa_tides.sensor" = ps: with ps; [  ];
     "norway_air" = ps: with ps; [  ];
-    "norway_air.air_quality" = ps: with ps; [  ];
     "notify" = ps: with ps; [  ];
     "nsw_fuel_station" = ps: with ps; [  ];
-    "nsw_fuel_station.sensor" = ps: with ps; [  ];
     "nsw_rural_fire_service_feed" = ps: with ps; [  ];
-    "nsw_rural_fire_service_feed.geo_location" = ps: with ps; [  ];
     "nuheat" = ps: with ps; [  ];
-    "nuheat.climate" = ps: with ps; [  ];
     "nuimo_controller" = ps: with ps; [  ];
     "nuki" = ps: with ps; [  ];
-    "nuki.lock" = ps: with ps; [  ];
     "nut" = ps: with ps; [  ];
-    "nut.sensor" = ps: with ps; [  ];
     "nx584" = ps: with ps; [  ];
-    "nx584.alarm_control_panel" = ps: with ps; [  ];
-    "nx584.binary_sensor" = ps: with ps; [  ];
     "nzbget" = ps: with ps; [  ];
-    "nzbget.sensor" = ps: with ps; [  ];
+    "oasa_telematics" = ps: with ps; [  ];
     "octoprint" = ps: with ps; [  ];
-    "octoprint.binary_sensor" = ps: with ps; [  ];
-    "octoprint.sensor" = ps: with ps; [  ];
     "oem" = ps: with ps; [  ];
-    "oem.climate" = ps: with ps; [  ];
-    "ohmconnect" = ps: with ps; [  ];
-    "ohmconnect.sensor" = ps: with ps; [ defusedxml ];
+    "ohmconnect" = ps: with ps; [ defusedxml ];
     "onboarding" = ps: with ps; [ aiohttp-cors ];
-    "onboarding.const" = ps: with ps; [  ];
-    "onboarding.views" = ps: with ps; [  ];
     "onewire" = ps: with ps; [  ];
-    "onewire.sensor" = ps: with ps; [  ];
-    "onkyo" = ps: with ps; [  ];
-    "onkyo.media_player" = ps: with ps; [ onkyo-eiscp ];
-    "onvif" = ps: with ps; [  ];
-    "onvif.camera" = ps: with ps; [ ha-ffmpeg ];
+    "onkyo" = ps: with ps; [ onkyo-eiscp ];
+    "onvif" = ps: with ps; [ ha-ffmpeg ];
     "openalpr_cloud" = ps: with ps; [  ];
-    "openalpr_cloud.image_processing" = ps: with ps; [  ];
     "openalpr_local" = ps: with ps; [  ];
-    "openalpr_local.image_processing" = ps: with ps; [  ];
-    "opencv" = ps: with ps; [  ];
-    "opencv.image_processing" = ps: with ps; [ numpy ];
+    "opencv" = ps: with ps; [ numpy ];
     "openevse" = ps: with ps; [  ];
-    "openevse.sensor" = ps: with ps; [  ];
     "openexchangerates" = ps: with ps; [  ];
-    "openexchangerates.sensor" = ps: with ps; [  ];
     "opengarage" = ps: with ps; [  ];
-    "opengarage.cover" = ps: with ps; [  ];
     "openhardwaremonitor" = ps: with ps; [  ];
-    "openhardwaremonitor.sensor" = ps: with ps; [  ];
     "openhome" = ps: with ps; [  ];
-    "openhome.media_player" = ps: with ps; [  ];
     "opensensemap" = ps: with ps; [  ];
-    "opensensemap.air_quality" = ps: with ps; [  ];
     "opensky" = ps: with ps; [  ];
-    "opensky.sensor" = ps: with ps; [  ];
     "opentherm_gw" = ps: with ps; [  ];
-    "opentherm_gw.binary_sensor" = ps: with ps; [  ];
-    "opentherm_gw.climate" = ps: with ps; [  ];
-    "opentherm_gw.sensor" = ps: with ps; [  ];
     "openuv" = ps: with ps; [  ];
-    "openuv.binary_sensor" = ps: with ps; [  ];
-    "openuv.config_flow" = ps: with ps; [  ];
-    "openuv.const" = ps: with ps; [  ];
-    "openuv.sensor" = ps: with ps; [  ];
-    "openweathermap" = ps: with ps; [  ];
-    "openweathermap.sensor" = ps: with ps; [ pyowm ];
-    "openweathermap.weather" = ps: with ps; [ pyowm ];
+    "openweathermap" = ps: with ps; [ pyowm ];
     "opple" = ps: with ps; [  ];
-    "opple.light" = ps: with ps; [  ];
     "orvibo" = ps: with ps; [  ];
-    "orvibo.switch" = ps: with ps; [  ];
     "osramlightify" = ps: with ps; [  ];
-    "osramlightify.light" = ps: with ps; [  ];
-    "otp" = ps: with ps; [  ];
-    "otp.sensor" = ps: with ps; [ pyotp ];
+    "otp" = ps: with ps; [ pyotp ];
     "owlet" = ps: with ps; [  ];
-    "owlet.binary_sensor" = ps: with ps; [  ];
-    "owlet.const" = ps: with ps; [  ];
-    "owlet.sensor" = ps: with ps; [  ];
     "owntracks" = ps: with ps; [ pynacl aiohttp-cors ];
-    "owntracks.config_flow" = ps: with ps; [  ];
-    "owntracks.device_tracker" = ps: with ps; [ pynacl aiohttp-cors ];
     "panasonic_bluray" = ps: with ps; [  ];
-    "panasonic_bluray.media_player" = ps: with ps; [  ];
-    "panasonic_viera" = ps: with ps; [  ];
-    "panasonic_viera.media_player" = ps: with ps; [ wakeonlan ];
-    "pandora" = ps: with ps; [  ];
-    "pandora.media_player" = ps: with ps; [ pexpect ];
+    "panasonic_viera" = ps: with ps; [ wakeonlan ];
+    "pandora" = ps: with ps; [ pexpect ];
     "panel_custom" = ps: with ps; [ aiohttp-cors ];
     "panel_iframe" = ps: with ps; [ aiohttp-cors ];
     "pencom" = ps: with ps; [  ];
-    "pencom.switch" = ps: with ps; [  ];
     "persistent_notification" = ps: with ps; [  ];
     "person" = ps: with ps; [  ];
     "philips_js" = ps: with ps; [  ];
-    "philips_js.media_player" = ps: with ps; [  ];
     "pi_hole" = ps: with ps; [  ];
-    "pi_hole.sensor" = ps: with ps; [  ];
     "picotts" = ps: with ps; [  ];
-    "picotts.tts" = ps: with ps; [  ];
     "piglow" = ps: with ps; [  ];
-    "piglow.light" = ps: with ps; [  ];
     "pilight" = ps: with ps; [  ];
-    "pilight.binary_sensor" = ps: with ps; [  ];
-    "pilight.sensor" = ps: with ps; [  ];
-    "pilight.switch" = ps: with ps; [  ];
     "ping" = ps: with ps; [  ];
-    "ping.binary_sensor" = ps: with ps; [  ];
-    "ping.device_tracker" = ps: with ps; [  ];
     "pioneer" = ps: with ps; [  ];
-    "pioneer.media_player" = ps: with ps; [  ];
     "pjlink" = ps: with ps; [  ];
-    "pjlink.media_player" = ps: with ps; [  ];
     "plant" = ps: with ps; [  ];
     "plex" = ps: with ps; [  ];
-    "plex.media_player" = ps: with ps; [  ];
-    "plex.sensor" = ps: with ps; [  ];
     "plum_lightpad" = ps: with ps; [  ];
-    "plum_lightpad.light" = ps: with ps; [  ];
     "pocketcasts" = ps: with ps; [  ];
-    "pocketcasts.sensor" = ps: with ps; [  ];
     "point" = ps: with ps; [ aiohttp-cors ];
-    "point.alarm_control_panel" = ps: with ps; [  ];
-    "point.binary_sensor" = ps: with ps; [  ];
-    "point.config_flow" = ps: with ps; [  ];
-    "point.const" = ps: with ps; [  ];
-    "point.sensor" = ps: with ps; [  ];
-    "pollen" = ps: with ps; [  ];
-    "pollen.sensor" = ps: with ps; [ numpy ];
+    "pollen" = ps: with ps; [ numpy ];
     "postnl" = ps: with ps; [  ];
-    "postnl.sensor" = ps: with ps; [  ];
     "prezzibenzina" = ps: with ps; [  ];
-    "prezzibenzina.sensor" = ps: with ps; [  ];
     "proliphix" = ps: with ps; [  ];
-    "proliphix.climate" = ps: with ps; [  ];
     "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ];
     "prowl" = ps: with ps; [  ];
-    "prowl.notify" = ps: with ps; [  ];
     "proximity" = ps: with ps; [  ];
-    "proxy" = ps: with ps; [  ];
-    "proxy.camera" = ps: with ps; [ pillow ];
+    "proxy" = ps: with ps; [ pillow ];
     "ps4" = ps: with ps; [  ];
-    "ps4.config_flow" = ps: with ps; [  ];
-    "ps4.const" = ps: with ps; [  ];
-    "ps4.media_player" = ps: with ps; [  ];
     "pulseaudio_loopback" = ps: with ps; [  ];
-    "pulseaudio_loopback.switch" = ps: with ps; [  ];
-    "push" = ps: with ps; [  ];
-    "push.camera" = ps: with ps; [ aiohttp-cors ];
-    "pushbullet" = ps: with ps; [  ];
-    "pushbullet.notify" = ps: with ps; [ pushbullet ];
-    "pushbullet.sensor" = ps: with ps; [ pushbullet ];
+    "push" = ps: with ps; [ aiohttp-cors ];
+    "pushbullet" = ps: with ps; [ pushbullet ];
     "pushetta" = ps: with ps; [  ];
-    "pushetta.notify" = ps: with ps; [  ];
-    "pushover" = ps: with ps; [  ];
-    "pushover.notify" = ps: with ps; [ python-pushover ];
+    "pushover" = ps: with ps; [ python-pushover ];
     "pushsafer" = ps: with ps; [  ];
-    "pushsafer.notify" = ps: with ps; [  ];
     "pvoutput" = ps: with ps; [  ];
-    "pvoutput.sensor" = ps: with ps; [  ];
     "pyload" = ps: with ps; [  ];
-    "pyload.sensor" = ps: with ps; [  ];
     "python_script" = ps: with ps; [  ];
     "qbittorrent" = ps: with ps; [  ];
-    "qbittorrent.sensor" = ps: with ps; [  ];
     "qnap" = ps: with ps; [  ];
-    "qnap.sensor" = ps: with ps; [  ];
-    "qrcode" = ps: with ps; [  ];
-    "qrcode.image_processing" = ps: with ps; [ pillow ];
+    "qrcode" = ps: with ps; [ pillow ];
     "quantum_gateway" = ps: with ps; [  ];
-    "quantum_gateway.device_tracker" = ps: with ps; [  ];
     "qwikswitch" = ps: with ps; [  ];
-    "qwikswitch.binary_sensor" = ps: with ps; [  ];
-    "qwikswitch.light" = ps: with ps; [  ];
-    "qwikswitch.sensor" = ps: with ps; [  ];
-    "qwikswitch.switch" = ps: with ps; [  ];
     "rachio" = ps: with ps; [  ];
-    "rachio.binary_sensor" = ps: with ps; [  ];
-    "rachio.switch" = ps: with ps; [  ];
     "radarr" = ps: with ps; [  ];
-    "radarr.sensor" = ps: with ps; [  ];
     "radiotherm" = ps: with ps; [  ];
-    "radiotherm.climate" = ps: with ps; [  ];
     "rainbird" = ps: with ps; [  ];
-    "rainbird.sensor" = ps: with ps; [  ];
-    "rainbird.switch" = ps: with ps; [  ];
     "raincloud" = ps: with ps; [  ];
-    "raincloud.binary_sensor" = ps: with ps; [  ];
-    "raincloud.sensor" = ps: with ps; [  ];
-    "raincloud.switch" = ps: with ps; [  ];
     "rainmachine" = ps: with ps; [  ];
-    "rainmachine.binary_sensor" = ps: with ps; [  ];
-    "rainmachine.config_flow" = ps: with ps; [  ];
-    "rainmachine.const" = ps: with ps; [  ];
-    "rainmachine.sensor" = ps: with ps; [  ];
-    "rainmachine.switch" = ps: with ps; [  ];
     "random" = ps: with ps; [  ];
-    "random.binary_sensor" = ps: with ps; [  ];
-    "random.sensor" = ps: with ps; [  ];
     "raspihats" = ps: with ps; [  ];
-    "raspihats.binary_sensor" = ps: with ps; [  ];
-    "raspihats.switch" = ps: with ps; [  ];
     "raspyrfm" = ps: with ps; [  ];
-    "raspyrfm.switch" = ps: with ps; [  ];
     "recollect_waste" = ps: with ps; [  ];
-    "recollect_waste.sensor" = ps: with ps; [  ];
     "recorder" = ps: with ps; [ sqlalchemy ];
-    "recorder.const" = ps: with ps; [  ];
-    "recorder.migration" = ps: with ps; [  ];
-    "recorder.purge" = ps: with ps; [  ];
-    "recorder.util" = ps: with ps; [  ];
     "recswitch" = ps: with ps; [  ];
-    "recswitch.switch" = ps: with ps; [  ];
-    "reddit" = ps: with ps; [  ];
-    "reddit.sensor" = ps: with ps; [ praw ];
+    "reddit" = ps: with ps; [ praw ];
     "rejseplanen" = ps: with ps; [  ];
-    "rejseplanen.sensor" = ps: with ps; [  ];
     "remember_the_milk" = ps: with ps; [ httplib2 ];
     "remote" = ps: with ps; [  ];
     "rest" = ps: with ps; [  ];
-    "rest.binary_sensor" = ps: with ps; [  ];
-    "rest.notify" = ps: with ps; [  ];
-    "rest.sensor" = ps: with ps; [  ];
-    "rest.switch" = ps: with ps; [  ];
     "rest_command" = ps: with ps; [  ];
     "rflink" = ps: with ps; [  ];
-    "rflink.binary_sensor" = ps: with ps; [  ];
-    "rflink.cover" = ps: with ps; [  ];
-    "rflink.light" = ps: with ps; [  ];
-    "rflink.sensor" = ps: with ps; [  ];
-    "rflink.switch" = ps: with ps; [  ];
     "rfxtrx" = ps: with ps; [  ];
-    "rfxtrx.binary_sensor" = ps: with ps; [  ];
-    "rfxtrx.cover" = ps: with ps; [  ];
-    "rfxtrx.light" = ps: with ps; [  ];
-    "rfxtrx.sensor" = ps: with ps; [  ];
-    "rfxtrx.switch" = ps: with ps; [  ];
-    "ring" = ps: with ps; [  ];
-    "ring.binary_sensor" = ps: with ps; [  ];
-    "ring.camera" = ps: with ps; [ ha-ffmpeg ];
-    "ring.sensor" = ps: with ps; [  ];
+    "ring" = ps: with ps; [ ha-ffmpeg ];
     "ripple" = ps: with ps; [  ];
-    "ripple.sensor" = ps: with ps; [  ];
     "ritassist" = ps: with ps; [  ];
-    "ritassist.device_tracker" = ps: with ps; [  ];
     "rmvtransport" = ps: with ps; [  ];
-    "rmvtransport.sensor" = ps: with ps; [  ];
     "rocketchat" = ps: with ps; [  ];
-    "rocketchat.notify" = ps: with ps; [  ];
     "roku" = ps: with ps; [  ];
-    "roku.media_player" = ps: with ps; [  ];
-    "roku.remote" = ps: with ps; [  ];
     "roomba" = ps: with ps; [  ];
-    "roomba.vacuum" = ps: with ps; [  ];
     "route53" = ps: with ps; [ boto3 ];
     "rova" = ps: with ps; [  ];
-    "rova.sensor" = ps: with ps; [  ];
     "rpi_camera" = ps: with ps; [  ];
-    "rpi_camera.camera" = ps: with ps; [  ];
     "rpi_gpio" = ps: with ps; [  ];
-    "rpi_gpio.binary_sensor" = ps: with ps; [  ];
-    "rpi_gpio.cover" = ps: with ps; [  ];
-    "rpi_gpio.switch" = ps: with ps; [  ];
     "rpi_gpio_pwm" = ps: with ps; [  ];
-    "rpi_gpio_pwm.light" = ps: with ps; [  ];
     "rpi_pfio" = ps: with ps; [  ];
-    "rpi_pfio.binary_sensor" = ps: with ps; [  ];
-    "rpi_pfio.switch" = ps: with ps; [  ];
     "rpi_rf" = ps: with ps; [  ];
-    "rpi_rf.switch" = ps: with ps; [  ];
     "rss_feed_template" = ps: with ps; [ aiohttp-cors ];
     "rtorrent" = ps: with ps; [  ];
-    "rtorrent.sensor" = ps: with ps; [  ];
     "russound_rio" = ps: with ps; [  ];
-    "russound_rio.media_player" = ps: with ps; [  ];
     "russound_rnet" = ps: with ps; [  ];
-    "russound_rnet.media_player" = ps: with ps; [  ];
     "ruter" = ps: with ps; [  ];
-    "ruter.sensor" = ps: with ps; [  ];
     "sabnzbd" = ps: with ps; [  ];
-    "sabnzbd.sensor" = ps: with ps; [  ];
-    "samsungtv" = ps: with ps; [  ];
-    "samsungtv.media_player" = ps: with ps; [ wakeonlan ];
+    "samsungtv" = ps: with ps; [ wakeonlan ];
     "satel_integra" = ps: with ps; [  ];
-    "satel_integra.alarm_control_panel" = ps: with ps; [  ];
-    "satel_integra.binary_sensor" = ps: with ps; [  ];
     "scene" = ps: with ps; [  ];
-    "scrape" = ps: with ps; [  ];
-    "scrape.sensor" = ps: with ps; [ beautifulsoup4 ];
+    "scrape" = ps: with ps; [ beautifulsoup4 ];
     "script" = ps: with ps; [  ];
     "scsgate" = ps: with ps; [  ];
-    "scsgate.cover" = ps: with ps; [  ];
-    "scsgate.light" = ps: with ps; [  ];
-    "scsgate.switch" = ps: with ps; [  ];
-    "season" = ps: with ps; [  ];
-    "season.sensor" = ps: with ps; [ ephem ];
+    "season" = ps: with ps; [ ephem ];
     "sendgrid" = ps: with ps; [  ];
-    "sendgrid.notify" = ps: with ps; [  ];
     "sense" = ps: with ps; [  ];
-    "sense.binary_sensor" = ps: with ps; [  ];
-    "sense.sensor" = ps: with ps; [  ];
     "sensehat" = ps: with ps; [  ];
-    "sensehat.light" = ps: with ps; [  ];
-    "sensehat.sensor" = ps: with ps; [  ];
     "sensibo" = ps: with ps; [  ];
-    "sensibo.climate" = ps: with ps; [  ];
     "sensor" = ps: with ps; [  ];
     "serial" = ps: with ps; [  ];
-    "serial.sensor" = ps: with ps; [  ];
     "serial_pm" = ps: with ps; [  ];
-    "serial_pm.sensor" = ps: with ps; [  ];
     "sesame" = ps: with ps; [  ];
-    "sesame.lock" = ps: with ps; [  ];
     "seven_segments" = ps: with ps; [  ];
-    "seven_segments.image_processing" = ps: with ps; [  ];
     "seventeentrack" = ps: with ps; [  ];
-    "seventeentrack.sensor" = ps: with ps; [  ];
     "shell_command" = ps: with ps; [  ];
     "shiftr" = ps: with ps; [ paho-mqtt ];
-    "shodan" = ps: with ps; [  ];
-    "shodan.sensor" = ps: with ps; [ shodan ];
+    "shodan" = ps: with ps; [ shodan ];
     "shopping_list" = ps: with ps; [ aiohttp-cors ];
     "sht31" = ps: with ps; [  ];
-    "sht31.sensor" = ps: with ps; [  ];
     "sigfox" = ps: with ps; [  ];
-    "sigfox.sensor" = ps: with ps; [  ];
     "simplepush" = ps: with ps; [  ];
-    "simplepush.notify" = ps: with ps; [  ];
     "simplisafe" = ps: with ps; [  ];
-    "simplisafe.alarm_control_panel" = ps: with ps; [  ];
-    "simplisafe.config_flow" = ps: with ps; [  ];
-    "simplisafe.const" = ps: with ps; [  ];
     "simulated" = ps: with ps; [  ];
-    "simulated.sensor" = ps: with ps; [  ];
     "sisyphus" = ps: with ps; [  ];
-    "sisyphus.light" = ps: with ps; [  ];
-    "sisyphus.media_player" = ps: with ps; [  ];
     "sky_hub" = ps: with ps; [  ];
-    "sky_hub.device_tracker" = ps: with ps; [  ];
     "skybeacon" = ps: with ps; [  ];
-    "skybeacon.sensor" = ps: with ps; [  ];
     "skybell" = ps: with ps; [  ];
-    "skybell.binary_sensor" = ps: with ps; [  ];
-    "skybell.camera" = ps: with ps; [  ];
-    "skybell.light" = ps: with ps; [  ];
-    "skybell.sensor" = ps: with ps; [  ];
-    "skybell.switch" = ps: with ps; [  ];
     "slack" = ps: with ps; [  ];
-    "slack.notify" = ps: with ps; [  ];
     "sleepiq" = ps: with ps; [  ];
-    "sleepiq.binary_sensor" = ps: with ps; [  ];
-    "sleepiq.sensor" = ps: with ps; [  ];
     "sma" = ps: with ps; [  ];
-    "sma.sensor" = ps: with ps; [  ];
     "smappee" = ps: with ps; [  ];
-    "smappee.sensor" = ps: with ps; [  ];
-    "smappee.switch" = ps: with ps; [  ];
     "smartthings" = ps: with ps; [ aiohttp-cors ];
-    "smartthings.binary_sensor" = ps: with ps; [ aiohttp-cors ];
-    "smartthings.climate" = ps: with ps; [ aiohttp-cors ];
-    "smartthings.config_flow" = ps: with ps; [  ];
-    "smartthings.const" = ps: with ps; [  ];
-    "smartthings.cover" = ps: with ps; [ aiohttp-cors ];
-    "smartthings.fan" = ps: with ps; [ aiohttp-cors ];
-    "smartthings.light" = ps: with ps; [ aiohttp-cors ];
-    "smartthings.lock" = ps: with ps; [ aiohttp-cors ];
-    "smartthings.scene" = ps: with ps; [ aiohttp-cors ];
-    "smartthings.sensor" = ps: with ps; [ aiohttp-cors ];
-    "smartthings.smartapp" = ps: with ps; [  ];
-    "smartthings.switch" = ps: with ps; [ aiohttp-cors ];
     "smhi" = ps: with ps; [  ];
-    "smhi.config_flow" = ps: with ps; [  ];
-    "smhi.const" = ps: with ps; [  ];
-    "smhi.weather" = ps: with ps; [  ];
     "smtp" = ps: with ps; [  ];
-    "smtp.notify" = ps: with ps; [  ];
-    "snapcast" = ps: with ps; [  ];
-    "snapcast.media_player" = ps: with ps; [ snapcast ];
-    "snips" = ps: with ps; [ paho-mqtt ];
-    "snmp" = ps: with ps; [  ];
-    "snmp.device_tracker" = ps: with ps; [ pysnmp ];
-    "snmp.sensor" = ps: with ps; [ pysnmp ];
-    "snmp.switch" = ps: with ps; [ pysnmp ];
+    "snapcast" = ps: with ps; [ snapcast ];
+    "snips" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt ];
+    "snmp" = ps: with ps; [ pysnmp ];
     "sochain" = ps: with ps; [  ];
-    "sochain.sensor" = ps: with ps; [  ];
     "socialblade" = ps: with ps; [  ];
-    "socialblade.sensor" = ps: with ps; [  ];
     "solaredge" = ps: with ps; [  ];
-    "solaredge.sensor" = ps: with ps; [  ];
+    "somfy_mylink" = ps: with ps; [  ];
     "sonarr" = ps: with ps; [  ];
-    "sonarr.sensor" = ps: with ps; [  ];
     "songpal" = ps: with ps; [  ];
-    "songpal.media_player" = ps: with ps; [  ];
-    "sonos" = ps: with ps; [  ];
-    "sonos.media_player" = ps: with ps; [  ];
+    "sonos" = ps: with ps; [ pysonos ];
     "sony_projector" = ps: with ps; [  ];
-    "sony_projector.switch" = ps: with ps; [  ];
-    "soundtouch" = ps: with ps; [  ];
-    "soundtouch.media_player" = ps: with ps; [ libsoundtouch ];
+    "soundtouch" = ps: with ps; [ libsoundtouch ];
     "spaceapi" = ps: with ps; [ aiohttp-cors ];
     "spc" = ps: with ps; [  ];
-    "spc.alarm_control_panel" = ps: with ps; [  ];
-    "spc.binary_sensor" = ps: with ps; [  ];
     "speedtestdotnet" = ps: with ps; [ speedtest-cli ];
-    "speedtestdotnet.const" = ps: with ps; [  ];
-    "speedtestdotnet.sensor" = ps: with ps; [ speedtest-cli ];
     "spider" = ps: with ps; [  ];
-    "spider.climate" = ps: with ps; [  ];
-    "spider.switch" = ps: with ps; [  ];
     "splunk" = ps: with ps; [  ];
     "spotcrime" = ps: with ps; [  ];
-    "spotcrime.sensor" = ps: with ps; [  ];
-    "spotify" = ps: with ps; [  ];
-    "spotify.media_player" = ps: with ps; [ aiohttp-cors ];
-    "sql" = ps: with ps; [  ];
-    "sql.sensor" = ps: with ps; [ sqlalchemy ];
+    "spotify" = ps: with ps; [ aiohttp-cors ];
+    "sql" = ps: with ps; [ sqlalchemy ];
     "squeezebox" = ps: with ps; [  ];
-    "squeezebox.media_player" = ps: with ps; [  ];
     "srp_energy" = ps: with ps; [  ];
-    "srp_energy.sensor" = ps: with ps; [  ];
     "starlingbank" = ps: with ps; [  ];
-    "starlingbank.sensor" = ps: with ps; [  ];
-    "startca" = ps: with ps; [  ];
-    "startca.sensor" = ps: with ps; [ xmltodict ];
+    "startca" = ps: with ps; [ xmltodict ];
     "statistics" = ps: with ps; [  ];
-    "statistics.sensor" = ps: with ps; [  ];
     "statsd" = ps: with ps; [ statsd ];
     "steam_online" = ps: with ps; [  ];
-    "steam_online.sensor" = ps: with ps; [  ];
+    "stiebel_eltron" = ps: with ps; [  ];
     "stream" = ps: with ps; [ aiohttp-cors av ];
-    "stream.const" = ps: with ps; [  ];
-    "stream.core" = ps: with ps; [  ];
-    "stream.hls" = ps: with ps; [  ];
-    "stream.recorder" = ps: with ps; [  ];
-    "stream.worker" = ps: with ps; [  ];
     "stride" = ps: with ps; [  ];
-    "stride.notify" = ps: with ps; [  ];
     "sun" = ps: with ps; [  ];
     "supervisord" = ps: with ps; [  ];
-    "supervisord.sensor" = ps: with ps; [  ];
+    "supla" = ps: with ps; [  ];
     "swiss_hydrological_data" = ps: with ps; [  ];
-    "swiss_hydrological_data.sensor" = ps: with ps; [  ];
     "swiss_public_transport" = ps: with ps; [  ];
-    "swiss_public_transport.sensor" = ps: with ps; [  ];
     "swisscom" = ps: with ps; [  ];
-    "swisscom.device_tracker" = ps: with ps; [  ];
     "switch" = ps: with ps; [  ];
-    "switch.light" = ps: with ps; [  ];
     "switchbot" = ps: with ps; [  ];
-    "switchbot.switch" = ps: with ps; [  ];
     "switchmate" = ps: with ps; [  ];
-    "switchmate.switch" = ps: with ps; [  ];
     "syncthru" = ps: with ps; [  ];
-    "syncthru.sensor" = ps: with ps; [  ];
     "synology" = ps: with ps; [  ];
-    "synology.camera" = ps: with ps; [  ];
     "synology_chat" = ps: with ps; [  ];
-    "synology_chat.notify" = ps: with ps; [  ];
     "synology_srm" = ps: with ps; [  ];
-    "synology_srm.device_tracker" = ps: with ps; [  ];
     "synologydsm" = ps: with ps; [  ];
-    "synologydsm.sensor" = ps: with ps; [  ];
     "syslog" = ps: with ps; [  ];
-    "syslog.notify" = ps: with ps; [  ];
     "system_health" = ps: with ps; [ aiohttp-cors ];
     "system_log" = ps: with ps; [ aiohttp-cors ];
-    "systemmonitor" = ps: with ps; [  ];
-    "systemmonitor.sensor" = ps: with ps; [ psutil ];
-    "sytadin" = ps: with ps; [  ];
-    "sytadin.sensor" = ps: with ps; [ beautifulsoup4 ];
+    "systemmonitor" = ps: with ps; [ psutil ];
+    "sytadin" = ps: with ps; [ beautifulsoup4 ];
     "tado" = ps: with ps; [  ];
-    "tado.climate" = ps: with ps; [  ];
-    "tado.device_tracker" = ps: with ps; [  ];
-    "tado.sensor" = ps: with ps; [  ];
     "tahoma" = ps: with ps; [  ];
-    "tahoma.binary_sensor" = ps: with ps; [  ];
-    "tahoma.cover" = ps: with ps; [  ];
-    "tahoma.scene" = ps: with ps; [  ];
-    "tahoma.sensor" = ps: with ps; [  ];
-    "tahoma.switch" = ps: with ps; [  ];
     "tank_utility" = ps: with ps; [  ];
-    "tank_utility.sensor" = ps: with ps; [  ];
     "tapsaff" = ps: with ps; [  ];
-    "tapsaff.binary_sensor" = ps: with ps; [  ];
     "tautulli" = ps: with ps; [  ];
-    "tautulli.sensor" = ps: with ps; [  ];
     "tcp" = ps: with ps; [  ];
-    "tcp.binary_sensor" = ps: with ps; [  ];
-    "tcp.sensor" = ps: with ps; [  ];
-    "ted5000" = ps: with ps; [  ];
-    "ted5000.sensor" = ps: with ps; [ xmltodict ];
+    "ted5000" = ps: with ps; [ xmltodict ];
     "teksavvy" = ps: with ps; [  ];
-    "teksavvy.sensor" = ps: with ps; [  ];
-    "telegram" = ps: with ps; [  ];
-    "telegram.notify" = ps: with ps; [ python-telegram-bot ];
-    "telegram_bot" = ps: with ps; [ python-telegram-bot ];
-    "telegram_bot.broadcast" = ps: with ps; [  ];
-    "telegram_bot.polling" = ps: with ps; [  ];
-    "telegram_bot.webhooks" = ps: with ps; [ aiohttp-cors ];
+    "telegram" = ps: with ps; [ aiohttp-cors python-telegram-bot ];
+    "telegram_bot" = ps: with ps; [ aiohttp-cors python-telegram-bot ];
     "tellduslive" = ps: with ps; [  ];
-    "tellduslive.binary_sensor" = ps: with ps; [  ];
-    "tellduslive.config_flow" = ps: with ps; [  ];
-    "tellduslive.const" = ps: with ps; [  ];
-    "tellduslive.cover" = ps: with ps; [  ];
-    "tellduslive.entry" = ps: with ps; [  ];
-    "tellduslive.light" = ps: with ps; [  ];
-    "tellduslive.sensor" = ps: with ps; [  ];
-    "tellduslive.switch" = ps: with ps; [  ];
     "tellstick" = ps: with ps; [  ];
-    "tellstick.cover" = ps: with ps; [  ];
-    "tellstick.light" = ps: with ps; [  ];
-    "tellstick.sensor" = ps: with ps; [  ];
-    "tellstick.switch" = ps: with ps; [  ];
     "telnet" = ps: with ps; [  ];
-    "telnet.switch" = ps: with ps; [  ];
     "temper" = ps: with ps; [  ];
-    "temper.sensor" = ps: with ps; [  ];
     "template" = ps: with ps; [  ];
-    "template.binary_sensor" = ps: with ps; [  ];
-    "template.cover" = ps: with ps; [  ];
-    "template.fan" = ps: with ps; [  ];
-    "template.light" = ps: with ps; [  ];
-    "template.lock" = ps: with ps; [  ];
-    "template.sensor" = ps: with ps; [  ];
-    "template.switch" = ps: with ps; [  ];
-    "tensorflow" = ps: with ps; [  ];
-    "tensorflow.image_processing" = ps: with ps; [ numpy pillow protobuf ];
+    "tensorflow" = ps: with ps; [ numpy pillow protobuf ];
     "tesla" = ps: with ps; [  ];
-    "tesla.binary_sensor" = ps: with ps; [  ];
-    "tesla.climate" = ps: with ps; [  ];
-    "tesla.device_tracker" = ps: with ps; [  ];
-    "tesla.lock" = ps: with ps; [  ];
-    "tesla.sensor" = ps: with ps; [  ];
-    "tesla.switch" = ps: with ps; [  ];
     "tfiac" = ps: with ps; [  ];
-    "tfiac.climate" = ps: with ps; [  ];
     "thermoworks_smoke" = ps: with ps; [  ];
-    "thermoworks_smoke.sensor" = ps: with ps; [  ];
     "thethingsnetwork" = ps: with ps; [  ];
-    "thethingsnetwork.sensor" = ps: with ps; [  ];
     "thingspeak" = ps: with ps; [  ];
     "thinkingcleaner" = ps: with ps; [  ];
-    "thinkingcleaner.sensor" = ps: with ps; [  ];
-    "thinkingcleaner.switch" = ps: with ps; [  ];
     "thomson" = ps: with ps; [  ];
-    "thomson.device_tracker" = ps: with ps; [  ];
     "threshold" = ps: with ps; [  ];
-    "threshold.binary_sensor" = ps: with ps; [  ];
     "tibber" = ps: with ps; [  ];
-    "tibber.notify" = ps: with ps; [  ];
-    "tibber.sensor" = ps: with ps; [  ];
     "tikteck" = ps: with ps; [  ];
-    "tikteck.light" = ps: with ps; [  ];
     "tile" = ps: with ps; [  ];
-    "tile.device_tracker" = ps: with ps; [  ];
     "time_date" = ps: with ps; [  ];
-    "time_date.sensor" = ps: with ps; [  ];
     "timer" = ps: with ps; [  ];
     "tod" = ps: with ps; [  ];
-    "tod.binary_sensor" = ps: with ps; [  ];
-    "todoist" = ps: with ps; [  ];
-    "todoist.calendar" = ps: with ps; [ todoist ];
+    "todoist" = ps: with ps; [ todoist ];
     "tof" = ps: with ps; [  ];
-    "tof.sensor" = ps: with ps; [  ];
     "tomato" = ps: with ps; [  ];
-    "tomato.device_tracker" = ps: with ps; [  ];
     "toon" = ps: with ps; [  ];
-    "toon.binary_sensor" = ps: with ps; [  ];
-    "toon.climate" = ps: with ps; [  ];
-    "toon.config_flow" = ps: with ps; [  ];
-    "toon.const" = ps: with ps; [  ];
-    "toon.sensor" = ps: with ps; [  ];
-    "torque" = ps: with ps; [  ];
-    "torque.sensor" = ps: with ps; [ aiohttp-cors ];
+    "torque" = ps: with ps; [ aiohttp-cors ];
     "totalconnect" = ps: with ps; [  ];
-    "totalconnect.alarm_control_panel" = ps: with ps; [  ];
     "touchline" = ps: with ps; [  ];
-    "touchline.climate" = ps: with ps; [  ];
     "tplink" = ps: with ps; [  ];
-    "tplink.device_tracker" = ps: with ps; [  ];
-    "tplink.light" = ps: with ps; [  ];
-    "tplink.switch" = ps: with ps; [  ];
     "tplink_lte" = ps: with ps; [  ];
-    "tplink_lte.notify" = ps: with ps; [  ];
     "traccar" = ps: with ps; [  ];
-    "traccar.device_tracker" = ps: with ps; [  ];
     "trackr" = ps: with ps; [  ];
-    "trackr.device_tracker" = ps: with ps; [  ];
     "tradfri" = ps: with ps; [  ];
-    "tradfri.config_flow" = ps: with ps; [  ];
-    "tradfri.const" = ps: with ps; [  ];
-    "tradfri.light" = ps: with ps; [  ];
-    "tradfri.sensor" = ps: with ps; [  ];
-    "tradfri.switch" = ps: with ps; [  ];
     "trafikverket_weatherstation" = ps: with ps; [  ];
-    "trafikverket_weatherstation.sensor" = ps: with ps; [  ];
     "transmission" = ps: with ps; [ transmissionrpc ];
-    "transmission.sensor" = ps: with ps; [ transmissionrpc ];
-    "transmission.switch" = ps: with ps; [ transmissionrpc ];
     "transport_nsw" = ps: with ps; [  ];
-    "transport_nsw.sensor" = ps: with ps; [  ];
     "travisci" = ps: with ps; [  ];
-    "travisci.sensor" = ps: with ps; [  ];
-    "trend" = ps: with ps; [  ];
-    "trend.binary_sensor" = ps: with ps; [ numpy ];
+    "trend" = ps: with ps; [ numpy ];
     "tts" = ps: with ps; [ aiohttp-cors mutagen ];
     "tuya" = ps: with ps; [  ];
-    "tuya.climate" = ps: with ps; [  ];
-    "tuya.cover" = ps: with ps; [  ];
-    "tuya.fan" = ps: with ps; [  ];
-    "tuya.light" = ps: with ps; [  ];
-    "tuya.scene" = ps: with ps; [  ];
-    "tuya.switch" = ps: with ps; [  ];
     "twilio" = ps: with ps; [ aiohttp-cors twilio ];
-    "twilio_call" = ps: with ps; [  ];
-    "twilio_call.notify" = ps: with ps; [ aiohttp-cors twilio ];
-    "twilio_sms" = ps: with ps; [  ];
-    "twilio_sms.notify" = ps: with ps; [ aiohttp-cors twilio ];
+    "twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
+    "twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
     "twitch" = ps: with ps; [  ];
-    "twitch.sensor" = ps: with ps; [  ];
     "twitter" = ps: with ps; [  ];
-    "twitter.notify" = ps: with ps; [  ];
     "ubee" = ps: with ps; [  ];
-    "ubee.device_tracker" = ps: with ps; [  ];
     "uber" = ps: with ps; [  ];
-    "uber.sensor" = ps: with ps; [  ];
     "ubus" = ps: with ps; [  ];
-    "ubus.device_tracker" = ps: with ps; [  ];
     "ue_smart_radio" = ps: with ps; [  ];
-    "ue_smart_radio.media_player" = ps: with ps; [  ];
     "uk_transport" = ps: with ps; [  ];
-    "uk_transport.sensor" = ps: with ps; [  ];
-    "unifi" = ps: with ps; [ aiounifi ];
-    "unifi.const" = ps: with ps; [  ];
-    "unifi.controller" = ps: with ps; [  ];
-    "unifi.device_tracker" = ps: with ps; [ pyunifi ];
-    "unifi.errors" = ps: with ps; [  ];
-    "unifi.switch" = ps: with ps; [ aiounifi ];
-    "unifi_direct" = ps: with ps; [  ];
-    "unifi_direct.device_tracker" = ps: with ps; [ pexpect ];
+    "unifi" = ps: with ps; [ aiounifi pyunifi ];
+    "unifi_direct" = ps: with ps; [ pexpect ];
     "universal" = ps: with ps; [  ];
-    "universal.media_player" = ps: with ps; [  ];
-    "upc_connect" = ps: with ps; [  ];
-    "upc_connect.device_tracker" = ps: with ps; [ defusedxml ];
+    "upc_connect" = ps: with ps; [ defusedxml ];
     "upcloud" = ps: with ps; [  ];
-    "upcloud.binary_sensor" = ps: with ps; [  ];
-    "upcloud.switch" = ps: with ps; [  ];
     "updater" = ps: with ps; [ distro ];
     "upnp" = ps: with ps; [  ];
-    "upnp.const" = ps: with ps; [  ];
-    "upnp.device" = ps: with ps; [  ];
-    "upnp.sensor" = ps: with ps; [  ];
     "ups" = ps: with ps; [  ];
-    "ups.sensor" = ps: with ps; [  ];
     "uptime" = ps: with ps; [  ];
-    "uptime.sensor" = ps: with ps; [  ];
     "uptimerobot" = ps: with ps; [  ];
-    "uptimerobot.binary_sensor" = ps: with ps; [  ];
     "uscis" = ps: with ps; [  ];
-    "uscis.sensor" = ps: with ps; [  ];
     "usgs_earthquakes_feed" = ps: with ps; [  ];
-    "usgs_earthquakes_feed.geo_location" = ps: with ps; [  ];
     "usps" = ps: with ps; [  ];
-    "usps.camera" = ps: with ps; [  ];
-    "usps.sensor" = ps: with ps; [  ];
     "utility_meter" = ps: with ps; [  ];
-    "utility_meter.const" = ps: with ps; [  ];
-    "utility_meter.sensor" = ps: with ps; [  ];
     "uvc" = ps: with ps; [  ];
-    "uvc.camera" = ps: with ps; [  ];
     "vacuum" = ps: with ps; [  ];
     "vasttrafik" = ps: with ps; [  ];
-    "vasttrafik.sensor" = ps: with ps; [  ];
     "velbus" = ps: with ps; [  ];
-    "velbus.binary_sensor" = ps: with ps; [  ];
-    "velbus.climate" = ps: with ps; [  ];
-    "velbus.cover" = ps: with ps; [  ];
-    "velbus.sensor" = ps: with ps; [  ];
-    "velbus.switch" = ps: with ps; [  ];
     "velux" = ps: with ps; [  ];
-    "velux.cover" = ps: with ps; [  ];
-    "velux.scene" = ps: with ps; [  ];
     "venstar" = ps: with ps; [  ];
-    "venstar.climate" = ps: with ps; [  ];
     "vera" = ps: with ps; [  ];
-    "vera.binary_sensor" = ps: with ps; [  ];
-    "vera.climate" = ps: with ps; [  ];
-    "vera.cover" = ps: with ps; [  ];
-    "vera.light" = ps: with ps; [  ];
-    "vera.lock" = ps: with ps; [  ];
-    "vera.scene" = ps: with ps; [  ];
-    "vera.sensor" = ps: with ps; [  ];
-    "vera.switch" = ps: with ps; [  ];
     "verisure" = ps: with ps; [  ];
-    "verisure.alarm_control_panel" = ps: with ps; [  ];
-    "verisure.binary_sensor" = ps: with ps; [  ];
-    "verisure.camera" = ps: with ps; [  ];
-    "verisure.lock" = ps: with ps; [  ];
-    "verisure.sensor" = ps: with ps; [  ];
-    "verisure.switch" = ps: with ps; [  ];
     "version" = ps: with ps; [  ];
-    "version.sensor" = ps: with ps; [  ];
     "vesync" = ps: with ps; [  ];
-    "vesync.switch" = ps: with ps; [  ];
     "viaggiatreno" = ps: with ps; [  ];
-    "viaggiatreno.sensor" = ps: with ps; [  ];
     "vizio" = ps: with ps; [  ];
-    "vizio.media_player" = ps: with ps; [  ];
     "vlc" = ps: with ps; [  ];
-    "vlc.media_player" = ps: with ps; [  ];
     "voicerss" = ps: with ps; [  ];
-    "voicerss.tts" = ps: with ps; [  ];
     "volkszaehler" = ps: with ps; [  ];
-    "volkszaehler.sensor" = ps: with ps; [  ];
     "volumio" = ps: with ps; [  ];
-    "volumio.media_player" = ps: with ps; [  ];
     "volvooncall" = ps: with ps; [  ];
-    "volvooncall.binary_sensor" = ps: with ps; [  ];
-    "volvooncall.device_tracker" = ps: with ps; [  ];
-    "volvooncall.lock" = ps: with ps; [  ];
-    "volvooncall.sensor" = ps: with ps; [  ];
-    "volvooncall.switch" = ps: with ps; [  ];
     "vultr" = ps: with ps; [ vultr ];
-    "vultr.binary_sensor" = ps: with ps; [ vultr ];
-    "vultr.sensor" = ps: with ps; [ vultr ];
-    "vultr.switch" = ps: with ps; [ vultr ];
     "w800rf32" = ps: with ps; [  ];
-    "w800rf32.binary_sensor" = ps: with ps; [  ];
     "wake_on_lan" = ps: with ps; [ wakeonlan ];
-    "wake_on_lan.switch" = ps: with ps; [ wakeonlan ];
     "waqi" = ps: with ps; [  ];
-    "waqi.sensor" = ps: with ps; [  ];
     "water_heater" = ps: with ps; [  ];
     "waterfurnace" = ps: with ps; [  ];
-    "waterfurnace.sensor" = ps: with ps; [  ];
     "watson_iot" = ps: with ps; [  ];
-    "waze_travel_time" = ps: with ps; [  ];
-    "waze_travel_time.sensor" = ps: with ps; [ WazeRouteCalculator ];
+    "waze_travel_time" = ps: with ps; [ WazeRouteCalculator ];
     "weather" = ps: with ps; [  ];
     "webhook" = ps: with ps; [ aiohttp-cors ];
     "weblink" = ps: with ps; [  ];
-    "webostv" = ps: with ps; [  ];
-    "webostv.media_player" = ps: with ps; [ websockets ];
-    "webostv.notify" = ps: with ps; [  ];
+    "webostv" = ps: with ps; [ websockets ];
     "websocket_api" = ps: with ps; [ aiohttp-cors ];
-    "websocket_api.auth" = ps: with ps; [  ];
-    "websocket_api.commands" = ps: with ps; [  ];
-    "websocket_api.connection" = ps: with ps; [  ];
-    "websocket_api.const" = ps: with ps; [  ];
-    "websocket_api.decorators" = ps: with ps; [  ];
-    "websocket_api.error" = ps: with ps; [  ];
-    "websocket_api.http" = ps: with ps; [  ];
-    "websocket_api.messages" = ps: with ps; [  ];
-    "websocket_api.permissions" = ps: with ps; [  ];
-    "websocket_api.sensor" = ps: with ps; [  ];
     "wemo" = ps: with ps; [  ];
-    "wemo.binary_sensor" = ps: with ps; [  ];
-    "wemo.fan" = ps: with ps; [  ];
-    "wemo.light" = ps: with ps; [  ];
-    "wemo.switch" = ps: with ps; [  ];
     "whois" = ps: with ps; [  ];
-    "whois.sensor" = ps: with ps; [  ];
     "wink" = ps: with ps; [  ];
-    "wink.alarm_control_panel" = ps: with ps; [  ];
-    "wink.binary_sensor" = ps: with ps; [  ];
-    "wink.climate" = ps: with ps; [  ];
-    "wink.cover" = ps: with ps; [  ];
-    "wink.fan" = ps: with ps; [  ];
-    "wink.light" = ps: with ps; [  ];
-    "wink.lock" = ps: with ps; [  ];
-    "wink.scene" = ps: with ps; [  ];
-    "wink.sensor" = ps: with ps; [  ];
-    "wink.switch" = ps: with ps; [  ];
-    "wink.water_heater" = ps: with ps; [  ];
     "wirelesstag" = ps: with ps; [  ];
-    "wirelesstag.binary_sensor" = ps: with ps; [  ];
-    "wirelesstag.sensor" = ps: with ps; [  ];
-    "wirelesstag.switch" = ps: with ps; [  ];
     "workday" = ps: with ps; [  ];
-    "workday.binary_sensor" = ps: with ps; [  ];
     "worldclock" = ps: with ps; [  ];
-    "worldclock.sensor" = ps: with ps; [  ];
     "worldtidesinfo" = ps: with ps; [  ];
-    "worldtidesinfo.sensor" = ps: with ps; [  ];
     "worxlandroid" = ps: with ps; [  ];
-    "worxlandroid.sensor" = ps: with ps; [  ];
     "wsdot" = ps: with ps; [  ];
-    "wsdot.sensor" = ps: with ps; [  ];
     "wunderground" = ps: with ps; [  ];
-    "wunderground.sensor" = ps: with ps; [  ];
     "wunderlist" = ps: with ps; [  ];
     "x10" = ps: with ps; [  ];
-    "x10.light" = ps: with ps; [  ];
     "xbox_live" = ps: with ps; [  ];
-    "xbox_live.sensor" = ps: with ps; [  ];
     "xeoma" = ps: with ps; [  ];
-    "xeoma.camera" = ps: with ps; [  ];
     "xfinity" = ps: with ps; [  ];
-    "xfinity.device_tracker" = ps: with ps; [  ];
-    "xiaomi" = ps: with ps; [  ];
-    "xiaomi.camera" = ps: with ps; [ ha-ffmpeg ];
-    "xiaomi.device_tracker" = ps: with ps; [  ];
+    "xiaomi" = ps: with ps; [ ha-ffmpeg ];
     "xiaomi_aqara" = ps: with ps; [  ];
-    "xiaomi_aqara.binary_sensor" = ps: with ps; [  ];
-    "xiaomi_aqara.cover" = ps: with ps; [  ];
-    "xiaomi_aqara.light" = ps: with ps; [  ];
-    "xiaomi_aqara.lock" = ps: with ps; [  ];
-    "xiaomi_aqara.sensor" = ps: with ps; [  ];
-    "xiaomi_aqara.switch" = ps: with ps; [  ];
-    "xiaomi_miio" = ps: with ps; [  ];
-    "xiaomi_miio.device_tracker" = ps: with ps; [ construct ];
-    "xiaomi_miio.fan" = ps: with ps; [ construct ];
-    "xiaomi_miio.light" = ps: with ps; [ construct ];
-    "xiaomi_miio.remote" = ps: with ps; [ construct ];
-    "xiaomi_miio.sensor" = ps: with ps; [ construct ];
-    "xiaomi_miio.switch" = ps: with ps; [ construct ];
-    "xiaomi_miio.vacuum" = ps: with ps; [ construct ];
+    "xiaomi_miio" = ps: with ps; [ construct ];
     "xiaomi_tv" = ps: with ps; [  ];
-    "xiaomi_tv.media_player" = ps: with ps; [  ];
-    "xmpp" = ps: with ps; [  ];
-    "xmpp.notify" = ps: with ps; [ slixmpp ];
+    "xmpp" = ps: with ps; [ slixmpp ];
     "xs1" = ps: with ps; [  ];
-    "xs1.climate" = ps: with ps; [  ];
-    "xs1.sensor" = ps: with ps; [  ];
-    "xs1.switch" = ps: with ps; [  ];
     "yale_smart_alarm" = ps: with ps; [  ];
-    "yale_smart_alarm.alarm_control_panel" = ps: with ps; [  ];
     "yamaha" = ps: with ps; [  ];
-    "yamaha.media_player" = ps: with ps; [  ];
     "yamaha_musiccast" = ps: with ps; [  ];
-    "yamaha_musiccast.media_player" = ps: with ps; [  ];
     "yandextts" = ps: with ps; [  ];
-    "yandextts.tts" = ps: with ps; [  ];
     "yeelight" = ps: with ps; [  ];
-    "yeelight.binary_sensor" = ps: with ps; [  ];
-    "yeelight.light" = ps: with ps; [  ];
     "yeelightsunflower" = ps: with ps; [  ];
-    "yeelightsunflower.light" = ps: with ps; [  ];
     "yessssms" = ps: with ps; [  ];
-    "yessssms.notify" = ps: with ps; [  ];
-    "yi" = ps: with ps; [  ];
-    "yi.camera" = ps: with ps; [ ha-ffmpeg ];
-    "yr" = ps: with ps; [  ];
-    "yr.sensor" = ps: with ps; [ xmltodict ];
-    "yweather" = ps: with ps; [  ];
-    "yweather.sensor" = ps: with ps; [ yahooweather ];
-    "yweather.weather" = ps: with ps; [ yahooweather ];
+    "yi" = ps: with ps; [ ha-ffmpeg ];
+    "yr" = ps: with ps; [ xmltodict ];
+    "yweather" = ps: with ps; [ yahooweather ];
     "zabbix" = ps: with ps; [  ];
-    "zabbix.sensor" = ps: with ps; [  ];
     "zamg" = ps: with ps; [  ];
-    "zamg.sensor" = ps: with ps; [  ];
-    "zamg.weather" = ps: with ps; [  ];
     "zengge" = ps: with ps; [  ];
-    "zengge.light" = ps: with ps; [  ];
     "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
-    "zestimate" = ps: with ps; [  ];
-    "zestimate.sensor" = ps: with ps; [ xmltodict ];
+    "zestimate" = ps: with ps; [ xmltodict ];
     "zha" = ps: with ps; [  ];
-    "zha.api" = ps: with ps; [  ];
-    "zha.binary_sensor" = ps: with ps; [  ];
-    "zha.config_flow" = ps: with ps; [  ];
-    "zha.const" = ps: with ps; [  ];
-    "zha.core" = ps: with ps; [  ];
-    "zha.device_entity" = ps: with ps; [  ];
-    "zha.entity" = ps: with ps; [  ];
-    "zha.fan" = ps: with ps; [  ];
-    "zha.light" = ps: with ps; [  ];
-    "zha.sensor" = ps: with ps; [  ];
-    "zha.switch" = ps: with ps; [  ];
     "zhong_hong" = ps: with ps; [  ];
-    "zhong_hong.climate" = ps: with ps; [  ];
     "zigbee" = ps: with ps; [  ];
-    "zigbee.binary_sensor" = ps: with ps; [  ];
-    "zigbee.light" = ps: with ps; [  ];
-    "zigbee.sensor" = ps: with ps; [  ];
-    "zigbee.switch" = ps: with ps; [  ];
     "ziggo_mediabox_xl" = ps: with ps; [  ];
-    "ziggo_mediabox_xl.media_player" = ps: with ps; [  ];
     "zone" = ps: with ps; [  ];
-    "zone.config_flow" = ps: with ps; [  ];
-    "zone.const" = ps: with ps; [  ];
-    "zone.zone" = ps: with ps; [  ];
     "zoneminder" = ps: with ps; [ zm-py ];
-    "zoneminder.binary_sensor" = ps: with ps; [ zm-py ];
-    "zoneminder.camera" = ps: with ps; [ zm-py ];
-    "zoneminder.sensor" = ps: with ps; [ zm-py ];
-    "zoneminder.switch" = ps: with ps; [ zm-py ];
     "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ];
-    "zwave.binary_sensor" = ps: with ps; [  ];
-    "zwave.climate" = ps: with ps; [  ];
-    "zwave.config_flow" = ps: with ps; [  ];
-    "zwave.const" = ps: with ps; [  ];
-    "zwave.cover" = ps: with ps; [  ];
-    "zwave.discovery_schemas" = ps: with ps; [  ];
-    "zwave.fan" = ps: with ps; [  ];
-    "zwave.light" = ps: with ps; [  ];
-    "zwave.lock" = ps: with ps; [  ];
-    "zwave.node_entity" = ps: with ps; [  ];
-    "zwave.sensor" = ps: with ps; [  ];
-    "zwave.switch" = ps: with ps; [  ];
-    "zwave.util" = ps: with ps; [  ];
-    "zwave.workaround" = ps: with ps; [  ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/home-assistant/default.nix b/nixpkgs/pkgs/servers/home-assistant/default.nix
index d2eb536a11e5..6de571b1e0f1 100644
--- a/nixpkgs/pkgs/servers/home-assistant/default.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/default.nix
@@ -28,28 +28,20 @@ let
       "10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69")
     (mkOverride "bcrypt" "3.1.6"
       "44636759d222baa62806bbceb20e96f75a015a6381690d1bc2eda91c01ec02ea")
-    (self: super: {
-      pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec {
-        version = "1.6.4";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176";
-        };
-        doCheck = false; # https://github.com/jpadilla/pyjwt/issues/382
-      });
-    })
-    (mkOverride "cryptography" "2.5"
-      "00c4d7gvsymlaw0r13zrm32dcnarmpayjyrh65yymlmr6mrbcij9")
-    (mkOverride "cryptography_vectors" "2.5" # required by cryptography==2.5
-      "15qfl3pnw2f11r0z0zhwl56f6pb60ysav8fxmpnz5p80cfwljdik")
-    (mkOverride "python-slugify" "1.2.6"
-      "7723daf30996db26573176bddcdf5fcb98f66dc70df05c9cb29f2c79b8193245")
+    (mkOverride "pyjwt" "1.7.1"
+      "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96")
+    (mkOverride "cryptography" "2.6.1"
+      "26c821cbeb683facb966045e2064303029d572a87ee69ca5a1bf54bf55f93ca6")
+    (mkOverride "cryptography_vectors" "2.6.1" # required by cryptography==2.6.1
+      "03f38115dccb266dd96538f94067442a877932c2322661bdc5bf2502c76658af")
+    (mkOverride "python-slugify" "3.0.2"
+      "57163ffb345c7e26063435a27add1feae67fa821f1ef4b2f292c25847575d758")
     (mkOverride "pyyaml" "3.13"
       "3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf")
     (mkOverride "requests" "2.21.0"
       "502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e")
-    (mkOverride "ruamel_yaml" "0.15.89"
-      "86d034aa9e2ab3eacc5f75f5cd6a469a2af533b6d9e60ea92edbba540d21b9b7")
+    (mkOverride "ruamel_yaml" "0.15.91"
+      "692f03ed24c8c1d9fa9fd4c045f7ba1c26f1e96edb8bfb4d54854ba26bc02319")
     (mkOverride "voluptuous" "0.11.5"
       "567a56286ef82a9d7ae0628c5842f65f516abcb496e74f3f59f1d7b28df314ef")
     (mkOverride "voluptuous-serialize" "2.1.0"
@@ -67,14 +59,13 @@ let
     # required by home-assistant-frontend
     (self: super: {
       user-agents = super.user-agents.overridePythonAttrs (oldAttrs: rec {
-        version = "1.1.0";
+        version = "2.0.0";
         src = fetchFromGitHub {
           owner = "selwin";
           repo = "python-user-agents";
           rev = "v${version}";
-          sha256 = "14kxd780zhp8718xr1z63xffaj3bvxgr4pldh9sv943m4hvi0gw5";
+          sha256 = "0ix2yajqdnfj433j50dls90mkmqz8m4fiywxg097zwkkc95wm8s4";
         };
-        doCheck = false; # can be dropped for 2.0
       });
     })
 
@@ -118,7 +109,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "0.91.4";
+  hassVersion = "0.92.2";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -133,7 +124,7 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "home-assistant";
     rev = version;
-    sha256 = "195pif8lz0qxjsannpi39gxphfb6dkj9lkpah0vjw0pgx753sflv";
+    sha256 = "10kqfj7gi8w0d9jalb4i2w4ifla8jkllymjav74abc4b30y08vmw";
   };
 
   propagatedBuildInputs = [
@@ -145,16 +136,17 @@ in with py.pkgs; buildPythonApplication rec {
   ] ++ componentBuildInputs ++ extraBuildInputs;
 
   checkInputs = [
-    asynctest pytest pytest-aiohttp requests-mock pydispatcher
+    asynctest pytest pytest-aiohttp requests-mock pydispatcher aiohue
   ];
 
   checkPhase = ''
     # The components' dependencies are not included, so they cannot be tested
-    py.test --ignore tests/components
+    # test_webhook_create_cloudhook imports hass_nabucasa and is thus excluded
+    py.test --ignore tests/components -k "not test_webhook_create_cloudhook"
     # Some basic components should be tested however
     py.test \
       tests/components/{api,config,configurator,demo,discovery,frontend,group,history,history_graph} \
-      tests/components/{homeassistant,http,introduction,logger,script,shell_command,system_log,websocket_api}
+      tests/components/{homeassistant,http,logger,script,shell_command,system_log,websocket_api}
   '';
 
   makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";
diff --git a/nixpkgs/pkgs/servers/home-assistant/frontend.nix b/nixpkgs/pkgs/servers/home-assistant/frontend.nix
index f8349c24f7fb..9919270a8d02 100644
--- a/nixpkgs/pkgs/servers/home-assistant/frontend.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/frontend.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-frontend";
-  version = "20190331.0";
+  version = "20190427.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d266a4d3d31af9a50debb99b0e9e9650044698f9157753bec785785057264cf";
+    sha256 = "eb14e7be0ad591ad4623c67db752bc4eb4f4e43ce60bb0f6d1909e9ad9399d91";
   };
 
   propagatedBuildInputs = [ user-agents ];
diff --git a/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py b/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py
index e61d616d6a71..a2cf2d0386a2 100755
--- a/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py
+++ b/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py
@@ -1,28 +1,30 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ aiohttp astral async-timeout attrs certifi jinja2 pyjwt cryptography pip pytz pyyaml requests ruamel_yaml voluptuous python-slugify ])"
+#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ attrs ])
 #
 # This script downloads Home Assistant's source tarball.
-# Inside the homeassistant/components directory, each component has an associated .py file,
-# specifying required packages and other components it depends on:
+# Inside the homeassistant/components directory, each integration has an associated manifest.json,
+# specifying required packages and other integrations it depends on:
 #
-# REQUIREMENTS = [ 'package==1.2.3' ]
-# DEPENDENCIES = [ 'component' ]
+#     {
+#       "requirements": [ "package==1.2.3" ],
+#       "dependencies": [ "component" ]
+#     }
 #
-# By parsing the files, a dictionary mapping component to requirements and dependencies is created.
+# By parsing the files, a dictionary mapping integrations to requirements and dependencies is created.
 # For all of these requirements and the dependencies' requirements,
-# Nixpkgs' python3Packages are searched for appropriate names.
-# Then, a Nix attribute set mapping component name to dependencies is created.
+# nixpkgs' python3Packages are searched for appropriate names.
+# Then, a Nix attribute set mapping integration name to dependencies is created.
 
-from urllib.request import urlopen
-import tempfile
 from io import BytesIO
-import tarfile
-import importlib
-import subprocess
-import os
-import sys
 import json
+import pathlib
+import os
 import re
+import subprocess
+import sys
+import tempfile
+import tarfile
+from urllib.request import urlopen
 
 COMPONENT_PREFIX = 'homeassistant.components'
 PKG_SET = 'python3Packages'
@@ -43,22 +45,17 @@ def get_version():
 def parse_components(version='master'):
     components = {}
     with tempfile.TemporaryDirectory() as tmp:
-        with urlopen('https://github.com/home-assistant/home-assistant/archive/{}.tar.gz'.format(version)) as response:
+        with urlopen(f'https://github.com/home-assistant/home-assistant/archive/{version}.tar.gz') as response:
             tarfile.open(fileobj=BytesIO(response.read())).extractall(tmp)
         # Use part of a script from the Home Assistant codebase
-        sys.path.append(tmp + '/home-assistant-{}'.format(version))
-        from script.gen_requirements_all import explore_module
-        for package in explore_module(COMPONENT_PREFIX, True):
-            # Remove 'homeassistant.components.' prefix
-            component = package[len(COMPONENT_PREFIX + '.'):]
-            try:
-                module = importlib.import_module(package)
-                components[component] = {}
-                components[component]['requirements'] = getattr(module, 'REQUIREMENTS', [])
-                components[component]['dependencies'] = getattr(module, 'DEPENDENCIES', [])
-            # If there is an ImportError, the imported file is not the main file of the component
-            except ImportError:
-                continue
+        sys.path.append(os.path.join(tmp, f'home-assistant-{version}'))
+        from script.hassfest.model import Integration
+        integrations = Integration.load_dir(pathlib.Path(
+            os.path.join(tmp, f'home-assistant-{version}', 'homeassistant/components')
+        ))
+        for domain in sorted(integrations):
+            integration = integrations[domain]
+            components[domain] = integration.manifest
     return components
 
 # Recursively get the requirements of a component and its dependencies
diff --git a/nixpkgs/pkgs/servers/http/winstone/default.nix b/nixpkgs/pkgs/servers/http/winstone/default.nix
deleted file mode 100644
index 6a92c0a228af..000000000000
--- a/nixpkgs/pkgs/servers/http/winstone/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  name = "winstone-${version}";
-  version = "0.9.10";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/winstone/${name}.jar";
-    sha256 = "17xvq3yk95335c6ag1bmbmxlvh7gqq35ifi64r2l6rnvrf6pqyan";
-  };
-
-  phases = [ "installPhase" ];
-
-  installPhase = ''
-    mkdir -p $out/lib
-    cp $src $out/lib/winstone.jar
-  '';
-
-  meta = {
-    homepage = http://winstone.sourceforge.net/;
-    description = "A simple Java Servlet container";
-    license = stdenv.lib.licenses.cddl;
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.rickynils ];
-  };
-}
diff --git a/nixpkgs/pkgs/servers/jellyfin/default.nix b/nixpkgs/pkgs/servers/jellyfin/default.nix
index d41c94eee562..9be9a1ec06c2 100644
--- a/nixpkgs/pkgs/servers/jellyfin/default.nix
+++ b/nixpkgs/pkgs/servers/jellyfin/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "jellyfin";
-  version = "10.3.2";
+  version = "10.3.3";
 
   # Impossible to build anything offline with dotnet
   src = fetchurl {
     url = "https://github.com/jellyfin/jellyfin/releases/download/v${version}/jellyfin_${version}_portable.tar.gz";
-    sha256 = "0cwmaq61xhdb34f53m2vhnw8v4zrj266vjzfdm106gyychpr46vz";
+    sha256 = "197bmr9y13rxms1bwm4infrv0dzbv9qqw67lb1alskmpp0vjg3s7";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/servers/mxisd/0001-gradle.patch b/nixpkgs/pkgs/servers/mxisd/0001-gradle.patch
index 55ff6ead22d4..8a9f5a81180b 100644
--- a/nixpkgs/pkgs/servers/mxisd/0001-gradle.patch
+++ b/nixpkgs/pkgs/servers/mxisd/0001-gradle.patch
@@ -1,19 +1,19 @@
---- a/build.gradle	2018-11-16 15:15:29.021469758 +0100
-+++ b/build.gradle	2018-11-16 15:16:50.982289782 +0100
-@@ -64,7 +64,7 @@
+--- a/build.gradle	2019-05-16 21:09:08.373112953 +0200
++++ b/build.gradle	2019-05-16 21:09:37.093114427 +0200
+@@ -72,7 +72,7 @@
  
  buildscript {
      repositories {
--        mavenCentral()
-+    REPLACE
+-        jcenter()
++REPLACE
      }
  
      dependencies {
-@@ -73,9 +73,7 @@
+@@ -81,9 +81,7 @@
  }
  
  repositories {
--    mavenCentral()
+-    jcenter()
 -    maven { url "https://kamax.io/maven/releases/" }
 -    maven { url "https://kamax.io/maven/snapshots/" }
 +REPLACE
diff --git a/nixpkgs/pkgs/servers/mxisd/default.nix b/nixpkgs/pkgs/servers/mxisd/default.nix
index 0d3bc4f3e08b..9d26ecb6ab16 100644
--- a/nixpkgs/pkgs/servers/mxisd/default.nix
+++ b/nixpkgs/pkgs/servers/mxisd/default.nix
@@ -1,22 +1,22 @@
-{ stdenv, fetchFromGitHub, jdk, jre, git, gradle_2_5, perl, makeWrapper, writeText }:
+{ stdenv, fetchFromGitHub, jdk, jre, git, gradle_4_10, perl, makeWrapper, writeText }:
 
 let
   name = "mxisd-${version}";
-  version = "1.2.0";
-  rev = "8c4ddd2e6526c1d2b284ba88cce3c2b926d99c62";
+  version = "1.4.3";
+  rev = "cd890d114a46e4a3792c57cc7a35b95b2c466a16";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "kamax-matrix";
     repo = "mxisd";
-    sha256 = "083plqg0rxsqwzyskin78wkmylhb7cqz37lpsa1zy56sxpdw1a3l";
+    sha256 = "05plcf6bq19fmx528fgnib4bw9gz36irwlnfsykys1bpmi60wj69";
   };
 
 
   deps = stdenv.mkDerivation {
     name = "${name}-deps";
     inherit src;
-    nativeBuildInputs = [ gradle_2_5 perl git ];
+    nativeBuildInputs = [ gradle_4_10 perl git ];
 
     buildPhase = ''
       export MXISD_BUILD_VERSION=${rev}
@@ -35,13 +35,13 @@ let
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "0shshn05nzv23shry1xpcgvqg59gx929n0qngpfjhbq0kp7px68m";
+    outputHash = "0z9f3w7lfdvbk26kyckpbgas7mi98rjghck9w0kvx3r7k48p5vnv";
   };
 
 in
 stdenv.mkDerivation {
   inherit name src version;
-  nativeBuildInputs = [ gradle_2_5 perl makeWrapper ];
+  nativeBuildInputs = [ gradle_4_10 perl makeWrapper ];
   buildInputs = [ jre ];
 
   patches = [ ./0001-gradle.patch ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix
new file mode 100644
index 000000000000..de3cde8120d6
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, postgresql, zeromq, openssl }:
+
+if stdenv.lib.versionOlder postgresql.version "10"
+then throw "PipelineDB not supported for PostgreSQL ${postgresql.version}"
+else
+stdenv.mkDerivation rec {
+  pname = "pipelinedb";
+  version = "1.0.0-13";
+
+  src = fetchFromGitHub {
+    owner = "pipelinedb";
+    repo = pname;
+    rev = version;
+    sha256 = "1mnqpvx6g1r2n4kjrrx01vbdx7kvndfsbmm7zbzizjnjlyixz75f";
+  };
+
+  buildInputs = [ postgresql openssl zeromq ];
+
+  makeFlags = [ "USE_PGXS=1" ];
+
+  preConfigure = ''
+    substituteInPlace Makefile \
+      --replace "/usr/lib/libzmq.a" "${zeromq}/lib/libzmq.a"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -D -t $out/lib/ pipelinedb.so
+    install -D -t $out/share/extension {pipelinedb-*.sql,pipelinedb.control}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "High-performance time-series aggregation for PostgreSQL";
+    homepage = https://www.pipelinedb.com/;
+    license = licenses.asl20;
+    platforms = postgresql.meta.platforms;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/packages.nix b/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
index e5f29dc7d57c..60faa2db2407 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
@@ -31,6 +31,8 @@ self: super: {
 
     pgtap = super.callPackage ./ext/pgtap.nix { };
 
+    pipelinedb = super.callPackage ./ext/pipelinedb.nix { };
+
     timescaledb = super.callPackage ./ext/timescaledb.nix { };
 
     tsearch_extras = super.callPackage ./ext/tsearch_extras.nix { };
diff --git a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
index 9a2e71e5a401..4a705d52cd11 100644
--- a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -4,13 +4,13 @@
 { stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  version = "2019-05-11";
+  version = "2019-05-19";
   name = "oh-my-zsh-${version}";
-  rev = "486fa1010df847bfd8823b4492623afc7c935709";
+  rev = "f960e2be6f01abe5f185d668be661b57051322ac";
 
   src = fetchgit { inherit rev;
     url = "https://github.com/robbyrussell/oh-my-zsh";
-    sha256 = "097n64xzdqgqdbgcqnzsk0s9r9yn8ncqbixbsxgpcj29x9hi1dkn";
+    sha256 = "1amn72cx9ay4kd707y8kxfvgq5mlqhvlvha28aai2gxcravb95vn";
   };
 
   pathsToLink = [ "/share/oh-my-zsh" ];
diff --git a/nixpkgs/pkgs/stdenv/adapters.nix b/nixpkgs/pkgs/stdenv/adapters.nix
index 7823d6413442..a384e5470e48 100644
--- a/nixpkgs/pkgs/stdenv/adapters.nix
+++ b/nixpkgs/pkgs/stdenv/adapters.nix
@@ -128,7 +128,7 @@ rec {
      with the following function:
 
      isFree = license: with builtins;
-       if isNull license then true
+       if license == null then true
        else if isList license then lib.all isFree license
        else license != "non-free" && license != "unfree";
 
diff --git a/nixpkgs/pkgs/stdenv/darwin/default.nix b/nixpkgs/pkgs/stdenv/darwin/default.nix
index 3c3917c827e2..20062bba8ee6 100644
--- a/nixpkgs/pkgs/stdenv/darwin/default.nix
+++ b/nixpkgs/pkgs/stdenv/darwin/default.nix
@@ -81,7 +81,7 @@ in rec {
         bintools     = { name = "${name}-binutils"; outPath = bootstrapTools; };
       };
 
-      cc = if isNull last then "/dev/null" else import ../../build-support/cc-wrapper {
+      cc = if last == null then "/dev/null" else import ../../build-support/cc-wrapper {
         inherit shell;
         inherit (last) stdenvNoCC;
 
diff --git a/nixpkgs/pkgs/stdenv/linux/default.nix b/nixpkgs/pkgs/stdenv/linux/default.nix
index 2bccd620436a..390c7f1123ec 100644
--- a/nixpkgs/pkgs/stdenv/linux/default.nix
+++ b/nixpkgs/pkgs/stdenv/linux/default.nix
@@ -96,7 +96,7 @@ let
           inherit system;
         };
 
-        cc = if isNull prevStage.gcc-unwrapped
+        cc = if prevStage.gcc-unwrapped == null
              then null
              else lib.makeOverridable (import ../../build-support/cc-wrapper) {
           name = "${name}-gcc-wrapper";
diff --git a/nixpkgs/pkgs/tools/X11/alttab/default.nix b/nixpkgs/pkgs/tools/X11/alttab/default.nix
new file mode 100644
index 000000000000..4efd86ca63fa
--- /dev/null
+++ b/nixpkgs/pkgs/tools/X11/alttab/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, pkgconfig, ronn, libpng, uthash
+, xorg }:
+
+stdenv.mkDerivation rec {
+  version = "1.4.0";
+
+  pname = "alttab";
+
+  src = fetchFromGitHub {
+    owner = "sagb";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "028ifp54yl3xq5mj2ww9baga8p56nmrx4ypvj8k35akcaxdpyga9";
+  };
+
+  nativeBuildInputs = [ 
+    autoconf
+    automake
+    pkgconfig
+    ronn
+  ];
+
+  preConfigure = "./bootstrap.sh";
+
+  buildInputs = [
+    libpng
+    uthash
+    xorg.libX11
+    xorg.libXft
+    xorg.libXmu
+    xorg.libXpm
+    xorg.libXrandr
+    xorg.libXrender
+  ];
+
+  enableParallelBuild = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/sagb/alttab;
+    description = "X11 window switcher designed for minimalistic window managers or standalone X11 session";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.sgraf ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/analog/default.nix b/nixpkgs/pkgs/tools/admin/analog/default.nix
index c6135e8d143f..d0731c1f5996 100644
--- a/nixpkgs/pkgs/tools/admin/analog/default.nix
+++ b/nixpkgs/pkgs/tools/admin/analog/default.nix
@@ -1,38 +1,38 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-
-  name = "analog-6.0.13";
-
-  buildInputs = [ unzip ];
-
-  src = fetchurl {
-    url = "http://www.c-amie.co.uk/static/analog/6013/analog-src-6013ce.zip";
-    sha256 = "1njfsclmxk8sn1i07k3qfk8fmsnz7qw9kmydk3bil7qjf4ngmzc6";
+  pname = "analog";
+  version = "6.0.15";
+
+  src = fetchFromGitHub {
+    owner = "c-amie";
+    repo = "analog-ce";
+    rev = version;
+    sha256 = "1clrx2xr3n5zh6gaavvdxkc127hayssxrplrd2qvw70givywza0m";
   };
 
   configurePhase = ''
     sed -i src/anlghead.h \
       -e "s|#define DEFAULTCONFIGFILE .*|#define DEFAULTCONFIGFILE \"$out/etc/analog.cfg\"|g" \
-      -e "s|#define LANGDIR .*|#define LANGDIR \"$out/share/${name}/lang/\"|g"
+      -e "s|#define LANGDIR .*|#define LANGDIR \"$out/share/$pname}/lang/\"|g"
   '';
 
   installPhase = ''
-    mkdir -p $out/bin $out/etc $out/share/doc/${name} $out/share/man/man1 $out/share/${name}
+    mkdir -p $out/bin $out/etc $out/share/doc/$pname $out/share/man/man1 $out/share/$pname
     mv analog $out/bin/
     cp examples/big.cfg $out/etc/analog.cfg
     mv analog.man $out/share/man/man1/analog.1
-    mv docs $out/share/doc/${name}/manual
-    mv how-to $out/share/doc/${name}/
-    mv lang images examples $out/share/${name}/
+    mv docs $out/share/doc/$pname/manual
+    mv how-to $out/share/doc/$pname/
+    mv lang images examples $out/share/$pname/
   '';
 
   meta = {
-    homepage = https://www.c-amie.co.uk/software/analog/;
-    license = stdenv.lib.licenses.gpl2;
+    homepage = "https://www.c-amie.co.uk/software/analog/";
+    license = lib.licenses.gpl2;
     description = "Powerful tool to generate web server statistics";
-    maintainers = [ stdenv.lib.maintainers.peti ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ lib.maintainers.peti ];
+    platforms = lib.platforms.linux;
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/compression/lz4/default.nix b/nixpkgs/pkgs/tools/compression/lz4/default.nix
index 3ca56e91a9ec..3f2497cd8d22 100644
--- a/nixpkgs/pkgs/tools/compression/lz4/default.nix
+++ b/nixpkgs/pkgs/tools/compression/lz4/default.nix
@@ -1,18 +1,26 @@
-{ stdenv, fetchFromGitHub, valgrind
+{ stdenv, fetchFromGitHub, valgrind, fetchpatch
 , enableStatic ? false, enableShared ? true
 }:
 
 stdenv.mkDerivation rec {
-  name = "lz4-${version}";
+  pname = "lz4";
   version = "1.9.1";
 
   src = fetchFromGitHub {
     sha256 = "1l1caxrik1hqs40vj3bpv1pikw6b74cfazv5c0v6g48zpcbmshl0";
     rev = "v${version}";
-    repo = "lz4";
-    owner = "lz4";
+    repo = pname;
+    owner = pname;
   };
 
+  patches = [
+    # Fix detection of Darwin
+    (fetchpatch {
+      url = "https://github.com/lz4/lz4/commit/024216ef7394b6411eeaa5b52d0cec9953a44249.patch";
+      sha256 = "0j0j2pr6pkplxf083hlwl5q4cfp86q3wd8mc64bcfcr7ysc5pzl3";
+    })
+  ];
+
   outputs = [ "out" "dev" ];
 
   buildInputs = stdenv.lib.optional doCheck valgrind;
diff --git a/nixpkgs/pkgs/tools/filesystems/android-file-transfer/default.nix b/nixpkgs/pkgs/tools/filesystems/android-file-transfer/default.nix
index 6441ae5dbd1b..015408351fde 100644
--- a/nixpkgs/pkgs/tools/filesystems/android-file-transfer/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/android-file-transfer/default.nix
@@ -1,22 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, cmake, fuse, readline, pkgconfig, qtbase }:
+{ stdenv, fetchFromGitHub, cmake, fuse, readline, pkgconfig, qtbase }:
 
 stdenv.mkDerivation rec {
-  name = "android-file-transfer-${version}";
-  version = "3.7";
+  pname = "android-file-transfer";
+  version = "3.8";
+
   src = fetchFromGitHub {
     owner = "whoozle";
     repo = "android-file-transfer-linux";
     rev = "v${version}";
-    sha256 = "0a388pqc0azgn0wy85wb1mjk3b5zb6vcr58l4warwfzhca400zn0";
+    sha256 = "0sym33a0ccdka2cpzv003n2xniid70z0gkjxx93gd2bajkgs9ggc";
   };
-  buildInputs = [ cmake fuse readline pkgconfig qtbase ];
-  buildPhase = ''
-    cmake .
-    make
-  '';
-  installPhase = ''
-    make install
-  '';
+
+  nativeBuildInputs = [ cmake readline pkgconfig ];
+  buildInputs = [ fuse qtbase ];
+
   meta = with stdenv.lib; {
     description = "Reliable MTP client with minimalistic UI";
     homepage = https://whoozle.github.io/android-file-transfer-linux/;
diff --git a/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix b/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
index c33ae4e8304a..72e514fff6b0 100644
--- a/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
@@ -3,12 +3,12 @@
 
 stdenv.mkDerivation rec {
   pname = "bcachefs-tools";
-  version = "2019-04-04";
+  version = "2019-05-08";
 
   src = fetchgit {
     url = "https://evilpiepirate.org/git/bcachefs-tools.git";
-    rev = "d13bbb2955f899f10be4ab315ad229d2951fdcda";
-    sha256 = "0cjy12qjd572sbg8h4i18fn001p6a6ahc4ljwids58nv83q99ll3";
+    rev = "93bdfcb2105afe7a45d512984b855ce97937cfc1";
+    sha256 = "125kjf66h9m31xvsanail1i10h4xld4fpv9gs9liqq91hdh0myyj";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix b/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix
new file mode 100644
index 000000000000..46635aa67412
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, makeWrapper, ncurses, readline, ronn }:
+
+stdenv.mkDerivation rec {
+
+  pname = "cpcfs";
+  version = "0.85.4";
+  
+  src = fetchFromGitHub {
+    owner = "derikz";
+    repo = "cpcfs";
+    rev = "v${version}";
+    sha256 = "0rfbry0qy8mv746mzk9zdfffkdgq4w7invgb5cszjma2cp83q3i2";
+  };
+
+  sourceRoot = "source/src";
+
+  nativeBuildInputs = [ makeWrapper ncurses readline ronn ];
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace '-ltermcap' '-lncurses' \
+      --replace '-L /usr/lib/termcap' ' '
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    mkdir -p $out/man/man1
+    cp cpcfs $out/bin
+    ronn --roff ../template.doc --pipe > $out/man/man1/cpcfs.1
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Manipulating CPC dsk images and files";
+    homepage = "https://github.com/derikz/cpcfs/" ;
+    license = licenses.bsd2;
+    maintainers = [ maintainers.genesis ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/idsk/default.nix b/nixpkgs/pkgs/tools/filesystems/idsk/default.nix
index 617457f55b61..72ed4f0ee1b4 100644
--- a/nixpkgs/pkgs/tools/filesystems/idsk/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/idsk/default.nix
@@ -2,23 +2,14 @@
 
 stdenv.mkDerivation rec {
 
-  repo = "idsk";
-  version = "unstable-2018-02-11";
-  rev = "1846729ac3432aa8c2c0525be45cfff8a513e007";
-  name = "${repo}-${version}";
-
-  meta = with stdenv.lib; {
-    description = "Manipulating CPC dsk images and files";
-    homepage = https://github.com/cpcsdk/idsk ;
-    license = "unknown";
-    maintainers = [ maintainers.genesis ];
-    platforms = platforms.linux;
-  };
+  pname = "idsk";
+  version = "0.19";
 
   src = fetchFromGitHub {
-    inherit rev repo;
+    repo = "idsk";
     owner = "cpcsdk";
-    sha256 = "0d891lvf2nc8bys8kyf69k54rf3jlwqrcczbff8xi0w4wsiy5ckv";
+    rev = "v${version}";
+    sha256 = "0b4my5cz5kbzh4n65jr721piha6zixaxmfiss2zidip978k9rb6f";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -27,4 +18,12 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cp iDSK $out/bin
   '';
+
+  meta = with stdenv.lib; {
+    description = "Manipulating CPC dsk images and files";
+    homepage = "https://github.com/cpcsdk/idsk" ;
+    license = licenses.mit;
+    maintainers = [ maintainers.genesis ];
+    platforms = platforms.linux;
+  };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix b/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix
index 3a8d1d646be8..4d28869d1602 100644
--- a/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/mergerfs/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, automake, autoconf, pkgconfig, gettext, libtool, pandoc, which, attr, libiconv }:
 
 stdenv.mkDerivation rec {
-  name = "mergerfs-${version}";
-  version = "2.25.1";
+  pname = "mergerfs";
+  version = "2.26.1";
 
   src = fetchFromGitHub {
     owner = "trapexit";
-    repo = "mergerfs";
+    repo = pname;
     rev = version;
-    sha256 = "1xrd18spp3wj25dd8513bah856w44gw8hilk190v13g6yafx64n6";
+    sha256 = "16dgm2n36n6k7s1nzprzsv5bdckk0x2s08qpcvc42ny6jbivpjn3";
   };
 
   nativeBuildInputs = [
@@ -17,21 +17,20 @@ stdenv.mkDerivation rec {
   buildInputs = [ attr libiconv ];
 
   preConfigure = ''
-    cat > src/version.hpp <<EOF
-    #pragma once
-    static const char MERGERFS_VERSION[] = "${version}";
-    EOF
+    echo "${version}" > VERSION
   '';
 
-  makeFlags = [ "PREFIX=$(out)" "XATTR_AVAILABLE=1" ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" "XATTR_AVAILABLE=1" ];
+  enableParallelBuilding = true;
 
   postFixup = ''
-    ln -s $out/bin/mergerfs $out/bin/mount.fuse.mergerfs
+    ln -srf $out/bin/mergerfs $out/bin/mount.fuse.mergerfs
+    ln -srf $out/bin/mergerfs $out/bin/mount.mergerfs
   '';
 
   meta = {
     description = "A FUSE based union filesystem";
-    homepage = https://github.com/trapexit/mergerfs;
+    homepage = "https://github.com/trapexit/mergerfs";
     license = stdenv.lib.licenses.isc;
     platforms = stdenv.lib.platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ jfrankenau makefu ];
diff --git a/nixpkgs/pkgs/tools/filesystems/mergerfs/tools.nix b/nixpkgs/pkgs/tools/filesystems/mergerfs/tools.nix
index 01f0de25a900..44337cf11619 100644
--- a/nixpkgs/pkgs/tools/filesystems/mergerfs/tools.nix
+++ b/nixpkgs/pkgs/tools/filesystems/mergerfs/tools.nix
@@ -2,14 +2,14 @@
 , rsync, python3, pythonPackages }:
 
 stdenv.mkDerivation rec {
-  name = "mergerfs-tools-${version}";
-  version = "20171221";
+  pname = "mergerfs-tools";
+  version = "20190411";
 
   src = fetchFromGitHub {
     owner = "trapexit";
-    repo = "mergerfs-tools";
-    rev = "9b4fe0097b5b51e1a7411a26eb344a24cc8ce1b4";
-    sha256 = "0qrixh3j58gzkmc8r2sgzgy56gm8bmhakwlc2gjb0yrpa1213na1";
+    repo = pname;
+    rev = "6e41fc5848c7cc4408caea86f3991c8cc2ac85a1";
+    sha256 = "0izswg6bya13scvb37l3gkl7mvi8q7l11p4hp4phdlcwh9jvdzcj";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "INSTALL=${coreutils}/bin/install"
-    "PREFIX=$(out)"
+    "PREFIX=${placeholder "out"}"
   ];
 
   postInstall = with stdenv.lib; ''
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Optional tools to help manage data in a mergerfs pool";
-    homepage = https://github.com/trapexit/mergerfs-tools;
+    homepage = "https://github.com/trapexit/mergerfs-tools";
     license = licenses.isc;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jfrankenau ];
diff --git a/nixpkgs/pkgs/tools/filesystems/yandex-disk/default.nix b/nixpkgs/pkgs/tools/filesystems/yandex-disk/default.nix
index 6acb034d75b6..3b9e4a021080 100644
--- a/nixpkgs/pkgs/tools/filesystems/yandex-disk/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/yandex-disk/default.nix
@@ -4,18 +4,18 @@ let
   p = if stdenv.is64bit then {
       arch = "x86_64";
       gcclib = "${stdenv.cc.cc.lib}/lib64";
-      sha256 = "1skbzmrcjbw00a3jnbl2llqwz3ahsgvq74mjav68s2hw1wjidvk6";
+      sha256 = "1hxsizk3hm1465wkxwdbbcffgi3r64y3r0zsfzsvhvnzx4y5dadm";
     }
     else {
       arch = "i386";
       gcclib = "${stdenv.cc.cc.lib}/lib";
-      sha256 = "09h71i3k9d24ki81jdwhnav63fqbc44glbx228s9g3cr4ap41jcx";
+      sha256 = "1s829q8gy9xgz0jm7w70aljqs2h49x402blqfr9zvn806aprmrm5";
     };
 in
 stdenv.mkDerivation rec {
 
   name = "yandex-disk-${version}";
-  version = "0.1.5.978";
+  version = "0.1.5.1010";
 
   src = fetchurl {
     url = "https://repo.yandex.ru/yandex-disk/rpm/stable/${p.arch}/${name}-1.fedora.${p.arch}.rpm";
diff --git a/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix b/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix
new file mode 100644
index 000000000000..be47d42dc89f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, python3 }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+  pname = "adafruit-ampy";
+  version = "1.0.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1dz5sksalccv4c3bzk3c1jxpg3s28lwlw8hfwc9dfxhw3a1np3fd";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ click python-dotenv pyserial ];
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/pycampers/ampy";
+    license = licenses.mit;
+    description = "Utility to interact with a MicroPython board over a serial connection.";
+    maintainers = with maintainers; [ etu ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/getopt/builder.sh b/nixpkgs/pkgs/tools/misc/getopt/builder.sh
deleted file mode 100644
index a220ad0c66fb..000000000000
--- a/nixpkgs/pkgs/tools/misc/getopt/builder.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-source $stdenv/setup
-installFlags="prefix=$out"
-makeFlags="CFLAGS=-DWITHOUT_GETTEXT LIBCGETOPT=0"
-genericBuild
diff --git a/nixpkgs/pkgs/tools/misc/getopt/default.nix b/nixpkgs/pkgs/tools/misc/getopt/default.nix
index 8221bec6ccab..62414a604756 100644
--- a/nixpkgs/pkgs/tools/misc/getopt/default.nix
+++ b/nixpkgs/pkgs/tools/misc/getopt/default.nix
@@ -1,15 +1,19 @@
 {stdenv, fetchurl}:
 
-stdenv.mkDerivation {
-  name = "getopt-1.1.4";
-  builder = ./builder.sh;
+stdenv.mkDerivation rec {
+  pname = "getopt";
+  version = "1.1.6";
   src = fetchurl {
-    url = http://tarballs.nixos.org/getopt-1.1.4.tar.gz;
-    sha256 = "1arvjfzw6p310zbgv629w5hkyslrj44imf3r3s2r4ry2jfcks221";
+    url = "http://frodo.looijaard.name/system/files/software/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "1zn5kp8ar853rin0ay2j3p17blxy16agpp8wi8wfg4x98b31vgyh";
   };
-  preBuild = ''
-    export buildFlags=CC="$CC" # for darwin
-  '';
+
+  makeFlags = [
+    "WITHOUT_GETTEXT=1"
+    "LIBCGETOPT=0"
+    "prefix=${placeholder "out"}"
+    "CC:=$(CC)"
+  ];
 
   meta = {
     platforms = stdenv.lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/misc/memtest86+/default.nix b/nixpkgs/pkgs/tools/misc/memtest86+/default.nix
index 7bebc26d7ec2..b1d1971c75c7 100644
--- a/nixpkgs/pkgs/tools/misc/memtest86+/default.nix
+++ b/nixpkgs/pkgs/tools/misc/memtest86+/default.nix
@@ -1,23 +1,15 @@
 { stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  name = "memtest86+-5.01+coreboot-20180113";
+  pname = "memtest86+";
+  version = "5.01-coreboot-002";
 
   src = fetchgit {
-    url = "https://review.coreboot.org/memtest86plus";
-    rev = "5ca4eb9544e51254254d09ae6e70f93403469ec3";
-    sha256 = "08m4rjr0chhhb1whgggknz926zv9hm8bisnxqp8lffqiwhb55rgk";
+    url = "https://review.coreboot.org/memtest86plus.git";
+    rev = "v002";
+    sha256 = "0cwx20yja24bfknqh1rjb5rl2c0kwnppzsisg1dibbak0l8mxchk";
   };
 
-  preBuild = ''
-    # Really dirty hack to get Memtest to build without needing a Glibc
-    # with 32-bit libraries and headers.
-    if test "$system" = x86_64-linux; then
-        mkdir gnu
-        touch gnu/stubs-32.h
-    fi
-  '';
-
   NIX_CFLAGS_COMPILE = "-I. -std=gnu90";
 
   hardeningDisable = [ "all" ];
@@ -27,13 +19,11 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails
 
   installPhase = ''
-    mkdir -p $out
-    chmod -x memtest.bin
-    cp memtest.bin $out/
+    install -Dm0444 -t $out/ memtest.bin
   '';
 
   meta = {
-    homepage = http://www.memtest.org/;
+    homepage = "http://www.memtest.org/";
     description = "A tool to detect memory errors";
     license = stdenv.lib.licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/nixpkgs/pkgs/tools/misc/memtest86/default.nix b/nixpkgs/pkgs/tools/misc/memtest86/default.nix
deleted file mode 100644
index 2e364e33fc68..000000000000
--- a/nixpkgs/pkgs/tools/misc/memtest86/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation {
-  name = "memtest86-4.3.6";
-  
-  src = fetchurl {
-    url = https://www.memtest86.com/downloads/memtest86-4.3.6-src.tar.gz;
-    sha256 = "0qbksyl2hmkm12n7zbmf2m2n3q811skhykxx6a9a7y6r7k8y5qmv";
-  };
-
-  preBuild = ''
-    # Really dirty hack to get Memtest to build without needing a Glibc
-    # with 32-bit libraries and headers.
-    if test "$system" = x86_64-linux; then
-        mkdir gnu
-        touch gnu/stubs-32.h
-    fi
-  '';
-
-  NIX_CFLAGS_COMPILE = "-I.";
-  
-  installPhase = ''
-    mkdir -p $out
-    cp memtest.bin $out/
-  '';
-
-  meta = {
-    homepage = http://memtest86.com/;
-    description = "A tool to detect memory errors, to be run from a bootloader";
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/nyancat/default.nix b/nixpkgs/pkgs/tools/misc/nyancat/default.nix
new file mode 100644
index 000000000000..47a91915c431
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/nyancat/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "nyancat";
+  version = "1.5.2";
+
+  src = fetchFromGitHub {
+    owner = "klange";
+    repo = "nyancat";
+    rev = version;
+    sha256 = "1mg8nm5xzcq1xr8cvx24ym2vmafkw53rijllwcdm9miiz0p5ky9k";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace /usr/bin "$out/bin" \
+      --replace /usr/share "$out/share"
+  '';
+
+  preInstall = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/man/man1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Nyancat in your terminal, rendered through ANSI escape sequences.";
+    homepage = https://nyancat.dakko.us;
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ midchildan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/dnstracer/default.nix b/nixpkgs/pkgs/tools/networking/dnstracer/default.nix
index 5e2b27c6516c..5261fdb18960 100644
--- a/nixpkgs/pkgs/tools/networking/dnstracer/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnstracer/default.nix
@@ -1,18 +1,25 @@
-{ stdenv, fetchurl, libresolv }:
+{ stdenv, fetchurl, libresolv, perl }:
 
 stdenv.mkDerivation rec {
-  version = "1.9";
-  name = "dnstracer-${version}";
+  version = "1.10";
+  pname = "dnstracer";
 
   src = fetchurl {
-    url = "https://www.mavetju.org/download/${name}.tar.gz";
-    sha256 = "177y58smnq2xhx9lbmj1gria371iv3r1d132l2gjvflkjsphig1f";
+    url = "https://www.mavetju.org/download/${pname}-${version}.tar.bz2";
+    sha256 = "089bmrjnmsga2n0r4xgw4bwbf41xdqsnmabjxhw8lngg2pns1kb4";
   };
 
   outputs = [ "out" "man" ];
 
+  nativeBuildInputs = [ perl /* for pod2man */ ];
+
   setOutputFlags = false;
 
+  installPhase = ''
+    install -Dm755 -t $out/bin dnstracer
+    install -Dm755 -t $man/share/man/man8 dnstracer.8
+  '';
+
   buildInputs = [] ++ stdenv.lib.optionals stdenv.isDarwin [ libresolv ];
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lresolv";
diff --git a/nixpkgs/pkgs/tools/networking/horst/default.nix b/nixpkgs/pkgs/tools/networking/horst/default.nix
index c7d06274bea0..ba76c37a4bba 100644
--- a/nixpkgs/pkgs/tools/networking/horst/default.nix
+++ b/nixpkgs/pkgs/tools/networking/horst/default.nix
@@ -2,25 +2,19 @@
 
 stdenv.mkDerivation rec {
   name = "horst-${version}";
-  version = "5.0";
+  version = "5.1";
 
   src = fetchFromGitHub {
     owner = "br101";
     repo = "horst";
-    rev = "version-${version}";
-    sha256 = "0m7gc6dj816z8wyq5bdkqj7fw6rmxaah84s34ncsaispz2llva1x";
+    rev = "v${version}";
+    sha256 = "140pyv6rlsh4c745w4b59pz3hrarr39qq3mz9z1lsd3avc12nx1a";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ ncurses libnl ];
 
-  installPhase = ''
-    mkdir -p $out/bin
-    mv horst $out/bin
-
-    mkdir -p $out/man/man1
-    cp horst.1 $out/man/man1
-  '';
+  installFlags = [ "DESTDIR=${placeholder "out"}" ];
 
   meta = with stdenv.lib; {
     description = "Small and lightweight IEEE802.11 wireless LAN analyzer with a text interface";
diff --git a/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix b/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix
index 88b4b7fab88f..82b961b6a12a 100644
--- a/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix
@@ -28,8 +28,8 @@ let
     };
 in {
   miniupnpc_2 = generic {
-    version = "2.1";
-    sha256 = "1ik440yspbp3clr4m01xsl9skwyrzcvzb5nbm3i0g9x53vhbb7z1";
+    version = "2.1.20190408";
+    sha256 = "1v0l2m8j7r6jiy871d6v11ls243xqn6s3856iwd3bmk5c37npi50";
   };
   miniupnpc_1 = generic {
     version = "1.9.20160209";
diff --git a/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix b/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
index f3cd9ea6a819..f65c0c63370b 100644
--- a/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
@@ -6,11 +6,11 @@ let
   scriptBinEnv = lib.makeBinPath [ which iproute iptables gnused coreutils gawk ];
 in
 stdenv.mkDerivation rec {
-  name = "miniupnpd-2.1";
+  name = "miniupnpd-2.1.20190502";
 
   src = fetchurl {
     url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
-    sha256 = "1hg0zzvvzfgpnmngmd3ffnsk9x18lwlxlpw5jgh7y6b1jrvr824m";
+    sha256 = "1m8d0g9b0bjwsnqccw1yapp6n0jghmgzwixwjflwmvi2fi6hdp4b";
     name = "${name}.tar.gz";
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/default.nix b/nixpkgs/pkgs/tools/networking/network-manager/default.nix
index 79913d439687..f6077b8c2f83 100644
--- a/nixpkgs/pkgs/tools/networking/network-manager/default.nix
+++ b/nixpkgs/pkgs/tools/networking/network-manager/default.nix
@@ -61,13 +61,6 @@ in stdenv.mkDerivation rec {
     # Meson does not support using different directories during build and
     # for installation like Autotools did with flags passed to make install.
     ./fix-install-paths.patch
-
-    # Our gobject-introspection patches make the shared library paths absolute
-    # in the GIR files. When building docs, the library is not yet installed,
-    # though, so we need to replace the absolute path with a local one during build.
-    # We are replacing the variables in postPatch since substituteAll does not support
-    # placeholders.
-    ./fix-docs-build.patch
   ];
 
   buildInputs = [
@@ -91,10 +84,15 @@ in stdenv.mkDerivation rec {
   postPatch = ''
     patchShebangs ./tools
     patchShebangs libnm/generate-setting-docs.py
+  '';
 
-    substituteInPlace libnm/meson.build \
-      --subst-var-by DOCS_LD_PRELOAD "${libredirect}/lib/libredirect.so" \
-      --subst-var-by DOCS_NIX_REDIRECTS "${placeholder "out"}/lib/libnm.so.0=$PWD/build/libnm/libnm.so.0"
+  preBuild = ''
+    # Our gobject-introspection patches make the shared library paths absolute
+    # in the GIR files. When building docs, the library is not yet installed,
+    # though, so we need to replace the absolute path with a local one during build.
+    # We are using a symlink that will be overridden during installation.
+    mkdir -p ${placeholder "out"}/lib
+    ln -s $PWD/libnm/libnm.so.0 ${placeholder "out"}/lib/libnm.so.0
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/fix-docs-build.patch b/nixpkgs/pkgs/tools/networking/network-manager/fix-docs-build.patch
deleted file mode 100644
index 45e18c42fbe1..000000000000
--- a/nixpkgs/pkgs/tools/networking/network-manager/fix-docs-build.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libnm/meson.build
-+++ b/libnm/meson.build
-@@ -262,6 +262,8 @@
-     'env', '-i',
-     'GI_TYPELIB_PATH=' + gi_typelib_path,
-     'LD_LIBRARY_PATH=' + ld_library_path,
-+    'LD_PRELOAD=' + '@DOCS_LD_PRELOAD@',
-+    'NIX_REDIRECTS=' + '@DOCS_NIX_REDIRECTS@',
-   ]
- 
-   name = 'nm-property-docs.xml'
diff --git a/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix b/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
index 89d6a9b454da..686bb1d7ebf3 100644
--- a/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, patchelfUnstable }:
 
 with stdenv.lib;
 
@@ -24,13 +24,18 @@ stdenv.mkDerivation {
 
   sourceRoot = ".";
 
+  nativeBuildInputs = [ patchelfUnstable ];
+
   unpackPhase = "cp $src ngrok";
 
   buildPhase = "chmod a+x ngrok";
 
   installPhase = ''
     install -D ngrok $out/bin/ngrok
-  '';
+
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+              $out/bin/ngrok
+    '';
 
   passthru.updateScript = ./update.sh;
 
diff --git a/nixpkgs/pkgs/tools/networking/ngrok-2/versions.json b/nixpkgs/pkgs/tools/networking/ngrok-2/versions.json
index 3d7aa8a56b6c..591e54a6f815 100644
--- a/nixpkgs/pkgs/tools/networking/ngrok-2/versions.json
+++ b/nixpkgs/pkgs/tools/networking/ngrok-2/versions.json
@@ -1,32 +1,32 @@
 {
   "linux-386": {
     "sys": "linux-386",
-    "url": "https://bin.equinox.io/a/jqJ2Vvh67gW/ngrok-2.3.18-linux-386",
-    "sha256": "2bebb8f39a3c19ca03eaf786b97c92876216d2297046e85271478edef2cd6404",
-    "version": "2.3.18"
+    "url": "https://bin.equinox.io/a/6i2VnqLBZqg/ngrok-2.3.29-linux-386",
+    "sha256": "c0859f783e66a661dc1490e0cec95dfcce0ae77deaf0aa1838613afcbd8f9451",
+    "version": "2.3.29"
   },
   "linux-amd64": {
     "sys": "linux-amd64",
-    "url": "https://bin.equinox.io/a/ik4d9aurG9/ngrok-2.3.18-linux-amd64",
-    "sha256": "75e19c343a208bf0e2d3b613d2fa3ce67abbf25c04a1d6be670598a4c25c1694",
-    "version": "2.3.18"
+    "url": "https://bin.equinox.io/a/6ws4BqFTLXR/ngrok-2.3.29-linux-amd64",
+    "sha256": "625e85af6d366be4cc54ba296a6e66d3311b99db36e6ea5fe7f88941874daabb",
+    "version": "2.3.29"
   },
   "linux-arm": {
     "sys": "linux-arm",
-    "url": "https://bin.equinox.io/a/c2KRZoJ5cb6/ngrok-2.3.18-linux-arm",
-    "sha256": "af4cdb9f116104921d7fbeeac9124e545a45495b3623b2b46da996400c305d9c",
-    "version": "2.3.18"
+    "url": "https://bin.equinox.io/a/3Qx4EX7AtXt/ngrok-2.3.29-linux-arm",
+    "sha256": "8a2ec453b407bb0983d22819f3b76044100870888cc976fbf76ced18e6f66fa7",
+    "version": "2.3.29"
   },
   "linux-arm64": {
     "sys": "linux-arm64",
-    "url": "https://bin.equinox.io/a/b2NBP9tpq2E/ngrok-2.3.18-linux-arm64",
-    "sha256": "9e5fa5b83dc65803291b59867c664085de248a4adb3d415c4dbba1dae90a0aaf",
-    "version": "2.3.18"
+    "url": "https://bin.equinox.io/a/7qbe9PkG69E/ngrok-2.3.29-linux-arm64",
+    "sha256": "c49a9c95dc0128e8129f9b7291b5049a45d13f27bb309ca8af59e498f98b97d0",
+    "version": "2.3.29"
   },
   "darwin-amd64": {
     "sys": "darwin-amd64",
-    "url": "https://bin.equinox.io/a/879TXbRQQRV/ngrok-2.3.18-darwin-amd64",
-    "sha256": "abb643bdba7ade5dabd60488b866804d814a41d4d7144fa09e01c9260e93659d",
-    "version": "2.3.18"
+    "url": "https://bin.equinox.io/a/eqL9fYWPxoV/ngrok-2.3.29-darwin-amd64",
+    "sha256": "916ad7b4706e4c770eb58667c5beabf227daa1ad35bbbee41883eb2bce3f254b",
+    "version": "2.3.29"
   }
 }
diff --git a/nixpkgs/pkgs/tools/networking/openvpn/default.nix b/nixpkgs/pkgs/tools/networking/openvpn/default.nix
index 3bcb1460a700..732687ecfa15 100644
--- a/nixpkgs/pkgs/tools/networking/openvpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openvpn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig
+{ stdenv, fetchurl, fetchpatch, pkgconfig
 , iproute, lzo, openssl, pam
 , useSystemd ? stdenv.isLinux, systemd ? null, utillinux ? null
 , pkcs11Support ? false, pkcs11helper ? null,
@@ -33,6 +33,13 @@ in stdenv.mkDerivation rec {
                   ++ optional useSystemd systemd
                   ++ optional pkcs11Support pkcs11helper;
 
+  patches = [
+    ( fetchpatch {
+      url = "https://sources.debian.org/data/main/o/openvpn/2.4.7-1/debian/patches/fix-pkcs11-helper-hang.patch";
+      sha256 = "0c8jzbfsmb0mm9f7kkjxac1hk8q6igm267s687vx3mdqs1wys6bm";
+    })
+  ];
+
   configureFlags = optionals stdenv.isLinux [
     "--enable-iproute2"
     "IPROUTE=${iproute}/sbin/ip" ]
diff --git a/nixpkgs/pkgs/tools/networking/ubridge/default.nix b/nixpkgs/pkgs/tools/networking/ubridge/default.nix
index 715a480e28dd..f6afddaba381 100644
--- a/nixpkgs/pkgs/tools/networking/ubridge/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ubridge/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "ubridge-${version}";
-  version = "0.9.15";
+  version = "0.9.16";
 
   src = fetchFromGitHub {
     owner = "GNS3";
     repo = "ubridge";
     rev = "v${version}";
-    sha256 = "0fl07zyall04map6v2l1bclqh8y3rrhsx61s2v0sr8b00j201jg4";
+    sha256 = "1bind7ylgxs743vfdmpdrpp4iamy461bc3i7nxza91kj7hyyjz6h";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/security/b2sum/default.nix b/nixpkgs/pkgs/tools/security/b2sum/default.nix
index f9d2855e739f..16811d8f8897 100644
--- a/nixpkgs/pkgs/tools/security/b2sum/default.nix
+++ b/nixpkgs/pkgs/tools/security/b2sum/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ openmp ];
 
-  buildFlags = [ (optional (isNull openmp) "NO_OPENMP=1") ];
+  buildFlags = [ (optional (openmp == null) "NO_OPENMP=1") ];
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/security/bettercap/default.nix b/nixpkgs/pkgs/tools/security/bettercap/default.nix
index f7e09d54de16..c72bc6d8b9e8 100644
--- a/nixpkgs/pkgs/tools/security/bettercap/default.nix
+++ b/nixpkgs/pkgs/tools/security/bettercap/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, libpcap, libnfnetlink, libnetfilter_queue }:
+{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, libpcap, libnfnetlink, libnetfilter_queue, libusb1 }:
 
 buildGoPackage rec {
-  name = "bettercap-${version}";
-  version = "2.11";
+  pname = "bettercap";
+  version = "2.24";
 
   goPackagePath = "github.com/bettercap/bettercap";
 
   src = fetchFromGitHub {
-    owner = "bettercap";
-    repo = "bettercap";
+    owner = pname;
+    repo = pname;
     rev = "v${version}";
-    sha256 = "08hd7hk0jllfhdiky1f5pfsvl1x0bkgv1p4z9qvsksdg9a7qjznw";
+    sha256 = "1f8bzxbcyf0bpyqj6hz4l8dp5xknnb537xy9y5skcznp03i44h55";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libpcap libnfnetlink libnetfilter_queue ];
+  buildInputs = [ libpcap libnfnetlink libnetfilter_queue libusb1 ];
 
   goDeps = ./deps.nix;
 
diff --git a/nixpkgs/pkgs/tools/security/bettercap/deps.nix b/nixpkgs/pkgs/tools/security/bettercap/deps.nix
index cbfe7c54dad9..ef09a821317e 100644
--- a/nixpkgs/pkgs/tools/security/bettercap/deps.nix
+++ b/nixpkgs/pkgs/tools/security/bettercap/deps.nix
@@ -10,12 +10,39 @@
     };
   }
   {
+    goPackagePath  = "github.com/antchfx/jsonquery";
+    fetch = {
+      type = "git";
+      url = "https://github.com/antchfx/jsonquery";
+      rev =  "a2896be8c82bb2229d1cf26204863180e34b2b31";
+      sha256 = "0mh6v21i3v3sxqjln7vph6wx3sm79p99010in9am1wh7k30rrjl5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/antchfx/xpath";
+    fetch = {
+      type = "git";
+      url = "https://github.com/antchfx/xpath";
+      rev =  "ce1d48779e67a1ddfb380995fe532b2e0015919c";
+      sha256 = "0brd75mhd5ix7rz1ijhbggyp53v6g8kz9bc2n7g6zwavzxarfj5p";
+    };
+  }
+  {
     goPackagePath  = "github.com/bettercap/gatt";
     fetch = {
       type = "git";
       url = "https://github.com/bettercap/gatt";
-      rev =  "66e7446993acb3de936b3f487e5933522ed16923";
-      sha256 = "0hvm59zpbghgw8fq9yr4dd2x3209ii9856qklflkz2ywf7vryjqq";
+      rev =  "fac16c0ad797bbccae1fe4acf49761b98f7516e7";
+      sha256 = "08pyg4caw7lzb230l3k4rwgvn68zz6kmrlsdapaf3wa216pphyd9";
+    };
+  }
+  {
+    goPackagePath  = "github.com/bettercap/nrf24";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bettercap/nrf24";
+      rev =  "aa37e6d0e0eb125cee9ec71ed694db2ad58b509a";
+      sha256 = "1y6ffcj94hk7slajqw3lqpdxzx6iqpj2i2zpsvggg6kfaa1iklnj";
     };
   }
   {
@@ -28,6 +55,15 @@
     };
   }
   {
+    goPackagePath  = "github.com/bettercap/recording";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bettercap/recording";
+      rev =  "3ce1dcf032e391eb321311b34cdf31c6fc9523f5";
+      sha256 = "1arh12iz15anyrqr4q496lpd0gx5nf2cwyr5rv17rawqqz8ydg23";
+    };
+  }
+  {
     goPackagePath  = "github.com/chifflier/nfqueue-go";
     fetch = {
       type = "git";
@@ -50,8 +86,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/elazarl/goproxy";
-      rev =  "f58a169a71a51037728990b2d3597a14f56b525b";
-      sha256 = "103crrh6zwdwcj7j6z63rbm467nff3r1rvpwdk0qj8x275zi45g6";
+      rev =  "9d40249d3c2f14d1a9d75e070a738362adeb5a83";
+      sha256 = "0hpzna9dvs2ff0bj8baz3sc5gg49vqmb0cbi6p061lmwl09cd00i";
     };
   }
   {
@@ -59,8 +95,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/evilsocket/islazy";
-      rev =  "3d8400c74f9dbc626d913e0575cda05d914bea57";
-      sha256 = "0yfqvcxaympfgsda0jhqnaqhbhic2irdjn0h2bppz4misjv6sxn9";
+      rev =  "c5c7a41bb1c20e6df409825ed24af8de5fb7fb70";
+      sha256 = "1ayc4di6584yajybh724mcmng069q38j1dpljgi8fhsyhb4sila3";
     };
   }
   {
@@ -95,17 +131,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/google/gopacket";
-      rev =  "d67ddb98d5a1b7c79a8977ec2d552e1db45eda86";
-      sha256 = "0pk4hddx6fnbbjjgi86vx12xs5d8591dlkx1q5cswc0jghymbplh";
+      rev =  "v1.1.16";
+      sha256 = "1vnjgjz52l1bzrhx70qpvmwandf8v13zhiaj3rdljsphdp5cgadi";
     };
   }
   {
-    goPackagePath  = "github.com/gorilla/context";
+    goPackagePath  = "github.com/google/gousb";
     fetch = {
       type = "git";
-      url = "https://github.com/gorilla/context";
-      rev =  "08b5f424b9271eedf6f9f0ce86cb9396ed337a42";
-      sha256 = "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4";
+      url = "https://github.com/google/gousb";
+      rev =  "64d82086770b8b671e1e7f162372dd37f1f5efba";
+      sha256 = "1kjgg8cdp8wz9rck4nh48pcia741p7a8w2nikhzxsscn0ld33109";
     };
   }
   {
@@ -113,8 +149,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/gorilla/mux";
-      rev =  "e3702bed27f0d39777b0b37b664b6280e8ef8fbf";
-      sha256 = "0pvzm23hklxysspnz52mih6h1q74vfrdhjfm1l3sa9r8hhqmmld2";
+      rev =  "c5c6c98bc25355028a63748a498942a6398ccd22";
+      sha256 = "0im4da3hqxb6zr8g3m640qz234f5gs0a8hqhcz35mkvfqlv48f62";
     };
   }
   {
@@ -127,6 +163,15 @@
     };
   }
   {
+    goPackagePath  = "github.com/hashicorp/mdns";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/mdns";
+      rev =  "06dd1a31b32c42d4d6c2cf8dbce70597d1118f54";
+      sha256 = "185zpyj1jf1jm7hihg73gqnspr0a359aqwv11v4a6mwd5bkdh19j";
+    };
+  }
+  {
     goPackagePath  = "github.com/inconshreveable/go-vhost";
     fetch = {
       type = "git";
@@ -140,8 +185,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/jpillora/go-tld";
-      rev =  "4bfc8d9a90b591e101a56265afc2239359fb0810";
-      sha256 = "04pv1rwpfq3ip3vn0yfixxczcnv56w1l0z8bp4fjscw1bfqbb4pn";
+      rev =  "f16ca3b7b383d3f0373109cac19147de3e8ae2d1";
+      sha256 = "19v8bj14w0lcvysaw84klf5dg6ka351ixz9r6cd9mksdd80nvzcq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/kr/binarydist";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/binarydist";
+      rev =  "88f551ae580780cc79d12ab4c218ba1ca346b83a";
+      sha256 = "0hz1yqlxmkdib8xsdkkvn4ian4i69jmfapadim9fhj632d6jpi7w";
     };
   }
   {
@@ -158,8 +212,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/mattn/go-colorable";
-      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
-      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+      rev =  "3a70a971f94a22f2fa562ffcc7a0eb45f5daf045";
+      sha256 = "0l640974j804c1yyjfgyxqlsivz0yrzmbql4mhcw2azryigkp08p";
     };
   }
   {
@@ -167,8 +221,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/mattn/go-isatty";
-      rev =  "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
-      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
+      rev =  "c2a7a6ca930a4cd0bc33a3f298eb71960732a3a7";
+      sha256 = "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd";
     };
   }
   {
@@ -176,8 +230,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/mdlayher/dhcp6";
-      rev =  "e26af0688e455a82b14ebdbecf43f87ead3c4624";
-      sha256 = "0fvw8zz2yhla03jfb79bby9vg4rbmaj39v00ypb8yl4fb696zfip";
+      rev =  "2a67805d7d0b0bad6c1103058981afdea583b459";
+      sha256 = "0xn7canpik3lrz73dcz4jzapq1bfxpnashvjvnvshcpa2n1lh8yw";
     };
   }
   {
@@ -185,8 +239,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/mdlayher/raw";
-      rev =  "67a536258490ec29bca6d465b51dea32c0db3623";
-      sha256 = "1fba4c6kc7llwr4n5rsspsc3yb0c81xsqzxv86wnj1b0d8l2s7nr";
+      rev =  "480b93709cce56651807d3fdeb260a5a7c4e2d5f";
+      sha256 = "0a0zlznk67nhpmgp21hxsbhyl5lvlkmwy5xvm3d3q0yaq0rqnh2x";
     };
   }
   {
@@ -208,12 +262,21 @@
     };
   }
   {
+    goPackagePath  = "github.com/miekg/dns";
+    fetch = {
+      type = "git";
+      url = "https://github.com/miekg/dns";
+      rev =  "8aa92d4e02c501ba21e26fb92cf2fb9f23f56917";
+      sha256 = "1niymj11xv82ghif3p7i60bgj0lqskwm7fmrzfjchd8wxwbk4bbi";
+    };
+  }
+  {
     goPackagePath  = "github.com/pkg/errors";
     fetch = {
       type = "git";
       url = "https://github.com/pkg/errors";
-      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
-      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+      rev =  "ba968bfe8b2f7e042a574c888954fccecfa385b4";
+      sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
     };
   }
   {
@@ -235,12 +298,21 @@
     };
   }
   {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "a29dc8fdc73485234dbef99ebedb95d2eced08de";
+      sha256 = "07f0jj4haqs0ywc1akk1qjwn5msl2j0pry1rxjkkbfcq4r6ihc1p";
+    };
+  }
+  {
     goPackagePath  = "golang.org/x/net";
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev =  "49bb7cea24b1df9410e1712aa6433dae904ff66a";
-      sha256 = "111q4qm3hcjvzvyv9y5rz8ydnyg48rckcygxqy6gv63q618wz6gn";
+      rev =  "9ce7a6920f093fc0b908c4a5f66ae049110f417e";
+      sha256 = "1kbs85jsqbv4v89ii2zam4b8dhmllhsrf46njmi09x0w6s0b9cbk";
     };
   }
   {
@@ -248,8 +320,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/sys";
-      rev =  "fa43e7bc11baaae89f3f902b2b4d832b68234844";
-      sha256 = "1z96xhgw930jpd53g1sy9x6wiijgz751czbvr2zzgc55y0md1mfw";
+      rev =  "d89cdac9e8725f2aefce25fcbfef41134c9ad412";
+      sha256 = "0iazr13ir6i267nb2w81lc3pr740wdjs86nsliwpf90kkgzn853f";
     };
   }
   {
diff --git a/nixpkgs/pkgs/tools/security/fprintd/default.nix b/nixpkgs/pkgs/tools/security/fprintd/default.nix
index 65eec89a09fc..b43be1a69240 100644
--- a/nixpkgs/pkgs/tools/security/fprintd/default.nix
+++ b/nixpkgs/pkgs/tools/security/fprintd/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, intltool
-, libfprint, glib, dbus-glib, polkit, nss, pam, systemd }:
+{ thinkpad ? false
+, stdenv, fetchurl, pkgconfig, intltool, libfprint-thinkpad ? null
+, libfprint ? null, glib, dbus-glib, polkit, nss, pam, systemd }:
 
 stdenv.mkDerivation rec {
-  name = "fprintd-${version}";
+  pname = "fprintd" + stdenv.lib.optionalString thinkpad "-thinkpad";
   version = "0.8.1";
 
   src = fetchurl {
@@ -10,7 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "124s0g9syvglgsmqnavp2a8c0zcq8cyaph8p8iyvbla11vfizs9l";
   };
 
-  buildInputs = [ libfprint glib dbus-glib polkit nss pam systemd ];
+  buildInputs = [ glib dbus-glib polkit nss pam systemd ]
+    ++ stdenv.lib.optional thinkpad libfprint-thinkpad
+    ++ stdenv.lib.optional (!thinkpad) libfprint;
+
   nativeBuildInputs = [ pkgconfig intltool ];
 
   configureFlags = [ "--with-systemdsystemunitdir=$(out)/lib/systemd/system" "--localstatedir=/var" ];
diff --git a/nixpkgs/pkgs/tools/security/monkeysphere/default.nix b/nixpkgs/pkgs/tools/security/monkeysphere/default.nix
index af507dbf993b..ed1cda8030f2 100644
--- a/nixpkgs/pkgs/tools/security/monkeysphere/default.nix
+++ b/nixpkgs/pkgs/tools/security/monkeysphere/default.nix
@@ -2,7 +2,7 @@
 , perl, libassuan, libgcrypt
 , perlPackages, lockfileProgs, gnupg, coreutils
 # For the tests:
-, bash, openssh, which, socat, cpio, hexdump, openssl
+, bash, openssh, which, socat, cpio, hexdump, procps, openssl
 }:
 
 let
@@ -14,14 +14,14 @@ let
   });
 in stdenv.mkDerivation rec {
   name = "monkeysphere-${version}";
-  version = "0.43";
+  version = "0.44";
 
   # The patched OpenSSH binary MUST NOT be used (except in the check phase):
   disallowedRequisites = [ opensshUnsafe ];
 
   src = fetchurl {
     url = "http://archive.monkeysphere.info/debian/pool/monkeysphere/m/monkeysphere/monkeysphere_${version}.orig.tar.gz";
-    sha256 = "18i7qpvp5qb7mmd0z5rqai550rya9l3nbsq2hamwkl3smqsjdqc0";
+    sha256 = "1ah7hy8r9gj96pni8azzjb85454qky5l17m3pqn37854l6grgika";
   };
 
   patches = [ ./monkeysphere.patch ];
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ perl libassuan libgcrypt ]
     ++ stdenv.lib.optional doCheck
-      ([ gnupg opensshUnsafe which socat cpio hexdump lockfileProgs ] ++
+      ([ gnupg opensshUnsafe which socat cpio hexdump procps lockfileProgs ] ++
       (with perlPackages; [ CryptOpenSSLRSA CryptOpenSSLBignum ]));
 
   makeFlags = ''
@@ -60,7 +60,7 @@ in stdenv.mkDerivation rec {
   postFixup =
     let wrapperArgs = runtimeDeps:
           "--prefix PERL5LIB : "
-          + (with perlPackages; makePerlPath [
+          + (with perlPackages; makePerlPath [ # Optional (only required for keytrans)
               CryptOpenSSLRSA
               CryptOpenSSLBignum
             ])
@@ -73,7 +73,7 @@ in stdenv.mkDerivation rec {
           (wrapMonkeysphere runtimeDeps)
           programs;
     in wrapPrograms [ gnupg ] [ "monkeysphere-authentication" "monkeysphere-host" ]
-      + wrapPrograms [ lockfileProgs ] [ "monkeysphere" ]
+      + wrapPrograms [ gnupg lockfileProgs ] [ "monkeysphere" ]
       + ''
         # These 4 programs depend on the program name ($0):
         for program in openpgp2pem openpgp2spki openpgp2ssh pem2openpgp; do
diff --git a/nixpkgs/pkgs/tools/security/monkeysphere/monkeysphere.patch b/nixpkgs/pkgs/tools/security/monkeysphere/monkeysphere.patch
index 0a05635d6a80..8cdd85017b93 100644
--- a/nixpkgs/pkgs/tools/security/monkeysphere/monkeysphere.patch
+++ b/nixpkgs/pkgs/tools/security/monkeysphere/monkeysphere.patch
@@ -10,15 +10,6 @@ diff --git a/Makefile b/Makefile
  	-e 's:__SYSCONFDIR_PREFIX__:$(ETCPREFIX):' \
  	-e 's:__SYSDATADIR_PREFIX__:$(LOCALSTATEDIR):'
  
-diff --git a/src/share/checkperms b/src/share/checkperms
---- a/src/share/checkperms
-+++ b/src/share/checkperms
-@@ -1,4 +1,4 @@
--#!/usr/bin/perl -T
-+#!/usr/bin/perl
- 
- # checkperms: ensure as best we can that a given file can only be
- # modified by the given user (or the superuser, naturally).  This
 diff --git a/src/share/keytrans b/src/share/keytrans
 --- a/src/share/keytrans
 +++ b/src/share/keytrans
@@ -28,17 +19,5 @@ diff --git a/src/share/keytrans b/src/share/keytrans
  
  # keytrans: this is an RSA key translation utility; it is capable of
  # transforming RSA keys (both public keys and secret keys) between
-diff --git a/tests/basic b/tests/basic
---- a/tests/basic
-+++ b/tests/basic
-@@ -343,7 +340,7 @@ if [ "$MONKEYSPHERE_TEST_USE_ED25519" = true ]; then
-     echo "### generating ed25519 key for testuser..."
-     # from the imported secret key
-     USER_FPR=8A4B353B4CBA6F30625498BAE00B5EEEBA79B482
--    gpg --quick-add-key "$USER_FPR" ed25519 auth 2d
-+    gpg --no-tty --quick-add-key "$USER_FPR" ed25519 auth 2d
- else
-     echo "### generating standard monkeysphere key for testuser..."
-     monkeysphere gen-subkey
 -- 
 2.16.3
diff --git a/nixpkgs/pkgs/tools/security/spectre-meltdown-checker/default.nix b/nixpkgs/pkgs/tools/security/spectre-meltdown-checker/default.nix
index 256423892c48..a3e6468c4fee 100644
--- a/nixpkgs/pkgs/tools/security/spectre-meltdown-checker/default.nix
+++ b/nixpkgs/pkgs/tools/security/spectre-meltdown-checker/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "spectre-meltdown-checker-${version}";
-  version = "0.40";
+  version = "0.41";
 
   src = fetchFromGitHub {
     owner = "speed47";
     repo = "spectre-meltdown-checker";
     rev = "v${version}";
-    sha256 = "0lhykc2andl0611bbs9b5dzp7c753crppvir2i7aw6bgwis23gjs";
+    sha256 = "0byjp7ph7g9di9xlg1fvspgq995a3b2yajq7sc8qap46ywvqr899";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/tools/system/osquery/default.nix b/nixpkgs/pkgs/tools/system/osquery/default.nix
index 1e2882e1f1fe..1c1da724676d 100644
--- a/nixpkgs/pkgs/tools/system/osquery/default.nix
+++ b/nixpkgs/pkgs/tools/system/osquery/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = let
     gflags' = google-gflags.overrideAttrs (old: {
-      cmakeFlags = stdenv.lib.filter (f: isNull (builtins.match ".*STATIC.*" f)) old.cmakeFlags;
+      cmakeFlags = stdenv.lib.filter (f: (builtins.match ".*STATIC.*" f) == null) old.cmakeFlags;
     });
 
     # use older `lvm2` source for osquery, the 2.03 sourcetree
diff --git a/nixpkgs/pkgs/tools/text/kdiff3/default.nix b/nixpkgs/pkgs/tools/text/kdiff3/default.nix
index 514085bee64e..aa53aeb42061 100644
--- a/nixpkgs/pkgs/tools/text/kdiff3/default.nix
+++ b/nixpkgs/pkgs/tools/text/kdiff3/default.nix
@@ -1,35 +1,18 @@
 {
-  mkDerivation, lib, fetchgit, fetchpatch,
+  mkDerivation, lib, fetchurl,
   extra-cmake-modules, kdoctools, wrapGAppsHook,
   kcrash, kconfig, kinit, kparts
 }:
 
 mkDerivation rec {
-  name = "kdiff3-${version}";
-  version = "1.7.0-2017-02-19";
+  pname = "kdiff3";
+  version = "1.8.1";
 
-  src = fetchgit {
-    # gitlab is outdated
-    url = https://anongit.kde.org/scratch/thomasfischer/kdiff3.git;
-    sha256 = "0znlk9m844a6qsskbd898w4yk48dkg5bkqlkd5abvyrk1jipzyy8";
-    rev = "0d2ac328164e3cbe2db35875d3df3a86187ae84f";
+  src = fetchurl {
+    url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
+    sha256 = "0vj3rw5w0kry2c1y8gv6hniam417w7k3ydb1dkf5xwr4iprw0xvq";
   };
 
-  setSourceRoot = ''sourceRoot="$(echo */kdiff3/)"'';
-
-  patches = [
-    (fetchpatch {
-      name = "git-mergetool.diff"; # see https://gitlab.com/tfischer/kdiff3/merge_requests/2
-      url = "https://gitlab.com/vcunat/kdiff3/commit/6106126216.patch";
-      sha256 = "16xqc24y8bg8gzkdbwapiwi68rzqnkpz4hgn586mi01ngig2fd7y";
-    })
-  ];
-  patchFlags = "-p 2";
-
-  postPatch = ''
-    sed -re "s/(p\\[[^]]+] *== *)('([^']|\\\\')+')/\\1QChar(\\2)/g" -i src/diff.cpp
-  '';
-
   nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
 
   propagatedBuildInputs = [ kconfig kcrash kinit kparts ];
diff --git a/nixpkgs/pkgs/tools/text/transifex-client/default.nix b/nixpkgs/pkgs/tools/text/transifex-client/default.nix
index c765a801348a..9a11b5fba57a 100644
--- a/nixpkgs/pkgs/tools/text/transifex-client/default.nix
+++ b/nixpkgs/pkgs/tools/text/transifex-client/default.nix
@@ -17,7 +17,7 @@ buildPythonApplication rec {
   prePatch = ''
     substituteInPlace requirements.txt --replace "urllib3<1.24" "urllib3<2.0" \
       --replace "six==1.11.0" "six<2.0.0" \
-      --replace "python-slugify==1.2.6" "python-slugify<3.0.0"
+      --replace "python-slugify==1.2.6" "python-slugify<4.0.0"
   '';
 
   # Requires external resources
diff --git a/nixpkgs/pkgs/top-level/aliases.nix b/nixpkgs/pkgs/top-level/aliases.nix
index a4bea8b80334..628e19ce82b5 100644
--- a/nixpkgs/pkgs/top-level/aliases.nix
+++ b/nixpkgs/pkgs/top-level/aliases.nix
@@ -181,6 +181,7 @@ mapAliases ({
   m3d-linux = m33-linux; # added 2016-08-13
   man_db = man-db; # added 2016-05
   manpages = man-pages; # added 2015-12-06
+  memtest86 = memtest86plus; # added 2019-05-08
   midoriWrapper = midori; # added 2015-01
   mlt-qt5 = libsForQt5.mlt;  # added 2015-12-19
   mobile_broadband_provider_info = mobile-broadband-provider-info; # added 2018-02-25
@@ -255,7 +256,6 @@ mapAliases ({
   # end
   ppl-address-book = throw "deprecated in 2019-05-02: abandoned by upstream.";
   procps-ng = procps; # added 2018-06-08
-  pstree = psmisc; # added 2019-05-05
   pulseaudioLight = pulseaudio; # added 2018-04-25
   qca-qt5 = libsForQt5.qca-qt5;  # added 2015-12-19
   qt_gstreamer = qt-gstreamer;  # added 2017-02
diff --git a/nixpkgs/pkgs/top-level/all-packages.nix b/nixpkgs/pkgs/top-level/all-packages.nix
index 6948f10411c3..aff08482282c 100644
--- a/nixpkgs/pkgs/top-level/all-packages.nix
+++ b/nixpkgs/pkgs/top-level/all-packages.nix
@@ -447,6 +447,8 @@ in
 
   actkbd = callPackage ../tools/system/actkbd { };
 
+  adafruit-ampy = callPackage ../tools/misc/adafruit-ampy { };
+
   adlplug = callPackage ../applications/audio/adlplug { };
 
   opnplug = callPackage ../applications/audio/adlplug {
@@ -647,6 +649,8 @@ in
 
   altermime = callPackage ../tools/networking/altermime {};
 
+  alttab = callPackage ../tools/X11/alttab { };
+
   amule = callPackage ../tools/networking/p2p/amule { };
 
   amuleDaemon = appendToName "daemon" (amule.override {
@@ -1529,6 +1533,8 @@ in
 
   fzy = callPackage ../tools/misc/fzy { };
 
+  g2o = callPackage ../development/libraries/g2o { };
+
   gbsplay = callPackage ../applications/audio/gbsplay { };
 
   gdrivefs = python27Packages.gdrivefs;
@@ -1928,11 +1934,7 @@ in
 
   bepasty = callPackage ../tools/misc/bepasty { };
 
-  bettercap = callPackage ../tools/security/bettercap {
-    # XXX: this is failing with Go 1.12. Error is related to cgo, an
-    # update to this package might fix it.
-    buildGoPackage = buildGo111Package;
-  };
+  bettercap = callPackage ../tools/security/bettercap { };
 
   bfg-repo-cleaner = gitAndTools.bfg-repo-cleaner;
 
@@ -2276,6 +2278,8 @@ in
 
   convoy = callPackage ../tools/filesystems/convoy { };
 
+  cpcfs = callPackage ../tools/filesystems/cpcfs { };
+
   cool-retro-term = libsForQt5.callPackage ../applications/misc/cool-retro-term { };
 
   coreutils = callPackage ../tools/misc/coreutils { };
@@ -2865,6 +2869,8 @@ in
 
   flannel = callPackage ../tools/networking/flannel { };
 
+  flare = callPackage ../games/flare { };
+
   flashbench = callPackage ../os-specific/linux/flashbench { };
 
   flatpak = callPackage ../development/libraries/flatpak { };
@@ -2985,6 +2991,9 @@ in
   fprot = callPackage ../tools/security/fprot { };
 
   fprintd = callPackage ../tools/security/fprintd { };
+  fprintd-thinkpad = fprintd.override {
+    thinkpad = true;
+  };
 
   franz = callPackage ../applications/networking/instant-messengers/franz { };
 
@@ -3447,6 +3456,8 @@ in
 
   pgf_graphics = callPackage ../tools/graphics/pgf { };
 
+  pgloader = callPackage ../development/tools/pgloader { };
+
   pigz = callPackage ../tools/compression/pigz { };
 
   pixz = callPackage ../tools/compression/pixz { };
@@ -3570,7 +3581,6 @@ in
   highlight = callPackage ../tools/text/highlight ({
     lua = lua5;
   } // lib.optionalAttrs stdenv.isDarwin {
-    # doesn't build with clang_37
     inherit (llvmPackages_38) stdenv;
   });
 
@@ -3977,6 +3987,8 @@ in
 
   libcpuid = callPackage ../tools/misc/libcpuid { };
 
+  libcsptr = callPackage ../development/libraries/libcsptr { };
+
   libscrypt = callPackage ../development/libraries/libscrypt { };
 
   libcloudproviders = callPackage ../development/libraries/libcloudproviders { };
@@ -4438,8 +4450,6 @@ in
 
   memtier-benchmark = callPackage ../tools/networking/memtier-benchmark { };
 
-  memtest86 = callPackage ../tools/misc/memtest86 { };
-
   memtest86-efi = callPackage ../tools/misc/memtest86-efi { };
 
   memtest86plus = callPackage ../tools/misc/memtest86+ { };
@@ -4851,6 +4861,8 @@ in
 
   nwdiag = with python3Packages; toPythonApplication nwdiag;
 
+  nyancat = callPackage ../tools/misc/nyancat { };
+
   nylon = callPackage ../tools/networking/nylon { };
 
   nzbget = callPackage ../tools/networking/nzbget { };
@@ -4891,7 +4903,7 @@ in
 
   ola = callPackage ../applications/misc/ola { };
 
-  olive-editor = libsForQt5.callPackage ../applications/video/olive-editor { 
+  olive-editor = libsForQt5.callPackage ../applications/video/olive-editor {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation;
   };
 
@@ -5873,8 +5885,6 @@ in
 
   soundkonverter = kdeApplications.callPackage ../applications/audio/soundkonverter {};
 
-  souper = callPackage ../development/compilers/souper { };
-
   sparsehash = callPackage ../development/libraries/sparsehash { };
 
   spectre-meltdown-checker = callPackage ../tools/security/spectre-meltdown-checker { };
@@ -6025,6 +6035,8 @@ in
 
   systrayhelper = callPackage ../tools/misc/systrayhelper {};
 
+  Sylk = callPackage ../applications/networking/Sylk {};
+
   otter-browser = qt5.callPackage ../applications/networking/browsers/otter {};
 
   privoxy = callPackage ../tools/networking/privoxy {
@@ -6585,6 +6597,8 @@ in
 
   xbanish = callPackage ../tools/X11/xbanish { };
 
+  xbill = callPackage ../games/xbill { };
+
   xbrightness = callPackage ../tools/X11/xbrightness { };
 
   xkbvalidate = callPackage ../tools/X11/xkbvalidate { };
@@ -7057,7 +7071,6 @@ in
   clang_4  = llvmPackages_4.clang;
   clang_39 = llvmPackages_39.clang;
   clang_38 = llvmPackages_38.clang;
-  clang_37 = llvmPackages_37.clang;
   clang_35 = wrapCC llvmPackages_35.clang;
 
   clang-tools = callPackage ../development/tools/clang-tools {
@@ -7716,7 +7729,6 @@ in
   llvm_4  = llvmPackages_4.llvm;
   llvm_39 = llvmPackages_39.llvm;
   llvm_38 = llvmPackages_38.llvm;
-  llvm_37 = llvmPackages_37.llvm;
   llvm_35 = llvmPackages_35.llvm;
 
   llvmPackages = recurseIntoAttrs llvmPackages_7;
@@ -7727,14 +7739,6 @@ in
     stdenv = overrideCC stdenv buildPackages.gcc6;
   });
 
-  llvmPackages_37 = callPackage ../development/compilers/llvm/3.7 ({
-    inherit (stdenvAdapters) overrideCC;
-    buildLlvmTools = buildPackages.llvmPackages_37.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_37.libraries;
-  } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
-    stdenv = overrideCC stdenv buildPackages.gcc6;
-  });
-
   llvmPackages_38 = callPackage ../development/compilers/llvm/3.8 ({
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_38.tools;
@@ -7947,6 +7951,9 @@ in
   cargo-bloat = callPackage ../development/tools/rust/cargo-bloat { };
   cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
   cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { };
+  cargo-make = callPackage ../development/tools/rust/cargo-make {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
   cargo-sweep = callPackage ../development/tools/rust/cargo-sweep { };
   cargo-xbuild = callPackage ../development/tools/rust/cargo-xbuild { };
 
@@ -8635,9 +8642,7 @@ in
     inherit (gnome2) gnome_vfs libglade libgnome libgnomecanvas libgnomeui;
   };
 
-  guile-lib = callPackage ../development/guile-modules/guile-lib {
-    guile = guile_2_0;
-  };
+  guile-lib = callPackage ../development/guile-modules/guile-lib { };
 
   guile-ncurses = callPackage ../development/guile-modules/guile-ncurses { };
 
@@ -9018,6 +9023,8 @@ in
 
   dejagnu = callPackage ../development/tools/misc/dejagnu { };
 
+  devd = callPackage ../development/tools/devd { };
+
   devtodo = callPackage ../development/tools/devtodo { };
 
   dfeet = callPackage ../development/tools/misc/d-feet { };
@@ -9706,6 +9713,10 @@ in
 
   vtable-dumper = callPackage ../development/tools/misc/vtable-dumper { };
 
+  whatstyle = callPackage ../development/tools/misc/whatstyle {
+    inherit (llvmPackages) clang-unwrapped;
+  };
+
   watson-ruby = callPackage ../development/tools/misc/watson-ruby {};
 
   xc3sprog = callPackage ../development/tools/misc/xc3sprog { };
@@ -10620,13 +10631,9 @@ in
               then callPackage ../development/libraries/gnu-efi { }
             else null;
 
-  gnutls = callPackage
-    (if stdenv.isDarwin
-      # Avoid > 3.5.10 due to frameworks for now; see discussion on:
-      # https://github.com/NixOS/nixpkgs/commit/d6454e6a1
-      then ../development/libraries/gnutls/3.5.10.nix
-      else ../development/libraries/gnutls/3.6.nix)
-    { };
+  gnutls = callPackage ../development/libraries/gnutls/default.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   gnutls-kdh = callPackage ../development/libraries/gnutls-kdh/3.5.nix {
     gperf = gperf_3_0;
@@ -11313,6 +11320,9 @@ in
   };
 
   libfprint = callPackage ../development/libraries/libfprint { };
+  libfprint-thinkpad = libfprint.override {
+    thinkpad = true;
+  };
 
   libfpx = callPackage ../development/libraries/libfpx { };
 
@@ -14740,7 +14750,7 @@ in
 
   webhook = callPackage ../servers/http/webhook { };
 
-  winstone = callPackage ../servers/http/winstone { };
+  winstone = throw "Winstone is not supported anymore. Alternatives are Jetty or Tomcat.";
 
   xinetd = callPackage ../servers/xinetd { };
 
@@ -16040,6 +16050,8 @@ in
 
   cherry = callPackage ../data/fonts/cherry { };
 
+  cnstrokeorder = callPackage ../data/fonts/cnstrokeorder {};
+
   comfortaa = callPackage ../data/fonts/comfortaa {};
 
   comic-neue = callPackage ../data/fonts/comic-neue { };
@@ -16093,8 +16105,12 @@ in
   docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
 
   inherit (callPackages ../data/sgml+xml/stylesheets/xslt/docbook-xsl { })
-    docbook_xsl
-    docbook_xsl_ns;
+    docbook-xsl-nons
+    docbook-xsl-ns;
+
+  # TODO: move this to aliases
+  docbook_xsl = docbook-xsl-nons;
+  docbook_xsl_ns = docbook-xsl-ns;
 
   documentation-highlighter = callPackage ../misc/documentation-highlighter { };
 
@@ -16224,6 +16240,8 @@ in
 
   junicode = callPackage ../data/fonts/junicode { };
 
+  kanji-stroke-order-font = callPackage ../data/fonts/kanji-stroke-order-font {};
+
   kawkab-mono-font = callPackage ../data/fonts/kawkab-mono {};
 
   kochi-substitute = callPackage ../data/fonts/kochi-substitute {};
@@ -16422,6 +16440,8 @@ in
 
   qogir-theme = callPackage ../data/themes/qogir { };
 
+  redhat-official-fonts = callPackage ../data/fonts/redhat-official { };
+
   route159 = callPackage ../data/fonts/route159 { };
 
   sampradaya = callPackage ../data/fonts/sampradaya { };
@@ -17558,6 +17578,8 @@ in
 
   inherit (gnome3) epiphany;
 
+  ephemeral = callPackage ../applications/networking/browsers/ephemeral { };
+
   epic5 = callPackage ../applications/networking/irc/epic5 { };
 
   eq10q = callPackage ../applications/audio/eq10q { };
@@ -18690,6 +18712,8 @@ in
 
   libvmi = callPackage ../development/libraries/libvmi { };
 
+  lifelines = callPackage ../applications/misc/lifelines { };
+
   liferea = callPackage ../applications/networking/newsreaders/liferea {
     inherit (gnome3) dconf;
   };
@@ -19113,7 +19137,9 @@ in
 
   pig = callPackage ../applications/networking/cluster/pig { };
 
-  pijul = callPackage ../applications/version-management/pijul {};
+  pijul = callPackage ../applications/version-management/pijul {
+    inherit (llvmPackages) clang libclang;
+  };
 
   ping = callPackage ../applications/networking/ping { };
 
@@ -19565,6 +19591,8 @@ in
 
   psol = callPackage ../development/libraries/psol { };
 
+  pstree = callPackage ../applications/misc/pstree { };
+
   ptask = callPackage ../applications/misc/ptask { };
 
   pulseaudio-ctl = callPackage ../applications/audio/pulseaudio-ctl { };
@@ -19884,6 +19912,8 @@ in
 
   setbfree = callPackage ../applications/audio/setbfree { };
 
+  sfxr = callPackage ../applications/audio/sfxr { };
+
   sfxr-qt = libsForQt5.callPackage ../applications/audio/sfxr-qt { };
 
   shadowfox = callPackage ../tools/networking/shadowfox { };
@@ -20472,7 +20502,10 @@ in
   wrapNeovim = callPackage ../applications/editors/neovim/wrapper.nix { };
 
   neovim-unwrapped = callPackage ../applications/editors/neovim {
-    lua = luajit;
+    lua =
+      # neovim doesn't work with luajit on aarch64: https://github.com/neovim/neovim/issues/7879
+      if stdenv.isAarch64 then lua5_1 else
+      luajit;
   };
 
   neovim = wrapNeovim neovim-unwrapped { };
@@ -22147,6 +22180,8 @@ in
 
   cmtk = callPackage ../applications/science/biology/cmtk { };
 
+  clustal-omega = callPackage ../applications/science/biology/clustal-omega { };
+
   conglomerate = callPackage ../applications/science/biology/conglomerate { };
 
   dcm2niix = callPackage ../applications/science/biology/dcm2niix { };
diff --git a/nixpkgs/pkgs/top-level/php-packages.nix b/nixpkgs/pkgs/top-level/php-packages.nix
index 63886bac8577..f680f0952753 100644
--- a/nixpkgs/pkgs/top-level/php-packages.nix
+++ b/nixpkgs/pkgs/top-level/php-packages.nix
@@ -142,6 +142,26 @@ let
     ];
   };
 
+  event = buildPecl rec {
+    version = "2.5.0";
+    pname = "event";
+
+    sha256 = "1igbxla4s784z7lw1jar6pjyfn596040a52kfmawwclqf9qcvx0v";
+
+    configureFlags = [ "--with-event-libevent-dir=${pkgs.libevent.dev}" ];
+    nativeBuildInputs = [ pkgs.pkgconfig ];
+    buildInputs = with pkgs; [ openssl libevent ];
+
+    meta = with pkgs.lib; {
+      description = ''
+        This is an extension to efficiently schedule I/O, time and signal based
+        events using the best I/O notification mechanism available for specific platform.
+      '';
+      license = licenses.php301;
+      homepage = "https://bitbucket.org/osmanov/pecl-event/";
+    };
+  };
+
   igbinary = buildPecl rec {
     version = "3.0.1";
     pname = "igbinary";
@@ -347,12 +367,12 @@ let
   };
 
   phpstan = mkDerivation rec {
-    version = "0.11.6";
+    version = "0.11.7";
     pname = "phpstan";
 
     src = pkgs.fetchurl {
       url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar";
-      sha256 = "016zm9ynh0zi40kclvzql7zxs3pl69cacln2c7n3gsicpswr0qa4";
+      sha256 = "0148ygnmj8wwal432isfq3zhf7qw902sfd2llwl6nw4wf0a6kf73";
     };
 
     phases = [ "installPhase" ];
@@ -380,6 +400,67 @@ let
     };
   };
 
+  pinba = if isPhp73 then pinba73 else pinba7;
+
+  pinba7 = assert !isPhp73; buildPecl rec {
+    version = "1.1.1";
+    pname = "pinba";
+
+    src = pkgs.fetchFromGitHub {
+      owner = "tony2001";
+      repo = "pinba_extension";
+      rev = "RELEASE_1_1_1";
+      sha256 = "1kdp7vav0y315695vhm3xifgsh6h6y6pny70xw3iai461n58khj5";
+    };
+
+    meta = with pkgs.lib; {
+      description = "PHP extension for Pinba";
+      longDescription = ''
+        Pinba is a MySQL storage engine that acts as a realtime monitoring and
+        statistics server for PHP using MySQL as a read-only interface.
+      '';
+      homepage = "http://pinba.org/";
+    };
+  };
+
+  pinba73 = assert isPhp73; buildPecl rec {
+    version = "1.1.2-dev";
+    pname = "pinba";
+
+    src = pkgs.fetchFromGitHub {
+      owner = "tony2001";
+      repo = "pinba_extension";
+      rev = "edbc313f1b4fb8407bf7d5acf63fbb0359c7fb2e";
+      sha256 = "02sljqm6griw8ccqavl23f7w1hp2zflcv24lpf00k6pyrn9cwx80";
+    };
+
+    meta = with pkgs.lib; {
+      description = "PHP extension for Pinba";
+      longDescription = ''
+        Pinba is a MySQL storage engine that acts as a realtime monitoring and
+        statistics server for PHP using MySQL as a read-only interface.
+      '';
+      homepage = "http://pinba.org/";
+    };
+  };
+
+  protobuf = buildPecl rec {
+    version = "3.7.1";
+    pname = "protobuf";
+
+    sha256 = "0fbf29851dpgjfdgi6i1dgy047dfiazm6qh943w22zbj35l7g2yc";
+
+    buildInputs = with pkgs; [ (if isPhp73 then pcre2 else pcre) ];
+
+    meta = with pkgs.lib; {
+      description = ''
+        Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.
+      '';
+      license = licenses.bsd3;
+      homepage = "https://developers.google.com/protocol-buffers/";
+    };
+  };
+
   psysh = mkDerivation rec {
     version = "0.9.9";
     pname = "psysh";
diff --git a/nixpkgs/pkgs/top-level/python-packages.nix b/nixpkgs/pkgs/top-level/python-packages.nix
index a70f5309d4d3..fde30019bc94 100644
--- a/nixpkgs/pkgs/top-level/python-packages.nix
+++ b/nixpkgs/pkgs/top-level/python-packages.nix
@@ -181,6 +181,10 @@ in {
 
   ansicolor = callPackage ../development/python-modules/ansicolor { };
 
+  anytree = callPackage ../development/python-modules/anytree {
+    inherit (pkgs) graphviz;
+  };
+
   aplpy = callPackage ../development/python-modules/aplpy { };
 
   argon2_cffi = callPackage ../development/python-modules/argon2_cffi { };
@@ -399,6 +403,8 @@ in {
 
   fastpbkdf2 = callPackage ../development/python-modules/fastpbkdf2 {  };
 
+  fasttext = callPackage ../development/python-modules/fasttext {  };
+
   favicon = callPackage ../development/python-modules/favicon {  };
 
   fido2 = callPackage ../development/python-modules/fido2 {  };
@@ -505,6 +511,8 @@ in {
 
   logzero = callPackage ../development/python-modules/logzero { };
 
+  macropy = callPackage ../development/python-modules/macropy { };
+
   mail-parser = callPackage ../development/python-modules/mail-parser { };
 
   manhole = callPackage ../development/python-modules/manhole { };
@@ -840,6 +848,8 @@ in {
 
   pytimeparse =  callPackage ../development/python-modules/pytimeparse { };
 
+  pytricia =  callPackage ../development/python-modules/pytricia { };
+
   PyWebDAV = callPackage ../development/python-modules/pywebdav { };
 
   pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml{ });
@@ -2600,6 +2610,8 @@ in {
 
   fiona = callPackage ../development/python-modules/fiona { gdal = pkgs.gdal; };
 
+  fitbit = callPackage ../development/python-modules/fitbit { };
+
   flake8 = callPackage ../development/python-modules/flake8 { };
 
   flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
@@ -3794,6 +3806,8 @@ in {
 
   pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
 
+  pyatmo = callPackage ../development/python-modules/pyatmo { };
+
   pyaudio = callPackage ../development/python-modules/pyaudio { };
 
   pysam = callPackage ../development/python-modules/pysam { };
@@ -4047,6 +4061,8 @@ in {
 
   pyserial = callPackage ../development/python-modules/pyserial {};
 
+  pysonos = callPackage ../development/python-modules/pysonos {};
+
   pymongo = callPackage ../development/python-modules/pymongo {};
 
   pyperclip = callPackage ../development/python-modules/pyperclip { };
@@ -4557,6 +4573,8 @@ in {
 
   pysendfile = callPackage ../development/python-modules/pysendfile { };
 
+  pyxl3 = callPackage ../development/python-modules/pyxl3 { };
+
   qpid-python = callPackage ../development/python-modules/qpid-python { };
 
   xattr = callPackage ../development/python-modules/xattr { };
@@ -5433,8 +5451,14 @@ in {
 
   backports_weakref = callPackage ../development/python-modules/backports_weakref { };
 
+  blis = callPackage ../development/python-modules/blis { };
+
+  srsly = callPackage ../development/python-modules/srsly { };
+
   thinc = callPackage ../development/python-modules/thinc { };
 
+  wasabi = callPackage ../development/python-modules/wasabi { };
+
   yahooweather = callPackage ../development/python-modules/yahooweather { };
 
   spacy = callPackage ../development/python-modules/spacy { };