summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimír Čunát <v@cunat.cz>2019-09-04 11:00:56 +0200
committerVladimír Čunát <v@cunat.cz>2019-09-04 11:00:56 +0200
commit4aad2947f8d680f18e5b01e115cf8cff22186998 (patch)
treea7a3d020efc6ec7be822bc06e08eca3ac311c9e2
parent2c5835b09a1d4966756212902d36b1b8ab242da6 (diff)
parent1d8a3973f46a2d1360f855eaa0f3a19859771793 (diff)
downloadnixpkgs-4aad2947f8d680f18e5b01e115cf8cff22186998.tar
nixpkgs-4aad2947f8d680f18e5b01e115cf8cff22186998.tar.gz
nixpkgs-4aad2947f8d680f18e5b01e115cf8cff22186998.tar.bz2
nixpkgs-4aad2947f8d680f18e5b01e115cf8cff22186998.tar.lz
nixpkgs-4aad2947f8d680f18e5b01e115cf8cff22186998.tar.xz
nixpkgs-4aad2947f8d680f18e5b01e115cf8cff22186998.tar.zst
nixpkgs-4aad2947f8d680f18e5b01e115cf8cff22186998.zip
Merge branch 'master' into staging-next
-rw-r--r--doc/languages-frameworks/ruby.section.md365
-rw-r--r--maintainers/maintainer-list.nix34
-rwxr-xr-xmaintainers/scripts/update-ruby-packages13
-rw-r--r--nixos/doc/manual/release-notes/rl-1909.xml10
-rw-r--r--nixos/modules/hardware/openrazer.nix133
-rw-r--r--nixos/modules/hardware/printers.nix135
-rw-r--r--nixos/modules/module-list.nix4
-rw-r--r--nixos/modules/services/desktops/blueman.nix25
-rw-r--r--nixos/modules/services/desktops/gnome3/glib-networking.nix6
-rw-r--r--nixos/modules/services/networking/syncplay.nix80
-rw-r--r--nixos/tests/containers-tmpfs.nix2
-rw-r--r--nixos/tests/printing.nix177
-rw-r--r--pkgs/applications/audio/musescore/default.nix6
-rw-r--r--pkgs/applications/audio/qmmp/default.nix4
-rw-r--r--pkgs/applications/audio/sayonara/default.nix106
-rw-r--r--pkgs/applications/audio/spotify/default.nix2
-rw-r--r--pkgs/applications/audio/strawberry/default.nix91
-rw-r--r--pkgs/applications/blockchains/go-ethereum.nix4
-rw-r--r--pkgs/applications/display-managers/lightdm/default.nix2
-rw-r--r--pkgs/applications/editors/kakoune/plugins.nix5
-rw-r--r--pkgs/applications/editors/kakoune/plugins/default.nix11
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix24
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-buffers.nix24
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-fzf.nix38
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-powerline.nix29
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix24
-rw-r--r--pkgs/applications/editors/vim/common.nix4
-rw-r--r--pkgs/applications/editors/wxhexeditor/default.nix5
-rw-r--r--pkgs/applications/editors/wxhexeditor/missing-semicolon.patch35
-rw-r--r--pkgs/applications/graphics/azpainter/default.nix38
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix6
-rw-r--r--pkgs/applications/misc/dfilemanager/default.nix6
-rw-r--r--pkgs/applications/misc/evtest/default.nix7
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--pkgs/applications/misc/gpscorrelate/default.nix2
-rw-r--r--pkgs/applications/misc/josm/default.nix4
-rw-r--r--pkgs/applications/misc/kjv/default.nix2
-rw-r--r--pkgs/applications/misc/plank/default.nix4
-rw-r--r--pkgs/applications/misc/rofi/default.nix9
-rw-r--r--pkgs/applications/misc/roxterm/default.nix69
-rw-r--r--pkgs/applications/misc/web-media-controller/default.nix6
-rw-r--r--pkgs/applications/misc/wtf/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/links2/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubectl/default.nix2
-rw-r--r--pkgs/applications/networking/dropbox/cli.nix4
-rw-r--r--pkgs/applications/networking/syncthing/default.nix6
-rw-r--r--pkgs/applications/office/gnucash/cmake_check_symbol_exists.patch12
-rw-r--r--pkgs/applications/office/gnucash/default.nix2
-rw-r--r--pkgs/applications/science/electronics/eagle/eagle.nix3
-rw-r--r--pkgs/applications/science/electronics/fped/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-crypt/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix6
-rw-r--r--pkgs/applications/video/kodi/default.nix6
-rw-r--r--pkgs/applications/video/mplayer/default.nix18
-rw-r--r--pkgs/applications/video/openshot-qt/default.nix11
-rw-r--r--pkgs/applications/virtualization/cbfstool/default.nix35
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix2
-rw-r--r--pkgs/applications/window-managers/icewm/default.nix44
-rw-r--r--pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch236
-rw-r--r--pkgs/applications/window-managers/icewm/musl.patch23
-rw-r--r--pkgs/build-support/nix-prefetch-github/default.nix4
-rw-r--r--pkgs/build-support/trivial-builders.nix33
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix4
-rw-r--r--pkgs/data/misc/hackage/default.nix4
-rw-r--r--pkgs/data/themes/materia-theme/default.nix4
-rw-r--r--pkgs/desktops/deepin/dbus-factory/default.nix2
-rw-r--r--pkgs/desktops/deepin/deepin-anything/default.nix2
-rw-r--r--pkgs/desktops/deepin/deepin-desktop-schemas/default.nix4
-rw-r--r--pkgs/desktops/deepin/deepin-gettext-tools/default.nix2
-rw-r--r--pkgs/desktops/deepin/deepin-gtk-theme/default.nix2
-rw-r--r--pkgs/desktops/deepin/deepin-icon-theme/default.nix2
-rw-r--r--pkgs/desktops/deepin/deepin-sound-theme/default.nix2
-rw-r--r--pkgs/desktops/deepin/go-dbus-factory/default.nix2
-rw-r--r--pkgs/desktops/deepin/go-dbus-generator/default.nix2
-rw-r--r--pkgs/desktops/deepin/go-gir-generator/default.nix2
-rw-r--r--pkgs/desktops/deepin/qt5dxcb-plugin/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-share/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/3.28.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/extensions/arc-menu/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch12
-rw-r--r--pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-applets/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix8
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix2
-rw-r--r--pkgs/desktops/pantheon/services/contractor/default.nix2
-rw-r--r--pkgs/desktops/surf-display/default.nix2
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-session/default.nix2
-rw-r--r--pkgs/development/compilers/sbcl/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix93
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix71
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml71
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix1934
-rw-r--r--pkgs/development/haskell-modules/hoogle.nix6
-rw-r--r--pkgs/development/interpreters/joker/default.nix20
-rw-r--r--pkgs/development/interpreters/joker/deps.nix29
-rw-r--r--pkgs/development/interpreters/ruby/default.nix26
-rw-r--r--pkgs/development/interpreters/ruby/patchsets.nix6
-rw-r--r--pkgs/development/interpreters/ruby/rvm-patchsets.nix4
-rw-r--r--pkgs/development/interpreters/supercollider/default.nix10
-rw-r--r--pkgs/development/libraries/accountsservice/default.nix2
-rw-r--r--pkgs/development/libraries/bamf/default.nix4
-rw-r--r--pkgs/development/libraries/dee/default.nix2
-rw-r--r--pkgs/development/libraries/enchant/2.x.nix42
-rw-r--r--pkgs/development/libraries/gnome-menus/default.nix4
-rw-r--r--pkgs/development/libraries/graphene/default.nix4
-rw-r--r--pkgs/development/libraries/gvfs/default.nix105
-rw-r--r--pkgs/development/libraries/hunspell/dictionaries.nix75
-rw-r--r--pkgs/development/libraries/libaccounts-glib/default.nix4
-rw-r--r--pkgs/development/libraries/libdbusmenu/default.nix4
-rw-r--r--pkgs/development/libraries/libgdata/default.nix4
-rw-r--r--pkgs/development/libraries/libgpiod/default.nix2
-rw-r--r--pkgs/development/libraries/libirecovery/default.nix2
-rw-r--r--pkgs/development/libraries/libmbim/default.nix2
-rw-r--r--pkgs/development/libraries/libmypaint/default.nix48
-rw-r--r--pkgs/development/libraries/libqmi/default.nix2
-rw-r--r--pkgs/development/libraries/libunity/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/blas/default.nix9
-rw-r--r--pkgs/development/libraries/tracker/default.nix4
-rw-r--r--pkgs/development/libraries/zeitgeist/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix14
-rw-r--r--pkgs/development/ocaml-modules/ocplib-json-typed/bson.nix13
-rw-r--r--pkgs/development/ocaml-modules/ocplib-json-typed/default.nix18
-rw-r--r--pkgs/development/python-modules/cherrypy/default.nix17
-rw-r--r--pkgs/development/python-modules/openrazer/common.nix17
-rw-r--r--pkgs/development/python-modules/openrazer/daemon.nix45
-rw-r--r--pkgs/development/python-modules/openrazer/pylib.nix26
-rw-r--r--pkgs/development/python-modules/pyscard/default.nix40
-rw-r--r--pkgs/development/python-modules/pyscard/ignore-macos-bug.patch22
-rw-r--r--pkgs/development/python-modules/python-pipedrive/default.nix27
-rw-r--r--pkgs/development/python-modules/robotframework-sshlibrary/default.nix4
-rw-r--r--pkgs/development/python-modules/trezor_agent/default.nix8
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix107
-rw-r--r--pkgs/development/ruby-modules/gem/gem-post-build.rb2
-rw-r--r--pkgs/development/ruby-modules/with-packages/Gemfile159
-rw-r--r--pkgs/development/ruby-modules/with-packages/default.nix75
-rw-r--r--pkgs/development/ruby-modules/with-packages/require_exceptions.nix84
-rw-r--r--pkgs/development/ruby-modules/with-packages/test.nix48
-rwxr-xr-xpkgs/development/ruby-modules/with-packages/test.rb76
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix12
-rw-r--r--pkgs/development/tools/build-managers/bazel/bash-tools-test.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/cpp-test.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/default.nix37
-rw-r--r--pkgs/development/tools/build-managers/bazel/java-test.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/protobuf-test.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix3
-rw-r--r--pkgs/development/tools/build-managers/bazel/src-deps.json160
-rwxr-xr-xpkgs/development/tools/build-managers/bazel/update-srcDeps.py5
-rw-r--r--pkgs/development/tools/devpi-server/default.nix14
-rw-r--r--pkgs/development/tools/dive/default.nix6
-rw-r--r--pkgs/os-specific/linux/openrazer/driver.nix39
-rw-r--r--pkgs/os-specific/linux/upower/default.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix27
-rw-r--r--pkgs/servers/monitoring/prometheus/aws-s3-exporter_deps.nix336
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_cron.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix5
-rw-r--r--pkgs/servers/tacacsplus/default.nix (renamed from pkgs/servers/tacacs+/default.nix)2
-rw-r--r--pkgs/servers/teleport/default.nix4
-rw-r--r--pkgs/servers/unifi/default.nix9
-rw-r--r--pkgs/servers/xmpp/pyIRCt/default.nix1
-rw-r--r--pkgs/servers/xmpp/pyMAILt/default.nix1
-rw-r--r--pkgs/shells/zsh/zsh-you-should-use/default.nix4
-rw-r--r--pkgs/tools/admin/clair/default.nix4
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix2
-rw-r--r--pkgs/tools/audio/mp3cat/default.nix2
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix26
-rw-r--r--pkgs/tools/graphics/wallutils/default.nix10
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix46
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-hangul/fix-paths.patch13
-rw-r--r--pkgs/tools/misc/bat/default.nix6
-rw-r--r--pkgs/tools/misc/cbmem/default.nix28
-rw-r--r--pkgs/tools/misc/coreboot-utils/default.nix104
-rw-r--r--pkgs/tools/misc/ifdtool/default.nix28
-rw-r--r--pkgs/tools/misc/intelmetool/default.nix32
-rw-r--r--pkgs/tools/misc/most/default.nix2
-rw-r--r--pkgs/tools/misc/nvramtool/default.nix34
-rw-r--r--pkgs/tools/misc/yubikey-manager/default.nix4
-rw-r--r--pkgs/tools/networking/gandi-cli/default.nix2
-rw-r--r--pkgs/tools/networking/modem-manager/default.nix6
-rw-r--r--pkgs/tools/networking/ofono/default.nix4
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix4
-rw-r--r--pkgs/tools/security/sequoia/default.nix2
-rw-r--r--pkgs/tools/text/miller/default.nix6
-rw-r--r--pkgs/tools/text/shab/default.nix1
-rw-r--r--pkgs/tools/typesetting/biber/default.nix16
-rw-r--r--pkgs/top-level/all-packages.nix52
-rw-r--r--pkgs/top-level/ocaml-packages.nix4
-rw-r--r--pkgs/top-level/python-packages.nix5
-rw-r--r--pkgs/top-level/ruby-packages.nix2666
217 files changed, 7330 insertions, 2069 deletions
diff --git a/doc/languages-frameworks/ruby.section.md b/doc/languages-frameworks/ruby.section.md
new file mode 100644
index 00000000000..e4c4ffce043
--- /dev/null
+++ b/doc/languages-frameworks/ruby.section.md
@@ -0,0 +1,365 @@
+---
+title: Ruby
+author: Michael Fellinger
+date: 2019-05-23
+---
+
+# Ruby
+
+## User Guide
+
+### Using Ruby
+
+#### Overview
+
+Several versions of Ruby interpreters are available on Nix, as well as over 250 gems and many applications written in Ruby.
+The attribute `ruby` refers to the default Ruby interpreter, which is currently
+MRI 2.5. It's also possible to refer to specific versions, e.g. `ruby_2_6`, `jruby`, or `mruby`.
+
+In the nixpkgs tree, Ruby packages can be found throughout, depending on what
+they do, and are called from the main package set. Ruby gems, however are
+separate sets, and there's one default set for each interpreter (currently MRI
+only).
+
+There are two main approaches for using Ruby with gems.
+One is to use a specifically locked `Gemfile` for an application that has very strict dependencies.
+The other is to depend on the common gems, which we'll explain further down, and
+rely on them being updated regularly.
+
+The interpreters have common attributes, namely `gems`, and `withPackages`. So
+you can refer to `ruby.gems.nokogiri`, or `ruby_2_5.gems.nokogiri` to get the
+Nokogiri gem already compiled and ready to use.
+
+Since not all gems have executables like `nokogiri`, it's usually more
+convenient to use the `withPackages` function like this:
+`ruby.withPackages (p: with p; [ nokogiri ])`. This will also make sure that the
+Ruby in your environment will be able to find the gem and it can be used in your
+Ruby code (for example via `ruby` or `irb` executables) via `require "nokogiri"`
+as usual.
+
+#### Temporary Ruby environment with `nix-shell`
+
+Rather than having a single Ruby environment shared by all Ruby
+development projects on a system, Nix allows you to create separate
+environments per project.  `nix-shell` gives you the possibility to
+temporarily load another environment akin to a combined `chruby` or
+`rvm` and `bundle exec`.
+
+There are two methods for loading a shell with Ruby packages. The first and
+recommended method is to create an environment with `ruby.withPackages` and load
+that.
+
+```shell
+nix-shell -p "ruby.withPackages (ps: with ps; [ nokogiri pry ])"
+```
+
+The other method, which is not recommended, is to create an environment and list
+all the packages directly.
+
+```shell
+nix-shell -p ruby.gems.nokogiri ruby.gems.pry
+```
+
+Again, it's possible to launch the interpreter from the shell. The Ruby
+interpreter has the attribute `gems` which contains all Ruby gems for that
+specific interpreter.
+
+##### Load environment from `.nix` expression
+
+As explained in the Nix manual, `nix-shell` can also load an expression from a
+`.nix` file. Say we want to have Ruby 2.5, `nokogori`, and `pry`. Consider a
+`shell.nix` file with:
+
+```nix
+with import <nixpkgs> {};
+ruby.withPackages (ps: with ps; [ nokogiri pry ])
+```
+
+What's happening here?
+
+1. We begin with importing the Nix Packages collections. `import <nixpkgs>`
+   imports the `<nixpkgs>` function, `{}` calls it and the `with` statement
+   brings all attributes of `nixpkgs` in the local scope. These attributes form
+   the main package set.
+2. Then we create a Ruby environment with the `withPackages` function.
+3. The `withPackages` function expects us to provide a function as an argument
+   that takes the set of all ruby gems and returns a list of packages to include
+   in the environment. Here, we select the packages `nokogiri` and `pry` from
+   the package set.
+
+##### Execute command with `--run`
+
+A convenient flag for `nix-shell` is `--run`. It executes a command in the
+`nix-shell`. We can e.g. directly open a `pry` REPL:
+
+```shell
+nix-shell -p "ruby.withPackages (ps: with ps; [ nokogiri pry ])" --run "pry"
+```
+
+Or immediately require `nokogiri` in pry:
+
+```shell
+nix-shell -p "ruby.withPackages (ps: with ps; [ nokogiri pry ])" --run "pry -rnokogiri"
+```
+
+Or run a script using this environment:
+
+```shell
+nix-shell -p "ruby.withPackages (ps: with ps; [ nokogiri pry ])" --run "ruby example.rb"
+```
+
+##### Using `nix-shell` as shebang
+
+In fact, for the last case, there is a more convenient method. You can add a
+[shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) to your script
+specifying which dependencies `nix-shell` needs. With the following shebang, you
+can just execute `./example.rb`, and it will run with all dependencies.
+
+```ruby
+#! /usr/bin/env nix-shell
+#! nix-shell -i ruby -p "ruby.withPackages (ps: with ps; [ nokogiri rest-client ])"
+
+require 'nokogiri'
+require 'rest-client'
+
+body = RestClient.get('http://example.com').body
+puts Nokogiri::HTML(body).at('h1').text
+```
+
+### Developing with Ruby
+
+#### Using an existing Gemfile
+
+In most cases, you'll already have a `Gemfile.lock` listing all your dependencies.
+This can be used to generate a `gemset.nix` which is used to fetch the gems and
+combine them into a single environment.
+The reason why you need to have a separate file for this, is that Nix requires
+you to have a checksum for each input to your build.
+Since the `Gemfile.lock` that `bundler` generates doesn't provide us with
+checksums, we have to first download each gem, calculate its SHA256, and store
+it in this separate file.
+
+So the steps from having just a `Gemfile` to a `gemset.nix` are:
+
+```shell
+bundle lock
+bundix
+```
+
+If you already have a `Gemfile.lock`, you can simply run `bundix` and it will
+work the same.
+
+To update the gems in your `Gemfile.lock`, you may use the `bundix -l` flag,
+which will create a new `Gemfile.lock` in case the `Gemfile` has a more recent
+time of modification.
+
+Once the `gemset.nix` is generated, it can be used in a
+`bundlerEnv` derivation. Here is an example you could use for your `shell.nix`:
+
+```nix
+# ...
+let
+  gems = bundlerEnv {
+    name = "gems-for-some-project";
+    gemdir = ./.;
+  };
+in mkShell { buildInputs = [ gems gems.wrappedRuby ]; }
+```
+
+With this file in your directory, you can run `nix-shell` to build and use the gems.
+The important parts here are `bundlerEnv` and `wrappedRuby`.
+
+The `bundlerEnv` is a wrapper over all the gems in your gemset. This means that
+all the `/lib` and `/bin` directories will be available, and the executables of
+all gems (even of indirect dependencies) will end up in your `$PATH`.
+The `wrappedRuby` provides you with all executables that come with Ruby itself,
+but wrapped so they can easily find the gems in your gemset.
+
+One common issue that you might have is that you have Ruby 2.6, but also
+`bundler` in your gemset. That leads to a conflict for `/bin/bundle` and
+`/bin/bundler`. You can resolve this by wrapping either your Ruby or your gems
+in a `lowPrio` call. So in order to give the `bundler` from your gemset
+priority, it would be used like this:
+
+```nix
+# ...
+mkShell { buildInputs = [ gems (lowPrio gems.wrappedRuby) ]; }
+```
+
+
+#### Gem-specific configurations and workarounds
+
+In some cases, especially if the gem has native extensions, you might need to
+modify the way the gem is built.
+
+This is done via a common configuration file that includes all of the
+workarounds for each gem.
+
+This file lives at `/pkgs/development/ruby-modules/gem-config/default.nix`,
+since it already contains a lot of entries, it should be pretty easy to add the
+modifications you need for your needs.
+
+In the meanwhile, or if the modification is for a private gem, you can also add
+the configuration to only your own environment.
+
+Two places that allow this modification are the `ruby` derivation, or `bundlerEnv`.
+
+Here's the `ruby` one:
+
+```nix
+{ pg_version ? "10", pkgs ? import <nixpkgs> { } }:
+let
+  myRuby = pkgs.ruby.override {
+    defaultGemConfig = pkgs.defaultGemConfig // {
+      pg = attrs: {
+        buildFlags =
+        [ "--with-pg-config=${pkgs."postgresql_${pg_version}"}/bin/pg_config" ];
+      };
+    };
+  };
+in myRuby.withPackages (ps: with ps; [ pg ])
+```
+
+And an example with `bundlerEnv`:
+
+```nix
+{ pg_version ? "10", pkgs ? import <nixpkgs> { } }:
+let
+  gems = pkgs.bundlerEnv {
+    name = "gems-for-some-project";
+    gemdir = ./.;
+    gemConfig = pkgs.defaultGemConfig // {
+      pg = attrs: {
+        buildFlags =
+        [ "--with-pg-config=${pkgs."postgresql_${pg_version}"}/bin/pg_config" ];
+      };
+    };
+  };
+in mkShell { buildInputs = [ gems gems.wrappedRuby ]; }
+```
+
+And finally via overlays:
+
+```nix
+{ pg_version ? "10" }:
+let
+  pkgs = import <nixpkgs> {
+    overlays = [
+      (self: super: {
+        defaultGemConfig = super.defaultGemConfig // {
+          pg = attrs: {
+            buildFlags = [
+              "--with-pg-config=${
+                pkgs."postgresql_${pg_version}"
+              }/bin/pg_config"
+            ];
+          };
+        };
+      })
+    ];
+  };
+in pkgs.ruby.withPackages (ps: with ps; [ pg ])
+```
+
+Then we can get whichever postgresql version we desire and the `pg` gem will
+always reference it correctly:
+
+```shell
+$ nix-shell --argstr pg_version 9_4 --run 'ruby -rpg -e "puts PG.library_version"'
+90421
+
+$ nix-shell --run 'ruby -rpg -e "puts PG.library_version"'
+100007
+```
+
+Of course for this use-case one could also use overlays since the configuration
+for `pg` depends on the `postgresql` alias, but for demonstration purposes this
+has to suffice.
+
+#### Adding a gem to the default gemset
+
+Now that you know how to get a working Ruby environment with Nix, it's time to
+go forward and start actually developing with Ruby.
+We will first have a look at how Ruby gems are packaged on Nix. Then, we will
+look at how you can use development mode with your code.
+
+All gems in the standard set are automatically generated from a single
+`Gemfile`. The dependency resolution is done with `bundler` and makes it more
+likely that all gems are compatible to each other.
+
+In order to add a new gem to nixpkgs, you can put it into the
+`/pkgs/development/ruby-modules/with-packages/Gemfile` and run
+`./maintainers/scripts/update-ruby-packages`.
+
+To test that it works, you can then try using the gem with:
+
+```shell
+NIX_PATH=nixpkgs=$PWD nix-shell -p "ruby.withPackages (ps: with ps; [ name-of-your-gem ])"
+```
+
+#### Packaging applications
+
+A common task is to add a ruby executable to nixpkgs, popular examples would be
+`chef`, `jekyll`, or `sass`. A good way to do that is to use the `bundlerApp`
+function, that allows you to make a package that only exposes the listed
+executables, otherwise the package may cause conflicts through common paths like
+`bin/rake` or `bin/bundler` that aren't meant to be used.
+
+The absolute easiest way to do that is to write a
+`Gemfile` along these lines:
+
+```ruby
+source 'https://rubygems.org' do
+  gem 'mdl'
+end
+```
+
+If you want to package a specific version, you can use the standard Gemfile
+syntax for that, e.g. `gem 'mdl', '0.5.0'`, but if you want the latest stable
+version anyway, it's easier to update by simply running the `bundle lock` and
+`bundix` steps again.
+
+Now you can also also make a `default.nix` that looks like this:
+
+```nix
+{ lib, bundlerApp }:
+
+bundlerApp {
+  pname = "mdl";
+  gemdir = ./.;
+  exes = [ "mdl" ];
+}
+```
+
+All that's left to do is to generate the corresponding `Gemfile.lock` and
+`gemset.nix` as described above in the `Using an existing Gemfile` section.
+
+##### Packaging executables that require wrapping
+
+Sometimes your app will depend on other executables at runtime, and tries to
+find it through the `PATH` environment variable.
+
+In this case, you can provide a `postBuild` hook to `bundlerApp` that wraps the
+gem in another script that prefixes the `PATH`.
+
+Of course you could also make a custom `gemConfig` if you know exactly how to
+patch it, but it's usually much easier to maintain with a simple wrapper so the
+patch doesn't have to be adjusted for each version.
+
+Here's another example:
+
+```nix
+{ lib, bundlerApp, makeWrapper, git, gnutar, gzip }:
+
+bundlerApp {
+  pname = "r10k";
+  gemdir = ./.;
+  exes = [ "r10k" ];
+
+  buildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    wrapProgram $out/bin/r10k --prefix PATH : ${lib.makeBinPath [ git gnutar gzip ]}
+  '';
+}
+```
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 397bec6057d..7c95ab8b8ec 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1225,11 +1225,15 @@
     githubId = 25088352;
     name = "Christian Kögler";
   };
-  ckampka = {
+  kampka = {
     email = "christian@kampka.net";
     github = "kampka";
     githubId = 422412;
     name = "Christian Kampka";
+    keys = [{
+      longkeyid = "ed25519/0x1CBE9645DD68E915";
+      fingerprint = "F7FA 0BD0 8775 337C F6AB  4A14 1CBE 9645 DD68 E915";
+    }];
   };
   ckauhaus = {
     email = "kc@flyingcircus.io";
@@ -1633,6 +1637,12 @@
     githubId = 10913120;
     name = "Dje4321";
   };
+  dkabot = {
+    email = "dkabot@dkabot.com";
+    github = "dkabot";
+    githubId = 1316469;
+    name = "Naomi Morse";
+  };
   dmalikov = {
     email = "malikov.d.y@gmail.com";
     github = "dmalikov";
@@ -3069,6 +3079,16 @@
     githubId = 8735102;
     name = "John Ramsden";
   };
+  jojosch = {
+    name = "Johannes Schleifenbaum";
+    email = "johannes@js-webcoding.de";
+    github = "jojosch";
+    githubId = 327488;
+    keys = [{
+      longkeyid = "ed25519/059093B1A278BCD0";
+      fingerprint = "7249 70E6 A661 D84E 8B47  678A 0590 93B1 A278 BCD0";
+    }];
+  };
   joko = {
     email = "ioannis.koutras@gmail.com";
     github = "jokogr";
@@ -4584,6 +4604,12 @@
     githubId = 9939720;
     name = "Philippe Nguyen";
   };
+  nrdxp = {
+    email = "tim.deh@pm.me";
+    github = "nrdxp";
+    githubId = 34083928;
+    name = "Tim DeHerrera";
+  };
   nshalman = {
     email = "nahamu@gmail.com";
     github = "nshalman";
@@ -5409,6 +5435,12 @@
     githubId = 852967;
     name = "Russell O'Connor";
   };
+  roelvandijk = {
+    email = "roel@lambdacube.nl";
+    github = "roelvandijk";
+    githubId = 710906;
+    name = "Roel van Dijk";
+  };
   romildo = {
     email = "malaquias@gmail.com";
     github = "romildo";
diff --git a/maintainers/scripts/update-ruby-packages b/maintainers/scripts/update-ruby-packages
new file mode 100755
index 00000000000..fef6b75ded0
--- /dev/null
+++ b/maintainers/scripts/update-ruby-packages
@@ -0,0 +1,13 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p bundler bundix
+
+set -euf -o pipefail
+
+(
+  cd pkgs/development/ruby-modules/with-packages
+  rm -f gemset.nix Gemfile.lock
+  bundle lock
+  bundix
+  mv gemset.nix ../../../top-level/ruby-packages.nix
+  rm -f Gemfile.lock
+)
diff --git a/nixos/doc/manual/release-notes/rl-1909.xml b/nixos/doc/manual/release-notes/rl-1909.xml
index 11c13b8d942..c0b7cc48a46 100644
--- a/nixos/doc/manual/release-notes/rl-1909.xml
+++ b/nixos/doc/manual/release-notes/rl-1909.xml
@@ -135,7 +135,17 @@
      <literal>./programs/dwm-status.nix</literal>
     </para>
    </listitem>
+   <listitem>
+    <para>
+     The new <varname>hardware.printers</varname> module allows to declaratively configure CUPS printers
+     via the <varname>ensurePrinters</varname> and
+     <varname>ensureDefaultPrinter</varname> options.
+     <varname>ensurePrinters</varname> will never delete existing printers,
+     but will make sure that the given printers are configured as declared.
+    </para>
+   </listitem>
   </itemizedlist>
+
  </section>
 
  <section xmlns="http://docbook.org/ns/docbook"
diff --git a/nixos/modules/hardware/openrazer.nix b/nixos/modules/hardware/openrazer.nix
new file mode 100644
index 00000000000..883db7f2f4f
--- /dev/null
+++ b/nixos/modules/hardware/openrazer.nix
@@ -0,0 +1,133 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.hardware.openrazer;
+  kernelPackages = config.boot.kernelPackages;
+
+  toPyBoolStr = b: if b then "True" else "False";
+
+  daemonExe = "${pkgs.openrazer-daemon}/bin/openrazer-daemon --config ${daemonConfFile}";
+
+  daemonConfFile = pkgs.writeTextFile {
+    name = "razer.conf";
+    text = ''
+      [General]
+      verbose_logging = ${toPyBoolStr cfg.verboseLogging}
+
+      [Startup]
+      sync_effects_enabled = ${toPyBoolStr cfg.syncEffectsEnabled}
+      devices_off_on_screensaver = ${toPyBoolStr cfg.devicesOffOnScreensaver}
+      mouse_battery_notifier = ${toPyBoolStr cfg.mouseBatteryNotifier}
+
+      [Statistics]
+      key_statistics = ${toPyBoolStr cfg.keyStatistics}
+    '';
+  };
+
+  dbusServiceFile = pkgs.writeTextFile rec {
+    name = "org.razer.service";
+    destination = "/share/dbus-1/services/${name}";
+    text = ''
+      [D-BUS Service]
+      Name=org.razer
+      Exec=${daemonExe}
+      SystemdService=openrazer-daemon.service
+    '';
+  };
+
+  drivers = [
+    "razerkbd"
+    "razermouse"
+    "razerfirefly"
+    "razerkraken"
+    "razermug"
+    "razercore"
+  ];
+in
+{
+  options = {
+    hardware.openrazer = {
+      enable = mkEnableOption "OpenRazer drivers and userspace daemon.";
+
+      verboseLogging = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to enable verbose logging. Logs debug messages.
+        '';
+      };
+
+      syncEffectsEnabled = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Set the sync effects flag to true so any assignment of
+          effects will work across devices.
+        '';
+      };
+
+      devicesOffOnScreensaver = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Turn off the devices when the systems screensaver kicks in.
+        '';
+      };
+
+      mouseBatteryNotifier = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Mouse battery notifier.
+        '';
+      };
+
+      keyStatistics = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Collects number of keypresses per hour per key used to
+          generate a heatmap.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    boot.extraModulePackages = [ kernelPackages.openrazer ];
+    boot.kernelModules = drivers;
+
+    # Makes the man pages available so you can succesfully run
+    # > systemctl --user help openrazer-daemon
+    environment.systemPackages = [ pkgs.python3Packages.openrazer-daemon.man ];
+
+    services.udev.packages = [ kernelPackages.openrazer ];
+    services.dbus.packages = [ dbusServiceFile ];
+
+    # A user must be a member of the plugdev group in order to start
+    # the openrazer-daemon. Therefore we make sure that the plugdev
+    # group exists.
+    users.groups.plugdev = {};
+
+    systemd.user.services.openrazer-daemon = {
+      description = "Daemon to manage razer devices in userspace";
+      unitConfig.Documentation = "man:openrazer-daemon(8)";
+        # Requires a graphical session so the daemon knows when the screensaver
+        # starts. See the 'devicesOffOnScreensaver' option.
+        wantedBy = [ "graphical-session.target" ];
+        partOf = [ "graphical-session.target" ];
+        serviceConfig = {
+          Type = "dbus";
+          BusName = "org.razer";
+          ExecStart = "${daemonExe} --foreground";
+          Restart = "always";
+      };
+    };
+  };
+
+  meta = {
+    maintainers = with lib.maintainers; [ roelvandijk ];
+  };
+}
diff --git a/nixos/modules/hardware/printers.nix b/nixos/modules/hardware/printers.nix
new file mode 100644
index 00000000000..12ee5516d4e
--- /dev/null
+++ b/nixos/modules/hardware/printers.nix
@@ -0,0 +1,135 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+  cfg = config.hardware.printers;
+  ppdOptionsString = options: optionalString (options != {})
+    (concatStringsSep " "
+      (mapAttrsToList (name: value: "-o '${name}'='${value}'") options)
+    );
+  ensurePrinter = p: ''
+    ${pkgs.cups}/bin/lpadmin -p '${p.name}' -E \
+      ${optionalString (p.location != null) "-L '${p.location}'"} \
+      ${optionalString (p.description != null) "-D '${p.description}'"} \
+      -v '${p.deviceUri}' \
+      -m '${p.model}' \
+      ${ppdOptionsString p.ppdOptions}
+  '';
+  ensureDefaultPrinter = name: ''
+    ${pkgs.cups}/bin/lpoptions -d '${name}'
+  '';
+
+  # "graph but not # or /" can't be implemented as regex alone due to missing lookahead support
+  noInvalidChars = str: all (c: c != "#" && c != "/") (stringToCharacters str);
+  printerName = (types.addCheck (types.strMatching "[[:graph:]]+") noInvalidChars)
+    // { description = "printable string without spaces, # and /"; };
+
+
+in {
+  options = {
+    hardware.printers = {
+      ensureDefaultPrinter = mkOption {
+        type = types.nullOr printerName;
+        default = null;
+        description = ''
+          Ensures the named printer is the default CUPS printer / printer queue.
+        '';
+      };
+      ensurePrinters = mkOption {
+        description = ''
+          Will regularly ensure that the given CUPS printers are configured as declared here.
+          If a printer's options are manually changed afterwards, they will be overwritten eventually.
+          This option will never delete any printer, even if removed from this list.
+          You can check existing printers with <command>lpstat -s</command>
+          and remove printers with <command>lpadmin -x &lt;printer-name&gt;</command>.
+          Printers not listed here can still be manually configured.
+        '';
+        default = [];
+        type = types.listOf (types.submodule {
+          options = {
+            name = mkOption {
+              type = printerName;
+              example = "BrotherHL_Workroom";
+              description = ''
+                Name of the printer / printer queue.
+                May contain any printable characters except "/", "#", and space.
+              '';
+            };
+            location = mkOption {
+              type = types.nullOr types.str;
+              default = null;
+              example = "Workroom";
+              description = ''
+                Optional human-readable location.
+              '';
+            };
+            description = mkOption {
+              type = types.nullOr types.str;
+              default = null;
+              example = "Brother HL-5140";
+              description = ''
+                Optional human-readable description.
+              '';
+            };
+            deviceUri = mkOption {
+              type = types.str;
+              example = [
+                "ipp://printserver.local/printers/BrotherHL_Workroom"
+                "usb://HP/DESKJET%20940C?serial=CN16E6C364BH"
+              ];
+              description = ''
+                How to reach the printer.
+                <command>lpinfo -v</command> shows a list of supported device URIs and schemes.
+              '';
+            };
+            model = mkOption {
+              type = types.str;
+              example = literalExample ''
+                gutenprint.''${lib.version.majorMinor (lib.getVersion pkgs.cups)}://brother-hl-5140/expert
+              '';
+              description = ''
+                Location of the ppd driver file for the printer.
+                <command>lpinfo -m</command> shows a list of supported models.
+              '';
+            };
+            ppdOptions = mkOption {
+              type = types.attrsOf types.str;
+              example = {
+                "PageSize" = "A4";
+                "Duplex" = "DuplexNoTumble";
+              };
+              default = {};
+              description = ''
+                Sets PPD options for the printer.
+                <command>lpoptions [-p printername] -l</command> shows suported PPD options for the given printer.
+              '';
+            };
+          };
+        });
+      };
+    };
+  };
+
+  config = mkIf (cfg.ensurePrinters != [] && config.services.printing.enable) {
+    systemd.services."ensure-printers" = let
+      cupsUnit = if config.services.printing.startWhenNeeded then "cups.socket" else "cups.service";
+    in {
+      description = "Ensure NixOS-configured CUPS printers";
+      wantedBy = [ "multi-user.target" ];
+      requires = [ cupsUnit ];
+      # in contrast to cups.socket, for cups.service, this is actually not enough,
+      # as the cups service reports its activation before clients can actually interact with it.
+      # Because of this, commands like `lpinfo -v` will report a bad file descriptor
+      # due to the missing UNIX socket without sufficient sleep time.
+      after = [ cupsUnit ];
+
+      serviceConfig = {
+        Type = "oneshot";
+      };
+
+       # sleep 10 is required to wait until cups.service is actually initialized and has created its UNIX socket file
+      script = (optionalString (!config.services.printing.startWhenNeeded) "sleep 10\n")
+        + (concatMapStringsSep "\n" ensurePrinter cfg.ensurePrinters)
+        + optionalString (cfg.ensureDefaultPrinter != null) (ensureDefaultPrinter cfg.ensureDefaultPrinter);
+    };
+  };
+}
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 4bc37ed3f17..290c29993b5 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -58,7 +58,9 @@
   ./hardware/network/intel-2200bg.nix
   ./hardware/nitrokey.nix
   ./hardware/opengl.nix
+  ./hardware/openrazer.nix
   ./hardware/pcmcia.nix
+  ./hardware/printers.nix
   ./hardware/raid/hpsa.nix
   ./hardware/steam-hardware.nix
   ./hardware/usb-wwan.nix
@@ -281,6 +283,7 @@
   ./services/databases/virtuoso.nix
   ./services/desktops/accountsservice.nix
   ./services/desktops/bamf.nix
+  ./services/desktops/blueman.nix
   ./services/desktops/deepin/deepin.nix
   ./services/desktops/dleyna-renderer.nix
   ./services/desktops/dleyna-server.nix
@@ -698,6 +701,7 @@
   ./services/networking/supybot.nix
   ./services/networking/syncthing.nix
   ./services/networking/syncthing-relay.nix
+  ./services/networking/syncplay.nix
   ./services/networking/tcpcrypt.nix
   ./services/networking/teamspeak3.nix
   ./services/networking/tedicross.nix
diff --git a/nixos/modules/services/desktops/blueman.nix b/nixos/modules/services/desktops/blueman.nix
new file mode 100644
index 00000000000..18ad610247e
--- /dev/null
+++ b/nixos/modules/services/desktops/blueman.nix
@@ -0,0 +1,25 @@
+# blueman service
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.blueman;
+in {
+  ###### interface
+  options = {
+    services.blueman = {
+      enable = mkEnableOption "blueman";
+    };
+  };
+
+  ###### implementation
+  config = mkIf cfg.enable {
+
+    environment.systemPackages = [ pkgs.blueman ];
+
+    services.dbus.packages = [ pkgs.blueman ];
+
+    systemd.packages = [ pkgs.blueman ];
+  };
+}
diff --git a/nixos/modules/services/desktops/gnome3/glib-networking.nix b/nixos/modules/services/desktops/gnome3/glib-networking.nix
index 186668d7d38..fcd58509d6f 100644
--- a/nixos/modules/services/desktops/gnome3/glib-networking.nix
+++ b/nixos/modules/services/desktops/gnome3/glib-networking.nix
@@ -22,11 +22,11 @@ with lib;
 
   config = mkIf config.services.gnome3.glib-networking.enable {
 
-    services.dbus.packages = [ pkgs.gnome3.glib-networking ];
+    services.dbus.packages = [ pkgs.glib-networking ];
 
-    systemd.packages = [ pkgs.gnome3.glib-networking ];
+    systemd.packages = [ pkgs.glib-networking ];
 
-    environment.variables.GIO_EXTRA_MODULES = [ "${pkgs.gnome3.glib-networking.out}/lib/gio/modules" ];
+    environment.variables.GIO_EXTRA_MODULES = [ "${pkgs.glib-networking.out}/lib/gio/modules" ];
 
   };
 
diff --git a/nixos/modules/services/networking/syncplay.nix b/nixos/modules/services/networking/syncplay.nix
new file mode 100644
index 00000000000..e3147c10502
--- /dev/null
+++ b/nixos/modules/services/networking/syncplay.nix
@@ -0,0 +1,80 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.syncplay;
+
+  cmdArgs =
+    [ "--port" cfg.port ]
+    ++ optionals (cfg.salt != null) [ "--salt" cfg.salt ]
+    ++ optionals (cfg.certDir != null) [ "--tls" cfg.certDir ];
+
+in
+{
+  options = {
+    services.syncplay = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = "If enabled, start the Syncplay server.";
+      };
+
+      port = mkOption {
+        type = types.int;
+        default = 8999;
+        description = ''
+          TCP port to bind to.
+        '';
+      };
+
+      salt = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Salt to allow room operator passwords generated by this server
+          instance to still work when the server is restarted.
+        '';
+      };
+
+      certDir = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        description = ''
+          TLS certificates directory to use for encryption. See
+          <link xlink:href="https://github.com/Syncplay/syncplay/wiki/TLS-support"/>.
+        '';
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "nobody";
+        description = ''
+          User to use when running Syncplay.
+        '';
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "nogroup";
+        description = ''
+          Group to use when running Syncplay.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.syncplay = {
+      description = "Syncplay Service";
+      wantedBy    = [ "multi-user.target" ];
+      after       = [ "network-online.target "];
+
+      serviceConfig = {
+        ExecStart = "${pkgs.syncplay}/bin/syncplay-server ${escapeShellArgs cmdArgs}";
+        User = cfg.user;
+        Group = cfg.group;
+      };
+    };
+  };
+}
diff --git a/nixos/tests/containers-tmpfs.nix b/nixos/tests/containers-tmpfs.nix
index 05c21f4907b..e29fe6bbf03 100644
--- a/nixos/tests/containers-tmpfs.nix
+++ b/nixos/tests/containers-tmpfs.nix
@@ -3,7 +3,7 @@
 import ./make-test.nix ({ pkgs, ...} : {
   name = "containers-tmpfs";
   meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ ckampka ];
+    maintainers = [ kampka ];
   };
 
   machine =
diff --git a/nixos/tests/printing.nix b/nixos/tests/printing.nix
index 74583ae5562..4d0df289cf7 100644
--- a/nixos/tests/printing.nix
+++ b/nixos/tests/printing.nix
@@ -1,99 +1,114 @@
 # Test printing via CUPS.
 
-import ./make-test.nix ({pkgs, ... }: {
+import ./make-test.nix ({pkgs, ... }:
+let
+  printingServer = startWhenNeeded: {
+    services.printing.enable = true;
+    services.printing.startWhenNeeded = startWhenNeeded;
+    services.printing.listenAddresses = [ "*:631" ];
+    services.printing.defaultShared = true;
+    services.printing.extraConf =
+      ''
+        <Location />
+          Order allow,deny
+          Allow from all
+        </Location>
+      '';
+    networking.firewall.allowedTCPPorts = [ 631 ];
+    # Add a HP Deskjet printer connected via USB to the server.
+    hardware.printers.ensurePrinters = [{
+      name = "DeskjetLocal";
+      deviceUri = "usb://foobar/printers/foobar";
+      model = "drv:///sample.drv/deskjet.ppd";
+    }];
+  };
+  printingClient = startWhenNeeded: {
+    services.printing.enable = true;
+    services.printing.startWhenNeeded = startWhenNeeded;
+    # Add printer to the client as well, via IPP.
+    hardware.printers.ensurePrinters = [{
+      name = "DeskjetRemote";
+      deviceUri = "ipp://${if startWhenNeeded then "socketActivatedServer" else "serviceServer"}/printers/DeskjetLocal";
+      model = "drv:///sample.drv/deskjet.ppd";
+    }];
+    hardware.printers.ensureDefaultPrinter = "DeskjetRemote";
+  };
+
+in
+
+{
   name = "printing";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ domenkozar eelco matthewbauer ];
   };
 
   nodes = {
+    socketActivatedServer = { ... }: (printingServer true);
+    serviceServer = { ... }: (printingServer false);
 
-    server =
-      { ... }:
-      { services.printing.enable = true;
-        services.printing.listenAddresses = [ "*:631" ];
-        services.printing.defaultShared = true;
-        services.printing.extraConf =
-          ''
-            <Location />
-              Order allow,deny
-              Allow from all
-            </Location>
-          '';
-        networking.firewall.allowedTCPPorts = [ 631 ];
-      };
-
-    client =
-      { ... }:
-      { services.printing.enable = true;
-      };
-
+    socketActivatedClient = { ... }: (printingClient true);
+    serviceClient = { ... }: (printingClient false);
   };
 
   testScript =
     ''
       startAll;
 
-      $client->succeed("lpstat -r") =~ /scheduler is running/ or die;
-      # check local encrypted connections work without error
-      $client->succeed("lpstat -E -r") =~ /scheduler is running/ or die;
-      # Test that UNIX socket is used for connections.
-      $client->succeed("lpstat -H") =~ "/run/cups/cups.sock" or die;
-      # Test that HTTP server is available too.
-      $client->succeed("curl --fail http://localhost:631/");
-      $client->succeed("curl --fail http://server:631/");
-      $server->fail("curl --fail --connect-timeout 2  http://client:631/");
-
-      # Add a HP Deskjet printer connected via USB to the server.
-      $server->succeed("lpadmin -p DeskjetLocal -E -v usb://foobar/printers/foobar");
-
-      # Add it to the client as well via IPP.
-      $client->succeed("lpadmin -p DeskjetRemote -E -v ipp://server/printers/DeskjetLocal");
-      $client->succeed("lpadmin -d DeskjetRemote");
-
-      # Do some status checks.
-      $client->succeed("lpstat -a") =~ /DeskjetRemote accepting requests/ or die;
-      $client->succeed("lpstat -h server:631 -a") =~ /DeskjetLocal accepting requests/ or die;
-      $client->succeed("cupsdisable DeskjetRemote");
-      $client->succeed("lpq") =~ /DeskjetRemote is not ready.*no entries/s or die;
-      $client->succeed("cupsenable DeskjetRemote");
-      $client->succeed("lpq") =~ /DeskjetRemote is ready.*no entries/s or die;
-
-      # Test printing various file types.
-      foreach my $file ("${pkgs.groff.doc}/share/doc/*/examples/mom/penguin.pdf",
-                        "${pkgs.groff.doc}/share/doc/*/meref.ps",
-                        "${pkgs.cups.out}/share/doc/cups/images/cups.png",
-                        "${pkgs.pcre.doc}/share/doc/pcre/pcre.txt")
-      {
-          $file =~ /([^\/]*)$/; my $fn = $1;
-
-          subtest "print $fn", sub {
-
-              # Print the file on the client.
-              $client->succeed("lp $file");
-              $client->sleep(10);
-              $client->succeed("lpq") =~ /active.*root.*$fn/ or die;
-
-              # Ensure that a raw PCL file appeared in the server's queue
-              # (showing that the right filters have been applied).  Of
-              # course, since there is no actual USB printer attached, the
-              # file will stay in the queue forever.
-              $server->waitForFile("/var/spool/cups/d*-001");
-              $server->sleep(10);
-              $server->succeed("lpq -a") =~ /$fn/ or die;
-
-              # Delete the job on the client.  It should disappear on the
-              # server as well.
-              $client->succeed("lprm");
-              $client->sleep(10);
-              $client->succeed("lpq -a") =~ /no entries/;
-              Machine::retry sub {
-                return 1 if $server->succeed("lpq -a") =~ /no entries/;
+      # Make sure that cups is up on both sides.
+      $serviceServer->waitForUnit("cups.service");
+      $serviceClient->waitForUnit("cups.service");
+      # wait until cups is fully initialized and ensure-printers has executed with 10s delay
+      $serviceClient->sleep(20);
+      $socketActivatedClient->waitUntilSucceeds("systemctl status ensure-printers | grep -q -E 'code=exited, status=0/SUCCESS'");
+      sub testPrinting {
+          my ($client, $server) = (@_);
+          my $clientHostname = $client->name();
+          my $serverHostname = $server->name();
+          $client->succeed("lpstat -r") =~ /scheduler is running/ or die;
+          # Test that UNIX socket is used for connections.
+          $client->succeed("lpstat -H") =~ "/var/run/cups/cups.sock" or die;
+          # Test that HTTP server is available too.
+          $client->succeed("curl --fail http://localhost:631/");
+          $client->succeed("curl --fail http://$serverHostname:631/");
+          $server->fail("curl --fail --connect-timeout 2  http://$clientHostname:631/");
+          # Do some status checks.
+          $client->succeed("lpstat -a") =~ /DeskjetRemote accepting requests/ or die;
+          $client->succeed("lpstat -h $serverHostname:631 -a") =~ /DeskjetLocal accepting requests/ or die;
+          $client->succeed("cupsdisable DeskjetRemote");
+          $client->succeed("lpq") =~ /DeskjetRemote is not ready.*no entries/s or die;
+          $client->succeed("cupsenable DeskjetRemote");
+          $client->succeed("lpq") =~ /DeskjetRemote is ready.*no entries/s or die;
+          # Test printing various file types.
+          foreach my $file ("${pkgs.groff.doc}/share/doc/*/examples/mom/penguin.pdf",
+                            "${pkgs.groff.doc}/share/doc/*/meref.ps",
+                            "${pkgs.cups.out}/share/doc/cups/images/cups.png",
+                            "${pkgs.pcre.doc}/share/doc/pcre/pcre.txt")
+          {
+              $file =~ /([^\/]*)$/; my $fn = $1;
+              subtest "print $fn", sub {
+                  # Print the file on the client.
+                  $client->succeed("lp $file");
+                  $client->waitUntilSucceeds("lpq | grep -q -E 'active.*root.*$fn'");
+                  # Ensure that a raw PCL file appeared in the server's queue
+                  # (showing that the right filters have been applied).  Of
+                  # course, since there is no actual USB printer attached, the
+                  # file will stay in the queue forever.
+                  $server->waitForFile("/var/spool/cups/d*-001");
+                  $server->waitUntilSucceeds("lpq -a | grep -q -E '$fn'");
+                  # Delete the job on the client.  It should disappear on the
+                  # server as well.
+                  $client->succeed("lprm");
+                  $client->waitUntilSucceeds("lpq -a | grep -q -E 'no entries'");
+                  Machine::retry sub {
+                    return 1 if $server->succeed("lpq -a") =~ /no entries/;
+                  };
+                  # The queue is empty already, so this should be safe.
+                  # Otherwise, pairs of "c*"-"d*-001" files might persist.
+                  $server->execute("rm /var/spool/cups/*");
               };
-              # The queue is empty already, so this should be safe.
-              # Otherwise, pairs of "c*"-"d*-001" files might persist.
-              $server->execute("rm /var/spool/cups/*");
-          };
+          }
       }
-    '';
+      testPrinting($serviceClient, $serviceServer);
+      testPrinting($socketActivatedClient, $socketActivatedServer);
+  '';
 })
diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix
index 2e69c3cda7a..5368fcb6165 100644
--- a/pkgs/applications/audio/musescore/default.nix
+++ b/pkgs/applications/audio/musescore/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "musescore";
-  version = "3.0.5";
+  version = "3.2.3";
 
   src = fetchzip {
-    url = "https://download.musescore.com/releases/MuseScore-${version}/MuseScore-${version}.zip";
-    sha256 = "1pbf6v0l3nixxr8k5igwhj09wnqvw92av6q6yjrbb3kyjh5br2d8";
+    url = "https://github.com/musescore/MuseScore/releases/download/v${version}/MuseScore-${version}.zip";
+    sha256 = "17mr0c8whw6vz86lp1j36rams4h8virc4z68fld0q3rpq6g05szs";
     stripRoot = false;
   };
 
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index 03f6bb1b793..ef52c65b105 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, pkgconfig, xlibsWrapper
+{ stdenv, mkDerivation, fetchurl, cmake, pkgconfig, xlibsWrapper
 , qtbase, qttools, qtmultimedia, qtx11extras
 # transports
 , curl, libmms
@@ -28,7 +28,7 @@
 # Qmmp installs working .desktop file(s) all by itself, so we don't need to
 # handle that.
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "qmmp-1.3.3";
 
   src = fetchurl {
diff --git a/pkgs/applications/audio/sayonara/default.nix b/pkgs/applications/audio/sayonara/default.nix
index 7776fa0c166..c4258174500 100644
--- a/pkgs/applications/audio/sayonara/default.nix
+++ b/pkgs/applications/audio/sayonara/default.nix
@@ -1,46 +1,82 @@
-{ stdenv, fetchurl, cmake, qt5, zlib, taglib, pkgconfig, pcre, gst_all_1 }:
+{ mkDerivation
+, cmake
+, fetchgit
+, gst_all_1
+, lib
+, libpulseaudio
+, ninja
+, pcre
+, pkgconfig
+, qtbase
+, qttools
+, taglib
+, zlib
+}:
 
-let
-  version = "1.1.1-git1-20180828";
-in
-stdenv.mkDerivation {
+mkDerivation rec {
   pname = "sayonara-player";
-  inherit version;
+  version = "1.5.1-stable5";
 
-  src = fetchurl {
-    url = "https://sayonara-player.com/sw/sayonara-player-${version}.tar.gz";
-    sha256 = "0rvy47qvavrp03zjdrw025dmq9fq5aaii3q1qq8b94byarl0c5kn";
+  src = fetchgit {
+    url = "https://git.sayonara-player.com/sayonara.git";
+    rev = version;
+    sha256 = "13l7r3gaszrkyf4z8rdijfzxvcnilax4ki2mcm30wqk8d4g4qdzj";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = with qt5; with gst_all_1;
-      [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly
-        pcre qtbase qttools taglib zlib
-      ];
-
-  # CMake Error at src/GUI/Resources/Icons/cmake_install.cmake:49 (file):
-  #   file cannot create directory: /usr/share/icons.  Maybe need administrative
-  #   privileges.
-  # Call Stack (most recent call first):
-  #   src/GUI/Resources/cmake_install.cmake:50 (include)
-  #   src/GUI/cmake_install.cmake:50 (include)
-  #   src/cmake_install.cmake:59 (include)
-  #   cmake_install.cmake:42 (include)
+  # all this can go with version 1.5.2
   postPatch = ''
-    substituteInPlace src/GUI/Resources/Icons/CMakeLists.txt \
-      --replace "/usr/share" "$out/share"
+    # if we don't delete this, sayonara will look here instead of the provided taglib
+    rm -r src/3rdParty/taglib
+
+    for f in \
+      src/DBus/DBusNotifications.cpp \
+      src/Gui/Resources/Icons/CMakeLists.txt \
+      src/Utils/Utils.cpp \
+      test/Util/FileHelperTest.cpp \
+      ; do
+
+      substituteInPlace $f --replace /usr $out
+    done
+
+    substituteInPlace src/Components/Shutdown/Shutdown.cpp \
+      --replace /usr/bin/systemctl systemctl
   '';
 
-  # [ 65%] Building CXX object src/Components/Engine/CMakeFiles/say_comp_engine.dir/AbstractPipeline.cpp.o
-  # /tmp/nix-build-sayonara-player-1.0.0-git5-20180115.drv-0/sayonara-player/src/Components/Engine/AbstractPipeline.cpp:28:32: fatal error: gst/app/gstappsink.h: No such file or directory
-  #  #include <gst/app/gstappsink.h>
+  nativeBuildInputs = [ cmake ninja pkgconfig qttools ];
+
+  buildInputs = [
+    libpulseaudio
+    pcre
+    qtbase
+    taglib
+    zlib
+  ]
+  ++ (with gst_all_1; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+    gst-plugins-ugly
+  ]);
+
+  # we carry the patched taglib 1.11.1 that doesn't break ogg but sayonara just
+  # checks for the version
+  cmakeFlags = [
+    "-DWITH_SYSTEM_TAGLIB=ON"
+  ];
+
+  # gstreamer cannot otherwise be found
   NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0";
 
-  meta = with stdenv.lib;
-    { description = "Sayonara music player";
-      homepage = https://sayonara-player.com/;
-      license = licenses.gpl3;
-      platforms = platforms.linux;
-      maintainers = [ maintainers.deepfire ];
-    };
+  postInstall = ''
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+  '';
+
+  meta = with lib; {
+    description = "Sayonara music player";
+    homepage = "https://sayonara-player.com/";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ deepfire ];
+    platforms = platforms.unix;
+  };
 }
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 403075f9135..3f99e22a4cb 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -78,8 +78,6 @@ stdenv.mkDerivation {
 
   buildInputs = [ squashfsTools makeWrapper ];
 
-  doConfigure = false;
-  doBuild = false;
   dontStrip = true;
   dontPatchELF = true;
 
diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix
new file mode 100644
index 00000000000..60da75d3c7e
--- /dev/null
+++ b/pkgs/applications/audio/strawberry/default.nix
@@ -0,0 +1,91 @@
+{ mkDerivation
+, stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkgconfig
+, alsaLib
+, boost
+, chromaprint
+, fftw
+, gnutls
+, libcdio
+, libmtp
+, libpthreadstubs
+, libtasn1
+, libXdmcp
+, pcre
+, protobuf
+, sqlite
+, taglib
+, libpulseaudio ? null
+, libselinux ? null
+, libsepol ? null
+, p11_kit ? null
+, utillinux ? null
+, qtbase
+, qtx11extras
+, qttools
+, withGstreamer ? true
+, gst_all_1 ? null
+, withVlc ? true
+, vlc ? null
+}:
+
+mkDerivation rec {
+  pname = "strawberry";
+  version = "0.6.3";
+
+  src = fetchFromGitHub {
+    owner = "jonaski";
+    repo = pname;
+    rev = version;
+    sha256 = "01j5jzzicy895kg9sjy46lbcm5kvf3642d3q5wwb2fyvyq1fbcv0";
+  };
+
+  buildInputs = [
+    alsaLib
+    boost
+    chromaprint
+    fftw
+    gnutls
+    libcdio
+    libmtp
+    libpthreadstubs
+    libtasn1
+    libXdmcp
+    pcre
+    protobuf
+    sqlite
+    taglib
+    qtbase
+    qtx11extras
+  ]
+  ++ lib.optionals stdenv.isLinux [
+    libpulseaudio
+    libselinux
+    libsepol
+    p11_kit
+    utillinux
+  ]
+  ++ lib.optionals withGstreamer (with gst_all_1; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+  ])
+  ++ lib.optional withVlc vlc;
+
+  nativeBuildInputs = [ cmake pkgconfig qttools ];
+
+  cmakeFlags = [
+    "-DUSE_SYSTEM_TAGLIB=ON"
+  ];
+
+  meta = with lib; {
+    description = "Music player and music collection organizer";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
+    # upstream says darwin should work but they lack maintainers as of 0.6.3
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/blockchains/go-ethereum.nix b/pkgs/applications/blockchains/go-ethereum.nix
index 740ecfa228f..5f347fe91e9 100644
--- a/pkgs/applications/blockchains/go-ethereum.nix
+++ b/pkgs/applications/blockchains/go-ethereum.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "go-ethereum";
-  version = "1.9.2";
+  version = "1.9.3";
 
   goPackagePath = "github.com/ethereum/go-ethereum";
 
@@ -17,7 +17,7 @@ buildGoPackage rec {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0lymwylh4j63fzj9jy7mcw676a2ksgpsj9mazif1r3d2q73h9m88";
+    sha256 = "0lv6gxp34j26hqazcvyr4c7rsl1vljm6cfzkcmlapsjdgym505bg";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/display-managers/lightdm/default.nix b/pkgs/applications/display-managers/lightdm/default.nix
index 7aeed5d91cc..1df67578b3a 100644
--- a/pkgs/applications/display-managers/lightdm/default.nix
+++ b/pkgs/applications/display-managers/lightdm/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
     ++ optional withQt5 "--enable-liblightdm-qt5";
 
   installFlags = [
-    "sysconfdir=${placeholder ''out''}/etc"
+    "sysconfdir=${placeholder "out"}/etc"
     "localstatedir=\${TMPDIR}"
   ];
 
diff --git a/pkgs/applications/editors/kakoune/plugins.nix b/pkgs/applications/editors/kakoune/plugins.nix
deleted file mode 100644
index d2f3607d63c..00000000000
--- a/pkgs/applications/editors/kakoune/plugins.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ parinfer-rust }:
-
-{
-  inherit parinfer-rust;
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/default.nix b/pkgs/applications/editors/kakoune/plugins/default.nix
new file mode 100644
index 00000000000..f53d345d49e
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/default.nix
@@ -0,0 +1,11 @@
+{ pkgs, parinfer-rust }:
+
+{
+  inherit parinfer-rust;
+
+  kak-auto-pairs = pkgs.callPackage ./kak-auto-pairs.nix { };
+  kak-buffers = pkgs.callPackage ./kak-buffers.nix { };
+  kak-fzf = pkgs.callPackage ./kak-fzf.nix { };
+  kak-powerline = pkgs.callPackage ./kak-powerline.nix { };
+  kak-vertical-selection = pkgs.callPackage ./kak-vertical-selection.nix { };
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix b/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
new file mode 100644
index 00000000000..48dc7106b62
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+  name = "kak-auto-pairs";
+  version = "2019-07-27";
+  src = fetchFromGitHub {
+    owner = "alexherbo2";
+    repo = "auto-pairs.kak";
+    rev = "886449b1a04d43e5deb2f0ef4b1aead6084c7a5f";
+    sha256 = "0knfhdvslzw1f1r1k16733yhkczrg3yijjz6n2qwira84iv3239j";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/kak/autoload/plugins
+    cp -r rc $out/share/kak/autoload/plugins/auto-pairs
+  '';
+
+  meta = with stdenv.lib;
+  { description = "Kakoune extension to enable automatic closing of pairs";
+    homepage = "https://github.com/alexherbo2/auto-pairs.kak";
+    license = licenses.publicDoman;
+    maintainers = with maintainers; [ nrdxp ];
+    platform = platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix b/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
new file mode 100644
index 00000000000..8a2474f0762
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+  name = "kak-buffers";
+  version = "2019-04-03";
+  src = fetchFromGitHub {
+    owner = "Delapouite";
+    repo = "kakoune-buffers";
+    rev = "3b35b23ac2be661a37c085d34dd04d066450f757";
+    sha256 = "0f3g0v1sjinii3ig9753jjj35v2km4h9bcfw9xgzwz8b10d75bax";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/kak/autoload/plugins
+    cp -r buffers.kak $out/share/kak/autoload/plugins
+  '';
+
+  meta = with stdenv.lib;
+  { description = "Ease navigation between opened buffers in Kakoune";
+    homepage = "https://github.com/Delapouite/kakoune-buffers";
+    license = licenses.publicDoman;
+    maintainers = with maintainers; [ nrdxp ];
+    platform = platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix b/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
new file mode 100644
index 00000000000..9877c72252b
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, fzf }:
+
+assert stdenv.lib.asserts.assertOneOf "fzf" fzf.pname [ "fzf" "skim" ];
+
+stdenv.mkDerivation {
+  name = "kak-fzf";
+  version = "2019-07-16";
+  src = fetchFromGitHub {
+    owner = "andreyorst";
+    repo = "fzf.kak";
+    rev = "ede90d3e02bceb714f997adfcbab8260b42e0a19";
+    sha256 = "18w90j3fpk2ddn68497s33n66aap8phw5636y1r7pqsa641zdxcv";
+  };
+
+  configurePhase = ''
+    if [[ -x "${fzf}/bin/fzf" ]]; then
+      fzfImpl='${fzf}/bin/fzf'
+    else
+      fzfImpl='${fzf}/bin/sk'
+    fi
+
+    substituteInPlace rc/fzf.kak \
+      --replace \'fzf\' \'"$fzfImpl"\'
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/kak/autoload/plugins
+    cp -r rc $out/share/kak/autoload/plugins/fzf
+  '';
+
+  meta = with stdenv.lib;
+  { description = "Kakoune plugin that brings integration with fzf";
+    homepage = "https://github.com/andreyorst/fzf.kak";
+    license = licenses.publicDoman;
+    maintainers = with maintainers; [ nrdxp ];
+    platform = platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix b/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
new file mode 100644
index 00000000000..76af06504ea
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
@@ -0,0 +1,29 @@
+{ stdenv, git, fetchFromGitHub }:
+stdenv.mkDerivation {
+  name = "kak-powerline";
+  version = "2019-07-23";
+  src = fetchFromGitHub {
+    owner = "andreyorst";
+    repo = "powerline.kak";
+    rev = "82b01eb6c97c7380b7da253db1fd484a5de13ea4";
+    sha256 = "1480wp2jc7c84z1wqmpf09lzny6kbnbhiiym2ffaddxrd4ns9i6z";
+  };
+
+  configurePhase = ''
+    substituteInPlace rc/modules/git.kak \
+      --replace \'git\' \'${git}/bin/git\'
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/kak/autoload/plugins
+    cp -r rc $out/share/kak/autoload/plugins/powerline
+  '';
+
+  meta = with stdenv.lib;
+  { description = "Kakoune modeline, but with passion";
+    homepage = "https://github.com/andreyorst/powerline.kak";
+    license = licenses.publicDoman;
+    maintainers = with maintainers; [ nrdxp ];
+    platform = platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix b/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
new file mode 100644
index 00000000000..280fb664b8f
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+  name = "kak-vertical-selection";
+  version = "2019-04-11";
+  src = fetchFromGitHub {
+    owner = "occivink";
+    repo = "kakoune-vertical-selection";
+    rev = "c420f8b867ce47375fac303886e31623669a42b7";
+    sha256 = "13jdyd2j45wvgqvxdzw9zww14ly93bqjb6700zzxj7mkbiff6wsb";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/kak/autoload/plugins
+    cp -r vertical-selection.kak $out/share/kak/autoload/plugins
+  '';
+
+  meta = with stdenv.lib;
+  { description = "Select up and down lines that match the same pattern in Kakoune";
+    homepage = "https://github.com/occivink/kakoune-vertical-selection";
+    license = licenses.publicDoman;
+    maintainers = with maintainers; [ nrdxp ];
+    platform = platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index 8438e2f4c27..567da2a08f2 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "8.1.1866";
+  version = "8.1.1967";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "00db529ynin71b5drch9rd9l85bcqdpbsl3mcc0xnv770f97sa0w";
+    sha256 = "0cdfi67jwv8j982i1jxdfqv4aqglig8f0hzadgygk69i0wwkymwk";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/wxhexeditor/default.nix b/pkgs/applications/editors/wxhexeditor/default.nix
index 09ccbad6cd7..4725d8143b4 100644
--- a/pkgs/applications/editors/wxhexeditor/default.nix
+++ b/pkgs/applications/editors/wxhexeditor/default.nix
@@ -26,11 +26,10 @@ stdenv.mkDerivation rec {
       url = https://github.com/EUA/wxHexEditor/commit/d0fa3ddc3e9dc9b05f90b650991ef134f74eed01.patch;
       sha256 = "1wcb70hrnhq72frj89prcqylpqs74xrfz3kdfdkq84p5qfz9svyj";
     })
+    ./missing-semicolon.patch
   ];
 
-  buildPhase = ''
-    make OPTFLAGS="-fopenmp"
-  '';
+  makeFlags = [ "OPTFLAGS=-fopenmp" ];
 
   meta = {
     description = "Hex Editor / Disk Editor for Huge Files or Devices";
diff --git a/pkgs/applications/editors/wxhexeditor/missing-semicolon.patch b/pkgs/applications/editors/wxhexeditor/missing-semicolon.patch
new file mode 100644
index 00000000000..75722c9c7c5
--- /dev/null
+++ b/pkgs/applications/editors/wxhexeditor/missing-semicolon.patch
@@ -0,0 +1,35 @@
+diff --git a/src/HexDialogs.cpp b/src/HexDialogs.cpp
+index 091a6f9..12e6a78 100644
+--- a/src/HexDialogs.cpp
++++ b/src/HexDialogs.cpp
+@@ -420,7 +420,7 @@ void FindDialog::OnChar( wxKeyEvent& event ){
+ 	}
+
+ void FindDialog::EventHandler( wxCommandEvent& event ){
+-	WX_CLEAR_ARRAY(parent->HighlightArray )
++	WX_CLEAR_ARRAY(parent->HighlightArray );
+ 	parent->HighlightArray.Shrink();
+
+ 	if( event.GetId() == btnFind->GetId())
+diff --git a/src/HexEditorCtrl/HexEditorCtrl.cpp b/src/HexEditorCtrl/HexEditorCtrl.cpp
+index 7a3b0e2..f12097f 100644
+--- a/src/HexEditorCtrl/HexEditorCtrl.cpp
++++ b/src/HexEditorCtrl/HexEditorCtrl.cpp
+@@ -64,9 +64,9 @@ HexEditorCtrl::~HexEditorCtrl( void ){
+ 	Dynamic_Disconnector();
+ 	Clear();
+
+-	WX_CLEAR_ARRAY(MainTagArray)
+-	WX_CLEAR_ARRAY(HighlightArray)
+-   WX_CLEAR_ARRAY(CompareArray)
++	WX_CLEAR_ARRAY(MainTagArray);
++	WX_CLEAR_ARRAY(HighlightArray);
++   WX_CLEAR_ARRAY(CompareArray);
+
+    MainTagArray.Shrink();
+    HighlightArray.Shrink();
+@@ -1224,4 +1224,3 @@ void wxHugeScrollBar::OnOffsetScroll( wxScrollEvent& event ){
+ #endif
+ 	event.Skip();
+ 	}
+-
diff --git a/pkgs/applications/graphics/azpainter/default.nix b/pkgs/applications/graphics/azpainter/default.nix
new file mode 100644
index 00000000000..b2060f5db31
--- /dev/null
+++ b/pkgs/applications/graphics/azpainter/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, autoreconfHook
+, libX11, libXext, libXi
+, freetype, fontconfig
+, libpng, libjpeg
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "azpainter";
+  version = "2.1.4";
+
+  src = fetchFromGitHub {
+    owner = "Symbian9";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    sha256 = "1hrr9lhsbjyzar3nxvli6cazr7zhyzh0p8hwpg4g9ga6njs8vi8m";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [
+    libX11 libXext libXi
+    freetype fontconfig
+    libpng libjpeg
+    zlib
+  ];
+
+  configureFlags = [
+    "--with-freetype-dir=${stdenv.lib.getDev freetype}/include/freetype2"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Full color painting software for illustration drawing";
+    homepage = "https://osdn.net/projects/azpainter";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index d8cf86461ac..2e821701216 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dbeaver-ce";
-  version = "6.1.4";
+  version = "6.1.5";
 
   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 = "1l4skcannbzddhm773dm3hwv3a7b3xy569gydcfczgdlgzgmlfjq";
+    sha256 = "0lkycm1152wd56i1hjq7q3sd05h51fyz99qr2n65lwi33vz2qk9m";
   };
 
   installPhase = ''
@@ -65,6 +65,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.asl20;
     platforms = [ "x86_64-linux" ];
-    maintainers = [ maintainers.samueldr ];
+    maintainers = [ maintainers.jojosch ];
   };
 }
diff --git a/pkgs/applications/misc/dfilemanager/default.nix b/pkgs/applications/misc/dfilemanager/default.nix
index 5df7c0b0672..1bfb6bbfeaf 100644
--- a/pkgs/applications/misc/dfilemanager/default.nix
+++ b/pkgs/applications/misc/dfilemanager/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchgit, cmake, file, qtbase, qttools, solid }:
+{ stdenv, mkDerivation, fetchgit, cmake, file, qtbase, qttools, solid }:
 
 let
   version = "git-2016-01-10";
 in
-stdenv.mkDerivation {
+mkDerivation {
   pname = "dfilemanager";
   inherit version;
   src = fetchgit {
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ cmake qtbase qttools file solid ];
 
-  cmakeFlags = "-DQT5BUILD=true";
+  cmakeFlags = [ "-DQT5BUILD=true" ];
 
   meta = {
     homepage = http://dfilemanager.sourceforge.net/;
diff --git a/pkgs/applications/misc/evtest/default.nix b/pkgs/applications/misc/evtest/default.nix
index 8982c41e1ca..393e09c5d48 100644
--- a/pkgs/applications/misc/evtest/default.nix
+++ b/pkgs/applications/misc/evtest/default.nix
@@ -1,14 +1,15 @@
 { stdenv, fetchgit, autoreconfHook, pkgconfig, libxml2 }:
 
 stdenv.mkDerivation {
-  name = "evtest-1.33";
+  pname = "evtest";
+  version = "1.34";
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
   buildInputs = [ libxml2 ];
 
   src = fetchgit {
-    url = "git://anongit.freedesktop.org/evtest";
-    rev = "refs/tags/evtest-1.33";
+    url = "git://anongit.freedesktop.org/${pname}";
+    rev = "refs/tags/${pname}-${version}";
     sha256 = "168gdhzj11f4nk94a6z696sm8v1njzwww69bn6wr97l17897913g";
   };
 
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index 6b57c74c123..169c5c11b8c 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.10.2";
+  version = "1.10.3";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "09q9l747vv6nrkscj08dv970qs6nm2azjcm015xf3bd5ab91l44r";
+    sha256 = "1ippn0zbjy69n178vh4wgyzy6723ynvj2w23mzqw7v2mzcvkhmdz";
   };
 
   doCheck = false;
diff --git a/pkgs/applications/misc/gpscorrelate/default.nix b/pkgs/applications/misc/gpscorrelate/default.nix
index 5bcaccb43bc..d10507b1044 100644
--- a/pkgs/applications/misc/gpscorrelate/default.nix
+++ b/pkgs/applications/misc/gpscorrelate/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   ];
 
   makeFlags = [
-    "prefix=${placeholder ''out''}"
+    "prefix=${placeholder "out"}"
     "GTK=3"
     "CC=cc"
     "CXX=c++"
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index 56b28dbc8db..4b70530987f 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "josm";
-  version = "15238";
+  version = "15322";
 
   src = fetchurl {
     url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-    sha256 = "0zh84glb4545av0s1qnccqqp8nrnfsr7rnwgbqpwwzvc2ngk91gv";
+    sha256 = "1i6cxs6rvqjwh7yfji5701xdzpnaxcv97gsd692fjrwasnsx1f1i";
   };
 
   buildInputs = [ jdk11 makeWrapper ];
diff --git a/pkgs/applications/misc/kjv/default.nix b/pkgs/applications/misc/kjv/default.nix
index 79f0b8dc6df..7868e74d010 100644
--- a/pkgs/applications/misc/kjv/default.nix
+++ b/pkgs/applications/misc/kjv/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   patches = [ add-apocrypha add-install-target ];
 
   makeFlags = [
-    "PREFIX=${placeholder ''out''}"
+    "PREFIX=${placeholder "out"}"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/plank/default.nix b/pkgs/applications/misc/plank/default.nix
index 10c8a03fa0a..dfc92e38f63 100644
--- a/pkgs/applications/misc/plank/default.nix
+++ b/pkgs/applications/misc/plank/default.nix
@@ -64,8 +64,8 @@ stdenv.mkDerivation rec {
 
   # fix paths
   makeFlags = [
-    "INTROSPECTION_GIRDIR=${placeholder ''out''}/share/gir-1.0/"
-    "INTROSPECTION_TYPELIBDIR=${placeholder ''out''}/lib/girepository-1.0"
+    "INTROSPECTION_GIRDIR=${placeholder "out"}/share/gir-1.0/"
+    "INTROSPECTION_TYPELIBDIR=${placeholder "out"}/lib/girepository-1.0"
   ];
 
   # Make plank's application launcher hidden in Pantheon
diff --git a/pkgs/applications/misc/rofi/default.nix b/pkgs/applications/misc/rofi/default.nix
index 94381d4f6f9..eabf77f0e95 100644
--- a/pkgs/applications/misc/rofi/default.nix
+++ b/pkgs/applications/misc/rofi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl
+{ stdenv, lib, fetchurl, makeWrapper
 , autoreconfHook, pkgconfig, libxkbcommon, pango, which, git
 , cairo, libxcb, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification
 , bison, flex, librsvg, check
@@ -19,11 +19,16 @@ stdenv.mkDerivation rec {
     sed -i 's/~root/~nobody/g' test/helper-expand.c
   '';
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig makeWrapper ];
   buildInputs = [ libxkbcommon pango cairo git bison flex librsvg check
     libstartup_notification libxcb xcbutil xcbutilwm xcbutilxrm which
   ];
 
+  postInstall = ''
+    wrapProgram $out/bin/rofi-theme-selector \
+      --prefix XDG_DATA_DIRS : $out/share
+  '';
+
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/roxterm/default.nix b/pkgs/applications/misc/roxterm/default.nix
index 1cff3635bf9..3dbe7790d18 100644
--- a/pkgs/applications/misc/roxterm/default.nix
+++ b/pkgs/applications/misc/roxterm/default.nix
@@ -1,55 +1,40 @@
-{ stdenv, fetchurl, docbook_xsl, dbus, dbus-glib, expat
-, gsettings-desktop-schemas, gdk-pixbuf, gtk3, hicolor-icon-theme
-, imagemagick, itstool, librsvg, libtool, libxslt, makeWrapper
-, pkgconfig, python, pythonPackages, vte
-, wrapGAppsHook}:
+{ at-spi2-core, cmake, dbus, dbus-glib, docbook_xsl, epoxy, fetchpatch, fetchFromGitHub
+, glib, gtk3, harfbuzz, hicolor-icon-theme, libXdmcp, libXtst, libpthreadstubs
+, libselinux, libsepol, libtasn1, libxkbcommon, libxslt, p11-kit, pcre
+, pkgconfig, stdenv, utillinuxMinimal, vte, wrapGAppsHook, xmlto
+}:
 
-# TODO: Still getting following warning.
-# WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
-# Seems related to this:
-# https://forums.gentoo.org/viewtopic-t-947210-start-0.html
-
-let version = "3.3.2";
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "roxterm";
-  inherit version;
+  version = "3.7.5";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/roxterm/${pname}-${version}.tar.xz";
-    sha256 = "0vjh7k4jm4bd01j88w9bmvq27zqsajjzy131fpi81zkii5lisl1k";
+  src = fetchFromGitHub {
+    owner = "realh";
+    repo = "roxterm";
+    rev = version;
+    sha256 = "042hchvgk9jzz035zsgnfhh8105zvspbzz6b78waylsdlgqn0pp1";
   };
 
-  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
-
-  buildInputs =
-    [ docbook_xsl expat imagemagick itstool librsvg libtool libxslt
-      makeWrapper python pythonPackages.lockfile dbus dbus-glib
-      gdk-pixbuf gsettings-desktop-schemas gtk3
-      hicolor-icon-theme vte ];
-
-  NIX_CFLAGS_COMPILE = [ "-I${dbus-glib.dev}/include/dbus-1.0"
-                         "-I${dbus.dev}/include/dbus-1.0"
-                         "-I${dbus.lib}/lib/dbus-1.0/include" ];
-
-  # Fix up python path so the lockfile library is on it.
-  PYTHONPATH = stdenv.lib.makeSearchPathOutput "lib" python.sitePackages [
-    pythonPackages.lockfile
+  patches = [
+    # This is the commit directly after v3.7.5.  It is needed to get roxterm to
+    # build correctly.  It can be removed when v3.7.6 (or v3.8.0) has been
+    # released.
+    (fetchpatch {
+      url = "https://github.com/realh/roxterm/commit/f7c38fd48bd1810e16d82794bdfb61a9760a2fe1.patch";
+      sha256 = "1v77b7ilgf8zy1npxxcyc06mq6lck6bi6lw4aksnq3mi61n5znmx";
+    })
   ];
 
-  buildPhase = ''
-    # Fix up the LD_LIBRARY_PATH so that expat is on it
-    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${expat.out}/lib"
-
-    python mscript.py configure --prefix="$out" --disable-nls --disable-translations
-    python mscript.py build
-  '';
+  nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook libxslt ];
 
-  installPhase = ''
-    python mscript.py install
-  '';
+  buildInputs =
+    [ gtk3 dbus dbus-glib vte pcre harfbuzz libpthreadstubs libXdmcp
+      utillinuxMinimal glib hicolor-icon-theme docbook_xsl xmlto libselinux
+      libsepol libxkbcommon epoxy at-spi2-core libXtst libtasn1 p11-kit
+    ];
 
   meta = with stdenv.lib; {
-    homepage = http://roxterm.sourceforge.net/;
+    homepage = "https://github.com/realh/roxterm";
     license = licenses.gpl3;
     description = "Tabbed, VTE-based terminal emulator";
     longDescription = ''
diff --git a/pkgs/applications/misc/web-media-controller/default.nix b/pkgs/applications/misc/web-media-controller/default.nix
index 6ed2ff10aaa..e381af4f403 100644
--- a/pkgs/applications/misc/web-media-controller/default.nix
+++ b/pkgs/applications/misc/web-media-controller/default.nix
@@ -14,9 +14,9 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [ glib pcre json-glib ];
   cmakeFlags = [
-    "-DCHROMIUM_MANIFEST_DESTINATION=${placeholder ''out''}/etc/chromium/native-messaging-hosts"
-    "-DCHROME_MANIFEST_DESTINATION=${placeholder ''out''}/etc/opt/chrome/native-messaging-hosts"
-    "-DFIREFOX_MANIFEST_DESTINATION=${placeholder ''out''}/lib/mozilla/native-messaging-hosts"
+    "-DCHROMIUM_MANIFEST_DESTINATION=${placeholder "out"}/etc/chromium/native-messaging-hosts"
+    "-DCHROME_MANIFEST_DESTINATION=${placeholder "out"}/etc/opt/chrome/native-messaging-hosts"
+    "-DFIREFOX_MANIFEST_DESTINATION=${placeholder "out"}/lib/mozilla/native-messaging-hosts"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/wtf/default.nix b/pkgs/applications/misc/wtf/default.nix
index 52462d1c1f3..1b4c4ac6a34 100644
--- a/pkgs/applications/misc/wtf/default.nix
+++ b/pkgs/applications/misc/wtf/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "wtf";
-  version = "0.20.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "wtfutil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03k3x3fnxz23b75n5x8mlr6srr063q3dwq05wh55b4bgqsf7lgzd";
+    sha256 = "0sd8vrx7nak0by4whdmd9jzr66zm48knv1w1aqi90709fv98brm9";
   };
 
   modSha256 = "1nqnjpkrjbb75yfbzh3v3vc4xy5a2aqm9jr40hwq589a4l9p5pw2";
diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index f2cc277f3da..7bb443e22c3 100644
--- a/pkgs/applications/networking/browsers/links2/default.nix
+++ b/pkgs/applications/networking/browsers/links2/default.nix
@@ -8,12 +8,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.19";
+  version = "2.20";
   pname = "links2";
 
   src = fetchurl {
     url = "${meta.homepage}/download/links-${version}.tar.bz2";
-    sha256 = "02ls11c02p7xvsdjyb43rrzr850i1yly003r812z0w5vv5yqqxbh";
+    sha256 = "0bchwqa87dc8cb55spyybkqpc456pp4x2n9aw587wr7pn96cvp9v";
   };
 
   buildInputs = with stdenv.lib;
diff --git a/pkgs/applications/networking/cluster/kubectl/default.nix b/pkgs/applications/networking/cluster/kubectl/default.nix
index 40d42408679..fed40523a9b 100644
--- a/pkgs/applications/networking/cluster/kubectl/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl/default.nix
@@ -9,8 +9,6 @@ stdenv.mkDerivation {
 
   outputs = [ "out" "man" ];
 
-  doBuild = false;
-
   installPhase = ''
     mkdir -p \
       "$out/bin" \
diff --git a/pkgs/applications/networking/dropbox/cli.nix b/pkgs/applications/networking/dropbox/cli.nix
index 54ed0f2eea0..9b3b99708df 100644
--- a/pkgs/applications/networking/dropbox/cli.nix
+++ b/pkgs/applications/networking/dropbox/cli.nix
@@ -53,11 +53,11 @@ stdenv.mkDerivation {
   ];
 
   configureFlags = [
-    "--with-nautilus-extension-dir=${placeholder ''nautilusExtension''}/lib/nautilus/extensions-3.0"
+    "--with-nautilus-extension-dir=${placeholder "nautilusExtension"}/lib/nautilus/extensions-3.0"
   ];
 
   makeFlags = [
-    "EMBLEM_DIR=${placeholder ''nautilusExtension''}/share/nautilus-dropbox/emblems"
+    "EMBLEM_DIR=${placeholder "nautilusExtension"}/share/nautilus-dropbox/emblems"
   ];
 
   meta = {
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 5b847163a2a..7bfe697105e 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -3,19 +3,19 @@
 let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
-      version = "1.2.1";
+      version = "1.2.2";
       name = "${stname}-${version}";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "0q1x6kd5kaij8mvs6yll2vqfzrbb31y5hpg6g5kjc8gngwv4rl6v";
+        sha256 = "0zkyjnjrla0vpvidwwr4z4kxc9cyjcfbjdzsr34xz7rw3jswswm9";
       };
 
       goPackagePath = "github.com/syncthing/syncthing";
 
-      modSha256 = "1daixrpdj97ck02853hwp8l158sja5a7a37h0gdbwb1lgf5hsn05";
+      modSha256 = "0pp2gjx227crggph924q7sg6ak8nyl8nlsffpmawq4zl1908lsrd";
 
       patches = [
         ./add-stcli-target.patch
diff --git a/pkgs/applications/office/gnucash/cmake_check_symbol_exists.patch b/pkgs/applications/office/gnucash/cmake_check_symbol_exists.patch
new file mode 100644
index 00000000000..5e0ae68e17c
--- /dev/null
+++ b/pkgs/applications/office/gnucash/cmake_check_symbol_exists.patch
@@ -0,0 +1,12 @@
+Index: gnucash-3.6/gnucash/register/register-gnome/CMakeLists.txt
+===================================================================
+--- gnucash-3.6.orig/gnucash/register/register-gnome/CMakeLists.txt
++++ gnucash-3.6/gnucash/register/register-gnome/CMakeLists.txt
+@@ -1,6 +1,7 @@
+ add_subdirectory(test)
+ 
+ #GTK before 3.14 didn't have GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK
++include(CheckSymbolExists)
+ check_symbol_exists(GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK gdk/gdktypes.h have_mod_mask)
+ if (NOT have_mod_mask)
+ if (MAC_INTEGRATION)
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index d3ab02fabd3..3abc447f6e9 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -47,6 +47,8 @@ stdenv.mkDerivation rec {
   # Should probably be removed next version bump
   CXXFLAGS = [ "-Wno-deprecated-declarations" ];
 
+  patches = [ ./cmake_check_symbol_exists.patch ];
+
   postPatch = ''
     patchShebangs .
   '';
diff --git a/pkgs/applications/science/electronics/eagle/eagle.nix b/pkgs/applications/science/electronics/eagle/eagle.nix
index 3168fc19d05..2b28f2c06db 100644
--- a/pkgs/applications/science/electronics/eagle/eagle.nix
+++ b/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -36,9 +36,6 @@ let
         qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
       ];
 
-    doConfigure = false;
-    doBuild = false;
-
     installPhase = ''
       # Extract eagle tarball
       mkdir "$out"
diff --git a/pkgs/applications/science/electronics/fped/default.nix b/pkgs/applications/science/electronics/fped/default.nix
index 97812ce0bbf..4eb666ada7c 100644
--- a/pkgs/applications/science/electronics/fped/default.nix
+++ b/pkgs/applications/science/electronics/fped/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
 
   # This uses '/bin/bash', '/usr/local' and 'lex' by default
   makeFlags = [
-    "PREFIX=${placeholder ''out''}"
+    "PREFIX=${placeholder "out"}"
     "LEX=flex"
     "RGBDEF=${netpbm}/share/netpbm/misc/rgb.txt"
   ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix b/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
index abb09ff9a45..df0b1e78d27 100644
--- a/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   makeFlags = [
-    "PREFIX=${placeholder ''out''}"
+    "PREFIX=${placeholder "out"}"
     "ENABLE_MAN=yes"
     "DOCBOOK_XSL=${docbook_xsl}/share/xml/docbook-xsl-nons/manpages/docbook.xsl"
   ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix b/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
index 24a1e1ac937..b196d39b46f 100644
--- a/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
@@ -21,9 +21,9 @@ stdenv.mkDerivation rec {
   ];
 
   makeFlags = [
-    "PREFIX=${placeholder ''out''}"
-    "INSTALL_LIB=${placeholder ''out''}/bin"
-    "INSTALL_MAN=${placeholder ''out''}/share/man/man1"
+    "PREFIX=${placeholder "out"}"
+    "INSTALL_LIB=${placeholder "out"}/bin"
+    "INSTALL_MAN=${placeholder "out"}/share/man/man1"
   ];
 
   patches = [
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index f022722584c..773c63b0036 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -43,15 +43,15 @@ assert vdpauSupport -> libvdpau != null;
 assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
 
 let
-  kodiReleaseDate = "20190627";
-  kodiVersion = "18.3";
+  kodiReleaseDate = "20190901";
+  kodiVersion = "18.4";
   rel = "Leia";
 
   kodi_src = fetchFromGitHub {
     owner  = "xbmc";
     repo   = "xbmc";
     rev    = "${kodiVersion}-${rel}";
-    sha256 = "18fbl5hs3aqccrn0m3x7hp95wlafjav0yvrwmb5q3gj24mwf6jld";
+    sha256 = "1m0295czxabdcqyqf5m94av9d88pzhnzjvyfs1q07xqq82h313p7";
   };
 
   cmakeProto = fetchurl {
diff --git a/pkgs/applications/video/mplayer/default.nix b/pkgs/applications/video/mplayer/default.nix
index 28f734fa7ee..0afdbe047cc 100644
--- a/pkgs/applications/video/mplayer/default.nix
+++ b/pkgs/applications/video/mplayer/default.nix
@@ -59,20 +59,21 @@ let
   codecs_src =
     let
       dir = http://www.mplayerhq.hu/MPlayer/releases/codecs/;
+      version = "20071007";
     in
     if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
-      url = "${dir}/essential-20071007.tar.bz2";
+      url = "${dir}/essential-${version}.tar.bz2";
       sha256 = "18vls12n12rjw0mzw4pkp9vpcfmd1c21rzha19d7zil4hn7fs2ic";
     } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl {
-      url = "${dir}/essential-amd64-20071007.tar.bz2";
+      url = "${dir}/essential-amd64-${version}.tar.bz2";
       sha256 = "13xf5b92w1ra5hw00ck151lypbmnylrnznq9hhb0sj36z5wz290x";
     } else if stdenv.hostPlatform.system == "powerpc-linux" then fetchurl {
-      url = "${dir}/essential-ppc-20071007.tar.bz2";
+      url = "${dir}/essential-ppc-${version}.tar.bz2";
       sha256 = "18mlj8dp4wnz42xbhdk1jlz2ygra6fbln9wyrcyvynxh96g1871z";
     } else null;
 
   codecs = if codecs_src != null then stdenv.mkDerivation {
-    name = "MPlayer-codecs-essential-20071007";
+    pname = "MPlayer-codecs-essential";
 
     src = codecs_src;
 
@@ -89,11 +90,12 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "mplayer-1.3.0";
+  pname = "mplayer";
+  version = "1.4";
 
   src = fetchurl {
-    url = "http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.3.0.tar.xz";
-    sha256 = "0hwqn04bdknb2ic88xd75smffxx63scvz0zvwvjb56nqj9n89l1s";
+    url = "http://www.mplayerhq.hu/MPlayer/releases/MPlayer-${version}.tar.xz";
+    sha256 = "0j5mflr0wnklxsvnpmxvk704hscyn2785hvvihj2i3a7b3anwnc2";
   };
 
   prePatch = ''
@@ -218,6 +220,6 @@ stdenv.mkDerivation {
     homepage = http://mplayerhq.hu;
     license = "GPL";
     maintainers = [ stdenv.lib.maintainers.eelco ];
-    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/pkgs/applications/video/openshot-qt/default.nix b/pkgs/applications/video/openshot-qt/default.nix
index 0b1d9e95115..1c5359e5f0c 100644
--- a/pkgs/applications/video/openshot-qt/default.nix
+++ b/pkgs/applications/video/openshot-qt/default.nix
@@ -1,7 +1,14 @@
-{ stdenv, mkDerivationWith, fetchFromGitHub
+{ stdenv, mkDerivationWith, fetchFromGitHub, fetchpatch
 , doxygen, python3Packages, libopenshot
 , wrapGAppsHook, gtk3 }:
 
+let
+  fixPermissions = fetchpatch rec {
+    url = https://github.com/OpenShot/openshot-qt/pull/2973.patch;
+    sha256 = "037rh0p3k4sdzprlpyb73byjq3qhqk5zd0d4iin6bq602r8bbp0n";
+  };
+in
+
 mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "openshot-qt";
   version = "2.4.4";
@@ -13,6 +20,8 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
     sha256 = "0mg63v36h7l8kv2sgf6x8c1n3ygddkqqwlciz7ccxpbm4x1idqba";
   };
 
+  patches = [ fixPermissions ];
+
   nativeBuildInputs = [ doxygen wrapGAppsHook ];
 
   buildInputs = [ gtk3 ];
diff --git a/pkgs/applications/virtualization/cbfstool/default.nix b/pkgs/applications/virtualization/cbfstool/default.nix
deleted file mode 100644
index 9cdaec1c698..00000000000
--- a/pkgs/applications/virtualization/cbfstool/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, fetchurl, iasl, flex, bison }:
-
-stdenv.mkDerivation rec {
-  pname = "cbfstool";
-  version = "4.9";
-
-  src = fetchurl {
-    url = "https://coreboot.org/releases/coreboot-${version}.tar.xz";
-    sha256 = "0xkai65d3z9fivwscbkm7ndcw2p9g794xz8fwdv979w77n5qsdij";
-  };
-
-  nativeBuildInputs = [ flex bison ];
-  buildInputs = [ iasl ];
-
-  buildPhase = ''
-    export LEX=${flex}/bin/flex
-    make -C util/cbfstool
-    '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp util/cbfstool/cbfstool $out/bin
-    cp util/cbfstool/fmaptool $out/bin
-    cp util/cbfstool/rmodtool $out/bin
-    '';
-
-  meta = with stdenv.lib; {
-    description = "Management utility for CBFS formatted ROM images";
-    homepage = https://www.coreboot.org;
-    license = licenses.gpl2;
-    maintainers = [ maintainers.tstrobel ];
-    platforms = platforms.linux;
-  };
-}
-
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 5ff8a1650ba..c092f1be006 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -56,8 +56,6 @@ stdenv.mkDerivation {
     }
   '';
 
-  doConfigure = false;
-
   buildPhase = ''
     # Build kernel modules.
     cd src
diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix
index 71a4ec3549a..f388c2d99db 100644
--- a/pkgs/applications/window-managers/icewm/default.nix
+++ b/pkgs/applications/window-managers/icewm/default.nix
@@ -1,36 +1,40 @@
-{ stdenv, fetchurl, cmake, gettext
+{ stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc
 , libjpeg, libtiff, libungif, libpng, imlib, expat
 , freetype, fontconfig, pkgconfig, gdk-pixbuf
 , mkfontdir, libX11, libXft, libXext, libXinerama
 , libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb
-, libpthreadstubs, pcre }:
+, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes
+, libsndfile, fribidi }:
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "icewm";
-  version = "1.4.2";
+  version = "1.6.0";
 
-  buildInputs =
-  [ cmake gettext libjpeg libtiff libungif libpng imlib expat
-    freetype fontconfig pkgconfig gdk-pixbuf mkfontdir libX11
-    libXft libXext libXinerama libXrandr libICE libSM libXpm
-    libXdmcp libxcb libpthreadstubs pcre ];
-
-  src = fetchurl {
-    url = "https://github.com/bbidulock/icewm/archive/${version}.tar.gz";
-    sha256 = "05chzjjnb4n4j05ld2gmhhr07c887qb4j9inwg9izhvml51af1bw";
+  src = fetchFromGitHub {
+    owner  = "bbidulock";
+    repo   = "icewm";
+    rev    = version;
+    sha256 = "1l8hjmb19d7ds7z21cx207h86wkjcmmmamcnalgkwh4alvbawc2p";
   };
 
-  preConfigure = ''
-    export cmakeFlags="-DPREFIX=$out -DCFGDIR=/etc/icewm"
-  '';
+  nativeBuildInputs = [ cmake pkgconfig perl asciidoc ];
 
-  patches = [ ./fix-strlcat_strlcpy.patch ] ++
-    stdenv.lib.optional stdenv.hostPlatform.isMusl ./musl.patch;
+  buildInputs = [
+    gettext libjpeg libtiff libungif libpng imlib expat
+    freetype fontconfig gdk-pixbuf mkfontdir libX11
+    libXft libXext libXinerama libXrandr libICE libSM libXpm
+    libXdmcp libxcb libpthreadstubs pcre libsndfile fribidi
+    libXdamage libXcomposite libXfixes
+  ];
+
+  cmakeFlags = [ "-DPREFIX=$out" "-DCFGDIR=/etc/icewm" ];
 
-  patchFlags = [ "-p0" ];
+  # install legacy themes
+  postInstall = ''
+    cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} $out/share/icewm/themes/
+  '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A simple, lightweight X window manager";
     longDescription = ''
       IceWM is a window manager for the X Window System. The goal of
diff --git a/pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch b/pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch
deleted file mode 100644
index 9721e125b05..00000000000
--- a/pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch
+++ /dev/null
@@ -1,236 +0,0 @@
---- src/apppstatus.cc	2017-07-30 10:59:06.000000000 +0200
-+++ src/apppstatus.cc	2017-08-09 09:12:54.332052762 +0200
-@@ -366,7 +366,7 @@
-             sscanf(p, "%s %s %s %s %s", val[0], val[1], val[2], val[3], val[4]);
-             for (i = 0; i < 4; i++) {
-                 if (strncmp(val[i+1], "?", 1) != 0)
--                    strlcpy(phoneNumber, val[i+1], sizeof phoneNumber);
-+                    my_strlcpy(phoneNumber, val[i+1], sizeof phoneNumber);
-             }
-         }
- 
---- src/base.h	2017-07-30 10:59:06.000000000 +0200
-+++ src/base.h	2017-08-09 09:11:13.082025484 +0200
-@@ -44,9 +44,9 @@
- /*** String Functions *********************************************************/
- 
- /* Prefer this as a safer alternative over strcpy. Return strlen(from). */
--size_t strlcpy(char *dest, const char *from, size_t dest_size);
-+size_t my_strlcpy(char *dest, const char *from, size_t dest_size);
- /* Prefer this over strcat. Return strlen(dest) + strlen(from). */
--size_t strlcat(char *dest, const char *from, size_t dest_size);
-+size_t my_strlcat(char *dest, const char *from, size_t dest_size);
- 
- char *newstr(char const *str);
- char *newstr(char const *str, int len);
---- src/gnome2.cc	2017-07-30 10:59:06.000000000 +0200
-+++ src/gnome2.cc	2017-08-09 09:11:21.819027846 +0200
-@@ -158,8 +158,8 @@
-     const int plen = strlen(fPath);
- 
-     char tmp[256];
--    strlcpy(tmp, fPath, sizeof tmp);
--    strlcat(tmp, "/.directory", sizeof tmp);
-+    my_strlcpy(tmp, fPath, sizeof tmp);
-+    my_strlcat(tmp, "/.directory", sizeof tmp);
- 
-     if (isDir && !stat(tmp, &sb)) { // looks like kde/gnome1 style
- 
-@@ -279,8 +279,8 @@
- 
-             while ((file = readdir(dir)) != NULL) {
-                 char fullpath[256];
--                strlcpy(fullpath, dirname, sizeof fullpath);
--                strlcat(fullpath, file->d_name, sizeof fullpath);
-+                my_strlcpy(fullpath, dirname, sizeof fullpath);
-+                my_strlcat(fullpath, file->d_name, sizeof fullpath);
-                 GnomeDesktopItem *ditem =
-                     gnome_desktop_item_new_from_file(fullpath,
-                                                      (GnomeDesktopItemLoadFlags)0,
---- src/icehelp.cc	2017-07-30 10:59:06.000000000 +0200
-+++ src/icehelp.cc	2017-08-09 09:11:31.490030459 +0200
-@@ -1790,8 +1790,8 @@
-     const size_t size = 9 + strlen(cfmt) + strlen(cstr) + strlen(crea);
-     char *cbuf = (char *)malloc(size);
-     snprintf(cbuf, size, cfmt, cstr);
--    strlcat(cbuf, ":\n ", size);
--    strlcat(cbuf, crea, size);
-+    my_strlcat(cbuf, ":\n ", size);
-+    my_strlcat(cbuf, crea, size);
- 
-     node *root = new node(node::div);
-     flist<node> nodes(root);
---- src/icesm.cc	2017-07-30 10:59:06.000000000 +0200
-+++ src/icesm.cc	2017-08-09 09:13:12.946057758 +0200
-@@ -28,10 +28,10 @@
-         wordexp_t w;
-         if (wordexp(trim(buf), &w, 0) != 0 || w.we_wordc == 0)
-             return false;
--        size_t len = strlcpy(buf, trim(w.we_wordv[0]), bufsiz);
-+        size_t len = my_strlcpy(buf, trim(w.we_wordv[0]), bufsiz);
-         for (size_t k = 1; k < w.we_wordc && len < bufsiz; ++k) {
--            strlcat(buf, " ", bufsiz);
--            len = strlcat(buf, trim(w.we_wordv[k]), bufsiz);
-+            my_strlcat(buf, " ", bufsiz);
-+            len = my_strlcat(buf, trim(w.we_wordv[k]), bufsiz);
-         }
-         wordfree(&w);
-         if (len >= bufsiz)
-@@ -39,7 +39,7 @@
- #else
-         char *str = trim(buf);
-         if (str > buf)
--            strlcpy(buf, str, bufsiz);
-+            my_strlcpy(buf, str, bufsiz);
- #endif
-         if (buf[0] == '#' || buf[0] == '=')
-             buf[0] = 0;
---- src/icesound.cc	2017-07-30 10:59:06.000000000 +0200
-+++ src/icesound.cc	2017-08-09 09:11:26.686029161 +0200
-@@ -145,8 +145,8 @@
-     char * findSample(int sid)  {
-         char basefname[1024];
- 
--        strlcpy(basefname, gui_events[sid].name, sizeof basefname);
--        strlcat(basefname, ".wav", sizeof basefname);
-+        my_strlcpy(basefname, gui_events[sid].name, sizeof basefname);
-+        my_strlcat(basefname, ".wav", sizeof basefname);
- 
-         return findSample(basefname);
-     }
---- src/misc.cc	2017-07-30 10:59:06.000000000 +0200
-+++ src/misc.cc	2017-08-09 09:13:39.372064834 +0200
-@@ -448,7 +448,7 @@
- #endif
- 
- /* Prefer this as a safer alternative over strcpy. Return strlen(from). */
--size_t strlcpy(char *dest, const char *from, size_t dest_size)
-+size_t my_strlcpy(char *dest, const char *from, size_t dest_size)
- {
-     const char *in = from;
-     if (dest_size > 0) {
-@@ -463,12 +463,12 @@
- }
- 
- /* Prefer this over strcat. Return strlen(dest) + strlen(from). */
--size_t strlcat(char *dest, const char *from, size_t dest_size)
-+size_t my_strlcat(char *dest, const char *from, size_t dest_size)
- {
-     char *to = dest;
-     char *const stop = to + dest_size - 1;
-     while (to < stop && *to) ++to;
--    return to - dest + strlcpy(to, from, dest_size - (to - dest));
-+    return to - dest + my_strlcpy(to, from, dest_size - (to - dest));
- }
- 
- char *newstr(char const *str) {
---- src/strtest.cc	2017-07-30 10:59:06.000000000 +0200
-+++ src/strtest.cc	2017-08-09 09:13:24.395060823 +0200
-@@ -286,63 +286,63 @@
-     strtest tester("strlc");
-     char d[10] = "@";
-     size_t n;
--    n = strlcpy(d, "", 0);
-+    n = my_strlcpy(d, "", 0);
-     sequal(d, "@");
-     assert(d, n == 0);
- 
--    n = strlcpy(d, "a", 0);
-+    n = my_strlcpy(d, "a", 0);
-     sequal(d, "@");
-     assert(d, n == 1);
- 
--    n = strlcpy(d, "", 1);
-+    n = my_strlcpy(d, "", 1);
-     sequal(d, "");
-     assert(d, n == 0);
- 
--    n = strlcpy(d, "a", 1);
-+    n = my_strlcpy(d, "a", 1);
-     sequal(d, "");
-     assert(d, n == 1);
- 
--    n = strlcpy(d, "a", 2);
-+    n = my_strlcpy(d, "a", 2);
-     sequal(d, "a");
-     assert(d, n == 1);
- 
--    n = strlcpy(d, "ab", 2);
-+    n = my_strlcpy(d, "ab", 2);
-     sequal(d, "a");
-     assert(d, n == 2);
- 
--    n = strlcpy(d, "ab", 3);
-+    n = my_strlcpy(d, "ab", 3);
-     sequal(d, "ab");
-     assert(d, n == 2);
- 
--    n = strlcpy(d, "abc", sizeof d);
-+    n = my_strlcpy(d, "abc", sizeof d);
-     sequal(d, "abc");
-     assert(d, n == 3);
- 
--    n = strlcat(d, "def", 4);
-+    n = my_strlcat(d, "def", 4);
-     sequal(d, "abc");
-     assert(d, n == 6);
- 
--    n = strlcat(d, "def", sizeof d);
-+    n = my_strlcat(d, "def", sizeof d);
-     sequal(d, "abcdef");
-     assert(d, n == 6);
- 
--    n = strlcat(d, "ghijkl", sizeof d);
-+    n = my_strlcat(d, "ghijkl", sizeof d);
-     sequal(d, "abcdefghi");
-     assert(d, n == 12);
- 
--    n = strlcpy(d, "123", sizeof d);
-+    n = my_strlcpy(d, "123", sizeof d);
-     sequal(d, "123");
-     assert(d, n == 3);
- 
--    n = strlcpy(d, d + 1, sizeof d);
-+    n = my_strlcpy(d, d + 1, sizeof d);
-     sequal(d, "23");
-     assert(d, n == 2);
- 
--    n = strlcpy(d, d + 1, sizeof d);
-+    n = my_strlcpy(d, d + 1, sizeof d);
-     sequal(d, "3");
-     assert(d, n == 1);
- 
--    n = strlcpy(d, d + 1, sizeof d);
-+    n = my_strlcpy(d, d + 1, sizeof d);
-     sequal(d, "");
-     assert(d, n == 0);
- }
-@@ -418,7 +418,7 @@
-         while (a.next()) {
-             const char *e = a.entry();
-             assert(e, strcoll(buf, e) < 0);
--            strlcpy(buf, e, sizeof buf);
-+            my_strlcpy(buf, e, sizeof buf);
-         }
-         assert(buf, strcoll(buf, "~~~~~~~~~") < 0);
-     }
-@@ -437,7 +437,7 @@
-             cstring c(s.entry());
-             const char *e = c.c_str();
-             assert(e, strcoll(buf, e) < 0);
--            strlcpy(buf, e, sizeof buf);
-+            my_strlcpy(buf, e, sizeof buf);
-         }
-         assert(buf, strcoll(buf, "~~~~~~~~~") < 0);
-     }
---- src/udir.cc	2017-07-30 10:59:06.000000000 +0200
-+++ src/udir.cc	2017-08-09 09:13:28.346061883 +0200
-@@ -66,7 +66,7 @@
-     if (impl) {
-         DirPtr dirp(impl);
-         if (dirp.next()) {
--            strlcpy(fEntry, dirp.name(), sizeof fEntry);
-+            my_strlcpy(fEntry, dirp.name(), sizeof fEntry);
-             return true;
-         }
-     }
diff --git a/pkgs/applications/window-managers/icewm/musl.patch b/pkgs/applications/window-managers/icewm/musl.patch
deleted file mode 100644
index e7d18e31287..00000000000
--- a/pkgs/applications/window-managers/icewm/musl.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- src/ylocale.cc	2017-07-30 10:59:06.000000000 +0200
-+++ src/ylocale.cc	2017-08-09 08:15:50.938841549 +0200
-@@ -55,6 +55,8 @@
-     int const codesetItems[] = {
- #ifdef CONFIG_NL_CODESETS
- 	CONFIG_NL_CODESETS
-+#elif !defined(__GLIBC__)
-+	CODESET, 0
- #else
- 	CODESET, _NL_CTYPE_CODESET_NAME, 0
- #endif
---- src/globit.c	2017-07-30 10:59:06.000000000 +0200
-+++ src/globit.c	2017-08-09 08:17:18.691824584 +0200
-@@ -143,7 +143,9 @@
- 	} else if (*pattern == '~') {
- 		/* yes, tilde */
- 		is_absolute = 2;
-+#if defined(__GLIBC__)
- 		glob_flags |= GLOB_TILDE;
-+#endif
- 		/* any slash in the pattern? */
- 		while (*cp && *cp != '/')
- 			++cp;
diff --git a/pkgs/build-support/nix-prefetch-github/default.nix b/pkgs/build-support/nix-prefetch-github/default.nix
index 3c5cbe2b492..10a6daaf53f 100644
--- a/pkgs/build-support/nix-prefetch-github/default.nix
+++ b/pkgs/build-support/nix-prefetch-github/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nix-prefetch-github";
-  version = "2.3";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "seppeljordan";
     repo = "nix-prefetch-github";
     rev = "v${version}";
-    sha256 = "0b2hgfyxhlqq6lyi5cr98dz6if5kl6b3kq67f2lzfkalydywl1dh";
+    sha256 = "13wvq13iiva97a16kahfpxar5ppb015nnbn7d4v9s9jyxdickc2c";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 0bfe14a8539..55df09121b4 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -381,4 +381,37 @@ rec {
   # Copy a list of paths to the Nix store.
   copyPathsToStore = builtins.map copyPathToStore;
 
+  /* Applies a list of patches to a source directory.
+   *
+   * Examples:
+   *
+   * # Patching nixpkgs:
+   * applyPatches {
+   *   src = pkgs.path;
+   *   patches = [
+   *     (pkgs.fetchpatch {
+   *       url = "https://github.com/NixOS/nixpkgs/commit/1f770d20550a413e508e081ddc08464e9d08ba3d.patch";
+   *       sha256 = "1nlzx171y3r3jbk0qhvnl711kmdk57jlq4na8f8bs8wz2pbffymr";
+   *     })
+   *   ];
+   * }
+   */
+  applyPatches =
+    { src
+    , name ? (if builtins.typeOf src == "path"
+              then builtins.baseNameOf src
+              else
+                if builtins.isAttrs src && builtins.hasAttr "name" src
+                then src.name
+                else throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute."
+             ) + "-patched"
+    , patches   ? []
+    , postPatch ? ""
+    }: stdenvNoCC.mkDerivation {
+      inherit name src patches postPatch;
+      preferLocalBuild = true;
+      allowSubstitutes = false;
+      phases = "unpackPhase patchPhase installPhase";
+      installPhase = "cp -R ./ $out";
+    };
 }
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index 3e5dda85dcc..962769b8144 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchzip }:
 
 let
-  version = "2.2.1";
+  version = "2.3.0";
 in fetchzip {
   name = "iosevka-bin-${version}";
 
@@ -12,7 +12,7 @@ in fetchzip {
     unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
   '';
 
-  sha256 = "0d5ys9k8adj9v1hpwbmjqshzpjlnyj81xwp0328vc5q8pvjcfly6";
+  sha256 = "0nry6zsmvcj44rijhbvrry84rh5hrixzb4n1mx9c27vvpy33a56w";
 
   meta = with stdenv.lib; {
     homepage = https://be5invis.github.io/Iosevka/;
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index 87c4afb986b..3500eaa6326 100644
--- a/pkgs/data/misc/hackage/default.nix
+++ b/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
 { fetchurl }:
 
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/2b4df08d487f0821b932f92392b67fe12dc1d42c.tar.gz";
-  sha256 = "02d06fr2jr69za5751z25c3x3zspiwdmlhmdmxaj1g48v00gbfag";
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/93bcfb09798da885d29304fa4dab1e234e3b728e.tar.gz";
+  sha256 = "1mv5kxqldakapzbmch2b88mynng268njq3dxbkmyzli8fwnllra2";
 }
diff --git a/pkgs/data/themes/materia-theme/default.nix b/pkgs/data/themes/materia-theme/default.nix
index ccdd1067302..9e69d78933b 100644
--- a/pkgs/data/themes/materia-theme/default.nix
+++ b/pkgs/data/themes/materia-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "materia-theme";
-  version = "20190315";
+  version = "20190831";
 
   src = fetchFromGitHub {
     owner = "nana-4";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1fpipwvwxjiriqhysqgx51rnax73hyd5jkyxhc2g3y73s5r2xq82";
+    sha256 = "19b2wyq38wj3id0an47jln1y3zp5ih3kbrgmfpjp6bbdrmfcyccf";
   };
 
   nativeBuildInputs = [ glib libxml2 bc ];
diff --git a/pkgs/desktops/deepin/dbus-factory/default.nix b/pkgs/desktops/deepin/dbus-factory/default.nix
index 3a0695f3fb8..2511f05c4ea 100644
--- a/pkgs/desktops/deepin/dbus-factory/default.nix
+++ b/pkgs/desktops/deepin/dbus-factory/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     go-dbus-generator
   ];
 
-  makeFlags = [ "GOPATH=${placeholder ''out''}/share/go" ];
+  makeFlags = [ "GOPATH=${placeholder "out"}/share/go" ];
 
   postPatch = ''
     sed -i -e 's:/share/gocode:/share/go:' Makefile
diff --git a/pkgs/desktops/deepin/deepin-anything/default.nix b/pkgs/desktops/deepin/deepin-anything/default.nix
index 619c66d9f5f..7c88102c5f3 100644
--- a/pkgs/desktops/deepin/deepin-anything/default.nix
+++ b/pkgs/desktops/deepin/deepin-anything/default.nix
@@ -30,7 +30,7 @@ mkDerivation rec {
 
   makeFlags = [
     "DEB_HOST_MULTIARCH="
-    "PREFIX=${placeholder ''out''}"
+    "PREFIX=${placeholder "out"}"
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix b/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
index b6c20ef7129..4f2427e8237 100644
--- a/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
+++ b/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     # fix default background url
     sed -i -e 's,/usr/share/backgrounds/default_background.jpg,/usr/share/backgrounds/deepin/desktop.jpg,' \
       overrides/common/com.deepin.wrap.gnome.desktop.override
-      
+
     fixPath ${deepin-wallpapers} /usr/share/backgrounds \
       overrides/common/com.deepin.wrap.gnome.desktop.override
 
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     #   /usr/share/desktop-directories
   '';
 
-  makeFlags = [ "PREFIX=${placeholder ''out''}" ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   doCheck = true;
   checkTarget = "test";
diff --git a/pkgs/desktops/deepin/deepin-gettext-tools/default.nix b/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
index f4f4ae2971a..67fcc36bcef 100644
--- a/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
+++ b/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     python3Packages.python
   ];
 
-  makeFlags = [ "PREFIX=${placeholder ''out''}" ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   postPatch = ''
     sed -e 's/sudo cp/cp/' -i src/generate_mo.py
diff --git a/pkgs/desktops/deepin/deepin-gtk-theme/default.nix b/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
index 4c0643a7ce5..8e2469a2c78 100644
--- a/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
+++ b/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
-  makeFlags = [ "PREFIX=${placeholder ''out''}" ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   passthru.updateScript = deepin.updateScript { inherit ;name = "${pname}-${version}"; };
 
diff --git a/pkgs/desktops/deepin/deepin-icon-theme/default.nix b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
index 8ecb25f5a2e..e63a228d0cb 100644
--- a/pkgs/desktops/deepin/deepin-icon-theme/default.nix
+++ b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   buildTargets = "all hicolor-links";
   installTargets = "install-icons install-cursors";
-  installFlags = [ "PREFIX=${placeholder ''out''}" ];
+  installFlags = [ "PREFIX=${placeholder "out"}" ];
 
   postInstall = ''
     cp -a ./Sea ./usr/share/icons/hicolor "$out"/share/icons/
diff --git a/pkgs/desktops/deepin/deepin-sound-theme/default.nix b/pkgs/desktops/deepin/deepin-sound-theme/default.nix
index 398be55398b..e61e91fc87c 100644
--- a/pkgs/desktops/deepin/deepin-sound-theme/default.nix
+++ b/pkgs/desktops/deepin/deepin-sound-theme/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1sw4nrn7q7wk1hpicm05apyc0mihaw42iqm52wb8ib8gm1qiylr9";
   };
 
-  makeFlags = [ "PREFIX=${placeholder ''out''}" ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   passthru.updateScript = deepin.updateScript { inherit ;name = "${pname}-${version}"; };
 
diff --git a/pkgs/desktops/deepin/go-dbus-factory/default.nix b/pkgs/desktops/deepin/go-dbus-factory/default.nix
index 1d97991dffd..d302cc3417f 100644
--- a/pkgs/desktops/deepin/go-dbus-factory/default.nix
+++ b/pkgs/desktops/deepin/go-dbus-factory/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "06fqyad9f50gcjsjkh7929yyaprahdjhnd0dr4gl2797a7wysl3f";
   };
 
-  makeFlags = [ "PREFIX=${placeholder ''out''}" ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   postPatch = ''
     sed -i -e 's:/share/gocode:/share/go:' Makefile
diff --git a/pkgs/desktops/deepin/go-dbus-generator/default.nix b/pkgs/desktops/deepin/go-dbus-generator/default.nix
index 2c63fd5ebe6..12562976490 100644
--- a/pkgs/desktops/deepin/go-dbus-generator/default.nix
+++ b/pkgs/desktops/deepin/go-dbus-generator/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   ];
 
   makeFlags = [
-    "PREFIX=${placeholder ''out''}"
+    "PREFIX=${placeholder "out"}"
     "GOCACHE=$(TMPDIR)/go-cache"
   ];
 
diff --git a/pkgs/desktops/deepin/go-gir-generator/default.nix b/pkgs/desktops/deepin/go-gir-generator/default.nix
index 68504d756b1..2f431bd941b 100644
--- a/pkgs/desktops/deepin/go-gir-generator/default.nix
+++ b/pkgs/desktops/deepin/go-gir-generator/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   makeFlags = [
-    "PREFIX=${placeholder ''out''}"
+    "PREFIX=${placeholder "out"}"
     "GOCACHE=$(TMPDIR)/go-cache"
   ];
 
diff --git a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix b/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
index d76bed1b9b7..4d0240c426b 100644
--- a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
+++ b/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
@@ -25,7 +25,7 @@ mkDerivation rec {
   ];
 
   qmakeFlags = [
-    "INSTALL_PATH=${placeholder ''out''}/${qtbase.qtPluginPrefix}/platforms"
+    "INSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms"
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index 16828f08bc2..6cc6848b316 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -57,8 +57,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
 #### DESKTOP
 
-  gvfs = pkgs.gvfs.override { gnome = self; };
-
   # Removed from recent GNOME releases, but still required
   scrollkeeper = callPackage ./desktop/scrollkeeper { };
 
@@ -78,7 +76,10 @@ lib.makeScope pkgs.newScope (self: with self; {
     glib glibmm atk atkmm cairo pango pangomm gdk_pixbuf gtkmm2 libcanberra-gtk2
 
     # Included for backwards compatibility
-    libsoup libwnck gtk-doc gnome-doc-utils rarian;
+    libsoup libwnck gtk-doc gnome-doc-utils rarian
+
+    gvfs # added 2019-09-03
+  ;
 
   gtk = pkgs.gtk2;
   gtkmm = pkgs.gtkmm2;
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index 4148843d4ab..7817936bfda 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -23,8 +23,8 @@ stdenv.mkDerivation rec {
   ];
 
   configureFlags = [
-    "--with-pkcs11-config=${placeholder ''out''}/etc/pkcs11/" # installation directories
-    "--with-pkcs11-modules=${placeholder ''out''}/lib/pkcs11/"
+    "--with-pkcs11-config=${placeholder "out"}/etc/pkcs11/" # installation directories
+    "--with-pkcs11-modules=${placeholder "out"}/lib/pkcs11/"
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
index 65f9fb0db80..2a425acb067 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
@@ -34,8 +34,8 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--with-httpd=${apacheHttpd.out}/bin/httpd"
     "--with-modules-path=${apacheHttpd.dev}/modules"
-    "--with-systemduserunitdir=${placeholder ''out''}/etc/systemd/user"
-    "--with-nautilusdir=${placeholder ''out''}/lib/nautilus/extensions-3.0"
+    "--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user"
+    "--with-nautilusdir=${placeholder "out"}/lib/nautilus/extensions-3.0"
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/mutter/3.28.nix b/pkgs/desktops/gnome-3/core/mutter/3.28.nix
index 262383bdda9..41527298ffb 100644
--- a/pkgs/desktops/gnome-3/core/mutter/3.28.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/3.28.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = pname;
-    rev = version;
-    sha256 = "0p8ky306dnm4alkncmsnd8r2awpsi37p0bzvkv313pgqw2hbwq9i";
+    rev = "74e3126b77eb5f27c0ae3f53b0aff2d2eebc15af"; # patches of tip from gnome-3-28 branch
+    sha256 = "0gw1n1w3i040w5mv30kkg7g8a59ymjlc5yaklip0ngg8xv76g0zi";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index 61219ca4488..eab0b131ea9 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, substituteAll, stdenv, pkgconfig, gnome3, gettext, gobject-introspection, upower, cairo
+{ fetchurl, fetchpatch, substituteAll, stdenv, pkgconfig, gnome3, gettext, gobject-introspection, upower, cairo
 , pango, cogl, clutter, libstartup_notification, zenity, libcanberra-gtk3
 , ninja, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libinput
 , gsettings-desktop-schemas, glib, gtk3, gnome-desktop
@@ -55,6 +55,13 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       inherit zenity;
     })
+    # Fix a segmentation fault in dri_flush_front_buffer() upon
+    # suspend/resume. This change should be removed when Mutter
+    # is updated to 3.34.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/mutter/commit/8307c0f7ab60760de53f764e6636893733543be8.diff";
+      sha256 = "1hzfva71xdqvvnx5smjsrjlgyrmc7dj94mpylkak0gwda5si0h2n";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 1f16ff9d0b5..21ecc7e64ee 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -53,10 +53,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gjs = callPackage ./core/gjs { };
 
-  glib-networking = pkgs.glib-networking.override {
-    inherit (pkgs) gsettings-desktop-schemas;
-  };
-
   gnome-backgrounds = callPackage ./core/gnome-backgrounds { };
 
   gnome-bluetooth = callPackage ./core/gnome-bluetooth { };
@@ -111,7 +107,7 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gucharmap = callPackage ./core/gucharmap { };
 
-  gvfs = pkgs.gvfs.override { gnome = gnome3; gnomeSupport = true; };
+  gvfs = pkgs.gvfs.override { gnomeSupport = true; };
 
   eog = callPackage ./core/eog { };
 
@@ -348,6 +344,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   inherit (pkgs) gsettings-desktop-schemas; # added 2019-04-16
   inherit (pkgs) gnome-video-effects; # added 2019-08-19
   inherit (pkgs) gnome-online-accounts grilo grilo-plugins tracker tracker-miners gnome-photos; # added 2019-08-23
+  inherit (pkgs) glib-networking; # added 2019-09-02
 
   defaultIconTheme = adwaita-icon-theme;
   gtk = gtk3;
diff --git a/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix b/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
new file mode 100644
index 00000000000..b38f0aeba91
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitLab, glib, gettext, substituteAll, gnome-menus }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-arc-menu";
+  version = "31";
+
+  src = fetchFromGitLab {
+    owner = "LinxGem33";
+    repo = "Arc-Menu";
+    rev = "v${version}-stable";
+    sha256 = "124jgdy6mw76nrkq3f0y7qkhdm39wg273zifdvwbgpvirwzxbia1";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix_gmenu.patch;
+      gmenu_path = "${gnome-menus}/lib/girepository-1.0";
+    })
+  ];
+
+  buildInputs = [
+    glib gettext
+  ];
+
+  makeFlags = [ "INSTALL_BASE=$(out)/share/gnome-shell/extensions" ];
+
+  meta = with stdenv.lib; {
+    description = "Gnome shell extension designed to replace the standard menu found in Gnome 3";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ dkabot ];
+    homepage = https://gitlab.com/LinxGem33/Arc-Menu;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch b/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
new file mode 100644
index 00000000000..7f6b8489ea8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
@@ -0,0 +1,12 @@
+--- a/extension.js
++++ b/extension.js
+@@ -29,6 +29,8 @@
+  * https://github.com/The-Panacea-Projects/Gnomenu
+  */
+ 
++
++imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@');
+ 
+ // Import Libraries
+ const Main = imports.ui.main;
+
diff --git a/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix b/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
index 30f9ad7d2ab..f7f189e23bd 100644
--- a/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-dash-to-panel";
-  version = "19";
+  version = "23";
 
   src = fetchFromGitHub {
     owner = "home-sweet-gnome";
     repo = "dash-to-panel";
     rev = "v${version}";
-    sha256 = "0r26ph6zq87kvglydv00rf24mshz7l4r38zf9niyp3mxyzz6rwys";
+    sha256 = "12smkz3clcvgicr0pdc0fk6igf82nw4hzih1ywv9q43xkqh9w1i6";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix b/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
index 745541b7cf4..d5bc0bbc83d 100644
--- a/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   uuid = "taskwhisperer-extension@infinicode.de";
 
   makeFlags = [
-    "INSTALLBASE=${placeholder ''out''}/share/gnome-shell/extensions"
+    "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions"
   ];
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
index 7bb162b7b8b..25e1347f1c9 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
@@ -68,7 +68,7 @@ in stdenv.mkDerivation rec {
   doCheck = true;
 
   configureFlags = [
-    "--with-libpanel-applet-dir=${placeholder ''out''}/share/gnome-panel/applets"
+    "--with-libpanel-applet-dir=${placeholder "out"}/share/gnome-panel/applets"
   ];
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index 3b85b123fd0..7a79f72f1a2 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Universal Access Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index bd6df460c04..3247aed4993 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     ./remove-update-button.patch
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard About Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index dca9cc662a2..ddb589c9e79 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Applications Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index d1663ad48cd..9f1c75b7b43 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Bluetooth Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index fb7ea18e88b..c0c7bbdec2e 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     ./clock-format.patch
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Date & Time Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index c15abfd8cb8..76cfe61fc77 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Displays Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index ba753af7e20..8b82543a0e5 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Keyboard Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index c3a88f47af0..a8556bd5401 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Mouse & Touchpad Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index 09d6da4f246..b3e4879fdae 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   ];
 
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Networking Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index e547f22fec1..a6112495469 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Notifications Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index a6462150f53..35dd958483d 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Desktop Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 3e43ad61a32..1c90cc0e662 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -66,10 +66,10 @@ stdenv.mkDerivation rec {
       --subst-var-by GSD_GSETTINGS_PATH ${glib.getSchemaPath elementary-settings-daemon}
   '';
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
-  PKG_CONFIG_DBUS_1_SYSTEM_BUS_SERVICES_DIR = "${placeholder ''out''}/share/dbus-1/system-services";
-  PKG_CONFIG_DBUS_1_SYSCONFDIR = "${placeholder ''out''}/etc";
-  PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder ''out''}/share/polkit-1/actions";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
+  PKG_CONFIG_DBUS_1_SYSTEM_BUS_SERVICES_DIR = "${placeholder "out"}/share/dbus-1/system-services";
+  PKG_CONFIG_DBUS_1_SYSCONFDIR = "${placeholder "out"}/etc";
+  PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions";
 
   meta = with stdenv.lib; {
     description = "Switchboard Power Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index 5c303e04982..d1feaaf0ea4 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Printers Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index eb50dafb210..fd67440a43c 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     zeitgeist
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   patches = [
     ./hardcode-gsettings.patch
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index b4aafb27006..87ae233916d 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Sharing Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index ed3518c764f..dee2f851e3f 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
     description = "Switchboard Sound Plug";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index 9f40c0f9e58..ae138c9215c 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -70,11 +70,11 @@ stdenv.mkDerivation rec {
    ];
 
   mesonFlags = [
-    "--sysconfdir=${placeholder ''out''}/etc"
+    "--sysconfdir=${placeholder "out"}/etc"
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   patches = [
     (substituteAll {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 7e73adcd7e9..36d1cf0e77a 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
 
   postPatch = ''
     chmod +x meson/post_install.py
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 1ab3c579e14..74408a4ed6d 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
 
   postPatch = ''
     chmod +x meson/post_install.py
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index 00a57cb9943..5431b982f54 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
 
   meta = with stdenv.lib; {
     description = "Keyboard Indicator for Wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index d5ce97df509..6ba19ebf77e 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
 
   meta = with stdenv.lib; {
     description = "Network Indicator for Wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index 0eab02bf8c8..0327d5e78e2 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
 
   meta = with stdenv.lib; {
     description = "Night Light Indicator for Wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index 78c901a2306..a4266a6f459 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
 
   meta = with stdenv.lib; {
     description = "Notifications Indicator for Wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index f63cca74a4d..9f9d4703060 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
 
   postPatch = ''
     chmod +x meson/post_install.py
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index b363cb5485a..f48638ff2b1 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
 
   meta = with stdenv.lib; {
     description = "Session Indicator for Wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index 6d0e791d1e4..038ab75094c 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
 
   postPatch = ''
     chmod +x meson/post_install.py
diff --git a/pkgs/desktops/pantheon/services/contractor/default.nix b/pkgs/desktops/pantheon/services/contractor/default.nix
index 6401b96a2ea..b10e97f77d7 100644
--- a/pkgs/desktops/pantheon/services/contractor/default.nix
+++ b/pkgs/desktops/pantheon/services/contractor/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     libgee
   ];
 
-  PKG_CONFIG_DBUS_1_SESSION_BUS_SERVICES_DIR = "${placeholder ''out''}/share/dbus-1/services";
+  PKG_CONFIG_DBUS_1_SESSION_BUS_SERVICES_DIR = "${placeholder "out"}/share/dbus-1/services";
 
   meta = with stdenv.lib; {
     description = "A desktop-wide extension service used by elementary OS";
diff --git a/pkgs/desktops/surf-display/default.nix b/pkgs/desktops/surf-display/default.nix
index f3554fe0b40..47b7e117206 100644
--- a/pkgs/desktops/surf-display/default.nix
+++ b/pkgs/desktops/surf-display/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
        --prefix PATH ':' ${stdenv.lib.makeBinPath buildInputs}
   '';
 
-  makeFlags = [ "PREFIX=${placeholder ''out''}" ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with stdenv.lib; {
     description = "Kiosk browser session manager based on the surf browser";
diff --git a/pkgs/desktops/xfce4-14/xfce4-session/default.nix b/pkgs/desktops/xfce4-14/xfce4-session/default.nix
index 055da7f245b..d44cd8b0dd7 100644
--- a/pkgs/desktops/xfce4-14/xfce4-session/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-session/default.nix
@@ -9,7 +9,7 @@ mkXfceDerivation {
 
   buildInputs = [ exo gtk3 glib libxfce4ui libxfce4util libwnck3 xfconf polkit iceauth ];
 
-  configureFlags = [ "--with-xsession-prefix=${placeholder ''out''}" ];
+  configureFlags = [ "--with-xsession-prefix=${placeholder "out"}" ];
 
   # See https://github.com/NixOS/nixpkgs/issues/36468
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index e5b36ad7890..e3d9ee98635 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sbcl";
-  version = "1.5.3";
+  version = "1.5.6";
 
   src = fetchurl {
     url    = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";
-    sha256 = "0334cfnvjy0ccq9p05mxrgawhww8wb73rp318qcsf9yj8h8r19yj";
+    sha256 = "10z43dc29p7s8dl3jixklhmzqfp7gcm3fccjdfd36qqhyfxqxx3a";
   };
 
   buildInputs = [texinfo];
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index f0e53b97266..7b173da2a91 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -77,6 +77,13 @@ self: super: {
     hinotify = if pkgs.stdenv.isLinux then self.hinotify else self.fsnotify;
   };
 
+  # compatibility with servant-0.16.2. Remove with the next release
+  cachix = appendPatch super.cachix (pkgs.fetchpatch {
+    url = "https://github.com/cachix/cachix/commit/051679a99cd56e2497c0f05310035b6649129a13.patch";
+    sha256 = "198n5byp9mfiymgzpvyd42l6vqy6hfy9kdi7svfx7mcwsy7sg7kp";
+    stripLen = 1;
+  });
+
   # Fix test trying to access /home directory
   shell-conduit = overrideCabal super.shell-conduit (drv: {
     postPatch = "sed -i s/home/tmp/ test/Spec.hs";
@@ -985,25 +992,17 @@ self: super: {
     '';
   });
 
-  # https://github.com/haskell-rewriting/term-rewriting/issues/11
-  term-rewriting = dontCheck (doJailbreak super.term-rewriting);
-
-  # https://github.com/nick8325/twee/pull/1
-  twee-lib = dontHaddock super.twee-lib;
+  # https://github.com/haskell-rewriting/term-rewriting/pull/15
+  # remove on next hackage update
+  term-rewriting = doJailbreak super.term-rewriting;
 
-  # Needs older hlint
-  hpio = dontCheck super.hpio;
-
-  # https://github.com/fpco/inline-c/issues/72
-  inline-c = dontCheck super.inline-c;
-
-  # https://github.com/GaloisInc/pure-zlib/issues/6
+  # https://github.com/GaloisInc/pure-zlib/pull/11
   pure-zlib = doJailbreak super.pure-zlib;
 
-  # https://github.com/strake/lenz-template.hs/issues/1
+  # https://github.com/strake/lenz-template.hs/pull/2
   lenz-template = doJailbreak super.lenz-template;
 
-  # https://github.com/haskell-hvr/resolv/issues/1
+  # https://github.com/haskell-hvr/resolv/pull/6
   resolv = dontCheck super.resolv;
   resolv_0_1_1_2 = dontCheck super.resolv_0_1_1_2;
 
@@ -1016,11 +1015,6 @@ self: super: {
     testSystemDepends = (drv.testSystemDepends or []) ++ [pkgs.which];
     preCheck = ''export PATH="$PWD/dist/build/alex:$PATH"'';
   });
-  arbtt = overrideCabal super.arbtt (drv: {
-    preCheck = ''
-      for n in $PWD/dist/build/*; do PATH+=":$n"; done
-    '';
-  });
 
   # This package refers to the wrong library (itself in fact!)
   vulkan = super.vulkan.override { vulkan = pkgs.vulkan-loader; };
@@ -1031,14 +1025,11 @@ self: super: {
   # };
 
   # https://github.com/dmwit/encoding/pull/3
-  encoding = appendPatch super.encoding ./patches/encoding-Cabal-2.0.patch;
+  encoding = doJailbreak (appendPatch super.encoding ./patches/encoding-Cabal-2.0.patch);
 
   # Work around overspecified constraint on github ==0.18.
   github-backup = doJailbreak super.github-backup;
 
-  # https://github.com/fpco/streaming-commons/issues/49
-  streaming-commons = dontCheck super.streaming-commons;
-
   # Test suite depends on old QuickCheck 2.10.x.
   cassava = dontCheck super.cassava;
 
@@ -1069,16 +1060,9 @@ self: super: {
       super.dhall-nix
   );
 
-  # https://github.com/well-typed/cborg/issues/174
-  cborg = doJailbreak super.cborg;
-  serialise = doJailbreak (dontCheck super.serialise);
-
   # https://github.com/haskell-hvr/netrc/pull/2#issuecomment-469526558
   netrc = doJailbreak super.netrc;
 
-  # https://github.com/phadej/tree-diff/issues/19
-  tree-diff = doJailbreak super.tree-diff;
-
   # https://github.com/haskell-hvr/hgettext/issues/14
   hgettext = doJailbreak super.hgettext;
 
@@ -1089,23 +1073,6 @@ self: super: {
   haddock-library = doJailbreak (dontCheck super.haddock-library);
   # haddock-library_1_6_0 = doJailbreak (dontCheck super.haddock-library_1_6_0);
 
-  # haskell-names-0.9.4: Break out of “tasty >=0.12 && <1.2”
-  haskell-names = doJailbreak super.haskell-names;
-
-  # hdocs-0.5.3.1: Break out of “haddock-api ==2.21.*”
-  # cannot use doJailbreak due to https://github.com/peti/jailbreak-cabal/issues/7
-  hdocs = overrideCabal super.hdocs (drv: {
-    postPatch = ''
-      sed -i 's#haddock-api == 2\.21\.\*,#haddock-api == 2.22.*,#' hdocs.cabal
-    '';
-  });
-
-  # Break out of tasty >=0.10 && <1.2.
-  aeson-compat = doJailbreak super.aeson-compat;
-
-  # Break out of pretty-show >=1.6 && <1.9
-  hedgehog = doJailbreak super.hedgehog;
-
   # Generate shell completion.
   cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix;
   stack = generateOptparseApplicativeCompletion "stack" (super.stack.overrideScope (self: super: {
@@ -1146,22 +1113,6 @@ self: super: {
   # Generate shell completions
   purescript = generateOptparseApplicativeCompletion "purs" super.purescript;
 
-  # https://github.com/adinapoli/mandrill/pull/52
-  mandrill = appendPatch super.mandrill (pkgs.fetchpatch {
-    url = https://github.com/adinapoli/mandrill/commit/30356d9dfc025a5f35a156b17685241fc3882c55.patch;
-    sha256 = "1qair09xs6vln3vsjz7sy4hhv037146zak4mq3iv6kdhmp606hqv";
-  });
-
-  # https://github.com/Euterpea/Euterpea2/pull/22
-  Euterpea = overrideSrc super.Euterpea {
-    src = pkgs.fetchFromGitHub {
-      owner = "Euterpea";
-      repo = "Euterpea2";
-      rev = "6f49b790adfb8b65d95a758116c20098fb0cd34c";
-      sha256 = "0qz1svb96n42nmig16vyphwxas34hypgayvwc91ri7w7xd6yi1ba";
-    };
-  };
-
   # https://github.com/kcsongor/generic-lens/pull/65
   generic-lens = dontCheck super.generic-lens;
 
@@ -1186,7 +1137,6 @@ self: super: {
 
   # Jailbreak tasty < 1.2: https://github.com/phadej/tdigest/issues/30
   tdigest = doJailbreak super.tdigest; # until tdigest > 0.2.1
-  these = doJailbreak super.these; # until these >= 0.7.6
 
   uri-bytestring = appendPatch super.uri-bytestring (pkgs.fetchpatch {
     url = "https://github.com/Soostone/uri-bytestring/commit/e5c5602a97160a6a6304a24947e33e47c9155460.patch";
@@ -1198,13 +1148,6 @@ self: super: {
     testToolDepends = (drv.testToolDepends or []) ++ [pkgs.postgresql];
     });
 
-  # https://github.com/sighingnow/computations/pull/1
-  primesieve = appendPatch super.primesieve (pkgs.fetchpatch {
-    url = "https://github.com/sighingnow/computations/commit/1f96788367c879b999afe733e2fe28d919d17702.patch";
-    sha256 = "0lrcmcrxp9imj9rfaq7mb0fn9mxms4gq4sz95n4san3dpd0qmj9x";
-    stripLen = 1;
-    });
-
   # Fix for base >= 4.11
   scat = overrideCabal super.scat (drv: {
     patches = [(pkgs.fetchpatch {
@@ -1239,9 +1182,6 @@ self: super: {
   # Fix build with attr-2.4.48 (see #53716)
   xattr = appendPatch super.xattr ./patches/xattr-fix-build.patch;
 
-  # Break out of pandoc >=2.0 && <2.7 (https://github.com/pbrisbin/yesod-markdown/pull/65)
-  yesod-markdown = doJailbreak super.yesod-markdown;
-
   # These packages needs network 3.x, which is not in LTS-13.x.
   network-bsd_2_8_1_0 = super.network-bsd_2_8_1_0.override { network = self.network_3_0_1_1; };
   lambdabot-core = super.lambdabot-core.overrideScope (self: super: { network = self.network_3_0_1_1; hslogger = self.hslogger_1_3_0_0; });
@@ -1270,9 +1210,6 @@ self: super: {
   # https://github.com/pruvisto/heap/issues/11
   heap = dontCheck super.heap;
 
-  # https://github.com/hslua/tasty-lua/issues/1
-  tasty-lua = dontCheck super.tasty-lua;
-
   # Test suite won't link for no apparent reason.
   constraints-deriving = dontCheck super.constraints-deriving;
 
@@ -1280,7 +1217,7 @@ self: super: {
   hlint = super.hlint.override { ghc-lib-parser = self.ghc-lib-parser_8_8_0_20190723; };
 
   # https://github.com/sol/hpack/issues/366
-  hpack = dontCheck super.hpack;
+  hpack = self.hpack_0_32_0;
 
   # QuickCheck >=2.3 && <2.13, hspec >=2.1 && <2.7
   graphviz = dontCheck super.graphviz;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index 2209f570732..0eb9d67e18c 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -59,7 +59,6 @@ self: super: {
   split = doJailbreak super.split;
   tasty-expected-failure = doJailbreak super.tasty-expected-failure;
   test-framework = doJailbreak super.test-framework;
-  th-lift = self.th-lift_0_8_0_1;
 
   # These packages don't work and need patching and/or an update.
   primitive = overrideSrc (doJailbreak super.primitive) {
@@ -82,18 +81,11 @@ self: super: {
       sed -i -e 's/time < 1.9/time < 2/' tar.cabal
     '';
   });
-  dlist = appendPatch (doJailbreak super.dlist) (pkgs.fetchpatch {
-    url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/dlist-0.8.0.6.patch";
-    sha256 = "0lkhibfxfk6mi796mrjgmbb50hbyjgc7xdinci64dahj8325jlpc";
-  });
   vector-th-unbox = appendPatch super.vector-th-unbox (pkgs.fetchpatch {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/vector-th-unbox-0.2.1.6.patch";
     sha256 = "0169yf9ms1g5mmkc5l6hpffzm34zdrqdng4df02nbdmfgba45h19";
   });
-  cabal-doctest = appendPatch  (doJailbreak super.cabal-doctest) (pkgs.fetchpatch {
-    url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/cabal-doctest-1.0.6.patch";
-    sha256 = "0735mkxhv557pgnfvdjakkw9r85l5gy28grdwg929m26ghbf9s8j";
-  });
+  cabal-doctest = super.cabal-doctest_1_0_7;
   regex-base = overrideCabal (appendPatch super.regex-base (pkgs.fetchpatch {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/regex-base-0.93.2.patch";
     sha256 = "01d1plrdx6hcspwn2h6y9pyi5366qk926vb5cl5qcl6x4m23l6y1";
@@ -104,15 +96,11 @@ self: super: {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/regex-posix-0.95.2.patch";
     sha256 = "006yli58jpqp786zm1xlncjsilc38iv3a09r4pv94l587sdzasd2";
   });
-  th-abstraction = appendPatch (doJailbreak super.th-abstraction) (pkgs.fetchpatch {
-    url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/th-abstraction-0.2.11.0.patch";
-    sha256 = "0czqfszfblz6bvsybcd1z5jijj79f9czqq6dn992wp2gibsbrgj3";
-  });
   zlib = appendPatch super.zlib (pkgs.fetchpatch {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/zlib-0.6.2.patch";
     sha256 = "13fy730z9ihyc9kw3qkh642mi0bdbd7bz01dksj1zz845pr9jjif";
   });
-  haskell-src-exts = appendPatch super.haskell-src-exts_1_21_0 (pkgs.fetchpatch {
+  haskell-src-exts = appendPatch super.haskell-src-exts (pkgs.fetchpatch {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/haskell-src-exts-1.21.0.patch";
     sha256 = "0alb28hcsp774c9s73dgrajcb44vgv1xqfg2n5a9y2bpyngqscs3";
   });
@@ -125,8 +113,8 @@ self: super: {
     sha256 = "0l8x0pbsn18fj5ak5q0g5rva4xw1s9yc4d86a1pfyaz467b9i5a4";
   });
   happy = appendPatch super.happy (pkgs.fetchpatch {
-    url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/happy-1.19.9.patch";
-    sha256 = "1zmcb7dgcwivq2mddcy1f20djw2kds1m7ahwsa4xpbbwnijc6zjx";
+    url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/happy-1.19.11.patch";
+    sha256 = "16m659kxbq0s87ak2y1pqggfy67yfvcwc0zi3hcphf3v8735xhkk";
   });
   hedgehog = appendPatch super.hedgehog (pkgs.fetchpatch {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/hedgehog-0.6.1.patch";
@@ -137,15 +125,10 @@ self: super: {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/regex-tdfa-1.2.3.1.patch";
     sha256 = "1lhas4s2ms666prb475gaw2bqw1v4y8cxi66sy20j727sx7ppjs7";
   });
-  unordered-containers = self.unordered-containers_0_2_10_0;
-  attoparsec = appendPatch super.attoparsec (pkgs.fetchpatch {
+  attoparsec = appendPatch (doJailbreak super.attoparsec) (pkgs.fetchpatch {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/attoparsec-0.13.2.2.patch";
     sha256 = "13i1p5g0xzxnv966nlyb77mfmxvg9jzbym1d36h1ajn045yf4igl";
   });
-  aeson = appendPatch (dontCheck super.aeson) (pkgs.fetchpatch {   # the test suite breaks the compiler
-    url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/aeson-1.4.3.0.patch";
-    sha256 = "1z6wmsmc682qs3y768r0zx493dxardwbsp0wdc4dsx83c0m5x66f";
-  });
   cassava = appendPatch super.cassava (pkgs.fetchpatch {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/cassava-0.5.1.0.patch";
     sha256 = "11scwwjp94si90vb8v5yr291g9qwv5l223z8y0g0lc63932bp63g";
@@ -154,9 +137,51 @@ self: super: {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/shakespeare-2.0.20.patch";
     sha256 = "1dgx41ylahj4wk8r422aik0d7qdpawdga4gqz905nvlnhqjla58y";
   });
+  socks = appendPatch super.socks (pkgs.fetchpatch {
+    url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/socks-0.6.0.patch";
+    sha256 = "1dsqmx0sw62x4glh43c0sbizd2y00v5xybiqadn96v6pmfrap5cp";
+  });
   lens = appendPatch (doJailbreak super.lens) (pkgs.fetchpatch {
     url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/lens-4.17.1.patch";
     sha256 = "0w89ipi6dfkx5vlw4a64hh6fd0bm9hg33mwpghliyyxik5jmilv1";
   });
-
+  polyparse = appendPatch (doJailbreak super.polyparse) (pkgs.fetchpatch {
+    url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/polyparse-1.12.1.patch";
+    sha256 = "01b2gnsq0x4fd9na8zpk6pajym55mbz64hgzawlwxdw0y6681kr5";
+  });
+  foundation = dontCheck super.foundation;
+  memory = overrideCabal (appendPatch super.memory (pkgs.fetchpatch {
+    url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/memory-0.14.18.patch";
+    sha256 = "16ar8921s3bi31y1az9zgyg0iaxxc2wvvwqjnl11a17p03wi6b29";
+  })) (drv: {
+    editedCabalFile = null;
+    preConfigure = ''
+      cp -v ${pkgs.fetchurl {url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/memory-0.14.18.cabal"; sha256 = "1325wny0irnq51rz0f4xgkvm01p6n4z5jid2jgpkhjac8a2sdgwl";}} memory.cabal
+    '';
+  });
+  chell = overrideCabal (doJailbreak super.chell) (_drv: {
+    broken = false;
+  });
+  th-expand-syns = doJailbreak super.th-expand-syns;
+  shelly = overrideCabal (appendPatch (doJailbreak super.shelly) (pkgs.fetchpatch {
+    url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/shelly-1.8.1.patch";
+    sha256 = "1kglbwrr4ra81v9x3bfsk5l6pyl0my2a1zkr3qjjx7acn0dfpgbc";
+  })) (drv: {
+    editedCabalFile = null;
+    preConfigure = ''
+      cp -v ${pkgs.fetchurl {url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/shelly-1.8.1.cabal"; sha256 = "0crf0m077wky76f5nav2p9q4fa5q4yhv5l4bq9hd073dzdaywhz0";}} shelly.cabal
+      sed -i -e 's/< 1.9,/< 2,/' shelly.cabal # bump time version
+    '';
+  });
+  system-fileio = doJailbreak super.system-fileio;
+  yaml = self.yaml_0_11_1_2;
+  haskell-src-meta = appendPatch (dontCheck (doJailbreak super.haskell-src-meta)) (pkgs.fetchpatch {
+    url = "https://gitlab.haskell.org/ghc/head.hackage/raw/master/patches/haskell-src-meta-0.8.2.patch";
+    sha256 = "146im1amywyl29kcldvgrxpwj22lrpzxysl7vc8rmn3hrq130dyc";
+  });
+  asn1-encoding = appendPatch (dontCheck (doJailbreak super.asn1-encoding)) (pkgs.fetchpatch {
+    url = "https://gitlab.haskell.org/ghc/head.hackage/raw/master/patches/asn1-encoding-0.9.5.patch";
+    sha256 = "0a3159rnaw6shjzdm46799crd4pxh33s23qy51xa7z6nv5q8wsb5";
+  });
+  tls = self.tls_1_5_1;
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 0a269acbdb6..c0f3ec25fe8 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -43,7 +43,7 @@ core-packages:
   - ghcjs-base-0
 
 default-package-overrides:
-  # LTS Haskell 14.3
+  # LTS Haskell 14.4
   - abstract-deque ==0.3
   - abstract-deque-tests ==0.3
   - abstract-par ==0.3.3
@@ -176,7 +176,7 @@ default-package-overrides:
   - bencoding ==0.4.5.1
   - between ==0.11.0.0
   - bibtex ==0.1.0.6
-  - bifunctors ==5.5.4
+  - bifunctors ==5.5.5
   - bimap ==0.4.0
   - bimap-server ==0.1.0.1
   - binary-bits ==0.5
@@ -264,7 +264,7 @@ default-package-overrides:
   - c2hs ==0.28.6
   - Cabal ==2.4.1.0
   - cabal2spec ==2.2.2.1
-  - cabal-doctest ==1.0.6
+  - cabal-doctest ==1.0.7
   - cabal-file-th ==0.2.6
   - cache ==0.1.1.2
   - cacophony ==0.10.1
@@ -511,7 +511,7 @@ default-package-overrides:
   - dependent-sum-template ==0.0.0.6
   - deque ==0.4.2.3
   - deriveJsonNoPrefix ==0.1.0.1
-  - deriving-compat ==0.5.6
+  - deriving-compat ==0.5.7
   - derulo ==1.0.5
   - detour-via-sci ==1.0.0
   - dhall ==1.24.0
@@ -547,7 +547,7 @@ default-package-overrides:
   - dockerfile ==0.2.0
   - docopt ==0.7.0.5
   - doctemplates ==0.2.2.1
-  - doctest ==0.16.1
+  - doctest ==0.16.2
   - doctest-discover ==0.2.0.0
   - doctest-driver-gen ==0.3.0.1
   - doldol ==0.4.1.2
@@ -629,7 +629,7 @@ default-package-overrides:
   - exact-pi ==0.5.0.1
   - exceptional ==0.3.0.0
   - exception-mtl ==0.4.0.1
-  - exceptions ==0.10.2
+  - exceptions ==0.10.3
   - exception-transformers ==0.4.0.7
   - executable-hash ==0.2.0.4
   - executable-path ==0.0.3.1
@@ -709,7 +709,7 @@ default-package-overrides:
   - format-numbers ==0.1.0.0
   - formatting ==6.3.7
   - foundation ==0.0.24
-  - free ==5.1.1
+  - free ==5.1.2
   - freenect ==1.2.1
   - freer-simple ==1.2.1.0
   - freetype2 ==0.1.2
@@ -778,7 +778,7 @@ default-package-overrides:
   - ghc-prof ==1.4.1.5
   - ghc-syntax-highlighter ==0.0.4.0
   - ghc-tcplugins-extra ==0.3
-  - ghc-typelits-extra ==0.3
+  - ghc-typelits-extra ==0.3.1
   - ghc-typelits-knownnat ==0.6
   - ghc-typelits-natnormalise ==0.6.2
   - ghost-buster ==0.1.1.0
@@ -944,7 +944,7 @@ default-package-overrides:
   - hruby ==0.3.8
   - hsass ==0.8.0
   - hs-bibutils ==6.7.0.0
-  - hsc2hs ==0.68.4
+  - hsc2hs ==0.68.6
   - hschema ==0.0.1.1
   - hschema-aeson ==0.0.1.1
   - hschema-prettyprinter ==0.0.1.1
@@ -1037,7 +1037,7 @@ default-package-overrides:
   - hw-fingertree ==0.1.1.0
   - hw-fingertree-strict ==0.1.1.1
   - hw-hedgehog ==0.1.0.3
-  - hw-hspec-hedgehog ==0.1.0.7
+  - hw-hspec-hedgehog ==0.1.0.8
   - hw-int ==0.0.0.3
   - hw-ip ==2.3.4.1
   - hw-json ==1.0.0.2
@@ -1512,7 +1512,7 @@ default-package-overrides:
   - pandoc-markdown-ghci-filter ==0.1.0.0
   - pandoc-pyplot ==2.1.5.1
   - pandoc-types ==1.17.6
-  - pantry ==0.1.1.1
+  - pantry ==0.1.1.2
   - parallel ==3.2.2.0
   - parallel-io ==0.3.3
   - paripari ==0.6.0.0
@@ -1568,11 +1568,11 @@ default-package-overrides:
   - pg-harness-client ==0.6.0
   - pg-harness-server ==0.6.2
   - pgp-wordlist ==0.1.0.3
-  - pg-transact ==0.1.0.1
+  - pg-transact ==0.1.2.0
   - phantom-state ==0.2.1.2
   - pid1 ==0.1.2.0
   - pinboard ==0.10.1.4
-  - pipes ==4.3.11
+  - pipes ==4.3.12
   - pipes-aeson ==0.4.1.8
   - pipes-attoparsec ==0.5.1.5
   - pipes-binary ==0.4.2
@@ -1731,7 +1731,7 @@ default-package-overrides:
   - read-editor ==0.1.0.2
   - read-env-var ==1.0.0.0
   - reanimate ==0.1.5.0
-  - reanimate-svg ==0.9.0.0
+  - reanimate-svg ==0.9.0.1
   - rebase ==1.3.1.1
   - record-dot-preprocessor ==0.2
   - record-hasfield ==1.0
@@ -1740,7 +1740,7 @@ default-package-overrides:
   - reducers ==3.12.3
   - refact ==0.3.0.2
   - references ==0.3.3.1
-  - reflection ==2.1.4
+  - reflection ==2.1.5
   - RefSerialize ==0.4.0
   - regex ==1.0.2.0
   - regex-applicative ==0.3.3.1
@@ -1785,7 +1785,7 @@ default-package-overrides:
   - rhine ==0.5.1.0
   - rhine-gloss ==0.5.1.0
   - rigel-viz ==0.2.0.0
-  - rio ==0.1.11.0
+  - rio ==0.1.12.0
   - rio-orphans ==0.1.1.0
   - rio-prettyprint ==0.1.0.0
   - roc-id ==0.1.0.0
@@ -1809,9 +1809,9 @@ default-package-overrides:
   - safe-json ==0.1.0
   - safe-money ==0.9
   - SafeSemaphore ==0.10.1
-  - salak ==0.3.5.1
-  - salak-toml ==0.3.5.1
-  - salak-yaml ==0.3.5.1
+  - salak ==0.3.5.3
+  - salak-toml ==0.3.5.3
+  - salak-yaml ==0.3.5.3
   - saltine ==0.1.0.2
   - salve ==1.0.6
   - sample-frame ==0.0.3
@@ -1843,7 +1843,7 @@ default-package-overrides:
   - selective ==0.3
   - semialign ==1
   - semigroupoid-extras ==5
-  - semigroupoids ==5.3.2
+  - semigroupoids ==5.3.3
   - semigroups ==0.18.5
   - semirings ==0.4.2
   - semiring-simple ==1.0.0.1
@@ -1879,6 +1879,7 @@ default-package-overrides:
   - servant-mock ==0.8.5
   - servant-multipart ==0.11.4
   - servant-pipes ==0.15
+  - servant-rawm ==0.3.1.0
   - servant-ruby ==0.9.0.0
   - servant-server ==0.16.2
   - servant-static-th ==0.2.2.0
@@ -1929,7 +1930,7 @@ default-package-overrides:
   - simplistic-generics ==0.1.0.0
   - since ==0.0.0
   - singleton-bool ==0.1.5
-  - singleton-nats ==0.4.2
+  - singleton-nats ==0.4.3
   - singletons ==2.5.1
   - siphash ==1.0.3
   - size-based ==0.1.2.0
@@ -1958,7 +1959,6 @@ default-package-overrides:
   - sox ==0.2.3.1
   - soxlib ==0.0.3.1
   - sparse-linear-algebra ==0.3.1
-  - sparse-tensor ==0.2.1
   - spatial-math ==0.5.0.1
   - special-values ==0.1.0.0
   - speculate ==0.3.5
@@ -2059,14 +2059,14 @@ default-package-overrides:
   - tagstream-conduit ==0.5.5.3
   - tao ==1.0.0
   - tao-example ==1.0.0
-  - tar ==0.5.1.0
+  - tar ==0.5.1.1
   - tar-conduit ==0.3.2
   - tardis ==0.4.1.0
   - tasty ==1.2.3
   - tasty-ant-xml ==1.1.6
   - tasty-dejafu ==2.0.0.1
   - tasty-discover ==4.2.1
-  - tasty-expected-failure ==0.11.1.1
+  - tasty-expected-failure ==0.11.1.2
   - tasty-golden ==2.3.2
   - tasty-hedgehog ==1.0.0.1
   - tasty-hspec ==1.1.5.1
@@ -2125,7 +2125,7 @@ default-package-overrides:
   - th-data-compat ==0.0.2.7
   - th-desugar ==1.9
   - these ==1.0.1
-  - th-expand-syns ==0.4.4.0
+  - th-expand-syns ==0.4.5.0
   - th-extras ==0.0.0.4
   - th-lift ==0.8.0.1
   - th-lift-instances ==0.1.14
@@ -2194,7 +2194,7 @@ default-package-overrides:
   - trivial-constraint ==0.6.0.0
   - true-name ==0.1.0.3
   - tsv2csv ==0.1.0.2
-  - ttl-hashtables ==1.3.1.0
+  - ttl-hashtables ==1.3.1.1
   - ttrie ==0.1.2.1
   - tuple ==0.3.0.2
   - tuples-homogenous-h98 ==0.1.1.0
@@ -2420,17 +2420,17 @@ default-package-overrides:
   - xmonad-extras ==0.15.1
   - xss-sanitize ==0.3.6
   - xxhash-ffi ==0.2.0.0
-  - yaml ==0.11.1.1
+  - yaml ==0.11.1.2
   - yeshql ==4.1.0.1
   - yeshql-core ==4.1.0.2
   - yeshql-hdbc ==4.1.0.2
   - yesod ==1.6.0
   - yesod-alerts ==0.1.3.0
-  - yesod-auth ==1.6.7
+  - yesod-auth ==1.6.8
   - yesod-auth-hashdb ==1.7.1.1
-  - yesod-auth-oauth2 ==0.6.1.1
+  - yesod-auth-oauth2 ==0.6.1.2
   - yesod-bin ==1.6.0.3
-  - yesod-core ==1.6.15
+  - yesod-core ==1.6.16
   - yesod-csp ==0.2.5.0
   - yesod-eventsource ==1.6.0
   - yesod-fb ==0.5.0
@@ -2461,7 +2461,7 @@ default-package-overrides:
   - zip-archive ==0.4.1
   - zippers ==0.3
   - zip-stream ==0.2.0.1
-  - zlib ==0.6.2
+  - zlib ==0.6.2.1
   - zlib-bindings ==0.1.1.5
   - zlib-lens ==0.1.2.1
   - zot ==0.0.3
@@ -3388,7 +3388,6 @@ broken-packages:
   - birch-beer
   - bird
   - BirdPP
-  - bisc
   - bisect-binary
   - bit-array
   - bit-stream
@@ -3593,8 +3592,6 @@ broken-packages:
   - cabin
   - cabocha
   - cached
-  - cachix
-  - cachix-api
   - cacophony
   - caffegraph
   - cairo-core
@@ -4548,7 +4545,6 @@ broken-packages:
   - Empty
   - empty-monad
   - enchant
-  - encoding
   - encoding-io
   - engine-io-growler
   - engine-io-snap
@@ -4620,7 +4616,6 @@ broken-packages:
   - euler-tour-tree
   - euphoria
   - eurofxref
-  - Euterpea
   - eve
   - eve-cli
   - event
@@ -5378,7 +5373,6 @@ broken-packages:
   - hakyll-dir-list
   - hakyll-favicon
   - hakyll-filestore
-  - hakyll-images
   - hakyll-ogmarkup
   - hakyll-R
   - hakyll-sass
@@ -8776,7 +8770,6 @@ broken-packages:
   - servant-auth-token-leveldb
   - servant-auth-token-persistent
   - servant-auth-token-rocksdb
-  - servant-checked-exceptions
   - servant-cli
   - servant-client-namedargs
   - servant-csharp
@@ -8805,7 +8798,6 @@ broken-packages:
   - servant-pushbullet-client
   - servant-py
   - servant-quickcheck
-  - servant-rawm
   - servant-reason
   - servant-reflex
   - servant-router
@@ -10208,7 +10200,6 @@ broken-packages:
   - xkcd
   - xleb
   - xlsior
-  - xlsx
   - xlsx-tabular
   - xlsx-templater
   - xml-catalog
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index eaa0f799f92..19295cc2752 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -1946,8 +1946,8 @@ self: {
      }:
      mkDerivation {
        pname = "BlastHTTP";
-       version = "1.4.0";
-       sha256 = "0gvgwjsqrbk42vmbsh47d8fiwbwhdbsk5mlqj99pfmqi8fddwdm3";
+       version = "1.4.1";
+       sha256 = "1h7bj9a6qfzwlclr39dvbcz4r8l8s7n53z6ir8wff5ssq2wvq4qd";
        libraryHaskellDepends = [
          base BiobaseBlast BiobaseFasta bytestring conduit either-unwrap
          HTTP http-conduit hxt mtl network transformers zip-archive
@@ -5372,8 +5372,6 @@ self: {
        ];
        description = "Library for computer music research and education";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "EventSocket" = callPackage
@@ -10598,6 +10596,8 @@ self: {
        pname = "HsYAML";
        version = "0.1.2.0";
        sha256 = "1pajfhj16559v64ixm8j7bvxdqmxg6c3c0z3wz7in8ckswgzfp54";
+       revision = "1";
+       editedCabalFile = "0j6qmmcz5yqh89hs2cq453maix50q61vl2h0ahj5lg02bygn42cf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -11409,8 +11409,8 @@ self: {
        pname = "JuicyPixels-scale-dct";
        version = "0.1.2";
        sha256 = "04rhrmjnh12hh2nz04k245avgdcwqfyjnsbpcrz8j9328j41nf7p";
-       revision = "2";
-       editedCabalFile = "0pp67ygrd3m6q8ry5229m1b2rhy401gb74368h09bqc6wa3g7ygv";
+       revision = "3";
+       editedCabalFile = "1dkmlrn4vncx6n1646q1z9gfvpbgk0blax1i8n16dl6y5j042xf1";
        libraryHaskellDepends = [
          base base-compat carray fft JuicyPixels
        ];
@@ -14261,8 +14261,8 @@ self: {
        pname = "OTP";
        version = "0.1.0.0";
        sha256 = "1r7vpc0bv89d70j6pc3z3vam93gahl4j0y5w8smknxwjliwqxkcb";
-       revision = "1";
-       editedCabalFile = "1bcp6mixf0yxn6qmql3zhyshpa55mkrfnxdb1ma6gvbs7h28lnin";
+       revision = "2";
+       editedCabalFile = "012yi2pvjjlk6vri5zj8a7pipscsfc6rgkw7s5qldqmvvwvrk64s";
        libraryHaskellDepends = [
          base bytestring cryptohash-sha1 cryptohash-sha256 cryptohash-sha512
          time
@@ -14427,8 +14427,8 @@ self: {
        pname = "OneTuple";
        version = "0.2.2";
        sha256 = "1p14cvjk3rgfc0xxcn7ffaajd2ii1ljnlayil2yyzgdwhlj70bnq";
-       revision = "2";
-       editedCabalFile = "1ii7hpmxi794xywx89agnvinxgral1rfn5hfnanr4zw26nczhcv3";
+       revision = "3";
+       editedCabalFile = "0m3a9fj2h0v529q3i1kq1jfbdj68wxsmhq65hgx2rwjpgb8cqf0z";
        libraryHaskellDepends = [ base ];
        description = "Singleton Tuple";
        license = stdenv.lib.licenses.bsd3;
@@ -15501,20 +15501,20 @@ self: {
 
   "PrimitiveArray" = callPackage
     ({ mkDerivation, aeson, base, binary, bits, cereal, cereal-vector
-     , containers, deepseq, DPutils, hashable, lens, log-domain, mtl
-     , OrderedBits, primitive, QuickCheck, smallcheck, tasty
-     , tasty-quickcheck, tasty-smallcheck, tasty-th, text, vector
+     , containers, criterion, deepseq, DPutils, hashable, lens
+     , log-domain, mtl, OrderedBits, primitive, QuickCheck, smallcheck
+     , tasty, tasty-quickcheck, tasty-smallcheck, tasty-th, text, vector
      , vector-binary-instances, vector-th-unbox
      }:
      mkDerivation {
        pname = "PrimitiveArray";
-       version = "0.9.1.1";
-       sha256 = "0q6i5754ysay2c4xs7m6hz69l35qd7irzxinmga431nvmbnqa21y";
+       version = "0.10.0.0";
+       sha256 = "0g9shj3zqk8rdp905di9i5g5bhga5msc7cs609fk3nkjm16ms0vi";
        libraryHaskellDepends = [
          aeson base binary bits cereal cereal-vector containers deepseq
          DPutils hashable lens log-domain mtl OrderedBits primitive
-         QuickCheck smallcheck tasty tasty-quickcheck tasty-smallcheck
-         tasty-th text vector vector-binary-instances vector-th-unbox
+         QuickCheck smallcheck text vector vector-binary-instances
+         vector-th-unbox
        ];
        testHaskellDepends = [
          aeson base binary bits cereal cereal-vector containers deepseq
@@ -15522,6 +15522,12 @@ self: {
          QuickCheck smallcheck tasty tasty-quickcheck tasty-smallcheck
          tasty-th text vector vector-binary-instances vector-th-unbox
        ];
+       benchmarkHaskellDepends = [
+         aeson base binary bits cereal cereal-vector containers criterion
+         deepseq DPutils hashable lens log-domain mtl OrderedBits primitive
+         QuickCheck smallcheck text vector vector-binary-instances
+         vector-th-unbox
+       ];
        description = "Efficient multidimensional arrays";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -15741,8 +15747,8 @@ self: {
      }:
      mkDerivation {
        pname = "PyF";
-       version = "0.8.0.1";
-       sha256 = "1bv57hi26nmrhcdr4hki62ycd0k5p0i0jdwcdcxi7vmhjavnyq08";
+       version = "0.8.0.2";
+       sha256 = "1i3axpca5myig7wwdy770k2jy85m4cfpvhxrrw41q31fyv67j98n";
        libraryHaskellDepends = [
          base containers haskell-src-exts haskell-src-meta megaparsec
          template-haskell text
@@ -16204,13 +16210,13 @@ self: {
      , ClustalParser, cmdargs, containers, directory, edit-distance
      , either-unwrap, filepath, hierarchical-clustering, HTTP
      , http-conduit, http-types, hxt, matrix, network, parsec, process
-     , pureMD5, random, split, Taxonomy, text, text-metrics, time
-     , transformers, vector, ViennaRNAParser
+     , pureMD5, random, silently, split, Taxonomy, text, text-metrics
+     , time, transformers, vector, ViennaRNAParser
      }:
      mkDerivation {
        pname = "RNAlien";
-       version = "1.6.0";
-       sha256 = "0pp9rim4k1gbc2dscqygi90c2721xc6q1fl2sqkfpafz30m022pq";
+       version = "1.7.0";
+       sha256 = "1yqf2i1q5s65i968ha4lhnn0njmgapb30sxwdq5rpf7wbw2f29by";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -16218,8 +16224,8 @@ self: {
          BlastHTTP bytestring cassava ClustalParser cmdargs containers
          directory edit-distance either-unwrap filepath
          hierarchical-clustering HTTP http-conduit http-types hxt matrix
-         network parsec process pureMD5 random Taxonomy text text-metrics
-         transformers vector ViennaRNAParser
+         network parsec process pureMD5 random silently Taxonomy text
+         text-metrics transformers vector ViennaRNAParser
        ];
        executableHaskellDepends = [
          base BiobaseFasta BiobaseTypes bytestring cassava cmdargs
@@ -20429,6 +20435,8 @@ self: {
        pname = "X";
        version = "0.3.0.0";
        sha256 = "0grjiznl8j44mq3m0jkhm9z7wcr4cywrnfmk92nk3g6ddhcyakkc";
+       revision = "1";
+       editedCabalFile = "1nbp0zci2sp07cr5j5xlh7gswcnj52z9dp6akh9xk4mzk3salxwq";
        libraryHaskellDepends = [
          base bytestring deepseq text text-short
        ];
@@ -24448,8 +24456,8 @@ self: {
        pname = "alex-tools";
        version = "0.4";
        sha256 = "0qyh3dr5nh7whv3qh431l8x4lx3nzkildlyl3xgnaxpbs8gr8sgi";
-       revision = "1";
-       editedCabalFile = "1dwr1w2zhbvwnjc65zzmwfmwb1yxxyyfrjypvqp3m7fpc7dg1nxg";
+       revision = "2";
+       editedCabalFile = "1hz7gdff15bxvx5jijgh6ih1m2v39nadfy2yjsb43c48p9hcn93z";
        libraryHaskellDepends = [ base deepseq template-haskell text ];
        description = "A set of functions for a common use case of Alex";
        license = stdenv.lib.licenses.isc;
@@ -30685,8 +30693,8 @@ self: {
        pname = "argon2";
        version = "1.3.0.1";
        sha256 = "1v0clf78hykdyhv81z8v3kwp86hjgqh6b8a7wfbjv0fyy55bwxry";
-       revision = "1";
-       editedCabalFile = "1bqzf2cfpd03sl3wq9dnrcxaysbs116ib33ja0v8zi4szddm33jv";
+       revision = "2";
+       editedCabalFile = "0y1dg4dp3f40ghh2zcn1s4l19i8pjs0d1zpbghy4aaar4npiqxz7";
        libraryHaskellDepends = [ base bytestring deepseq text-short ];
        testHaskellDepends = [
          base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck
@@ -30966,12 +30974,12 @@ self: {
        broken = true;
      }) {inherit (pkgs) arpack;};
 
-  "array_0_5_3_0" = callPackage
+  "array_0_5_4_0" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "array";
-       version = "0.5.3.0";
-       sha256 = "07pyr2x09n23rdxldqgbx12hlg9dk92q9p56bpcdw3r87ajc3m9z";
+       version = "0.5.4.0";
+       sha256 = "1ixqnwxd36l2j3873hwnfip17k2nzncbvsx7pnprqzv9z59mf4rv";
        libraryHaskellDepends = [ base ];
        description = "Mutable and immutable arrays";
        license = stdenv.lib.licenses.bsd3;
@@ -31596,8 +31604,8 @@ self: {
        pname = "asn1-data";
        version = "0.7.2";
        sha256 = "18dc4d71pvp5q6npxicqqj3fk6n39lm98450vvhgg4y9rc1rr6c3";
-       revision = "1";
-       editedCabalFile = "18qjn7asld26nlri6md4z3kmyvarvvg5wi7rwsg4ngrxw4gbqhqm";
+       revision = "2";
+       editedCabalFile = "0xnj367rxj21gnxq7d5qih54g0zwwyc6r6gaaijikhprppbvjjvy";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -31614,6 +31622,8 @@ self: {
        pname = "asn1-encoding";
        version = "0.9.5";
        sha256 = "0adgbamyq0mj1l1hdq4zyyllay714bac1wl0rih3fv1z6vykp1hy";
+       revision = "1";
+       editedCabalFile = "0vsw8rd6fxd87rx3jyh3bb96sjd7ag0mrlylhkcmgaps2ma8sw5b";
        libraryHaskellDepends = [ asn1-types base bytestring hourglass ];
        testHaskellDepends = [
          asn1-types base bytestring hourglass mtl tasty tasty-quickcheck
@@ -32673,8 +32683,8 @@ self: {
        pname = "atto-lisp";
        version = "0.2.2.3";
        sha256 = "00a7w4jysx55y5xxmgm09akvhxxa3fs68wqn6mp789bvhvdk9khd";
-       revision = "1";
-       editedCabalFile = "0im8kc54hkfj578ck79j0ijc3iaigvx06pgj4sk8za26ryy7v46q";
+       revision = "2";
+       editedCabalFile = "065v6vllvwvm0zpkra7bl2hpz1lnhara13965p75pzdppv8ghd6w";
        libraryHaskellDepends = [
          attoparsec base blaze-builder blaze-textual bytestring containers
          deepseq text
@@ -32739,6 +32749,35 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "attoparsec_0_13_2_3" = callPackage
+    ({ mkDerivation, array, base, bytestring, case-insensitive
+     , containers, criterion, deepseq, directory, filepath, ghc-prim
+     , http-types, parsec, QuickCheck, quickcheck-unicode, scientific
+     , tasty, tasty-quickcheck, text, transformers, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "attoparsec";
+       version = "0.13.2.3";
+       sha256 = "1ngjn9h5n0vyki0m2jir4mg85875ysswy9hznpmj1r856mqwc6ix";
+       libraryHaskellDepends = [
+         array base bytestring containers deepseq scientific text
+         transformers
+       ];
+       testHaskellDepends = [
+         array base bytestring deepseq QuickCheck quickcheck-unicode
+         scientific tasty tasty-quickcheck text transformers vector
+       ];
+       benchmarkHaskellDepends = [
+         array base bytestring case-insensitive containers criterion deepseq
+         directory filepath ghc-prim http-types parsec scientific text
+         transformers unordered-containers vector
+       ];
+       description = "Fast combinator parsing for bytestrings and text";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "attoparsec-arff" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring }:
      mkDerivation {
@@ -33174,46 +33213,41 @@ self: {
      }) {};
 
   "aura" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, algebraic-graphs, array
-     , async, aur, base, base-prelude, bytestring, compactable
-     , containers, directory, errors, filepath, freer-simple
-     , generic-lens, http-client, http-client-tls, http-types
-     , language-bash, megaparsec, microlens, microlens-ghc, mtl
-     , mwc-random, network-uri, non-empty-containers
+    ({ mkDerivation, aeson, aeson-pretty, algebraic-graphs, aur, base
+     , base-prelude, bytestring, compactable, containers, directory
+     , errors, filepath, fused-effects, generic-lens, http-client
+     , http-client-tls, http-types, language-bash, megaparsec, microlens
+     , microlens-ghc, mwc-random, network-uri, nonempty-containers
      , optparse-applicative, paths, pretty-simple, prettyprinter
-     , prettyprinter-ansi-terminal, semigroupoids, stm, tasty
-     , tasty-hunit, text, throttled, time, transformers, typed-process
-     , versions, witherable
+     , prettyprinter-ansi-terminal, scheduler, semigroupoids, stm, tasty
+     , tasty-hunit, text, these, time, transformers, typed-process
+     , unliftio, versions
      }:
      mkDerivation {
        pname = "aura";
-       version = "2.0.0";
-       sha256 = "1k53r44kxy7p23nsjbx12mvn7nkl8j3h9fzy4v3dxyqkd4jz0996";
-       revision = "1";
-       editedCabalFile = "1z73n5fcrp23hms0l6r45p1knqqlng8g4gfb44a4raqj7da823zj";
+       version = "2.0.2";
+       sha256 = "1r11dzyy7z759ch664cml6lywh7033s6qrv56mkn41kn91jrl3qy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty algebraic-graphs array async aur base
-         base-prelude bytestring compactable containers directory errors
-         filepath freer-simple generic-lens http-client http-types
-         language-bash megaparsec microlens microlens-ghc mtl mwc-random
-         network-uri non-empty-containers paths pretty-simple prettyprinter
-         prettyprinter-ansi-terminal semigroupoids stm text throttled time
-         transformers typed-process versions witherable
+         aeson aeson-pretty algebraic-graphs aur base base-prelude
+         bytestring compactable containers directory errors filepath
+         fused-effects generic-lens http-client http-types language-bash
+         megaparsec microlens microlens-ghc mwc-random network-uri
+         nonempty-containers paths prettyprinter prettyprinter-ansi-terminal
+         scheduler semigroupoids stm text these time transformers
+         typed-process unliftio versions
        ];
        executableHaskellDepends = [
-         base base-prelude bytestring containers errors freer-simple
-         http-client http-client-tls language-bash microlens
-         non-empty-containers optparse-applicative paths pretty-simple
-         prettyprinter prettyprinter-ansi-terminal text transformers
-         typed-process versions
+         base base-prelude bytestring containers errors fused-effects
+         http-client http-client-tls microlens nonempty-containers
+         optparse-applicative paths pretty-simple prettyprinter
+         prettyprinter-ansi-terminal text transformers typed-process
+         versions
        ];
        testHaskellDepends = [
-         base base-prelude bytestring containers errors freer-simple
-         http-client language-bash megaparsec microlens non-empty-containers
-         paths pretty-simple prettyprinter prettyprinter-ansi-terminal tasty
-         tasty-hunit text transformers typed-process versions
+         base base-prelude bytestring containers megaparsec microlens paths
+         tasty tasty-hunit text versions
        ];
        description = "A secure package manager for Arch Linux and the AUR, written in Haskell";
        license = stdenv.lib.licenses.gpl3;
@@ -35448,8 +35482,8 @@ self: {
        pname = "base-encoding";
        version = "0.1.0.0";
        sha256 = "1chmx5qvglf91i0c9ih9xydzb37v8j4bykvmb2g6pyg7wdq0s8si";
-       revision = "1";
-       editedCabalFile = "0miysladpqwm5qhphv23qhvambd7245n14qbkgvp664xj56y6df1";
+       revision = "2";
+       editedCabalFile = "0flfvs03zs7k04x7yhsc3jiw3zpnx7n3637jyy10flpqv90fy6sx";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring text
        ];
@@ -35786,6 +35820,8 @@ self: {
        pname = "basement";
        version = "0.0.11";
        sha256 = "0srlws74yiraqaapgcjd9p5d1fwb3zr9swcz74jpjm55fls2nn37";
+       revision = "2";
+       editedCabalFile = "1l95bzmn23cmx386hk3d3r0ykdaibh9rp489lcnba5g56kiy4hxg";
        libraryHaskellDepends = [ base ghc-prim ];
        description = "Foundation scrap box of array & string";
        license = stdenv.lib.licenses.bsd3;
@@ -36777,6 +36813,8 @@ self: {
        pname = "bencode";
        version = "0.6.0.0";
        sha256 = "12pnh598k30ggs54f0pic19j7ji8f4xn7fydkdnlig79rvzgv3iv";
+       revision = "1";
+       editedCabalFile = "0nvph7frmrra9k57v01saxgnhf1ma3m8qzwj1i53pswssfnj41mv";
        libraryHaskellDepends = [
          base binary bytestring containers parsec
        ];
@@ -37214,30 +37252,6 @@ self: {
      }:
      mkDerivation {
        pname = "bifunctors";
-       version = "5.5.4";
-       sha256 = "134vn71wd194175k2fcdvd0ak2bdmdbk6ql5lls4byff7zs2rmi9";
-       revision = "1";
-       editedCabalFile = "05qh2xh2j3w5f1q94wfgfp06z9c4fyrgm4cncy6y2lbb1ficsh3j";
-       libraryHaskellDepends = [
-         base base-orphans comonad containers tagged template-haskell
-         th-abstraction transformers
-       ];
-       testHaskellDepends = [
-         base hspec QuickCheck template-haskell transformers
-         transformers-compat
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Bifunctors";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "bifunctors_5_5_5" = callPackage
-    ({ mkDerivation, base, base-orphans, comonad, containers, hspec
-     , hspec-discover, QuickCheck, tagged, template-haskell
-     , th-abstraction, transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "bifunctors";
        version = "5.5.5";
        sha256 = "0rn47q8dzv0g1fyams99p4py6q0asxdc50q9k0nj497brk738xcb";
        libraryHaskellDepends = [
@@ -37251,7 +37265,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Bifunctors";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bighugethesaurus" = callPackage
@@ -39248,8 +39261,6 @@ self: {
        ];
        description = "A small tool that clears qutebrowser cookies";
        license = stdenv.lib.licenses.gpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "bisect-binary" = callPackage
@@ -42247,6 +42258,33 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "brick_0_49" = callPackage
+    ({ mkDerivation, base, bytestring, config-ini, containers
+     , contravariant, data-clist, deepseq, directory, dlist, filepath
+     , microlens, microlens-mtl, microlens-th, QuickCheck, stm
+     , template-haskell, text, text-zipper, transformers, unix, vector
+     , vty, word-wrap
+     }:
+     mkDerivation {
+       pname = "brick";
+       version = "0.49";
+       sha256 = "1jlxzizxgmdsjd0x146kcmp92x7gjn0vkj0lc5dplbgshlg5hfhd";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring config-ini containers contravariant data-clist
+         deepseq directory dlist filepath microlens microlens-mtl
+         microlens-th stm template-haskell text text-zipper transformers
+         unix vector vty word-wrap
+       ];
+       testHaskellDepends = [
+         base containers microlens QuickCheck vector
+       ];
+       description = "A declarative terminal user interface library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "brick-dropdownmenu" = callPackage
     ({ mkDerivation, base, brick, containers, microlens, microlens-ghc
      , microlens-th, pointedlist, vector, vty
@@ -42675,6 +42713,8 @@ self: {
        pname = "brotli";
        version = "0.0.0.0";
        sha256 = "1l9qiw5cl0k1rcnqnj9pb7vgj1b06wckkk5i73nqr15ixgcjmr9j";
+       revision = "1";
+       editedCabalFile = "0fw26rv8i9zz4qyr32paz2y0psdppdaz427jp8mpbanwmg763024";
        libraryHaskellDepends = [ base bytestring transformers ];
        libraryPkgconfigDepends = [ libbrotlidec libbrotlienc ];
        testHaskellDepends = [
@@ -44099,14 +44139,16 @@ self: {
      }) {};
 
   "bytestring-progress" = callPackage
-    ({ mkDerivation, base, bytestring, terminal-progress-bar, time }:
+    ({ mkDerivation, base, bytestring, terminal-progress-bar, text
+     , time
+     }:
      mkDerivation {
        pname = "bytestring-progress";
-       version = "1.2";
-       sha256 = "195vsqpmaycxi0k7kk1hasrklnblr3psllc288vkh77pbnfm3vqi";
+       version = "1.4";
+       sha256 = "140dn6zyc1ka8vjxwd6zzc3mwd651zrawcwk3d5ipfxrgddf9bws";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base bytestring terminal-progress-bar time
+         base bytestring terminal-progress-bar text time
        ];
        description = "A library for tracking the consumption of a lazy ByteString";
        license = stdenv.lib.licenses.bsd3;
@@ -44891,25 +44933,11 @@ self: {
     ({ mkDerivation, base, Cabal, directory, filepath }:
      mkDerivation {
        pname = "cabal-doctest";
-       version = "1.0.6";
-       sha256 = "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny";
-       revision = "2";
-       editedCabalFile = "1kbiwqm4fxrsdpcqijdq98h8wzmxydcvxd03f1z8dliqzyqsbd60";
-       libraryHaskellDepends = [ base Cabal directory filepath ];
-       description = "A Setup.hs helper for doctests running";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "cabal-doctest_1_0_7" = callPackage
-    ({ mkDerivation, base, Cabal, directory, filepath }:
-     mkDerivation {
-       pname = "cabal-doctest";
        version = "1.0.7";
        sha256 = "1v5dlwsxd9kdll07x5apnf76j2g2pqfp138pacc64j6agrgyv00h";
        libraryHaskellDepends = [ base Cabal directory filepath ];
        description = "A Setup.hs helper for doctests running";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cabal-file-th" = callPackage
@@ -45922,8 +45950,6 @@ self: {
        ];
        description = "Command line client for Nix binary cache hosting https://cachix.org";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "cachix-api" = callPackage
@@ -45959,8 +45985,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Servant HTTP API specification for https://cachix.org";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "cacophony" = callPackage
@@ -46404,27 +46428,25 @@ self: {
 
   "camfort" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
-     , directory, fgl, filepath, flint, fortran-src, GenericPretty
-     , ghc-prim, happy, hmatrix, hspec, hspec-discover, lattices, lens
-     , matrix, mmorph, mtl, optparse-applicative, parallel, pretty
-     , QuickCheck, sbv, silently, singletons, strict, syb, syz
-     , template-haskell, temporary, text, time, transformers, uniplate
-     , vector, verifiable-expressions, vinyl, writer-cps-morph
-     , writer-cps-mtl, writer-cps-transformers
+     , deepseq, directory, fgl, filepath, flint, fortran-src
+     , GenericPretty, ghc-prim, happy, hmatrix, hspec, hspec-discover
+     , lattices, lens, matrix, mmorph, mtl, optparse-applicative
+     , parallel, pipes, pretty, QuickCheck, sbv, silently, singletons
+     , strict, syb, syz, template-haskell, temporary, text, time
+     , transformers, uniplate, vector, verifiable-expressions, vinyl
      }:
      mkDerivation {
        pname = "camfort";
-       version = "0.906";
-       sha256 = "164zrga458nmlyxaaa9wa0x1vamrlf1w1jisnwp87khkw8622nyi";
+       version = "1.0";
+       sha256 = "1lgsn1jin57677j8xia7ga4pdvs0yrs9spdmm9rbncxcz5c3nf52";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         array base binary bytestring containers directory fgl filepath
-         fortran-src GenericPretty ghc-prim hmatrix lattices lens matrix
-         mmorph mtl parallel pretty sbv singletons strict syb syz
-         template-haskell text transformers uniplate vector
-         verifiable-expressions vinyl writer-cps-morph writer-cps-mtl
-         writer-cps-transformers
+         array base binary bytestring containers deepseq directory fgl
+         filepath fortran-src GenericPretty ghc-prim hmatrix lattices lens
+         matrix mmorph mtl parallel pipes pretty sbv singletons strict syb
+         syz template-haskell text transformers uniplate vector
+         verifiable-expressions vinyl
        ];
        librarySystemDepends = [ flint ];
        libraryToolDepends = [ alex happy ];
@@ -46493,8 +46515,8 @@ self: {
     ({ mkDerivation, arithmoi, array, base, containers, random }:
      mkDerivation {
        pname = "canon";
-       version = "0.1.1.2";
-       sha256 = "181c09kh76104b23hf52b049cc6clww1y9kffw1f0hnkxhds9n84";
+       version = "0.1.1.3";
+       sha256 = "1fc6vszr5j6iamjw07q2i1a96hsafx12zmqf3pr4aykan94vw6za";
        libraryHaskellDepends = [ arithmoi array base containers random ];
        description = "Arithmetic for Psychedelically Large Numbers";
        license = stdenv.lib.licenses.mit;
@@ -46522,6 +46544,8 @@ self: {
        pname = "canonical-json";
        version = "0.6.0.0";
        sha256 = "0lb847hvgkn49g6rvmavk14brvvpiy6q5fswk3cm9rc53hbq02zz";
+       revision = "1";
+       editedCabalFile = "18i3msxza5phvv5mz7gjqcygrm8rxd86pk2vqnsa715qrhsz88ch";
        libraryHaskellDepends = [
          base bytestring containers deepseq parsec pretty
        ];
@@ -47513,8 +47537,8 @@ self: {
        pname = "cassava";
        version = "0.5.1.0";
        sha256 = "0xs2c5lpy0g5lsmp2cx0dm5lnxij7cgry6xd5gsn3bfdlap8lb3n";
-       revision = "2";
-       editedCabalFile = "13mbhan3agzf8ki8hcac1xf50h9nbzx2b47zjqrch2050v6xa351";
+       revision = "3";
+       editedCabalFile = "0q9hwcn5jr5vs52n246qw8iw9jmc1d3dla071hhc0hdpck4igq6m";
        configureFlags = [ "-f-bytestring--lt-0_10_4" ];
        libraryHaskellDepends = [
          array attoparsec base bytestring containers deepseq hashable Only
@@ -47529,6 +47553,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cassava_0_5_2_0" = callPackage
+    ({ mkDerivation, array, attoparsec, base, bytestring, containers
+     , deepseq, hashable, HUnit, Only, QuickCheck, quickcheck-instances
+     , scientific, test-framework, test-framework-hunit
+     , test-framework-quickcheck2, text, text-short, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "cassava";
+       version = "0.5.2.0";
+       sha256 = "01h1zrdqb313cjd4rqm1107azzx4czqi018c2djf66a5i7ajl3dk";
+       configureFlags = [ "-f-bytestring--lt-0_10_4" ];
+       libraryHaskellDepends = [
+         array attoparsec base bytestring containers deepseq hashable Only
+         scientific text text-short transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring hashable HUnit QuickCheck
+         quickcheck-instances scientific test-framework test-framework-hunit
+         test-framework-quickcheck2 text unordered-containers vector
+       ];
+       description = "A CSV parsing and encoding library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cassava-conduit" = callPackage
     ({ mkDerivation, array, base, bifunctors, bytestring, cassava
      , conduit, containers, criterion, mtl, QuickCheck, text
@@ -48730,23 +48780,23 @@ self: {
   "cgrep" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, array, async, base
      , bytestring, cmdargs, containers, directory, dlist, either
-     , exceptions, filepath, ghc-prim, mtl, process, regex-base
+     , exceptions, extra, filepath, ghc-prim, mtl, process, regex-base
      , regex-pcre, regex-posix, safe, split, stm, stringsearch
      , transformers, unicode-show, unix-compat, unordered-containers
      , utf8-string, yaml
      }:
      mkDerivation {
        pname = "cgrep";
-       version = "6.6.25";
-       sha256 = "0cary2b5jg8151n48a4vij32g68mrql791mhw43v44wvhlag8plw";
+       version = "6.6.30";
+       sha256 = "1ald0461mnd65g5czp3d8dzdvy8pmdxhzj35sghcnxi6qs18xp69";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson ansi-terminal array async base bytestring cmdargs containers
-         directory dlist either exceptions filepath ghc-prim mtl process
-         regex-base regex-pcre regex-posix safe split stm stringsearch
-         transformers unicode-show unix-compat unordered-containers
-         utf8-string yaml
+         directory dlist either exceptions extra filepath ghc-prim mtl
+         process regex-base regex-pcre regex-posix safe split stm
+         stringsearch transformers unicode-show unix-compat
+         unordered-containers utf8-string yaml
        ];
        description = "Command line tool";
        license = stdenv.lib.licenses.gpl2;
@@ -49361,6 +49411,8 @@ self: {
        pname = "chell";
        version = "0.5";
        sha256 = "1i845isfbk0yq852am9bqmxfpfkpnlha8nfidffsv4gw2p8gg6fg";
+       revision = "1";
+       editedCabalFile = "1q93wrw03ix4cmnkz3lzkixcvvizw6i2ia2zifdfak1dvxnblxk0";
        libraryHaskellDepends = [
          ansi-terminal base bytestring options patience random
          template-haskell text transformers
@@ -54623,8 +54675,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-aeson";
-       version = "0.5.5.0";
-       sha256 = "1hmhnkfmdjm5q8lkvlyr7rzs1lfycnblz3q2y8aziy27j7pvnz6h";
+       version = "0.6.0.0";
+       sha256 = "0r15hc6kwg0dibxix2f5afg91qwc6fd5m9sijn0k0mq62f0ln7ki";
        libraryHaskellDepends = [
          aeson aeson-better-errors base composite-base containers
          contravariant generic-deriving hashable lens mmorph mtl profunctors
@@ -54649,8 +54701,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-aeson-refined";
-       version = "0.5.5.0";
-       sha256 = "0mm0dbsxqw5m78jgdn6vnbck2icqkzgwqyc3c3ghyz46cymd7pjz";
+       version = "0.6.0.0";
+       sha256 = "1plhqx0k0xab8fkip6v96rqnrdjq02ph1gmrk4r5zq5x4gc7gpps";
        libraryHaskellDepends = [
          aeson-better-errors base composite-aeson mtl refined
        ];
@@ -54667,8 +54719,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-base";
-       version = "0.5.5.0";
-       sha256 = "0qlg979cwkdlfpcwh7r0qr9fjs525b3xly0invr358h2g1lgi0fm";
+       version = "0.6.0.0";
+       sha256 = "188za7x9069ah8sgf8laqwkg3yfzl7cm23iacbcnbw25jd7k6vy3";
        libraryHaskellDepends = [
          base exceptions lens monad-control mtl profunctors template-haskell
          text transformers transformers-base unliftio-core vinyl
@@ -54689,8 +54741,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-ekg";
-       version = "0.5.5.0";
-       sha256 = "0bawdcx21dd0szxnnxs2iinzz6h4w2phk7mfs26fxiqx3f375lm4";
+       version = "0.6.0.0";
+       sha256 = "065aah2jx6r8i8qgwfql90nc6avhrrhc3aq3zlrqimqwv4772pvj";
        libraryHaskellDepends = [
          base composite-base ekg-core lens text vinyl
        ];
@@ -54707,8 +54759,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-opaleye";
-       version = "0.5.5.0";
-       sha256 = "0s54g9c1lm3jrdj44cvzxgbfaf7l2fdq2yy25vhqdmww50h8q1cx";
+       version = "0.6.0.0";
+       sha256 = "13hpvk6wx7yiz7klay7da8lllvszddlixk9xxyc8w9kqq48b4k92";
        libraryHaskellDepends = [
          base bytestring composite-base lens opaleye postgresql-simple
          product-profunctors profunctors template-haskell text vinyl
@@ -54731,8 +54783,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-swagger";
-       version = "0.5.5.0";
-       sha256 = "1qisvrs93jnrrjyhzdn0xwq54jc1mc8avpzq41a39ak5xdslzf6a";
+       version = "0.6.0.0";
+       sha256 = "1m0a77imgrs55vmzvfx7hy74siwnxpcgjg7cawsmsnarkymb1c5c";
        libraryHaskellDepends = [
          base composite-base insert-ordered-containers lens swagger2
          template-haskell text vinyl
@@ -56188,8 +56240,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer";
-       version = "0.1.0.0";
-       sha256 = "0y62yj2cm7q9qwxl3jfdq16rza2mrjg60lchx4s0gbwiw959a83n";
+       version = "0.1.0.1";
+       sha256 = "1g5kyvy067lll181xqd1lxpzl5965yj847kh6z2r0wvq01i4k467";
        libraryHaskellDepends = [
          base bytestring containers directory text
        ];
@@ -56640,14 +56692,34 @@ self: {
        pname = "connection";
        version = "0.3.0";
        sha256 = "1f53bysp8zr8c8dhivrq2k9qmlwnk84d4c1s31sd62ws9yddcw34";
+       revision = "3";
+       editedCabalFile = "17l56sgrirlcfgi18svbkv9233yxd81ymyr3k8k712rzf5gi6rpi";
+       libraryHaskellDepends = [
+         base basement bytestring containers data-default-class network
+         socks tls x509 x509-store x509-system x509-validation
+       ];
+       description = "Simple and easy network connections API";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "connection_0_3_1" = callPackage
+    ({ mkDerivation, base, basement, bytestring, containers
+     , data-default-class, network, socks, tls, x509, x509-store
+     , x509-system, x509-validation
+     }:
+     mkDerivation {
+       pname = "connection";
+       version = "0.3.1";
+       sha256 = "1nbmafhlg0wy4aa3p7amjddbamdz6avzrxn4py3lvhrjqn4raxax";
        revision = "1";
-       editedCabalFile = "0cm421anscv6h4nvhkaqvi5s3lwkc0f34p6z8lzap4wyc4gv578k";
+       editedCabalFile = "08f1n38zryd0jklyv3yillilp040zxfxha6jphrmf28haq2irnk5";
        libraryHaskellDepends = [
          base basement bytestring containers data-default-class network
          socks tls x509 x509-store x509-system x509-validation
        ];
        description = "Simple and easy network connections API";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "connection-pool" = callPackage
@@ -60330,8 +60402,8 @@ self: {
        pname = "cryptohash-md5";
        version = "0.11.100.1";
        sha256 = "1y8q7s2bn4gdknw1wjikdnar2b5pgz3nv3220lxrlgpsf23x82vi";
-       revision = "3";
-       editedCabalFile = "0ld224mdmw9mgzcl20q82rqkyl7d5vmi1iknsyymq58gcvcwdi2m";
+       revision = "4";
+       editedCabalFile = "0gzaibjkipijwj9m9l6wrhfk5s3kdvfbhdl7cl1373cjfs41v0m3";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          base base16-bytestring bytestring pureMD5 tasty tasty-hunit
@@ -60350,8 +60422,8 @@ self: {
        pname = "cryptohash-sha1";
        version = "0.11.100.1";
        sha256 = "1aqdxdhxhl9jldh951djpwxx8z7gzaqspxl7iwpl84i5ahrsyy9w";
-       revision = "3";
-       editedCabalFile = "0i30cc85732v27baibdjy2kjjkdfv335ib5sk5ggwvsysvvvr66l";
+       revision = "4";
+       editedCabalFile = "0qb2wasfc4dpf6f9ahvhlv8njb3p3p9iwblg4032ssi95cg85718";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          base base16-bytestring bytestring SHA tasty tasty-hunit
@@ -60392,8 +60464,8 @@ self: {
        pname = "cryptohash-sha512";
        version = "0.11.100.1";
        sha256 = "1abi23dr3vzslkh0cx24cdn2gy88jjm4qr6rcm543ajyaywqns8h";
-       revision = "3";
-       editedCabalFile = "19m1fp0i7ba84aa72d5wf59c7j0p4yr1bc43in8pspgywhsr3lfl";
+       revision = "4";
+       editedCabalFile = "0iqs51a58w71j1zz3rn9kical63yvvqqqrc6971mh6wfscyi1gqr";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          base base16-bytestring bytestring SHA tasty tasty-hunit
@@ -66843,29 +66915,6 @@ self: {
      }:
      mkDerivation {
        pname = "deriving-compat";
-       version = "0.5.6";
-       sha256 = "1rsjq3s2m69x2h880r087qbiwp3173pwv2yihlb8aw7dmjybydmf";
-       libraryHaskellDepends = [
-         base containers ghc-boot-th ghc-prim template-haskell
-         th-abstraction transformers transformers-compat
-       ];
-       testHaskellDepends = [
-         base base-compat base-orphans hspec QuickCheck tagged
-         template-haskell transformers transformers-compat
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Backports of GHC deriving extensions";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "deriving-compat_0_5_7" = callPackage
-    ({ mkDerivation, base, base-compat, base-orphans, containers
-     , ghc-boot-th, ghc-prim, hspec, hspec-discover, QuickCheck, tagged
-     , template-haskell, th-abstraction, transformers
-     , transformers-compat
-     }:
-     mkDerivation {
-       pname = "deriving-compat";
        version = "0.5.7";
        sha256 = "0bp4f0is84cv139s35669dv23mcp6lhp2wall72yvkk12lp2l2mg";
        libraryHaskellDepends = [
@@ -66879,7 +66928,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Backports of GHC deriving extensions";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "derp" = callPackage
@@ -70799,6 +70847,28 @@ self: {
        broken = true;
      }) {};
 
+  "dl-fedora_0_6" = callPackage
+    ({ mkDerivation, base, bytestring, directory, filepath
+     , http-directory, http-types, optparse-applicative, regex-posix
+     , simple-cmd, simple-cmd-args, text, unix, xdg-userdirs
+     }:
+     mkDerivation {
+       pname = "dl-fedora";
+       version = "0.6";
+       sha256 = "1kq9hhpgh24kfgf9b25zppmfbylcqx0scs96dp0nbyj3rp6yl8rh";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring directory filepath http-directory http-types
+         optparse-applicative regex-posix simple-cmd simple-cmd-args text
+         unix xdg-userdirs
+       ];
+       description = "Fedora image download tool";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "dlist" = callPackage
     ({ mkDerivation, base, Cabal, deepseq, QuickCheck }:
      mkDerivation {
@@ -71320,7 +71390,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "doctemplates_0_5" = callPackage
+  "doctemplates_0_6" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , doclayout, filepath, Glob, mtl, parsec, safe, scientific, tasty
      , tasty-golden, tasty-hunit, temporary, text, unordered-containers
@@ -71328,16 +71398,16 @@ self: {
      }:
      mkDerivation {
        pname = "doctemplates";
-       version = "0.5";
-       sha256 = "0xdma2j1bim31mvkqc6362rbmv193fyznd3y4ipdgd113zkj7hy6";
+       version = "0.6";
+       sha256 = "1bimvksijpz3czx0si9wwiigi4knc3d4i7rl6fssmz3z9qs6rhxg";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base containers doclayout filepath mtl parsec safe scientific
          text unordered-containers vector
        ];
        testHaskellDepends = [
-         aeson base bytestring filepath Glob tasty tasty-golden tasty-hunit
-         temporary text
+         aeson base bytestring doclayout filepath Glob tasty tasty-golden
+         tasty-hunit temporary text
        ];
        benchmarkHaskellDepends = [
          aeson base containers criterion filepath mtl text
@@ -71354,34 +71424,6 @@ self: {
      }:
      mkDerivation {
        pname = "doctest";
-       version = "0.16.1";
-       sha256 = "1xnm1sbm9lpfxw5yav8qpqr85aap94k9df6n5kx70bp6h69qnrrq";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base base-compat code-page deepseq directory filepath ghc ghc-paths
-         process syb transformers
-       ];
-       executableHaskellDepends = [
-         base base-compat code-page deepseq directory filepath ghc ghc-paths
-         process syb transformers
-       ];
-       testHaskellDepends = [
-         base base-compat code-page deepseq directory filepath ghc ghc-paths
-         hspec HUnit mockery process QuickCheck setenv silently
-         stringbuilder syb transformers
-       ];
-       description = "Test interactive Haskell examples";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "doctest_0_16_2" = callPackage
-    ({ mkDerivation, base, base-compat, code-page, deepseq, directory
-     , filepath, ghc, ghc-paths, hspec, HUnit, mockery, process
-     , QuickCheck, setenv, silently, stringbuilder, syb, transformers
-     }:
-     mkDerivation {
-       pname = "doctest";
        version = "0.16.2";
        sha256 = "0lk4cjfzi5bx2snfzw1zi06li0gvgz3ckfh2kwa98l7nxfdl39ag";
        isLibrary = true;
@@ -71401,7 +71443,6 @@ self: {
        ];
        description = "Test interactive Haskell examples";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "doctest-discover" = callPackage
@@ -73647,8 +73688,8 @@ self: {
      }:
      mkDerivation {
        pname = "dzen-dhall";
-       version = "1.0.0";
-       sha256 = "0im78kvjwanlbi097pyvvpj2isssf3iblqbbqsk2iccvdqjyqf5z";
+       version = "1.0.1";
+       sha256 = "16rkmiczdgknlq1f8m5n3ila8727z1db77g141sq5qqlgn7x37ww";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -75962,6 +76003,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "emd_0_1_5_0" = callPackage
+    ({ mkDerivation, base, binary, containers, criterion
+     , data-default-class, deepseq, finite-typelits
+     , ghc-typelits-knownnat, ghc-typelits-natnormalise, HUnit
+     , mwc-random, pure-fft, transformers, typelits-witnesses, vector
+     , vector-sized
+     }:
+     mkDerivation {
+       pname = "emd";
+       version = "0.1.5.0";
+       sha256 = "113rm1jmlawjms693zsx9kq8rk8jwn7ch6d4l2bfas3fvy4via61";
+       libraryHaskellDepends = [
+         base binary containers data-default-class deepseq finite-typelits
+         ghc-typelits-knownnat ghc-typelits-natnormalise transformers
+         typelits-witnesses vector vector-sized
+       ];
+       testHaskellDepends = [ base containers HUnit ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq ghc-typelits-knownnat mwc-random pure-fft
+         vector vector-sized
+       ];
+       description = "Empirical Mode Decomposition and Hilbert-Huang Transform";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "emgm" = callPackage
     ({ mkDerivation, base, HUnit, QuickCheck, syb }:
      mkDerivation {
@@ -76091,8 +76158,6 @@ self: {
        testHaskellDepends = [ base bytestring HUnit QuickCheck ];
        description = "A library for various character encodings";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "encoding-io" = callPackage
@@ -78837,27 +78902,6 @@ self: {
      }:
      mkDerivation {
        pname = "exceptions";
-       version = "0.10.2";
-       sha256 = "0ajiq47xd1paingr7kksh69v6d072zsppfr6cy1gzjh3zg5jr34i";
-       libraryHaskellDepends = [
-         base mtl stm template-haskell transformers transformers-compat
-       ];
-       testHaskellDepends = [
-         base mtl QuickCheck stm template-haskell test-framework
-         test-framework-hunit test-framework-quickcheck2 transformers
-         transformers-compat
-       ];
-       description = "Extensible optionally-pure exceptions";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "exceptions_0_10_3" = callPackage
-    ({ mkDerivation, base, mtl, QuickCheck, stm, template-haskell
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     , transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "exceptions";
        version = "0.10.3";
        sha256 = "1w25j4ys5s6v239vbqlbipm9fdwxl1j2ap2lzms7f7rgnik5ir24";
        libraryHaskellDepends = [
@@ -78870,7 +78914,6 @@ self: {
        ];
        description = "Extensible optionally-pure exceptions";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "exchangerates" = callPackage
@@ -82406,6 +82449,8 @@ self: {
        pname = "filepath";
        version = "1.4.2.1";
        sha256 = "04jlcaaab4fvlkgpss2mfmr5ixnp1k8f8051nqf8avfg0qan6hqb";
+       revision = "1";
+       editedCabalFile = "1harx8x3g3badj3087c662sd15fk850jqzx0lz5h16zbsv438lqa";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base QuickCheck ];
        description = "Library for manipulating FilePaths in a cross platform way";
@@ -85499,18 +85544,18 @@ self: {
      }:
      mkDerivation {
        pname = "fortran-src";
-       version = "0.3.0";
-       sha256 = "03a1lk0c50v66jax2dya7qhjr3si2anp4yzx03vpf49am2kn2rxq";
+       version = "0.4.0";
+       sha256 = "1l66f9wcn5dp7i63wapzkx8bgiy22xrlxbfh3jbnhy7glhvk80ja";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         array base binary bytestring containers directory fgl filepath
-         GenericPretty mtl pretty text uniplate
+         array base binary bytestring containers deepseq directory fgl
+         filepath GenericPretty mtl pretty text uniplate
        ];
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [
-         array base binary bytestring containers directory fgl filepath
-         GenericPretty mtl pretty text uniplate
+         array base binary bytestring containers deepseq directory fgl
+         filepath GenericPretty mtl pretty text uniplate
        ];
        testHaskellDepends = [
          array base binary bytestring containers deepseq directory fgl
@@ -85953,23 +85998,6 @@ self: {
      }:
      mkDerivation {
        pname = "free";
-       version = "5.1.1";
-       sha256 = "0f33n7x4z0mc733ck4gg6ljcinfmm946a20g5irv90g77c6jmmak";
-       libraryHaskellDepends = [
-         base comonad containers distributive exceptions mtl profunctors
-         semigroupoids template-haskell transformers transformers-base
-       ];
-       description = "Monads for free";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "free_5_1_2" = callPackage
-    ({ mkDerivation, base, comonad, containers, distributive
-     , exceptions, mtl, profunctors, semigroupoids, template-haskell
-     , transformers, transformers-base
-     }:
-     mkDerivation {
-       pname = "free";
        version = "5.1.2";
        sha256 = "0vlf3f2ckl3cr7z2zl8c9c8qkdlfgvmh04gxkp2fg0z9dz80nlyb";
        libraryHaskellDepends = [
@@ -85978,7 +86006,6 @@ self: {
        ];
        description = "Monads for free";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "free-algebras" = callPackage
@@ -86813,6 +86840,20 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "frotate" = callPackage
+    ({ mkDerivation, base, doctest, optparse-applicative, time }:
+     mkDerivation {
+       pname = "frotate";
+       version = "0.1.1";
+       sha256 = "1j8xh4k5kkix1aq79vg2kpzqb30pnggs8c6ksf4lqd8nmvzy47vc";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [ base optparse-applicative time ];
+       testHaskellDepends = [ base doctest ];
+       description = "Advanced rotation of backups and other things";
+       license = stdenv.lib.licenses.publicDomain;
+     }) {};
+
   "frown" = callPackage
     ({ mkDerivation, base, directory }:
      mkDerivation {
@@ -87128,12 +87169,12 @@ self: {
     ({ mkDerivation, base, mtl, parsec }:
      mkDerivation {
        pname = "ft-generator";
-       version = "1.0";
-       sha256 = "1kgh8w1ny0zsrbf53vqabkap6zp6fmq2hx35nxw2hcfw7b0pvavk";
+       version = "1.0.1";
+       sha256 = "17lckkrzil8lznkzswjinh88pp8nm8ijsi2bh31ayjfaqg0m229b";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base mtl parsec ];
-       description = "implementation accompanying a WFLP'19 submission";
+       description = "implementation accompanying a WFLP'19 paper";
        license = stdenv.lib.licenses.publicDomain;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -87612,8 +87653,8 @@ self: {
        pname = "functor-classes-compat";
        version = "1";
        sha256 = "0vrnl5crr7d2wsm4ryx26g98j23dpk7x5p31xrbnckd78i7zj4gg";
-       revision = "4";
-       editedCabalFile = "1531cmcfgcgry254dn5mx7h5l6nd4afxz6lhlcr0lbbm4y1v59mk";
+       revision = "5";
+       editedCabalFile = "0n823v0avzdwvmfm5fgw5gsmrlvd12pdx1clkislpd5yq4ffgjw7";
        libraryHaskellDepends = [
          base containers hashable unordered-containers vector
        ];
@@ -87929,6 +87970,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "fused-effects_0_5_0_1" = callPackage
+    ({ mkDerivation, base, deepseq, doctest, gauge, hspec
+     , inspection-testing, MonadRandom, QuickCheck, random, transformers
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "fused-effects";
+       version = "0.5.0.1";
+       sha256 = "0s6y34x29w31lzqlj7xf9sld9dmh3q1f0rl3zfmzd4kpp2ybc965";
+       libraryHaskellDepends = [
+         base deepseq MonadRandom random transformers unliftio-core
+       ];
+       testHaskellDepends = [
+         base doctest hspec inspection-testing QuickCheck transformers
+       ];
+       benchmarkHaskellDepends = [ base gauge ];
+       description = "A fast, flexible, fused effect system";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "fused-effects-exceptions" = callPackage
     ({ mkDerivation, base, fused-effects, safe-exceptions
      , unliftio-core
@@ -89332,8 +89394,8 @@ self: {
     ({ mkDerivation, base, HUnit, template-haskell, th-abstraction }:
      mkDerivation {
        pname = "generic-constraints";
-       version = "1.1.1";
-       sha256 = "0ifia4yw495ikkvjn70c386z3w40vyl2wracmcij025yc9bz4w9q";
+       version = "1.1.1.1";
+       sha256 = "1id341ih876qzq89cj6y3g87w4l3mfhv412l6czcs51r69s1770r";
        libraryHaskellDepends = [ base template-haskell th-abstraction ];
        testHaskellDepends = [ base HUnit ];
        description = "Constraints via Generic";
@@ -90680,6 +90742,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "getopt-generics_0_13_0_4" = callPackage
+    ({ mkDerivation, base, base-compat, base-orphans, filepath
+     , generics-sop, hspec, QuickCheck, safe, silently, tagged
+     }:
+     mkDerivation {
+       pname = "getopt-generics";
+       version = "0.13.0.4";
+       sha256 = "1rszkcn1rg38wf35538ljk5bbqjc57y9sb3a0al7qxm82gy8yigr";
+       libraryHaskellDepends = [
+         base base-compat base-orphans generics-sop tagged
+       ];
+       testHaskellDepends = [
+         base base-compat base-orphans filepath generics-sop hspec
+         QuickCheck safe silently tagged
+       ];
+       description = "Create command line interfaces with ease";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "getopt-simple" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -90798,14 +90880,14 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ghc-boot_8_6_5" = callPackage
+  "ghc-boot_8_8_1" = callPackage
     ({ mkDerivation, base, binary, bytestring, directory, filepath
      , ghc-boot-th
      }:
      mkDerivation {
        pname = "ghc-boot";
-       version = "8.6.5";
-       sha256 = "1sxar25ji02a4yaz6s5hksf7b8pbl66vv9nb3bfc7fxq6gzj5n4b";
+       version = "8.8.1";
+       sha256 = "1f1701nkyn6cig2mh8wb5wn3vwddkfmfqz8lykh8k1sm76qx7yva";
        libraryHaskellDepends = [
          base binary bytestring directory filepath ghc-boot-th
        ];
@@ -90814,12 +90896,12 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ghc-boot-th_8_6_5" = callPackage
+  "ghc-boot-th_8_8_1" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "ghc-boot-th";
-       version = "8.6.5";
-       sha256 = "18gjvxp3668np9n3c5l65q03nlqhgfjhh9wizvifmk673g0cl7n9";
+       version = "8.8.1";
+       sha256 = "14aa5jb5wz1yz12l0ixbbwiqj2rg1vgyd2rlfgm2ixsrryans4cb";
        libraryHaskellDepends = [ base ];
        description = "Shared functionality between GHC and the `template-haskell` library";
        license = stdenv.lib.licenses.bsd3;
@@ -90843,8 +90925,8 @@ self: {
        pname = "ghc-compact";
        version = "0.1.0.0";
        sha256 = "03sf8ap1ncjsibp9z7k9xgcsj9s0q3q6l4shf8k7p8dkwpjl1g2h";
-       revision = "2";
-       editedCabalFile = "1i775sc8sb89gali1w7qxs7l6y8vawp1mdd564d5mz95sxj4757b";
+       revision = "3";
+       editedCabalFile = "09l51r0nk7vj6a9crz7q5sv4962mnq18xb6zkxfl6cnm28v85nsk";
        libraryHaskellDepends = [ base bytestring ghc-prim ];
        description = "In memory storage of deeply evaluated data structure";
        license = stdenv.lib.licenses.bsd3;
@@ -90904,8 +90986,8 @@ self: {
     ({ mkDerivation, base, deepseq, ghc-heap-view }:
      mkDerivation {
        pname = "ghc-datasize";
-       version = "0.2.0";
-       sha256 = "0wmlryqsw4mhk85wnril0p14gx2y0wjmq9iv9jjy0wl6gw5ps1yh";
+       version = "0.2.1";
+       sha256 = "0qsh4m6vif07nd0r5lbwggqrlykmlnspdx1jwzzhz6mk1hcf914d";
        libraryHaskellDepends = [ base deepseq ghc-heap-view ];
        description = "Determine the size of data structures in GHC's memory";
        license = stdenv.lib.licenses.bsd3;
@@ -90996,8 +91078,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-events";
-       version = "0.9.0";
-       sha256 = "004dfjqhqy0lpmadjmvz270ja6k2dmwbprnispdxmlg8rc5y3m10";
+       version = "0.9.1";
+       sha256 = "1phq4jxhm05xj42y7aqpjj43vj5mixi3hhf3h5c0dh1vmsz9w3z1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -91082,6 +91164,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ghc-exactprint_0_6_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, Diff, directory
+     , filemanip, filepath, free, ghc, ghc-boot, ghc-paths, HUnit, mtl
+     , silently, syb
+     }:
+     mkDerivation {
+       pname = "ghc-exactprint";
+       version = "0.6.2";
+       sha256 = "1c36f7vjk3gapp761c7w1ncg9hyhx2kxwk51s0d9fvapi1bkxw9j";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers directory filepath free ghc ghc-boot
+         ghc-paths mtl syb
+       ];
+       testHaskellDepends = [
+         base bytestring containers Diff directory filemanip filepath ghc
+         ghc-boot ghc-paths HUnit mtl silently syb
+       ];
+       description = "ExactPrint for GHC";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ghc-gc-tune" = callPackage
     ({ mkDerivation, base, directory, filepath, process }:
      mkDerivation {
@@ -91665,13 +91771,17 @@ self: {
      }) {};
 
   "ghc-source-gen" = callPackage
-    ({ mkDerivation, base, ghc, ghc-paths, tasty, tasty-hunit }:
+    ({ mkDerivation, base, ghc, ghc-paths, QuickCheck, tasty
+     , tasty-hunit, tasty-quickcheck
+     }:
      mkDerivation {
        pname = "ghc-source-gen";
-       version = "0.1.0.0";
-       sha256 = "0sw62jjbd7h9i96hn0srl9m8p0qip6hnm1am6if7snqdm5b4ki3k";
+       version = "0.2.0.1";
+       sha256 = "1diz1vrhxx8ppj4jljzfwlrg059kdcz20ba635f7hq4kpp0blbjy";
        libraryHaskellDepends = [ base ghc ];
-       testHaskellDepends = [ base ghc ghc-paths tasty tasty-hunit ];
+       testHaskellDepends = [
+         base ghc ghc-paths QuickCheck tasty tasty-hunit tasty-quickcheck
+       ];
        description = "Constructs Haskell syntax trees for the GHC API";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -91789,27 +91899,6 @@ self: {
      }) {};
 
   "ghc-typelits-extra" = callPackage
-    ({ mkDerivation, base, ghc, ghc-prim, ghc-tcplugins-extra
-     , ghc-typelits-knownnat, ghc-typelits-natnormalise, integer-gmp
-     , tasty, tasty-hunit, template-haskell, transformers
-     }:
-     mkDerivation {
-       pname = "ghc-typelits-extra";
-       version = "0.3";
-       sha256 = "1khkchxic6i3sg3g3dzdg8dsdgk86xy5j5lnh5n5hr7fpdm9ppj7";
-       libraryHaskellDepends = [
-         base ghc ghc-prim ghc-tcplugins-extra ghc-typelits-knownnat
-         ghc-typelits-natnormalise integer-gmp transformers
-       ];
-       testHaskellDepends = [
-         base ghc-typelits-knownnat ghc-typelits-natnormalise tasty
-         tasty-hunit template-haskell
-       ];
-       description = "Additional type-level operations on GHC.TypeLits.Nat";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "ghc-typelits-extra_0_3_1" = callPackage
     ({ mkDerivation, base, containers, ghc, ghc-prim
      , ghc-tcplugins-extra, ghc-typelits-knownnat
      , ghc-typelits-natnormalise, integer-gmp, tasty, tasty-hunit
@@ -91830,7 +91919,6 @@ self: {
        ];
        description = "Additional type-level operations on GHC.TypeLits.Nat";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-typelits-knownnat" = callPackage
@@ -91862,6 +91950,8 @@ self: {
        pname = "ghc-typelits-knownnat";
        version = "0.7";
        sha256 = "00f8m3kmp572r8jr246m8r6lwzxmiqj4hml06w09l9n3lzvjwv7b";
+       revision = "1";
+       editedCabalFile = "1jgwa66dbhqsav7764cfcmzs3p0f3csbdjbrnbilhv1bpqyhz8sm";
        libraryHaskellDepends = [
          base ghc ghc-prim ghc-tcplugins-extra ghc-typelits-natnormalise
          template-haskell transformers
@@ -99956,8 +100046,8 @@ self: {
     ({ mkDerivation, base, containers, json, text }:
      mkDerivation {
        pname = "graphql-w-persistent";
-       version = "0.5.0.0";
-       sha256 = "12z4fws4vz88j8xj1xvzl8jv6s4i3vnca7xln2q4ssn23a025fcg";
+       version = "0.6.0.0";
+       sha256 = "03m247xmj8gvvjs4bgsc06daz9avklza7ngs575psaqmkpxd8ga3";
        libraryHaskellDepends = [ base containers json text ];
        description = "GraphQL interface middleware for (SQL) databases";
        license = stdenv.lib.licenses.isc;
@@ -100117,8 +100207,8 @@ self: {
      }:
      mkDerivation {
        pname = "gray-extended";
-       version = "1.5.7";
-       sha256 = "0j2lzy15jiykz9b6cqzh7xhpf1idwxp8illvy3r50g1g4hc8zvyp";
+       version = "1.5.8";
+       sha256 = "1vli6dc0wc1an6vfhchai6s8xrg8rfds2k07x2xszaqg7r2njc9k";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base QuickCheck test-framework test-framework-quickcheck2
@@ -100354,8 +100444,8 @@ self: {
      }:
      mkDerivation {
        pname = "grid";
-       version = "7.8.12";
-       sha256 = "1ax536wr6h8kcnmnnxyd7vcdkqbjlrhrx6jab526b3f2a88n5q6z";
+       version = "7.8.14";
+       sha256 = "11rnsl6bs6qpx90p8jzdigncv6m5wbn6sav8gb3mlbm40fpi3p93";
        libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [
          base QuickCheck test-framework test-framework-quickcheck2
@@ -100968,8 +101058,8 @@ self: {
      }:
      mkDerivation {
        pname = "gscholar-rss";
-       version = "0.2.2.0";
-       sha256 = "1h8zg9yyyckyp5irw9gcbzfysav67hn2rlrkwakyh3ghb1rnl71k";
+       version = "0.2.3.1";
+       sha256 = "0iqrh6h2r7xr9xqk9w7yg1hilghcs0pp5mqq3s2rwmk2drp255l3";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -104036,14 +104126,14 @@ self: {
      , lrucache, mtl, network-uri, optparse-applicative, pandoc
      , pandoc-citeproc, parsec, process, QuickCheck, random, regex-tdfa
      , resourcet, scientific, tagsoup, tasty, tasty-hunit
-     , tasty-quickcheck, text, time, time-locale-compat
-     , unordered-containers, utillinux, vector, wai, wai-app-static
-     , warp, yaml
+     , tasty-quickcheck, template-haskell, text, time
+     , time-locale-compat, unordered-containers, utillinux, vector, wai
+     , wai-app-static, warp, yaml
      }:
      mkDerivation {
        pname = "hakyll";
-       version = "4.12.5.2";
-       sha256 = "13dc8hj3xnnpyb395pbplwxb4pj4gzckdd8r5wcwg1ln0gd6w7d5";
+       version = "4.13.0.0";
+       sha256 = "1a7g79j7ai5l46nz205rl6zr3f57m5ngd46v60wll3dj6wkiaw6b";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -104052,7 +104142,7 @@ self: {
          cryptohash data-default deepseq directory file-embed filepath
          fsnotify http-conduit http-types lrucache mtl network-uri
          optparse-applicative pandoc pandoc-citeproc parsec process random
-         regex-tdfa resourcet scientific tagsoup text time
+         regex-tdfa resourcet scientific tagsoup template-haskell text time
          time-locale-compat unordered-containers vector wai wai-app-static
          warp yaml
        ];
@@ -104328,8 +104418,6 @@ self: {
        ];
        description = "Hakyll utilities to work with images";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hakyll-ogmarkup" = callPackage
@@ -105721,22 +105809,20 @@ self: {
      , filepath, hslogger, html, HUnit, monad-control, mtl, network
      , network-uri, old-locale, parsec, process, semigroups, sendfile
      , syb, system-filepath, template-haskell, text, threads, time
-     , time-compat, transformers, transformers-base, transformers-compat
-     , unix, utf8-string, xhtml, zlib
+     , transformers, transformers-base, transformers-compat, unix
+     , utf8-string, xhtml, zlib
      }:
      mkDerivation {
        pname = "happstack-server";
-       version = "7.5.1.3";
-       sha256 = "0agxmrf2njd3whvgw4in0ixgss1qlmi6cdi9fglhs7nhykpkgllk";
-       revision = "1";
-       editedCabalFile = "15ira63nilqyq9ggl2jy5ip26aprw79sv5k1hp9n4wp9byhzzyjw";
+       version = "7.5.2";
+       sha256 = "1w5g5vf6jxb7fi3qg96x17y2i95mv5sbbzmjzy1m55qjqif568v1";
        libraryHaskellDepends = [
          base base64-bytestring blaze-html bytestring containers directory
          exceptions extensible-exceptions filepath hslogger html
          monad-control mtl network network-uri old-locale parsec process
          semigroups sendfile syb system-filepath template-haskell text
-         threads time time-compat transformers transformers-base
-         transformers-compat unix utf8-string xhtml zlib
+         threads time transformers transformers-base transformers-compat
+         unix utf8-string xhtml zlib
        ];
        testHaskellDepends = [
          base bytestring containers HUnit parsec zlib
@@ -106312,6 +106398,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hasbolt_0_1_3_5" = callPackage
+    ({ mkDerivation, base, binary, bytestring, connection, containers
+     , data-binary-ieee754, data-default, hex, hspec, mtl, network
+     , QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "hasbolt";
+       version = "0.1.3.5";
+       sha256 = "0qd5rh0jdwhkjcz5kg1bqwd5hpz5w9ph9k0vxaam1lnjjniw7zbj";
+       libraryHaskellDepends = [
+         base binary bytestring connection containers data-binary-ieee754
+         data-default mtl network text
+       ];
+       testHaskellDepends = [
+         base bytestring containers hex hspec QuickCheck text
+       ];
+       description = "Haskell driver for Neo4j 3+ (BOLT protocol)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hasbolt-extras" = callPackage
     ({ mkDerivation, aeson, aeson-casing, base, bytestring, containers
      , data-default, free, hasbolt, lens, mtl, neat-interpolation
@@ -107068,6 +107175,8 @@ self: {
        pname = "haskeline";
        version = "0.7.5.0";
        sha256 = "1inyq7qwih0hnqlm6gy769vsxzjpvqx9ry390dmcvvql9520hrfj";
+       revision = "1";
+       editedCabalFile = "0i8fyhk7fvz2bxnh5xsmdw5rr7yywzc2wv115034q1g4sb018zrd";
        configureFlags = [ "-fterminfo" ];
        libraryHaskellDepends = [
          base bytestring containers directory filepath process stm terminfo
@@ -107292,21 +107401,24 @@ self: {
      }) {};
 
   "haskell-ci" = callPackage
-    ({ mkDerivation, ansi-terminal, base, base-compat, bytestring
-     , Cabal, containers, deepseq, Diff, directory, filepath
-     , generic-lens, HsYAML, microlens, optparse-applicative, parsec
-     , pretty, ShellCheck, tasty, tasty-golden, text, transformers
+    ({ mkDerivation, aeson, ansi-terminal, base, base-compat
+     , bytestring, Cabal, containers, deepseq, Diff, directory
+     , exceptions, filepath, generic-lens, HsYAML, lattices, microlens
+     , mtl, optparse-applicative, parsec, pretty, process, ShellCheck
+     , tasty, tasty-golden, temporary, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "haskell-ci";
-       version = "0.2.1";
-       sha256 = "07h99vq4bmphrpi1ggm7h06ard7hyxkmsxypicghvv24cgzl3c70";
+       version = "0.4";
+       sha256 = "0paw5jczmcayda2pjgp10p983g8kbly33hpabdv37b5mkrair9d8";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
-         base base-compat bytestring Cabal containers deepseq directory
-         filepath generic-lens HsYAML microlens optparse-applicative parsec
-         pretty ShellCheck text transformers
+         aeson base base-compat bytestring Cabal containers deepseq
+         directory exceptions filepath generic-lens HsYAML lattices
+         microlens mtl optparse-applicative parsec pretty process ShellCheck
+         temporary text transformers unordered-containers
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
@@ -107315,7 +107427,7 @@ self: {
        ];
        doHaddock = false;
        description = "Cabal package script generator for Travis-CI";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.gpl3Plus;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
 
@@ -108373,6 +108485,8 @@ self: {
        pname = "haskell-src-exts";
        version = "1.21.0";
        sha256 = "1wwzd6m5mm76fq7ql7k49b7ghg8ibq5qhqr3d8xs5psfha3w3nlm";
+       revision = "1";
+       editedCabalFile = "1mmjxh0vhf9pbx9jr1208bbrqj3k5qy6il4ypjmczh9zx2m65lyf";
        libraryHaskellDepends = [ array base ghc-prim pretty ];
        libraryToolDepends = [ happy ];
        testHaskellDepends = [
@@ -114343,6 +114457,8 @@ self: {
        pname = "hex";
        version = "0.1.2";
        sha256 = "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj";
+       revision = "1";
+       editedCabalFile = "0khmrdni6njr4wxgz15yz77l8ar4qm2jj6v0lvfnwqdms4s6i80y";
        libraryHaskellDepends = [ base bytestring ];
        description = "Convert strings into hexadecimal and back";
        license = stdenv.lib.licenses.bsd3;
@@ -116796,8 +116912,8 @@ self: {
        pname = "hjsonpointer";
        version = "1.5.0";
        sha256 = "1bdr5jpc2vcx6bk724jmfz7nh3jgqwrmj4hab64h9pjdrl4vz00y";
-       revision = "2";
-       editedCabalFile = "1s43vdkl71msm8kppksn910prs40nwq4cz5klajr8apak77z4dzi";
+       revision = "3";
+       editedCabalFile = "1y9fhqb8kjgflsds8nkw7nr1b9ydyz5f3227b4k8b7ir97rzy5d0";
        libraryHaskellDepends = [
          aeson base hashable text unordered-containers vector
        ];
@@ -117071,7 +117187,7 @@ self: {
   "hledger" = callPackage
     ({ mkDerivation, ansi-terminal, base, base-compat-batteries
      , bytestring, cmdargs, containers, criterion, data-default, Decimal
-     , Diff, directory, easytest, filepath, hashable, haskeline
+     , Diff, directory, easytest, extra, filepath, hashable, haskeline
      , hledger-lib, html, lucid, math-functions, megaparsec, mtl
      , mtl-compat, old-time, parsec, pretty-show, process, regex-tdfa
      , safe, shakespeare, split, tabular, temporary, terminfo
@@ -117081,38 +117197,39 @@ self: {
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.14.2";
-       sha256 = "1si9zqparkdq77yji87lhcsrf11fr3gisqwsv82cabhrhc36x6l4";
+       version = "1.15.1";
+       sha256 = "0rhq6dnss3n4b7ibq61amgalhjh89f51fn609dai2m3kf9xhign9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers data-default Decimal Diff directory easytest filepath
-         hashable haskeline hledger-lib lucid math-functions megaparsec mtl
-         mtl-compat old-time parsec pretty-show process regex-tdfa safe
-         shakespeare split tabular temporary terminfo text time transformers
-         unordered-containers utf8-string utility-ht wizards
+         containers data-default Decimal Diff directory easytest extra
+         filepath hashable haskeline hledger-lib lucid math-functions
+         megaparsec mtl mtl-compat old-time parsec pretty-show process
+         regex-tdfa safe shakespeare split tabular temporary terminfo text
+         time timeit transformers unordered-containers utf8-string
+         utility-ht wizards
        ];
        executableHaskellDepends = [
          ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers data-default Decimal directory easytest filepath
+         containers data-default Decimal directory easytest extra filepath
          haskeline hledger-lib math-functions megaparsec mtl mtl-compat
          old-time parsec pretty-show process regex-tdfa safe shakespeare
-         split tabular temporary terminfo text time transformers
+         split tabular temporary terminfo text time timeit transformers
          unordered-containers utf8-string utility-ht wizards
        ];
        testHaskellDepends = [
          ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers data-default Decimal directory easytest filepath
+         containers data-default Decimal directory easytest extra filepath
          haskeline hledger-lib math-functions megaparsec mtl mtl-compat
          old-time parsec pretty-show process regex-tdfa safe shakespeare
          split tabular temporary terminfo test-framework
-         test-framework-hunit text time transformers unordered-containers
-         utf8-string utility-ht wizards
+         test-framework-hunit text time timeit transformers
+         unordered-containers utf8-string utility-ht wizards
        ];
        benchmarkHaskellDepends = [
          ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers criterion data-default Decimal directory easytest
+         containers criterion data-default Decimal directory easytest extra
          filepath haskeline hledger-lib html math-functions megaparsec mtl
          mtl-compat old-time parsec pretty-show process regex-tdfa safe
          shakespeare split tabular temporary terminfo text time timeit
@@ -117284,31 +117401,33 @@ self: {
     ({ mkDerivation, ansi-terminal, array, base, base-compat-batteries
      , blaze-markup, bytestring, call-stack, cassava, cassava-megaparsec
      , cmdargs, containers, data-default, Decimal, deepseq, directory
-     , doctest, easytest, extra, file-embed, filepath, Glob, hashtables
-     , megaparsec, mtl, mtl-compat, old-time, parsec, parser-combinators
-     , pretty-show, regex-tdfa, safe, split, tabular, template-haskell
-     , text, time, transformers, uglymemo, utf8-string
+     , doctest, easytest, extra, fgl, file-embed, filepath, Glob
+     , hashtables, megaparsec, mtl, mtl-compat, old-time, parsec
+     , parser-combinators, pretty-show, regex-tdfa, safe, split, tabular
+     , template-haskell, text, time, timeit, transformers, uglymemo
+     , utf8-string
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.14.1";
-       sha256 = "1w6qp01cak6spnpldm01czlm6i5a2alw47w76875l2nagrc4rfp2";
+       version = "1.15.1";
+       sha256 = "1d3mwrbgk3iqayvi0gjx4hkbf72jwknh5igx1p07h32l1d89phbh";
        libraryHaskellDepends = [
          ansi-terminal array base base-compat-batteries blaze-markup
          bytestring call-stack cassava cassava-megaparsec cmdargs containers
-         data-default Decimal deepseq directory easytest extra file-embed
-         filepath Glob hashtables megaparsec mtl mtl-compat old-time parsec
-         parser-combinators pretty-show regex-tdfa safe split tabular
-         template-haskell text time transformers uglymemo utf8-string
+         data-default Decimal deepseq directory easytest extra fgl
+         file-embed filepath Glob hashtables megaparsec mtl mtl-compat
+         old-time parsec parser-combinators pretty-show regex-tdfa safe
+         split tabular template-haskell text time timeit transformers
+         uglymemo utf8-string
        ];
        testHaskellDepends = [
          ansi-terminal array base base-compat-batteries blaze-markup
          bytestring call-stack cassava cassava-megaparsec cmdargs containers
-         data-default Decimal deepseq directory doctest easytest extra
+         data-default Decimal deepseq directory doctest easytest extra fgl
          file-embed filepath Glob hashtables megaparsec mtl mtl-compat
          old-time parsec parser-combinators pretty-show regex-tdfa safe
-         split tabular template-haskell text time transformers uglymemo
-         utf8-string
+         split tabular template-haskell text time timeit transformers
+         uglymemo utf8-string
        ];
        description = "Core data types, parsers and functionality for the hledger accounting tools";
        license = stdenv.lib.licenses.gpl3;
@@ -117344,8 +117463,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.14.2";
-       sha256 = "0bhixvzxv7d0kwb4ppv3sc98wjkc58kna9f91202s63sbikahlcr";
+       version = "1.15";
+       sha256 = "047ssmix7pxq61hknd40z983aw8110zxzh6z2ick8xkhdsnw3s1q";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -117390,8 +117509,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.14.1";
-       sha256 = "0w59nr7mj0nx8z44cvhy1rhlj5rmx0wq4p5nfl4dycfmp7jwvsm1";
+       version = "1.15";
+       sha256 = "1m54m8v1fzlazrh9hhv4ff7jrg95d03i8wx360l1y731gry54zw3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -120226,6 +120345,45 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hpack_0_32_0" = callPackage
+    ({ mkDerivation, aeson, base, bifunctors, bytestring, Cabal
+     , containers, cryptonite, deepseq, directory, filepath, Glob, hspec
+     , hspec-discover, http-client, http-client-tls, http-types, HUnit
+     , infer-license, interpolate, mockery, pretty, QuickCheck
+     , scientific, template-haskell, temporary, text, transformers
+     , unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "hpack";
+       version = "0.32.0";
+       sha256 = "11qfqyhcwihmx1z9pg5fhza1ww8wapr04wzyx8sknwpxs3hacm4z";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bifunctors bytestring Cabal containers cryptonite
+         deepseq directory filepath Glob http-client http-client-tls
+         http-types infer-license pretty scientific text transformers
+         unordered-containers vector yaml
+       ];
+       executableHaskellDepends = [
+         aeson base bifunctors bytestring Cabal containers cryptonite
+         deepseq directory filepath Glob http-client http-client-tls
+         http-types infer-license pretty scientific text transformers
+         unordered-containers vector yaml
+       ];
+       testHaskellDepends = [
+         aeson base bifunctors bytestring Cabal containers cryptonite
+         deepseq directory filepath Glob hspec http-client http-client-tls
+         http-types HUnit infer-license interpolate mockery pretty
+         QuickCheck scientific template-haskell temporary text transformers
+         unordered-containers vector yaml
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A modern format for Haskell packages";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hpack-convert" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, base-compat, bytestring
      , Cabal, containers, deepseq, directory, filepath, Glob, hspec
@@ -120443,8 +120601,8 @@ self: {
        pname = "hpc";
        version = "0.6.0.3";
        sha256 = "1am2fcxg7d3j3kpyhz48wzbpg83dk2jmzhqm4yiib649alzcgnhn";
-       revision = "2";
-       editedCabalFile = "0ywki1w4kld0m3z8v1i287g6hcsjgmyq4nxx8b9jij721ad9b9w3";
+       revision = "3";
+       editedCabalFile = "06dbiaf0sangq3zdyr3x9wkvs2fgyas3ipqkfwfmycax6j17jgyy";
        libraryHaskellDepends = [
          base containers directory filepath time
        ];
@@ -122262,29 +122420,6 @@ self: {
      }:
      mkDerivation {
        pname = "hsc2hs";
-       version = "0.68.4";
-       sha256 = "07qzyr1j76gxrrsds65vivm5cx33paxpifvxdlmkxprrm3s4z7z6";
-       revision = "2";
-       editedCabalFile = "178jimc9qwrjmiiz8f0kk7gv2jaf51vv1n40rp42ggmi8mvf0m4v";
-       isLibrary = false;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       executableHaskellDepends = [
-         base containers directory filepath process
-       ];
-       testHaskellDepends = [ base tasty tasty-hspec ];
-       description = "A preprocessor that helps with writing Haskell bindings to C code";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "hsc2hs_0_68_6" = callPackage
-    ({ mkDerivation, base, containers, directory, filepath, process
-     , tasty, tasty-hspec
-     }:
-     mkDerivation {
-       pname = "hsc2hs";
        version = "0.68.6";
        sha256 = "1clj6bgs9vmiv3mjzp82lvyyik5zr5411nxab7hydbrgq94pbk70";
        isLibrary = false;
@@ -126350,6 +126485,8 @@ self: {
        pname = "http-api-data";
        version = "0.4.1";
        sha256 = "1ps4bvln43gz72dr9mc3c9n1rn38c4rz6m49vxzz9nz6jz1978rv";
+       revision = "1";
+       editedCabalFile = "0jhaj9qxw8a4gnvqi6i7lmn6vk8cmvc1mm1cp1saqz4whn13fgbs";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          attoparsec attoparsec-iso8601 base base-compat bytestring
@@ -126773,6 +126910,8 @@ self: {
        pname = "http-directory";
        version = "0.1.5";
        sha256 = "075crysy7avf97vlskwlk8813q2bnqw9p3q29c5yb2yhmykrpwyn";
+       revision = "1";
+       editedCabalFile = "0ynm88f9v3h5dlyf2kzydqwr2l90gwjysffr6gbnlyqw9x46pb04";
        libraryHaskellDepends = [
          base bytestring html-conduit http-client http-client-tls http-date
          http-types text time xml-conduit
@@ -126897,8 +127036,8 @@ self: {
        pname = "http-io-streams";
        version = "0.1.0.0";
        sha256 = "0fxz7p5n7gd99xjq9rwm6x74qzpfp4wdmhj1hm08c7hkinizdvgv";
-       revision = "1";
-       editedCabalFile = "10fcy17ny5qvabm98md9j8r7vfklgzxvg89iinna7wm4v6q6j5w5";
+       revision = "2";
+       editedCabalFile = "0l6afs6bhf5q73nmlmc37qi0anr1dlrz1x10m9ipfssnkb5hp25k";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring blaze-builder bytestring
          case-insensitive containers directory HsOpenSSL io-streams mtl
@@ -128239,6 +128378,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hvega_0_4_0_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
+     , filepath, tasty, tasty-golden, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "hvega";
+       version = "0.4.0.0";
+       sha256 = "1clq31aq8vgvvc1mcrz4al3f7kfb6crs2nkc07n87xykmrcjkdyq";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base text unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty base bytestring containers filepath tasty
+         tasty-golden text
+       ];
+       description = "Create Vega-Lite visualizations (version 3) in Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hvega-theme" = callPackage
     ({ mkDerivation, base, hvega, text }:
      mkDerivation {
@@ -128606,14 +128767,12 @@ self: {
      }:
      mkDerivation {
        pname = "hw-hspec-hedgehog";
-       version = "0.1.0.7";
-       sha256 = "0445b5ycr622qjann2yyri8ghkhkw0vqaqn2rlar9wq2ni3b85rv";
-       revision = "1";
-       editedCabalFile = "0gcfhqasff8ij0xr5wq74blp90ldzgv992agadp63bs4ikg4rajm";
+       version = "0.1.0.8";
+       sha256 = "0c54mhzbmjfjvy5lyvr6xffrncqmbbr10lran2x9czbkhhbikrss";
        libraryHaskellDepends = [
          base call-stack hedgehog hspec HUnit transformers
        ];
-       testHaskellDepends = [ base hedgehog hspec ];
+       testHaskellDepends = [ base call-stack hedgehog hspec HUnit ];
        testToolDepends = [ hspec-discover ];
        description = "Interoperability between hspec and hedgehog";
        license = stdenv.lib.licenses.bsd3;
@@ -133538,6 +133697,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "inspection-testing_0_4_2_2" = callPackage
+    ({ mkDerivation, base, containers, ghc, mtl, template-haskell
+     , transformers
+     }:
+     mkDerivation {
+       pname = "inspection-testing";
+       version = "0.4.2.2";
+       sha256 = "1bppz99p6ix6hah8lbr9mapl2zxgmkg9i7h6hk8wq6zf54hwz3yp";
+       libraryHaskellDepends = [
+         base containers ghc mtl template-haskell transformers
+       ];
+       testHaskellDepends = [ base ];
+       description = "GHC plugin to do inspection testing";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "inspector-wrecker" = callPackage
     ({ mkDerivation, aeson, base, bytestring, case-insensitive
      , connection, data-default, http-client, http-client-tls
@@ -133770,8 +133946,8 @@ self: {
        pname = "int-cast";
        version = "0.2.0.0";
        sha256 = "0s8rqm5d9f4y2sskajsw8ff7q8xp52vwqa18m6bajldp11m9a1p0";
-       revision = "1";
-       editedCabalFile = "111pac97pcrp01zphf96crdx22fnq7ha2s27av0mqki5421rghpm";
+       revision = "2";
+       editedCabalFile = "1fhc91170q9q9k628wc3dqzdvxfjs97jzg5x7g0ndaqnh60l8cy5";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base QuickCheck test-framework test-framework-quickcheck2
@@ -137361,8 +137537,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "joint";
-       version = "0.1.0";
-       sha256 = "0hzbczwy1w1mw8c4lf52nm6ighjlpiyj91siy9fmqih4fv22a1p2";
+       version = "0.1.1";
+       sha256 = "1iq29qyi4ij7ffshvz1x9rpbrbpd4088nccdpjzpzgza73w4bqmp";
        libraryHaskellDepends = [ base ];
        description = "Trying to compose non-composable";
        license = stdenv.lib.licenses.bsd3;
@@ -137753,6 +137929,8 @@ self: {
        pname = "json";
        version = "0.9.3";
        sha256 = "1z8s3mfg76p2flqqd2wqsi96l5bg8k8w8m58zlv81pw3k7h1vbwb";
+       revision = "2";
+       editedCabalFile = "0iqmwfq6s1fc8jj16yx2d7jpzf94scd1hc4yvz281zxj7kds2ms5";
        libraryHaskellDepends = [
          array base bytestring containers mtl parsec pretty syb text
        ];
@@ -143137,8 +143315,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-lua";
-       version = "0.11.0";
-       sha256 = "1b65bfjdx7287d65s2ki05yfps8k0w6jfq4avna4z37cqssa0z59";
+       version = "0.11.0.1";
+       sha256 = "0712xbijag03n61d80bnd9xw94fzywc76l8ya9ijv684ls0qymy2";
        libraryHaskellDepends = [
          alex-tools array base bytestring deepseq text
        ];
@@ -147715,24 +147893,22 @@ self: {
 
   "linnet" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-conversion
-     , case-insensitive, either, exceptions, hspec, http-types
-     , io-streams, mtl, QuickCheck, quickcheck-classes
-     , quickcheck-instances, text, transformers, uri-encode, wai, warp
+     , case-insensitive, either, exceptions, hspec, http-types, mtl
+     , QuickCheck, quickcheck-classes, quickcheck-instances, text
+     , transformers, uri-encode, wai, warp
      }:
      mkDerivation {
        pname = "linnet";
-       version = "0.1.0.1";
-       sha256 = "074np5a8xx25k88c82spmvmwiwcm993pvfbwfhjjkcqjqxwwgglf";
+       version = "0.2.0.0";
+       sha256 = "13k65016hm7shi3q5r47hx0s8bfpaypf0bknmwcvsrgsg5cyjz7q";
        libraryHaskellDepends = [
          base bytestring bytestring-conversion case-insensitive either
-         exceptions http-types io-streams mtl text transformers uri-encode
-         wai warp
+         exceptions http-types mtl text transformers uri-encode wai warp
        ];
        testHaskellDepends = [
          base bytestring bytestring-conversion case-insensitive either
-         exceptions hspec http-types io-streams mtl QuickCheck
-         quickcheck-classes quickcheck-instances text transformers
-         uri-encode wai warp
+         exceptions hspec http-types mtl QuickCheck quickcheck-classes
+         quickcheck-instances text transformers uri-encode wai warp
        ];
        description = "Lightweight library for building HTTP API";
        license = stdenv.lib.licenses.asl20;
@@ -147744,8 +147920,8 @@ self: {
      }:
      mkDerivation {
        pname = "linnet-aeson";
-       version = "0.1.0.1";
-       sha256 = "1syfi3ha3z2l1g8qdy5rpla6xafw6dqcwicgns1xy9q9d8jrcjs3";
+       version = "0.2.0.0";
+       sha256 = "118i6a9296sig9ldhblh8b3q8g9k55bgjxn33v8msz1sw1dw493k";
        libraryHaskellDepends = [ aeson base bytestring linnet ];
        testHaskellDepends = [
          aeson base bytestring hspec linnet QuickCheck quickcheck-classes
@@ -147755,6 +147931,26 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "linnet-conduit" = callPackage
+    ({ mkDerivation, base, bytestring, conduit, hspec, http-types
+     , linnet, QuickCheck, quickcheck-classes, quickcheck-instances, wai
+     , warp
+     }:
+     mkDerivation {
+       pname = "linnet-conduit";
+       version = "0.2.0.0";
+       sha256 = "1q479v0abcrkfw6my2d5kcn6j8i4p9gkk3np5s5qkf097wyphh1r";
+       libraryHaskellDepends = [
+         base bytestring conduit http-types linnet wai warp
+       ];
+       testHaskellDepends = [
+         base bytestring conduit hspec http-types linnet QuickCheck
+         quickcheck-classes quickcheck-instances wai warp
+       ];
+       description = "Conduit-backed support for streaming in Linnet";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "linode" = callPackage
     ({ mkDerivation, aeson, async, base, binary, bytestring, containers
      , errors, lens, process, retry, safe, tasty, tasty-hunit
@@ -148430,8 +148626,8 @@ self: {
     ({ mkDerivation, base, doctest, mtl }:
      mkDerivation {
        pname = "list-transformer";
-       version = "1.0.4";
-       sha256 = "0zia1b2phk4skv39q2k481jsagz1syd6rkgfcdra15i2s5dhzvyp";
+       version = "1.0.5";
+       sha256 = "192yx9y0sp729dk9xaym1b6kyw9gv7n3fp1dvxw7z2w04s92l1k4";
        libraryHaskellDepends = [ base mtl ];
        testHaskellDepends = [ base doctest ];
        description = "List monad transformer";
@@ -151726,6 +151922,8 @@ self: {
        pname = "machines";
        version = "0.6.4";
        sha256 = "0s3pvdklanw6a41pyyqrplm3vid63dpy6vd6qhp86dnb4wp2ppkj";
+       revision = "2";
+       editedCabalFile = "1h0qq6kxv4kc0j0rmx7rhwhvfg1hc08r10q152km4p8kgshcwlig";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          adjunctions base comonad containers distributive mtl pointed
@@ -155534,8 +155732,8 @@ self: {
        pname = "memory";
        version = "0.14.18";
        sha256 = "01rmq3vagxzjmm96qnfxk4f0516cn12bp5m8inn8h5r918bqsigm";
-       revision = "1";
-       editedCabalFile = "0h4d0avv8kv3my4rim79lcamv2dyibld7w6ianq46nhwgr0h2lzm";
+       revision = "2";
+       editedCabalFile = "1kwlgsjxh4ncvc6x9rps82bm55qyzn8lvzg49s4rbyc7vjjsbmx6";
        libraryHaskellDepends = [
          base basement bytestring deepseq ghc-prim
        ];
@@ -156169,8 +156367,8 @@ self: {
        pname = "microaeson";
        version = "0.1.0.0";
        sha256 = "1hbpyz6p9snnd85h2y0pdqp20svxrggavbv0q8z33sc5i4p8b7iz";
-       revision = "1";
-       editedCabalFile = "0pxgpmr0xv355rnpr8m7l07swbzsjbfiba3dxyz53bdjcc8ya9dq";
+       revision = "2";
+       editedCabalFile = "1n3jhbwic8c2pa6dcz36a6fgna4b854ml5d5n8qzzhjshb0v60ri";
        libraryHaskellDepends = [
          array base bytestring containers deepseq text
        ];
@@ -156283,6 +156481,8 @@ self: {
        pname = "microlens";
        version = "0.4.10";
        sha256 = "1v277yyy4p9q57xr2lfp6qs24agglfczmcabrapxrzci3jfshmcw";
+       revision = "1";
+       editedCabalFile = "1qh5ifbwh62v14ygg3fj22wqimylph17ykng70vqv5x2rkp630jq";
        libraryHaskellDepends = [ base ];
        description = "A tiny lens library with no dependencies. If you're writing an app, you probably want microlens-platform, not this.";
        license = stdenv.lib.licenses.bsd3;
@@ -160736,8 +160936,8 @@ self: {
      }:
      mkDerivation {
        pname = "morpheus-graphql";
-       version = "0.2.1";
-       sha256 = "1qdd21mwxsn3yw9c0vxcsmx6ixp90lpy2ghk6ix2s06cs4d5s3h9";
+       version = "0.2.2";
+       sha256 = "1cgf6l6p97dfgj49gyygbd088smah3ichryrr8xvl1mr6pjclq5b";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -161527,8 +161727,8 @@ self: {
      }:
      mkDerivation {
        pname = "mssql-simple";
-       version = "0.5.0.0";
-       sha256 = "0k0j87h37hya42fv045z44p9issic0a0wswy75ymclizsbip1fl4";
+       version = "0.5.0.1";
+       sha256 = "174qqm4y38b4x0nc4kfrafr0cqcqshdxgxj2amn58m5zvclhn3fs";
        libraryHaskellDepends = [
          base binary bytestring hostname ms-tds mtl network template-haskell
          text time tls uuid-types
@@ -165092,8 +165292,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-mqtt";
-       version = "0.2.4.1";
-       sha256 = "0s0drakh05ygwkvlcd8z0f5168hvk8qmvdq3mg2bk1p2fjd2hfb2";
+       version = "0.2.4.2";
+       sha256 = "1ygd0ncwzzy4i2m4n0ax02csyjdsn2y66amr9yilxn6x0yhbq9rj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -165405,8 +165605,8 @@ self: {
        pname = "netrc";
        version = "0.2.0.0";
        sha256 = "11iax3ick0im397jyyjkny7lax9bgrlgk90a25dp2jsglkphfpls";
-       revision = "5";
-       editedCabalFile = "0v383hy7iw44xxnpdp2fla2dc8ivrhwgh2m303ps4z9fsw25cyka";
+       revision = "6";
+       editedCabalFile = "0mn0ar2xhjdsm50kmpw5ndvbyfmc30b3x0bx291d2ml7hqspnnsw";
        libraryHaskellDepends = [ base bytestring deepseq parsec ];
        testHaskellDepends = [
          base bytestring tasty tasty-golden tasty-quickcheck
@@ -166343,8 +166543,8 @@ self: {
     ({ mkDerivation, base, network }:
      mkDerivation {
        pname = "network-run";
-       version = "0.1.0";
-       sha256 = "16n7d0vgzcp6qq3y2vs1wjlj81xdi3a1kyk9qncmj3h7djav3r5b";
+       version = "0.2.0";
+       sha256 = "1iabxk341yzsr28mpiam01wris20na4kbvbpxfzbcvlb1q2pjz5v";
        libraryHaskellDepends = [ base network ];
        description = "Simple network runner library";
        license = stdenv.lib.licenses.bsd3;
@@ -167585,6 +167785,26 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {inherit (pkgs) nix;};
 
+  "nixfmt" = callPackage
+    ({ mkDerivation, base, cmdargs, directory, filepath, megaparsec
+     , parser-combinators, safe-exceptions, text, unix
+     }:
+     mkDerivation {
+       pname = "nixfmt";
+       version = "0.3.0";
+       sha256 = "0y9r7l2iwy6kqqli8bfcgrcr07pqvpaym895qn21d467ybcmgqih";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base megaparsec parser-combinators text
+       ];
+       executableHaskellDepends = [
+         base cmdargs directory filepath safe-exceptions text unix
+       ];
+       description = "An opinionated formatter for Nix";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "nixfromnpm" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring
      , classy-prelude, containers, curl, data-default, data-fix
@@ -171766,6 +171986,89 @@ self: {
        broken = true;
      }) {};
 
+  "optics" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, criterion
+     , inspection-testing, lens, mtl, optics-core, optics-extra
+     , optics-th, random, tasty, tasty-hunit, template-haskell
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "optics";
+       version = "0.1";
+       sha256 = "1xkccyshhzbf8c7v1vi7cw4k1a1gfgw9yl2wfma4q36bv96qq2lk";
+       libraryHaskellDepends = [
+         array base containers mtl optics-core optics-extra optics-th
+         transformers
+       ];
+       testHaskellDepends = [
+         base containers inspection-testing mtl optics-core random tasty
+         tasty-hunit template-haskell
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers criterion lens transformers
+         unordered-containers vector
+       ];
+       description = "Optics as an abstract interface";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "optics-core" = callPackage
+    ({ mkDerivation, array, base, containers, transformers }:
+     mkDerivation {
+       pname = "optics-core";
+       version = "0.1";
+       sha256 = "0vyvvjlqps0sa03rxp0p2v9vjllff53adn3y6qfwrpc08kxwh7q1";
+       libraryHaskellDepends = [ array base containers transformers ];
+       description = "Optics as an abstract interface: core definitions";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "optics-extra" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, hashable, mtl
+     , optics-core, text, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "optics-extra";
+       version = "0.1";
+       sha256 = "1z0blxm9gxbzqxxcm9bkj8jvf9apgn8abh0wdc4f220rs32c3v7g";
+       libraryHaskellDepends = [
+         array base bytestring containers hashable mtl optics-core text
+         transformers unordered-containers vector
+       ];
+       description = "Extra utilities and instances for optics-core";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "optics-th" = callPackage
+    ({ mkDerivation, base, containers, mtl, optics-core
+     , template-haskell, th-abstraction, transformers
+     }:
+     mkDerivation {
+       pname = "optics-th";
+       version = "0.1";
+       sha256 = "1fqaxp7divk2wj7mvnsyzclly99l895dss1ssk6dzfgdijjjipk6";
+       revision = "1";
+       editedCabalFile = "034563mm7rdck8xhwjpqig3kj9rzk91s292rwcargbgbpma5ailv";
+       libraryHaskellDepends = [
+         base containers mtl optics-core template-haskell th-abstraction
+         transformers
+       ];
+       testHaskellDepends = [ base optics-core ];
+       description = "Optics construction using TemplateHaskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "optics-vl" = callPackage
+    ({ mkDerivation, base, optics-core, profunctors }:
+     mkDerivation {
+       pname = "optics-vl";
+       version = "0.1";
+       sha256 = "03khw0aqv7wdlym5maasm1l20gj4y1jzci89y592hx3y07mzvapl";
+       libraryHaskellDepends = [ base optics-core profunctors ];
+       description = "Utilities for compatibility with van Laarhoven optics";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "optima" = callPackage
     ({ mkDerivation, attoparsec, attoparsec-data, base
      , optparse-applicative, rerebase, text, text-builder
@@ -173977,58 +174280,6 @@ self: {
      }:
      mkDerivation {
        pname = "pantry";
-       version = "0.1.1.1";
-       sha256 = "082p2shapgnv10qjm77bpn0y6p6582n38xcgirh2l8mhs1yqflyg";
-       libraryHaskellDepends = [
-         aeson ansi-terminal array base base-orphans base64-bytestring
-         bytestring Cabal conduit conduit-extra containers contravariant
-         cryptonite cryptonite-conduit deepseq digest directory filelock
-         filepath generic-deriving ghc-prim hackage-security hashable hpack
-         http-client http-client-tls http-conduit http-download http-types
-         integer-gmp memory mono-traversable mtl network network-uri path
-         path-io persistent persistent-sqlite persistent-template primitive
-         resourcet rio rio-orphans rio-prettyprint safe syb tar-conduit
-         template-haskell text text-metrics th-lift th-lift-instances
-         th-orphans th-reify-many th-utilities time transformers unix-compat
-         unliftio unordered-containers vector yaml zip-archive
-       ];
-       testHaskellDepends = [
-         aeson ansi-terminal array base base-orphans base64-bytestring
-         bytestring Cabal conduit conduit-extra containers contravariant
-         cryptonite cryptonite-conduit deepseq digest directory exceptions
-         filelock filepath generic-deriving ghc-prim hackage-security
-         hashable hedgehog hpack hspec http-client http-client-tls
-         http-conduit http-download http-types integer-gmp memory
-         mono-traversable mtl network network-uri path path-io persistent
-         persistent-sqlite persistent-template primitive QuickCheck
-         raw-strings-qq resourcet rio rio-orphans rio-prettyprint safe syb
-         tar-conduit template-haskell text text-metrics th-lift
-         th-lift-instances th-orphans th-reify-many th-utilities time
-         transformers unix-compat unliftio unordered-containers vector yaml
-         zip-archive
-       ];
-       description = "Content addressable Haskell package management";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "pantry_0_1_1_2" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, array, base, base-orphans
-     , base64-bytestring, bytestring, Cabal, conduit, conduit-extra
-     , containers, contravariant, cryptonite, cryptonite-conduit
-     , deepseq, digest, directory, exceptions, filelock, filepath
-     , generic-deriving, ghc-prim, hackage-security, hashable, hedgehog
-     , hpack, hspec, http-client, http-client-tls, http-conduit
-     , http-download, http-types, integer-gmp, memory, mono-traversable
-     , mtl, network, network-uri, path, path-io, persistent
-     , persistent-sqlite, persistent-template, primitive, QuickCheck
-     , raw-strings-qq, resourcet, rio, rio-orphans, rio-prettyprint
-     , safe, syb, tar-conduit, template-haskell, text, text-metrics
-     , th-lift, th-lift-instances, th-orphans, th-reify-many
-     , th-utilities, time, transformers, unix-compat, unliftio
-     , unordered-containers, vector, yaml, zip-archive
-     }:
-     mkDerivation {
-       pname = "pantry";
        version = "0.1.1.2";
        sha256 = "1m1sps9kc7y8zpba486lv5z8an3z8493zxb1qhghql6pybsprsgi";
        libraryHaskellDepends = [
@@ -174061,7 +174312,6 @@ self: {
        ];
        description = "Content addressable Haskell package management";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pantry-tmp" = callPackage
@@ -174620,6 +174870,8 @@ self: {
        pname = "parallel";
        version = "3.2.2.0";
        sha256 = "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p";
+       revision = "1";
+       editedCabalFile = "0a3kn7arck8f2gwm8cwfkplsw4q9v9j6ifbhj1l3bmclmkwcckcj";
        libraryHaskellDepends = [ array base containers deepseq ghc-prim ];
        description = "Parallel programming library";
        license = stdenv.lib.licenses.bsd3;
@@ -178630,8 +178882,8 @@ self: {
      }:
      mkDerivation {
        pname = "pg-transact";
-       version = "0.1.0.1";
-       sha256 = "0zf9mfhpknaa0vggv60gpkfr0ak51n1xbw5lfqx8l8p1kqv3d0jr";
+       version = "0.1.2.0";
+       sha256 = "1xgma50c4pvvb9h2wksx8wl4sf0625ngbsb2c828xd0aqj171qmj";
        libraryHaskellDepends = [
          base bytestring exceptions monad-control postgresql-simple
          transformers
@@ -178647,6 +178899,30 @@ self: {
        broken = true;
      }) {};
 
+  "pg-transact_0_2_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, exceptions, hspec
+     , hspec-discover, hspec-expectations-lifted, monad-control
+     , postgresql-simple, tmp-postgres, transformers
+     }:
+     mkDerivation {
+       pname = "pg-transact";
+       version = "0.2.0.0";
+       sha256 = "0g3willpc3msbgbrjq6q3zlc195c2cv8bnhc3g4ksnz7c85z3vhc";
+       libraryHaskellDepends = [
+         base bytestring exceptions monad-control postgresql-simple
+         transformers
+       ];
+       testHaskellDepends = [
+         base bytestring exceptions hspec hspec-discover
+         hspec-expectations-lifted postgresql-simple tmp-postgres
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Another postgresql-simple transaction monad";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "pgdl" = callPackage
     ({ mkDerivation, base, binary, brick, bytestring, Cabal, conduit
      , conduit-extra, configurator, containers, directory
@@ -179663,29 +179939,6 @@ self: {
      }:
      mkDerivation {
        pname = "pipes";
-       version = "4.3.11";
-       sha256 = "0h70djd6x306rci8zp356klqj6376xry6mkhyr12301adfhag8vv";
-       libraryHaskellDepends = [
-         base exceptions mmorph mtl semigroups transformers void
-       ];
-       testHaskellDepends = [
-         base mtl QuickCheck test-framework test-framework-quickcheck2
-         transformers
-       ];
-       benchmarkHaskellDepends = [
-         base criterion mtl optparse-applicative transformers
-       ];
-       description = "Compositional pipelines";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "pipes_4_3_12" = callPackage
-    ({ mkDerivation, base, criterion, exceptions, mmorph, mtl
-     , optparse-applicative, QuickCheck, semigroups, test-framework
-     , test-framework-quickcheck2, transformers, void
-     }:
-     mkDerivation {
-       pname = "pipes";
        version = "4.3.12";
        sha256 = "0ni5szs9jl4map05lcyl97dgb69g2xk1a1rdiw8p4024vfyskp8c";
        libraryHaskellDepends = [
@@ -179700,7 +179953,6 @@ self: {
        ];
        description = "Compositional pipelines";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pipes-aeson" = callPackage
@@ -183260,12 +183512,12 @@ self: {
      }) {};
 
   "postgres-options" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, bytestring }:
      mkDerivation {
        pname = "postgres-options";
-       version = "0.1.0.0";
-       sha256 = "17a2w4fb85mp9v1rghgkm0cvgzxvvahcvfi3vmlzrdqhlsm0si7c";
-       libraryHaskellDepends = [ base ];
+       version = "0.1.0.1";
+       sha256 = "0pysvgg2p032j5a9qdysbndy0a0fzm41zgv070cwqk199w1lh3h7";
+       libraryHaskellDepends = [ base bytestring ];
        description = "An Options type representing options for postgres connections";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -183692,20 +183944,20 @@ self: {
   "postgresql-simple-opts" = callPackage
     ({ mkDerivation, base, bytestring, data-default, either
      , generic-deriving, hspec, optparse-applicative, optparse-generic
-     , postgresql-simple, split, uri-bytestring
+     , postgres-options, postgresql-simple, split, uri-bytestring
      }:
      mkDerivation {
        pname = "postgresql-simple-opts";
-       version = "0.3.0.1";
-       sha256 = "19jhrz2lghiycb81dzzz5g2kwzaahn27q7diw6nn9qmcpwgw3rly";
+       version = "0.4.0.0";
+       sha256 = "0zrmqd25xni2d51jna2a52l3bmdn6lpx9mbjzllnf6zn6ckw4ja8";
        libraryHaskellDepends = [
          base bytestring data-default either generic-deriving
-         optparse-applicative optparse-generic postgresql-simple split
-         uri-bytestring
+         optparse-applicative optparse-generic postgres-options
+         postgresql-simple split uri-bytestring
        ];
        testHaskellDepends = [
          base bytestring data-default hspec optparse-applicative
-         postgresql-simple
+         postgres-options postgresql-simple
        ];
        description = "An optparse-applicative parser for postgresql-simple's connection options";
        license = stdenv.lib.licenses.bsd3;
@@ -192439,6 +192691,39 @@ self: {
        broken = true;
      }) {};
 
+  "rattletrap_9_0_2" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, binary, binary-bits
+     , bytestring, containers, filepath, http-client, http-client-tls
+     , HUnit, scientific, template-haskell, temporary, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "rattletrap";
+       version = "9.0.2";
+       sha256 = "14dnnaii24c9vh4jvdymnnhrhvgwzfr6al4qcm4bj9wk55jgj71r";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base binary binary-bits bytestring containers
+         filepath http-client http-client-tls scientific template-haskell
+         text transformers
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty base binary binary-bits bytestring containers
+         filepath http-client http-client-tls scientific template-haskell
+         text transformers
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty base binary binary-bits bytestring containers
+         filepath http-client http-client-tls HUnit scientific
+         template-haskell temporary text transformers
+       ];
+       description = "Parse and generate Rocket League replays";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "raven-haskell" = callPackage
     ({ mkDerivation, aeson, base, bytestring, hspec, http-conduit, mtl
      , network, random, resourcet, text, time, unordered-containers
@@ -193451,8 +193736,8 @@ self: {
      }:
      mkDerivation {
        pname = "reanimate-svg";
-       version = "0.9.0.0";
-       sha256 = "0x4d06vsxz3845w05d4qnfbmws2bc7vxpny8hiqbv1wwgjwig327";
+       version = "0.9.0.1";
+       sha256 = "0a4gp16zm1j6xi9algg4fkl53rxjzq38dvfjk0bzw6sm727rxvnf";
        libraryHaskellDepends = [
          attoparsec base bytestring containers JuicyPixels lens linear mtl
          scientific text transformers vector xml
@@ -193464,6 +193749,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "reanimate-svg_0_9_0_2" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers, hspec
+     , JuicyPixels, lens, linear, mtl, scientific, svg-tree, text
+     , transformers, vector, xml
+     }:
+     mkDerivation {
+       pname = "reanimate-svg";
+       version = "0.9.0.2";
+       sha256 = "1nlxdyvy4fzr21qm428112w7af9ziajg9vqiv73q45ijgc6icgc9";
+       libraryHaskellDepends = [
+         attoparsec base bytestring containers JuicyPixels lens linear mtl
+         scientific text transformers vector xml
+       ];
+       testHaskellDepends = [
+         attoparsec base hspec linear scientific svg-tree
+       ];
+       description = "SVG file loader and serializer";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "reason-export" = callPackage
     ({ mkDerivation, base, bytestring, containers, Diff, directory
      , formatting, hashable, hspec, hspec-core, HUnit, mtl, QuickCheck
@@ -193854,8 +194160,8 @@ self: {
      }:
      mkDerivation {
        pname = "red-black-record";
-       version = "2.0.4.0";
-       sha256 = "1wcg8a3aql1jmnfl7q5gzjgxl4z6780zgp8w10v3g52ilcdq4myn";
+       version = "2.1.0.2";
+       sha256 = "0xfvvhdqnhialxf13xw894mpsf8xj8jig5zipqj1hh6galb0b164";
        libraryHaskellDepends = [ base sop-core ];
        testHaskellDepends = [
          aeson base bytestring doctest profunctors sop-core tasty
@@ -194326,19 +194632,6 @@ self: {
      }) {};
 
   "reflection" = callPackage
-    ({ mkDerivation, base, template-haskell }:
-     mkDerivation {
-       pname = "reflection";
-       version = "2.1.4";
-       sha256 = "0kf4a5ijw6jfnfibjcrpdy9vzh1n6v2pxia8dhyyqdissiwc8bzj";
-       revision = "1";
-       editedCabalFile = "05ibi4ivvh87d96xl09yh0day08p5www5vp568mvn2dp37rxyngc";
-       libraryHaskellDepends = [ base template-haskell ];
-       description = "Reifies arbitrary terms into types that can be reflected back into terms";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "reflection_2_1_5" = callPackage
     ({ mkDerivation, base, hspec, hspec-discover, QuickCheck
      , template-haskell
      }:
@@ -194351,7 +194644,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Reifies arbitrary terms into types that can be reflected back into terms";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "reflection-extras" = callPackage
@@ -196716,13 +197008,18 @@ self: {
      }) {};
 
   "replace-megaparsec" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, megaparsec, text }:
+    ({ mkDerivation, base, bytestring, Cabal, criterion, megaparsec
+     , text
+     }:
      mkDerivation {
        pname = "replace-megaparsec";
-       version = "1.0.1.0";
-       sha256 = "18aipcrmic0xgfjg1cia6zs7m5a9xq7srm1r713qxri9pm5ynqd6";
+       version = "1.1.0.0";
+       sha256 = "1m1f0pwz6glpkc3n00c8c9v6dmfriss117p168wmx7kfx4kz56zs";
        libraryHaskellDepends = [ base megaparsec ];
        testHaskellDepends = [ base bytestring Cabal megaparsec text ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion megaparsec text
+       ];
        description = "Stream editing with parsers";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -198687,31 +198984,6 @@ self: {
      }:
      mkDerivation {
        pname = "rio";
-       version = "0.1.11.0";
-       sha256 = "17p3zr1fncwqc1rz181mfbxi9dlyd2cd8xcxhnxm3fgnq6i9cj4l";
-       libraryHaskellDepends = [
-         base bytestring containers deepseq directory exceptions filepath
-         hashable microlens mtl primitive process text time typed-process
-         unix unliftio unliftio-core unordered-containers vector
-       ];
-       testHaskellDepends = [
-         base bytestring containers deepseq directory exceptions filepath
-         hashable hspec microlens mtl primitive process QuickCheck text time
-         typed-process unix unliftio unliftio-core unordered-containers
-         vector
-       ];
-       description = "A standard library for Haskell";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "rio_0_1_12_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, directory
-     , exceptions, filepath, hashable, hspec, microlens, mtl, primitive
-     , process, QuickCheck, text, time, typed-process, unix, unliftio
-     , unliftio-core, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "rio";
        version = "0.1.12.0";
        sha256 = "0xzjkh6aavynpyskikhs8dmv0zhkiqiwz9zdn80zbd25b2182pif";
        libraryHaskellDepends = [
@@ -198727,7 +198999,6 @@ self: {
        ];
        description = "A standard library for Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "rio-orphans" = callPackage
@@ -199874,16 +200145,17 @@ self: {
 
   "rounded" = callPackage
     ({ mkDerivation, base, ghc-prim, gmp, hgmp, long-double, mpfr
-     , reflection, singletons
+     , reflection
      }:
      mkDerivation {
        pname = "rounded";
-       version = "0.1.0.1";
-       sha256 = "04abl192vq1xq7kf9fackcb17wjyxw4068fsks3pxm9dd4iymgls";
+       version = "1.0";
+       sha256 = "1vwy8sc457bxq3x8wzfsr5v01lp38ynwg8hp97likkckd13vkh7v";
        libraryHaskellDepends = [
-         base ghc-prim hgmp long-double reflection singletons
+         base ghc-prim hgmp long-double reflection
        ];
        librarySystemDepends = [ gmp mpfr ];
+       libraryPkgconfigDepends = [ mpfr ];
        testHaskellDepends = [ base long-double ];
        description = "Correctly-rounded arbitrary-precision floating-point arithmetic";
        license = stdenv.lib.licenses.bsd3;
@@ -201442,48 +201714,16 @@ self: {
   "salak" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion
      , data-default, directory, dlist, exceptions, filepath, hashable
-     , heaps, hspec, hspec-discover, megaparsec, menshen, mtl
-     , QuickCheck, random, scientific, text, time, unliftio-core
-     , unordered-containers
+     , heaps, hspec, hspec-discover, megaparsec, mtl, QuickCheck, random
+     , scientific, text, time, unliftio-core, unordered-containers
      }:
      mkDerivation {
        pname = "salak";
-       version = "0.3.5.1";
-       sha256 = "0g41h9a89cp24cm99q1lgiyz794szf85hinybbjz75s33a3lykgv";
-       libraryHaskellDepends = [
-         base bytestring containers data-default directory dlist exceptions
-         filepath hashable heaps megaparsec menshen mtl scientific text time
-         unliftio-core unordered-containers
-       ];
-       testHaskellDepends = [
-         base bytestring containers data-default directory dlist exceptions
-         filepath hashable heaps hspec megaparsec menshen mtl QuickCheck
-         random scientific text time unliftio-core unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring containers criterion data-default directory dlist
-         exceptions filepath hashable heaps megaparsec menshen mtl
-         scientific text time unliftio-core unordered-containers
-       ];
-       description = "Configuration (re)Loader and Parser";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "salak_0_3_5_2" = callPackage
-    ({ mkDerivation, base, bytestring, containers, criterion
-     , data-default, directory, dlist, exceptions, filepath, hashable
-     , heaps, hspec, hspec-discover, megaparsec, menshen, mtl
-     , QuickCheck, random, scientific, text, time, unliftio-core
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "salak";
-       version = "0.3.5.2";
-       sha256 = "1zz1dy3350amn9mbkmpysk4ykz8x40bmhrbbkbswrqf5kaa2d7xn";
+       version = "0.3.5.3";
+       sha256 = "0k6z2vjxg6za6rfhx1xgjdck7ainnsbhrvzav2ngwpvy8li5g02b";
        libraryHaskellDepends = [
          base bytestring containers data-default directory dlist exceptions
-         filepath hashable heaps megaparsec menshen mtl scientific text time
+         filepath hashable heaps megaparsec mtl scientific text time
          unliftio-core unordered-containers
        ];
        testHaskellDepends = [
@@ -201496,7 +201736,6 @@ self: {
        ];
        description = "Configuration (re)Loader and Parser";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "salak-toml" = callPackage
@@ -201505,8 +201744,8 @@ self: {
      }:
      mkDerivation {
        pname = "salak-toml";
-       version = "0.3.5.1";
-       sha256 = "1clgsr1aqz2zfnsazhql6m125161yxbfp6q0lc4dllbvdhjygmrf";
+       version = "0.3.5.3";
+       sha256 = "18spk2m75inddz9k0pwg58cr61rfbw1fnki56nnq7jng0wii376y";
        libraryHaskellDepends = [
          base salak text time tomland unordered-containers
        ];
@@ -201529,8 +201768,8 @@ self: {
      }:
      mkDerivation {
        pname = "salak-yaml";
-       version = "0.3.5.1";
-       sha256 = "1qzpbv2g7ds3dbcfi90ncjrk66vm1kxdkkdx1i49jq9g2xcai9n6";
+       version = "0.3.5.3";
+       sha256 = "07wcwld58bdr8n5fdfq98x6c1xdr8rrx919y4f9y7abdnc4aj000";
        libraryHaskellDepends = [ base conduit libyaml salak text ];
        testHaskellDepends = [
          base conduit exceptions hspec libyaml mtl QuickCheck salak text
@@ -202216,6 +202455,35 @@ self: {
        broken = true;
      }) {inherit (pkgs) z3;};
 
+  "sbv_8_4" = callPackage
+    ({ mkDerivation, array, async, base, bytestring, containers
+     , crackNum, deepseq, directory, doctest, filepath, generic-deriving
+     , ghc, Glob, hlint, mtl, pretty, process, QuickCheck, random, syb
+     , tasty, tasty-golden, tasty-hunit, tasty-quickcheck
+     , template-haskell, time, transformers, z3
+     }:
+     mkDerivation {
+       pname = "sbv";
+       version = "8.4";
+       sha256 = "0fv1l99zw29vsfgzym0qvb8qcy1jb7gkd1yj48vy1w0ayg9w01i0";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         array async base containers crackNum deepseq directory filepath
+         generic-deriving ghc mtl pretty process QuickCheck random syb
+         template-haskell time transformers
+       ];
+       testHaskellDepends = [
+         base bytestring containers crackNum directory doctest filepath Glob
+         hlint mtl QuickCheck random syb tasty tasty-golden tasty-hunit
+         tasty-quickcheck template-haskell
+       ];
+       testSystemDepends = [ z3 ];
+       description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) z3;};
+
   "sbvPlugin" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, ghc
      , ghc-prim, mtl, process, sbv, tasty, tasty-golden
@@ -204638,29 +204906,6 @@ self: {
      }:
      mkDerivation {
        pname = "semigroupoids";
-       version = "5.3.2";
-       sha256 = "01cxdcflfzx674bhdclf6c7lwgjpbj5yqv8w1fi9dvipyhyj3a31";
-       revision = "1";
-       editedCabalFile = "1r88pi1bvc1w0nys810p3drra6na02zhbaf257dl4lyxl8iv5466";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         base base-orphans bifunctors comonad containers contravariant
-         distributive hashable tagged template-haskell transformers
-         transformers-compat unordered-containers
-       ];
-       testHaskellDepends = [ base doctest ];
-       description = "Semigroupoids: Category sans id";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "semigroupoids_5_3_3" = callPackage
-    ({ mkDerivation, base, base-orphans, bifunctors, Cabal
-     , cabal-doctest, comonad, containers, contravariant, distributive
-     , doctest, hashable, tagged, template-haskell, transformers
-     , transformers-compat, unordered-containers
-     }:
-     mkDerivation {
-       pname = "semigroupoids";
        version = "5.3.3";
        sha256 = "016hc4imr9l4szs3p7f1aahvxr5wv4clvr3qzrm3nibssg5vrs61";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -204672,7 +204917,6 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Semigroupoids: Category sans id";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "semigroupoids-syntax" = callPackage
@@ -205982,8 +206226,6 @@ self: {
        ];
        description = "Checked exceptions for Servant APIs";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-checked-exceptions-core" = callPackage
@@ -207142,8 +207384,35 @@ self: {
        ];
        description = "Embed a raw 'Application' in a Servant API";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "servant-rawm_0_3_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, doctest, filepath, Glob
+     , hspec-wai, http-client, http-media, http-types, lens, resourcet
+     , servant, servant-client, servant-client-core, servant-docs
+     , servant-server, tasty, tasty-hspec, tasty-hunit, text
+     , transformers, wai, wai-app-static, warp
+     }:
+     mkDerivation {
+       pname = "servant-rawm";
+       version = "0.3.2.0";
+       sha256 = "013d89zmlmwwwhgyc57xbzsd4phz347if5y6iz93wrw4lbvc341d";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring filepath http-client http-media http-types lens
+         resourcet servant-client servant-client-core servant-docs
+         servant-server wai wai-app-static
+       ];
+       testHaskellDepends = [
+         base bytestring doctest Glob hspec-wai http-client http-media
+         http-types servant servant-client servant-client-core
+         servant-server tasty tasty-hspec tasty-hunit text transformers wai
+         warp
+       ];
+       description = "Embed a raw 'Application' in a Servant API";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-reason" = callPackage
@@ -208224,6 +208493,33 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "set-cover_0_1" = callPackage
+    ({ mkDerivation, array, base, containers, enummapset, non-empty
+     , prelude-compat, psqueues, QuickCheck, random, semigroups, timeit
+     , transformers, utility-ht
+     }:
+     mkDerivation {
+       pname = "set-cover";
+       version = "0.1";
+       sha256 = "1yidgc1nbhbkxpchd96vzfgkk95hdwgpvd9ys2b4xw2m1zyzi1kb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base containers enummapset non-empty prelude-compat psqueues
+         semigroups transformers utility-ht
+       ];
+       testHaskellDepends = [
+         array base containers enummapset QuickCheck transformers utility-ht
+       ];
+       benchmarkHaskellDepends = [
+         array base containers enummapset QuickCheck random timeit
+         transformers utility-ht
+       ];
+       description = "Solve exact set cover problems like Sudoku, 8 Queens, Soma Cube, Tetris Cube";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "set-extra" = callPackage
     ({ mkDerivation, base, containers, mtl, syb }:
      mkDerivation {
@@ -209200,6 +209496,32 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
+  "shakespeare_2_0_21" = callPackage
+    ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring
+     , containers, directory, exceptions, ghc-prim, hspec, HUnit, parsec
+     , process, scientific, template-haskell, text, time, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "shakespeare";
+       version = "2.0.21";
+       sha256 = "1assgcinf9i9rm7mphqfymzvn7z1m2jjkm98z7l2pb76z53mcvgh";
+       libraryHaskellDepends = [
+         aeson base blaze-html blaze-markup bytestring containers directory
+         exceptions ghc-prim parsec process scientific template-haskell text
+         time transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base blaze-html blaze-markup bytestring containers directory
+         exceptions ghc-prim hspec HUnit parsec process template-haskell
+         text time transformers
+       ];
+       description = "A toolkit for making compile-time interpolated templates";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ psibi ];
+     }) {};
+
   "shakespeare-babel" = callPackage
     ({ mkDerivation, base, classy-prelude, data-default, directory
      , process, shakespeare, template-haskell
@@ -209755,6 +210077,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "shelly_1_9_0" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, directory
+     , enclosed-exceptions, exceptions, filepath, hspec, hspec-contrib
+     , HUnit, lifted-async, lifted-base, monad-control, mtl, process
+     , text, time, transformers, transformers-base, unix, unix-compat
+     }:
+     mkDerivation {
+       pname = "shelly";
+       version = "1.9.0";
+       sha256 = "1kma77gixhyciimh19p64h1ndbcrs9qhk8fgyv71iqh5q57zvday";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base bytestring containers directory enclosed-exceptions
+         exceptions filepath lifted-async lifted-base monad-control mtl
+         process text time transformers transformers-base unix unix-compat
+       ];
+       testHaskellDepends = [
+         async base bytestring containers directory enclosed-exceptions
+         exceptions filepath hspec hspec-contrib HUnit lifted-async
+         lifted-base monad-control mtl process text time transformers
+         transformers-base unix unix-compat
+       ];
+       description = "shell-like (systems) programming in Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "shelly-extra" = callPackage
     ({ mkDerivation, async, base, hspec, HUnit, mtl, SafeSemaphore
      , shelly, text
@@ -211664,23 +212014,11 @@ self: {
     ({ mkDerivation, base, singletons }:
      mkDerivation {
        pname = "singleton-nats";
-       version = "0.4.2";
-       sha256 = "1wcwks2acnql5ihkjn2543hgdnlw049z8av8x5dp5r552fq6k0cg";
-       libraryHaskellDepends = [ base singletons ];
-       description = "Unary natural numbers relying on the singletons infrastructure";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "singleton-nats_0_4_3" = callPackage
-    ({ mkDerivation, base, singletons }:
-     mkDerivation {
-       pname = "singleton-nats";
        version = "0.4.3";
        sha256 = "0xj5w6dszm832y90qxmwqnyiwpav30q199cjcdbdxr7q1d4klszi";
        libraryHaskellDepends = [ base singletons ];
        description = "Unary natural numbers relying on the singletons infrastructure";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "singleton-typelits" = callPackage
@@ -215334,6 +215672,8 @@ self: {
        pname = "socks";
        version = "0.6.0";
        sha256 = "10bkf2gw5l48j6g1i2slndcg4nzdqj8syrnbj21gjz6sms3zlqlp";
+       revision = "1";
+       editedCabalFile = "0a7p6gfcmxgrs3rx62qm7fi5hvn90r64px7wbqva4h6scrmywn50";
        libraryHaskellDepends = [
          base basement bytestring cereal network
        ];
@@ -216099,30 +216439,6 @@ self: {
      }:
      mkDerivation {
        pname = "sparse-tensor";
-       version = "0.2.1";
-       sha256 = "10950cp07m1p011n3a14bka2rpfrmn20k0kjb1cvca7dnxn2iv2f";
-       setupHaskellDepends = [ base Cabal ];
-       libraryHaskellDepends = [
-         ad base bytestring cereal containers deepseq ghc-typelits-knownnat
-         ghc-typelits-natnormalise hmatrix parallel tf-random zlib
-       ];
-       testHaskellDepends = [
-         base hmatrix QuickCheck tasty tasty-hunit tasty-quickcheck
-       ];
-       description = "typesafe tensor algebra library";
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "sparse-tensor_0_2_1_1" = callPackage
-    ({ mkDerivation, ad, base, bytestring, Cabal, cereal, containers
-     , deepseq, ghc-typelits-knownnat, ghc-typelits-natnormalise
-     , hmatrix, parallel, QuickCheck, tasty, tasty-hunit
-     , tasty-quickcheck, tf-random, zlib
-     }:
-     mkDerivation {
-       pname = "sparse-tensor";
        version = "0.2.1.1";
        sha256 = "1bjia89as14i2cif9nf7rsifazg305l7cl040gb7xbi3szlc621y";
        setupHaskellDepends = [ base Cabal ];
@@ -219751,6 +220067,8 @@ self: {
        pname = "stm";
        version = "2.5.0.0";
        sha256 = "1illcj8zgzmpl91hzgk0j74ha436a379gw13siq4gifbcrf6iqsr";
+       revision = "1";
+       editedCabalFile = "189fxk75h7n27kw7ndyn8nkxm3117qdh1dpag1mcs487kxghff62";
        libraryHaskellDepends = [ array base ];
        description = "Software Transactional Memory";
        license = stdenv.lib.licenses.bsd3;
@@ -226258,32 +226576,6 @@ self: {
      }:
      mkDerivation {
        pname = "tar";
-       version = "0.5.1.0";
-       sha256 = "0s2brvaxg5fki2jdkccmnpssiy6a3wjh24p6a3dkkdvjcixnk7f8";
-       revision = "1";
-       editedCabalFile = "1lydbwsmccf2av0g61j07bx7r5mzbcfgwvmh0qwg3a91857x264x";
-       libraryHaskellDepends = [
-         array base bytestring containers deepseq directory filepath time
-       ];
-       testHaskellDepends = [
-         array base bytestring bytestring-handle containers deepseq
-         directory filepath QuickCheck tasty tasty-quickcheck time
-       ];
-       benchmarkHaskellDepends = [
-         array base bytestring containers criterion deepseq directory
-         filepath time
-       ];
-       description = "Reading, writing and manipulating \".tar\" archive files.";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "tar_0_5_1_1" = callPackage
-    ({ mkDerivation, array, base, bytestring, bytestring-handle
-     , containers, criterion, deepseq, directory, filepath, QuickCheck
-     , tasty, tasty-quickcheck, time
-     }:
-     mkDerivation {
-       pname = "tar";
        version = "0.5.1.1";
        sha256 = "1ppim7cgmn7ng8zbdrwkxhhizc30h15h1c9cdlzamc5jcagl915k";
        libraryHaskellDepends = [
@@ -226299,7 +226591,6 @@ self: {
        ];
        description = "Reading, writing and manipulating \".tar\" archive files.";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tar-conduit" = callPackage
@@ -226611,10 +226902,8 @@ self: {
     ({ mkDerivation, base, tagged, tasty }:
      mkDerivation {
        pname = "tasty-expected-failure";
-       version = "0.11.1.1";
-       sha256 = "1i2s809m644b7hgiblqay9j364r3fjj1rwbrahsn1pgr5q6mr6ji";
-       revision = "1";
-       editedCabalFile = "1b3fn7d3zwhhwm3gp8cmmsdcrvn9dhshd665xrx1mk6cmy4m8k16";
+       version = "0.11.1.2";
+       sha256 = "175gdk1mkslcwjxajkbl4zmaigzf8h4svzd7va5qb519y0dxk28n";
        libraryHaskellDepends = [ base tagged tasty ];
        description = "Mark tasty tests as failure expected";
        license = stdenv.lib.licenses.mit;
@@ -227687,12 +227976,12 @@ self: {
        broken = true;
      }) {};
 
-  "template-haskell_2_14_0_0" = callPackage
+  "template-haskell_2_15_0_0" = callPackage
     ({ mkDerivation, base, ghc-boot-th, pretty }:
      mkDerivation {
        pname = "template-haskell";
-       version = "2.14.0.0";
-       sha256 = "1y8l2g95mhd2j09bq05q2rj6rn2ni86yhf4kgha3y5qig7j8lyy9";
+       version = "2.15.0.0";
+       sha256 = "16p8szb5by7gyk5r5cnrdp3b613vp5wasqj8dz63my17l2lsp2wl";
        libraryHaskellDepends = [ base ghc-boot-th pretty ];
        description = "Support library for Template Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -228315,8 +228604,8 @@ self: {
      }:
      mkDerivation {
        pname = "term-rewriting";
-       version = "0.4.0.1";
-       sha256 = "14mgpwhpfa0w5xgwsqa5nklagw6scs51cjwin7d34gx8bkvw9m13";
+       version = "0.4.0.2";
+       sha256 = "0k0aylm6vzcqghp5zw461p68zgzjzr6k4ki7d00zl471lmbdbs8n";
        libraryHaskellDepends = [
          ansi-wl-pprint array base containers mtl multiset parsec
          union-find-array
@@ -229945,6 +230234,8 @@ self: {
        pname = "text-short";
        version = "0.1.3";
        sha256 = "0xyrxlb602z8bc9sr2y1fag0x56a20yj5qrkvy7iwc6hnznrynxz";
+       revision = "1";
+       editedCabalFile = "0lb4papn54fbgjdqj4ladaf5q12dhlwkg5z2vc5qxlh35x82sw4a";
        libraryHaskellDepends = [
          base binary bytestring deepseq ghc-prim hashable text
        ];
@@ -230569,10 +230860,8 @@ self: {
     ({ mkDerivation, base, containers, syb, template-haskell }:
      mkDerivation {
        pname = "th-expand-syns";
-       version = "0.4.4.0";
-       sha256 = "01prlvh3py5hq5ccjidfyp9ixq2zd88dkbsidyjrpkja6v8m43yc";
-       revision = "1";
-       editedCabalFile = "1zbdg3hrqv7rzlsrw4a2vjr3g4nzny32wvjcpxamlvx77b1jvsw9";
+       version = "0.4.5.0";
+       sha256 = "1p4wfyycan8zsp9wi7npx36qwbfsbcgdyxi3ii51scf69dkrx42y";
        libraryHaskellDepends = [ base containers syb template-haskell ];
        testHaskellDepends = [ base template-haskell ];
        description = "Expands type synonyms in Template Haskell ASTs";
@@ -231842,8 +232131,8 @@ self: {
      }:
      mkDerivation {
        pname = "tidal-vis";
-       version = "1.0.14";
-       sha256 = "1l924nqv8ljd9ljpy05r18j0rc5if3k5lvpifv2g8fn967gi0nfs";
+       version = "1.0.15";
+       sha256 = "0h198v3p1z8bmn993w54a7pm4s445lvf7683h23wydpnfckxv06h";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -233356,6 +233645,30 @@ self: {
        broken = true;
      }) {};
 
+  "tmp-postgres_0_3_0_1" = callPackage
+    ({ mkDerivation, async, base, bytestring, directory, hspec
+     , hspec-discover, mtl, network, port-utils, postgres-options
+     , postgresql-libpq, postgresql-simple, process, temporary, unix
+     }:
+     mkDerivation {
+       pname = "tmp-postgres";
+       version = "0.3.0.1";
+       sha256 = "1h0n3kd5wz4lhg2m4zkyd0vhynrpdvvwlrngyj62d27i1qk2livy";
+       libraryHaskellDepends = [
+         async base bytestring directory network port-utils postgres-options
+         postgresql-simple process temporary unix
+       ];
+       testHaskellDepends = [
+         base bytestring directory hspec hspec-discover mtl postgresql-libpq
+         postgresql-simple process temporary
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Start and stop a temporary postgres for testing";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "tmpl" = callPackage
     ({ mkDerivation, base, bytestring, directory, template, text }:
      mkDerivation {
@@ -234103,6 +234416,8 @@ self: {
        pname = "topograph";
        version = "1";
        sha256 = "0vm7ja5f677lpphfmggx68h144k0fzj0n6r6ypf5474da405xad7";
+       revision = "1";
+       editedCabalFile = "0pgvjjzmlc947xb1jx1l3bjxz6p9ldm3zlqlm7wf0bcfrznfxgqc";
        libraryHaskellDepends = [
          base base-compat base-orphans containers vector
        ];
@@ -236350,8 +236665,8 @@ self: {
      }:
      mkDerivation {
        pname = "ttl-hashtables";
-       version = "1.3.1.0";
-       sha256 = "0ny9iynlhpaqvqip7i9n5as21mk0kzm6akbcy7xgkams8dv76k5h";
+       version = "1.3.1.1";
+       sha256 = "14ammgggkfmc4divr1zykjadad5fzgspjnzpjfdzj3vwm1rf5gwv";
        libraryHaskellDepends = [
          base clock containers data-default failable hashable hashtables mtl
          transformers
@@ -236643,6 +236958,22 @@ self: {
        broken = true;
      }) {};
 
+  "tuples" = callPackage
+    ({ mkDerivation, base, primitive, QuickCheck, quickcheck-classes
+     , tasty, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "tuples";
+       version = "0.1.0.0";
+       sha256 = "0kq12l0q7d9mdkmcp2sm7pjgfh00vqkhi0id32sny1lqcnavp415";
+       libraryHaskellDepends = [ base primitive ];
+       testHaskellDepends = [
+         base primitive QuickCheck quickcheck-classes tasty tasty-quickcheck
+       ];
+       description = "Small monomorphic tuples";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "tuples-homogenous-h98" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -236854,28 +237185,27 @@ self: {
      }) {};
 
   "tweet-hs" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, authenticate-oauth, base
-     , bytestring, composition-prelude, containers, criterion
-     , data-default, directory, extra, hspec, htoml-megaparsec
-     , http-client, http-client-tls, http-types, megaparsec, microlens
-     , optparse-applicative, split, text, unordered-containers
+    ({ mkDerivation, ansi-wl-pprint, authenticate-oauth, base
+     , bytestring, composition-prelude, containers, criterion, directory
+     , extra, htoml-megaparsec, http-client, http-client-tls, http-types
+     , megaparsec, microlens, optparse-applicative, split, text
+     , unordered-containers
      }:
      mkDerivation {
        pname = "tweet-hs";
-       version = "1.0.1.43";
-       sha256 = "10bxkllxiwm1xbvpz4wh1gd24qkz8y0b7z4ciwqk13jz5ha966x0";
+       version = "1.0.2.1";
+       sha256 = "0b277whd3jywb6w0gkaijmzadpwabmyxvxyg6fmsysq1kp3isrnm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-wl-pprint authenticate-oauth base bytestring
-         composition-prelude containers data-default extra htoml-megaparsec
-         http-client http-client-tls http-types megaparsec microlens split
-         text unordered-containers
+         ansi-wl-pprint authenticate-oauth base bytestring
+         composition-prelude containers extra htoml-megaparsec http-client
+         http-client-tls http-types megaparsec microlens split text
+         unordered-containers
        ];
        executableHaskellDepends = [
          base bytestring directory optparse-applicative
        ];
-       testHaskellDepends = [ base hspec ];
        benchmarkHaskellDepends = [ base bytestring criterion megaparsec ];
        description = "Command-line tool for twitter";
        license = stdenv.lib.licenses.bsd3;
@@ -239206,6 +239536,8 @@ self: {
        pname = "unagi-chan";
        version = "0.4.1.2";
        sha256 = "1lnl5n4jnjmm4chp461glcwkrrw63rjz3fvprwxcy3lkpbkrqvgn";
+       revision = "1";
+       editedCabalFile = "09pqi867wskwgc5lpn197f895mbn1174ydgllvcppcsmrz2b6yr6";
        libraryHaskellDepends = [ atomic-primops base ghc-prim primitive ];
        testHaskellDepends = [
          atomic-primops base containers ghc-prim primitive
@@ -243877,6 +244209,8 @@ self: {
        pname = "vector-th-unbox";
        version = "0.2.1.6";
        sha256 = "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy";
+       revision = "1";
+       editedCabalFile = "1bpxdliw7jmks1rkmb8hbr7hng3niz1pfc6n3s8ndj1acrksmfmv";
        libraryHaskellDepends = [ base template-haskell vector ];
        testHaskellDepends = [ base data-default vector ];
        description = "Deriver for Data.Vector.Unboxed using Template Haskell";
@@ -244094,6 +244428,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "versions_3_5_1_1" = callPackage
+    ({ mkDerivation, base, base-prelude, checkers, deepseq, hashable
+     , megaparsec, microlens, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "versions";
+       version = "3.5.1.1";
+       sha256 = "1cs004ixw6rp2zg9hyw4yf0n15rq3s1ns9yy18rr8sxmcsw6jb9g";
+       libraryHaskellDepends = [ base deepseq hashable megaparsec text ];
+       testHaskellDepends = [
+         base base-prelude checkers megaparsec microlens QuickCheck tasty
+         tasty-hunit tasty-quickcheck text
+       ];
+       description = "Types and parsers for software version numbers";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "vflow-types" = callPackage
     ({ mkDerivation, aeson, base, bytestring, ip, json-alt
      , json-autotype, neat-interpolation, QuickCheck, quickcheck-classes
@@ -244245,6 +244598,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "viewprof_0_0_0_29" = callPackage
+    ({ mkDerivation, base, brick, containers, directory, ghc-prof, lens
+     , scientific, text, vector, vector-algorithms, vty
+     }:
+     mkDerivation {
+       pname = "viewprof";
+       version = "0.0.0.29";
+       sha256 = "1cy1p1dq6blval791x01rpf1ihqawyj1shfgz46hmmfx1f5dlcdv";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base brick containers directory ghc-prof lens scientific text
+         vector vector-algorithms vty
+       ];
+       description = "Text-based interactive GHC .prof viewer";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "views" = callPackage
     ({ mkDerivation, base, mtl }:
      mkDerivation {
@@ -251767,8 +252139,6 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Simple and incomplete Excel file parser/writer";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "xlsx-tabular" = callPackage
@@ -253716,35 +254086,6 @@ self: {
      }:
      mkDerivation {
        pname = "yaml";
-       version = "0.11.1.1";
-       sha256 = "0zshpjggz3agzvqwirywpz79q4wq43vsz0pw1iq4dhf4ajjrmzrp";
-       configureFlags = [ "-fsystem-libyaml" ];
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring conduit containers directory
-         filepath libyaml mtl resourcet scientific template-haskell text
-         transformers unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base base-compat bytestring conduit containers
-         directory filepath hspec HUnit libyaml mockery mtl raw-strings-qq
-         resourcet scientific template-haskell temporary text transformers
-         unordered-containers vector
-       ];
-       description = "Support for parsing and rendering YAML documents";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "yaml_0_11_1_2" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring
-     , conduit, containers, directory, filepath, hspec, HUnit, libyaml
-     , mockery, mtl, raw-strings-qq, resourcet, scientific
-     , template-haskell, temporary, text, transformers
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "yaml";
        version = "0.11.1.2";
        sha256 = "028pz77n92l6kjgjv263h4b6yhw1iibdbf3a3dkn5qnz537xpzhc";
        configureFlags = [ "-fsystem-libyaml" ];
@@ -253763,7 +254104,6 @@ self: {
        ];
        description = "Support for parsing and rendering YAML documents";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yaml-combinators" = callPackage
@@ -254618,8 +254958,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth";
-       version = "1.6.7";
-       sha256 = "0p9c26ic45bmsjvfb7kam87ja2vbd4m7qm27znvfrn9wvijhjzp9";
+       version = "1.6.8";
+       sha256 = "0d2nrzrqymbbp5hfwp7c6k6gr0vn6ladq0dl7wgwrybfx8nqgf65";
        libraryHaskellDepends = [
          aeson authenticate base base16-bytestring base64-bytestring binary
          blaze-builder blaze-html blaze-markup bytestring conduit
@@ -254938,8 +255278,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-oauth2";
-       version = "0.6.1.1";
-       sha256 = "19y5m94njn26vglnyrpzy59614dj7f7wbgnc354syr8qmdiliczp";
+       version = "0.6.1.2";
+       sha256 = "07jm60q1fbdk53ncirbi8clsimg28k9j12kaq0vx2apn2rlmdy2w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -255197,8 +255537,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-core";
-       version = "1.6.15";
-       sha256 = "0rzmx9cx2lzlmhjrbczdpzv6divwr0n6h3330rsdh15kn8wjkfr8";
+       version = "1.6.16";
+       sha256 = "02bzg0cyvb56hjmrcc0m6a0r7y4kq1cjqhkds542rh73w6dm6fpd";
        libraryHaskellDepends = [
          aeson auto-update base blaze-html blaze-markup bytestring
          case-insensitive cereal clientsession conduit conduit-extra
@@ -258474,23 +258814,6 @@ self: {
      }:
      mkDerivation {
        pname = "zlib";
-       version = "0.6.2";
-       sha256 = "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d";
-       libraryHaskellDepends = [ base bytestring ];
-       librarySystemDepends = [ zlib ];
-       testHaskellDepends = [
-         base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck
-       ];
-       description = "Compression and decompression in the gzip and zlib formats";
-       license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) zlib;};
-
-  "zlib_0_6_2_1" = callPackage
-    ({ mkDerivation, base, bytestring, QuickCheck, tasty, tasty-hunit
-     , tasty-quickcheck, zlib
-     }:
-     mkDerivation {
-       pname = "zlib";
        version = "0.6.2.1";
        sha256 = "1l11jraslcrp9d4wnhwfyhwk4fsiq1aq8i6vj81vcq1m2zzi1y7h";
        libraryHaskellDepends = [ base bytestring ];
@@ -258500,7 +258823,6 @@ self: {
        ];
        description = "Compression and decompression in the gzip and zlib formats";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) zlib;};
 
   "zlib-bindings" = callPackage
diff --git a/pkgs/development/haskell-modules/hoogle.nix b/pkgs/development/haskell-modules/hoogle.nix
index c7fbab6ab88..0bb930a8bb3 100644
--- a/pkgs/development/haskell-modules/hoogle.nix
+++ b/pkgs/development/haskell-modules/hoogle.nix
@@ -57,11 +57,11 @@ stdenv.mkDerivation {
   name = "hoogle-local-0.1";
   buildInputs = [ghc hoogle];
 
-  phases = [ "buildPhase" ];
-
   inherit docPackages;
 
-  buildPhase = ''
+  passAsFile = ["buildCommand"];
+
+  buildCommand = ''
     ${lib.optionalString (packages != [] -> docPackages == [])
        ("echo WARNING: localHoogle package list empty, even though"
        + " the following were specified: "
diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix
index 4ab9427934d..233900cadd0 100644
--- a/pkgs/development/interpreters/joker/default.nix
+++ b/pkgs/development/interpreters/joker/default.nix
@@ -1,27 +1,17 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "joker";
-  version = "0.12.4";
-
-  goPackagePath = "github.com/candid82/joker";
+  version = "0.12.7";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "1swi991khmyhxn6w6xsdqp1wbyx3qmd9d7yhpwvqasyxp8gg3szm";
+    sha256 = "0panmhrg1i158xbvqvq3s3217smbj7ynwlaiks18pmss36xx9dk4";
   };
 
-  preBuild = "go generate ./...";
-
-  postBuild = "rm go/bin/sum256dir";
-
-  dontInstallSrc = true;
-
-  excludedPackages = "gen"; # Do not install private generators.
-
-  goDeps = ./deps.nix;
+  modSha256 = "0i16vf7n1xfz5kp9w3fvyc9y9wgz4h396glgpdaznpxjr12rb43j";
 
   meta = with stdenv.lib; {
     homepage = https://github.com/candid82/joker;
diff --git a/pkgs/development/interpreters/joker/deps.nix b/pkgs/development/interpreters/joker/deps.nix
deleted file mode 100644
index 4eff988796b..00000000000
--- a/pkgs/development/interpreters/joker/deps.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/chzyer/readline";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/readline";
-      rev = "6a4bc7b4feaeff8feb63f87d5fb2cf3e3610a559";
-      sha256 = "1ny3rws671sa9bj5phg6k1rprlgzys73kfdr14vxq4wnwz84zbrc";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/profile";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/profile";
-      rev = "5b67d428864e92711fcbd2f8629456121a56d91f";
-      sha256 = "0blqmvgqvdbqmh3fp9pfdxc9w1qfshrr0zy9whj0sn372bw64qnr";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "a83829b6f1293c91addabc89d0571c246397bbf4";
-      sha256 = "1m4dsmk90sbi17571h6pld44zxz7jc4lrnl4f27dpd1l8g5xvjhh";
-    };
-  }
-]
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index 54c1e70d553..9ddd2028d91 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -3,6 +3,7 @@
 , zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison
 , autoconf, libiconv, libobjc, libunwind, Foundation
 , buildEnv, bundler, bundix
+, makeWrapper, buildRubyGem, defaultGemConfig
 } @ args:
 
 let
@@ -46,6 +47,7 @@ let
       , autoreconfHook, bison, autoconf
       , buildEnv, bundler, bundix
       , libiconv, libobjc, libunwind, Foundation
+      , makeWrapper, buildRubyGem, defaultGemConfig
       }:
       stdenv.mkDerivation rec {
         pname = "ruby";
@@ -193,6 +195,12 @@ let
             ruby = self;
           };
 
+          inherit (import ../../ruby-modules/with-packages {
+            inherit lib stdenv makeWrapper buildRubyGem buildEnv;
+            gemConfig = defaultGemConfig;
+            ruby = self;
+          }) withPackages gems;
+
           # deprecated 2016-09-21
           majorVersion = ver.major;
           minorVersion = ver.minor;
@@ -212,26 +220,26 @@ in {
   };
 
   ruby_2_4 = generic {
-    version = rubyVersion "2" "4" "5" "";
+    version = rubyVersion "2" "4" "7" "";
     sha256 = {
-      src = "162izk7c72y73vmdgcbsh8kqihrbm65xvp53r1s139pzwqd78dv7";
-      git = "181za4h6bd2bkyzyknxc18i5gq0pnqag60ybc17p0ixw3q7pdj43";
+      src = "12cbyf7zai8mi3mxffm5ynq3mmkcbvs7kb1bbrs259m61irgqvnd";
+      git = "1dgch9xz4wdcncb6pf2dvijm10yk6mbw2wfdrj7d3wazrjzh305z";
     };
   };
 
   ruby_2_5 = generic {
-    version = rubyVersion "2" "5" "5" "";
+    version = rubyVersion "2" "5" "6" "";
     sha256 = {
-      src = "0k2in88jymqh727s88yjsv7wrqs2hdj9h2w9zh2bmrj0ygylba98";
-      git = "0l7b7xv48gvvlqs27gghfi645qvc1nwiz8ym4j8w100rzzzfy6zz";
+      src = "19xy6rf138ys4qycv0ibsycqwbjmf1j6iv9plw9cs81hcxnd0zhx";
+      git = "067gyy7149m6vk9dfyx22mghm2gbgy7snfa7df4ddrvr1pqffqmz";
     };
   };
 
   ruby_2_6 = generic {
-    version = rubyVersion "2" "6" "3" "";
+    version = rubyVersion "2" "6" "4" "";
     sha256 = {
-      src = "1yw23hmllxsc4b7zqndn5l4d9503gdik6rsf3lfdkf12bxwx6zsp";
-      git = "1h4k2kw0vr4jh2ra9l89i8lnddfh2qfw67y9cknjylf7kw2m1pmh";
+      src = "0dvrw4g2igvjclxk9bmb9pf6mzxwm22zqvqa0abkfnshfnxdihag";
+      git = "1h4z66amjykpzl6lxx6yad2yfpwnwix4sw19bd96jnwg248kviqf";
     };
   };
 }
diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix
index c9731331b79..62d8f53b3d3 100644
--- a/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/pkgs/development/interpreters/ruby/patchsets.nix
@@ -6,17 +6,17 @@
     "${patchSet}/patches/ruby/2.3/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.3/head/railsexpress/03-display-more-detailed-stack-trace.patch"
   ];
-  "2.4.5" = ops useRailsExpress [
+  "2.4.7" = ops useRailsExpress [
     "${patchSet}/patches/ruby/2.4/head/railsexpress/01-skip-broken-tests.patch"
     "${patchSet}/patches/ruby/2.4/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.4/head/railsexpress/03-display-more-detailed-stack-trace.patch"
   ];
-  "2.5.5" = ops useRailsExpress [
+  "2.5.6" = ops useRailsExpress [
     "${patchSet}/patches/ruby/2.5/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
     "${patchSet}/patches/ruby/2.5/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.5/head/railsexpress/03-more-detailed-stacktrace.patch"
   ];
-  "2.6.3" = ops useRailsExpress [
+  "2.6.4" = ops useRailsExpress [
     "${patchSet}/patches/ruby/2.6/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
     "${patchSet}/patches/ruby/2.6/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.6/head/railsexpress/03-more-detailed-stacktrace.patch"
diff --git a/pkgs/development/interpreters/ruby/rvm-patchsets.nix b/pkgs/development/interpreters/ruby/rvm-patchsets.nix
index 95b38fc8ebd..883987683b0 100644
--- a/pkgs/development/interpreters/ruby/rvm-patchsets.nix
+++ b/pkgs/development/interpreters/ruby/rvm-patchsets.nix
@@ -3,6 +3,6 @@
 fetchFromGitHub {
   owner  = "skaes";
   repo   = "rvm-patchsets";
-  rev    = "e6e12c2c32ff184e0409d8f9f2a870f2dfbd06a3";
-  sha256 = "0n71h2ip1k18icb3bcr1jz4161lh6vr6i3f7b45jswg77c4rrxcy";
+  rev    = "58f72dccc8bb4dc9b1035f6af903d21f2465367a";
+  sha256 = "00gbrhvnf05g6zmfim472ld0l1lp100dy4pi3lixm6ry9iw9m4ag";
 }
diff --git a/pkgs/development/interpreters/supercollider/default.nix b/pkgs/development/interpreters/supercollider/default.nix
index 049dd9192d7..b4ed9232452 100644
--- a/pkgs/development/interpreters/supercollider/default.nix
+++ b/pkgs/development/interpreters/supercollider/default.nix
@@ -9,12 +9,12 @@ in
 
 mkDerivation rec {
   pname = "supercollider";
-  version = "3.10.2";
+  version = "3.10.3";
 
 
   src = fetchurl {
-    url = "https://github.com/supercollider/supercollider/releases/download/Version-${version}/SuperCollider-${version}-Source-linux.tar.bz2";
-    sha256 = "0ynz1ydcpsd5h57h1n4a7avm6p1cif5a8rkmz4qpr46pr8z9p6iq";
+    url = "https://github.com/supercollider/supercollider/releases/download/Version-${version}/SuperCollider-${version}-Source.tar.bz2";
+    sha256 = "1wvsrr4qcqmpxpn57wwrnwbnf3pflr3n4wkj9j6b9cdisp34kv5d";
   };
 
   hardeningDisable = [ "stackprotector" ];
@@ -26,6 +26,8 @@ mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkgconfig qttools ];
 
+  enableParallelBuilding = true;
+
   buildInputs = [
     gcc libjack2 libsndfile fftw curl libXt qtbase qtwebengine qtwebsockets readline ]
       ++ optional (!stdenv.isDarwin) alsaLib
@@ -33,7 +35,7 @@ mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Programming language for real time audio synthesis";
-    homepage = http://supercollider.sourceforge.net/;
+    homepage = "https://supercollider.github.io";
     maintainers = with maintainers; [ mrmebelman ];
     license = licenses.gpl3;
     platforms = [ "x686-linux" "x86_64-linux" ];
diff --git a/pkgs/development/libraries/accountsservice/default.nix b/pkgs/development/libraries/accountsservice/default.nix
index 8713663ecca..860ac3fde41 100644
--- a/pkgs/development/libraries/accountsservice/default.nix
+++ b/pkgs/development/libraries/accountsservice/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dadmin_group=wheel"
     "-Dlocalstatedir=/var"
-    "-Dsystemdsystemunitdir=${placeholder ''out''}/etc/systemd/system"
+    "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/bamf/default.nix b/pkgs/development/libraries/bamf/default.nix
index de436864eda..b1fb17b08fa 100644
--- a/pkgs/development/libraries/bamf/default.nix
+++ b/pkgs/development/libraries/bamf/default.nix
@@ -55,8 +55,8 @@ stdenv.mkDerivation rec {
 
   # fix paths
   makeFlags = [
-    "INTROSPECTION_GIRDIR=${placeholder ''dev''}/share/gir-1.0/"
-    "INTROSPECTION_TYPELIBDIR=${placeholder ''out''}/lib/girepository-1.0"
+    "INTROSPECTION_GIRDIR=${placeholder "dev"}/share/gir-1.0/"
+    "INTROSPECTION_TYPELIBDIR=${placeholder "out"}/lib/girepository-1.0"
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/dee/default.nix b/pkgs/development/libraries/dee/default.nix
index 04ecadadefa..093cc2bdf05 100644
--- a/pkgs/development/libraries/dee/default.nix
+++ b/pkgs/development/libraries/dee/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--disable-gtk-doc"
-    "--with-pygi-overrides-dir=${placeholder ''py''}/${python3.sitePackages}/gi/overrides"
+    "--with-pygi-overrides-dir=${placeholder "py"}/${python3.sitePackages}/gi/overrides"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/enchant/2.x.nix b/pkgs/development/libraries/enchant/2.x.nix
index 3f46390c12b..92e34145abd 100644
--- a/pkgs/development/libraries/enchant/2.x.nix
+++ b/pkgs/development/libraries/enchant/2.x.nix
@@ -1,24 +1,50 @@
-{ stdenv, fetchurl, aspell, pkgconfig, glib, hunspell, hspell, unittest-cpp }:
+{ stdenv
+, fetchurl
+, aspell
+, pkgconfig
+, glib
+, hunspell
+, hspell
+, unittest-cpp
+}:
 
 stdenv.mkDerivation rec {
   pname = "enchant";
-  version = "2.2.4";
+  version = "2.2.5";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "1p6a3qmrh8bjzds6x7rg9da0ir44gg804jzkf634h39wsa4vdmpm";
+    sha256 = "0r41qjz3104h5raiwlw5ywwybafbxdjz12j1bnq3kq60jlr6d2pf";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ glib hunspell ];
-  checkInputs = [ unittest-cpp ];
-  propagatedBuildInputs = [ hspell aspell ]; # libtool puts it to la file
+  nativeBuildInputs = [
+    pkgconfig
+  ];
+
+  buildInputs = [
+    glib
+    hunspell
+  ];
+
+  checkInputs = [
+    unittest-cpp
+  ];
+
+  # libtool puts these to .la files
+  propagatedBuildInputs = [
+    hspell
+    aspell
+  ];
 
   enableParallelBuilding = true;
 
-  doCheck = false; # https://github.com/AbiWord/enchant/issues/219
+  doCheck = true;
+
+  configureFlags = [
+    "--enable-relocatable" # needed for tests
+  ];
 
   meta = with stdenv.lib; {
     description = "Generic spell checking library";
diff --git a/pkgs/development/libraries/gnome-menus/default.nix b/pkgs/development/libraries/gnome-menus/default.nix
index 501fe4d0849..f6ff3a2ea4a 100644
--- a/pkgs/development/libraries/gnome-menus/default.nix
+++ b/pkgs/development/libraries/gnome-menus/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
   };
 
   makeFlags = [
-    "INTROSPECTION_GIRDIR=${placeholder ''out''}/share/gir-1.0/"
-    "INTROSPECTION_TYPELIBDIR=${placeholder ''out''}/lib/girepository-1.0"
+    "INTROSPECTION_GIRDIR=${placeholder "out"}/share/gir-1.0/"
+    "INTROSPECTION_TYPELIBDIR=${placeholder "out"}/lib/girepository-1.0"
   ];
 
   nativeBuildInputs = [ pkgconfig gettext ];
diff --git a/pkgs/development/libraries/graphene/default.nix b/pkgs/development/libraries/graphene/default.nix
index c439e763e73..0348135c7b2 100644
--- a/pkgs/development/libraries/graphene/default.nix
+++ b/pkgs/development/libraries/graphene/default.nix
@@ -32,8 +32,8 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dgtk_doc=true"
-    "-Dinstalled_test_datadir=${placeholder ''installedTests''}/share"
-    "-Dinstalled_test_bindir=${placeholder ''installedTests''}/libexec"
+    "-Dinstalled_test_datadir=${placeholder "installedTests"}/share"
+    "-Dinstalled_test_bindir=${placeholder "installedTests"}/libexec"
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 60188d77962..8b3bc30a661 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -1,20 +1,49 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, gnome3, dbus
-, glib, libgudev, udisks2, libgcrypt, libcap, polkit
-, libgphoto2, avahi, libarchive, fuse, libcdio
-, libxml2, libxslt, docbook_xsl, docbook_xml_dtd_42, samba, libmtp
-, gnomeSupport ? false, gnome, gcr, wrapGAppsHook
-, libimobiledevice, libbluray, libcdio-paranoia, libnfs, openssh
-, libsecret, libgdata, python3
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, pkgconfig
+, gettext
+, dbus
+, glib
+, libgudev
+, udisks2
+, libgcrypt
+, libcap
+, polkit
+, libgphoto2
+, avahi
+, libarchive
+, fuse
+, libcdio
+, libxml2
+, libxslt
+, docbook_xsl
+, docbook_xml_dtd_42
+, samba
+, libmtp
+, gnomeSupport ? false
+, gnome3
+, gcr
+, glib-networking
+, gnome-online-accounts
+, wrapGAppsHook
+, libimobiledevice
+, libbluray
+, libcdio-paranoia
+, libnfs
+, openssh
+, libsecret
+, libgdata
+, python3
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "gvfs";
   version = "1.40.2";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "07lpcfric3h0302n9b1pwa38mjb76r9s98kg2867y2d1qvzfivxx";
   };
 
@@ -26,28 +55,56 @@ in stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    meson ninja python3
-    pkgconfig gettext wrapGAppsHook
-    libxml2 libxslt docbook_xsl docbook_xml_dtd_42
+    meson
+    ninja
+    python3
+    pkgconfig
+    gettext
+    wrapGAppsHook
+    libxml2
+    libxslt
+    docbook_xsl
+    docbook_xml_dtd_42
   ];
 
   buildInputs = [
-    glib libgudev udisks2 libgcrypt dbus
-    libgphoto2 avahi libarchive fuse libcdio
-    samba libmtp libcap polkit libimobiledevice libbluray
-    libcdio-paranoia libnfs openssh
-    # ToDo: a ligther version of libsoup to have FTP/HTTP support?
-  ] ++ stdenv.lib.optionals gnomeSupport (with gnome; [
-    libsoup gcr
+    glib
+    libgudev
+    udisks2
+    libgcrypt
+    dbus
+    libgphoto2
+    avahi
+    libarchive
+    fuse
+    libcdio
+    samba
+    libmtp
+    libcap
+    polkit
+    libimobiledevice
+    libbluray
+    libcdio-paranoia
+    libnfs
+    openssh
+    # TODO: a ligther version of libsoup to have FTP/HTTP support?
+  ] ++ stdenv.lib.optionals gnomeSupport [
+    gnome3.libsoup
+    gcr
     glib-networking # TLS support
-    gnome-online-accounts libsecret libgdata
-  ]);
+    gnome-online-accounts
+    libsecret
+    libgdata
+  ];
 
   mesonFlags = [
     "-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
     "-Dtmpfilesdir=no"
   ] ++ stdenv.lib.optionals (!gnomeSupport) [
-    "-Dgcr=false" "-Dgoa=false" "-Dkeyring=false" "-Dhttp=false"
+    "-Dgcr=false"
+    "-Dgoa=false"
+    "-Dkeyring=false"
+    "-Dhttp=false"
     "-Dgoogle=false"
   ] ++ stdenv.lib.optionals (samba == null) [
     # Xfce don't want samba
diff --git a/pkgs/development/libraries/hunspell/dictionaries.nix b/pkgs/development/libraries/hunspell/dictionaries.nix
index 7fbc1bfe1ea..3e1799d82cd 100644
--- a/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -141,11 +141,12 @@ let
     };
 
   mkDictFromWordlist =
-    { shortName, shortDescription, dictFileName, src }:
+    { shortName, shortDescription, srcFileName, dictFileName, src }:
     mkDict rec {
-      inherit src dictFileName;
+      inherit src srcFileName dictFileName;
       version = "2018.04.16";
       name = "hunspell-dict-${shortName}-wordlist-${version}";
+      srcReadmeFile = "README_" + srcFileName + ".txt";
       readmeFile = "README_" + dictFileName + ".txt";
       meta = with stdenv.lib; {
         description = "Hunspell dictionary for ${shortDescription} from Wordlist";
@@ -158,7 +159,12 @@ let
       phases = "unpackPhase installPhase";
       sourceRoot = ".";
       unpackCmd = ''
-        unzip $src ${dictFileName}.dic ${dictFileName}.aff ${readmeFile}
+        unzip $src ${srcFileName}.dic ${srcFileName}.aff ${srcReadmeFile}
+      '';
+      postUnpack = ''
+        mv ${srcFileName}.dic ${dictFileName}.dic || true
+        mv ${srcFileName}.aff ${dictFileName}.aff || true
+        mv ${srcReadmeFile} ${readmeFile}         || true
       '';
     };
 
@@ -294,6 +300,7 @@ in rec {
   en-us = mkDictFromWordlist {
     shortName = "en-us";
     shortDescription = "English (United States)";
+    srcFileName = "en_US";
     dictFileName = "en_US";
     src = fetchurl {
       url = mirror://sourceforge/wordlist/speller/2018.04.16/hunspell-en_US-2018.04.16.zip;
@@ -301,10 +308,23 @@ in rec {
     };
   };
 
+  en_US-large = en-us-large;
+  en-us-large = mkDictFromWordlist {
+    shortName = "en-us-large";
+    shortDescription = "English (United States) Large";
+    srcFileName = "en_US-large";
+    dictFileName = "en_US";
+    src = fetchurl {
+      url = mirror://sourceforge/wordlist/speller/2018.04.16/hunspell-en_US-large-2018.04.16.zip;
+      sha256 = "1xm9jgqbivp5cb78ykjxg47vzq1yqj82l7r4q5cjpivrv99s49qc";
+    };
+  };
+
   en_CA = en-ca;
   en-ca = mkDictFromWordlist {
     shortName = "en-ca";
     shortDescription = "English (Canada)";
+    srcFileName = "en_CA";
     dictFileName = "en_CA";
     src = fetchurl {
       url = mirror://sourceforge/wordlist/speller/2018.04.16/hunspell-en_CA-2018.04.16.zip;
@@ -312,24 +332,50 @@ in rec {
     };
   };
 
+  en_CA-large = en-ca-large;
+  en-ca-large = mkDictFromWordlist {
+    shortName = "en-ca-large";
+    shortDescription = "English (Canada) Large";
+    srcFileName = "en_CA-large";
+    dictFileName = "en_CA";
+    src = fetchurl {
+      url = mirror://sourceforge/wordlist/speller/2018.04.16/hunspell-en_CA-large-2018.04.16.zip;
+      sha256 = "1200xxyvv6ni8nk52v3059c367817vnrkm0cdh38rhiigb5flfha";
+    };
+  };
+
+  en_AU = en-au;
   en-au = mkDictFromWordlist {
     shortName = "en-au";
     shortDescription = "English (Australia)";
+    srcFileName = "en_AU";
     dictFileName = "en_AU";
     src = fetchurl {
       url = mirror://sourceforge/wordlist/speller/2018.04.16/hunspell-en_AU-2018.04.16.zip;
       sha256 = "1kp06npl1kd05mm9r52cg2iwc13x02zwqgpibdw15b6x43agg6f5";
     };
   };
-  en_AU = en-au;
+
+  en_AU-large = en-au-large;
+  en-au-large = mkDictFromWordlist {
+    shortName = "en-au-large";
+    shortDescription = "English (Australia) Large";
+    srcFileName = "en_AU-large";
+    dictFileName = "en_AU";
+    src = fetchurl {
+      url = mirror://sourceforge/wordlist/speller/2018.04.16/hunspell-en_AU-large-2018.04.16.zip;
+      sha256 = "14l1w4dpk0k1js2wwq5ilfil89ni8cigph95n1rh6xi4lzxj7h6g";
+    };
+  };
 
   en_GB-ise = en-gb-ise;
   en-gb-ise = mkDictFromWordlist {
     shortName = "en-gb-ise";
     shortDescription = "English (United Kingdom, 'ise' ending)";
-    dictFileName = "en_GB-ise";
+    srcFileName = "en_GB-ise";
+    dictFileName = "en_GB";
     src = fetchurl {
-      url = mirror://sourceforge/wordlist/speller//hunspell-en_GB-ise-2018.04.16.zip;
+      url = mirror://sourceforge/wordlist/speller/2018.04.16/hunspell-en_GB-ise-2018.04.16.zip;
       sha256 = "0ylg1zvfvsawamymcc9ivrqcb9qhlpgpnizm076xc56jz554xc2l";
     };
   };
@@ -338,13 +384,26 @@ in rec {
   en-gb-ize = mkDictFromWordlist {
     shortName = "en-gb-ize";
     shortDescription = "English (United Kingdom, 'ize' ending)";
-    dictFileName = "en_GB-ize";
+    srcFileName = "en_GB-ize";
+    dictFileName = "en_GB";
     src = fetchurl {
-      url = mirror://sourceforge/wordlist/speller//hunspell-en_GB-ize-2018.04.16.zip;
+      url = mirror://sourceforge/wordlist/speller/2018.04.16/hunspell-en_GB-ize-2018.04.16.zip;
       sha256 = "1rmwy6sxmd400cwjf58az6g14sq28p18f5mlq8ybg8y33q9m42ps";
     };
   };
 
+  en_GB-large = en-gb-large;
+  en-gb-large = mkDictFromWordlist {
+    shortName = "en-gb-large";
+    shortDescription = "English (United Kingdom) Large";
+    srcFileName = "en_GB-large";
+    dictFileName = "en_GB";
+    src = fetchurl {
+      url = mirror://sourceforge/wordlist/speller/2018.04.16/hunspell-en_GB-large-2018.04.16.zip;
+      sha256 = "1y4d7x5vvi1qh1s3i09m0vvqrpdzzqhsdngr8nsh7hc5bnlm37mi";
+    };
+  };
+
   /* SPANISH */
 
   es_ANY = es-any;
diff --git a/pkgs/development/libraries/libaccounts-glib/default.nix b/pkgs/development/libraries/libaccounts-glib/default.nix
index 7f9dbf3a21f..07e0a3500a7 100644
--- a/pkgs/development/libraries/libaccounts-glib/default.nix
+++ b/pkgs/development/libraries/libaccounts-glib/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   # See: https://gitlab.com/accounts-sso/libaccounts-glib/merge_requests/22
   patches = [ ./py-override.patch ];
 
-  nativeBuildInputs = [ 
+  nativeBuildInputs = [
     check
     docbook_xml_dtd_43
     docbook_xsl
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   LC_ALL = "en_US.UTF-8";
 
   mesonFlags = [
-    "-Dpy-overrides-dir=${placeholder ''py''}/${python3.sitePackages}/gi/overrides"
+    "-Dpy-overrides-dir=${placeholder "py"}/${python3.sitePackages}/gi/overrides"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libdbusmenu/default.nix b/pkgs/development/libraries/libdbusmenu/default.nix
index e064084f695..a7bfe7f17a2 100644
--- a/pkgs/development/libraries/libdbusmenu/default.nix
+++ b/pkgs/development/libraries/libdbusmenu/default.nix
@@ -49,9 +49,9 @@ stdenv.mkDerivation rec {
   doCheck = false; # generates shebangs in check phase, too lazy to fix
 
   installFlags = [
-    "sysconfdir=${placeholder ''out''}/etc"
+    "sysconfdir=${placeholder "out"}/etc"
     "localstatedir=\${TMPDIR}"
-    "typelibdir=${placeholder ''out''}/lib/girepository-1.0"
+    "typelibdir=${placeholder "out"}/lib/girepository-1.0"
   ];
 
   meta = {
diff --git a/pkgs/development/libraries/libgdata/default.nix b/pkgs/development/libraries/libgdata/default.nix
index f61283aec4a..14fc7e64a0b 100644
--- a/pkgs/development/libraries/libgdata/default.nix
+++ b/pkgs/development/libraries/libgdata/default.nix
@@ -77,8 +77,8 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dgtk_doc=false"
-    "-Dinstalled_test_bindir=${placeholder ''installedTests''}/libexec"
-    "-Dinstalled_test_datadir=${placeholder ''installedTests''}/share"
+    "-Dinstalled_test_bindir=${placeholder "installedTests"}/libexec"
+    "-Dinstalled_test_datadir=${placeholder "installedTests"}/share"
     "-Dinstalled_tests=true"
   ];
 
diff --git a/pkgs/development/libraries/libgpiod/default.nix b/pkgs/development/libraries/libgpiod/default.nix
index 23f46ad2a0c..782c0a8857a 100644
--- a/pkgs/development/libraries/libgpiod/default.nix
+++ b/pkgs/development/libraries/libgpiod/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--enable-tools=${if enable-tools then "yes" else "no"}"
     "--enable-bindings-cxx"
-    "--prefix=${placeholder ''out''}"
+    "--prefix=${placeholder "out"}"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libirecovery/default.nix b/pkgs/development/libraries/libirecovery/default.nix
index 32a2971b3e3..be05f120e13 100644
--- a/pkgs/development/libraries/libirecovery/default.nix
+++ b/pkgs/development/libraries/libirecovery/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   # as only the `idevicerestore` binary was tested so far (which worked
   # without further configuration).
   configureFlags = [
-    "--with-udevrulesdir=${placeholder ''out''}/lib/udev/rules.d"
+    "--with-udevrulesdir=${placeholder "out"}/lib/udev/rules.d"
     ''--with-udevrule="OWNER=\"root\", GROUP=\"myusergroup\", MODE=\"0660\""''
   ];
 
diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix
index 406b88ea8c1..7a7bd115328 100644
--- a/pkgs/development/libraries/libmbim/default.nix
+++ b/pkgs/development/libraries/libmbim/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "man" ];
 
   configureFlags = [
-    "--with-udev-base-dir=${placeholder ''out''}/lib/udev"
+    "--with-udev-base-dir=${placeholder "out"}/lib/udev"
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libmypaint/default.nix b/pkgs/development/libraries/libmypaint/default.nix
index 518991120f7..91e0b5ef072 100644
--- a/pkgs/development/libraries/libmypaint/default.nix
+++ b/pkgs/development/libraries/libmypaint/default.nix
@@ -1,31 +1,45 @@
-{stdenv, autoconf, automake, fetchFromGitHub, fetchpatch, glib, intltool, json_c, libtool, pkgconfig}:
-
-let
-  version = "1.3.0";
-in stdenv.mkDerivation {
+{ stdenv
+, autoconf
+, automake
+, fetchFromGitHub
+, glib
+, intltool
+, json_c
+, libtool
+, pkgconfig
+, python2
+}:
+
+stdenv.mkDerivation rec {
   pname = "libmypaint";
-  inherit version;
+  version = "1.4.0";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
     owner = "mypaint";
     repo = "libmypaint";
     rev = "v${version}";
-    sha256 = "0b7aynr6ggigwhjkfzi8x3dwz15blj4grkg9hysbgjh6lvzpy9jc";
+    sha256 = "1ynm2g2wdb9zsymncndlgs6gpcbsa122n52d11161jrj5nrdliaq";
   };
 
-  patches = [
-    # build with automake 1.16
-    (fetchpatch {
-      url = https://github.com/mypaint/libmypaint/commit/40d9077a80be13942476f164bddfabe842ab2a45.patch;
-      sha256 = "1dclh7apgvr2bvzy9z3rgas3hk9pf2hpf5h52q94kmx8s4a47qpi";
-    })
+  nativeBuildInputs = [
+    autoconf
+    automake
+    intltool
+    libtool
+    pkgconfig
+    python2
   ];
 
-  nativeBuildInputs = [ autoconf automake intltool libtool pkgconfig ];
-
-  buildInputs = [ glib ];
+  buildInputs = [
+    glib
+  ];
 
-  propagatedBuildInputs = [ json_c ]; # for libmypaint.pc
+  # for libmypaint.pc
+  propagatedBuildInputs = [
+    json_c
+  ];
 
   doCheck = true;
 
diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix
index 8a239048390..930eafc9675 100644
--- a/pkgs/development/libraries/libqmi/default.nix
+++ b/pkgs/development/libraries/libqmi/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "devdoc" ];
 
   configureFlags = [
-    "--with-udev-base-dir=${placeholder ''out''}/lib/udev"
+    "--with-udev-base-dir=${placeholder "out"}/lib/udev"
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libunity/default.nix b/pkgs/development/libraries/libunity/default.nix
index 2c042281f37..2baaa14b88e 100644
--- a/pkgs/development/libraries/libunity/default.nix
+++ b/pkgs/development/libraries/libunity/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
   '';
 
   configureFlags = [
-    "--with-pygi-overrides-dir=${placeholder ''py''}/${python3.sitePackages}/gi/overrides"
+    "--with-pygi-overrides-dir=${placeholder "py"}/${python3.sitePackages}/gi/overrides"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/science/math/blas/default.nix b/pkgs/development/libraries/science/math/blas/default.nix
index 9c412f93d13..a14ed4e6a30 100644
--- a/pkgs/development/libraries/science/math/blas/default.nix
+++ b/pkgs/development/libraries/science/math/blas/default.nix
@@ -44,6 +44,15 @@ stdenv.mkDerivation rec {
     install ${dashD} -m755 libblas.so.${version} "$out/lib/libblas.so.${version}"
     ln -s libblas.so.${version} "$out/lib/libblas.so.3"
     ln -s libblas.so.${version} "$out/lib/libblas.so"
+    # Write pkgconfig alias.
+    # See also openblas/default.nix
+    mkdir $out/lib/pkgconfig
+    cat <<EOF > $out/lib/pkgconfig/blas.pc
+Name: blas
+Version: ${version}
+Description: blas provided by the BLAS package.
+Libs: -L$out/lib -lblas
+EOF
   '';
 
   preFixup = stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/libraries/tracker/default.nix b/pkgs/development/libraries/tracker/default.nix
index 397184f798a..db4f620a740 100644
--- a/pkgs/development/libraries/tracker/default.nix
+++ b/pkgs/development/libraries/tracker/default.nix
@@ -30,8 +30,8 @@ in stdenv.mkDerivation rec {
   LC_ALL = "en_US.UTF-8";
 
   mesonFlags = [
-    "-Ddbus_services=${placeholder ''out''}/share/dbus-1/services"
-    "-Dsystemd_user_services=${placeholder ''out''}/lib/systemd/user"
+    "-Ddbus_services=${placeholder "out"}/share/dbus-1/services"
+    "-Dsystemd_user_services=${placeholder "out"}/lib/systemd/user"
     # TODO: figure out wrapping unit tests, some of them fail on missing gsettings-desktop-schemas
     "-Dfunctional_tests=false"
     "-Ddocs=true"
diff --git a/pkgs/development/libraries/zeitgeist/default.nix b/pkgs/development/libraries/zeitgeist/default.nix
index c5dc775d075..9e3b06453bf 100644
--- a/pkgs/development/libraries/zeitgeist/default.nix
+++ b/pkgs/development/libraries/zeitgeist/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = "NOCONFIGURE=1 ./autogen.sh";
 
-  configureFlags = [ "--with-session-bus-services-dir=${placeholder ''out''}/share/dbus-1/services" ];
+  configureFlags = [ "--with-session-bus-services-dir=${placeholder "out"}/share/dbus-1/services" ];
 
   nativeBuildInputs = [
     autoconf automake libtool pkgconfig gettext gobject-introspection vala python2Packages.python
diff --git a/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix b/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix
new file mode 100644
index 00000000000..af3341e7e59
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix
@@ -0,0 +1,14 @@
+{ buildDunePackage, ocplib-json-typed, js_of_ocaml }:
+
+buildDunePackage {
+  pname = "ocplib-json-typed-browser";
+  inherit (ocplib-json-typed) version src;
+
+  propagatedBuildInputs = [ ocplib-json-typed js_of_ocaml ];
+
+  meta = {
+    description = "A Json_repr interface over JavaScript's objects";
+    inherit (ocplib-json-typed.meta) homepage license maintainers;
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/ocplib-json-typed/bson.nix b/pkgs/development/ocaml-modules/ocplib-json-typed/bson.nix
new file mode 100644
index 00000000000..350c31a3819
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocplib-json-typed/bson.nix
@@ -0,0 +1,13 @@
+{ buildDunePackage, ocplib-json-typed, ocplib-endian }:
+
+buildDunePackage {
+  pname = "ocplib-json-typed-bson";
+  inherit (ocplib-json-typed) version src;
+
+  propagatedBuildInputs = [ ocplib-json-typed ocplib-endian ];
+
+  meta = {
+    description = "A Json_repr compatible implementation of the JSON compatible subset of BSON";
+    inherit (ocplib-json-typed.meta) homepage license maintainers;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocplib-json-typed/default.nix b/pkgs/development/ocaml-modules/ocplib-json-typed/default.nix
index cadb65bcbed..6a1b906d7f2 100644
--- a/pkgs/development/ocaml-modules/ocplib-json-typed/default.nix
+++ b/pkgs/development/ocaml-modules/ocplib-json-typed/default.nix
@@ -1,25 +1,21 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, ocplib-endian, js_of_ocaml, uri }:
+{ lib, buildDunePackage, fetchFromGitHub, uri }:
 
-stdenv.mkDerivation rec {
-	name = "ocaml${ocaml.version}-ocplib-json-typed-${version}";
-	version = "0.5";
+buildDunePackage rec {
+	pname = "ocplib-json-typed";
+	version = "0.7.1";
 	src = fetchFromGitHub {
 		owner = "OCamlPro";
 		repo = "ocplib-json-typed";
 		rev = "v${version}";
-		sha256 = "02c600wm2wdpzb66pivxzwjhqa2dm7dqyfvw3mbvkv1g2jj7kn2q";
+		sha256 = "1gv0vqqy9lh7isaqg54b3lam2sh7nfjjazi6x7zn6bh5f77g1p5q";
 	};
 
-	buildInputs = [ ocaml findlib ocplib-endian js_of_ocaml ];
 	propagatedBuildInputs = [ uri ];
 
-	createFindlibDestdir = true;
-
 	meta = {
 		description = "A collection of type-aware JSON utilities for OCaml";
-		license = stdenv.lib.licenses.lgpl21;
-		maintainers = [ stdenv.lib.maintainers.vbgl ];
+		license = lib.licenses.lgpl21;
+		maintainers = [ lib.maintainers.vbgl ];
 		inherit (src.meta) homepage;
-		inherit (ocaml.meta) platforms;
 	};
 }
diff --git a/pkgs/development/python-modules/cherrypy/default.nix b/pkgs/development/python-modules/cherrypy/default.nix
index 75152d39aeb..6941e1117bd 100644
--- a/pkgs/development/python-modules/cherrypy/default.nix
+++ b/pkgs/development/python-modules/cherrypy/default.nix
@@ -2,6 +2,7 @@
 , setuptools_scm
 , cheroot, portend, more-itertools, zc_lockfile, routes
 , objgraph, pytest, pytestcov, pathpy, requests_toolbelt, pytest-services
+, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -16,6 +17,22 @@ buildPythonPackage rec {
     sha256 = "1w3hpsg7q8shdmscmbqk00w90lcw3brary7wl1a56k5h7nx33pj8";
   };
 
+  # Remove patches once 96b34df and 14c12d2
+  # become part of a release - they're currently only present in master.
+  # ref: https://github.com/cherrypy/cherrypy/pull/1791
+  patches = [
+    (fetchpatch {
+      name = "pytest5-1.patch";
+      url = "https://github.com/cherrypy/cherrypy/commit/96b34dfea7853b0189bc0a3878b6ddff0d4e505c.patch";
+      sha256 = "0zy53mahffgkpd844118b42lsk5lkjmig70d60x1i46w6gnr61mi";
+    })
+    (fetchpatch {
+      name = "pytest5-2.patch";
+      url = "https://github.com/cherrypy/cherrypy/commit/14c12d2420a4b3765bb241250bd186e93b2f25eb.patch";
+      sha256 = "0ihcz7b5myn923rq5665b98pz52hnf6fcys2y2inf23r3i07scyz";
+    })
+  ];
+
   propagatedBuildInputs = [
     # required
     cheroot portend more-itertools zc_lockfile
diff --git a/pkgs/development/python-modules/openrazer/common.nix b/pkgs/development/python-modules/openrazer/common.nix
new file mode 100644
index 00000000000..eac2751ce3e
--- /dev/null
+++ b/pkgs/development/python-modules/openrazer/common.nix
@@ -0,0 +1,17 @@
+{ stdenv
+, fetchFromGitHub
+}: rec {
+  version = "2.6.0";
+  src = fetchFromGitHub {
+    owner = "openrazer";
+    repo = "openrazer";
+    rev = "v${version}";
+    sha256 = "1s5irs3avrlp891mxan3z8p55ias9rq26rqp2qrlcc6i4vl29di0";
+  };
+  meta = with stdenv.lib; {
+    homepage = https://openrazer.github.io/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ roelvandijk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/openrazer/daemon.nix b/pkgs/development/python-modules/openrazer/daemon.nix
new file mode 100644
index 00000000000..6e3ab1e7833
--- /dev/null
+++ b/pkgs/development/python-modules/openrazer/daemon.nix
@@ -0,0 +1,45 @@
+{ buildPythonApplication
+, daemonize
+, dbus-python
+, fetchFromGitHub
+, fetchpatch
+, gobject-introspection
+, gtk3
+, makeWrapper
+, pygobject3
+, pyudev
+, setproctitle
+, stdenv
+, wrapGAppsHook
+}:
+
+let
+  common = import ./common.nix { inherit stdenv fetchFromGitHub; };
+in
+buildPythonApplication (common // rec {
+  pname = "openrazer_daemon";
+
+  sourceRoot = "source/daemon";
+
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+
+  propagatedBuildInputs = [
+    daemonize
+    dbus-python
+    gobject-introspection
+    gtk3
+    pygobject3
+    pyudev
+    setproctitle
+  ];
+
+  postBuild = ''
+    DESTDIR="$out" PREFIX="" make install manpages
+  '';
+
+  meta = common.meta // {
+    description = "An entirely open source user-space daemon that allows you to manage your Razer peripherals on GNU/Linux";
+  };
+})
diff --git a/pkgs/development/python-modules/openrazer/pylib.nix b/pkgs/development/python-modules/openrazer/pylib.nix
new file mode 100644
index 00000000000..2f9ff467b2d
--- /dev/null
+++ b/pkgs/development/python-modules/openrazer/pylib.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage
+, dbus-python
+, fetchFromGitHub
+, numpy
+, stdenv
+, openrazer-daemon
+}:
+
+let
+  common = import ./common.nix { inherit stdenv fetchFromGitHub; };
+in
+buildPythonPackage (common // rec {
+  pname = "openrazer";
+
+  sourceRoot = "source/pylib";
+
+  propagatedBuildInputs = [
+    dbus-python
+    numpy
+    openrazer-daemon
+  ];
+
+  meta = common.meta // {
+    description = "An entirely open source Python library that allows you to manage your Razer peripherals on GNU/Linux";
+  };
+})
diff --git a/pkgs/development/python-modules/pyscard/default.nix b/pkgs/development/python-modules/pyscard/default.nix
index bab8e502b9c..06e2690c111 100644
--- a/pkgs/development/python-modules/pyscard/default.nix
+++ b/pkgs/development/python-modules/pyscard/default.nix
@@ -1,5 +1,13 @@
 { stdenv, fetchPypi, fetchpatch, buildPythonPackage, swig, pcsclite, PCSC }:
 
+let
+  # Package does not support configuring the pcsc library.
+  withApplePCSC = stdenv.isDarwin;
+
+  inherit (stdenv.lib) getLib getDev optionalString optionals;
+  inherit (stdenv.hostPlatform.extensions) sharedLibrary;
+in
+
 buildPythonPackage rec {
   version = "1.9.8";
   pname = "pyscard";
@@ -9,24 +17,28 @@ buildPythonPackage rec {
     sha256 = "15fh00z1an6r5j7hrz3jlq0rb3jygwf3x4jcwsa008bv8vpcg7gm";
   };
 
-  postPatch = ''
-    sed -e 's!"libpcsclite\.so\.1"!"${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so.1"!' \
-        -i smartcard/scard/winscarddll.c
+  postPatch = if withApplePCSC then ''
+    substituteInPlace smartcard/scard/winscarddll.c \
+      --replace "/System/Library/Frameworks/PCSC.framework/PCSC" \
+                "${PCSC}/Library/Frameworks/PCSC.framework/PCSC"
+  '' else ''
+    substituteInPlace smartcard/scard/winscarddll.c \
+      --replace "libpcsclite.so.1" \
+                "${getLib pcsclite}/lib/libpcsclite${sharedLibrary}"
   '';
 
-  NIX_CFLAGS_COMPILE = "-isystem ${stdenv.lib.getDev pcsclite}/include/PCSC/";
+  NIX_CFLAGS_COMPILE = optionalString (! withApplePCSC)
+    "-I ${getDev pcsclite}/include/PCSC";
 
-  patches = [
-    # Fixes darwin tests
-    # See: https://github.com/LudovicRousseau/pyscard/issues/77
-    (fetchpatch {
-      url = "https://github.com/LudovicRousseau/pyscard/commit/62e675028086c75656444cc21d563d9f08ebf8e7.patch";
-      sha256 = "1lr55npcpc8j750vf7vaisqyk18d5f00l7nii2lvawg4sssjaaf7";
-    })
-  ];
+  # The error message differs depending on the macOS host version.
+  # Since Nix reports a constant host version, but proxies to the
+  # underlying library, it's not possible to determine the correct
+  # expected error message.  This patch allows both errors to be
+  # accepted.
+  # See: https://github.com/LudovicRousseau/pyscard/issues/77
+  patches = optionals withApplePCSC [ ./ignore-macos-bug.patch ];
 
-  propagatedBuildInputs = [ pcsclite ];
-  buildInputs = stdenv.lib.optional stdenv.isDarwin PCSC;
+  propagatedBuildInputs = if withApplePCSC then [ PCSC ] else [ pcsclite ];
   nativeBuildInputs = [ swig ];
 
   meta = {
diff --git a/pkgs/development/python-modules/pyscard/ignore-macos-bug.patch b/pkgs/development/python-modules/pyscard/ignore-macos-bug.patch
new file mode 100644
index 00000000000..62b20477c9f
--- /dev/null
+++ b/pkgs/development/python-modules/pyscard/ignore-macos-bug.patch
@@ -0,0 +1,22 @@
+diff --git a/test/test_SCardGetErrorMessage.py b/test/test_SCardGetErrorMessage.py
+old mode 100644
+new mode 100755
+index c6fe755..c1217f5
+--- a/test/test_SCardGetErrorMessage.py
++++ b/test/test_SCardGetErrorMessage.py
+@@ -29,12 +29,10 @@ class TestError(unittest.TestCase):
+         self.assertEqual(res, expected)
+ 
+         res = SCardGetErrorMessage(1)
++        expected = "Unknown error: 0x00000001"
+         # macOS bug not yet fixed
+-        if get_platform().startswith('macosx-') and get_platform() < 'macosx-10.13':
+-            expected = "Unkown error: 0x00000001"
+-        else:
+-            expected = "Unknown error: 0x00000001"
+-        self.assertEqual(res, expected)
++        macos_bug_expected = "Unkown error: 0x00000001"
++        self.assertIn(res, [expected, macos_bug_expected])
+ 
+ 
+ if __name__ == '__main__':
diff --git a/pkgs/development/python-modules/python-pipedrive/default.nix b/pkgs/development/python-modules/python-pipedrive/default.nix
new file mode 100644
index 00000000000..e21f01d5cd6
--- /dev/null
+++ b/pkgs/development/python-modules/python-pipedrive/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, httplib2
+}:
+
+buildPythonPackage rec {
+  pname = "python-pipedrive";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0f8qiyl82bpwxwjw2746vdvkps2010mvn1x9b6j6ppmifff2d4pl";
+  };
+
+  propagatedBuildInputs = [ httplib2 ];
+
+  doCheck = false; # Tests are not provided.
+
+  meta = with stdenv.lib; {
+    description = "Python library for interacting with the pipedrive.com API";
+    homepage = "https://github.com/jscott1989/python-pipedrive";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ mrmebelman ];
+  };
+}
diff --git a/pkgs/development/python-modules/robotframework-sshlibrary/default.nix b/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
index d0e5b13ddbe..b5ca464938b 100644
--- a/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
+++ b/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.3.0";
+  version = "3.4.0";
   pname = "robotframework-sshlibrary";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fc5b5db63cf63a937bd4ada1a8b7508ec8a75d9454fa75e6410cbe72fd718de9";
+    sha256 = "21fa0183776e6061366f517765db479aaa634b707f3dd9d90ef6972adae6a755";
   };
 
   # unit tests are impure
diff --git a/pkgs/development/python-modules/trezor_agent/default.nix b/pkgs/development/python-modules/trezor_agent/default.nix
index e0c5329d23f..17ecd369136 100644
--- a/pkgs/development/python-modules/trezor_agent/default.nix
+++ b/pkgs/development/python-modules/trezor_agent/default.nix
@@ -8,6 +8,8 @@
 , mnemonic
 , keepkey
 , semver
+, wheel
+, pinentry
 }:
 
 buildPythonPackage rec{
@@ -19,13 +21,13 @@ buildPythonPackage rec{
     sha256 = "e82bf000c1178b1a7612f2a90487eb34c6234d2edb15dc8e310ad875d8298690";
   };
 
-  propagatedBuildInputs = [ trezor libagent ecdsa ed25519 mnemonic keepkey semver ];
+  propagatedBuildInputs = [ trezor libagent ecdsa ed25519 mnemonic keepkey semver wheel pinentry ];
 
   meta = with stdenv.lib; {
     description = "Using Trezor as hardware SSH agent";
-    homepage = https://github.com/romanz/trezor-agent;
+    homepage = "https://github.com/romanz/trezor-agent";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ np ];
+    maintainers = with maintainers; [ np mmahut ];
   };
 
 }
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 4e9bd0538a9..7f6ca505fc1 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -19,13 +19,13 @@
 
 { lib, fetchurl, writeScript, ruby, kerberos, libxml2, libxslt, python, stdenv, which
 , libiconv, postgresql, v8_3_16_14, clang, sqlite, zlib, imagemagick
-, pkgconfig , ncurses, xapian_1_2_22, gpgme, utillinux, fetchpatch, tzdata, icu, libffi
+, pkgconfig , ncurses, xapian, gpgme, utillinux, fetchpatch, tzdata, icu, libffi
 , cmake, libssh2, openssl, mysql, darwin, git, perl, pcre, gecode_3, curl
 , msgpack, qt59, libsodium, snappy, libossp_uuid, lxc, libpcap, xorg, gtk2, buildRubyGem
 , cairo, re2, rake, gobject-introspection, gdk-pixbuf, zeromq, czmq, graphicsmagick, libcxx
 , file, libvirt, glib, vips, taglib, libopus, linux-pam, libidn, protobuf, fribidi, harfbuzz
-, bison, flex, pango, python3, patchelf
-, libselinux ? null, libsepol ? null
+, bison, flex, pango, python3, patchelf, binutils, freetds, wrapGAppsHook, atk
+, bundler, libsass, libselinux ? null, libsepol ? null
 }@args:
 
 let
@@ -42,8 +42,9 @@ in
 
 {
   atk = attrs: {
-    nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ gtk2 pcre rake ];
+    dependencies = attrs.dependencies ++ [ "gobject-introspection" ];
+    nativeBuildInputs = [ rake bundler pkgconfig ];
+    propagatedBuildInputs = [ gobject-introspection wrapGAppsHook atk ];
   };
 
   bundler = attrs:
@@ -85,6 +86,38 @@ in
     buildInputs = [ protobuf ];
   };
 
+  cocoapods-acknowledgements = attrs: {
+    dependencies = attrs.dependencies ++ [ "cocoapods" ];
+  };
+
+  cocoapods-deploy = attrs: {
+    dependencies = [ "cocoapods" ];
+  };
+
+  cocoapods-disable-podfile-validations = attrs: {
+    dependencies = [ "cocoapods" ];
+  };
+
+  cocoapods-generate = attrs: {
+    dependencies = attrs.dependencies ++ [ "cocoapods" ];
+  };
+
+  cocoapods-git_url_rewriter = attrs: {
+    dependencies = [ "cocoapods" ];
+  };
+
+  cocoapods-keys = attrs: {
+    dependencies = attrs.dependencies ++ [ "cocoapods" ];
+  };
+
+  cocoapods-open = attrs: {
+    dependencies = [ "cocoapods" ];
+  };
+
+  cocoapods-try-release-fix = attrs: {
+    dependencies = [ "cocoapods" ];
+  };
+
   curb = attrs: {
     buildInputs = [ curl ];
   };
@@ -113,12 +146,13 @@ in
     '';
   };
 
-  fog-dnsimple = attrs: {
-    postInstall = ''
-      cd $(cat $out/nix-support/gem-meta/install-path)
-      rm {$out/bin,bin,../../bin}/{setup,console}
-    '';
-  };
+  fog-dnsimple = attrs:
+    lib.optionalAttrs (lib.versionOlder attrs.version "1.0.1") {
+      postInstall = ''
+        cd $(cat $out/nix-support/gem-meta/install-path)
+        rm {$out/bin,bin,../../bin}/{setup,console}
+      '';
+    };
 
   redis-rack = attrs: {
     dontBuild = false;
@@ -158,8 +192,8 @@ in
   };
 
   gdk_pixbuf2 = attrs: {
-    nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ rake gdk-pixbuf ];
+    nativeBuildInputs = [ pkgconfig bundler rake ];
+    propagatedBuildInputs = [ gobject-introspection wrapGAppsHook gdk-pixbuf ];
   };
 
   gpgme = attrs: {
@@ -179,8 +213,14 @@ in
   };
 
   gtk2 = attrs: {
-    nativeBuildInputs = [ pkgconfig ] ++ lib.optionals stdenv.isLinux [ utillinux libselinux libsepol ];
-    buildInputs = [
+    nativeBuildInputs = [
+      binutils pkgconfig
+    ] ++ lib.optionals stdenv.isLinux [
+      utillinux libselinux libsepol
+    ];
+    propagatedBuildInputs = [
+      atk
+      gdk-pixbuf
       fribidi
       gobject-introspection
       gtk2
@@ -194,8 +234,8 @@ in
   };
 
   gobject-introspection = attrs: {
-    nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ gobject-introspection gtk2 pcre ];
+    nativeBuildInputs = [ pkgconfig pcre ];
+    propagatedBuildInputs = [ gobject-introspection wrapGAppsHook glib ];
   };
 
   grpc = attrs: {
@@ -239,6 +279,10 @@ in
     buildFlags = [ "--with-system-v8=true" ];
   };
 
+  execjs = attrs: {
+    propagatedBuildInputs = [ v8 ];
+  };
+
   libxml-ruby = attrs: {
     buildFlags = [
       "--with-xml2-lib=${libxml2.out}/lib"
@@ -333,16 +377,15 @@ in
   };
 
   pango = attrs: {
-    nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [
+    nativeBuildInputs = [
+      pkgconfig
       fribidi
-      gobject-introspection
-      gtk2
       harfbuzz
       pcre
       xorg.libpthreadstubs
       xorg.libXdmcp
     ];
+    propagatedBuildInputs = [ gobject-introspection wrapGAppsHook gtk2 ];
   };
 
   patron = attrs: {
@@ -380,7 +423,12 @@ in
         "
       '';
     } else {
-      buildInputs = [ libsodium ];
+      dontBuild = false;
+      postPatch = ''
+        substituteInPlace lib/rbnacl/sodium.rb \
+          --replace 'ffi_lib ["sodium"' \
+                    'ffi_lib ["${libsodium}/lib/libsodium${stdenv.hostPlatform.extensions.sharedLibrary}"'
+      '';
     };
 
   re2 = attrs: {
@@ -439,6 +487,12 @@ in
 
   sassc = attrs: {
     nativeBuildInputs = [ rake ];
+    dontBuild = false;
+    SASS_LIBSASS_PATH = "${libsass}";
+    postPatch = ''
+      substituteInPlace lib/sassc/native.rb \
+        --replace 'gem_root = spec.gem_dir' 'gem_root = File.join(__dir__, "../../")'
+    '';
   };
 
   scrypt = attrs:
@@ -471,7 +525,7 @@ in
   sup = attrs: {
     dontBuild = false;
     # prevent sup from trying to dynamically install `xapian-ruby`.
-    nativeBuildInputs = [ rake ];
+    nativeBuildInputs = [ bundler rake ];
     postPatch = ''
       cp ${./mkrf_conf_xapian.rb} ext/mkrf_conf_xapian.rb
 
@@ -506,6 +560,7 @@ in
 
   tiny_tds = attrs: {
     nativeBuildInputs = [ pkgconfig openssl ];
+    buildInputs = [ freetds ];
   };
 
   therubyracer = attrs: {
@@ -541,13 +596,13 @@ in
   xapian-ruby = attrs: {
     # use the system xapian
     dontBuild = false;
-    nativeBuildInputs = [ rake pkgconfig ];
-    buildInputs = [ xapian_1_2_22 zlib ];
+    nativeBuildInputs = [ rake pkgconfig bundler ];
+    buildInputs = [ xapian zlib ];
     postPatch = ''
       cp ${./xapian-Rakefile} Rakefile
     '';
     preInstall = ''
-      export XAPIAN_CONFIG=${xapian_1_2_22}/bin/xapian-config
+      export XAPIAN_CONFIG=${xapian}/bin/xapian-config
     '';
   };
 
diff --git a/pkgs/development/ruby-modules/gem/gem-post-build.rb b/pkgs/development/ruby-modules/gem/gem-post-build.rb
index f0322b67f61..b754f945986 100644
--- a/pkgs/development/ruby-modules/gem/gem-post-build.rb
+++ b/pkgs/development/ruby-modules/gem/gem-post-build.rb
@@ -7,7 +7,7 @@ ruby = File.join(ENV["ruby"], "bin", RbConfig::CONFIG['ruby_install_name'])
 out = ENV["out"]
 bin_path = File.join(ENV["out"], "bin")
 gem_home = ENV["GEM_HOME"]
-gem_path = ENV["GEM_PATH"].split(File::PATH_SEPARATOR)
+gem_path = ENV["GEM_PATH"].split(File::PATH_SEPARATOR).uniq
 install_path = Dir.glob("#{gem_home}/gems/*").first
 gemspec_path = ARGV[0]
 
diff --git a/pkgs/development/ruby-modules/with-packages/Gemfile b/pkgs/development/ruby-modules/with-packages/Gemfile
new file mode 100644
index 00000000000..0cd04f07b94
--- /dev/null
+++ b/pkgs/development/ruby-modules/with-packages/Gemfile
@@ -0,0 +1,159 @@
+source 'https://rubygems.org' do
+  gem 'addressable'
+  gem 'atk'
+  gem 'awesome_print'
+  gem 'bacon'
+  # gem 'bundler' already got a package for that
+  gem 'byebug'
+  gem 'cairo'
+  gem 'cairo-gobject'
+  gem 'camping'
+  # gem 'capybara-webkit' takes too long to build right now since webkit depends on ruby
+  gem 'charlock_holmes'
+  gem 'cld3'
+  gem 'cocoapods'
+  gem 'cocoapods-acknowledgements'
+  gem 'cocoapods-art'
+  gem 'cocoapods-bin'
+  gem 'cocoapods-browser'
+  gem 'cocoapods-bugsnag'
+  gem 'cocoapods-check'
+  gem 'cocoapods-clean'
+  gem 'cocoapods-clean_build_phases_scripts'
+  gem 'cocoapods-core'
+  gem 'cocoapods-coverage'
+  gem 'cocoapods-deintegrate'
+  gem 'cocoapods-dependencies'
+  gem 'cocoapods-deploy'
+  gem 'cocoapods-downloader'
+  gem 'cocoapods-expert-difficulty'
+  gem 'cocoapods-fix-react-native'
+  gem 'cocoapods-generate'
+  gem 'cocoapods-git_url_rewriter'
+  gem 'cocoapods-keys'
+  gem 'cocoapods-no-dev-schemes'
+  gem 'cocoapods-open'
+  gem 'cocoapods-packager'
+  gem 'cocoapods-playgrounds'
+  gem 'cocoapods-plugins'
+  gem 'cocoapods-prune-localizations'
+  gem 'cocoapods-rome'
+  gem 'cocoapods-search'
+  gem 'cocoapods-sorted-search'
+  gem 'cocoapods-static-swift-framework'
+  gem 'cocoapods-stats'
+  gem 'cocoapods-tdfire-binary'
+  gem 'cocoapods-testing'
+  gem 'cocoapods-trunk'
+  gem 'cocoapods-try'
+  gem 'cocoapods-try-release-fix'
+  gem 'cocoapods-update-if-you-dare'
+  gem 'cocoapods-whitelist'
+  gem 'cocoapods-wholemodule'
+  gem 'coderay'
+  gem 'concurrent-ruby'
+  gem 'curb'
+  gem 'curses'
+  gem 'daemons'
+  gem 'dep-selector-libgecode'
+  gem 'digest-sha3'
+  gem 'domain_name'
+  gem 'do_sqlite3'
+  gem 'ethon'
+  gem 'eventmachine'
+  gem 'excon'
+  gem 'faraday'
+  gem 'ffi'
+  gem 'ffi-rzmq-core'
+  gem 'fog-dnsimple'
+  gem 'gdk_pixbuf2'
+  gem 'gio2'
+  gem 'gitlab-markup'
+  gem 'glib2'
+  # gem 'gobject-introspection' fails on require
+  gem 'gpgme'
+  # gem 'grpc' fails to build
+  gem 'gtk2'
+  gem 'hashie'
+  gem 'highline'
+  gem 'hike'
+  gem 'hitimes'
+  gem 'hpricot'
+  gem 'httpclient'
+  gem 'http-cookie'
+  gem 'iconv'
+  gem 'idn-ruby'
+  gem 'jbuilder'
+  gem 'jekyll'
+  gem 'jmespath'
+  gem 'jwt'
+  gem 'libv8'
+  gem 'libxml-ruby'
+  gem 'magic'
+  gem 'markaby'
+  gem 'method_source'
+  gem 'mini_magick'
+  gem 'msgpack'
+  gem 'mysql2'
+  # gem 'mysql' deprecated
+  gem 'ncursesw'
+  gem 'netrc'
+  gem 'net-scp'
+  gem 'net-ssh'
+  gem 'nokogiri'
+  gem 'opus-ruby'
+  gem 'ovirt-engine-sdk'
+  gem 'pango'
+  gem 'patron'
+  gem 'pcaprub'
+  gem 'pg'
+  gem 'pry'
+  gem 'pry-byebug'
+  gem 'pry-doc'
+  gem 'public_suffix'
+  gem 'puma'
+  gem 'rails'
+  gem 'rainbow'
+  # gem 'rbczmq' deprecated
+  gem 'rbnacl'
+  gem 'rb-readline'
+  gem 're2'
+  gem 'redis'
+  gem 'redis-rack'
+  gem 'rest-client'
+  gem 'rmagick'
+  gem 'rpam2'
+  gem 'rspec'
+  gem 'rubocop'
+  gem 'rubocop-performance'
+  gem 'ruby-libvirt'
+  gem 'ruby-lxc'
+  gem 'ruby-progressbar'
+  gem 'ruby-terminfo'
+  gem 'ruby-vips'
+  gem 'rubyzip'
+  gem 'rugged'
+  gem 'sassc'
+  gem 'scrypt'
+  gem 'semian'
+  gem 'sequel'
+  gem 'sequel_pg'
+  gem 'simplecov'
+  gem 'sinatra'
+  gem 'slop'
+  gem 'snappy'
+  gem 'sqlite3'
+  gem 'taglib-ruby'
+  gem 'therubyracer'
+  gem 'thrift'
+  gem 'tilt'
+  gem 'tiny_tds'
+  gem 'treetop'
+  gem 'typhoeus'
+  gem 'tzinfo'
+  gem 'unf_ext'
+  gem 'uuid4r'
+  gem 'whois'
+  # gem 'xapian-ruby' doesn't contain ruby code
+  gem 'zookeeper'
+end
diff --git a/pkgs/development/ruby-modules/with-packages/default.nix b/pkgs/development/ruby-modules/with-packages/default.nix
new file mode 100644
index 00000000000..ac0a33f4561
--- /dev/null
+++ b/pkgs/development/ruby-modules/with-packages/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, lib, buildEnv, buildRubyGem, ruby, gemConfig, makeWrapper }:
+
+/*
+Example usage:
+nix-shell -E "(import <nixpkgs> {}).ruby.withPackages (pkgs: with pkgs; [ pry nokogiri ])"
+
+You can also use this for writing ruby scripts that run anywhere that has nix
+using a nix-shell shebang:
+  #!/usr/bin/env nix-shell
+  #!nix-shell -i ruby -p "ruby.withPackages (pkgs: with pkgs; [ pry nokogiri ])"
+
+
+Run the following in the nixpkgs root directory to update the ruby-packages.nix:
+./maintainers/scripts/update-ruby-packages
+*/
+
+let
+  functions = import ../bundled-common/functions.nix { inherit lib gemConfig; };
+
+  buildGems = gemset:
+    let
+      realGemset = if builtins.isAttrs gemset then gemset else import gemset;
+      builtGems =
+        lib.mapAttrs (name: initialAttrs:
+          let
+            attrs = functions.applyGemConfigs ({ inherit ruby; gemName = name; } // initialAttrs);
+          in
+            buildRubyGem (functions.composeGemAttrs ruby builtGems name attrs)
+        ) realGemset;
+    in builtGems;
+
+  gems = buildGems (import ../../../top-level/ruby-packages.nix);
+
+  withPackages = selector:
+    let
+      selected = selector gems;
+
+      gemEnv = buildEnv {
+        name = "ruby-gems";
+        paths = selected;
+        pathsToLink = [ "/lib" "/bin" "/nix-support" ];
+      };
+
+      wrappedRuby = stdenv.mkDerivation {
+        name = "wrapped-${ruby.name}";
+        nativeBuildInputs = [ makeWrapper ];
+        buildCommand = ''
+          mkdir -p $out/bin
+          for i in ${ruby}/bin/*; do
+            makeWrapper "$i" $out/bin/$(basename "$i") --set GEM_PATH ${gemEnv}/${ruby.gemPath}
+          done
+        '';
+      };
+
+    in stdenv.mkDerivation {
+      name = "${ruby.name}-with-packages";
+      nativeBuildInputs = [ makeWrapper ];
+      buildInputs = [ selected ruby ];
+
+      unpackPhase = ":";
+
+      installPhase = ''
+        for i in ${ruby}/bin/* ${gemEnv}/bin/*; do
+          rm -f $out/bin/$(basename "$i")
+          makeWrapper "$i" $out/bin/$(basename "$i") --set GEM_PATH ${gemEnv}/${ruby.gemPath}
+        done
+      '';
+
+      passthru = {
+        inherit wrappedRuby;
+        gems = selected;
+      };
+    };
+
+in { inherit withPackages gems buildGems; }
diff --git a/pkgs/development/ruby-modules/with-packages/require_exceptions.nix b/pkgs/development/ruby-modules/with-packages/require_exceptions.nix
new file mode 100644
index 00000000000..e6ae3b5013f
--- /dev/null
+++ b/pkgs/development/ruby-modules/with-packages/require_exceptions.nix
@@ -0,0 +1,84 @@
+let
+  cocoapod-plugin = name: ''
+    require "cocoapods"
+    require "#{Gem::Specification.find_by_name(%(${name})).gem_dir}/lib/cocoapods_plugin"
+  '';
+in {
+  actioncable = [ "action_cable" ];
+  actionmailer = [ "action_mailer" ];
+  actionpack = [ "action_pack" ];
+  actionview = [ "action_view" ];
+  activejob = [ "active_job" ];
+  activemodel = [ "active_model" ];
+  activerecord = [ "active_record" ];
+  activestorage = [ "active_storage" ];
+  activesupport = [ "active_support" ];
+  atk = [ "atk" ];
+  CFPropertyList = [ "cfpropertylist" ];
+  cocoapods-acknowledgements = [ "cocoapods" "cocoapods_acknowledgements" ];
+  cocoapods-art = [ "cocoapods_art" ];
+  cocoapods-browser = [ "cocoapods" "cocoapods_plugin" ];
+  cocoapods-bugsnag = cocoapod-plugin "cocoapods-bugsnag";
+  cocoapods-clean = [ "cocoapods_clean" ];
+  cocoapods-coverage = [ "cocoapods_coverage" ];
+  cocoapods-deintegrate = [ ]; # used by cocoapods
+  cocoapods-dependencies = [ "cocoapods_dependencies" ];
+  cocoapods-deploy = cocoapod-plugin "cocoapods-deploy";
+  cocoapods-generate = cocoapod-plugin "cocoapods-generate";
+  cocoapods-git_url_rewriter = cocoapod-plugin "cocoapods-git_url_rewriter";
+  cocoapods-keys = []; # osx only cocoapod-plugin "cocoapods-keys";
+  cocoapods-open = [ "cocoapods" "cocoapods_plugin" ];
+  cocoapods-packager = [ "cocoapods_packager" ];
+  cocoapods-packager-pro = [ ]; # requires osx
+  cocoapods-plugins = [ "cocoapods_plugins" ];
+  cocoapods-sorted-search = [ ]; # requires osx
+  cocoapods-check = cocoapod-plugin "cocoapods-check";
+  cocoapods-disable-podfile-validations = cocoapod-plugin "cocoapods-disable-podfile-validations";
+  cocoapods-stats = [ "cocoapods_stats" ];
+  cocoapods-testing = [ "cocoapods_testing" ];
+  cocoapods-trunk = [ "cocoapods_trunk" ];
+  cocoapods-try = [ "cocoapods_try" ];
+  cocoapods-try-release-fix = cocoapod-plugin "cocoapods-try-release-fix";
+  digest-sha3 = [ "digest/sha3" ];
+  ffi-compiler = [ "ffi-compiler/loader" ];
+  fog-core = [ "fog/core" ];
+  fog-dnsimple = [ "fog/dnsimple" ];
+  fog-json = [ "fog/json" ];
+  forwardable-extended = [ "forwardable/extended" ];
+  gdk_pixbuf2 = [ "gdk_pixbuf2" ];
+  gitlab-markup = [ "github/markup" ];
+  gobject-introspection = [ "gobject-introspection" ];
+  gtk2 = [ ]; # requires display
+  idn-ruby = [ "idn" ];
+  jekyll-sass-converter = []; # tested through jekyll
+  libxml-ruby = [ "libxml" ];
+  multipart-post = [ "multipart_post" ];
+  unicode-display_width = [ "unicode/display_width" ];
+  nap = [ "rest" ];
+  net-scp = [ "net/scp" ];
+  net-ssh = [ "net/ssh" ];
+  nio4r = [ "nio" ];
+  osx_keychain = [ ]; # requires osx
+  ovirt-engine-sdk = [ "ovirtsdk4" ];
+  pango = [ "pango" ];
+  rack-test = [ "rack/test" ];
+  railties = [ "rails" ];
+  rspec-core = [ "rspec/core" ];
+  rspec-expectations = [ "rspec/expectations" ];
+  rspec-mocks = [ "rspec/mocks" ];
+  rspec-support = [ "rspec/support" ];
+  RubyInline = [ "inline" ];
+  ruby-libvirt = [ "libvirt" ];
+  ruby-lxc = [ "lxc" ];
+  ruby-macho = [ "macho" ];
+  ruby-terminfo = [ "terminfo" ];
+  rubyzip = [ "zip" ];
+  sequel_pg = [ "pg" "sequel" "sequel/adapters/postgresql" "sequel_pg" ];
+  simplecov-html = [ ]; # tested through simplecov
+  sinatra = [ "sinatra/base" ];
+  sprockets-rails = [ "sprockets/rails" ];
+  taglib-ruby = [ "taglib" ];
+  websocket-driver = [ "websocket/driver" ];
+  websocket-extensions = [ "websocket/extensions" ];
+  ZenTest = [ "zentest" ];
+}
diff --git a/pkgs/development/ruby-modules/with-packages/test.nix b/pkgs/development/ruby-modules/with-packages/test.nix
new file mode 100644
index 00000000000..92ded1004e3
--- /dev/null
+++ b/pkgs/development/ruby-modules/with-packages/test.nix
@@ -0,0 +1,48 @@
+# a generic test suite for all gems for all ruby versions.
+# use via nix-build.
+let
+  pkgs = import ../../../.. {};
+  lib = pkgs.lib;
+  stdenv = pkgs.stdenv;
+
+  rubyVersions = with pkgs; [
+    ruby_2_4
+    ruby_2_5
+    ruby_2_6
+  ];
+
+  gemTests =
+    (lib.mapAttrs
+      (name: gem: [ name ])
+      pkgs.ruby.gems) //
+    (import ./require_exceptions.nix);
+
+  tests = ruby:
+    lib.mapAttrs (name: gem:
+      let
+        test =
+          if builtins.isList gemTests."${name}"
+          then pkgs.writeText "${name}.rb" ''
+                puts "${name} GEM_HOME: #{ENV['GEM_HOME']}"
+                ${lib.concatStringsSep "\n" (map (n: "require '${n}'") gemTests."${name}")}
+              ''
+          else pkgs.writeText "${name}.rb" gemTests."${name}";
+
+        deps = ruby.withPackages (g: [ g."${name}" ]);
+      in stdenv.mkDerivation {
+        name = "test-gem-${ruby.name}-${name}";
+        buildInputs = [ deps ];
+        buildCommand = ''
+          INLINEDIR=$PWD ruby ${test}
+          touch $out
+        '';
+      }
+    ) ruby.gems;
+in
+  stdenv.mkDerivation {
+    name = "test-all-ruby-gems";
+    buildInputs = builtins.foldl' (sum: ruby: sum ++ ( builtins.attrValues (tests ruby) )) [] rubyVersions;
+    buildCommand = ''
+      touch $out
+    '';
+  }
diff --git a/pkgs/development/ruby-modules/with-packages/test.rb b/pkgs/development/ruby-modules/with-packages/test.rb
new file mode 100755
index 00000000000..760402d070c
--- /dev/null
+++ b/pkgs/development/ruby-modules/with-packages/test.rb
@@ -0,0 +1,76 @@
+#!/usr/bin/env ruby
+
+# this is a quick and dirty test suite for easier analyzing of breakages in a
+# manual testing.
+# For automated testing use the test.nix
+
+require 'fileutils'
+
+class FakeGemfile
+  attr_reader :gems
+
+  def initialize
+    @gems = []
+  end
+
+  def source(_source, &block)
+    instance_exec(&block)
+  end
+
+  def gem(name)
+    @gems << name
+  end
+end
+
+gemfile = File.expand_path(File.join(__dir__, 'Gemfile'))
+packages = FakeGemfile.new.instance_eval(File.read(gemfile), gemfile)
+
+test_cases = packages.map { |pkg| [pkg, "require '#{pkg}'"] }.to_h
+
+test_cases.merge!(
+  'digest-sha3' => "require 'digest/sha3'",
+  'gitlab-markup' => "require 'github/markup'",
+  'idn-ruby' => "require 'idn'",
+  'net-scp' => "require 'net/scp'",
+  'taglib-ruby' => "require 'taglib'",
+  'net-ssh' => "require 'net/ssh'",
+  'ruby-libvirt' => "require 'libvirt'",
+  'ruby-lxc' => "require 'lxc'",
+  'rubyzip' => "require 'zip'",
+  'sinatra' => "require 'sinatra/base'",
+  'libxml-ruby' => "require 'libxml'",
+  'ruby-terminfo' => "require 'terminfo'",
+  'ovirt-engine-sdk' => "require 'ovirtsdk4'",
+  'fog-dnsimple' => "require 'fog/dnsimple'"
+)
+
+test_cases['sequel_pg'] = <<~TEST
+  require 'pg'
+  require 'sequel'
+  require 'sequel/adapters/postgresql'
+  require 'sequel_pg'
+TEST
+
+tmpdir = File.expand_path(File.join(__dir__, 'tests'))
+FileUtils.rm_rf(tmpdir)
+FileUtils.mkdir_p(tmpdir)
+
+failing = test_cases.reject do |name, test_case|
+  test_case = <<~SHELL
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i ruby -E "(import ../../../.. {}).ruby.withPackages (r: [ r.#{name} ] )"
+    #{test_case}
+  SHELL
+
+  file = File.join(tmpdir, "#{name}_test.rb")
+  File.write(file, test_case)
+  FileUtils.chmod('u=wrx', file)
+
+  system(file) && FileUtils.rm(file)
+end
+
+exit if failing.empty?
+
+puts "Following gems failed: #{failing.keys.join(' ')}"
+puts "tests for failing gems remain in #{tmpdir}"
+exit 1
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index a59a47b9e33..cd8ae42f20b 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -110,12 +110,12 @@ in {
   #<generated>
   # DO NOT EDIT! Automatically generated by ./update.py
   radare2 = generic {
-    version_commit = "22465";
-    gittap = "3.7.0";
-    gittip = "cb2648cbbde3cd63cb1b2a9b1d4269c97bd653b8";
-    rev = "3.7.0";
-    version = "3.7.0";
-    sha256 = "1kinf51sb1zyy8nlq9yig02z42izih7kz8ff0gqm8all0hrzclxc";
+    version_commit = "22646";
+    gittap = "3.8.0";
+    gittip = "b4860e4eecad2053202965926f16296864b2f1e5";
+    rev = "3.8.0";
+    version = "3.8.0";
+    sha256 = "0rx6az2vpqy12lvzpxx9pappqj84d88daj8bis3zsffqgmhsafcd";
     cs_ver = "4.0.1";
     cs_sha256 = "0ijwxxk71nr9z91yxw20zfj4bbsbrgvixps5c7cpj163xlzlwba6";
   };
diff --git a/pkgs/development/tools/build-managers/bazel/bash-tools-test.nix b/pkgs/development/tools/build-managers/bazel/bash-tools-test.nix
index 898640a84fe..cd0c5f6c081 100644
--- a/pkgs/development/tools/build-managers/bazel/bash-tools-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/bash-tools-test.nix
@@ -1,4 +1,4 @@
-{ writeText, bazel, runLocal, bazelTest }:
+{ writeText, bazel, runLocal, bazelTest, distDir }:
 
 # Tests that certain executables are available in bazel-executed bash shells.
 
@@ -35,7 +35,7 @@ let
     inherit workspaceDir;
 
     bazelScript = ''
-      ${bazel}/bin/bazel build :tool_usage
+      ${bazel}/bin/bazel build :tool_usage --distdir=${distDir}
       cp bazel-genfiles/output.txt $out
       echo "Testing content" && [ "$(cat $out | wc -l)" == "2" ] && echo "OK"
     '';
diff --git a/pkgs/development/tools/build-managers/bazel/cpp-test.nix b/pkgs/development/tools/build-managers/bazel/cpp-test.nix
index 2b59bd3c433..f4e03abdbc9 100644
--- a/pkgs/development/tools/build-managers/bazel/cpp-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/cpp-test.nix
@@ -8,6 +8,7 @@
 , runtimeShell
 , writeScript
 , writeText
+, distDir
 }:
 
 let
@@ -42,6 +43,7 @@ let
     bazelScript = ''
       ${bazel}/bin/bazel \
         build --verbose_failures \
+        --distdir=${distDir} \
           //...
     '';
   };
diff --git a/pkgs/development/tools/build-managers/bazel/default.nix b/pkgs/development/tools/build-managers/bazel/default.nix
index 29405424547..01619e0cb11 100644
--- a/pkgs/development/tools/build-managers/bazel/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/default.nix
@@ -22,11 +22,11 @@
 }:
 
 let
-  version = "0.28.1";
+  version = "0.29.0";
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "0503fax70w7h6v00mkrrrgf1m5n0vkjqs76lyg95alhzc4yldsic";
+    sha256 = "01cb6f2e808bd016cf0e217e12373c9efb808123e58b37885be8364458d3a40a";
   };
 
   # Update with `eval $(nix-build -A bazel.updater)`,
@@ -46,11 +46,15 @@ let
       srcs.io_bazel_rules_sass
       srcs.platforms
       (if stdenv.hostPlatform.isDarwin
-       then srcs."java_tools_javac11_darwin-v2.0.zip"
-       else srcs."java_tools_javac11_linux-v2.0.zip")
+       then srcs."java_tools_javac11_darwin-v4.0.zip"
+       else srcs."java_tools_javac11_linux-v4.0.zip")
       srcs."coverage_output_generator-v1.0.zip"
       srcs.build_bazel_rules_nodejs
-      srcs."android_tools_pkg-0.7.tar.gz"
+      srcs."android_tools_pkg-0.8.tar.gz"
+      srcs."0.27.1.tar.gz"
+      srcs.rules_pkg
+      srcs.rules_cc
+      srcs.rules_java
       ]);
 
   distDir = runCommand "bazel-deps" {} ''
@@ -102,7 +106,7 @@ let
   remote_java_tools = stdenv.mkDerivation {
     name = "remote_java_tools_${system}";
 
-    src = srcDepsSet."java_tools_javac11_${system}-v2.0.zip";
+    src = srcDepsSet."java_tools_javac11_${system}-v4.0.zip";
 
     nativeBuildInputs = [ autoPatchelfHook unzip ];
     buildInputs = [ gcc-unwrapped ];
@@ -218,18 +222,18 @@ stdenv.mkDerivation rec {
       };
 
     in {
-      bashTools = callPackage ./bash-tools-test.nix { inherit runLocal bazelTest; };
-      cpp = callPackage ./cpp-test.nix { inherit runLocal bazelTest bazel-examples; };
-      java = callPackage ./java-test.nix { inherit runLocal bazelTest bazel-examples; };
-      protobuf = callPackage ./protobuf-test.nix { inherit runLocal bazelTest; };
-      pythonBinPath = callPackage ./python-bin-path-test.nix { inherit runLocal bazelTest; };
+      bashTools = callPackage ./bash-tools-test.nix { inherit runLocal bazelTest distDir; };
+      cpp = callPackage ./cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
+      java = callPackage ./java-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
+      protobuf = callPackage ./protobuf-test.nix { inherit runLocal bazelTest distDir; };
+      pythonBinPath = callPackage ./python-bin-path-test.nix { inherit runLocal bazelTest distDir; };
 
-      bashToolsWithNixHacks = callPackage ./bash-tools-test.nix { inherit runLocal bazelTest; bazel = bazelWithNixHacks; };
+      bashToolsWithNixHacks = callPackage ./bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
 
-      cppWithNixHacks = callPackage ./cpp-test.nix { inherit runLocal bazelTest bazel-examples; bazel = bazelWithNixHacks; };
-      javaWithNixHacks = callPackage ./java-test.nix { inherit runLocal bazelTest bazel-examples; bazel = bazelWithNixHacks; };
-      protobufWithNixHacks = callPackage ./protobuf-test.nix { inherit runLocal bazelTest; bazel = bazelWithNixHacks; };
-      pythonBinPathWithNixHacks = callPackage ./python-bin-path-test.nix { inherit runLocal bazelTest; bazel = bazelWithNixHacks; };
+      cppWithNixHacks = callPackage ./cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
+      javaWithNixHacks = callPackage ./java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
+      protobufWithNixHacks = callPackage ./protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
+      pythonBinPathWithNixHacks = callPackage ./python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
 
       # downstream packages using buildBazelPackage
       # fixed-output hashes of the fetch phase need to be spot-checked manually
@@ -463,6 +467,7 @@ stdenv.mkDerivation rec {
     # the reference to .name
     mkdir $out/etc
     echo "build --override_repository=${remote_java_tools.name}=${remote_java_tools}" > $out/etc/bazelrc
+    echo "build --distdir=${distDir}" >> $out/etc/bazelrc
 
     # shell completion files
     mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions
diff --git a/pkgs/development/tools/build-managers/bazel/java-test.nix b/pkgs/development/tools/build-managers/bazel/java-test.nix
index 5f780a795e3..30b957eb5e3 100644
--- a/pkgs/development/tools/build-managers/bazel/java-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/java-test.nix
@@ -9,6 +9,7 @@
 , runtimeShell
 , writeScript
 , writeText
+, distDir
 }:
 
 let
@@ -44,6 +45,7 @@ let
     bazelScript = ''
       ${bazel}/bin/bazel \
         run \
+        --distdir=${distDir} \
           --host_javabase='@local_jdk//:jdk' \
           --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \
           --javabase='@local_jdk//:jdk' \
diff --git a/pkgs/development/tools/build-managers/bazel/protobuf-test.nix b/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
index 90065be67bc..0784de4cfd3 100644
--- a/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
@@ -10,6 +10,7 @@
 , runtimeShell
 , writeScript
 , writeText
+, distDir
 }:
 
 let
@@ -141,6 +142,7 @@ let
     bazelScript = ''
       ${bazel}/bin/bazel \
         build \
+        --distdir=${distDir} \
           --host_javabase='@local_jdk//:jdk' \
           --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \
           --javabase='@local_jdk//:jdk' \
diff --git a/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix b/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix
index ff921b395da..c02547c08e0 100644
--- a/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix
@@ -1,4 +1,4 @@
-{ writeText, bazel, bazelTest, runLocal }:
+{ writeText, bazel, bazelTest, runLocal, distDir }:
 
 let
   WORKSPACE = writeText "WORKSPACE" ''
@@ -45,6 +45,7 @@ let
     bazelScript = ''
       ${bazel}/bin/bazel \
         run \
+      --distdir=${distDir} \
           //python:bin
     '';
   };
diff --git a/pkgs/development/tools/build-managers/bazel/src-deps.json b/pkgs/development/tools/build-managers/bazel/src-deps.json
index fc3fe13f580..f93794249ec 100644
--- a/pkgs/development/tools/build-managers/bazel/src-deps.json
+++ b/pkgs/development/tools/build-managers/bazel/src-deps.json
@@ -7,12 +7,28 @@
             "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip"
         ]
     },
-    "1ca560df1cf6e280f987af2f8d08a5edc7ac6b54.tar.gz": {
-        "name": "1ca560df1cf6e280f987af2f8d08a5edc7ac6b54.tar.gz",
-        "sha256": "3ca1b3d453a977aeda60dd335feb812771addfd0d0c61751b34b9681aa4d6534",
+    "0.27.1.tar.gz": {
+        "name": "0.27.1.tar.gz",
+        "sha256": "28cb3666da80fbc62d4c46814f5468dd5d0b59f9064c0b933eee3140d706d330",
         "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/1ca560df1cf6e280f987af2f8d08a5edc7ac6b54.tar.gz",
-            "https://github.com/bazelbuild/skydoc/archive/1ca560df1cf6e280f987af2f8d08a5edc7ac6b54.tar.gz"
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.27.1.tar.gz",
+            "https://github.com/bazelbuild/bazel-toolchains/archive/0.27.1.tar.gz"
+        ]
+    },
+    "0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip": {
+        "name": "0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
+        "sha256": "36fa66d4d49debd71d05fba55c1353b522e8caef4a20f8080a3d17cdda001d89",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
+            "https://github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip"
+        ]
+    },
+    "41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz": {
+        "name": "41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz",
+        "sha256": "fdc34621839104b57363a258eab9d821b02ff7837923cfe7fb6fd67182780829",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz",
+            "https://github.com/bazelbuild/skydoc/archive/41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz"
         ]
     },
     "441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip": {
@@ -23,6 +39,14 @@
             "https://github.com/bazelbuild/platforms/archive/441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip"
         ]
     },
+    "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
+        "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+        ]
+    },
     "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz": {
         "name": "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
         "sha256": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898",
@@ -31,29 +55,28 @@
             "https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz"
         ]
     },
-    "android_tools_pkg-0.7.tar.gz": {
-        "name": "android_tools_pkg-0.7.tar.gz",
-        "sha256": "a8e48f2fdee2c34b31f45bd47ce050a75ac774f19e0a1f6694fa49fc11d88718",
+    "android_tools_pkg-0.8.tar.gz": {
+        "name": "android_tools_pkg-0.8.tar.gz",
+        "sha256": "a9eac6e1b27d5549edaaa724b20eb1cdae6253b84f44d5744c30372bd523cfcd",
         "urls": [
-            "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.7.tar.gz"
+            "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.8.tar.gz"
         ]
     },
-    "bazel_j2objc": {
-        "name": "bazel_j2objc",
-        "sha256": "a36bac432d0dbd8c98249e484b2b69dd5720afa4abb58711a3c3def1c0bfa21d",
-        "strip_prefix": "j2objc-2.0.3",
+    "b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz": {
+        "name": "b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+        "sha256": "88b0a90433866b44bb4450d4c30bc5738b8c4f9c9ba14e9661deb123f56a833d",
         "urls": [
-            "https://miirror.bazel.build/github.com/google/j2objc/releases/download/2.0.3/j2objc-2.0.3.zip",
-            "https://github.com/google/j2objc/releases/download/2.0.3/j2objc-2.0.3.zip"
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+            "https://github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz"
         ]
     },
-    "bazel_rbe_toolchains": {
-        "name": "bazel_rbe_toolchains",
-        "sha256": "e2b8644caa15235a488e831264e5dcb014e2cdf3b697319bc1e9d6b0fff0b4b9",
-        "strip_prefix": "bazel_rbe_toolchains-01529a65d21abdf71635ff0c2472043a567ecded",
+    "bazel_j2objc": {
+        "name": "bazel_j2objc",
+        "sha256": "8d3403b5b7db57e347c943d214577f6879e5b175c2b59b7e075c0b6453330e9b",
+        "strip_prefix": "j2objc-2.5",
         "urls": [
-            "https://mirror.bazel.build/github.com/buchgr/bazel_rbe_toolchains/archive/01529a65d21abdf71635ff0c2472043a567ecded.tar.gz",
-            "https://github.com/buchgr/bazel_rbe_toolchains/archive/01529a65d21abdf71635ff0c2472043a567ecded.tar.gz"
+            "https://miirror.bazel.build/github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip",
+            "https://github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip"
         ]
     },
     "bazel_skylib": {
@@ -67,11 +90,11 @@
     },
     "bazel_toolchains": {
         "name": "bazel_toolchains",
-        "sha256": "67335b3563d9b67dc2550b8f27cc689b64fadac491e69ce78763d9ba894cc5cc",
-        "strip_prefix": "bazel-toolchains-cddc376d428ada2927ad359211c3e356bd9c9fbb",
+        "sha256": "28cb3666da80fbc62d4c46814f5468dd5d0b59f9064c0b933eee3140d706d330",
+        "strip_prefix": "bazel-toolchains-0.27.1",
         "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/cddc376d428ada2927ad359211c3e356bd9c9fbb.tar.gz",
-            "https://github.com/bazelbuild/bazel-toolchains/archive/cddc376d428ada2927ad359211c3e356bd9c9fbb.tar.gz"
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.27.1.tar.gz",
+            "https://github.com/bazelbuild/bazel-toolchains/archive/0.27.1.tar.gz"
         ]
     },
     "build_bazel_rules_nodejs": {
@@ -135,46 +158,46 @@
     },
     "io_bazel_skydoc": {
         "name": "io_bazel_skydoc",
-        "sha256": "3ca1b3d453a977aeda60dd335feb812771addfd0d0c61751b34b9681aa4d6534",
-        "strip_prefix": "skydoc-1ca560df1cf6e280f987af2f8d08a5edc7ac6b54",
+        "sha256": "fdc34621839104b57363a258eab9d821b02ff7837923cfe7fb6fd67182780829",
+        "strip_prefix": "skydoc-41c28e43dffbae39c52dd4b91932d1209e5a8893",
         "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/1ca560df1cf6e280f987af2f8d08a5edc7ac6b54.tar.gz",
-            "https://github.com/bazelbuild/skydoc/archive/1ca560df1cf6e280f987af2f8d08a5edc7ac6b54.tar.gz"
+            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz",
+            "https://github.com/bazelbuild/skydoc/archive/41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz"
         ]
     },
-    "java_tools_javac11_darwin-v2.0.zip": {
-        "name": "java_tools_javac11_darwin-v2.0.zip",
-        "sha256": "0ceb0c9ff91256fe33508306bc9cd9e188dcca38df78e70839d426bdaef67a38",
+    "java_tools_javac11_darwin-v4.0.zip": {
+        "name": "java_tools_javac11_darwin-v4.0.zip",
+        "sha256": "fbf5bf22e9aab9c622e4c8c59314a1eef5ea09eafc5672b4f3250dc0b971bbcc",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v2.0/java_tools_javac11_darwin-v2.0.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v4.0/java_tools_javac11_darwin-v4.0.zip"
         ]
     },
-    "java_tools_javac11_linux-v2.0.zip": {
-        "name": "java_tools_javac11_linux-v2.0.zip",
-        "sha256": "074d624fb34441df369afdfd454e75dba821d5d54932fcfee5ba598d17dc1b99",
+    "java_tools_javac11_linux-v4.0.zip": {
+        "name": "java_tools_javac11_linux-v4.0.zip",
+        "sha256": "96e223094a12c842a66db0bb7bb6866e88e26e678f045842911f9bd6b47161f5",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v2.0/java_tools_javac11_linux-v2.0.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v4.0/java_tools_javac11_linux-v4.0.zip"
         ]
     },
-    "java_tools_javac11_windows-v2.0.zip": {
-        "name": "java_tools_javac11_windows-v2.0.zip",
-        "sha256": "2c3fc0ce7d30d60e26f4b8a36e2eadcf9e6a9d5a51b667d3d13b78db53b24251",
+    "java_tools_javac11_windows-v4.0.zip": {
+        "name": "java_tools_javac11_windows-v4.0.zip",
+        "sha256": "a1de51447b2ba2eab923d589ba6c72c289c16e6091e6a3bb3e67a05ef4ad200c",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v2.0/java_tools_javac11_windows-v2.0.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v4.0/java_tools_javac11_windows-v4.0.zip"
         ]
     },
     "java_tools_langtools_javac10": {
         "name": "java_tools_langtools_javac10",
-        "sha256": "e379c71e051eb83e3fc9a08c9b404712707d8920ffcf1e8fd59c844965f0b0dd",
+        "sha256": "0e9c9ac5ef17869de3cb8c3497c4c0d31836ef7b63efe1690506f53783adb212",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk10.zip"
+            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk10_v2.zip"
         ]
     },
     "java_tools_langtools_javac11": {
         "name": "java_tools_langtools_javac11",
-        "sha256": "128a63f39d3f828a761f6afcfe3c6115279336a72ea77f60d7b3acf1841c9acb",
+        "sha256": "cf0814fa002ef3d794582bb086516d8c9ed0958f83f19799cdb08949019fe4c7",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11.zip"
+            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11_v2.zip"
         ]
     },
     "java_tools_langtools_javac12": {
@@ -186,9 +209,9 @@
     },
     "java_tools_langtools_javac9": {
         "name": "java_tools_langtools_javac9",
-        "sha256": "3b6bbc47256acf2f61883901e2d4e3f9b292f5fe154a6912b928805de24cb864",
+        "sha256": "d94befcfb325a9a62aebc2052e631fde2322b4df5c82a19ed260b38ba12a0ad1",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk9.zip"
+            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk9_v2.zip"
         ]
     },
     "jdk10-server-release-1804.tar.xz": {
@@ -346,6 +369,49 @@
             "https://github.com/bazelbuild/platforms/archive/441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip"
         ]
     },
+    "rules_cc": {
+        "name": "rules_cc",
+        "sha256": "36fa66d4d49debd71d05fba55c1353b522e8caef4a20f8080a3d17cdda001d89",
+        "strip_prefix": "rules_cc-0d5f3f2768c6ca2faca0079a997a97ce22997a0c",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
+            "https://github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip"
+        ]
+    },
+    "rules_java": {
+        "name": "rules_java",
+        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+        "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+        ]
+    },
+    "rules_pkg": {
+        "name": "rules_pkg",
+        "sha256": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
+            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz"
+        ]
+    },
+    "rules_pkg-0.2.0.tar.gz": {
+        "name": "rules_pkg-0.2.0.tar.gz",
+        "sha256": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
+            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz"
+        ]
+    },
+    "rules_proto": {
+        "name": "rules_proto",
+        "sha256": "88b0a90433866b44bb4450d4c30bc5738b8c4f9c9ba14e9661deb123f56a833d",
+        "strip_prefix": "rules_proto-b0cc14be5da05168b01db282fe93bdf17aa2b9f4",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+            "https://github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz"
+        ]
+    },
     "zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz": {
         "name": "zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz",
         "sha256": "57fad3602e74c79587901d6966d3b54ef32cb811829a2552163185d5064fe9b5",
diff --git a/pkgs/development/tools/build-managers/bazel/update-srcDeps.py b/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
index 7fd1e5e2b04..504a227b958 100755
--- a/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
+++ b/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
@@ -40,6 +40,11 @@ def rules_sass_dependencies(**kw): pass
 def node_repositories(**kw): pass
 def sass_repositories(**kw): pass
 def register_execution_platforms(*args): pass
+def rbe_autoconfig(*args, **kw): pass
+def rules_pkg_dependencies(*args, **kw): pass
+def winsdk_configure(*args, **kw): pass
+def register_local_rc_exe_toolchains(*args, **kw): pass
+def register_toolchains(*args, **kw): pass
 
 # execute the WORKSPACE like it was python code in this module,
 # using all the function stubs from above.
diff --git a/pkgs/development/tools/devpi-server/default.nix b/pkgs/development/tools/devpi-server/default.nix
index d883af1b068..d4215288267 100644
--- a/pkgs/development/tools/devpi-server/default.nix
+++ b/pkgs/development/tools/devpi-server/default.nix
@@ -1,20 +1,21 @@
- { stdenv, python3Packages, nginx }:
+{ stdenv, python3Packages, nginx }:
 
 python3Packages.buildPythonApplication rec {
-  name = "${pname}-${version}";
   pname = "devpi-server";
-  version = "4.9.0";
+  version = "5.1.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0cx0nv1qqv8lg6p1v8dv5val0dxnc3229c15imibl9wrhrffjbg9";
+    sha256 = "254fceee846532a5fec4e6bf52a59eb8f236efc657678a542b5200da4bb3abbc";
   };
 
   propagatedBuildInputs = with python3Packages; [
+    py
     appdirs
     devpi-common
     execnet
     itsdangerous
+    repoze_lru
     passlib
     pluggy
     pyramid
@@ -24,13 +25,12 @@ python3Packages.buildPythonApplication rec {
 
   checkInputs = with python3Packages; [
     beautifulsoup4
-    mock
     nginx
     pytest
-    pytest-flakes
+    pytest-flake8
     pytestpep8
     webtest
-  ];
+  ] ++ stdenv.lib.optionals isPy27 [ mock ];
 
   # test_genconfig.py needs devpi-server on PATH
   checkPhase = ''
diff --git a/pkgs/development/tools/dive/default.nix b/pkgs/development/tools/dive/default.nix
index b599ccf1364..5ce57ee8055 100644
--- a/pkgs/development/tools/dive/default.nix
+++ b/pkgs/development/tools/dive/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dive";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "wagoodman";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0az9b800zwk5sd90s8ssg8amf0a4dl7nrglkirp51d8hh3rs6nzl";
+    sha256 = "1pyrdff5qqc0l3h4nssa9a7qnfqwy2p6ywc8nbwyc7wvzgdiczb8";
   };
 
-  modSha256 = "1rc9nqri66kgjpxqcgwllyd0qmk46gs3wmsfdj1w43p6ybnaf3qw";
+  modSha256 = "1fk9z7a6wghrs15pc28g5ri7rkbb1ifjb91rscwqsmh10r2wik4w";
 
   meta = with lib; {
     description = "A tool for exploring each layer in a docker image";
diff --git a/pkgs/os-specific/linux/openrazer/driver.nix b/pkgs/os-specific/linux/openrazer/driver.nix
new file mode 100644
index 00000000000..355108f56e4
--- /dev/null
+++ b/pkgs/os-specific/linux/openrazer/driver.nix
@@ -0,0 +1,39 @@
+{ coreutils
+, fetchFromGitHub
+, kernel
+, stdenv
+, utillinux
+}:
+
+let
+  common = import ../../../development/python-modules/openrazer/common.nix { inherit stdenv fetchFromGitHub; };
+in
+stdenv.mkDerivation (common // {
+  name = "openrazer-${common.version}-${kernel.version}";
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  buildFlags = [
+    "KERNELDIR=${kernel.dev}/lib/modules/${kernel.version}/build"
+  ];
+
+  installPhase = ''
+    binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hid"
+    mkdir -p "$binDir"
+    cp -v driver/*.ko "$binDir"
+    RAZER_MOUNT_OUT="$out/bin/razer_mount"
+    RAZER_RULES_OUT="$out/etc/udev/rules.d/99-razer.rules"
+    install -m 644 -v -D install_files/udev/99-razer.rules $RAZER_RULES_OUT
+    install -m 755 -v -D install_files/udev/razer_mount $RAZER_MOUNT_OUT
+    substituteInPlace $RAZER_RULES_OUT \
+      --replace razer_mount $RAZER_MOUNT_OUT
+    substituteInPlace $RAZER_MOUNT_OUT \
+      --replace /usr/bin/logger ${utillinux}/bin/logger \
+      --replace chgrp ${coreutils}/bin/chgrp \
+      --replace "PATH='/sbin:/bin:/usr/sbin:/usr/bin'" ""
+  '';
+
+  meta = common.meta // {
+    description = "An entirely open source Linux driver that allows you to manage your Razer peripherals on GNU/Linux";
+  };
+})
diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix
index 1836748d5fc..59e39f72f51 100644
--- a/pkgs/os-specific/linux/upower/default.nix
+++ b/pkgs/os-specific/linux/upower/default.nix
@@ -43,9 +43,9 @@ stdenv.mkDerivation {
     "--localstatedir=/var"
   ]
   ++ stdenv.lib.optional useSystemd [
-    "--with-systemdsystemunitdir=${placeholder ''out''}/etc/systemd/system"
-    "--with-systemdutildir=${placeholder ''out''}/lib/systemd"
-    "--with-udevrulesdir=${placeholder ''out''}/lib/udev/rules.d"
+    "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
+    "--with-systemdutildir=${placeholder "out"}/lib/systemd"
+    "--with-udevrulesdir=${placeholder "out"}/lib/udev/rules.d"
   ]
   ;
 
diff --git a/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix b/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
new file mode 100644
index 00000000000..21c469694c8
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "aws-s3-exporter";
+  version = "0.3.0";
+
+  goPackagePath = "github.com/ribbybibby/s3_exporter";
+
+  goDeps = ./aws-s3-exporter_deps.nix;
+
+  src = fetchFromGitHub {
+    owner = "ribbybibby";
+    repo = "s3_exporter";
+    rev = "v${version}";
+    sha256 = "062qi4rfqkxwknncwcvx4g132bxhkn2bhbxi4l90wl93v6sdp9l2";
+  };
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Exports Prometheus metrics about S3 buckets and objects";
+    homepage = "https://github.com/ribbybibby/s3_exporter";
+    license = licenses.asl20;
+    maintainers = [ maintainers.mmahut ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/monitoring/prometheus/aws-s3-exporter_deps.nix b/pkgs/servers/monitoring/prometheus/aws-s3-exporter_deps.nix
new file mode 100644
index 00000000000..5ca160cb16f
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/aws-s3-exporter_deps.nix
@@ -0,0 +1,336 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+  {
+    goPackagePath = "github.com/alecthomas/template";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/template";
+      rev = "a0175ee3bccc";
+      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+    };
+  }
+  {
+    goPackagePath = "github.com/alecthomas/units";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/units";
+      rev = "2efee857e7cf";
+      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+    };
+  }
+  {
+    goPackagePath = "github.com/aws/aws-sdk-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aws/aws-sdk-go";
+      rev = "v1.20.1";
+      sha256 = "0nhdkkcm11d2n2974kph6jjhddkp1fjbcpfgmalabc798gmqfg54";
+    };
+  }
+  {
+    goPackagePath = "github.com/beorn7/perks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/beorn7/perks";
+      rev = "v1.0.0";
+      sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
+    };
+  }
+  {
+    goPackagePath = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev = "v1.1.1";
+      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-kit/kit";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-kit/kit";
+      rev = "v0.8.0";
+      sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-logfmt/logfmt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-logfmt/logfmt";
+      rev = "v0.3.0";
+      sha256 = "1gkgh3k5w1xwb2qbjq52p6azq3h1c1rr6pfwjlwj1zrijpzn2xb9";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-stack/stack";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-stack/stack";
+      rev = "v1.8.0";
+      sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
+    };
+  }
+  {
+    goPackagePath = "github.com/gogo/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gogo/protobuf";
+      rev = "v1.1.1";
+      sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev = "v1.3.1";
+      sha256 = "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl";
+    };
+  }
+  {
+    goPackagePath = "github.com/jmespath/go-jmespath";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jmespath/go-jmespath";
+      rev = "c2b33e8439af";
+      sha256 = "1r6w7ydx8ydryxk3sfhzsk8m6f1nsik9jg3i1zhi69v4kfl4d5cz";
+    };
+  }
+  {
+    goPackagePath = "github.com/json-iterator/go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/json-iterator/go";
+      rev = "v1.1.6";
+      sha256 = "08caswxvdn7nvaqyj5kyny6ghpygandlbw9vxdj7l5vkp7q0s43r";
+    };
+  }
+  {
+    goPackagePath = "github.com/julienschmidt/httprouter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/julienschmidt/httprouter";
+      rev = "v1.2.0";
+      sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
+    };
+  }
+  {
+    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
+    fetch = {
+      type = "git";
+      url = "https://github.com/konsorten/go-windows-terminal-sequences";
+      rev = "v1.0.2";
+      sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/logfmt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/logfmt";
+      rev = "b84e30acd515";
+      sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
+    };
+  }
+  {
+    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/matttproud/golang_protobuf_extensions";
+      rev = "v1.0.1";
+      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
+    };
+  }
+  {
+    goPackagePath = "github.com/modern-go/concurrent";
+    fetch = {
+      type = "git";
+      url = "https://github.com/modern-go/concurrent";
+      rev = "bacd9c7ef1dd";
+      sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
+    };
+  }
+  {
+    goPackagePath = "github.com/modern-go/reflect2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/modern-go/reflect2";
+      rev = "v1.0.1";
+      sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
+    };
+  }
+  {
+    goPackagePath = "github.com/mwitkow/go-conntrack";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mwitkow/go-conntrack";
+      rev = "cc309e4a2223";
+      sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
+    };
+  }
+  {
+    goPackagePath = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev = "v0.8.0";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+  {
+    goPackagePath = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev = "v1.0.0";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/client_golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_golang";
+      rev = "v0.9.4";
+      sha256 = "0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/client_model";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_model";
+      rev = "fd36f4220a90";
+      sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/common";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/common";
+      rev = "v0.4.1";
+      sha256 = "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/procfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/procfs";
+      rev = "v0.0.2";
+      sha256 = "0s7pvs7fgnfpmym3cd0k219av321h9sf3yvdlnn3qy0ps280lg7k";
+    };
+  }
+  {
+    goPackagePath = "github.com/sirupsen/logrus";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sirupsen/logrus";
+      rev = "v1.4.2";
+      sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x";
+    };
+  }
+  {
+    goPackagePath = "github.com/stretchr/objx";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/objx";
+      rev = "v0.1.1";
+      sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
+    };
+  }
+  {
+    goPackagePath = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev = "v1.3.0";
+      sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "c2843e01d9a2";
+      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "d28f0bde5980";
+      sha256 = "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev = "37e7f081c4d4";
+      sha256 = "1bb0mw6ckb1k7z8v3iil2qlqwfj408fvvp8m1cik2b46p7snyjhm";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "b47fdc937951";
+      sha256 = "17k4qwql2zizrxwjd0qv0gccwgyyv2axiha1vh5lrjfps1h5kli7";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "v0.3.2";
+      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "90fa682c2a6e";
+      sha256 = "03ic2xsy51jw9749wl7gszdbz99iijbd2bckgygl6cm9w5m364ak";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/alecthomas/kingpin.v2";
+      rev = "v2.2.6";
+      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/check.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/check.v1";
+      rev = "20d25e280405";
+      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "v2.2.1";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
+]
diff --git a/pkgs/servers/sql/postgresql/ext/pg_cron.nix b/pkgs/servers/sql/postgresql/ext/pg_cron.nix
index 15d67017189..1e5824d60d8 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_cron.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_cron.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_cron";
-  version = "1.1.4";
+  version = "1.2.0";
 
   buildInputs = [ postgresql ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner  = "citusdata";
     repo   = pname;
     rev    = "refs/tags/v${version}";
-    sha256 = "0wkqgrm3v999hjcc82h24jv1pib6f6bw8jsv83hgk6g3iv6xsjg9";
+    sha256 = "1hkrk6jxl20k2b0ngchblwkrzigl77jaq1gvininp4yhjdlgaks8";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix
index 33d050497da..88090636ff2 100644
--- a/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -14,13 +14,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "postgis";
-  version = "2.5.2";
+  version = "2.5.3";
 
   outputs = [ "out" "doc" ];
 
   src = fetchurl {
     url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz";
-    sha256 = "0pnva72f2w4jcgnl1y7nw5rdly4ipx3hji4c9yc9s0hna1n2ijxn";
+    sha256 = "16jm9v9y25dhfwd4hvhnynj6k3ikjbr3z3dpn8py50gr82fjds3j";
   };
 
   buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc ]
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Geographic Objects for PostgreSQL";
     homepage = https://postgis.net/;
+    changelog = "https://git.osgeo.org/gitea/postgis/postgis/raw/tag/${version}/NEWS";
     license = licenses.gpl2;
     maintainers = [ maintainers.marcweber ];
     inherit (postgresql.meta) platforms;
diff --git a/pkgs/servers/tacacs+/default.nix b/pkgs/servers/tacacsplus/default.nix
index 01d8affd1e8..400298d15d5 100644
--- a/pkgs/servers/tacacs+/default.nix
+++ b/pkgs/servers/tacacsplus/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, tcp_wrappers, flex, bison, perl }:
 
 stdenv.mkDerivation rec {
-  pname = "tacacs+";
+  pname = "tacacsplus";
   version = "4.0.4.28";
 
   src = fetchurl {
diff --git a/pkgs/servers/teleport/default.nix b/pkgs/servers/teleport/default.nix
index 121983e7031..3a83f1a08c2 100644
--- a/pkgs/servers/teleport/default.nix
+++ b/pkgs/servers/teleport/default.nix
@@ -3,14 +3,14 @@
 
 buildGoPackage rec {
   pname = "teleport";
-  version = "4.0.2";
+  version = "4.0.4";
 
   # This repo has a private submodule "e" which fetchgit cannot handle without failing.
   src = fetchFromGitHub {
     owner = "gravitational";
     repo = "teleport";
     rev = "v${version}";
-    sha256 = "0rnjw297pkkhpqisrs5ghgvzlklk7kbhrz7rhr91b5rx3lr9c1ny";
+    sha256 = "1ady9nh1mi1lb9a868w6ylncz2r6x7mk33ajiymn2frpcwk9m2l9";
   };
 
   goPackagePath = "github.com/gravitational/teleport";
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index d462a0a1211..3ca91cfd625 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -19,8 +19,6 @@ let
       runHook postUnpack
     '';
 
-    doConfigure = false;
-
     installPhase = ''
       runHook preInstall
 
@@ -54,11 +52,4 @@ in {
     version = "5.11.39";
     sha256 = "0v1gnvdazxa3bcbq8hl6796yw0mxzki2xn4s5im5k5ngmfmnswyj";
   };
-
-  # TODO: update as it is outdated
-  unifiTesting = generic {
-    version = "5.11.18";
-    suffix = "-996baf2ca5";
-    sha256 = "14yyfn39ix8bnn0cb6bn0ly6pqxg81lvy83y40bk0y8vxfg6maqc";
-  };
 }
diff --git a/pkgs/servers/xmpp/pyIRCt/default.nix b/pkgs/servers/xmpp/pyIRCt/default.nix
index f5bdfd9fe85..7db8ec3b604 100644
--- a/pkgs/servers/xmpp/pyIRCt/default.nix
+++ b/pkgs/servers/xmpp/pyIRCt/default.nix
@@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
     xmpppy pythonIRClib
   ];
 
-  /* doConfigure should be removed if not needed */
   # phaseNames = ["deploy" (a.makeManyWrappers "$out/share/${name}/irc.py" a.pythonWrapperArguments)];
 
   installPhase = ''
diff --git a/pkgs/servers/xmpp/pyMAILt/default.nix b/pkgs/servers/xmpp/pyMAILt/default.nix
index 719acfd3a66..0c85f322f48 100644
--- a/pkgs/servers/xmpp/pyMAILt/default.nix
+++ b/pkgs/servers/xmpp/pyMAILt/default.nix
@@ -14,7 +14,6 @@ stdenv.mkDerivation rec {
   pythonPath = [ xmpppy ];
   buildInputs = [ pythonPackages.wrapPython ];
 
-  /* doConfigure should be removed if not needed */
   installPhase = ''
     cd mail-transport
     mkdir -p $out/bin $out/share/${pname}-${version}
diff --git a/pkgs/shells/zsh/zsh-you-should-use/default.nix b/pkgs/shells/zsh/zsh-you-should-use/default.nix
index c44483d3744..39e1cedc7d0 100644
--- a/pkgs/shells/zsh/zsh-you-should-use/default.nix
+++ b/pkgs/shells/zsh/zsh-you-should-use/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-you-should-use";
-  version = "1.1.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "MichaelAquilina";
     repo = pname;
     rev = version;
-    sha256 = "0fig5ralagi5jajk7gdm52jvwql17qk9cd6j98qsndvckb26a753";
+    sha256 = "1n0mcgahx40acqjj617k0rhqpzjqjaa9xfs4b1xrjp3qdy9s0ns0";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/admin/clair/default.nix b/pkgs/tools/admin/clair/default.nix
index a6d8a046907..25c14712094 100644
--- a/pkgs/tools/admin/clair/default.nix
+++ b/pkgs/tools/admin/clair/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "clair";
-  version = "2.0.8";
+  version = "2.0.9";
 
   goPackagePath = "github.com/coreos/clair";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "coreos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gwn533fdz8daz1db7w7g7mhls7d5a4vndn47blkpbx2yxdwdh62";
+    sha256 = "1lcrqka4daqqjagx2mbfzg3z8wxg669mw1lb450nrlc33ji2iwdm";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index b35fe709f95..7c81e861ddb 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -36,8 +36,6 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [ python makeWrapper ];
 
-  doBuild = false;
-
   patches = [
     ./gcloud-path.patch
   ];
diff --git a/pkgs/tools/audio/mp3cat/default.nix b/pkgs/tools/audio/mp3cat/default.nix
index 19f670793ba..acd11bc75e6 100644
--- a/pkgs/tools/audio/mp3cat/default.nix
+++ b/pkgs/tools/audio/mp3cat/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   makeFlags = [
-    "PREFIX=${placeholder ''out''}"
+    "PREFIX=${placeholder "out"}"
   ];
 
   installTargets = [
diff --git a/pkgs/tools/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index b28e50d54b0..60c96ca78ce 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -1,19 +1,21 @@
 { config, stdenv, lib, fetchurl, intltool, pkgconfig, python3Packages, bluez, gtk3
-, obex_data_server, xdg_utils, libnotify, dnsmasq, dhcp
-, hicolor-icon-theme, librsvg, wrapGAppsHook, gobject-introspection
+, obex_data_server, xdg_utils, dnsmasq, dhcp, libappindicator, iproute
+, gnome3, librsvg, wrapGAppsHook, gobject-introspection
+, withNetworkManager ?
+    config.networking.networkmanager.enable or false, networkmanager
 , withPulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio }:
 
 let
   pythonPackages = python3Packages;
-  binPath = lib.makeBinPath [ xdg_utils dnsmasq dhcp ];
+  binPath = lib.makeBinPath [ xdg_utils dnsmasq dhcp iproute ];
 
 in stdenv.mkDerivation rec {
   pname = "blueman";
-  version = "2.0.8";
+  version = "2.1.1";
 
   src = fetchurl {
     url = "https://github.com/blueman-project/blueman/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0kkh6jppqcn3yf70vnny1l015kxrz3dxw4g774gl02lh9ixx1bq4";
+    sha256 = "1hyvc5x97j8b4kvwzh58zzlc454d0h0hk440zbg8f5as9qrv5spi";
   };
 
   nativeBuildInputs = [
@@ -21,19 +23,25 @@ in stdenv.mkDerivation rec {
     pythonPackages.wrapPython wrapGAppsHook
   ];
 
-  buildInputs = [ bluez gtk3 pythonPackages.python libnotify librsvg hicolor-icon-theme ]
+  buildInputs = [ bluez gtk3 pythonPackages.python librsvg
+                  gnome3.adwaita-icon-theme iproute libappindicator ]
                 ++ pythonPath
-                ++ lib.optional withPulseAudio libpulseaudio;
+                ++ lib.optional withPulseAudio libpulseaudio
+                ++ lib.optional withNetworkManager networkmanager;
 
   postPatch = lib.optionalString withPulseAudio ''
     sed -i 's,CDLL(",CDLL("${libpulseaudio.out}/lib/,g' blueman/main/PulseAudioUtils.py
   '';
 
-  pythonPath = with pythonPackages; [ dbus-python pygobject3 pycairo ];
+  pythonPath = with pythonPackages; [ pygobject3 pycairo ];
 
   propagatedUserEnvPkgs = [ obex_data_server ];
 
-  configureFlags = [ (lib.enableFeature withPulseAudio "pulseaudio") ];
+  configureFlags = [
+    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+    "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
+    (lib.enableFeature withPulseAudio "pulseaudio")
+  ];
 
   postFixup = ''
     makeWrapperArgs="--prefix PATH ':' ${binPath}"
diff --git a/pkgs/tools/graphics/wallutils/default.nix b/pkgs/tools/graphics/wallutils/default.nix
index ba1044e3bb4..1b578628caf 100644
--- a/pkgs/tools/graphics/wallutils/default.nix
+++ b/pkgs/tools/graphics/wallutils/default.nix
@@ -1,19 +1,19 @@
 { buildGoModule, fetchFromGitHub, lib
-, wayland, libX11, xbitmaps, libXcursor, libXmu
+, wayland, libX11, xbitmaps, libXcursor, libXmu, libXpm
 }:
 
 buildGoModule rec {
   pname = "wallutils";
-  version = "5.8.1";
+  version = "5.8.2";
 
   src = fetchFromGitHub {
     owner = "xyproto";
     repo = "wallutils";
     rev = version;
-    sha256 = "095pgvk4yp2l6xgl63qp61rr2dij51awndwrs5ha9vpdd1jqgvfi";
+    sha256 = "1ghvcxsy5prj8l38r4lg39imsqbwmvn1zmiv7004j6skmgpaaawh";
   };
 
-  modSha256 = "1kbggry1qrf0nkvysnaky2nl73l5f0bnc4wx0hfr6ifyagfjzy77";
+  modSha256 = "0siw1g3fsk1xjri9k1pb03filax8an5sfza5db52krh80g9xasah";
 
   patches = [ ./lscollection-Add-NixOS-paths-to-DefaultWallpaperDirectories.patch ];
 
@@ -22,7 +22,7 @@ buildGoModule rec {
     sed -iE 's/VersionString = "[0-9].[0-9].[0-9]"/VersionString = "${version}"/' wallutils.go
   '';
 
-  buildInputs = [ wayland libX11 xbitmaps libXcursor libXmu ];
+  buildInputs = [ wayland libX11 xbitmaps libXcursor libXmu libXpm ];
 
   meta = with lib; {
     description = "Utilities for handling monitors, resolutions, and (timed) wallpapers";
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
index 3b8b3489a1d..0a38ccfa3bd 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
@@ -1,5 +1,13 @@
-{ stdenv, fetchurl, intltool, pkgconfig
-, gtk3, ibus, libhangul, python3
+{ stdenv
+, fetchurl
+, substituteAll
+, intltool
+, pkgconfig
+, wrapGAppsHook
+, gtk3
+, ibus
+, libhangul
+, python3
 }:
 
 stdenv.mkDerivation rec {
@@ -11,18 +19,36 @@ stdenv.mkDerivation rec {
     sha256 = "0gha8dfdf54rx8fv3yfikbgdg6lqq6l883lhg7q68ybvkjx9bwbs";
   };
 
-  buildInputs = [ gtk3 ibus libhangul python3 ];
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      libhangul = "${libhangul}/lib/libhangul.so.1";
+    })
+  ];
 
-  nativeBuildInputs = [ intltool pkgconfig python3.pkgs.wrapPython ];
+  nativeBuildInputs = [
+    intltool
+    pkgconfig
+    python3.pkgs.wrapPython
+    wrapGAppsHook
+  ];
 
-  postFixup = "wrapPythonPrograms";
+  buildInputs = [
+    gtk3
+    ibus
+    libhangul
+    (python3.withPackages (pypkgs: with pypkgs; [
+      pygobject3
+      (toPythonModule ibus)
+    ]))
+  ];
 
   meta = with stdenv.lib; {
     isIbusEngine = true;
-    description  = "Ibus Hangul engine";
-    homepage     = https://github.com/choehwanjin/ibus-hangul;
-    license      = licenses.gpl2;
-    platforms    = platforms.linux;
-    maintainers  = with maintainers; [ ericsagnes ];
+    description = "Ibus Hangul engine";
+    homepage = https://github.com/choehwanjin/ibus-hangul;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ ericsagnes ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/fix-paths.patch b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/fix-paths.patch
new file mode 100644
index 00000000000..7487d074d55
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/setup/main.py b/setup/main.py
+index 8d581cd..2ac47b9 100644
+--- a/setup/main.py
++++ b/setup/main.py
+@@ -37,7 +37,7 @@
+ 
+ def get_hangul_keyboard_list():
+     from ctypes import CDLL, c_int, c_char_p
+-    libhangul = CDLL('libhangul.so.1')
++    libhangul = CDLL('@libhangul@')
+     libhangul.hangul_ic_get_n_keyboards.argtypes = []
+     libhangul.hangul_ic_get_n_keyboards.restype = c_int
+     libhangul.hangul_ic_get_keyboard_id.argtypes = [c_int]
diff --git a/pkgs/tools/misc/bat/default.nix b/pkgs/tools/misc/bat/default.nix
index 267b820df07..449be0f017f 100644
--- a/pkgs/tools/misc/bat/default.nix
+++ b/pkgs/tools/misc/bat/default.nix
@@ -4,17 +4,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname   = "bat";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner  = "sharkdp";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "07qxghplqq8km4kp9zas2acw302a77y72x3ix1272kb1zxhw4as6";
+    sha256 = "1cpa8dal4c27pnbmmrar4vqzcl4h0zf8x1zx1dlf0riavdg9n56y";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "0j9wxv21a91yfvbbvgn5ms5zi1aipj1k2g42mfdvvw2vsdzqagxz";
+  cargoSha256 = "0d7h0kn41w6wm4w63vjy2i7r19jkansfvfjn7vgh2gqh5m60kal2";
 
   nativeBuildInputs = [ pkgconfig llvmPackages.libclang zlib ];
 
diff --git a/pkgs/tools/misc/cbmem/default.nix b/pkgs/tools/misc/cbmem/default.nix
deleted file mode 100644
index d2efea1c03a..00000000000
--- a/pkgs/tools/misc/cbmem/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  pname = "cbmem";
-  version = "4.9";
-
-  src = fetchurl {
-    url = "https://coreboot.org/releases/coreboot-${version}.tar.xz";
-    sha256 = "0xkai65d3z9fivwscbkm7ndcw2p9g794xz8fwdv979w77n5qsdij";
-  };
-
-  buildPhase = ''
-    make -C util/cbmem
-  '';
-
-  installPhase = ''
-    install -Dm755 util/cbmem/cbmem $out/bin/cbmem
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Read coreboot timestamps and console logs";
-    homepage = "https://www.coreboot.org";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.petabyteboy ];
-    platforms = platforms.linux;
-  };
-}
-
diff --git a/pkgs/tools/misc/coreboot-utils/default.nix b/pkgs/tools/misc/coreboot-utils/default.nix
new file mode 100644
index 00000000000..3f6988f1f65
--- /dev/null
+++ b/pkgs/tools/misc/coreboot-utils/default.nix
@@ -0,0 +1,104 @@
+{ stdenv, fetchurl, zlib, pciutils, coreutils, acpica-tools, iasl, makeWrapper, gnugrep, gnused, file, buildEnv }:
+
+let
+  version = "4.10";
+
+  meta = with stdenv.lib; {
+    description = "Various coreboot-related tools";
+    homepage = "https://www.coreboot.org";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.petabyteboy ];
+    platforms = platforms.linux;
+  };
+
+  generic = { pname, path ? "util/${pname}", ... }@args: stdenv.mkDerivation (rec {
+    inherit pname version meta;
+
+    src = fetchurl {
+      url = "https://coreboot.org/releases/coreboot-${version}.tar.xz";
+      sha256 = "1jsiz17afi2lqg1jv6lsl8s05w7vr7iwgg86y2qp369hcz6kcwfa";
+    };
+
+    enableParallelBuilding = true;
+
+    postPatch = ''
+      cd ${path}
+    '';
+
+    makeFlags = [
+      "INSTALL=install"
+      "PREFIX=${placeholder "out"}"
+    ];
+  } // args);
+
+  utils = {
+    msrtool = generic {
+      pname = "msrtool";
+      meta.description = "Dump chipset-specific MSR registers";
+      buildInputs = [ pciutils zlib ];
+      preConfigure = "export INSTALL=install";
+    };
+    cbmem = generic {
+      pname = "cbmem";
+      meta.description = "Coreboot console log reader";
+    };
+    ifdtool = generic {
+      pname = "ifdtool";
+      meta.description = "Extract and dump Intel Firmware Descriptor information";
+    };
+    intelmetool = generic {
+      pname = "intelmetool";
+      meta.description = "Dump interesting things about Management Engine";
+      buildInputs = [ pciutils zlib ];
+    };
+    cbfstool = generic {
+      pname = "cbfstool";
+      meta.description = "Management utility for CBFS formatted ROM images";
+    };
+    nvramtool = generic {
+      pname = "nvramtool";
+      meta.description = "Read and write coreboot parameters and display information from the coreboot table in CMOS/NVRAM";
+    };
+    superiotool = generic {
+      pname = "superiotool";
+      meta.description = "User-space utility to detect Super I/O of a mainboard and provide detailed information about the register contents of the Super I/O";
+      buildInputs = [ pciutils zlib ];
+    };
+    ectool = generic {
+      pname = "ectool";
+      meta.description = "Dump the RAM of a laptop's Embedded/Environmental Controller (EC)";
+      meta.platforms = [ "x86_64-linux" "i686-linux" ];
+      preInstall = "mkdir -p $out/sbin";
+    };
+    inteltool = generic {
+      pname = "inteltool";
+      meta.description = "Provides information about Intel CPU/chipset hardware configuration (register contents, MSRs, etc)";
+      buildInputs = [ pciutils zlib ];
+    };
+    amdfwtool = generic {
+      pname = "amdfwtool";
+      meta.description = "Create AMD firmware combination";
+      installPhase = "install -Dm755 amdfwtool $out/bin/amdfwtool";
+    };
+    acpidump-all = generic {
+      pname = "acpidump-all";
+      path = "util/acpi";
+      meta.description = "Walk through all ACPI tables with their addresses";
+      nativeBuildInputs = [ makeWrapper ];
+      dontBuild = true;
+      installPhase = "install -Dm755 acpidump-all $out/bin/acpidump-all";
+      postFixup = let 
+        binPath = [ coreutils  acpica-tools iasl gnugrep  gnused  file ];
+      in "wrapProgram $out/bin/acpidump-all --set PATH ${stdenv.lib.makeBinPath binPath}";
+    };
+  };
+
+in utils // {
+  coreboot-utils = (buildEnv {
+    name = "coreboot-utils-${version}";
+    paths = stdenv.lib.attrValues utils;
+    postBuild = "rm -rf $out/sbin";
+  }) // {
+    inherit meta version;
+  };
+}
diff --git a/pkgs/tools/misc/ifdtool/default.nix b/pkgs/tools/misc/ifdtool/default.nix
deleted file mode 100644
index 7fe4ad86b8e..00000000000
--- a/pkgs/tools/misc/ifdtool/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  pname = "ifdtool";
-  version = "4.9";
-
-  src = fetchurl {
-    url = "https://coreboot.org/releases/coreboot-${version}.tar.xz";
-    sha256 = "0xkai65d3z9fivwscbkm7ndcw2p9g794xz8fwdv979w77n5qsdij";
-  };
-
-  buildPhase = ''
-    make -C util/ifdtool
-    '';
-
-  installPhase = ''
-    install -Dm755 util/ifdtool/ifdtool $out/bin/ifdtool
-    '';
-
-  meta = with stdenv.lib; {
-    description = "Extract and dump Intel Firmware Descriptor information";
-    homepage = https://www.coreboot.org;
-    license = licenses.gpl2;
-    maintainers = [ maintainers.petabyteboy ];
-    platforms = platforms.linux;
-  };
-}
-
diff --git a/pkgs/tools/misc/intelmetool/default.nix b/pkgs/tools/misc/intelmetool/default.nix
deleted file mode 100644
index 87aa7df8d6d..00000000000
--- a/pkgs/tools/misc/intelmetool/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, fetchgit, zlib, pciutils }:
-
-stdenv.mkDerivation rec {
-  pname = "intelmetool";
-  version = "4.8.1";
-
-  src = fetchgit {
-    url = "https://review.coreboot.org/coreboot.git";
-    rev = version;
-    sha256 = "1gjisy9b7vgzjvy1fwaqhq3589yd59kkylv7apjmg5r2b3dv4zvr";
-    fetchSubmodules = false;
-  };
-
-  buildInputs = [ zlib pciutils ];
-
-  buildPhase = ''
-    make -C util/intelmetool
-    '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp util/intelmetool/intelmetool $out/bin
-    '';
-
-  meta = with stdenv.lib; {
-    description = "Dump interesting things about Management Engine";
-    homepage = https://www.coreboot.org/Nvramtool;
-    license = licenses.gpl2;
-    maintainers = [ maintainers.gnidorah ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/misc/most/default.nix b/pkgs/tools/misc/most/default.nix
index 6baaa38f1bb..7adac5ee2ee 100644
--- a/pkgs/tools/misc/most/default.nix
+++ b/pkgs/tools/misc/most/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "doc" ];
 
   makeFlags = [
-    "DOC_DIR=${placeholder ''doc''}/share/doc/most"
+    "DOC_DIR=${placeholder "doc"}/share/doc/most"
   ];
 
   preConfigure = ''
diff --git a/pkgs/tools/misc/nvramtool/default.nix b/pkgs/tools/misc/nvramtool/default.nix
deleted file mode 100644
index ecff547e951..00000000000
--- a/pkgs/tools/misc/nvramtool/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchgit, iasl, flex, bison }:
-
-stdenv.mkDerivation rec {
-  pname = "nvramtool";
-  version = "4.8.1";
-
-  src = fetchgit {
-    url = "http://review.coreboot.org/p/coreboot";
-    rev = "refs/tags/${version}";
-    sha256 = "0nrf840jg4fn38zcnz1r10w2yfpvrk1nvsrnbbgdbgkmpjxz0zw9";
-  };
-
-  nativeBuildInputs = [ flex bison ];
-  buildInputs = [ iasl ];
-
-  buildPhase = ''
-    export LEX=${flex}/bin/flex
-    make -C util/nvramtool
-    '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp util/nvramtool/nvramtool $out/bin
-    '';
-
-  meta = with stdenv.lib; {
-    description = "utility for reading/writing coreboot parameters and displaying information from the coreboot table in CMOS/NVRAM";
-    homepage = https://www.coreboot.org/Nvramtool;
-    license = licenses.gpl2;
-    maintainers = [ maintainers.cryptix ];
-    platforms = platforms.linux;
-  };
-}
-
diff --git a/pkgs/tools/misc/yubikey-manager/default.nix b/pkgs/tools/misc/yubikey-manager/default.nix
index 939191b5c8f..ee555637474 100644
--- a/pkgs/tools/misc/yubikey-manager/default.nix
+++ b/pkgs/tools/misc/yubikey-manager/default.nix
@@ -3,11 +3,11 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "yubikey-manager";
-  version = "2.1.1";
+  version = "3.1.0";
 
   srcs = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "1jmczk6r6609kzbq4ixispkm4qpvw94wdyfps7q3r96x75si1p1s";
+    sha256 = "0nb3qzpggyp61lchvprnklby5mf5n0xpn9z8vlhh99pz1k9sqdq1";
   };
 
   propagatedBuildInputs =
diff --git a/pkgs/tools/networking/gandi-cli/default.nix b/pkgs/tools/networking/gandi-cli/default.nix
index 913cba54ae8..9559c444059 100644
--- a/pkgs/tools/networking/gandi-cli/default.nix
+++ b/pkgs/tools/networking/gandi-cli/default.nix
@@ -21,6 +21,6 @@ buildPythonApplication rec {
     description = "Command-line interface to the public Gandi.net API";
     homepage = https://cli.gandi.net/;
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ ckampka ];
+    maintainers = with maintainers; [ kampka ];
   };
 }
diff --git a/pkgs/tools/networking/modem-manager/default.nix b/pkgs/tools/networking/modem-manager/default.nix
index 6f0732b8cfd..b2644d0c2a4 100644
--- a/pkgs/tools/networking/modem-manager/default.nix
+++ b/pkgs/tools/networking/modem-manager/default.nix
@@ -17,9 +17,9 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-polkit"
-    "--with-udev-base-dir=${placeholder ''out''}/lib/udev"
-    "--with-dbus-sys-dir=${placeholder ''out''}/etc/dbus-1/system.d"
-    "--with-systemdsystemunitdir=${placeholder ''out''}/etc/systemd/system"
+    "--with-udev-base-dir=${placeholder "out"}/lib/udev"
+    "--with-dbus-sys-dir=${placeholder "out"}/etc/dbus-1/system.d"
+    "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
     "--sysconfdir=/etc"
     "--localstatedir=/var"
     "--with-systemd-suspend-resume"
diff --git a/pkgs/tools/networking/ofono/default.nix b/pkgs/tools/networking/ofono/default.nix
index 21d1f9ee067..27f4b9562b3 100644
--- a/pkgs/tools/networking/ofono/default.nix
+++ b/pkgs/tools/networking/ofono/default.nix
@@ -41,8 +41,8 @@ stdenv.mkDerivation rec {
   ];
 
   configureFlags = [
-    "--with-dbusconfdir=${placeholder ''out''}/share"
-    "--with-systemdunitdir=${placeholder ''out''}/lib/systemd/system"
+    "--with-dbusconfdir=${placeholder "out"}/share"
+    "--with-systemdunitdir=${placeholder "out"}/lib/systemd/system"
     "--enable-external-ell"
   ];
 
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index 5cbb207ec4f..b1f3c553bf1 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "090mxkmbfzi3mby18zhrr34fr6vzc7j0r2ss3rjr5lyfgilw1qwr";
+    sha256 = "0hfzk4hpk35j070hhpsjjpxhcrrddi6f1z070iypajcw96qz6lli";
   };
 
   modSha256 = "02nkqmljb528ppsr2dw2r3rc83j3qmys3a8v0a1z2b4sq2sv1v7w";
diff --git a/pkgs/tools/security/sequoia/default.nix b/pkgs/tools/security/sequoia/default.nix
index 5d9ffca6937..5848f7d92af 100644
--- a/pkgs/tools/security/sequoia/default.nix
+++ b/pkgs/tools/security/sequoia/default.nix
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
   ;
 
   makeFlags = [
-    "PREFIX=${placeholder ''out''}"
+    "PREFIX=${placeholder "out"}"
   ];
 
   buildFlags = [
diff --git a/pkgs/tools/text/miller/default.nix b/pkgs/tools/text/miller/default.nix
index 9de7efa3a81..d271490ca1c 100644
--- a/pkgs/tools/text/miller/default.nix
+++ b/pkgs/tools/text/miller/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "miller";
 
-  version = "5.4.0";
+  version = "5.5.0";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
-    rev = "${version}";
-    sha256 = "0158by642frh9x6rrgqxwmk4766wb36kp0rrjg5swdbs9w3is3xg";
+    rev = "v${version}";
+    sha256 = "1zkh87vq0gqcx6z6yzf1rq30jmdgdpp0rx5f0vvl0zcn0hc2smpz";
   };
 
   nativeBuildInputs = [ autoreconfHook flex libtool ];
diff --git a/pkgs/tools/text/shab/default.nix b/pkgs/tools/text/shab/default.nix
index 73323c784fd..02d2d545122 100644
--- a/pkgs/tools/text/shab/default.nix
+++ b/pkgs/tools/text/shab/default.nix
@@ -19,7 +19,6 @@ let
       done
     '';
 
-    doBuild = false;
     doCheck = true;
     doInstallCheck = true;
 
diff --git a/pkgs/tools/typesetting/biber/default.nix b/pkgs/tools/typesetting/biber/default.nix
index 6d26129f2c1..55349641ab6 100644
--- a/pkgs/tools/typesetting/biber/default.nix
+++ b/pkgs/tools/typesetting/biber/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, perlPackages, shortenPerlShebang, texlive }:
+{ stdenv, fetchpatch, perlPackages, shortenPerlShebang, texlive }:
 
 let
   biberSource = stdenv.lib.head (builtins.filter (p: p.tlType == "source") texlive.biber.pkgs);
@@ -10,6 +10,20 @@ perlPackages.buildPerlModule {
 
   src = "${biberSource}/source/bibtex/biber/biblatex-biber.tar.gz";
 
+  patches = stdenv.lib.optionals (stdenv.lib.versionAtLeast perlPackages.perl.version "5.30") [
+    (fetchpatch {
+      name = "biber-fix-tests.patch";
+      url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/biber-fix-tests.patch?h=5d0fffd493550e28b2fb81ad114d62a7c9403812";
+      sha256 = "1ninf46bxf4hm0p5arqbxqyv8r98xdwab34vvp467q1v23kfbhya";
+    })
+
+    (fetchpatch {
+      name = "biber-fix-tests-2.patch";
+      url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/biber-fix-tests-2.patch?h=5d0fffd493550e28b2fb81ad114d62a7c9403812";
+      sha256 = "1l8pk454kkm0szxrv9rv9m2a0llw1jm7ffhgpyg4zfiw246n62x0";
+    })
+  ];
+
   buildInputs = with perlPackages; [
     autovivification BusinessISBN BusinessISMN BusinessISSN ConfigAutoConf
     DataCompare DataDump DateSimple EncodeEUCJPASCII EncodeHanExtra EncodeJIS2K
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a0205c331b8..384fcfa779a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1394,6 +1394,20 @@ in
 
   corebird = callPackage ../applications/networking/corebird { };
 
+  inherit (callPackage ../tools/misc/coreboot-utils { })
+    msrtool
+    cbmem
+    ifdtool
+    intelmetool
+    cbfstool
+    nvramtool
+    superiotool
+    ectool
+    inteltool
+    amdfwtool
+    acpidump-all
+    coreboot-utils;
+
   corosync = callPackage ../servers/corosync { };
 
   cowsay = callPackage ../tools/misc/cowsay { };
@@ -2807,6 +2821,8 @@ in
 
   sonobuoy = callPackage ../applications/networking/cluster/sonobuoy { };
 
+  strawberry = libsForQt5.callPackage ../applications/audio/strawberry { };
+
   tealdeer = callPackage ../tools/misc/tealdeer { };
 
   teamocil = callPackage ../tools/misc/teamocil { };
@@ -4158,7 +4174,7 @@ in
   kalibrate-hackrf = callPackage ../applications/radio/kalibrate-hackrf { };
 
   wrapKakoune = callPackage ../applications/editors/kakoune/wrapper.nix { };
-  kakounePlugins = callPackage ../applications/editors/kakoune/plugins.nix { };
+  kakounePlugins = callPackage ../applications/editors/kakoune/plugins { };
   kakoune-unwrapped = callPackage ../applications/editors/kakoune { };
   kakoune = wrapKakoune kakoune-unwrapped { };
 
@@ -7850,7 +7866,7 @@ in
   psc-package = haskell.lib.justStaticExecutables
     (haskellPackages.callPackage ../development/compilers/purescript/psc-package { });
 
-  "tacacs+" = callPackage ../servers/tacacs+ { };
+  tacacsplus = callPackage ../servers/tacacsplus { };
 
   tamarin-prover =
     (haskellPackages.callPackage ../applications/science/logic/tamarin-prover {
@@ -8968,6 +8984,11 @@ in
 
   ruby = ruby_2_6;
 
+  rubyPackages_2_3 = recurseIntoAttrs ruby_2_3.gems;
+  rubyPackages_2_4 = recurseIntoAttrs ruby_2_4.gems;
+  rubyPackages_2_5 = recurseIntoAttrs ruby_2_5.gems;
+  rubyPackages_2_6 = recurseIntoAttrs ruby_2_6.gems;
+
   mruby = callPackage ../development/compilers/mruby { };
 
   scsh = callPackage ../development/interpreters/scsh { };
@@ -11272,9 +11293,7 @@ in
 
   gumbo = callPackage ../development/libraries/gumbo { };
 
-  gvfs = callPackage ../development/libraries/gvfs {
-    gnome = res.gnome3;
-  };
+  gvfs = callPackage ../development/libraries/gvfs { };
 
   gwenhywfar = callPackage ../development/libraries/aqbanking/gwenhywfar.nix { };
 
@@ -11382,8 +11401,6 @@ in
 
   ilmbase = callPackage ../development/libraries/ilmbase { };
 
-  intelmetool = callPackage ../tools/misc/intelmetool { };
-
   imlib = callPackage ../development/libraries/imlib {
     libpng = libpng12;
   };
@@ -15007,14 +15024,6 @@ in
 
   seabios = callPackage ../applications/virtualization/seabios { };
 
-  cbfstool = callPackage ../applications/virtualization/cbfstool { };
-
-  ifdtool = callPackage ../tools/misc/ifdtool { };
-
-  cbmem = callPackage ../tools/misc/cbmem { };
-
-  nvramtool = callPackage ../tools/misc/nvramtool { };
-
   vmfs-tools = callPackage ../tools/filesystems/vmfs-tools { };
 
   pgbouncer = callPackage ../servers/sql/pgbouncer { };
@@ -15053,6 +15062,7 @@ in
   prom2json = callPackage ../servers/monitoring/prometheus/prom2json.nix { };
   prometheus = prometheus_1;
   prometheus-alertmanager = callPackage ../servers/monitoring/prometheus/alertmanager.nix { };
+  prometheus-aws-s3-exporter = callPackage ../servers/monitoring/prometheus/aws-s3-exporter.nix { };
   prometheus-bind-exporter = callPackage ../servers/monitoring/prometheus/bind-exporter.nix { };
   prometheus-blackbox-exporter = callPackage ../servers/monitoring/prometheus/blackbox-exporter.nix { };
   prometheus-collectd-exporter = callPackage ../servers/monitoring/prometheus/collectd-exporter.nix { };
@@ -15282,8 +15292,7 @@ in
 
   inherit (callPackages ../servers/unifi { })
     unifiLTS
-    unifiStable
-    unifiTesting;
+    unifiStable;
   unifi = unifiStable;
 
   virtlyst = libsForQt5.callPackage ../servers/web-apps/virtlyst { };
@@ -15884,6 +15893,8 @@ in
     nvidia_x11_beta      = nvidiaPackages.beta;
     nvidia_x11           = nvidiaPackages.stable;
 
+    openrazer = callPackage ../os-specific/linux/openrazer/driver.nix { };
+
     ply = callPackage ../os-specific/linux/ply { };
 
     r8168 = callPackage ../os-specific/linux/r8168 { };
@@ -17384,6 +17395,8 @@ in
 
   avocode = callPackage ../applications/graphics/avocode {};
 
+  azpainter = callPackage ../applications/graphics/azpainter { };
+
   cadence =  libsForQt5.callPackage ../applications/audio/cadence { };
 
   milkytracker = callPackage ../applications/audio/milkytracker { };
@@ -19878,6 +19891,8 @@ in
 
   openmpt123 = callPackage ../applications/audio/openmpt123 { };
 
+  openrazer-daemon = with python3Packages; toPythonApplication openrazer-daemon;
+
   opusfile = callPackage ../applications/audio/opusfile { };
 
   opusTools = callPackage ../applications/audio/opus-tools { };
@@ -20376,7 +20391,7 @@ in
 
   sakura = callPackage ../applications/misc/sakura { };
 
-  sayonara = callPackage ../applications/audio/sayonara { };
+  sayonara = libsForQt5.callPackage ../applications/audio/sayonara { };
 
   sbagen = callPackage ../applications/misc/sbagen { };
 
@@ -22655,6 +22670,7 @@ in
 
   gnomeExtensions = recurseIntoAttrs {
     appindicator = callPackage ../desktops/gnome-3/extensions/appindicator { };
+    arc-menu = callPackage ../desktops/gnome-3/extensions/arc-menu { };
     battery-status = callPackage ../desktops/gnome-3/extensions/battery-status { };
     caffeine = callPackage ../desktops/gnome-3/extensions/caffeine { };
     clipboard-indicator = callPackage ../desktops/gnome-3/extensions/clipboard-indicator { };
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 9dbc36e8601..37203614744 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -553,6 +553,10 @@ let
 
     ocplib-json-typed = callPackage ../development/ocaml-modules/ocplib-json-typed { };
 
+    ocplib-json-typed-browser = callPackage ../development/ocaml-modules/ocplib-json-typed/browser.nix { };
+
+    ocplib-json-typed-bson = callPackage ../development/ocaml-modules/ocplib-json-typed/bson.nix { };
+
     ocplib-simplex = callPackage ../development/ocaml-modules/ocplib-simplex { };
 
     ocsigen_server = callPackage ../development/ocaml-modules/ocsigen-server { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 5565162328c..f3b11e9a9ab 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2588,6 +2588,9 @@ in {
 
   odfpy = callPackage ../development/python-modules/odfpy { };
 
+  openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
+  openrazer-daemon = callPackage ../development/python-modules/openrazer/daemon.nix { };
+
   oset = callPackage ../development/python-modules/oset { };
 
   pamela = callPackage ../development/python-modules/pamela { };
@@ -4574,6 +4577,8 @@ in {
 
   python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
 
+  python-pipedrive = callPackage ../development/python-modules/python-pipedrive { };
+
   python-ptrace = callPackage ../development/python-modules/python-ptrace { };
 
   python-wifi = callPackage ../development/python-modules/python-wifi { };
diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix
new file mode 100644
index 00000000000..ed2321887a7
--- /dev/null
+++ b/pkgs/top-level/ruby-packages.nix
@@ -0,0 +1,2666 @@
+{
+  actionmailer = {
+    dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18wwlj4f7jffv3vxm80d2z36nwza95l5xfcqc401hvvrls4xzhsy";
+      type = "gem";
+    };
+    version = "4.2.11.1";
+  };
+  actionpack = {
+    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rmldsk3a4lwxk0lrp6x1nz1v1r2xmbm3300l4ghgfygv3grdwjh";
+      type = "gem";
+    };
+    version = "4.2.11.1";
+  };
+  actionview = {
+    dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x7vjn8q6blzyf7j3kwg0ciy7vnfh28bjdkd1mp9k4ghp9jn0g9p";
+      type = "gem";
+    };
+    version = "4.2.11.1";
+  };
+  activejob = {
+    dependencies = ["activesupport" "globalid"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jy1c1r6syjqpa0sh9f1p4iaxzvp6qg4n6zs774j9z27q7h407mj";
+      type = "gem";
+    };
+    version = "4.2.11.1";
+  };
+  activemodel = {
+    dependencies = ["activesupport" "builder"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c1x0rd6wnk1f0gsmxs6x3gx7yf6fs9qqkdv7r4hlbcdd849in33";
+      type = "gem";
+    };
+    version = "4.2.11.1";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport" "arel"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07ixiwi0zzs9skqarvpfamsnay7npfswymrn28ngxaf8hi279q5p";
+      type = "gem";
+    };
+    version = "4.2.11.1";
+  };
+  activesupport = {
+    dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6";
+      type = "gem";
+    };
+    version = "4.2.11.1";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  arel = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nfcrdiys6q6ylxiblky9jyssrw2xj96fmxmal7f4f0jj3417vj4";
+      type = "gem";
+    };
+    version = "6.0.4";
+  };
+  ast = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  atk = {
+    dependencies = ["glib2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0saginz71qy4k1hz3sffrjd6zcw54jsm61f7jks02fxys31ir865";
+      type = "gem";
+    };
+    version = "3.3.7";
+  };
+  atomos = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17vq6sjyswr5jfzwdccw748kgph6bdw30bakwnn6p8sl4hpv4hvx";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  awesome_print = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  bacon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f06gdj77bmwzc1k5iragl1595hbn67yc7sqvs56ca8plrr2vmai";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  builder = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+      type = "gem";
+    };
+    version = "3.2.3";
+  };
+  byebug = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mmkls9n56l4gx2k0dnyianwz36z2zgpxli5bpsbr7jbw7hn2x6j";
+      type = "gem";
+    };
+    version = "11.0.1";
+  };
+  cairo = {
+    dependencies = ["native-package-installer" "pkg-config"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yvv2lcbsybzbw1nrmfivmln23da4rndrs3av6ymjh0x3ww5h7p8";
+      type = "gem";
+    };
+    version = "1.16.4";
+  };
+  cairo-gobject = {
+    dependencies = ["cairo" "glib2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1380dvd5dbnhlvagb9z9cr62kh1knza7bcgr9msqshj55iqk4p0k";
+      type = "gem";
+    };
+    version = "3.3.7";
+  };
+  camping = {
+    dependencies = ["mab" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q2a5x97pgnld0b8yziblp9fqkjyib4gfwv9gcyynyhswqwsldpf";
+      type = "gem";
+    };
+    version = "2.1.532";
+  };
+  CFPropertyList = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fr8sdzs2q1969zqh790w223hjidlwx4hfm4c91gj0va5j5pv3n8";
+      type = "gem";
+    };
+    version = "3.0.1";
+  };
+  charlock_holmes = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  claide = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  clamp = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dka8f3hwzz7p558kiyyrdabljvwp71cbzk46akb3kvnvhcyjx89";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  cld3 = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06p4jgrr0zixqnflmg5dcrbmhlnmll85j7vxkrjmnng293cwvzgw";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
+  cocoapods = {
+    dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02gnm6l7f3pxmy7bqns0dhxmanlqp01hkpvng5cxryww17zrq2qz";
+      type = "gem";
+    };
+    version = "1.7.5";
+  };
+  cocoapods-acknowledgements = {
+    dependencies = ["activesupport" "redcarpet"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07n638ijlc4y5vfzs5ykzhmwwsng7njb2nnwn4ravydqqxqgv13m";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  cocoapods-art = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gp7rib26diw4n5gs4dcb8sy0dga9xmdw0i2nwdqn1qm3qp7kbg5";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  cocoapods-bin = {
+    dependencies = ["cocoapods" "cocoapods-generate" "parallel"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03x5grabb8nyky0nq1h78vmlka66pkgdif0f6i6nhjfy96gpil87";
+      type = "gem";
+    };
+    version = "0.1.18";
+  };
+  cocoapods-browser = {
+    dependencies = ["cocoapods"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mq9mcw3xnf2nqkmcjg874sx422dbmfa99vhw31c9jb0cd4j3m9p";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  cocoapods-bugsnag = {
+    dependencies = ["cocoapods"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r34h66rqswsyhanx69qnhhr02xsqy2y1zp5265gl6m76nyqq5wa";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
+  cocoapods-check = {
+    dependencies = ["cocoapods"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17wb5xzhjvrqllsjqqbm00w8gnsrwcb6k7wsb36ykbcp0aiagvaf";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  cocoapods-clean = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16zy8xl94clblxivlcrw2jf3dnvmwlr6jni6kz74rnc8wj42sf1w";
+      type = "gem";
+    };
+    version = "0.0.1";
+  };
+  cocoapods-clean_build_phases_scripts = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b91sfsriizsr08m1vn9j4sf9sb8vgsyr6xjnw18bpy66bpwsqca";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  cocoapods-core = {
+    dependencies = ["activesupport" "fuzzy_match" "nap"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i53x5lhlvyirls2ch45x9wsrfqk7s3zp85lbnwps9abimxj4nh4";
+      type = "gem";
+    };
+    version = "1.7.5";
+  };
+  cocoapods-coverage = {
+    dependencies = ["cocoapods-testing" "slather"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04bzk1x67pqrmnmz3pdw107j5p9ncwfm7gdv8n4bk4r9nqxdv3wn";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  cocoapods-deintegrate = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bf524f1za92i6rlr4cr6jm3c4vfjszsdc9lsr6wk5125c76ipzn";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  cocoapods-dependencies = {
+    dependencies = ["ruby-graphviz"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10ssv98af44698kp4w0wfdrc7x3ccf2w9dhcva6i7hwlffjvcsz3";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  cocoapods-deploy = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qnhl54z0dqyn0sk7rgn3vwmfax0yr3sk2r464h888d2qjxz6v7j";
+      type = "gem";
+    };
+    version = "0.0.12";
+  };
+  cocoapods-disable-podfile-validations = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fxrq0b1x5gr2gr9md6mkwgaj8519gf1sbyqs88yqphbigf5iy75";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  cocoapods-downloader = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09fd4zaqkz8vz3djplacngcs4n0j6j956wgq43s1y6bwl0zyjmd3";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  cocoapods-expert-difficulty = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19shjj4kj9rqg1a3pax568q0w9rkq8jcba2mycvq0szbv7bw6pgl";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  cocoapods-fix-react-native = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01aqxp4d5v8fjbg9f7a61h1b4fnmrqwhrng28ybd80p2z44s186a";
+      type = "gem";
+    };
+    version = "2019.03.19.11";
+  };
+  cocoapods-generate = {
+    dependencies = ["cocoapods-disable-podfile-validations"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hlczv5x4qz60daqb93cis2l5ps86cvx74rrl6qwggwz2hm76adr";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  cocoapods-git_url_rewriter = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cmyrj92d781pkq1b6qbvpmxvfx8k3l36cdqsi46w55icjm1jqbw";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  cocoapods-keys = {
+    dependencies = ["dotenv" "osx_keychain"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14jmfibzvhqxhvhphj3g83d70ya16p7s4i43wir48hnaxkaqrm85";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  cocoapods-no-dev-schemes = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14w8yqs3r6pg06zpv58mc9vzfxhp3ka4mfhnc2p7vmyhy4nmcdza";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  cocoapods-open = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z9x1cqrz4zc6yd08clawi8gg7ip8vbhkh9lkrdkzw7i6lqyrp0j";
+      type = "gem";
+    };
+    version = "0.0.8";
+  };
+  cocoapods-packager = {
+    dependencies = ["cocoapods"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1083zv9pyqyqal6dk3kvfxdmylbll6078z5zw03m4j5jcz3m8nbm";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  cocoapods-packager-pro = {
+    dependencies = ["cocoapods"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sjnlnqrc3fvc33c3lg3h6y8n969isjswxg2jdc1kfc3x0cakawl";
+      type = "gem";
+    };
+    version = "1.5.4";
+  };
+  cocoapods-playgrounds = {
+    dependencies = ["cocoapods"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jsc489j6dh3mczzs880vc6jvzd8yjqrszmbbnkz9azndak3mhln";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  cocoapods-plugins = {
+    dependencies = ["nap"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16na82sfyc8801qs1n22nwq486s4j7yj6rj7fcp8cbxmj371fpbj";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  cocoapods-prune-localizations = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hvpl56rnblmdbj40sysvk56j5hx5kdpqry00raw2p184sb5k4cf";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  cocoapods-rome = {
+    dependencies = ["cocoapods" "fourflusher"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z5z49m5aww7q301bn5dzb6fzq6lcj6fvqibpg5ys1r0c41lsj0l";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  cocoapods-search = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02wmy5rbjk29c65zn62bffxv30qs11slql23qx65snkm0vd93mn6";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  cocoapods-sorted-search = {
+    dependencies = ["cocoapods" "hashie" "osx_keychain" "ruby-progressbar" "typhoeus"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1da86mjq4spfsx6xjk7qylvj5423ai9y39g9xxfl9r6h8i54dmpp";
+      type = "gem";
+    };
+    version = "0.2.4";
+  };
+  cocoapods-static-swift-framework = {
+    dependencies = ["cocoapods"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12hhh25bj5dyz6rwc5jgarlld35vmgn43qk5lq9kfrpcli2ynhp2";
+      type = "gem";
+    };
+    version = "0.5";
+  };
+  cocoapods-stats = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xhdh5v94p6l612rwrk290nd2hdfx8lbaqfbkmj34md218kilqww";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  cocoapods-tdfire-binary = {
+    dependencies = ["cocoapods" "cocoapods-bin" "cocoapods-packager-pro"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10idp7yr2zni6zhpj1pqkj4wkk5g48f5iizjb20i8minj52l64m0";
+      type = "gem";
+    };
+    version = "2.0.9";
+  };
+  cocoapods-testing = {
+    dependencies = ["xctasks"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f7w4gxr45m42ca6fpbq38jfzii00xysz12vcc68myvi8x0krr5l";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  cocoapods-trunk = {
+    dependencies = ["nap" "netrc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m0p27aij7d0n0b8h7nvyv3q3prcpwisbj7sla0fp2hvn4lqarl5";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  cocoapods-try = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gf2zjmcjhh9psq15yfy82wz5jnlihf5bcw79f8hlv4cnqyspncj";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  cocoapods-try-release-fix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a7hbc5j0p507cyd9a0rd2mf2d525ia3gcnx7bdspxqnhl0a43bf";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  cocoapods-update-if-you-dare = {
+    dependencies = ["colored2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nqvywrbfxiagip2vl9kj71h39g4idq1lshkxl5bqh1hq57g4k9q";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  cocoapods-whitelist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ln4kywj4bx32qyqvr0byi3g4fk8yj026n00xch782x0147f8lka";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
+  cocoapods-wholemodule = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03gr4r0aa9mrj8i27dd6l87jzq78sid3jbywmkazg3yrq6y38i21";
+      type = "gem";
+    };
+    version = "0.0.1";
+  };
+  coderay = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  colorator = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  colored2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  crass = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  curb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s27g4nkdf8wipzyxx87nnw43ps8xqg30sqz86ay7dvmmpkd786k";
+      type = "gem";
+    };
+    version = "0.9.10";
+  };
+  curses = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nkh62n5jbkfka8s5sgvhzzpsjkgsr9d3g7b8grhvy92yigkrr7z";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  daemons = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l5gai3vd4g7aqff0k1mp41j9zcsvm2rbwmqn115a325k9r7pf4w";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  data_objects = {
+    dependencies = ["addressable"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19fw1ckqc5f1wc4r72qrymy2k6cmd8azbxpn61ksbsjqhzc2bgqd";
+      type = "gem";
+    };
+    version = "0.10.17";
+  };
+  dep-selector-libgecode = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nff0nai8h8786xix92f3k5wjb51gqd9gkibmah2bvrcwyn9qiw5";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  diff-lcs = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      type = "gem";
+    };
+    version = "1.3";
+  };
+  digest-sha3 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "135a8r9nq10wlzbjm74dflls67y9iiwp04aj1089ablbmvbiiq41";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  do_sqlite3 = {
+    dependencies = ["data_objects"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gxz54qjgwg6a2mkqpai28m0i5swbyxpr4qmh9x1nwf20lysrgcf";
+      type = "gem";
+    };
+    version = "0.10.17";
+  };
+  docile = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  domain_name = {
+    dependencies = ["unf"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+      type = "gem";
+    };
+    version = "0.5.20190701";
+  };
+  dotenv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17hkd62ig9b0czv192kqdfq7gw0a8hgq07yclri6myc8y5lmfin5";
+      type = "gem";
+    };
+    version = "2.7.5";
+  };
+  em-websocket = {
+    dependencies = ["eventmachine" "http_parser.rb"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  erubis = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  escape = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sa1xkfc9jvkwyw1jbz3jhkq0ms1zrvswi6mmfiwcisg5fp497z4";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  ethon = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
+      type = "gem";
+    };
+    version = "0.12.0";
+  };
+  eventmachine = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05qmrx7l8abpbvp0z01fdpc731c4k6akk67l424vdp5dywhachpr";
+      type = "gem";
+    };
+    version = "0.66.0";
+  };
+  faraday = {
+    dependencies = ["multipart-post"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0";
+      type = "gem";
+    };
+    version = "0.15.4";
+  };
+  ffi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  ffi-compiler = {
+    dependencies = ["ffi" "rake"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  ffi-rzmq-core = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0amkbvljpjfnv0jpdmz71p1i3mqbhyrnhamjn566w0c01xd64hb5";
+      type = "gem";
+    };
+    version = "1.0.7";
+  };
+  fog-core = {
+    dependencies = ["builder" "excon" "formatador" "mime-types"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fsama04wlxhv537bm4b7rr4zzn0mvisy87m3qzv6f0mhlrq3zp8";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  fog-dnsimple = {
+    dependencies = ["fog-core" "fog-json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lbzkc0w96a62ahjw0b7mfbqgg9x2jp7khg5hvpbgw0kfs5xza63";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  fog-json = {
+    dependencies = ["fog-core" "multi_json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  formatador = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+      type = "gem";
+    };
+    version = "0.2.5";
+  };
+  forwardable-extended = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  fourflusher = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1afabh3g3gwj0ad53fs62waks815xcckf7pkci76l6vrghffcg8v";
+      type = "gem";
+    };
+    version = "2.3.1";
+  };
+  fuzzy_match = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19gw1ifsgfrv7xdi6n61658vffgm1867f4xdqfswb2b5h6alzpmm";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  gdk_pixbuf2 = {
+    dependencies = ["gio2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bvw0xlq0nrvzv559d3kbihc8m3iv3q70cs6xan0n6dywxayizbf";
+      type = "gem";
+    };
+    version = "3.3.7";
+  };
+  gh_inspector = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f8r9byajj3bi2c7c5sqrc7m0zrv3nblfcd4782lw5l73cbsgk04";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  gio2 = {
+    dependencies = ["gobject-introspection"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cv617ad4bhd3qhi5m0638v0mf9kw32g7r89c754xsmmas921igc";
+      type = "gem";
+    };
+    version = "3.3.7";
+  };
+  gitlab-markup = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rqf3jmyn78r3ysy3bjyx7s4yv3xipxlmqlmbyrbksna19rrx08d";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  glib2 = {
+    dependencies = ["native-package-installer" "pkg-config"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08cqwk8valxv4bls891f3ciqa258vbsfgqd3mymf62qdld8m9y3z";
+      type = "gem";
+    };
+    version = "3.3.7";
+  };
+  globalid = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  gobject-introspection = {
+    dependencies = ["glib2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14kcf8079wmimzy78yysizsl44d6iaw2pp5xj70vdxg342r4a6k5";
+      type = "gem";
+    };
+    version = "3.3.7";
+  };
+  gpgme = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12fqirxr964mc8jwsfl5nif6q4wcckrmj7w4c9ci4xg9xy2b9v6m";
+      type = "gem";
+    };
+    version = "2.0.18";
+  };
+  gtk2 = {
+    dependencies = ["atk" "gdk_pixbuf2" "pango"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hgb555j5pimy8pjpf20pzbmhpr1wx59phlwbwsq37zjv89wirva";
+      type = "gem";
+    };
+    version = "3.3.7";
+  };
+  hashie = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13bdzfp25c8k51ayzxqkbzag3wj5gc1jd8h7d985nsq6pn57g5xh";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  highline = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g0zpalfj8wvca86hcnirir5py2zyqrhkgdgv9f87fxkjaw815wr";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  hike = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hbhmchyhm1xf632cczmyg3fsbn7zly988q3fjpi8l3nb4cn40xj";
+      type = "gem";
+    };
+    version = "2.1.3";
+  };
+  hitimes = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w2lkanmw9was9v6b90vhi23rigdq9nc1brrsdvxczxd3c39b36x";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  hpricot = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jn8x9ch79gqmnzgyz78kppavjh5lqx0y0r6frykga2b86rz9s6z";
+      type = "gem";
+    };
+    version = "0.8.6";
+  };
+  http-accept = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09m1facypsdjynfwrcv19xcb1mqg8z6kk31g8r33pfxzh838c9n6";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  http-cookie = {
+    dependencies = ["domain_name"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  "http_parser.rb" = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  httpclient = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+      type = "gem";
+    };
+    version = "2.8.3";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+      type = "gem";
+    };
+    version = "0.9.5";
+  };
+  iconv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00fppiz9ypy7xpc08xdk6glq842rbc69c7a1p0kmv195271i4yqv";
+      type = "gem";
+    };
+    version = "1.0.8";
+  };
+  idn-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07vblcyk3g72sbq12xz7xj28snpxnh3sbcnxy8bglqbfqqhvmawr";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  jaro_winkler = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1930v0chc1q4fr7hn0y1j34mw0v032a8kh0by4d4sbz8ksy056kf";
+      type = "gem";
+    };
+    version = "1.5.3";
+  };
+  jbuilder = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03adzsc2hfd0lvprm45s52bkxpnpnw8r9prcx8zx1aw2a8lzp9r7";
+      type = "gem";
+    };
+    version = "2.9.1";
+  };
+  jekyll = {
+    dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fpckw5nf4hfr5vhhdlmaxxp5lkdmc1vyqnmijwvy9fmjn4c87aa";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  jekyll-sass-converter = {
+    dependencies = ["sassc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fbc25p8vqyzmg8wpmgacqjkk3jhrr6kz9y45m43ygck74h2cad2";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  jekyll-watch = {
+    dependencies = ["listen"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qd7hy1kl87fl7l0frw5qbn22x7ayfzlv9a5ca1m59g0ym1ysi5w";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  jmespath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  jwt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01zg1vp3lyl3flyjdkrcc93ghf833qgfgh2p1biqfhkzz11r129c";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  kramdown = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dl840bvx8d9nq6lg3mxqyvbiqnr6lk3jfsm6r8zhz7p5srmd688";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  kramdown-parser-gfm = {
+    dependencies = ["kramdown"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  libv8 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0271i5sfma05gvhmrmxqb0jj667bl6m54yd49ay6yrdbh1g4wpl1";
+      type = "gem";
+    };
+    version = "3.16.14.19";
+  };
+  libxml-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r7m7zipkpam8ns4ys4qyh7yj3is3dy7ky6qwnw557pvpgx0aqrd";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  liquid = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zhg5ha8zy8zw9qr3fl4wgk4r5940n4128xm2pn4shpbzdbsj5by";
+      type = "gem";
+    };
+    version = "4.0.3";
+  };
+  listen = {
+    dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
+      type = "gem";
+    };
+    version = "3.1.5";
+  };
+  loofah = {
+    dependencies = ["crass" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  mab = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0manxbilpx0hdi19lhdsr4ncvbzgmwh279b64j8w60dg0p0i4b4j";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  magic = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18vkdq2748wxg0kr923fbhx92wikh2dwv2hp8xind57qs7gn26pr";
+      type = "gem";
+    };
+    version = "0.2.9";
+  };
+  mail = {
+    dependencies = ["mini_mime"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  markaby = {
+    dependencies = ["builder"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j4jc31ycydbkh5h3q6zwidzpavg3g5mbb5lqyaczd3jrq78rd7i";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  mercenary = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  method_source = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+      type = "gem";
+    };
+    version = "0.9.2";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  mime-types-data = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m00pg19cm47n1qlcxgl91ajh2yq0fszvn1vy8fy0s1jkrp9fw4a";
+      type = "gem";
+    };
+    version = "3.2019.0331";
+  };
+  mini_magick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qy09qrd5bwh8mkbj514n5vcw9ni73218h9s3zmvbpmdwrnzi8j4";
+      type = "gem";
+    };
+    version = "4.9.5";
+  };
+  mini_mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  minitest = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+      type = "gem";
+    };
+    version = "5.11.3";
+  };
+  molinillo = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hh40z1adl4lw16dj4hxgabx4rr28mgqycih1y1d91bwww0jjdg6";
+      type = "gem";
+    };
+    version = "0.6.6";
+  };
+  msgpack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qr2mkm2i3m76zarvy7qgjl9596hmvjrg7x6w42vx8cfsbf5p0y1";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  multipart-post = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  mysql2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a2kdjgzwh1p2rkcmxaawy6ibi32b04wbdd5d4wr8i342pq76di4";
+      type = "gem";
+    };
+    version = "0.5.2";
+  };
+  nanaimo = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ajfyaqjw3dzykk612yw8sm21savfqy292hgps8h8l4lvxww1lz6";
+      type = "gem";
+    };
+    version = "0.2.6";
+  };
+  nap = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xm5xssxk5s03wjarpipfm39qmgxsalb46v1prsis14x1xk935ll";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  native-package-installer = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03qrzhk807f98bdwy6c37acksyb5fnairdz4jpl7y3fifh7k7yfn";
+      type = "gem";
+    };
+    version = "1.0.7";
+  };
+  ncursesw = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nc14wls1yiigz593vw7580hb99lf4n485axapiz6sqpg1jnlhcr";
+      type = "gem";
+    };
+    version = "1.4.10";
+  };
+  net-scp = {
+    dependencies = ["net-ssh"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nkf3my587f0izqw0dl3zl24c3lnrw9y5xrq9vb0lhgymmgcav9g";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  net-ssh = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "101wd2px9lady54aqmkibvy4j62zk32w0rjz4vnigyg974fsga40";
+      type = "gem";
+    };
+    version = "5.2.0";
+  };
+  netrc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  nio4r = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bi1r1xvlxpkghvmk1js88djlw7vi4ky6ildk8akn73hkf5phd2j";
+      type = "gem";
+    };
+    version = "2.5.1";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv";
+      type = "gem";
+    };
+    version = "1.10.4";
+  };
+  opus-ruby = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lyf2a8f1w1jk0qrl8h0gsydfalbh19g5k2c6xlq8j1sfzb0ij4d";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  osx_keychain = {
+    dependencies = ["RubyInline"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10hr3lihq7s5fv18dp0g4mfncvapkcwcd6xnn5483ximyd7rhfx0";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  ovirt-engine-sdk = {
+    dependencies = ["json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09lb0a9y4q7946jaf53li1v4cb6ksfb5bq5wb15yn8ja6wf9n427";
+      type = "gem";
+    };
+    version = "4.3.0";
+  };
+  pango = {
+    dependencies = ["cairo-gobject" "gobject-introspection"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03jdjphc5vk9a9rgvkfhz78dfyxi67a20c12h6pcd22r5xq8hzj0";
+      type = "gem";
+    };
+    version = "3.3.7";
+  };
+  parallel = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x1gzgjrdlkm1aw0hfpyphsxcx90qgs3y4gmp9km3dvf4hc4qm8r";
+      type = "gem";
+    };
+    version = "1.17.0";
+  };
+  parser = {
+    dependencies = ["ast"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s1plz33jjd0wm0vlspl5hg1rcg772zm5ibbix9binpd03jrbb8c";
+      type = "gem";
+    };
+    version = "2.6.4.0";
+  };
+  pathutil = {
+    dependencies = ["forwardable-extended"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4";
+      type = "gem";
+    };
+    version = "0.16.2";
+  };
+  patron = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0523gddx88zql2mq6655k60gy2ac8vybpzkcf90lmd9nx7wl3fi9";
+      type = "gem";
+    };
+    version = "0.13.3";
+  };
+  pcaprub = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h4iarqdych6v4jm5s0ywkc01qspadz8sf6qn7pkqmszq4iqv67q";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  pg = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
+      type = "gem";
+    };
+    version = "1.1.4";
+  };
+  pkg-config = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mvs1hs8ry3s4fh8sd94zhpn2pdasdqwpf5nylgxnp8x3xa2dmnd";
+      type = "gem";
+    };
+    version = "1.3.8";
+  };
+  polyglot = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
+  pry = {
+    dependencies = ["coderay" "method_source"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1aqz4gz8z44k6svpvcsfrqbigcpjd2kwvfm77yq3v8yzkhjrx0zi";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  pry-doc = {
+    dependencies = ["pry" "yard"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14lwb5dxfibcqbjygzvnf8ry0mayx48fk20qhg06214sll0sp0kv";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
+      type = "gem";
+    };
+    version = "4.0.1";
+  };
+  puma = {
+    dependencies = ["nio4r"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d8hnqdr2acrlw5rp1wlyz1lwarfc6my5h9m5a7b3259zc4y9f5q";
+      type = "gem";
+    };
+    version = "4.1.0";
+  };
+  rack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g9926ln2lw12lfxm4ylq1h6nl0rafl10za3xvjzc87qvnqic87f";
+      type = "gem";
+    };
+    version = "1.6.11";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0my0wlw4a5l3hs79jkx2xzv7djhajgf8d28k8ai1ddlnxxb0v7ss";
+      type = "gem";
+    };
+    version = "1.5.5";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z";
+      type = "gem";
+    };
+    version = "0.6.3";
+  };
+  rails = {
+    dependencies = ["actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ywvis59dd3v8qapi9ix6743zgk07l21x1cd6nb1ddpahxhm7dml";
+      type = "gem";
+    };
+    version = "4.2.11.1";
+  };
+  rails-deprecated_sanitizer = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  rails-dom-testing = {
+    dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wssfqpn00byhvp2372p99mphkcj8qx6pf6646avwr9ifvq0q1x6";
+      type = "gem";
+    };
+    version = "1.0.9";
+  };
+  rails-html-sanitizer = {
+    dependencies = ["loofah"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ilwxzm3a7bql5c9q2n9g9nb1hax7vd8d65a5yp3d967ld97nvrq";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  railties = {
+    dependencies = ["actionpack" "activesupport" "rake" "thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bjf21z9maiiazc1if56nnh9xmgbkcqlpznv34f40a1hsvgk1d1m";
+      type = "gem";
+    };
+    version = "4.2.11.1";
+  };
+  rainbow = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jcabbgnjc788chx31sihc5pgbqnlc1c75wakmqlbjdm8jns2m9b";
+      type = "gem";
+    };
+    version = "10.5.0";
+  };
+  rb-fsevent = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+      type = "gem";
+    };
+    version = "0.10.3";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fs7hxm9g6ywv2yih83b879klhc4fs8i0p9166z795qmd77dk0a4";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  rb-readline = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14w79a121czmvk1s953qfzww30mqjb2zc0k9qhi0ivxxk3hxg6wy";
+      type = "gem";
+    };
+    version = "0.5.5";
+  };
+  rbnacl = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s559dxhwmd42n5va4m7h3v04s57a3nm8ff7p5g7hz030kiswyrc";
+      type = "gem";
+    };
+    version = "7.0.0";
+  };
+  re2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  redcarpet = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k";
+      type = "gem";
+    };
+    version = "3.5.0";
+  };
+  redis = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mymdx7s5sr4mablklaipz679ckczsiigswm1g2v5mc93yj5amw3";
+      type = "gem";
+    };
+    version = "4.1.2";
+  };
+  redis-rack = {
+    dependencies = ["rack" "redis-store"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03xgdmq4fh187aqlh8z05idbxrmgddcarlb8x1kw4wjfcsf5afqi";
+      type = "gem";
+    };
+    version = "2.0.5";
+  };
+  redis-store = {
+    dependencies = ["redis"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mrcnjgkbmx1zf569mly82agdizqayjvnp2k6055k1iy07in3j8b";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  ref = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04p4pq4sikly7pvn30dc7v5x2m7fqbfwijci4z1y6a1ilwxzrjii";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  rest-client = {
+    dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  rmagick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06ya2zpz2g3g4c90bmd1z11qkajls3srq5b7cswrjq8ima568ja0";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  rouge = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07j29vbgsi9v7kpx4lqpmh0hx59i420jig73dy46wx3id1i7vdqz";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rpam2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zvli3s4z1hf2l7gyfickm5i3afjrnycc3ihbiax6ji6arpbyf33";
+      type = "gem";
+    };
+    version = "4.0.2";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15ppasvb9qrscwlyjz67ppw1lnxiqnkzx5vkx1bd8x5n3dhikxc3";
+      type = "gem";
+    };
+    version = "3.8.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0spjgmd3yx6q28q950r32bi0cs8h2si53zn6rq8s7n1i4zp4zwbf";
+      type = "gem";
+    };
+    version = "3.8.2";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x3iddjjaramqb0yb51c79p2qajgi9wb5b59bzv25czddigyk49r";
+      type = "gem";
+    };
+    version = "3.8.4";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12zplnsv4p6wvvxsk8xn6nm87a5qadxlkk497zlxfczd0jfawrni";
+      type = "gem";
+    };
+    version = "3.8.1";
+  };
+  rspec-support = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "139mbhfdr10flm2ffryvxkyqgqs1gjdclc1xhyh7i7njfqayxk7g";
+      type = "gem";
+    };
+    version = "3.8.2";
+  };
+  rubocop = {
+    dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wpyass9qb2wvq8zsc7wdzix5xy2ldiv66wnx8mwwprz2dcvzayk";
+      type = "gem";
+    };
+    version = "0.74.0";
+  };
+  rubocop-performance = {
+    dependencies = ["rubocop"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ssizdnyai2hxdp6nd4b9hqyrc4gwhjlznhrdliz8wj4p8cvas44";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  ruby-graphviz = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jzbs0jhaz77azsc30gsfg89fy44vsr565jcj4axhc65n1fmhs90";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  ruby-libvirt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d754d6pgdqyq52pl9hp0x38q1vn3vf9nz4nm5gqdj5i4fw7pba6";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  ruby-lxc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08pnghqp15fwylq6w2qh7x1ikkiq87irpy0z03n0gma4gdzzx2qa";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  ruby-macho = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lhdjn91jkifsy2hzq2hgcm0pp8pbik87m58zmw1ifh6hkp9adjb";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  ruby-progressbar = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      type = "gem";
+    };
+    version = "1.10.1";
+  };
+  ruby-terminfo = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rl4ic5pzvrpgd42z0c1s2n3j39c9znksblxxvmhkzrc0ckyg2cm";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  ruby-vips = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12sd0ci3zayrzv1xd5qwa3p9z06ga4xzigpqyk3w52x5acngkld3";
+      type = "gem";
+    };
+    version = "2.0.14";
+  };
+  ruby_dep = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  RubyInline = {
+    dependencies = ["ZenTest"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q0384afhxcbm6yz74hzk0ypzf1ahgg1w94pnkhmag9dq0abqnr0";
+      type = "gem";
+    };
+    version = "3.12.4";
+  };
+  rubyzip = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w9gw28ly3zyqydnm8phxchf4ymyjl2r7zf7c12z8kla10cpmhlc";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  rugged = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03w3k7j27kgzpcc3halkd3w0b677sny2lfwm2lwn2n1ac20dzjc6";
+      type = "gem";
+    };
+    version = "0.28.3.1";
+  };
+  safe_yaml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  sassc = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178iflma5z4qk2lfzlxk8kh942skj45q6v6xwllkqng9xbjlyzkf";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  scrypt = {
+    dependencies = ["ffi-compiler"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ggwynnlgr3a4l5h4zg2w4xyfvqh86nsvmgxicxkc40igyrwqz73";
+      type = "gem";
+    };
+    version = "3.0.6";
+  };
+  semian = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w4qv3mcz005lb3wrh55imh6551lhf0qpslb3xw3b6chf746s0rj";
+      type = "gem";
+    };
+    version = "0.8.9";
+  };
+  sequel = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r920jps2mpvz5ww9rzs3svprfjxz0vsy6dsa1cinsk3qizqbq7a";
+      type = "gem";
+    };
+    version = "5.24.0";
+  };
+  sequel_pg = {
+    dependencies = ["pg" "sequel"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y010rfdgpkw1yspqchjqdp7n8yahscyw98g3l2pw56nzbqipjb8";
+      type = "gem";
+    };
+    version = "1.12.2";
+  };
+  simplecov = {
+    dependencies = ["docile" "json" "simplecov-html"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dq0nkaxvbsnl70hkimy35g4yjfs3blx4s7nbpzbvgqx72hxgv5v";
+      type = "gem";
+    };
+    version = "0.17.0";
+  };
+  simplecov-html = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  sinatra = {
+    dependencies = ["rack" "rack-protection" "tilt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0byxzl7rx3ki0xd7aiv1x8mbah7hzd8f81l65nq8857kmgzj1jqq";
+      type = "gem";
+    };
+    version = "1.4.8";
+  };
+  slather = {
+    dependencies = ["CFPropertyList" "activesupport" "clamp" "nokogiri" "xcodeproj"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v4wll10mwmynj2v2g71kgr1psck3qglhz2mnrw2n281v30jxyyn";
+      type = "gem";
+    };
+    version = "2.4.7";
+  };
+  slop = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hv64fpbdwyswqhnq8bia66vlsz72yjqm00lvlhh4dnjjivdjcy5";
+      type = "gem";
+    };
+    version = "4.7.0";
+  };
+  snappy = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00zzs25sm78zs3rifc02z54cp3f03r9dq5ilzykyq1ykvbv65vw4";
+      type = "gem";
+    };
+    version = "0.0.17";
+  };
+  sprockets = {
+    dependencies = ["concurrent-ruby" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  sprockets-rails = {
+    dependencies = ["actionpack" "activesupport" "sprockets"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+      type = "gem";
+    };
+    version = "3.2.1";
+  };
+  sqlite3 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v903nbcws3ifm6jnxrdfcpgl1qg2x3lbif16mhlbyfn0npzb494";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  taglib-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r8g7zdncc6243d000jn0grc1n70rn9mx16vggy3q7c4wgsa37xi";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  terminal-table = {
+    dependencies = ["unicode-display_width"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  therubyracer = {
+    dependencies = ["libv8" "ref"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g95bzs2axjglyjyj6xvsywqgr80bnzlkw7mddxx1fdrak5wni2q";
+      type = "gem";
+    };
+    version = "0.12.3";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      type = "gem";
+    };
+    version = "0.20.3";
+  };
+  thread_safe = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  thrift = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02p107kwx7jnkh6fpdgvaji0xdg6xkaarngkqjml6s4zny4m8slv";
+      type = "gem";
+    };
+    version = "0.11.0.0";
+  };
+  tilt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz";
+      type = "gem";
+    };
+    version = "2.0.9";
+  };
+  tiny_tds = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z2n1qwad86zkcmmq883bw8rgidjsqjphrbqf1mwyfi5y22jhxfp";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  treetop = {
+    dependencies = ["polyglot"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g31pijhnv7z960sd09lckmw9h8rs3wmc8g4ihmppszxqm99zpv7";
+      type = "gem";
+    };
+    version = "1.6.10";
+  };
+  typhoeus = {
+    dependencies = ["ethon"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ll6w64ibh81qwvjx19h8nj7mngxgffg7aigjx11klvf5k2g4nxf";
+      type = "gem";
+    };
+    version = "0.0.7.6";
+  };
+  unicode-display_width = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08kfiniak1pvg3gn5k6snpigzvhvhyg7slmm0s2qx5zkj62c1z2w";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  uuid4r = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qlcxzn8pnql34pcdrkd20kdla3k6n2sspaxp3lwwx8a87jnzbc3";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  whois = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12dlqsynscin7f0wrhkya505s22i92w9n8padjvjbhylrnja7rwx";
+      type = "gem";
+    };
+    version = "4.1.0";
+  };
+  xcodeproj = {
+    dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "162gwhrl7ppj6hlmnpp1scvy1ylcv5xqk51826v075sckdqjp8c8";
+      type = "gem";
+    };
+    version = "1.12.0";
+  };
+  xctasks = {
+    dependencies = ["nokogiri" "rake"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m01vnmdy9m4hn85ajji5v595faqsy8d3a0r646q79vphw1fikj1";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  yard = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rxqwry3h2hjz069f0kfr140wgx1khgljnqf112dk5x9rm4l0xny";
+      type = "gem";
+    };
+    version = "0.9.20";
+  };
+  ZenTest = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h76ym6cx9b3an8hf1n5w85d1sj3anbvcs99vqw51vbamx84fyld";
+      type = "gem";
+    };
+    version = "4.11.2";
+  };
+  zookeeper = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1blww00r5za6vl46psaldxpllsxll78ms8rrs6qfwb1iaa8rla2d";
+      type = "gem";
+    };
+    version = "1.4.11";
+  };
+}
\ No newline at end of file