about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.version2
-rw-r--r--doc/languages-frameworks/texlive.xml3
-rw-r--r--lib/customisation.nix6
-rw-r--r--lib/default.nix6
-rw-r--r--lib/maintainers.nix806
-rw-r--r--lib/strings.nix9
-rw-r--r--lib/tests/misc.nix2
-rw-r--r--lib/tests/release.nix2
-rw-r--r--lib/versions.nix47
-rw-r--r--maintainers/maintainer-list.nix3964
-rwxr-xr-xmaintainers/scripts/check-maintainer-github-handles.sh66
-rw-r--r--nixos/doc/manual/development/testing-installer.xml6
-rw-r--r--nixos/doc/manual/installation/installing-from-other-distro.xml309
-rw-r--r--nixos/doc/manual/installation/installing.xml1
-rw-r--r--nixos/doc/manual/man-nixos-enter.xml119
-rw-r--r--nixos/doc/manual/man-nixos-install.xml6
-rw-r--r--nixos/doc/manual/man-pages.xml3
-rw-r--r--nixos/doc/manual/release-notes/release-notes.xml1
-rw-r--r--nixos/doc/manual/release-notes/rl-1803.xml28
-rw-r--r--nixos/doc/manual/release-notes/rl-1809.xml82
-rw-r--r--nixos/lib/make-disk-image.nix48
-rw-r--r--nixos/lib/make-iso9660-image.nix9
-rw-r--r--nixos/lib/make-iso9660-image.sh7
-rw-r--r--nixos/lib/make-squashfs.nix42
-rw-r--r--nixos/lib/testing.nix10
-rw-r--r--nixos/lib/testing/jquery-ui.nix (renamed from pkgs/development/libraries/javascript/jquery-ui/default.nix)0
-rw-r--r--nixos/lib/testing/jquery.nix (renamed from pkgs/development/libraries/javascript/jquery/default.nix)0
-rw-r--r--nixos/modules/config/users-groups.nix3
-rw-r--r--nixos/modules/hardware/opengl.nix11
-rw-r--r--nixos/modules/installer/cd-dvd/iso-image.nix8
-rw-r--r--nixos/modules/installer/netboot/netboot.nix2
-rw-r--r--nixos/modules/installer/tools/nix-fallback-paths.nix8
-rw-r--r--nixos/modules/installer/tools/nixos-enter.sh60
-rw-r--r--nixos/modules/installer/tools/nixos-install.sh199
-rw-r--r--nixos/modules/installer/tools/nixos-prepare-root.sh104
-rw-r--r--nixos/modules/installer/tools/tools.nix32
-rw-r--r--nixos/modules/installer/virtualbox-demo.nix2
-rw-r--r--nixos/modules/misc/ids.nix4
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/profiles/demo.nix6
-rw-r--r--nixos/modules/profiles/installation-device.nix8
-rw-r--r--nixos/modules/programs/bash/bash.nix2
-rw-r--r--nixos/modules/programs/zsh/zsh.nix2
-rw-r--r--nixos/modules/services/databases/openldap.nix52
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix4
-rw-r--r--nixos/modules/services/networking/networkmanager.nix1
-rw-r--r--nixos/modules/services/networking/nix-serve.nix2
-rw-r--r--nixos/modules/services/networking/strongswan.nix23
-rw-r--r--nixos/modules/services/web-apps/pump.io-configure.js23
-rw-r--r--nixos/modules/services/web-apps/pump.io.nix438
-rw-r--r--nixos/modules/services/web-apps/tt-rss.nix2
-rw-r--r--nixos/modules/services/web-servers/tomcat.nix380
-rw-r--r--nixos/modules/services/x11/display-managers/lightdm.nix21
-rw-r--r--nixos/modules/system/activation/activation-script.nix9
-rw-r--r--nixos/modules/system/boot/initrd-network.nix14
-rw-r--r--nixos/modules/system/boot/luksroot.nix23
-rw-r--r--nixos/modules/system/boot/modprobe.nix2
-rw-r--r--nixos/modules/system/boot/networkd.nix6
-rw-r--r--nixos/modules/system/boot/stage-2-init.sh1
-rw-r--r--nixos/modules/tasks/network-interfaces-scripted.nix11
-rw-r--r--nixos/modules/virtualisation/parallels-guest.nix26
-rw-r--r--nixos/modules/virtualisation/xen-dom0.nix12
-rw-r--r--nixos/release-combined.nix14
-rw-r--r--nixos/release-small.nix4
-rw-r--r--nixos/release.nix20
-rw-r--r--nixos/tests/boot.nix6
-rw-r--r--nixos/tests/hocker-fetchdocker/default.nix15
-rw-r--r--nixos/tests/hocker-fetchdocker/hello-world-container.nix19
-rw-r--r--nixos/tests/hocker-fetchdocker/machine.nix26
-rw-r--r--nixos/tests/installer.nix11
-rw-r--r--nixos/tests/keymap.nix33
-rw-r--r--nixos/tests/misc.nix11
-rw-r--r--nixos/tests/openldap.nix35
-rw-r--r--nixos/tests/pump.io.nix89
-rw-r--r--nixos/tests/systemd.nix66
-rw-r--r--pkgs/applications/altcoins/bitcoin-abc.nix4
-rw-r--r--pkgs/applications/altcoins/bitcoin-classic.nix4
-rw-r--r--pkgs/applications/altcoins/bitcoin-xt.nix4
-rw-r--r--pkgs/applications/altcoins/dashpay.nix12
-rw-r--r--pkgs/applications/altcoins/dcrd.nix33
-rw-r--r--pkgs/applications/altcoins/dcrwallet.nix42
-rw-r--r--pkgs/applications/altcoins/default.nix23
-rw-r--r--pkgs/applications/altcoins/dero.nix4
-rw-r--r--pkgs/applications/altcoins/freicoin.nix2
-rw-r--r--pkgs/applications/altcoins/go-ethereum.nix4
-rw-r--r--pkgs/applications/altcoins/litecoin.nix4
-rw-r--r--pkgs/applications/altcoins/parity/beta.nix7
-rw-r--r--pkgs/applications/altcoins/parity/default.nix7
-rw-r--r--pkgs/applications/altcoins/parity/parity.nix38
-rw-r--r--pkgs/applications/altcoins/parity/patches/vendored-sources-1.8.patch100
-rw-r--r--pkgs/applications/altcoins/parity/patches/vendored-sources-1.9.patch107
-rw-r--r--pkgs/applications/altcoins/primecoin.nix58
-rw-r--r--pkgs/applications/audio/abcde/default.nix4
-rw-r--r--pkgs/applications/audio/clementine/default.nix7
-rw-r--r--pkgs/applications/audio/cmus/default.nix4
-rw-r--r--pkgs/applications/audio/deadbeef/default.nix2
-rw-r--r--pkgs/applications/audio/easytag/default.nix32
-rw-r--r--pkgs/applications/audio/fmit/default.nix2
-rw-r--r--pkgs/applications/audio/helm/default.nix4
-rw-r--r--pkgs/applications/audio/jack-oscrolloscope/default.nix4
-rw-r--r--pkgs/applications/audio/meters_lv2/default.nix4
-rw-r--r--pkgs/applications/audio/pamixer/default.nix17
-rw-r--r--pkgs/applications/audio/pianobooster/default.nix6
-rw-r--r--pkgs/applications/audio/rhythmbox/default.nix34
-rw-r--r--pkgs/applications/audio/setbfree/default.nix4
-rw-r--r--pkgs/applications/audio/sisco.lv2/default.nix4
-rw-r--r--pkgs/applications/audio/soundscape-renderer/default.nix4
-rw-r--r--pkgs/applications/audio/squishyball/default.nix2
-rw-r--r--pkgs/applications/audio/x42-plugins/default.nix4
-rw-r--r--pkgs/applications/audio/yoshimi/default.nix4
-rw-r--r--pkgs/applications/audio/zam-plugins/default.nix4
-rw-r--r--pkgs/applications/editors/atom/default.nix4
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix6
-rw-r--r--pkgs/applications/editors/hexcurse/default.nix14
-rw-r--r--pkgs/applications/editors/jetbrains/common.nix5
-rw-r--r--pkgs/applications/editors/kodestudio/default.nix4
-rw-r--r--pkgs/applications/graphics/antimony/default.nix4
-rw-r--r--pkgs/applications/graphics/ao/default.nix4
-rw-r--r--pkgs/applications/graphics/cinepaint/default.nix4
-rw-r--r--pkgs/applications/graphics/digikam/default.nix4
-rw-r--r--pkgs/applications/graphics/draftsight/default.nix4
-rw-r--r--pkgs/applications/graphics/exrdisplay/default.nix4
-rw-r--r--pkgs/applications/graphics/feh/default.nix10
-rw-r--r--pkgs/applications/graphics/freepv/default.nix4
-rw-r--r--pkgs/applications/graphics/gocr/default.nix4
-rw-r--r--pkgs/applications/graphics/hugin/default.nix4
-rw-r--r--pkgs/applications/graphics/k3d/default.nix4
-rw-r--r--pkgs/applications/graphics/meshlab/default.nix4
-rw-r--r--pkgs/applications/graphics/openimageio/default.nix4
-rw-r--r--pkgs/applications/graphics/openscad/default.nix4
-rw-r--r--pkgs/applications/graphics/paraview/default.nix4
-rw-r--r--pkgs/applications/graphics/rapcad/default.nix4
-rw-r--r--pkgs/applications/graphics/scantailor/advanced.nix49
-rw-r--r--pkgs/applications/graphics/seg3d/default.nix4
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix25
-rw-r--r--pkgs/applications/graphics/solvespace/default.nix4
-rw-r--r--pkgs/applications/graphics/sxiv/default.nix8
-rw-r--r--pkgs/applications/kde/okular.nix30
-rw-r--r--pkgs/applications/misc/airtame/default.nix4
-rw-r--r--pkgs/applications/misc/alacritty/default.nix6
-rw-r--r--pkgs/applications/misc/apvlv/default.nix7
-rw-r--r--pkgs/applications/misc/bb/default.nix2
-rw-r--r--pkgs/applications/misc/blender/default.nix4
-rw-r--r--pkgs/applications/misc/confclerk/default.nix2
-rw-r--r--pkgs/applications/misc/cpp-ethereum/default.nix4
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix4
-rw-r--r--pkgs/applications/misc/doomseeker/default.nix23
-rw-r--r--pkgs/applications/misc/doomseeker/fix_paths.patch40
-rw-r--r--pkgs/applications/misc/electrum/default.nix13
-rw-r--r--pkgs/applications/misc/gmtp/default.nix4
-rw-r--r--pkgs/applications/misc/googleearth/default.nix4
-rw-r--r--pkgs/applications/misc/gramps/default.nix4
-rw-r--r--pkgs/applications/misc/houdini/runtime.nix4
-rw-r--r--pkgs/applications/misc/icesl/default.nix4
-rw-r--r--pkgs/applications/misc/kdbplus/default.nix4
-rw-r--r--pkgs/applications/misc/keepassx/cmake.patch18
-rw-r--r--pkgs/applications/misc/keepassx/community.nix54
-rw-r--r--pkgs/applications/misc/keepassx/darwin.patch28
-rw-r--r--pkgs/applications/misc/kitty/default.nix4
-rw-r--r--pkgs/applications/misc/llpp/default.nix7
-rw-r--r--pkgs/applications/misc/mupdf/default.nix48
-rw-r--r--pkgs/applications/misc/navit/default.nix4
-rw-r--r--pkgs/applications/misc/nixnote2/default.nix6
-rw-r--r--pkgs/applications/misc/openbrf/default.nix4
-rw-r--r--pkgs/applications/misc/opencpn/default.nix4
-rw-r--r--pkgs/applications/misc/orca/default.nix12
-rw-r--r--pkgs/applications/misc/rtl_433/default.nix26
-rw-r--r--pkgs/applications/misc/slade/default.nix2
-rw-r--r--pkgs/applications/misc/slade/git.nix2
-rw-r--r--pkgs/applications/misc/slic3r-prusa3d/default.nix4
-rw-r--r--pkgs/applications/misc/valentina/default.nix67
-rw-r--r--pkgs/applications/misc/yate/default.nix3
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix30
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix18
-rw-r--r--pkgs/applications/networking/browsers/conkeror/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/falkon/default.nix11
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix10
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix4
-rw-r--r--pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch26
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix35
-rw-r--r--pkgs/applications/networking/browsers/google-chrome/default.nix17
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/nomad/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/taktuk/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/deps.nix24
-rw-r--r--pkgs/applications/networking/errbot/default.nix4
-rw-r--r--pkgs/applications/networking/feedreaders/newsbeuter/default.nix61
-rw-r--r--pkgs/applications/networking/feedreaders/newsboat/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/baresip/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/gajim/default.nix15
-rw-r--r--pkgs/applications/networking/instant-messengers/hipchat/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/qtox/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/riot/riot-web.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix24
-rw-r--r--pkgs/applications/networking/instant-messengers/viber/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/claws-mail/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/mblaze/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/soulseekqt/default.nix55
-rw-r--r--pkgs/applications/networking/protocol/default.nix (renamed from pkgs/development/python-modules/protocol/default.nix)4
-rw-r--r--pkgs/applications/networking/remote/citrix-receiver/default.nix25
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/cmake.patch19
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix34
-rw-r--r--pkgs/applications/networking/syncthing/default.nix4
-rw-r--r--pkgs/applications/office/ib/tws/default.nix2
-rw-r--r--pkgs/applications/office/impressive/default.nix2
-rw-r--r--pkgs/applications/office/libreoffice/default.nix4
-rw-r--r--pkgs/applications/office/libreoffice/still.nix4
-rw-r--r--pkgs/applications/science/astronomy/celestia/default.nix4
-rw-r--r--pkgs/applications/science/astronomy/gpredict/default.nix7
-rw-r--r--pkgs/applications/science/astronomy/gravit/default.nix4
-rw-r--r--pkgs/applications/science/astronomy/stellarium/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/avogadro/default.nix6
-rw-r--r--pkgs/applications/science/chemistry/molden/default.nix4
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix4
-rw-r--r--pkgs/applications/science/electronics/kicad/unstable.nix4
-rw-r--r--pkgs/applications/science/electronics/librepcb/default.nix2
-rw-r--r--pkgs/applications/science/electronics/pcb/default.nix11
-rw-r--r--pkgs/applications/science/logic/mcrl2/default.nix4
-rw-r--r--pkgs/applications/science/logic/symbiyosys/default.nix6
-rw-r--r--pkgs/applications/science/logic/tamarin-prover/default.nix6
-rw-r--r--pkgs/applications/science/logic/tlaplus/default.nix40
-rw-r--r--pkgs/applications/science/machine-learning/shogun/default.nix18
-rw-r--r--pkgs/applications/science/math/bcal/default.nix2
-rw-r--r--pkgs/applications/science/math/gfan/default.nix4
-rw-r--r--pkgs/applications/science/math/giac/default.nix6
-rw-r--r--pkgs/applications/science/math/ginac/default.nix4
-rw-r--r--pkgs/applications/science/math/glsurf/default.nix4
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix10
-rw-r--r--pkgs/applications/science/math/sage/default.nix7
-rw-r--r--pkgs/applications/science/medicine/aliza/default.nix4
-rw-r--r--pkgs/applications/science/misc/boinc/default.nix4
-rw-r--r--pkgs/applications/science/misc/golly/beta.nix4
-rw-r--r--pkgs/applications/science/misc/golly/default.nix4
-rw-r--r--pkgs/applications/science/misc/gplates/default.nix4
-rw-r--r--pkgs/applications/science/misc/root/default.nix4
-rw-r--r--pkgs/applications/science/misc/tulip/default.nix4
-rw-r--r--pkgs/applications/science/misc/vite/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-radar/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-secret/default.nix4
-rw-r--r--pkgs/applications/version-management/git-review/default.nix4
-rw-r--r--pkgs/applications/version-management/git-sizer/default.nix23
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix41
-rw-r--r--pkgs/applications/version-management/gitless/default.nix4
-rw-r--r--pkgs/applications/version-management/gource/default.nix8
-rw-r--r--pkgs/applications/version-management/meld/default.nix14
-rw-r--r--pkgs/applications/video/aegisub/default.nix4
-rw-r--r--pkgs/applications/video/avidemux/default.nix7
-rw-r--r--pkgs/applications/video/bomi/default.nix4
-rw-r--r--pkgs/applications/video/kodi/default.nix4
-rw-r--r--pkgs/applications/video/lightworks/default.nix4
-rw-r--r--pkgs/applications/video/makemkv/default.nix6
-rw-r--r--pkgs/applications/video/mplayer/default.nix6
-rw-r--r--pkgs/applications/video/mpv/default.nix6
-rw-r--r--pkgs/applications/video/mythtv/default.nix4
-rw-r--r--pkgs/applications/video/natron/default.nix6
-rw-r--r--pkgs/applications/video/simplescreenrecorder/default.nix4
-rw-r--r--pkgs/applications/virtualization/bochs/default.nix4
-rw-r--r--pkgs/applications/virtualization/cbfstool/default.nix4
-rw-r--r--pkgs/applications/virtualization/seabios/default.nix4
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/HostServices-SharedClipboard-x11-stub.cpp-use-RT_NOR.patch153
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix2
-rw-r--r--pkgs/applications/virtualization/xen/4.10.nix176
-rw-r--r--pkgs/applications/virtualization/xen/4.8.nix47
-rw-r--r--pkgs/applications/virtualization/xen/generic.nix4
-rw-r--r--pkgs/applications/virtualization/xen/packages.nix46
-rw-r--r--pkgs/applications/virtualization/xen/xsa-patches.nix69
-rw-r--r--pkgs/applications/window-managers/compton/default.nix4
-rw-r--r--pkgs/applications/window-managers/compton/git.nix4
-rw-r--r--pkgs/applications/window-managers/weston/default.nix4
-rw-r--r--pkgs/build-support/closure-info.nix58
-rw-r--r--pkgs/build-support/emacs/buffer.nix2
-rw-r--r--pkgs/build-support/fetchdocker/credentials.nix38
-rw-r--r--pkgs/build-support/fetchdocker/default.nix61
-rw-r--r--pkgs/build-support/fetchdocker/fetchDockerConfig.nix13
-rw-r--r--pkgs/build-support/fetchdocker/fetchDockerLayer.nix13
-rw-r--r--pkgs/build-support/fetchdocker/fetchdocker-builder.sh28
-rw-r--r--pkgs/build-support/fetchdocker/generic-fetcher.nix97
-rw-r--r--pkgs/build-support/kernel/make-initrd.nix2
-rw-r--r--pkgs/build-support/kernel/paths-from-graph.pl2
-rw-r--r--pkgs/data/fonts/iosevka/default.nix4
-rw-r--r--pkgs/data/fonts/twemoji-color-font/default.nix6
-rw-r--r--pkgs/data/icons/numix-icon-theme-circle/default.nix16
-rw-r--r--pkgs/data/icons/numix-icon-theme-square/default.nix16
-rw-r--r--pkgs/data/misc/hackage/default.nix4
-rw-r--r--pkgs/desktops/deepin/deepin-gtk-theme/default.nix (renamed from pkgs/misc/themes/deepin/default.nix)0
-rw-r--r--pkgs/desktops/deepin/deepin-icon-theme/default.nix (renamed from pkgs/data/icons/deepin-icon-theme/default.nix)0
-rw-r--r--pkgs/desktops/deepin/deepin-terminal/default.nix (renamed from pkgs/applications/misc/deepin-terminal/default.nix)0
-rw-r--r--pkgs/desktops/deepin/default.nix19
-rw-r--r--pkgs/desktops/enlightenment/efl.nix4
-rw-r--r--pkgs/desktops/enlightenment/enlightenment.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/gtkglext/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/bijiben/default.nix58
-rw-r--r--pkgs/desktops/gnome-3/apps/bijiben/no-update-icon-cache.patch22
-rw-r--r--pkgs/desktops/gnome-3/apps/evolution/default.nix59
-rw-r--r--pkgs/desktops/gnome-3/apps/glade/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-documents/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-logs/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-music/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/caribou/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/dconf/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/default.nix64
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/gio_unix.patch10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/default.nix60
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch11
-rw-r--r--pkgs/desktops/gnome-3/core/grilo-plugins/default.nix34
-rw-r--r--pkgs/desktops/gnome-3/core/grilo/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/core/gsound/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/core/gtksourceview/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/libcroco/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/libgdata/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/core/libgee/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/libgepub/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/core/libgxps/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/core/libzapojit/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/core/rest/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/simple-scan/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/tracker-miners/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/core/tracker-miners/fix-paths.patch11
-rw-r--r--pkgs/desktops/gnome-3/core/tracker/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/desktop/rarian/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/find-latest-version.py6
-rw-r--r--pkgs/desktops/gnome-3/misc/gexiv2/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/misc/gfbgraph/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/misc/libgames-support/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/misc/libmediaart/default.nix15
-rw-r--r--pkgs/desktops/maxx/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/kinfocenter.nix4
-rw-r--r--pkgs/desktops/xfce/applications/parole.nix4
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix5
-rw-r--r--pkgs/development/compilers/arachne-pnr/default.nix6
-rw-r--r--pkgs/development/compilers/cudatoolkit/default.nix2
-rw-r--r--pkgs/development/compilers/dmd/default.nix54
-rw-r--r--pkgs/development/compilers/factor-lang/default.nix8
-rw-r--r--pkgs/development/compilers/ghc/8.4.1.nix10
-rw-r--r--pkgs/development/compilers/ghcjs/base.nix1
-rw-r--r--pkgs/development/compilers/ghcjs/default.nix1
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/default.nix4
-rw-r--r--pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/4/lldb.nix5
-rw-r--r--pkgs/development/compilers/llvm/6/clang/default.nix108
-rw-r--r--pkgs/development/compilers/llvm/6/clang/purity.patch30
-rw-r--r--pkgs/development/compilers/llvm/6/compiler-rt-codesign.patch155
-rw-r--r--pkgs/development/compilers/llvm/6/default.nix78
-rw-r--r--pkgs/development/compilers/llvm/6/libc++/default.nix51
-rw-r--r--pkgs/development/compilers/llvm/6/libc++/setup-hook.sh3
-rw-r--r--pkgs/development/compilers/llvm/6/libc++abi.nix49
-rw-r--r--pkgs/development/compilers/llvm/6/lld.nix33
-rw-r--r--pkgs/development/compilers/llvm/6/lldb.nix56
-rw-r--r--pkgs/development/compilers/llvm/6/llvm-outputs.patch26
-rw-r--r--pkgs/development/compilers/llvm/6/llvm.nix184
-rw-r--r--pkgs/development/compilers/llvm/6/openmp.nix26
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk-linux-base.nix4
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk9-linux.nix4
-rw-r--r--pkgs/development/compilers/vala/default.nix12
-rw-r--r--pkgs/development/compilers/yosys/default.nix6
-rw-r--r--pkgs/development/compilers/zulu/8.nix4
-rw-r--r--pkgs/development/compilers/zulu/default.nix4
-rw-r--r--pkgs/development/coq-modules/QuickChick/default.nix7
-rw-r--r--pkgs/development/coq-modules/bignums/default.nix32
-rw-r--r--pkgs/development/coq-modules/fiat/HEAD.nix15
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix15
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix19
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix36
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml140
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix9
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix6
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix4647
-rw-r--r--pkgs/development/haskell-modules/make-package-set.nix50
-rw-r--r--pkgs/development/idris-modules/default.nix2
-rw-r--r--pkgs/development/idris-modules/wl-pprint.nix8
-rw-r--r--pkgs/development/interpreters/erlang/generic-builder.nix6
-rw-r--r--pkgs/development/interpreters/groovy/default.nix4
-rw-r--r--pkgs/development/interpreters/hy/default.nix10
-rw-r--r--pkgs/development/interpreters/io/default.nix4
-rw-r--r--pkgs/development/interpreters/love/0.10.nix4
-rw-r--r--pkgs/development/interpreters/love/0.7.nix4
-rw-r--r--pkgs/development/interpreters/love/0.8.nix4
-rw-r--r--pkgs/development/interpreters/love/0.9.nix4
-rw-r--r--pkgs/development/interpreters/lush/default.nix4
-rw-r--r--pkgs/development/interpreters/octave/default.nix4
-rw-r--r--pkgs/development/interpreters/php/default.nix10
-rw-r--r--pkgs/development/interpreters/renpy/default.nix6
-rw-r--r--pkgs/development/libraries/AntTweakBar/default.nix4
-rw-r--r--pkgs/development/libraries/SDL/default.nix97
-rw-r--r--pkgs/development/libraries/SDL2/default.nix78
-rw-r--r--pkgs/development/libraries/SDL2_gfx/default.nix14
-rw-r--r--pkgs/development/libraries/SDL2_image/default.nix5
-rw-r--r--pkgs/development/libraries/SDL2_ttf/default.nix4
-rw-r--r--pkgs/development/libraries/allegro/5.nix4
-rw-r--r--pkgs/development/libraries/allegro/default.nix4
-rw-r--r--pkgs/development/libraries/atk/default.nix16
-rw-r--r--pkgs/development/libraries/beignet/default.nix4
-rw-r--r--pkgs/development/libraries/box2d/default.nix4
-rw-r--r--pkgs/development/libraries/bullet/default.nix4
-rw-r--r--pkgs/development/libraries/cairo/default.nix6
-rw-r--r--pkgs/development/libraries/cfitsio/default.nix6
-rw-r--r--pkgs/development/libraries/chipmunk/default.nix4
-rw-r--r--pkgs/development/libraries/cl/default.nix2
-rw-r--r--pkgs/development/libraries/clutter-gst/default.nix19
-rw-r--r--pkgs/development/libraries/clutter-gtk/default.nix19
-rw-r--r--pkgs/development/libraries/clutter/default.nix22
-rw-r--r--pkgs/development/libraries/cmark/default.nix2
-rw-r--r--pkgs/development/libraries/cogl/default.nix23
-rw-r--r--pkgs/development/libraries/coin3d/default.nix4
-rw-r--r--pkgs/development/libraries/double-conversion/default.nix7
-rw-r--r--pkgs/development/libraries/epoxy/default.nix8
-rw-r--r--pkgs/development/libraries/esdl/default.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg-full/default.nix6
-rw-r--r--pkgs/development/libraries/ffmpeg/generic.nix6
-rw-r--r--pkgs/development/libraries/fltk/default.nix4
-rw-r--r--pkgs/development/libraries/folly/default.nix4
-rw-r--r--pkgs/development/libraries/fox/fox-1.6.nix4
-rw-r--r--pkgs/development/libraries/freeglut/default.nix10
-rw-r--r--pkgs/development/libraries/freenect/default.nix4
-rw-r--r--pkgs/development/libraries/ftgl/default.nix4
-rw-r--r--pkgs/development/libraries/gdcm/default.nix4
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix17
-rw-r--r--pkgs/development/libraries/gecode/3.nix6
-rw-r--r--pkgs/development/libraries/gle/default.nix4
-rw-r--r--pkgs/development/libraries/glew/1.10.nix4
-rw-r--r--pkgs/development/libraries/glew/default.nix4
-rw-r--r--pkgs/development/libraries/glfw/2.x.nix4
-rw-r--r--pkgs/development/libraries/glfw/3.x.nix4
-rw-r--r--pkgs/development/libraries/glib-networking/default.nix16
-rw-r--r--pkgs/development/libraries/glib/default.nix14
-rw-r--r--pkgs/development/libraries/glpk/default.nix4
-rw-r--r--pkgs/development/libraries/glui/default.nix4
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix17
-rw-r--r--pkgs/development/libraries/gsm/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/vaapi/default.nix4
-rw-r--r--pkgs/development/libraries/gtk+/3.x.nix15
-rw-r--r--pkgs/development/libraries/gtkmm/2.x.nix4
-rw-r--r--pkgs/development/libraries/gvfs/default.nix21
-rw-r--r--pkgs/development/libraries/irrlicht/default.nix4
-rw-r--r--pkgs/development/libraries/java/dbus-java/default.nix2
-rw-r--r--pkgs/development/libraries/java/libmatthew-java/default.nix2
-rw-r--r--pkgs/development/libraries/java/swt/default.nix4
-rw-r--r--pkgs/development/libraries/json-c/0.11.nix25
-rw-r--r--pkgs/development/libraries/json-c/default.nix16
-rw-r--r--pkgs/development/libraries/libagar/default.nix6
-rw-r--r--pkgs/development/libraries/libargon2/default.nix2
-rw-r--r--pkgs/development/libraries/libav/default.nix13
-rw-r--r--pkgs/development/libraries/libcdio-paranoia/default.nix27
-rw-r--r--pkgs/development/libraries/libcdio/0.82.nix30
-rw-r--r--pkgs/development/libraries/libchamplain/default.nix40
-rw-r--r--pkgs/development/libraries/libcloudproviders/default.nix33
-rw-r--r--pkgs/development/libraries/libcue/default.nix4
-rw-r--r--pkgs/development/libraries/libdevil/default.nix4
-rw-r--r--pkgs/development/libraries/libdvbpsi/default.nix4
-rw-r--r--pkgs/development/libraries/libexttextcat/default.nix4
-rw-r--r--pkgs/development/libraries/libf2c/default.nix4
-rw-r--r--pkgs/development/libraries/libftdi/default.nix8
-rw-r--r--pkgs/development/libraries/libglvnd/default.nix4
-rw-r--r--pkgs/development/libraries/libgtop/default.nix27
-rw-r--r--pkgs/development/libraries/libgudev/default.nix17
-rw-r--r--pkgs/development/libraries/libhttpseverywhere/default.nix35
-rw-r--r--pkgs/development/libraries/liblo/default.nix6
-rw-r--r--pkgs/development/libraries/libpqxx/default.nix16
-rw-r--r--pkgs/development/libraries/libqtav/default.nix10
-rw-r--r--pkgs/development/libraries/librdmacm/default.nix4
-rw-r--r--pkgs/development/libraries/librsvg/default.nix24
-rw-r--r--pkgs/development/libraries/libsecret/default.nix13
-rw-r--r--pkgs/development/libraries/libsoup/default.nix23
-rw-r--r--pkgs/development/libraries/libtcod/default.nix4
-rw-r--r--pkgs/development/libraries/libtxc_dxtn/default.nix4
-rw-r--r--pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix4
-rw-r--r--pkgs/development/libraries/libva/default.nix6
-rw-r--r--pkgs/development/libraries/libvdpau-va-gl/default.nix4
-rw-r--r--pkgs/development/libraries/libvdpau/default.nix4
-rw-r--r--pkgs/development/libraries/libwebp/default.nix6
-rw-r--r--pkgs/development/libraries/libwhereami/default.nix7
-rw-r--r--pkgs/development/libraries/libzdb/default.nix4
-rw-r--r--pkgs/development/libraries/liquidfun/default.nix4
-rw-r--r--pkgs/development/libraries/mbedtls/default.nix4
-rw-r--r--pkgs/development/libraries/mediastreamer/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/default.nix2
-rw-r--r--pkgs/development/libraries/mps/default.nix6
-rw-r--r--pkgs/development/libraries/mygui/default.nix4
-rw-r--r--pkgs/development/libraries/nanoflann/default.nix4
-rw-r--r--pkgs/development/libraries/nlohmann_json/default.nix4
-rw-r--r--pkgs/development/libraries/nss_wrapper/default.nix4
-rw-r--r--pkgs/development/libraries/ocl-icd/default.nix4
-rw-r--r--pkgs/development/libraries/ogre/1.9.x.nix4
-rw-r--r--pkgs/development/libraries/ogre/default.nix4
-rw-r--r--pkgs/development/libraries/opencascade/default.nix4
-rw-r--r--pkgs/development/libraries/opencsg/default.nix4
-rw-r--r--pkgs/development/libraries/opencv/3.x.nix18
-rw-r--r--pkgs/development/libraries/openexrid-unstable/default.nix4
-rw-r--r--pkgs/development/libraries/opensubdiv/default.nix10
-rw-r--r--pkgs/development/libraries/openvdb/default.nix4
-rw-r--r--pkgs/development/libraries/pangolin/default.nix4
-rw-r--r--pkgs/development/libraries/partio/default.nix25
-rw-r--r--pkgs/development/libraries/phonon/default.nix4
-rw-r--r--pkgs/development/libraries/physics/geant4/default.nix8
-rw-r--r--pkgs/development/libraries/plib/default.nix4
-rw-r--r--pkgs/development/libraries/postgis/2.3.nix102
-rw-r--r--pkgs/development/libraries/postgis/default.nix20
-rw-r--r--pkgs/development/libraries/postgis/pg_db_postgis_enable.sh38
-rw-r--r--pkgs/development/libraries/postgis/pg_db_postgis_fix_or_load_sql_dump.sh52
-rw-r--r--pkgs/development/libraries/qpdf/default.nix4
-rw-r--r--pkgs/development/libraries/qt-3/default.nix6
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix6
-rw-r--r--pkgs/development/libraries/qt-5/5.10/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/5.6/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/5.9/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtbase.nix14
-rw-r--r--pkgs/development/libraries/quesoglc/default.nix4
-rw-r--r--pkgs/development/libraries/rapidjson/default.nix3
-rw-r--r--pkgs/development/libraries/science/math/blas/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/caffe2/default.nix8
-rw-r--r--pkgs/development/libraries/science/math/caffe2/fix_compilation_on_gcc7.patch46
-rw-r--r--pkgs/development/libraries/science/math/cudnn/generic.nix2
-rw-r--r--pkgs/development/libraries/science/math/nccl/generic.nix2
-rw-r--r--pkgs/development/libraries/science/math/petsc/default.nix4
-rw-r--r--pkgs/development/libraries/simgear/default.nix4
-rw-r--r--pkgs/development/libraries/smpeg/default.nix4
-rw-r--r--pkgs/development/libraries/spice-gtk/default.nix22
-rw-r--r--pkgs/development/libraries/umockdev/default.nix1
-rw-r--r--pkgs/development/libraries/vaapi-intel/default.nix4
-rw-r--r--pkgs/development/libraries/vaapi-vdpau/default.nix4
-rw-r--r--pkgs/development/libraries/vapoursynth/default.nix10
-rw-r--r--pkgs/development/libraries/virglrenderer/default.nix26
-rw-r--r--pkgs/development/libraries/vrpn/default.nix4
-rw-r--r--pkgs/development/libraries/vtk/default.nix4
-rw-r--r--pkgs/development/libraries/vulkan-loader/default.nix4
-rw-r--r--pkgs/development/libraries/webkitgtk/2.18.nix4
-rw-r--r--pkgs/development/libraries/wlc/default.nix4
-rw-r--r--pkgs/development/libraries/wlroots/default.nix4
-rw-r--r--pkgs/development/libraries/wxwidgets/2.8/default.nix8
-rw-r--r--pkgs/development/libraries/wxwidgets/2.9/default.nix8
-rw-r--r--pkgs/development/libraries/wxwidgets/3.0/default.nix8
-rw-r--r--pkgs/development/libraries/xgboost/default.nix26
-rw-r--r--pkgs/development/libraries/xine-lib/default.nix4
-rw-r--r--pkgs/development/misc/amdapp-sdk/default.nix4
-rw-r--r--pkgs/development/misc/avr/gcc/default.nix2
-rw-r--r--pkgs/development/mobile/androidenv/androidsdk.nix4
-rw-r--r--pkgs/development/mobile/androidenv/default.nix2
-rw-r--r--pkgs/development/mobile/genymotion/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/camlimages/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/janestreet/default.nix223
-rw-r--r--pkgs/development/ocaml-modules/janestreet/janePackage.nix6
-rw-r--r--pkgs/development/ocaml-modules/janestreet/old.nix615
-rw-r--r--pkgs/development/ocaml-modules/lablgl/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/sawja/default.nix6
-rw-r--r--pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch40
-rw-r--r--pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch46
-rw-r--r--pkgs/development/pharo/vm/build-vm-legacy.nix6
-rw-r--r--pkgs/development/pharo/vm/build-vm.nix6
-rw-r--r--pkgs/development/pharo/vm/vms.nix2
-rw-r--r--pkgs/development/pure-modules/gl/default.nix4
-rw-r--r--pkgs/development/python-modules/aiohttp/cors.nix14
-rw-r--r--pkgs/development/python-modules/aiohttp/default.nix2
-rw-r--r--pkgs/development/python-modules/antlr4-python3-runtime/default.nix18
-rw-r--r--pkgs/development/python-modules/asgi_ipc/default.nix21
-rw-r--r--pkgs/development/python-modules/asgi_redis/default.nix24
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix4
-rw-r--r--pkgs/development/python-modules/daphne/default.nix4
-rw-r--r--pkgs/development/python-modules/datashape/default.nix4
-rw-r--r--pkgs/development/python-modules/h11/default.nix19
-rw-r--r--pkgs/development/python-modules/junos-eznc/default.nix42
-rw-r--r--pkgs/development/python-modules/latexcodec/default.nix20
-rw-r--r--pkgs/development/python-modules/ncclient/default.nix41
-rw-r--r--pkgs/development/python-modules/odo/default.nix21
-rw-r--r--pkgs/development/python-modules/oset/default.nix19
-rw-r--r--pkgs/development/python-modules/pillow/default.nix11
-rw-r--r--pkgs/development/python-modules/polib/default.nix20
-rw-r--r--pkgs/development/python-modules/proboscis/default.nix21
-rw-r--r--pkgs/development/python-modules/progressbar/default.nix21
-rw-r--r--pkgs/development/python-modules/publicsuffix/default.nix27
-rw-r--r--pkgs/development/python-modules/pybtex-docutils/default.nix20
-rw-r--r--pkgs/development/python-modules/pybtex/default.nix20
-rw-r--r--pkgs/development/python-modules/pychart/default.nix19
-rw-r--r--pkgs/development/python-modules/pyftgl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyglet/default.nix4
-rw-r--r--pkgs/development/python-modules/pyjade/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-mock/default.nix4
-rw-r--r--pkgs/development/python-modules/python-ptrace/default.nix24
-rw-r--r--pkgs/development/python-modules/scp/default.nix34
-rw-r--r--pkgs/development/python-modules/sphinx-navtree/default.nix18
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix22
-rw-r--r--pkgs/development/python-modules/wsproto/default.nix14
-rw-r--r--pkgs/development/r-modules/default.nix9
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix3
-rw-r--r--pkgs/development/ruby-modules/gem/default.nix4
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/cppcheck/default.nix4
-rw-r--r--pkgs/development/tools/analysis/include-what-you-use/default.nix2
-rw-r--r--pkgs/development/tools/analysis/pmd/default.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix8
-rw-r--r--pkgs/development/tools/analysis/spin/default.nix21
-rw-r--r--pkgs/development/tools/ansible-lint/default.nix32
-rw-r--r--pkgs/development/tools/build-managers/bazel/0.4.nix2
-rw-r--r--pkgs/development/tools/build-managers/dub/default.nix14
-rw-r--r--pkgs/development/tools/build-managers/icmake/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--pkgs/development/tools/documentation/gtk-doc/default.nix4
-rw-r--r--pkgs/development/tools/dtools/default.nix6
-rw-r--r--pkgs/development/tools/glslviewer/default.nix4
-rw-r--r--pkgs/development/tools/godot/default.nix4
-rw-r--r--pkgs/development/tools/godot/pkg_config_additions.patch2
-rw-r--r--pkgs/development/tools/haskell/multi-ghc-travis/default.nix4
-rw-r--r--pkgs/development/tools/icestorm/default.nix6
-rw-r--r--pkgs/development/tools/misc/cl-launch/default.nix2
-rw-r--r--pkgs/development/tools/misc/gdb/darwin-target-match.patch11
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix3
-rw-r--r--pkgs/development/tools/misc/global/default.nix4
-rw-r--r--pkgs/development/tools/misc/hydra/default.nix11
-rw-r--r--pkgs/development/tools/misc/yodl/default.nix7
-rw-r--r--pkgs/development/tools/mypy/default.nix4
-rw-r--r--pkgs/development/tools/parsing/jshon/default.nix4
-rw-r--r--pkgs/development/tools/profiling/systemtap/default.nix8
-rw-r--r--pkgs/development/tools/simavr/default.nix4
-rw-r--r--pkgs/development/tools/unity3d/default.nix4
-rw-r--r--pkgs/development/tools/vagrant/Gemfile.lock18
-rw-r--r--pkgs/development/tools/vagrant/default.nix11
-rw-r--r--pkgs/development/tools/vagrant/gemset.nix26
-rw-r--r--pkgs/development/tools/vogl/default.nix4
-rwxr-xr-xpkgs/development/tools/yarn2nix/bin/yarn2nix.js144
-rw-r--r--pkgs/development/tools/yarn2nix/default.nix199
-rw-r--r--pkgs/development/tools/yarn2nix/fixup_bin.js45
-rw-r--r--pkgs/development/tools/yarn2nix/package.json19
-rw-r--r--pkgs/development/tools/yarn2nix/yarn.lock11
-rw-r--r--pkgs/development/tools/yarn2nix/yarn.nix23
-rw-r--r--pkgs/development/web/grails/default.nix4
-rw-r--r--pkgs/development/web/insomnia/default.nix66
-rw-r--r--pkgs/development/web/nodejs/nodejs-release-keys.asc776
-rw-r--r--pkgs/development/web/nodejs/nodejs.nix13
-rwxr-xr-xpkgs/development/web/nodejs/update-keyring18
-rw-r--r--pkgs/development/web/nodejs/update.nix27
-rw-r--r--pkgs/development/web/nodejs/v9.nix4
-rw-r--r--pkgs/games/0ad/game.nix4
-rw-r--r--pkgs/games/adom/default.nix4
-rw-r--r--pkgs/games/alienarena/default.nix6
-rw-r--r--pkgs/games/amoeba/default.nix4
-rw-r--r--pkgs/games/armagetronad/default.nix4
-rw-r--r--pkgs/games/arx-libertatis/default.nix4
-rw-r--r--pkgs/games/astromenace/default.nix4
-rw-r--r--pkgs/games/bitsnbots/default.nix4
-rw-r--r--pkgs/games/blackshades/default.nix4
-rw-r--r--pkgs/games/blackshadeselite/default.nix4
-rw-r--r--pkgs/games/blobby/default.nix4
-rw-r--r--pkgs/games/btanks/default.nix4
-rw-r--r--pkgs/games/bzflag/default.nix4
-rw-r--r--pkgs/games/commandergenius/default.nix4
-rw-r--r--pkgs/games/construo/default.nix4
-rw-r--r--pkgs/games/crack-attack/default.nix4
-rw-r--r--pkgs/games/crawl/default.nix4
-rw-r--r--pkgs/games/crrcsim/default.nix4
-rw-r--r--pkgs/games/dhewm3/default.nix6
-rw-r--r--pkgs/games/dwarf-fortress/dfhack/default.nix4
-rw-r--r--pkgs/games/dwarf-fortress/dwarf-therapist/default.nix2
-rw-r--r--pkgs/games/dwarf-fortress/unfuck.nix4
-rw-r--r--pkgs/games/dxx-rebirth/default.nix30
-rw-r--r--pkgs/games/eduke32/default.nix8
-rw-r--r--pkgs/games/egoboo/default.nix4
-rw-r--r--pkgs/games/eternity-engine/default.nix4
-rw-r--r--pkgs/games/extremetuxracer/default.nix4
-rw-r--r--pkgs/games/ezquake/default.nix4
-rw-r--r--pkgs/games/factorio/default.nix4
-rw-r--r--pkgs/games/flightgear/default.nix4
-rw-r--r--pkgs/games/freedroidrpg/default.nix62
-rw-r--r--pkgs/games/freeorion/default.nix4
-rw-r--r--pkgs/games/fsg/default.nix4
-rw-r--r--pkgs/games/gl-117/default.nix4
-rw-r--r--pkgs/games/globulation/default.nix4
-rw-r--r--pkgs/games/gltron/default.nix4
-rw-r--r--pkgs/games/gnubg/default.nix4
-rw-r--r--pkgs/games/gnujump/default.nix25
-rw-r--r--pkgs/games/gzdoom/default.nix4
-rw-r--r--pkgs/games/hedgewars/default.nix6
-rw-r--r--pkgs/games/kobodeluxe/default.nix4
-rw-r--r--pkgs/games/lincity/ng.nix4
-rw-r--r--pkgs/games/liquidwar/default.nix4
-rw-r--r--pkgs/games/mar1d/default.nix4
-rw-r--r--pkgs/games/mars/default.nix4
-rw-r--r--pkgs/games/megaglest/default.nix6
-rw-r--r--pkgs/games/minecraft/default.nix4
-rw-r--r--pkgs/games/minetest/default.nix4
-rw-r--r--pkgs/games/naev/default.nix4
-rw-r--r--pkgs/games/neverball/default.nix4
-rw-r--r--pkgs/games/newtonwars/default.nix6
-rw-r--r--pkgs/games/nexuiz/default.nix4
-rw-r--r--pkgs/games/openjk/default.nix4
-rw-r--r--pkgs/games/openmw/tes3mp.nix4
-rw-r--r--pkgs/games/openrct2/default.nix4
-rw-r--r--pkgs/games/openrw/default.nix4
-rw-r--r--pkgs/games/openspades/default.nix4
-rw-r--r--pkgs/games/openxcom/default.nix4
-rw-r--r--pkgs/games/pingus/default.nix13
-rw-r--r--pkgs/games/pioneer/default.nix4
-rw-r--r--pkgs/games/pioneers/default.nix12
-rw-r--r--pkgs/games/prboom/default.nix4
-rw-r--r--pkgs/games/privateer/default.nix4
-rw-r--r--pkgs/games/quake3/ioquake/default.nix4
-rw-r--r--pkgs/games/quake3/wrapper/default.nix4
-rw-r--r--pkgs/games/residualvm/default.nix6
-rw-r--r--pkgs/games/rigsofrods/default.nix4
-rw-r--r--pkgs/games/sauerbraten/default.nix4
-rw-r--r--pkgs/games/scorched3d/default.nix4
-rw-r--r--pkgs/games/scrolls/default.nix4
-rw-r--r--pkgs/games/scummvm/default.nix4
-rw-r--r--pkgs/games/soi/default.nix4
-rw-r--r--pkgs/games/space-orbit/default.nix4
-rw-r--r--pkgs/games/speed-dreams/default.nix4
-rw-r--r--pkgs/games/spring/default.nix4
-rw-r--r--pkgs/games/stardust/default.nix4
-rw-r--r--pkgs/games/steam/runtime-wrapped.nix2
-rw-r--r--pkgs/games/super-tux-kart/default.nix4
-rw-r--r--pkgs/games/supertux/default.nix4
-rw-r--r--pkgs/games/teeworlds/default.nix4
-rw-r--r--pkgs/games/the-powder-toy/default.nix2
-rw-r--r--pkgs/games/tibia/default.nix4
-rw-r--r--pkgs/games/tome4/default.nix4
-rw-r--r--pkgs/games/torcs/default.nix4
-rw-r--r--pkgs/games/trackballs/default.nix4
-rw-r--r--pkgs/games/tremulous/default.nix4
-rw-r--r--pkgs/games/trigger/default.nix4
-rw-r--r--pkgs/games/ufoai/default.nix4
-rw-r--r--pkgs/games/ultimatestunts/default.nix4
-rw-r--r--pkgs/games/ultrastardx/default.nix4
-rw-r--r--pkgs/games/unvanquished/default.nix4
-rw-r--r--pkgs/games/uqm/3dovideo.nix2
-rw-r--r--pkgs/games/uqm/default.nix4
-rw-r--r--pkgs/games/urbanterror/default.nix16
-rw-r--r--pkgs/games/vdrift/default.nix4
-rw-r--r--pkgs/games/vessel/default.nix2
-rw-r--r--pkgs/games/voxelands/default.nix4
-rw-r--r--pkgs/games/warsow/default.nix6
-rw-r--r--pkgs/games/worldofgoo/default.nix10
-rw-r--r--pkgs/games/xmoto/default.nix4
-rw-r--r--pkgs/games/xonotic/default.nix4
-rw-r--r--pkgs/games/xpilot/bloodspilot-client.nix4
-rw-r--r--pkgs/games/xpilot/default.nix4
-rw-r--r--pkgs/games/zandronum/default.nix4
-rw-r--r--pkgs/misc/apulse/default.nix16
-rw-r--r--pkgs/misc/apulse/pressureaudio.nix10
-rw-r--r--pkgs/misc/emulators/atari800/default.nix4
-rw-r--r--pkgs/misc/emulators/attract-mode/default.nix4
-rw-r--r--pkgs/misc/emulators/caprice32/default.nix29
-rw-r--r--pkgs/misc/emulators/citra/default.nix2
-rw-r--r--pkgs/misc/emulators/desmume/default.nix6
-rw-r--r--pkgs/misc/emulators/dolphin-emu/default.nix4
-rw-r--r--pkgs/misc/emulators/dolphin-emu/master.nix4
-rw-r--r--pkgs/misc/emulators/dosbox/default.nix4
-rw-r--r--pkgs/misc/emulators/dosbox/unstable.nix4
-rw-r--r--pkgs/misc/emulators/emulationstation/default.nix4
-rw-r--r--pkgs/misc/emulators/fakenes/default.nix4
-rw-r--r--pkgs/misc/emulators/fs-uae/default.nix4
-rw-r--r--pkgs/misc/emulators/gens-gs/default.nix4
-rw-r--r--pkgs/misc/emulators/higan/default.nix4
-rw-r--r--pkgs/misc/emulators/mednafen/default.nix4
-rw-r--r--pkgs/misc/emulators/mess/default.nix4
-rw-r--r--pkgs/misc/emulators/nestopia/default.nix7
-rw-r--r--pkgs/misc/emulators/openmsx/default.nix4
-rw-r--r--pkgs/misc/emulators/qmc2/default.nix40
-rw-r--r--pkgs/misc/emulators/retroarch/cores.nix33
-rw-r--r--pkgs/misc/emulators/retroarch/default.nix65
-rw-r--r--pkgs/misc/emulators/vbam/default.nix4
-rw-r--r--pkgs/misc/emulators/vice/default.nix4
-rw-r--r--pkgs/misc/emulators/wine/base.nix2
-rw-r--r--pkgs/misc/emulators/wine/sources.nix12
-rw-r--r--pkgs/misc/emulators/wxmupen64plus/default.nix4
-rw-r--r--pkgs/misc/emulators/yabause/default.nix4
-rw-r--r--pkgs/misc/emulators/zsnes/default.nix4
-rw-r--r--pkgs/misc/gnash/default.nix10
-rw-r--r--pkgs/misc/jackaudio/clang.patch22
-rw-r--r--pkgs/misc/jackaudio/default.nix2
-rw-r--r--pkgs/misc/libcardiacarrest/default.nix48
-rw-r--r--pkgs/misc/screensavers/electricsheep/default.nix4
-rw-r--r--pkgs/misc/screensavers/rss-glx/default.nix4
-rw-r--r--pkgs/misc/screensavers/xscreensaver/default.nix4
-rw-r--r--pkgs/misc/vim-plugins/default.nix10
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/network_cmds/default.nix6
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix4
-rw-r--r--pkgs/os-specific/darwin/qes/default.nix26
-rw-r--r--pkgs/os-specific/darwin/skhd/default.nix34
-rw-r--r--pkgs/os-specific/darwin/skhd/org.nixos.skhd.plist23
-rw-r--r--pkgs/os-specific/linux/amdgpu-pro/default.nix4
-rw-r--r--pkgs/os-specific/linux/ati-drivers/builder.sh4
-rw-r--r--pkgs/os-specific/linux/ati-drivers/default.nix8
-rw-r--r--pkgs/os-specific/linux/batman-adv/alfred.nix4
-rw-r--r--pkgs/os-specific/linux/batman-adv/batctl.nix4
-rw-r--r--pkgs/os-specific/linux/batman-adv/default.nix4
-rw-r--r--pkgs/os-specific/linux/bbswitch/default.nix2
-rw-r--r--pkgs/os-specific/linux/fwts/default.nix30
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix27
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.15.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-copperhead-hardened.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix6
-rw-r--r--pkgs/os-specific/linux/kmscon/default.nix4
-rw-r--r--pkgs/os-specific/linux/kmscube/default.nix6
-rw-r--r--pkgs/os-specific/linux/prl-tools/default.nix5
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix425
-rw-r--r--pkgs/os-specific/linux/trinity/default.nix3
-rw-r--r--pkgs/os-specific/linux/v4l-utils/default.nix4
-rw-r--r--pkgs/servers/amqp/qpid-cpp/default.nix4
-rw-r--r--pkgs/servers/ftp/bftpd/default.nix4
-rw-r--r--pkgs/servers/http/apache-modules/mod_wsgi/default.nix4
-rw-r--r--pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--pkgs/servers/http/openresty/default.nix41
-rw-r--r--pkgs/servers/mail/clamsmtp/default.nix2
-rw-r--r--pkgs/servers/mail/clamsmtp/header-order.patch25
-rw-r--r--pkgs/servers/mail/dovecot/default.nix14
-rw-r--r--pkgs/servers/monitoring/prometheus/alertmanager.nix4
-rw-r--r--pkgs/servers/mpd/default.nix4
-rw-r--r--pkgs/servers/sabnzbd/default.nix4
-rw-r--r--pkgs/servers/samba/4.x.nix9
-rw-r--r--pkgs/servers/sslh/default.nix4
-rw-r--r--pkgs/servers/uwsgi/default.nix4
-rw-r--r--pkgs/servers/web-apps/pump.io/composition.nix16
-rw-r--r--pkgs/servers/web-apps/pump.io/default.nix53
-rwxr-xr-xpkgs/servers/web-apps/pump.io/generate.sh37
-rw-r--r--pkgs/servers/web-apps/pump.io/node-packages.json7
-rw-r--r--pkgs/servers/web-apps/pump.io/node-packages.nix4889
-rw-r--r--pkgs/stdenv/generic/check-meta.nix2
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools.nix2
-rw-r--r--pkgs/tools/X11/primus/lib.nix12
-rw-r--r--pkgs/tools/X11/virtualgl/lib.nix4
-rw-r--r--pkgs/tools/admin/gixy/default.nix7
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix15
-rw-r--r--pkgs/tools/admin/salt/pepper/default.nix4
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix4
-rw-r--r--pkgs/tools/backup/bdsync/default.nix2
-rw-r--r--pkgs/tools/backup/burp/default.nix4
-rw-r--r--pkgs/tools/backup/restic/default.nix2
-rw-r--r--pkgs/tools/backup/rsbep/default.nix37
-rw-r--r--pkgs/tools/cd-dvd/bchunk/default.nix4
-rw-r--r--pkgs/tools/compression/brotli/default.nix4
-rw-r--r--pkgs/tools/filesystems/grive/default.nix29
-rw-r--r--pkgs/tools/filesystems/squashfuse/default.nix33
-rw-r--r--pkgs/tools/filesystems/tmsu/default.nix2
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix4
-rw-r--r--pkgs/tools/graphics/enblend-enfuse/default.nix4
-rw-r--r--pkgs/tools/graphics/gifsicle/default.nix4
-rw-r--r--pkgs/tools/graphics/glee/default.nix4
-rw-r--r--pkgs/tools/graphics/glmark2/default.nix4
-rw-r--r--pkgs/tools/graphics/glxinfo/default.nix6
-rw-r--r--pkgs/tools/graphics/logstalgia/default.nix4
-rw-r--r--pkgs/tools/graphics/maim/default.nix4
-rw-r--r--pkgs/tools/graphics/pfstools/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-uniemoji/default.nix2
-rw-r--r--pkgs/tools/inputmethods/libinput-gestures/default.nix4
-rw-r--r--pkgs/tools/inputmethods/touchegg/default.nix4
-rw-r--r--pkgs/tools/misc/bonfire/default.nix2
-rw-r--r--pkgs/tools/misc/cutecom/default.nix2
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix14
-rwxr-xr-xpkgs/tools/misc/diffoscope/list-tools.sh20
-rw-r--r--pkgs/tools/misc/flameshot/default.nix6
-rw-r--r--pkgs/tools/misc/gibo/default.nix4
-rw-r--r--pkgs/tools/misc/goaccess/default.nix4
-rw-r--r--pkgs/tools/misc/graylog/default.nix4
-rw-r--r--pkgs/tools/misc/kisslicer/default.nix6
-rw-r--r--pkgs/tools/misc/ocz-ssd-guru/default.nix4
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/patdiff/default.nix2
-rw-r--r--pkgs/tools/misc/pipelight/default.nix8
-rw-r--r--pkgs/tools/misc/powerline-go/default.nix26
-rw-r--r--pkgs/tools/misc/powerline-go/deps.nix48
-rw-r--r--pkgs/tools/misc/rename/default.nix1
-rw-r--r--pkgs/tools/misc/skim/default.nix43
-rw-r--r--pkgs/tools/misc/slop/default.nix4
-rw-r--r--pkgs/tools/misc/uutils-coreutils/default.nix2
-rw-r--r--pkgs/tools/misc/wyrd/default.nix10
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/haproxy/default.nix8
-rw-r--r--pkgs/tools/networking/inadyn/default.nix4
-rw-r--r--pkgs/tools/networking/iperf/3.nix4
-rw-r--r--pkgs/tools/networking/libreswan/default.nix7
-rw-r--r--pkgs/tools/networking/linkchecker/default.nix59
-rw-r--r--pkgs/tools/networking/linkchecker/no-version-check.patch14
-rw-r--r--pkgs/tools/networking/megatools/default.nix21
-rw-r--r--pkgs/tools/networking/network-manager/l2tp.nix3
-rw-r--r--pkgs/tools/networking/par2cmdline/default.nix4
-rw-r--r--pkgs/tools/networking/pptp/default.nix4
-rw-r--r--pkgs/tools/networking/strongswan/default.nix5
-rw-r--r--pkgs/tools/networking/vpnc/default.nix2
-rw-r--r--pkgs/tools/networking/zssh/default.nix4
-rw-r--r--pkgs/tools/package-management/nix-serve/default.nix2
-rw-r--r--pkgs/tools/package-management/nix/default.nix15
-rw-r--r--pkgs/tools/security/enpass/default.nix4
-rw-r--r--pkgs/tools/security/fprintd/default.nix4
-rw-r--r--pkgs/tools/security/hashcat/default.nix4
-rw-r--r--pkgs/tools/security/kbfs/default.nix4
-rw-r--r--pkgs/tools/security/keybase-gui/default.nix4
-rw-r--r--pkgs/tools/security/keybase/default.nix4
-rw-r--r--pkgs/tools/security/pass-otp/default.nix11
-rw-r--r--pkgs/tools/security/pass/default.nix21
-rw-r--r--pkgs/tools/security/tor/default.nix32
-rw-r--r--pkgs/tools/security/tor/update.nix72
-rw-r--r--pkgs/tools/system/collectd/default.nix9
-rw-r--r--pkgs/tools/system/facter/default.nix5
-rw-r--r--pkgs/tools/system/syslog-ng/default.nix4
-rw-r--r--pkgs/tools/text/html-tidy/default.nix4
-rw-r--r--pkgs/tools/text/mpage/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix265
-rw-r--r--pkgs/top-level/dotnet-packages.nix8
-rw-r--r--pkgs/top-level/lua-packages.nix107
-rw-r--r--pkgs/top-level/ocaml-packages.nix28
-rw-r--r--pkgs/top-level/perl-packages.nix96
-rw-r--r--pkgs/top-level/php-packages.nix4
-rw-r--r--pkgs/top-level/python-packages.nix211
-rw-r--r--pkgs/top-level/release.nix6
927 files changed, 18192 insertions, 12139 deletions
diff --git a/.version b/.version
index a88d2ca323198..770bde1f44b3d 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-18.03
+18.09
diff --git a/doc/languages-frameworks/texlive.xml b/doc/languages-frameworks/texlive.xml
index fdee1e405ecc0..4515e17ec09e3 100644
--- a/doc/languages-frameworks/texlive.xml
+++ b/doc/languages-frameworks/texlive.xml
@@ -39,6 +39,9 @@ nix-repl> :l <nixpkgs>
 nix-repl> texlive.collection-<TAB>
       </programlisting>
     </para></listitem>
+    <listitem><para>
+      Note that the wrapper assumes that the result has a chance to be useful. For example, the core executables should be present, as well as some core data files. The supported way of ensuring this is by including some scheme, for example <varname>scheme-basic</varname>, into the combination.
+    </para></listitem>
   </itemizedlist>
 </section>
 
diff --git a/lib/customisation.nix b/lib/customisation.nix
index 823395f04d4a4..d942f54ee7989 100644
--- a/lib/customisation.nix
+++ b/lib/customisation.nix
@@ -155,12 +155,6 @@ rec {
       outPath = assert condition; drv.outPath;
     };
 
-  /* Add attributes to each output of a derivation without changing
-     the derivation itself. */
-  addPassthru =
-    lib.warn "`addPassthru drv passthru` is deprecated, replace with `extendDerivation true passthru drv`"
-      (drv: passthru: extendDerivation true passthru drv);
-
   /* Strip a derivation of all non-essential attributes, returning
      only those needed by hydra-eval-jobs. Also strictly evaluate the
      result to ensure that there are no thunks kept alive to prevent
diff --git a/lib/default.nix b/lib/default.nix
index 77cfa712557c7..7bd02106f7b6b 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -21,10 +21,10 @@ let
 
     # packaging
     customisation = callLibs ./customisation.nix;
-    maintainers = callLibs ./maintainers.nix;
+    maintainers = import ../maintainers/maintainer-list.nix;
     meta = callLibs ./meta.nix;
     sources = callLibs ./sources.nix;
-
+    versions = callLibs ./versions.nix;
 
     # module system
     modules = callLibs ./modules.nix;
@@ -88,7 +88,7 @@ let
     inherit (stringsWithDeps) textClosureList textClosureMap
       noDepEntry fullDepEntry packEntry stringAfter;
     inherit (customisation) overrideDerivation makeOverridable
-      callPackageWith callPackagesWith extendDerivation addPassthru
+      callPackageWith callPackagesWith extendDerivation
       hydraJob makeScope;
     inherit (meta) addMetaAttrs dontDistribute setName updateName
       appendToName mapDerivationAttrset lowPrio lowPrioSet hiPrio
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
deleted file mode 100644
index c4f8d6dcae40d..0000000000000
--- a/lib/maintainers.nix
+++ /dev/null
@@ -1,806 +0,0 @@
-{ ...}:
-/* List of NixOS maintainers. The format is:
-
-    handle = "Real Name <address@example.org>";
-
-  where <handle> is preferred to be your GitHub username (so it's easy
-  to ping a package @<handle>), and <Real Name> is your real name, not
-  a pseudonym. Please keep the list alphabetically sorted. */
-{
-  a1russell = "Adam Russell <adamlr6+pub@gmail.com>";
-  aaronschif = "Aaron Schif <aaronschif@gmail.com>";
-  abaldeau = "Andreas Baldeau <andreas@baldeau.net>";
-  abbradar = "Nikolay Amiantov <ab@fmap.me>";
-  abigailbuccaneer = "Abigail Bunyan <abigailbuccaneer@gmail.com>";
-  aboseley = "Adam Boseley <adam.boseley@gmail.com>";
-  abuibrahim = "Ruslan Babayev <ruslan@babayev.com>";
-  acowley = "Anthony Cowley <acowley@gmail.com>";
-  adelbertc = "Adelbert Chang <adelbertc@gmail.com>";
-  adev = "Adrien Devresse <adev@adev.name>";
-  adisbladis = "Adam Hose <adis@blad.is>";
-  Adjective-Object = "Maxwell Huang-Hobbs <mhuan13@gmail.com>";
-  adnelson = "Allen Nelson <ithinkican@gmail.com>";
-  adolfogc = "Adolfo E. García Castro <adolfo.garcia.cr@gmail.com>";
-  aespinosa = "Allan Espinosa <allan.espinosa@outlook.com>";
-  aflatter = "Alexander Flatter <flatter@fastmail.fm>";
-  afldcr   = "James Alexander Feldman-Crough <alex@fldcr.com>";
-  aforemny = "Alexander Foremny <alexanderforemny@googlemail.com>";
-  afranchuk = "Alex Franchuk <alex.franchuk@gmail.com>";
-  aherrmann = "Andreas Herrmann <andreash87@gmx.ch>";
-  ahmedtd = "Taahir Ahmed <ahmed.taahir@gmail.com>";
-  aij = "Ivan Jager <aij+git@mrph.org>";
-  ajgrf = "Alex Griffin <a@ajgrf.com>";
-  ak = "Alexander Kjeldaas <ak@formalprivacy.com>";
-  akaWolf = "Artjom Vejsel <akawolf0@gmail.com>";
-  akc = "Anders Claesson <akc@akc.is>";
-  alexvorobiev = "Alex Vorobiev <alexander.vorobiev@gmail.com";
-  algorith = "Dries Van Daele <dries_van_daele@telenet.be>";
-  alibabzo = "Alistair Bill <alistair.bill@gmail.com>";
-  all = "Nix Committers <nix-commits@lists.science.uu.nl>";
-  alunduil = "Alex Brandt <alunduil@alunduil.com>";
-  ambrop72 = "Ambroz Bizjak <ambrop7@gmail.com>";
-  amiddelk = "Arie Middelkoop <amiddelk@gmail.com>";
-  amiloradovsky = "Andrew Miloradovsky <miloradovsky@gmail.com>";
-  amorsillo = "Andrew Morsillo <andrew.morsillo@gmail.com>";
-  AndersonTorres = "Anderson Torres <torres.anderson.85@gmail.com>";
-  anderspapitto = "Anders Papitto <anderspapitto@gmail.com>";
-  andir = "Andreas Rammhold <andreas@rammhold.de>";
-  andres = "Andres Loeh <ksnixos@andres-loeh.de>";
-  andrestylianos = "Andre S. Ramos <andre.stylianos@gmail.com>";
-  andrew-d = "Andrew Dunham <andrew@du.nham.ca>";
-  andrewrk = "Andrew Kelley <superjoe30@gmail.com>";
-  andsild = "Anders Sildnes <andsild@gmail.com>";
-  aneeshusa = "Aneesh Agrawal <aneeshusa@gmail.com>";
-  ankhers = "Justin Wood <justin.k.wood@gmail.com>";
-  antono = "Antono Vasiljev <self@antono.info>";
-  antonxy = "Anton Schirg <anton.schirg@posteo.de>";
-  apeschar = "Albert Peschar <albert@peschar.net>";
-  apeyroux = "Alexandre Peyroux <alex@px.io>";
-  arcadio = "Arcadio Rubio García <arc@well.ox.ac.uk>";
-  ardumont = "Antoine R. Dumont <eniotna.t@gmail.com>";
-  aristid = "Aristid Breitkreuz <aristidb@gmail.com>";
-  arobyn = "Alexei Robyn <shados@shados.net>";
-  artuuge = "Artur E. Ruuge <artuuge@gmail.com>";
-  ashalkhakov = "Artyom Shalkhakov <artyom.shalkhakov@gmail.com>";
-  ashgillman = "Ashley Gillman <gillmanash@gmail.com>";
-  aske = "Kirill Boltaev <aske@fmap.me>";
-  asppsa = "Alastair Pharo <asppsa@gmail.com>";
-  astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
-  asymmetric = "Lorenzo Manacorda <lorenzo@mailbox.org>";
-  aszlig = "aszlig <aszlig@nix.build>";
-  auntie = "Jonathan Glines <auntieNeo@gmail.com>";
-  avnik = "Alexander V. Nikolaev <avn@avnik.info>";
-  aycanirican = "Aycan iRiCAN <iricanaycan@gmail.com>";
-  babariviere = "Bastien Riviere <babariviere@protonmail.com>";
-  bachp = "Pascal Bach <pascal.bach@nextrem.ch>";
-  backuitist = "Bruno Bieth";
-  badi = "Badi' Abdul-Wahid <abdulwahidc@gmail.com>";
-  balajisivaraman = "Balaji Sivaraman <sivaraman.balaji@gmail.com>";
-  barrucadu = "Michael Walker <mike@barrucadu.co.uk>";
-  basvandijk = "Bas van Dijk <v.dijk.bas@gmail.com>";
-  Baughn = "Svein Ove Aas <sveina@gmail.com>";
-  bcarrell = "Brandon Carrell <brandoncarrell@gmail.com>";
-  bcdarwin = "Ben Darwin <bcdarwin@gmail.com>";
-  bdimcheff = "Brandon Dimcheff <brandon@dimcheff.com>";
-  bendlas = "Herwig Hochleitner <herwig@bendlas.net>";
-  benley = "Benjamin Staffin <benley@gmail.com>";
-  bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>";
-  benwbooth = "Ben Booth <benwbooth@gmail.com>";
-  berce = "Bert Moens <bert.moens@gmail.com>";
-  berdario = "Dario Bertini <berdario@gmail.com>";
-  bergey = "Daniel Bergey <bergey@teallabs.org>";
-  bhipple = "Benjamin Hipple <bhipple@protonmail.com>";
-  binarin = "Alexey Lebedeff <binarin@binarin.ru>";
-  bjg = "Brian Gough <bjg@gnu.org>";
-  bjornfor = "Bjørn Forsman <bjorn.forsman@gmail.com>";
-  bluescreen303 = "Mathijs Kwik <mathijs@bluescreen303.nl>";
-  bobakker = "Bo Bakker <bobakk3r@gmail.com>";
-  bobvanderlinden = "Bob van der Linden <bobvanderlinden@gmail.com>";
-  bodil = "Bodil Stokke <nix@bodil.org>";
-  boothead = "Ben Ford <ben@perurbis.com>";
-  bosu = "Boris Sukholitko <boriss@gmail.com>";
-  bradediger = "Brad Ediger <brad@bradediger.com>";
-  bramd = "Bram Duvigneau <bram@bramd.nl>";
-  bstrik = "Berno Strik <dutchman55@gmx.com>";
-  bugworm = "Roman Gerasimenko <bugworm@zoho.com>";
-  bzizou = "Bruno Bzeznik <Bruno@bzizou.net>";
-  c0bw3b = "Renaud <c0bw3b@gmail.com>";
-  c0dehero = "CodeHero <codehero@nerdpol.ch>";
-  calbrecht = "Christian Albrecht <christian.albrecht@mayflower.de>";
-  calrama = "Moritz Maxeiner <moritz@ucworks.org>";
-  calvertvl = "Victor Calvert <calvertvl@gmail.com>";
-  campadrenalin = "Philip Horger <campadrenalin@gmail.com>";
-  canndrew = "Andrew Cann <shum@canndrew.org>";
-  carlsverre = "Carl Sverre <accounts@carlsverre.com>";
-  casey = "Casey Rodarmor <casey@rodarmor.net>";
-  catern = "Spencer Baugh <sbaugh@catern.com>";
-  caugner = "Claas Augner <nixos@caugner.de>";
-  cdepillabout = "Dennis Gosnell <cdep.illabout@gmail.com>";
-  cfouche = "Chaddaï Fouché <chaddai.fouche@gmail.com>";
-  changlinli = "Changlin Li <mail@changlinli.com>";
-  chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
-  chattered = "Phil Scott <me@philscotted.com>";
-  ChengCat = "Yucheng Zhang <yu@cheng.cat>";
-  chiiruno = "Okina Matara <okinan@protonmail.com>";
-  choochootrain = "Hurshal Patel <hurshal@imap.cc>";
-  chpatrick = "Patrick Chilton <chpatrick@gmail.com>";
-  chreekat = "Bryan Richter <b@chreekat.net>";
-  chris-martin = "Chris Martin <ch.martin@gmail.com>";
-  chrisjefferson = "Christopher Jefferson <chris@bubblescope.net>";
-  chrisrosset = "Christopher Rosset <chris@rosset.org.uk>";
-  christopherpoole = "Christopher Mark Poole <mail@christopherpoole.net>";
-  ciil = "Simon Lackerbauer <simon@lackerbauer.com>";
-  ck3d = "Christian Kögler <ck3d@gmx.de>";
-  ckampka = "Christian Kampka <christian@kampka.net>";
-  ckauhaus = "Christian Kauhaus <kc@flyingcircus.io>";
-  cko = "Christine Koppelt <christine.koppelt@gmail.com>";
-  cleverca22 = "Michael Bishop <cleverca22@gmail.com>";
-  cmcdragonkai = "Roger Qiu <roger.qiu@matrix.ai>";
-  cmfwyp = "cmfwyp <cmfwyp@riseup.net>";
-  cobbal = "Andrew Cobb <andrew.cobb@gmail.com>";
-  coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
-  codsl = "codsl <codsl@riseup.net>";
-  codyopel = "Cody Opel <codyopel@gmail.com>";
-  colemickens = "Cole Mickens <cole.mickens@gmail.com>";
-  colescott = "Cole Scott <colescottsf@gmail.com>";
-  copumpkin = "Dan Peebles <pumpkingod@gmail.com>";
-  corngood = "David McFarland <corngood@gmail.com>";
-  coroa = "Jonas Hörsch <jonas@chaoflow.net>";
-  couchemar = "Andrey Pavlov <couchemar@yandex.ru>";
-  cpages = "Carles Pagès <page@ruiec.cat>";
-  cransom = "Casey Ransom <cransom@hubns.net>";
-  cryptix = "Henry Bubert <cryptix@riseup.net>";
-  CrystalGamma = "Jona Stubbe <nixos@crystalgamma.de>";
-  cstrahan = "Charles Strahan <charles@cstrahan.com>";
-  csingley = "Christopher Singley <csingley@gmail.com>";
-  cwoac = "Oliver Matthews <oliver@codersoffortune.net>";
-  DamienCassou = "Damien Cassou <damien@cassou.me>";
-  danbst = "Danylo Hlynskyi <abcz2.uprola@gmail.com>";
-  dancek = "Hannu Hartikainen <hannu.hartikainen@gmail.com>";
-  danharaj = "Dan Haraj <dan@obsidian.systems>";
-  danielfullmer = "Daniel Fullmer <danielrf12@gmail.com>";
-  dasuxullebt = "Christoph-Simon Senjak <christoph.senjak@googlemail.com>";
-  david50407 = "David Kuo <me@davy.tw>";
-  davidak = "David Kleuker <post@davidak.de>";
-  davidrusu = "David Rusu <davidrusu.me@gmail.com>";
-  davorb = "Davor Babic <davor@davor.se>";
-  dbohdan = "Danyil Bohdan <danyil.bohdan@gmail.com>";
-  dbrock = "Daniel Brockman <daniel@brockman.se>";
-  deepfire = "Kosyrev Serge <_deepfire@feelingofgreen.ru>";
-  demin-dmitriy = "Dmitriy Demin <demindf@gmail.com>";
-  derchris = "Christian Gerbrandt <derchris@me.com>";
-  DerGuteMoritz = "Moritz Heidkamp <moritz@twoticketsplease.de>";
-  dermetfan = "Robin Stumm <serverkorken@gmail.com>";
-  DerTim1 = "Tim Digel <tim.digel@active-group.de>";
-  desiderius = "Didier J. Devroye <didier@devroye.name>";
-  devhell = "devhell <\"^\"@regexmail.net>";
-  dezgeg = "Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>";
-  dfordivam = "Divam <dfordivam+nixpkgs@gmail.com>";
-  dfoxfranke = "Daniel Fox Franke <dfoxfranke@gmail.com>";
-  dgonyeo = "Derek Gonyeo <derek@gonyeo.com>";
-  dipinhora = "Dipin Hora <dipinhora+github@gmail.com>";
-  disassembler = "Samuel Leathers <disasm@gmail.com>";
-  dizfer = "David Izquierdo <david@izquierdofernandez.com>";
-  dmalikov = "Dmitry Malikov <malikov.d.y@gmail.com>";
-  DmitryTsygankov = "Dmitry Tsygankov <dmitry.tsygankov@gmail.com>";
-  dmjio = "David Johnson <djohnson.m@gmail.com>";
-  dochang = "Desmond O. Chang <dochang@gmail.com>";
-  domenkozar = "Domen Kozar <domen@dev.si>";
-  dotlambda = "Robert Schütz <rschuetz17@gmail.com>";
-  doublec = "Chris Double <chris.double@double.co.nz>";
-  dpaetzel = "David Pätzel <david.a.paetzel@gmail.com>";
-  dpflug = "David Pflug <david@pflug.email>";
-  drets = "Dmytro Rets <dmitryrets@gmail.com>";
-  drewkett = "Andrew Burkett <burkett.andrew@gmail.com>";
-  dsferruzza = "David Sferruzza <david.sferruzza@gmail.com>";
-  dtzWill = "Will Dietz <nix@wdtz.org>";
-  dupgit = "Olivier Delhomme <olivier.delhomme@free.fr>";
-  dywedir = "Vladyslav M. <dywedir@protonmail.ch>";
-  dzabraev = "Maksim Dzabraev <dzabraew@gmail.com>";
-  e-user = "Alexander Kahl <nixos@sodosopa.io>";
-  earldouglas = "James Earl Douglas <james@earldouglas.com>";
-  earvstedt = "Erik Arvstedt <erik.arvstedt@gmail.com>";
-  ebzzry = "Rommel Martinez <ebzzry@ebzzry.io>";
-  edanaher = "Evan Danaher <nixos@edanaher.net>";
-  edef = "edef <edef@edef.eu>";
-  ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
-  eduarrrd = "Eduard Bachmakov <e.bachmakov@gmail.com>";
-  edwtjo = "Edward Tjörnhammar <ed@cflags.cc>";
-  eelco = "Eelco Dolstra <eelco.dolstra@logicblox.com>";
-  ehegnes = "Eric Hegnes <eric.hegnes@gmail.com>";
-  ehmry = "Emery Hemingway <emery@vfemail.net>";
-  eikek = "Eike Kettner <eike.kettner@posteo.de>";
-  ekleog = "Leo Gaspard <leo@gaspard.io>";
-  elasticdog = "Aaron Bull Schaefer <aaron@elasticdog.com>";
-  eleanor = "Dejan Lukan <dejan@proteansec.com>";
-  elijahcaine = "Elijah Caine <elijahcainemv@gmail.com>";
-  elitak = "Eric Litak <elitak@gmail.com>";
-  ellis = "Ellis Whitehead <nixos@ellisw.net>";
-  enzime = "Michael Hoang <enzime@users.noreply.github.com>";
-  eperuffo = "Emanuele Peruffo <info@emanueleperuffo.com>";
-  epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
-  eqyiel = "Ruben Maher <r@rkm.id.au>";
-  ericbmerritt = "Eric Merritt <eric@afiniate.com>";
-  ericsagnes = "Eric Sagnes <eric.sagnes@gmail.com>";
-  ericson2314 = "John Ericson <John.Ericson@Obsidian.Systems>";
-  erictapen = "Justin Humm <justin.humm@posteo.de>";
-  erikryb = "Erik Rybakken <erik.rybakken@math.ntnu.no>";
-  ertes = "Ertugrul Söylemez <esz@posteo.de>";
-  erosennin = "Andrey Golovizin <ag@sologoc.com>";
-  ethercrow = "Dmitry Ivanov <ethercrow@gmail.com>";
-  etu = "Elis Hirwing <elis@hirwing.se>";
-  exfalso = "Andras Slemmer <0slemi0@gmail.com>";
-  exi = "Reno Reckling <nixos@reckling.org>";
-  exlevan = "Alexey Levan <exlevan@gmail.com>";
-  expipiplus1 = "Joe Hermaszewski <nix@monoid.al>";
-  fadenb = "Tristan Helmich <tristan.helmich+nixos@gmail.com>";
-  falsifian = "James Cook <james.cook@utoronto.ca>";
-  fare = "Francois-Rene Rideau <fahree@gmail.com>";
-  f-breidenstein = "Felix Breidenstein <mail@felixbreidenstein.de>";
-  fgaz = "Francesco Gazzetta <francygazz@gmail.com>";
-  FireyFly = "Jonas Höglund <nix@firefly.nu>";
-  flokli = "Florian Klink <flokli@flokli.de>";
-  florianjacob = "Florian Jacob <projects+nixos@florianjacob.de>";
-  flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
-  fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
-  fmthoma = "Franz Thoma <f.m.thoma@googlemail.com>";
-  forkk = "Andrew Okin <forkk@forkk.net>";
-  fornever = "Friedrich von Never <friedrich@fornever.me>";
-  fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
-  fps = "Florian Paul Schmidt <mista.tapas@gmx.net>";
-  fridh = "Frederik Rietdijk <fridh@fridh.nl>";
-  frlan = "Frank Lanitz <frank@frank.uvena.de>";
-  fro_ozen = "fro_ozen <fro_ozen@gmx.de>";
-  ftrvxmtrx = "Siarhei Zirukin <ftrvxmtrx@gmail.com>";
-  funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
-  fuuzetsu = "Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";
-  fuzzy-id = "Thomas Bach <hacking+nixos@babibo.de>";
-  fxfactorial = "Edgar Aroutiounian <edgar.factorial@gmail.com>";
-  gabesoft = "Gabriel Adomnicai <gabesoft@gmail.com>";
-  gal_bolle = "Florent Becker <florent.becker@ens-lyon.org>";
-  garbas = "Rok Garbas <rok@garbas.si>";
-  garrison = "Jim Garrison <jim@garrison.cc>";
-  gavin = "Gavin Rogers <gavin@praxeology.co.uk>";
-  gebner = "Gabriel Ebner <gebner@gebner.org>";
-  geistesk = "Alvar Penning <post@0x21.biz>";
-  genesis = "Ronan Bignaux <ronan@aimao.org>";
-  georgewhewell = "George Whewell <georgerw@gmail.com>";
-  gilligan = "Tobias Pflug <tobias.pflug@gmail.com>";
-  giogadi = "Luis G. Torres <lgtorres42@gmail.com>";
-  gleber = "Gleb Peregud <gleber.p@gmail.com>";
-  glenns = "Glenn Searby <glenn.searby@gmail.com>";
-  globin = "Robin Gloster <mail@glob.in>";
-  gnidorah = "Alex Ivanov <yourbestfriend@opmbx.org>";
-  goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
-  Gonzih = "Max Gonzih <gonzih@gmail.com>";
-  goodrone = "Andrew Trachenko <goodrone@gmail.com>";
-  gpyh = "Yacine Hmito <yacine.hmito@gmail.com>";
-  grahamc = "Graham Christensen <graham@grahamc.com>";
-  grburst = "Julius Elias <grburst@openmailbox.org>";
-  gridaphobe = "Eric Seidel <eric@seidel.io>";
-  guibert = "David Guibert <david.guibert@gmail.com>";
-  guibou = "Guillaume Bouchard <guillaum.bouchard@gmail.com>";
-  guillaumekoenig = "Guillaume Koenig <guillaume.edward.koenig@gmail.com>";
-  guyonvarch = "Joris Guyonvarch <joris@guyonvarch.me>";
-  hakuch = "Jesse Haber-Kucharsky <hakuch@gmail.com>";
-  hamhut1066 = "Hamish Hutchings <github@hamhut1066.com>";
-  havvy = "Ryan Scheel <ryan.havvy@gmail.com>";
-  hbunke = "Hendrik Bunke <bunke.hendrik@gmail.com>";
-  hce = "Hans-Christian Esperer <hc@hcesperer.org>";
-  hectorj = "Hector Jusforgues <hector.jusforgues+nixos@gmail.com>";
-  hedning = "Tor Hedin Brønner <torhedinbronner@gmail.com>";
-  heel = "Sergii Paryzhskyi <parizhskiy@gmail.com>";
-  henrytill = "Henry Till <henrytill@gmail.com>";
-  hhm = "hhm <heehooman+nixpkgs@gmail.com>";
-  hinton = "Tom Hinton <t@larkery.com>";
-  hodapp = "Chris Hodapp <hodapp87@gmail.com>";
-  hrdinka = "Christoph Hrdinka <c.nix@hrdinka.at>";
-  htr = "Hugo Tavares Reis <hugo@linux.com>";
-  hyphon81 = "Masato Yonekawa <zero812n@gmail.com>";
-  iand675 = "Ian Duncan <ian@iankduncan.com>";
-  ianwookim = "Ian-Woo Kim <ianwookim@gmail.com>";
-  iblech = "Ingo Blechschmidt <iblech@speicherleck.de>";
-  igsha = "Igor Sharonov <igor.sharonov@gmail.com>";
-  ikervagyok = "Balázs Lengyel <ikervagyok@gmail.com>";
-  ilya-kolpakov = "Ilya Kolpakov <ilya.kolpakov@gmail.com>";
-  infinisil = "Silvan Mosberger <infinisil@icloud.com>";
-  ironpinguin = "Michele Catalano <michele@catalano.de>";
-  ivan-tkatchev = "Ivan Tkatchev <tkatchev@gmail.com>";
-  ixmatus = "Parnell Springmeyer <parnell@digitalmentat.com>";
-  izorkin = "Yurii Izorkin <Izorkin@gmail.com>";
-  ixxie = "Matan Bendix Shenhav <matan@fluxcraft.net>";
-  j-keck = "Jürgen Keck <jhyphenkeck@gmail.com>";
-  jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>";
-  jammerful = "jammerful <jammerful@gmail.com>";
-  jansol = "Jan Solanti <jan.solanti@paivola.fi>";
-  javaguirre = "Javier Aguirre <contacto@javaguirre.net>";
-  jb55 = "William Casarin <jb55@jb55.com>";
-  jbedo = "Justin Bedő <cu@cua0.org>";
-  jcumming = "Jack Cummings <jack@mudshark.org>";
-  jdagilliland = "Jason Gilliland <jdagilliland@gmail.com>";
-  jefdaj = "Jeffrey David Johnson <jefdaj@gmail.com>";
-  jensbin = "Jens Binkert <jensbin@protonmail.com>";
-  jerith666 = "Matt McHenry <github@matt.mchenryfamily.org>";
-  jfb = "James Felix Black <james@yamtime.com>";
-  jfrankenau = "Johannes Frankenau <johannes@frankenau.net>";
-  jgeerds = "Jascha Geerds <jascha@jgeerds.name>";
-  jgertm = "Tim Jaeger <jger.tm@gmail.com>";
-  jgillich = "Jakob Gillich <jakob@gillich.me>";
-  jhhuh = "Ji-Haeng Huh <jhhuh.note@gmail.com>";
-  jirkamarsik = "Jirka Marsik <jiri.marsik89@gmail.com>";
-  jlesquembre = "José Luis Lafuente <jl@lafuente.me>";
-  jluttine = "Jaakko Luttinen <jaakko.luttinen@iki.fi>";
-  Jo = "Joachim Ernst <0x4A6F@shackspace.de>";
-  joachifm = "Joachim Fasting <joachifm@fastmail.fm>";
-  joamaki = "Jussi Maki <joamaki@gmail.com>";
-  joelmo = "Joel Moberg <joel.moberg@gmail.com>";
-  joelteon = "Joel Taylor <me@joelt.io>";
-  johbo = "Johannes Bornhold <johannes@bornhold.name>";
-  johnazoidberg = "Daniel Schäfer <git@danielschaefer.me>";
-  johnmh = "John M. Harris, Jr. <johnmh@openblox.org>";
-  johnramsden = "John Ramsden <johnramsden@riseup.net>";
-  joko = "Ioannis Koutras <ioannis.koutras@gmail.com>";
-  jonafato = "Jon Banafato <jon@jonafato.com>";
-  joncojonathan = "Jonathan Haddock <joncojonathan@gmail.com>";
-  jpdoyle = "Joe Doyle <joethedoyle@gmail.com>";
-  jpierre03 = "Jean-Pierre PRUNARET <nix@prunetwork.fr>";
-  jpotier = "Martin Potier <jpo.contributes.to.nixos@marvid.fr>";
-  jraygauthier = "Raymond Gauthier <jraygauthier@gmail.com>";
-  jtojnar = "Jan Tojnar <jtojnar@gmail.com>";
-  juliendehos = "Julien Dehos <dehos@lisic.univ-littoral.fr>";
-  jwiegley = "John Wiegley <johnw@newartisans.com>";
-  jwilberding = "Jordan Wilberding <jwilberding@afiniate.com>";
-  jyp = "Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>";
-  jzellner = "Jeff Zellner <jeffz@eml.cc>";
-  kaiha = "Kai Harries <kai.harries@gmail.com>";
-  kamilchm = "Kamil Chmielewski <kamil.chm@gmail.com>";
-  kampfschlaefer = "Arnold Krille <arnold@arnoldarts.de>";
-  karolchmist = "karolchmist <info+nix@chmist.com>";
-  kentjames = "James Kent <jameschristopherkent@gmail.com";
-  kevincox = "Kevin Cox <kevincox@kevincox.ca>";
-  khumba = "Bryan Gardiner <bog@khumba.net>";
-  KibaFox = "Kiba Fox <kiba.fox@foxypossibilities.com>";
-  kierdavis = "Kier Davis <kierdavis@gmail.com>";
-  kiloreux = "Kiloreux Emperex <kiloreux@gmail.com>";
-  kini = "Keshav Kini <keshav.kini@gmail.com>";
-  kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
-  knedlsepp = "Josef Kemetmüller <josef.kemetmueller@gmail.com>";
-  konimex = "Muhammad Herdiansyah <herdiansyah@netc.eu>";
-  koral = "Koral <koral@mailoo.org>";
-  kovirobi = "Kovacsics Robert <kovirobi@gmail.com>";
-  kquick = "Kevin Quick <quick@sparq.org>";
-  kragniz = "Louis Taylor <louis@kragniz.eu>";
-  kristoff3r = "Kristoffer Søholm <k.soeholm@gmail.com>";
-  ktosiek = "Tomasz Kontusz <tomasz.kontusz@gmail.com>";
-  kuznero = "Roman Kuznetsov <roman@kuznero.com>";
-  lasandell = "Luke Sandell <lasandell@gmail.com>";
-  lassulus = "Lassulus <lassulus@gmail.com>";
-  layus = "Guillaume Maudoux <layus.on@gmail.com>";
-  lblasc = "Luka Blaskovic <lblasc@znode.net>";
-  ldesgoui = "Lucas Desgouilles <ldesgoui@gmail.com>";
-  league = "Christopher League <league@contrapunctus.net>";
-  lebastr = "Alexander Lebedev <lebastr@gmail.com>";
-  ledif = "Adam Fidel <refuse@gmail.com>";
-  leemachin = "Lee Machin <me@mrl.ee>";
-  leenaars = "Michiel Leenaars <ml.software@leenaa.rs>";
-  lejonet = "Daniel Kuehn <daniel@kuehn.se>";
-  leonardoce = "Leonardo Cecchi <leonardo.cecchi@gmail.com>";
-  lethalman = "Luca Bruno <lucabru@src.gnome.org>";
-  lewo = "Antoine Eiche <lewo@abesis.fr>";
-  lheckemann = "Linus Heckemann <git@sphalerite.org>";
-  lhvwb = "Nathaniel Baxter <nathaniel.baxter@gmail.com>";
-  lihop = "Leroy Hopson <nixos@leroy.geek.nz>";
-  limeytexan = "Michael Brantley <limeytexan@gmail.com>";
-  linquize = "Linquize <linquize@yahoo.com.hk>";
-  linus = "Linus Arver <linusarver@gmail.com>";
-  lluchs = "Lukas Werling <lukas.werling@gmail.com>";
-  lnl7 = "Daiderd Jordan <daiderd@gmail.com>";
-  lo1tuma = "Mathias Schreck <schreck.mathias@gmail.com>";
-  loskutov = "Ignat Loskutov <ignat.loskutov@gmail.com>";
-  lovek323 = "Jason O'Conal <jason@oconal.id.au>";
-  lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>";
-  lsix = "Lancelot SIX <lsix@lancelotsix.com>";
-  lschuermann = "Leon Schuermann <leon.git@is.currently.online>";
-  ltavard = "Laure Tavard <laure.tavard@univ-grenoble-alpes.fr>";
-  lucas8 = "Luc Chabassier <luc.linux@mailoo.org>";
-  ludo = "Ludovic Courtès <ludo@gnu.org>";
-  lufia = "Kyohei Kadota <lufia@lufia.org>";
-  luispedro = "Luis Pedro Coelho <luis@luispedro.org>";
-  lukego = "Luke Gorrie <luke@snabb.co>";
-  luz = "Luz <luz666@daum.net>";
-  lw = "Sergey Sofeychuk <lw@fmap.me>";
-  lyt = "Tim Liou <wheatdoge@gmail.com>";
-  m3tti = "Mathaeus Sander <mathaeus.peter.sander@gmail.com>";
-  ma27 = "Maximilian Bosch <maximilian@mbosch.me>";
-  madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
-  magnetophon = "Bart Brouns <bart@magnetophon.nl>";
-  mahe = "Matthias Herrmann <matthias.mh.herrmann@gmail.com>";
-  makefu = "Felix Richter <makefu@syntax-fehler.de>";
-  malyn = "Michael Alyn Miller <malyn@strangeGizmo.com>";
-  manveru = "Michael Fellinger <m.fellinger@gmail.com>";
-  marcweber = "Marc Weber <marco-oweber@gmx.de>";
-  markus1189 = "Markus Hauck <markus1189@gmail.com>";
-  markuskowa = "Markus Kowalewski <markus.kowalewski@gmail.com>";
-  markWot = "Markus Wotringer <markus@wotringer.de>";
-  martijnvermaat = "Martijn Vermaat <martijn@vermaat.name>";
-  martingms = "Martin Gammelsæter <martin@mg.am>";
-  matejc = "Matej Cotman <cotman.matej@gmail.com>";
-  mathnerd314 = "Mathnerd314 <mathnerd314.gph+hs@gmail.com>";
-  matthewbauer = "Matthew Bauer <mjbauer95@gmail.com>";
-  matthiasbeyer = "Matthias Beyer <mail@beyermatthias.de>";
-  maurer = "Matthew Maurer <matthew.r.maurer+nix@gmail.com>";
-  mbakke = "Marius Bakke <mbakke@fastmail.com>";
-  mbbx6spp = "Susan Potter <me@susanpotter.net>";
-  mbe = "Brandon Edens <brandonedens@gmail.com>";
-  mbode = "Maximilian Bode <maxbode@gmail.com>";
-  mboes = "Mathieu Boespflug <mboes@tweag.net>";
-  mbrgm = "Marius Bergmann <marius@yeai.de>";
-  mcmtroffaes = "Matthias C. M. Troffaes <matthias.troffaes@gmail.com>";
-  mdaiter = "Matthew S. Daiter <mdaiter8121@gmail.com>";
-  meditans = "Carlo Nucera <meditans@gmail.com>";
-  mehandes = "Matt Deming <niewskici@gmail.com>";
-  meisternu = "Matt Miemiec <meister@krutt.org>";
-  metabar = "Celine Mercier <softs@metabarcoding.org>";
-  mgdelacroix = "Miguel de la Cruz <mgdelacroix@gmail.com>";
-  mgttlinger = "Merlin Göttlinger <megoettlinger@gmail.com";
-  mguentner = "Maximilian Güntner <code@klandest.in>";
-  mic92 = "Jörg Thalheim <joerg@thalheim.io>";
-  michaelpj = "Michael Peyton Jones <michaelpj@gmail.com>";
-  michalrus = "Michal Rus <m@michalrus.com>";
-  michelk = "Michel Kuhlmann <michel@kuhlmanns.info>";
-  mickours = "Michael Mercier <mickours@gmail.com<";
-  midchildan = "midchildan <midchildan+nix@gmail.com>";
-  mikefaille = "Michaël Faille <michael@faille.io>";
-  mikoim = "Eshin Kunishima <ek@esh.ink>";
-  miltador = "Vasiliy Solovey <miltador@yandex.ua>";
-  mimadrid = "Miguel Madrid <mimadrid@ucm.es>";
-  mirdhyn = "Merlin Gaillard <mirdhyn@gmail.com>";
-  mirrexagon = "Andrew Abbott <mirrexagon@mirrexagon.com>";
-  mjanczyk = "Marcin Janczyk <m@dragonvr.pl>";
-  mjp = "Mike Playle <mike@mythik.co.uk>"; # github = "MikePlayle";
-  mkg = "Mark K Gardner <mkg@vt.edu>";
-  mlieberman85 = "Michael Lieberman <mlieberman85@gmail.com>";
-  mmahut = "Marek Mahut <marek.mahut@gmail.com>";
-  moaxcp = "John Mercier <moaxcp@gmail.com>";
-  modulistic = "Pablo Costa <modulistic@gmail.com>";
-  mog = "Matthew O'Gorman <mog-lists@rldn.net>";
-  montag451 = "montag451 <montag451@laposte.net>";
-  moosingin3space = "Nathan Moos <moosingin3space@gmail.com>";
-  moredread = "André-Patrick Bubel <code@apb.name>";
-  moretea = "Maarten Hoogendoorn <maarten@moretea.nl>";
-  mornfall = "Petr Ročkai <me@mornfall.net>";
-  MostAwesomeDude = "Corbin Simpson <cds@corbinsimpson.com>";
-  mounium = "Katona László <muoniurn@gmail.com>";
-  MP2E = "Cray Elliott <MP2E@archlinux.us>";
-  mpcsh = "Mark Cohen <m@mpc.sh>";
-  mpickering = "Matthew Pickering <matthewtpickering@gmail.com>";
-  mpscholten = "Marc Scholten <marc@mpscholten.de>";
-  mpsyco = "Francis St-Amour <fr.st-amour@gmail.com>";
-  mrVanDalo = "Ingolf Wanger <contact@ingolf-wagner.de>";
-  msackman = "Matthew Sackman <matthew@wellquite.org>";
-  mschristiansen = "Mikkel Christiansen <mikkel@rheosystems.com>";
-  mstarzyk = "Maciek Starzyk <mstarzyk@gmail.com>";
-  msteen = "Matthijs Steen <emailmatthijs@gmail.com>";
-  mt-caret = "Masayuki Takeda <mtakeda.enigsol@gmail.com>";
-  mtreskin = "Max Treskin <zerthurd@gmail.com>";
-  mudri = "James Wood <lamudri@gmail.com>";
-  muflax = "Stefan Dorn <mail@muflax.com>";
-  myrl = "Myrl Hex <myrl.0xf@gmail.com>";
-  nadrieril = "Nadrieril Feneanar <nadrieril@gmail.com>";
-  namore = "Roman Naumann <namor@hemio.de>";
-  nand0p = "Fernando Jose Pando <nando@hex7.com>";
-  Nate-Devv = "Nathan Moore <natedevv@gmail.com>";
-  nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
-  nckx = "Tobias Geerinckx-Rice <github@tobias.gr>";
-  ndowens = "Nathan Owens <ndowens04@gmail.com>";
-  neeasade = "Nathan Isom <nathanisom27@gmail.com>";
-  nequissimus = "Tim Steinbach <tim@nequissimus.com>";
-  nfjinjing = "Jinjing Wang <nfjinjing@gmail.com>";
-  nh2 = "Niklas Hambüchen <mail@nh2.me>";
-  nhooyr = "Anmol Sethi <anmol@aubble.com>";
-  nickhu = "Nick Hu <me@nickhu.co.uk>";
-  nicknovitski = "Nick Novitski <nixpkgs@nicknovitski.com>";
-  nico202 = "Nicolò Balzarotti <anothersms@gmail.com>";
-  NikolaMandic = "Ratko Mladic <nikola@mandic.email>";
-  ninjatrappeur = "Félix Baylac-Jacqué <felix@alternativebit.fr>";
-  nipav = "Niko Pavlinek <niko.pavlinek@gmail.com>";
-  nixy = "Andrew R. M. <nixy@nixy.moe>";
-  nmattia = "Nicolas Mattia <nicolas@nmattia.com>";
-  nocoolnametom = "Tom Doggett <nocoolnametom@gmail.com>";
-  notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
-  np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
-  nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
-  nthorne = "Niklas Thörne <notrupertthorne@gmail.com>";
-  nyarly = "Judson Lester <nyarly@gmail.com>";
-  obadz = "obadz <obadz-nixos@obadz.com>";
-  ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
-  odi = "Oliver Dunkl <oliver.dunkl@gmail.com>";
-  offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
-  oida = "oida <oida@posteo.de>";
-  okasu = "Okasu <oka.sux@gmail.com>";
-  olcai = "Erik Timan <dev@timan.info>";
-  olejorgenb = "Ole Jørgen Brønner <olejorgenb@yahoo.no>";
-  olynch = "Owen Lynch <owen@olynch.me>";
-  orbekk = "KJ Ørbekk <kjetil.orbekk@gmail.com>";
-  orbitz = "Malcolm Matalka <mmatalka@gmail.com>";
-  orivej = "Orivej Desh <orivej@gmx.fr>";
-  osener = "Ozan Sener <ozan@ozansener.com>";
-  otwieracz = "Slawomir Gonet <slawek@otwiera.cz>";
-  oxij = "Jan Malakhovski <oxij@oxij.org>";
-  paholg = "Paho Lurie-Gregg <paho@paholg.com>";
-  pakhfn = "Fedor Pakhomov <pakhfn@gmail.com>";
-  panaeon = "Vitalii Voloshyn <vitalii.voloshyn@gmail.com";
-  paperdigits = "Mica Semrick <mica@silentumbrella.com>";
-  paraseba = "Sebastian Galkin <paraseba@gmail.com>";
-  pashev = "Igor Pashev <pashev.igor@gmail.com>";
-  patternspandemic = "Brad Christensen <patternspandemic@live.com>";
-  pawelpacana = "Paweł Pacana <pawel.pacana@gmail.com>";
-  pbogdan = "Piotr Bogdan <ppbogdan@gmail.com>";
-  pcarrier = "Pierre Carrier <pc@rrier.ca>";
-  periklis = "theopompos@gmail.com";
-  pesterhazy = "Paulus Esterhazy <pesterhazy@gmail.com>";
-  peterhoeg = "Peter Hoeg <peter@hoeg.com>";
-  peterromfeldhk = "Peter Romfeld <peter.romfeld.hk@gmail.com>";
-  peti = "Peter Simons <simons@cryp.to>";
-  philandstuff = "Philip Potter <philip.g.potter@gmail.com>";
-  phile314 = "Philipp Hausmann <nix@314.ch>";
-  Phlogistique = "Noé Rubinstein <noe.rubinstein@gmail.com>";
-  phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
-  phunehehe = "Hoang Xuan Phu <phunehehe@gmail.com>";
-  pierrechevalier83 = "Pierre Chevalier <pierrechevalier83@gmail.com>";
-  pierrer = "Pierre Radermecker <pierrer@pi3r.be>";
-  pierron = "Nicolas B. Pierron <nixos@nbp.name>";
-  piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
-  pjbarnoy = "Perry Barnoy <pjbarnoy@gmail.com>";
-  pjones = "Peter Jones <pjones@devalot.com>";
-  pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
-  plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
-  plumps = "Maksim Bronsky <maks.bronsky@web.de";
-  pmahoney = "Patrick Mahoney <pat@polycrystal.org>";
-  pmeunier = "Pierre-Étienne Meunier <pierre-etienne.meunier@inria.fr>";
-  pmiddend = "Philipp Middendorf <pmidden@secure.mailbox.org>";
-  pneumaticat = "Kevin Liu <kevin@potatofrom.space>";
-  polyrod = "Maurizio Di Pietro <dc1mdp@gmail.com>";
-  pradeepchhetri = "Pradeep Chhetri <pradeep.chhetri89@gmail.com>";
-  prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
-  primeos = "Michael Weiss <dev.primeos@gmail.com>";
-  Profpatsch = "Profpatsch <mail@profpatsch.de>";
-  proglodyte = "Proglodyte <proglodyte23@gmail.com>";
-  pshendry = "Paul Hendry <paul@pshendry.com>";
-  psibi = "Sibi <sibi@psibi.in>";
-  pstn = "Philipp Steinpaß <philipp@xndr.de>";
-  pSub = "Pascal Wittmann <mail@pascal-wittmann.de>";
-  puffnfresh = "Brian McKenna <brian@brianmckenna.org>";
-  pxc = "Patrick Callahan <patrick.callahan@latitudeengineering.com>";
-  qknight = "Joachim Schiele <js@lastlog.de>";
-  ragge = "Ragnar Dahlen <r.dahlen@gmail.com>";
-  ralith = "Benjamin Saunders <ben.e.saunders@gmail.com>";
-  ramkromberg = "Ram Kromberg <ramkromberg@mail.com>";
-  rardiol = "Ricardo Ardissone <ricardo.ardissone@gmail.com>";
-  rasendubi = "Alexey Shmalko <rasen.dubi@gmail.com>";
-  raskin = "Michael Raskin <7c6f434c@mail.ru>";
-  ravloony = "Tom Macdonald <ravloony@gmail.com>";
-  razvan = "Răzvan Flavius Panda <razvan.panda@gmail.com>";
-  rbasso = "Rafael Basso <rbasso@sharpgeeks.net>";
-  redbaron = "Maxim Ivanov <ivanov.maxim@gmail.com>";
-  redvers = "Redvers Davies <red@infect.me>";
-  refnil = "Martin Lavoie <broemartino@gmail.com>";
-  regnat = "Théophane Hufschmitt <regnat@regnat.ovh>";
-  relrod = "Ricky Elrod <ricky@elrod.me>";
-  renzo = "Renzo Carbonara <renzocarbonara@gmail.com>";
-  retrry = "Tadas Barzdžius <retrry@gmail.com>";
-  rht = "rht <rhtbot@protonmail.com>";
-  richardipsum = "Richard Ipsum <richardipsum@fastmail.co.uk>";
-  rick68 = "Wei-Ming Yang <rick68@gmail.com>";
-  rickynils = "Rickard Nilsson <rickynils@gmail.com>";
-  ris = "Robert Scott <code@humanleg.org.uk>";
-  rlupton20 = "Richard Lupton <richard.lupton@gmail.com>";
-  rnhmjoj = "Michele Guerini Rocco <micheleguerinirocco@me.com>";
-  rob = "Rob Vermaas <rob.vermaas@gmail.com>";
-  robberer = "Longrin Wischnewski <robberer@freakmail.de>";
-  robbinch = "Robbin C. <robbinch33@gmail.com>";
-  roberth = "Robert Hensing <nixpkgs@roberthensing.nl>";
-  robertodr = "Roberto Di Remigio <roberto.diremigio@gmail.com>";
-  robgssp = "Rob Glossop <robgssp@gmail.com>";
-  roblabla = "Robin Lambertz <robinlambertz+dev@gmail.com>";
-  roconnor = "Russell O'Connor <roconnor@theorem.ca>";
-  romildo = "José Romildo Malaquias <malaquias@gmail.com>";
-  rongcuid = "Rongcui Dong <rongcuid@outlook.com>";
-  rszibele = "Richard Szibele <richard@szibele.com>";
-  rtreffer = "Rene Treffer <treffer+nixos@measite.de>";
-  rushmorem = "Rushmore Mushambi <rushmore@webenchanter.com>";
-  rvl = "Rodney Lorrimar <dev+nix@rodney.id.au>";
-  rvlander = "Gaëtan André <rvlander@gaetanandre.eu>";
-  rvolosatovs = "Roman Volosatovs <rvolosatovs@riseup.net>";
-  ryanartecona = "Ryan Artecona <ryanartecona@gmail.com>";
-  ryansydnor = "Ryan Sydnor <ryan.t.sydnor@gmail.com>";
-  ryantm = "Ryan Mulligan <ryan@ryantm.com>";
-  ryantrinkle = "Ryan Trinkle <ryan.trinkle@gmail.com>";
-  rybern = "Ryan Bernstein <ryan.bernstein@columbia.edu>";
-  rycee = "Robert Helgesson <robert@rycee.net>";
-  ryneeverett = "Ryne Everett <ryneeverett@gmail.com>";
-  rzetterberg = "Richard Zetterberg <richard.zetterberg@gmail.com>";
-  s1lvester = "Markus Silvester <s1lvester@bockhacker.me>";
-  samdroid-apps = "Sam Parkinson <sam@sam.today>";
-  samueldr = "Samuel Dionne-Riel <samuel@dionne-riel.com>";
-  samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
-  sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
-  sargon = "Daniel Ehlers <danielehlers@mindeye.net>";
-  sauyon = "Sauyon Lee <s@uyon.co>";
-  schmitthenner = "Fabian Schmitthenner <development@schmitthenner.eu>";
-  schneefux = "schneefux <schneefux+nixos_pkg@schneefux.xyz>";
-  schristo = "Scott Christopher <schristopher@konputa.com>";
-  scode = "Peter Schuller <peter.schuller@infidyne.com>";
-  scolobb = "Sergiu Ivanov <sivanov@colimite.fr>";
-  sdll = "Sasha Illarionov <sasha.delly@gmail.com>";
-  SeanZicari = "Sean Zicari <sean.zicari@gmail.com>";
-  sellout = "Greg Pfeil <greg@technomadic.org>";
-  sepi = "Raffael Mancini <raffael@mancini.lu>";
-  seppeljordan = "Sebastian Jordan <sebastian.jordan.mail@googlemail.com>";
-  sfrijters = "Stefan Frijters <sfrijters@gmail.com>";
-  shanemikel = "Shane Pearlman <shanemikel1@gmail.com>";
-  shawndellysse = "Shawn Dellysse <sdellysse@gmail.com>";
-  sheenobu = "Sheena Artrip <sheena.artrip@gmail.com>";
-  sheganinans = "Aistis Raulinaitis <sheganinans@gmail.com>";
-  shell = "Shell Turner <cam.turn@gmail.com>";
-  shlevy = "Shea Levy <shea@shealevy.com>";
-  siddharthist = "Langston Barrett <langston.barrett@gmail.com>";
-  sifmelcara = "Ming Chuan <ming@culpring.com>";
-  sigma = "Yann Hodique <yann.hodique@gmail.com>";
-  simonvandel = "Simon Vandel Sillesen <simon.vandel@gmail.com>";
-  sivteck = "Sivaram Balakrishnan <sivaram1992@gmail.com>";
-  sjagoe = "Simon Jagoe <simon@simonjagoe.com>";
-  sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
-  sjourdois = "Stéphane ‘kwisatz’ Jourdois <sjourdois@gmail.com>";
-  skeidel = "Sven Keidel <svenkeidel@gmail.com>";
-  skrzyp = "Jakub Skrzypnik <jot.skrzyp@gmail.com>";
-  sleexyz = "Sean Lee <freshdried@gmail.com>";
-  smironov = "Sergey Mironov <grrwlf@gmail.com>";
-  snyh = "Xia Bin <snyh@snyh.org>";
-  solson = "Scott Olson <scott@solson.me>";
-  sorpaas = "Wei Tang <hi@that.world>";
-  sorki = "Richard Marko <srk@48.io>";
-  spacefrogg = "Michael Raitza <spacefrogg-nixos@meterriblecrew.net>";
-  spencerjanssen = "Spencer Janssen <spencerjanssen@gmail.com>";
-  spinus = "Tomasz Czyż <tomasz.czyz@gmail.com>";
-  sprock = "Roger Mason <rmason@mun.ca>";
-  spwhitt = "Spencer Whitt <sw@swhitt.me>";
-  srhb = "Sarah Brofeldt <sbrofeldt@gmail.com>";
-  SShrike = "Severen Redwood <severen@shrike.me>";
-  stephenmw = "Stephen Weinberg <stephen@q5comm.com>";
-  sternenseemann = "Lukas Epple <post@lukasepple.de>";
-  stesie = "Stefan Siegl <stesie@brokenpipe.de>";
-  steveej = "Stefan Junker <mail@stefanjunker.de>";
-  StijnDW = "Stijn DW <stekke@airmail.cc>";
-  StillerHarpo = "Florian Engel <florianengel39@gmail.com>";
-  stumoss = "Stuart Moss <samoss@gmail.com>";
-  SuprDewd = "Bjarki Ágúst Guðmundsson <suprdewd@gmail.com>";
-  suvash = "Suvash Thapaliya <suvash+nixpkgs@gmail.com>";
-  svsdep = "Vasyl Solovei <svsdep@gmail.com>";
-  swarren83 = "Shawn Warren <shawn.w.warren@gmail.com>";
-  swflint = "Samuel W. Flint <swflint@flintfam.org>";
-  swistak35 = "Rafał Łasocha <me@swistak35.com>";
-  symphorien = "Guillaume Girol <symphorien_nixpkgs@xlumurb.eu>";
-  szczyp = "Szczyp <qb@szczyp.com>";
-  sztupi = "Attila Sztupak <attila.sztupak@gmail.com>";
-  tadfisher = "Tad Fisher <tadfisher@gmail.com>";
-  taeer = "Taeer Bar-Yam <taeer@necsi.edu>";
-  tailhook = "Paul Colomiets <paul@colomiets.name>";
-  taketwo = "Sergey Alexandrov <alexandrov88@gmail.com>";
-  takikawa = "Asumu Takikawa <asumu@igalia.com>";
-  taktoa = "Remy Goldschmidt <taktoa@gmail.com>";
-  taku0 = "Takuo Yonezawa <mxxouy6x3m_github@tatapa.org>";
-  tari = "Peter Marheine <peter@taricorp.net>";
-  tavyc = "Octavian Cerna <octavian.cerna@gmail.com>";
-  TealG = "Teal Gaure <~@Teal.Gr>";
-  teh = "Tom Hunger <tehunger@gmail.com>";
-  telotortium = "Robert Irelan <rirelan@gmail.com>";
-  teozkr = "Teo Klestrup Röijezon <teo@nullable.se>";
-  teto = "Matthieu Coudron <mcoudron@hotmail.com>";
-  tex = "Milan Svoboda <milan.svoboda@centrum.cz>";
-  thall = "Niclas Thall <niclas.thall@gmail.com>";
-  thammers = "Tobias Hammerschmidt <jawr@gmx.de>";
-  thanegill = "Thane Gill <me@thanegill.com>";
-  the-kenny = "Moritz Ulrich <moritz@tarn-vedra.de>";
-  theuni = "Christian Theune <ct@flyingcircus.io>";
-  ThomasMader = "Thomas Mader <thomas.mader@gmail.com>";
-  thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
-  thpham = "Thomas Pham <thomas.pham@ithings.ch>";
-  tilpner = "Till Höppner <till@hoeppner.ws>";
-  timbertson = "Tim Cuthbertson <tim@gfxmonk.net>";
-  timokau = "Timo Kaufmann <timokau@zoho.com>";
-  timor = "timor <timor.dd@googlemail.com>";
-  tiramiseb = "Sébastien Maccagnoni <sebastien@maccagnoni.eu>";
-  titanous = "Jonathan Rudenberg <jonathan@titanous.com>";
-  tnias = "Philipp Bartsch <phil@grmr.de>";
-  tohl = "Tomas Hlavaty <tom@logand.com>";
-  tokudan = "Daniel Frank <git@danielfrank.net>";
-  tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
-  tomsmeets = "Tom Smeets <tom@tsmeets.nl>";
-  travisbhartwell = "Travis B. Hartwell <nafai@travishartwell.net>";
-  treemo = "Matthieu Chevrier <matthieu.chevrier@treemo.fr>";
-  trevorj = "Trevor Joynson <nix@trevor.joynson.io>";
-  trino = "Hubert Mühlhans <muehlhans.hubert@ekodia.de>";
-  troydm = "Dmitry Geurkov <d.geurkov@gmail.com>";
-  tstrobel = "Thomas Strobel <4ZKTUB6TEP74PYJOPWIR013S2AV29YUBW5F9ZH2F4D5UMJUJ6S@hash.domains>";
-  ttuegel = "Thomas Tuegel <ttuegel@mailbox.org>";
-  tv = "Tomislav Viljetić <tv@shackspace.de>";
-  tvestelind = "Tomas Vestelind <tomas.vestelind@fripost.org>";
-  tvorog = "Marsel Zaripov <marszaripov@gmail.com>";
-  tweber = "Thorsten Weber <tw+nixpkgs@360vier.de>";
-  twey = "James ‘Twey’ Kay <twey@twey.co.uk>";
-  unode = "Renato Alves <alves.rjc@gmail.com>";
-  uralbash = "Svintsov Dmitry <root@uralbash.ru>";
-  utdemir = "Utku Demir <me@utdemir.com>";
-  #urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>"; inactive since 2012
-  uwap = "uwap <me@uwap.name>";
-  va1entin = "Valentin Heidelberger <github@valentinsblog.com>";
-  vaibhavsagar = "Vaibhav Sagar <vaibhavsagar@gmail.com>";
-  valeriangalliat = "Valérian Galliat <val@codejam.info>";
-  vandenoever = "Jos van den Oever <jos@vandenoever.info>";
-  vanschelven = "Klaas van Schelven <klaas@vanschelven.com>";
-  vanzef = "Ivan Solyankin <vanzef@gmail.com>";
-  varunpatro = "Varun Patro <varun.kumar.patro@gmail.com>";
-  vbgl = "Vincent Laporte <Vincent.Laporte@gmail.com>";
-  vbmithr = "Vincent Bernardoff <vb@luminar.eu.org>";
-  vcunat = "Vladimír Čunát <vcunat@gmail.com>";
-  vdemeester = "Vincent Demeester <vincent@sbr.pm>";
-  velovix = "Tyler Compton <xaviosx@gmail.com>";
-  veprbl = "Dmitry Kalinkin <veprbl@gmail.com>";
-  vidbina = "David Asabina <vid@bina.me>";
-  vifino = "Adrian Pistol <vifino@tty.sh>";
-  vinymeuh = "VinyMeuh <vinymeuh@gmail.com>";
-  viric = "Lluís Batlle i Rossell <viric@viric.name>";
-  vizanto = "Danny Wilson <danny@prime.vc>";
-  vklquevs = "vklquevs <vklquevs@gmail.com>";
-  vlstill = "Vladimír Štill <xstill@fi.muni.cz>";
-  vmandela = "Venkateswara Rao Mandela <venkat.mandela@gmail.com>";
-  vmchale = "Vanessa McHale <tmchale@wisc.edu>";
-  volhovm = "Mikhail Volkhov <volhovm.cs@gmail.com>";
-  volth = "Jaroslavas Pocepko <jaroslavas@volth.com>";
-  vozz = "Oliver Hunt <oliver.huntuk@gmail.com>";
-  vrthra = "Rahul Gopinath <rahul@gopinath.org>";
-  vyp = "vyp <elisp.vim@gmail.com>";
-  wedens = "wedens <kirill.wedens@gmail.com>";
-  willibutz = "Willi Butz <willibutz@posteo.de>";
-  willtim = "Tim Philip Williams <tim.williams.public@gmail.com>";
-  winden = "Antonio Vargas Gonzalez <windenntw@gmail.com>";
-  wizeman = "Ricardo M. Correia <rcorreia@wizy.org>";
-  wjlroe = "William Roe <willroe@gmail.com>";
-  wkennington = "William A. Kennington III <william@wkennington.com>";
-  wmertens = "Wout Mertens <Wout.Mertens@gmail.com>";
-  woffs = "Frank Doepper <github@woffs.de>";
-  womfoo = "Kranium Gikos Mendoza <kranium@gikos.net>";
-  wscott = "Wayne Scott <wsc9tt@gmail.com>";
-  wyvie = "Elijah Rum <elijahrum@gmail.com>";
-  xaverdh = "Dominik Xaver Hörl <hoe.dom@gmx.de>";
-  xeji = "xeji <xeji@cat3.de>";
-  xnwdd = "Guillermo NWDD <nwdd+nixos@no.team>";
-  xurei = "Olivier Bourdoux <olivier.bourdoux@gmail.com>";
-  xvapx = "Marti Serra <marti.serra.coscollano@gmail.com>";
-  xwvvvvwx = "David Terry <davidterry@posteo.de>";
-  xzfc = "Albert Safin <xzfcpw@gmail.com>";
-  y0no = "Yoann Ono <y0no@y0no.fr>";
-  yarr = "Dmitry V. <savraz@gmail.com>";
-  yegortimoshenko = "Yegor Timoshenko <yegortimoshenko@gmail.com>";
-  yesbox = "Jesper Geertsen Jonsson <jesper.geertsen.jonsson@gmail.com>";
-  ylwghst = "Burim Augustin Berisa <ylwghst@onionmail.info>";
-  yochai = "Yochai <yochai@titat.info>";
-  yorickvp = "Yorick van Pelt <yorickvanpelt@gmail.com>";
-  yrashk = "Yurii Rashkovskii <yrashk@gmail.com>";
-  yuriaisaka = "Yuri Aisaka <yuri.aisaka+nix@gmail.com>";
-  yurrriq = "Eric Bailey <eric@ericb.me>";
-  z77z = "Marco Maggesi <maggesi@math.unifi.it>";
-  zagy = "Christian Zagrodnick <cz@flyingcircus.io>";
-  zalakain = "Unai Zalakain <contact@unaizalakain.info>";
-  zarelit = "David Costa <david@zarel.net>";
-  zauberpony = "Elmar Athmer <elmar@athmer.org>";
-  zef = "Zef Hemel <zef@zef.me>";
-  zimbatm = "zimbatm <zimbatm@zimbatm.com>";
-  Zimmi48 = "Théo Zimmermann <theo.zimmermann@univ-paris-diderot.fr>";
-  zohl = "Al Zohali <zohl@fmap.me>";
-  zoomulator = "Kim Simmons <zoomulator@gmail.com>";
-  zraexy = "David Mell <zraexy@gmail.com>";
-  zx2c4 = "Jason A. Donenfeld <Jason@zx2c4.com>";
-  zzamboni = "Diego Zamboni <diego@zzamboni.org>";
-}
diff --git a/lib/strings.nix b/lib/strings.nix
index 9cbd1494a2b50..e6df7d99cb2e1 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -437,6 +437,13 @@ rec {
   */
   fixedWidthNumber = width: n: fixedWidthString width "0" (toString n);
 
+  /* Check whether a value can be coerced to a string */
+  isCoercibleToString = x:
+    builtins.elem (builtins.typeOf x) [ "path" "string" "null" "int" "float" "bool" ] ||
+    (builtins.isList x && lib.all isCoercibleToString x) ||
+    x ? outPath ||
+    x ? __toString;
+
   /* Check whether a value is a store path.
 
      Example:
@@ -450,7 +457,7 @@ rec {
        => false
   */
   isStorePath = x:
-       builtins.isString x
+       isCoercibleToString x
     && builtins.substring 0 1 (toString x) == "/"
     && dirOf (builtins.toPath x) == builtins.storeDir;
 
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index 1657ec33a46ce..e10aea48e48e7 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -93,6 +93,7 @@ runTests {
             "${builtins.storeDir}/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11";
       in {
         storePath = isStorePath goodPath;
+        storePathDerivation = isStorePath (import ../.. {}).hello;
         storePathAppendix = isStorePath
           "${goodPath}/bin/python";
         nonAbsolute = isStorePath (concatStrings (tail (stringToCharacters goodPath)));
@@ -106,6 +107,7 @@ runTests {
       };
     expected = {
       storePath = true;
+      storePathDerivation = true;
       storePathAppendix = false;
       nonAbsolute = false;
       asPath = true;
diff --git a/lib/tests/release.nix b/lib/tests/release.nix
index a6184041682f0..9904a25ecc482 100644
--- a/lib/tests/release.nix
+++ b/lib/tests/release.nix
@@ -21,7 +21,7 @@ pkgs.stdenv.mkDerivation {
     nix-store --init
 
     cd ${pkgs.path}/lib/tests
-    ./modules.sh
+    bash ./modules.sh
 
     [[ "$(nix-instantiate --eval --strict misc.nix)" == "[ ]" ]]
 
diff --git a/lib/versions.nix b/lib/versions.nix
new file mode 100644
index 0000000000000..8f7f98ff5e1e1
--- /dev/null
+++ b/lib/versions.nix
@@ -0,0 +1,47 @@
+/* Version string functions. */
+{ lib }:
+
+let
+
+  splitVersion = builtins.splitVersion or (lib.splitString ".");
+
+in
+
+rec {
+
+  /* Get the major version string from a string.
+
+    Example:
+      major "1.2.3"
+      => "1"
+  */
+  major = v: builtins.elemAt (splitVersion v) 0;
+
+  /* Get the minor version string from a string.
+
+    Example:
+      minor "1.2.3"
+      => "2"
+  */
+  minor = v: builtins.elemAt (splitVersion v) 1;
+
+  /* Get the patch version string from a string.
+
+    Example:
+      patch "1.2.3"
+      => "3"
+  */
+  patch = v: builtins.elemAt (splitVersion v) 2;
+
+  /* Get string of the first two parts (major and minor)
+     of a version string.
+
+     Example:
+       majorMinor "1.2.3"
+       => "1.2"
+  */
+  majorMinor = v:
+    builtins.concatStringsSep "."
+    (lib.take 2 (splitVersion v));
+
+}
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
new file mode 100644
index 0000000000000..c84bbc5413735
--- /dev/null
+++ b/maintainers/maintainer-list.nix
@@ -0,0 +1,3964 @@
+/* List of NixOS maintainers.
+
+    handle = {
+      name = "Real name";
+      email = "address@example.org";
+      github = "GithubUsername";
+    };
+
+  where `name` is your real name, `email` is your maintainer email
+  address and `github` is your GitHub handle (as it appears in the
+  URL of your profile page, `https://github.com/<userhandle>`).
+ address
+  The only required fields are `name` and `email`.
+  More fields may be added in the future.
+
+  Please keep the list alphabetically sorted.
+  See `../maintainers/scripts/check-maintainer-github-handles.sh`
+  for an example on how to work with this data.
+  */
+{
+  Adjective-Object = {
+    email = "mhuan13@gmail.com";
+    github = "Adjective-Object";
+    name = "Maxwell Huang-Hobbs";
+  };
+  AndersonTorres = {
+    email = "torres.anderson.85@gmail.com";
+    github = "AndersonTorres";
+    name = "Anderson Torres";
+  };
+  Baughn = {
+    email = "sveina@gmail.com";
+    github = "Baughn";
+    name = "Svein Ove Aas";
+  };
+  ChengCat = {
+    email = "yu@cheng.cat";
+    github = "ChengCat";
+    name = "Yucheng Zhang";
+  };
+  CrystalGamma = {
+    email = "nixos@crystalgamma.de";
+    github = "CrystalGamma";
+    name = "Jona Stubbe";
+  };
+  DamienCassou = {
+    email = "damien@cassou.me";
+    github = "DamienCassou";
+    name = "Damien Cassou";
+  };
+  DerGuteMoritz = {
+    email = "moritz@twoticketsplease.de";
+    github = "DerGuteMoritz";
+    name = "Moritz Heidkamp";
+  };
+  DerTim1 = {
+    email = "tim.digel@active-group.de";
+    github = "DerTim1";
+    name = "Tim Digel";
+  };
+  DmitryTsygankov = {
+    email = "dmitry.tsygankov@gmail.com";
+    github = "DmitryTsygankov";
+    name = "Dmitry Tsygankov";
+  };
+  FireyFly = {
+    email = "nix@firefly.nu";
+    github = "FireyFly";
+    name = "Jonas Höglund";
+  };
+  Gonzih = {
+    email = "gonzih@gmail.com";
+    github = "Gonzih";
+    name = "Max Gonzih";
+  };
+  Jo = {
+    email = "0x4A6F@shackspace.de";
+    name = "Joachim Ernst";
+  };
+  KibaFox = {
+    email = "kiba.fox@foxypossibilities.com";
+    github = "KibaFox";
+    name = "Kiba Fox";
+  };
+  MP2E = {
+    email = "MP2E@archlinux.us";
+    github = "MP2E";
+    name = "Cray Elliott";
+  };
+  MostAwesomeDude = {
+    email = "cds@corbinsimpson.com";
+    github = "MostAwesomeDude";
+    name = "Corbin Simpson";
+  };
+  Nate-Devv = {
+    email = "natedevv@gmail.com";
+    name = "Nathan Moore";
+  };
+  NikolaMandic = {
+    email = "nikola@mandic.email";
+    github = "NikolaMandic";
+    name = "Ratko Mladic";
+  };
+  Phlogistique = {
+    email = "noe.rubinstein@gmail.com";
+    github = "Phlogistique";
+    name = "Noé Rubinstein";
+  };
+  Profpatsch = {
+    email = "mail@profpatsch.de";
+    github = "Profpatsch";
+    name = "Profpatsch";
+  };
+  SShrike = {
+    email = "severen@shrike.me";
+    github = "severen";
+    name = "Severen Redwood";
+  };
+  SeanZicari = {
+    email = "sean.zicari@gmail.com";
+    github = "SeanZicari";
+    name = "Sean Zicari";
+  };
+  StijnDW = {
+    email = "stekke@airmail.cc";
+    github = "StijnDW";
+    name = "Stijn DW";
+  };
+  StillerHarpo = {
+    email = "florianengel39@gmail.com";
+    github = "StillerHarpo";
+    name = "Florian Engel";
+  };
+  SuprDewd = {
+    email = "suprdewd@gmail.com";
+    github = "SuprDewd";
+    name = "Bjarki Ágúst Guðmundsson";
+  };
+  TealG = {
+    email = "~@Teal.Gr";
+    github = "TealG";
+    name = "Teal Gaure";
+  };
+  ThomasMader = {
+    email = "thomas.mader@gmail.com";
+    github = "ThomasMader";
+    name = "Thomas Mader";
+  };
+  Zimmi48 = {
+    email = "theo.zimmermann@univ-paris-diderot.fr";
+    github = "Zimmi48";
+    name = "Théo Zimmermann";
+  };
+  a1russell = {
+    email = "adamlr6+pub@gmail.com";
+    github = "a1russell";
+    name = "Adam Russell";
+  };
+  aaronschif = {
+    email = "aaronschif@gmail.com";
+    github = "aaronschif";
+    name = "Aaron Schif";
+  };
+  abaldeau = {
+    email = "andreas@baldeau.net";
+    github = "baldo";
+    name = "Andreas Baldeau";
+  };
+  abbradar = {
+    email = "ab@fmap.me";
+    github = "abbradar";
+    name = "Nikolay Amiantov";
+  };
+  abigailbuccaneer = {
+    email = "abigailbuccaneer@gmail.com";
+    github = "abigailbuccaneer";
+    name = "Abigail Bunyan";
+  };
+  aboseley = {
+    email = "adam.boseley@gmail.com";
+    github = "aboseley";
+    name = "Adam Boseley";
+  };
+  abuibrahim = {
+    email = "ruslan@babayev.com";
+    github = "abuibrahim";
+    name = "Ruslan Babayev";
+  };
+  acowley = {
+    email = "acowley@gmail.com";
+    github = "acowley";
+    name = "Anthony Cowley";
+  };
+  adelbertc = {
+    email = "adelbertc@gmail.com";
+    github = "adelbertc";
+    name = "Adelbert Chang";
+  };
+  adev = {
+    email = "adev@adev.name";
+    github = "adevress";
+    name = "Adrien Devresse";
+  };
+  adisbladis = {
+    email = "adis@blad.is";
+    github = "adisbladis";
+    name = "Adam Hose";
+  };
+  adnelson = {
+    email = "ithinkican@gmail.com";
+    github = "adnelson";
+    name = "Allen Nelson";
+  };
+  adolfogc = {
+    email = "adolfo.garcia.cr@gmail.com";
+    github = "adolfogc";
+    name = "Adolfo E. García Castro";
+  };
+  aespinosa = {
+    email = "allan.espinosa@outlook.com";
+    github = "aespinosa";
+    name = "Allan Espinosa";
+  };
+  aflatter = {
+    email = "flatter@fastmail.fm";
+    github = "aflatter";
+    name = "Alexander Flatter";
+  };
+  afldcr = {
+    email = "alex@fldcr.com";
+    github = "afldcr";
+    name = "James Alexander Feldman-Crough";
+  };
+  aforemny = {
+    email = "alexanderforemny@googlemail.com";
+    github = "aforemny";
+    name = "Alexander Foremny";
+  };
+  afranchuk = {
+    email = "alex.franchuk@gmail.com";
+    github = "afranchuk";
+    name = "Alex Franchuk";
+  };
+  aherrmann = {
+    email = "andreash87@gmx.ch";
+    github = "aherrmann";
+    name = "Andreas Herrmann";
+  };
+  ahmedtd = {
+    email = "ahmed.taahir@gmail.com";
+    github = "ahmedtd";
+    name = "Taahir Ahmed";
+  };
+  aij = {
+    email = "aij+git@mrph.org";
+    github = "aij";
+    name = "Ivan Jager";
+  };
+  ajgrf = {
+    email = "a@ajgrf.com";
+    github = "ajgrf";
+    name = "Alex Griffin";
+  };
+  ak = {
+    email = "ak@formalprivacy.com";
+    github = "alexanderkjeldaas";
+    name = "Alexander Kjeldaas";
+  };
+  akaWolf = {
+    email = "akawolf0@gmail.com";
+    github = "akaWolf";
+    name = "Artjom Vejsel";
+  };
+  akc = {
+    email = "akc@akc.is";
+    github = "akc";
+    name = "Anders Claesson";
+  };
+  akru = {
+    email = "mail@akru.me";
+    github = "akru";
+    name = "Alexander Krupenkin ";
+  };
+  alexvorobiev = {
+    email = "alexander.vorobiev@gmail.com";
+    github = "alexvorobiev";
+    name = "Alex Vorobiev";
+  };
+  algorith = {
+    email = "dries_van_daele@telenet.be";
+    name = "Dries Van Daele";
+  };
+  alibabzo = {
+    email = "alistair.bill@gmail.com";
+    github = "alibabzo";
+    name = "Alistair Bill";
+  };
+  all = {
+    email = "nix-commits@lists.science.uu.nl";
+    name = "Nix Committers";
+  };
+  alunduil = {
+    email = "alunduil@alunduil.com";
+    github = "alunduil";
+    name = "Alex Brandt";
+  };
+  ambrop72 = {
+    email = "ambrop7@gmail.com";
+    github = "ambrop72";
+    name = "Ambroz Bizjak";
+  };
+  amiddelk = {
+    email = "amiddelk@gmail.com";
+    github = "amiddelk";
+    name = "Arie Middelkoop";
+  };
+  amiloradovsky = {
+    email = "miloradovsky@gmail.com";
+    github = "amiloradovsky";
+    name = "Andrew Miloradovsky";
+  };
+  amorsillo = {
+    email = "andrew.morsillo@gmail.com";
+    github = "AndrewMorsillo";
+    name = "Andrew Morsillo";
+  };
+  anderspapitto = {
+    email = "anderspapitto@gmail.com";
+    github = "anderspapitto";
+    name = "Anders Papitto";
+  };
+  andir = {
+    email = "andreas@rammhold.de";
+    github = "andir";
+    name = "Andreas Rammhold";
+  };
+  andres = {
+    email = "ksnixos@andres-loeh.de";
+    github = "kosmikus";
+    name = "Andres Loeh";
+  };
+  andrestylianos = {
+    email = "andre.stylianos@gmail.com";
+    github = "andrestylianos";
+    name = "Andre S. Ramos";
+  };
+  andrew-d = {
+    email = "andrew@du.nham.ca";
+    github = "andrew-d";
+    name = "Andrew Dunham";
+  };
+  andrewrk = {
+    email = "superjoe30@gmail.com";
+    github = "andrewrk";
+    name = "Andrew Kelley";
+  };
+  andsild = {
+    email = "andsild@gmail.com";
+    github = "andsild";
+    name = "Anders Sildnes";
+  };
+  aneeshusa = {
+    email = "aneeshusa@gmail.com";
+    github = "aneeshusa";
+    name = "Aneesh Agrawal";
+  };
+  ankhers = {
+    email = "justin.k.wood@gmail.com";
+    github = "ankhers";
+    name = "Justin Wood";
+  };
+  antono = {
+    email = "self@antono.info";
+    github = "antono";
+    name = "Antono Vasiljev";
+  };
+  antonxy = {
+    email = "anton.schirg@posteo.de";
+    github = "antonxy";
+    name = "Anton Schirg";
+  };
+  apeschar = {
+    email = "albert@peschar.net";
+    github = "apeschar";
+    name = "Albert Peschar";
+  };
+  apeyroux = {
+    email = "alex@px.io";
+    github = "apeyroux";
+    name = "Alexandre Peyroux";
+  };
+  arcadio = {
+    email = "arc@well.ox.ac.uk";
+    github = "arcadio";
+    name = "Arcadio Rubio García";
+  };
+  ardumont = {
+    email = "eniotna.t@gmail.com";
+    github = "ardumont";
+    name = "Antoine R. Dumont";
+  };
+  aristid = {
+    email = "aristidb@gmail.com";
+    github = "aristidb";
+    name = "Aristid Breitkreuz";
+  };
+  arobyn = {
+    email = "shados@shados.net";
+    github = "shados";
+    name = "Alexei Robyn";
+  };
+  artuuge = {
+    email = "artuuge@gmail.com";
+    github = "artuuge";
+    name = "Artur E. Ruuge";
+  };
+  ashalkhakov = {
+    email = "artyom.shalkhakov@gmail.com";
+    github = "ashalkhakov";
+    name = "Artyom Shalkhakov";
+  };
+  ashgillman = {
+    email = "gillmanash@gmail.com";
+    github = "ashgillman";
+    name = "Ashley Gillman";
+  };
+  aske = {
+    email = "aske@fmap.me";
+    github = "aske";
+    name = "Kirill Boltaev";
+  };
+  asppsa = {
+    email = "asppsa@gmail.com";
+    github = "asppsa";
+    name = "Alastair Pharo";
+  };
+  astsmtl = {
+    email = "astsmtl@yandex.ru";
+    github = "astsmtl";
+    name = "Alexander Tsamutali";
+  };
+  asymmetric = {
+    email = "lorenzo@mailbox.org";
+    github = "asymmetric";
+    name = "Lorenzo Manacorda";
+  };
+  aszlig = {
+    email = "aszlig@nix.build";
+    github = "aszlig";
+    name = "aszlig";
+  };
+  auntie = {
+    email = "auntieNeo@gmail.com";
+    github = "auntie";
+    name = "Jonathan Glines";
+  };
+  avnik = {
+    email = "avn@avnik.info";
+    github = "avnik";
+    name = "Alexander V. Nikolaev";
+  };
+  aycanirican = {
+    email = "iricanaycan@gmail.com";
+    github = "aycanirican";
+    name = "Aycan iRiCAN";
+  };
+  babariviere = {
+    email = "babariviere@protonmail.com";
+    github = "babariviere";
+    name = "babariviere";
+  };
+  bachp = {
+    email = "pascal.bach@nextrem.ch";
+    github = "bachp";
+    name = "Pascal Bach";
+  };
+  backuitist = {
+    email = "biethb@gmail.com";
+    github = "backuitist";
+    name = "Bruno Bieth";
+  };
+  badi = {
+    email = "abdulwahidc@gmail.com";
+    github = "badi";
+    name = "Badi' Abdul-Wahid";
+  };
+  balajisivaraman = {
+    email = "sivaraman.balaji@gmail.com";
+    name = "Balaji Sivaraman";
+  };
+  barrucadu = {
+    email = "mike@barrucadu.co.uk";
+    github = "barrucadu";
+    name = "Michael Walker";
+  };
+  basvandijk = {
+    email = "v.dijk.bas@gmail.com";
+    github = "basvandijk";
+    name = "Bas van Dijk";
+  };
+  bcarrell = {
+    email = "brandoncarrell@gmail.com";
+    github = "bcarrell";
+    name = "Brandon Carrell";
+  };
+  bcdarwin = {
+    email = "bcdarwin@gmail.com";
+    github = "bcdarwin";
+    name = "Ben Darwin";
+  };
+  bdimcheff = {
+    email = "brandon@dimcheff.com";
+    github = "bdimcheff";
+    name = "Brandon Dimcheff";
+  };
+  bendlas = {
+    email = "herwig@bendlas.net";
+    github = "bendlas";
+    name = "Herwig Hochleitner";
+  };
+  benley = {
+    email = "benley@gmail.com";
+    github = "benley";
+    name = "Benjamin Staffin";
+  };
+  bennofs = {
+    email = "benno.fuenfstueck@gmail.com";
+    github = "bennofs";
+    name = "Benno Fünfstück";
+  };
+  benwbooth = {
+    email = "benwbooth@gmail.com";
+    github = "benwbooth";
+    name = "Ben Booth";
+  };
+  berce = {
+    email = "bert.moens@gmail.com";
+    github = "berce";
+    name = "Bert Moens";
+  };
+  berdario = {
+    email = "berdario@gmail.com";
+    github = "berdario";
+    name = "Dario Bertini";
+  };
+  bergey = {
+    email = "bergey@teallabs.org";
+    github = "bergey";
+    name = "Daniel Bergey";
+  };
+  bhipple = {
+    email = "bhipple@protonmail.com";
+    github = "bhipple";
+    name = "Benjamin Hipple";
+  };
+  binarin = {
+    email = "binarin@binarin.ru";
+    github = "binarin";
+    name = "Alexey Lebedeff";
+  };
+  bjg = {
+    email = "bjg@gnu.org";
+    name = "Brian Gough";
+  };
+  bjornfor = {
+    email = "bjorn.forsman@gmail.com";
+    github = "bjornfor";
+    name = "Bjørn Forsman";
+  };
+  bluescreen303 = {
+    email = "mathijs@bluescreen303.nl";
+    github = "bluescreen303";
+    name = "Mathijs Kwik";
+  };
+  bobakker = {
+    email = "bobakk3r@gmail.com";
+    github = "bobakker";
+    name = "Bo Bakker";
+  };
+  bobvanderlinden = {
+    email = "bobvanderlinden@gmail.com";
+    github = "bobvanderlinden";
+    name = "Bob van der Linden";
+  };
+  bodil = {
+    email = "nix@bodil.org";
+    github = "bodil";
+    name = "Bodil Stokke";
+  };
+  boothead = {
+    email = "ben@perurbis.com";
+    github = "boothead";
+    name = "Ben Ford";
+  };
+  bosu = {
+    email = "boriss@gmail.com";
+    github = "bosu";
+    name = "Boris Sukholitko";
+  };
+  bradediger = {
+    email = "brad@bradediger.com";
+    github = "bradediger";
+    name = "Brad Ediger";
+  };
+  bramd = {
+    email = "bram@bramd.nl";
+    github = "bramd";
+    name = "Bram Duvigneau";
+  };
+  bstrik = {
+    email = "dutchman55@gmx.com";
+    github = "bstrik";
+    name = "Berno Strik";
+  };
+  bugworm = {
+    email = "bugworm@zoho.com";
+    github = "bugworm";
+    name = "Roman Gerasimenko";
+  };
+  bzizou = {
+    email = "Bruno@bzizou.net";
+    github = "bzizou";
+    name = "Bruno Bzeznik";
+  };
+  c0bw3b = {
+    email = "c0bw3b@gmail.com";
+    github = "c0bw3b";
+    name = "Renaud";
+  };
+  c0dehero = {
+    email = "codehero@nerdpol.ch";
+    name = "CodeHero";
+  };
+  calbrecht = {
+    email = "christian.albrecht@mayflower.de";
+    github = "calbrecht";
+    name = "Christian Albrecht";
+  };
+  calrama = {
+    email = "moritz@ucworks.org";
+    github = "MoritzMaxeiner";
+    name = "Moritz Maxeiner";
+  };
+  calvertvl = {
+    email = "calvertvl@gmail.com";
+    github = "calvertvl";
+    name = "Victor Calvert";
+  };
+  campadrenalin = {
+    email = "campadrenalin@gmail.com";
+    github = "campadrenalin";
+    name = "Philip Horger";
+  };
+  canndrew = {
+    email = "shum@canndrew.org";
+    github = "canndrew";
+    name = "Andrew Cann";
+  };
+  carlsverre = {
+    email = "accounts@carlsverre.com";
+    github = "carlsverre";
+    name = "Carl Sverre";
+  };
+  casey = {
+    email = "casey@rodarmor.net";
+    github = "casey";
+    name = "Casey Rodarmor";
+  };
+  catern = {
+    email = "sbaugh@catern.com";
+    github = "catern";
+    name = "Spencer Baugh";
+  };
+  caugner = {
+    email = "nixos@caugner.de";
+    github = "caugner";
+    name = "Claas Augner";
+  };
+  cdepillabout = {
+    email = "cdep.illabout@gmail.com";
+    github = "cdepillabout";
+    name = "Dennis Gosnell";
+  };
+  cfouche = {
+    email = "chaddai.fouche@gmail.com";
+    github = "Chaddai";
+    name = "Chaddaï Fouché";
+  };
+  changlinli = {
+    email = "mail@changlinli.com";
+    github = "changlinli";
+    name = "Changlin Li";
+  };
+  chaoflow = {
+    email = "flo@chaoflow.net";
+    github = "chaoflow";
+    name = "Florian Friesdorf";
+  };
+  chattered = {
+    email = "me@philscotted.com";
+    name = "Phil Scott";
+  };
+  chiiruno = {
+    email = "okinan@protonmail.com";
+    github = "chiiruno";
+    name = "Okina Matara";
+  };
+  choochootrain = {
+    email = "hurshal@imap.cc";
+    github = "choochootrain";
+    name = "Hurshal Patel";
+  };
+  chpatrick = {
+    email = "chpatrick@gmail.com";
+    github = "chpatrick";
+    name = "Patrick Chilton";
+  };
+  chreekat = {
+    email = "b@chreekat.net";
+    github = "chreekat";
+    name = "Bryan Richter";
+  };
+  chris-martin = {
+    email = "ch.martin@gmail.com";
+    github = "chris-martin";
+    name = "Chris Martin";
+  };
+  chrisjefferson = {
+    email = "chris@bubblescope.net";
+    github = "chrisjefferson";
+    name = "Christopher Jefferson";
+  };
+  chrisrosset = {
+    email = "chris@rosset.org.uk";
+    github = "chrisrosset";
+    name = "Christopher Rosset";
+  };
+  christopherpoole = {
+    email = "mail@christopherpoole.net";
+    github = "christopherpoole";
+    name = "Christopher Mark Poole";
+  };
+  ciil = {
+    email = "simon@lackerbauer.com";
+    github = "ciil";
+    name = "Simon Lackerbauer";
+  };
+  ck3d = {
+    email = "ck3d@gmx.de";
+    github = "ck3d";
+    name = "Christian Kögler";
+  };
+  ckampka = {
+    email = "christian@kampka.net";
+    github = "kampka";
+    name = "Christian Kampka";
+  };
+  ckauhaus = {
+    email = "kc@flyingcircus.io";
+    github = "ckauhaus";
+    name = "Christian Kauhaus";
+  };
+  cko = {
+    email = "christine.koppelt@gmail.com";
+    github = "cko";
+    name = "Christine Koppelt";
+  };
+  cleverca22 = {
+    email = "cleverca22@gmail.com";
+    github = "cleverca22";
+    name = "Michael Bishop";
+  };
+  cmcdragonkai = {
+    email = "roger.qiu@matrix.ai";
+    github = "cmcdragonkai";
+    name = "Roger Qiu";
+  };
+  cmfwyp = {
+    email = "cmfwyp@riseup.net";
+    github = "cmfwyp";
+    name = "cmfwyp";
+  };
+  cobbal = {
+    email = "andrew.cobb@gmail.com";
+    github = "cobbal";
+    name = "Andrew Cobb";
+  };
+  coconnor = {
+    email = "coreyoconnor@gmail.com";
+    github = "coreyoconnor";
+    name = "Corey O'Connor";
+  };
+  codsl = {
+    email = "codsl@riseup.net";
+    github = "codsl";
+    name = "codsl";
+  };
+  codyopel = {
+    email = "codyopel@gmail.com";
+    github = "codyopel";
+    name = "Cody Opel";
+  };
+  colemickens = {
+    email = "cole.mickens@gmail.com";
+    github = "colemickens";
+    name = "Cole Mickens";
+  };
+  colescott = {
+    email = "colescottsf@gmail.com";
+    github = "colescott";
+    name = "Cole Scott";
+  };
+  copumpkin = {
+    email = "pumpkingod@gmail.com";
+    github = "copumpkin";
+    name = "Dan Peebles";
+  };
+  corngood = {
+    email = "corngood@gmail.com";
+    github = "corngood";
+    name = "David McFarland";
+  };
+  coroa = {
+    email = "jonas@chaoflow.net";
+    github = "coroa";
+    name = "Jonas Hörsch";
+  };
+  couchemar = {
+    email = "couchemar@yandex.ru";
+    github = "couchemar";
+    name = "Andrey Pavlov";
+  };
+  cpages = {
+    email = "page@ruiec.cat";
+    github = "cpages";
+    name = "Carles Pagès";
+  };
+  cransom = {
+    email = "cransom@hubns.net";
+    github = "cransom";
+    name = "Casey Ransom";
+  };
+  cryptix = {
+    email = "cryptix@riseup.net";
+    github = "cryptix";
+    name = "Henry Bubert";
+  };
+  csingley = {
+    email = "csingley@gmail.com";
+    github = "csingley";
+    name = "Christopher Singley";
+  };
+  cstrahan = {
+    email = "charles@cstrahan.com";
+    github = "cstrahan";
+    name = "Charles Strahan";
+  };
+  cwoac = {
+    email = "oliver@codersoffortune.net";
+    github = "cwoac";
+    name = "Oliver Matthews";
+  };
+  danbst = {
+    email = "abcz2.uprola@gmail.com";
+    github = "danbst";
+    name = "Danylo Hlynskyi";
+  };
+  dancek = {
+    email = "hannu.hartikainen@gmail.com";
+    github = "dancek";
+    name = "Hannu Hartikainen";
+  };
+  danharaj = {
+    email = "dan@obsidian.systems";
+    github = "danharaj";
+    name = "Dan Haraj";
+  };
+  danielfullmer = {
+    email = "danielrf12@gmail.com";
+    github = "danielfullmer";
+    name = "Daniel Fullmer";
+  };
+  dasuxullebt = {
+    email = "christoph.senjak@googlemail.com";
+    name = "Christoph-Simon Senjak";
+  };
+  david50407 = {
+    email = "me@davy.tw";
+    github = "david50407";
+    name = "David Kuo";
+  };
+  davidak = {
+    email = "post@davidak.de";
+    github = "davidak";
+    name = "David Kleuker";
+  };
+  davidrusu = {
+    email = "davidrusu.me@gmail.com";
+    github = "davidrusu";
+    name = "David Rusu";
+  };
+  davorb = {
+    email = "davor@davor.se";
+    github = "davorb";
+    name = "Davor Babic";
+  };
+  dbohdan = {
+    email = "danyil.bohdan@gmail.com";
+    github = "dbohdan";
+    name = "Danyil Bohdan";
+  };
+  dbrock = {
+    email = "daniel@brockman.se";
+    github = "dbrock";
+    name = "Daniel Brockman";
+  };
+  deepfire = {
+    email = "_deepfire@feelingofgreen.ru";
+    github = "deepfire";
+    name = "Kosyrev Serge";
+  };
+  demin-dmitriy = {
+    email = "demindf@gmail.com";
+    github = "demin-dmitriy";
+    name = "Dmitriy Demin";
+  };
+  derchris = {
+    email = "derchris@me.com";
+    github = "derchrisuk";
+    name = "Christian Gerbrandt";
+  };
+  dermetfan = {
+    email = "serverkorken@gmail.com";
+    github = "dermetfan";
+    name = "Robin Stumm";
+  };
+  desiderius = {
+    email = "didier@devroye.name";
+    github = "desiderius";
+    name = "Didier J. Devroye";
+  };
+  devhell = {
+    email = "\"^\"@regexmail.net";
+    github = "devhell";
+    name = "devhell";
+  };
+  dezgeg = {
+    email = "tuomas.tynkkynen@iki.fi";
+    github = "dezgeg";
+    name = "Tuomas Tynkkynen";
+  };
+  dfordivam = {
+    email = "dfordivam+nixpkgs@gmail.com";
+    github = "dfordivam";
+    name = "Divam";
+  };
+  dfoxfranke = {
+    email = "dfoxfranke@gmail.com";
+    github = "dfoxfranke";
+    name = "Daniel Fox Franke";
+  };
+  dgonyeo = {
+    email = "derek@gonyeo.com";
+    github = "dgonyeo";
+    name = "Derek Gonyeo";
+  };
+  dipinhora = {
+    email = "dipinhora+github@gmail.com";
+    github = "dipinhora";
+    name = "Dipin Hora";
+  };
+  disassembler = {
+    email = "disasm@gmail.com";
+    github = "disassembler";
+    name = "Samuel Leathers";
+  };
+  dizfer = {
+    email = "david@izquierdofernandez.com";
+    github = "dizfer";
+    name = "David Izquierdo";
+  };
+  dmalikov = {
+    email = "malikov.d.y@gmail.com";
+    github = "dmalikov";
+    name = "Dmitry Malikov";
+  };
+  dmjio = {
+    email = "djohnson.m@gmail.com";
+    github = "dmjio";
+    name = "David Johnson";
+  };
+  dochang = {
+    email = "dochang@gmail.com";
+    github = "dochang";
+    name = "Desmond O. Chang";
+  };
+  domenkozar = {
+    email = "domen@dev.si";
+    github = "domenkozar";
+    name = "Domen Kozar";
+  };
+  dotlambda = {
+    email = "rschuetz17@gmail.com";
+    github = "dotlambda";
+    name = "Robert Schütz";
+  };
+  doublec = {
+    email = "chris.double@double.co.nz";
+    github = "doublec";
+    name = "Chris Double";
+  };
+  dpaetzel = {
+    email = "david.a.paetzel@gmail.com";
+    github = "dpaetzel";
+    name = "David Pätzel";
+  };
+  dpflug = {
+    email = "david@pflug.email";
+    github = "dpflug";
+    name = "David Pflug";
+  };
+  drets = {
+    email = "dmitryrets@gmail.com";
+    github = "drets";
+    name = "Dmytro Rets";
+  };
+  drewkett = {
+    email = "burkett.andrew@gmail.com";
+    name = "Andrew Burkett";
+  };
+  dsferruzza = {
+    email = "david.sferruzza@gmail.com";
+    github = "dsferruzza";
+    name = "David Sferruzza";
+  };
+  dtzWill = {
+    email = "nix@wdtz.org";
+    github = "dtzWill";
+    name = "Will Dietz";
+  };
+  dupgit = {
+    email = "olivier.delhomme@free.fr";
+    github = "dupgit";
+    name = "Olivier Delhomme";
+  };
+  dywedir = {
+    email = "dywedir@protonmail.ch";
+    github = "dywedir";
+    name = "Vladyslav M.";
+  };
+  dzabraev = {
+    email = "dzabraew@gmail.com";
+    github = "dzabraev";
+    name = "Maksim Dzabraev";
+  };
+  e-user = {
+    email = "nixos@sodosopa.io";
+    github = "e-user";
+    name = "Alexander Kahl";
+  };
+  earldouglas = {
+    email = "james@earldouglas.com";
+    github = "earldouglas";
+    name = "James Earl Douglas";
+  };
+  earvstedt = {
+    email = "erik.arvstedt@gmail.com";
+    github = "erikarvstedt";
+    name = "Erik Arvstedt";
+  };
+  ebzzry = {
+    email = "ebzzry@ebzzry.io";
+    github = "ebzzry";
+    name = "Rommel Martinez";
+  };
+  edanaher = {
+    email = "nixos@edanaher.net";
+    github = "edanaher";
+    name = "Evan Danaher";
+  };
+  edef = {
+    email = "edef@edef.eu";
+    github = "edef1c";
+    name = "edef";
+  };
+  ederoyd46 = {
+    email = "matt@ederoyd.co.uk";
+    github = "ederoyd46";
+    name = "Matthew Brown";
+  };
+  eduarrrd = {
+    email = "e.bachmakov@gmail.com";
+    github = "eduarrrd";
+    name = "Eduard Bachmakov";
+  };
+  edwtjo = {
+    email = "ed@cflags.cc";
+    github = "edwtjo";
+    name = "Edward Tjörnhammar";
+  };
+  eelco = {
+    email = "eelco.dolstra@logicblox.com";
+    github = "edolstra";
+    name = "Eelco Dolstra";
+  };
+  ehegnes = {
+    email = "eric.hegnes@gmail.com";
+    github = "ehegnes";
+    name = "Eric Hegnes";
+  };
+  ehmry = {
+    email = "emery@vfemail.net";
+    name = "Emery Hemingway";
+  };
+  eikek = {
+    email = "eike.kettner@posteo.de";
+    github = "eikek";
+    name = "Eike Kettner";
+  };
+  ekleog = {
+    email = "leo@gaspard.io";
+    github = "ekleog";
+    name = "Leo Gaspard";
+  };
+  elasticdog = {
+    email = "aaron@elasticdog.com";
+    github = "elasticdog";
+    name = "Aaron Bull Schaefer";
+  };
+  eleanor = {
+    email = "dejan@proteansec.com";
+    github = "proteansec";
+    name = "Dejan Lukan";
+  };
+  elijahcaine = {
+    email = "elijahcainemv@gmail.com";
+    github = "pop";
+    name = "Elijah Caine";
+  };
+  elitak = {
+    email = "elitak@gmail.com";
+    github = "elitak";
+    name = "Eric Litak";
+  };
+  ellis = {
+    email = "nixos@ellisw.net";
+    github = "ellis";
+    name = "Ellis Whitehead";
+  };
+  enzime = {
+    email = "enzime@users.noreply.github.com";
+    github = "enzime";
+    name = "Michael Hoang";
+  };
+  eperuffo = {
+    email = "info@emanueleperuffo.com";
+    github = "emanueleperuffo";
+    name = "Emanuele Peruffo";
+  };
+  epitrochoid = {
+    email = "mpcervin@uncg.edu";
+    name = "Mabry Cervin";
+  };
+  eqyiel = {
+    email = "r@rkm.id.au";
+    github = "eqyiel";
+    name = "Ruben Maher";
+  };
+  ericbmerritt = {
+    email = "eric@afiniate.com";
+    github = "ericbmerritt";
+    name = "Eric Merritt";
+  };
+  erosennin = {
+    email = "ag@sologoc.com";
+    github = "erosennin";
+    name = "Andrey Golovizin";
+  };
+  ericsagnes = {
+    email = "eric.sagnes@gmail.com";
+    github = "ericsagnes";
+    name = "Eric Sagnes";
+  };
+  ericson2314 = {
+    email = "John.Ericson@Obsidian.Systems";
+    github = "ericson2314";
+    name = "John Ericson";
+  };
+  erictapen = {
+    email = "justin.humm@posteo.de";
+    github = "erictapen";
+    name = "Justin Humm";
+  };
+  erikryb = {
+    email = "erik.rybakken@math.ntnu.no";
+    github = "erikryb";
+    name = "Erik Rybakken";
+  };
+  ertes = {
+    email = "esz@posteo.de";
+    github = "ertes";
+    name = "Ertugrul Söylemez";
+  };
+  ethercrow = {
+    email = "ethercrow@gmail.com";
+    github = "ethercrow";
+    name = "Dmitry Ivanov";
+  };
+  etu = {
+    email = "elis@hirwing.se";
+    github = "etu";
+    name = "Elis Hirwing";
+  };
+  exfalso = {
+    email = "0slemi0@gmail.com";
+    github = "exfalso";
+    name = "Andras Slemmer";
+  };
+  exi = {
+    email = "nixos@reckling.org";
+    github = "exi";
+    name = "Reno Reckling";
+  };
+  exlevan = {
+    email = "exlevan@gmail.com";
+    github = "exlevan";
+    name = "Alexey Levan";
+  };
+  expipiplus1 = {
+    email = "nix@monoid.al";
+    github = "expipiplus1";
+    name = "Joe Hermaszewski";
+  };
+  f-breidenstein = {
+    email = "mail@felixbreidenstein.de";
+    github = "f-breidenstein";
+    name = "Felix Breidenstein";
+  };
+  fadenb = {
+    email = "tristan.helmich+nixos@gmail.com";
+    github = "fadenb";
+    name = "Tristan Helmich";
+  };
+  falsifian = {
+    email = "james.cook@utoronto.ca";
+    github = "falsifian";
+    name = "James Cook";
+  };
+  fare = {
+    email = "fahree@gmail.com";
+    github = "fare";
+    name = "Francois-Rene Rideau";
+  };
+  fgaz = {
+    email = "francygazz@gmail.com";
+    github = "fgaz";
+    name = "Francesco Gazzetta";
+  };
+  flokli = {
+    email = "flokli@flokli.de";
+    github = "flokli";
+    name = "Florian Klink";
+  };
+  florianjacob = {
+    email = "projects+nixos@florianjacob.de";
+    github = "florianjacob";
+    name = "Florian Jacob";
+  };
+  flosse = {
+    email = "mail@markus-kohlhase.de";
+    github = "flosse";
+    name = "Markus Kohlhase";
+  };
+  fluffynukeit = {
+    email = "dan@fluffynukeit.com";
+    github = "fluffynukeit";
+    name = "Daniel Austin";
+  };
+  fmthoma = {
+    email = "f.m.thoma@googlemail.com";
+    github = "fmthoma";
+    name = "Franz Thoma";
+  };
+  forkk = {
+    email = "forkk@forkk.net";
+    github = "forkk";
+    name = "Andrew Okin";
+  };
+  fornever = {
+    email = "friedrich@fornever.me";
+    github = "fornever";
+    name = "Friedrich von Never";
+  };
+  fpletz = {
+    email = "fpletz@fnordicwalking.de";
+    github = "fpletz";
+    name = "Franz Pletz";
+  };
+  fps = {
+    email = "mista.tapas@gmx.net";
+    github = "fps";
+    name = "Florian Paul Schmidt";
+  };
+  fridh = {
+    email = "fridh@fridh.nl";
+    github = "fridh";
+    name = "Frederik Rietdijk";
+  };
+  frlan = {
+    email = "frank@frank.uvena.de";
+    github = "frlan";
+    name = "Frank Lanitz";
+  };
+  fro_ozen = {
+    email = "fro_ozen@gmx.de";
+    github = "froozen";
+    name = "fro_ozen";
+  };
+  ftrvxmtrx = {
+    email = "ftrvxmtrx@gmail.com";
+    github = "ftrvxmtrx";
+    name = "Siarhei Zirukin";
+  };
+  funfunctor = {
+    email = "eocallaghan@alterapraxis.com";
+    name = "Edward O'Callaghan";
+  };
+  fuuzetsu = {
+    email = "fuuzetsu@fuuzetsu.co.uk";
+    github = "fuuzetsu";
+    name = "Mateusz Kowalczyk";
+  };
+  fuzzy-id = {
+    email = "hacking+nixos@babibo.de";
+    name = "Thomas Bach";
+  };
+  fxfactorial = {
+    email = "edgar.factorial@gmail.com";
+    github = "fxfactorial";
+    name = "Edgar Aroutiounian";
+  };
+  gabesoft = {
+    email = "gabesoft@gmail.com";
+    github = "gabesoft";
+    name = "Gabriel Adomnicai";
+  };
+  gal_bolle = {
+    email = "florent.becker@ens-lyon.org";
+    github = "FlorentBecker";
+    name = "Florent Becker";
+  };
+  garbas = {
+    email = "rok@garbas.si";
+    github = "garbas";
+    name = "Rok Garbas";
+  };
+  garrison = {
+    email = "jim@garrison.cc";
+    github = "garrison";
+    name = "Jim Garrison";
+  };
+  gavin = {
+    email = "gavin@praxeology.co.uk";
+    github = "gavinrogers";
+    name = "Gavin Rogers";
+  };
+  gebner = {
+    email = "gebner@gebner.org";
+    github = "gebner";
+    name = "Gabriel Ebner";
+  };
+  geistesk = {
+    email = "post@0x21.biz";
+    github = "geistesk";
+    name = "Alvar Penning";
+  };
+  genesis = {
+    email = "ronan@aimao.org";
+    github = "bignaux";
+    name = "Ronan Bignaux";
+  };
+  georgewhewell = {
+    email = "georgerw@gmail.com";
+    github = "georgewhewell";
+    name = "George Whewell";
+  };
+  gilligan = {
+    email = "tobias.pflug@gmail.com";
+    github = "gilligan";
+    name = "Tobias Pflug";
+  };
+  giogadi = {
+    email = "lgtorres42@gmail.com";
+    github = "giogadi";
+    name = "Luis G. Torres";
+  };
+  gleber = {
+    email = "gleber.p@gmail.com";
+    github = "gleber";
+    name = "Gleb Peregud";
+  };
+  glenns = {
+    email = "glenn.searby@gmail.com";
+    github = "glenns";
+    name = "Glenn Searby";
+  };
+  globin = {
+    email = "mail@glob.in";
+    github = "globin";
+    name = "Robin Gloster";
+  };
+  gnidorah = {
+    email = "yourbestfriend@opmbx.org";
+    github = "gnidorah";
+    name = "Alex Ivanov";
+  };
+  goibhniu = {
+    email = "cillian.deroiste@gmail.com";
+    github = "cillianderoiste";
+    name = "Cillian de Róiste";
+  };
+  goodrone = {
+    email = "goodrone@gmail.com";
+    github = "goodrone";
+    name = "Andrew Trachenko";
+  };
+  gpyh = {
+    email = "yacine.hmito@gmail.com";
+    github = "yacinehmito";
+    name = "Yacine Hmito";
+  };
+  grahamc = {
+    email = "graham@grahamc.com";
+    github = "grahamc";
+    name = "Graham Christensen";
+  };
+  grburst = {
+    email = "grburst@openmailbox.org";
+    github = "grburst";
+    name = "Julius Elias";
+  };
+  gridaphobe = {
+    email = "eric@seidel.io";
+    github = "gridaphobe";
+    name = "Eric Seidel";
+  };
+  guibert = {
+    email = "david.guibert@gmail.com";
+    github = "dguibert";
+    name = "David Guibert";
+  };
+  guibou = {
+    email = "guillaum.bouchard@gmail.com";
+    github = "guibou";
+    name = "Guillaume Bouchard";
+  };
+  guillaumekoenig = {
+    email = "guillaume.edward.koenig@gmail.com";
+    github = "guillaumekoenig";
+    name = "Guillaume Koenig";
+  };
+  guyonvarch = {
+    email = "joris@guyonvarch.me";
+    github = "guyonvarch";
+    name = "Joris Guyonvarch";
+  };
+  hakuch = {
+    email = "hakuch@gmail.com";
+    github = "hakuch";
+    name = "Jesse Haber-Kucharsky";
+  };
+  hamhut1066 = {
+    email = "github@hamhut1066.com";
+    github = "hamhut1066";
+    name = "Hamish Hutchings";
+  };
+  havvy = {
+    email = "ryan.havvy@gmail.com";
+    github = "havvy";
+    name = "Ryan Scheel";
+  };
+  hbunke = {
+    email = "bunke.hendrik@gmail.com";
+    github = "hbunke";
+    name = "Hendrik Bunke";
+  };
+  hce = {
+    email = "hc@hcesperer.org";
+    github = "hce";
+    name = "Hans-Christian Esperer";
+  };
+  hectorj = {
+    email = "hector.jusforgues+nixos@gmail.com";
+    github = "hectorj";
+    name = "Hector Jusforgues";
+  };
+  hedning = {
+    email = "torhedinbronner@gmail.com";
+    github = "hedning";
+    name = "Tor Hedin Brønner";
+  };
+  heel = {
+    email = "parizhskiy@gmail.com";
+    github = "heel";
+    name = "Sergii Paryzhskyi";
+  };
+  henrytill = {
+    email = "henrytill@gmail.com";
+    github = "henrytill";
+    name = "Henry Till";
+  };
+  hhm = {
+    email = "heehooman+nixpkgs@gmail.com";
+    github = "hhm0";
+    name = "hhm";
+  };
+  hinton = {
+    email = "t@larkery.com";
+    name = "Tom Hinton";
+  };
+  hodapp = {
+    email = "hodapp87@gmail.com";
+    github = "Hodapp87";
+    name = "Chris Hodapp";
+  };
+  hrdinka = {
+    email = "c.nix@hrdinka.at";
+    github = "hrdinka";
+    name = "Christoph Hrdinka";
+  };
+  htr = {
+    email = "hugo@linux.com";
+    github = "htr";
+    name = "Hugo Tavares Reis";
+  };
+  hyphon81 = {
+    email = "zero812n@gmail.com";
+    github = "hyphon81";
+    name = "Masato Yonekawa";
+  };
+  iand675 = {
+    email = "ian@iankduncan.com";
+    github = "iand675";
+    name = "Ian Duncan";
+  };
+  ianwookim = {
+    email = "ianwookim@gmail.com";
+    github = "wavewave";
+    name = "Ian-Woo Kim";
+  };
+  iblech = {
+    email = "iblech@speicherleck.de";
+    github = "iblech";
+    name = "Ingo Blechschmidt";
+  };
+  igsha = {
+    email = "igor.sharonov@gmail.com";
+    github = "igsha";
+    name = "Igor Sharonov";
+  };
+  ikervagyok = {
+    email = "ikervagyok@gmail.com";
+    github = "ikervagyok";
+    name = "Balázs Lengyel";
+  };
+  ilya-kolpakov = {
+    email = "ilya.kolpakov@gmail.com";
+    github = "ilya-kolpakov";
+    name = "Ilya Kolpakov";
+  };
+  infinisil = {
+    email = "infinisil@icloud.com";
+    github = "infinisil";
+    name = "Silvan Mosberger";
+  };
+  ironpinguin = {
+    email = "michele@catalano.de";
+    github = "ironpinguin";
+    name = "Michele Catalano";
+  };
+  ivan-tkatchev = {
+    email = "tkatchev@gmail.com";
+    name = "Ivan Tkatchev";
+  };
+  ixmatus = {
+    email = "parnell@digitalmentat.com";
+    github = "ixmatus";
+    name = "Parnell Springmeyer";
+  };
+  ixxie = {
+    email = "matan@fluxcraft.net";
+    github = "ixxie";
+    name = "Matan Bendix Shenhav";
+  };
+  izorkin = {
+    email = "Izorkin@gmail.com";
+    github = "izorkin";
+    name = "Yurii Izorkin";
+  };
+  j-keck = {
+    email = "jhyphenkeck@gmail.com";
+    github = "j-keck";
+    name = "Jürgen Keck";
+  };
+  jagajaga = {
+    email = "ars.seroka@gmail.com";
+    github = "jagajaga";
+    name = "Arseniy Seroka";
+  };
+  jammerful = {
+    email = "jammerful@gmail.com";
+    github = "jammerful";
+    name = "jammerful";
+  };
+  jansol = {
+    email = "jan.solanti@paivola.fi";
+    github = "jansol";
+    name = "Jan Solanti";
+  };
+  javaguirre = {
+    email = "contacto@javaguirre.net";
+    github = "javaguirre";
+    name = "Javier Aguirre";
+  };
+  jb55 = {
+    email = "jb55@jb55.com";
+    github = "jb55";
+    name = "William Casarin";
+  };
+  jbedo = {
+    email = "cu@cua0.org";
+    github = "jbedo";
+    name = "Justin Bedő";
+  };
+  jcumming = {
+    email = "jack@mudshark.org";
+    name = "Jack Cummings";
+  };
+  jdagilliland = {
+    email = "jdagilliland@gmail.com";
+    github = "jdagilliland";
+    name = "Jason Gilliland";
+  };
+  jefdaj = {
+    email = "jefdaj@gmail.com";
+    github = "jefdaj";
+    name = "Jeffrey David Johnson";
+  };
+  jensbin = {
+    email = "jensbin@protonmail.com";
+    github = "jensbin";
+    name = "Jens Binkert";
+  };
+  jerith666 = {
+    email = "github@matt.mchenryfamily.org";
+    github = "jerith666";
+    name = "Matt McHenry";
+  };
+  jfb = {
+    email = "james@yamtime.com";
+    github = "tftio";
+    name = "James Felix Black";
+  };
+  jfrankenau = {
+    email = "johannes@frankenau.net";
+    github = "jfrankenau";
+    name = "Johannes Frankenau";
+  };
+  jgeerds = {
+    email = "jascha@geerds.org";
+    github = "jgeerds";
+    name = "Jascha Geerds";
+  };
+  jgertm = {
+    email = "jger.tm@gmail.com";
+    github = "jgertm";
+    name = "Tim Jaeger";
+  };
+  jgillich = {
+    email = "jakob@gillich.me";
+    github = "jgillich";
+    name = "Jakob Gillich";
+  };
+  jhhuh = {
+    email = "jhhuh.note@gmail.com";
+    github = "jhhuh";
+    name = "Ji-Haeng Huh";
+  };
+  jirkamarsik = {
+    email = "jiri.marsik89@gmail.com";
+    github = "jirkamarsik";
+    name = "Jirka Marsik";
+  };
+  jlesquembre = {
+    email = "jl@lafuente.me";
+    github = "jlesquembre";
+    name = "José Luis Lafuente";
+  };
+  jluttine = {
+    email = "jaakko.luttinen@iki.fi";
+    github = "jluttine";
+    name = "Jaakko Luttinen";
+  };
+  joachifm = {
+    email = "joachifm@fastmail.fm";
+    github = "joachifm";
+    name = "Joachim Fasting";
+  };
+  joamaki = {
+    email = "joamaki@gmail.com";
+    github = "joamaki";
+    name = "Jussi Maki";
+  };
+  joelmo = {
+    email = "joel.moberg@gmail.com";
+    github = "joelmo";
+    name = "Joel Moberg";
+  };
+  joelteon = {
+    email = "me@joelt.io";
+    name = "Joel Taylor";
+  };
+  johbo = {
+    email = "johannes@bornhold.name";
+    github = "johbo";
+    name = "Johannes Bornhold";
+  };
+  johnazoidberg = {
+    email = "git@danielschaefer.me";
+    github = "johnazoidberg";
+    name = "Daniel Schäfer";
+  };
+  johnmh = {
+    email = "johnmh@openblox.org";
+    github = "johnmh";
+    name = "John M. Harris, Jr.";
+  };
+  johnramsden = {
+    email = "johnramsden@riseup.net";
+    github = "johnramsden";
+    name = "John Ramsden";
+  };
+  joko = {
+    email = "ioannis.koutras@gmail.com";
+    github = "jokogr";
+    name = "Ioannis Koutras";
+  };
+  jonafato = {
+    email = "jon@jonafato.com";
+    github = "jonafato";
+    name = "Jon Banafato";
+  };
+  joncojonathan = {
+    email = "joncojonathan@gmail.com";
+    github = "joncojonathan";
+    name = "Jonathan Haddock";
+  };
+  jpdoyle = {
+    email = "joethedoyle@gmail.com";
+    github = "jpdoyle";
+    name = "Joe Doyle";
+  };
+  jpierre03 = {
+    email = "nix@prunetwork.fr";
+    github = "jpierre03";
+    name = "Jean-Pierre PRUNARET";
+  };
+  jpotier = {
+    email = "jpo.contributes.to.nixos@marvid.fr";
+    github = "jpotier";
+    name = "Martin Potier";
+  };
+  jraygauthier = {
+    email = "jraygauthier@gmail.com";
+    github = "jraygauthier";
+    name = "Raymond Gauthier";
+  };
+  jtojnar = {
+    email = "jtojnar@gmail.com";
+    github = "jtojnar";
+    name = "Jan Tojnar";
+  };
+  juliendehos = {
+    email = "dehos@lisic.univ-littoral.fr";
+    github = "juliendehos";
+    name = "Julien Dehos";
+  };
+  jwiegley = {
+    email = "johnw@newartisans.com";
+    github = "jwiegley";
+    name = "John Wiegley";
+  };
+  jwilberding = {
+    email = "jwilberding@afiniate.com";
+    name = "Jordan Wilberding";
+  };
+  jyp = {
+    email = "jeanphilippe.bernardy@gmail.com";
+    github = "jyp";
+    name = "Jean-Philippe Bernardy";
+  };
+  jzellner = {
+    email = "jeffz@eml.cc";
+    github = "sofuture";
+    name = "Jeff Zellner";
+  };
+  kaiha = {
+    email = "kai.harries@gmail.com";
+    github = "kaiha";
+    name = "Kai Harries";
+  };
+  kamilchm = {
+    email = "kamil.chm@gmail.com";
+    github = "kamilchm";
+    name = "Kamil Chmielewski";
+  };
+  kampfschlaefer = {
+    email = "arnold@arnoldarts.de";
+    github = "kampfschlaefer";
+    name = "Arnold Krille";
+  };
+  karolchmist = {
+    email = "info+nix@chmist.com";
+    name = "karolchmist";
+  };
+  kentjames = {
+    email = "jameschristopherkent@gmail.com";
+    github = "kentjames";
+    name = "James Kent";
+  };
+  kevincox = {
+    email = "kevincox@kevincox.ca";
+    github = "kevincox";
+    name = "Kevin Cox";
+  };
+  khumba = {
+    email = "bog@khumba.net";
+    github = "khumba";
+    name = "Bryan Gardiner";
+  };
+  kierdavis = {
+    email = "kierdavis@gmail.com";
+    github = "kierdavis";
+    name = "Kier Davis";
+  };
+  kiloreux = {
+    email = "kiloreux@gmail.com";
+    github = "kiloreux";
+    name = "Kiloreux Emperex";
+  };
+  kini = {
+    email = "keshav.kini@gmail.com";
+    github = "kini";
+    name = "Keshav Kini";
+  };
+  kkallio = {
+    email = "tierpluspluslists@gmail.com";
+    name = "Karn Kallio";
+  };
+  knedlsepp = {
+    email = "josef.kemetmueller@gmail.com";
+    github = "knedlsepp";
+    name = "Josef Kemetmüller";
+  };
+  konimex = {
+    email = "herdiansyah@netc.eu";
+    github = "konimex";
+    name = "Muhammad Herdiansyah";
+  };
+  koral = {
+    email = "koral@mailoo.org";
+    github = "k0ral";
+    name = "Koral";
+  };
+  kovirobi = {
+    email = "kovirobi@gmail.com";
+    github = "kovirobi";
+    name = "Kovacsics Robert";
+  };
+  kquick = {
+    email = "quick@sparq.org";
+    github = "kquick";
+    name = "Kevin Quick";
+  };
+  kragniz = {
+    email = "louis@kragniz.eu";
+    github = "kragniz";
+    name = "Louis Taylor";
+  };
+  kristoff3r = {
+    email = "k.soeholm@gmail.com";
+    github = "kristoff3r";
+    name = "Kristoffer Søholm";
+  };
+  ktosiek = {
+    email = "tomasz.kontusz@gmail.com";
+    github = "ktosiek";
+    name = "Tomasz Kontusz";
+  };
+  kuznero = {
+    email = "roman@kuznero.com";
+    github = "kuznero";
+    name = "Roman Kuznetsov";
+  };
+  lasandell = {
+    email = "lasandell@gmail.com";
+    github = "lasandell";
+    name = "Luke Sandell";
+  };
+  lassulus = {
+    email = "lassulus@gmail.com";
+    github = "Lassulus";
+    name = "Lassulus";
+  };
+  layus = {
+    email = "layus.on@gmail.com";
+    github = "layus";
+    name = "Guillaume Maudoux";
+  };
+  lblasc = {
+    email = "lblasc@znode.net";
+    github = "lblasc";
+    name = "Luka Blaskovic";
+  };
+  ldesgoui = {
+    email = "ldesgoui@gmail.com";
+    github = "ldesgoui";
+    name = "Lucas Desgouilles";
+  };
+  league = {
+    email = "league@contrapunctus.net";
+    github = "league";
+    name = "Christopher League";
+  };
+  lebastr = {
+    email = "lebastr@gmail.com";
+    github = "lebastr";
+    name = "Alexander Lebedev";
+  };
+  ledif = {
+    email = "refuse@gmail.com";
+    github = "ledif";
+    name = "Adam Fidel";
+  };
+  leemachin = {
+    email = "me@mrl.ee";
+    github = "leemachin";
+    name = "Lee Machin";
+  };
+  leenaars = {
+    email = "ml.software@leenaa.rs";
+    github = "leenaars";
+    name = "Michiel Leenaars";
+  };
+  leonardoce = {
+    email = "leonardo.cecchi@gmail.com";
+    github = "leonardoce";
+    name = "Leonardo Cecchi";
+  };
+  lejonet = {
+    email = "daniel@kuehn.se";
+    github = "lejonet";
+    name = "Daniel Kuehn";
+  };
+  lethalman = {
+    email = "lucabru@src.gnome.org";
+    github = "lethalman";
+    name = "Luca Bruno";
+  };
+  lewo = {
+    email = "lewo@abesis.fr";
+    github = "nlewo";
+    name = "Antoine Eiche";
+  };
+  lheckemann = {
+    email = "git@sphalerite.org";
+    github = "lheckemann";
+    name = "Linus Heckemann";
+  };
+  lhvwb = {
+    email = "nathaniel.baxter@gmail.com";
+    github = "nathanielbaxter";
+    name = "Nathaniel Baxter";
+  };
+  lihop = {
+    email = "nixos@leroy.geek.nz";
+    github = "lihop";
+    name = "Leroy Hopson";
+  };
+  limeytexan = {
+    email = "limeytexan@gmail.com";
+    github = "limeytexan";
+    name = "Michael Brantley";
+  };
+  linquize = {
+    email = "linquize@yahoo.com.hk";
+    github = "linquize";
+    name = "Linquize";
+  };
+  linus = {
+    email = "linusarver@gmail.com";
+    github = "listx";
+    name = "Linus Arver";
+  };
+  lluchs = {
+    email = "lukas.werling@gmail.com";
+    github = "lluchs";
+    name = "Lukas Werling";
+  };
+  lnl7 = {
+    email = "daiderd@gmail.com";
+    github = "lnl7";
+    name = "Daiderd Jordan";
+  };
+  lo1tuma = {
+    email = "schreck.mathias@gmail.com";
+    github = "lo1tuma";
+    name = "Mathias Schreck";
+  };
+  loskutov = {
+    email = "ignat.loskutov@gmail.com";
+    github = "loskutov";
+    name = "Ignat Loskutov";
+  };
+  lovek323 = {
+    email = "jason@oconal.id.au";
+    github = "lovek323";
+    name = "Jason O'Conal";
+  };
+  lowfatcomputing = {
+    email = "andreas.wagner@lowfatcomputing.org";
+    github = "lowfatcomputing";
+    name = "Andreas Wagner";
+  };
+  lschuermann = {
+    email = "leon.git@is.currently.online";
+    github = "lschuermann";
+    name = "Leon Schuermann";
+  };
+  lsix = {
+    email = "lsix@lancelotsix.com";
+    github = "lsix";
+    name = "Lancelot SIX";
+  };
+  ltavard = {
+    email = "laure.tavard@univ-grenoble-alpes.fr";
+    github = "ltavard";
+    name = "Laure Tavard";
+  };
+  lucas8 = {
+    email = "luc.linux@mailoo.org";
+    github = "lucas8";
+    name = "Luc Chabassier";
+  };
+  ludo = {
+    email = "ludo@gnu.org";
+    github = "civodul";
+    name = "Ludovic Courtès";
+  };
+  lufia = {
+    email = "lufia@lufia.org";
+    github = "lufia";
+    name = "Kyohei Kadota";
+  };
+  luispedro = {
+    email = "luis@luispedro.org";
+    github = "luispedro";
+    name = "Luis Pedro Coelho";
+  };
+  lukego = {
+    email = "luke@snabb.co";
+    github = "lukego";
+    name = "Luke Gorrie";
+  };
+  luz = {
+    email = "luz666@daum.net";
+    github = "Luz";
+    name = "Luz";
+  };
+  lw = {
+    email = "lw@fmap.me";
+    github = "lolwat97";
+    name = "Sergey Sofeychuk";
+  };
+  lyt = {
+    email = "wheatdoge@gmail.com";
+    name = "Tim Liou";
+  };
+  m3tti = {
+    email = "mathaeus.peter.sander@gmail.com";
+    name = "Mathaeus Sander";
+  };
+  ma27 = {
+    email = "maximilian@mbosch.me";
+    github = "ma27";
+    name = "Maximilian Bosch";
+  };
+  madjar = {
+    email = "georges.dubus@compiletoi.net";
+    github = "madjar";
+    name = "Georges Dubus";
+  };
+  magnetophon = {
+    email = "bart@magnetophon.nl";
+    github = "magnetophon";
+    name = "Bart Brouns";
+  };
+  mahe = {
+    email = "matthias.mh.herrmann@gmail.com";
+    github = "2chilled";
+    name = "Matthias Herrmann";
+  };
+  makefu = {
+    email = "makefu@syntax-fehler.de";
+    github = "makefu";
+    name = "Felix Richter";
+  };
+  malyn = {
+    email = "malyn@strangeGizmo.com";
+    github = "malyn";
+    name = "Michael Alyn Miller";
+  };
+  manveru = {
+    email = "m.fellinger@gmail.com";
+    github = "manveru";
+    name = "Michael Fellinger";
+  };
+  marcweber = {
+    email = "marco-oweber@gmx.de";
+    github = "marcweber";
+    name = "Marc Weber";
+  };
+  markWot = {
+    email = "markus@wotringer.de";
+    name = "Markus Wotringer";
+  };
+  markus1189 = {
+    email = "markus1189@gmail.com";
+    github = "markus1189";
+    name = "Markus Hauck";
+  };
+  markuskowa = {
+    email = "markus.kowalewski@gmail.com";
+    github = "markuskowa";
+    name = "Markus Kowalewski";
+  };
+  martijnvermaat = {
+    email = "martijn@vermaat.name";
+    github = "martijnvermaat";
+    name = "Martijn Vermaat";
+  };
+  martingms = {
+    email = "martin@mg.am";
+    github = "martingms";
+    name = "Martin Gammelsæter";
+  };
+  matejc = {
+    email = "cotman.matej@gmail.com";
+    github = "matejc";
+    name = "Matej Cotman";
+  };
+  mathnerd314 = {
+    email = "mathnerd314.gph+hs@gmail.com";
+    github = "mathnerd314";
+    name = "Mathnerd314";
+  };
+  matthewbauer = {
+    email = "mjbauer95@gmail.com";
+    github = "matthewbauer";
+    name = "Matthew Bauer";
+  };
+  matthiasbeyer = {
+    email = "mail@beyermatthias.de";
+    github = "matthiasbeyer";
+    name = "Matthias Beyer";
+  };
+  maurer = {
+    email = "matthew.r.maurer+nix@gmail.com";
+    github = "maurer";
+    name = "Matthew Maurer";
+  };
+  mbakke = {
+    email = "mbakke@fastmail.com";
+    github = "mbakke";
+    name = "Marius Bakke";
+  };
+  mbbx6spp = {
+    email = "me@susanpotter.net";
+    github = "mbbx6spp";
+    name = "Susan Potter";
+  };
+  mbe = {
+    email = "brandonedens@gmail.com";
+    github = "brandonedens";
+    name = "Brandon Edens";
+  };
+  mbode = {
+    email = "maxbode@gmail.com";
+    github = "mbode";
+    name = "Maximilian Bode";
+  };
+  mboes = {
+    email = "mboes@tweag.net";
+    github = "mboes";
+    name = "Mathieu Boespflug";
+  };
+  mbrgm = {
+    email = "marius@yeai.de";
+    github = "mbrgm";
+    name = "Marius Bergmann";
+  };
+  mcmtroffaes = {
+    email = "matthias.troffaes@gmail.com";
+    github = "mcmtroffaes";
+    name = "Matthias C. M. Troffaes";
+  };
+  mdaiter = {
+    email = "mdaiter8121@gmail.com";
+    github = "mdaiter";
+    name = "Matthew S. Daiter";
+  };
+  meditans = {
+    email = "meditans@gmail.com";
+    github = "meditans";
+    name = "Carlo Nucera";
+  };
+  mehandes = {
+    email = "niewskici@gmail.com";
+    github = "mehandes";
+    name = "Matt Deming";
+  };
+  meisternu = {
+    email = "meister@krutt.org";
+    github = "meisternu";
+    name = "Matt Miemiec";
+  };
+  metabar = {
+    email = "softs@metabarcoding.org";
+    name = "Celine Mercier";
+  };
+  mgdelacroix = {
+    email = "mgdelacroix@gmail.com";
+    github = "mgdelacroix";
+    name = "Miguel de la Cruz";
+  };
+  mgttlinger = {
+    email = "megoettlinger@gmail.com";
+    github = "mgttlinger";
+    name = "Merlin Göttlinger";
+  };
+  mguentner = {
+    email = "code@klandest.in";
+    github = "mguentner";
+    name = "Maximilian Güntner";
+  };
+  mic92 = {
+    email = "joerg@thalheim.io";
+    github = "mic92";
+    name = "Jörg Thalheim";
+  };
+  michaelpj = {
+    email = "michaelpj@gmail.com";
+    github = "michaelpj";
+    name = "Michael Peyton Jones";
+  };
+  michalrus = {
+    email = "m@michalrus.com";
+    github = "michalrus";
+    name = "Michal Rus";
+  };
+  michelk = {
+    email = "michel@kuhlmanns.info";
+    github = "michelk";
+    name = "Michel Kuhlmann";
+  };
+  mickours = {
+    email = "mickours@gmail.com<";
+    github = "mickours";
+    name = "Michael Mercier";
+  };
+  midchildan = {
+    email = "midchildan+nix@gmail.com";
+    github = "midchildan";
+    name = "midchildan";
+  };
+  mikefaille = {
+    email = "michael@faille.io";
+    github = "mikefaille";
+    name = "Michaël Faille";
+  };
+  mikoim = {
+    email = "ek@esh.ink";
+    github = "mikoim";
+    name = "Eshin Kunishima";
+  };
+  miltador = {
+    email = "miltador@yandex.ua";
+    name = "Vasiliy Solovey";
+  };
+  mimadrid = {
+    email = "mimadrid@ucm.es";
+    github = "mimadrid";
+    name = "Miguel Madrid";
+  };
+  mirdhyn = {
+    email = "mirdhyn@gmail.com";
+    github = "mirdhyn";
+    name = "Merlin Gaillard";
+  };
+  mirrexagon = {
+    email = "mirrexagon@mirrexagon.com";
+    github = "mirrexagon";
+    name = "Andrew Abbott";
+  };
+  mjanczyk = {
+    email = "m@dragonvr.pl";
+    github = "mjanczyk";
+    name = "Marcin Janczyk";
+  };
+  mjp = {
+    email = "mike@mythik.co.uk";
+    github = "MikePlayle";
+    name = "Mike Playle";
+  };
+  mkg = {
+    email = "mkg@vt.edu";
+    github = "mkgvt";
+    name = "Mark K Gardner";
+  };
+  mlieberman85 = {
+    email = "mlieberman85@gmail.com";
+    github = "mlieberman85";
+    name = "Michael Lieberman";
+  };
+  mmahut = {
+    email = "marek.mahut@gmail.com";
+    github = "mmahut";
+    name = "Marek Mahut";
+  };
+  moaxcp = {
+    email = "moaxcp@gmail.com";
+    github = "moaxcp";
+    name = "John Mercier";
+  };
+  modulistic = {
+    email = "modulistic@gmail.com";
+    github = "modulistic";
+    name = "Pablo Costa";
+  };
+  mog = {
+    email = "mog-lists@rldn.net";
+    github = "mogorman";
+    name = "Matthew O'Gorman";
+  };
+  montag451 = {
+    email = "montag451@laposte.net";
+    github = "montag451";
+    name = "montag451";
+  };
+  moosingin3space = {
+    email = "moosingin3space@gmail.com";
+    github = "moosingin3space";
+    name = "Nathan Moos";
+  };
+  moredread = {
+    email = "code@apb.name";
+    github = "moredread";
+    name = "André-Patrick Bubel";
+  };
+  moretea = {
+    email = "maarten@moretea.nl";
+    github = "moretea";
+    name = "Maarten Hoogendoorn";
+  };
+  mounium = {
+    email = "muoniurn@gmail.com";
+    github = "mounium";
+    name = "Katona László";
+  };
+  mpcsh = {
+    email = "m@mpc.sh";
+    github = "mpcsh";
+    name = "Mark Cohen";
+  };
+  mpickering = {
+    email = "matthewtpickering@gmail.com";
+    github = "mpickering";
+    name = "Matthew Pickering";
+  };
+  mpscholten = {
+    email = "marc@mpscholten.de";
+    github = "mpscholten";
+    name = "Marc Scholten";
+  };
+  mpsyco = {
+    email = "fr.st-amour@gmail.com";
+    github = "fstamour";
+    name = "Francis St-Amour";
+  };
+  mrVanDalo = {
+    email = "contact@ingolf-wagner.de";
+    github = "mrVanDalo";
+    name = "Ingolf Wanger";
+  };
+  msackman = {
+    email = "matthew@wellquite.org";
+    name = "Matthew Sackman";
+  };
+  mschristiansen = {
+    email = "mikkel@rheosystems.com";
+    github = "mschristiansen";
+    name = "Mikkel Christiansen";
+  };
+  mstarzyk = {
+    email = "mstarzyk@gmail.com";
+    github = "mstarzyk";
+    name = "Maciek Starzyk";
+  };
+  msteen = {
+    email = "emailmatthijs@gmail.com";
+    github = "msteen";
+    name = "Matthijs Steen";
+  };
+  mt-caret = {
+    email = "mtakeda.enigsol@gmail.com";
+    github = "mt-caret";
+    name = "Masayuki Takeda";
+  };
+  mtreskin = {
+    email = "zerthurd@gmail.com";
+    github = "Zert";
+    name = "Max Treskin";
+  };
+  mudri = {
+    email = "lamudri@gmail.com";
+    github = "laMudri";
+    name = "James Wood";
+  };
+  muflax = {
+    email = "mail@muflax.com";
+    github = "muflax";
+    name = "Stefan Dorn";
+  };
+  myrl = {
+    email = "myrl.0xf@gmail.com";
+    github = "myrl";
+    name = "Myrl Hex";
+  };
+  nadrieril = {
+    email = "nadrieril@gmail.com";
+    github = "nadrieril";
+    name = "Nadrieril Feneanar";
+  };
+  namore = {
+    email = "namor@hemio.de";
+    github = "namore";
+    name = "Roman Naumann";
+  };
+  nand0p = {
+    email = "nando@hex7.com";
+    github = "nand0p";
+    name = "Fernando Jose Pando";
+  };
+  nathan-gs = {
+    email = "nathan@nathan.gs";
+    github = "nathan-gs";
+    name = "Nathan Bijnens";
+  };
+  nckx = {
+    email = "github@tobias.gr";
+    github = "nckx";
+    name = "Tobias Geerinckx-Rice";
+  };
+  ndowens = {
+    email = "ndowens04@gmail.com";
+    github = "ndowens";
+    name = "Nathan Owens";
+  };
+  neeasade = {
+    email = "nathanisom27@gmail.com";
+    github = "neeasade";
+    name = "Nathan Isom";
+  };
+  nequissimus = {
+    email = "tim@nequissimus.com";
+    github = "nequissimus";
+    name = "Tim Steinbach";
+  };
+  nfjinjing = {
+    email = "nfjinjing@gmail.com";
+    github = "nfjinjing";
+    name = "Jinjing Wang";
+  };
+  nh2 = {
+    email = "mail@nh2.me";
+    github = "nh2";
+    name = "Niklas Hambüchen";
+  };
+  nhooyr = {
+    email = "anmol@aubble.com";
+    github = "nhooyr";
+    name = "Anmol Sethi";
+  };
+  nickhu = {
+    email = "me@nickhu.co.uk";
+    github = "nickhu";
+    name = "Nick Hu";
+  };
+  nicknovitski = {
+    email = "nixpkgs@nicknovitski.com";
+    github = "nicknovitski";
+    name = "Nick Novitski";
+  };
+  nico202 = {
+    email = "anothersms@gmail.com";
+    github = "nico202";
+    name = "Nicolò Balzarotti";
+  };
+  ninjatrappeur = {
+    email = "felix@alternativebit.fr";
+    github = "ninjatrappeur";
+    name = "Félix Baylac-Jacqué";
+  };
+  nipav = {
+    email = "niko.pavlinek@gmail.com";
+    github = "nipav";
+    name = "Niko Pavlinek";
+  };
+  nixy = {
+    email = "nixy@nixy.moe";
+    github = "nixy";
+    name = "Andrew R. M.";
+  };
+  nmattia = {
+    email = "nicolas@nmattia.com";
+    github = "nmattia";
+    name = "Nicolas Mattia";
+  };
+  nocoolnametom = {
+    email = "nocoolnametom@gmail.com";
+    github = "nocoolnametom";
+    name = "Tom Doggett";
+  };
+  notthemessiah = {
+    email = "brian.cohen.88@gmail.com";
+    github = "notthemessiah";
+    name = "Brian Cohen";
+  };
+  np = {
+    email = "np.nix@nicolaspouillard.fr";
+    github = "np";
+    name = "Nicolas Pouillard";
+  };
+  nslqqq = {
+    email = "nslqqq@gmail.com";
+    name = "Nikita Mikhailov";
+  };
+  nthorne = {
+    email = "notrupertthorne@gmail.com";
+    github = "nthorne";
+    name = "Niklas Thörne";
+  };
+  nyarly = {
+    email = "nyarly@gmail.com";
+    github = "nyarly";
+    name = "Judson Lester";
+  };
+  obadz = {
+    email = "obadz-nixos@obadz.com";
+    github = "obadz";
+    name = "obadz";
+  };
+  ocharles = {
+    email = "ollie@ocharles.org.uk";
+    github = "ocharles";
+    name = "Oliver Charles";
+  };
+  odi = {
+    email = "oliver.dunkl@gmail.com";
+    github = "odi";
+    name = "Oliver Dunkl";
+  };
+  offline = {
+    email = "jakahudoklin@gmail.com";
+    github = "offlinehacker";
+    name = "Jaka Hudoklin";
+  };
+  oida = {
+    email = "oida@posteo.de";
+    github = "oida";
+    name = "oida";
+  };
+  okasu = {
+    email = "oka.sux@gmail.com";
+    name = "Okasu";
+  };
+  olcai = {
+    email = "dev@timan.info";
+    github = "olcai";
+    name = "Erik Timan";
+  };
+  olejorgenb = {
+    email = "olejorgenb@yahoo.no";
+    github = "olejorgenb";
+    name = "Ole Jørgen Brønner";
+  };
+  olynch = {
+    email = "owen@olynch.me";
+    github = "olynch";
+    name = "Owen Lynch";
+  };
+  orbekk = {
+    email = "kjetil.orbekk@gmail.com";
+    github = "orbekk";
+    name = "KJ Ørbekk";
+  };
+  orbitz = {
+    email = "mmatalka@gmail.com";
+    github = "orbitz";
+    name = "Malcolm Matalka";
+  };
+  orivej = {
+    email = "orivej@gmx.fr";
+    github = "orivej";
+    name = "Orivej Desh";
+  };
+  osener = {
+    email = "ozan@ozansener.com";
+    github = "osener";
+    name = "Ozan Sener";
+  };
+  otwieracz = {
+    email = "slawek@otwiera.cz";
+    github = "otwieracz";
+    name = "Slawomir Gonet";
+  };
+  oxij = {
+    email = "oxij@oxij.org";
+    github = "oxij";
+    name = "Jan Malakhovski";
+  };
+  pSub = {
+    email = "mail@pascal-wittmann.de";
+    github = "pSub";
+    name = "Pascal Wittmann";
+  };
+  paholg = {
+    email = "paho@paholg.com";
+    github = "paholg";
+    name = "Paho Lurie-Gregg";
+  };
+  pakhfn = {
+    email = "pakhfn@gmail.com";
+    github = "pakhfn";
+    name = "Fedor Pakhomov";
+  };
+  panaeon = {
+    email = "vitalii.voloshyn@gmail.com";
+    github = "panaeon";
+    name = "Vitalii Voloshyn";
+  };
+  paperdigits = {
+    email = "mica@silentumbrella.com";
+    github = "paperdigits";
+    name = "Mica Semrick";
+  };
+  paraseba = {
+    email = "paraseba@gmail.com";
+    github = "paraseba";
+    name = "Sebastian Galkin";
+  };
+  pashev = {
+    email = "pashev.igor@gmail.com";
+    github = "ip1981";
+    name = "Igor Pashev";
+  };
+  patternspandemic = {
+    email = "patternspandemic@live.com";
+    github = "patternspandemic";
+    name = "Brad Christensen";
+  };
+  pawelpacana = {
+    email = "pawel.pacana@gmail.com";
+    github = "pawelpacana";
+    name = "Paweł Pacana";
+  };
+  pbogdan = {
+    email = "ppbogdan@gmail.com";
+    github = "pbogdan";
+    name = "Piotr Bogdan";
+  };
+  pcarrier = {
+    email = "pc@rrier.ca";
+    github = "pcarrier";
+    name = "Pierre Carrier";
+  };
+  periklis = {
+    email = "theopompos@gmail.com";
+    github = "periklis";
+    name = "Periklis Tsirakidis";
+  };
+  pesterhazy = {
+    email = "pesterhazy@gmail.com";
+    github = "pesterhazy";
+    name = "Paulus Esterhazy";
+  };
+  peterhoeg = {
+    email = "peter@hoeg.com";
+    github = "peterhoeg";
+    name = "Peter Hoeg";
+  };
+  peterromfeldhk = {
+    email = "peter.romfeld.hk@gmail.com";
+    github = "peterromfeldhk";
+    name = "Peter Romfeld";
+  };
+  peti = {
+    email = "simons@cryp.to";
+    github = "peti";
+    name = "Peter Simons";
+  };
+  philandstuff = {
+    email = "philip.g.potter@gmail.com";
+    github = "philandstuff";
+    name = "Philip Potter";
+  };
+  phile314 = {
+    email = "nix@314.ch";
+    github = "phile314";
+    name = "Philipp Hausmann";
+  };
+  phreedom = {
+    email = "phreedom@yandex.ru";
+    github = "phreedom";
+    name = "Evgeny Egorochkin";
+  };
+  phunehehe = {
+    email = "phunehehe@gmail.com";
+    github = "phunehehe";
+    name = "Hoang Xuan Phu";
+  };
+  pierrechevalier83 = {
+    email = "pierrechevalier83@gmail.com";
+    github = "pierrechevalier83";
+    name = "Pierre Chevalier";
+  };
+  pierrer = {
+    email = "pierrer@pi3r.be";
+    github = "pierrer";
+    name = "Pierre Radermecker";
+  };
+  pierron = {
+    email = "nixos@nbp.name";
+    github = "nbp";
+    name = "Nicolas B. Pierron";
+  };
+  piotr = {
+    email = "ppietrasa@gmail.com";
+    name = "Piotr Pietraszkiewicz";
+  };
+  pjbarnoy = {
+    email = "pjbarnoy@gmail.com";
+    github = "pjbarnoy";
+    name = "Perry Barnoy";
+  };
+  pjones = {
+    email = "pjones@devalot.com";
+    github = "pjones";
+    name = "Peter Jones";
+  };
+  pkmx = {
+    email = "pkmx.tw@gmail.com";
+    github = "pkmx";
+    name = "Chih-Mao Chen";
+  };
+  plcplc = {
+    email = "plcplc@gmail.com";
+    github = "plcplc";
+    name = "Philip Lykke Carlsen";
+  };
+  plumps = {
+    email = "maks.bronsky@web.de";
+    github = "plumps";
+    name = "Maksim Bronsky";
+  };
+  pmahoney = {
+    email = "pat@polycrystal.org";
+    github = "pmahoney";
+    name = "Patrick Mahoney";
+  };
+  pmeunier = {
+    email = "pierre-etienne.meunier@inria.fr";
+    github = "P-E-Meunier";
+    name = "Pierre-Étienne Meunier";
+  };
+  pmiddend = {
+    email = "pmidden@secure.mailbox.org";
+    github = "pmiddend";
+    name = "Philipp Middendorf";
+  };
+  pneumaticat = {
+    email = "kevin@potatofrom.space";
+    github = "pneumaticat";
+    name = "Kevin Liu";
+  };
+  polyrod = {
+    email = "dc1mdp@gmail.com";
+    github = "polyrod";
+    name = "Maurizio Di Pietro";
+  };
+  pradeepchhetri = {
+    email = "pradeep.chhetri89@gmail.com";
+    github = "pradeepchhetri";
+    name = "Pradeep Chhetri";
+  };
+  prikhi = {
+    email = "pavan.rikhi@gmail.com";
+    github = "prikhi";
+    name = "Pavan Rikhi";
+  };
+  primeos = {
+    email = "dev.primeos@gmail.com";
+    github = "primeos";
+    name = "Michael Weiss";
+  };
+  proglodyte = {
+    email = "proglodyte23@gmail.com";
+    github = "proglodyte";
+    name = "Proglodyte";
+  };
+  pshendry = {
+    email = "paul@pshendry.com";
+    github = "pshendry";
+    name = "Paul Hendry";
+  };
+  psibi = {
+    email = "sibi@psibi.in";
+    github = "psibi";
+    name = "Sibi";
+  };
+  pstn = {
+    email = "philipp@xndr.de";
+    name = "Philipp Steinpaß";
+  };
+  puffnfresh = {
+    email = "brian@brianmckenna.org";
+    github = "puffnfresh";
+    name = "Brian McKenna";
+  };
+  pxc = {
+    email = "patrick.callahan@latitudeengineering.com";
+    name = "Patrick Callahan";
+  };
+  qknight = {
+    email = "js@lastlog.de";
+    github = "qknight";
+    name = "Joachim Schiele";
+  };
+  ragge = {
+    email = "r.dahlen@gmail.com";
+    github = "ragnard";
+    name = "Ragnar Dahlen";
+  };
+  ralith = {
+    email = "ben.e.saunders@gmail.com";
+    github = "ralith";
+    name = "Benjamin Saunders";
+  };
+  ramkromberg = {
+    email = "ramkromberg@mail.com";
+    github = "ramkromberg";
+    name = "Ram Kromberg";
+  };
+  rardiol = {
+    email = "ricardo.ardissone@gmail.com";
+    github = "rardiol";
+    name = "Ricardo Ardissone";
+  };
+  rasendubi = {
+    email = "rasen.dubi@gmail.com";
+    github = "rasendubi";
+    name = "Alexey Shmalko";
+  };
+  raskin = {
+    email = "7c6f434c@mail.ru";
+    github = "7c6f434c";
+    name = "Michael Raskin";
+  };
+  ravloony = {
+    email = "ravloony@gmail.com";
+    name = "Tom Macdonald";
+  };
+  razvan = {
+    email = "razvan.panda@gmail.com";
+    github = "razvan-panda";
+    name = "Răzvan Flavius Panda";
+  };
+  rbasso = {
+    email = "rbasso@sharpgeeks.net";
+    github = "rbasso";
+    name = "Rafael Basso";
+  };
+  redbaron = {
+    email = "ivanov.maxim@gmail.com";
+    github = "redbaron";
+    name = "Maxim Ivanov";
+  };
+  redvers = {
+    email = "red@infect.me";
+    github = "redvers";
+    name = "Redvers Davies";
+  };
+  refnil = {
+    email = "broemartino@gmail.com";
+    github = "refnil";
+    name = "Martin Lavoie";
+  };
+  regnat = {
+    email = "regnat@regnat.ovh";
+    github = "regnat";
+    name = "Théophane Hufschmitt";
+  };
+  relrod = {
+    email = "ricky@elrod.me";
+    github = "relrod";
+    name = "Ricky Elrod";
+  };
+  renzo = {
+    email = "renzocarbonara@gmail.com";
+    github = "k0001";
+    name = "Renzo Carbonara";
+  };
+  retrry = {
+    email = "retrry@gmail.com";
+    github = "retrry";
+    name = "Tadas Barzdžius";
+  };
+  rht = {
+    email = "rhtbot@protonmail.com";
+    github = "rht";
+    name = "rht";
+  };
+  richardipsum = {
+    email = "richardipsum@fastmail.co.uk";
+    github = "richardipsum";
+    name = "Richard Ipsum";
+  };
+  rick68 = {
+    email = "rick68@gmail.com";
+    github = "rick68";
+    name = "Wei-Ming Yang";
+  };
+  rickynils = {
+    email = "rickynils@gmail.com";
+    github = "rickynils";
+    name = "Rickard Nilsson";
+  };
+  ris = {
+    email = "code@humanleg.org.uk";
+    github = "risicle";
+    name = "Robert Scott";
+  };
+  rlupton20 = {
+    email = "richard.lupton@gmail.com";
+    github = "rlupton20";
+    name = "Richard Lupton";
+  };
+  rnhmjoj = {
+    email = "micheleguerinirocco@me.com";
+    github = "rnhmjoj";
+    name = "Michele Guerini Rocco";
+  };
+  rob = {
+    email = "rob.vermaas@gmail.com";
+    github = "rbvermaa";
+    name = "Rob Vermaas";
+  };
+  robberer = {
+    email = "robberer@freakmail.de";
+    github = "robberer";
+    name = "Longrin Wischnewski";
+  };
+  robbinch = {
+    email = "robbinch33@gmail.com";
+    github = "robbinch";
+    name = "Robbin C.";
+  };
+  roberth = {
+    email = "nixpkgs@roberthensing.nl";
+    github = "roberth";
+    name = "Robert Hensing";
+  };
+  robertodr = {
+    email = "roberto.diremigio@gmail.com";
+    github = "robertodr";
+    name = "Roberto Di Remigio";
+  };
+  robgssp = {
+    email = "robgssp@gmail.com";
+    github = "robgssp";
+    name = "Rob Glossop";
+  };
+  roblabla = {
+    email = "robinlambertz+dev@gmail.com";
+    github = "roblabla";
+    name = "Robin Lambertz";
+  };
+  roconnor = {
+    email = "roconnor@theorem.ca";
+    github = "roconnor";
+    name = "Russell O'Connor";
+  };
+  romildo = {
+    email = "malaquias@gmail.com";
+    github = "romildo";
+    name = "José Romildo Malaquias";
+  };
+  rongcuid = {
+    email = "rongcuid@outlook.com";
+    github = "rongcuid";
+    name = "Rongcui Dong";
+  };
+  rszibele = {
+    email = "richard@szibele.com";
+    github = "rszibele";
+    name = "Richard Szibele";
+  };
+  rtreffer = {
+    email = "treffer+nixos@measite.de";
+    github = "rtreffer";
+    name = "Rene Treffer";
+  };
+  rushmorem = {
+    email = "rushmore@webenchanter.com";
+    github = "rushmorem";
+    name = "Rushmore Mushambi";
+  };
+  rvl = {
+    email = "dev+nix@rodney.id.au";
+    github = "rvl";
+    name = "Rodney Lorrimar";
+  };
+  rvlander = {
+    email = "rvlander@gaetanandre.eu";
+    github = "rvlander";
+    name = "Gaëtan André";
+  };
+  rvolosatovs = {
+    email = "rvolosatovs@riseup.net";
+    github = "rvolosatovs";
+    name = "Roman Volosatovs";
+  };
+  ryanartecona = {
+    email = "ryanartecona@gmail.com";
+    github = "ryanartecona";
+    name = "Ryan Artecona";
+  };
+  ryansydnor = {
+    email = "ryan.t.sydnor@gmail.com";
+    github = "ryansydnor";
+    name = "Ryan Sydnor";
+  };
+  ryantm = {
+    email = "ryan@ryantm.com";
+    github = "ryantm";
+    name = "Ryan Mulligan";
+  };
+  ryantrinkle = {
+    email = "ryan.trinkle@gmail.com";
+    github = "ryantrinkle";
+    name = "Ryan Trinkle";
+  };
+  rybern = {
+    email = "ryan.bernstein@columbia.edu";
+    github = "rybern";
+    name = "Ryan Bernstein";
+  };
+  rycee = {
+    email = "robert@rycee.net";
+    github = "rycee";
+    name = "Robert Helgesson";
+  };
+  ryneeverett = {
+    email = "ryneeverett@gmail.com";
+    github = "ryneeverett";
+    name = "Ryne Everett";
+  };
+  rzetterberg = {
+    email = "richard.zetterberg@gmail.com";
+    github = "rzetterberg";
+    name = "Richard Zetterberg";
+  };
+  s1lvester = {
+    email = "s1lvester@bockhacker.me";
+    github = "s1lvester";
+    name = "Markus Silvester";
+  };
+  samdroid-apps = {
+    email = "sam@sam.today";
+    github = "samdroid-apps";
+    name = "Sam Parkinson";
+  };
+  samueldr = {
+    email = "samuel@dionne-riel.com";
+    github = "samueldr";
+    name = "Samuel Dionne-Riel";
+  };
+  samuelrivas = {
+    email = "samuelrivas@gmail.com";
+    github = "samuelrivas";
+    name = "Samuel Rivas";
+  };
+  sander = {
+    email = "s.vanderburg@tudelft.nl";
+    github = "svanderburg";
+    name = "Sander van der Burg";
+  };
+  sargon = {
+    email = "danielehlers@mindeye.net";
+    github = "sargon";
+    name = "Daniel Ehlers";
+  };
+  sauyon = {
+    email = "s@uyon.co";
+    github = "sauyon";
+    name = "Sauyon Lee";
+  };
+  schmitthenner = {
+    email = "development@schmitthenner.eu";
+    github = "fkz";
+    name = "Fabian Schmitthenner";
+  };
+  schneefux = {
+    email = "schneefux+nixos_pkg@schneefux.xyz";
+    github = "schneefux";
+    name = "schneefux";
+  };
+  schristo = {
+    email = "schristopher@konputa.com";
+    name = "Scott Christopher";
+  };
+  scode = {
+    email = "peter.schuller@infidyne.com";
+    github = "scode";
+    name = "Peter Schuller";
+  };
+  scolobb = {
+    email = "sivanov@colimite.fr";
+    github = "scolobb";
+    name = "Sergiu Ivanov";
+  };
+  sdll = {
+    email = "sasha.delly@gmail.com";
+    github = "sdll";
+    name = "Sasha Illarionov";
+  };
+  sellout = {
+    email = "greg@technomadic.org";
+    github = "sellout";
+    name = "Greg Pfeil";
+  };
+  sengaya = {
+    email = "tlo@sengaya.de";
+    github = "sengaya";
+    name = "Thilo Uttendorfer";
+  };
+  sepi = {
+    email = "raffael@mancini.lu";
+    github = "sepi";
+    name = "Raffael Mancini";
+  };
+  seppeljordan = {
+    email = "sebastian.jordan.mail@googlemail.com";
+    github = "seppeljordan";
+    name = "Sebastian Jordan";
+  };
+  sfrijters = {
+    email = "sfrijters@gmail.com";
+    github = "sfrijters";
+    name = "Stefan Frijters";
+  };
+  shanemikel = {
+    email = "shanemikel1@gmail.com";
+    github = "shanemikel";
+    name = "Shane Pearlman";
+  };
+  shawndellysse = {
+    email = "sdellysse@gmail.com";
+    github = "shawndellysse";
+    name = "Shawn Dellysse";
+  };
+  sheenobu = {
+    email = "sheena.artrip@gmail.com";
+    github = "sheenobu";
+    name = "Sheena Artrip";
+  };
+  sheganinans = {
+    email = "sheganinans@gmail.com";
+    github = "sheganinans";
+    name = "Aistis Raulinaitis";
+  };
+  shell = {
+    email = "cam.turn@gmail.com";
+    github = "VShell";
+    name = "Shell Turner";
+  };
+  shlevy = {
+    email = "shea@shealevy.com";
+    github = "shlevy";
+    name = "Shea Levy";
+  };
+  siddharthist = {
+    email = "langston.barrett@gmail.com";
+    github = "siddharthist";
+    name = "Langston Barrett";
+  };
+  sifmelcara = {
+    email = "ming@culpring.com";
+    github = "sifmelcara";
+    name = "Ming Chuan";
+  };
+  sigma = {
+    email = "yann.hodique@gmail.com";
+    github = "sigma";
+    name = "Yann Hodique";
+  };
+  simonvandel = {
+    email = "simon.vandel@gmail.com";
+    github = "simonvandel";
+    name = "Simon Vandel Sillesen";
+  };
+  sivteck = {
+    email = "sivaram1992@gmail.com";
+    github = "sivteck";
+    name = "Sivaram Balakrishnan";
+  };
+  sjagoe = {
+    email = "simon@simonjagoe.com";
+    github = "sjagoe";
+    name = "Simon Jagoe";
+  };
+  sjmackenzie = {
+    email = "setori88@gmail.com";
+    github = "sjmackenzie";
+    name = "Stewart Mackenzie";
+  };
+  sjourdois = {
+    email = "sjourdois@gmail.com";
+    name = "Stéphane ‘kwisatz’ Jourdois";
+  };
+  skeidel = {
+    email = "svenkeidel@gmail.com";
+    github = "svenkeidel";
+    name = "Sven Keidel";
+  };
+  skrzyp = {
+    email = "jot.skrzyp@gmail.com";
+    name = "Jakub Skrzypnik";
+  };
+  sleexyz = {
+    email = "freshdried@gmail.com";
+    github = "sleexyz";
+    name = "Sean Lee";
+  };
+  smironov = {
+    email = "grrwlf@gmail.com";
+    github = "grwlf";
+    name = "Sergey Mironov";
+  };
+  snyh = {
+    email = "snyh@snyh.org";
+    github = "snyh";
+    name = "Xia Bin";
+  };
+  solson = {
+    email = "scott@solson.me";
+    github = "solson";
+    name = "Scott Olson";
+  };
+  sorki = {
+    email = "srk@48.io";
+    github = "sorki";
+    name = "Richard Marko";
+  };
+  sorpaas = {
+    email = "hi@that.world";
+    github = "sorpaas";
+    name = "Wei Tang";
+  };
+  spacefrogg = {
+    email = "spacefrogg-nixos@meterriblecrew.net";
+    github = "spacefrogg";
+    name = "Michael Raitza";
+  };
+  spencerjanssen = {
+    email = "spencerjanssen@gmail.com";
+    github = "spencerjanssen";
+    name = "Spencer Janssen";
+  };
+  spinus = {
+    email = "tomasz.czyz@gmail.com";
+    github = "spinus";
+    name = "Tomasz Czyż";
+  };
+  sprock = {
+    email = "rmason@mun.ca";
+    github = "sprock";
+    name = "Roger Mason";
+  };
+  spwhitt = {
+    email = "sw@swhitt.me";
+    github = "spwhitt";
+    name = "Spencer Whitt";
+  };
+  srhb = {
+    email = "sbrofeldt@gmail.com";
+    github = "srhb";
+    name = "Sarah Brofeldt";
+  };
+  stephenmw = {
+    email = "stephen@q5comm.com";
+    github = "stephenmw";
+    name = "Stephen Weinberg";
+  };
+  sternenseemann = {
+    email = "post@lukasepple.de";
+    github = "sternenseemann";
+    name = "Lukas Epple";
+  };
+  stesie = {
+    email = "stesie@brokenpipe.de";
+    github = "stesie";
+    name = "Stefan Siegl";
+  };
+  steveej = {
+    email = "mail@stefanjunker.de";
+    github = "steveej";
+    name = "Stefan Junker";
+  };
+  stumoss = {
+    email = "samoss@gmail.com";
+    github = "stumoss";
+    name = "Stuart Moss";
+  };
+  suvash = {
+    email = "suvash+nixpkgs@gmail.com";
+    github = "suvash";
+    name = "Suvash Thapaliya";
+  };
+  svsdep = {
+    email = "svsdep@gmail.com";
+    github = "svsdep";
+    name = "Vasyl Solovei";
+  };
+  swarren83 = {
+    email = "shawn.w.warren@gmail.com";
+    github = "swarren83";
+    name = "Shawn Warren";
+  };
+  swflint = {
+    email = "swflint@flintfam.org";
+    github = "swflint";
+    name = "Samuel W. Flint";
+  };
+  swistak35 = {
+    email = "me@swistak35.com";
+    github = "swistak35";
+    name = "Rafał Łasocha";
+  };
+  symphorien = {
+    email = "symphorien_nixpkgs@xlumurb.eu";
+    github = "symphorien";
+    name = "Guillaume Girol";
+  };
+  szczyp = {
+    email = "qb@szczyp.com";
+    github = "szczyp";
+    name = "Szczyp";
+  };
+  sztupi = {
+    email = "attila.sztupak@gmail.com";
+    github = "sztupi";
+    name = "Attila Sztupak";
+  };
+  tadfisher = {
+    email = "tadfisher@gmail.com";
+    github = "tadfisher";
+    name = "Tad Fisher";
+  };
+  taeer = {
+    email = "taeer@necsi.edu";
+    github = "Radvendii";
+    name = "Taeer Bar-Yam";
+  };
+  tailhook = {
+    email = "paul@colomiets.name";
+    github = "tailhook";
+    name = "Paul Colomiets";
+  };
+  taketwo = {
+    email = "alexandrov88@gmail.com";
+    github = "taketwo";
+    name = "Sergey Alexandrov";
+  };
+  takikawa = {
+    email = "asumu@igalia.com";
+    github = "takikawa";
+    name = "Asumu Takikawa";
+  };
+  taktoa = {
+    email = "taktoa@gmail.com";
+    github = "taktoa";
+    name = "Remy Goldschmidt";
+  };
+  taku0 = {
+    email = "mxxouy6x3m_github@tatapa.org";
+    github = "taku0";
+    name = "Takuo Yonezawa";
+  };
+  tari = {
+    email = "peter@taricorp.net";
+    github = "tari";
+    name = "Peter Marheine";
+  };
+  tavyc = {
+    email = "octavian.cerna@gmail.com";
+    github = "tavyc";
+    name = "Octavian Cerna";
+  };
+  teh = {
+    email = "tehunger@gmail.com";
+    github = "teh";
+    name = "Tom Hunger";
+  };
+  telotortium = {
+    email = "rirelan@gmail.com";
+    github = "telotortium";
+    name = "Robert Irelan";
+  };
+  teozkr = {
+    email = "teo@nullable.se";
+    github = "teozkr";
+    name = "Teo Klestrup Röijezon";
+  };
+  teto = {
+    email = "mcoudron@hotmail.com";
+    github = "teto";
+    name = "Matthieu Coudron";
+  };
+  tex = {
+    email = "milan.svoboda@centrum.cz";
+    github = "tex";
+    name = "Milan Svoboda";
+  };
+  thall = {
+    email = "niclas.thall@gmail.com";
+    github = "thall";
+    name = "Niclas Thall";
+  };
+  thammers = {
+    email = "jawr@gmx.de";
+    github = "tobias-hammerschmidt";
+    name = "Tobias Hammerschmidt";
+  };
+  thanegill = {
+    email = "me@thanegill.com";
+    github = "thanegill";
+    name = "Thane Gill";
+  };
+  the-kenny = {
+    email = "moritz@tarn-vedra.de";
+    github = "the-kenny";
+    name = "Moritz Ulrich";
+  };
+  theuni = {
+    email = "ct@flyingcircus.io";
+    github = "ctheune";
+    name = "Christian Theune";
+  };
+  thoughtpolice = {
+    email = "aseipp@pobox.com";
+    github = "thoughtpolice";
+    name = "Austin Seipp";
+  };
+  thpham = {
+    email = "thomas.pham@ithings.ch";
+    github = "thpham";
+    name = "Thomas Pham";
+  };
+  tilpner = {
+    email = "till@hoeppner.ws";
+    github = "tilpner";
+    name = "Till Höppner";
+  };
+  timbertson = {
+    email = "tim@gfxmonk.net";
+    github = "timbertson";
+    name = "Tim Cuthbertson";
+  };
+  timokau = {
+    email = "timokau@zoho.com";
+    github = "timokau";
+    name = "Timo Kaufmann";
+  };
+  timor = {
+    email = "timor.dd@googlemail.com";
+    github = "timor";
+    name = "timor";
+  };
+  tiramiseb = {
+    email = "sebastien@maccagnoni.eu";
+    github = "tiramiseb";
+    name = "Sébastien Maccagnoni";
+  };
+  titanous = {
+    email = "jonathan@titanous.com";
+    github = "titanous";
+    name = "Jonathan Rudenberg";
+  };
+  tnias = {
+    email = "phil@grmr.de";
+    github = "tnias";
+    name = "Philipp Bartsch";
+  };
+  tohl = {
+    email = "tom@logand.com";
+    github = "tohl";
+    name = "Tomas Hlavaty";
+  };
+  tokudan = {
+    email = "git@danielfrank.net";
+    github = "tokudan";
+    name = "Daniel Frank";
+  };
+  tomberek = {
+    email = "tomberek@gmail.com";
+    github = "tomberek";
+    name = "Thomas Bereknyei";
+  };
+  tomsmeets = {
+    email = "tom@tsmeets.nl";
+    github = "tomsmeets";
+    name = "Tom Smeets";
+  };
+  travisbhartwell = {
+    email = "nafai@travishartwell.net";
+    github = "travisbhartwell";
+    name = "Travis B. Hartwell";
+  };
+  treemo = {
+    email = "matthieu.chevrier@treemo.fr";
+    github = "treemo";
+    name = "Matthieu Chevrier";
+  };
+  trevorj = {
+    email = "nix@trevor.joynson.io";
+    github = "akatrevorjay";
+    name = "Trevor Joynson";
+  };
+  trino = {
+    email = "muehlhans.hubert@ekodia.de";
+    github = "hmuehlhans";
+    name = "Hubert Mühlhans";
+  };
+  troydm = {
+    email = "d.geurkov@gmail.com";
+    github = "troydm";
+    name = "Dmitry Geurkov";
+  };
+  tstrobel = {
+    email = "4ZKTUB6TEP74PYJOPWIR013S2AV29YUBW5F9ZH2F4D5UMJUJ6S@hash.domains";
+    name = "Thomas Strobel";
+  };
+  ttuegel = {
+    email = "ttuegel@mailbox.org";
+    github = "ttuegel";
+    name = "Thomas Tuegel";
+  };
+  tv = {
+    email = "tv@shackspace.de";
+    github = "4z3";
+    name = "Tomislav Viljetić";
+  };
+  tvestelind = {
+    email = "tomas.vestelind@fripost.org";
+    github = "tvestelind";
+    name = "Tomas Vestelind";
+  };
+  tvorog = {
+    email = "marszaripov@gmail.com";
+    github = "tvorog";
+    name = "Marsel Zaripov";
+  };
+  tweber = {
+    email = "tw+nixpkgs@360vier.de";
+    github = "thorstenweber83";
+    name = "Thorsten Weber";
+  };
+  twey = {
+    email = "twey@twey.co.uk";
+    github = "twey";
+    name = "James ‘Twey’ Kay";
+  };
+  unode = {
+    email = "alves.rjc@gmail.com";
+    github = "unode";
+    name = "Renato Alves";
+  };
+  uralbash = {
+    email = "root@uralbash.ru";
+    github = "uralbash";
+    name = "Svintsov Dmitry";
+  };
+  utdemir = {
+    email = "me@utdemir.com";
+    github = "utdemir";
+    name = "Utku Demir";
+  };
+  uwap = {
+    email = "me@uwap.name";
+    github = "uwap";
+    name = "uwap";
+  };
+  va1entin = {
+    email = "github@valentinsblog.com";
+    github = "va1entin";
+    name = "Valentin Heidelberger";
+  };
+  vaibhavsagar = {
+    email = "vaibhavsagar@gmail.com";
+    github = "vaibhavsagar";
+    name = "Vaibhav Sagar";
+  };
+  valeriangalliat = {
+    email = "val@codejam.info";
+    github = "valeriangalliat";
+    name = "Valérian Galliat";
+  };
+  vandenoever = {
+    email = "jos@vandenoever.info";
+    github = "vandenoever";
+    name = "Jos van den Oever";
+  };
+  vanschelven = {
+    email = "klaas@vanschelven.com";
+    github = "vanschelven";
+    name = "Klaas van Schelven";
+  };
+  vanzef = {
+    email = "vanzef@gmail.com";
+    github = "vanzef";
+    name = "Ivan Solyankin";
+  };
+  varunpatro = {
+    email = "varun.kumar.patro@gmail.com";
+    github = "varunpatro";
+    name = "Varun Patro";
+  };
+  vbgl = {
+    email = "Vincent.Laporte@gmail.com";
+    github = "vbgl";
+    name = "Vincent Laporte";
+  };
+  vbmithr = {
+    email = "vb@luminar.eu.org";
+    github = "vbmithr";
+    name = "Vincent Bernardoff";
+  };
+  vcunat = {
+    email = "vcunat@gmail.com";
+    github = "vcunat";
+    name = "Vladimír Čunát";
+  };
+  vdemeester = {
+    email = "vincent@sbr.pm";
+    github = "vdemeester";
+    name = "Vincent Demeester";
+  };
+  velovix = {
+    email = "xaviosx@gmail.com";
+    github = "velovix";
+    name = "Tyler Compton";
+  };
+  veprbl = {
+    email = "veprbl@gmail.com";
+    github = "veprbl";
+    name = "Dmitry Kalinkin";
+  };
+  vidbina = {
+    email = "vid@bina.me";
+    github = "vidbina";
+    name = "David Asabina";
+  };
+  vifino = {
+    email = "vifino@tty.sh";
+    github = "vifino";
+    name = "Adrian Pistol";
+  };
+  vinymeuh = {
+    email = "vinymeuh@gmail.com";
+    github = "vinymeuh";
+    name = "VinyMeuh";
+  };
+  viric = {
+    email = "viric@viric.name";
+    github = "viric";
+    name = "Lluís Batlle i Rossell";
+  };
+  vizanto = {
+    email = "danny@prime.vc";
+    github = "vizanto";
+    name = "Danny Wilson";
+  };
+  vklquevs = {
+    email = "vklquevs@gmail.com";
+    github = "vklquevs";
+    name = "vklquevs";
+  };
+  vlstill = {
+    email = "xstill@fi.muni.cz";
+    github = "vlstill";
+    name = "Vladimír Štill";
+  };
+  vmandela = {
+    email = "venkat.mandela@gmail.com";
+    github = "vmandela";
+    name = "Venkateswara Rao Mandela";
+  };
+  vmchale = {
+    email = "tmchale@wisc.edu";
+    github = "vmchale";
+    name = "Vanessa McHale";
+  };
+  volhovm = {
+    email = "volhovm.cs@gmail.com";
+    github = "volhovm";
+    name = "Mikhail Volkhov";
+  };
+  volth = {
+    email = "jaroslavas@volth.com";
+    github = "volth";
+    name = "Jaroslavas Pocepko";
+  };
+  vozz = {
+    email = "oliver.huntuk@gmail.com";
+    name = "Oliver Hunt";
+  };
+  vrthra = {
+    email = "rahul@gopinath.org";
+    github = "vrthra";
+    name = "Rahul Gopinath";
+  };
+  vyp = {
+    email = "elisp.vim@gmail.com";
+    github = "vyp";
+    name = "vyp";
+  };
+  wedens = {
+    email = "kirill.wedens@gmail.com";
+    name = "wedens";
+  };
+  willibutz = {
+    email = "willibutz@posteo.de";
+    github = "willibutz";
+    name = "Willi Butz";
+  };
+  willtim = {
+    email = "tim.williams.public@gmail.com";
+    name = "Tim Philip Williams";
+  };
+  winden = {
+    email = "windenntw@gmail.com";
+    name = "Antonio Vargas Gonzalez";
+  };
+  wizeman = {
+    email = "rcorreia@wizy.org";
+    github = "wizeman";
+    name = "Ricardo M. Correia";
+  };
+  wjlroe = {
+    email = "willroe@gmail.com";
+    github = "wjlroe";
+    name = "William Roe";
+  };
+  wkennington = {
+    email = "william@wkennington.com";
+    github = "wkennington";
+    name = "William A. Kennington III";
+  };
+  wmertens = {
+    email = "Wout.Mertens@gmail.com";
+    github = "wmertens";
+    name = "Wout Mertens";
+  };
+  woffs = {
+    email = "github@woffs.de";
+    github = "woffs";
+    name = "Frank Doepper";
+  };
+  womfoo = {
+    email = "kranium@gikos.net";
+    github = "womfoo";
+    name = "Kranium Gikos Mendoza";
+  };
+  wscott = {
+    email = "wsc9tt@gmail.com";
+    github = "wscott";
+    name = "Wayne Scott";
+  };
+  wyvie = {
+    email = "elijahrum@gmail.com";
+    github = "wyvie";
+    name = "Elijah Rum";
+  };
+  xaverdh = {
+    email = "hoe.dom@gmx.de";
+    github = "xaverdh";
+    name = "Dominik Xaver Hörl";
+  };
+  xeji = {
+    email = "xeji@cat3.de";
+    github = "xeji";
+    name = "xeji";
+  };
+  xnaveira = {
+    email = "xnaveira@gmail.com";
+    github = "xnaveira";
+    name = "Xavier Naveira";
+  };
+  xnwdd = {
+    email = "nwdd+nixos@no.team";
+    github = "xnwdd";
+    name = "Guillermo NWDD";
+  };
+  xurei = {
+    email = "olivier.bourdoux@gmail.com";
+    github = "xurei";
+    name = "Olivier Bourdoux";
+  };
+  xvapx = {
+    email = "marti.serra.coscollano@gmail.com";
+    github = "xvapx";
+    name = "Marti Serra";
+  };
+  xwvvvvwx = {
+    email = "davidterry@posteo.de";
+    github = "xwvvvvwx";
+    name = "David Terry";
+  };
+  xzfc = {
+    email = "xzfcpw@gmail.com";
+    github = "xzfc";
+    name = "Albert Safin";
+  };
+  y0no = {
+    email = "y0no@y0no.fr";
+    github = "y0no";
+    name = "Yoann Ono";
+  };
+  yarr = {
+    email = "savraz@gmail.com";
+    github = "Eternity-Yarr";
+    name = "Dmitry V.";
+  };
+  yegortimoshenko = {
+    email = "yegortimoshenko@gmail.com";
+    github = "yegortimoshenko";
+    name = "Yegor Timoshenko";
+  };
+  yesbox = {
+    email = "jesper.geertsen.jonsson@gmail.com";
+    github = "yesbox";
+    name = "Jesper Geertsen Jonsson";
+  };
+  ylwghst = {
+    email = "ylwghst@onionmail.info";
+    github = "ylwghst";
+    name = "Burim Augustin Berisa";
+  };
+  yochai = {
+    email = "yochai@titat.info";
+    github = "yochai";
+    name = "Yochai";
+  };
+  yorickvp = {
+    email = "yorickvanpelt@gmail.com";
+    github = "yorickvp";
+    name = "Yorick van Pelt";
+  };
+  yrashk = {
+    email = "yrashk@gmail.com";
+    github = "yrashk";
+    name = "Yurii Rashkovskii";
+  };
+  yuriaisaka = {
+    email = "yuri.aisaka+nix@gmail.com";
+    github = "yuriaisaka";
+    name = "Yuri Aisaka";
+  };
+  yurrriq = {
+    email = "eric@ericb.me";
+    github = "yurrriq";
+    name = "Eric Bailey";
+  };
+  z77z = {
+    email = "maggesi@math.unifi.it";
+    github = "maggesi";
+    name = "Marco Maggesi";
+  };
+  zagy = {
+    email = "cz@flyingcircus.io";
+    github = "zagy";
+    name = "Christian Zagrodnick";
+  };
+  zalakain = {
+    email = "contact@unaizalakain.info";
+    github = "umazalakain";
+    name = "Unai Zalakain";
+  };
+  zarelit = {
+    email = "david@zarel.net";
+    github = "zarelit";
+    name = "David Costa";
+  };
+  zauberpony = {
+    email = "elmar@athmer.org";
+    github = "zauberpony";
+    name = "Elmar Athmer";
+  };
+  zef = {
+    email = "zef@zef.me";
+    name = "Zef Hemel";
+  };
+  zimbatm = {
+    email = "zimbatm@zimbatm.com";
+    github = "zimbatm";
+    name = "zimbatm";
+  };
+  zohl = {
+    email = "zohl@fmap.me";
+    github = "zohl";
+    name = "Al Zohali";
+  };
+  zoomulator = {
+    email = "zoomulator@gmail.com";
+    github = "zoomulator";
+    name = "Kim Simmons";
+  };
+  zraexy = {
+    email = "zraexy@gmail.com";
+    github = "zraexy";
+    name = "David Mell";
+  };
+  zx2c4 = {
+    email = "Jason@zx2c4.com";
+    github = "zx2c4";
+    name = "Jason A. Donenfeld";
+  };
+  zzamboni = {
+    email = "diego@zzamboni.org";
+    github = "zzamboni";
+    name = "Diego Zamboni";
+  };
+}
diff --git a/maintainers/scripts/check-maintainer-github-handles.sh b/maintainers/scripts/check-maintainer-github-handles.sh
new file mode 100755
index 0000000000000..879a2e452cb33
--- /dev/null
+++ b/maintainers/scripts/check-maintainer-github-handles.sh
@@ -0,0 +1,66 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p jq parallel
+
+# Example how to work with the `lib.maintainers` attrset.
+# Can be used to check whether all user handles are still valid.
+
+set -e
+
+# nixpkgs='<nixpkgs>'
+# if [ -n "$1" ]; then
+
+function checkCommits {
+    local user="$1"
+    local tmp=$(mktemp)
+    curl --silent -w "%{http_code}" \
+         "https://github.com/NixOS/nixpkgs/commits?author=$user" \
+         > "$tmp"
+    # the last line of tmp contains the http status
+    local status=$(tail -n1 "$tmp")
+    local ret=
+    case $status in
+        200) if <"$tmp" grep -i "no commits found" > /dev/null; then
+                 ret=1
+             else
+                 ret=0
+             fi
+             ;;
+        # because of github’s hard request limits, this can take some time
+        429) sleep 2
+             printf "."
+             checkCommits "$user"
+             ret=$?
+             ;;
+        *)   printf "BAD STATUS: $(tail -n1 $tmp) for %s\n" "$user"; ret=1
+             ret=1
+             ;;
+    esac
+    rm "$tmp"
+    return $ret
+}
+export -f checkCommits
+
+function checkUser {
+    local user="$1"
+    local status=
+    status="$(curl --silent --head "https://github.com/${user}" | grep Status)"
+    # checks whether a user handle can be found on github
+    if [[ "$status" =~ 404 ]]; then
+        printf "%s\t\t\t\t%s\n" "$status" "$user"
+    # checks whether the user handle has any nixpkgs commits
+    elif checkCommits "$user"; then
+        printf "OK!\t\t\t\t%s\n" "$user"
+    else
+        printf "No Commits!\t\t\t%s\n" "$user"
+    fi
+}
+export -f checkUser
+
+# output the maintainers set as json
+# and filter out the github username of each maintainer (if it exists)
+# then check some at the same time
+nix-instantiate -A lib.maintainers --eval --strict --json \
+    | jq -r '.[]|.github|select(.)' \
+    | parallel -j5 checkUser
+
+# parallel -j100 checkUser ::: "eelco" "profpatsch" "Profpatsch" "a"
diff --git a/nixos/doc/manual/development/testing-installer.xml b/nixos/doc/manual/development/testing-installer.xml
index 20c8d51815ad3..16bc8125d9ff4 100644
--- a/nixos/doc/manual/development/testing-installer.xml
+++ b/nixos/doc/manual/development/testing-installer.xml
@@ -11,15 +11,17 @@ tedious, so here is a quick way to see if the installer works
 properly:
 
 <screen>
-$ nix-build -A config.system.build.nixos-install
 # mount -t tmpfs none /mnt
+# nixos-generate-config --root /mnt
+$ nix-build '&lt;nixpkgs/nixos>' -A config.system.build.nixos-install
 # ./result/bin/nixos-install</screen>
 
 To start a login shell in the new NixOS installation in
 <filename>/mnt</filename>:
 
 <screen>
-# ./result/bin/nixos-install --chroot
+$ nix-build '&lt;nixpkgs/nixos>' -A config.system.build.nixos-enter
+# ./result/bin/nixos-enter
 </screen>
 
 </para>
diff --git a/nixos/doc/manual/installation/installing-from-other-distro.xml b/nixos/doc/manual/installation/installing-from-other-distro.xml
new file mode 100644
index 0000000000000..ecd020a067a95
--- /dev/null
+++ b/nixos/doc/manual/installation/installing-from-other-distro.xml
@@ -0,0 +1,309 @@
+<!-- vim: set expandtab ts=2 softtabstop=2 shiftwidth=2 smarttab textwidth=80 wrapmargin=2 -->
+<section
+    xmlns="http://docbook.org/ns/docbook"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    xmlns:xi="http://www.w3.org/2001/XInclude"
+    version="5.0"
+    xml:id="sec-installing-from-other-distro">
+
+    <title>Installing from another Linux distribution</title>
+
+    <para>
+        Because Nix (the package manager) &amp; Nixpkgs (the Nix packages
+        collection) can both be installed on any (most?) Linux distributions,
+        they can be used to install NixOS in various creative ways. You can,
+        for instance:
+    </para>
+
+    <orderedlist>
+        <listitem><para>Install NixOS on another partition, from your existing
+                Linux distribution (without the use of a USB or optical
+                device!)</para></listitem>
+
+        <listitem><para>Install NixOS on the same partition (in place!), from
+                your existing non-NixOS Linux distribution using
+                <literal>NIXOS_LUSTRATE</literal>.</para></listitem>
+
+        <listitem><para>Install NixOS on your hard drive from the Live CD of
+                any Linux distribution.</para></listitem>
+    </orderedlist>
+
+    <para>The first steps to all these are the same:</para>
+
+    <orderedlist>
+        <listitem>
+            <para>Install the Nix package manager:</para>
+
+            <para>Short version:</para>
+
+            <screen>
+$ bash &lt;(curl https://nixos.org/nix/install)
+$ . $HOME/.nix-profile/etc/profile.d/nix.sh # …or open a fresh shell</screen>
+
+            <para>More details in the <link
+                    xlink:href="https://nixos.org/nix/manual/#chap-quick-start">
+                    Nix manual</link></para>
+        </listitem>
+
+        <listitem>
+            <para>Switch to the NixOS channel:</para>
+
+            <para>If you've just installed Nix on a non-NixOS distribution, you
+                will be on the <literal>nixpkgs</literal> channel by
+                default.</para>
+
+            <screen>
+$ nix-channel --list
+nixpkgs https://nixos.org/channels/nixpkgs-unstable</screen>
+
+            <para>As that channel gets released without running the NixOS
+                tests, it will be safer to use the <literal>nixos-*</literal>
+                channels instead:</para>
+
+            <screen>
+$ nix-channel --add https://nixos.org/channels/nixos-<replaceable>version</replaceable> nixpkgs</screen>
+
+            <para>You may want to throw in a <literal>nix-channel
+                    --update</literal> for good measure.</para>
+        </listitem>
+
+        <listitem>
+            <para>Install the NixOS installation tools:</para>
+
+            <para>You'll need <literal>nixos-generate-config</literal> and
+                <literal>nixos-install</literal> and we'll throw in some man
+                pages and <literal>nixos-enter</literal> just in case you want
+                to chroot into your NixOS partition. They are installed by
+                default on NixOS, but you don't have NixOS yet..</para>
+
+            <screen>$ nix-env -iE "_: with import &lt;nixpkgs/nixos&gt; { configuration = {}; }; with config.system.build; [ nixos-generate-config nixos-install nixos-enter manual.manpages ]"</screen>
+        </listitem>
+
+        <listitem>
+            <note><para>The following 5 steps are only for installing NixOS to
+                    another partition. For installing NixOS in place using
+                    <literal>NIXOS_LUSTRATE</literal>, skip ahead.</para></note>
+
+            <para>Prepare your target partition:</para>
+
+            <para>At this point it is time to prepare your target partition.
+                Please refer to the partitioning, file-system creation, and
+                mounting steps of <xref linkend="sec-installation" /></para>
+
+            <para>If you're about to install NixOS in place using
+                <literal>NIXOS_LUSTRATE</literal> there is nothing to do for
+                this step.</para>
+        </listitem>
+
+        <listitem>
+            <para>Generate your NixOS configuration:</para>
+
+            <screen>$ sudo `which nixos-generate-config` --root /mnt</screen>
+
+            <para>You'll probably want to edit the configuration files. Refer
+                to the <literal>nixos-generate-config</literal> step in <xref
+                    linkend="sec-installation" /> for more information.</para>
+
+            <para>Consider setting up the NixOS bootloader to give you the
+                ability to boot on your existing Linux partition. For instance,
+                if you're using GRUB and your existing distribution is running
+                Ubuntu, you may want to add something like this to your
+                <literal>configuration.nix</literal>:</para>
+
+            <programlisting>
+boot.loader.grub.extraEntries = ''
+  menuentry "Ubuntu" {
+    search --set=ubuntu --fs-uuid 3cc3e652-0c1f-4800-8451-033754f68e6e
+    configfile "($ubuntu)/boot/grub/grub.cfg"
+  }
+'';</programlisting>
+
+            <para>(You can find the appropriate UUID for your partition in
+                <literal>/dev/disk/by-uuid</literal>)</para>
+        </listitem>
+
+        <listitem>
+            <para>Create the <literal>nixbld</literal> group and user on your
+                original distribution:</para>
+
+            <screen>
+$ sudo groupadd -g 30000 nixbld
+$ sudo useradd -u 30000 -g nixbld -G nixbld nixbld</screen>
+        </listitem>
+
+        <listitem>
+            <para>Download/build/install NixOS:</para>
+
+            <warning><para>Once you complete this step, you might no longer be
+                    able to boot on existing systems without the help of a
+                    rescue USB drive or similar.</para></warning>
+
+            <screen>$ sudo PATH="$PATH" NIX_PATH="$NIX_PATH" `which nixos-install` --root /mnt</screen>
+
+            <para>Again, please refer to the <literal>nixos-install</literal>
+                step in <xref linkend="sec-installation" /> for more
+                information.</para>
+
+            <para>That should be it for installation to another partition!</para>
+        </listitem>
+
+        <listitem>
+            <para>Optionally, you may want to clean up your non-NixOS distribution:</para>
+
+            <screen>
+$ sudo userdel nixbld
+$ sudo groupdel nixbld</screen>
+
+            <para>If you do not wish to keep the Nix package mananager
+                installed either, run something like <literal>sudo rm -rv
+                    ~/.nix-* /nix</literal> and remove the line that the Nix
+                installer added to your <literal>~/.profile</literal>.</para>
+        </listitem>
+
+        <listitem>
+            <note><para>The following steps are only for installing NixOS in
+                    place using
+                    <literal>NIXOS_LUSTRATE</literal>:</para></note>
+
+            <para>Generate your NixOS configuration:</para>
+
+            <screen>$ sudo `which nixos-generate-config` --root /</screen>
+
+            <para>Note that this will place the generated configuration files
+                in <literal>/etc/nixos</literal>. You'll probably want to edit
+                the configuration files. Refer to the
+                <literal>nixos-generate-config</literal> step in <xref
+                    linkend="sec-installation" /> for more information.</para>
+
+            <para>You'll likely want to set a root password for your first boot
+                using the configuration files because you won't have a chance
+                to enter a password until after you reboot. You can initalize
+                the root password to an empty one with this line: (and of course
+                don't forget to set one once you've rebooted or to lock the
+                account with <literal>sudo passwd -l root</literal> if you use
+                <literal>sudo</literal>)</para>
+
+            <programlisting>users.extraUsers.root.initialHashedPassword = "";</programlisting>
+        </listitem>
+
+        <listitem>
+            <para>Build the NixOS closure and install it in the
+                <literal>system</literal> profile:</para>
+
+            <screen>$ nix-env -p /nix/var/nix/profiles/system -f '&lt;nixpkgs/nixos&gt;' -I nixos-config=/etc/nixos/configuration.nix -iA system</screen>
+        </listitem>
+
+        <listitem>
+            <para>Change ownership of the <literal>/nix</literal> tree to root
+                (since your Nix install was probably single user):</para>
+
+            <screen>$ sudo chown -R 0.0 /nix</screen>
+        </listitem>
+
+        <listitem>
+            <para>Set up the <literal>/etc/NIXOS</literal> and
+                <literal>/etc/NIXOS_LUSTRATE</literal> files:</para>
+
+            <para><literal>/etc/NIXOS</literal> officializes that this is now a
+                NixOS partition (the bootup scripts require its presence).</para>
+
+            <para><literal>/etc/NIXOS_LUSTRATE</literal> tells the NixOS bootup
+                scripts to move <emphasis>everything</emphasis> that's in the
+                root partition to <literal>/old-root</literal>. This will move
+                your existing distribution out of the way in the very early
+                stages of the NixOS bootup. There are exceptions (we do need to
+                keep NixOS there after all), so the NixOS lustrate process will
+                not touch:</para>
+
+            <itemizedlist>
+                <listitem><para>The <literal>/nix</literal>
+                        directory</para></listitem>
+
+                <listitem><para>The <literal>/boot</literal>
+                        directory</para></listitem>
+
+                <listitem><para>Any file or directory listed in
+                        <literal>/etc/NIXOS_LUSTRATE</literal> (one per
+                        line)</para></listitem>
+            </itemizedlist>
+
+            <note><para>Support for <literal>NIXOS_LUSTRATE</literal> was added
+                    in NixOS 16.09. The act of "lustrating" refers to the
+                    wiping of the existing distribution. Creating
+                    <literal>/etc/NIXOS_LUSTRATE</literal> can also be used on
+                    NixOS to remove all mutable files from your root partition
+                    (anything that's not in <literal>/nix</literal> or
+                    <literal>/boot</literal> gets "lustrated" on the next
+                    boot.</para>
+                <para>lustrate /ˈlʌstreɪt/ verb.</para>
+                <para>purify by expiatory sacrifice, ceremonial washing, or
+                    some other ritual action.</para></note>
+
+            <para>Let's create the files:</para>
+
+            <screen>
+$ sudo touch /etc/NIXOS
+$ sudo touch /etc/NIXOS_LUSTRATE</screen>
+
+            <para>Let's also make sure the NixOS configuration files are kept
+                once we reboot on NixOS:</para>
+
+            <screen>
+$ echo etc/nixos | sudo tee -a /etc/NIXOS_LUSTRATE</screen>
+        </listitem>
+
+        <listitem>
+            <para>Finally, move the <literal>/boot</literal> directory of your
+                current distribution out of the way (the lustrate process will
+                take care of the rest once you reboot, but this one must be
+                moved out now because NixOS needs to install its own boot
+                files:</para>
+
+            <warning><para>Once you complete this step, your current
+                    distribution will no longer be bootable! If you didn't get
+                    all the NixOS configuration right, especially those
+                    settings pertaining to boot loading and root partition,
+                    NixOS may not be bootable either. Have a USB rescue device
+                    ready in case this happens. </para></warning>
+
+            <screen>
+$ sudo mv -v /boot /boot.bak &amp;&amp;
+    sudo /nix/var/nix/profiles/system/bin/switch-to-configuration boot</screen>
+
+            <para>Cross your fingers, reboot, hopefully you should get a NixOS
+                prompt!</para>
+        </listitem>
+        <listitem>
+            <para>If for some reason you want to revert to the old
+                distribution, you'll need to boot on a USB rescue disk and do
+                something along these lines:</para>
+
+            <screen>
+# mkdir root
+# mount /dev/sdaX root
+# mkdir root/nixos-root
+# mv -v root/* root/nixos-root/
+# mv -v root/nixos-root/old-root/* root/
+# mv -v root/boot.bak root/boot  # We had renamed this by hand earlier
+# umount root
+# reboot</screen>
+
+            <para>This may work as is or you might also need to reinstall the
+                boot loader</para>
+
+            <para>And of course, if you're happy with NixOS and no longer need
+                the old distribution:</para>
+
+            <screen>sudo rm -rf /old-root</screen>
+        </listitem>
+
+        <listitem>
+            <para>It's also worth noting that this whole process can be
+                automated. This is especially useful for Cloud VMs, where
+                provider do not provide NixOS. For instance, <link
+                    xlink:href="https://github.com/elitak/nixos-infect">nixos-infect</link>
+                uses the lustrate process to convert Digital Ocean droplets to
+                NixOS from other distributions automatically.</para>
+        </listitem>
+    </orderedlist>
+</section>
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml
index 2a5d1fc3ce8db..e20b6574b7254 100644
--- a/nixos/doc/manual/installation/installing.xml
+++ b/nixos/doc/manual/installation/installing.xml
@@ -401,5 +401,6 @@ drive (here <filename>/dev/sda</filename>).  <xref linkend="ex-config"
 <xi:include href="installing-usb.xml" />
 <xi:include href="installing-pxe.xml" />
 <xi:include href="installing-virtualbox-guest.xml" />
+<xi:include href="installing-from-other-distro.xml" />
 
 </chapter>
diff --git a/nixos/doc/manual/man-nixos-enter.xml b/nixos/doc/manual/man-nixos-enter.xml
new file mode 100644
index 0000000000000..a2fbe07961db6
--- /dev/null
+++ b/nixos/doc/manual/man-nixos-enter.xml
@@ -0,0 +1,119 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude">
+
+<refmeta>
+  <refentrytitle><command>nixos-enter</command></refentrytitle>
+  <manvolnum>8</manvolnum>
+  <refmiscinfo class="source">NixOS</refmiscinfo>
+  <!-- <refmiscinfo class="version"><xi:include href="version.txt" parse="text"/></refmiscinfo> -->
+</refmeta>
+
+<refnamediv>
+  <refname><command>nixos-enter</command></refname>
+  <refpurpose>run a command in a NixOS chroot environment</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <cmdsynopsis>
+    <command>nixos-enter</command>
+    <arg>
+      <arg choice='plain'><option>--root</option></arg>
+      <replaceable>root</replaceable>
+    </arg>
+    <arg>
+      <arg choice='plain'><option>--system</option></arg>
+      <replaceable>system</replaceable>
+    </arg>
+    <arg>
+      <arg choice='plain'><option>-c</option></arg>
+      <replaceable>shell-command</replaceable>
+    </arg>
+    <arg>
+      <arg choice='plain'><option>--help</option></arg>
+    </arg>
+    <arg>
+      <arg choice='plain'><option>--</option></arg>
+      <replaceable>arguments</replaceable>
+    </arg>
+  </cmdsynopsis>
+</refsynopsisdiv>
+
+
+<refsection><title>Description</title>
+
+<para>This command runs a command in a NixOS chroot environment, that
+is, in a filesystem hierarchy previously prepared using
+<command>nixos-install</command>.</para>
+
+</refsection>
+
+<refsection><title>Options</title>
+
+<para>This command accepts the following options:</para>
+
+<variablelist>
+
+  <varlistentry>
+    <term><option>--root</option></term>
+    <listitem>
+      <para>The path to the NixOS system you want to enter. It defaults to <filename>/mnt</filename>.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><option>--system</option></term>
+    <listitem>
+      <para>The NixOS system configuration to use. It defaults to
+      <filename>/nix/var/nix/profiles/system</filename>. You can enter
+      a previous NixOS configuration by specifying a path such as
+      <filename>/nix/var/nix/profiles/system-106-link</filename>.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><option>--command</option></term>
+    <term><option>-c</option></term>
+    <listitem>
+      <para>The bash command to execute.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><option>--</option></term>
+
+    <listitem><para>Interpret the remaining arguments as the program
+    name and arguments to be invoked. The program is not executed in a
+    shell.</para></listitem>
+
+  </varlistentry>
+
+</variablelist>
+
+</refsection>
+
+
+<refsection><title>Examples</title>
+
+<para>Start an interactive shell in the NixOS installation in
+<filename>/mnt</filename>:</para>
+
+<screen>
+# nixos-enter /mnt
+</screen>
+
+<para>Run a shell command:</para>
+
+<screen>
+# nixos-enter -c 'ls -l /; cat /proc/mounts'
+</screen>
+
+<para>Run a non-shell command:</para>
+
+<screen>
+# nixos-enter -- cat /proc/mounts
+</screen>
+
+</refsection>
+
+</refentry>
diff --git a/nixos/doc/manual/man-nixos-install.xml b/nixos/doc/manual/man-nixos-install.xml
index 15c603256ca71..c9887146989b1 100644
--- a/nixos/doc/manual/man-nixos-install.xml
+++ b/nixos/doc/manual/man-nixos-install.xml
@@ -26,8 +26,8 @@
       <replaceable>root</replaceable>
     </arg>
     <arg>
-      <arg choice='plain'><option>--closure</option></arg>
-      <replaceable>closure</replaceable>
+      <arg choice='plain'><option>--system</option></arg>
+      <replaceable>path</replaceable>
     </arg>
     <arg>
       <arg choice='plain'><option>--no-channel-copy</option></arg>
@@ -118,7 +118,7 @@ it.</para>
   </varlistentry>
 
   <varlistentry>
-    <term><option>--closure</option></term>
+    <term><option>--system</option></term>
     <listitem>
       <para>If this option is provided, <command>nixos-install</command> will install the specified closure
       rather than attempt to build one from <filename>/mnt/etc/nixos/configuration.nix</filename>.</para>
diff --git a/nixos/doc/manual/man-pages.xml b/nixos/doc/manual/man-pages.xml
index e945e0e626393..80a8458fbfec4 100644
--- a/nixos/doc/manual/man-pages.xml
+++ b/nixos/doc/manual/man-pages.xml
@@ -15,7 +15,7 @@
     </author>
 
     <copyright>
-      <year>2007-2015</year>
+      <year>2007-2018</year>
       <holder>Eelco Dolstra</holder>
     </copyright>
 
@@ -25,6 +25,7 @@
   <xi:include href="man-nixos-build-vms.xml" />
   <xi:include href="man-nixos-generate-config.xml" />
   <xi:include href="man-nixos-install.xml" />
+  <xi:include href="man-nixos-enter.xml" />
   <xi:include href="man-nixos-option.xml" />
   <xi:include href="man-nixos-rebuild.xml" />
   <xi:include href="man-nixos-version.xml" />
diff --git a/nixos/doc/manual/release-notes/release-notes.xml b/nixos/doc/manual/release-notes/release-notes.xml
index 5ed56bde66592..b7f9fab44f3b1 100644
--- a/nixos/doc/manual/release-notes/release-notes.xml
+++ b/nixos/doc/manual/release-notes/release-notes.xml
@@ -9,6 +9,7 @@
 <para>This section lists the release notes for each stable version of NixOS
 and current unstable revision.</para>
 
+<xi:include href="rl-1809.xml" />
 <xi:include href="rl-1803.xml" />
 <xi:include href="rl-1709.xml" />
 <xi:include href="rl-1703.xml" />
diff --git a/nixos/doc/manual/release-notes/rl-1803.xml b/nixos/doc/manual/release-notes/rl-1803.xml
index 9f80dcc29341b..b755245a69fbb 100644
--- a/nixos/doc/manual/release-notes/rl-1803.xml
+++ b/nixos/doc/manual/release-notes/rl-1803.xml
@@ -20,6 +20,25 @@ has the following highlights: </para>
 <itemizedlist>
   <listitem>
     <para>
+      Nix now defaults to 2.0; see its
+      <link xlink:href="https://nixos.org/nix/manual/#ssec-relnotes-2.0">release notes</link>.
+    </para>
+  </listitem>
+
+  <listitem>
+    <para>
+      Linux kernel defaults to the 4.14 branch (it was 4.9).
+    </para>
+  </listitem>
+
+  <listitem>
+    <para>
+      GCC defaults to 7.x (it was 6.x).
+    </para>
+  </listitem>
+
+  <listitem>
+    <para>
       MariaDB 10.2, updated from 10.1, is now the default MySQL implementation. While upgrading a few changes
       have been made to the infrastructure involved:
       <itemizedlist>
@@ -181,7 +200,7 @@ following incompatible changes:</para>
   </listitem>
   <listitem>
     <para>
-      <literal>lib.addPassthru drv passthru</literal> is removed.  Use <literal>lib.extendDerivation true passthru drv</literal> instead.  <emphasis role="strong">TODO: actually remove it before branching 18.03 off.</emphasis>
+      <literal>lib.addPassthru drv passthru</literal> is removed.  Use <literal>lib.extendDerivation true passthru drv</literal> instead.
     </para>
   </listitem>
   <listitem>
@@ -296,6 +315,13 @@ following incompatible changes:</para>
       <literal>nodejs-4_x</literal>, <literal>nodejs-slim-4_x</literal> and <literal>nodePackages_4_x</literal> are removed.
     </para>
   </listitem>
+  <listitem>
+    <para>
+      The <literal>pump.io</literal> NixOS module was removed.
+      It is now maintained as an
+      <link xlink:href="https://github.com/rvl/pump.io-nixos">external module</link>.
+    </para>
+  </listitem>
 </itemizedlist>
 
 </section>
diff --git a/nixos/doc/manual/release-notes/rl-1809.xml b/nixos/doc/manual/release-notes/rl-1809.xml
new file mode 100644
index 0000000000000..f44d9cad52f05
--- /dev/null
+++ b/nixos/doc/manual/release-notes/rl-1809.xml
@@ -0,0 +1,82 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-release-18.09">
+
+<title>Release 18.09 (“??”, 2018/09/??)</title>
+
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-release-18.09-highlights">
+
+<title>Highlights</title>
+
+<para>In addition to numerous new and upgraded packages, this release
+has the following highlights: </para>
+
+<itemizedlist>
+  <listitem>
+    <para>
+      TODO
+    </para>
+  </listitem>
+
+</itemizedlist>
+
+</section>
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-release-18.09-new-services">
+
+<title>New Services</title>
+
+<para>The following new services were added since the last release:</para>
+
+<itemizedlist>
+  <listitem>
+    <para></para>
+  </listitem>
+</itemizedlist>
+
+</section>
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-release-18.09-incompatibilities">
+
+<title>Backward Incompatibilities</title>
+
+<para>When upgrading from a previous release, please be aware of the
+following incompatible changes:</para>
+
+<itemizedlist>
+  <listitem>
+    <para>
+    </para>
+  </listitem>
+</itemizedlist>
+
+</section>
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-release-18.09-notable-changes">
+
+<title>Other Notable Changes</title>
+
+<itemizedlist>
+  <listitem>
+    <para>
+    </para>
+  </listitem>
+</itemizedlist>
+
+</section>
+</section>
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index b7a38760dd3a4..ebfb09db7b7e4 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -51,7 +51,7 @@ with lib;
 
 let format' = format; in let
 
-  format = if (format' == "qcow2-compressed") then "qcow2" else format';
+  format = if format' == "qcow2-compressed" then "qcow2" else format';
 
   compress = optionalString (format' == "qcow2-compressed") "-c";
 
@@ -84,6 +84,7 @@ let format' = format; in let
 
   nixpkgs = cleanSource pkgs.path;
 
+  # FIXME: merge with channel.nix / make-channel.nix.
   channelSources = pkgs.runCommand "nixos-${config.system.nixos.version}" {} ''
     mkdir -p $out
     cp -prd ${nixpkgs} $out/nixos
@@ -95,13 +96,16 @@ let format' = format; in let
     echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix
   '';
 
-  metaClosure = pkgs.writeText "meta" ''
-    ${config.system.build.toplevel}
-    ${config.nix.package.out}
-    ${channelSources}
-  '';
-
-  prepareImageInputs = with pkgs; [ rsync utillinux parted e2fsprogs lkl fakeroot config.system.build.nixos-prepare-root ] ++ stdenv.initialPath;
+  binPath = with pkgs; makeBinPath (
+    [ rsync
+      utillinux
+      parted
+      e2fsprogs
+      lkl
+      config.system.build.nixos-install
+      config.system.build.nixos-enter
+      nix
+    ] ++ stdenv.initialPath);
 
   # I'm preserving the line below because I'm going to search for it across nixpkgs to consolidate
   # image building logic. The comment right below this now appears in 4 different places in nixpkgs :)
@@ -109,8 +113,10 @@ let format' = format; in let
   sources = map (x: x.source) contents;
   targets = map (x: x.target) contents;
 
+  closureInfo = pkgs.closureInfo { rootPaths = [ config.system.build.toplevel channelSources ]; };
+
   prepareImage = ''
-    export PATH=${makeBinPath prepareImageInputs}
+    export PATH=${binPath}
 
     # Yes, mkfs.ext4 takes different units in different contexts. Fun.
     sectorsToKilobytes() {
@@ -168,11 +174,15 @@ let format' = format; in let
       fi
     done
 
-    # TODO: Nix really likes to chown things it creates to its current user...
-    fakeroot nixos-prepare-root $root ${channelSources} ${config.system.build.toplevel} closure
+    export HOME=$TMPDIR
+
+    # Provide a Nix database so that nixos-install can copy closures.
+    export NIX_STATE_DIR=$TMPDIR/state
+    nix-store --load-db < ${closureInfo}/registration
 
-    # fakeroot seems to always give the owner write permissions, which we do not want
-    find $root/nix/store -mindepth 1 -maxdepth 1 -type f -o -type d | xargs chmod -R a-w
+    echo "running nixos-install..."
+    nixos-install --root $root --no-bootloader --no-root-passwd \
+      --system ${config.system.build.toplevel} --channel ${channelSources} --substituters ""
 
     echo "copying staging root to image..."
     cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} -t ${fsType} -i $diskImage $root/* /
@@ -181,7 +191,6 @@ in pkgs.vmTools.runInLinuxVM (
   pkgs.runCommand name
     { preVM = prepareImage;
       buildInputs = with pkgs; [ utillinux e2fsprogs dosfstools ];
-      exportReferencesGraph = [ "closure" metaClosure ];
       postVM = ''
         ${if format == "raw" then ''
           mv $diskImage $out/${filename}
@@ -194,6 +203,8 @@ in pkgs.vmTools.runInLinuxVM (
       memSize = 1024;
     }
     ''
+      export PATH=${binPath}:$PATH
+
       rootDisk=${if partitionTableType != "none" then "/dev/vda${rootPartition}" else "/dev/vda"}
 
       # Some tools assume these exist
@@ -218,15 +229,8 @@ in pkgs.vmTools.runInLinuxVM (
         cp ${configFile} /mnt/etc/nixos/configuration.nix
       ''}
 
-      mount --rbind /dev  $mountPoint/dev
-      mount --rbind /proc $mountPoint/proc
-      mount --rbind /sys  $mountPoint/sys
-
       # Set up core system link, GRUB, etc.
-      NIXOS_INSTALL_BOOTLOADER=1 chroot $mountPoint /nix/var/nix/profiles/system/bin/switch-to-configuration boot
-
-      # TODO: figure out if I should activate, but for now I won't
-      # chroot $mountPoint /nix/var/nix/profiles/system/activate
+      NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root $mountPoint -- /nix/var/nix/profiles/system/bin/switch-to-configuration boot
 
       # The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images
       rm -f $mountPoint/etc/machine-id
diff --git a/nixos/lib/make-iso9660-image.nix b/nixos/lib/make-iso9660-image.nix
index 75be70dbcb2bf..c6bafd48f9dbd 100644
--- a/nixos/lib/make-iso9660-image.nix
+++ b/nixos/lib/make-iso9660-image.nix
@@ -1,4 +1,4 @@
-{ stdenv, perl, pathsFromGraph, xorriso, syslinux
+{ stdenv, perl, closureInfo, xorriso, syslinux
 
 , # The file name of the resulting ISO image.
   isoName ? "cd.iso"
@@ -48,9 +48,9 @@ assert usbBootable -> isohybridMbrImage != "";
 stdenv.mkDerivation {
   name = isoName;
   builder = ./make-iso9660-image.sh;
-  buildInputs = [perl xorriso syslinux];
+  buildInputs = [ xorriso syslinux ];
 
-  inherit isoName bootable bootImage compressImage volumeID pathsFromGraph efiBootImage efiBootable isohybridMbrImage usbBootable;
+  inherit isoName bootable bootImage compressImage volumeID efiBootImage efiBootable isohybridMbrImage usbBootable;
 
   # !!! should use XML.
   sources = map (x: x.source) contents;
@@ -61,6 +61,5 @@ stdenv.mkDerivation {
   symlinks = map (x: x.symlink) storeContents;
 
   # For obtaining the closure of `storeContents'.
-  exportReferencesGraph =
-    map (x: [("closure-" + baseNameOf x.object) x.object]) storeContents;
+  closureInfo = closureInfo { rootPaths = map (x: x.object) storeContents; };
 }
diff --git a/nixos/lib/make-iso9660-image.sh b/nixos/lib/make-iso9660-image.sh
index c623436f6c5b9..45cdef1ef4df5 100644
--- a/nixos/lib/make-iso9660-image.sh
+++ b/nixos/lib/make-iso9660-image.sh
@@ -72,16 +72,15 @@ done
 
 
 # Add the closures of the top-level store objects.
-storePaths=$(perl $pathsFromGraph closure-*)
-for i in $storePaths; do
+for i in $(< $closureInfo/store-paths); do
     addPath "${i:1}" "$i"
 done
 
 
 # Also include a manifest of the closures in a format suitable for
 # nix-store --load-db.
-if [ -n "$object" ]; then
-    printRegistration=1 perl $pathsFromGraph closure-* > nix-path-registration
+if [[ ${#objects[*]} != 0 ]]; then
+    cp $closureInfo/registration nix-path-registration
     addPath "nix-path-registration" "nix-path-registration"
 fi
 
diff --git a/nixos/lib/make-squashfs.nix b/nixos/lib/make-squashfs.nix
index 9d47a3222cc27..7ab84e47f53b5 100644
--- a/nixos/lib/make-squashfs.nix
+++ b/nixos/lib/make-squashfs.nix
@@ -1,4 +1,4 @@
-{ stdenv, squashfsTools, perl, pathsFromGraph
+{ stdenv, squashfsTools, closureInfo
 
 , # The root directory of the squashfs filesystem is filled with the
   # closures of the Nix store paths listed here.
@@ -8,50 +8,18 @@
 stdenv.mkDerivation {
   name = "squashfs.img";
 
-  nativeBuildInputs = [perl squashfsTools];
-
-  # For obtaining the closure of `storeContents'.
-  exportReferencesGraph =
-    map (x: [("closure-" + baseNameOf x) x]) storeContents;
+  nativeBuildInputs = [ squashfsTools ];
 
   buildCommand =
     ''
-      # Add the closures of the top-level store objects.
-      storePaths=$(perl ${pathsFromGraph} closure-*)
-
-      # If a Hydra slave happens to have store paths with bad permissions/mtime,
-      # abort now so that they don't end up in ISO images in the channel.
-      # https://github.com/NixOS/nixpkgs/issues/32242
-      hasBadPaths=""
-      for path in $storePaths; do
-        if [ -h "$path" ]; then
-          continue
-        fi
-
-        mtime=$(stat -c %Y "$path")
-        mode=$(stat -c %a "$path")
-
-        if [ "$mtime" != 1 ]; then
-          echo "Store path '$path' has an invalid mtime."
-          hasBadPaths=1
-        fi
-        if [ "$mode" != 444 ] && [ "$mode" != 555 ]; then
-          echo "Store path '$path' has invalid permissions ($mode)."
-          hasBadPaths=1
-        fi
-      done
-
-      if [ -n "$hasBadPaths" ]; then
-        echo "You have bad paths in your store, please fix them."
-        exit 1
-      fi
+      closureInfo=${closureInfo { rootPaths = storeContents; }}
 
       # Also include a manifest of the closures in a format suitable
       # for nix-store --load-db.
-      printRegistration=1 perl ${pathsFromGraph} closure-* > nix-path-registration
+      cp $closureInfo/registration nix-path-registration
 
       # Generate the squashfs image.
-      mksquashfs nix-path-registration $storePaths $out \
+      mksquashfs nix-path-registration $(cat $closureInfo/store-paths) $out \
         -keep-as-directory -all-root -b 1048576 -comp xz -Xdict-size 100%
     '';
 }
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
index efcafbaa5554f..d990a5f8b6ace 100644
--- a/nixos/lib/testing.nix
+++ b/nixos/lib/testing.nix
@@ -3,7 +3,11 @@
 with import ./build-vms.nix { inherit system minimal config; };
 with pkgs;
 
-rec {
+let
+  jquery-ui = callPackage ./testing/jquery-ui.nix { };
+  jquery = callPackage ./testing/jquery.nix { };
+
+in rec {
 
   inherit pkgs;
 
@@ -143,8 +147,8 @@ rec {
       test = passMeta (runTests driver);
       report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; });
 
-    in (if makeCoverageReport then report else test) // { 
-      inherit nodes driver test; 
+    in (if makeCoverageReport then report else test) // {
+      inherit nodes driver test;
     };
 
   runInMachine =
diff --git a/pkgs/development/libraries/javascript/jquery-ui/default.nix b/nixos/lib/testing/jquery-ui.nix
index e65107a3c2fbc..e65107a3c2fbc 100644
--- a/pkgs/development/libraries/javascript/jquery-ui/default.nix
+++ b/nixos/lib/testing/jquery-ui.nix
diff --git a/pkgs/development/libraries/javascript/jquery/default.nix b/nixos/lib/testing/jquery.nix
index 103721cadc383..103721cadc383 100644
--- a/pkgs/development/libraries/javascript/jquery/default.nix
+++ b/nixos/lib/testing/jquery.nix
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index c1102d5581010..11e969b760e03 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -529,6 +529,9 @@ in {
 
     system.activationScripts.users = stringAfter [ "stdio" ]
       ''
+        install -m 0700 -d /root
+        install -m 0755 -d /home
+
         ${pkgs.perl}/bin/perl -w \
           -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl \
           -I${pkgs.perlPackages.JSON}/lib/perl5/site_perl \
diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix
index c2c36f02a1436..d9646704e6f60 100644
--- a/nixos/modules/hardware/opengl.nix
+++ b/nixos/modules/hardware/opengl.nix
@@ -34,10 +34,17 @@ in
 {
   options = {
     hardware.opengl.enable = mkOption {
-      description = "Whether this configuration requires OpenGL.";
+      description = ''
+        Whether to enable OpenGL drivers. This is needed to enable
+        OpenGL support in X11 systems, as well as for Wayland compositors
+        like sway, way-cooler and Weston. It is enabled by default
+        by the corresponding modules, so you do not usually have to
+        set it yourself, only if there is no module for your wayland
+        compositor of choice. See services.xserver.enable,
+        programs.sway.enable, and programs.way-cooler.enable.
+      '';
       type = types.bool;
       default = false;
-      internal = true;
     };
 
     hardware.opengl.driSupport = mkOption {
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index 811449e9fe7ed..e7cbf415a2233 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -331,8 +331,7 @@ in
         config.system.build.toplevel.drvPath;
 
     # Create the squashfs image that contains the Nix store.
-    system.build.squashfsStore = import ../../../lib/make-squashfs.nix {
-      inherit (pkgs) stdenv squashfsTools perl pathsFromGraph;
+    system.build.squashfsStore = pkgs.callPackage ../../../lib/make-squashfs.nix {
       storeContents = config.isoImage.storeContents;
     };
 
@@ -383,11 +382,8 @@ in
     boot.loader.timeout = 10;
 
     # Create the ISO image.
-    system.build.isoImage = import ../../../lib/make-iso9660-image.nix ({
-      inherit (pkgs) stdenv perl pathsFromGraph xorriso syslinux;
-
+    system.build.isoImage = pkgs.callPackage ../../../lib/make-iso9660-image.nix ({
       inherit (config.isoImage) isoName compressImage volumeID contents;
-
       bootable = true;
       bootImage = "/isolinux/isolinux.bin";
     } // optionalAttrs config.isoImage.makeUsbBootable {
diff --git a/nixos/modules/installer/netboot/netboot.nix b/nixos/modules/installer/netboot/netboot.nix
index 52239b6191264..a4eda3c52dcee 100644
--- a/nixos/modules/installer/netboot/netboot.nix
+++ b/nixos/modules/installer/netboot/netboot.nix
@@ -67,7 +67,7 @@ with lib;
 
     # Create the squashfs image that contains the Nix store.
     system.build.squashfsStore = import ../../../lib/make-squashfs.nix {
-      inherit (pkgs) stdenv squashfsTools perl pathsFromGraph;
+      inherit (pkgs) stdenv squashfsTools closureInfo;
       storeContents = config.netboot.storeContents;
     };
 
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index 131c779b1ab1c..4774cf39c0304 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,6 +1,6 @@
 {
-  x86_64-linux = "/nix/store/gy4yv67gv3j6in0lalw37j353zdmfcwm-nix-1.11.16";
-  i686-linux = "/nix/store/ifmyq5ryfxhhrzh62hiq65xyz1fwffga-nix-1.11.16";
-  aarch64-linux = "/nix/store/y9mfv3sx75mbfibf1zna1kq9v98fk2nb-nix-1.11.16";
-  x86_64-darwin = "/nix/store/hwpp7kia2f0in5ns2hiw41q38k30jpj2-nix-1.11.16";
+  x86_64-linux = "/nix/store/6p2gambjac7xdkd2a7w1dsxdk1q5cq4d-nix-2.0";
+  i686-linux = "/nix/store/zznnaijjk3nwx0cmpczxsvngmqzhl7r4-nix-2.0";
+  aarch64-linux = "/nix/store/ci96w9kxfkmlc7x2vwqiz4da0r6abxnq-nix-2.0";
+  x86_64-darwin = "/nix/store/xmi4fylvx4qc79ji9v5q3zfy9vfdy4sv-nix-2.0";
 }
diff --git a/nixos/modules/installer/tools/nixos-enter.sh b/nixos/modules/installer/tools/nixos-enter.sh
new file mode 100644
index 0000000000000..6793911896123
--- /dev/null
+++ b/nixos/modules/installer/tools/nixos-enter.sh
@@ -0,0 +1,60 @@
+#! @shell@
+
+set -e
+
+# Re-exec ourselves in a private mount namespace so that our bind
+# mounts get cleaned up automatically.
+if [ -z "$NIXOS_ENTER_REEXEC" ]; then
+    export NIXOS_ENTER_REEXEC=1
+    if [ "$(id -u)" != 0 ]; then
+        extraFlags="-r"
+    fi
+    exec unshare --fork --mount --uts --mount-proc --pid $extraFlags -- "$0" "$@"
+else
+    mount --make-rprivate /
+fi
+
+mountPoint=/mnt
+system=/nix/var/nix/profiles/system
+command=($system/sw/bin/bash "--login")
+
+while [ "$#" -gt 0 ]; do
+    i="$1"; shift 1
+    case "$i" in
+        --root)
+            mountPoint="$1"; shift 1
+            ;;
+        --system)
+            system="$1"; shift 1
+            ;;
+        --help)
+            exec man nixos-enter
+            exit 1
+            ;;
+        --command|-c)
+            command=($system/sw/bin/bash "-c" "$1")
+            shift 1
+            ;;
+        --)
+            command=("$@")
+            break
+            ;;
+        *)
+            echo "$0: unknown option \`$i'"
+            exit 1
+            ;;
+    esac
+done
+
+if [[ ! -e $mountPoint/etc/NIXOS ]]; then
+    echo "$0: '$mountPoint' is not a NixOS installation" >&2
+    exit 126
+fi
+
+mkdir -m 0755 -p "$mountPoint/dev"
+mount --rbind /dev "$mountPoint/dev"
+
+# Run the activation script. Set $LOCALE_ARCHIVE to supress some Perl locale warnings.
+LOCALE_ARCHIVE=$system/sw/lib/locale/locale-archive chroot "$mountPoint" "$system/activate" >&2 || true
+
+exec chroot "$mountPoint" "${command[@]}"
diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh
index f994d5b4bde11..22c1e0fe9a34b 100644
--- a/nixos/modules/installer/tools/nixos-install.sh
+++ b/nixos/modules/installer/tools/nixos-install.sh
@@ -1,35 +1,23 @@
 #! @shell@
 
-# - make Nix store etc.
-# - copy closure of Nix to target device
-# - register validity
-# - with a chroot to the target device:
-#   * nix-env -p /nix/var/nix/profiles/system -i <nix-expr for the configuration>
-#   * install the boot loader
+set -e
+shopt -s nullglob
+
+export PATH=@path@:$PATH
 
 # Ensure a consistent umask.
 umask 0022
 
-# Re-exec ourselves in a private mount namespace so that our bind
-# mounts get cleaned up automatically.
-if [ "$(id -u)" = 0 ]; then
-    if [ -z "$NIXOS_INSTALL_REEXEC" ]; then
-        export NIXOS_INSTALL_REEXEC=1
-        exec unshare --mount --uts -- "$0" "$@"
-    else
-        mount --make-rprivate /
-    fi
-fi
-
 # Parse the command line for the -I flag
 extraBuildFlags=()
-chrootCommand=(/run/current-system/sw/bin/bash)
-buildUsersGroup="nixbld"
+
+mountPoint=/mnt
+channelPath=
 
 while [ "$#" -gt 0 ]; do
     i="$1"; shift 1
     case "$i" in
-        --max-jobs|-j|--cores|-I)
+        --max-jobs|-j|--cores|-I|--substituters)
             j="$1"; shift 1
             extraBuildFlags+=("$i" "$j")
             ;;
@@ -41,9 +29,11 @@ while [ "$#" -gt 0 ]; do
         --root)
             mountPoint="$1"; shift 1
             ;;
-        --closure)
-            closure="$1"; shift 1
-            buildUsersGroup=""
+        --system|--closure)
+            system="$1"; shift 1
+            ;;
+        --channel)
+            channelPath="$1"; shift 1
             ;;
         --no-channel-copy)
             noChannelCopy=1
@@ -57,17 +47,13 @@ while [ "$#" -gt 0 ]; do
         --show-trace)
             extraBuildFlags+=("$i")
             ;;
-        --chroot)
-            runChroot=1
-            if [[ "$@" != "" ]]; then
-                chrootCommand=("$@")
-            fi
-            break
-            ;;
         --help)
             exec man nixos-install
             exit 1
             ;;
+        --debug)
+            set -x
+            ;;
         *)
             echo "$0: unknown option \`$i'"
             exit 1
@@ -75,132 +61,83 @@ while [ "$#" -gt 0 ]; do
     esac
 done
 
-set -e
-shopt -s nullglob
-
-if test -z "$mountPoint"; then
-    mountPoint=/mnt
-fi
-
 if ! test -e "$mountPoint"; then
     echo "mount point $mountPoint doesn't exist"
     exit 1
 fi
 
 # Get the path of the NixOS configuration file.
-if test -z "$NIXOS_CONFIG"; then
-    NIXOS_CONFIG=/etc/nixos/configuration.nix
+if [[ -z $NIXOS_CONFIG ]]; then
+    NIXOS_CONFIG=$mountPoint/etc/nixos/configuration.nix
 fi
 
-if [ ! -e "$mountPoint/$NIXOS_CONFIG" ] && [ -z "$closure" ]; then
-    echo "configuration file $mountPoint/$NIXOS_CONFIG doesn't exist"
+if [[ ${NIXOS_CONFIG:0:1} != / ]]; then
+    echo "$0: \$NIXOS_CONFIG is not an absolute path"
     exit 1
 fi
 
-
-# Builds will use users that are members of this group
-extraBuildFlags+=(--option "build-users-group" "$buildUsersGroup")
-
-# Inherit binary caches from the host
-# TODO: will this still work with Nix 1.12 now that it has no perl? Probably not...
-binary_caches="$(@perl@/bin/perl -I @nix@/lib/perl5/site_perl/*/* -e 'use Nix::Config; Nix::Config::readConfig; print $Nix::Config::config{"binary-caches"};')"
-extraBuildFlags+=(--option "binary-caches" "$binary_caches")
-
-# We only need nixpkgs in the path if we don't already have a system closure to install
-if [[ -z "$closure" ]]; then
-    nixpkgs="$(readlink -f "$(nix-instantiate --find-file nixpkgs)")"
-    export NIX_PATH="nixpkgs=$nixpkgs:nixos-config=$mountPoint/$NIXOS_CONFIG"
-fi
-unset NIXOS_CONFIG
-
-# These get created in nixos-prepare-root as well, but we want to make sure they're here in case we're
-# running with --chroot. TODO: --chroot should just be split into a separate tool.
-mkdir -m 0755 -p "$mountPoint/dev" "$mountPoint/proc" "$mountPoint/sys"
-
-# Set up some bind mounts we'll want regardless of chroot or not
-mount --rbind /dev "$mountPoint/dev"
-mount --rbind /proc "$mountPoint/proc"
-mount --rbind /sys "$mountPoint/sys"
-
-# If we asked for a chroot, that means we're not actually installing anything (yeah I was confused too)
-# and we just want to run a command in the context of a $mountPoint that we're assuming has already been
-# set up by a previous nixos-install invocation. In that case we set up some remaining bind mounts and
-# exec the requested command, skipping the rest of the installation procedure.
-if [ -n "$runChroot" ]; then
-    mount -t tmpfs -o "mode=0755" none $mountPoint/run
-    rm -rf $mountPoint/var/run
-    ln -s /run $mountPoint/var/run
-    for f in /etc/resolv.conf /etc/hosts; do rm -f $mountPoint/$f; [ -f "$f" ] && cp -Lf $f $mountPoint/etc/; done
-    for f in /etc/passwd /etc/group;      do touch $mountPoint/$f; [ -f "$f" ] && mount --rbind -o ro $f $mountPoint/$f; done
-
-    if ! [ -L $mountPoint/nix/var/nix/profiles/system ]; then
-        echo "$0: installation not finished; cannot chroot into installation directory"
-        exit 1
-    fi
-    ln -s /nix/var/nix/profiles/system $mountPoint/run/current-system
-    exec chroot $mountPoint "${chrootCommand[@]}"
+if [[ ! -e $NIXOS_CONFIG && -z $system ]]; then
+    echo "configuration file $NIXOS_CONFIG doesn't exist"
+    exit 1
 fi
 
-# A place to drop temporary closures
+# A place to drop temporary stuff.
 trap "rm -rf $tmpdir" EXIT
 tmpdir="$(mktemp -d)"
 
-# Build a closure (on the host; we then copy it into the guest)
-function closure() {
-    nix-build "${extraBuildFlags[@]}" --no-out-link -E "with import <nixpkgs> {}; runCommand \"closure\" { exportReferencesGraph = [ \"x\" (buildEnv { name = \"env\"; paths = [ ($1) stdenv ]; }) ]; } \"cp x \$out\""
-}
-
-system_closure="$tmpdir/system.closure"
-# Use a FIFO for piping nix-store --export into nix-store --import, saving disk
-# I/O and space. nix-store --import is run by nixos-prepare-root.
-mkfifo $system_closure
-
-if [ -z "$closure" ]; then
-    expr="(import <nixpkgs/nixos> {}).system"
-    system_root="$(nix-build -E "$expr")"
-    system_closure="$(closure "$expr")"
-else
-    system_root=$closure
-    # Create a temporary file ending in .closure (so nixos-prepare-root knows to --import it) to transport the store closure
-    # to the filesytem we're preparing. Also delete it on exit!
-    # Run in background to avoid blocking while trying to write to the FIFO
-    # $system_closure refers to
-    nix-store --export $(nix-store -qR $closure) > $system_closure &
-fi
-
-channel_root="$(nix-env -p /nix/var/nix/profiles/per-user/root/channels -q nixos --no-name --out-path 2>/dev/null || echo -n "")"
-channel_closure="$tmpdir/channel.closure"
-nix-store --export $channel_root > $channel_closure
-
-# Populate the target root directory with the basics
-@prepare_root@/bin/nixos-prepare-root "$mountPoint" "$channel_root" "$system_root" @nixClosure@ "$system_closure" "$channel_closure"
-
-# nixos-prepare-root doesn't currently do anything with file ownership, so we set it up here instead
-chown @root_uid@:@nixbld_gid@ $mountPoint/nix/store
+sub="auto?trusted=1"
 
+# Build the system configuration in the target filesystem.
+if [[ -z $system ]]; then
+    echo "building the configuration in $NIXOS_CONFIG..."
+    outLink="$tmpdir/system"
+    nix build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
+        --extra-substituters "$sub" \
+        -f '<nixpkgs/nixos>' system -I "nixos-config=$NIXOS_CONFIG"
+    system=$(readlink -f $outLink)
+fi
 
+# Set the system profile to point to the configuration. TODO: combine
+# this with the previous step once we have a nix-env replacement with
+# a progress bar.
+nix-env --store "$mountPoint" "${extraBuildFlags[@]}" \
+        --extra-substituters "$sub" \
+        -p $mountPoint/nix/var/nix/profiles/system --set "$system"
+
+# Copy the NixOS/Nixpkgs sources to the target as the initial contents
+# of the NixOS channel.
+if [[ -z $noChannelCopy ]]; then
+    if [[ -z $channelPath ]]; then
+        channelPath="$(nix-env -p /nix/var/nix/profiles/per-user/root/channels -q nixos --no-name --out-path 2>/dev/null || echo -n "")"
+    fi
+    if [[ -n $channelPath ]]; then
+        echo "copying channel..."
+        mkdir -p $mountPoint/nix/var/nix/profiles/per-user/root
+        nix-env --store "$mountPoint" "${extraBuildFlags[@]}" --extra-substituters "$sub" \
+                -p $mountPoint/nix/var/nix/profiles/per-user/root/channels --set "$channelPath" --quiet
+        install -m 0700 -d $mountPoint/root/.nix-defexpr
+        ln -sfn /nix/var/nix/profiles/per-user/root/channels $mountPoint/root/.nix-defexpr/channels
+    fi
+fi
 
-# Grub needs an mtab.
-ln -sfn /proc/mounts $mountPoint/etc/mtab
+# Mark the target as a NixOS installation, otherwise switch-to-configuration will chicken out.
+mkdir -m 0755 -p "$mountPoint/etc"
+touch "$mountPoint/etc/NIXOS"
 
 # Switch to the new system configuration.  This will install Grub with
 # a menu default pointing at the kernel/initrd/etc of the new
 # configuration.
-echo "finalising the installation..."
-if [ -z "$noBootLoader" ]; then
-  NIXOS_INSTALL_BOOTLOADER=1 chroot $mountPoint \
-      /nix/var/nix/profiles/system/bin/switch-to-configuration boot
+if [[ -z $noBootLoader ]]; then
+    echo "installing the boot loader..."
+    # Grub needs an mtab.
+    ln -sfn /proc/mounts $mountPoint/etc/mtab
+    NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root "$mountPoint" -- /run/current-system/bin/switch-to-configuration boot
 fi
 
-# Run the activation script.
-chroot $mountPoint /nix/var/nix/profiles/system/activate
-
-
-# Ask the user to set a root password.
-if [ -z "$noRootPasswd" ] && chroot $mountPoint [ -x /run/wrappers/bin/passwd ] && [ -t 0 ]; then
-    echo "setting root password..."
-    chroot $mountPoint /run/wrappers/bin/passwd
+# Ask the user to set a root password, but only if the passwd command
+# exists (i.e. when mutable user accounts are enabled).
+if [[ -z $noRootPasswd ]] && [ -t 0 ]; then
+    nixos-enter --root "$mountPoint" -c '[[ -e /nix/var/nix/profiles/system/sw/bin/passwd ]] && echo "setting root password..." && /nix/var/nix/profiles/system/sw/bin/passwd'
 fi
 
-
 echo "installation finished!"
diff --git a/nixos/modules/installer/tools/nixos-prepare-root.sh b/nixos/modules/installer/tools/nixos-prepare-root.sh
deleted file mode 100644
index ed5af234fec96..0000000000000
--- a/nixos/modules/installer/tools/nixos-prepare-root.sh
+++ /dev/null
@@ -1,104 +0,0 @@
-#! @shell@
-
-# This script's goal is to perform all "static" setup of a filesystem structure from pre-built store paths. Everything
-# in here should run in a non-root context and inside a Nix builder. It's designed primarily to be called from image-
-# building scripts and from nixos-install, but because it makes very few assumptions about the context in which it runs,
-# it could be useful in other contexts as well.
-#
-# Current behavior:
-#  - set up basic filesystem structure
-#  - make Nix store etc.
-#  - copy Nix, system, channel, and misceallaneous closures to target Nix store
-#  - register validity of all paths in the target store
-#  - set up channel and system profiles
-
-# Ensure a consistent umask.
-umask 0022
-
-set -e
-
-mountPoint="$1"
-channel="$2"
-system="$3"
-shift 3
-closures="$@"
-
-PATH="@coreutils@/bin:@nix@/bin:@perl@/bin:@utillinux@/bin:@rsync@/bin"
-
-if ! test -e "$mountPoint"; then
-    echo "mount point $mountPoint doesn't exist"
-    exit 1
-fi
-
-# Create a few of the standard directories in the target root directory.
-install -m 0755 -d $mountPoint/dev $mountPoint/proc $mountPoint/sys $mountPoint/etc $mountPoint/run $mountPoint/home
-install -m 01777 -d $mountPoint/tmp
-install -m 0755 -d $mountPoint/tmp/root
-install -m 0755 -d $mountPoint/var
-install -m 0700 -d $mountPoint/root
-
-ln -sf /run $mountPoint/var/run
-
-# Create the necessary Nix directories on the target device
-install -m 0755 -d \
-    $mountPoint/nix/var/nix/gcroots \
-    $mountPoint/nix/var/nix/temproots \
-    $mountPoint/nix/var/nix/userpool \
-    $mountPoint/nix/var/nix/profiles \
-    $mountPoint/nix/var/nix/db \
-    $mountPoint/nix/var/log/nix/drvs
-
-install -m 1775 -d $mountPoint/nix/store
-
-# All Nix operations below should operate on our target store, not /nix/store.
-# N.B: this relies on Nix 1.12 or higher
-export NIX_REMOTE=local?root=$mountPoint
-
-# Copy our closures to the Nix store on the target mount point, unless they're already there.
-for i in $closures; do
-    # We support closures both in the format produced by `nix-store --export` and by `exportReferencesGraph`,
-    # mostly because there doesn't seem to be a single format that can be produced outside of a nix build and
-    # inside one. See https://github.com/NixOS/nix/issues/1242 for more discussion.
-    if [[ "$i" =~ \.closure$ ]]; then
-        echo "importing serialized closure $i to $mountPoint..."
-        nix-store --import < $i
-    else
-        # There has to be a better way to do this, right?
-        echo "copying closure $i to $mountPoint..."
-        for j in $(perl @pathsFromGraph@ $i); do
-            echo "  $j... "
-            rsync -a $j $mountPoint/nix/store/
-        done
-
-        nix-store --option build-users-group root --register-validity < $i
-    fi
-done
-
-# Create the required /bin/sh symlink; otherwise lots of things
-# (notably the system() function) won't work.
-if [ ! -x $mountPoint/@shell@ ]; then
-    echo "Error: @shell@ wasn't included in the closure" >&2
-    exit 1
-fi
-install -m 0755 -d $mountPoint/bin
-ln -sf @shell@ $mountPoint/bin/sh
-
-echo "setting the system closure to '$system'..."
-nix-env "${extraBuildFlags[@]}" -p $mountPoint/nix/var/nix/profiles/system --set "$system"
-
-ln -sfn /nix/var/nix/profiles/system $mountPoint/run/current-system
-
-# Copy the NixOS/Nixpkgs sources to the target as the initial contents of the NixOS channel.
-install -m 0755 -d $mountPoint/nix/var/nix/profiles
-install -m 1777 -d $mountPoint/nix/var/nix/profiles/per-user
-install -m 0755 -d $mountPoint/nix/var/nix/profiles/per-user/root
-
-if [ -z "$noChannelCopy" ] && [ -n "$channel" ]; then
-    echo "copying channel..."
-    nix-env --option build-use-substitutes false "${extraBuildFlags[@]}" -p $mountPoint/nix/var/nix/profiles/per-user/root/channels --set "$channel" --quiet
-fi
-install -m 0700 -d $mountPoint/root/.nix-defexpr
-ln -sfn /nix/var/nix/profiles/per-user/root/channels $mountPoint/root/.nix-defexpr/channels
-
-# Mark the target as a NixOS installation, otherwise switch-to-configuration will chicken out.
-touch $mountPoint/etc/NIXOS
diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix
index eab5f1147667f..beac9e29d59cf 100644
--- a/nixos/modules/installer/tools/tools.nix
+++ b/nixos/modules/installer/tools/tools.nix
@@ -1,7 +1,9 @@
 # This module generates nixos-install, nixos-rebuild,
 # nixos-generate-config, etc.
 
-{ config, pkgs, modulesPath, ... }:
+{ config, lib, pkgs, modulesPath, ... }:
+
+with lib;
 
 let
   cfg = config.installer;
@@ -16,28 +18,11 @@ let
     src = ./nixos-build-vms/nixos-build-vms.sh;
   };
 
-  nixos-prepare-root = makeProg {
-    name = "nixos-prepare-root";
-    src = ./nixos-prepare-root.sh;
-
-    nix = pkgs.nixUnstable;
-    inherit (pkgs) perl pathsFromGraph rsync utillinux coreutils;
-  };
-
   nixos-install = makeProg {
     name = "nixos-install";
     src = ./nixos-install.sh;
-
-    inherit (pkgs) perl pathsFromGraph rsync;
     nix = config.nix.package.out;
-    cacert = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
-    root_uid = config.ids.uids.root;
-    nixbld_gid = config.ids.gids.nixbld;
-    prepare_root = nixos-prepare-root;
-
-    nixClosure = pkgs.runCommand "closure"
-      { exportReferencesGraph = ["refs" config.nix.package.out]; }
-      "cp refs $out";
+    path = makeBinPath [ nixos-enter ];
   };
 
   nixos-rebuild =
@@ -69,6 +54,11 @@ let
     inherit (config.system.nixos) version codeName revision;
   };
 
+  nixos-enter = makeProg {
+    name = "nixos-enter";
+    src = ./nixos-enter.sh;
+  };
+
 in
 
 {
@@ -77,16 +67,16 @@ in
 
     environment.systemPackages =
       [ nixos-build-vms
-        nixos-prepare-root
         nixos-install
         nixos-rebuild
         nixos-generate-config
         nixos-option
         nixos-version
+        nixos-enter
       ];
 
     system.build = {
-      inherit nixos-install nixos-prepare-root nixos-generate-config nixos-option nixos-rebuild;
+      inherit nixos-install nixos-prepare-root nixos-generate-config nixos-option nixos-rebuild nixos-enter;
     };
 
   };
diff --git a/nixos/modules/installer/virtualbox-demo.nix b/nixos/modules/installer/virtualbox-demo.nix
index 5316cfce906bc..13a0d7f4f6ee7 100644
--- a/nixos/modules/installer/virtualbox-demo.nix
+++ b/nixos/modules/installer/virtualbox-demo.nix
@@ -19,4 +19,6 @@ with lib;
   # Add some more video drivers to give X11 a shot at working in
   # VMware and QEMU.
   services.xserver.videoDrivers = mkOverride 40 [ "virtualbox" "vmware" "cirrus" "vesa" "modesetting" ];
+
+  powerManagement.enable = false;
 }
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 8d775ffc82d37..39a24cfecc537 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -233,7 +233,7 @@
       calibre-server = 213;
       heapster = 214;
       bepasty = 215;
-      pumpio = 216;
+      # pumpio = 216; # unused, removed 2018-02-24
       nm-openvpn = 217;
       mathics = 218;
       ejabberd = 219;
@@ -514,7 +514,7 @@
       xtreemfs = 212;
       calibre-server = 213;
       bepasty = 215;
-      pumpio = 216;
+      # pumpio = 216; # unused, removed 2018-02-24
       nm-openvpn = 217;
       mathics = 218;
       ejabberd = 219;
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 3bb65c6b295a0..e7f28c670bed9 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -642,7 +642,6 @@
   ./services/web-apps/nexus.nix
   ./services/web-apps/pgpkeyserver-lite.nix
   ./services/web-apps/matomo.nix
-  ./services/web-apps/pump.io.nix
   ./services/web-apps/restya-board.nix
   ./services/web-apps/tt-rss.nix
   ./services/web-apps/selfoss.nix
diff --git a/nixos/modules/profiles/demo.nix b/nixos/modules/profiles/demo.nix
index ef6fd77b5f8d5..c3ee6e98371ee 100644
--- a/nixos/modules/profiles/demo.nix
+++ b/nixos/modules/profiles/demo.nix
@@ -10,4 +10,10 @@
       password = "demo";
       uid = 1000;
     };
+
+  services.xserver.displayManager.sddm.autoLogin = {
+    enable = true;
+    relogin = true;
+    user = "demo";
+  };
 }
diff --git a/nixos/modules/profiles/installation-device.nix b/nixos/modules/profiles/installation-device.nix
index 506a6ee3eaa81..43f06c219f824 100644
--- a/nixos/modules/profiles/installation-device.nix
+++ b/nixos/modules/profiles/installation-device.nix
@@ -72,7 +72,13 @@ with lib;
 
     # To speed up installation a little bit, include the complete
     # stdenv in the Nix store on the CD.
-    system.extraDependencies = with pkgs; [ stdenv stdenvNoCC busybox ];
+    system.extraDependencies = with pkgs;
+      [
+        stdenv
+        stdenvNoCC # for runCommand
+        busybox
+        jq # for closureInfo
+      ];
 
     # Show all debug messages from the kernel but don't log refused packets
     # because we have the firewall enabled. This makes installs from the
diff --git a/nixos/modules/programs/bash/bash.nix b/nixos/modules/programs/bash/bash.nix
index 1a62f04972df4..c0967316c0c7c 100644
--- a/nixos/modules/programs/bash/bash.nix
+++ b/nixos/modules/programs/bash/bash.nix
@@ -126,7 +126,7 @@ in
     programs.bash = {
 
       shellInit = ''
-        . ${config.system.build.setEnvironment}
+        ${config.system.build.setEnvironment.text}
 
         ${cfge.shellInit}
       '';
diff --git a/nixos/modules/programs/zsh/zsh.nix b/nixos/modules/programs/zsh/zsh.nix
index 5102bfef0325d..f689250dc61fb 100644
--- a/nixos/modules/programs/zsh/zsh.nix
+++ b/nixos/modules/programs/zsh/zsh.nix
@@ -108,7 +108,7 @@ in
         if [ -n "$__ETC_ZSHENV_SOURCED" ]; then return; fi
         export __ETC_ZSHENV_SOURCED=1
 
-        . ${config.system.build.setEnvironment}
+        ${config.system.build.setEnvironment.text}
 
         ${cfge.shellInit}
 
diff --git a/nixos/modules/services/databases/openldap.nix b/nixos/modules/services/databases/openldap.nix
index e884098cb08d0..a67c61eb99492 100644
--- a/nixos/modules/services/databases/openldap.nix
+++ b/nixos/modules/services/databases/openldap.nix
@@ -7,8 +7,10 @@ let
   cfg = config.services.openldap;
   openldap = pkgs.openldap;
 
+  dataFile = pkgs.writeText "ldap-contents.ldif" cfg.declarativeContents;
   configFile = pkgs.writeText "slapd.conf" cfg.extraConfig;
-
+  configOpts = if cfg.configDir == null then "-f ${configFile}"
+               else "-F ${cfg.configDir}";
 in
 
 {
@@ -81,6 +83,34 @@ in
             '''
           '';
       };
+
+      declarativeContents = mkOption {
+        type = with types; nullOr lines;
+        default = null;
+        description = ''
+          Declarative contents for the LDAP database, in LDIF format.
+
+          Note a few facts when using it. First, the database
+          <emphasis>must</emphasis> be stored in the directory defined by
+          <code>dataDir</code>. Second, all <code>dataDir</code> will be erased
+          when starting the LDAP server. Third, modifications to the database
+          are not prevented, they are just dropped on the next reboot of the
+          server. Finally, performance-wise the database and indexes are rebuilt
+          on each server startup, so this will slow down server startup,
+          especially with large databases.
+        '';
+        example = ''
+          dn: dc=example,dc=org
+          objectClass: domain
+          dc: example
+
+          dn: ou=users,dc=example,dc=org
+          objectClass = organizationalUnit
+          ou: users
+
+          # ...
+        '';
+      };
     };
 
   };
@@ -88,7 +118,7 @@ in
 
   ###### implementation
 
-  config = mkIf config.services.openldap.enable {
+  config = mkIf cfg.enable {
 
     environment.systemPackages = [ openldap ];
 
@@ -98,11 +128,21 @@ in
       after = [ "network.target" ];
       preStart = ''
         mkdir -p /var/run/slapd
-        chown -R ${cfg.user}:${cfg.group} /var/run/slapd
-        mkdir -p ${cfg.dataDir}
-        chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}
+        chown -R "${cfg.user}:${cfg.group}" /var/run/slapd
+        ${optionalString (cfg.declarativeContents != null) ''
+          rm -Rf "${cfg.dataDir}"
+        ''}
+        mkdir -p "${cfg.dataDir}"
+        ${optionalString (cfg.declarativeContents != null) ''
+          ${openldap.out}/bin/slapadd ${configOpts} -l ${dataFile}
+        ''}
+        chown -R "${cfg.user}:${cfg.group}" "${cfg.dataDir}"
       '';
-      serviceConfig.ExecStart = "${openldap.out}/libexec/slapd -u ${cfg.user} -g ${cfg.group} -d 0 -h \"${concatStringsSep " " cfg.urlList}\" ${if cfg.configDir == null then "-f "+configFile else "-F "+cfg.configDir}";
+      serviceConfig.ExecStart =
+        "${openldap.out}/libexec/slapd -d 0 " +
+          "-u '${cfg.user}' -g '${cfg.group}' " +
+          "-h '${concatStringsSep " " cfg.urlList}' " +
+          "${configOpts}";
     };
 
     users.extraUsers.openldap =
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index c076f90e54031..484079ed62dfc 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -33,9 +33,9 @@ let
       sh = pkgs.runtimeShell;
       binshDeps = pkgs.writeReferencesToFile sh;
     in
-      pkgs.runCommand "nix.conf" { extraOptions = cfg.extraOptions; inherit binshDeps; } ''
+      pkgs.runCommand "nix.conf" { extraOptions = cfg.extraOptions; } ''
         ${optionalString (!isNix20) ''
-          extraPaths=$(for i in $(cat binshDeps); do if test -d $i; then echo $i; fi; done)
+          extraPaths=$(for i in $(cat ${binshDeps}); do if test -d $i; then echo $i; fi; done)
         ''}
         cat > $out <<END
         # WARNING: this file is generated from the nix.* options in
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index e9a035d17d381..f83fb7a6d5dcf 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -335,6 +335,7 @@ in {
 
       preStart = ''
         mkdir -m 700 -p /etc/NetworkManager/system-connections
+        mkdir -m 700 -p /etc/ipsec.d
         mkdir -m 755 -p ${stateDirs}
       '';
     };
diff --git a/nixos/modules/services/networking/nix-serve.nix b/nixos/modules/services/networking/nix-serve.nix
index 3e865e3b76a89..8499e7c0f7c46 100644
--- a/nixos/modules/services/networking/nix-serve.nix
+++ b/nixos/modules/services/networking/nix-serve.nix
@@ -55,6 +55,8 @@ in
       environment.NIX_SECRET_KEY_FILE = cfg.secretKeyFile;
 
       serviceConfig = {
+        Restart = "always";
+        RestartSec = "5s";
         ExecStart = "${pkgs.nix-serve}/bin/nix-serve " +
           "--listen ${cfg.bindAddress}:${toString cfg.port} ${cfg.extraParams}";
         User = "nix-serve";
diff --git a/nixos/modules/services/networking/strongswan.nix b/nixos/modules/services/networking/strongswan.nix
index 3a3f64221c422..707d24b9220f7 100644
--- a/nixos/modules/services/networking/strongswan.nix
+++ b/nixos/modules/services/networking/strongswan.nix
@@ -32,13 +32,13 @@ let
       ${caConf}
     '';
 
-  strongswanConf = {setup, connections, ca, secrets, managePlugins, enabledPlugins}: toFile "strongswan.conf" ''
+  strongswanConf = {setup, connections, ca, secretsFile, managePlugins, enabledPlugins}: toFile "strongswan.conf" ''
     charon {
       ${if managePlugins then "load_modular = no" else ""}
       ${if managePlugins then ("load = " + (concatStringsSep " " enabledPlugins)) else ""}
       plugins {
         stroke {
-          secrets_file = ${ipsecSecrets secrets}
+          secrets_file = ${secretsFile}
         }
       }
     }
@@ -135,7 +135,18 @@ in
     };
   };
 
-  config = with cfg; mkIf enable {
+
+  config = with cfg;
+  let
+    secretsFile = ipsecSecrets cfg.secrets;
+  in
+  mkIf enable
+    {
+
+    # here we should use the default strongswan ipsec.secrets and
+    # append to it (default one is empty so not a pb for now)
+    environment.etc."ipsec.secrets".source = secretsFile;
+
     systemd.services.strongswan = {
       description = "strongSwan IPSec Service";
       wantedBy = [ "multi-user.target" ];
@@ -143,11 +154,15 @@ in
       wants = [ "keys.target" ];
       after = [ "network-online.target" "keys.target" ];
       environment = {
-        STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secrets managePlugins enabledPlugins; };
+        STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secretsFile managePlugins enabledPlugins; };
       };
       serviceConfig = {
         ExecStart  = "${pkgs.strongswan}/sbin/ipsec start --nofork";
       };
+      preStart = ''
+        # with 'nopeerdns' setting, ppp writes into this folder
+        mkdir -m 700 -p /etc/ppp
+      '';
     };
   };
 }
diff --git a/nixos/modules/services/web-apps/pump.io-configure.js b/nixos/modules/services/web-apps/pump.io-configure.js
deleted file mode 100644
index 1fbf346a34c42..0000000000000
--- a/nixos/modules/services/web-apps/pump.io-configure.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var fs = require('fs');
-
-var opts = JSON.parse(fs.readFileSync("/dev/stdin").toString());
-var config = opts.config;
-
-var readSecret = function(filename) {
-  return fs.readFileSync(filename).toString().trim();
-};
-
-if (opts.secretFile) {
-  config.secret = readSecret(opts.secretFile);
-}
-if (opts.dbPasswordFile) {
-  config.params.dbpass = readSecret(opts.dbPasswordFile);
-}
-if (opts.smtpPasswordFile) {
-  config.smtppass = readSecret(opts.smtpPasswordFile);
-}
-if (opts.spamClientSecretFile) {
-  config.spamclientsecret = readSecret(opts.opts.spamClientSecretFile);
-}
-
-fs.writeFileSync(opts.outputFile, JSON.stringify(config));
diff --git a/nixos/modules/services/web-apps/pump.io.nix b/nixos/modules/services/web-apps/pump.io.nix
deleted file mode 100644
index 27ae685163676..0000000000000
--- a/nixos/modules/services/web-apps/pump.io.nix
+++ /dev/null
@@ -1,438 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.pumpio;
-  dataDir = "/var/lib/pump.io";
-  runDir = "/run/pump.io";
-  user = "pumpio";
-
-  optionalSet = condition: value: if condition then value else {};
-
-  configScript = ./pump.io-configure.js;
-  configOptions = {
-    outputFile = "${runDir}/config.json";
-    config =
-      (optionalSet (cfg.driver != "disk") {
-        driver = cfg.driver;
-      }) //
-      {
-        params = (optionalSet (cfg.driver == "disk") { dir = dataDir; }) //
-                 (optionalSet (cfg.driver == "mongodb" || cfg.driver == "redis") {
-                   host = cfg.dbHost;
-                   port = cfg.dbPort;
-                   dbname = cfg.dbName;
-                   dbuser = cfg.dbUser;
-                   dbpass = cfg.dbPassword;
-                 }) //
-                 (optionalSet (cfg.driver == "memcached") {
-                   host = cfg.dbHost;
-                   port = cfg.dbPort;
-                 }) // cfg.driverParams;
-        secret = cfg.secret;
-
-        address = cfg.address;
-        port = cfg.port;
-
-        noweb = false;
-        urlPort = cfg.urlPort;
-        hostname = cfg.hostname;
-        favicon = cfg.favicon;
-
-        site = cfg.site;
-        owner = cfg.owner;
-        ownerURL = cfg.ownerURL;
-
-        key = cfg.sslKey;
-        cert = cfg.sslCert;
-        bounce = false;
-
-        spamhost = cfg.spamHost;
-        spamclientid = cfg.spamClientId;
-        spamclientsecret = cfg.spamClientSecret;
-
-        requireEmail = cfg.requireEmail;
-        smtpserver = cfg.smtpHost;
-        smtpport = cfg.smtpPort;
-        smtpuser = cfg.smtpUser;
-        smtppass = cfg.smtpPassword;
-        smtpusessl = cfg.smtpUseSSL;
-        smtpfrom = cfg.smtpFrom;
-
-        nologger = false;
-        enableUploads = cfg.enableUploads;
-        datadir = dataDir;
-        debugClient = false;
-        firehose = cfg.firehose;
-        disableRegistration = cfg.disableRegistration;
-
-        inherit (cfg) secretFile dbPasswordFile smtpPasswordFile spamClientSecretFile;
-      } //
-      (optionalSet (cfg.port < 1024) {
-        serverUser = user;  # have pump.io listen then drop privileges
-      }) // cfg.extraConfig;
-}; in {
-  options = {
-
-    services.pumpio = {
-
-      enable = mkEnableOption "Pump.io social streams server";
-
-      secret = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        example = "my dog has fleas";
-        description = ''
-          A session-generating secret, server-wide password.  Warning:
-          this is stored in cleartext in the Nix store!
-        '';
-      };
-
-      secretFile = mkOption {
-        type = types.nullOr types.path;
-        default = null;
-        example = "/run/keys/pump.io-secret";
-        description = ''
-          A file containing the session-generating secret,
-          server-wide password.
-        '';
-      };
-
-      site = mkOption {
-        type = types.str;
-        example = "Awesome Sauce";
-        description = "Name of the server";
-      };
-
-      owner = mkOption {
-        type = types.str;
-        default = "";
-        example = "Awesome Inc.";
-        description = "Name of owning entity, if you want to link to it.";
-      };
-
-      ownerURL = mkOption {
-        type = types.str;
-        default = "";
-        example = "https://pump.io";
-        description = "URL of owning entity, if you want to link to it.";
-      };
-
-      address = mkOption {
-        type = types.str;
-        default = "localhost";
-        description = ''
-          Web server listen address.
-        '';
-      };
-
-      port = mkOption {
-        type = types.int;
-        default = 31337;
-        description = ''
-          Port to listen on. Defaults to 31337, which is suitable for
-          running behind a reverse proxy. For a standalone server,
-          use 443.
-        '';
-      };
-
-      hostname = mkOption {
-        type = types.nullOr types.str;
-        default = "localhost";
-        description = ''
-          The hostname of the server, used for generating
-          URLs. Defaults to "localhost" which doesn't do much for you.
-        '';
-      };
-
-      urlPort = mkOption {
-        type = types.int;
-        default = 443;
-        description = ''
-          Port to use for generating URLs. This basically has to be
-          either 80 or 443 because the host-meta and Webfinger
-          protocols don't make any provision for HTTP/HTTPS servers
-          running on other ports.
-        '';
-      };
-
-      favicon = mkOption {
-        type = types.nullOr types.path;
-        default = null;
-        description = ''
-          Local filesystem path to the favicon.ico file to use. This
-          will be served as "/favicon.ico" by the server.
-        '';
-      };
-
-      enableUploads = mkOption {
-        type = types.bool;
-        default = true;
-        description = ''
-          If you want to disable file uploads, set this to false. Uploaded files will be stored
-          in ${dataDir}/uploads.
-        '';
-      };
-
-      sslKey = mkOption {
-        type = types.path;
-        example = "${dataDir}/myserver.key";
-        default = "";
-        description = ''
-          The path to the server certificate private key. The
-          certificate is required, but it can be self-signed.
-        '';
-      };
-
-      sslCert = mkOption {
-        type = types.path;
-        example = "${dataDir}/myserver.crt";
-        default = "";
-        description = ''
-          The path to the server certificate. The certificate is
-          required, but it can be self-signed.
-        '';
-      };
-
-      firehose = mkOption {
-        type = types.str;
-        default = "ofirehose.com";
-        description = ''
-          Firehose host running the ofirehose software. Defaults to
-          "ofirehose.com". Public notices will be ping this firehose
-          server and from there go out to search engines and the
-          world. If you want to disconnect from the public web, set
-          this to something falsy.
-        '';
-      };
-
-      disableRegistration = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Disables registering new users on the site through the Web
-          or the API.
-        '';
-      };
-
-      requireEmail = mkOption {
-        type = types.bool;
-        default = false;
-        description = "Require an e-mail address to register.";
-      };
-
-      extraConfig = mkOption {
-        default = { };
-        description = ''
-          Extra configuration options which are serialized to json and added
-          to the pump.io.json config file.
-        '';
-      };
-
-      driver = mkOption {
-        type = types.enum [ "mongodb" "disk" "lrucache" "memcached" "redis" ];
-        default = "mongodb";
-        description = "Type of database. Corresponds to a nodejs databank driver.";
-      };
-
-      driverParams = mkOption {
-        default = { };
-        description = "Extra parameters for the driver.";
-      };
-
-      dbHost = mkOption {
-        type = types.str;
-        default = "localhost";
-        description = "The database host to connect to.";
-      };
-
-      dbPort = mkOption {
-        type = types.int;
-        default = 27017;
-        description = "The port that the database is listening on.";
-      };
-
-      dbName = mkOption {
-        type = types.str;
-        default = "pumpio";
-        description = "The name of the database to use.";
-      };
-
-      dbUser = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        description = ''
-          The username. Defaults to null, meaning no authentication.
-        '';
-      };
-
-      dbPassword = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        description = ''
-          The password corresponding to dbUser.  Warning: this is
-          stored in cleartext in the Nix store!
-        '';
-      };
-
-      dbPasswordFile = mkOption {
-        type = types.nullOr types.path;
-        default = null;
-        example = "/run/keys/pump.io-dbpassword";
-        description = ''
-          A file containing the password corresponding to dbUser.
-        '';
-      };
-
-      smtpHost = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        example = "localhost";
-        description = ''
-          Server to use for sending transactional email. If it's not
-          set up, no email is sent and features like password recovery
-          and email notification won't work.
-        '';
-      };
-
-      smtpPort = mkOption {
-        type = types.int;
-        default = 25;
-        description = ''
-          Port to connect to on SMTP server.
-        '';
-      };
-
-      smtpUser = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        description = ''
-          Username to use to connect to SMTP server. Might not be
-          necessary for some servers.
-        '';
-      };
-
-      smtpPassword = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        description = ''
-          Password to use to connect to SMTP server. Might not be
-          necessary for some servers.  Warning: this is stored in
-          cleartext in the Nix store!
-        '';
-      };
-
-      smtpPasswordFile = mkOption {
-        type = types.nullOr types.path;
-        default = null;
-        example = "/run/keys/pump.io-smtppassword";
-        description = ''
-          A file containing the password used to connect to SMTP
-          server. Might not be necessary for some servers.
-        '';
-      };
-
-
-      smtpUseSSL = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Only use SSL with the SMTP server. By default, a SSL
-          connection is negotiated using TLS. You may need to change
-          the smtpPort value if you set this.
-        '';
-      };
-
-      smtpFrom = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        description = ''
-          Email address to use in the "From:" header of outgoing
-          notifications. Defaults to 'no-reply@' plus the site
-          hostname.
-        '';
-      };
-
-      spamHost = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        description = ''
-          Host running activityspam software to use to test updates
-          for spam.
-        '';
-      };
-      spamClientId = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        description = "OAuth pair for spam server.";
-      };
-      spamClientSecret = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        description = ''
-          OAuth pair for spam server.  Warning: this is
-          stored in cleartext in the Nix store!
-        '';
-      };
-      spamClientSecretFile = mkOption {
-        type = types.nullOr types.path;
-        default = null;
-        example = "/run/keys/pump.io-spamclientsecret";
-        description = ''
-          A file containing the OAuth key for the spam server.
-        '';
-      };
-    };
-
-  };
-
-  config = mkIf cfg.enable {
-    warnings = let warn = k: optional (cfg.${k} != null)
-                 "config.services.pumpio.${k} is insecure. Use ${k}File instead.";
-               in concatMap warn [ "secret" "dbPassword" "smtpPassword" "spamClientSecret" ];
-
-    assertions = [
-      { assertion = !(isNull cfg.secret && isNull cfg.secretFile);
-        message = "pump.io needs a secretFile configured";
-      }
-    ];
-
-    systemd.services."pump.io" =
-      { description = "Pump.io - stream server that does most of what people really want from a social network";
-        after = [ "network.target" ];
-        wantedBy = [ "multi-user.target" ];
-
-        preStart = ''
-          mkdir -p ${dataDir}/uploads
-          mkdir -p ${runDir}
-          chown pumpio:pumpio ${dataDir}/uploads ${runDir}
-          chmod 770 ${dataDir}/uploads ${runDir}
-
-          ${pkgs.nodejs}/bin/node ${configScript} <<EOF
-          ${builtins.toJSON configOptions}
-          EOF
-
-          chgrp pumpio ${configOptions.outputFile}
-          chmod 640 ${configOptions.outputFile}
-        '';
-
-        serviceConfig = {
-          ExecStart = "${pkgs.pumpio}/bin/pump -c ${configOptions.outputFile}";
-          PermissionsStartOnly = true;
-          User = if cfg.port < 1024 then "root" else user;
-          Group = user;
-        };
-        environment = { NODE_ENV = "production"; };
-      };
-
-      users.extraGroups.pumpio.gid = config.ids.gids.pumpio;
-      users.extraUsers.pumpio = {
-        group = "pumpio";
-        uid = config.ids.uids.pumpio;
-        description = "Pump.io user";
-        home = dataDir;
-        createHome = true;
-      };
-  };
-}
diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix
index c784f4756d197..8f7a56189a074 100644
--- a/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixos/modules/services/web-apps/tt-rss.nix
@@ -505,7 +505,7 @@ let
                     ${cfg.database.name}''
 
               else if cfg.database.type == "mysql" then ''
-                  echo '${e}' | ${pkgs.mysql}/bin/mysql \
+                  echo '${e}' | ${pkgs.sudo}/bin/sudo -u ${cfg.user} ${config.services.mysql.package}/bin/mysql \
                     -u ${cfg.database.user} \
                     ${optionalString (cfg.database.password != null) "-p${cfg.database.password}"} \
                     ${optionalString (cfg.database.host != null) "-h ${cfg.database.host} -P ${toString dbPort}"} \
diff --git a/nixos/modules/services/web-servers/tomcat.nix b/nixos/modules/services/web-servers/tomcat.nix
index 0b2e5c0b69d9e..aa94e0e976c96 100644
--- a/nixos/modules/services/web-servers/tomcat.nix
+++ b/nixos/modules/services/web-servers/tomcat.nix
@@ -19,11 +19,7 @@ in
   options = {
 
     services.tomcat = {
-
-      enable = mkOption {
-        default = false;
-        description = "Whether to enable Apache Tomcat";
-      };
+      enable = mkEnableOption "Apache Tomcat";
 
       package = mkOption {
         type = types.package;
@@ -36,10 +32,30 @@ in
       };
 
       baseDir = mkOption {
+        type = lib.types.path;
         default = "/var/tomcat";
         description = "Location where Tomcat stores configuration files, webapplications and logfiles";
       };
 
+      logDirs = mkOption {
+        default = [];
+        type = types.listOf types.path;
+        description = "Directories to create in baseDir/logs/";
+      };
+
+      extraConfigFiles = mkOption {
+        default = [];
+        type = types.listOf types.path;
+        description = "Extra configuration files to pull into the tomcat conf directory";
+      };
+
+      extraEnvironment = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = [ "ENVIRONMENT=production" ];
+        description = "Environment Variables to pass to the tomcat service";
+      };
+
       extraGroups = mkOption {
         default = [];
         example = [ "users" ];
@@ -47,31 +63,46 @@ in
       };
 
       user = mkOption {
+        type = types.str;
         default = "tomcat";
         description = "User account under which Apache Tomcat runs.";
       };
 
       group = mkOption {
+        type = types.str;
         default = "tomcat";
         description = "Group account under which Apache Tomcat runs.";
       };
 
       javaOpts = mkOption {
+        type = types.either (types.listOf types.str) types.str;
         default = "";
         description = "Parameters to pass to the Java Virtual Machine which spawns Apache Tomcat";
       };
 
       catalinaOpts = mkOption {
+        type = types.either (types.listOf types.str) types.str;
         default = "";
         description = "Parameters to pass to the Java Virtual Machine which spawns the Catalina servlet container";
       };
 
       sharedLibs = mkOption {
+        type = types.listOf types.str;
         default = [];
         description = "List containing JAR files or directories with JAR files which are libraries shared by the web applications";
       };
 
+      serverXml = mkOption {
+        type = types.lines;
+        default = "";
+        description = "
+          Verbatim server.xml configuration.
+          This is mutually exclusive with the virtualHosts options.
+        ";
+      };
+
       commonLibs = mkOption {
+        type = types.listOf types.str;
         default = [];
         description = "List containing JAR files or directories with JAR files which are libraries shared by the web applications and the servlet container";
       };
@@ -84,11 +115,21 @@ in
       };
 
       virtualHosts = mkOption {
+        type = types.listOf (types.submodule {
+          options = {
+            name = mkOption {
+              type = types.listOf types.str;
+              description = "name of the virtualhost";
+              default = [];
+            };
+          };
+        });
         default = [];
         description = "List consisting of a virtual host name and a list of web applications to deploy on each virtual host";
       };
 
       logPerVirtualHost = mkOption {
+        type = types.bool;
         default = false;
         description = "Whether to enable logging per virtual host.";
       };
@@ -104,11 +145,13 @@ in
 
         enable = mkOption {
           default = false;
+          type = types.bool;
           description = "Whether to enable an Apache Axis2 container";
         };
 
         services = mkOption {
           default = [];
+          type = types.listOf types.str;
           description = "List containing AAR files or directories with AAR files which are web services to be deployed on Axis2";
         };
 
@@ -140,130 +183,104 @@ in
       description = "Apache Tomcat server";
       wantedBy = [ "multi-user.target" ];
       after = [ "network.target" ];
-      serviceConfig.Type = "oneshot";
-      serviceConfig.RemainAfterExit = true;
 
       preStart = ''
         # Create the base directory
-        mkdir -p ${cfg.baseDir}
+        mkdir -p \
+          ${cfg.baseDir}/{conf,virtualhosts,logs,temp,lib,shared/lib,webapps,work}
+        chown ${cfg.user}:${cfg.group} \
+          ${cfg.baseDir}/{conf,virtualhosts,logs,temp,lib,shared/lib,webapps,work}
 
         # Create a symlink to the bin directory of the tomcat component
         ln -sfn ${tomcat}/bin ${cfg.baseDir}/bin
 
-        # Create a conf/ directory
-        mkdir -p ${cfg.baseDir}/conf
-        chown ${cfg.user}:${cfg.group} ${cfg.baseDir}/conf
-
         # Symlink the config files in the conf/ directory (except for catalina.properties and server.xml)
-        for i in $(ls ${tomcat}/conf | grep -v catalina.properties | grep -v server.xml)
-        do
-            ln -sfn ${tomcat}/conf/$i ${cfg.baseDir}/conf/`basename $i`
+        for i in $(ls ${tomcat}/conf | grep -v catalina.properties | grep -v server.xml); do
+          ln -sfn ${tomcat}/conf/$i ${cfg.baseDir}/conf/`basename $i`
         done
 
-        # Create subdirectory for virtual hosts
-        mkdir -p ${cfg.baseDir}/virtualhosts
+        ${if cfg.extraConfigFiles != [] then ''
+          for i in ${toString cfg.extraConfigFiles}; do
+            ln -sfn $i ${cfg.baseDir}/conf/`basename $i`
+          done
+        '' else ""}
 
         # Create a modified catalina.properties file
         # Change all references from CATALINA_HOME to CATALINA_BASE and add support for shared libraries
         sed -e 's|''${catalina.home}|''${catalina.base}|g' \
-            -e 's|shared.loader=|shared.loader=''${catalina.base}/shared/lib/*.jar|' \
-            ${tomcat}/conf/catalina.properties > ${cfg.baseDir}/conf/catalina.properties
-
-        # Create a modified server.xml which also includes all virtual hosts
-        sed -e "/<Engine name=\"Catalina\" defaultHost=\"localhost\">/a\  ${
-                     toString (map (virtualHost: ''<Host name=\"${virtualHost.name}\" appBase=\"virtualhosts/${virtualHost.name}/webapps\" unpackWARs=\"true\" autoDeploy=\"true\" xmlValidation=\"false\" xmlNamespaceAware=\"false\" >${if cfg.logPerVirtualHost then ''<Valve className=\"org.apache.catalina.valves.AccessLogValve\" directory=\"logs/${virtualHost.name}\"  prefix=\"${virtualHost.name}_access_log.\" pattern=\"combined\" resolveHosts=\"false\"/>'' else ""}</Host>'') cfg.virtualHosts)}" \
-            ${tomcat}/conf/server.xml > ${cfg.baseDir}/conf/server.xml
-
-        # Create a logs/ directory
-        mkdir -p ${cfg.baseDir}/logs
-        chown ${cfg.user}:${cfg.group} ${cfg.baseDir}/logs
-        ${if cfg.logPerVirtualHost then
-           toString (map (h: ''
-                                mkdir -p ${cfg.baseDir}/logs/${h.name}
-                                chown ${cfg.user}:${cfg.group} ${cfg.baseDir}/logs/${h.name}
-                             '') cfg.virtualHosts) else ''''}
-
-        # Create a temp/ directory
-        mkdir -p ${cfg.baseDir}/temp
-        chown ${cfg.user}:${cfg.group} ${cfg.baseDir}/temp
-
-        # Create a lib/ directory
-        mkdir -p ${cfg.baseDir}/lib
-        chown ${cfg.user}:${cfg.group} ${cfg.baseDir}/lib
-
-        # Create a shared/lib directory
-        mkdir -p ${cfg.baseDir}/shared/lib
-        chown ${cfg.user}:${cfg.group} ${cfg.baseDir}/shared/lib
-
-        # Create a webapps/ directory
-        mkdir -p ${cfg.baseDir}/webapps
-        chown ${cfg.user}:${cfg.group} ${cfg.baseDir}/webapps
+          -e 's|shared.loader=|shared.loader=''${catalina.base}/shared/lib/*.jar|' \
+          ${tomcat}/conf/catalina.properties > ${cfg.baseDir}/conf/catalina.properties
+
+        ${if cfg.serverXml != "" then ''
+          cp -f ${pkgs.writeTextDir "server.xml" cfg.serverXml}/* ${cfg.baseDir}/conf/
+          '' else ''
+          # Create a modified server.xml which also includes all virtual hosts
+          sed -e "/<Engine name=\"Catalina\" defaultHost=\"localhost\">/a\  ${toString (map (virtualHost: ''<Host name=\"${virtualHost.name}\" appBase=\"virtualhosts/${virtualHost.name}/webapps\" unpackWARs=\"true\" autoDeploy=\"true\" xmlValidation=\"false\" xmlNamespaceAware=\"false\" >${if cfg.logPerVirtualHost then ''<Valve className=\"org.apache.catalina.valves.AccessLogValve\" directory=\"logs/${virtualHost.name}\"  prefix=\"${virtualHost.name}_access_log.\" pattern=\"combined\" resolveHosts=\"false\"/>'' else ""}</Host>'') cfg.virtualHosts)}" \
+                ${tomcat}/conf/server.xml > ${cfg.baseDir}/conf/server.xml
+          ''
+        }
+        ${optionalString (cfg.logDirs != []) ''
+          for i in ${toString cfg.logDirs}; do
+            mkdir -p ${cfg.baseDir}/logs/$i
+            chown ${cfg.user}:${cfg.group} ${cfg.baseDir}/logs/$i
+          done
+        ''}
+        ${optionalString cfg.logPerVirtualHost (toString (map (h: ''
+          mkdir -p ${cfg.baseDir}/logs/${h.name}
+          chown ${cfg.user}:${cfg.group} ${cfg.baseDir}/logs/${h.name}
+        '') cfg.virtualHosts))}
 
         # Symlink all the given common libs files or paths into the lib/ directory
-        for i in ${tomcat} ${toString cfg.commonLibs}
-        do
-            if [ -f $i ]
-            then
-                # If the given web application is a file, symlink it into the common/lib/ directory
-                ln -sfn $i ${cfg.baseDir}/lib/`basename $i`
-            elif [ -d $i ]
-            then
-                # If the given web application is a directory, then iterate over the files
-                # in the special purpose directories and symlink them into the tomcat tree
-
-                for j in $i/lib/*
-                do
-                    ln -sfn $j ${cfg.baseDir}/lib/`basename $j`
-                done
-            fi
+        for i in ${tomcat} ${toString cfg.commonLibs}; do
+          if [ -f $i ]; then
+            # If the given web application is a file, symlink it into the common/lib/ directory
+            ln -sfn $i ${cfg.baseDir}/lib/`basename $i`
+          elif [ -d $i ]; then
+            # If the given web application is a directory, then iterate over the files
+            # in the special purpose directories and symlink them into the tomcat tree
+
+            for j in $i/lib/*; do
+              ln -sfn $j ${cfg.baseDir}/lib/`basename $j`
+            done
+          fi
         done
 
         # Symlink all the given shared libs files or paths into the shared/lib/ directory
-        for i in ${toString cfg.sharedLibs}
-        do
-            if [ -f $i ]
-            then
-                # If the given web application is a file, symlink it into the common/lib/ directory
-                ln -sfn $i ${cfg.baseDir}/shared/lib/`basename $i`
-            elif [ -d $i ]
-            then
-                # If the given web application is a directory, then iterate over the files
-                # in the special purpose directories and symlink them into the tomcat tree
-
-                for j in $i/shared/lib/*
-                do
-                    ln -sfn $j ${cfg.baseDir}/shared/lib/`basename $j`
-                done
-            fi
+        for i in ${toString cfg.sharedLibs}; do
+          if [ -f $i ]; then
+            # If the given web application is a file, symlink it into the common/lib/ directory
+            ln -sfn $i ${cfg.baseDir}/shared/lib/`basename $i`
+          elif [ -d $i ]; then
+            # If the given web application is a directory, then iterate over the files
+            # in the special purpose directories and symlink them into the tomcat tree
+
+            for j in $i/shared/lib/*; do
+              ln -sfn $j ${cfg.baseDir}/shared/lib/`basename $j`
+            done
+          fi
         done
 
         # Symlink all the given web applications files or paths into the webapps/ directory
-        for i in ${toString cfg.webapps}
-        do
-            if [ -f $i ]
-            then
-                # If the given web application is a file, symlink it into the webapps/ directory
-                ln -sfn $i ${cfg.baseDir}/webapps/`basename $i`
-            elif [ -d $i ]
-            then
-                # If the given web application is a directory, then iterate over the files
-                # in the special purpose directories and symlink them into the tomcat tree
-
-                for j in $i/webapps/*
-                do
-                    ln -sfn $j ${cfg.baseDir}/webapps/`basename $j`
-                done
+        for i in ${toString cfg.webapps}; do
+          if [ -f $i ]; then
+            # If the given web application is a file, symlink it into the webapps/ directory
+            ln -sfn $i ${cfg.baseDir}/webapps/`basename $i`
+          elif [ -d $i ]; then
+            # If the given web application is a directory, then iterate over the files
+            # in the special purpose directories and symlink them into the tomcat tree
+
+            for j in $i/webapps/*; do
+              ln -sfn $j ${cfg.baseDir}/webapps/`basename $j`
+            done
 
-                # Also symlink the configuration files if they are included
-                if [ -d $i/conf/Catalina ]
-                then
-                    for j in $i/conf/Catalina/*
-                    do
-                        mkdir -p ${cfg.baseDir}/conf/Catalina/localhost
-                        ln -sfn $j ${cfg.baseDir}/conf/Catalina/localhost/`basename $j`
-                    done
-                fi
+            # Also symlink the configuration files if they are included
+            if [ -d $i/conf/Catalina ]; then
+              for j in $i/conf/Catalina/*; do
+                mkdir -p ${cfg.baseDir}/conf/Catalina/localhost
+                ln -sfn $j ${cfg.baseDir}/conf/Catalina/localhost/`basename $j`
+              done
             fi
+          fi
         done
 
         ${toString (map (virtualHost: ''
@@ -275,94 +292,79 @@ in
 
           # Symlink all the given web applications files or paths into the webapps/ directory
           # of this virtual host
-          for i in "${if virtualHost ? webapps then toString virtualHost.webapps else ""}"
-          do
-              if [ -f $i ]
-              then
-                  # If the given web application is a file, symlink it into the webapps/ directory
-                  ln -sfn $i ${cfg.baseDir}/virtualhosts/${virtualHost.name}/webapps/`basename $i`
-              elif [ -d $i ]
-              then
-                  # If the given web application is a directory, then iterate over the files
-                  # in the special purpose directories and symlink them into the tomcat tree
-
-                  for j in $i/webapps/*
-                  do
-                      ln -sfn $j ${cfg.baseDir}/virtualhosts/${virtualHost.name}/webapps/`basename $j`
-                  done
-
-                  # Also symlink the configuration files if they are included
-                  if [ -d $i/conf/Catalina ]
-                  then
-                      for j in $i/conf/Catalina/*
-                      do
-                          mkdir -p ${cfg.baseDir}/conf/Catalina/${virtualHost.name}
-                          ln -sfn $j ${cfg.baseDir}/conf/Catalina/${virtualHost.name}/`basename $j`
-                      done
-                  fi
+          for i in "${if virtualHost ? webapps then toString virtualHost.webapps else ""}"; do
+            if [ -f $i ]; then
+              # If the given web application is a file, symlink it into the webapps/ directory
+              ln -sfn $i ${cfg.baseDir}/virtualhosts/${virtualHost.name}/webapps/`basename $i`
+            elif [ -d $i ]; then
+              # If the given web application is a directory, then iterate over the files
+              # in the special purpose directories and symlink them into the tomcat tree
+
+              for j in $i/webapps/*; do
+                ln -sfn $j ${cfg.baseDir}/virtualhosts/${virtualHost.name}/webapps/`basename $j`
+              done
+
+              # Also symlink the configuration files if they are included
+              if [ -d $i/conf/Catalina ]; then
+                for j in $i/conf/Catalina/*; do
+                  mkdir -p ${cfg.baseDir}/conf/Catalina/${virtualHost.name}
+                  ln -sfn $j ${cfg.baseDir}/conf/Catalina/${virtualHost.name}/`basename $j`
+                done
               fi
+            fi
           done
-
-          ''
-        ) cfg.virtualHosts) }
-
-        # Create a work/ directory
-        mkdir -p ${cfg.baseDir}/work
-        chown ${cfg.user}:${cfg.group} ${cfg.baseDir}/work
-
-        ${if cfg.axis2.enable then
-            ''
-            # Copy the Axis2 web application
-            cp -av ${pkgs.axis2}/webapps/axis2 ${cfg.baseDir}/webapps
-
-            # Turn off addressing, which causes many errors
-            sed -i -e 's%<module ref="addressing"/>%<!-- <module ref="addressing"/> -->%' ${cfg.baseDir}/webapps/axis2/WEB-INF/conf/axis2.xml
-
-            # Modify permissions on the Axis2 application
-            chown -R ${cfg.user}:${cfg.group} ${cfg.baseDir}/webapps/axis2
-
-            # Symlink all the given web service files or paths into the webapps/axis2/WEB-INF/services directory
-            for i in ${toString cfg.axis2.services}
-            do
-                if [ -f $i ]
-                then
-                    # If the given web service is a file, symlink it into the webapps/axis2/WEB-INF/services
-                    ln -sfn $i ${cfg.baseDir}/webapps/axis2/WEB-INF/services/`basename $i`
-                elif [ -d $i ]
-                then
-                    # If the given web application is a directory, then iterate over the files
-                    # in the special purpose directories and symlink them into the tomcat tree
-
-                    for j in $i/webapps/axis2/WEB-INF/services/*
-                    do
-                        ln -sfn $j ${cfg.baseDir}/webapps/axis2/WEB-INF/services/`basename $j`
-                    done
-
-                    # Also symlink the configuration files if they are included
-                    if [ -d $i/conf/Catalina ]
-                    then
-                        for j in $i/conf/Catalina/*
-                        do
-                            ln -sfn $j ${cfg.baseDir}/conf/Catalina/localhost/`basename $j`
-                        done
-                    fi
-                fi
-            done
-            ''
-        else ""}
-      '';
-
-      script = ''
-          ${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${cfg.user} -c 'CATALINA_BASE=${cfg.baseDir} JAVA_HOME=${cfg.jdk} JAVA_OPTS="${cfg.javaOpts}" CATALINA_OPTS="${cfg.catalinaOpts}" ${tomcat}/bin/startup.sh'
-      '';
-
-      preStop = ''
-        echo "Stopping tomcat..."
-        CATALINA_BASE=${cfg.baseDir} JAVA_HOME=${cfg.jdk} ${pkgs.su}/bin/su -s ${pkgs.bash}/bin/sh ${cfg.user} -c ${tomcat}/bin/shutdown.sh
+        '') cfg.virtualHosts)}
+
+        ${optionalString cfg.axis2.enable ''
+          # Copy the Axis2 web application
+          cp -av ${pkgs.axis2}/webapps/axis2 ${cfg.baseDir}/webapps
+
+          # Turn off addressing, which causes many errors
+          sed -i -e 's%<module ref="addressing"/>%<!-- <module ref="addressing"/> -->%' ${cfg.baseDir}/webapps/axis2/WEB-INF/conf/axis2.xml
+
+          # Modify permissions on the Axis2 application
+          chown -R ${cfg.user}:${cfg.group} ${cfg.baseDir}/webapps/axis2
+
+          # Symlink all the given web service files or paths into the webapps/axis2/WEB-INF/services directory
+          for i in ${toString cfg.axis2.services}; do
+            if [ -f $i ]; then
+              # If the given web service is a file, symlink it into the webapps/axis2/WEB-INF/services
+              ln -sfn $i ${cfg.baseDir}/webapps/axis2/WEB-INF/services/`basename $i`
+            elif [ -d $i ]; then
+              # If the given web application is a directory, then iterate over the files
+              # in the special purpose directories and symlink them into the tomcat tree
+
+              for j in $i/webapps/axis2/WEB-INF/services/*; do
+                ln -sfn $j ${cfg.baseDir}/webapps/axis2/WEB-INF/services/`basename $j`
+              done
+
+              # Also symlink the configuration files if they are included
+              if [ -d $i/conf/Catalina ]; then
+                for j in $i/conf/Catalina/*; do
+                  ln -sfn $j ${cfg.baseDir}/conf/Catalina/localhost/`basename $j`
+                done
+              fi
+            fi
+          done
+        ''}
       '';
 
+      serviceConfig = {
+        Type = "forking";
+        PermissionsStartOnly = true;
+        PIDFile="/run/tomcat/tomcat.pid";
+        RuntimeDirectory = "tomcat";
+        User = cfg.user;
+        Environment=[
+          "CATALINA_BASE=${cfg.baseDir}"
+          "CATALINA_PID=/run/tomcat/tomcat.pid"
+          "JAVA_HOME='${cfg.jdk}'"
+          "JAVA_OPTS='${builtins.toString cfg.javaOpts}'"
+          "CATALINA_OPTS='${builtins.toString cfg.catalinaOpts}'"
+        ] ++ cfg.extraEnvironment;
+        ExecStart = "${tomcat}/bin/startup.sh";
+        ExecStop = "${tomcat}/bin/shutdown.sh";
+      };
     };
-
   };
-
 }
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index b5e936830918d..9d30155a72348 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -9,6 +9,10 @@ let
   xEnv = config.systemd.services."display-manager".environment;
   cfg = dmcfg.lightdm;
 
+  dmDefault = xcfg.desktopManager.default;
+  wmDefault = xcfg.windowManager.default;
+  hasDefaultUserSession = dmDefault != "none" || wmDefault != "none";
+
   inherit (pkgs) stdenv lightdm writeScript writeText;
 
   # lightdm runs with clearenv(), but we need a few things in the enviornment for X to startup
@@ -54,14 +58,13 @@ let
         autologin-user-timeout = ${toString cfg.autoLogin.timeout}
         autologin-session = ${defaultSessionName}
       ''}
+      ${optionalString hasDefaultUserSession ''
+        user-session=${defaultSessionName}
+      ''}
       ${cfg.extraSeatDefaults}
     '';
 
-  defaultSessionName =
-    let
-      dm = xcfg.desktopManager.default;
-      wm = xcfg.windowManager.default;
-    in dm + optionalString (wm != "none") ("+" + wm);
+  defaultSessionName = dmDefault + optionalString (wmDefault != "none") ("+" + wmDefault);
 in
 {
   # Note: the order in which lightdm greeter modules are imported
@@ -179,6 +182,14 @@ in
           default session: ${defaultSessionName} is not valid.
         '';
       }
+      { assertion = hasDefaultUserSession -> elem defaultSessionName dmcfg.session.names;
+        message = ''
+          services.xserver.desktopManager.default and
+          services.xserver.windowMananger.default are not set to valid
+          values. The current default session: ${defaultSessionName}
+          is not valid.
+        '';
+      }
       { assertion = !cfg.greeter.enable -> (cfg.autoLogin.enable && cfg.autoLogin.timeout == 0);
         message = ''
           LightDM can only run without greeter if automatic login is enabled and the timeout for it
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index dd7929285cd22..c563614caaaf3 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -117,14 +117,7 @@ in
 
   config = {
 
-    system.activationScripts.stdio =
-      ''
-        # Needed by some programs.
-        ln -sfn /proc/self/fd /dev/fd
-        ln -sfn /proc/self/fd/0 /dev/stdin
-        ln -sfn /proc/self/fd/1 /dev/stdout
-        ln -sfn /proc/self/fd/2 /dev/stderr
-      '';
+    system.activationScripts.stdio = ""; # obsolete
 
     system.activationScripts.var =
       ''
diff --git a/nixos/modules/system/boot/initrd-network.nix b/nixos/modules/system/boot/initrd-network.nix
index 4a6e1c7e56e56..33862b0965cc2 100644
--- a/nixos/modules/system/boot/initrd-network.nix
+++ b/nixos/modules/system/boot/initrd-network.nix
@@ -23,6 +23,8 @@ let
       fi
     '';
 
+  udhcpcArgs = toString cfg.udhcpc.extraArgs;
+
 in
 
 {
@@ -47,6 +49,16 @@ in
       '';
     };
 
+    boot.initrd.network.udhcpc.extraArgs = mkOption {
+      default = [];
+      type = types.listOf types.str;
+      description = ''
+        Additional command-line arguments passed verbatim to udhcpc if
+        <option>boot.initrd.network.enable</option> and <option>networking.useDHCP</option>
+        are enabled.
+      '';
+    };
+
     boot.initrd.network.postCommands = mkOption {
       default = "";
       type = types.lines;
@@ -91,7 +103,7 @@ in
 
           # Acquire a DHCP lease.
           echo "acquiring IP address via DHCP..."
-          udhcpc --quit --now --script ${udhcpcScript} && hasNetwork=1
+          udhcpc --quit --now --script ${udhcpcScript} ${udhcpcArgs} && hasNetwork=1
         fi
       ''
 
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index 8b390e1b60c4a..54dfb53fd30ff 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -5,7 +5,7 @@ with lib;
 let
   luks = config.boot.initrd.luks;
 
-  openCommand = name': { name, device, header, keyFile, keyFileSize, allowDiscards, yubikey, ... }: assert name' == name; ''
+  openCommand = name': { name, device, header, keyFile, keyFileSize, allowDiscards, yubikey, fallbackToPassword, ... }: assert name' == name; ''
 
     # Wait for a target (e.g. device, keyFile, header, ...) to appear.
     wait_target() {
@@ -43,8 +43,17 @@ let
     open_normally() {
         echo luksOpen ${device} ${name} ${optionalString allowDiscards "--allow-discards"} \
           ${optionalString (header != null) "--header=${header}"} \
-          ${optionalString (keyFile != null) "--key-file=${keyFile} ${optionalString (keyFileSize != null) "--keyfile-size=${toString keyFileSize}"}"} \
           > /.luksopen_args
+        ${optionalString (keyFile != null) ''
+        ${optionalString fallbackToPassword "if [ -e ${keyFile} ]; then"}
+            echo " --key-file=${keyFile} ${optionalString (keyFileSize != null) "--keyfile-size=${toString keyFileSize}"}" \
+              >> /.luksopen_args
+        ${optionalString fallbackToPassword ''
+        else
+            echo "keyfile ${keyFile} not found -- fallback to interactive unlocking"
+        fi
+        ''}
+        ''}
         cryptsetup-askpass
         rm /.luksopen_args
     }
@@ -324,6 +333,16 @@ in
             '';
           };
 
+          fallbackToPassword = mkOption {
+            default = false;
+            type = types.bool;
+            description = ''
+              Whether to fallback to interactive passphrase prompt if the keyfile
+              cannot be found. This will prevent unattended boot should the keyfile
+              go missing.
+            '';
+          };
+
           yubikey = mkOption {
             default = null;
             description = ''
diff --git a/nixos/modules/system/boot/modprobe.nix b/nixos/modules/system/boot/modprobe.nix
index b915a98d5375b..dee0ab470c992 100644
--- a/nixos/modules/system/boot/modprobe.nix
+++ b/nixos/modules/system/boot/modprobe.nix
@@ -54,7 +54,7 @@ with lib;
 
     environment.systemPackages = [ pkgs.kmod ];
 
-    system.activationScripts.modprobe =
+    system.activationScripts.modprobe = stringAfter ["specialfs"]
       ''
         # Allow the kernel to find our wrapped modprobe (which searches
         # in the right location in the Nix store for kernel modules).
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index 7bf7a51a2417c..eea10613ea586 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -650,11 +650,7 @@ let
   unitFiles = map (name: {
     target = "systemd/network/${name}";
     source = "${cfg.units.${name}.unit}/${name}";
-  }) (attrNames cfg.units) ++
-  (map (entry: {
-    target = "systemd/network/${entry}";
-    source = "${config.systemd.package}/lib/systemd/network/${entry}";
-  }) (attrNames (builtins.readDir "${config.systemd.package}/lib/systemd/network")));
+  }) (attrNames cfg.units);
 in
 
 {
diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh
index 46aed44bf10fc..9d2c580d62a7d 100644
--- a/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixos/modules/system/boot/stage-2-init.sh
@@ -82,7 +82,6 @@ ln -s /proc/mounts /etc/mtab
 mkdir -m 01777 -p /tmp
 mkdir -m 0755 -p /var/{log,lib,db} /nix/var /etc/nixos/ \
     /run/lock /home /bin # for the /bin/sh symlink
-install -m 0700 -d /root
 
 
 # Miscellaneous boot time cleanup.
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 8aa5163ce229b..630fe6d114ce8 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -288,6 +288,17 @@ let
                 ${i}
               '')}" > /run/${n}.interfaces
 
+              ${optionalString config.virtualisation.libvirtd.enable ''
+                  # Enslave dynamically added interfaces which may be lost on nixos-rebuild
+                  for uri in qemu:///system lxc:///; do
+                    for dom in $(${pkgs.libvirt}/bin/virsh -c $uri list --name); do
+                      ${pkgs.libvirt}/bin/virsh -c $uri dumpxml "$dom" | \
+                      ${pkgs.xmlstarlet}/bin/xmlstarlet sel -t -m "//domain/devices/interface[@type='bridge'][source/@bridge='${n}'][target/@dev]" -v "concat('ip link set ',target/@dev,' master ',source/@bridge,';')" | \
+                      ${pkgs.bash}/bin/bash
+                    done
+                  done
+                ''}
+
               # Enable stp on the interface
               ${optionalString v.rstp ''
                 echo 2 >/sys/class/net/${n}/bridge/stp_state
diff --git a/nixos/modules/virtualisation/parallels-guest.nix b/nixos/modules/virtualisation/parallels-guest.nix
index fc0409e9ec770..36ca7f356d442 100644
--- a/nixos/modules/virtualisation/parallels-guest.nix
+++ b/nixos/modules/virtualisation/parallels-guest.nix
@@ -3,9 +3,7 @@
 with lib;
 
 let
-
-  prl-tools = config.boot.kernelPackages.prl-tools;
-
+  prl-tools = config.hardware.parallels.package;
 in
 
 {
@@ -22,6 +20,26 @@ in
         '';
       };
 
+      autoMountShares = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Control prlfsmountd service. When this service is running, shares can not be manually
+          mounted through `mount -t prl_fs ...` as this service will remount and trample any set options.
+          Recommended to enable for simple file sharing, but extended share use such as for code should
+          disable this to manually mount shares.
+        '';
+      };
+
+      package = mkOption {
+        type = types.package;
+        default = config.boot.kernelPackages.prl-tools;
+        defaultText = "config.boot.kernelPackages.prl-tools";
+        example = literalExample "config.boot.kernelPackages.prl-tools";
+        description = ''
+          Defines which package to use for prl-tools. Override to change the version.
+        '';
+      };
     };
 
   };
@@ -67,7 +85,7 @@ in
       };
     };
 
-    systemd.services.prlfsmountd = {
+    systemd.services.prlfsmountd = mkIf config.hardware.parallels.autoMountShares {
       description = "Parallels Shared Folders Daemon";
       wantedBy = [ "multi-user.target" ];
       serviceConfig = rec {
diff --git a/nixos/modules/virtualisation/xen-dom0.nix b/nixos/modules/virtualisation/xen-dom0.nix
index afc5a42f8b4e6..cf57868acef90 100644
--- a/nixos/modules/virtualisation/xen-dom0.nix
+++ b/nixos/modules/virtualisation/xen-dom0.nix
@@ -241,6 +241,12 @@ in
           '';
           target = "default/xendomains";
         }
+      ]
+      ++ lib.optionals (builtins.compareVersions cfg.package.version "4.10" >= 0) [
+        # in V 4.10 oxenstored requires /etc/xen/oxenstored.conf to start
+        { source = "${cfg.package}/etc/xen/oxenstored.conf";
+          target = "xen/oxenstored.conf";
+        }
       ];
 
     # Xen provides udev rules.
@@ -262,7 +268,7 @@ in
         mkdir -p /var/lib/xen # so we create them here unconditionally.
         grep -q control_d /proc/xen/capabilities
         '';
-      serviceConfig = if cfg.package.version < "4.8" then
+      serviceConfig = if (builtins.compareVersions cfg.package.version "4.8" < 0) then
         { ExecStart = ''
             ${cfg.stored}${optionalString cfg.trace " -T /var/log/xen/xenstored-trace.log"} --no-fork
             '';
@@ -275,7 +281,7 @@ in
           NotifyAccess    = "all";
         };
       postStart = ''
-        ${optionalString (cfg.package.version < "4.8") ''
+        ${optionalString (builtins.compareVersions cfg.package.version "4.8" < 0) ''
           time=0
           timeout=30
           # Wait for xenstored to actually come up, timing out after 30 seconds
@@ -320,7 +326,7 @@ in
       serviceConfig = {
         ExecStart = ''
           ${cfg.package}/bin/xenconsoled\
-            ${optionalString ((cfg.package.version >= "4.8")) " -i"}\
+            ${optionalString ((builtins.compareVersions cfg.package.version "4.8" >= 0)) " -i"}\
             ${optionalString cfg.trace " --log=all --log-dir=/var/log/xen"}
           '';
       };
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index 9d4a551a958b8..e010b532a688b 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -52,17 +52,17 @@ in rec {
         (all nixos.dummy)
         (all nixos.manual)
 
-        nixos.iso_minimal.x86_64-linux
-        nixos.iso_minimal.i686-linux
-        nixos.iso_graphical.x86_64-linux
-        nixos.ova.x86_64-linux
+        nixos.iso_minimal.x86_64-linux or []
+        nixos.iso_minimal.i686-linux or []
+        nixos.iso_graphical.x86_64-linux or []
+        nixos.ova.x86_64-linux or []
 
         #(all nixos.tests.containers)
-        nixos.tests.chromium.x86_64-linux
+        nixos.tests.chromium.x86_64-linux or []
         (all nixos.tests.firefox)
         (all nixos.tests.firewall)
         (all nixos.tests.gnome3)
-        nixos.tests.installer.zfsroot.x86_64-linux # ZFS is 64bit only
+        nixos.tests.installer.zfsroot.x86_64-linux or [] # ZFS is 64bit only
         (all nixos.tests.installer.lvm)
         (all nixos.tests.installer.luksroot)
         (all nixos.tests.installer.separateBoot)
@@ -81,7 +81,7 @@ in rec {
         (all nixos.tests.boot.uefiUsb)
         (all nixos.tests.boot-stage1)
         (all nixos.tests.hibernate)
-        nixos.tests.docker.x86_64-linux
+        nixos.tests.docker.x86_64-linux or []
         (all nixos.tests.ecryptfs)
         (all nixos.tests.env)
         (all nixos.tests.ipv6)
diff --git a/nixos/release-small.nix b/nixos/release-small.nix
index 2b532c70763fa..4bfb9a423f7d5 100644
--- a/nixos/release-small.nix
+++ b/nixos/release-small.nix
@@ -50,6 +50,10 @@ in rec {
           separateBoot
           simple;
       };
+      boot = {
+        inherit (nixos'.tests.boot)
+          biosCdrom;
+      };
     };
   };
 
diff --git a/nixos/release.nix b/nixos/release.nix
index 473b11313befc..a1310a409a1e4 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -1,4 +1,4 @@
-{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; }
+{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 130979; shortRev = "gfedcba"; }
 , stableBranch ? false
 , supportedSystems ? [ "x86_64-linux" "aarch64-linux" ]
 }:
@@ -16,7 +16,11 @@ let
     inherit system;
   } // args);
 
-  callTestOnTheseSystems = systems: fn: args: forTheseSystems systems (system: hydraJob (importTest fn args system));
+  # Note: only supportedSystems are considered.
+  callTestOnTheseSystems = systems: fn: args:
+    forTheseSystems
+      (intersectLists supportedSystems systems)
+      (system: hydraJob (importTest fn args system));
   callTest = callTestOnTheseSystems supportedSystems;
 
   callSubTests = callSubTestsOnTheseSystems supportedSystems;
@@ -231,7 +235,7 @@ in rec {
   tests.buildbot = callTest tests/buildbot.nix {};
   tests.cadvisor = callTestOnTheseSystems ["x86_64-linux"] tests/cadvisor.nix {};
   tests.ceph = callTestOnTheseSystems ["x86_64-linux"] tests/ceph.nix {};
-  tests.chromium = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/chromium.nix {}).stable;
+  tests.chromium = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/chromium.nix {}).stable or {};
   tests.cjdns = callTest tests/cjdns.nix {};
   tests.cloud-init = callTest tests/cloud-init.nix {};
   tests.containers-ipv4 = callTest tests/containers-ipv4.nix {};
@@ -252,8 +256,8 @@ in rec {
   tests.dnscrypt-proxy = callTestOnTheseSystems ["x86_64-linux"] tests/dnscrypt-proxy.nix {};
   tests.ecryptfs = callTest tests/ecryptfs.nix {};
   tests.etcd = callTestOnTheseSystems ["x86_64-linux"] tests/etcd.nix {};
-  tests.ec2-nixops = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/ec2.nix {}).boot-ec2-nixops;
-  tests.ec2-config = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/ec2.nix {}).boot-ec2-config;
+  tests.ec2-nixops = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/ec2.nix {}).boot-ec2-nixops or {};
+  tests.ec2-config = (callSubTestsOnTheseSystems ["x86_64-linux"] tests/ec2.nix {}).boot-ec2-config or {};
   tests.elk = callSubTestsOnTheseSystems ["x86_64-linux"] tests/elk.nix {};
   tests.env = callTest tests/env.nix {};
   tests.ferm = callTest tests/ferm.nix {};
@@ -274,6 +278,7 @@ in rec {
   tests.hibernate = callTest tests/hibernate.nix {};
   tests.home-assistant = callTest tests/home-assistant.nix { };
   tests.hound = callTest tests/hound.nix {};
+  tests.hocker-fetchdocker = callTest tests/hocker-fetchdocker {};
   tests.i3wm = callTest tests/i3wm.nix {};
   tests.initrd-network-ssh = callTest tests/initrd-network-ssh {};
   tests.installer = callSubTests tests/installer.nix {};
@@ -291,7 +296,7 @@ in rec {
   tests.kernel-copperhead = callTest tests/kernel-copperhead.nix {};
   tests.kernel-latest = callTest tests/kernel-latest.nix {};
   tests.kernel-lts = callTest tests/kernel-lts.nix {};
-  tests.kubernetes = hydraJob (import tests/kubernetes/default.nix { system = "x86_64-linux"; });
+  tests.kubernetes = callSubTestsOnTheseSystems ["x86_64-linux"] tests/kubernetes/default.nix {};
   tests.latestKernel.login = callTest tests/login.nix { latestKernel = true; };
   tests.ldap = callTest tests/ldap.nix {};
   #tests.lightdm = callTest tests/lightdm.nix {};
@@ -325,6 +330,7 @@ in rec {
   tests.leaps = callTest tests/leaps.nix { };
   tests.nsd = callTest tests/nsd.nix {};
   tests.openssh = callTest tests/openssh.nix {};
+  tests.openldap = callTest tests/openldap.nix {};
   tests.owncloud = callTest tests/owncloud.nix {};
   tests.pam-oath-login = callTest tests/pam-oath-login.nix {};
   #tests.panamax = callTestOnTheseSystems ["x86_64-linux"] tests/panamax.nix {};
@@ -339,7 +345,6 @@ in rec {
   tests.printing = callTest tests/printing.nix {};
   tests.prometheus = callTest tests/prometheus.nix {};
   tests.proxy = callTest tests/proxy.nix {};
-  tests.pumpio = callTest tests/pump.io.nix {};
   # tests.quagga = callTest tests/quagga.nix {};
   tests.quake3 = callTest tests/quake3.nix {};
   tests.rabbitmq = callTest tests/rabbitmq.nix {};
@@ -355,6 +360,7 @@ in rec {
   tests.snapper = callTest tests/snapper.nix {};
   tests.statsd = callTest tests/statsd.nix {};
   tests.sudo = callTest tests/sudo.nix {};
+  tests.systemd = callTest tests/systemd.nix {};
   tests.switchTest = callTest tests/switch-test.nix {};
   tests.taskserver = callTest tests/taskserver.nix {};
   tests.tomcat = callTest tests/tomcat.nix {};
diff --git a/nixos/tests/boot.nix b/nixos/tests/boot.nix
index fc52cd09f2095..301d9d0f817f8 100644
--- a/nixos/tests/boot.nix
+++ b/nixos/tests/boot.nix
@@ -24,6 +24,12 @@ let
           my $machine = createMachine({ ${machineConfig}, qemuFlags => '-m 768' });
           $machine->start;
           $machine->waitForUnit("multi-user.target");
+          $machine->succeed("nix verify -r --no-trust /run/current-system");
+
+          # Test whether the channel got installed correctly.
+          $machine->succeed("nix-instantiate --dry-run '<nixpkgs>' -A hello");
+          $machine->succeed("nix-env --dry-run -iA nixos.procps");
+
           $machine->shutdown;
         '';
     };
diff --git a/nixos/tests/hocker-fetchdocker/default.nix b/nixos/tests/hocker-fetchdocker/default.nix
new file mode 100644
index 0000000000000..4f30f01e40322
--- /dev/null
+++ b/nixos/tests/hocker-fetchdocker/default.nix
@@ -0,0 +1,15 @@
+import ../make-test.nix ({ pkgs, ...} : {
+  name = "test-hocker-fetchdocker";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ ixmatus ];
+  };
+
+  machine = import ./machine.nix;
+
+  testScript = ''
+    startAll;
+
+    $machine->waitForUnit("sockets.target");
+    $machine->waitUntilSucceeds("docker run registry-1.docker.io/v2/library/hello-world:latest");
+  '';
+})
diff --git a/nixos/tests/hocker-fetchdocker/hello-world-container.nix b/nixos/tests/hocker-fetchdocker/hello-world-container.nix
new file mode 100644
index 0000000000000..a127875264e95
--- /dev/null
+++ b/nixos/tests/hocker-fetchdocker/hello-world-container.nix
@@ -0,0 +1,19 @@
+{ fetchDockerConfig, fetchDockerLayer, fetchdocker }:
+fetchdocker rec {
+    name = "hello-world";
+    registry = "https://registry-1.docker.io/v2/";
+    repository = "library";
+    imageName = "hello-world";
+    tag = "latest";
+    imageConfig = fetchDockerConfig {
+      inherit tag registry repository imageName;
+      sha256 = "1ivbd23hyindkahzfw4kahgzi6ibzz2ablmgsz6340vc6qr1gagj";
+    };
+    imageLayers = let
+      layer0 = fetchDockerLayer {
+        inherit registry repository imageName;
+        layerDigest = "ca4f61b1923c10e9eb81228bd46bee1dfba02b9c7dac1844527a734752688ede";
+        sha256 = "1plfd194fwvsa921ib3xkhms1yqxxrmx92r2h7myj41wjaqn2kya";
+      };
+      in [ layer0 ];
+  }
diff --git a/nixos/tests/hocker-fetchdocker/machine.nix b/nixos/tests/hocker-fetchdocker/machine.nix
new file mode 100644
index 0000000000000..12c58a0122432
--- /dev/null
+++ b/nixos/tests/hocker-fetchdocker/machine.nix
@@ -0,0 +1,26 @@
+{ config, pkgs, ... }:
+{ nixpkgs.config.packageOverrides = pkgs': {
+    hello-world-container = pkgs'.callPackage ./hello-world-container.nix { };
+  };
+
+  virtualisation.docker = {
+    enable  = true;
+    package = pkgs.docker;
+  };
+
+  systemd.services.docker-load-fetchdocker-image = {
+    description = "Docker load hello-world-container";
+    wantedBy    = [ "multi-user.target" ];
+    wants       = [ "docker.service" "local-fs.target" ];
+    after       = [ "docker.service" "local-fs.target" ];
+
+    script = ''
+      ${pkgs.hello-world-container}/compositeImage.sh | ${pkgs.docker}/bin/docker load
+    '';
+
+    serviceConfig = {
+      Type = "oneshot";
+    };
+  };
+}
+
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 637cbb45709d6..c12919540a30c 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -145,7 +145,7 @@ let
       # Check that the daemon works, and that non-root users can run builds (this will build a new profile generation through the daemon)
       $machine->succeed("su alice -l -c 'nix-env -iA nixos.procps' >&2");
 
-      # We need to a writable nix-store on next boot.
+      # We need a writable Nix store on next boot.
       $machine->copyFileFromHost(
           "${ makeConfig { inherit bootLoader grubVersion grubDevice grubIdentifier grubUseEfi extraConfig; forceGrubReinstallCount = 1; } }",
           "/etc/nixos/configuration.nix");
@@ -195,8 +195,7 @@ let
       };
       nodes = {
 
-        # The configuration of the machine used to run "nixos-install". It
-        # also has a web server that simulates cache.nixos.org.
+        # The configuration of the machine used to run "nixos-install".
         machine =
           { config, lib, pkgs, ... }:
 
@@ -208,7 +207,6 @@ let
 
             virtualisation.diskSize = 8 * 1024;
             virtualisation.memorySize = 1024;
-            virtualisation.writableStore = true;
 
             # Use a small /dev/vdb as the root disk for the
             # installer. This ensures the target disk (/dev/vda) is
@@ -245,6 +243,11 @@ let
               ++ optionals (bootLoader == "grub" && grubVersion == 2) [ pkgs.grub2 pkgs.grub2_efi ];
 
             nix.binaryCaches = mkForce [ ];
+            nix.extraOptions =
+              ''
+                hashed-mirrors =
+                connect-timeout = 1
+              '';
           };
 
       };
diff --git a/nixos/tests/keymap.nix b/nixos/tests/keymap.nix
index eec674e227dff..caa5f7107c23a 100644
--- a/nixos/tests/keymap.nix
+++ b/nixos/tests/keymap.nix
@@ -50,38 +50,7 @@ let
     machine.i18n.consoleKeyMap = mkOverride 900 layout;
     machine.services.xserver.layout = mkOverride 900 layout;
     machine.imports = [ ./common/x11.nix extraConfig ];
-    machine.services.xserver.displayManager.slim = {
-      enable = true;
-
-      # Use a custom theme in order to get best OCR results
-      theme = pkgs.runCommand "slim-theme-ocr" {
-        nativeBuildInputs = [ pkgs.imagemagick ];
-      } ''
-        mkdir "$out"
-        convert -size 1x1 xc:white "$out/background.jpg"
-        convert -size 200x100 xc:white "$out/panel.jpg"
-        cat > "$out/slim.theme" <<EOF
-        background_color #ffffff
-        background_style tile
-
-        input_fgcolor #000000
-        msg_color #000000
-
-        session_color #000000
-        session_font Verdana:size=16:bold
-
-        username_msg Username:
-        username_font Verdana:size=16:bold
-        username_color #000000
-        username_x 50%
-        username_y 40%
-
-        password_msg Password:
-        password_x 50%
-        password_y 40%
-        EOF
-      '';
-    };
+    machine.services.xserver.displayManager.slim.enable = true;
 
     testScript = ''
       sub waitCatAndDelete ($) {
diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix
index 6de17518214c6..4fd9466dc5027 100644
--- a/nixos/tests/misc.nix
+++ b/nixos/tests/misc.nix
@@ -1,11 +1,13 @@
 # Miscellaneous small tests that don't warrant their own VM run.
 
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test.nix ({ pkgs, ...} : rec {
   name = "misc";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ eelco chaoflow ];
   };
 
+  foo = pkgs.writeText "foo" "Hello World";
+
   machine =
     { config, lib, pkgs, ... }:
     with lib;
@@ -27,10 +29,17 @@ import ./make-test.nix ({ pkgs, ...} : {
       security.sudo = { enable = true; wheelNeedsPassword = false; };
       boot.kernel.sysctl."vm.swappiness" = 1;
       boot.kernelParams = [ "vsyscall=emulate" ];
+      system.extraDependencies = [ foo ];
     };
 
   testScript =
     ''
+      subtest "nix-db", sub {
+          my $json = $machine->succeed("nix path-info --json ${foo}");
+          $json =~ /"narHash":"sha256:0afw0d9j1hvwiz066z93jiddc33nxg6i6qyp26vnqyglpyfivlq5"/ or die "narHash not set";
+          $json =~ /"narSize":128/ or die "narSize not set";
+      };
+
       subtest "nixos-version", sub {
           $machine->succeed("[ `nixos-version | wc -w` = 2 ]");
       };
diff --git a/nixos/tests/openldap.nix b/nixos/tests/openldap.nix
new file mode 100644
index 0000000000000..1178701c609e9
--- /dev/null
+++ b/nixos/tests/openldap.nix
@@ -0,0 +1,35 @@
+import ./make-test.nix {
+  name = "dovecot";
+
+  machine = { pkgs, ... }: {
+    services.openldap = {
+      enable = true;
+      extraConfig = ''
+        include ${pkgs.openldap}/etc/schema/core.schema
+        include ${pkgs.openldap}/etc/schema/cosine.schema
+        include ${pkgs.openldap}/etc/schema/inetorgperson.schema
+        include ${pkgs.openldap}/etc/schema/nis.schema
+        database bdb
+        suffix dc=example
+        directory /var/db/openldap
+        rootdn cn=root,dc=example
+        rootpw notapassword
+      '';
+      declarativeContents = ''
+        dn: dc=example
+        objectClass: domain
+        dc: example
+
+        dn: ou=users,dc=example
+        objectClass: organizationalUnit
+        ou: users
+      '';
+    };
+  };
+
+  testScript = ''
+    $machine->succeed('systemctl status openldap.service');
+    $machine->waitForUnit('openldap.service');
+    $machine->succeed('ldapsearch -LLL -D "cn=root,dc=example" -w notapassword -b "dc=example"');
+  '';
+}
diff --git a/nixos/tests/pump.io.nix b/nixos/tests/pump.io.nix
deleted file mode 100644
index 0991ed3fce1fd..0000000000000
--- a/nixos/tests/pump.io.nix
+++ /dev/null
@@ -1,89 +0,0 @@
-# This test runs pump.io with mongodb, listing on port 443.
-
-import ./make-test.nix ({ pkgs, ...} : let
-  snakeOilKey = ''
-    -----BEGIN PRIVATE KEY-----
-    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqVemio78R41Tz
-    MnR2zFD/wFT0iScOpFkuytNmuPf28FLaa9wSBWmuAGbEi7wBIfw8/bUqFBTQp2G1
-    m1cmcCKxhmvvOkGs89eM131s1lW/bXU3zYso4e7724kHwU65jRlQs6cFWIlmW7V5
-    3HQobP05dy+zPpujPPSlOQ0qYViR1s+RgZI8r0wS2ZDsliNtQwBLJSIvX6XVnXLo
-    F/HmF4/ySJ9pL2AxQXCwZE8SfCzHpArs9COIqTaAuwB79kxWSFQJewmab74BXiM6
-    9FMCtHON24Pl7OR9sRJHH8rMEzUumppmUeCNEzABjzQQ7svR18cmbzRWetp0tT9Y
-    7rj6URHHAgMBAAECggEAGmbCldDnlrAzxJY3cwpsK5f2EwkHIr/aiuQpLCzTUlUh
-    onVBYRGxtaSeSSyXcV2BKTrxz5nZOBYZkPqI4Y5T8kwxgpz2/QW2jUABUtNN6yPe
-    HU4gma+bSTJX5PnTZ/M0z0tpQezdLx5b3I2M+48ZGMUegZvcp8qU6N8U6VK5VbFD
-    DMTGL4b+Kc9HScRkCJjU3FfQcqf9Ml5w9jzHSeHImYEDrG0nX8N8EImRCBXbgxCl
-    5XT1h6LFUGdr+N6n2w56+6l8OZZVmwj1NdF6NJybUQl4Y7b0niA+5czzjRt/YUjZ
-    HW0fXmx3XlbYGWYdMdS+VaIW6pkUpm8kZkqjngqLwQKBgQDfhbFQmg9lsJQ8/dQZ
-    WzRNsozHKWkQiZbW5sXBWygJbAB3Hc8gvQkuZe9TVyF99cznRj6ro6pGZjP0rTdY
-    3ACTL+ygRArcIR6VsJCIr6nPvBLpOoNb8TQeKPmHC2gnSP9zaT/K2lldYISKNaYQ
-    0seB2gvZhIgMgWtZtmb3jdgl9wKBgQDDFdknXgvFgB+y96//9wTu2WWuE5yQ5yB7
-    utAcHNO9rx5X1tJqxymYh+iE8HUN25By+96SpNMQFI+0wNGVB00YWNBKtyepimWN
-    EUCojTy+MIXIjrLcvviEePsI4TPWYf8XtZeiYtcczYrt/wPQUYaDb8LBRfpIfmhr
-    rCGW93s+sQKBgEDOKTeeQyKPjJsWWL01RTfVsZ04s155FcOeyu0heb0plAT1Ho12
-    YUgTg8zc8Tfs4QiYxCjNXdvlW+Dvq6FWv8/s0CUzNRbXf1+U/oKys4AoHi+CqH0q
-    tJqd9KKjuwHQ10dl13n/znMVPbg4j7pG8lMCnfblxvAhQbeT+8yAUo/HAoGBAL3t
-    /n4KXNGK3NHDvXEp0H6t3wWsiEi3DPQJO+Wy1x8caCFCv5c/kaqz3tfWt0+njSm1
-    N8tzdx13tzVWaHV8Jz3l8dxcFtxEJnxB6L5wy0urOAS7kT3DG3b1xgmuH2a//7fY
-    jumE60NahcER/2eIh7pdS7IZbAO6NfVmH0m4Zh/xAoGAbquh60sAfLC/1O2/4Xom
-    PHS7z2+TNpwu4ou3nspxfigNQcTWzzzTVFLnaTPg+HKbLRXSWysjssmmj5u3lCyc
-    S2M9xuhApa9CrN/udz4gEojRVsTla/gyLifIZ3CtTn2QEQiIJEMxM+59KAlkgUBo
-    9BeZ03xTaEZfhVZ9bEN30Ak=
-    -----END PRIVATE KEY-----
-  '';
-
-  snakeOilCert = ''
-    -----BEGIN CERTIFICATE-----
-    MIICvjCCAaagAwIBAgIJANhA6+PPhomZMA0GCSqGSIb3DQEBCwUAMBcxFTATBgNV
-    BAMMDGIwOTM0YWMwYWZkNTAeFw0xNTExMzAxNzQ3MzVaFw0yNTExMjcxNzQ3MzVa
-    MBcxFTATBgNVBAMMDGIwOTM0YWMwYWZkNTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-    ADCCAQoCggEBAKpV6aKjvxHjVPMydHbMUP/AVPSJJw6kWS7K02a49/bwUtpr3BIF
-    aa4AZsSLvAEh/Dz9tSoUFNCnYbWbVyZwIrGGa+86Qazz14zXfWzWVb9tdTfNiyjh
-    7vvbiQfBTrmNGVCzpwVYiWZbtXncdChs/Tl3L7M+m6M89KU5DSphWJHWz5GBkjyv
-    TBLZkOyWI21DAEslIi9fpdWdcugX8eYXj/JIn2kvYDFBcLBkTxJ8LMekCuz0I4ip
-    NoC7AHv2TFZIVAl7CZpvvgFeIzr0UwK0c43bg+Xs5H2xEkcfyswTNS6ammZR4I0T
-    MAGPNBDuy9HXxyZvNFZ62nS1P1juuPpREccCAwEAAaMNMAswCQYDVR0TBAIwADAN
-    BgkqhkiG9w0BAQsFAAOCAQEAd2w9rxi6qF9WV8L3rHnTE7uu0ldtdgJlCASx6ouj
-    TleOnjfEg+kH8r8UbmRV5vsTDn1Qp5JGDYxfytRUQwLb1zTLde0xotx37E3LY8Wr
-    sD6Al4t8sHywB/hc5dy29TgG0iyG8LKZrkwytLvDZ814W3OwpN2rpEz6pdizdHNn
-    jsoDEngZiDHvLjIyE0cDkFXkeYMGXOnBUeOcu4nfu4C5eKs3nXGGAcNDbDRIuLoE
-    BZExUBY+YSs6JBvh5tvRqLVW0Dz0akEcjb/jhwS2LmDip8Pdoxx4Q1jPKEu38zrr
-    Vd5WD2HJhLb9u0UxVp9vfWIUDgydopV5ZmWCQ5YvNepb1w==
-    -----END CERTIFICATE-----
-  '';
-in {
-  name = "pumpio";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ rvl ];
-  };
-
-  nodes = {
-    one =
-      { config, pkgs, ... }:
-        {
-          services = {
-           pumpio = {
-             port = 443;
-             enable = true;
-             sslCert = pkgs.writeText "snakeoil.cert" snakeOilCert;
-             sslKey = pkgs.writeText "snakeoil.pem" snakeOilKey;
-             secretFile = pkgs.writeText "secretFile" "test123";
-             site = "test";
-           };
-           mongodb.enable = true;
-           mongodb.extraConfig = ''
-             storage.journal.enabled: false
-           '';
-          };
-          systemd.services.mongodb.unitConfig.Before = "pump.io.service";
-          systemd.services."pump.io".unitConfig.Requires = "mongodb.service";
-        };
-    };
-
-  testScript = ''
-    startAll;
-
-    $one->waitForUnit("pump.io.service");
-    $one->waitUntilSucceeds("curl -k https://localhost");
-  '';
-})
diff --git a/nixos/tests/systemd.nix b/nixos/tests/systemd.nix
new file mode 100644
index 0000000000000..2df6f341c4efe
--- /dev/null
+++ b/nixos/tests/systemd.nix
@@ -0,0 +1,66 @@
+import ./make-test.nix {
+  name = "systemd";
+
+  machine = { lib, ... }: {
+    imports = [ common/user-account.nix common/x11.nix ];
+
+    virtualisation.emptyDiskImages = [ 512 ];
+
+    fileSystems = lib.mkVMOverride {
+      "/test-x-initrd-mount" = {
+        device = "/dev/vdb";
+        fsType = "ext2";
+        autoFormat = true;
+        noCheck = true;
+        options = [ "x-initrd.mount" ];
+      };
+    };
+
+    systemd.extraConfig = "DefaultEnvironment=\"XXX_SYSTEM=foo\"";
+    systemd.user.extraConfig = "DefaultEnvironment=\"XXX_USER=bar\"";
+    services.journald.extraConfig = "Storage=volatile";
+    services.xserver.displayManager.auto.user = "alice";
+
+    systemd.services.testservice1 = {
+      description = "Test Service 1";
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig.Type = "oneshot";
+      script = ''
+        if [ "$XXX_SYSTEM" = foo ]; then
+          touch /system_conf_read
+        fi
+      '';
+    };
+
+    systemd.user.services.testservice2 = {
+      description = "Test Service 2";
+      wantedBy = [ "default.target" ];
+      serviceConfig.Type = "oneshot";
+      script = ''
+        if [ "$XXX_USER" = bar ]; then
+          touch "$HOME/user_conf_read"
+        fi
+      '';
+    };
+  };
+
+  testScript = ''
+    $machine->waitForX;
+
+    # Regression test for https://github.com/NixOS/nixpkgs/issues/35415
+    subtest "configuration files are recognized by systemd", sub {
+      $machine->succeed('test -e /system_conf_read');
+      $machine->succeed('test -e /home/alice/user_conf_read');
+      $machine->succeed('test -z $(ls -1 /var/log/journal)');
+    };
+
+    # Regression test for https://github.com/NixOS/nixpkgs/issues/35268
+    subtest "file system with x-initrd.mount is not unmounted", sub {
+      $machine->shutdown;
+      $machine->waitForUnit('multi-user.target');
+      # If the file system was unmounted during the shutdown the file system
+      # has a last mount time, because the file system wasn't checked.
+      $machine->fail('dumpe2fs /dev/vdb | grep -q "^Last mount time: *n/a"');
+    };
+  '';
+}
diff --git a/pkgs/applications/altcoins/bitcoin-abc.nix b/pkgs/applications/altcoins/bitcoin-abc.nix
index 011e3cd7c8741..219ab5d4f8058 100644
--- a/pkgs/applications/altcoins/bitcoin-abc.nix
+++ b/pkgs/applications/altcoins/bitcoin-abc.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
 
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
-  version = "0.16.0";
+  version = "0.16.2";
 
   src = fetchFromGitHub {
     owner = "bitcoin-ABC";
     repo = "bitcoin-abc";
     rev = "v${version}";
-    sha256 = "0wwcgvd8zgl5qh6z1sa3kdv1lr9cwwbs9j2gaad5mqr9sfwbbxdh";
+    sha256 = "0d5npn4p321jqsbqjxkbv0ncvs2hp9vdp30np6n8n53f896cxl92";
   };
 
   patches = [ ./fix-bitcoin-qt-build.patch ];
diff --git a/pkgs/applications/altcoins/bitcoin-classic.nix b/pkgs/applications/altcoins/bitcoin-classic.nix
index 9a2145d91cfb4..31c8ed6fc8d06 100644
--- a/pkgs/applications/altcoins/bitcoin-classic.nix
+++ b/pkgs/applications/altcoins/bitcoin-classic.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
 
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-classic-" + version;
-  version = "1.3.6";
+  version = "1.3.8";
 
   src = fetchFromGitHub {
     owner = "bitcoinclassic";
     repo = "bitcoinclassic";
     rev = "v${version}";
-    sha256 = "129gkg035gv7zmc463jl2spvdh0fl4q8v4jdaslfnp34hbwi1p07";
+    sha256 = "06ij9v7zbdnhxq9429nnxiw655cp8idldj18l7fmj94gqx07n5vh";
   };
 
   patches = [ ./fix-bitcoin-qt-build.patch ];
diff --git a/pkgs/applications/altcoins/bitcoin-xt.nix b/pkgs/applications/altcoins/bitcoin-xt.nix
index 388676198044d..ccc55d17bcf6b 100644
--- a/pkgs/applications/altcoins/bitcoin-xt.nix
+++ b/pkgs/applications/altcoins/bitcoin-xt.nix
@@ -6,13 +6,13 @@ with stdenv.lib;
 stdenv.mkDerivation rec{
 
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-xt-" + version;
-  version = "0.11G2";
+  version = "0.11H";
 
   src = fetchFromGitHub {
     owner = "bitcoinxt";
     repo = "bitcoinxt";
     rev = "v${version}";
-    sha256 = "071rljvsabyc9j64v248qfb7zfqpfl84hpsnvlavin235zljq8qs";
+    sha256 = "1v43bynmidn2zdpky939km721x3ks91bzyh4200gji61qzsmyg62";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/applications/altcoins/dashpay.nix b/pkgs/applications/altcoins/dashpay.nix
index ff0f2407cfec2..b2f2a457a99d6 100644
--- a/pkgs/applications/altcoins/dashpay.nix
+++ b/pkgs/applications/altcoins/dashpay.nix
@@ -2,26 +2,26 @@
 , openssl, db48, boost, zlib, miniupnpc
 , qrencode, glib, protobuf, yasm, libevent
 , utillinux
-, enable_Upnp ? false 
+, enable_Upnp ? false
 , disable_Wallet ? false
 , disable_Daemon ? false }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "dashpay-${version}";
-  version = "0.12.1.3";
+  version = "0.12.2.3";
 
   src = fetchFromGitHub {
     owner = "dashpay";
     repo= "dash";
     rev = "v${version}";
-    sha256 = "0h0fxhh30wy5vp06l1mkswhz565qs6j9y0dm84fmn28rdfvhv2aj";
+    sha256 = "0l1gcj2xf2bal9ph9y11x8yd28fd25f55f48xbm45bfw3ij7nbaa";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
-  buildInputs = [ glib openssl db48 yasm boost zlib libevent 
+  buildInputs = [ glib openssl db48 yasm boost zlib libevent
                   miniupnpc protobuf qrencode utillinux ];
-                  
+
 
   configureFlags = [ "--with-boost-libdir=${boost.out}/lib --with-gui=no" ]
                     ++ optional enable_Upnp "--enable-upnp-default"
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
       with instant transactions.  It allows you to keep your finances
       private as you make transactions without waits, similar to cash.
     '';
-    homepage = http://dashpay.io;
+    homepage = https://www.dash.org;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/altcoins/dcrd.nix b/pkgs/applications/altcoins/dcrd.nix
new file mode 100644
index 0000000000000..8a8c4a7f1021d
--- /dev/null
+++ b/pkgs/applications/altcoins/dcrd.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+
+buildGoPackage rec {
+  name = "dcrd-${version}";
+  version = "1.1.2";
+  rev = "refs/tags/v${version}";
+  goPackagePath = "github.com/decred/dcrd";
+
+  buildInputs = [ go git dep cacert ];
+
+  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://${goPackagePath}";
+    sha256 = "0xcynipdn9zmmralxj0hjrwyanvhkwfj2b1vvjk5zfc95s2xc1q9";
+  };
+
+  preBuild = ''
+    export CWD=$(pwd)
+    cd go/src/github.com/decred/dcrd
+    dep ensure
+    go install . ./cmd/...
+    cd $CWD
+  '';
+
+  meta = {
+    homepage = "https://decred.org";
+    description = "Decred daemon in Go (golang)";
+    license = with lib.licenses; [ isc ];
+  };
+}
diff --git a/pkgs/applications/altcoins/dcrwallet.nix b/pkgs/applications/altcoins/dcrwallet.nix
new file mode 100644
index 0000000000000..aa6e8a0315e75
--- /dev/null
+++ b/pkgs/applications/altcoins/dcrwallet.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+
+buildGoPackage rec {
+  name = "dcrwallet-${version}";
+  version = "1.1.2";
+  rev = "refs/tags/v${version}";
+  goPackagePath = "github.com/decred/dcrwallet";
+
+  buildInputs = [ go git dep cacert ];
+
+  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://${goPackagePath}";
+    sha256 = "058im4vmcmxcl5ir14h17wik5lagp2ay0p8qc3r99qmpfwvvz39x";
+  };
+
+  preBuild = ''
+    export CWD=$(pwd)
+    cd go/src/github.com/decred/dcrwallet
+    dep ensure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    go build
+  '';
+
+  installPhase = ''
+    mkdir -pv $bin/bin
+    cp -v dcrwallet $bin/bin
+  '';
+
+
+  meta = {
+    homepage = "https://decred.org";
+    description = "Decred daemon in Go (golang)";
+    license = with lib.licenses; [ isc ];
+  };
+}
diff --git a/pkgs/applications/altcoins/default.nix b/pkgs/applications/altcoins/default.nix
index 09cf5a057f506..599103e711436 100644
--- a/pkgs/applications/altcoins/default.nix
+++ b/pkgs/applications/altcoins/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, boost155, openssl_1_1_0, haskellPackages, darwin, libsForQt5, miniupnpc_2, python3 }:
+{ callPackage, boost155, boost165, openssl_1_1_0, haskellPackages, darwin, libsForQt5, miniupnpc_2, python3 }:
 
 rec {
 
@@ -7,17 +7,17 @@ rec {
   bitcoin  = libsForQt5.callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; };
   bitcoind = callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; };
 
-  bitcoin-abc  = libsForQt5.callPackage ./bitcoin-abc.nix { withGui = true; };
-  bitcoind-abc = callPackage ./bitcoin-abc.nix { withGui = false; };
+  bitcoin-abc  = libsForQt5.callPackage ./bitcoin-abc.nix { boost = boost165; withGui = true; };
+  bitcoind-abc = callPackage ./bitcoin-abc.nix { boost = boost165; withGui = false; };
 
   bitcoin-unlimited  = callPackage ./bitcoin-unlimited.nix { withGui = true; };
   bitcoind-unlimited = callPackage ./bitcoin-unlimited.nix { withGui = false; };
 
-  bitcoin-classic  = libsForQt5.callPackage ./bitcoin-classic.nix { withGui = true; };
-  bitcoind-classic = callPackage ./bitcoin-classic.nix { withGui = false; };
+  bitcoin-classic  = libsForQt5.callPackage ./bitcoin-classic.nix { boost = boost165; withGui = true; };
+  bitcoind-classic = callPackage ./bitcoin-classic.nix { boost = boost165; withGui = false; };
 
-  bitcoin-xt  = callPackage ./bitcoin-xt.nix { withGui = true; };
-  bitcoind-xt = callPackage ./bitcoin-xt.nix { withGui = false; };
+  bitcoin-xt  = callPackage ./bitcoin-xt.nix { boost = boost165; withGui = true; };
+  bitcoind-xt = callPackage ./bitcoin-xt.nix { boost = boost165; withGui = false; };
 
   btc1 = callPackage ./btc1.nix { withGui = true; };
   btc1d = callPackage ./btc1.nix { withGui = false; };
@@ -26,6 +26,9 @@ rec {
 
   dashpay = callPackage ./dashpay.nix { };
 
+  dcrd = callPackage ./dcrd.nix { };
+  dcrwallet = callPackage ./dcrwallet.nix { };
+
   dero = callPackage ./dero.nix { };
 
   dogecoin  = callPackage ./dogecoin.nix { withGui = true; };
@@ -56,9 +59,6 @@ rec {
 
   hevm = (haskellPackages.callPackage ./hevm.nix {});
 
-  primecoin  = callPackage ./primecoin.nix { withGui = true; };
-  primecoind = callPackage ./primecoin.nix { withGui = false; };
-
   stellar-core = callPackage ./stellar-core.nix { };
 
   sumokoin = callPackage ./sumokoin.nix { };
@@ -67,4 +67,7 @@ rec {
     withGui = false;
     openssl = openssl_1_1_0;
   };
+
+  parity = callPackage ./parity { };
+  parity-beta = callPackage ./parity/beta.nix { };
 }
diff --git a/pkgs/applications/altcoins/dero.nix b/pkgs/applications/altcoins/dero.nix
index f3e24b6c015b9..dff7bc0b0dc41 100644
--- a/pkgs/applications/altcoins/dero.nix
+++ b/pkgs/applications/altcoins/dero.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "dero-${version}";
-  version = "0.11.3";
+  version = "0.11.6";
 
   src = fetchFromGitHub {
     owner = "deroproject";
     repo = "dero";
     rev = "v${version}";
-    sha256 = "0cv4yg2lkmkdhlc3753gnbg1nzldk2kxwdyizwhvanq3ycqban4b";
+    sha256 = "0jc5rh2ra4wra04dwv9sydid5ij5930s38mhzq3qkdjyza1ahmsr";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/altcoins/freicoin.nix b/pkgs/applications/altcoins/freicoin.nix
index a44dbbd62ce63..b753e2d48c977 100644
--- a/pkgs/applications/altcoins/freicoin.nix
+++ b/pkgs/applications/altcoins/freicoin.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     owner = "freicoin";
     repo = "freicoin";
     rev = "v${version}";
-    sha256 = "1m5pcnfhwhcj7q00p2sy3h73rkdm3w6grmljgiq53gshcj08cq1z";
+    sha256 = "1v1qwv4x5agjba82s1vknmdgq67y26wzdwbmwwqavv7f7y3y860h";
   };
 
   qmakeFlags = ["USE_UPNP=-"];
diff --git a/pkgs/applications/altcoins/go-ethereum.nix b/pkgs/applications/altcoins/go-ethereum.nix
index 18a9d043e1898..84e0a32e7b2e1 100644
--- a/pkgs/applications/altcoins/go-ethereum.nix
+++ b/pkgs/applications/altcoins/go-ethereum.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "go-ethereum-${version}";
-  version = "1.8.1";
+  version = "1.8.2";
   goPackagePath = "github.com/ethereum/go-ethereum";
 
   # Fix for usb-related segmentation faults on darwin
@@ -27,7 +27,7 @@ buildGoPackage rec {
     owner = "ethereum";
     repo = "go-ethereum";
     rev = "v${version}";
-    sha256 = "0k7ly9cw68ranksa1fdn7v2lncmlqgabw3qiiyqya2xz3s4aazlf";
+    sha256 = "19ryfy9dsmgk3kimkmq2hif1di4binqg9718xrmirf063rajk02a";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/altcoins/litecoin.nix b/pkgs/applications/altcoins/litecoin.nix
index ac42caa809995..12cf5dcb71c1f 100644
--- a/pkgs/applications/altcoins/litecoin.nix
+++ b/pkgs/applications/altcoins/litecoin.nix
@@ -8,13 +8,13 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
 
   name = "litecoin" + (toString (optional (!withGui) "d")) + "-" + version;
-  version = "0.14.2";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "litecoin-project";
     repo = "litecoin";
     rev = "v${version}";
-    sha256 = "1smadd5d2mpz2v3pyk7wqm60vdp81zqr4m3z4wfvnlz62m1m800y";
+    sha256 = "01q0lj0grabyfh67ar984m9lv9xs0rakadkci8jpfbp8xw166r40";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/applications/altcoins/parity/beta.nix b/pkgs/applications/altcoins/parity/beta.nix
new file mode 100644
index 0000000000000..ee4203fa88c90
--- /dev/null
+++ b/pkgs/applications/altcoins/parity/beta.nix
@@ -0,0 +1,7 @@
+let
+  version     = "1.9.4";
+  sha256      = "00b6wsyc2chmdkhfhi9h1i06hpcjj2abcx3qdc6k39clgha0081f";
+  cargoSha256 = "0pyb1mpykdp6i7c30lm5fprrxg3zanak44g28cygzli3l9l3xiy3";
+  patches     = [ ./patches/vendored-sources-1.9.patch ];
+in
+  import ./parity.nix { inherit version sha256 cargoSha256 patches; }
diff --git a/pkgs/applications/altcoins/parity/default.nix b/pkgs/applications/altcoins/parity/default.nix
new file mode 100644
index 0000000000000..fe2c2c6282752
--- /dev/null
+++ b/pkgs/applications/altcoins/parity/default.nix
@@ -0,0 +1,7 @@
+let
+  version     = "1.8.11";
+  sha256      = "1vabkglmmbx9jccwsqwvwck1brdjack3sw6iwsxy01wsc2jam56k";
+  cargoSha256 = "1l5hx77glclpwd9i35rr3lxfxshsf1bsxvs2chsp2vwjy06knjmi";
+  patches     = [ ./patches/vendored-sources-1.8.patch ];
+in
+  import ./parity.nix { inherit version sha256 cargoSha256 patches; }
diff --git a/pkgs/applications/altcoins/parity/parity.nix b/pkgs/applications/altcoins/parity/parity.nix
new file mode 100644
index 0000000000000..9c9d1d4293e0a
--- /dev/null
+++ b/pkgs/applications/altcoins/parity/parity.nix
@@ -0,0 +1,38 @@
+{ version
+, sha256
+, cargoSha256
+, patches
+}:
+
+{ stdenv
+, fetchFromGitHub
+, rustPlatform 
+, pkgconfig
+, openssl
+, systemd
+}:
+
+rustPlatform.buildRustPackage rec {
+  name = "parity-${version}";
+  inherit cargoSha256 patches;
+
+  src = fetchFromGitHub {
+    owner = "paritytech";
+    repo = "parity";
+    rev = "v${version}";
+    inherit sha256;
+  };
+
+  buildInputs = [ pkgconfig systemd.lib systemd.dev openssl openssl.dev ]; 
+
+  # Some checks failed
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Fast, light, robust Ethereum implementation";
+    homepage = http://parity.io;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.akru ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/altcoins/parity/patches/vendored-sources-1.8.patch b/pkgs/applications/altcoins/parity/patches/vendored-sources-1.8.patch
new file mode 100644
index 0000000000000..3239df63de30c
--- /dev/null
+++ b/pkgs/applications/altcoins/parity/patches/vendored-sources-1.8.patch
@@ -0,0 +1,100 @@
+diff --git a/.cargo/config b/.cargo/config
+new file mode 100644
+index 000000000..8dddda426
+--- /dev/null
++++ b/.cargo/config
+@@ -0,0 +1,94 @@
++[source."https://github.com/alexcrichton/mio-named-pipes"]
++git = "https://github.com/alexcrichton/mio-named-pipes"
++branch = "master" 
++replace-with = "vendored-sources"
++
++[source."https://github.com/nikvolf/parity-tokio-ipc"]
++git = "https://github.com/nikvolf/parity-tokio-ipc"
++branch = "master" 
++replace-with = "vendored-sources"
++
++[source."https://github.com/nikvolf/tokio-named-pipes"]
++git = "https://github.com/nikvolf/tokio-named-pipes"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/bn"]
++git = "https://github.com/paritytech/bn"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/hidapi-rs"]
++git = "https://github.com/paritytech/hidapi-rs"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/hyper"]
++git = "https://github.com/paritytech/hyper"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/js-precompiled.git"]
++git = "https://github.com/paritytech/js-precompiled.git"
++branch = "stable"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/jsonrpc.git"]
++git = "https://github.com/paritytech/jsonrpc.git"
++branch = "parity-1.8"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/libusb-rs"]
++git = "https://github.com/paritytech/libusb-rs"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/libusb-sys"]
++git = "https://github.com/paritytech/libusb-sys"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/nanomsg.rs.git"]
++git = "https://github.com/paritytech/nanomsg.rs.git"
++branch = "parity-1.7"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/rust-ctrlc.git"]
++git = "https://github.com/paritytech/rust-ctrlc.git"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/rust-rocksdb"]
++git = "https://github.com/paritytech/rust-rocksdb"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/rust-secp256k1"]
++git = "https://github.com/paritytech/rust-secp256k1"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/rust-snappy"]
++git = "https://github.com/paritytech/rust-snappy"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/trezor-sys"]
++git = "https://github.com/paritytech/trezor-sys"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/wasm-utils"]
++git = "https://github.com/paritytech/wasm-utils"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/tailhook/rotor"]
++git = "https://github.com/tailhook/rotor"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/tomusdrw/ws-rs"]
++git = "https://github.com/tomusdrw/ws-rs"
++branch = "master"
++replace-with = "vendored-sources"
diff --git a/pkgs/applications/altcoins/parity/patches/vendored-sources-1.9.patch b/pkgs/applications/altcoins/parity/patches/vendored-sources-1.9.patch
new file mode 100644
index 0000000000000..d1f6520d706bb
--- /dev/null
+++ b/pkgs/applications/altcoins/parity/patches/vendored-sources-1.9.patch
@@ -0,0 +1,107 @@
+diff --git a/.cargo/config b/.cargo/config
+new file mode 100644
+index 000000000..0efb69724
+--- /dev/null
++++ b/.cargo/config
+@@ -0,0 +1,100 @@
++
++[source."https://github.com/alexcrichton/mio-named-pipes"]
++git = "https://github.com/alexcrichton/mio-named-pipes"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/js-dist-paritytech/parity-beta-1-9-shell.git"]
++git = "https://github.com/js-dist-paritytech/parity-beta-1-9-shell.git"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/js-dist-paritytech/parity-beta-1-9-v1.git"]
++git = "https://github.com/js-dist-paritytech/parity-beta-1-9-v1.git"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/nikvolf/parity-tokio-ipc"]
++git = "https://github.com/nikvolf/parity-tokio-ipc"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/nikvolf/tokio-named-pipes"]
++git = "https://github.com/nikvolf/tokio-named-pipes"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/bn"]
++git = "https://github.com/paritytech/bn"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/hidapi-rs"]
++git = "https://github.com/paritytech/hidapi-rs"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/hyper"]
++git = "https://github.com/paritytech/hyper"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/jsonrpc.git"]
++git = "https://github.com/paritytech/jsonrpc.git"
++branch = "parity-1.9"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/libusb-rs"]
++git = "https://github.com/paritytech/libusb-rs"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/libusb-sys"]
++git = "https://github.com/paritytech/libusb-sys"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/rust-ctrlc.git"]
++git = "https://github.com/paritytech/rust-ctrlc.git"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/rust-rocksdb"]
++git = "https://github.com/paritytech/rust-rocksdb"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/rust-secp256k1"]
++git = "https://github.com/paritytech/rust-secp256k1"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/rust-snappy"]
++git = "https://github.com/paritytech/rust-snappy"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/trezor-sys"]
++git = "https://github.com/paritytech/trezor-sys"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/paritytech/wasm-utils"]
++git = "https://github.com/paritytech/wasm-utils"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/pepyakin/wasmi"]
++git = "https://github.com/pepyakin/wasmi"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/tailhook/rotor"]
++git = "https://github.com/tailhook/rotor"
++branch = "master"
++replace-with = "vendored-sources"
++
++[source."https://github.com/tomusdrw/ws-rs"]
++git = "https://github.com/tomusdrw/ws-rs"
++branch = "master"
++replace-with = "vendored-sources"
++
diff --git a/pkgs/applications/altcoins/primecoin.nix b/pkgs/applications/altcoins/primecoin.nix
deleted file mode 100644
index f79d54d0ce268..0000000000000
--- a/pkgs/applications/altcoins/primecoin.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, openssl, db48, boost
-, zlib, qt4, qmake4Hook, utillinux, protobuf, qrencode
-, withGui }:
-
-with stdenv.lib;
-stdenv.mkDerivation rec{
-
-  name = "primecoin" + (toString (optional (!withGui) "d")) + "-" + version;
-  version = "0.8.6";
-
-  src = fetchurl {
-    url =  "https://github.com/primecoin/primecoin/archive/v${version}.tar.gz";
-    sha256 = "0cixnkici74204s9d5iqj5sccib5a8dig2p2fp1axdjifpg787i3";
-  };
-
-  qmakeFlags = ["USE_UPNP=-"];
-  makeFlags = ["USE_UPNP=-"];
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ openssl db48 boost zlib utillinux protobuf ]
-                  ++ optionals withGui [ qt4 qmake4Hook qrencode ];
-
-  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
-                     ++ optionals withGui [ "--with-gui=qt4" ];
-
-  preBuild = "unset AR;"
-              + (toString (optional (!withGui) "cd src; cp makefile.unix Makefile"));
-
-  installPhase =
-    if withGui
-    then "install -D bitcoin-qt $out/bin/primecoin-qt"
-    else "install -D bitcoind $out/bin/primecoind";
-
-  # `make build/version.o`:
-  # make: *** No rule to make target 'build/build.h', needed by 'build/version.o'.  Stop.
-  enableParallelBuilding = false;
-
-  meta = {
-    description = "A new type cryptocurrency which is proof-of-work based on searching for prime numbers";
-    longDescription= ''
-      Primecoin is an innovative cryptocurrency, a form of digital
-      currency secured by cryptography and issued through a
-      decentralized mining market. Derived from Satoshi Nakamoto's
-      Bitcoin, Primecoin introduces an unique form of proof-of-work
-      based on prime numbers.
-
-      The innovative prime proof-of-work in Primecoin not only
-      provides security and minting to the network, but also generates
-      a special form of prime number chains of interest to mathematical
-      research. Thus primecoin network is energy-multiuse, compared to
-      bitcoin.
-    '';
-    homepage = http://primecoin.io/;
-    maintainers = with maintainers; [ AndersonTorres ];
-    license = licenses.mit;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/audio/abcde/default.nix b/pkgs/applications/audio/abcde/default.nix
index a23af5b5caf88..b74d85b9dbfa0 100644
--- a/pkgs/applications/audio/abcde/default.nix
+++ b/pkgs/applications/audio/abcde/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libcdio, cddiscid, wget, bash, which, vorbis-tools, id3v2, eyeD3
+{ stdenv, fetchurl, libcdio-paranoia, cddiscid, wget, bash, which, vorbis-tools, id3v2, eyeD3
 , lame, flac, eject, mkcue, glyr
 , perl, DigestSHA, MusicBrainz, MusicBrainzDiscID
 , makeWrapper }:
@@ -42,7 +42,7 @@ in
     postFixup = ''
       for cmd in abcde cddb-tool abcde-musicbrainz-tool; do
         wrapProgram "$out/bin/$cmd" --prefix PATH ":" \
-          ${stdenv.lib.makeBinPath [ "$out" which libcdio cddiscid wget vorbis-tools id3v2 eyeD3 lame flac glyr ]}
+          ${stdenv.lib.makeBinPath [ "$out" which libcdio-paranoia cddiscid wget vorbis-tools id3v2 eyeD3 lame flac glyr ]}
       done
     '';
 
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
index affddd90784cf..92a33035c827a 100644
--- a/pkgs/applications/audio/clementine/default.nix
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, boost, cmake, chromaprint, gettext, gst_all_1, liblastfm
+{ stdenv, fetchurl, fetchpatch, boost, cmake, chromaprint, gettext, gst_all_1, liblastfm
 , qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist, usbmuxd, libmtp
 , libpulseaudio, gvfs, libcdio, libechonest, libspotify, pcre, projectm, protobuf
 , qca2, pkgconfig, sparsehash, config, makeWrapper, runCommand, gst_plugins }:
@@ -24,6 +24,11 @@ let
     # Required so as to avoid adding libspotify as a build dependency (as it is 
     # unfree and thus would prevent us from having a free package).
     ./clementine-spotify-blob-remove-from-build.patch
+    (fetchpatch {
+      # Fix w/gcc7
+      url = "https://github.com/clementine-player/Clementine/pull/5630.patch";
+      sha256 = "0px7xp1m4nvrncx8sga1qlxppk562wrk2qqk19iiry84nxg20mk4";
+    })
   ];
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/audio/cmus/default.nix b/pkgs/applications/audio/cmus/default.nix
index c0dd2e92178c4..f8c5a4e5acff8 100644
--- a/pkgs/applications/audio/cmus/default.nix
+++ b/pkgs/applications/audio/cmus/default.nix
@@ -17,7 +17,7 @@
 #, waveoutSupport
 
 , cddbSupport ? true, libcddb ? null
-, cdioSupport ? true, libcdio ? null
+, cdioSupport ? true, libcdio ? null, libcdio-paranoia ? null
 , cueSupport ? true, libcue ? null
 , discidSupport ? (!stdenv.isDarwin), libdiscid ? null
 , ffmpegSupport ? true, ffmpeg ? null
@@ -69,7 +69,7 @@ let
 
     # Input file formats
     (mkFlag cddbSupport    "CONFIG_CDDB=y"    libcddb)
-    (mkFlag cdioSupport    "CONFIG_CDIO=y"    libcdio)
+    (mkFlag cdioSupport    "CONFIG_CDIO=y"    [ libcdio libcdio-paranoia ])
     (mkFlag cueSupport     "CONFIG_CUE=y"     libcue)
     (mkFlag discidSupport  "CONFIG_DISCID=y"  libdiscid)
     (mkFlag ffmpegSupport  "CONFIG_FFMPEG=y"  ffmpeg)
diff --git a/pkgs/applications/audio/deadbeef/default.nix b/pkgs/applications/audio/deadbeef/default.nix
index be70443fd4dfa..4dced0cfafae5 100644
--- a/pkgs/applications/audio/deadbeef/default.nix
+++ b/pkgs/applications/audio/deadbeef/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
     description = "Ultimate Music Player for GNU/Linux";
     homepage = http://deadbeef.sourceforge.net/;
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ maintainers.abbradar ];
     repositories.git = "https://github.com/Alexey-Yakovenko/deadbeef";
   };
diff --git a/pkgs/applications/audio/easytag/default.nix b/pkgs/applications/audio/easytag/default.nix
index 1ae9a0e5298e3..1ca2570fd4bdd 100644
--- a/pkgs/applications/audio/easytag/default.nix
+++ b/pkgs/applications/audio/easytag/default.nix
@@ -1,35 +1,37 @@
 { stdenv, fetchurl, pkgconfig, intltool, gtk3, glib, libid3tag, id3lib, taglib
 , libvorbis, libogg, flac, itstool, libxml2, gsettings-desktop-schemas
-, makeWrapper, gnome3
+, gnome3, wrapGAppsHook
 }:
 
-stdenv.mkDerivation rec {
-  name = "easytag-${version}";
-  majorVersion = "2.4";
-  version = "${majorVersion}.3";
+let
+  pname = "easytag";
+  version = "2.4.3";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/easytag/${majorVersion}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "1mbxnqrw1fwcgraa1bgik25vdzvf97vma5pzknbwbqq5ly9fwlgw";
   };
 
-  preFixup = ''
-    wrapProgram $out/bin/easytag \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share" \
-      --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib gnome3.dconf}/lib/gio/modules"
-  '';
-
   NIX_LDFLAGS = "-lid3tag -lz";
 
-  nativeBuildInputs = [ makeWrapper pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool itstool libxml2 wrapGAppsHook ];
   buildInputs = [
     gtk3 glib libid3tag id3lib taglib libvorbis libogg flac
-    itstool libxml2 gsettings-desktop-schemas gnome3.defaultIconTheme (stdenv.lib.getLib gnome3.dconf)
+    gsettings-desktop-schemas gnome3.defaultIconTheme
   ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "View and edit tags for various audio files";
-    homepage = http://projects.gnome.org/easytag/;
+    homepage = https://wiki.gnome.org/Apps/EasyTAG;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ fuuzetsu ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/fmit/default.nix b/pkgs/applications/audio/fmit/default.nix
index ba3f31d05014c..e238f88314214 100644
--- a/pkgs/applications/audio/fmit/default.nix
+++ b/pkgs/applications/audio/fmit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fftw, freeglut, mesa_glu, qtbase, qtmultimedia, qmake
+{ stdenv, fetchFromGitHub, fftw, freeglut, libGLU, qtbase, qtmultimedia, qmake
 , alsaSupport ? true, alsaLib ? null
 , jackSupport ? false, libjack2 ? null
 , portaudioSupport ? false, portaudio ? null }:
diff --git a/pkgs/applications/audio/helm/default.nix b/pkgs/applications/audio/helm/default.nix
index 80fb6a9ef923c..fa76a1a26e823 100644
--- a/pkgs/applications/audio/helm/default.nix
+++ b/pkgs/applications/audio/helm/default.nix
@@ -1,5 +1,5 @@
   { stdenv, fetchFromGitHub , xorg, freetype, alsaLib, curl, libjack2
-  , lv2, pkgconfig, mesa }:
+  , lv2, pkgconfig, libGLU_combined }:
 
   stdenv.mkDerivation rec {
   version = "0.9.0";
@@ -15,7 +15,7 @@
   buildInputs = [
     xorg.libX11 xorg.libXcomposite xorg.libXcursor xorg.libXext
     xorg.libXinerama xorg.libXrender xorg.libXrandr
-    freetype alsaLib curl libjack2 pkgconfig mesa lv2
+    freetype alsaLib curl libjack2 pkgconfig libGLU_combined lv2
   ];
 
   CXXFLAGS = "-DHAVE_LROUND";
diff --git a/pkgs/applications/audio/jack-oscrolloscope/default.nix b/pkgs/applications/audio/jack-oscrolloscope/default.nix
index a75513ff059ee..75a8a6a4b1a11 100644
--- a/pkgs/applications/audio/jack-oscrolloscope/default.nix
+++ b/pkgs/applications/audio/jack-oscrolloscope/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL, libjack2, mesa, pkgconfig }:
+{ stdenv, fetchurl, SDL, libjack2, libGLU_combined, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "jack_oscrolloscope-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ SDL libjack2 mesa ];
+  buildInputs = [ SDL libjack2 libGLU_combined ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/audio/meters_lv2/default.nix b/pkgs/applications/audio/meters_lv2/default.nix
index f4245b0a51e34..669ffbb2688a1 100644
--- a/pkgs/applications/audio/meters_lv2/default.nix
+++ b/pkgs/applications/audio/meters_lv2/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig
-, lv2, mesa, gtk2, cairo, pango, fftw }:
+, lv2, libGLU_combined, gtk2, cairo, pango, fftw }:
 
 let
   version = "0.8.1";
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   inherit name;
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ lv2 mesa gtk2 cairo pango fftw ];
+  buildInputs = [ lv2 libGLU_combined gtk2 cairo pango fftw ];
 
   srcs = [ src robtkSrc ];
   sourceRoot = name;
diff --git a/pkgs/applications/audio/pamixer/default.nix b/pkgs/applications/audio/pamixer/default.nix
index 3e159c843843b..322a4e2384619 100644
--- a/pkgs/applications/audio/pamixer/default.nix
+++ b/pkgs/applications/audio/pamixer/default.nix
@@ -1,15 +1,22 @@
-{ stdenv, fetchurl, boost, libpulseaudio }:
+{ stdenv, fetchFromGitHub, fetchpatch, boost, libpulseaudio }:
 
 stdenv.mkDerivation rec {
-
   name = "pamixer-${version}";
   version = "1.3.1";
 
-  src = fetchurl {
-    url = "https://github.com/cdemoulins/pamixer/archive/${version}.tar.gz";
-    sha256 = "1lsvb4xk1dq762w9c0jn7xvj3v1lzppql9mj1b55fhzdypbrkm6x";
+  src = fetchFromGitHub {
+    owner = "cdemoulins";
+    repo = "pamixer";
+    rev = version;
+    sha256 = "15zs2x4hnrpxphqn542b6qqm4ymvhkvbcfyffy69d6cki51chzzw";
   };
 
+  # Remove after https://github.com/cdemoulins/pamixer/pull/16 gets fixed
+  patches = [(fetchpatch {
+    url = "https://github.com/oxij/pamixer/commit/dea1cd967aa837940e5c0b04ef7ebc47a7a93d63.patch";
+    sha256 = "0s77xmsiwywyyp6f4bjxg1sqdgms1k5fiy7na6ws0aswshfnzfjb";
+  })];
+
   buildInputs = [ boost libpulseaudio ];
 
   installPhase = ''
diff --git a/pkgs/applications/audio/pianobooster/default.nix b/pkgs/applications/audio/pianobooster/default.nix
index 67848cdc804b9..d013a26277e81 100644
--- a/pkgs/applications/audio/pianobooster/default.nix
+++ b/pkgs/applications/audio/pianobooster/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, cmake, mesa, makeWrapper, qt4 }:
+{ stdenv, fetchurl, alsaLib, cmake, libGLU_combined, makeWrapper, qt4 }:
 
 stdenv.mkDerivation  rec {
   name = "pianobooster-${version}";
@@ -16,11 +16,11 @@ stdenv.mkDerivation  rec {
 
   preConfigure = "cd src";
 
-  buildInputs = [ alsaLib cmake makeWrapper mesa qt4 ];
+  buildInputs = [ alsaLib cmake makeWrapper libGLU_combined qt4 ];
 
   postInstall = ''
     wrapProgram $out/bin/pianobooster \
-      --prefix LD_LIBRARY_PATH : ${mesa}/lib
+      --prefix LD_LIBRARY_PATH : ${libGLU_combined}/lib
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/rhythmbox/default.nix b/pkgs/applications/audio/rhythmbox/default.nix
index 5190fe37d8a73..a23324c7fdacd 100644
--- a/pkgs/applications/audio/rhythmbox/default.nix
+++ b/pkgs/applications/audio/rhythmbox/default.nix
@@ -14,29 +14,28 @@
 , gst_plugins ? with gst_all_1; [ gst-plugins-good gst-plugins-ugly ]
 }:
 let
-  version = "${major}.${minor}";
-  major = "3.2";
-  minor = "1";
-
+  pname = "rhythmbox";
+  version = "3.4.2";
 in stdenv.mkDerivation rec {
-  name = "rhythmbox-${version}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/rhythmbox/${major}/${name}.tar.xz";
-    sha256 = "0f3radhlji7rxl760yl2vm49fvfslympxrpm8497acbmbd7wlhxz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0hzcns8gf5yb0rm4ss8jd8qzarcaplp5cylk6plwilsqfvxj4xn2";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool perl perlPackages.XMLParser
+    itstool
+    wrapGAppsHook
+  ];
+
   buildInputs = [
     python3
-    perl
-    perlPackages.XMLParser
-
-    intltool
     libsoup
     tdb
     json-glib
-    itstool
 
     gtk3
     gnome3.libpeas
@@ -45,12 +44,17 @@ in stdenv.mkDerivation rec {
 
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
-
-    wrapGAppsHook
   ] ++ gst_plugins;
 
   enableParallelBuilding = true;
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/Rhythmbox;
     description = "A music playing application for GNOME";
diff --git a/pkgs/applications/audio/setbfree/default.nix b/pkgs/applications/audio/setbfree/default.nix
index 63705d40c3f60..4d8435454239f 100644
--- a/pkgs/applications/audio/setbfree/default.nix
+++ b/pkgs/applications/audio/setbfree/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, alsaLib, freetype, ftgl, libjack2, libX11, lv2
-, mesa, pkgconfig, ttf_bitstream_vera
+, libGLU_combined, pkgconfig, ttf_bitstream_vera
 }:
 
 stdenv.mkDerivation  rec {
@@ -19,7 +19,7 @@ stdenv.mkDerivation  rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    alsaLib freetype ftgl libjack2 libX11 lv2 mesa
+    alsaLib freetype ftgl libjack2 libX11 lv2 libGLU_combined
     ttf_bitstream_vera
   ];
 
diff --git a/pkgs/applications/audio/sisco.lv2/default.nix b/pkgs/applications/audio/sisco.lv2/default.nix
index a60c3bef0daac..32cfd0f749404 100644
--- a/pkgs/applications/audio/sisco.lv2/default.nix
+++ b/pkgs/applications/audio/sisco.lv2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, lv2, pkgconfig, mesa, cairo, pango, libjack2 }:
+{ stdenv, fetchFromGitHub, lv2, pkgconfig, libGLU_combined, cairo, pango, libjack2 }:
 
 let
   name = "sisco.lv2-${version}";
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   sourceRoot = src.name;
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ lv2 pango cairo libjack2 mesa ];
+  buildInputs = [ lv2 pango cairo libjack2 libGLU_combined ];
 
   postUnpack = "chmod u+w -R ${robtkName}-src; mv ${robtkName}-src/* ${sourceRoot}/robtk";
   sisco_VERSION = version;
diff --git a/pkgs/applications/audio/soundscape-renderer/default.nix b/pkgs/applications/audio/soundscape-renderer/default.nix
index 44c3bd70d3dc5..47851adc3aafc 100644
--- a/pkgs/applications/audio/soundscape-renderer/default.nix
+++ b/pkgs/applications/audio/soundscape-renderer/default.nix
@@ -11,7 +11,7 @@
 , boost
 , ecasound
 , glibcLocales
-, mesa # Needed because help2man basically does a ./ssr-binaural  --help and ssr-binaural needs libGL
+, libGLU_combined # Needed because help2man basically does a ./ssr-binaural  --help and ssr-binaural needs libGL
 }:
 
 stdenv.mkDerivation rec {
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   LC_ALL = "en_US.UTF-8";
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ boost boost.dev ecasound mesa help2man libsndfile fftwFloat libjack2 libxml2 qt4 glibcLocales ];
+  buildInputs = [ boost boost.dev ecasound libGLU_combined help2man libsndfile fftwFloat libjack2 libxml2 qt4 glibcLocales ];
 
   # 1) Fix detecting version. https://github.com/SoundScapeRenderer/ssr/pull/53
   # 2) Make it find ecasound headers
diff --git a/pkgs/applications/audio/squishyball/default.nix b/pkgs/applications/audio/squishyball/default.nix
index 2022183f4a083..496ce779ffb57 100644
--- a/pkgs/applications/audio/squishyball/default.nix
+++ b/pkgs/applications/audio/squishyball/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ flac libao libvorbis ncurses opusfile ];
 
+  NIX_CFLAGS_COMPILE = "-DNCURSES_INTERNALS";
+
   patches = [ ./gnu-screen.patch ];
 
   postInstall = ''
diff --git a/pkgs/applications/audio/x42-plugins/default.nix b/pkgs/applications/audio/x42-plugins/default.nix
index 0c151697e8979..4c4f958ec4937 100644
--- a/pkgs/applications/audio/x42-plugins/default.nix
+++ b/pkgs/applications/audio/x42-plugins/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig
 , libltc, libsndfile, libsamplerate, ftgl, freefont_ttf, libjack2
-, mesa_glu, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
+, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
 
 stdenv.mkDerivation rec {
   version = "20170428";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ mesa_glu ftgl freefont_ttf libjack2 libltc libsndfile libsamplerate lv2 gtk2 cairo pango fftwFloat zita-convolver ];
+  buildInputs = [ libGLU ftgl freefont_ttf libjack2 libltc libsndfile libsamplerate lv2 gtk2 cairo pango fftwFloat zita-convolver ];
 
   # Don't remove this. The default fails with 'do not know how to unpack source archive'
   # every now and then on Hydra. No idea why.
diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
index 27d82942d343a..cdf84cb7e46f1 100644
--- a/pkgs/applications/audio/yoshimi/default.nix
+++ b/pkgs/applications/audio/yoshimi/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk, pcre
-, libjack2, libsndfile, libXdmcp, readline, lv2, mesa, minixml, pkgconfig, zlib, xorg
+, libjack2, libsndfile, libXdmcp, readline, lv2, libGLU_combined, minixml, pkgconfig, zlib, xorg
 }:
 
 assert stdenv ? glibc;
@@ -14,7 +14,7 @@ stdenv.mkDerivation  rec {
   };
 
   buildInputs = [
-    alsaLib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 mesa
+    alsaLib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 libGLU_combined
     minixml zlib xorg.libpthreadstubs pcre
   ];
 
diff --git a/pkgs/applications/audio/zam-plugins/default.nix b/pkgs/applications/audio/zam-plugins/default.nix
index e9a445ec14275..210d0f7e989d3 100644
--- a/pkgs/applications/audio/zam-plugins/default.nix
+++ b/pkgs/applications/audio/zam-plugins/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit , boost, libX11, mesa, liblo, libjack2, ladspaH, lv2, pkgconfig, rubberband, libsndfile, fftwFloat, libsamplerate }:
+{ stdenv, fetchgit , boost, libX11, libGLU_combined, liblo, libjack2, ladspaH, lv2, pkgconfig, rubberband, libsndfile, fftwFloat, libsamplerate }:
 
 stdenv.mkDerivation rec {
   name = "zam-plugins-${version}";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ boost libX11 mesa liblo libjack2 ladspaH lv2 rubberband libsndfile fftwFloat libsamplerate ];
+  buildInputs = [ boost libX11 libGLU_combined liblo libjack2 ladspaH lv2 rubberband libsndfile fftwFloat libsamplerate ];
 
   patchPhase = ''
     patchShebangs ./dpf/utils/generate-ttl.sh
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index 2194ff226b56f..aa3c92da1f7c6 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "atom-${version}";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
-    sha256 = "1yvwz4lkf7ya775h3fvrg1wkdc30321j666vfjlmax5mbcjrxkzf";
+    sha256 = "0llg2q1hn2wmhi80ddwwb2lir2xwwmrw19i2c1y3qmfb0apynhw3";
     name = "${name}.deb";
   };
 
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 6d04e87179541..5d850614e9513 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -509,16 +509,16 @@ rec {
 
   spotbugs = buildEclipsePlugin rec {
     name = "spotbugs-${version}";
-    version = "3.1.1.r201712011030-903b7a0";
+    version = "3.1.2.r201802250230-59118d9";
 
     srcFeature = fetchurl {
       url = "https://spotbugs.github.io/eclipse/features/com.github.spotbugs.plugin.eclipse_${version}.jar";
-      sha256 = "12z5dbs10h5k567wbmwz1w4pnidmqsls52qcfdb3zlgr0rqvz072";
+      sha256 = "1p0pz7znpfi5h1wr60sl8clkpd7rzkh7krmc0nxc6w43gkgkg9h4";
     };
 
     srcPlugin = fetchurl {
       url = "https://spotbugs.github.io/eclipse/plugins/com.github.spotbugs.plugin.eclipse_${version}.jar";
-      sha256 = "0dnkp2alymvyyql7g8w79i27b3c64inhdvpxx1v014ng9liv54xb";
+      sha256 = "1z3jjbcjif4qip1gx2dhfcm9fyhps96ms7z3ngbdcakgw7wai9v4";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/hexcurse/default.nix b/pkgs/applications/editors/hexcurse/default.nix
index 5c0f2ee18e1f7..22cc4d47e6807 100644
--- a/pkgs/applications/editors/hexcurse/default.nix
+++ b/pkgs/applications/editors/hexcurse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, ncurses }:
+{ stdenv, lib, fetchFromGitHub, fetchpatch, ncurses }:
 
 stdenv.mkDerivation rec {
   name = "hexcurse-${version}";
@@ -11,6 +11,18 @@ stdenv.mkDerivation rec {
     sha256 = "17ckkxfzbqvvfdnh10if4aqdcq98q3vl6dn1v6f4lhr4ifnyjdlk";
   };
   buildInputs = [ ncurses ];
+  patches = [
+    # gcc7 compat
+    (fetchpatch {
+      url = https://github.com/LonnyGomes/hexcurse/commit/d808cb7067d1df067f8b707fabbfaf9f8931484c.patch;
+      sha256 = "0h8345blmc401c6bivf0imn4cwii67264yrzxg821r46wrnfvyi2";
+    })
+    # gcc7 compat
+    (fetchpatch {
+      url = https://github.com/LonnyGomes/hexcurse/commit/716b5d58ac859cc240b8ccb9cbd79ace3e0593c1.patch;
+      sha256 = "0v6gbp6pjpmnzswlf6d97aywiy015g3kcmfrrkspsbb7lh1y3nix";
+    })
+  ];
   
   meta = with lib; {
     description = "ncurses-based console hexeditor written in C";
diff --git a/pkgs/applications/editors/jetbrains/common.nix b/pkgs/applications/editors/jetbrains/common.nix
index a7ac367f048ac..7715de153981d 100644
--- a/pkgs/applications/editors/jetbrains/common.nix
+++ b/pkgs/applications/editors/jetbrains/common.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, makeDesktopItem, makeWrapper, patchelf, p7zip
-, coreutils, gnugrep, which, git, python, unzip }:
+, coreutils, gnugrep, which, git, python, unzip, libsecret
+}:
 
 { name, product, version, src, wmClass, jdk, meta } @ attrs:
 
@@ -65,7 +66,7 @@ with stdenv; lib.makeOverridable mkDerivation rec {
       --prefix PATH : "$out/libexec/${name}:${stdenv.lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \
       --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
         # Some internals want libstdc++.so.6
-        stdenv.cc.cc.lib
+        stdenv.cc.cc.lib libsecret
       ]}" \
       --set JDK_HOME "$jdk" \
       --set ${hiName}_JDK "$jdk" \
diff --git a/pkgs/applications/editors/kodestudio/default.nix b/pkgs/applications/editors/kodestudio/default.nix
index a0e941289099a..8eb2f392ddc02 100644
--- a/pkgs/applications/editors/kodestudio/default.nix
+++ b/pkgs/applications/editors/kodestudio/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, callPackage, fetchurl, makeDesktopItem, makeWrapper
 , # Patchelf dependencies:
-  alsaLib, atomEnv, boehmgc, flac, libogg, libvorbis, libXScrnSaver, mesa
+  alsaLib, atomEnv, boehmgc, flac, libogg, libvorbis, libXScrnSaver, libGLU_combined
 , openssl, xlibs, xorg, zlib
 }:
 
@@ -55,7 +55,7 @@ in
           $out/kodestudio
       patchelf \
           --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath ".:${stdenv.cc.libc}/lib:${xorg.libXinerama}/lib:${xorg.libX11}/lib:${alsaLib}/lib:${mesa}/lib:${openssl.out}/lib" \
+          --set-rpath ".:${stdenv.cc.libc}/lib:${xorg.libXinerama}/lib:${xorg.libX11}/lib:${alsaLib}/lib:${libGLU_combined}/lib:${openssl.out}/lib" \
           $out/resources/app/extensions/krom/Krom/linux/Krom
       patchelf \
           --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
diff --git a/pkgs/applications/graphics/antimony/default.nix b/pkgs/applications/graphics/antimony/default.nix
index f9ea2b9aa84e7..334a5a33dadf8 100644
--- a/pkgs/applications/graphics/antimony/default.nix
+++ b/pkgs/applications/graphics/antimony/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, libpng, python3, boost, mesa, qtbase, ncurses, cmake, flex, lemon }:
+{ stdenv, fetchFromGitHub, libpng, python3, boost, libGLU_combined, qtbase, ncurses, cmake, flex, lemon }:
 
 let
   gitRev    = "020910c25614a3752383511ede5a1f5551a8bd39";
@@ -24,7 +24,7 @@ in
 
     buildInputs = [
       libpng python3 (boost.override { python = python3; })
-      mesa qtbase ncurses
+      libGLU_combined qtbase ncurses
     ];
 
     nativeBuildInputs = [ cmake flex lemon ];
diff --git a/pkgs/applications/graphics/ao/default.nix b/pkgs/applications/graphics/ao/default.nix
index 990fee8cc37c9..d415df1bae804 100644
--- a/pkgs/applications/graphics/ao/default.nix
+++ b/pkgs/applications/graphics/ao/default.nix
@@ -1,5 +1,5 @@
 {stdenv, fetchgit, cmake, ninja, boost, libpng, glfw3, epoxy, guile, pkgconfig
-, mesa, libX11, libpthreadstubs, libXau, libXdmcp, libXrandr, libXext
+, libGLU_combined, libX11, libpthreadstubs, libXau, libXdmcp, libXrandr, libXext
 , libXinerama, libXxf86vm, libXcursor, libXfixes
 }:
 stdenv.mkDerivation rec {
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    cmake ninja boost libpng glfw3 epoxy guile mesa libX11 
+    cmake ninja boost libpng glfw3 epoxy guile libGLU_combined libX11 
     libpthreadstubs libXau libXdmcp libXrandr libXext libXinerama libXxf86vm
     libXcursor libXfixes
   ];
diff --git a/pkgs/applications/graphics/cinepaint/default.nix b/pkgs/applications/graphics/cinepaint/default.nix
index 22ac473bdd95a..d46128c62c026 100644
--- a/pkgs/applications/graphics/cinepaint/default.nix
+++ b/pkgs/applications/graphics/cinepaint/default.nix
@@ -2,7 +2,7 @@
   flex, libtiff, libjpeg, libpng, libexif, zlib, perl, libX11,
   perlXMLParser, pythonPackages, gettext, intltool, babl, gegl,
   glib, makedepend, xf86vidmodeproto, xineramaproto, libXmu, openexr,
-  mesa, libXext, libXpm, libXau, libXxf86vm, pixman, libpthreadstubs, fltk } :
+  libGLU_combined, libXext, libXpm, libXau, libXxf86vm, pixman, libpthreadstubs, fltk } :
 
 let
   inherit (pythonPackages) python pygtk;
@@ -16,7 +16,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [ libpng gtk2 freetype fontconfig lcms flex libtiff libjpeg
     libexif zlib perl libX11 perlXMLParser python pygtk gettext intltool babl
-    gegl glib makedepend xf86vidmodeproto xineramaproto libXmu openexr mesa
+    gegl glib makedepend xf86vidmodeproto xineramaproto libXmu openexr libGLU_combined
     libXext libXpm libXau libXxf86vm pixman libpthreadstubs fltk
   ];
 
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index d2ef35fcca80a..9dd0722541f49 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -34,7 +34,7 @@
 , libqtav
 , libusb1
 , marble
-, mesa
+, libGLU_combined
 , mysql
 , opencv3
 , pcre
@@ -76,7 +76,7 @@ mkDerivation rec {
     liblqr1
     libqtav
     libusb1
-    mesa
+    libGLU_combined
     opencv3
     pcre
 
diff --git a/pkgs/applications/graphics/draftsight/default.nix b/pkgs/applications/graphics/draftsight/default.nix
index 17334c5b366c4..9ab43ff943370 100644
--- a/pkgs/applications/graphics/draftsight/default.nix
+++ b/pkgs/applications/graphics/draftsight/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, requireFile, dpkg, makeWrapper, gcc, mesa, xdg_utils,
+{ stdenv, requireFile, dpkg, makeWrapper, gcc, libGLU_combined, xdg_utils,
   dbus_tools, alsaLib, cups, fontconfig, glib, icu, libpng12,
   xkeyboard_config, gstreamer, zlib, libxslt, libxml2, sqlite, orc,
   libX11, libXcursor, libXrandr, libxcb, libXi, libSM, libICE,
@@ -59,7 +59,7 @@ stdenv.mkDerivation {
     sha256 = "04i3dqza6y4p2059pqg5inp3qzr5jmiqplzzk7h1a6gh380v1rbr";
   };
 
-  libPath = stdenv.lib.makeLibraryPath [ gcc.cc mesa xdg_utils
+  libPath = stdenv.lib.makeLibraryPath [ gcc.cc libGLU_combined xdg_utils
     dbus_tools alsaLib cups.lib fontconfig glib icu libpng12
     xkeyboard_config gstreamer zlib libxslt libxml2 sqlite orc libX11
     libXcursor libXrandr libxcb libXi libSM libICE libXrender
diff --git a/pkgs/applications/graphics/exrdisplay/default.nix b/pkgs/applications/graphics/exrdisplay/default.nix
index 3386d75e81e19..aee65803e53f1 100644
--- a/pkgs/applications/graphics/exrdisplay/default.nix
+++ b/pkgs/applications/graphics/exrdisplay/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, fltk, openexr, mesa, openexr_ctl }:
+{ stdenv, fetchurl, pkgconfig, fltk, openexr, libGLU_combined, openexr_ctl }:
 
 assert fltk.glSupport;
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   '';
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ openexr fltk mesa openexr_ctl ];
+  buildInputs = [ openexr fltk libGLU_combined openexr_ctl ];
 
   meta = { 
     description = "Application for viewing OpenEXR images on a display at various exposure settings";
diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix
index 6d603f6940bb9..61e177be6093c 100644
--- a/pkgs/applications/graphics/feh/default.nix
+++ b/pkgs/applications/graphics/feh/default.nix
@@ -6,11 +6,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "feh-${version}";
-  version = "2.24";
+  version = "2.25";
 
   src = fetchurl {
     url = "https://feh.finalrewind.org/${name}.tar.bz2";
-    sha256 = "148qbxkk5m7i3cxymnfwi7aikqjyfxr306dlqm9ndp6x932js5wq";
+    sha256 = "102rwi30n09l8rih6kv6bb7lhv3djklgzill4p2zag0h700yqfq6";
   };
 
   outputs = [ "out" "man" "doc" ];
@@ -20,9 +20,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ xorg.libX11 xorg.libXinerama imlib2 libjpeg libpng curl libexif ];
 
-  preBuild = ''
-    makeFlags="PREFIX=$out exif=1"
-  '';
+  makeFlags = [
+    "PREFIX=$(out)" "exif=1"
+  ] ++ optional stdenv.isDarwin "verscmp=0";
 
   postBuild = ''
     pushd man
diff --git a/pkgs/applications/graphics/freepv/default.nix b/pkgs/applications/graphics/freepv/default.nix
index e6d8a06a51930..0bd3421f1b10f 100644
--- a/pkgs/applications/graphics/freepv/default.nix
+++ b/pkgs/applications/graphics/freepv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libjpeg, mesa, freeglut, zlib, cmake, libX11, libxml2, libpng,
+{ stdenv, fetchurl, libjpeg, libGLU_combined, freeglut, zlib, cmake, libX11, libxml2, libpng,
   libXxf86vm }:
 
 stdenv.mkDerivation {
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "1w19abqjn64w47m35alg7bcdl1p97nf11zn64cp4p0dydihmhv56";
   };
 
-  buildInputs = [ libjpeg mesa freeglut zlib cmake libX11 libxml2 libpng
+  buildInputs = [ libjpeg libGLU_combined freeglut zlib cmake libX11 libxml2 libpng
     libXxf86vm ];
 
   postPatch = ''
diff --git a/pkgs/applications/graphics/gocr/default.nix b/pkgs/applications/graphics/gocr/default.nix
index 6fe37d605ae12..98a32ad189954 100644
--- a/pkgs/applications/graphics/gocr/default.nix
+++ b/pkgs/applications/graphics/gocr/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, tk }:
 
 stdenv.mkDerivation rec {
-  name = "gocr-0.50";
+  name = "gocr-0.51";
 
   src = fetchurl {
     url = "http://www-e.uni-magdeburg.de/jschulen/ocr/${name}.tar.gz";
-    sha256 = "1dgmcpapy7h68d53q2c5d0bpgzgfb2nw2blndnx9qhc7z12149mw";
+    sha256 = "14i6zi6q11h6d0qds2cpvgvhbxk5xaa027h8cd0wy1zblh7sxckf";
   };
 
   buildFlags = [ "all" "libs" ];
diff --git a/pkgs/applications/graphics/hugin/default.nix b/pkgs/applications/graphics/hugin/default.nix
index 50440ad8e42b0..8107ed8aa4497 100644
--- a/pkgs/applications/graphics/hugin/default.nix
+++ b/pkgs/applications/graphics/hugin/default.nix
@@ -1,7 +1,7 @@
 { stdenv, cmake, fetchurl, gnumake, makeWrapper, pkgconfig
 , autopanosiftc, boost, cairo, enblend-enfuse, exiv2, fftw, flann, gettext
 , glew, ilmbase, lcms2, lensfun, libjpeg, libpng, libtiff, libX11, libXi
-, libXmu, mesa, openexr, panotools, perlPackages, sqlite, vigra, wxGTK, zlib
+, libXmu, libGLU_combined, openexr, panotools, perlPackages, sqlite, vigra, wxGTK, zlib
 }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     boost cairo exiv2 fftw flann gettext glew ilmbase lcms2 lensfun libjpeg
-    libpng libtiff libX11 libXi libXmu mesa openexr panotools sqlite vigra
+    libpng libtiff libX11 libXi libXmu libGLU_combined openexr panotools sqlite vigra
     wxGTK zlib
   ];
 
diff --git a/pkgs/applications/graphics/k3d/default.nix b/pkgs/applications/graphics/k3d/default.nix
index ce315ebc51209..eb59b6ff6d65d 100644
--- a/pkgs/applications/graphics/k3d/default.nix
+++ b/pkgs/applications/graphics/k3d/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchpatch, unzip, ftgl, glew, asciidoc
-, cmake, mesa, zlib, python, expat, libxml2, libsigcxx, libuuid, freetype
+, cmake, libGLU_combined, zlib, python, expat, libxml2, libsigcxx, libuuid, freetype
 , libpng, boost, doxygen, cairomm, pkgconfig, imagemagick, libjpeg, libtiff
 , gettext, intltool, perl, gtkmm2, glibmm, gtkglext, pangox_compat, libXmu }:
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-     cmake mesa zlib python expat libxml2 libsigcxx libuuid freetype libpng
+     cmake libGLU_combined zlib python expat libxml2 libsigcxx libuuid freetype libpng
      boost doxygen cairomm pkgconfig imagemagick libjpeg libtiff
      gettext intltool perl unzip ftgl glew asciidoc
      gtkmm2 glibmm gtkglext pangox_compat libXmu
diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix
index 1e76743eccf4b..adb1ec29237e8 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, mesa_glu, qtbase, qtscript, qtxmlpatterns }:
+{ stdenv, fetchFromGitHub, libGLU, qtbase, qtscript, qtxmlpatterns }:
 
 let
   meshlabRev = "5700f5474c8f90696a8925e2a209a0a8ab506662";
@@ -53,7 +53,7 @@ in stdenv.mkDerivation {
     ln -s $out/opt/meshlab/meshlabserver $out/bin/meshlabserver
   '';
 
-  buildInputs = [ mesa_glu qtbase qtscript qtxmlpatterns ];
+  buildInputs = [ libGLU qtbase qtscript qtxmlpatterns ];
 
   meta = {
     description = "A system for processing and editing 3D triangular meshes.";
diff --git a/pkgs/applications/graphics/openimageio/default.nix b/pkgs/applications/graphics/openimageio/default.nix
index b4402c7d10433..a52515ed1a35a 100644
--- a/pkgs/applications/graphics/openimageio/default.nix
+++ b/pkgs/applications/graphics/openimageio/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "openimageio-${version}";
-  version = "1.7.17";
+  version = "1.8.8";
 
   src = fetchFromGitHub {
     owner = "OpenImageIO";
     repo = "oiio";
     rev = "Release-${version}";
-    sha256 = "0vx2pndgyfbnziwn36aylvq4jd889dvibzhw9ajzkm378l43lly9";
+    sha256 = "1jn4ph7giwxr65xxbm59i03wywnmxkqnpvqp0kcajl4k48vq3wkr";
   };
 
   outputs = [ "bin" "out" "dev" "doc" ];
diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix
index 06a1a946cdf63..33fddf6c8d012 100644
--- a/pkgs/applications/graphics/openscad/default.nix
+++ b/pkgs/applications/graphics/openscad/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4, qmake4Hook, bison, flex, eigen, boost, mesa, glew, opencsg, cgal
+{ stdenv, fetchurl, qt4, qmake4Hook, bison, flex, eigen, boost, libGLU_combined, glew, opencsg, cgal
 , mpfr, gmp, glib, pkgconfig, harfbuzz, qscintilla, gettext
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    qt4 qmake4Hook bison flex eigen boost mesa glew opencsg cgal mpfr gmp glib
+    qt4 qmake4Hook bison flex eigen boost libGLU_combined glew opencsg cgal mpfr gmp glib
     pkgconfig harfbuzz qscintilla gettext
   ];
 
diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix
index 8b532a7ad44f3..42b69e249267a 100644
--- a/pkgs/applications/graphics/paraview/default.nix
+++ b/pkgs/applications/graphics/paraview/default.nix
@@ -1,6 +1,6 @@
 {
 stdenv, fetchFromGitHub, cmake
-,qtbase, qttools, python, mesa
+,qtbase, qttools, python, libGLU_combined
 ,libXt, qtx11extras, qtxmlpatterns
 }:
 
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     python
-    mesa
+    libGLU_combined
     libXt
     qtbase
     qtx11extras
diff --git a/pkgs/applications/graphics/rapcad/default.nix b/pkgs/applications/graphics/rapcad/default.nix
index 451eaae79b2e4..c8327b9bca197 100644
--- a/pkgs/applications/graphics/rapcad/default.nix
+++ b/pkgs/applications/graphics/rapcad/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchurl, cgal, boost, gmp, mpfr, flex, bison, dxflib, readline
-, qtbase, qmake, mesa_glu
+, qtbase, qmake, libGLU
 }:
 
 stdenv.mkDerivation rec {
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ qmake ];
-  buildInputs = [ qtbase cgal boost gmp mpfr flex bison dxflib readline mesa_glu ];
+  buildInputs = [ qtbase cgal boost gmp mpfr flex bison dxflib readline libGLU ];
 
   meta = with stdenv.lib; {
     license = licenses.gpl3;
diff --git a/pkgs/applications/graphics/scantailor/advanced.nix b/pkgs/applications/graphics/scantailor/advanced.nix
new file mode 100644
index 0000000000000..8f26d5a9884af
--- /dev/null
+++ b/pkgs/applications/graphics/scantailor/advanced.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, makeDesktopItem
+, cmake, libjpeg, libpng, libtiff, boost
+, qtbase, qttools }:
+
+stdenv.mkDerivation rec {
+  name = "scantailor-advanced-${version}";
+  version = "1.0.12";
+
+  src = fetchFromGitHub {
+    owner = "4lex4";
+    repo = "scantailor-advanced";
+    rev = "v${version}";
+    sha256 = "0i80jzky7l8wdv0wqdx48x1q0wmj72hhm0050pd43q80pj5r78a0";
+  };
+
+  nativeBuildInputs = [ cmake qttools ];
+  buildInputs = [ libjpeg libpng libtiff boost qtbase ];
+
+  postInstall = ''
+    mkdir -p $out/share/icons/hicolor/scalable/apps
+    cp $src/resources/appicon.svg $out/share/icons/hicolor/scalable/apps/scantailor.svg
+
+    mkdir -p $out/share/applications
+    cp $desktopItem/share/applications/* $out/share/applications/
+    for entry in $out/share/applications/*.desktop; do
+      substituteAllInPlace $entry
+    done
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "scantailor-advanced";
+    exec = "scantailor %f";
+    icon = "scantailor";
+    comment = meta.description;
+    desktopName = "Scan Tailor Advanced";
+    genericName = "Scan Processing Software";
+    mimeType = "image/png;image/tif;image/jpeg;";
+    categories = "Graphics;";
+    startupNotify = "true";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/4lex4/scantailor-advanced;
+    description = "Interactive post-processing tool for scanned pages";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jfrankenau ];
+    platforms = platforms.gnu;
+  };
+}
diff --git a/pkgs/applications/graphics/seg3d/default.nix b/pkgs/applications/graphics/seg3d/default.nix
index e97278148f990..80987a8c74117 100644
--- a/pkgs/applications/graphics/seg3d/default.nix
+++ b/pkgs/applications/graphics/seg3d/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, cmake, wxGTK, itk, mesa, libXft, libXext, libXi, zlib, libXmu,
+{ fetchurl, stdenv, cmake, wxGTK, itk, libGLU_combined, libXft, libXext, libXi, zlib, libXmu,
 libuuid }:
 
 assert (stdenv ? glibc);
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
     exit 1
   '';
 
-  buildInputs = [ cmake wxGTK itk mesa libXft libXext libXi zlib libXmu libuuid ];
+  buildInputs = [ cmake wxGTK itk libGLU_combined libXft libXext libXi zlib libXmu libuuid ];
 
   meta = {
     broken = true;
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index 437044ba26759..bba6a189b8f0c 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -5,23 +5,23 @@
 
 # for dependencies see https://wiki.gnome.org/Apps/Shotwell/BuildingAndInstalling
 
-stdenv.mkDerivation rec {
-  version = "${major}.${minor}";
-  major = "0.27";
-  minor = "2";
-  name = "shotwell-${version}";
+let
+  pname = "shotwell";
+  version = "0.27.4";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/shotwell/${major}/${name}.tar.xz";
-    sha256 = "0bxc15gk2306fvxg6bg1s6c706yd89i66ldng0z102mcfi98warb";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0g2vphhpxrljpy9sryfsgaayix807i1i9plj9bay72dk0zphqab2";
   };
 
   nativeBuildInputs = [
-    meson ninja pkgconfig itstool gettext desktop-file-utils wrapGAppsHook
+    meson ninja vala pkgconfig itstool gettext desktop-file-utils wrapGAppsHook
   ];
 
   buildInputs = [
-    gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkitgtk
+    gtk3 libexif libgphoto2 libsoup libxml2 sqlite webkitgtk
     gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee
     libgudev gnome3.gexiv2 gnome3.gsettings-desktop-schemas
     libraw json-glib glib gdk_pixbuf librsvg gnome3.rest
@@ -32,6 +32,13 @@ stdenv.mkDerivation rec {
     glib-compile-schemas $out/share/glib-2.0/schemas
   '';
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Popular photo organizer for the GNOME desktop";
     homepage = https://wiki.gnome.org/Apps/Shotwell;
diff --git a/pkgs/applications/graphics/solvespace/default.nix b/pkgs/applications/graphics/solvespace/default.nix
index be1a799a9ecf3..08ce9c1fc2e47 100644
--- a/pkgs/applications/graphics/solvespace/default.nix
+++ b/pkgs/applications/graphics/solvespace/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, cmake, pkgconfig, zlib, libpng, cairo, freetype
-, json_c, fontconfig, gtkmm3, pangomm, glew, mesa_glu, xlibs, pcre
+, json_c, fontconfig, gtkmm3, pangomm, glew, libGLU, xlibs, pcre
 , wrapGAppsHook
 }:
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   ];
   buildInputs = [
     zlib libpng cairo freetype
-    json_c fontconfig gtkmm3 pangomm glew mesa_glu
+    json_c fontconfig gtkmm3 pangomm glew libGLU
     xlibs.libpthreadstubs xlibs.libXdmcp pcre
   ];
   enableParallelBuilding = true;
diff --git a/pkgs/applications/graphics/sxiv/default.nix b/pkgs/applications/graphics/sxiv/default.nix
index 68597a23ca650..7f118b6adc9a4 100644
--- a/pkgs/applications/graphics/sxiv/default.nix
+++ b/pkgs/applications/graphics/sxiv/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchFromGitHub, libX11, imlib2, giflib, libexif, conf ? null }:
+{ stdenv, fetchFromGitHub, libXft, imlib2, giflib, libexif, conf ? null }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "sxiv-${version}";
-  version = "1.3.2";
+  version = "24";
 
   src = fetchFromGitHub {
     owner = "muennich";
     repo = "sxiv";
     rev = "v${version}";
-    sha256 = "1f4gz1qjhb44bbb3q5fqk439zyipkwnr19zhg89yq2pgmzzzqr2h";
+    sha256 = "020n1bdxbzqncprh8a4rnjzc4frp335yxbqh5w6dr970f7n5qm8d";
   };
 
   postUnpack = ''
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   configFile = optionalString (conf!=null) (builtins.toFile "config.def.h" conf);
   preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
 
-  buildInputs = [ libX11 imlib2 giflib libexif ];
+  buildInputs = [ libXft imlib2 giflib libexif ];
 
   postInstall = ''
     mkdir -p $out/share/applications/
diff --git a/pkgs/applications/kde/okular.nix b/pkgs/applications/kde/okular.nix
index 64511aabf7c09..5f6f28c95b082 100644
--- a/pkgs/applications/kde/okular.nix
+++ b/pkgs/applications/kde/okular.nix
@@ -1,25 +1,27 @@
 {
-  mkDerivation, lib,
+  stdenv, mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  djvulibre, ebook_tools, kactivities, karchive, kbookmarks, kcompletion,
-  kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kdegraphics-mobipocket,
-  kiconthemes, kjs, khtml, kio, kparts, kpty, kwallet, kwindowsystem, libkexiv2,
-  libspectre, phonon, poppler, qca-qt5, qtdeclarative, qtsvg, threadweaver
+  chmlib ? null, discount, djvulibre, ebook_tools, kactivities, karchive, kbookmarks,
+  kcompletion, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
+  kdegraphics-mobipocket, kiconthemes, kjs, khtml, kio, kparts, kpty, kwallet,
+  kwindowsystem, libkexiv2, libspectre, libzip, phonon, poppler, qca-qt5,
+  qtdeclarative, qtsvg, threadweaver
 }:
 
 mkDerivation {
   name = "okular";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    djvulibre ebook_tools kactivities karchive kbookmarks kcompletion kconfig kconfigwidgets
-    kcoreaddons kdbusaddons kdegraphics-mobipocket kiconthemes kjs khtml kio
-    kparts kpty kwallet kwindowsystem libkexiv2 libspectre phonon poppler
-    qca-qt5 qtdeclarative qtsvg threadweaver
-  ];
-  meta = {
-    platforms = lib.platforms.linux;
+    discount djvulibre ebook_tools kactivities karchive kbookmarks
+    kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
+    kdegraphics-mobipocket kiconthemes kjs khtml kio kparts kpty kwallet
+    kwindowsystem libkexiv2 libspectre libzip phonon poppler qca-qt5
+    qtdeclarative qtsvg threadweaver
+  ] ++ lib.optional (!stdenv.isAarch64) chmlib;
+  meta = with lib; {
     homepage = http://www.kde.org;
-    license = with lib.licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
-    maintainers = [ lib.maintainers.ttuegel ];
+    license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
+    maintainers = with maintainers; [ ttuegel ];
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/airtame/default.nix b/pkgs/applications/misc/airtame/default.nix
index 56fc11a20e12b..18f47b7652f8a 100644
--- a/pkgs/applications/misc/airtame/default.nix
+++ b/pkgs/applications/misc/airtame/default.nix
@@ -44,13 +44,13 @@ let libPath = lib.makeLibraryPath [
 ];
 in stdenv.mkDerivation rec {
   pname = "airtame";
-  version = "3.0.1";
+  version = "3.1.1";
   name = "${pname}-${version}";
   longName = "${pname}-application";
 
   src = fetchurl {
     url = "https://downloads.airtame.com/application/ga/lin_x64/releases/${longName}-${version}.tar.gz";
-    sha256 = "1z5v9dwcvcmz190acm89kr4mngirha1v2jpvfzvisi0vidl2ba60";
+    sha256 = "1am1qz280r5g9i0vwwx5lr24fpdl5lazhpr2bhb34nlr5d8rsmzr";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/alacritty/default.nix b/pkgs/applications/misc/alacritty/default.nix
index 0f629aace4563..6907ce8776451 100644
--- a/pkgs/applications/misc/alacritty/default.nix
+++ b/pkgs/applications/misc/alacritty/default.nix
@@ -30,18 +30,18 @@ let
   ];
 in buildRustPackage rec {
   name = "alacritty-unstable-${version}";
-  version = "2018-01-31";
+  version = "2018-03-04";
 
   # At the moment we cannot handle git dependencies in buildRustPackage.
   # This fork only replaces rust-fontconfig/libfontconfig with a git submodules.
   src = fetchgit {
     url = https://github.com/Mic92/alacritty.git;
     rev = "rev-${version}";
-    sha256 = "0jc8haijd6f8r5fqiknrvqnwc9q4cp93852lr2p7zak7dv29v45p";
+    sha256 = "0pxnc6r75c7rwnsqc0idi4a60arpgchl1i8yppibhv0px5w11mwa";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "0023jpc6krilmp5wzbbwapxafsi6m1k13mvjh4zlvls1nyyhk808";
+  cargoSha256 = "0q2yy9cldng8znkmhysgrwi43z2x7a8nb1bnxpy9z170q8ds0m0j";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/applications/misc/apvlv/default.nix b/pkgs/applications/misc/apvlv/default.nix
index f1d84a9197243..eb35eb9cf73b9 100644
--- a/pkgs/applications/misc/apvlv/default.nix
+++ b/pkgs/applications/misc/apvlv/default.nix
@@ -36,6 +36,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/naihe2010/apvlv/commit/4c7a583e8431964def482e5471f02e6de8e62a7b.patch";
       sha256 = "1dszm120lwm90hcg5zmd4vr6pjyaxc84qmb7k0fr59mmb3qif62j";
     })
+    # fix build with gcc7
+    (fetchpatch {
+      url = "https://github.com/naihe2010/apvlv/commit/a3a895772a27d76dab0c37643f0f4c73f9970e62.patch";
+      sha256 = "1fpc7wr1ajilvwi5gjsy5g9jcx4bl03gp5dmajg90ljqbhwz2bfi";
+    })
   ];
 
   installPhase = ''
@@ -58,7 +63,7 @@ stdenv.mkDerivation rec {
     '';
 
     license = licenses.lgpl2;
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     maintainers = [ maintainers.ardumont ];
   };
 
diff --git a/pkgs/applications/misc/bb/default.nix b/pkgs/applications/misc/bb/default.nix
index 3d04b53dcde76..0689843af6120 100644
--- a/pkgs/applications/misc/bb/default.nix
+++ b/pkgs/applications/misc/bb/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     description = "AA-lib demo";
     license     = licenses.gpl2;
     maintainers = [ maintainers.rnhmjoj ];
-    platforms   = platforms.unix;
+    platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index cfdc9077bb016..8133bf1c76341 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
 , ilmbase, libXi, libX11, libXext, libXrender
 , libjpeg, libpng, libsamplerate, libsndfile
-, libtiff, mesa, openal, opencolorio, openexr, openimageio, openjpeg_1, python
+, libtiff, libGLU_combined, openal, opencolorio, openexr, openimageio, openjpeg_1, python
 , zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd
 , jackaudioSupport ? false, libjack2
 , cudaSupport ? false, cudatoolkit
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ boost cmake ffmpeg gettext glew ilmbase
       libXi libX11 libXext libXrender
-      freetype libjpeg libpng libsamplerate libsndfile libtiff mesa openal
+      freetype libjpeg libpng libsamplerate libsndfile libtiff libGLU_combined openal
       opencolorio openexr openimageio openjpeg_1 python zlib fftw jemalloc
       (opensubdiv.override { inherit cudaSupport; })
     ]
diff --git a/pkgs/applications/misc/confclerk/default.nix b/pkgs/applications/misc/confclerk/default.nix
index de18a211c4500..7781f0df853aa 100644
--- a/pkgs/applications/misc/confclerk/default.nix
+++ b/pkgs/applications/misc/confclerk/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation {
     homepage = http://www.toastfreeware.priv.at/confclerk;
     license = stdenv.lib.licenses.gpl2;
     maintainers = with stdenv.lib.maintainers; [ ehmry ];
-    inherit (qt4.meta) platforms;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/cpp-ethereum/default.nix b/pkgs/applications/misc/cpp-ethereum/default.nix
index 150c900ba9fbb..857254c3cb032 100644
--- a/pkgs/applications/misc/cpp-ethereum/default.nix
+++ b/pkgs/applications/misc/cpp-ethereum/default.nix
@@ -13,7 +13,7 @@
 , miniupnpc
 , libmicrohttpd
 , gmp
-, mesa
+, libGLU_combined
 , extraCmakeFlags ? []
 }:
 stdenv.mkDerivation rec {
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     miniupnpc
     libmicrohttpd
     gmp
-    mesa
+    libGLU_combined
   ];
 
   dontStrip = true;
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index caf40ef5faf9b..5bb91c1a70fe6 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   name = "dbeaver-ce-${version}";
-  version = "4.3.3";
+  version = "5.0.0";
 
   desktopItem = makeDesktopItem {
     name = "dbeaver";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dbeaver.jkiss.org/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "063h2za2m33b4k9s756lwicxwszzsqr2sqr2gi4ai05dqkgkw951";
+    sha256 = "0n7l7ph002z8npn08vdn0ghgkipz14cr73i9c69s7wiq2d2baahv";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/misc/doomseeker/default.nix b/pkgs/applications/misc/doomseeker/default.nix
index 1393af67bf8c5..bd7fbe8631631 100644
--- a/pkgs/applications/misc/doomseeker/default.nix
+++ b/pkgs/applications/misc/doomseeker/default.nix
@@ -1,22 +1,23 @@
-{ stdenv, cmake, fetchurl, pkgconfig, qt4, zlib, bzip2 }:
+{ stdenv, cmake, fetchFromBitbucket, pkgconfig, qtbase, qttools, qtmultimedia, zlib, bzip2 }:
 
 stdenv.mkDerivation rec {
-  name = "doomseeker-1.1";
+  name = "doomseeker-${version}";
+  version = "2018-03-03";
 
-  src = fetchurl {
-    url = "http://doomseeker.drdteam.org/files/${name}_src.tar.bz2";
-    sha256 = "0nmq8s842z30ngzikrmfx0xpnk4klxdv37y26chs002rnj010r7h";
+  src = fetchFromBitbucket {
+    owner = "Doomseeker";
+    repo = "doomseeker";
+    rev = "072110a8fe0643c4a72461e7768560813bb0a62b";
+    sha256 = "1w4g5f7yifqk2d054dqrmy8qj4n5hxdan7n59845m1xh2f2r8i0p";
   };
 
-  buildInputs = [ qt4 zlib bzip2 ];
+  patches = [ ./fix_paths.patch ];
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ qtbase qtmultimedia zlib bzip2 ];
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake qttools pkgconfig ];
 
-  patchPhase = ''
-    substituteInPlace src/core/CMakeLists.txt --replace /usr/share/applications "$out"/share/applications
-  '';
+  enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     homepage = http://doomseeker.drdteam.org/;
diff --git a/pkgs/applications/misc/doomseeker/fix_paths.patch b/pkgs/applications/misc/doomseeker/fix_paths.patch
new file mode 100644
index 0000000000000..08654c2384cb3
--- /dev/null
+++ b/pkgs/applications/misc/doomseeker/fix_paths.patch
@@ -0,0 +1,40 @@
+diff -ru3 source-old/src/core/datapaths.cpp source-new/src/core/datapaths.cpp
+--- source-old/src/core/datapaths.cpp	1970-01-01 03:00:01.000000000 +0300
++++ source-new/src/core/datapaths.cpp	2018-03-04 00:10:25.247262567 +0300
+@@ -335,7 +335,7 @@
+ 	paths.append(workingDirectory());
+ 	paths.append("./");
+ #ifndef Q_OS_WIN32
+-	paths.append(INSTALL_PREFIX "/" INSTALL_LIBDIR "/doomseeker/");
++	paths.append(INSTALL_PREFIX "/lib/doomseeker/");
+ #endif
+ 	paths = uniquePaths(paths);
+ 	return Strings::combineManyPaths(paths, "engines/");
+diff -ru3 source-old/src/core/pathfinder/pathfinder.cpp source-new/src/core/pathfinder/pathfinder.cpp
+--- source-old/src/core/pathfinder/pathfinder.cpp	1970-01-01 03:00:01.000000000 +0300
++++ source-new/src/core/pathfinder/pathfinder.cpp	2018-03-04 00:09:34.862556976 +0300
+@@ -128,9 +128,7 @@
+ 		<< DataPaths::programFilesDirectory(DataPaths::x64)
+ 		<< DataPaths::programFilesDirectory(DataPaths::x86);
+ #else
+-	paths << "/usr/bin" << "/usr/local/bin" << "/usr/share/bin"
+-		<< "/usr/games/" << "/usr/local/games/"
+-		<< "/usr/share/games/" << gDefaultDataPaths->workingDirectory() << ".";
++	paths << gDefaultDataPaths->workingDirectory() << ".";
+ #endif
+ 	QStringList pathsCopy(paths);
+ 	foreach (const QString &path, pathsCopy)
+diff -ru3 source-old/src/core/pathfinder/wadpathfinder.cpp source-new/src/core/pathfinder/wadpathfinder.cpp
+--- source-old/src/core/pathfinder/wadpathfinder.cpp	1970-01-01 03:00:01.000000000 +0300
++++ source-new/src/core/pathfinder/wadpathfinder.cpp	2018-03-04 00:09:56.822865339 +0300
+@@ -84,10 +84,6 @@
+ 		QStringList defaultPaths()

+ 		{

+ 			QStringList paths;

+-			#ifdef Q_OS_UNIX

+-			paths << "/usr/local/share/games/doom/"

+-				<< "/usr/share/games/doom/";

+-			#endif

+ 			return paths;

+ 		}

+ };

diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index 40fc10a567311..47dfa30436f57 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -2,22 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   name = "electrum-${version}";
-  version = "3.0.6";
+  version = "3.1.0";
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "01dnqiazjl2avrmdiq68absjvcfv24446y759z2s9dwk8ywzjkrg";
+    sha256 = "1hc0ylkq89459wy3av42hp73p34pmh7grsa3qm8fb1k0qg17zy78";
   };
 
-  patches = [
-    # Trezor compat patch should be included in electrum > 3.0.6
-    (fetchpatch {
-      name = "trezor-compat.patch";
-      url = "https://patch-diff.githubusercontent.com/raw/spesmilo/electrum/pull/3621.patch";
-      sha256 = "1bk1r2ikhnvw1fpfh71y4za2lnskcbkv50k8ynjxi5slx2wrfpl0";
-    })
-  ];
-
   propagatedBuildInputs = with python3Packages; [
     dnspython
     ecdsa
diff --git a/pkgs/applications/misc/gmtp/default.nix b/pkgs/applications/misc/gmtp/default.nix
index 776a10b7e0c58..423eea914b954 100644
--- a/pkgs/applications/misc/gmtp/default.nix
+++ b/pkgs/applications/misc/gmtp/default.nix
@@ -2,14 +2,14 @@
 , gsettings-desktop-schemas, wrapGAppsHook
 }:
 
-let version = "1.3.10"; in
+let version = "1.3.11"; in
 
 stdenv.mkDerivation {
   name = "gmtp-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/gmtp/gMTP-${version}/gmtp-${version}.tar.gz";
-    sha256 = "b21b9a8e66ae7bb09fc70ac7e317a0e32aff3917371a7241dea73c41db1dd13b";
+    sha256 = "04q6byyq002fhzkc2rkkahwh5b6272xakaj4m3vwm8la8jf0r0ss";
   };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
diff --git a/pkgs/applications/misc/googleearth/default.nix b/pkgs/applications/misc/googleearth/default.nix
index 52903a1f80143..f8ba66c4197c2 100644
--- a/pkgs/applications/misc/googleearth/default.nix
+++ b/pkgs/applications/misc/googleearth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, glibc, mesa, freetype, glib, libSM, libICE, libXi, libXv
+{ stdenv, fetchurl, glibc, libGLU_combined, freetype, glib, libSM, libICE, libXi, libXv
 , libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11, qt4
 , zlib, fontconfig, dpkg }:
 
@@ -19,7 +19,7 @@ let
     libICE
     libXi
     libXv
-    mesa
+    libGLU_combined
     libXrender
     libXrandr
     libXfixes
diff --git a/pkgs/applications/misc/gramps/default.nix b/pkgs/applications/misc/gramps/default.nix
index ace91bfafffdf..9b8628d152704 100644
--- a/pkgs/applications/misc/gramps/default.nix
+++ b/pkgs/applications/misc/gramps/default.nix
@@ -7,7 +7,7 @@
 let
   inherit (pythonPackages) python buildPythonApplication;
 in buildPythonApplication rec {
-  version = "4.2.6";
+  version = "4.2.8";
   name = "gramps-${version}";
 
   buildInputs = [ intltool gtk3 ] 
@@ -22,7 +22,7 @@ in buildPythonApplication rec {
     owner = "gramps-project";
     repo = "gramps";
     rev = "v${version}";
-    sha256 = "0k0bx6msc2kvkg0nwa9v2mp3qy7lmnxjd97n6a1zdzlq8yzw29f1";
+    sha256 = "17y6rjvvcz7lwjck4f5nmhnn07i9k5vzk5dp1jk7j3ldxjagscsd";
   };
 
   pythonPath = with pythonPackages; [ bsddb3 PyICU pygobject3 pycairo ] ++ [ pango ];
diff --git a/pkgs/applications/misc/houdini/runtime.nix b/pkgs/applications/misc/houdini/runtime.nix
index b3ce98895e6f9..e58ff06b29cb8 100644
--- a/pkgs/applications/misc/houdini/runtime.nix
+++ b/pkgs/applications/misc/houdini/runtime.nix
@@ -1,11 +1,11 @@
-{ stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, mesa_glu, alsaLib, dbus, xkeyboardconfig, bc }:
+{ stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, libGLU, alsaLib, dbus, xkeyboardconfig, bc }:
 
 let
   ld_library_path = builtins.concatStringsSep ":" [
     "${stdenv.cc.cc.lib}/lib64"
     "/run/opengl-driver/lib"
     (stdenv.lib.makeLibraryPath [
-      mesa_glu
+      libGLU
       xorg.libXmu
       xorg.libXi
       xorg.libXext
diff --git a/pkgs/applications/misc/icesl/default.nix b/pkgs/applications/misc/icesl/default.nix
index d39d734dd7b9d..2295e15cc3d3c 100644
--- a/pkgs/applications/misc/icesl/default.nix
+++ b/pkgs/applications/misc/icesl/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, lib, fetchzip, patchelf, freeglut, libXmu, libXi, libX11, libICE, mesa, libSM, libXext, dialog, makeWrapper }:
+{ stdenv, lib, fetchzip, patchelf, freeglut, libXmu, libXi, libX11, libICE, libGLU_combined, libSM, libXext, dialog, makeWrapper }:
 let
-  lpath = stdenv.lib.makeLibraryPath [ libXmu libXi libX11 freeglut libICE mesa libSM libXext ];
+  lpath = stdenv.lib.makeLibraryPath [ libXmu libXi libX11 freeglut libICE libGLU_combined libSM libXext ];
 in
 stdenv.mkDerivation rec {
   name = "iceSL-${version}";
diff --git a/pkgs/applications/misc/kdbplus/default.nix b/pkgs/applications/misc/kdbplus/default.nix
index bf1b77534ce68..ba048761367cd 100644
--- a/pkgs/applications/misc/kdbplus/default.nix
+++ b/pkgs/applications/misc/kdbplus/default.nix
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
     message = ''
       Nix can't download kdb+ for you automatically. Go to
       http://kx.com and download the free, 32-bit version for
-      Linux. Then run "nix-prefetch-url file:///linux.zip" in the
-      directory where you saved it. Note you need version 3.3.
+      Linux. Then run "nix-prefetch-url file://\$PWD/linux.zip" in
+      the directory where you saved it. Note you need version 3.3.
     '';
     name   = "linux.zip";
     sha256 = "5fd0837599e24f0f437a8314510888a86ab0787684120a8fcf592299800aa940";
diff --git a/pkgs/applications/misc/keepassx/cmake.patch b/pkgs/applications/misc/keepassx/cmake.patch
deleted file mode 100644
index 4ddf8b2e7e99a..0000000000000
--- a/pkgs/applications/misc/keepassx/cmake.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Fix "No known features for CXX compiler", see
-https://cmake.org/pipermail/cmake/2016-December/064733.html and the note at
-https://cmake.org/cmake/help/v3.10/command/cmake_minimum_required.html
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -20,10 +20,10 @@ if(NOT CMAKE_BUILD_TYPE)
-       FORCE)
- endif()
- 
--project(KeePassXC)
--
- cmake_minimum_required(VERSION 3.1.0)
- 
-+project(KeePassXC)
-+
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
- 
- # Support Visual Studio Code
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index 2f08fbd5fc7ae..4daa1938aba42 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -1,28 +1,53 @@
 { stdenv, fetchFromGitHub, cmake, makeWrapper, qttools
-, libgcrypt, zlib, libmicrohttpd, libXtst, qtbase, libgpgerror, glibcLocales, libyubikey, yubikey-personalization, libXi, qtx11extras
-, withKeePassHTTP ? true
+
+, curl
+, libargon2
+, libgcrypt
+, libsodium
+, zlib
+, libmicrohttpd
+, libXtst
+, qtbase
+, libgpgerror
+, glibcLocales
+, libyubikey
+, yubikey-personalization
+, libXi
+, qtx11extras
+
+, withKeePassBrowser ? true
+, withKeePassSSHAgent ? true
+, withKeePassHTTP ? false
+, withKeePassNetworking ? false
 }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "keepassxc-${version}";
-  version = "2.2.4";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "keepassxreboot";
     repo = "keepassxc";
     rev = "${version}";
-    sha256 = "0q913v2ka6p7jr7c4w9fq8aqh5v6nxqgcv9h7zllk5p0amsf8d80";
+    sha256 = "1zch1qbqgphhp2p2kvjlah8s337162m69yf4y00kcnfb3539ii5f";
   };
 
-  patches = [ ./cmake.patch ./darwin.patch ];
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-old-style-cast";
+
+  patches = [ ./darwin.patch ];
 
   cmakeFlags = [
+    "-DKEEPASSXC_BUILD_TYPE=Release"
     "-DWITH_GUI_TESTS=ON"
     "-DWITH_XC_AUTOTYPE=ON"
     "-DWITH_XC_YUBIKEY=ON"
-  ] ++ (optional withKeePassHTTP "-DWITH_XC_HTTP=ON");
+  ]
+  ++ (optional withKeePassBrowser "-DWITH_XC_BROWSER=ON")
+  ++ (optional withKeePassHTTP "-DWITH_XC_HTTP=ON")
+  ++ (optional withKeePassNetworking "-DWITH_XC_NETWORKING=ON")
+  ++ (optional withKeePassSSHAgent "-DWITH_XC_SSHAGENT=ON");
 
   doCheck = true;
   checkPhase = ''
@@ -32,7 +57,22 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake makeWrapper qttools ];
 
-  buildInputs = [ libgcrypt zlib qtbase libXtst libmicrohttpd libgpgerror glibcLocales libyubikey yubikey-personalization libXi qtx11extras ];
+  buildInputs = [
+    curl
+    glibcLocales
+    libXi
+    libXtst
+    libargon2
+    libgcrypt
+    libgpgerror
+    libmicrohttpd
+    libsodium
+    libyubikey
+    qtbase
+    qtx11extras
+    yubikey-personalization
+    zlib
+  ];
 
   postInstall = optionalString stdenv.isDarwin ''
     # Make it work without Qt in PATH.
diff --git a/pkgs/applications/misc/keepassx/darwin.patch b/pkgs/applications/misc/keepassx/darwin.patch
index 85fc49e363658..1edf0a573a316 100644
--- a/pkgs/applications/misc/keepassx/darwin.patch
+++ b/pkgs/applications/misc/keepassx/darwin.patch
@@ -2,7 +2,7 @@ Remove the use of macdeployqt to avoid copying dependencies and
 reduce installation size from 90 MB to 9 MB.
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -188,8 +188,8 @@ else()
+@@ -250,8 +250,8 @@ else()
    set(PROGNAME keepassxc)
  endif()
  
@@ -10,43 +10,43 @@ reduce installation size from 90 MB to 9 MB.
 -  set(CMAKE_INSTALL_PREFIX "/Applications")
 +if(APPLE AND WITH_APP_BUNDLE)
 +  set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications")
+   set(CMAKE_INSTALL_MANDIR "/usr/local/share/man")
  endif()
  
- if(MINGW)
-@@ -198,7 +198,7 @@ if(MINGW)
+@@ -262,7 +262,7 @@ if(MINGW)
    set(PLUGIN_INSTALL_DIR ".")
    set(DATA_INSTALL_DIR   "share")
  elseif(APPLE AND WITH_APP_BUNDLE)
 -  set(CLI_INSTALL_DIR    "/usr/local/bin")
 +  set(CLI_INSTALL_DIR    "../bin")
+   set(PROXY_INSTALL_DIR  "/usr/local/bin")
    set(BIN_INSTALL_DIR    ".")
    set(PLUGIN_INSTALL_DIR "${PROGNAME}.app/Contents/PlugIns")
-   set(DATA_INSTALL_DIR   "${PROGNAME}.app/Contents/Resources")
 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 5255186..0175983 100644
+index 69526967..38f7c5d4 100644
 --- a/src/CMakeLists.txt
 +++ b/src/CMakeLists.txt
-@@ -282,11 +282,6 @@ if(APPLE AND WITH_APP_BUNDLE)
-   if(NOT DEFINED QT_BINARY_DIR)
-     set(QT_BINARY_DIR "/usr/local/opt/qt5/bin" CACHE PATH "QT binary folder")
-   endif()
+@@ -319,11 +319,6 @@ if(APPLE AND WITH_APP_BUNDLE)
+   set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}")
+   include(CPack)
+ 
 -  add_custom_command(TARGET ${PROGNAME}
 -                     POST_BUILD
--                     COMMAND ${QT_BINARY_DIR}/macdeployqt ${PROGNAME}.app
+-                     COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app
 -                     WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
 -                     COMMENT "Deploying app bundle")
  endif()
  
- if(MINGW)
+ install(TARGETS ${PROGNAME}
 diff --git a/src/autotype/mac/CMakeLists.txt b/src/autotype/mac/CMakeLists.txt
-index ac93de0..03d502e 100644
+index 08c53278..b833b692 100644
 --- a/src/autotype/mac/CMakeLists.txt
 +++ b/src/autotype/mac/CMakeLists.txt
-@@ -16,7 +16,6 @@ if(WITH_APP_BUNDLE)
+@@ -14,7 +14,6 @@ if(WITH_APP_BUNDLE)
    add_custom_command(TARGET keepassx-autotype-cocoa
                       POST_BUILD
                       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/libkeepassx-autotype-cocoa.so ${PLUGIN_INSTALL_DIR}
--                     COMMAND ${QT_BINARY_DIR}/macdeployqt ${PROGNAME}.app -executable=${PLUGIN_INSTALL_DIR}/libkeepassx-autotype-cocoa.so -no-plugins
+-                     COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app -executable=${PLUGIN_INSTALL_DIR}/libkeepassx-autotype-cocoa.so -no-plugins
                       WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
    COMMENT "Deploying autotype plugin")
  else()
diff --git a/pkgs/applications/misc/kitty/default.nix b/pkgs/applications/misc/kitty/default.nix
index 9e955860bfc4c..17746563c569b 100644
--- a/pkgs/applications/misc/kitty/default.nix
+++ b/pkgs/applications/misc/kitty/default.nix
@@ -2,7 +2,7 @@
 
 with python3Packages;
 buildPythonApplication rec {
-  version = "0.7.1";
+  version = "0.8.0";
   name = "kitty-${version}";
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonApplication rec {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "v${version}";
-    sha256 = "0c02xy5psb7v7xfncz4bflrbinifpcm1yn8hvh0zaf7p4vr837p7";
+    sha256 = "12pj4js704r4f6idam3ljg7yllij9v158ayq6ym24zq18bv1nmbz";
   };
 
   buildInputs = [ fontconfig glfw ncurses libunistring harfbuzz libX11 libXrandr libXinerama libXcursor libxkbcommon libXi libXext ];
diff --git a/pkgs/applications/misc/llpp/default.nix b/pkgs/applications/misc/llpp/default.nix
index 837a221be946c..959ed6b11babf 100644
--- a/pkgs/applications/misc/llpp/default.nix
+++ b/pkgs/applications/misc/llpp/default.nix
@@ -6,12 +6,12 @@ assert lib.versionAtLeast (lib.getVersion ocaml) "4.02";
 let ocamlVersion = (builtins.parseDrvName (ocaml.name)).version;
 in stdenv.mkDerivation rec {
   name = "llpp-${version}";
-  version = "26b";
+  version = "2018-03-02";
 
   src = fetchgit {
     url = "git://repo.or.cz/llpp.git";
-    rev = "v${version}";
-    sha256 = "1w8g1fp1c20sl34cx20plhnbghbsx2fwgp4vyhd1x0za29lw62nj";
+    rev = "0ab1fbbf142b6df6d6bae782e3af2ec50f32dec9";
+    sha256 = "1h0hrmxwm7ripgp051788p8ad0q38dc9nvjx87mdwlkwk9qc0dis";
     fetchSubmodules = false;
   };
 
@@ -21,7 +21,6 @@ in stdenv.mkDerivation rec {
   dontStrip = true;
 
   configurePhase = ''
-    sed -i -e 's+fz_set_use_document_css (state.ctx, usedoccss);+/* fz_set_use_document_css (state.ctx, usedoccss); */+' link.c
     sed -i -e 's+ocamlc --version+ocamlc -version+' build.sh
     sed -i -e 's+-I \$srcdir/mupdf/include -I \$srcdir/mupdf/thirdparty/freetype/include+-I ${freetype.dev}/include+' build.sh
     sed -i -e 's+-lmupdf +-lfreetype -lz -lharfbuzz -ljbig2dec -lopenjp2 -ljpeg -lmupdf +' build.sh
diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix
index 5326f948d894a..1b510221d121f 100644
--- a/pkgs/applications/misc/mupdf/default.nix
+++ b/pkgs/applications/misc/mupdf/default.nix
@@ -2,7 +2,7 @@
 , jbig2dec, libjpeg , darwin
 , enableX11 ? true, libX11, libXext, libXi, libXrandr
 , enableCurl ? true, curl, openssl
-, enableGL ? true, freeglut, mesa_glu
+, enableGL ? true, freeglut, libGLU
 }:
 
 let
@@ -39,6 +39,48 @@ in stdenv.mkDerivation rec {
       url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=26527eef77b3e51c2258c8e40845bfbc015e405d;hp=ab98356f959c7a6e94b1ec10f78dd2c33ed3f3e7";
       sha256 = "1brcc029s5zmd6ya0d9qk3mh9qwx5g6vhsf1j8h879092sya5627";
     })
+    (fetchpatch {
+      # Bugs 698804/698810/698811, 698819: Keep PDF object numbers below limit.
+      name = "CVE-2017-17858.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=55c3f68d638ac1263a386e0aaa004bb6e8bde731";
+      sha256 = "1bf683d59i5009cv1hhmwmrp2rsb75cbf98qd44dk39cpvq8ydwv";
+    })
+    (fetchpatch {
+      # Bug 698825: Do not drop borrowed colorspaces.
+      name = "CVE-2018-1000051.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=321ba1de287016b0036bf4a56ce774ad11763384";
+      sha256 = "0jbcc9j565q5y305pi888qzlp83zww6nhkqbsmkk91gim958zikm";
+    })
+    (fetchpatch {
+      # Bug 698908 preprecondition: Add portable pseudo-random number generator based on the lrand48 family.
+      name = "CVE-2018-6187.0.1.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=2d5b4683e912d6e6e1f1e2ca5aa0297beb3e6807";
+      sha256 = "028bxinbjs5gg9myjr3vs366qxg9l2iyba2j3pxkxsh1851hj728";
+    })
+    (fetchpatch {
+      # Bug 698908 precondition: Fix "being able to search for redacted text" bug.
+      name = "CVE-2018-6187.0.2.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=25593f4f9df0c4a9b9adaa84aaa33fe2a89087f6";
+      sha256 = "195y69c3f8yqxcsa0bxrmxbdc3fx1dzvz8v66i56064mjj0mx04s";
+    })
+    (fetchpatch {
+      # Bug 698908: Resize object use and renumbering lists after repair.
+      name = "CVE-2018-6187.1.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=3e30fbb7bf5efd88df431e366492356e7eb969ec";
+      sha256 = "0wzbqj750h06q1wa6vxbpv5a5q9pfg0cxjdv88yggkrjb3vrkd9j";
+    })
+    (fetchpatch {
+      # Bug 698908: Plug PDF object leaks when decimating pages in pdfposter.
+      name = "CVE-2018-6187.2.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=a71e7c85a9f2313cde20d4479cd727a5f5518ed2";
+      sha256 = "1pcjkq8lg6l2m0186rl79lilg79crgdvz9hrmm3w60gy2gxkgksc";
+    })
+    (fetchpatch {
+      # Bug 698916: Indirect object numbers must be in range.
+      name = "CVE-2018-6192.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=5e411a99604ff6be5db9e273ee84737204113299";
+      sha256 = "134zc07fp0p1mwqa8xrkq3drg4crajzf1hjf4mdwmcy1jfj2pfhj";
+    })
   ]
 
   # Use shared libraries to decrease size
@@ -53,14 +95,14 @@ in stdenv.mkDerivation rec {
 
   makeFlags = [ "prefix=$(out)" ];
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut mesa_glu ]
+  buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU ]
                 ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
                 ++ lib.optionals enableCurl [ curl openssl ]
                 ++ lib.optionals enableGL (
                   if stdenv.isDarwin then
                     with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
                   else
-                    [ freeglut mesa_glu ])
+                    [ freeglut libGLU ])
                 ;
   outputs = [ "bin" "dev" "out" "man" "doc" ];
 
diff --git a/pkgs/applications/misc/navit/default.nix b/pkgs/applications/misc/navit/default.nix
index 51b29a5c04c44..92269e03e58d4 100644
--- a/pkgs/applications/misc/navit/default.nix
+++ b/pkgs/applications/misc/navit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchsvn, pkgconfig, gtk2, SDL, fontconfig, freetype, imlib2, SDL_image, mesa,
+{ stdenv, fetchsvn, pkgconfig, gtk2, SDL, fontconfig, freetype, imlib2, SDL_image, libGLU_combined,
 libXmu, freeglut, python, gettext, quesoglc, gd, postgresql, cmake, qt4, SDL_ttf, fribidi}:
 stdenv.mkDerivation rec {
   name = "navit-svn-3537";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  buildInputs = [ gtk2 SDL fontconfig freetype imlib2 SDL_image mesa
+  buildInputs = [ gtk2 SDL fontconfig freetype imlib2 SDL_image libGLU_combined
     libXmu freeglut python gettext quesoglc gd postgresql qt4 SDL_ttf fribidi ];
 
   nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/applications/misc/nixnote2/default.nix b/pkgs/applications/misc/nixnote2/default.nix
index 971da8ba04835..4ac152c266945 100644
--- a/pkgs/applications/misc/nixnote2/default.nix
+++ b/pkgs/applications/misc/nixnote2/default.nix
@@ -24,8 +24,14 @@ mkDerivation rec {
         --replace '#include <poppler-qt5.h>' '#include <poppler/qt5/poppler-qt5.h>'
     done
 
+    substituteInPlace help/about.html --replace '__VERSION__' '${version}'
+
     substituteInPlace nixnote.cpp --replace 'tidyProcess.start("tidy' 'tidyProcess.start("${html-tidy}/bin/tidy'
   '';
+  
+  postInstal = ''
+    cp images/windowIcon.png $out/share/pixmaps/nixnote2.png
+  '';
 
   meta = with stdenv.lib; {
     description = "An unofficial client of Evernote";
diff --git a/pkgs/applications/misc/openbrf/default.nix b/pkgs/applications/misc/openbrf/default.nix
index 4aebd3bb2a96b..b8b6e42d5cf54 100644
--- a/pkgs/applications/misc/openbrf/default.nix
+++ b/pkgs/applications/misc/openbrf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, mesa }:
+{ stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, libGLU_combined }:
 
 
 stdenv.mkDerivation {
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
     install -Dm644 reference.brf $out/share/openBrf/reference.brf
 
     patchelf  \
-      --set-rpath "${stdenv.lib.makeLibraryPath [ qtbase glew stdenv.cc.cc mesa ]}" \
+      --set-rpath "${stdenv.lib.makeLibraryPath [ qtbase glew stdenv.cc.cc libGLU_combined ]}" \
       $out/share/openBrf/openBrf
 
     mkdir -p "$out/bin"
diff --git a/pkgs/applications/misc/opencpn/default.nix b/pkgs/applications/misc/opencpn/default.nix
index 3420d6365b4bc..1c5fde9353aa0 100644
--- a/pkgs/applications/misc/opencpn/default.nix
+++ b/pkgs/applications/misc/opencpn/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "opencpn-${version}";
-  version = "4.2.0";
+  version = "4.8.2";
 
   src = fetchFromGitHub {
     owner = "OpenCPN";
     repo = "OpenCPN";
     rev = "v${version}";
-    sha256 = "1m6fp9lf9ki9444h0dq6bj0vr7d0pcxkbjv3j2v76p0ksk2l8kw3";
+    sha256 = "0r6a279xhhf4jrmjb2xi5arxb4xd5wvqbs4hyyildlgpr1x7bd09";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix
index 0c0de526e6019..c9f00d48aecca 100644
--- a/pkgs/applications/misc/orca/default.nix
+++ b/pkgs/applications/misc/orca/default.nix
@@ -9,15 +9,15 @@
 
 with lib;
 let
+  pname = "orca";
   version = "3.26.0";
-  majorVersion = builtins.concatStringsSep "." (take 2 (splitString "." version));
 in buildPythonApplication rec {
-  name = "orca-${version}";
+  name = "${pname}-${version}";
 
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/orca/${majorVersion}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0xk5k9cbswymma60nrfj00dl97wypx59c107fb1hwi75gm0i07a7";
   };
 
@@ -47,6 +47,12 @@ in buildPythonApplication rec {
     intltoolize
   '';
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = {
     homepage = https://wiki.gnome.org/Projects/Orca;
     description = "Screen reader";
diff --git a/pkgs/applications/misc/rtl_433/default.nix b/pkgs/applications/misc/rtl_433/default.nix
new file mode 100644
index 0000000000000..819c6c9391a98
--- /dev/null
+++ b/pkgs/applications/misc/rtl_433/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libusb1, rtl-sdr }:
+stdenv.mkDerivation rec {
+
+  version = "2018-02-23";
+  name = "rtl_433-${version}";
+
+  src = fetchFromGitHub {
+    owner = "merbanan";
+    repo = "rtl_433";
+    rev = "51d275c";
+    sha256 = "1j443wmws5xgc18s47bvw3pqljk747izypz52rmlrvs16v96cg2g";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  buildInputs = [ libusb1 rtl-sdr ];
+
+  meta = with stdenv.lib; {
+    description = "Decode traffic from devices that broadcast on 433.9 MHz";
+    homepage = https://github.com/merbanan/rtl_433;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ earldouglas ];
+    platforms = platforms.all;
+  };
+
+}
diff --git a/pkgs/applications/misc/slade/default.nix b/pkgs/applications/misc/slade/default.nix
index 712b5a7e750f9..fc6be074a079e 100644
--- a/pkgs/applications/misc/slade/default.nix
+++ b/pkgs/applications/misc/slade/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     description = "Doom editor";
     homepage = http://slade.mancubus.net/;
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/applications/misc/slade/git.nix b/pkgs/applications/misc/slade/git.nix
index 29e01da1b5b13..9ee30d347b0a8 100644
--- a/pkgs/applications/misc/slade/git.nix
+++ b/pkgs/applications/misc/slade/git.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
     description = "Doom editor";
     homepage = http://slade.mancubus.net/;
     license = licenses.gpl2Plus;
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = with maintainers; [ ertes ];
   };
 }
diff --git a/pkgs/applications/misc/slic3r-prusa3d/default.nix b/pkgs/applications/misc/slic3r-prusa3d/default.nix
index a4ac924cfae07..88cb42e3f5c82 100644
--- a/pkgs/applications/misc/slic3r-prusa3d/default.nix
+++ b/pkgs/applications/misc/slic3r-prusa3d/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, makeWrapper, which, cmake, perl, perlPackages,
-  boost, tbb, wxGTK30, pkgconfig, gtk3, fetchurl, gtk2, bash, mesa_glu,
+  boost, tbb, wxGTK30, pkgconfig, gtk3, fetchurl, gtk2, bash, libGLU,
   glew, eigen }:
 let
   AlienWxWidgets = perlPackages.buildPerlPackage rec {
@@ -27,7 +27,7 @@ let
       url = "mirror://cpan/authors/id/M/MB/MBARBON/${name}.tar.gz";
       sha256 = "1q4gvj4gdx4l8k4mkgiix24p9mdfy1miv7abidf0my3gy2gw5lka";
     };
-    propagatedBuildInputs = [ Wx perlPackages.OpenGL mesa_glu ];
+    propagatedBuildInputs = [ Wx perlPackages.OpenGL libGLU ];
     doCheck = false;
   };
 in
diff --git a/pkgs/applications/misc/valentina/default.nix b/pkgs/applications/misc/valentina/default.nix
new file mode 100644
index 0000000000000..f5c0e1fe1a3c3
--- /dev/null
+++ b/pkgs/applications/misc/valentina/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchhg
+, qmake, qttools
+, qtbase, qtsvg, qtxmlpatterns
+, poppler_utils
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "valentina-${version}";
+  version = "0.6.0.0a";
+
+  src = fetchhg {
+    url = "https://bitbucket.org/dismine/valentina";
+    rev = "ccd68eba533a82aeb2dd3702124899a37c23ded5";
+    sha256 = "1qmxm6pwwass2kpyg41nhkmyq0g74pyk517sq68dcgs6340ii7fs";
+  };
+
+  postPatch = ''
+    substituteInPlace common.pri \
+      --replace '$$[QT_INSTALL_HEADERS]/QtXmlPatterns' '${getDev qtxmlpatterns}/include/QtXmlPatterns' \
+      --replace '$$[QT_INSTALL_HEADERS]/QtSvg' '${getDev qtsvg}/include/QtSvg' \
+      --replace '$$[QT_INSTALL_HEADERS]/' '${getDev qtbase}/include/' \
+      --replace '$$[QT_INSTALL_HEADERS]' '${getDev qtbase}'
+    substituteInPlace src/app/tape/tape.pro \
+      --replace '$$[QT_INSTALL_BINS]/rcc' '${getDev qtbase}/bin/rcc'
+    substituteInPlace src/app/translations.pri \
+      --replace '$$[QT_INSTALL_BINS]/$$LRELEASE' '${getDev qttools}/bin/lrelease'
+    substituteInPlace src/app/valentina/mainwindowsnogui.cpp \
+      --replace 'define PDFTOPS "pdftops"' 'define PDFTOPS "${getBin poppler_utils}/bin/pdftops"'
+    substituteInPlace src/app/valentina/dialogs/dialogsavelayout.h \
+      --replace 'define PDFTOPS "pdftops"' 'define PDFTOPS "${getBin poppler_utils}/bin/pdftops"'
+  '';
+
+  nativeBuildInputs = [ qmake qttools ];
+
+  buildInputs = [ qtbase qtsvg qtxmlpatterns poppler_utils ];
+
+  configurePhase = ''
+    qmake PREFIX=/ Valentina.pro -r "CONFIG += noTests noRunPath no_ccache noDebugSymbols"
+  '';
+
+  installFlags = [ "INSTALL_ROOT=$(out)" ];
+
+  postInstall = ''
+    mv $out/usr/share $out/
+    rmdir $out/usr
+
+    mkdir -p $out/share/man/man1
+    gzip -9c dist/debian/valentina.1 > $out/share/man/man1/valentina.1.gz
+    gzip -9c dist/debian/tape.1 > $out/share/man/man1/tape.1.gz
+
+    mkdir -p $out/share/mime/packages
+    cp dist/debian/valentina.sharedmimeinfo $out/share/mime/packages/valentina.xml
+    cp dist/debian/valentina.mime $out/share/mime/packages/valentina
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "An open source sewing pattern drafting software";
+    homepage = https://valentinaproject.bitbucket.io/;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jfrankenau ];
+  };
+}
diff --git a/pkgs/applications/misc/yate/default.nix b/pkgs/applications/misc/yate/default.nix
index bd891ff8493f7..61c7b11f20848 100644
--- a/pkgs/applications/misc/yate/default.nix
+++ b/pkgs/applications/misc/yate/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   preConfigure =
     ''
       sed -i 's@,/dev/null@@' configure
+      patchShebangs configure
     '';
 
   # --unresolved-symbols=ignore-in-shared-libs makes ld no longer find --library=yate? Why?
@@ -35,7 +36,7 @@ stdenv.mkDerivation rec {
     # OpenH323 and PWlib (licensed under MPL).
     license = ["GPL" "MPL"];
     maintainers = [ lib.maintainers.marcweber ];
-    platforms = lib.platforms.linux;
+    platforms = [ "i686-linux" "x86_64-linux" ];
   };
 
 }
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index f5ec42974c74a..8193f47104d69 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -12,7 +12,7 @@
 , utillinux, alsaLib
 , bison, gperf
 , glib, gtk2, gtk3, dbus-glib
-, libXScrnSaver, libXcursor, libXtst, mesa
+, libXScrnSaver, libXcursor, libXtst, libGLU_combined
 , protobuf, speechd, libXdamage, cups
 , ffmpeg, harfbuzz, harfbuzz-icu, libxslt, libxml2
 
@@ -130,7 +130,7 @@ let
       utillinux alsaLib
       bison gperf kerberos
       glib gtk2 gtk3 dbus-glib
-      libXScrnSaver libXcursor libXtst mesa
+      libXScrnSaver libXcursor libXtst libGLU_combined
       pciutils protobuf speechd libXdamage
     ] ++ optional gnomeKeyringSupport libgnome-keyring3
       ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
@@ -140,27 +140,27 @@ let
     patches = [
       ./patches/nix_plugin_paths_52.patch
       # To enable ChromeCast, go to chrome://flags and set "Load Media Router Component Extension" to Enabled
-      # Fixes Chromecast: https://bugs.chromium.org/p/chromium/issues/detail?id=734325
-      ./patches/fix_network_api_crash.patch
+      ## Fixes Chromecast: https://bugs.chromium.org/p/chromium/issues/detail?id=734325
+      ## TODO investigate build error
+      #./patches/fix_network_api_crash.patch
+
       # As major versions are added, you can trawl the gentoo and arch repos at
       # https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/
       # https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/chromium
       # for updated patches and hints about build flags
 
     # (gentooPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000")
-    ]  ++ optionals (versionRange "64" "65") [
-      (gentooPatch "chromium-cups-r0.patch" "0hyjlfh062c8h54j4b27y4dq5yzd4w6mxzywk3s02yf6cj3cbkrl")
-      (gentooPatch "chromium-angle-r0.patch" "0izdrqwsyr48117dhvwdsk8c6dkrnq2njida1q4mb1lagvwbz7gc")
-      # missing ninja dep https://github.com/NixOS/nixpkgs/issues/35296#issuecomment-368666833
-      (githubPatch "b1e3cfd4f9bfe43a1e08c5670b51c8c80d3e6372" "17vih86rpsy282r8ikrf2q5gfjdwqzvyn8859i75xzvl8agyhbaa")
     ]  ++ optionals (versionRange "65" "66") [
-      #(gentooPatch "chromium-gcc-r0.patch" "127xdwabizn5gz8rf1qsw62i7m0b5bsfjqxv4kdbsnizmjanddf8")
-      #(gentooPatch "chromium-memcpy-r0.patch" "1d3vra59wjg2lva7ddv55ff6l57mk9k50llsplr0b7vxk0lh0ps5")
-      (gentooPatch "chromium-webrtc-r0.patch" "0qj5b4w9kav51ylpdf38vm5w7p2gx4qp8p45vrfggp7miicg9cmw")
-      #(gentooPatch "chromium-vulkan-r0.patch" "1wphsbc6kyck5qanbc4bv14iw2s67fvp1c0kwz29a2avzkz19s84")
-      #(gentooPatch "chromium-ffmpeg-r0.patch" "0j58g24j6n6vpy6v9wwv34x0dd43m52wg0xcrfkzp72km9wiahff")
+      (gentooPatch "chromium-stdint.patch" "037gjnc8h087g6dpxz53nqvzbpa9mq0z47h25vix9p62s9nhz2a8")
+      (gentooPatch "chromium-webrtc-r0.patch" "0wp4zivbv2wpgiwmiznbq1aw4w98mvwjvdy36cpfmnvr8yw430pd")
+      (gentooPatch "chromium-math.h-r0.patch" "0dlzbdj0lvp9qklgifsvgbn6p1ppxbl3hkwqqqfsw1d9jka9wy8x")
       #(gentooPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000")
-    ]  ++ optional enableWideVine ./patches/widevine.patch;
+    ] ++ optionals (versionRange "66" "67") [
+      (gentooPatch "chromium-stdint.patch" "037gjnc8h087g6dpxz53nqvzbpa9mq0z47h25vix9p62s9nhz2a8")
+      (gentooPatch "chromium-webrtc-r0.patch" "0wp4zivbv2wpgiwmiznbq1aw4w98mvwjvdy36cpfmnvr8yw430pd")
+      (gentooPatch "chromium-math.h-r0.patch" "0dlzbdj0lvp9qklgifsvgbn6p1ppxbl3hkwqqqfsw1d9jka9wy8x")
+      (gentooPatch "chromium-ffmpeg-r1.patch" "1k8agaqsvg0w0s6s5wh346ih02cc86vr0vwyshw2q9vafa0jvmq4")
+    ] ++ optional enableWideVine ./patches/widevine.patch;
 
     postPatch = ''
       # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 1f6eb7c178fb4..1458a1816569e 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -90,7 +90,7 @@ in stdenv.mkDerivation {
     mkdir -p "$out/bin"
 
     eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
-      ${commandLineArgs} \
+      --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \
       ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled}
 
     ed -v -s "$out/bin/chromium" << EOF
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index bca9e1c9a1c11..a714e5b47a134 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,18 +1,18 @@
 # This file is autogenerated from update.sh in the same directory.
 {
   beta = {
-    sha256 = "1kdv6r3cmy7lqynnk4ylkn81x91wkv2k3hqh41sb50h65s7h9b3y";
-    sha256bin64 = "18bralcc4frapglcfa5az3z8i74calrblf4zzavisvpkmnil7ypa";
-    version = "65.0.3325.88";
+    sha256 = "13n84ky5fr5by71jd9ivj3q7czd2gxrnvbj8msskb62zamjb8z80";
+    sha256bin64 = "16f2b9sxyljrmj2rcfzamf9ji01pkamnb6qv363lf67fshm37ky0";
+    version = "65.0.3325.124";
   };
   dev = {
-    sha256 = "1ykg5c3bayv6pwz74dglxcmbsalz6p04c3r0y15xkw2iyv5jjcam";
-    sha256bin64 = "1phw755ra3pckvhapm26amr6b3652k8f7sxanjyq118zkpga21w2";
-    version = "66.0.3350.0";
+    sha256 = "196k48qy97b7x25vv5gvqhnbkjb8vql42qi1h0x8y8sp216sdspg";
+    sha256bin64 = "13jq19jg1hy5w1bdf0wpv5qmr44161clsxjk01m0iysipkbldpn5";
+    version = "66.0.3355.0";
   };
   stable = {
-    sha256 = "0q0q1whspmzyln04gxhgl3jd2vrgb4imh8r9qw6c06i3b63j3l2z";
-    sha256bin64 = "1sq8mmdw32n00swm4q9q5q3vw6q5sp8yiaxag4rbzvxkfnr3vi4g";
-    version = "64.0.3282.186";
+    sha256 = "18w1mfsfd2yy7sf30d5wypv6mrdlsj3807xnab2gfi1kb8zjykyb";
+    sha256bin64 = "1g2i3cj6hgr4p0mfvv6xd8lvk217li7lrzgk4j6k563zpqhh863p";
+    version = "65.0.3325.146";
   };
 }
diff --git a/pkgs/applications/networking/browsers/conkeror/default.nix b/pkgs/applications/networking/browsers/conkeror/default.nix
index 4da4c74d1c37c..ded2b688815c3 100644
--- a/pkgs/applications/networking/browsers/conkeror/default.nix
+++ b/pkgs/applications/networking/browsers/conkeror/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchgit, unzip, firefox, makeWrapper }:
+{ stdenv, fetchgit, unzip, firefox-esr, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pkgname = "conkeror";
-  version = "1.0.3";
+  version = "1.0.4";
   name = "${pkgname}-${version}";
  
   src = fetchgit {
     url = git://repo.or.cz/conkeror.git;
     rev = "refs/tags/${version}";
-    sha256 = "06fhfk8km3gd1lc19543zn0c71zfbn8wsalinvm1dbgi724f52pd";
+    sha256 = "10c57wqybp9kcjpkb01wxq0h3vafcdb1g5kb4k8sb2zajg59afv8";
   };
 
   buildInputs = [ unzip makeWrapper ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     mkdir -p $out/libexec/conkeror
     cp -r * $out/libexec/conkeror
 
-    makeWrapper ${firefox}/bin/firefox $out/bin/conkeror \
+    makeWrapper ${firefox-esr}/bin/firefox $out/bin/conkeror \
       --add-flags "-app $out/libexec/conkeror/application.ini"
   '';
 
diff --git a/pkgs/applications/networking/browsers/falkon/default.nix b/pkgs/applications/networking/browsers/falkon/default.nix
index 90aec98319304..de56a0605b862 100644
--- a/pkgs/applications/networking/browsers/falkon/default.nix
+++ b/pkgs/applications/networking/browsers/falkon/default.nix
@@ -2,17 +2,14 @@
 , libpthreadstubs, libxcb, libXdmcp, qtsvg, qttools, qtwebengine, qtx11extras, kwallet, openssl }:
 
 stdenv.mkDerivation rec {
-  # KDE hasn't made a release of falkon yet so we just track git for now which is
-  # based on the most recent release of qupzilla
-  # This wip version is 2.1.99 so we add the .1
-  name = "falkon-${version}.1";
-  version = "2.1.99";
+  name = "falkon-${version}";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner  = "KDE";
     repo   = "falkon";
-    rev    = "dd3c570c41b4b3d0ad17202b78bf14cf1ac56495";
-    sha256 = "07d40cpckaprj74mr06k3mfriwb471bdmq60smls34y62ss55q9d";
+    rev    = "v${version}";
+    sha256 = "148idxvx32iwg18m3b7s22awcijnbrywz9r8gnfrq6gpwr0m2jna";
   };
 
   preConfigure = ''
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index c1a440009b8f8..3a6dd626ac69e 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, config, wrapGAppsHook
+{ lib, stdenv, fetchurl, config, wrapGAppsHook
 , alsaLib
 , atk
 , cairo
@@ -31,7 +31,7 @@
 , libgnome
 , libgnomeui
 , defaultIconTheme
-, mesa
+, libGLU_combined
 , nspr
 , nss
 , pango
@@ -87,7 +87,7 @@ stdenv.mkDerivation {
   libPath = stdenv.lib.makeLibraryPath
     [ stdenv.cc.cc
       alsaLib
-      alsaLib.dev
+      (lib.getDev alsaLib)
       atk
       cairo
       curl
@@ -118,13 +118,13 @@ stdenv.mkDerivation {
       libcanberra-gtk2
       libgnome
       libgnomeui
-      mesa
+      libGLU_combined
       nspr
       nss
       pango
       libheimdal
       libpulseaudio
-      libpulseaudio.dev
+      (lib.getDev libpulseaudio)
       systemd
     ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
       stdenv.cc.cc
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 0abf3753dc6d6..a70b554c850db 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -5,7 +5,7 @@
 { lib, stdenv, pkgconfig, pango, perl, python, zip, libIDL
 , libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
 , freetype, fontconfig, file, nspr, nss, libnotify
-, yasm, mesa, sqlite, unzip, makeWrapper
+, yasm, libGLU_combined, sqlite, unzip, makeWrapper
 , hunspell, libevent, libstartup_notification, libvpx
 , cairo, icu, libpng, jemalloc
 , autoconf213, which, gnused, cargo, rustc, llvmPackages
@@ -75,7 +75,7 @@ stdenv.mkDerivation (rec {
     gtk2 perl zip libIDL libjpeg zlib bzip2
     dbus dbus-glib pango freetype fontconfig xorg.libXi
     xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
-    nspr libnotify xorg.pixman yasm mesa
+    nspr libnotify xorg.pixman yasm libGLU_combined
     xorg.libXScrnSaver xorg.scrnsaverproto
     xorg.libXext xorg.xextproto sqlite unzip makeWrapper
     hunspell libevent libstartup_notification libvpx /* cairo */
diff --git a/pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch b/pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch
new file mode 100644
index 0000000000000..1c3c329489445
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch
@@ -0,0 +1,26 @@
+Yep, it's a "return code was ignored" bug.
+diff --git a/media/libcubeb/src/cubeb_pulse.c b/media/libcubeb/src/cubeb_pulse.c
+index aaaaaaaaaaa..bbbbbbbbbbb 100644
+--- a/media/libcubeb/src/cubeb_pulse.c
++++ b/media/libcubeb/src/cubeb_pulse.c
+@@ -473,6 +473,8 @@
+ static int
+ pulse_context_init(cubeb * ctx)
+ {
++  int r;
++
+   if (ctx->context) {
+     assert(ctx->error == 1);
+     pulse_context_destroy(ctx);
+@@ -486,9 +488,9 @@
+   WRAP(pa_context_set_state_callback)(ctx->context, context_state_callback, ctx);
+ 
+   WRAP(pa_threaded_mainloop_lock)(ctx->mainloop);
+-  WRAP(pa_context_connect)(ctx->context, NULL, 0, NULL);
++  r = WRAP(pa_context_connect)(ctx->context, NULL, 0, NULL);
+ 
+-  if (wait_until_context_ready(ctx) != 0) {
++  if (r < 0 || wait_until_context_ready(ctx) != 0) {
+     WRAP(pa_threaded_mainloop_unlock)(ctx->mainloop);
+     pulse_context_destroy(ctx);
+     ctx->context = NULL;
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 44f4b014d70b5..865bf4379d7e0 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -1,6 +1,18 @@
 { lib, callPackage, stdenv, overrideCC, gcc5, fetchurl, fetchFromGitHub, fetchpatch }:
 
-let common = opts: callPackage (import ./common.nix opts); in
+let
+
+  common = opts: callPackage (import ./common.nix opts);
+
+  nixpkgsPatches = [
+    ./env_var_for_system_dir.patch
+
+    # this one is actually an omnipresent bug
+    # https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
+    ./fix-pa-context-connect-retval.patch
+  ];
+
+in
 
 rec {
 
@@ -12,9 +24,8 @@ rec {
       sha512 = "ff748780492fc66b3e44c7e7641f16206e4c09514224c62d37efac2c59877bdf428a3670bfb50407166d7b505d4e2ea020626fd776b87f6abb6bc5d2e54c773f";
     };
 
-    patches = [
+    patches = nixpkgsPatches ++ [
       ./no-buildconfig.patch
-      ./env_var_for_system_dir.patch
 
       # https://bugzilla.mozilla.org/show_bug.cgi?id=1430274
       # Scheduled for firefox 59
@@ -49,8 +60,7 @@ rec {
       sha512 = "cf583df34272b7ff8841c3b093ca0819118f9c36d23c6f9b3135db298e84ca022934bcd189add6473922b199b47330c0ecf14c303ab4177c03dbf26e64476fa4";
     };
 
-    patches =
-      [ ./env_var_for_system_dir.patch ];
+    patches = nixpkgsPatches;
 
     meta = firefox.meta // {
       description = "A web browser built from Firefox Extended Support Release source tree";
@@ -93,15 +103,18 @@ rec {
         It will use your default Firefox profile if you're not careful
         even! Be careful!
 
-        It will clash with firefox binary if you install both. But its
-        not a problem since you should run browsers in separate
-        users/VMs anyway.
+        It will clash with firefox binary if you install both. But it
+        should not be a problem because you should run browsers in
+        separate users/VMs anyway.
 
         Create new profile by starting it as
 
         $ firefox -ProfileManager
 
         and then configure it to use your tor instance.
+
+        Or just use `tor-browser-bundle` package that packs this
+        `tor-browser` back into a sanely-built bundle.
       '';
       homepage = https://www.torproject.org/projects/torbrowser.html;
       platforms = lib.platforms.linux;
@@ -124,8 +137,7 @@ in rec {
       sha256 = "169mjkr0bp80yv9nzza7kay7y2k03lpnx71h4ybcv9ygxgzdgax5";
     };
 
-    patches =
-      [ ./env_var_for_system_dir.patch ];
+    patches = nixpkgsPatches;
   } // commonAttrs) {};
 
   tor-browser-7-5 = common (rec {
@@ -142,8 +154,7 @@ in rec {
       sha256 = "0llbk7skh1n7yj137gv7rnxfasxsnvfjp4ss7h1fbdnw19yba115";
     };
 
-    patches =
-      [ ./env_var_for_system_dir.patch ];
+    patches = nixpkgsPatches;
   } // commonAttrs) {};
 
   tor-browser = tor-browser-7-5;
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
index eaa05726f1c02..d2d26190ce058 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, patchelf, bash
+{ stdenv, fetchurl, patchelf, makeWrapper
 
 # Linked dynamic libraries.
 , glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr
@@ -72,7 +72,7 @@ in stdenv.mkDerivation rec {
   src = chromium.upstream-info.binary;
 
   buildInputs = [
-    patchelf
+    patchelf makeWrapper
 
     # needed for GSETTINGS_SCHEMAS_PATH
     gsettings-desktop-schemas glib gtk
@@ -120,14 +120,11 @@ in stdenv.mkDerivation rec {
       mv "$icon_file" "$logo_output_path/google-$appname.png"
     done
 
-    cat > $exe << EOF
-    #!${bash}/bin/sh
-    export LD_LIBRARY_PATH=$rpath\''${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}
-    export PATH=$binpath\''${PATH:+:\$PATH}
-    export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
-    $out/share/google/$appname/google-$appname ${commandLineArgs} "\$@"
-    EOF
-    chmod +x $exe
+    makeWrapper "$out/share/google/$appname/google-$appname" "$exe" \
+      --prefix LD_LIBRARY_PATH : "$rpath" \
+      --prefix PATH            : "$binpath" \
+      --prefix XDG_DATA_DIRS   : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
+      --add-flags ${escapeShellArg commandLineArgs}
 
     for elf in $out/share/google/$appname/{chrome,chrome-sandbox,nacl_helper}; do
       patchelf --set-rpath $rpath $elf
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
index e56066e156f5c..a320321ea171a 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, rpm, cpio, mesa_noglu, xorg, cairo
+{ stdenv, fetchurl, rpm, cpio, libGL, xorg, cairo
 , libpng, gtk2, glib, gdk_pixbuf, fontconfig, freetype, curl
 , dbus-glib, alsaLib, libpulseaudio, systemd, pango
 }:
@@ -10,7 +10,7 @@ let
   baseURL = "http://dl.google.com/linux/talkplugin/deb/pool/main/g/google-talkplugin";
 
   rpathPlugin = makeLibraryPath
-    [ mesa_noglu
+    [ libGL
       xorg.libXt
       xorg.libX11
       xorg.libXrender
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index c17e16f0d6950..58aa0f477ed81 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -3,21 +3,21 @@
 , dbus, dbus-glib, file, fontconfig, freetype
 , gstreamer, gst-plugins-base, gst_all_1
 , gtk2, hunspell, icu, libevent, libjpeg, libnotify
-, libstartup_notification, libvpx, makeWrapper, mesa
+, libstartup_notification, libvpx, makeWrapper, libGLU_combined
 , nspr, nss, pango, perl, python, libpulseaudio, sqlite
 , unzip, xlibs, which, yasm, zip, zlib
 }:
 
 stdenv.mkDerivation rec {
   name = "palemoon-${version}";
-  version = "27.7.2";
+  version = "27.8.0";
 
   src = fetchFromGitHub {
     name   = "palemoon-src";
     owner  = "MoonchildProductions";
     repo   = "Pale-Moon";
     rev    = version + "_Release";
-    sha256 = "19ki6gp6bhcvhjnclalviiyp93mqsgc22xjl0gm9x5y4sxdb5wlq";
+    sha256 = "0b08rzn50jg59rnjzx6dvsmj5dikfjipnmvhpkimvr38v8q7wdar";
   };
 
   desktopItem = makeDesktopItem {
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     alsaLib bzip2 cairo dbus dbus-glib file fontconfig freetype
     gst-plugins-base gstreamer gst_all_1.gst-plugins-base gtk2
     hunspell icu libevent libjpeg libnotify libstartup_notification
-    libvpx makeWrapper mesa nspr nss pango perl pkgconfig python
+    libvpx makeWrapper libGLU_combined nspr nss pango perl pkgconfig python
     libpulseaudio sqlite unzip which yasm zip zlib
   ] ++ (with xlibs; [
     libX11 libXext libXft libXi libXrender libXScrnSaver
diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/default.nix
index e39bc59709e5c..8486f0d530670 100644
--- a/pkgs/applications/networking/cluster/nomad/default.nix
+++ b/pkgs/applications/networking/cluster/nomad/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "nomad-${version}";
-  version = "0.6.2";
+  version = "0.7.1";
   rev = "v${version}";
 
   goPackagePath = "github.com/hashicorp/nomad";
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "hashicorp";
     repo = "nomad";
     inherit rev;
-    sha256 = "12bxqn7yldri5cwyxybd1lwg4c66mxd7g9syf54va5788c0hj8ij";
+    sha256 = "0hn80dqzxkwvk1zjk6px725mb2i3c06smqfj0yyjz96vgf7qbqy2";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/cluster/taktuk/default.nix b/pkgs/applications/networking/cluster/taktuk/default.nix
index 313e1af707b89..1510dc575cc9e 100644
--- a/pkgs/applications/networking/cluster/taktuk/default.nix
+++ b/pkgs/applications/networking/cluster/taktuk/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, perl , openssh}:
 
 stdenv.mkDerivation rec {
-  version = "3.7.5";
+  version = "3.7.7";
   name = "taktuk-${version}";
 
   buildInputs = [ perl ];
 
   src = fetchurl {
     url = "https://gforge.inria.fr/frs/download.php/33412/${name}.tar.gz";
-    sha256 = "d96ef6c63d77f32339066f143ef7e0bc00041e10724254bf15787746ad1f1070";
+    sha256 = "0w0h3ynlcxvq2nzm8hkj20g0805ww3vkw53g0qwj7wvp7p3gcvnr";
   };
 
   preBuild = ''
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index a31c7882693c4..899c73b9f7b1c 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub, terraform, makeWrapper }:
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, terraform-full, makeWrapper }:
 
 buildGoPackage rec {
   name = "terragrunt-${version}";
-  version = "0.14.0";
+  version = "0.14.2";
 
   goPackagePath = "github.com/gruntwork-io/terragrunt";
 
   src = fetchFromGitHub {
-    rev    = "v${version}";
     owner  = "gruntwork-io";
     repo   = "terragrunt";
-    sha256 = "1fz4ny7jmwr1xp68bmzlb6achird7jwbb6n6zim6c1w0qybxiqg9";
+    rev    = "v${version}";
+    sha256 = "0bnscp0sjnzhnqbm7m5ip6g2608yfvsnr60f03y2qqld8m9wmj32";
   };
 
   goDeps = ./deps.nix;
@@ -23,7 +23,7 @@ buildGoPackage rec {
 
   postInstall = ''
     wrapProgram $bin/bin/terragrunt \
-      --set TERRAGRUNT_TFPATH ${lib.getBin terraform}/bin/terraform
+      --set TERRAGRUNT_TFPATH ${lib.getBin terraform-full}/bin/terraform
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/cluster/terragrunt/deps.nix b/pkgs/applications/networking/cluster/terragrunt/deps.nix
index 30d6acb9afafe..68d2cb48048aa 100644
--- a/pkgs/applications/networking/cluster/terragrunt/deps.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/deps.nix
@@ -5,8 +5,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/aws/aws-sdk-go";
-      rev = "00cca3f093a8236a93fbbeeae7d28ad83811683c";
-      sha256 = "1x2frsin6d9drx9k65pv0r0l0asj16fzj815s2a9db2mxh8jycsp";
+      rev = "628f99e2cda77dd323992ede8b05961b41f4352f";
+      sha256 = "0dbr4czbjpnkira9bhackq01s9b13yvw5dscnxi3mr9adb89y9pm";
     };
   }
   {
@@ -23,8 +23,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/go-errors/errors";
-      rev = "3afebba5a48dbc89b574d890b6b34d9ee10b4785";
-      sha256 = "1vwgczqzd5i6bx12g9ln5cqfsbc7g0f8cz8yvcrasss2injpndi0";
+      rev = "a6af135bd4e28680facf08a3d206b454abc877a4";
+      sha256 = "0rznpknk19rxkr7li6dqs52c26pjazp69lh493l4ny4sxn5922lp";
     };
   }
   {
@@ -41,8 +41,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/hashicorp/go-getter";
-      rev = "285374cdfad63de2c43d7562f49ced6dde5a7ba0";
-      sha256 = "0xmwxfb0vm20ga1j1r3lavxm15vwqdkisdkshw1nia7byhwmb4xm";
+      rev = "64040d90d4ab861e7e833d689dc76a0f176d8dec";
+      sha256 = "0g25nx42z6ykd7jqzlrxf161h8lqrpxpddmbspl4w3a84wphhgms";
     };
   }
   {
@@ -95,8 +95,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/mitchellh/mapstructure";
-      rev = "b4575eea38cca1123ec2dc90c26529b5c5acfcff";
-      sha256 = "1x80f3kcb1wd2mdxks3wcsp26q9g7ahr8b18z1anl5igg6zl61kf";
+      rev = "00c29f56e2386353d58c599509e8dc3801b0d716";
+      sha256 = "1vw8fvhax0d567amgvxr7glcl12lvzg2sbzs007q5k5bbwn1szyb";
     };
   }
   {
@@ -104,8 +104,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/stretchr/testify";
-      rev = "12b6f73e6084dad08a7c6e575284b177ecafbc71";
-      sha256 = "01f80s0q64pw5drfgqwwk1wfwwkvd2lhbs56lhhkff4ni83k73fd";
+      rev = "b89eecf5ca5db6d3ba60b237ffe3df7bafb7662f";
+      sha256 = "0g946ii8qjaynvidj648z8izl91i6yhy0ir6g3qsrn136im3r8wk";
     };
   }
   {
@@ -122,8 +122,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/urfave/cli";
-      rev = "75104e932ac2ddb944a6ea19d9f9f26316ff1145";
-      sha256 = "13iagavgqq3sn9m3sck0chydwy5rcbhj0ylvc1169vs8q2m13yh9";
+      rev = "8e01ec4cd3e2d84ab2fe90d8210528ffbb06d8ff";
+      sha256 = "0cpr10n4ps3gcdbcink71ry9hzhdb5rrcysmylybs8h2lzxqgc1i";
     };
   }
 ]
diff --git a/pkgs/applications/networking/errbot/default.nix b/pkgs/applications/networking/errbot/default.nix
index 8664e38a8ed6e..feb6a0ab12658 100644
--- a/pkgs/applications/networking/errbot/default.nix
+++ b/pkgs/applications/networking/errbot/default.nix
@@ -15,7 +15,9 @@ pythonPackages.buildPythonApplication rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace dnspython3 dnspython
+      --replace dnspython3 dnspython \
+      --replace 'cryptography<2.1.0' cryptography \
+      --replace 'pyOpenSSL<17.3.0' pyOpenSSL
   '';
 
   # tests folder is not included in release
diff --git a/pkgs/applications/networking/feedreaders/newsbeuter/default.nix b/pkgs/applications/networking/feedreaders/newsbeuter/default.nix
deleted file mode 100644
index b681f74ed222a..0000000000000
--- a/pkgs/applications/networking/feedreaders/newsbeuter/default.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{ stdenv, fetchurl, sqlite, curl, pkgconfig, libxml2, stfl, json-c-0-11, ncurses
-, gettext, libiconv, makeWrapper, perl, fetchpatch }:
-
-stdenv.mkDerivation rec {
-  name = "newsbeuter-2.9";
-
-  src = fetchurl {
-    url = "http://www.newsbeuter.org/downloads/${name}.tar.gz";
-    sha256 = "1j1x0hgwxz11dckk81ncalgylj5y5fgw5bcmp9qb5hq9kc0vza3l";
-
-  };
-
-  buildInputs
-    # use gettext instead of libintlOrEmpty so we have access to the msgfmt
-    # command
-    = [ pkgconfig sqlite curl libxml2 stfl json-c-0-11 ncurses gettext perl libiconv ]
-      ++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
-
-  preBuild = ''
-    sed -i -e 110,114d config.sh
-    sed -i "1 s%^.*$%#!${perl}/bin/perl%" txt2h.pl
-    export LDFLAGS=-lncursesw
-  '';
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/akrennmair/newsbeuter/commit/cdacfbde9fe3ae2489fc96d35dfb7d263ab03f50.patch";
-      sha256 = "1lhvn63cqjpikwsr6zzndb1p5y140vvphlg85fazwx4xpzd856d9";
-    })
-    (fetchpatch {
-      url = "https://github.com/akrennmair/newsbeuter/commit/33577f842d9b74c119f3cebda95ef8652304db81.patch";
-      sha256 = "1kwhp6k14gk1hclgsr9w47qg7hs60p23zsl6f6vw13mczp2naqlb";
-    })
-    # https://github.com/akrennmair/newsbeuter/issues/598 / CVE-2017-14500
-    (fetchpatch {
-      url = "https://github.com/akrennmair/newsbeuter/commit/26f5a4350f3ab5507bb8727051c87bb04660f333.patch";
-      sha256 = "1jjxj4z3s4f1n8rfpwyd42a40gjnziykqas6a26s1lsdkklnbp6q";
-    })
-    # https://github.com/akrennmair/newsbeuter/issues/591 / CVE-2017-12904
-    (fetchpatch {
-      url = "https://github.com/akrennmair/newsbeuter/commit/d1460189f6f810ca9a3687af7bc43feb7f2af2d9.patch";
-      sha256 = "1a8k73ckziszsbdwdhcmkfvlmgy955gssg9v4sqvg20v91l5rmai";
-    })
-   ];
-
-  installFlags = [ "DESTDIR=$(out)" "prefix=" ];
-
-  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
-    for prog in $out/bin/*; do
-      wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${stfl}/lib"
-    done
-  '';
-
-  meta = {
-    homepage    = http://www.newsbeuter.org;
-    description = "An open-source RSS/Atom feed reader for text terminals";
-    maintainers = with stdenv.lib.maintainers; [ lovek323 ];
-    license     = stdenv.lib.licenses.mit;
-    platforms   = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/applications/networking/feedreaders/newsboat/default.nix b/pkgs/applications/networking/feedreaders/newsboat/default.nix
index e6a5737530bcb..8546c5b0a3e87 100644
--- a/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
   doCheck = true;
   checkTarget = "test";
 
+  NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare";
+
   postInstall = ''
     cp -r contrib $out
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/applications/networking/instant-messengers/baresip/default.nix b/pkgs/applications/networking/instant-messengers/baresip/default.nix
index 10f246957d7a8..225d622c69f9b 100644
--- a/pkgs/applications/networking/instant-messengers/baresip/default.nix
+++ b/pkgs/applications/networking/instant-messengers/baresip/default.nix
@@ -4,11 +4,11 @@
 , gsm, speex, portaudio, spandsp, libuuid, ccache, libvpx
 }:
 stdenv.mkDerivation rec {
-  version = "0.5.6";
+  version = "0.5.8";
   name = "baresip-${version}";
   src=fetchurl {
     url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
-    sha256 = "036hvl652zndqj3kmkv8z9pv7r4d1jxq8b7rg8jf0hh82vpyz38l";
+    sha256 = "0qk6y83mm7cz4j66d7zy72l7890k7ifqnqbqnjd3bjfn1yjivwfr";
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [zlib openssl libre librem
diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix
index 42c510495574c..2f5ea07156808 100644
--- a/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -22,7 +22,8 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "gajim-${version}";
-  version = "0.16.9";
+  majorVersion = "0.16";
+  version = "${majorVersion}.9";
 
   src = fetchurl {
     name = "${name}.tar.bz2";
@@ -31,6 +32,18 @@ stdenv.mkDerivation rec {
     sha256 = "121dh906zya9n7npyk7b5xama0z3ycy9jl7l5jm39pc86h1winh3";
   };
 
+  # Needed for Plugin Installer
+  release = fetchurl {
+    url = "https://gajim.org/downloads/${majorVersion}/gajim-${version}.tar.bz2";
+    sha256 = "0v08zdvpqaig0wxpxn1l8rsj3wr3fqvnagn8cnvch17vfqv9gcr1";
+  };
+
+  postUnpack = ''
+    tar -xaf $release
+    cp -r ${name}/plugins/plugin_installer gajim-${name}-*/plugins
+    rm -rf ${name}
+  '';
+
   patches = let
     # An attribute set of revisions to apply from the upstream repository.
     cherries = {
diff --git a/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
index 3caa75acb0702..e24ea5e6fb37d 100644
--- a/pkgs/applications/networking/instant-messengers/hipchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, xorg, freetype, fontconfig, openssl, glib, nss, nspr, expat
 , alsaLib, dbus, zlib, libxml2, libxslt, makeWrapper, xkeyboard_config, systemd
-, mesa_noglu, xcbutilkeysyms, xdg_utils, libtool }:
+, libGL, xcbutilkeysyms, xdg_utils, libtool }:
 
 let
 
@@ -37,7 +37,7 @@ let
     expat
     xcbutilkeysyms
     systemd
-    mesa_noglu
+    libGL
   ] + ":${stdenv.cc.cc.lib}/lib64";
 
   src =
diff --git a/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
index c4cb25dfe9875..1d03c2f47c89a 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -70,6 +70,6 @@ stdenv.mkDerivation rec {
     description = "Open Source Video Calls and Chat";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ khumba ndowens ];
+    maintainers = with maintainers; [ ndowens ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/qtox/default.nix b/pkgs/applications/networking/instant-messengers/qtox/default.nix
index c71eb698417ec..bbad5a6818072 100644
--- a/pkgs/applications/networking/instant-messengers/qtox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -3,7 +3,7 @@
   libpthreadstubs, libXdmcp, libXScrnSaver,
   qtbase, qtsvg, qttools, qttranslations,
   ffmpeg, filter-audio, libexif, libsodium, libopus,
-  libvpx, openal, opencv, pcre, qrencode, sqlcipher }:
+  libvpx, openal, pcre, qrencode, sqlcipher }:
 
 mkDerivation rec {
   name = "qtox-${version}";
@@ -21,7 +21,7 @@ mkDerivation rec {
     libpthreadstubs libXdmcp libXScrnSaver
     qtbase qtsvg qttranslations
     ffmpeg filter-audio libexif libopus libsodium
-    libvpx openal opencv pcre qrencode sqlcipher
+    libvpx openal pcre qrencode sqlcipher
   ];
 
   nativeBuildInputs = [ cmake pkgconfig qttools ];
diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-web.nix b/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
index ea88745481559..b47280d3b156b 100644
--- a/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
+++ b/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
@@ -1,5 +1,6 @@
-{ stdenv, fetchurl, fetchpatch }:
+{ lib, stdenv, fetchurl, fetchpatch, writeText, conf ? null }:
 
+let configFile = writeText "riot-config.json" conf; in
 stdenv.mkDerivation rec {
   name= "riot-web-${version}";
   version = "0.13.5";
@@ -12,6 +13,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/
     cp -R . $out/
+    ${lib.optionalString (conf != null) "ln -s ${configFile} $out/config.json"}
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index f79d708ec5d7c..c77173d490a10 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -40,13 +40,13 @@ in
   stdenv.mkDerivation rec {
     name = "signal-desktop-${version}";
 
-    version = "1.3.0";
+    version = "1.5.2";
 
     src =
       if stdenv.system == "x86_64-linux" then
         fetchurl {
           url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-          sha256 = "047l3yyqvzyi5969r0n9cwdarsxfbssj415ysh57w7vkdp01axsr";
+          sha256 = "1h4qa5i7axkmsai854yvlyh5r038mmjl4pj2rd27mz11if7yf067";
         }
       else
         throw "Signal for Desktop is not currently supported on ${stdenv.system}";
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 67b116274a2d9..74a477b537c31 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -4,6 +4,8 @@
 , dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
 }:
 
+with lib;
+
 mkDerivation rec {
   name = "telegram-desktop-${version}";
   version = "1.2.6";
@@ -45,7 +47,7 @@ mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  GYP_DEFINES = lib.concatStringsSep "," [
+  GYP_DEFINES = concatStringsSep "," [
     "TDESKTOP_DISABLE_CRASH_REPORTS"
     "TDESKTOP_DISABLE_AUTOUPDATE"
     "TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
@@ -57,14 +59,14 @@ mkDerivation rec {
     "-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
     "-I${minizip}/include/minizip"
     # See Telegram/gyp/qt.gypi
-    "-I${qtbase.dev}/mkspecs/linux-g++"
-  ] ++ lib.concatMap (x: [
-    "-I${qtbase.dev}/include/${x}"
-    "-I${qtbase.dev}/include/${x}/${qtbase.version}"
-    "-I${qtbase.dev}/include/${x}/${qtbase.version}/${x}"
-    "-I${libopus.dev}/include/opus"
-    "-I${alsaLib.dev}/include/alsa"
-    "-I${libpulseaudio.dev}/include/pulse"
+    "-I${getDev qtbase}/mkspecs/linux-g++"
+  ] ++ concatMap (x: [
+    "-I${getDev qtbase}/include/${x}"
+    "-I${getDev qtbase}/include/${x}/${qtbase.version}"
+    "-I${getDev qtbase}/include/${x}/${qtbase.version}/${x}"
+    "-I${getDev libopus}/include/opus"
+    "-I${getDev alsaLib}/include/alsa"
+    "-I${getDev libpulseaudio}/include/pulse"
   ]) [ "QtCore" "QtGui" "QtDBus" ];
   CPPFLAGS = NIX_CFLAGS_COMPILE;
 
@@ -121,10 +123,10 @@ mkDerivation rec {
       -e "s,'XDG-RUNTIME-DIR',\"\''${XDG_RUNTIME_DIR:-/run/user/\$(id --user)}\","
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Telegram Desktop messaging app";
     license = licenses.gpl3;
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" "i686-linux" ];
     homepage = https://desktop.telegram.org/;
     maintainers = with maintainers; [ abbradar garbas primeos ];
   };
diff --git a/pkgs/applications/networking/instant-messengers/viber/default.nix b/pkgs/applications/networking/instant-messengers/viber/default.nix
index d7e960d2329ee..3c164820019b6 100644
--- a/pkgs/applications/networking/instant-messengers/viber/default.nix
+++ b/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -1,6 +1,6 @@
 {fetchurl, stdenv, dpkg, makeWrapper,
  alsaLib, cups, curl, dbus, expat, fontconfig, freetype, glib, gst_all_1, harfbuzz, libcap,
- libpulseaudio, libxml2, libxslt, mesa, nspr, nss, openssl, systemd, wayland, xorg, zlib, ...
+ libpulseaudio, libxml2, libxslt, libGLU_combined, nspr, nss, openssl, systemd, wayland, xorg, zlib, ...
 }:
 
 assert stdenv.system == "x86_64-linux";
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
       libpulseaudio
       libxml2
       libxslt
-      mesa
+      libGLU_combined
       nspr
       nss
       openssl
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index b6a4e7944d3ce..e13f0001f02b8 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, system, makeWrapper,
   alsaLib, dbus, glib, gstreamer, fontconfig, freetype, libpulseaudio, libxml2,
-  libxslt, mesa, nspr, nss, sqlite, utillinux, zlib, xorg, udev, expat, libv4l }:
+  libxslt, libGLU_combined, nspr, nss, sqlite, utillinux, zlib, xorg, udev, expat, libv4l }:
 
 let
 
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index b2a26bb6f0bee..10daeeab8e13d 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -101,6 +101,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.claws-mail.org/;
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ khumba fpletz globin ];
+    maintainers = with maintainers; [ fpletz globin ];
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/mblaze/default.nix b/pkgs/applications/networking/mailreaders/mblaze/default.nix
index dac9475665f5f..ff4507991e404 100644
--- a/pkgs/applications/networking/mailreaders/mblaze/default.nix
+++ b/pkgs/applications/networking/mailreaders/mblaze/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "mblaze-${version}";
-  version = "0.3.1";
+  version = "0.3.2";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "chneukirchen";
     repo = "mblaze";
     rev = "v${version}";
-    sha256 = "1a4rqadq3dm6r11v7akng1qy88zpiq5qbqdryb8df3pxkv62nm1a";
+    sha256 = "0sgzcf7lpgdix7x4p6wp1jjv9h62rrkca6325c7a9j8r0dbg1fdg";
   };
 
   makeFlags = "PREFIX=$(out)";
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index 90fbe18f0bc57..03bfc711c4308 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "mutt-${version}";
-  version = "1.9.3";
+  version = "1.9.4";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz";
-    sha256 = "1qbngck1pq1jkpnbpcwcb2q2zqrkgp0nd68wwp57bprxjgb8a6j3";
+    sha256 = "1pxmw5yyizb9bqbai6lihv6zxmw0znjfb60zaldwh6hc6lkbzlgl";
   };
 
   patches = optional smimeSupport (fetchpatch {
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index 69a63bbb0549a..9dbc99cac7d0e 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -31,7 +31,7 @@
 , libgnome
 , libgnomeui
 , defaultIconTheme
-, mesa
+, libGLU_combined
 , nspr
 , nss
 , pango
@@ -111,7 +111,7 @@ stdenv.mkDerivation {
       libcanberra-gtk2
       libgnome
       libgnomeui
-      mesa
+      libGLU_combined
       nspr
       nss
       pango
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index 6368f1991e919..f59202920ccd4 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, pkgconfig, gtk2, pango, perl, python, zip, libIDL
 , libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
 , freetype, fontconfig, file, nspr, nss, libnotify
-, yasm, mesa, sqlite, unzip
+, yasm, libGLU_combined, sqlite, unzip
 , hunspell, libevent, libstartup_notification
 , cairo, gstreamer, gst-plugins-base, icu, libpng, jemalloc
 , autoconf213, which, m4
@@ -41,7 +41,7 @@ in stdenv.mkDerivation rec {
     [ gtk2 zip libIDL libjpeg zlib bzip2
       dbus dbus-glib pango freetype fontconfig xorg.libXi
       xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
-      nspr nss libnotify xorg.pixman yasm mesa
+      nspr nss libnotify xorg.pixman yasm libGLU_combined
       xorg.libXScrnSaver xorg.scrnsaverproto
       xorg.libXext xorg.xextproto sqlite unzip
       hunspell libevent libstartup_notification /* cairo */
@@ -140,7 +140,7 @@ in stdenv.mkDerivation rec {
           exec = "thunderbird %U";
           desktopName = "Thunderbird";
           icon = "$out/lib/thunderbird-${version}/chrome/icons/default/default256.png";
-          genericName = "Main Reader";
+          genericName = "Mail Reader";
           categories = "Application;Network";
           mimeType = stdenv.lib.concatStringsSep ";" [
             # Email
diff --git a/pkgs/applications/networking/p2p/soulseekqt/default.nix b/pkgs/applications/networking/p2p/soulseekqt/default.nix
new file mode 100644
index 0000000000000..315106ea85255
--- /dev/null
+++ b/pkgs/applications/networking/p2p/soulseekqt/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, fetchurl
+, dbus
+, expat, zlib, fontconfig
+, libpng, libX11, libxcb, libXau, libXdmcp, freetype, libbsd
+}:
+
+with stdenv.lib;
+let
+  libPath = makeLibraryPath
+    [ stdenv.cc.cc dbus libX11 zlib libX11 libxcb libXau libXdmcp freetype fontconfig libbsd ];
+
+  version = "2016-1-17";
+
+  mainbin = "SoulseekQt-" + (version) +"-"+ (if stdenv.is64bit then "64bit" else "32bit");
+  srcs = {
+    "i686-linux" = fetchurl {
+      url = "https://www.dropbox.com/s/kebk1b5ib1m3xxw/${mainbin}.tgz";
+      sha256 = "0r9rhnfslkgbw3l7fnc0rcfqjh58amgh5p33kwam0qvn1h1frnir";
+    };
+
+    "x86_64-linux" = fetchurl {
+      url = "https://www.dropbox.com/s/7qh902qv2sxyp6p/${mainbin}.tgz";
+      sha256 = "05l3smpdvw8xdhv4v8a28j0yi1kvzhrha2ck23g4bl7x9wkay4cc";
+    };
+  };
+
+in stdenv.mkDerivation rec {
+
+  name = "soulseekqt-${version}";
+  inherit version;
+  src = srcs."${stdenv.system}" or (throw "unsupported system: ${stdenv.system}");
+
+  sourceRoot = ".";
+  buildPhase = ":";   # nothing to build
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ${mainbin} $out/bin/soulseekqt
+  '';
+
+  fixupPhase = ''
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+             --set-rpath ${libPath} \
+             $out/bin/soulseekqt
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Official Qt SoulSeek client";
+    homepage = http://www.soulseekqt.net;
+    license = licenses.unfree;
+    maintainers = [ maintainers.genesis ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/python-modules/protocol/default.nix b/pkgs/applications/networking/protocol/default.nix
index f8ff177437c3f..305aceec62b51 100644
--- a/pkgs/development/python-modules/protocol/default.nix
+++ b/pkgs/applications/networking/protocol/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub }:
+{ stdenv, buildPythonApplication, fetchFromGitHub }:
 
-buildPythonPackage rec {
+buildPythonApplication rec {
   pname = "protocol";
   version = "20171226";
 
diff --git a/pkgs/applications/networking/remote/citrix-receiver/default.nix b/pkgs/applications/networking/remote/citrix-receiver/default.nix
index 00332754c264d..51a37d3152b7e 100644
--- a/pkgs/applications/networking/remote/citrix-receiver/default.nix
+++ b/pkgs/applications/networking/remote/citrix-receiver/default.nix
@@ -69,18 +69,29 @@ let
       x86hash   = "4c68723b0327cf6f12da824056fce2b7853c38e6163a48c9d222b93dd8da75b6";
       x64suffix = "10276927";
       x86suffix = "10276925";
-      homepage = https://www.citrix.com/downloads/citrix-receiver/legacy-receiver-for-linux/receiver-for-linux-137.html;
+      homepage  = https://www.citrix.com/downloads/citrix-receiver/legacy-receiver-for-linux/receiver-for-linux-137.html;
     };
 
     "13.8.0" = {
-      major = "13";
-      minor = "8";
-      patch = "0";
-      x64hash = "FDF5991CCD52B2B98289D7B2FB46D492D3E4032846D4AFA52CAA0F8AC0578931";
-      x86hash = "E0CFB43312BF79F753514B11F7B8DE4529823AE4C92D1B01E8A2C34F26AC57E7";
+      major     = "13";
+      minor     = "8";
+      patch     = "0";
+      x64hash   = "FDF5991CCD52B2B98289D7B2FB46D492D3E4032846D4AFA52CAA0F8AC0578931";
+      x86hash   = "E0CFB43312BF79F753514B11F7B8DE4529823AE4C92D1B01E8A2C34F26AC57E7";
       x64suffix = "10299729";
       x86suffix = "10299729";
-      homepage = https://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html;
+      homepage  = https://www.citrix.com/downloads/citrix-receiver/legacy-receiver-for-linux/receiver-for-linux-138.html;
+    };
+
+    "13.9.0" = {
+      major     = "13";
+      minor     = "9";
+      patch     = "0";
+      x64hash   = "00l18s7i9yky3ddabwljwsf7fx4cjgjn9hfd74j0x1v4gl078nl9";
+      x86hash   = "117fwynpxfnrw98933y8z8v2q4g6ycs1sngvpbki2qj09bjkwmag";
+      x64suffix = "102";
+      x86suffix = "102";
+      homepage  = https://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html;
     };
   };
 
diff --git a/pkgs/applications/networking/sniffers/wireshark/cmake.patch b/pkgs/applications/networking/sniffers/wireshark/cmake.patch
new file mode 100644
index 0000000000000..890fffedce031
--- /dev/null
+++ b/pkgs/applications/networking/sniffers/wireshark/cmake.patch
@@ -0,0 +1,19 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -19,6 +19,7 @@
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ #
+ 
++cmake_minimum_required(VERSION 3.7)
+ project(Wireshark C CXX)
+ 
+ # Updated by make-version.pl
+@@ -40,7 +41,7 @@
+ 	# Needed for GREATER_EQUAL operator
+ 	cmake_minimum_required(VERSION 3.7)
+ else()
+-	cmake_minimum_required(VERSION 2.8.8)
++	cmake_minimum_required(VERSION 3.7)
+ endif()
+ 
+ # Needs to be set after cmake_minimum_required or cmake_policy(VERSION)
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 682b7d311d711..424c1926f35a9 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, pkgconfig, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
 , gnutls, libgcrypt, libgpgerror, geoip, openssl, lua5, makeDesktopItem, python, libcap, glib
-, libssh, zlib, cmake, extra-cmake-modules, fetchpatch
+, libssh, zlib, cmake, extra-cmake-modules, fetchpatch, makeWrapper
 , withGtk ? false, gtk3 ? null, librsvg ? null, gsettings-desktop-schemas ? null, wrapGAppsHook ? null
 , withQt ? false, qt5 ? null
 , ApplicationServices, SystemConfiguration, gmp
@@ -12,7 +12,7 @@ assert withQt  -> !withGtk && qt5  != null;
 with stdenv.lib;
 
 let
-  version = "2.4.4";
+  version = "2.4.5";
   variant = if withGtk then "gtk" else if withQt then "qt" else "cli";
 
 in stdenv.mkDerivation {
@@ -20,12 +20,14 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "0n3g28hrhifnchlz4av0blq4ykm4zaxwwxbzdm9wsba27677b6h4";
+    sha256 = "1mvgy67rvnwj2kbc43s4il81jvz5ai0bx2j3j2js7x50zclyrcmk";
   };
 
   cmakeFlags = [
     "-DBUILD_wireshark_gtk=${if withGtk then "ON" else "OFF"}"
     "-DBUILD_wireshark=${if withQt then "ON" else "OFF"}"
+    "-DENABLE_QT5=${if withQt then "ON" else "OFF"}"
+    "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}"
   ];
 
   nativeBuildInputs = [
@@ -34,11 +36,12 @@ in stdenv.mkDerivation {
 
   buildInputs = [
     gettext pcre perl libpcap lua5 libssh openssl libgcrypt
-    libgpgerror gnutls geoip c-ares python glib zlib
+    libgpgerror gnutls geoip c-ares python glib zlib makeWrapper
   ] ++ optionals withQt  (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
     ++ optionals withGtk [ gtk3 librsvg gsettings-desktop-schemas ]
     ++ optionals stdenv.isLinux  [ libcap libnl ]
-    ++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ];
+    ++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ]
+    ++ optionals (withQt && stdenv.isDarwin) (with qt5; [ qtmacextras ]);
 
   patches = [ ./wireshark-lookup-dumpcap-in-path.patch ]
     # https://code.wireshark.org/review/#/c/23728/
@@ -46,9 +49,24 @@ in stdenv.mkDerivation {
       name = "fix-timeout.patch";
       url = "https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commitdiff_plain;h=8b5b843fcbc3e03e0fc45f3caf8cf5fc477e8613;hp=94af9724d140fd132896b650d10c4d060788e4f0";
       sha256 = "1g2dm7lwsnanwp68b9xr9swspx7hfj4v3z44sz3yrfmynygk8zlv";
-    });
+    })
+    ++ stdenv.lib.optional stdenv.isDarwin ./cmake.patch;
 
-  postInstall = optionalString (withQt || withGtk) ''
+  postInstall = if stdenv.isDarwin then ''
+    ${optionalString withQt ''
+      mkdir -p $out/Applications
+      mv $out/bin/Wireshark.app $out/Applications/Wireshark.app
+
+      for so in $out/Applications/Wireshark.app/Contents/PlugIns/wireshark/*.so; do
+        install_name_tool $so -change libwireshark.10.dylib $out/lib/libwireshark.10.dylib
+        install_name_tool $so -change libwiretap.7.dylib $out/lib/libwiretap.7.dylib
+        install_name_tool $so -change libwsutil.8.dylib $out/lib/libwsutil.8.dylib
+      done
+
+      wrapProgram $out/Applications/Wireshark.app/Contents/MacOS/Wireshark \
+        --set QT_PLUGIN_PATH ${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}
+    ''}
+  '' else optionalString (withQt || withGtk) ''
     ${optionalString withGtk ''
       install -Dm644 -t $out/share/applications ../wireshark-gtk.desktop
     ''}
@@ -75,7 +93,7 @@ in stdenv.mkDerivation {
       experts. It runs on UNIX, macOS and Windows.
     '';
 
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ bjornfor fpletz ];
   };
 }
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 64c0b31a2a4de..d79396f3b1d7c 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -3,14 +3,14 @@
 let
   common = { stname, target, patches ? [], postInstall ? "" }:
     stdenv.mkDerivation rec {
-      version = "0.14.44";
+      version = "0.14.45";
       name = "${stname}-${version}";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "1gdkx6lbzmdz2hqc9slbq41rwgkxmdisnj0iywx4mppmc2b4v6wh";
+        sha256 = "0hhldmvsbvkaj0x6af7c41zq5mbzcymv5xxmwvb4h5zbz49z9vzl";
       };
 
       inherit patches;
diff --git a/pkgs/applications/office/ib/tws/default.nix b/pkgs/applications/office/ib/tws/default.nix
index b8844391c7d9a..59ecb5a5c3b76 100644
--- a/pkgs/applications/office/ib/tws/default.nix
+++ b/pkgs/applications/office/ib/tws/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
       Download the TWS from
       https://download2.interactivebrokers.com/download/unixmacosx_latest.jar,
       rename the file to ${name}, and add it to the nix store with
-      "nix-prefetch-url file://${name}".
+      "nix-prefetch-url file://\$PWD/${name}".
     '';
     sha256 = "1a2jiwwnr5g3xfba1a89c257bdbnq4zglri8hz021vk7f6s4rlrf";
   };
diff --git a/pkgs/applications/office/impressive/default.nix b/pkgs/applications/office/impressive/default.nix
index 4f1bce4a2d24d..92feb6618c9e9 100644
--- a/pkgs/applications/office/impressive/default.nix
+++ b/pkgs/applications/office/impressive/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, python2, makeWrapper, lib
-, mesa, SDL, freeglut, ghostscript, pdftk, dejavu_fonts }:
+, libGLU_combined, SDL, freeglut, ghostscript, pdftk, dejavu_fonts }:
 
 let
   version = "0.12.0";
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index dc3b14dabe1d9..7da7a6bf7342e 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -4,7 +4,7 @@
 , bison, flex, zip, unzip, gtk3, gtk2, libmspack, getopt, file, cairo, which
 , icu, boost, jdk, ant, cups, xorg, libcmis
 , openssl, gperf, cppunit, GConf, ORBit2, poppler, utillinux
-, librsvg, gnome_vfs, mesa, bsh, CoinMP, libwps, libabw
+, librsvg, gnome_vfs, libGLU_combined, bsh, CoinMP, libwps, libabw
 , autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
 , libwpg, dbus-glib, glibc, qt4, clucene_core, libcdr, lcms, vigra
 , unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
@@ -255,7 +255,7 @@ in stdenv.mkDerivation rec {
       hunspell icu jdk lcms libcdr libexttextcat unixODBC libjpeg
       libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
       libXaw libXext libXi libXinerama libxml2 libxslt libXtst
-      libXdmcp libpthreadstubs mesa mythes gst_all_1.gstreamer
+      libXdmcp libpthreadstubs libGLU_combined mythes gst_all_1.gstreamer
       gst_all_1.gst-plugins-base glib
       neon nspr nss openldap openssl ORBit2 pam perl pkgconfig poppler
       python3 sablotron sane-backends unzip vigra which zip zlib
diff --git a/pkgs/applications/office/libreoffice/still.nix b/pkgs/applications/office/libreoffice/still.nix
index 57dd30280e847..8726d5130d755 100644
--- a/pkgs/applications/office/libreoffice/still.nix
+++ b/pkgs/applications/office/libreoffice/still.nix
@@ -4,7 +4,7 @@
 , bison, flex, zip, unzip, gtk3, gtk2, libmspack, getopt, file, cairo, which
 , icu, boost, jdk, ant, cups, xorg, libcmis
 , openssl, gperf, cppunit, GConf, ORBit2, poppler
-, librsvg, gnome_vfs, mesa, bsh, CoinMP, libwps, libabw
+, librsvg, gnome_vfs, libGLU_combined, bsh, CoinMP, libwps, libabw
 , autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
 , libwpg, dbus-glib, glibc, qt4, clucene_core, libcdr, lcms, vigra
 , unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
@@ -247,7 +247,7 @@ in stdenv.mkDerivation rec {
       hunspell icu jdk lcms libcdr libexttextcat unixODBC libjpeg
       libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
       libXaw libXext libXi libXinerama libxml2 libxslt libXtst
-      libXdmcp libpthreadstubs mesa mythes gst_all_1.gstreamer
+      libXdmcp libpthreadstubs libGLU_combined mythes gst_all_1.gstreamer
       gst_all_1.gst-plugins-base glib
       neon nspr nss openldap openssl ORBit2 pam perl pkgconfig poppler
       python3 sablotron sane-backends unzip vigra which zip zlib
diff --git a/pkgs/applications/science/astronomy/celestia/default.nix b/pkgs/applications/science/astronomy/celestia/default.nix
index fe6a3a41a236c..328253c53437f 100644
--- a/pkgs/applications/science/astronomy/celestia/default.nix
+++ b/pkgs/applications/science/astronomy/celestia/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, freeglut, gtk2, gtkglext, libjpeg_turbo, libtheora, libXmu
-, lua, mesa, pkgconfig, perl, autoreconfHook, glib, cairo
+, lua, libGLU_combined, pkgconfig, perl, autoreconfHook, glib, cairo
 , pango, gdk_pixbuf, atk
 }:
 
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ freeglut gtk2 gtkglext libjpeg_turbo libtheora libXmu mesa lua
+  buildInputs = [ freeglut gtk2 gtkglext libjpeg_turbo libtheora libXmu libGLU_combined lua
     perl autoreconfHook ];
 
   patchPhase = ''
diff --git a/pkgs/applications/science/astronomy/gpredict/default.nix b/pkgs/applications/science/astronomy/gpredict/default.nix
index 96e8e0d2d2507..9bacf6d90417f 100644
--- a/pkgs/applications/science/astronomy/gpredict/default.nix
+++ b/pkgs/applications/science/astronomy/gpredict/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, pkgconfig, intltool
 , gtk3, glib, curl, goocanvas2, gpsd
+, hamlib, wrapGAppsHook
 }:
 
 let
@@ -12,8 +13,8 @@ in stdenv.mkDerivation {
     sha256 = "0hwf97kng1zy8rxyglw04x89p0bg07zq30hgghm20yxiw2xc8ng7";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool ];
-  buildInputs = [ curl glib gtk3 goocanvas2 gpsd ];
+  nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+  buildInputs = [ curl glib gtk3 goocanvas2 gpsd hamlib ];
 
   meta = with stdenv.lib; {
     description = "Real time satellite tracking and orbit prediction";
@@ -27,6 +28,6 @@ in stdenv.mkDerivation {
     license = licenses.gpl2;
     platforms = platforms.linux;
     homepage = http://gpredict.oz9aec.net/;
-    maintainers = [ maintainers.markuskowa ];
+    maintainers = [ maintainers.markuskowa maintainers.cmcdragonkai ];
   };
 }
diff --git a/pkgs/applications/science/astronomy/gravit/default.nix b/pkgs/applications/science/astronomy/gravit/default.nix
index 190186db1810b..d572dd55b2b20 100644
--- a/pkgs/applications/science/astronomy/gravit/default.nix
+++ b/pkgs/applications/science/astronomy/gravit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, libSM, libICE, mesa, libpng, lua5, autoconf, automake }:
+{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, libSM, libICE, libGLU_combined, libpng, lua5, autoconf, automake }:
 
 stdenv.mkDerivation rec {
   name = "gravit-0.5.1";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "14vf7zj2bgrl96wsl3f1knsggc8h9624354ajzd72l46y09x5ky7";
   };
 
-  buildInputs = [ mesa SDL SDL_ttf SDL_image lua5 libpng libSM libICE ];
+  buildInputs = [ libGLU_combined SDL SDL_ttf SDL_image lua5 libpng libSM libICE ];
 
   nativeBuildInputs = [ autoconf automake ];
 
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
index 32eaa37375f8e..3c7af809b884a 100644
--- a/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchurl
-, cmake, freetype, libpng, mesa, gettext, openssl, perl, libiconv
+, cmake, freetype, libpng, libGLU_combined, gettext, openssl, perl, libiconv
 , qtscript, qtserialport, qttools
 , qtmultimedia, qtlocation
 }:
@@ -16,7 +16,7 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake perl ];
 
   buildInputs = [
-    freetype libpng mesa openssl libiconv qtscript qtserialport qttools
+    freetype libpng libGLU_combined openssl libiconv qtscript qtserialport qttools
     qtmultimedia qtlocation
   ];
 
diff --git a/pkgs/applications/science/chemistry/avogadro/default.nix b/pkgs/applications/science/chemistry/avogadro/default.nix
index 878dfde8f4e2d..78cda9d115ce6 100644
--- a/pkgs/applications/science/chemistry/avogadro/default.nix
+++ b/pkgs/applications/science/chemistry/avogadro/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, qt4, zlib, eigen, openbabel, pkgconfig, mesa, libX11, doxygen }:
+{ stdenv, fetchurl, cmake, qt4, zlib, eigen, openbabel, pkgconfig, libGLU_combined, libX11, doxygen }:
 
 stdenv.mkDerivation rec {
   name = "avogadro-1.1.1";
@@ -8,11 +8,11 @@ stdenv.mkDerivation rec {
     sha256 = "050ag9p4vg7jg8hj1wqfv7lsm6ar2isxjw2vw85s49vsl7g7nvzy";
   };
 
-  buildInputs = [ qt4 eigen zlib openbabel mesa libX11 ];
+  buildInputs = [ qt4 eigen zlib openbabel libGLU_combined libX11 ];
 
   nativeBuildInputs = [ cmake pkgconfig doxygen ];
 
-  NIX_CFLAGS_COMPILE = "-include ${mesa}/include/GL/glu.h";
+  NIX_CFLAGS_COMPILE = "-include ${libGLU_combined}/include/GL/glu.h";
 
   meta = {
     description = "Molecule editor and visualizer";
diff --git a/pkgs/applications/science/chemistry/molden/default.nix b/pkgs/applications/science/chemistry/molden/default.nix
index 98499ca009afd..1472b4b2af9e8 100644
--- a/pkgs/applications/science/chemistry/molden/default.nix
+++ b/pkgs/applications/science/chemistry/molden/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, which, gfortran, mesa_glu, xorg } :
+{ stdenv, fetchurl, which, gfortran, libGLU, xorg } :
 
 stdenv.mkDerivation rec {
   version = "5.7";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ which ];
-  buildInputs = [ gfortran mesa_glu xorg.libX11 xorg.libXmu ];
+  buildInputs = [ gfortran libGLU xorg.libX11 xorg.libXmu ];
 
   postPatch = ''
      substituteInPlace ./makefile --replace '-L/usr/X11R6/lib'  "" \
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index dc13f751b89fa..8e98bad55c3df 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchbzr, cmake, mesa, wxGTK, zlib, libX11, gettext, glew, cairo, curl, openssl, boost, pkgconfig, doxygen }:
+{ stdenv, fetchurl, fetchbzr, cmake, libGLU_combined, wxGTK, zlib, libX11, gettext, glew, cairo, curl, openssl, boost, pkgconfig, doxygen }:
 
 stdenv.mkDerivation rec {
   name = "kicad-${version}";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true; # often fails on Hydra: fatal error: pcb_plot_params_lexer.h: No such file or directory
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake mesa wxGTK zlib libX11 gettext glew cairo curl openssl boost doxygen ];
+  buildInputs = [ cmake libGLU_combined wxGTK zlib libX11 gettext glew cairo curl openssl boost doxygen ];
 
   # They say they only support installs to /usr or /usr/local,
   # so we have to handle this.
diff --git a/pkgs/applications/science/electronics/kicad/unstable.nix b/pkgs/applications/science/electronics/kicad/unstable.nix
index f954bf5b70ca2..46689dfc9745e 100644
--- a/pkgs/applications/science/electronics/kicad/unstable.nix
+++ b/pkgs/applications/science/electronics/kicad/unstable.nix
@@ -1,4 +1,4 @@
-{ wxGTK, lib, stdenv, fetchFromGitHub, cmake, mesa, zlib
+{ wxGTK, lib, stdenv, fetchFromGitHub, cmake, libGLU_combined, zlib
 , libX11, gettext, glew, glm, cairo, curl, openssl, boost, pkgconfig
 , doxygen, pcre, libpthreadstubs, libXdmcp
 
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake doxygen  pkgconfig ];
   buildInputs = [
-    mesa zlib libX11 wxGTK pcre libXdmcp gettext glew glm libpthreadstubs
+    libGLU_combined zlib libX11 wxGTK pcre libXdmcp gettext glew glm libpthreadstubs
     cairo curl openssl boost
   ] ++ optional (oceSupport) opencascade_oce
     ++ optional (ngspiceSupport) ngspice
diff --git a/pkgs/applications/science/electronics/librepcb/default.nix b/pkgs/applications/science/electronics/librepcb/default.nix
index f4418f535632c..ea0ebd52b3ebd 100644
--- a/pkgs/applications/science/electronics/librepcb/default.nix
+++ b/pkgs/applications/science/electronics/librepcb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, qtbase, qttools, qmake, mesa, openssl, zlib }:
+{ stdenv, fetchFromGitHub, qtbase, qttools, qmake, libGLU_combined, openssl, zlib }:
 
 stdenv.mkDerivation rec {
   name = "librepcb-${version}";
diff --git a/pkgs/applications/science/electronics/pcb/default.nix b/pkgs/applications/science/electronics/pcb/default.nix
index b540df816eef0..b9bbcd695f172 100644
--- a/pkgs/applications/science/electronics/pcb/default.nix
+++ b/pkgs/applications/science/electronics/pcb/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchurl, pkgconfig, gtk2, bison, intltool, flex, netpbm, imagemagick, dbus, xlibsWrapper, mesa, shared-mime-info, tcl, tk, gnome2, pangox_compat, gd, xorg }:
+{ stdenv, fetchurl, pkgconfig, gtk2, bison, intltool, flex
+, netpbm, imagemagick, dbus, xlibsWrapper, libGLU_combined
+, shared-mime-info, tcl, tk, gnome2, pangox_compat, gd, xorg
+}:
 
 stdenv.mkDerivation rec {
   name = "pcb-${version}";
@@ -10,7 +13,11 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk2 bison intltool flex netpbm imagemagick dbus xlibsWrapper mesa tcl shared-mime-info tk gnome2.gtkglext pangox_compat gd xorg.libXmu ];
+  buildInputs = [
+    gtk2 bison intltool flex netpbm imagemagick dbus xlibsWrapper
+    libGLU_combined tcl shared-mime-info tk
+    gnome2.gtkglext pangox_compat gd xorg.libXmu
+  ];
 
   configureFlags = ["--disable-update-desktop-database"];
 
diff --git a/pkgs/applications/science/logic/mcrl2/default.nix b/pkgs/applications/science/logic/mcrl2/default.nix
index c9016a5ee0ce0..c84f81740c79b 100644
--- a/pkgs/applications/science/logic/mcrl2/default.nix
+++ b/pkgs/applications/science/logic/mcrl2/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, xlibs, cmake, subversion, mesa, qt5, boost,
+{stdenv, fetchurl, xlibs, cmake, subversion, libGLU_combined, qt5, boost,
  python27, python27Packages}:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1c8h94ja7271ph61zrcgnjgblxppld6v22f7f900prjgzbcfy14m";
   };
 
-  buildInputs = [ cmake mesa qt5.qtbase boost ];
+  buildInputs = [ cmake libGLU_combined qt5.qtbase boost ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index e8feaa0acc441..682f9282e6bd4 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "symbiyosys-${version}";
-  version = "2018.02.04";
+  version = "2018.03.07";
 
   src = fetchFromGitHub {
     owner  = "yosyshq";
     repo   = "symbiyosys";
-    rev    = "236f6412c1c1afe95d752eaf907f66f19c343134";
-    sha256 = "06bsvvkn9yhz9jvgf7a6pf407ab9m5qrr42niww666z967xdw4p0";
+    rev    = "2c13fbefe67adb3a4adb8a6f283b198abb8a43a0";
+    sha256 = "0v60530w5y4yj66zcp7lwa82158iw26mil1gj41lzyi2p651kc1k";
   };
 
   buildInputs = [ python3 yosys ];
diff --git a/pkgs/applications/science/logic/tamarin-prover/default.nix b/pkgs/applications/science/logic/tamarin-prover/default.nix
index bed7eb65e3285..796b36c917359 100644
--- a/pkgs/applications/science/logic/tamarin-prover/default.nix
+++ b/pkgs/applications/science/logic/tamarin-prover/default.nix
@@ -4,12 +4,12 @@
 }:
 
 let
-  version = "1.3.0";
+  version = "1.3.1";
   src = fetchFromGitHub {
     owner  = "tamarin-prover";
     repo   = "tamarin-prover";
-    rev    = "8e823691ad3325bce8921617b013735523d74557";
-    sha256 = "0rr2syl9xhv17bwky5p39mhn0bypr24h8pld1xidxv87vy7vk7nr";
+    rev    = "120c7e706f3e1d4646b233faf2bc9936834ed9d3";
+    sha256 = "064blwjjwnkycwgsrdn1xkjya976wndpz9h5pjmgjqqirinc8c5x";
   };
 
   # tamarin has its own dependencies, but they're kept inside the repo,
diff --git a/pkgs/applications/science/logic/tlaplus/default.nix b/pkgs/applications/science/logic/tlaplus/default.nix
new file mode 100644
index 0000000000000..b1eb171b20b1a
--- /dev/null
+++ b/pkgs/applications/science/logic/tlaplus/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, jdk, jre, ant
+}:
+
+stdenv.mkDerivation rec {
+  name = "tlaplus-${version}";
+  version = "1.5.6";
+
+  src = fetchFromGitHub {
+    owner  = "tlaplus";
+    repo   = "tlaplus";
+    rev    = "refs/tags/v${version}";
+    sha256 = "0966mvgxamknj4hsp980qbxwda886w1dv309kn7isxn0420lfv4f";
+  };
+
+  buildInputs = [ makeWrapper jdk ant ];
+
+  buildPhase = "ant -f tlatools/customBuild.xml compile dist";
+  installPhase = ''
+    mkdir -p $out/share/java $out/bin
+    cp tlatools/dist/*.jar $out/share/java
+
+    makeWrapper ${jre}/bin/java $out/bin/tlc2 \
+      --add-flags "-cp $out/share/java/tla2tools.jar tlc2.TLC"
+    makeWrapper ${jre}/bin/java $out/bin/tla2sany \
+      --add-flags "-cp $out/share/java/tla2tools.jar tla2sany.SANY"
+    makeWrapper ${jre}/bin/java $out/bin/pcal \
+      --add-flags "-cp $out/share/java/tla2tools.jar pcal.trans"
+    makeWrapper ${jre}/bin/java $out/bin/tla2tex \
+      --add-flags "-cp $out/share/java/tla2tools.jar tla2tex.TLA"
+  '';
+
+  meta = {
+    description = "An algorithm specification language with model checking tools";
+    homepage    = http://lamport.azurewebsites.net/tla/tla.html;
+    license     = stdenv.lib.licenses.mit;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/applications/science/machine-learning/shogun/default.nix b/pkgs/applications/science/machine-learning/shogun/default.nix
index ae272284bcdc0..e33b55503bd62 100644
--- a/pkgs/applications/science/machine-learning/shogun/default.nix
+++ b/pkgs/applications/science/machine-learning/shogun/default.nix
@@ -14,7 +14,6 @@ assert pythonSupport -> pythonPackages != null;
 assert opencvSupport -> opencv != null;
 
 stdenv.mkDerivation rec {
-
   pname = "shogun";
   version = "6.0.0";
   name = pname + "-" + version;
@@ -27,11 +26,17 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  patches = fetchpatch {
-    name = "Fix-meta-example-parser-bug-in-parallel-builds.patch";
-    url = "https://github.com/shogun-toolbox/shogun/commit/ecd6a8f11ac52748e89d27c7fab7f43c1de39f05.patch";
-    sha256 = "1hrwwrj78sxhwcvgaz7n4kvh5y9snfcc4jf5xpgji5hjymnl311n";
-  };
+  patches = [
+    (fetchpatch {
+      name = "Fix-meta-example-parser-bug-in-parallel-builds.patch";
+      url = "https://github.com/shogun-toolbox/shogun/commit/ecd6a8f11ac52748e89d27c7fab7f43c1de39f05.patch";
+      sha256 = "1hrwwrj78sxhwcvgaz7n4kvh5y9snfcc4jf5xpgji5hjymnl311n";
+    })
+    (fetchpatch {
+      url = "https://github.com/awild82/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch";
+      sha256 = "158hqv4xzw648pmjbwrhxjp7qcppqa7kvriif87gn3zdn711c49s";
+    })
+  ];
 
   CCACHE_DIR=".ccache";
 
@@ -53,5 +58,4 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ edwtjo ];
   };
-
 }
diff --git a/pkgs/applications/science/math/bcal/default.nix b/pkgs/applications/science/math/bcal/default.nix
index baede83f65144..9a0a084a1f02a 100644
--- a/pkgs/applications/science/math/bcal/default.nix
+++ b/pkgs/applications/science/math/bcal/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ python3Packages.pytest ];
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
   checkPhase = ''
     python3 -m pytest test.py
   '';
diff --git a/pkgs/applications/science/math/gfan/default.nix b/pkgs/applications/science/math/gfan/default.nix
index 9a9a1ff762f19..65d551f39a710 100644
--- a/pkgs/applications/science/math/gfan/default.nix
+++ b/pkgs/applications/science/math/gfan/default.nix
@@ -2,11 +2,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "gfan";
-  version = "0.6";
+  version = "0.6.2";
 
   src = fetchurl {
     url = "http://home.math.au.dk/jensen/software/gfan/gfan${version}.tar.gz";
-    sha256 = "02d6dvzfwy0lnidfgf98052jfqwy285nfm1h5nnx7jbgic1nnpgz";
+    sha256 = "02pihqb1lb76a0xbfwjzs1cd6ay3ldfxsm8dvsbl6qs3vkjxax56";
   };
 
   makeFlags = ''PREFIX=$(out) CC=cc CXX=c++ cddnoprefix=1'';
diff --git a/pkgs/applications/science/math/giac/default.nix b/pkgs/applications/science/math/giac/default.nix
index b2b052bdb159a..e29ff24e250fe 100644
--- a/pkgs/applications/science/math/giac/default.nix
+++ b/pkgs/applications/science/math/giac/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, texlive, bison, flex
 , gmp, mpfr, pari, ntl, gsl, blas, mpfi, liblapackWithAtlas
 , readline, gettext, libpng, libao, gfortran, perl
-, enableGUI ? false, mesa ? null, xorg ? null, fltk ? null
+, enableGUI ? false, libGLU_combined ? null, xorg ? null, fltk ? null
 }:
 
-assert enableGUI -> mesa != null && xorg != null && fltk != null;
+assert enableGUI -> libGLU_combined != null && xorg != null && fltk != null;
 
 stdenv.mkDerivation rec {
   name = "${attr}-${version}";
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     # we want libgfortran.so.3 instead
     (stdenv.lib.getLib gfortran.cc)
   ] ++ stdenv.lib.optionals enableGUI [
-    mesa fltk xorg.libX11
+    libGLU_combined fltk xorg.libX11
   ];
 
   outputs = [ "out" ];
diff --git a/pkgs/applications/science/math/ginac/default.nix b/pkgs/applications/science/math/ginac/default.nix
index 1956ebdcb0f13..944460de9c754 100644
--- a/pkgs/applications/science/math/ginac/default.nix
+++ b/pkgs/applications/science/math/ginac/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, cln, pkgconfig, readline, gmp, python }:
 
 stdenv.mkDerivation rec {
-  name = "ginac-1.7.2";
+  name = "ginac-1.7.4";
 
   src = fetchurl {
     url    = "${meta.homepage}/${name}.tar.bz2";
-    sha256 = "1dyq47gc97jn1r5sy0klxs5b4lzhckyjqgsvwcs2a9ybqmhmpdr4";
+    sha256 = "1vvqv73yk9klbq0mz239zzw77rlp72qcvzci4j1v6rafvji1616n";
   };
 
   propagatedBuildInputs = [ cln ];
diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix
index 67dcfd8dc1de4..798141b6b4383 100644
--- a/pkgs/applications/science/math/glsurf/default.nix
+++ b/pkgs/applications/science/math/glsurf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ocamlPackages, mesa, freeglut
+{ stdenv, fetchurl, ocamlPackages, libGLU_combined, freeglut
 , mysql, mpfr, gmp, libtiff, libjpeg, libpng, giflib
 }:
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     sha256 = "0w8xxfnw2snflz8wdr2ca9f5g91w5vbyp1hwlx1v7vg83d4bwqs7";
   };
 
-  buildInputs = [ freeglut mesa mysql.connector-c mpfr gmp
+  buildInputs = [ freeglut libGLU_combined mysql.connector-c mpfr gmp
     libtiff libjpeg libpng giflib ]
   ++ (with ocamlPackages; [
     ocaml findlib ocaml_mysql lablgl camlimages_4_0 mlgmpidl
diff --git a/pkgs/applications/science/math/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index bb24ac9bd4990..33b458ba30a31 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -1,22 +1,22 @@
 { stdenv, fetchurl, cmake, blas, liblapack, gfortran, gmm, fltk, libjpeg
-, zlib, mesa, mesa_glu, xorg }:
+, zlib, libGLU_combined, libGLU, xorg }:
 
-let version = "3.0.5"; in
+let version = "3.0.6"; in
 
 stdenv.mkDerivation {
   name = "gmsh-${version}";
 
   src = fetchurl {
     url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "ae39ed81178d94b76990b8c89b69a5ded8910fd8f7426b800044d00373d12a93";
+    sha256 = "0ywqhr0zmdhn8dvi6l8z1vkfycyv67fdrz6b95mb39np832bq04p";
   };
 
   # The original CMakeLists tries to use some version of the Lapack lib
   # that is supposed to work without Fortran but didn't for me.
   patches = [ ./CMakeLists.txt.patch ];
 
-  buildInputs = [ cmake blas liblapack gfortran gmm fltk libjpeg zlib mesa
-    mesa_glu xorg.libXrender xorg.libXcursor xorg.libXfixes xorg.libXext
+  buildInputs = [ cmake blas liblapack gfortran gmm fltk libjpeg zlib libGLU_combined
+    libGLU xorg.libXrender xorg.libXcursor xorg.libXfixes xorg.libXext
     xorg.libXft xorg.libXinerama xorg.libX11 xorg.libSM xorg.libICE
   ];
 
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index 007cb68177e53..b74bcc3d63772 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -30,6 +30,7 @@
 , texinfo
 , hevea
 , buildDocs ? false
+, optimize ? false # optimize sage to the current system (obviously impure)
 }:
 
 stdenv.mkDerivation rec {
@@ -139,7 +140,6 @@ stdenv.mkDerivation rec {
   configureFlags = stdenv.lib.optionals(buildDocs) [ "--docdir=$(doc)" ];
   preConfigure = ''
     export SAGE_NUM_THREADS="$NIX_BUILD_CORES"
-    export SAGE_ATLAS_ARCH=fast
 
     export HOME=/tmp/sage-home
     export SAGE_ROOT="$PWD"
@@ -160,6 +160,9 @@ stdenv.mkDerivation rec {
     mkdir -p "$doc"
     export SAGE_DOC="$doc"
     export SAGE_DOCBUILD_OPTS="--no-pdf-links -k"
+  ''
+  + stdenv.lib.optionalString (!optimize) ''
+    export SAGE_FAT_BINARY=yes
   '';
 
   buildFlags = if (buildDocs) then "doc" else "build";
@@ -221,7 +224,7 @@ stdenv.mkDerivation rec {
       Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab.
     '';
     license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
+    platforms = ["x86_64-linux" "i686-linux"];
     maintainers = with stdenv.lib.maintainers; [ timokau ];
   };
 }
diff --git a/pkgs/applications/science/medicine/aliza/default.nix b/pkgs/applications/science/medicine/aliza/default.nix
index d8e8d49bb706a..ff25bc9749007 100644
--- a/pkgs/applications/science/medicine/aliza/default.nix
+++ b/pkgs/applications/science/medicine/aliza/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, rpmextract, makeWrapper, patchelf, qt4, zlib, libX11, libXt, libSM, libICE, libXext, mesa }:
+{ stdenv, fetchurl, rpmextract, makeWrapper, patchelf, qt4, zlib, libX11, libXt, libSM, libICE, libXext, libGLU_combined }:
 
 with stdenv.lib;
 stdenv.mkDerivation {
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   '';
 
   postInstall = let
-    libs = stdenv.lib.makeLibraryPath [ qt4 zlib stdenv.cc.cc libSM libICE libX11 libXext libXt mesa ];
+    libs = stdenv.lib.makeLibraryPath [ qt4 zlib stdenv.cc.cc libSM libICE libX11 libXext libXt libGLU_combined ];
   in ''
     ${patchelf}/bin/patchelf \
       --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix
index 716d6d9687c59..a1b8769617c9f 100644
--- a/pkgs/applications/science/misc/boinc/default.nix
+++ b/pkgs/applications/science/misc/boinc/default.nix
@@ -1,5 +1,5 @@
 { fetchFromGitHub, stdenv, autoconf, automake, pkgconfig, m4, curl,
-mesa, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK, xcbutil,
+libGLU_combined, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK, xcbutil,
 sqlite, gtk2, patchelf, libXScrnSaver, libnotify, libX11, libxcb }:
 
 let
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ libtool automake autoconf m4 pkgconfig ];
 
   buildInputs = [
-    curl mesa libXmu libXi freeglut libjpeg wxGTK sqlite gtk2 libXScrnSaver
+    curl libGLU_combined libXmu libXi freeglut libjpeg wxGTK sqlite gtk2 libXScrnSaver
     libnotify patchelf libX11 libxcb xcbutil
   ];
 
diff --git a/pkgs/applications/science/misc/golly/beta.nix b/pkgs/applications/science/misc/golly/beta.nix
index 5fe72e44842d2..5b210fa4bf6bf 100644
--- a/pkgs/applications/science/misc/golly/beta.nix
+++ b/pkgs/applications/science/misc/golly/beta.nix
@@ -1,5 +1,5 @@
 {stdenv, fetchurl, fetchgit
-, wxGTK, perl, python2, zlib, mesa, libX11
+, wxGTK, perl, python2, zlib, libGLU_combined, libX11
 , automake, autoconf
 }:
 let
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [autoconf automake];
 
   buildInputs = [
-    wxGTK perl python2 zlib mesa libX11
+    wxGTK perl python2 zlib libGLU_combined libX11
   ];
 
   # Link against Python explicitly as it is needed for scripts
diff --git a/pkgs/applications/science/misc/golly/default.nix b/pkgs/applications/science/misc/golly/default.nix
index f4bf24a734338..8ecbf656a8213 100644
--- a/pkgs/applications/science/misc/golly/default.nix
+++ b/pkgs/applications/science/misc/golly/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, wxGTK, perl, python2, zlib, mesa, libX11}:
+{stdenv, fetchurl, wxGTK, perl, python2, zlib, libGLU_combined, libX11}:
 stdenv.mkDerivation rec {
   baseName="golly";
   version = "3.1";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    wxGTK perl python2 zlib mesa libX11
+    wxGTK perl python2 zlib libGLU_combined libX11
   ];
 
   setSourceRoot = ''
diff --git a/pkgs/applications/science/misc/gplates/default.nix b/pkgs/applications/science/misc/gplates/default.nix
index c8f89c398b126..8b6c7497e547c 100644
--- a/pkgs/applications/science/misc/gplates/default.nix
+++ b/pkgs/applications/science/misc/gplates/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4, qwt6_qt4, mesa, glew, gdal_1_11, cgal
+{ stdenv, fetchurl, qt4, qwt6_qt4, libGLU_combined, glew, gdal_1_11, cgal
 , proj, boost, cmake, python2, doxygen, graphviz, gmp }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    qt4 qwt6_qt4 mesa glew gdal_1_11 cgal proj boost cmake python2
+    qt4 qwt6_qt4 libGLU_combined glew gdal_1_11 cgal proj boost cmake python2
     doxygen graphviz gmp
   ];
 
diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix
index 2899bee636ebe..00ca1d2c7abe8 100644
--- a/pkgs/applications/science/misc/root/default.nix
+++ b/pkgs/applications/science/misc/root/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchpatch, cmake, pcre, pkgconfig, python2
-, libX11, libXpm, libXft, libXext, mesa, zlib, libxml2, lz4, lzma, gsl, xxHash
+, libX11, libXpm, libXft, libXext, libGLU_combined, zlib, libxml2, lz4, lzma, gsl, xxHash
 , Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ cmake pcre python2 zlib libxml2 lz4 lzma gsl xxHash ]
-    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext mesa ]
+    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU_combined ]
     ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
 
diff --git a/pkgs/applications/science/misc/tulip/default.nix b/pkgs/applications/science/misc/tulip/default.nix
index af58aaafc9c9b..8560d900a4fa2 100644
--- a/pkgs/applications/science/misc/tulip/default.nix
+++ b/pkgs/applications/science/misc/tulip/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, libxml2, freetype, mesa, glew, qt4
+{ fetchurl, stdenv, libxml2, freetype, libGLU_combined, glew, qt4
 , cmake, makeWrapper, libjpeg, python }:
 
 let version = "5.1.0"; in
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "1i70y8b39gkpxfalr9844pa3l4bnnyw5y7ngxdqibil96k2b9q9h";
   };
 
-  buildInputs = [ libxml2 freetype glew mesa qt4 libjpeg python ];
+  buildInputs = [ libxml2 freetype glew libGLU_combined qt4 libjpeg python ];
 
   nativeBuildInputs = [ cmake makeWrapper ];
 
diff --git a/pkgs/applications/science/misc/vite/default.nix b/pkgs/applications/science/misc/vite/default.nix
index 510c56b66c883..64482ddd74bcc 100644
--- a/pkgs/applications/science/misc/vite/default.nix
+++ b/pkgs/applications/science/misc/vite/default.nix
@@ -1,4 +1,4 @@
-{ fetchsvn, stdenv, cmake, qt4, mesa }:
+{ fetchsvn, stdenv, cmake, qt4, libGLU_combined }:
 
 # ViTE 1.1 has several bugs, so use the SVN version.
 let
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
     ln -sv "${externals}" externals
   '';
 
-  buildInputs = [ cmake qt4 mesa ];
+  buildInputs = [ cmake qt4 libGLU_combined ];
 
   NIX_LDFLAGS = "-lGLU";
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-radar/default.nix b/pkgs/applications/version-management/git-and-tools/git-radar/default.nix
index 1bf7a14932ecd..d72df80287591 100644
--- a/pkgs/applications/version-management/git-and-tools/git-radar/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-radar/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "git-radar-${version}";
-  version = "0.5";
+  version = "0.6";
 
   src = fetchFromGitHub {
     owner = "michaeldfallen";
     repo = "git-radar";
     rev = "v${version}";
-    sha256 = "1915aqx8bfc4xmvhx2gfxv72p969a6rn436kii9w4yi38hibmqv9";
+    sha256 = "0c3zp8s4w7m4s71qgwk1jyfc8yzw34f2hi43x1w437ypgabwg81j";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/version-management/git-and-tools/git-secret/default.nix b/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
index 3f64d9d86bb66..02dc7f86fb3fc 100644
--- a/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg }:
 
 let
-  version = "0.2.2";
+  version = "0.2.3";
   repo = "git-secret";
 
 in stdenv.mkDerivation {
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
     inherit repo;
     owner = "sobolevn";
     rev = "v${version}";
-    sha256 = "0vn9jibp97z7kc828wka1k0d7a9wx4skd6cnqy60kagfc00l0bzh";
+    sha256 = "1swgw91zzs9n582500a34cppyngrqrqrnl80d1vd7i93xx1lkmv6";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/git-review/default.nix b/pkgs/applications/version-management/git-review/default.nix
index c9251b987e938..21ceccf9f351f 100644
--- a/pkgs/applications/version-management/git-review/default.nix
+++ b/pkgs/applications/version-management/git-review/default.nix
@@ -2,7 +2,7 @@
 
 pythonPackages.buildPythonApplication rec {
   name = "git-review-${version}";
-  version = "1.25.0";
+  version = "1.26.0";
 
   # Manually set version because prb wants to get it from the git
   # upstream repository (and we are installing from tarball instead)
@@ -14,7 +14,7 @@ pythonPackages.buildPythonApplication rec {
 
   src = fetchurl rec {
     url = "https://github.com/openstack-infra/git-review/archive/${version}.tar.gz";
-    sha256 = "aa594690ed586041a524d6e5ae76152cbd53d4f03a98b20b213d15cecbe128ce";
+    sha256 = "106nk6p7byf5vi68b2fvmwma5nk7qrv39nfj9p1bfxmb1gjdixhc";
   };
 
   propagatedBuildInputs = with pythonPackages; [ pbr requests setuptools ];
diff --git a/pkgs/applications/version-management/git-sizer/default.nix b/pkgs/applications/version-management/git-sizer/default.nix
new file mode 100644
index 0000000000000..a0d7382de3419
--- /dev/null
+++ b/pkgs/applications/version-management/git-sizer/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "git-sizer";
+  name = "${pname}-${version}";
+  version = "1.0.0";
+
+  goPackagePath = "github.com/github/git-sizer";
+
+  src = fetchFromGitHub {
+    owner = "github";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11rvqpsyl41ph0fgm62k5q2p33zgnwj1jd91rd4lkaarpcd1sg5h";
+  };
+
+  meta = with lib; {
+    description = "Compute various size metrics for a Git repository";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewbauer ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 93b96dd87460b..ba525bacbc9b3 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, libXcomposite, libgnome-keyring, makeWrapper, udev, curl, alsaLib
 , libXfixes, atk, gtk2, libXrender, pango, gnome2, cairo, freetype, fontconfig
-, libX11, libXi, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
+, libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
 , nss, nspr, cups, fetchurl, expat, gdk_pixbuf, libXdamage, libXrandr, dbus
 , dpkg, makeDesktopItem
 }:
@@ -9,11 +9,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "gitkraken-${version}";
-  version = "2.7.0";
+  version = "3.3.4";
 
   src = fetchurl {
     url = "https://release.gitkraken.com/linux/v${version}.deb";
-    sha256 = "0088vdn47563f0v9zhk1vggn3c2cfg8rhmifc6nw4zbss49si5gp";
+    sha256 = "1djrbpm1f258cicf65ddvndpxi1izmnc12253k1zwl77z4jjbwls";
   };
 
   libPath = makeLibraryPath [
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
     libXext
     libXcursor
     libXi
+    libxcb
     glib
     libXScrnSaver
     libxkbfile
@@ -66,27 +67,25 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ dpkg ];
 
-  unpackPhase = "dpkg-deb -x $src .";
+  unpackPhase = "true";
+  buildCommand = ''
+    mkdir -p $out
+    dpkg -x $src $out
+    substituteInPlace $out/usr/share/applications/gitkraken.desktop \
+      --replace /usr/share/gitkraken $out/bin
+    cp -av $out/usr/* $out
+    rm -rf $out/etc $out/usr $out/share/lintian
+    chmod -R g-w $out
 
-  installPhase = ''
-    mkdir -p "$out/opt/gitkraken"
-    cp -r usr/share/gitkraken/* "$out/opt/gitkraken"
+    for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
+      patchelf --set-rpath ${libPath}:$out/share/gitkraken $file || true
+    done
 
-    mkdir -p "$out/share/applications"
-    cp $desktopItem/share/applications/* "$out/share/applications"
+    find $out/share/gitkraken -name "*.node" -exec patchelf --set-rpath "${libPath}:$out/share/gitkraken" {} \;
 
-    mkdir -p "$out/share/pixmaps"
-    cp usr/share/pixmaps/app.png "$out/share/pixmaps"
-  '';
-
-  postFixup = ''
-    patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
-             --set-rpath "$libPath:$out/opt/gitkraken" "$out/opt/gitkraken/gitkraken"
-    wrapProgram $out/opt/gitkraken/gitkraken \
-      --prefix LD_PRELOAD : "${makeLibraryPath [ curl ]}/libcurl.so.4" \
-      --prefix LD_PRELOAD : "${makeLibraryPath [ libgnome-keyring ]}/libgnome-keyring.so.0"
-    mkdir "$out/bin"
-    ln -s "$out/opt/gitkraken/gitkraken" "$out/bin/gitkraken"
+    rm $out/bin/gitkraken
+    ln -s $out/share/gitkraken/gitkraken $out/bin/gitkraken
   '';
 
   meta = {
diff --git a/pkgs/applications/version-management/gitless/default.nix b/pkgs/applications/version-management/gitless/default.nix
index 2b93a95e45aef..d062c32d018ed 100644
--- a/pkgs/applications/version-management/gitless/default.nix
+++ b/pkgs/applications/version-management/gitless/default.nix
@@ -1,14 +1,14 @@
 { fetchFromGitHub, pythonPackages, stdenv }:
 
 pythonPackages.buildPythonApplication rec {
-  ver = "0.8.5";
+  ver = "0.8.6";
   name = "gitless-${ver}";
 
   src = fetchFromGitHub {
     owner = "sdg-mit";
     repo = "gitless";
     rev = "v${ver}";
-    sha256 = "1v22i5lardswpqb6vxjgwra3ac8652qyajbijfj18vlkhajz78hq";
+    sha256 = "1q6y38f8ap6q1livvfy0pfnjr0l8b68hyhc9r5v87fmdyl7y7y8g";
   };
 
   propagatedBuildInputs = with pythonPackages; [ sh pygit2 clint ];
diff --git a/pkgs/applications/version-management/gource/default.nix b/pkgs/applications/version-management/gource/default.nix
index 13852261e863d..d617d363fa0c3 100644
--- a/pkgs/applications/version-management/gource/default.nix
+++ b/pkgs/applications/version-management/gource/default.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchurl, SDL2, ftgl, pkgconfig, libpng, libjpeg, pcre
-, SDL2_image, freetype, glew, mesa, boost, glm
+, SDL2_image, freetype, glew, libGLU_combined, boost, glm
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.47";
+  version = "0.48";
   name = "gource-${version}";
 
   src = fetchurl {
     url = "https://github.com/acaudwell/Gource/releases/download/${name}/${name}.tar.gz";
-    sha256 = "1llqwdnfa1pff8bxk27qsqff1fcg0a9kfdib0rn7p28vl21n1cgj";
+    sha256 = "04qxcm05qiyr9rg2kv6abfy7kkzqr8ziw4iyp1d14lniv93m61dp";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    glew SDL2 ftgl libpng libjpeg pcre SDL2_image mesa
+    glew SDL2 ftgl libpng libjpeg pcre SDL2_image libGLU_combined
     boost glm freetype
   ];
 
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index 18e986e437f6b..e3cafe6b64649 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -4,14 +4,14 @@
 
 
 let
-  minor = "3.18";
-  version = "${minor}.0";
+  pname = "meld";
+  version = "3.18.0";
   inherit (python3Packages) python buildPythonApplication pycairo pygobject3;
 in buildPythonApplication rec {
-  name = "meld-${version}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/meld/${minor}/meld-${version}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0gi2jzgsrd5q2icyp6wphbn532ddg82nxhfxlffkniy7wnqmi0c4";
   };
 
@@ -43,6 +43,12 @@ in buildPythonApplication rec {
 
   doCheck = false;
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Visual diff and merge tool";
     homepage = http://meldmerge.org/;
diff --git a/pkgs/applications/video/aegisub/default.nix b/pkgs/applications/video/aegisub/default.nix
index 341ae5fd2737b..3dd0cc5adc291 100644
--- a/pkgs/applications/video/aegisub/default.nix
+++ b/pkgs/applications/video/aegisub/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl
 , libX11, wxGTK
 , libiconv, fontconfig, freetype
-, mesa
+, libGLU_combined
 , libass, fftw, ffms
 , ffmpeg, pkgconfig, zlib # Undocumented (?) dependencies
 , icu, boost, intltool # New dependencies
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   postPatch = "sed '1i#include <unicode/unistr.h>' -i src/utils.cpp";
 
   buildInputs = with stdenv.lib;
-  [ pkgconfig intltool libX11 wxGTK fontconfig freetype mesa
+  [ pkgconfig intltool libX11 wxGTK fontconfig freetype libGLU_combined
     libass fftw ffms ffmpeg zlib icu boost boost.out libiconv
   ]
     ++ optional spellcheckSupport hunspell
diff --git a/pkgs/applications/video/avidemux/default.nix b/pkgs/applications/video/avidemux/default.nix
index 62b819c600cc7..99ed7378745cb 100644
--- a/pkgs/applications/video/avidemux/default.nix
+++ b/pkgs/applications/video/avidemux/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, cmake, pkgconfig, lndir
 , zlib, gettext, libvdpau, libva, libXv, sqlite
 , yasm, freetype, fontconfig, fribidi
-, makeWrapper, libXext, mesa_glu, qttools, qtbase
+, makeWrapper, libXext, libGLU, qttools, qtbase
 , alsaLib
 , withX265 ? true, x265
 , withX264 ? true, x264
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ yasm cmake pkgconfig ];
   buildInputs = [
     zlib gettext libvdpau libva libXv sqlite fribidi fontconfig
-    freetype alsaLib libXext mesa_glu makeWrapper
+    freetype alsaLib libXext libGLU makeWrapper
   ] ++ lib.optional withX264 x264
     ++ lib.optional withX265 x265
     ++ lib.optional withXvid xvidcore
@@ -79,7 +79,8 @@ stdenv.mkDerivation rec {
     homepage = http://fixounet.free.fr/avidemux/;
     description = "Free video editor designed for simple video editing tasks";
     maintainers = with maintainers; [ viric abbradar ma27 ];
-    platforms = platforms.linux;
+    # "CPU not supported" errors on AArch64
+    platforms = [ "i686-linux" "x86_64-linux" ];
     license = licenses.gpl2;
   };
 }
diff --git a/pkgs/applications/video/bomi/default.nix b/pkgs/applications/video/bomi/default.nix
index a9e2654f731b1..671d67946354f 100644
--- a/pkgs/applications/video/bomi/default.nix
+++ b/pkgs/applications/video/bomi/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchpatch, pkgconfig, perl, python, which
-, libX11, libxcb, mesa
+, libX11, libxcb, libGLU_combined
 , qtbase, qtdeclarative, qtquickcontrols, qttools, qtx11extras, qmake, makeWrapper
 , libchardet
 , ffmpeg
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   buildInputs = with stdenv.lib;
                 [ libX11
                   libxcb
-                  mesa
+                  libGLU_combined
                   qtbase
                   qtx11extras
                   qtdeclarative
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index 4eb4bb095eaf9..8a40912a1d688 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -8,7 +8,7 @@
 , libXt, libXmu, libXext, xextproto
 , libXinerama, libXrandr, randrproto
 , libXtst, libXfixes, fixesproto, systemd
-, alsaLib, mesa, glew, fontconfig, freetype, ftgl
+, alsaLib, libGLU_combined, glew, fontconfig, freetype, ftgl
 , libjpeg, jasper, libpng, libtiff
 , libmpeg2, libsamplerate, libmad
 , libogg, libvorbis, flac, libxslt
@@ -125,7 +125,7 @@ in stdenv.mkDerivation rec {
       openssl gperf tinyxml2 taglib libssh swig jre
       libX11 xproto inputproto libXt libXmu libXext xextproto
       libXinerama libXrandr randrproto libXtst libXfixes fixesproto
-      alsaLib mesa glew fontconfig freetype ftgl
+      alsaLib libGLU_combined glew fontconfig freetype ftgl
       libjpeg jasper libpng libtiff wayland
       libmpeg2 libsamplerate libmad
       libogg libvorbis flac libxslt systemd
diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index 9c6a49c551369..d0376ca7e3de4 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, dpkg, makeWrapper, patchelf, buildFHSUserEnv
-, gtk3, gnome3, gdk_pixbuf, cairo, libjpeg_original, glib, gnome2, mesa_glu
+, gtk3, gnome3, gdk_pixbuf, cairo, libjpeg_original, glib, gnome2, libGLU
 , nvidia_cg_toolkit, zlib, openssl, portaudio
 }:
 let
@@ -11,7 +11,7 @@ let
     libjpeg_original
     glib
     gnome2.pango
-    mesa_glu
+    libGLU
     nvidia_cg_toolkit
     zlib
     openssl
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index 1e890c24db1aa..a4b08e1ce47c9 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl
-, openssl, qt4, mesa, zlib, pkgconfig, libav
+, openssl, qt4, libGLU_combined, zlib, pkgconfig, libav
 }:
 
 stdenv.mkDerivation rec {
@@ -18,9 +18,9 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [openssl qt4 mesa zlib libav];
+  buildInputs = [openssl qt4 libGLU_combined zlib libav];
 
-  libPath = stdenv.lib.makeLibraryPath [stdenv.cc.cc openssl mesa qt4 zlib ]
+  libPath = stdenv.lib.makeLibraryPath [stdenv.cc.cc openssl libGLU_combined qt4 zlib ]
           + ":" + stdenv.cc.cc + "/lib64";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/mplayer/default.nix b/pkgs/applications/video/mplayer/default.nix
index fe6090c3230e9..f2d40c2ac8084 100644
--- a/pkgs/applications/video/mplayer/default.nix
+++ b/pkgs/applications/video/mplayer/default.nix
@@ -2,7 +2,7 @@
 , aalibSupport ? true, aalib ? null
 , fontconfigSupport ? true, fontconfig ? null, freefont_ttf ? null
 , fribidiSupport ? true, fribidi ? null
-, x11Support ? true, libX11 ? null, libXext ? null, mesa ? null
+, x11Support ? true, libX11 ? null, libXext ? null, libGLU_combined ? null
 , xineramaSupport ? true, libXinerama ? null
 , xvSupport ? true, libXv ? null
 , alsaSupport ? stdenv.isLinux, alsaLib ? null
@@ -32,7 +32,7 @@
 assert fontconfigSupport -> (fontconfig != null);
 assert (!fontconfigSupport) -> (freefont_ttf != null);
 assert fribidiSupport -> (fribidi != null);
-assert x11Support -> (libX11 != null && libXext != null && mesa != null);
+assert x11Support -> (libX11 != null && libXext != null && libGLU_combined != null);
 assert xineramaSupport -> (libXinerama != null && x11Support);
 assert xvSupport -> (libXv != null && x11Support);
 assert alsaSupport -> alsaLib != null;
@@ -109,7 +109,7 @@ stdenv.mkDerivation rec {
     ++ optional aalibSupport aalib
     ++ optional fontconfigSupport fontconfig
     ++ optional fribidiSupport fribidi
-    ++ optionals x11Support [ libX11 libXext mesa ]
+    ++ optionals x11Support [ libX11 libXext libGLU_combined ]
     ++ optional alsaSupport alsaLib
     ++ optional xvSupport libXv
     ++ optional theoraSupport libtheora
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index 1616665b75d59..b026da6a6325a 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -4,7 +4,7 @@
 , lua, luasocket, libuchardet, libiconv ? null, darwin
 
 , x11Support ? true,
-    mesa       ? null,
+    libGLU_combined       ? null,
     libX11     ? null,
     libXext    ? null,
     libXxf86vm ? null
@@ -45,7 +45,7 @@ with stdenv.lib;
 let
   available = x: x != null;
 in
-assert x11Support         -> all available [mesa libX11 libXext libXxf86vm];
+assert x11Support         -> all available [libGLU_combined libX11 libXext libXxf86vm];
 assert waylandSupport     -> all available [wayland libxkbcommon];
 assert rubberbandSupport  -> available rubberband;
 assert xineramaSupport    -> x11Support && available libXinerama;
@@ -157,7 +157,7 @@ in stdenv.mkDerivation rec {
     ++ optional vapoursynthSupport vapoursynth
     ++ optional archiveSupport     libarchive
     ++ optionals dvdnavSupport     [ libdvdnav libdvdnav.libdvdread ]
-    ++ optionals x11Support        [ libX11 libXext mesa libXxf86vm ]
+    ++ optionals x11Support        [ libX11 libXext libGLU_combined libXxf86vm ]
     ++ optionals waylandSupport    [ wayland libxkbcommon ]
     ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
       libiconv Cocoa CoreAudio
diff --git a/pkgs/applications/video/mythtv/default.nix b/pkgs/applications/video/mythtv/default.nix
index 167c5bdba40a9..6f7ebb8c20af6 100644
--- a/pkgs/applications/video/mythtv/default.nix
+++ b/pkgs/applications/video/mythtv/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, which, qt4, xlibsWrapper, libpulseaudio, fftwSinglePrec
-, lame, zlib, mesa, alsaLib, freetype, perl, pkgconfig
+, lame, zlib, libGLU_combined, alsaLib, freetype, perl, pkgconfig
 , libX11, libXv, libXrandr, libXvMC, libXinerama, libXxf86vm, libXmu
 , yasm, libuuid, taglib, libtool, autoconf, automake, file
 }:
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   sourceRoot = "${name}/mythtv";
 
   buildInputs = [
-    freetype qt4 lame zlib xlibsWrapper mesa perl alsaLib libpulseaudio fftwSinglePrec
+    freetype qt4 lame zlib xlibsWrapper libGLU_combined perl alsaLib libpulseaudio fftwSinglePrec
     libX11 libXv libXrandr libXvMC libXmu libXinerama libXxf86vm libXmu
     libuuid taglib
   ];
diff --git a/pkgs/applications/video/natron/default.nix b/pkgs/applications/video/natron/default.nix
index 518cd3d94bacd..1eb725d10bbc8 100644
--- a/pkgs/applications/video/natron/default.nix
+++ b/pkgs/applications/video/natron/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, qt4, pkgconfig, boost, expat, cairo, python2Packages,
   cmake, flex, bison, pango, librsvg, librevenge, libxml2, libcdr, libzip,
   poppler, imagemagick, glew, openexr, ffmpeg, opencolorio, openimageio,
-  qmake4Hook, libpng, mesa_noglu, lndir }:
+  qmake4Hook, libpng, libGL, lndir }:
 
 let
   minorVersion = "2.1";
@@ -68,7 +68,7 @@ let
       sha256 = "0s196i9fkgr9iw92c94mxgs1lkxbhynkf83vmsgrldflmf0xjky7";
       nativeBuildInputs = [ pkgconfig ];
       buildInputs = [
-        libpng ffmpeg openexr opencolorio openimageio boost mesa_noglu
+        libpng ffmpeg openexr opencolorio openimageio boost libGL
         seexpr
       ];
     })
@@ -76,7 +76,7 @@ let
       pluginName = "misc";
       sha256 = "02h79jrll0c17azxj16as1mks3lmypm4m3da4mms9sg31l3n82qi";
       buildInputs = [
-        mesa_noglu
+        libGL
       ];
       preConfigure = ''
         cp ${CImgh} CImg/CImg.h
diff --git a/pkgs/applications/video/simplescreenrecorder/default.nix b/pkgs/applications/video/simplescreenrecorder/default.nix
index 75bd398b20805..5b9ae0119039d 100644
--- a/pkgs/applications/video/simplescreenrecorder/default.nix
+++ b/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, alsaLib, ffmpeg, libjack2, libX11, libXext
-, libXfixes, mesa, pkgconfig, libpulseaudio, qt4, cmake, ninja
+, libXfixes, libGLU_combined, pkgconfig, libpulseaudio, qt4, cmake, ninja
 }:
 
 stdenv.mkDerivation rec {
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig cmake ninja ];
   buildInputs = [
-    alsaLib ffmpeg libjack2 libX11 libXext libXfixes mesa
+    alsaLib ffmpeg libjack2 libX11 libXext libXfixes libGLU_combined
     libpulseaudio qt4
   ];
 
diff --git a/pkgs/applications/virtualization/bochs/default.nix b/pkgs/applications/virtualization/bochs/default.nix
index 4ad8f0213261e..f9d7128330fbb 100644
--- a/pkgs/applications/virtualization/bochs/default.nix
+++ b/pkgs/applications/virtualization/bochs/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl
 , pkgconfig, libtool
-, gtk2, mesa, readline, libX11, libXpm
+, gtk2, libGLU_combined, readline, libX11, libXpm
 , docbook_xml_dtd_45, docbook_xsl
 , sdlSupport ? true, SDL2 ? null
 , termSupport ? true, ncurses ? null
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   patches = [ ./bochs-2.6.9-glibc-2.26.patch ];
 
   buildInputs = with stdenv.lib;
-  [ pkgconfig libtool gtk2 mesa readline libX11 libXpm docbook_xml_dtd_45 docbook_xsl ]
+  [ pkgconfig libtool gtk2 libGLU_combined readline libX11 libXpm docbook_xml_dtd_45 docbook_xsl ]
   ++ optionals termSupport [ ncurses ]
   ++ optionals sdlSupport [ SDL2 ]
   ++ optionals wxSupport [ wxGTK ]
diff --git a/pkgs/applications/virtualization/cbfstool/default.nix b/pkgs/applications/virtualization/cbfstool/default.nix
index d02d786065451..e10d541489776 100644
--- a/pkgs/applications/virtualization/cbfstool/default.nix
+++ b/pkgs/applications/virtualization/cbfstool/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "cbfstool-${version}";
-  version = "4.5";
+  version = "4.7";
 
   src = fetchgit {
     url = "http://review.coreboot.org/p/coreboot";
     rev = "refs/tags/${version}";
-    sha256 = "0sc2h440x4sfp1lqnmh3xfgymf7j0rqfx00v6jqf0svfbp8a6cq5";
+    sha256 = "02k63013vf7wgsilslj68fs1x81clvqpn91dydaqhv5aymh73zpi";
   };
 
   nativeBuildInputs = [ flex bison ];
diff --git a/pkgs/applications/virtualization/seabios/default.nix b/pkgs/applications/virtualization/seabios/default.nix
index 6b40b1da3a0d9..5aa73528e9d72 100644
--- a/pkgs/applications/virtualization/seabios/default.nix
+++ b/pkgs/applications/virtualization/seabios/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
 
   name = "seabios-${version}";
-  version = "1.9.3";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "http://code.coreboot.org/p/seabios/downloads/get/${name}.tar.gz";
-    sha256 = "13b7n20qfc2cc8v70jvl9r51m563rss9lbk1aflirvnd9705vs0s";
+    sha256 = "1xwvp77djxbxbxg82hzj26pv6zka3556vkdcp09hnfwapcp46av2";
   };
 
   buildInputs = [ iasl python ];
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index f913ab688cf89..d0e2705588743 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -9,12 +9,12 @@ with stdenv.lib;
 
 python2Packages.buildPythonApplication rec {
   name = "virt-manager-${version}";
-  version = "1.5.0";
+  version = "1.5.1";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://virt-manager.org/download/sources/virt-manager/${name}.tar.gz";
-    sha256 = "d43a7b99d40acdcb8e9455e7874beee132cfcfce9eed0d6252e8f254a82cadc6";
+    sha256 = "1ardmd4sxdmd57y7qpka44gf09c1yq2g0xs074d3k1h925crv27f";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/virtualization/virtualbox/HostServices-SharedClipboard-x11-stub.cpp-use-RT_NOR.patch b/pkgs/applications/virtualization/virtualbox/HostServices-SharedClipboard-x11-stub.cpp-use-RT_NOR.patch
deleted file mode 100644
index 7abe62a59cb89..0000000000000
--- a/pkgs/applications/virtualization/virtualbox/HostServices-SharedClipboard-x11-stub.cpp-use-RT_NOR.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From 9ac54c606b581847a170ac2fe525419aff2e5341 Mon Sep 17 00:00:00 2001
-From: Florian Klink <flokli@flokli.de>
-Date: Wed, 6 Dec 2017 23:58:20 +0100
-Subject: [PATCH] HostServices/SharedClipboard/x11-stub.cpp: use RT_NOREF
- rather than NOREF
-
-Currently, build process fails when configuring with --build-headless like this:
-
-```
-kBuild: Compiling VBoxSharedClipboard - /tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/service.cpp
-kBuild: Compiling VBoxSharedClipboard - /tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:58:29: error: macro "NOREF" passed 2 arguments, but takes just 1
-     NOREF(pClient, fHeadless);
-                             ^
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:94:30: error: macro "NOREF" passed 2 arguments, but takes just 1
-     NOREF(pClient, u32Formats);
-                              ^
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:110:37: error: macro "NOREF" passed 4 arguments, but takes just 1
-     NOREF(pClient, u32Format, pv, cb);
-                                     ^
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:128:37: error: macro "NOREF" passed 4 arguments, but takes just 1
-     NOREF(pClient, pv, cb, u32Format);
-                                     ^
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp: In function 'int vboxClipboardConnect(VBOXCLIPBOARDCLIENTDATA*, bool)':
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:58:5: error: 'NOREF' was not declared in this scope
-     NOREF(pClient, fHeadless);
-     ^~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:55:52: warning: unused parameter 'pClient' [-Wunused-parameter]
- int vboxClipboardConnect (VBOXCLIPBOARDCLIENTDATA *pClient,
-                                                    ^~~~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:56:32: warning: unused parameter 'fHeadless' [-Wunused-parameter]
-                           bool fHeadless)
-                                ^~~~~~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp: In function 'void vboxClipboardFormatAnnounce(VBOXCLIPBOARDCLIENTDATA*, uint32_t)':
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:94:5: error: 'NOREF' was not declared in this scope
-     NOREF(pClient, u32Formats);
-     ^~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:91:60: warning: unused parameter 'pClient' [-Wunused-parameter]
- void vboxClipboardFormatAnnounce (VBOXCLIPBOARDCLIENTDATA *pClient,
-                                                            ^~~~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:92:44: warning: unused parameter 'u32Formats' [-Wunused-parameter]
-                                   uint32_t u32Formats)
-                                            ^~~~~~~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp: In function 'int vboxClipboardReadData(VBOXCLIPBOARDCLIENTDATA*, uint32_t, void*, uint32_t, uint32_t*)':
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:110:5: error: 'NOREF' was not declared in this scope
-     NOREF(pClient, u32Format, pv, cb);
-     ^~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:107:53: warning: unused parameter 'pClient' [-Wunused-parameter]
- int vboxClipboardReadData (VBOXCLIPBOARDCLIENTDATA *pClient, uint32_t u32Format,
-                                                     ^~~~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:107:71: warning: unused parameter 'u32Format' [-Wunused-parameter]
- int vboxClipboardReadData (VBOXCLIPBOARDCLIENTDATA *pClient, uint32_t u32Format,
-                                                                       ^~~~~~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:108:34: warning: unused parameter 'pv' [-Wunused-parameter]
-                            void *pv, uint32_t cb, uint32_t *pcbActual)
-                                  ^~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:108:47: warning: unused parameter 'cb' [-Wunused-parameter]
-                            void *pv, uint32_t cb, uint32_t *pcbActual)
-                                               ^~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp: In function 'void vboxClipboardWriteData(VBOXCLIPBOARDCLIENTDATA*, void*, uint32_t, uint32_t)':
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:128:5: error: 'NOREF' was not declared in this scope
-     NOREF(pClient, pv, cb, u32Format);
-     ^~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:125:55: warning: unused parameter 'pClient' [-Wunused-parameter]
- void vboxClipboardWriteData (VBOXCLIPBOARDCLIENTDATA *pClient, void *pv,
-                                                       ^~~~~~~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:125:70: warning: unused parameter 'pv' [-Wunused-parameter]
- void vboxClipboardWriteData (VBOXCLIPBOARDCLIENTDATA *pClient, void *pv,
-                                                                      ^~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:126:39: warning: unused parameter 'cb' [-Wunused-parameter]
-                              uint32_t cb, uint32_t u32Format)
-                                       ^~
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp:126:52: warning: unused parameter 'u32Format' [-Wunused-parameter]
-                              uint32_t cb, uint32_t u32Format)
-                                                    ^~~~~~~~~
-kmk: *** [/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/out/linux.amd64/release/obj/VBoxSharedClipboard/x11-stub.o] Error 1
-The failing command:
-@g++ -c -O2 -g -pipe -pedantic -Wshadow -Wall -Wextra -Wno-missing-field-initializers -Wno-unused -Wno-trigraphs -fdiagnostics-show-option -Wno-unused-parameter     -Wlogical-op   -Wno-variadic-macros
--Wno-long-long -Wunused-variable -Wunused-function -Wunused-label -Wunused-parameter  -Wno-overloaded-virtual -Wno-variadic-macros -O2 -mtune=generic -fno-omit-frame-pointer -fno-strict-aliasing
--fvisibility=hidden -DVBOX_HAVE_VISIBILITY_HIDDEN -DRT_USE_VISIBILITY_DEFAULT -fvisibility-inlines-hidden   -fPIC -m64
--I/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/out/linux.amd64/release/obj/VBoxSharedClipboard/dtrace -I/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/include
--I/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/out/linux.amd64/release -DVBOX -DVBOX_OSE -DVBOX_WITH_64_BITS_GUESTS -DVBOX_WITH_REM -DVBOX_WITH_RAW_MODE -DRT_OS_LINUX -D_FILE_OFFSET_BITS=64
--DRT_ARCH_AMD64 -D__AMD64__ -DVBOX_WITH_DEBUGGER -DVBOX_WITH_HARDENING -DRTPATH_APP_PRIVATE=\"/nix/store/fqjnpbzq25ffpkpk6hsl3x19ydin2pp1-virtualbox-5.2.2/share/virtualbox\"
--DRTPATH_APP_PRIVATE_ARCH=\"/nix/store/fqjnpbzq25ffpkpk6hsl3x19ydin2pp1-virtualbox-5.2.2/libexec/virtualbox\"
--DRTPATH_APP_PRIVATE_ARCH_TOP=\"/nix/store/fqjnpbzq25ffpkpk6hsl3x19ydin2pp1-virtualbox-5.2.2/share/virtualbox\"
--DRTPATH_SHARED_LIBS=\"/nix/store/fqjnpbzq25ffpkpk6hsl3x19ydin2pp1-virtualbox-5.2.2/libexec/virtualbox\" -DRTPATH_APP_DOCS=\"/nix/store/fqjnpbzq25ffpkpk6hsl3x19ydin2pp1-virtualbox-5.2.2/doc\"
--DIN_RING3 -DHC_ARCH_BITS=64 -DGC_ARCH_BITS=64 -DVBOX_WITH_DTRACE -DVBOX_WITH_DTRACE_R3 -DPIC -DVBOX_WITH_HGCM
--Wp,-MD,/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/out/linux.amd64/release/obj/VBoxSharedClipboard/x11-stub.o.dep
--Wp,-MT,/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/out/linux.amd64/release/obj/VBoxSharedClipboard/x11-stub.o -Wp,-MP -o
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/out/linux.amd64/release/obj/VBoxSharedClipboard/x11-stub.o
-/tmp/nix-build-virtualbox-5.2.2.drv-0/VirtualBox-5.2.2/src/VBox/HostServices/SharedClipboard/x11-stub.cpp
-```
-
-This seems to be caused by the usage of NOREF in
-src/VBox/HostServices/SharedClipboard/x11-stub.cpp, so use RT_NOREFN
-instead.
-
-Signed-off-by: Florian Klink <flokli@flokli.de>
----
- src/VBox/HostServices/SharedClipboard/x11-stub.cpp | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/VBox/HostServices/SharedClipboard/x11-stub.cpp b/src/VBox/HostServices/SharedClipboard/x11-stub.cpp
-index d890215..57ba883 100644
---- a/src/VBox/HostServices/SharedClipboard/x11-stub.cpp
-+++ b/src/VBox/HostServices/SharedClipboard/x11-stub.cpp
-@@ -55,7 +55,7 @@ void vboxClipboardDestroy (void)
- int vboxClipboardConnect (VBOXCLIPBOARDCLIENTDATA *pClient,
-                           bool fHeadless)
- {
--    NOREF(pClient, fHeadless);
-+    RT_NOREF2(pClient, fHeadless);
-     LogFlowFunc(("called, returning VINF_SUCCESS.\n"));
-     return VINF_SUCCESS;
- }
-@@ -77,7 +77,7 @@ int vboxClipboardSync (VBOXCLIPBOARDCLIENTDATA * /* pClient */)
-  */
- void vboxClipboardDisconnect (VBOXCLIPBOARDCLIENTDATA *pClient)
- {
--    NOREF(pClient);
-+    RT_NOREF1(pClient);
-     LogFlowFunc(("called, returning.\n"));
- }
- 
-@@ -91,7 +91,7 @@ void vboxClipboardDisconnect (VBOXCLIPBOARDCLIENTDATA *pClient)
- void vboxClipboardFormatAnnounce (VBOXCLIPBOARDCLIENTDATA *pClient,
-                                   uint32_t u32Formats)
- {
--    NOREF(pClient, u32Formats);
-+    RT_NOREF2(pClient, u32Formats);
-     LogFlowFunc(("called, returning.\n"));
- }
- 
-@@ -107,7 +107,7 @@ void vboxClipboardFormatAnnounce (VBOXCLIPBOARDCLIENTDATA *pClient,
- int vboxClipboardReadData (VBOXCLIPBOARDCLIENTDATA *pClient, uint32_t u32Format,
-                            void *pv, uint32_t cb, uint32_t *pcbActual)
- {
--    NOREF(pClient, u32Format, pv, cb);
-+    RT_NOREF4(pClient, u32Format, pv, cb);
-     LogFlowFunc(("called, returning VINF_SUCCESS.\n"));
-     /* No data available. */
-     *pcbActual = 0;
-@@ -125,6 +125,6 @@ int vboxClipboardReadData (VBOXCLIPBOARDCLIENTDATA *pClient, uint32_t u32Format,
- void vboxClipboardWriteData (VBOXCLIPBOARDCLIENTDATA *pClient, void *pv,
-                              uint32_t cb, uint32_t u32Format)
- {
--    NOREF(pClient, pv, cb, u32Format);
-+    RT_NOREF4(pClient, pv, cb, u32Format);
-     LogFlowFunc(("called, returning.\n"));
- }
--- 
-2.15.0
-
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 38509d299d955..011a4e34e7499 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -94,8 +94,6 @@ in stdenv.mkDerivation {
 
   patches =
      optional enableHardening ./hardened.patch
-     # https://www.virtualbox.org/pipermail/vbox-dev/2017-December/014888.html
-  ++ optional headless [ ./HostServices-SharedClipboard-x11-stub.cpp-use-RT_NOR.patch ]
   ++ [ ./qtx11extras.patch ];
 
 
diff --git a/pkgs/applications/virtualization/xen/4.10.nix b/pkgs/applications/virtualization/xen/4.10.nix
new file mode 100644
index 0000000000000..c3280cbda94bf
--- /dev/null
+++ b/pkgs/applications/virtualization/xen/4.10.nix
@@ -0,0 +1,176 @@
+{ stdenv, callPackage, fetchurl, fetchpatch, fetchgit
+, withInternalQemu ? true
+, withInternalTraditionalQemu ? true
+, withInternalSeabios ? true
+, withSeabios ? !withInternalSeabios, seabios ? null
+, withInternalOVMF ? false # FIXME: tricky to build
+, withOVMF ? false, OVMF
+, withLibHVM ? true
+
+# qemu
+, udev, pciutils, xorg, SDL, pixman, acl, glusterfs, spice-protocol, usbredir
+, alsaLib, glib, python2
+, ... } @ args:
+
+assert withInternalSeabios -> !withSeabios;
+assert withInternalOVMF -> !withOVMF;
+
+with stdenv.lib;
+
+# Patching XEN? Check the XSAs at
+# https://xenbits.xen.org/xsa/
+# and try applying all the ones we don't have yet.
+
+let
+  xsaPatch = { name , sha256 }: (fetchpatch {
+    url = "https://xenbits.xen.org/xsa/xsa${name}.patch";
+    inherit sha256;
+  });
+
+  xsa = import ./xsa-patches.nix { inherit fetchpatch; };
+
+  qemuDeps = [
+    udev pciutils xorg.libX11 SDL pixman acl glusterfs spice-protocol usbredir
+    alsaLib glib python2
+  ];
+in
+
+callPackage (import ./generic.nix (rec {
+  version = "4.10.0";
+
+  src = fetchurl {
+    url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz";
+    sha256 = "0i38ap5b5m1kix6xb0vn9ya1yab35adyc98bzfnbq4lb7w1afqh2";
+  };
+
+  # Sources needed to build tools and firmwares.
+  xenfiles = optionalAttrs withInternalQemu {
+    "qemu-xen" = {
+      src = fetchgit {
+        url = https://xenbits.xen.org/git-http/qemu-xen.git;
+        # rev = "refs/tags/qemu-xen-${version}";
+        # use revision hash - reproducible but must be updated with each new version
+        rev = "b79708a8ed1b3d18bee67baeaf33b3fa529493e2";
+        sha256 = "1yxxad6nvlfmrbgyc8ix19qmrsn1rx4zpyiqnfi4x4kg94acwa5w";
+      };
+      buildInputs = qemuDeps;
+      postPatch = ''
+        # needed in build but /usr/bin/env is not available in sandbox
+        substituteInPlace scripts/tracetool.py \
+          --replace "/usr/bin/env python" "${python2}/bin/python"
+      '';
+      meta.description = "Xen's fork of upstream Qemu";
+    };
+  } // optionalAttrs withInternalTraditionalQemu {
+    "qemu-xen-traditional" = {
+      src = fetchgit {
+        url = https://xenbits.xen.org/git-http/qemu-xen-traditional.git;
+        # rev = "refs/tags/xen-${version}";
+        # use revision hash - reproducible but must be updated with each new version
+        rev = "c8ea0457495342c417c3dc033bba25148b279f60";
+        sha256 = "0v5nl3c08kpjg57fb8l191h1y57ykp786kz6l525jgplif28vx13";
+      };
+      buildInputs = qemuDeps;
+      patches = [
+      ];
+      postPatch = ''
+        substituteInPlace xen-hooks.mak \
+          --replace /usr/include/pci ${pciutils}/include/pci
+      '';
+      meta.description = "Xen's fork of upstream Qemu that uses old device model";
+    };
+  } // optionalAttrs withInternalSeabios {
+    "firmware/seabios-dir-remote" = {
+      src = fetchgit {
+        url = https://xenbits.xen.org/git-http/seabios.git;
+        rev = "f0cdc36d2f2424f6b40438f7ee7cc502c0eff4df";
+        sha256 = "1wq5pjkjrfzqnq3wyr15mcn1l4c563m65gdyf8jm97kgb13pwwfm";
+      };
+      patches = [ ./0000-qemu-seabios-enable-ATA_DMA.patch ];
+      meta.description = "Xen's fork of Seabios";
+    };
+  } // optionalAttrs withInternalOVMF {
+    "firmware/ovmf-dir-remote" = {
+      src = fetchgit {
+        url = https://xenbits.xen.org/git-http/ovmf.git;
+        rev = "173bf5c847e3ca8b42c11796ce048d8e2e916ff8";
+        sha256 = "07zmdj90zjrzip74fvd4ss8n8njk6cim85s58mc6snxmqqv7gmcr";
+      };
+      meta.description = "Xen's fork of OVMF";
+    };
+  } // {
+    # TODO: patch Xen to make this optional?
+    "firmware/etherboot/ipxe.git" = {
+      src = fetchgit {
+        url = https://git.ipxe.org/ipxe.git;
+        rev = "356f6c1b64d7a97746d1816cef8ca22bdd8d0b5d";
+        sha256 = "15n400vm3id5r8y3k6lrp9ab2911a9vh9856f5gvphkazfnmns09";
+      };
+      meta.description = "Xen's fork of iPXE";
+    };
+  } // optionalAttrs withLibHVM {
+    "xen-libhvm-dir-remote" = {
+      src = fetchgit {
+        name = "xen-libhvm";
+        url = https://github.com/michalpalka/xen-libhvm;
+        rev = "83065d36b36d6d527c2a4e0f5aaf0a09ee83122c";
+        sha256 = "1jzv479wvgjkazprqdzcdjy199azmx2xl3pnxli39kc5mvjz3lzd";
+      };
+      buildPhase = ''
+        make
+        cd biospt
+        cc -Wall -g -D_LINUX -Wstrict-prototypes biospt.c -o biospt -I../libhvm -L../libhvm -lxenhvm
+      '';
+      installPhase = ''
+        make install
+        cp biospt/biospt $out/bin/
+      '';
+      meta = {
+        description = ''
+          Helper library for reading ACPI and SMBIOS firmware values
+          from the host system for use with the HVM guest firmware
+          pass-through feature in Xen'';
+        license = licenses.bsd2;
+      };
+    };
+  };
+
+  configureFlags = []
+    ++ optional (!withInternalQemu) "--with-system-qemu" # use qemu from PATH
+    ++ optional (withInternalTraditionalQemu) "--enable-qemu-traditional"
+    ++ optional (!withInternalTraditionalQemu) "--disable-qemu-traditional"
+
+    ++ optional (withSeabios) "--with-system-seabios=${seabios}"
+    ++ optional (!withInternalSeabios && !withSeabios) "--disable-seabios"
+
+    ++ optional (withOVMF) "--with-system-ovmf=${OVMF.fd}/FV/OVMF.fd"
+    ++ optional (withInternalOVMF) "--enable-ovmf";
+
+  patches = with xsa; flatten [
+    XSA_252
+    XSA_253
+    XSA_255_1
+    XSA_255_2
+    XSA_256
+  ];
+
+  # Fix build on Glibc 2.24.
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
+  postPatch = ''
+    # Avoid a glibc >= 2.25 deprecation warnings that get fatal via -Werror.
+    sed 1i'#include <sys/sysmacros.h>' \
+      -i tools/blktap2/control/tap-ctl-allocate.c \
+      -i tools/libxl/libxl_device.c
+    # Makefile didn't include previous PKG_CONFIG_PATH so glib wasn't found
+    substituteInPlace tools/Makefile \
+      --replace 'PKG_CONFIG_PATH=$(XEN_ROOT)/tools/pkg-config' 'PKG_CONFIG_PATH=$(XEN_ROOT)/tools/pkg-config:$(PKG_CONFIG_PATH)'
+  '';
+
+  passthru = {
+    qemu-system-i386 = if withInternalQemu
+      then "lib/xen/bin/qemu-system-i386"
+      else throw "this xen has no qemu builtin";
+  };
+
+})) args
diff --git a/pkgs/applications/virtualization/xen/4.8.nix b/pkgs/applications/virtualization/xen/4.8.nix
index be6c4e3fcc7a1..cce91dcd5debf 100644
--- a/pkgs/applications/virtualization/xen/4.8.nix
+++ b/pkgs/applications/virtualization/xen/4.8.nix
@@ -29,6 +29,18 @@ let
 
   xsa = import ./xsa-patches.nix { inherit fetchpatch; };
 
+  xenlockprofpatch = (fetchpatch {
+    name = "xenlockprof-gcc7.patch";
+    url = "https://xenbits.xen.org/gitweb/?p=xen.git;a=patch;h=f49fa658b53580cf2ad354d2bf1796766cc11222";
+    sha256 = "1lvzfvkqirknivm8q4cg5byfqz49s16zjk65fkwl3kwb03chky70";
+  });
+
+  xenpmdpatch = (fetchpatch {
+    name = "xenpmd-gcc7.patch";
+    url = "https://xenbits.xen.org/gitweb/?p=xen.git;a=patch;h=2d78f78a14528752266982473c07118f1bc336e3";
+    sha256 = "1ki295pymbcfc64sjb9wqfwpv19p8vwgmnxankada3vm4fxg2rhq";
+  });
+
   qemuDeps = [
     udev pciutils xorg.libX11 SDL pixman acl glusterfs spice-protocol usbredir
     alsaLib
@@ -36,11 +48,11 @@ let
 in
 
 callPackage (import ./generic.nix (rec {
-  version = "4.8.2";
+  version = "4.8.3";
 
   src = fetchurl {
     url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz";
-    sha256 = "1ydgwbn8ab0s16jrbi3wzaa6j0y3zk0j8pay458qcgayk3qc476b";
+    sha256 = "0vhkpyy5x7kc36hnav95fn194ngsmc3m2xcc78vccs00gdf6m8q9";
   };
 
   # Sources needed to build tools and firmwares.
@@ -49,7 +61,7 @@ callPackage (import ./generic.nix (rec {
       src = fetchgit {
         url = https://xenbits.xen.org/git-http/qemu-xen.git;
         rev = "refs/tags/qemu-xen-${version}";
-        sha256 = "1l4sygd8p0mc13bskr4r1m31qh1kr58h195qn1s52869s58jyhvm";
+        sha256 = "0lb7zd5nvr6znx47z93nbq4gj8xfb3622s8r2cvmpqmwnmlc3nd4";
       };
       buildInputs = qemuDeps;
       meta.description = "Xen's fork of upstream Qemu";
@@ -138,26 +150,15 @@ callPackage (import ./generic.nix (rec {
     ++ optional (withInternalOVMF) "--enable-ovmf";
 
   patches = with xsa; flatten [
-    XSA_231
-    XSA_232
-    XSA_233
-    XSA_234_48
-    XSA_236
-    XSA_237_48
-    XSA_238
-    XSA_239
-    XSA_240_48
-    XSA_241
-    XSA_242
-    XSA_243_48
-    XSA_244
-    XSA_245
-    XSA_246
-    XSA_247_48
-    XSA_248_48
-    XSA_249
-    XSA_250
-    XSA_251_48
+    # XSA_231 to XSA-251 are fixed in 4.8.3 (verified with git log)
+    XSA_252_49
+    # 253: 4.8 not affected
+    # 254: no patch supplied by xen project (Meltdown/Spectre)
+    XSA_255_49_1
+    XSA_255_49_2
+    XSA_256_48
+    xenlockprofpatch
+    xenpmdpatch
   ];
 
   # Fix build on Glibc 2.24.
diff --git a/pkgs/applications/virtualization/xen/generic.nix b/pkgs/applications/virtualization/xen/generic.nix
index 9efcc45be3595..20033276fc88d 100644
--- a/pkgs/applications/virtualization/xen/generic.nix
+++ b/pkgs/applications/virtualization/xen/generic.nix
@@ -154,12 +154,12 @@ stdenv.mkDerivation (rec {
     substituteInPlace tools/xenstat/Makefile \
       --replace /usr/include/curses.h ${ncurses.dev}/include/curses.h
 
-    ${optionalString (config.version >= "4.8") ''
+    ${optionalString (builtins.compareVersions config.version "4.8" >= 0) ''
       substituteInPlace tools/hotplug/Linux/launch-xenstore.in \
         --replace /bin/mkdir mkdir
     ''}
 
-    ${optionalString (config.version < "4.6") ''
+    ${optionalString (builtins.compareVersions config.version "4.6" < 0) ''
       # TODO: use this as a template and support our own if-up scripts instead?
       substituteInPlace tools/hotplug/Linux/xen-backend.rules.in \
         --replace "@XEN_SCRIPT_DIR@" $out/etc/xen/scripts
diff --git a/pkgs/applications/virtualization/xen/packages.nix b/pkgs/applications/virtualization/xen/packages.nix
index 4b5f15c8ff42e..35f6febb71235 100644
--- a/pkgs/applications/virtualization/xen/packages.nix
+++ b/pkgs/applications/virtualization/xen/packages.nix
@@ -103,6 +103,52 @@ rec {
     };
   };
 
+  xen_4_10-vanilla = callPackage ./4.10.nix {
+    meta = {
+      description = "vanilla";
+      longDescription = ''
+        Vanilla version of Xen. Uses forks of Qemu and Seabios bundled
+        with Xen. This gives vanilla experince, but wastes space and
+        build time: typical NixOS setup that runs lots of VMs will
+        build three different versions of Qemu when using this (two
+        forks and upstream).
+      '';
+    };
+  };
+
+  xen_4_10-slim = xen_4_10-vanilla.override {
+    withInternalQemu = false;
+    withInternalTraditionalQemu = true;
+    withInternalSeabios = false;
+    withSeabios = true;
+
+    meta = {
+      description = "slim";
+      longDescription = ''
+        Slimmed-down version of Xen that reuses nixpkgs packages as
+        much as possible. Different parts may get out of sync, but
+        this builds faster and uses less space than vanilla. Use with
+        `qemu_xen` from nixpkgs.
+      '';
+    };
+  };
+
+  xen_4_10-light = xen_4_10-vanilla.override {
+    withInternalQemu = false;
+    withInternalTraditionalQemu = false;
+    withInternalSeabios = false;
+    withSeabios = true;
+
+    meta = {
+      description = "light";
+      longDescription = ''
+        Slimmed-down version of Xen without `qemu-traditional` (you
+        don't need it if you don't know what it is). Use with
+        `qemu_xen-light` from nixpkgs.
+      '';
+    };
+  };
+
   xen-vanilla = xen_4_5-vanilla;
   xen-slim = xen_4_5-slim;
   xen-light = xen_4_5-light;
diff --git a/pkgs/applications/virtualization/xen/xsa-patches.nix b/pkgs/applications/virtualization/xen/xsa-patches.nix
index 8f8cc459a2438..727546b69fb02 100644
--- a/pkgs/applications/virtualization/xen/xsa-patches.nix
+++ b/pkgs/applications/virtualization/xen/xsa-patches.nix
@@ -863,5 +863,74 @@ in rec {
       sha256 = "079wi0j6iydid2zj7k584w2c393kgh588w7sjz2nn4039qn8k9mq";
     })
   ];
+  # 4.8
+  XSA_252_49 = [
+   (xsaPatch {
+      name = "252-4.9";
+      sha256 = "03sbn90nlkk5ba1n168rxjkc7x3mqj7rfqvspbwblmwikfbnms2n";
+    })
+  ];
+  # 4.8
+  XSA_255_49_1= [
+   (xsaPatch {
+      name = "255-4.9-1";
+      sha256 = "0gbin7yxbkq40lvm3gvj1vffavvbng3zpd2m8l1kqyz0rv4vm9zc";
+    })
+  ];
+  # 4.8
+  XSA_255_49_2= [
+   (xsaPatch {
+      name = "255-4.9-2";
+      sha256 = "0fyg5nnyfpfr80qq83pr64zjp5w1nx94bdblzsjap8gaqcahyr12";
+    })
+  ];
+  # 4.8
+  XSA_256_48= [
+   (xsaPatch {
+      name = "256-4.8";
+      sha256 = "1w84f717kxwx0h3rw18r4f8pl0l1h5xlj5fy80sr0ws4xkp1qdn4";
+    })
+  ];
+
+
+  # 4.10
+  XSA_252 = [
+   (xsaPatch {
+      name = "252";
+      sha256 = "0v4sg20dnvnwrjh3x69gk81v2kmcql7g2s044vg3wcxhzvij1rrn";
+    })
+  ];
+
+  # 4.10
+  XSA_253 = [
+   (xsaPatch {
+      name = "253";
+      sha256 = "0445vzlzy3gd499xraqh5r4qjar6qr0y3813h22jy1n84nhxz27i";
+    })
+  ];
+
+  # 4.10
+  XSA_255_1 = [
+   (xsaPatch {
+      name = "255-1";
+      sha256 = "05g2f3ji1rrjlw3yw4nrns50pnmsib8ybrf64scr1817mj0q9myr";
+    })
+  ];
+
+  # 4.10
+  XSA_255_2 = [
+   (xsaPatch {
+      name = "255-2";
+      sha256 = "08wbngw5z0f9g8di59hww3hhi7j9z49bpc4xlwn5akfcwbgf0961";
+    })
+  ];
+
+  # 4.10
+  XSA_256 = [
+   (xsaPatch {
+      name = "256";
+      sha256 = "1hicwhbwj6k25px55f4ncx1c5xiihi8pfvsb3kv57k7kaicb7pza";
+    })
+  ];
 
 }
diff --git a/pkgs/applications/window-managers/compton/default.nix b/pkgs/applications/window-managers/compton/default.nix
index 17baffbe8c73e..d79d8c3325d70 100644
--- a/pkgs/applications/window-managers/compton/default.nix
+++ b/pkgs/applications/window-managers/compton/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, pkgconfig, asciidoc, docbook_xml_dtd_45
 , docbook_xsl, libxslt, libxml2, makeWrapper
-, dbus, libconfig, libdrm, mesa_noglu, pcre, libX11, libXcomposite, libXdamage
+, dbus, libconfig, libdrm, libGL, pcre, libX11, libXcomposite, libXdamage
 , libXinerama, libXrandr, libXrender, libXext, xwininfo }:
 
 stdenv.mkDerivation rec {
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     pcre
     libconfig
     dbus
-    mesa_noglu
+    libGL
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/compton/git.nix b/pkgs/applications/window-managers/compton/git.nix
index 159468f79047e..53bcd158aedd6 100644
--- a/pkgs/applications/window-managers/compton/git.nix
+++ b/pkgs/applications/window-managers/compton/git.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, asciidoc, dbus, docbook_xml_dtd_45,
-  docbook_xml_xslt, libconfig, libdrm, libxml2, libxslt, mesa, pcre,
+  docbook_xml_xslt, libconfig, libdrm, libxml2, libxslt, libGLU_combined, pcre,
   pkgconfig, libXcomposite, libXdamage, libXext, libXfixes, libXinerama,
   libXrandr, libXrender, xwininfo }:
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
     libdrm
     libxml2
     libxslt
-    mesa
+    libGLU_combined
     pcre
   ];
 
diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix
index 0b78debdc589a..bd40a73d264c7 100644
--- a/pkgs/applications/window-managers/weston/default.nix
+++ b/pkgs/applications/window-managers/weston/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, wayland, mesa, libxkbcommon, cairo, libxcb
+{ stdenv, fetchurl, pkgconfig, wayland, libGLU_combined, libxkbcommon, cairo, libxcb
 , libXcursor, xlibsWrapper, udev, libdrm, mtdev, libjpeg, pam, dbus, libinput
 , pango ? null, libunwind ? null, freerdp ? null, vaapi ? null, libva ? null
 , libwebp ? null, xwayland ? null, wayland-protocols
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    wayland mesa libxkbcommon cairo libxcb libXcursor xlibsWrapper udev libdrm
+    wayland libGLU_combined libxkbcommon cairo libxcb libXcursor xlibsWrapper udev libdrm
     mtdev libjpeg pam dbus libinput pango libunwind freerdp vaapi libva
     libwebp wayland-protocols
   ];
diff --git a/pkgs/build-support/closure-info.nix b/pkgs/build-support/closure-info.nix
index 4d178ac96c5d9..58d70b4b0631e 100644
--- a/pkgs/build-support/closure-info.nix
+++ b/pkgs/build-support/closure-info.nix
@@ -4,55 +4,31 @@
 # "nix-store --load-db" and "nix-store --register-validity
 # --hash-given".
 
-{ stdenv, coreutils, jq, perl, pathsFromGraph }:
+{ stdenv, coreutils, jq }:
 
 { rootPaths }:
 
-#if builtins.langVersion >= 5 then
-# FIXME: it doesn't work on Hydra, failing to find mkdir;
-#   perhaps .attrs.sh clobbers PATH with new nix?
-if false then
+assert builtins.langVersion >= 5;
 
-  # Nix >= 1.12: Include NAR hash / size info.
+stdenv.mkDerivation {
+  name = "closure-info";
 
-  stdenv.mkDerivation {
-    name = "closure-info";
+  __structuredAttrs = true;
 
-    __structuredAttrs = true;
+  exportReferencesGraph.closure = rootPaths;
 
-    exportReferencesGraph.closure = rootPaths;
+  PATH = "${coreutils}/bin:${jq}/bin";
 
-    PATH = "${coreutils}/bin:${jq}/bin";
+  builder = builtins.toFile "builder"
+    ''
+      . .attrs.sh
 
-    builder = builtins.toFile "builder"
-      ''
-        if [ -e .attrs.sh ]; then . .attrs.sh; fi
+      out=''${outputs[out]}
 
-        out=''${outputs[out]}
+      mkdir $out
 
-        mkdir $out
-
-        jq -r '.closure | map([.path, .narHash, .narSize, "", (.references | length)] + .references) | add | map("\(.)\n") | add' < .attrs.json | head -n -1 > $out/registration
-        jq -r .closure[].path < .attrs.json > $out/store-paths
-      '';
-  }
-
-else
-
-  # Nix < 1.12
-
-  stdenv.mkDerivation {
-    name = "closure-info";
-
-    exportReferencesGraph =
-      map (x: [("closure-" + baseNameOf x) x]) rootPaths;
-
-    buildInputs = [ perl ];
-
-    buildCommand =
-      ''
-        mkdir $out
-        printRegistration=1 perl ${pathsFromGraph} closure-* > $out/registration
-        perl ${pathsFromGraph} closure-* > $out/store-paths
-      '';
-  }
+      jq -r ".closure | map(.narSize) | add" < .attrs.json > $out/total-nar-size
+      jq -r '.closure | map([.path, .narHash, .narSize, "", (.references | length)] + .references) | add | map("\(.)\n") | add' < .attrs.json | head -n -1 > $out/registration
+      jq -r .closure[].path < .attrs.json > $out/store-paths
+    '';
+}
diff --git a/pkgs/build-support/emacs/buffer.nix b/pkgs/build-support/emacs/buffer.nix
index 550163ddd6966..8f824f4e1a579 100644
--- a/pkgs/build-support/emacs/buffer.nix
+++ b/pkgs/build-support/emacs/buffer.nix
@@ -45,6 +45,8 @@ rec {
       (setenv "PATH" (concat "${lib.makeSearchPath "bin" pkgs}:" (getenv "PATH")))
       (inherit-local-permanent exec-path (append '(${builtins.concatStringsSep " " (map (p: "\"${p}/bin\"") pkgs)}) exec-path))
 
+      (inherit-local-permanent eshell-path-env (concat "${lib.makeSearchPath "bin" pkgs}:" eshell-path-env))
+
       (setq nixpkgs--is-nixpkgs-buffer t)
       (inherit-local 'nixpkgs--is-nixpkgs-buffer)
 
diff --git a/pkgs/build-support/fetchdocker/credentials.nix b/pkgs/build-support/fetchdocker/credentials.nix
new file mode 100644
index 0000000000000..c01288dbf53a0
--- /dev/null
+++ b/pkgs/build-support/fetchdocker/credentials.nix
@@ -0,0 +1,38 @@
+# We provide three paths to get the credentials into the builder's
+# environment:
+#
+# 1. Via impureEnvVars. This method is difficult for multi-user Nix
+#    installations (but works very well for single-user Nix
+#    installations!) because it requires setting the environment
+#    variables on the nix-daemon which is either complicated or unsafe
+#    (i.e: configuring via Nix means the secrets will be persisted
+#    into the store)
+#
+# 2. If the DOCKER_CREDENTIALS key with a path to a credentials file
+#    is added to the NIX_PATH (usually via the '-I ' argument to most
+#    Nix tools) then an attempt will be made to read credentials from
+#    it. The semantics are simple, the file should contain two lines
+#    for the username and password based authentication:
+#
+# $ cat ./credentials-file.txt
+# DOCKER_USER=myusername
+# DOCKER_PASS=mypassword
+#
+#    ... and a single line for the token based authentication:
+#
+# $ cat ./credentials-file.txt
+# DOCKER_TOKEN=mytoken
+#
+# 3. A credential file at /etc/nix-docker-credentials.txt with the
+#    same format as the file described in #2 can also be used to
+#    communicate credentials to the builder. This is necessary for
+#    situations (like Hydra) where you cannot customize the NIX_PATH
+#    given to the nix-build invocation to provide it with the
+#    DOCKER_CREDENTIALS path
+let
+  pathParts =
+   (builtins.filter
+    ({path, prefix}: "DOCKER_CREDENTIALS" == prefix)
+    builtins.nixPath);
+in
+  if (pathParts != []) then (builtins.head pathParts).path else ""
diff --git a/pkgs/build-support/fetchdocker/default.nix b/pkgs/build-support/fetchdocker/default.nix
new file mode 100644
index 0000000000000..ae3ae4185e053
--- /dev/null
+++ b/pkgs/build-support/fetchdocker/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, lib, coreutils, bash, gnutar, jq, writeText }:
+let
+  stripScheme =
+    builtins.replaceStrings [ "https://" "http://" ] [ "" "" ];
+  stripNixStore =
+    s: lib.removePrefix "/nix/store/" s;
+in
+{ name
+, registry         ? "https://registry-1.docker.io/v2/"
+, repository       ? "library"
+, imageName
+, tag
+, imageLayers
+, imageConfig
+, image            ? "${stripScheme registry}/${repository}/${imageName}:${tag}"
+}:
+
+# Make sure there are *no* slashes in the repository or container
+# names since we use these to make the output derivation name for the
+# nix-store path.
+assert null == lib.findFirst (c: "/"==c) null (lib.stringToCharacters repository);
+assert null == lib.findFirst (c: "/"==c) null (lib.stringToCharacters imageName);
+
+let
+  # Abuse `builtins.toPath` to collapse possible double slashes
+  repoTag0 = builtins.toString (builtins.toPath "/${stripScheme registry}/${repository}/${imageName}");
+  repoTag1 = lib.removePrefix "/" repoTag0;
+
+  layers = builtins.map stripNixStore imageLayers;
+
+  manifest =
+    writeText "manifest.json" (builtins.toJSON [
+      { Config   = stripNixStore imageConfig;
+        Layers   = layers;
+        RepoTags = [ "${repoTag1}:${tag}" ];
+      }]);
+
+  repositories =
+    writeText "repositories" (builtins.toJSON {
+      "${repoTag1}" = {
+        "${tag}" = lib.last layers;
+      };
+    });
+
+  imageFileStorePaths =
+    writeText "imageFileStorePaths.txt"
+      (lib.concatStringsSep "\n" ((lib.unique imageLayers) ++ [imageConfig]));
+in
+stdenv.mkDerivation {
+  builder     = ./fetchdocker-builder.sh;
+  buildInputs = [ coreutils ];
+  preferLocalBuild = true;
+
+  inherit name imageName repository tag;
+  inherit bash gnutar manifest repositories;
+  inherit imageFileStorePaths;
+
+  passthru = {
+    inherit image;
+  };
+}
diff --git a/pkgs/build-support/fetchdocker/fetchDockerConfig.nix b/pkgs/build-support/fetchdocker/fetchDockerConfig.nix
new file mode 100644
index 0000000000000..9fd813bfa575a
--- /dev/null
+++ b/pkgs/build-support/fetchdocker/fetchDockerConfig.nix
@@ -0,0 +1,13 @@
+pkgargs@{ stdenv, lib, haskellPackages, writeText, gawk }:
+let
+  generic-fetcher =
+    import ./generic-fetcher.nix pkgargs;
+in
+
+args@{ repository ? "library", imageName, tag, ... }:
+
+generic-fetcher ({
+  fetcher = "hocker-config";
+  name    = "${repository}_${imageName}_${tag}-config.json";
+  tag     = "unused";
+} // args)
diff --git a/pkgs/build-support/fetchdocker/fetchDockerLayer.nix b/pkgs/build-support/fetchdocker/fetchDockerLayer.nix
new file mode 100644
index 0000000000000..869ba637429cd
--- /dev/null
+++ b/pkgs/build-support/fetchdocker/fetchDockerLayer.nix
@@ -0,0 +1,13 @@
+pkgargs@{ stdenv, lib, haskellPackages, writeText, gawk }:
+let
+  generic-fetcher =
+    import ./generic-fetcher.nix pkgargs;
+in
+
+args@{ layerDigest, ... }:
+
+generic-fetcher ({
+  fetcher = "hocker-layer";
+  name    = "docker-layer-${layerDigest}.tar.gz";
+  tag     = "unused";
+} // args)
diff --git a/pkgs/build-support/fetchdocker/fetchdocker-builder.sh b/pkgs/build-support/fetchdocker/fetchdocker-builder.sh
new file mode 100644
index 0000000000000..7443591e6569b
--- /dev/null
+++ b/pkgs/build-support/fetchdocker/fetchdocker-builder.sh
@@ -0,0 +1,28 @@
+source "${stdenv}/setup"
+header "exporting ${repository}/${imageName} (tag: ${tag}) into ${out}"
+mkdir -p "${out}"
+
+cat <<EOF > "${out}/compositeImage.sh"
+#! ${bash}/bin/bash
+#
+# Create a tar archive of a docker image's layers, docker image config
+# json, manifest.json, and repositories json; this streams directly to
+# stdout and is intended to be used in concert with docker load, i.e:
+# 
+# ${out}/compositeImage.sh | docker load
+
+# The first character follow the 's' command for sed becomes the
+# delimiter sed will use; this makes the transformation regex easy to
+# read. We feed tar a file listing the files we want in the archive,
+# because the paths are absolute and docker load wants them flattened in
+# the archive, we need to transform all of the paths going in by
+# stripping everything *including* the last solidus so that we end up
+# with the basename of the path.
+${gnutar}/bin/tar \
+  --transform='s=.*/==' \
+  --transform="s=.*-manifest.json=manifest.json=" \
+  --transform="s=.*-repositories=repositories=" \
+  -c "${manifest}" "${repositories}" -T "${imageFileStorePaths}"
+EOF
+chmod +x "${out}/compositeImage.sh"
+stopNest
diff --git a/pkgs/build-support/fetchdocker/generic-fetcher.nix b/pkgs/build-support/fetchdocker/generic-fetcher.nix
new file mode 100644
index 0000000000000..e051cee08432e
--- /dev/null
+++ b/pkgs/build-support/fetchdocker/generic-fetcher.nix
@@ -0,0 +1,97 @@
+{ stdenv, lib, haskellPackages, writeText, gawk }:
+let
+  awk                   = "${gawk}/bin/awk";
+  dockerCredentialsFile = import ./credentials.nix;
+  stripScheme           =
+    builtins.replaceStrings [ "https://" "http://" ] [ "" "" ];
+in
+{ fetcher
+, name
+ , registry    ? "https://registry-1.docker.io/v2/"
+ , repository  ? "library"
+ , imageName
+ , sha256
+ , tag         ? ""
+ , layerDigest ? ""
+}:
+
+# There must be no slashes in the repository or container names since
+# we use these to make the output derivation name for the nix store
+# path
+assert null == lib.findFirst (c: "/"==c) null (lib.stringToCharacters repository);
+assert null == lib.findFirst (c: "/"==c) null (lib.stringToCharacters imageName);
+
+# Only allow hocker-config and hocker-layer as fetchers for now
+assert (builtins.elem fetcher ["hocker-config" "hocker-layer"]);
+
+# If layerDigest is non-empty then it must not have a 'sha256:' prefix!
+assert
+  (if layerDigest != ""
+   then !lib.hasPrefix "sha256:" layerDigest
+   else true);
+
+let
+  layerDigestFlag =
+    lib.optionalString (layerDigest != "") "--layer ${layerDigest}";
+in
+stdenv.mkDerivation {
+  inherit name;
+  builder = writeText "${fetcher}-builder.sh" ''
+    source "$stdenv/setup"
+    header "${fetcher} exporting to $out"
+
+    declare -A creds
+
+    # This is a hack for Hydra since we have no way of adding values
+    # to the NIX_PATH for Hydra jobsets!!
+    staticCredentialsFile="/etc/nix-docker-credentials.txt"
+    if [ ! -f "$dockerCredentialsFile" -a -f "$staticCredentialsFile" ]; then
+      echo "credentials file not set, falling back on static credentials file at: $staticCredentialsFile"
+      dockerCredentialsFile=$staticCredentialsFile
+    fi
+
+    if [ -f "$dockerCredentialsFile" ]; then
+      header "using credentials from $dockerCredentialsFile"
+
+      CREDSFILE=$(cat "$dockerCredentialsFile")
+      creds[token]=$(${awk} -F'=' '/DOCKER_TOKEN/ {print $2}' <<< "$CREDSFILE" | head -n1)
+
+      # Prefer DOCKER_TOKEN over the username and password
+      # authentication method
+      if [ -z "''${creds[token]}" ]; then
+        creds[user]=$(${awk} -F'=' '/DOCKER_USER/  {print $2}' <<< "$CREDSFILE" | head -n1)
+        creds[pass]=$(${awk} -F'=' '/DOCKER_PASS/  {print $2}' <<< "$CREDSFILE" | head -n1)
+      fi
+    fi
+
+    # These variables will be filled in first by the impureEnvVars, if
+    # those variables are empty then they will default to the
+    # credentials that may have been read in from the 'DOCKER_CREDENTIALS'
+    DOCKER_USER="''${DOCKER_USER:-''${creds[user]}}"
+    DOCKER_PASS="''${DOCKER_PASS:-''${creds[pass]}}"
+    DOCKER_TOKEN="''${DOCKER_TOKEN:-''${creds[token]}}"
+
+    ${fetcher} --out="$out" \
+      ''${registry:+--registry "$registry"} \
+      ''${DOCKER_USER:+--username "$DOCKER_USER"} \
+      ''${DOCKER_PASS:+--password "$DOCKER_PASS"} \
+      ''${DOCKER_TOKEN:+--token "$DOCKER_TOKEN"} \
+      ${layerDigestFlag} \
+      "${repository}/${imageName}" \
+      "${tag}"
+
+    stopNest
+  '';
+
+  buildInputs = [ haskellPackages.hocker ];
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "flat";
+  outputHash = sha256;
+
+  preferLocalBuild = true;
+
+  impureEnvVars = [ "DOCKER_USER" "DOCKER_PASS" "DOCKER_TOKEN" ];
+
+  inherit registry dockerCredentialsFile;
+}
diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix
index 5353ae8284107..262bee608eddf 100644
--- a/pkgs/build-support/kernel/make-initrd.nix
+++ b/pkgs/build-support/kernel/make-initrd.nix
@@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
   suffices = map (x: if x ? suffix then x.suffix else "none") contents;
 
   # For obtaining the closure of `contents'.
+  # Note: we don't use closureInfo yet, as that won't build with nix-1.x.
+  # See #36268.
   exportReferencesGraph =
     map (x: [("closure-" + baseNameOf x.symlink) x.object]) contents;
   pathsFromGraph = ./paths-from-graph.pl;
diff --git a/pkgs/build-support/kernel/paths-from-graph.pl b/pkgs/build-support/kernel/paths-from-graph.pl
index 747e1edec8110..1465b73fddb66 100644
--- a/pkgs/build-support/kernel/paths-from-graph.pl
+++ b/pkgs/build-support/kernel/paths-from-graph.pl
@@ -1,3 +1,5 @@
+# NOTE: this script is deprecated. Use closureInfo instead.
+
 # Parses a /nix/store/*-closure file and prints
 # various information.
 # By default, the nodes in the graph are printed to stdout.
diff --git a/pkgs/data/fonts/iosevka/default.nix b/pkgs/data/fonts/iosevka/default.nix
index 7c1676ed8b68a..ad2485dc4b8c4 100644
--- a/pkgs/data/fonts/iosevka/default.nix
+++ b/pkgs/data/fonts/iosevka/default.nix
@@ -26,13 +26,13 @@ in
 let pname = if set != null then "iosevka-${set}" else "iosevka"; in
 
 let
-  version = "1.14.0";
+  version = "1.14.1";
   name = "${pname}-${version}";
   src = fetchFromGitHub {
     owner = "be5invis";
     repo ="Iosevka";
     rev = "v${version}";
-    sha256 = "0mmdlrd9a0rhmmdqwkk6v7cdvbi23djr5kkiyv38llk11j3w0clp";
+    sha256 = "0m6kj1zfv9w6lyykhsfqdx2a951k8qa76licqikz5spm13n22z43";
   };
 in
 
diff --git a/pkgs/data/fonts/twemoji-color-font/default.nix b/pkgs/data/fonts/twemoji-color-font/default.nix
index 9173387a4c73d..9a8c6bf592aef 100644
--- a/pkgs/data/fonts/twemoji-color-font/default.nix
+++ b/pkgs/data/fonts/twemoji-color-font/default.nix
@@ -14,7 +14,11 @@ stdenv.mkDerivation rec {
   preBuild = "export HOME=\"$NIX_BUILD_ROOT\"";
   makeFlags = [ "SCFBUILD=${scfbuild}/bin/scfbuild" ];
   enableParallelBuilding = true;
-  installPhase = "install -Dm755 build/TwitterColorEmoji-SVGinOT.ttf $out/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf";
+
+  installPhase = ''
+    install -Dm755 build/TwitterColorEmoji-SVGinOT.ttf $out/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf
+    install -Dm644 linux/fontconfig/56-twemoji-color.conf $out/etc/fonts/conf.d/56-twemoji-color.conf
+  '';
 
   meta = with stdenv.lib; {
     version = "1.3";
diff --git a/pkgs/data/icons/numix-icon-theme-circle/default.nix b/pkgs/data/icons/numix-icon-theme-circle/default.nix
index 3de3dbe110c45..5982074991fa4 100644
--- a/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, numix-icon-theme }:
+{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme }:
 
 stdenv.mkDerivation rec {
-  version = "17-12-25";
+  version = "18-02-16";
 
   package-name = "numix-icon-theme-circle";
 
@@ -11,18 +11,22 @@ stdenv.mkDerivation rec {
     owner = "numixproject";
     repo = package-name;
     rev = version;
-    sha256 = "10sn2w9xzmh7arbw0vn516p9nfym1bs8bf7i8zzvz7y09s61lkxh";
+    sha256 = "0q08q1czsk6h0dxqscbgryr12xaakp4zbch37z0jxpwh087gnq4f";
   };
 
-  buildInputs = [ numix-icon-theme ];
-
-  dontBuild = true;
+  nativeBuildInputs = [ gtk3 numix-icon-theme ];
 
   installPhase = ''
     install -dm 755 $out/share/icons
     cp -dr --no-preserve='ownership' Numix-Circle{,-Light} $out/share/icons/
   '';
 
+  postFixup = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
   meta = with stdenv.lib; {
     description = "Numix icon theme (circle version)";
     homepage = https://numixproject.org;
diff --git a/pkgs/data/icons/numix-icon-theme-square/default.nix b/pkgs/data/icons/numix-icon-theme-square/default.nix
index 503a66b736f67..198229cce3711 100644
--- a/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -1,26 +1,30 @@
-{ stdenv, fetchFromGitHub, numix-icon-theme }:
+{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme }:
 
 stdenv.mkDerivation rec {
   name = "${package-name}-${version}";
   package-name = "numix-icon-theme-square";
-  version = "17-12-25";
+  version = "18-02-16";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = package-name;
     rev = version;
-    sha256 = "07rcfkz3c1z5fwqiib4r1bm964mpwf1f128xm8kz55xp6w1c7zgl";
+    sha256 = "1gjwc0s6a7q1jby5bcwxkcmbs470m81y8s0clsm0qhcmcn1c36xj";
   };
 
-  buildInputs = [ numix-icon-theme ];
-
-  dontBuild = true;
+  nativeBuildInputs = [ gtk3 numix-icon-theme ];
 
   installPhase = ''
     mkdir -p $out/share/icons
     cp -a Numix-Square{,-Light} $out/share/icons/
   '';
 
+  postFixup = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
   meta = with stdenv.lib; {
     description = "Numix icon theme (square version)";
     homepage = https://numixproject.org;
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index 8a29600f250dd..03fb2d448cd27 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/9f6344416728bff8b5279e0c45941fd8da361eb9.tar.gz";
-  sha256 = "0zm53wxvm7z72605qvgv0dzsfq91lyffpr850cks23r979pjvkv8";
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/56955295749aea09bd42591cd506c2616d48ebfd.tar.gz";
+  sha256 = "17c8a1wj1jxr14sxvwq0i9kidwycz2hkl1ls51yfz14anylxr84l";
 }
diff --git a/pkgs/misc/themes/deepin/default.nix b/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
index bdddc28cc4407..bdddc28cc4407 100644
--- a/pkgs/misc/themes/deepin/default.nix
+++ b/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
diff --git a/pkgs/data/icons/deepin-icon-theme/default.nix b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
index 7a422beb9924d..7a422beb9924d 100644
--- a/pkgs/data/icons/deepin-icon-theme/default.nix
+++ b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
diff --git a/pkgs/applications/misc/deepin-terminal/default.nix b/pkgs/desktops/deepin/deepin-terminal/default.nix
index 8e64fa6980582..8e64fa6980582 100644
--- a/pkgs/applications/misc/deepin-terminal/default.nix
+++ b/pkgs/desktops/deepin/deepin-terminal/default.nix
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
new file mode 100644
index 0000000000000..b03349ce2dff7
--- /dev/null
+++ b/pkgs/desktops/deepin/default.nix
@@ -0,0 +1,19 @@
+{ pkgs, newScope }:
+
+let
+  callPackage = newScope self;
+
+  self = rec {
+
+    deepin-gtk-theme = callPackage ./deepin-gtk-theme { };
+
+    deepin-icon-theme = callPackage ./deepin-icon-theme { };
+
+    deepin-terminal = callPackage ./deepin-terminal {
+      inherit (pkgs.gnome3) libgee vte;
+      wnck = pkgs.libwnck3;
+    };
+
+  };
+
+in self
diff --git a/pkgs/desktops/enlightenment/efl.nix b/pkgs/desktops/enlightenment/efl.nix
index fac97e72a6c3c..fff15a9981d2f 100644
--- a/pkgs/desktops/enlightenment/efl.nix
+++ b/pkgs/desktops/enlightenment/efl.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, lz4, freetype, fontconfig
-, fribidi, SDL2, SDL, mesa, giflib, libpng, libtiff, glib, gst_all_1, libpulseaudio
+, fribidi, SDL2, SDL, libGLU_combined, giflib, libpng, libtiff, glib, gst_all_1, libpulseaudio
 , libsndfile, xorg, libdrm, libxkbcommon, udev, utillinux, dbus, bullet, luajit
 , python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg
 , dbus_libs, alsaLib, poppler, ghostscript, libraw, libspectre, xineLib, libwebp
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
 
-  buildInputs = [ openssl zlib lz4 freetype fontconfig SDL mesa
+  buildInputs = [ openssl zlib lz4 freetype fontconfig SDL libGLU_combined
     giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
     gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.printproto
     xorg.libX11 udev systemd ];
diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix
index cb479f062d621..58fff802080f3 100644
--- a/pkgs/desktops/enlightenment/enlightenment.nix
+++ b/pkgs/desktops/enlightenment/enlightenment.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, meson, ninja, pkgconfig, gettext, efl,
   xcbutilkeysyms, libXrandr, libXdmcp, libxcb, libffi, pam, alsaLib,
-  luajit, bzip2, libpthreadstubs, gdbm, libcap, mesa_glu,
+  luajit, bzip2, libpthreadstubs, gdbm, libcap, libGLU,
   xkeyboard_config, pcre
 }:
 
diff --git a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
index d5be7137c8fa0..3a316f71f0828 100644
--- a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, glib, gtk, mesa, pango, pangox_compat, xorg }:
+{ stdenv, fetchurl, pkgconfig, glib, gtk, libGLU_combined, pango, pangox_compat, xorg }:
 
 stdenv.mkDerivation rec {
   name = "gtkglext-1.2.0";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = with xorg;
-    [ pkgconfig glib gtk mesa pango libX11 libXmu ];
+    [ pkgconfig glib gtk libGLU_combined pango libX11 libXmu ];
   propagatedBuildInputs = [ pangox_compat ];
 
   # The library uses `GTK_WIDGET_REALIZED', `GTK_WIDGET_TOPLEVEL', and
diff --git a/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix b/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix
index 152c1d98b8c8d..63e33aa578ef6 100644
--- a/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gtkglextmm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gtkglext, gtkmm, gtk, mesa, gdk_pixbuf
+{ stdenv, fetchurl, pkgconfig, gtkglext, gtkmm, gtk, libGLU_combined, gdk_pixbuf
 , pangox_compat, libXmu
 }:
 
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [pkgconfig];
 
-  propagatedBuildInputs = [ gtkglext gtkmm gtk mesa gdk_pixbuf ];
+  propagatedBuildInputs = [ gtkglext gtkmm gtk libGLU_combined gdk_pixbuf ];
 
   meta = {
     description = "C++ wrappers for GtkGLExt";
diff --git a/pkgs/desktops/gnome-3/apps/bijiben/default.nix b/pkgs/desktops/gnome-3/apps/bijiben/default.nix
index eaf8528b6ffb7..91b16bbba96e2 100644
--- a/pkgs/desktops/gnome-3/apps/bijiben/default.nix
+++ b/pkgs/desktops/gnome-3/apps/bijiben/default.nix
@@ -1,51 +1,55 @@
-{ stdenv, meson, ninja, gettext, fetchurl, pkgconfig, glib
-, evolution-data-server, evolution, sqlite
+{ stdenv, meson, ninja, gettext, fetchurl, pkgconfig
 , wrapGAppsHook, itstool, desktop-file-utils
-, clutter-gtk, libuuid, webkitgtk, zeitgeist
-, gnome3, librsvg, gdk_pixbuf, libxml2 }:
+, glib, gtk3, evolution-data-server
+, libuuid, webkitgtk, zeitgeist
+, gnome3, libxml2 }:
 
-stdenv.mkDerivation rec {
+let
+  version = "3.28.0";
+in stdenv.mkDerivation rec {
   name = "bijiben-${version}";
-  version = "3.27.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/bijiben/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "7b4623467f3cb745c4b268d6fb2d9da32cbc96ffb5b1bbf2a153b692e295ac64";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "bijiben"; attrPath = "gnome3.bijiben"; };
+    sha256 = "047w8kigrdmphd17dma2lldf6r60sgx3zybai9bz9yr0hm601kr6";
   };
 
   doCheck = true;
 
-  patches = [
-    ./no-update-icon-cache.patch
-  ];
-
   postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
+    chmod +x build-aux/meson_post_install.py
+    patchShebangs build-aux/meson_post_install.py
   '';
 
-  propagatedUserEnvPkgs = [ gnome3.gnome-themes-standard ];
-
   nativeBuildInputs = [
     meson ninja pkgconfig gettext itstool libxml2 desktop-file-utils wrapGAppsHook
   ];
-  buildInputs = [ glib clutter-gtk libuuid webkitgtk gnome3.tracker
-                  gnome3.gnome-online-accounts zeitgeist
-                  gnome3.gsettings-desktop-schemas
-                  gdk_pixbuf gnome3.defaultIconTheme librsvg
-                  evolution-data-server evolution sqlite ];
 
-  enableParallelBuilding = true;
+  buildInputs = [
+    glib gtk3 libuuid webkitgtk gnome3.tracker
+    gnome3.gnome-online-accounts zeitgeist
+    gnome3.gsettings-desktop-schemas
+    evolution-data-server
+    gnome3.defaultIconTheme
+  ];
+
+  mesonFlags = [
+    "-Dzeitgeist=true"
+    "-Dupdate_mimedb=false"
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "bijiben";
+      attrPath = "gnome3.bijiben";
+    };
+  };
 
   meta = with stdenv.lib; {
-    homepage = https://wiki.gnome.org/Apps/Bijiben;
     description = "Note editor designed to remain simple to use";
-    maintainers = gnome3.maintainers;
+    homepage = https://wiki.gnome.org/Apps/Bijiben;
     license = licenses.gpl3;
+    maintainers = gnome3.maintainers;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome-3/apps/bijiben/no-update-icon-cache.patch b/pkgs/desktops/gnome-3/apps/bijiben/no-update-icon-cache.patch
deleted file mode 100644
index c8b0043fb45f3..0000000000000
--- a/pkgs/desktops/gnome-3/apps/bijiben/no-update-icon-cache.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/meson_post_install.py
-+++ b/meson_post_install.py
-@@ -7,10 +7,6 @@
- if not os.environ.get('DESTDIR'):
-   datadir = sys.argv[1]
- 
--  icondir = os.path.join(datadir, 'icons', 'hicolor')
--  print('Update icon cache...')
--  subprocess.call(['gtk-update-icon-cache', '-f', '-t', icondir])
--
-   schemadir = os.path.join(datadir, 'glib-2.0', 'schemas')
-   print('Compile gsettings schemas...')
-   subprocess.call(['glib-compile-schemas', schemadir])
-@@ -18,8 +14,3 @@
-   desktop_file = os.path.join(datadir, 'applications', 'org.gnome.bijiben.desktop')
-   print('Validate desktop file...')
-   subprocess.call(['desktop-file-validate', desktop_file])
--
--  if sys.argv[2] == 'update-mimedb':
--    mimedir = os.path.join(datadir, 'mime')
--    print('Update mime database...')
--    subprocess.call(['update-mime-database', mimedir])
diff --git a/pkgs/desktops/gnome-3/apps/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix
index 1119cf86a4c95..82cf6447cc733 100644
--- a/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/pkgs/desktops/gnome-3/apps/evolution/default.nix
@@ -1,52 +1,51 @@
-{ stdenv, cmake, intltool, fetchurl, libxml2, webkitgtk, highlight
+{ stdenv, cmake, ninja, intltool, fetchurl, libxml2, webkitgtk, highlight
 , pkgconfig, gtk3, glib, libnotify, gtkspell3
 , wrapGAppsHook, itstool, shared-mime-info, libical, db, gcr, sqlite
 , gnome3, librsvg, gdk_pixbuf, libsecret, nss, nspr, icu
 , libcanberra-gtk3, bogofilter, gst_all_1, procps, p11-kit, openldap }:
 
 let
-  majVer = gnome3.version;
+  version = "3.26.6";
 in stdenv.mkDerivation rec {
   name = "evolution-${version}";
-  version = "3.26.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "091621f21827e2dfb8057f3b2c3a215c4e97a692c59d0a4ee33108af571de60e";
+    sha256 = "1adqh5f5aijkj5cnj1qprig8cd594m0qb0mzxn0zx44k0b6z5m1p";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "evolution"; attrPath = "gnome3.evolution"; };
-  };
-
-  doCheck = true;
-
-  propagatedUserEnvPkgs = [ gnome3.gnome-themes-standard
-                            gnome3.evolution-data-server ];
+  propagatedUserEnvPkgs = [ gnome3.evolution-data-server ];
 
-  buildInputs = [ gtk3 glib gdk_pixbuf gnome3.defaultIconTheme librsvg db icu
-                  gnome3.evolution-data-server libsecret libical gcr
-                  webkitgtk shared-mime-info gnome3.gnome-desktop gtkspell3
-                  libcanberra-gtk3 bogofilter gnome3.libgdata sqlite
-                  gst_all_1.gstreamer gst_all_1.gst-plugins-base p11-kit
-                  nss nspr libnotify procps highlight gnome3.libgweather
-                  gnome3.gsettings-desktop-schemas
-                  gnome3.libgnome-keyring gnome3.glib-networking openldap
-                ];
+  buildInputs = [
+    gtk3 glib gdk_pixbuf gnome3.defaultIconTheme librsvg db icu
+    gnome3.evolution-data-server libsecret libical gcr
+    webkitgtk shared-mime-info gnome3.gnome-desktop gtkspell3
+    libcanberra-gtk3 bogofilter gnome3.libgdata sqlite
+    gst_all_1.gstreamer gst_all_1.gst-plugins-base p11-kit
+    nss nspr libnotify procps highlight gnome3.libgweather
+    gnome3.gsettings-desktop-schemas
+    gnome3.libgnome-keyring gnome3.glib-networking openldap
+  ];
 
-  nativeBuildInputs = [ cmake intltool itstool libxml2 pkgconfig wrapGAppsHook ];
+  nativeBuildInputs = [ cmake ninja intltool itstool libxml2 pkgconfig wrapGAppsHook ];
 
+  cmakeFlags = [
+    "-DENABLE_AUTOAR=OFF"
+    "-DENABLE_LIBCRYPTUI=OFF"
+    "-DENABLE_YTNEF=OFF"
+    "-DENABLE_PST_IMPORT=OFF"
+  ];
 
-  configureFlags = [ "--disable-pst-import" "--disable-autoar"
-                     "--disable-libcryptui" "--with-openldap"];
-
-  cmakeFlags = [ "-DENABLE_AUTOAR=OFF" "-DENABLE_LIBCRYPTUI=OFF"
-                 "-DENABLE_YTNEF=OFF" "-DENABLE_PST_IMPORT=OFF"
-               ];
+  doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${nss.dev}/include/nss -I${glib.dev}/include/gio-unix-2.0";
+  checkPhase = "ctest";
 
-  enableParallelBuilding = true;
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "evolution";
+      attrPath = "gnome3.evolution";
+    };
+  };
 
   requiredSystemFeatures = [ "big-parallel" ];
 
diff --git a/pkgs/desktops/gnome-3/apps/glade/default.nix b/pkgs/desktops/gnome-3/apps/glade/default.nix
index 0a6921bce6e3d..3a294df3ffe3c 100644
--- a/pkgs/desktops/gnome-3/apps/glade/default.nix
+++ b/pkgs/desktops/gnome-3/apps/glade/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "glade-${version}";
-  version = "3.20.2";
+  version = "3.20.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glade/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "07d1545570951aeded20e9fdc6d3d8a56aeefe2538734568c5335be336c6abed";
+    sha256 = "1n9m4s81jd9fi60mrxsvlk4fi2vqrqmp95azsxp9jnqn6pkdz0jb";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index e82d004995dab..4da7db42ab98d 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-calendar-${version}";
-  version = "3.26.2";
+  version = "3.26.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-calendar/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "19a2c737b9662be926fb68e7dc731d94c523d23fa7a49e435e6a0346770dc50e";
+    sha256 = "1clnfvvsaqw9vpxrs6qrxzmgpaw9x2nkjik2x2vwvm07pdvhddxn";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
index 15c597980838a..8e90c0c516a2d 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-documents-${version}";
-  version = "3.26.1";
+  version = "3.26.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-documents/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "ba0d3084359d666b90733bb43206d24190fa85304bfe45f674ab6e6a27cb7fc9";
+    sha256 = "0q7bp0mvmhqmsvm5sjavm46y7sz43na62d1hrl62vg19hdqr9ir4";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
index 66596d916a936..9f6c3153afb28 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-logs-${version}";
-  version = "3.26.2";
+  version = "3.26.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-logs/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "e17ca011e7bea756bd841e027e56cfe8c214bed4817cb35732ace4aa73ff8f5c";
+    sha256 = "0cbzl38haz1m6y7gcbvvab0jcrva781izhp8xv2dzmma4xlzdw0k";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
index 86ea9b6590e14..4053d287cc8cb 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-music-${version}";
-  version = "3.26.1";
+  version = "3.26.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-music/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "7197dff12f441a52b4011512bfe8ec926f2ce4ca511f79b078e0e612d612f8c3";
+    sha256 = "0mam7d0lzl7ljd9lym9gkvqwvddic122sdmcgpjir58pmmg9bx8b";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/caribou/default.nix b/pkgs/desktops/gnome-3/core/caribou/default.nix
index 9b083ff5644b7..48be01faf33f8 100644
--- a/pkgs/desktops/gnome-3/core/caribou/default.nix
+++ b/pkgs/desktops/gnome-3/core/caribou/default.nix
@@ -3,14 +3,14 @@
 , wrapGAppsHook }:
 
 let
-  majorVersion = "0.4";
+  pname = "caribou";
+  version = "0.4.21";
   pythonEnv = python3Packages.python.withPackages ( ps: with ps; [ pygobject3 ] );
-in
-stdenv.mkDerivation rec {
-  name = "caribou-${majorVersion}.21";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/caribou/${majorVersion}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww";
   };
 
@@ -27,8 +27,18 @@ stdenv.mkDerivation rec {
     substituteInPlace libcaribou/Makefile.am --replace "--shared-library=libcaribou.so.0" "--shared-library=$out/lib/libcaribou.so.0"
   '';
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
   meta = with stdenv.lib; {
+    description = "An input assistive technology intended for switch and pointer users";
+    homepage = https://wiki.gnome.org/Projects/Caribou;
     platforms = platforms.linux;
+    license = licenses.lgpl21;
     maintainers = gnome3.maintainers;
   };
 
diff --git a/pkgs/desktops/gnome-3/core/dconf/default.nix b/pkgs/desktops/gnome-3/core/dconf/default.nix
index c09a31c822649..a17228761216f 100644
--- a/pkgs/desktops/gnome-3/core/dconf/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf/default.nix
@@ -2,14 +2,14 @@
 , libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }:
 
 let
-  majorVersion = "0.26";
+  pname = "dconf";
 in
 stdenv.mkDerivation rec {
-  name = "dconf-${version}";
-  version = "${majorVersion}.1";
+  name = "${pname}-${version}";
+  version = "0.26.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/dconf/${majorVersion}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0da587hpiqy8h3pswn1102h4b905x8k6mk3ajpi7kf4kzkvv30ym";
   };
 
@@ -23,7 +23,16 @@ stdenv.mkDerivation rec {
       --replace "-soname=libdconf.so.1" "-install_name,libdconf.so.1"
   '';
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
   meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/dconf;
+    license = licenses.lgpl21Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = gnome3.maintainers;
   };
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index 18a27af7977e0..a275040e1f4e1 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   name = "epiphany-${version}";
-  version = "3.26.4";
+  version = "3.26.6";
 
   src = fetchurl {
     url = "mirror://gnome/sources/epiphany/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "390d50f975f8ab9228016eb60bf4b8ea9a39be0b31467e2d6c27ae75fa1e84ea";
+    sha256 = "1a1hyv326w4in4pl26gi2n3p9b38ih6zjdiigpqy0aiibnjnmc81";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index f5723f673bb28..ae97fbc0e4de9 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -1,15 +1,15 @@
 { fetchurl, stdenv, pkgconfig, gnome3, python3, dconf
 , intltool, libsoup, libxml2, libsecret, icu, sqlite
 , p11-kit, db, nspr, nss, libical, gperf, makeWrapper, valaSupport ? true
-, vala, cmake, kerberos, openldap, webkitgtk, libaccounts-glib, json-glib }:
+, vala, cmake, ninja, kerberos, openldap, webkitgtk, libaccounts-glib, json-glib }:
 
 stdenv.mkDerivation rec {
   name = "evolution-data-server-${version}";
-  version = "3.26.3";
+  version = "3.26.6";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "63b1ae5f76be818862f455bf841b5ebb1ec3e1f4df6d3a16dc2be348b7e0a1c5";
+    sha256 = "1v0hwlrlm23bz5dmamdavm771f4gs64fyq82argrc0nwgn2a2fp4";
   };
 
   passthru = {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    cmake pkgconfig intltool python3 gperf makeWrapper
+    cmake ninja pkgconfig intltool python3 gperf makeWrapper
   ] ++ stdenv.lib.optional valaSupport vala;
   buildInputs = with gnome3; [
     glib libsoup libxml2 gtk gnome-online-accounts
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index eb2f7631ba8c6..6c485bcbd3ff0 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -1,51 +1,49 @@
-{ stdenv, intltool, fetchurl, evolution-data-server, db
-, pkgconfig, gtk3, glib, libsecret
-, libchamplain, clutter-gtk, geocode-glib
-, bash, wrapGAppsHook, itstool, folks, libnotify, libxml2
-, gnome3, librsvg, gdk_pixbuf, file, telepathy-glib, nspr, nss
-, libsoup, vala, dbus-glib, automake, autoconf }:
-
-stdenv.mkDerivation rec {
+{ stdenv, gettext, fetchurl, evolution-data-server
+, pkgconfig, libxslt, docbook_xsl, docbook_xml_dtd_42, gtk3, glib, cheese
+, libchamplain, clutter-gtk, geocode-glib, gnome-desktop, gnome-online-accounts
+, wrapGAppsHook, folks, libxml2, gnome3, telepathy-glib
+, vala, meson, ninja }:
+
+let
+  version = "3.26.1";
+in stdenv.mkDerivation rec {
   name = "gnome-contacts-${version}";
-  version = "3.26";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-contacts/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "f819ac74b2ad581f9741614627f49ef519713324afd9e4fc0ea5ac261a5f68c1";
+    sha256 = "1jszv4b8rc5q8r460wb7qppvm1ssj4733b4z2vyavc95g00ik286";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-contacts"; attrPath = "gnome3.gnome-contacts"; };
-  };
+  propagatedUserEnvPkgs = [ evolution-data-server ];
 
-  doCheck = true;
+  nativeBuildInputs = [
+    meson ninja pkgconfig vala gettext libxslt docbook_xsl docbook_xml_dtd_42 wrapGAppsHook
+  ];
 
-  propagatedUserEnvPkgs = [ gnome3.gnome-themes-standard evolution-data-server ];
+  buildInputs = [
+    gtk3 glib evolution-data-server gnome3.gsettings-desktop-schemas
+    folks gnome-desktop telepathy-glib
+    libxml2 gnome-online-accounts cheese
+    gnome3.defaultIconTheme libchamplain clutter-gtk geocode-glib
+  ];
 
-  # force build from vala
-  preBuild = ''
-   touch src/*.vala
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
   '';
 
-  nativeBuildInputs = [ vala automake autoconf pkgconfig intltool itstool wrapGAppsHook file ];
-  buildInputs = [ gtk3 glib evolution-data-server gnome3.gsettings-desktop-schemas libnotify
-                  folks gnome3.gnome-desktop telepathy-glib libsecret dbus-glib
-                  libxml2 libsoup gnome3.gnome-online-accounts nspr nss
-                  gdk_pixbuf gnome3.defaultIconTheme libchamplain clutter-gtk geocode-glib db ];
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix XDG_DATA_DIRS : "${gnome3.gnome-themes-standard}/share"
-    )
-  '';
-
-  patches = [ ./gio_unix.patch ];
+  doCheck = true;
 
-  patchFlags = "-p0";
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gnome-contacts";
+      attrPath = "gnome3.gnome-contacts";
+    };
+  };
 
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/Contacts;
-    description = "Contacts is GNOME's integrated address book";
+    description = "GNOME’s integrated address book";
     maintainers = gnome3.maintainers;
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/gio_unix.patch b/pkgs/desktops/gnome-3/core/gnome-contacts/gio_unix.patch
deleted file mode 100644
index f1b3d3c94ac26..0000000000000
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/gio_unix.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- configure.ac.orig	2015-04-09 18:45:50.581232289 +0200
-+++ configure.ac	2015-04-09 18:45:59.744280137 +0200
-@@ -54,6 +54,7 @@
- 	     champlain-0.12
- 	     clutter-gtk-1.0
- 	     geocode-glib-1.0 >= 3.15.3
-+	     gio-unix-2.0
- 	     "
- PKG_CHECK_MODULES(CONTACTS, [$pkg_modules])
- 
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index 354924c5c436a..8996a4cc3e93f 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -1,33 +1,37 @@
-{ stdenv, fetchurl, pkgconfig, meson, ninja, gettext, gnome3, wrapGAppsHook, packagekit, ostree
-, glib, appstream-glib, libsoup, polkit, attr, acl, libyaml, isocodes, gtkspell3, libxslt
+{ stdenv, fetchurl, substituteAll, pkgconfig, meson, ninja, gettext, gnome3, wrapGAppsHook, packagekit, ostree
+, glib, appstream-glib, libsoup, polkit, isocodes, gtkspell3, libxslt
 , json-glib, libsecret, valgrind-light, docbook_xsl, docbook_xml_dtd_42, gtk-doc, desktop-file-utils }:
 
 stdenv.mkDerivation rec {
   name = "gnome-software-${version}";
-  version = "3.26.3";
+  version = "3.26.7";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "2f74fd5fb222c99d4fcb91500cea0c62a0eb8022700bdea51acecb41c63f8e48";
+    sha256 = "00lfzvlicqd8gk5ijnjdi36ikmhdzvfjj993rpf7mm04ncw4k0za";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-software"; attrPath = "gnome3.gnome-software"; };
-  };
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit isocodes;
+    })
+  ];
 
-  nativeBuildInputs = [ pkgconfig meson ninja gettext wrapGAppsHook libxslt docbook_xml_dtd_42
-                        valgrind-light docbook_xsl gtk-doc desktop-file-utils ];
-  buildInputs = [ gnome3.gtk glib packagekit appstream-glib libsoup
-                  gnome3.gsettings-desktop-schemas gnome3.gnome-desktop
-                  gtkspell3 json-glib libsecret ostree
-                  polkit attr acl libyaml ];
-  propagatedBuildInputs = [ isocodes ];
+  nativeBuildInputs = [
+    meson ninja pkgconfig gettext wrapGAppsHook libxslt docbook_xml_dtd_42
+    valgrind-light docbook_xsl gtk-doc desktop-file-utils
+  ];
 
-  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+  buildInputs = [
+    gnome3.gtk glib packagekit appstream-glib libsoup
+    gnome3.gsettings-desktop-schemas gnome3.gnome-desktop
+    gtkspell3 json-glib libsecret ostree
+    polkit
+  ];
 
-  postPatch = ''
-    patchShebangs meson_post_install.sh
-  '';
+  # https://gitlab.gnome.org/GNOME/gnome-software/issues/320
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   mesonFlags = [
     "-Denable-flatpak=false"
@@ -38,18 +42,18 @@ stdenv.mkDerivation rec {
     "-Denable-gudev=false"
   ];
 
-  postInstall = ''
-    mkdir -p $out/share/xml/
-    ln -s ${isocodes}/share/xml/iso-codes $out/share/xml/iso-codes
-  '';
-
-  enableParallelBuilding = true;
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gnome-software";
+      attrPath = "gnome3.gnome-software";
+    };
+  };
 
   meta = with stdenv.lib; {
-    homepage = https://www.freedesktop.org/software/PackageKit/;
-    platforms = platforms.linux;
-    maintainers = gnome3.maintainers;
+    description = "Software store that lets you install and update applications and system extensions";
+    homepage = https://wiki.gnome.org/Apps/Software;
     license = licenses.gpl2;
-    description = "GNOME Software lets you install and update applications and system extensions.";
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch
new file mode 100644
index 0000000000000..239e1781bb1b1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/src/gs-language.c
++++ b/src/gs-language.c
+@@ -95,7 +95,7 @@
+ 	g_autoptr(GMarkupParseContext) context = NULL;
+ 
+ 	/* find filename */
+-	filename = g_build_filename (DATADIR, "xml", "iso-codes", "iso_639.xml", NULL);
++	filename = g_build_filename ("@isoCodes@", "share", "xml", "iso-codes", "iso_639.xml", NULL);
+ 	if (!g_file_test (filename, G_FILE_TEST_EXISTS)) {
+ 		g_free (filename);
+ 		filename = g_build_filename ("/usr", "share", "xml", "iso-codes", "iso_639.xml", NULL);
diff --git a/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
index 63dc6870ad402..c6000352ab06c 100644
--- a/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
+++ b/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
@@ -2,26 +2,38 @@
 , gnome3, libxml2, gupnp, gssdp, lua5, liboauth, gupnp-av
 , gmime, json-glib, avahi, tracker, dleyna-server, itstool }:
 
-stdenv.mkDerivation rec {
-  major = "0.3";
-  minor = "5";
-  name = "grilo-plugins-${major}.${minor}";
+let
+  pname = "grilo-plugins";
+  version = "0.3.5";
+  major = gnome3.versionBranch version;
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/grilo-plugins/${major}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${major}/${name}.tar.xz";
     sha256 = "1yv8a0mfd5qmdbdrnd0is5c51s1mvibhw61na99iagnbirxq4xr9";
   };
 
   installFlags = [ "GRL_PLUGINS_DIR=$(out)/lib/grilo-${major}" ];
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gnome3.grilo libxml2 gupnp gssdp gnome3.libgdata
-                  lua5 liboauth gupnp-av sqlite gnome3.gnome-online-accounts
-                  gnome3.totem-pl-parser gnome3.rest gmime json-glib
-                  avahi gnome3.libmediaart tracker dleyna-server intltool itstool ];
+  nativeBuildInputs = [ pkgconfig intltool itstool ];
+  buildInputs = [
+    gnome3.grilo libxml2 gupnp gssdp gnome3.libgdata
+    lua5 liboauth gupnp-av sqlite gnome3.gnome-online-accounts
+    gnome3.totem-pl-parser gnome3.rest gmime json-glib
+    avahi gnome3.libmediaart tracker dleyna-server
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+      versionPolicy = "none";
+    };
+  };
 
   meta = with stdenv.lib; {
-    homepage = https://wiki.gnome.org/action/show/Projects/Grilo;
+    homepage = https://wiki.gnome.org/Projects/Grilo;
     description = "A collection of plugins for the Grilo framework";
     maintainers = gnome3.maintainers;
     license = licenses.lgpl2;
diff --git a/pkgs/desktops/gnome-3/core/grilo/default.nix b/pkgs/desktops/gnome-3/core/grilo/default.nix
index ffa489927e2f1..08a6b784e9bd1 100644
--- a/pkgs/desktops/gnome-3/core/grilo/default.nix
+++ b/pkgs/desktops/gnome-3/core/grilo/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchurl, pkgconfig, file, intltool, glib
 , libxml2, gnome3, gobjectIntrospection, libsoup, python3Packages }:
 
-stdenv.mkDerivation rec {
-  major = "0.3"; # if you change this, also change ./setup-hook.sh
-  minor = "4";
-  name = "grilo-${major}.${minor}";
+let
+  pname = "grilo";
+  version = "0.3.4"; # if you change minor, also change ./setup-hook.sh
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/grilo/${major}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0vh67gja6yn7czh77ssmx6ncp99fl2926pbi2hplqms27c2n8sbw";
   };
 
@@ -28,8 +29,16 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ python3Packages.pygobject3 gobjectIntrospection ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
-    homepage = https://wiki.gnome.org/action/show/Projects/Grilo;
+    homepage = https://wiki.gnome.org/Projects/Grilo;
     description = "Framework that provides access to various sources of multimedia content, using a pluggable system";
     maintainers = gnome3.maintainers;
     license = licenses.lgpl2;
diff --git a/pkgs/desktops/gnome-3/core/gsound/default.nix b/pkgs/desktops/gnome-3/core/gsound/default.nix
index c8a65bfb48f5f..4978223c9b2ba 100644
--- a/pkgs/desktops/gnome-3/core/gsound/default.nix
+++ b/pkgs/desktops/gnome-3/core/gsound/default.nix
@@ -1,18 +1,26 @@
 { stdenv, fetchurl, pkgconfig, glib, libcanberra, gobjectIntrospection, libtool, gnome3 }:
 
 let
-  majVer = "1.0";
+  pname = "gsound";
+  version = "1.0.2";
 in stdenv.mkDerivation rec {
-  name = "gsound-${majVer}.2";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gsound/${majVer}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "bba8ff30eea815037e53bee727bbd5f0b6a2e74d452a7711b819a7c444e78e53";
   };
 
   nativeBuildInputs = [ pkgconfig gobjectIntrospection libtool gnome3.vala ];
   buildInputs = [ glib libcanberra ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Projects/GSound;
     description = "Small library for playing system sounds";
diff --git a/pkgs/desktops/gnome-3/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
index b3948942c12bc..a870b16f9252e 100644
--- a/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
+++ b/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
@@ -36,6 +36,8 @@ in stdenv.mkDerivation rec {
 
   patches = [ ./nix_share_path.patch ];
 
+  enableParallelBuilding = true;
+
   doCheck = stdenv.isLinux;
   checkPhase = ''
     export NO_AT_BRIDGE=1
@@ -45,7 +47,9 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/GtkSourceView;
     platforms = with platforms; linux ++ darwin;
+    license = licenses.lgpl21;
     maintainers = gnome3.maintainers;
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/libcroco/default.nix b/pkgs/desktops/gnome-3/core/libcroco/default.nix
index 744ec3c2fe62a..7df5165d238c7 100644
--- a/pkgs/desktops/gnome-3/core/libcroco/default.nix
+++ b/pkgs/desktops/gnome-3/core/libcroco/default.nix
@@ -1,10 +1,12 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, glib, fetchpatch }:
-
-stdenv.mkDerivation rec {
-  name = "libcroco-0.6.12";
+{ stdenv, fetchurl, pkgconfig, libxml2, glib, fetchpatch, gnome3 }:
+let
+  pname = "libcroco";
+  version = "0.6.12";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0q7qhi7z64i26zabg9dbs5706fa8pmzp1qhpa052id4zdiabbi6x";
   };
 
@@ -29,6 +31,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libxml2 glib ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "GNOME CSS2 parsing and manipulation toolkit";
     homepage = https://git.gnome.org/browse/libcroco;
diff --git a/pkgs/desktops/gnome-3/core/libgdata/default.nix b/pkgs/desktops/gnome-3/core/libgdata/default.nix
index 816ed6476e6b7..f430986cc474a 100644
--- a/pkgs/desktops/gnome-3/core/libgdata/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgdata/default.nix
@@ -2,13 +2,14 @@
 , gobjectIntrospection, liboauth, gnome3, p11-kit, openssl, uhttpmock }:
 
 let
-  majorVersion = "0.17";
+  pname = "libgdata";
+  version = "0.17.9";
 in
 stdenv.mkDerivation rec {
-  name = "libgdata-${majorVersion}.9";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgdata/${majorVersion}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45";
   };
 
@@ -20,8 +21,17 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ json-glib ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+      versionPolicy = "none"; # Stable version has not been updated for a long time.
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "GData API library";
+    homepage = https://wiki.gnome.org/Projects/libgdata;
     maintainers = with maintainers; [ raskin lethalman ];
     platforms = platforms.linux;
     license = licenses.lgpl21Plus;
diff --git a/pkgs/desktops/gnome-3/core/libgee/default.nix b/pkgs/desktops/gnome-3/core/libgee/default.nix
index aaf104532eba6..a5ce9ee5e1052 100644
--- a/pkgs/desktops/gnome-3/core/libgee/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgee/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobjectIntrospection, gnome3 }:
 let
-  ver_maj = "0.20";
-  ver_min = "0";
+  pname = "libgee";
+  version = "0.20.1";
 in
 stdenv.mkDerivation rec {
-  name = "libgee-${ver_maj}.${ver_min}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgee/${ver_maj}/${name}.tar.xz";
-    sha256 = "1fy24dr8imrjlmsqj1syn0gi139gba6hwk3j5vd6sr3pxniqnc11";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0c26x8gi3ivmhlbqcmiag4jwrkvcy28ld24j55nqr3jikb904a5v";
   };
 
   doCheck = true;
@@ -18,8 +18,16 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig autoconf vala gobjectIntrospection ];
   buildInputs = [ glib ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Utility library providing GObject-based interfaces and classes for commonly used data structures";
+    homepage = https://wiki.gnome.org/Projects/Libgee;
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
     maintainers = gnome3.maintainers;
diff --git a/pkgs/desktops/gnome-3/core/libgepub/default.nix b/pkgs/desktops/gnome-3/core/libgepub/default.nix
index 10d676d11d630..cb771fc1989fc 100644
--- a/pkgs/desktops/gnome-3/core/libgepub/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgepub/default.nix
@@ -1,12 +1,15 @@
 { stdenv, fetchurl, meson, ninja, pkgconfig, glib, gobjectIntrospection, gnome3
 , webkitgtk, libsoup, libxml2, libarchive }:
-stdenv.mkDerivation rec {
-  name = "libgepub-${version}.2";
-  version = "0.5";
+
+let
+  pname = "libgepub";
+  version = "0.5.3";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgepub/${version}/${name}.tar.xz";
-    sha256 = "0f1bczy3b00kj7mhm80xgpcgibh8h0pgcr46l4wifi45jacji0w4";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0gn14k1qnkfj0677i2wc42ig4m8biqib9apk23dnl92m3h1f2lmb";
   };
 
   doCheck = true;
@@ -14,6 +17,14 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson ninja pkgconfig gobjectIntrospection ];
   buildInputs = [ glib webkitgtk libsoup libxml2 libarchive ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "GObject based library for handling and rendering epub documents";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
index 689ece9ad788d..d46cf489620a8 100644
--- a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
@@ -1,10 +1,14 @@
-{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, intltool, gobjectIntrospection }:
+{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, intltool, gobjectIntrospection, gnome3 }:
 
+let
+  pname = "libgnome-keyring";
+  version = "3.12.0";
+in
 stdenv.mkDerivation rec {
-  name = "libgnome-keyring-3.12.0";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgnome-keyring/3.12/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783";
   };
 
@@ -13,9 +17,16 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ glib gobjectIntrospection dbus_libs libgcrypt ];
   nativeBuildInputs = [ pkgconfig intltool ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
   meta = {
     description = "Framework for managing passwords and other secrets";
-    homepage = http://live.gnome.org/GnomeKeyring;
+    homepage = https://wiki.gnome.org/Projects/GnomeKeyring;
     license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ];
     inherit (glib.meta) platforms maintainers;
 
diff --git a/pkgs/desktops/gnome-3/core/libgxps/default.nix b/pkgs/desktops/gnome-3/core/libgxps/default.nix
index 9e1e4588918f0..65f8090e4ead9 100644
--- a/pkgs/desktops/gnome-3/core/libgxps/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgxps/default.nix
@@ -1,12 +1,15 @@
 { stdenv, fetchurl, meson, ninja, pkgconfig, glib, gobjectIntrospection, cairo
-, libarchive, freetype, libjpeg, libtiff
+, libarchive, freetype, libjpeg, libtiff, gnome3
 }:
 
-stdenv.mkDerivation rec {
-  name = "libgxps-0.3.0";
+let
+  pname = "libgxps";
+  version = "0.3.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgxps/0.3/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "412b1343bd31fee41f7204c47514d34c563ae34dafa4cc710897366bd6cd0fae";
   };
 
@@ -19,7 +22,19 @@ stdenv.mkDerivation rec {
     "-Dwith-liblcms2=false"
   ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
-    platforms = platforms.linux;
+    description = "A GObject based library for handling and rendering XPS documents";
+    homepage = https://wiki.gnome.org/Projects/libgxps;
+    license = licenses.lgpl21Plus;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/libzapojit/default.nix b/pkgs/desktops/gnome-3/core/libzapojit/default.nix
index 8bd9e11d95f36..11761bd3412ba 100644
--- a/pkgs/desktops/gnome-3/core/libzapojit/default.nix
+++ b/pkgs/desktops/gnome-3/core/libzapojit/default.nix
@@ -1,18 +1,30 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool, json-glib, rest, libsoup, gtk, gnome-online-accounts }:
-
+{ stdenv, fetchurl, pkgconfig, glib, intltool, json-glib, rest, libsoup, gtk, gnome-online-accounts, gnome3 }:
+let
+  pname = "libzapojit";
+  version = "0.0.3";
+in
 stdenv.mkDerivation rec {
-  name = "libzapojit-0.0.3";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libzapojit/0.0/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ glib intltool json-glib rest libsoup gtk gnome-online-accounts ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+  buildInputs = [ glib json-glib rest libsoup gtk gnome-online-accounts ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
 
   meta = with stdenv.lib; {
     description = "GObject wrapper for the SkyDrive and Hotmail REST APIs";
+    license = licenses.lgpl21Plus;
+    maintainers = gnome3.maintainers;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/rest/default.nix b/pkgs/desktops/gnome-3/core/rest/default.nix
index 59f7a53e3e3ec..9cd36cd775033 100644
--- a/pkgs/desktops/gnome-3/core/rest/default.nix
+++ b/pkgs/desktops/gnome-3/core/rest/default.nix
@@ -1,12 +1,13 @@
 { stdenv, fetchurl, pkgconfig, glib, libsoup, gobjectIntrospection, gnome3 }:
 
-stdenv.mkDerivation rec {
-  name = "rest-${version}";
-  major = "0.8";
-  version = "${major}.1";
+let
+  pname = "rest";
+  version = "0.8.1";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/rest/${major}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0513aad38e5d3cedd4ae3c551634e3be1b9baaa79775e53b2dba9456f15b01c9";
   };
 
@@ -15,7 +16,16 @@ stdenv.mkDerivation rec {
 
   configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt";
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
   meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/Librest;
+    license = licenses.lgpl21;
     platforms = platforms.linux;
     maintainers = gnome3.maintainers;
   };
diff --git a/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index f982af2d56db0..a40a8fe8f81ae 100644
--- a/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "simple-scan-${version}";
-  version = "3.26.2";
+  version = "3.26.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/simple-scan/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "d172825b1b77e2e32c21fc847fd670c4711a504b09688f8567a98ac9516fe212";
+    sha256 = "0galkcc76j0p016fvwn16llh0kh4ykvjy4v7kc6qqnlp38g174n3";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
index 6cb3aa39c2143..56292330e0133 100644
--- a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
+++ b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
@@ -1,5 +1,5 @@
 { stdenv, intltool, fetchurl, libxml2, upower
-, pkgconfig, gtk3, glib
+, substituteAll, pkgconfig, gtk3, glib, gexiv2
 , bash, wrapGAppsHook, itstool, vala, sqlite, libxslt
 , gnome3, librsvg, gdk_pixbuf, libnotify
 , evolution-data-server, gst_all_1, poppler
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   name = "tracker-miners-${version}";
-  version = "2.0.3";
+  version = "2.0.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/tracker-miners/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "12413a9f8dfa705a48a2697dcbb3eef12ee91bb98f392a23ba4bda7813e41d1b";
+    sha256 = "0mp9m2waii583sjgr61m1ni6py6dry11r0rzidgvw1g4cxhn89j6";
   };
 
   passthru = {
@@ -32,18 +32,19 @@ stdenv.mkDerivation rec {
     bzip2 evolution-data-server exempi flac giflib glib gnome3.totem-pl-parser
     gnome3.tracker gst_all_1.gst-plugins-base gst_all_1.gstreamer icu
     json-glib libcue libexif libgsf libiptcdata libjpeg libpng libseccomp libsoup
-    libtiff libuuid libvorbis libxml2 poppler taglib upower
+    libtiff libuuid libvorbis libxml2 poppler taglib upower gexiv2
   ];
 
   LANG = "en_US.UTF-8"; # for running tests
 
   doCheck = true;
 
-  postPatch = ''
-    substituteInPlace src/libtracker-common/tracker-domain-ontology.c --replace \
-      'SHAREDIR, "tracker", "domain-ontologies"' \
-      '"${gnome3.tracker}/share", "tracker", "domain-ontologies"'
-  '';
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit (gnome3) tracker;
+    })
+  ];
 
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Projects/Tracker;
diff --git a/pkgs/desktops/gnome-3/core/tracker-miners/fix-paths.patch b/pkgs/desktops/gnome-3/core/tracker-miners/fix-paths.patch
new file mode 100644
index 0000000000000..9ed93fbcca93e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/tracker-miners/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/src/libtracker-miners-common/tracker-domain-ontology.c
++++ b/src/libtracker-miners-common/tracker-domain-ontology.c
+@@ -372,7 +372,7 @@
+ 	if (!priv->ontology_location) {
+ 		gchar *ontology_path;
+ 
+-		ontology_path = g_build_filename (SHAREDIR, "tracker", "ontologies",
++		ontology_path = g_build_filename ("@tracker@", "share", "tracker", "ontologies",
+ 		                                  priv->ontology_name, NULL);
+ 
+ 		if (!g_file_test (ontology_path, G_FILE_TEST_IS_DIR)) {
diff --git a/pkgs/desktops/gnome-3/core/tracker/default.nix b/pkgs/desktops/gnome-3/core/tracker/default.nix
index f75de96669d2c..61ae06ec0664b 100644
--- a/pkgs/desktops/gnome-3/core/tracker/default.nix
+++ b/pkgs/desktops/gnome-3/core/tracker/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "tracker-${version}";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/tracker/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "ece71a56c29151a76fc1b6e43c15dd1b657b37162dc948fa2487faf5ddb47fda";
+    sha256 = "1005w90vhk1cl8g6kxpy2vdzbskw2jskfjcl42lngv18q5sb4bss";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 80e9058bfb1c1..cd150c2d683dd 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -23,7 +23,7 @@ let
   maintainers = with pkgs.lib.maintainers; [ lethalman jtojnar ];
 
   corePackages = with gnome3; [
-    pkgs.desktop-file-utils pkgs.ibus
+    pkgs.desktop-file-utils
     pkgs.shared-mime-info # for update-mime-database
     glib # for gsettings
     gtk3.out # for gtk-update-icon-cache
@@ -52,8 +52,11 @@ let
     hitori gnome-taquin
   ];
 
-  inherit (pkgs) glib gtk2 webkitgtk gtk3 gtkmm3 libcanberra-gtk2
+  inherit (pkgs) atk glib gobjectIntrospection gtk2 webkitgtk gtk3 gtkmm3 libcanberra-gtk2
+    libgtop libgudev libhttpseverywhere librsvg libsecret gdk_pixbuf
+    easytag meld orca rhythmbox shotwell
     clutter clutter-gst clutter-gtk cogl gtkvnc;
+
   inherit (pkgs.gnome2) ORBit2;
   libsoup = pkgs.libsoup.override { gnomeSupport = true; };
   libchamplain = pkgs.libchamplain.override { libsoup = libsoup; };
diff --git a/pkgs/desktops/gnome-3/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
index c6927111ed482..484e585687210 100644
--- a/pkgs/desktops/gnome-3/desktop/rarian/default.nix
+++ b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
@@ -1,9 +1,12 @@
-{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42}:
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42, gnome3}:
+let
+  pname = "rarian";
+  version = "0.8.1";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
-stdenv.mkDerivation rec {
-  name = "rarian-0.8.1";
   src = fetchurl {
-    url = "mirror://gnome/sources/rarian/0.8/${name}.tar.bz2";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.gz";
     sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577";
   };
 
@@ -11,7 +14,18 @@ stdenv.mkDerivation rec {
   buildInputs = [ perl perlXMLParser libxml2 libxslt];
   configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
   meta = with stdenv.lib; {
+    description = "Documentation metadata library based on the proposed Freedesktop.org spec";
+    homepage = https://rarian.freedesktop.org/;
+    license = licenses.lgpl21Plus;
+    maintainers = gnome3.maintainers;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix b/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix
index d22dbd49d3935..3064b62f2a4a9 100644
--- a/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl, cmake, ninja, jq, python3, gnome3, wrapGAppsHook}:
 
 let
-  version = "9";
+  version = "10";
 
   inherit (python3.pkgs) python pygobject3 requests;
 in stdenv.mkDerivation rec {
@@ -9,7 +9,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/chrome-gnome-shell/${version}/${name}.tar.xz";
-    sha256 = "0j6lzlp3jvkpnkk8s99y3m14xiq94rjwjzy2pbfqgv084ahzmz8i";
+    sha256 = "1wp6qvcp758yfj8xlj15sk1d3jsb1p8136y8xxwpi9wfdjpzjs8j";
   };
 
   nativeBuildInputs = [ cmake ninja jq wrapGAppsHook ];
@@ -24,8 +24,15 @@ in stdenv.mkDerivation rec {
   cmakeFlags = [ "-DBUILD_EXTENSION=OFF" ];
   wrapPrefixVariables = [ "PYTHONPATH" ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "chrome-gnome-shell";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "GNOME Shell integration for Chrome";
+    homepage = https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome;
     longDescription = ''
       To use the integration, install the <link xlink:href="https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome/Installation">browser extension</link>, and then set <option>services.gnome3.chrome-gnome-shell.enable</option> to <literal>true</literal>. For Firefox based browsers, you will also need to build the wrappers with <option>nixpkgs.config.firefox.enableGnomeExtensions</option> set to <literal>true</literal>.
     '';
diff --git a/pkgs/desktops/gnome-3/find-latest-version.py b/pkgs/desktops/gnome-3/find-latest-version.py
index e6089c69c042b..d9155fe23930c 100644
--- a/pkgs/desktops/gnome-3/find-latest-version.py
+++ b/pkgs/desktops/gnome-3/find-latest-version.py
@@ -12,10 +12,12 @@ def odd_unstable(version_str, selected):
         return True
 
     even = version[1] % 2 == 0
+    prerelease = version[1] >= 90
+    stable = even and not prerelease
     if selected == 'stable':
-        return even
+        return stable
     else:
-        return not even
+        return True
 
 def no_policy(version, selected):
     return True
diff --git a/pkgs/desktops/gnome-3/misc/gexiv2/default.nix b/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
index 852ed00ed9025..045dc2ffc3311 100644
--- a/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
@@ -1,30 +1,17 @@
 { stdenv, fetchurl, meson, ninja, pkgconfig, exiv2, glib, gnome3, gobjectIntrospection, vala }:
 
 let
-  majorVersion = "0.10";
+  pname = "gexiv2";
+  version = "0.10.8";
 in
 stdenv.mkDerivation rec {
-  name = "gexiv2-${version}";
-  version = "${majorVersion}.7";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gexiv2/${majorVersion}/${name}.tar.xz";
-    sha256 = "1f7312zygw77ml37i5qilhfvmjm59dn753ax71rcb2jm1p76vgcb";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0088m7p044n741ly1m6i7w25z513h9wpgyw0rmx5f0sy3vyjiic1";
   };
 
-  patches = [
-    # Darwin compatibility (https://bugzilla.gnome.org/show_bug.cgi?id=791941)
-    (fetchurl {
-      url = https://bugzilla.gnome.org/attachment.cgi?id=365969;
-      sha256 = "06w744acgnz3hym7sm8c245yzlg05ldkmwgiz3yz4pp6h72brizj";
-    })
-    # GIR & Vala bindings fix (https://bugzilla.gnome.org/show_bug.cgi?id=792431)
-    (fetchurl {
-      url = https://bugzilla.gnome.org/attachment.cgi?id=366662;
-      sha256 = "1ljb2pap5v9z3zhx69ghfyrbl2b62ck35nyn7h5h410d008lcb4v";
-    })
-  ];
-
   preConfigure = ''
     patchShebangs .
   '';
@@ -33,9 +20,17 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib ];
   propagatedBuildInputs = [ exiv2 ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Projects/gexiv2;
     description = "GObject wrapper around the Exiv2 photo metadata library";
+    license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = gnome3.maintainers;
   };
diff --git a/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix b/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
index 779f21882e635..94a29546fb972 100644
--- a/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
@@ -1,11 +1,14 @@
 { stdenv, intltool, fetchurl, pkgconfig, glib
 , gnome3, libsoup, json-glib }:
 
-stdenv.mkDerivation rec {
-  name = "gfbgraph-0.2.3";
+let
+  pname = "gfbgraph";
+  version = "0.2.3";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gfbgraph/0.2/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs";
   };
 
@@ -15,6 +18,13 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "GLib/GObject wrapper for the Facebook Graph API";
     maintainers = gnome3.maintainers;
diff --git a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
index 48c14461daa38..b1251f5111a4b 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-autoar-${version}";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-autoar/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "e1fe2c06eed30305c38bf0939c72b0e51b4716658e2663a0cf4a4bf57874ca62";
+    sha256 = "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix b/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix
index 486898a4e1f2d..38b33ff66671b 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix
@@ -1,17 +1,26 @@
 { stdenv, fetchurl, pkgconfig, intltool, gnome3 }:
-
-stdenv.mkDerivation rec {
-  name = "gnome-video-effects-${version}";
+let
+  pname = "gnome-video-effects";
   version = "0.4.3";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-video-effects/0.4/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
   meta = with stdenv.lib; {
+    description = "A collection of GStreamer effects to be used in different GNOME Modules";
     homepage = https://wiki.gnome.org/Projects/GnomeVideoEffects;
     platforms = platforms.linux;
     maintainers = gnome3.maintainers;
diff --git a/pkgs/desktops/gnome-3/misc/libgames-support/default.nix b/pkgs/desktops/gnome-3/misc/libgames-support/default.nix
index 107200d0895bf..29fdd31765617 100644
--- a/pkgs/desktops/gnome-3/misc/libgames-support/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libgames-support/default.nix
@@ -1,20 +1,31 @@
-{ stdenv, fetchurl, pkgconfig, glib, gtk3, libgee, intltool }:
+{ stdenv, fetchurl, pkgconfig, glib, gtk3, libgee, intltool, gnome3 }:
 
-stdenv.mkDerivation rec {
+let
+  pname = "libgnome-games-support";
   version = "1.2.3";
-  name = "libgnome-games-support-${version}";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgnome-games-support/1.2/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "1vwad7kqy7yd6wqyr71nq0blh7m53r3lz6ya16dmh942kd0w48v1";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ glib gtk3 libgee intltool ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+  buildInputs = [ glib gtk3 libgee ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.libgames-support";
+    };
+  };
 
   meta = with stdenv.lib; {
     description = "Small library intended for internal use by GNOME Games, but it may be used by others";
-    homepage = https://github.com/GNOME/libgames-support;
-    license = licenses.gpl3;
+    homepage = https://wiki.gnome.org/Apps/Games;
+    license = licenses.lgpl3;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
index 865586b51192d..13d34c1c25801 100644
--- a/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
@@ -1,21 +1,28 @@
-{ stdenv, fetchurl, gnome3, libtool, pkgconfig, vala, libssh2
-, gtk-doc, gobjectIntrospection, libgit2, glib }:
+{ stdenv, fetchurl, gnome3, meson, ninja, pkgconfig, vala, libssh2
+, gtk-doc, gobjectIntrospection, libgit2, glib, python3 }:
 
 stdenv.mkDerivation rec {
   name = "libgit2-glib-${version}";
-  version = "0.26.2";
+  version = "0.26.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/libgit2-glib/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "2ad6f20db2e38bbfdb6cb452704fe8a911036b86de82dc75bb0f3b20db40ce9c";
+    sha256 = "0nhyqas110q7ingw97bvyjdb7v4dzch517dq8sn8c33s8910wqcp";
   };
 
+  postPatch = ''
+    for f in meson_vapi_link.py meson_python_compile.py; do
+      chmod +x $f
+      patchShebangs $f
+    done
+  '';
+
   passthru = {
     updateScript = gnome3.updateScript { packageName = "libgit2-glib"; attrPath = "gnome3.libgit2-glib"; };
   };
 
   nativeBuildInputs = [
-    gnome3.gnome-common libtool pkgconfig vala gtk-doc gobjectIntrospection
+    meson ninja pkgconfig vala gtk-doc gobjectIntrospection
   ];
 
   propagatedBuildInputs = [
@@ -23,7 +30,10 @@ stdenv.mkDerivation rec {
     libgit2 glib
   ];
 
-  buildInputs = [ libssh2 ];
+  buildInputs = [
+    libssh2
+    python3.pkgs.pygobject3 # this should really be a propagated input of python output
+  ];
 
   meta = with stdenv.lib; {
     description = "A glib wrapper library around the libgit2 git access library";
diff --git a/pkgs/desktops/gnome-3/misc/libmediaart/default.nix b/pkgs/desktops/gnome-3/misc/libmediaart/default.nix
index 2ea7a58ab6655..74a4cdca722e3 100644
--- a/pkgs/desktops/gnome-3/misc/libmediaart/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libmediaart/default.nix
@@ -1,19 +1,28 @@
 { stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, gobjectIntrospection, gnome3 }:
 
 let
-  majorVersion = "1.9";
+  pname = "libmediaart";
+  version = "1.9.4";
 in
 stdenv.mkDerivation rec {
-  name = "libmediaart-${majorVersion}.4";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libmediaart/${majorVersion}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "a57be017257e4815389afe4f58fdacb6a50e74fd185452b23a652ee56b04813d";
   };
 
   nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
   buildInputs = [ glib gdk_pixbuf ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Library tasked with managing, extracting and handling media art caches";
     maintainers = gnome3.maintainers;
diff --git a/pkgs/desktops/maxx/default.nix b/pkgs/desktops/maxx/default.nix
index 4a404b89ff6d7..69d16c9b20a1d 100644
--- a/pkgs/desktops/maxx/default.nix
+++ b/pkgs/desktops/maxx/default.nix
@@ -2,7 +2,7 @@
 
 , libX11, libXext, libXi, libXau, libXrender, libXft, libXmu, libSM, libXcomposite, libXfixes, libXpm
 , libXinerama, libXdamage, libICE, libXtst, libXaw, fontconfig, pango, cairo, glib, libxml2, atk, gtk2
-, gdk_pixbuf, mesa_noglu, ncurses
+, gdk_pixbuf, libGL, ncurses
 
 , xclock, xsettingsd }:
 
@@ -12,7 +12,7 @@ let
   deps = [
     stdenv.cc.cc libX11 libXext libXi libXau libXrender libXft libXmu libSM libXcomposite libXfixes libXpm
     libXinerama libXdamage libICE libXtst libXaw fontconfig pango cairo glib libxml2 atk gtk2
-    gdk_pixbuf mesa_noglu ncurses
+    gdk_pixbuf libGL ncurses
   ];
   runtime_deps = [
     xclock xsettingsd
diff --git a/pkgs/desktops/plasma-5/kinfocenter.nix b/pkgs/desktops/plasma-5/kinfocenter.nix
index d366aa4b36e49..b35493929ff34 100644
--- a/pkgs/desktops/plasma-5/kinfocenter.nix
+++ b/pkgs/desktops/plasma-5/kinfocenter.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   kcmutils, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
   kdeclarative, kdelibs4support, ki18n, kiconthemes, kio, kpackage, kservice,
-  kwayland, kwidgetsaddons, kxmlgui, libraw1394, mesa_glu, pciutils, solid
+  kwayland, kwidgetsaddons, kxmlgui, libraw1394, libGLU, pciutils, solid
 }:
 
 mkDerivation {
@@ -12,6 +12,6 @@ mkDerivation {
   buildInputs = [
     kcmutils kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
     kdeclarative kdelibs4support ki18n kiconthemes kio kpackage kservice
-    kwayland kwidgetsaddons kxmlgui libraw1394 mesa_glu pciutils solid
+    kwayland kwidgetsaddons kxmlgui libraw1394 libGLU pciutils solid
   ];
 }
diff --git a/pkgs/desktops/xfce/applications/parole.nix b/pkgs/desktops/xfce/applications/parole.nix
index 3b27456d78a37..3951c9deedc6f 100644
--- a/pkgs/desktops/xfce/applications/parole.nix
+++ b/pkgs/desktops/xfce/applications/parole.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, makeWrapper, pkgconfig, intltool, gst_all_1
 , gtk, dbus-glib, libxfce4ui, libxfce4util, xfconf
-, taglib, libnotify
+, taglib, libnotify, hicolor-icon-theme
 , withGstPlugins ? true
 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig intltool ];
 
   buildInputs = [
-    makeWrapper 
+    makeWrapper hicolor-icon-theme
     gtk dbus-glib libxfce4ui libxfce4util xfconf
     taglib libnotify
   ] ++ (with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav]);
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
index 17dcb10c9d1ed..5ec8979045137 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4panel, libxfce4ui, libxfcegui4, xfconf, gtk}:
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4panel
+, libxfce4ui, libxfcegui4, xfconf, gtk, hicolor-icon-theme }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -13,7 +14,7 @@ stdenv.mkDerivation rec {
   name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs = [ intltool libxfce4util libxfce4ui xfce4panel libxfcegui4 xfconf
-    gtk ];
+    gtk hicolor-icon-theme ];
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/development/compilers/arachne-pnr/default.nix b/pkgs/development/compilers/arachne-pnr/default.nix
index 97eb8e8b6421c..70acb79dc7e46 100644
--- a/pkgs/development/compilers/arachne-pnr/default.nix
+++ b/pkgs/development/compilers/arachne-pnr/default.nix
@@ -4,13 +4,13 @@ with builtins;
 
 stdenv.mkDerivation rec {
   name = "arachne-pnr-${version}";
-  version = "2018.02.14";
+  version = "2018.03.07";
 
   src = fetchFromGitHub {
     owner  = "cseed";
     repo   = "arachne-pnr";
-    rev    = "b54675413f9aac1d9a1fb0a8e9354bec2a2a8f3c";
-    sha256 = "06slsb239qk1r2g96n1g37yp8314cy7yi4g1yf86fr87fr11ml8l";
+    rev    = "6701132cbd5c7b31edd0ff18ca6727eb3691186b";
+    sha256 = "1c55k9gpq042mkyxrblwskbmr3v0baj4gkwm45v1gvmhdza6gfw8";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/cudatoolkit/default.nix b/pkgs/development/compilers/cudatoolkit/default.nix
index 8f9f6e19993da..d569e2401b6dd 100644
--- a/pkgs/development/compilers/cudatoolkit/default.nix
+++ b/pkgs/development/compilers/cudatoolkit/default.nix
@@ -28,7 +28,7 @@ let
               This nix expression requires that ${args.name} is already part of the store.
               Register yourself to NVIDIA Accelerated Computing Developer Program, retrieve the CUDA toolkit
               at https://developer.nvidia.com/cuda-toolkit, and run the following command in the download directory:
-              nix-prefetch-url file://${args.name}
+              nix-prefetch-url file://\$PWD/${args.name}
             '';
             inherit (args) name sha256;
           }
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index 094cdb06b6980..6522b12b13102 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -3,10 +3,10 @@
 , curl, tzdata, gdb, darwin
 , callPackage
 , bootstrapVersion ? false
-, version ? "2.078.2"
-, dmdSha256 ? "0x9q4aw4jl36dz7m5111y2sm8jdaj3zg36zhj6vqg1lqpdn3bhls"
-, druntimeSha256 ? "0nfqjcmwqc490bzi3582x1c3zigkf306g4nyd1cyd3vs8lfm6x66"
-, phobosSha256 ? "08ircpf4ilznz638kra272hz8fi5ccvw2cswj5hqckssl1lyqzs8"
+, version ? "2.079.0"
+, dmdSha256 ? "1k6cky71pqnss6h6391p1ich2mjs598f5fda018aygnxg87qgh4y"
+, druntimeSha256 ? "183pqygj5w4105czs5kswyjn9mrcybx3wmkynz3in0m3ylzzjmvl"
+, phobosSha256 ? "0y9i86ggmf41ww2xk2bsrlsv9b1blj5dbyan6q6r6xp8dmgrd79w"
 }:
 
 let
@@ -80,17 +80,6 @@ let
       "phobos/std/datetime/timezone.d";
 
     phobosPatches = ''
-        substituteInPlace ${datetimePath} \
-            --replace "import core.time;" "import core.time;import std.path;"
-
-        substituteInPlace ${datetimePath} \
-            --replace "tzName == \"leapseconds\"" "baseName(tzName) == \"leapseconds\""
-
-        # Ugly hack to fix the hardcoded path to zoneinfo in the source file.
-        # https://issues.dlang.org/show_bug.cgi?id=15391
-        substituteInPlace ${datetimePath} \
-            --replace /usr/share/zoneinfo/ ${tzdata}/share/zoneinfo/
-
         # Ugly hack so the dlopen call has a chance to succeed.
         # https://issues.dlang.org/show_bug.cgi?id=15391
         substituteInPlace phobos/std/net/curl.d \
@@ -102,15 +91,29 @@ let
 
     ''
 
+    + stdenv.lib.optionalString (!bootstrapVersion) ''
+	# Can be removed when https://github.com/dlang/phobos/pull/6224 is included.
+        substituteInPlace ${datetimePath} \
+            --replace "foreach (DirEntry de; dirEntries(tzDatabaseDir, SpanMode.depth))" "import std.path : baseName; foreach (DirEntry de; dirEntries(tzDatabaseDir, SpanMode.depth))"
+
+        substituteInPlace ${datetimePath} \
+            --replace "tzName == \"leapseconds\"" "baseName(tzName) == \"leapseconds\""
+    ''
+
     + stdenv.lib.optionalString (bootstrapVersion) ''
         substituteInPlace ${datetimePath} \
             --replace "import std.traits;" "import std.traits;import std.path;"
 
         substituteInPlace ${datetimePath} \
             --replace "tzName == \"+VERSION\"" "baseName(tzName) == \"leapseconds\" || tzName == \"+VERSION\""
+
+        # Ugly hack to fix the hardcoded path to zoneinfo in the source file.
+        # https://issues.dlang.org/show_bug.cgi?id=15391
+        substituteInPlace ${datetimePath} \
+            --replace /usr/share/zoneinfo/ ${tzdata}/share/zoneinfo/
     ''
 
-    + stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
+    + stdenv.lib.optionalString (bootstrapVersion && stdenv.hostPlatform.isLinux) ''
         # See https://github.com/dlang/phobos/pull/5960
         substituteInPlace phobos/std/path.d \
             --replace "\"/root" "\"${ROOT_HOME_DIR}"
@@ -122,9 +125,6 @@ let
       "dmd";
 
     postPatch = ''
-        # Use proper C++ compiler
-        substituteInPlace ${dmdPath}/posix.mak \
-            --replace g++ $CXX
     ''
 
     + stdenv.lib.optionalString (!bootstrapVersion) ''
@@ -132,6 +132,12 @@ let
             --replace "DFLAGS:=" "DFLAGS:=${usePIC} "
     ''
 
+    + stdenv.lib.optionalString (bootstrapVersion) ''
+        # Use proper C++ compiler
+        substituteInPlace ${dmdPath}/posix.mak \
+            --replace g++ $CXX
+    ''
+
     + phobosPatches
 
     + stdenv.lib.optionalString (stdenv.hostPlatform.isLinux && bootstrapVersion) ''
@@ -145,9 +151,9 @@ let
     ''
 
     + stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin && bootstrapVersion) ''
-	# Was not able to compile on darwin due to "__inline_isnanl"
-	# being undefined.
-	substituteInPlace ${dmdPath}/root/port.c --replace __inline_isnanl __inline_isnan
+	    # Was not able to compile on darwin due to "__inline_isnanl"
+	    # being undefined.
+	    substituteInPlace ${dmdPath}/root/port.c --replace __inline_isnanl __inline_isnan
     '';
 
     nativeBuildInputs = [ bootstrapDmd makeWrapper unzip which gdb ]
@@ -176,7 +182,7 @@ let
         cd ../druntime
         make -j$NIX_BUILD_CORES -f posix.mak PIC=1 INSTALL_DIR=$out DMD=${pathToDmd}
         cd ../phobos
-        make -j$NIX_BUILD_CORES -f posix.mak PIC=1 INSTALL_DIR=$out DMD=${pathToDmd}
+        make -j$NIX_BUILD_CORES -f posix.mak PIC=1 INSTALL_DIR=$out DMD=${pathToDmd} TZ_DATABASE_DIR=${tzdata}/share/zoneinfo/
         cd ..
     '';
 
@@ -260,7 +266,7 @@ let
 
     buildPhase = ''
         cd phobos
-        make -j$NIX_BUILD_CORES -f posix.mak unittest PIC=1 DMD=${dmdBuild}/bin/dmd BUILD=release
+        make -j$NIX_BUILD_CORES -f posix.mak unittest PIC=1 DMD=${dmdBuild}/bin/dmd BUILD=release TZ_DATABASE_DIR=${tzdata}/share/zoneinfo/
     '';
 
     installPhase = ''
diff --git a/pkgs/development/compilers/factor-lang/default.nix b/pkgs/development/compilers/factor-lang/default.nix
index ae2d39d604a6c..ce1987866007e 100644
--- a/pkgs/development/compilers/factor-lang/default.nix
+++ b/pkgs/development/compilers/factor-lang/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, fetchFromGitHub, glib, glibc, git,
   rlwrap, curl, pkgconfig, perl, makeWrapper, tzdata, ncurses,
   libX11, pango, cairo, gtk2, gdk_pixbuf, gtkglext,
-  mesa_glu, libXmu, libXt, libICE, libSM }:
+  libGLU, libXmu, libXt, libICE, libSM }:
 
 stdenv.mkDerivation rec {
   name = "factor-lang-${version}";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ git rlwrap curl perl makeWrapper
     libX11 pango cairo gtk2 gdk_pixbuf gtkglext
-    mesa_glu libXmu libXt libICE libSM ];
+    libGLU libXmu libXt libICE libSM ];
 
   buildPhase = ''
     make $(bash ./build-support/factor.sh make-target) GIT_LABEL=heads/master-${rev}
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     # to be a generic solution here.
     find $(echo ${stdenv.lib.makeLibraryPath [
         glib libX11 pango cairo gtk2 gdk_pixbuf gtkglext
-        mesa_glu libXmu libXt libICE libSM ]} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
+        libGLU libXmu libXt libICE libSM ]} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
 
     (echo $(cat $TMPDIR/so.lst | wc -l) "libs found in cache \`/etc/ld.so.cache'";
     for l in $(<$TMPDIR/so.lst);
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
     wrapProgram $out/bin/factor --prefix LD_LIBRARY_PATH : \
       "${stdenv.lib.makeLibraryPath [ glib
         libX11 pango cairo gtk2 gdk_pixbuf gtkglext
-        mesa_glu libXmu libXt libICE libSM ]}"
+        libGLU libXmu libXt libICE libSM ]}"
 
     sed -ie 's#/bin/.factor-wrapped#/lib/factor/factor#g' $out/bin/factor
     mv $out/bin/.factor-wrapped $out/lib/factor/factor
diff --git a/pkgs/development/compilers/ghc/8.4.1.nix b/pkgs/development/compilers/ghc/8.4.1.nix
index 8f7cdc9568e4c..dd0e5e4b05720 100644
--- a/pkgs/development/compilers/ghc/8.4.1.nix
+++ b/pkgs/development/compilers/ghc/8.4.1.nix
@@ -15,7 +15,7 @@
 
 , # If enabled, GHC will be built with the GPL-free but slower integer-simple
   # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? false, gmp ? null
+  enableIntegerSimple ? false, gmp ? null, m4
 
 , # If enabled, use -fPIC when compiling static libs.
   enableRelocatedStaticLibs ? targetPlatform != hostPlatform
@@ -24,7 +24,7 @@
   # platform). Static libs are always built.
   enableShared ? true
 
-, version ? "8.4.0.20180224"
+, version ? "8.4.1"
 , # Whether to backport https://phabricator.haskell.org/D4388 for
   # deterministic profiling symbol names, at the cost of a slightly
   # non-standard GHC API
@@ -77,8 +77,8 @@ stdenv.mkDerivation rec {
 
   src = fetchgit {
     url = "git://git.haskell.org/ghc.git";
-    rev = "a1e15c8f59092ef2d11be7966bd20688d8dc01e6";
-    sha256 = "1pimf5ryl76r3vwnc2n0qzk4yh7zckp2r2g5rlz8nbddsws2v893";
+    rev = "0a3e2f324dbd525d626ebd3d97e8ffa1cf2f0ffb";
+    sha256 = "1m51khnmf8gw203d8kh6y4ivh0acb2wiqqnb950yfbg2a2k7bcfi";
   };
 
   enableParallelBuilding = true;
@@ -149,7 +149,7 @@ stdenv.mkDerivation rec {
   # masss-rebuild.
   crossConfig = true;
 
-  nativeBuildInputs = [ ghc perl autoconf automake happy alex python3 ];
+  nativeBuildInputs = [ ghc perl autoconf automake m4 happy alex python3 ];
 
   # For building runtime libs
   depsBuildTarget = toolsForTarget;
diff --git a/pkgs/development/compilers/ghcjs/base.nix b/pkgs/development/compilers/ghcjs/base.nix
index ab72d1fb1b3d6..3aac2d70e1373 100644
--- a/pkgs/development/compilers/ghcjs/base.nix
+++ b/pkgs/development/compilers/ghcjs/base.nix
@@ -190,5 +190,6 @@ in mkDerivation (rec {
   license = stdenv.lib.licenses.bsd3;
   platforms = ghc.meta.platforms;
   maintainers = with stdenv.lib.maintainers; [ jwiegley cstrahan dmjio ];
+  hydraPlatforms = if broken then [] else ghc.meta.platforms;
   inherit broken;
 })
diff --git a/pkgs/development/compilers/ghcjs/default.nix b/pkgs/development/compilers/ghcjs/default.nix
index 7f3cc94400158..b5a7a7f7cfc26 100644
--- a/pkgs/development/compilers/ghcjs/default.nix
+++ b/pkgs/development/compilers/ghcjs/default.nix
@@ -2,4 +2,5 @@
 
 bootPkgs.callPackage ./base.nix {
   inherit bootPkgs cabal-install;
+  broken = true;  # https://hydra.nixos.org/build/70552553
 }
diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index 7f23a4d507e7e..604474e01fe95 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, file, glib, libxml2, libav_0_8, ffmpeg, libxslt
-, mesa_noglu , xorg, alsaLib, fontconfig, freetype, pango, gtk2, cairo
+, libGL , xorg, alsaLib, fontconfig, freetype, pango, gtk2, cairo
 , gdk_pixbuf, atk }:
 
 # TODO: Investigate building from source instead of patching binaries.
@@ -51,7 +51,7 @@ let drv = stdenv.mkDerivation rec {
   '';
 
   rpath = lib.makeLibraryPath ([
-    stdenv.cc.cc stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu
+    stdenv.cc.cc stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt libGL
     alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk
   ] ++ (with xorg; [
     libX11 libXext libXtst libXi libXp libXt libXrender libXxf86vm
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 108fefca86366..b6374908757ce 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, makeWrapper, jre, unzip }:
 
 let
-  version = "1.2.21";
+  version = "1.2.30";
 in stdenv.mkDerivation rec {
   inherit version;
   name = "kotlin-${version}";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "08mg0xl6n5kl71rn4ix6innqa7dlirmw1rlj9qwmqv5abp9wpwn5";
+    sha256 = "0wg08cncwfajxfx8860wdf5dr4h92j069qvdr90l5m01ff3nasad";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/llvm/4/lldb.nix b/pkgs/development/compilers/llvm/4/lldb.nix
index 5ffc346a479ef..325149fc19be6 100644
--- a/pkgs/development/compilers/llvm/4/lldb.nix
+++ b/pkgs/development/compilers/llvm/4/lldb.nix
@@ -41,6 +41,11 @@ stdenv.mkDerivation {
     "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
   ];
 
+  # Add missing include to fix error when using std::bind
+  prePatch = ''
+    sed -i -e '30i#include <functional>' include/lldb/Utility/TaskPool.h
+  '';
+
   enableParallelBuilding = true;
 
   postInstall = ''
diff --git a/pkgs/development/compilers/llvm/6/clang/default.nix b/pkgs/development/compilers/llvm/6/clang/default.nix
new file mode 100644
index 0000000000000..919efdc8ef971
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/clang/default.nix
@@ -0,0 +1,108 @@
+{ stdenv, fetch, cmake, libxml2, libedit, llvm, version, release_version, clang-tools-extra_src, python
+, fixDarwinDylibNames
+, enableManpages ? false
+}:
+
+let
+  gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
+  self = stdenv.mkDerivation ({
+    name = "clang-${version}";
+
+    unpackPhase = ''
+      unpackFile ${fetch "cfe" "0cnznvfyl3hgbg8gj58pmwf0pvd2sv5k3ccbivy6q6ggv7c6szg0"}
+      mv cfe-${version}* clang
+      sourceRoot=$PWD/clang
+      unpackFile ${clang-tools-extra_src}
+      mv clang-tools-extra-* $sourceRoot/tools/extra
+    '';
+
+    nativeBuildInputs = [ cmake python ]
+      ++ stdenv.lib.optional enableManpages python.pkgs.sphinx;
+
+    buildInputs = [ libedit libxml2 llvm ]
+      ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+    cmakeFlags = [
+      "-DCMAKE_CXX_FLAGS=-std=c++11"
+    ] ++ stdenv.lib.optionals enableManpages [
+      "-DCLANG_INCLUDE_DOCS=ON"
+      "-DLLVM_ENABLE_SPHINX=ON"
+      "-DSPHINX_OUTPUT_MAN=ON"
+      "-DSPHINX_OUTPUT_HTML=OFF"
+      "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ]
+    # Maybe with compiler-rt this won't be needed?
+    ++ stdenv.lib.optional stdenv.isLinux "-DGCC_INSTALL_PREFIX=${gcc}"
+    ++ stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.cc.libc}/include";
+
+    patches = [ ./purity.patch ];
+
+    postPatch = ''
+      sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
+             -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
+             lib/Driver/ToolChains/*.cpp
+
+      # Patch for standalone doc building
+      sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt
+    '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+      sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
+    '';
+
+    outputs = [ "out" "lib" "python" ];
+
+    # Clang expects to find LLVMgold in its own prefix
+    # Clang expects to find sanitizer libraries in its own prefix
+    postInstall = ''
+      ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+      ln -sv ${llvm}/lib/clang/${release_version}/lib $out/lib/clang/${release_version}/
+      ln -sv $out/bin/clang $out/bin/cpp
+
+      # Move libclang to 'lib' output
+      moveToOutput "lib/libclang.*" "$lib"
+      substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \
+          --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang."
+
+      mkdir -p $python/bin $python/share/clang/
+      mv $out/bin/{git-clang-format,scan-view} $python/bin
+      if [ -e $out/bin/set-xcode-analyzer ]; then
+        mv $out/bin/set-xcode-analyzer $python/bin
+      fi
+      mv $out/share/clang/*.py $python/share/clang
+      rm $out/bin/c-index-test
+    '';
+
+    enableParallelBuilding = true;
+
+    passthru = {
+      isClang = true;
+      inherit llvm;
+    } // stdenv.lib.optionalAttrs stdenv.isLinux {
+      inherit gcc;
+    };
+
+    meta = {
+      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
+      homepage    = http://llvm.org/;
+      license     = stdenv.lib.licenses.ncsa;
+      platforms   = stdenv.lib.platforms.all;
+    };
+  } // stdenv.lib.optionalAttrs enableManpages {
+    name = "clang-manpages-${version}";
+
+    buildPhase = ''
+      make docs-clang-man
+    '';
+
+    installPhase = ''
+      mkdir -p $out/share/man/man1
+      # Manually install clang manpage
+      cp docs/man/*.1 $out/share/man/man1/
+    '';
+
+    outputs = [ "out" ];
+
+    doCheck = false;
+
+    meta.description = "man page for Clang ${version}";
+  });
+in self
diff --git a/pkgs/development/compilers/llvm/6/clang/purity.patch b/pkgs/development/compilers/llvm/6/clang/purity.patch
new file mode 100644
index 0000000000000..b30d0d0b5d5b5
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/clang/purity.patch
@@ -0,0 +1,30 @@
+From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Thu, 18 May 2017 11:56:12 -0500
+Subject: [PATCH] "purity" patch for 5.0
+
+---
+ lib/Driver/ToolChains/Gnu.cpp | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
+index fe3c0191bb..c6a482bece 100644
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -494,13 +494,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+   if (!Args.hasArg(options::OPT_static)) {
+     if (Args.hasArg(options::OPT_rdynamic))
+       CmdArgs.push_back("-export-dynamic");
+-
+-    if (!Args.hasArg(options::OPT_shared)) {
+-      const std::string Loader =
+-          D.DyldPrefix + ToolChain.getDynamicLinker(Args);
+-      CmdArgs.push_back("-dynamic-linker");
+-      CmdArgs.push_back(Args.MakeArgString(Loader));
+-    }
+   }
+ 
+   CmdArgs.push_back("-o");
+-- 
+2.11.0
+
diff --git a/pkgs/development/compilers/llvm/6/compiler-rt-codesign.patch b/pkgs/development/compilers/llvm/6/compiler-rt-codesign.patch
new file mode 100644
index 0000000000000..8f4c76bca1eba
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/compiler-rt-codesign.patch
@@ -0,0 +1,155 @@
+From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Tue, 19 Sep 2017 13:13:06 -0500
+Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
+ needs it
+
+---
+ cmake/Modules/AddCompilerRT.cmake |  8 ------
+ test/asan/CMakeLists.txt          | 52 ---------------------------------------
+ test/tsan/CMakeLists.txt          | 47 -----------------------------------
+ 3 files changed, 107 deletions(-)
+
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index bc5fb9ff7..b64eb4246 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
+         set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
+         set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
+       endif()
+-      if(APPLE)
+-        # Ad-hoc sign the dylibs
+-        add_custom_command(TARGET ${libname}
+-          POST_BUILD  
+-          COMMAND codesign --sign - $<TARGET_FILE:${libname}>
+-          WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
+-        )
+-      endif()
+     endif()
+     install(TARGETS ${libname}
+       ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
+diff --git a/test/asan/CMakeLists.txt b/test/asan/CMakeLists.txt
+index 8bfc15b5c..f23d0f71a 100644
+--- a/test/asan/CMakeLists.txt
++++ b/test/asan/CMakeLists.txt
+@@ -83,58 +83,6 @@ foreach(arch ${ASAN_TEST_ARCH})
+   endif()
+ endforeach()
+ 
+-# iOS and iOS simulator test suites
+-# These are not added into "check-all", in order to run these tests, use
+-# "check-asan-iossim-x86_64" and similar. They also require that an extra env
+-# variable to select which iOS device or simulator to use, e.g.:
+-# SANITIZER_IOSSIM_TEST_DEVICE_IDENTIFIER="iPhone 6"
+-if(APPLE)
+-  set(EXCLUDE_FROM_ALL ON)
+-
+-  set(ASAN_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER})
+-  set(ASAN_TEST_IOS "1")
+-  pythonize_bool(ASAN_TEST_IOS)
+-  set(ASAN_TEST_DYNAMIC True)
+-
+-  foreach(arch ${DARWIN_iossim_ARCHS})
+-    set(ASAN_TEST_IOSSIM "1")
+-    pythonize_bool(ASAN_TEST_IOSSIM)
+-    set(ASAN_TEST_TARGET_ARCH ${arch})
+-    set(ASAN_TEST_TARGET_CFLAGS "-arch ${arch} -isysroot ${DARWIN_iossim_SYSROOT} ${COMPILER_RT_TEST_COMPILER_CFLAGS}")
+-    set(ASAN_TEST_CONFIG_SUFFIX "-${arch}-iossim")
+-    get_bits_for_arch(${arch} ASAN_TEST_BITS)
+-    string(TOUPPER ${arch} ARCH_UPPER_CASE)
+-    set(CONFIG_NAME "IOSSim${ARCH_UPPER_CASE}Config")
+-    configure_lit_site_cfg(
+-      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
+-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+-      )
+-    add_lit_testsuite(check-asan-iossim-${arch} "AddressSanitizer iOS Simulator ${arch} tests"
+-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/
+-      DEPENDS ${ASAN_TEST_DEPS})
+-  endforeach()
+-
+-  foreach (arch ${DARWIN_ios_ARCHS})
+-    set(ASAN_TEST_IOSSIM "0")
+-    pythonize_bool(ASAN_TEST_IOSSIM)
+-    set(ASAN_TEST_TARGET_ARCH ${arch})
+-    set(ASAN_TEST_TARGET_CFLAGS "-arch ${arch} -isysroot ${DARWIN_ios_SYSROOT} ${COMPILER_RT_TEST_COMPILER_CFLAGS}")
+-    set(ASAN_TEST_CONFIG_SUFFIX "-${arch}-ios")
+-    get_bits_for_arch(${arch} ASAN_TEST_BITS)
+-    string(TOUPPER ${arch} ARCH_UPPER_CASE)
+-    set(CONFIG_NAME "IOS${ARCH_UPPER_CASE}Config")
+-    configure_lit_site_cfg(
+-      ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
+-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+-      )
+-    add_lit_testsuite(check-asan-ios-${arch} "AddressSanitizer iOS ${arch} tests"
+-      ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/
+-      DEPENDS ${ASAN_TEST_DEPS})
+-  endforeach()
+-
+-  set(EXCLUDE_FROM_ALL OFF)
+-endif()
+-
+ # Add unit tests.
+ if(COMPILER_RT_INCLUDE_TESTS)
+   set(ASAN_TEST_DYNAMIC False)
+diff --git a/test/tsan/CMakeLists.txt b/test/tsan/CMakeLists.txt
+index a68908612..cde0accb5 100644
+--- a/test/tsan/CMakeLists.txt
++++ b/test/tsan/CMakeLists.txt
+@@ -42,53 +42,6 @@ foreach(arch ${TSAN_TEST_ARCH})
+   list(APPEND TSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
+ endforeach()
+ 
+-# iOS and iOS simulator test suites
+-# These are not added into "check-all", in order to run these tests, use
+-# "check-tsan-iossim-x86_64" and similar. They also require an extra environment
+-# variable to select which iOS device or simulator to use, e.g.:
+-# SANITIZER_IOSSIM_TEST_DEVICE_IDENTIFIER="iPhone 6"
+-if(APPLE)
+-  set(EXCLUDE_FROM_ALL ON)
+-
+-  set(TSAN_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER})
+-  set(TSAN_TEST_IOS "1")
+-  pythonize_bool(TSAN_TEST_IOS)
+-
+-  set(arch "x86_64")
+-  set(TSAN_TEST_IOSSIM "1")
+-  pythonize_bool(TSAN_TEST_IOSSIM)
+-  set(TSAN_TEST_TARGET_ARCH ${arch})
+-  set(TSAN_TEST_TARGET_CFLAGS "-arch ${arch} -isysroot ${DARWIN_iossim_SYSROOT} ${COMPILER_RT_TEST_COMPILER_CFLAGS}")
+-  set(TSAN_TEST_CONFIG_SUFFIX "-${arch}-iossim")
+-  string(TOUPPER ${arch} ARCH_UPPER_CASE)
+-  set(CONFIG_NAME "IOSSim${ARCH_UPPER_CASE}Config")
+-  configure_lit_site_cfg(
+-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
+-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+-    )
+-  add_lit_testsuite(check-tsan-iossim-${arch} "ThreadSanitizer iOS Simulator ${arch} tests"
+-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/
+-    DEPENDS ${TSAN_TEST_DEPS})
+-
+-  set(arch "arm64")
+-  set(TSAN_TEST_IOSSIM "0")
+-  pythonize_bool(TSAN_TEST_IOSSIM)
+-  set(TSAN_TEST_TARGET_ARCH ${arch})
+-  set(TSAN_TEST_TARGET_CFLAGS "-arch ${arch} -isysroot ${DARWIN_ios_SYSROOT} ${COMPILER_RT_TEST_COMPILER_CFLAGS}")
+-  set(TSAN_TEST_CONFIG_SUFFIX "-${arch}-ios")
+-  string(TOUPPER ${arch} ARCH_UPPER_CASE)
+-  set(CONFIG_NAME "IOS${ARCH_UPPER_CASE}Config")
+-  configure_lit_site_cfg(
+-    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
+-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg
+-    )
+-  add_lit_testsuite(check-tsan-ios-${arch} "ThreadSanitizer iOS Simulator ${arch} tests"
+-    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/
+-    DEPENDS ${TSAN_TEST_DEPS})
+-
+-  set(EXCLUDE_FROM_ALL OFF)
+-endif()
+-
+ if(COMPILER_RT_INCLUDE_TESTS)
+   configure_lit_site_cfg(
+     ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
+-- 
+2.14.1
+
diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix
new file mode 100644
index 0000000000000..cfa9e9e15fcf1
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/default.nix
@@ -0,0 +1,78 @@
+{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
+, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun
+, darwin
+}:
+
+let
+  callPackage = newScope (self // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; });
+
+  release_version = "6.0.0";
+  version = release_version; # differentiating these is important for rc's
+
+  fetch = name: sha256: fetchurl {
+    url = "http://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz";
+    inherit sha256;
+  };
+
+  compiler-rt_src = fetch "compiler-rt" "16m7rvh3w6vq10iwkjrr1nn293djld3xm62l5zasisaprx117k6h";
+  clang-tools-extra_src = fetch "clang-tools-extra" "1ll9v6r29xfdiywbn9iss49ad39ah3fk91wiv0sr6k6k9i544fq5";
+
+  # Add man output without introducing extra dependencies.
+  overrideManOutput = drv:
+    let drv-manpages = drv.override { enableManpages = true; }; in
+    drv // { man = drv-manpages.out; /*outputs = drv.outputs ++ ["man"];*/ };
+
+  llvm = callPackage ./llvm.nix {
+    inherit compiler-rt_src stdenv;
+  };
+
+  clang-unwrapped = callPackage ./clang {
+    inherit clang-tools-extra_src stdenv;
+  };
+
+  self = {
+    llvm = overrideManOutput llvm;
+    clang-unwrapped = overrideManOutput clang-unwrapped;
+
+    libclang = self.clang-unwrapped.lib;
+    llvm-manpages = lowPrio self.llvm.man;
+    clang-manpages = lowPrio self.clang-unwrapped.man;
+
+    clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
+
+    libstdcxxClang = ccWrapperFun {
+      cc = self.clang-unwrapped;
+      /* FIXME is this right? */
+      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
+      extraPackages = [ libstdcxxHook ];
+    };
+
+    libcxxClang = ccWrapperFun {
+      cc = self.clang-unwrapped;
+      /* FIXME is this right? */
+      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
+      extraPackages = [ self.libcxx self.libcxxabi ];
+    };
+
+    stdenv = stdenv.override (drv: {
+      allowedRequisites = null;
+      cc = self.clang;
+    });
+
+    libcxxStdenv = stdenv.override (drv: {
+      allowedRequisites = null;
+      cc = self.libcxxClang;
+    });
+
+    lld = callPackage ./lld.nix {};
+
+    lldb = callPackage ./lldb.nix {};
+
+    libcxx = callPackage ./libc++ {};
+
+    libcxxabi = callPackage ./libc++abi.nix {};
+
+    openmp = callPackage ./openmp.nix {};
+  };
+
+in self
diff --git a/pkgs/development/compilers/llvm/6/libc++/default.nix b/pkgs/development/compilers/llvm/6/libc++/default.nix
new file mode 100644
index 0000000000000..3c6c009a58fac
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/libc++/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetch, cmake, python, llvm, libcxxabi, fixDarwinDylibNames, version }:
+
+stdenv.mkDerivation rec {
+  name = "libc++-${version}";
+
+  src = fetch "libcxx" "1n8d0iadkk9fdpplvxkdgrgh2szc6msrx1mpdjpmilz9pn3im4vh";
+
+  postUnpack = ''
+    unpackFile ${libcxxabi.src}
+    export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
+  '';
+
+  # on next rebuild, this can be replaced with optionals; for now set to null to avoid
+  # patches = stdenv.lib.optionals stdenv.hostPlatform.isMusl [
+  patches = if stdenv.hostPlatform.isMusl then [
+    ../../libcxx-0001-musl-hacks.patch
+  ] else null;
+
+  prePatch = ''
+    substituteInPlace lib/CMakeLists.txt --replace "/usr/lib/libc++" "\''${LIBCXX_LIBCXXABI_LIB_PATH}/libc++"
+  '';
+
+  preConfigure = ''
+    # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
+    cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$LIBCXXABI_INCLUDE_DIR")
+  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
+    patchShebangs utils/cat_files.py
+  '';
+  nativeBuildInputs = [ cmake ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl python;
+
+  buildInputs = [ libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  cmakeFlags = [
+    "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib"
+    "-DLIBCXX_LIBCPPABI_VERSION=2"
+    "-DLIBCXX_CXX_ABI=libcxxabi"
+  ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1";
+
+  enableParallelBuilding = true;
+
+  linkCxxAbi = stdenv.isLinux;
+
+  setupHook = ./setup-hook.sh;
+
+  meta = {
+    homepage = http://libcxx.llvm.org/;
+    description = "A new implementation of the C++ standard library, targeting C++11";
+    license = with stdenv.lib.licenses; [ ncsa mit ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/6/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/6/libc++/setup-hook.sh
new file mode 100644
index 0000000000000..9022fced6ecfb
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/libc++/setup-hook.sh
@@ -0,0 +1,3 @@
+linkCxxAbi="@linkCxxAbi@"
+export NIX_CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
+export NIX_CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/pkgs/development/compilers/llvm/6/libc++abi.nix b/pkgs/development/compilers/llvm/6/libc++abi.nix
new file mode 100644
index 0000000000000..05fab16c25cd5
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/libc++abi.nix
@@ -0,0 +1,49 @@
+{ stdenv, cmake, fetch, libcxx, libunwind, llvm, version }:
+
+stdenv.mkDerivation {
+  name = "libc++abi-${version}";
+
+  src = fetch "libcxxabi" "06v4dnqh6q0r3p5h2jznlgb69lg79126lzb2s0lcw1k38b2xkili";
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
+
+  postUnpack = ''
+    unpackFile ${libcxx.src}
+    unpackFile ${llvm.src}
+    export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    export TRIPLE=x86_64-apple-darwin
+  '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+    patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
+  '';
+
+  installPhase = if stdenv.isDarwin
+    then ''
+      for file in lib/*.dylib; do
+        # this should be done in CMake, but having trouble figuring out
+        # the magic combination of necessary CMake variables
+        # if you fancy a try, take a look at
+        # http://www.cmake.org/Wiki/CMake_RPATH_handling
+        install_name_tool -id $out/$file $file
+      done
+      make install
+      install -d 755 $out/include
+      install -m 644 ../include/*.h $out/include
+    ''
+    else ''
+      install -d -m 755 $out/include $out/lib
+      install -m 644 lib/libc++abi.so.1.0 $out/lib
+      install -m 644 ../include/cxxabi.h $out/include
+      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
+      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
+    '';
+
+  meta = {
+    homepage = http://libcxxabi.llvm.org/;
+    description = "A new implementation of low level support for a standard C++ library";
+    license = with stdenv.lib.licenses; [ ncsa mit ];
+    maintainers = with stdenv.lib.maintainers; [ vlstill ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/6/lld.nix b/pkgs/development/compilers/llvm/6/lld.nix
new file mode 100644
index 0000000000000..4997f0a7c94e6
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/lld.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetch
+, cmake
+, libxml2
+, llvm
+, python
+, version
+}:
+
+stdenv.mkDerivation {
+  name = "lld-${version}";
+
+  src = fetch "lld" "02qfkjkjq0snmf8dw9c255xkh8dg06ndny1x470300pk7j1lm33b";
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ llvm libxml2 ];
+
+  outputs = [ "out" "dev" ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    moveToOutput include "$dev"
+    moveToOutput lib "$dev"
+  '';
+
+  meta = {
+    description = "The LLVM Linker";
+    homepage    = http://lld.llvm.org/;
+    license     = stdenv.lib.licenses.ncsa;
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/6/lldb.nix b/pkgs/development/compilers/llvm/6/lldb.nix
new file mode 100644
index 0000000000000..eb565a93ef603
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/lldb.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, fetch
+, cmake
+, zlib
+, ncurses
+, swig
+, which
+, libedit
+, libxml2
+, llvm
+, clang-unwrapped
+, python
+, version
+, darwin
+}:
+
+stdenv.mkDerivation {
+  name = "lldb-${version}";
+
+  src = fetch "lldb" "0m6l2ks4banfmdh7xy7l77ri85kmzavgfy81gkc4gl6wg8flrxa6";
+
+  postPatch = ''
+    # Fix up various paths that assume llvm and clang are installed in the same place
+    sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \
+      cmake/modules/LLDBStandalone.cmake
+    sed -i 's,".*tools/clang/include","${clang-unwrapped}/include",' \
+      cmake/modules/LLDBStandalone.cmake
+    sed -i 's,"$.LLVM_LIBRARY_DIR.",${llvm}/lib ${clang-unwrapped}/lib,' \
+      cmake/modules/LLDBStandalone.cmake
+  '';
+
+  nativeBuildInputs = [ cmake python which swig ];
+  buildInputs = [ ncurses zlib libedit libxml2 llvm ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.libobjc darwin.apple_sdk.libs.xpc darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa ];
+
+  CXXFLAGS = "-fno-rtti";
+  hardeningDisable = [ "format" ];
+
+  cmakeFlags = [
+    "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
+  ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    mkdir -p $out/share/man/man1
+    cp ../docs/lldb.1 $out/share/man/man1/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A next-generation high-performance debugger";
+    homepage    = http://llvm.org/;
+    license     = licenses.ncsa;
+    platforms   = platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/6/llvm-outputs.patch b/pkgs/development/compilers/llvm/6/llvm-outputs.patch
new file mode 100644
index 0000000000000..40096fa3497fd
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/llvm-outputs.patch
@@ -0,0 +1,26 @@
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 94d426b..37f7794 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -333,6 +333,21 @@ int main(int argc, char **argv) {
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
++  /// Nix-specific multiple-output handling: override ActiveLibDir if --link-shared
++  if (!IsInDevelopmentTree) {
++    bool WantShared = true;
++    for (int i = 1; i < argc; ++i) {
++      StringRef Arg = argv[i];
++      if (Arg == "--link-shared")
++        WantShared = true;
++      else if (Arg == "--link-static")
++        WantShared = false; // the last one wins
++    }
++
++    if (WantShared)
++      ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
++  }
++
+   /// We only use `shared library` mode in cases where the static library form
+   /// of the components provided are not available; note however that this is
+   /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/6/llvm.nix b/pkgs/development/compilers/llvm/6/llvm.nix
new file mode 100644
index 0000000000000..4f7a2835cc936
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/llvm.nix
@@ -0,0 +1,184 @@
+{ stdenv
+, fetch
+, fetchpatch
+, cmake
+, python
+, libffi
+, libbfd
+, libxml2
+, valgrind
+, ncurses
+, version
+, release_version
+, zlib
+, compiler-rt_src
+, libcxxabi
+, debugVersion ? false
+, enableManpages ? false
+, enableSharedLibraries ? true
+, darwin
+}:
+
+let
+  src = fetch "llvm" "0224xvfg6h40y5lrbnb9qaq3grmdc5rg00xq03s1wxjfbf8krx8z";
+
+  # Used when creating a version-suffixed symlink of libLLVM.dylib
+  shortVersion = with stdenv.lib;
+    concatStringsSep "." (take 2 (splitString "." release_version));
+in stdenv.mkDerivation (rec {
+  name = "llvm-${version}";
+
+  unpackPhase = ''
+    unpackFile ${src}
+    mv llvm-${version}* llvm
+    sourceRoot=$PWD/llvm
+    unpackFile ${compiler-rt_src}
+    mv compiler-rt-* $sourceRoot/projects/compiler-rt
+  '';
+
+  outputs = [ "out" "python" ]
+    ++ stdenv.lib.optional enableSharedLibraries "lib";
+
+  nativeBuildInputs = [ cmake python ]
+    ++ stdenv.lib.optional enableManpages python.pkgs.sphinx;
+
+  buildInputs = [ libxml2 libffi ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ libcxxabi ];
+
+  propagatedBuildInputs = [ ncurses zlib ];
+
+  # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
+  # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
+  # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
+  # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by
+  # a flag and turn the flag off during the stdenv build.
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace ./projects/compiler-rt/cmake/config-ix.cmake \
+      --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
+
+    substituteInPlace cmake/modules/AddLLVM.cmake \
+      --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir INSTALL_NAME_DIR "$lib/lib")" \
+      --replace 'set(_install_rpath "@loader_path/../lib" ''${extra_libdir})' ""
+  ''
+  # Patch llvm-config to return correct library path based on --link-{shared,static}.
+  + stdenv.lib.optionalString (enableSharedLibraries) ''
+    substitute '${./llvm-outputs.patch}' ./llvm-outputs.patch --subst-var lib
+    patch -p1 < ./llvm-outputs.patch
+  '' + ''
+    # FileSystem permissions tests fail with various special bits
+    substituteInPlace unittests/Support/CMakeLists.txt \
+      --replace "Path.cpp" ""
+    rm unittests/Support/Path.cpp
+
+    # Revert compiler-rt commit that makes codesign mandatory
+    patch -p1 -i ${./compiler-rt-codesign.patch} -d projects/compiler-rt
+  '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+    patch -p1 -i ${../TLI-musl.patch}
+    substituteInPlace unittests/Support/CMakeLists.txt \
+      --replace "add_subdirectory(DynamicLibrary)" ""
+    rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
+  '';
+
+  # hacky fix: created binaries need to be run before installation
+  preBuild = ''
+    mkdir -p $out/
+    ln -sv $PWD/lib $out
+  '';
+
+  cmakeFlags = with stdenv; [
+    "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
+    "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
+    "-DLLVM_BUILD_TESTS=ON"
+    "-DLLVM_ENABLE_FFI=ON"
+    "-DLLVM_ENABLE_RTTI=ON"
+    "-DCOMPILER_RT_INCLUDE_TESTS=OFF" # FIXME: requires clang source code
+  ]
+  ++ stdenv.lib.optional enableSharedLibraries
+    "-DLLVM_LINK_LLVM_DYLIB=ON"
+  ++ stdenv.lib.optionals enableManpages [
+    "-DLLVM_BUILD_DOCS=ON"
+    "-DLLVM_ENABLE_SPHINX=ON"
+    "-DSPHINX_OUTPUT_MAN=ON"
+    "-DSPHINX_OUTPUT_HTML=OFF"
+    "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+  ]
+  ++ stdenv.lib.optional (!isDarwin)
+    "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
+  ++ stdenv.lib.optionals (isDarwin) [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DCAN_TARGET_i386=false"
+  ]
+  ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [
+    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
+    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
+    "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}"
+
+    "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
+    "-DCOMPILER_RT_BUILD_XRAY=OFF"
+  ];
+
+  postBuild = ''
+    rm -fR $out
+
+    paxmark m bin/{lli,llvm-rtdyld}
+    paxmark m unittests/ExecutionEngine/MCJIT/MCJITTests
+    paxmark m unittests/ExecutionEngine/Orc/OrcJITTests
+    paxmark m unittests/Support/SupportTests
+    paxmark m bin/lli-child-target
+  '';
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib
+  '';
+
+  postInstall = ''
+    mkdir -p $python/share
+    mv $out/share/opt-viewer $python/share/opt-viewer
+  ''
+  + stdenv.lib.optionalString enableSharedLibraries ''
+    moveToOutput "lib/libLLVM-*" "$lib"
+    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
+    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+  ''
+  + stdenv.lib.optionalString (stdenv.isDarwin && enableSharedLibraries) ''
+    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
+    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
+    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+  '';
+
+  doCheck = stdenv.isLinux && (!stdenv.isi686);
+
+  checkTarget = "check-all";
+
+  enableParallelBuilding = true;
+
+  passthru.src = src;
+
+  meta = {
+    description = "Collection of modular and reusable compiler and toolchain technologies";
+    homepage    = http://llvm.org/;
+    license     = stdenv.lib.licenses.ncsa;
+    maintainers = with stdenv.lib.maintainers; [ lovek323 raskin viric dtzWill ];
+    platforms   = stdenv.lib.platforms.all;
+  };
+} // stdenv.lib.optionalAttrs enableManpages {
+  name = "llvm-manpages-${version}";
+
+  buildPhase = ''
+    make docs-llvm-man
+  '';
+
+  propagatedBuildInputs = [];
+
+  installPhase = ''
+    make -C docs install
+  '';
+
+  outputs = [ "out" ];
+
+  doCheck = false;
+
+  meta.description = "man pages for LLVM ${version}";
+})
diff --git a/pkgs/development/compilers/llvm/6/openmp.nix b/pkgs/development/compilers/llvm/6/openmp.nix
new file mode 100644
index 0000000000000..091e378af2a18
--- /dev/null
+++ b/pkgs/development/compilers/llvm/6/openmp.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetch
+, cmake
+, zlib
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation {
+  name = "openmp-${version}";
+
+  src = fetch "openmp" "1z1qghx6drdvnlp406q1cp3mgikxxmwymcwzaxbv18vxbw6ha3kw";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Components required to build an executable OpenMP program";
+    homepage    = http://openmp.llvm.org/;
+    license     = stdenv.lib.licenses.mit;
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
index 04fe377fab3bb..baa136b798d98 100644
--- a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
@@ -22,7 +22,7 @@
 , libav_0_8
 , ffmpeg
 , libxslt
-, mesa_noglu
+, libGL
 , freetype
 , fontconfig
 , gtk2
@@ -177,7 +177,7 @@ let result = stdenv.mkDerivation rec {
    * libXt is only needed on amd64
    */
   libraries =
-    [stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk] ++
+    [stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt libGL xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk] ++
     (if swingSupport then [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc] else []);
 
   rpath = stdenv.lib.strings.makeLibraryPath libraries;
diff --git a/pkgs/development/compilers/oraclejdk/jdk9-linux.nix b/pkgs/development/compilers/oraclejdk/jdk9-linux.nix
index f9b48f239fa7a..87f2e49b4431b 100644
--- a/pkgs/development/compilers/oraclejdk/jdk9-linux.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk9-linux.nix
@@ -11,7 +11,7 @@
 , libxml2
 , ffmpeg_2
 , libxslt
-, mesa_noglu
+, libGL
 , freetype
 , fontconfig
 , gtk2
@@ -136,7 +136,7 @@ let result = stdenv.mkDerivation rec {
    * libXt is only needed on amd64
    */
   libraries =
-    [stdenv.cc.libc glib libxml2 ffmpeg_2 libxslt mesa_noglu xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk zlib elfutils] ++
+    [stdenv.cc.libc glib libxml2 ffmpeg_2 libxslt libGL xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk zlib elfutils] ++
     (if swingSupport then [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc] else []);
 
   rpath = stdenv.lib.strings.makeLibraryPath libraries;
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index f42cdcabae3fb..34d4932b7f232 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -20,10 +20,10 @@ let
 
     meta = with stdenv.lib; {
       description = "Compiler for GObject type system";
-      homepage = http://live.gnome.org/Vala;
+      homepage = https://wiki.gnome.org/Projects/Vala;
       license = licenses.lgpl21Plus;
       platforms = platforms.unix;
-      maintainers = with maintainers; [ antono lethalman peterhoeg ];
+      maintainers = with maintainers; [ antono jtojnar lethalman peterhoeg ];
     };
   };
 
@@ -55,14 +55,14 @@ in rec {
 
   vala_0_34 = generic {
     major   = "0.34";
-    minor   = "13";
-    sha256  = "0ahbnhgwhhjkndmbr1d039ws0g2bb324c60fk6wgx7py5wvmgcd2";
+    minor   = "17";
+    sha256  = "0wd2zxww4z1ys4iqz218lvzjqjjqwsaad4x2by8pcyy43sbr7qp2";
   };
 
   vala_0_36 = generic {
     major   = "0.36";
-    minor   = "8";
-    sha256  = "1nz5a8kcb22ss9idb7k1higwpvghd617xwf40fi0a9ggws614lfz";
+    minor   = "12";
+    sha256  = "1nvw721piwdh15bipg0sdll9kvgpz0y9i5fpszlc7y9w64yis25l";
   };
 
   vala_0_38 = generic {
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index 063fd71c0433d..b087eca30c050 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -6,14 +6,14 @@ with builtins;
 
 stdenv.mkDerivation rec {
   name = "yosys-${version}";
-  version = "2018.02.14";
+  version = "2018.03.07";
 
   srcs = [
     (fetchFromGitHub {
       owner  = "yosyshq";
       repo   = "yosys";
-      rev    = "c1abd3b02cab235334342f3520e2535eb74c5792";
-      sha256 = "0pzrplv4p0qzy115rg19lxv4w274iby337zfd7hhlinnpx3gzqvw";
+      rev    = "8b604004dae31f7f3120685dd05d16a4bace904a";
+      sha256 = "18i4l5rka3l9lg8cdpigprw80im293j3bmv0zab1gxf3rhbjpcb7";
       name   = "yosys";
     })
 
diff --git a/pkgs/development/compilers/zulu/8.nix b/pkgs/development/compilers/zulu/8.nix
index 1be0247c5ec33..23ae8ba06bb50 100644
--- a/pkgs/development/compilers/zulu/8.nix
+++ b/pkgs/development/compilers/zulu/8.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, unzip, makeWrapper, setJavaClassPath
-, zulu, glib, libxml2, libav_0_8, ffmpeg, libxslt, mesa_noglu, alsaLib
+, zulu, glib, libxml2, libav_0_8, ffmpeg, libxslt, libGL, alsaLib
 , fontconfig, freetype, gnome2, cairo, gdk_pixbuf, atk, xorg
 , swingSupport ? true }:
 
@@ -15,7 +15,7 @@ let
   extension = if stdenv.isDarwin then "zip" else "tar.gz";
 
   libraries = [
-    stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu
+    stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt libGL
     xorg.libXxf86vm alsaLib fontconfig freetype gnome2.pango
     gnome2.gtk cairo gdk_pixbuf atk
   ] ++ (lib.optionals swingSupport (with xorg; [
diff --git a/pkgs/development/compilers/zulu/default.nix b/pkgs/development/compilers/zulu/default.nix
index 63551d2824759..040af83ece207 100644
--- a/pkgs/development/compilers/zulu/default.nix
+++ b/pkgs/development/compilers/zulu/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, unzip, makeWrapper, setJavaClassPath
-, zulu, glib, libxml2, libav_0_8, ffmpeg, libxslt, mesa_noglu, alsaLib
+, zulu, glib, libxml2, libav_0_8, ffmpeg, libxslt, libGL, alsaLib
 , fontconfig, freetype, gnome2, cairo, gdk_pixbuf, atk, xorg, zlib
 , swingSupport ? true }:
 
@@ -15,7 +15,7 @@ let
   extension = if stdenv.isDarwin then "zip" else "tar.gz";
 
   libraries = [
-    stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu
+    stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt libGL
     xorg.libXxf86vm alsaLib fontconfig freetype gnome2.pango
     gnome2.gtk cairo gdk_pixbuf atk zlib
   ] ++ (lib.optionals swingSupport (with xorg; [
diff --git a/pkgs/development/coq-modules/QuickChick/default.nix b/pkgs/development/coq-modules/QuickChick/default.nix
index 2a0c3ade56124..72603ad44857f 100644
--- a/pkgs/development/coq-modules/QuickChick/default.nix
+++ b/pkgs/development/coq-modules/QuickChick/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, coq, ssreflect }:
+{ stdenv, fetchFromGitHub, coq, ssreflect }:
 
 let param =
   {
@@ -27,8 +27,9 @@ stdenv.mkDerivation rec {
 
   name = "coq${coq.coq-version}-QuickChick-${param.version}";
 
-  src = fetchgit {
-    url = git://github.com/QuickChick/QuickChick.git;
+  src = fetchFromGitHub {
+    owner = "QuickChick";
+    repo = "QuickChick";
     inherit (param) rev sha256;
   };
 
diff --git a/pkgs/development/coq-modules/bignums/default.nix b/pkgs/development/coq-modules/bignums/default.nix
index 5762da66fedda..9d035fec9f96a 100644
--- a/pkgs/development/coq-modules/bignums/default.nix
+++ b/pkgs/development/coq-modules/bignums/default.nix
@@ -1,20 +1,17 @@
 { stdenv, fetchFromGitHub, coq }:
 
-let rev_and_sha = {
-  "8.6" = {
-    rev = "v8.6.0";
-    sha256 = "0553pcsy21cyhmns6k9qggzb67az8kl31d0lwlnz08bsqswigzrj";
-  };
-  "8.7" = {
-    rev = "V8.7.0";
-    sha256 = "11c4sdmpd3l6jjl4v6k213z9fhrmmm1xnly3zmzam1wrrdif4ghl";
-  };
-};
-in
-
-if ! (rev_and_sha ? "${coq.coq-version}") then
-  throw "bignums is not available for Coq ${coq.coq-version}"
-else with rev_and_sha."${coq.coq-version}";
+let param =
+  {
+    "8.6" = {
+      rev = "v8.6.0";
+      sha256 = "0553pcsy21cyhmns6k9qggzb67az8kl31d0lwlnz08bsqswigzrj";
+    };
+    "8.7" = {
+      rev = "V8.7.0";
+      sha256 = "11c4sdmpd3l6jjl4v6k213z9fhrmmm1xnly3zmzam1wrrdif4ghl";
+    };
+  }."${coq.coq-version}"
+; in
 
 stdenv.mkDerivation rec {
 
@@ -23,7 +20,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "coq";
     repo = "bignums";
-    inherit rev sha256;
+    inherit (param) rev sha256;
   };
 
   buildInputs = [ coq.ocaml coq.camlp5 coq.findlib coq ];
@@ -35,4 +32,7 @@ stdenv.mkDerivation rec {
     platforms = coq.meta.platforms;
   };
 
+  passthru = {
+    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" ];
+  };
 }
diff --git a/pkgs/development/coq-modules/fiat/HEAD.nix b/pkgs/development/coq-modules/fiat/HEAD.nix
index b970747c7726c..bc5c0fdd6bb74 100644
--- a/pkgs/development/coq-modules/fiat/HEAD.nix
+++ b/pkgs/development/coq-modules/fiat/HEAD.nix
@@ -1,22 +1,23 @@
-{stdenv, fetchgit, coq, python27}:
+{stdenv, fetchgit, coq, ocamlPackages, python27}:
 
 stdenv.mkDerivation rec {
 
   name = "coq-fiat-${coq.coq-version}-unstable-${version}";
-  version = "2016-10-24";
+  version = "2018-02-27";
 
   src = fetchgit {
     url = "https://github.com/mit-plv/fiat.git";
-    rev = "7feb6c64be9ebcc05924ec58fe1463e73ec8206a";
-    sha256 = "0griqc675yylf9rvadlfsabz41qy5f5idya30p5rv6ysiakxya64";
+    rev = "253fc133397f73d6daed0b9518ca7ab5507a1cb0";
+    sha256 = "0b5z7nz0cr1s7vy04s996dj0pd7ljqx6g5a8syh4hy2z87ijkjzd";
   };
 
-  buildInputs = [ coq.ocaml coq.camlp5 python27 ];
+  buildInputs = [ ocamlPackages.ocaml ocamlPackages.camlp5_transitional
+                  ocamlPackages.findlib python27 ];
   propagatedBuildInputs = [ coq ];
 
   doCheck = false;
 
-  enableParallelBuilding = false;
+  enableParallelBuilding = true;
   buildPhase = "make -j$NIX_BUILD_CORES";
 
   installPhase = ''
@@ -33,6 +34,6 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: v == "8.5";
+    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" ];
   };
 }
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index db92fb3108184..4217b2d0357ac 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -603,12 +603,12 @@ self: super: {
     '';
     doCheck = false; # https://github.com/chrisdone/hindent/issues/299
   })).override {
-    haskell-src-exts = self.haskell-src-exts_1_20_1;
+    haskell-src-exts = self.haskell-src-exts_1_20_2;
   };
 
   # Need newer versions of their dependencies than the ones we have in LTS-10.x.
-  cabal2nix = super.cabal2nix.override { hpack = self.hpack_0_27_0; };
-  hlint = super.hlint.overrideScope (self: super: { haskell-src-exts = self.haskell-src-exts_1_20_1; });
+  cabal2nix = super.cabal2nix.overrideScope (self: super: { hpack = self.hpack_0_27_0; hackage-db = self.hackage-db_2_0_1; });
+  hlint = super.hlint.overrideScope (self: super: { haskell-src-exts = self.haskell-src-exts_1_20_2; });
 
   # https://github.com/bos/configurator/issues/22
   configurator = dontCheck super.configurator;
@@ -632,7 +632,7 @@ self: super: {
   phash = markBroken super.phash;
 
   # https://github.com/deech/fltkhs/issues/16
-  # linking fails because the build doesn't pull in the mesa libraries
+  # linking fails because the build doesn't pull in the libGLU_combined libraries
   fltkhs = markBroken super.fltkhs;
   fltkhs-fluid-examples = dontDistribute super.fltkhs-fluid-examples;
 
@@ -847,14 +847,14 @@ self: super: {
   # Hoogle needs newer versions than lts-10 provides. lambdabot-haskell-plugins
   # depends on Hoogle and therefore needs to use the same version.
   hoogle = super.hoogle.override {
-    haskell-src-exts = self.haskell-src-exts_1_20_1;
+    haskell-src-exts = self.haskell-src-exts_1_20_2;
     http-conduit = self.http-conduit_2_3_0;
   };
   lambdabot-haskell-plugins = super.lambdabot-haskell-plugins.override {
     haskell-src-exts-simple = self.haskell-src-exts-simple_1_20_0_0;
   };
   haskell-src-exts-simple_1_20_0_0 = super.haskell-src-exts-simple_1_20_0_0.override {
-    haskell-src-exts = self.haskell-src-exts_1_20_1;
+    haskell-src-exts = self.haskell-src-exts_1_20_2;
   };
 
   # These packages depend on each other, forming an infinite loop.
@@ -1006,4 +1006,7 @@ self: super: {
   # Needs older hlint
   hpio = dontCheck super.hpio;
 
+  # Needs turtle >=1.5.0, which we use by default in lts-10.x.
+  changelogged = super.changelogged.override { turtle = self.turtle_1_5_4; };
+
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix
index 4538d8471c004..2531f05cfa9ba 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.2.x.nix
@@ -86,4 +86,23 @@ self: super: {
   # https://github.com/purescript/purescript/issues/3189
   purescript = doJailbreak (super.purescript);
 
+  # Needs text >=1.2.3.0 && <1.3, which is not the default yet.
+  Cabal_2_2_0_0 = super.Cabal_2_2_0_0.overrideScope (self: super: {
+    text = self.text_1_2_3_0;
+  });
+
+  # Needs Cabal 2.2.x, which is not the default.
+  distribution-nixpkgs = super.distribution-nixpkgs.overrideScope (self: super: {
+    Cabal = self.Cabal_2_2_0_0;
+    text = self.text_1_2_3_0;
+  });
+  hackage-db_2_0_1 = super.hackage-db_2_0_1.overrideScope (self: super: {
+    Cabal = self.Cabal_2_2_0_0;
+    text = self.text_1_2_3_0;
+  });
+  cabal2nix = super.cabal2nix.overrideScope (self: super: {
+    Cabal = self.Cabal_2_2_0_0;
+    text = self.text_1_2_3_0;
+  });
+
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
index bad0d642b06c0..84cf5ac6d72d3 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
@@ -61,10 +61,15 @@ self: super: {
   });
 
   ## Needs bump to a versioned attribute
+  ## Setup: Encountered missing dependencies:
+  ## free >=4.9 && <5
+  either = super.either_5;
+
+  ## Needs bump to a versioned attribute
   ##     • Could not deduce (Semigroup (IterT m a))
   ##         arising from the superclasses of an instance declaration
   ##       from the context: (Monad m, Monoid a)
-  free = super.free_5;
+  free = super.free_5_0_1;
 
   ## Needs bump to a versioned attribute
   ## Setup: Encountered missing dependencies:
@@ -126,6 +131,11 @@ self: super: {
   });
 
   ## Needs bump to a versioned attribute
+  ## Setup: Encountered missing dependencies:
+  ## doctest >=0.7 && <0.14
+  turtle = super.turtle_1_5_4;
+
+  ## Needs bump to a versioned attribute
   ##     Module ‘Data.Semigroup’ does not export ‘Monoid(..)’
   ##    |
   ## 80 | import Data.Semigroup (Semigroup(..), Monoid(..))
@@ -323,6 +333,7 @@ self: super: {
       rev    = "b7195f160795a081adbb9013810d843f1ba5e062";
       sha256 = "1g351fdpsvn2lbqiy9bg2s0wwrdccb8q1zh7gvpsx5nnj24b1c00";
     };
+    jailbreak = true;   # https://github.com/lpsmith/blaze-builder/issues/12
   });
 
   ## Unmerged.  PR: https://github.com/wrengr/bytestring-trie/pull/3
@@ -441,6 +452,7 @@ self: super: {
       rev    = "34f4593a520176a917b74b8c7fcbbfbd72fb8178";
       sha256 = "1aiklvf08w1hx2jn9n3sm61mfvdx4fkabszkjliapih2yjpmi3hq";
     };
+    jailbreak = true;   # base >=4 && <4.11
   });
 
   ## Unmerged.  PR: https://github.com/vincenthz/hs-securemem/pull/12
@@ -752,4 +764,26 @@ self: super: {
     jailbreak       = true;
   });
 
+  # https://github.com/haskell/HTTP/pull/114
+  HTTP = doJailbreak super.HTTP;
+
+  # Older versions don't compile.
+  haddock-library = self.haddock-library_1_5_0_1;
+  haddock-library_1_5_0_1 = dontHaddock (dontCheck super.haddock-library_1_5_0_1);
+
+  # https://github.com/hslua/hslua-module-text/issues/1
+  hslua-module-text = doJailbreak super.hslua-module-text;
+
+  # https://github.com/phadej/tree-diff/issues/15
+  tree-diff = doJailbreak super.tree-diff;
+
+  # https://github.com/jgm/doctemplates/issues/2
+  doctemplates = markBrokenVersion "0.2.1" super.doctemplates;
+
+  # https://github.com/bitemyapp/esqueleto/issues/77
+  esqueleto = markBrokenVersion "2.5.3" super.esqueleto;
+
+  # Older versions don't compile.
+  hackage-db = super.hackage-db_2_0_1;
+
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 827c5d72a3428..7e12bb03e8fac 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -38,7 +38,7 @@ core-packages:
   - ghcjs-base-0
 
 default-package-overrides:
-  # LTS Haskell 10.7
+  # LTS Haskell 10.8
   - abstract-deque ==0.3
   - abstract-deque-tests ==0.3
   - abstract-par ==0.3.3
@@ -74,6 +74,7 @@ default-package-overrides:
   - aeson-injector ==1.1.0.0
   - aeson-pretty ==0.8.5
   - aeson-qq ==0.8.2
+  - aeson-typescript ==0.1.0.3
   - aeson-utils ==0.3.0.2
   - aeson-yak ==0.1.1.3
   - Agda ==2.5.3
@@ -443,11 +444,11 @@ default-package-overrides:
   - concise ==0.1.0.1
   - concurrency ==1.2.3.0
   - concurrent-extra ==0.7.0.11
-  - concurrent-output ==1.10.3
+  - concurrent-output ==1.10.4
   - concurrent-split ==0.0.1
   - concurrent-supply ==0.1.8
   - cond ==0.4.1.1
-  - conduit ==1.2.13
+  - conduit ==1.2.13.1
   - conduit-algorithms ==0.0.7.2
   - conduit-combinators ==1.1.2
   - conduit-connection ==0.1.0.4
@@ -467,7 +468,7 @@ default-package-overrides:
   - consul-haskell ==0.4.2
   - containers-unicode-symbols ==0.3.1.1
   - contravariant ==1.4.1
-  - contravariant-extras ==0.3.3.1
+  - contravariant-extras ==0.3.4
   - control-bool ==0.2.1
   - control-monad-free ==0.6.1
   - control-monad-loop ==0.1
@@ -511,7 +512,7 @@ default-package-overrides:
   - css-syntax ==0.0.5
   - css-text ==0.1.3.0
   - csv ==0.1.2
-  - csv-conduit ==0.6.7
+  - csv-conduit ==0.6.8.1
   - ctrie ==0.2
   - cubicbezier ==0.6.0.5
   - cubicspline ==0.1.2
@@ -602,7 +603,7 @@ default-package-overrides:
   - dimensional ==1.0.1.3
   - directory-tree ==0.12.1
   - direct-rocksdb ==0.0.3
-  - direct-sqlite ==2.3.21
+  - direct-sqlite ==2.3.22
   - discount ==0.1.1
   - discrimination ==0.3
   - disk-free-space ==0.1.0.1
@@ -663,7 +664,7 @@ default-package-overrides:
   - either-unwrap ==1.1
   - ekg ==0.4.0.14
   - ekg-cloudwatch ==0.0.1.6
-  - ekg-core ==0.1.1.3
+  - ekg-core ==0.1.1.4
   - ekg-json ==0.1.0.6
   - ekg-statsd ==0.2.2.0
   - ekg-wai ==0.1.0.2
@@ -687,7 +688,7 @@ default-package-overrides:
   - equal-files ==0.0.5.3
   - equivalence ==0.3.2
   - erf ==2.0.0.0
-  - errors ==2.2.2
+  - errors ==2.2.4
   - errors-ext ==0.4.1
   - error-util ==0.0.1.2
   - ersatz ==0.4.2
@@ -880,7 +881,7 @@ default-package-overrides:
   - glazier-pipes ==0.1.5.1
   - GLFW-b ==1.4.8.1
   - glib ==0.13.5.0
-  - Glob ==0.9.1
+  - Glob ==0.9.2
   - glob-posix ==0.1.0.1
   - gloss ==1.11.1.1
   - gloss-accelerate ==2.0.0.0
@@ -996,7 +997,7 @@ default-package-overrides:
   - GPipe ==2.2.3
   - gpolyline ==0.1.0.1
   - graph-core ==0.3.0.0
-  - graphs ==0.7
+  - graphs ==0.7.1
   - graphviz ==2999.19.0.0
   - graph-wrapper ==0.2.5.1
   - gravatar ==0.8.0
@@ -1098,7 +1099,7 @@ default-package-overrides:
   - hedgehog ==0.5.2
   - hedgehog-quickcheck ==0.1
   - hedis ==0.9.12
-  - here ==1.2.12
+  - here ==1.2.13
   - heredoc ==0.2.0.0
   - heterocephalus ==1.0.5.1
   - hex ==0.1.2
@@ -1128,7 +1129,7 @@ default-package-overrides:
   - hlibgit2 ==0.18.0.16
   - hlibsass ==0.1.6.1
   - hmatrix ==0.18.2.0
-  - hmatrix-gsl ==0.18.0.1
+  - hmatrix-gsl ==0.18.2.0
   - hmatrix-gsl-stats ==0.4.1.7
   - hmatrix-morpheus ==0.1.1.1
   - hmatrix-repa ==0.1.2.2
@@ -1174,7 +1175,7 @@ default-package-overrides:
   - hsignal ==0.2.7.5
   - hsinstall ==1.6
   - hslogger ==1.2.10
-  - hslua ==0.9.5
+  - hslua ==0.9.5.1
   - hslua-aeson ==0.3.0.1
   - hslua-module-text ==0.1.2.1
   - hsndfile ==0.8.0
@@ -1241,7 +1242,7 @@ default-package-overrides:
   - hweblib ==0.6.3
   - hw-excess ==0.2.0.0
   - hw-hedgehog ==0.1.0.1
-  - hw-hspec-hedgehog ==0.1.0.0
+  - hw-hspec-hedgehog ==0.1.0.2
   - hw-int ==0.0.0.3
   - hw-json ==0.6.0.0
   - hw-mquery ==0.1.0.1
@@ -1298,7 +1299,7 @@ default-package-overrides:
   - instance-control ==0.1.2.0
   - integer-logarithms ==1.0.2
   - integration ==0.2.1
-  - intern ==0.9.1.4
+  - intern ==0.9.2
   - interpolate ==0.1.1
   - interpolatedstring-perl6 ==1.0.0
   - Interpolation ==0.3.0
@@ -1336,7 +1337,6 @@ default-package-overrides:
   - ixset-typed ==0.3.1.1
   - ix-shapable ==0.1.0
   - jack ==0.7.1.3
-  - jailbreak-cabal ==1.3.2
   - javascript-extras ==0.3.2.0
   - jmacro ==0.6.14
   - jmacro-rpc ==0.3.2
@@ -1359,12 +1359,12 @@ default-package-overrides:
   - JuicyPixels-extra ==0.2.2
   - JuicyPixels-scale-dct ==0.1.1.2
   - justified-containers ==0.2.0.1
-  - jvm ==0.4.1
+  - jvm ==0.4.2
   - jwt ==0.7.2
   - kan-extensions ==5.0.2
   - kanji ==3.0.2
   - kansas-comet ==0.4
-  - katip ==0.5.2.0
+  - katip ==0.5.3.0
   - katip-elasticsearch ==0.4.0.4
   - katydid ==0.1.1.0
   - kawhi ==0.3.0
@@ -1387,7 +1387,7 @@ default-package-overrides:
   - language-haskell-extract ==0.2.4
   - language-java ==0.2.8
   - language-javascript ==0.6.0.10
-  - language-puppet ==1.3.15
+  - language-puppet ==1.3.16
   - lapack-carray ==0.0
   - lapack-ffi ==0.0
   - lapack-ffi-tools ==0.0.0.1
@@ -1449,7 +1449,7 @@ default-package-overrides:
   - log-elasticsearch ==0.9.1.0
   - logfloat ==0.13.3.3
   - logger-thread ==0.1.0.2
-  - logging-effect ==1.2.3
+  - logging-effect ==1.2.4
   - logging-effect-extra ==1.2.2
   - logging-effect-extra-file ==1.1.2
   - logging-effect-extra-handler ==1.1.2
@@ -1538,7 +1538,7 @@ default-package-overrides:
   - mmap ==0.5.9
   - mmark ==0.0.4.0
   - mmark-ext ==0.0.1.2
-  - mmorph ==1.1.0
+  - mmorph ==1.1.1
   - mnist-idx ==0.1.2.8
   - mockery ==0.3.5
   - model ==0.4.4
@@ -1546,10 +1546,10 @@ default-package-overrides:
   - modify-fasta ==0.8.2.3
   - moesocks ==1.0.0.44
   - mole ==0.0.6
-  - monad-control ==1.0.2.2
+  - monad-control ==1.0.2.3
   - monad-control-aligned ==0.0.1
-  - monad-coroutine ==0.9.0.3
-  - monadcryptorandom ==0.7.1
+  - monad-coroutine ==0.9.0.4
+  - monadcryptorandom ==0.7.2
   - monad-extras ==0.6.0
   - monad-http ==0.1.0.0
   - monadic-arrays ==0.2.2
@@ -1557,15 +1557,15 @@ default-package-overrides:
   - monadloc ==0.7.1
   - monad-logger ==0.3.28.1
   - monad-logger-json ==0.1.0.0
-  - monad-logger-prefix ==0.1.7
+  - monad-logger-prefix ==0.1.8
   - monad-logger-syslog ==0.1.4.0
   - monad-loops ==0.4.3
   - monad-memo ==0.4.1
-  - monad-metrics ==0.2.1.0
+  - monad-metrics ==0.2.1.1
   - monad-mock ==0.2.0.0
   - monadoid ==0.0.2
   - monad-par ==0.3.4.8
-  - monad-parallel ==0.7.2.2
+  - monad-parallel ==0.7.2.3
   - monad-par-extras ==0.3.3
   - monad-peel ==0.2.1.2
   - monadplus ==1.4.2
@@ -1589,7 +1589,7 @@ default-package-overrides:
   - morte ==1.6.15
   - mountpoints ==1.0.2
   - mstate ==0.2.7
-  - mtl ==2.2.1
+  - mtl ==2.2.2
   - mtl-compat ==0.2.1.3
   - mtl-prelude ==2.0.3.1
   - multiarg ==0.30.0.10
@@ -1627,7 +1627,7 @@ default-package-overrides:
   - netwire ==5.0.2
   - netwire-input ==0.0.6
   - netwire-input-glfw ==0.0.8
-  - network ==2.6.3.3
+  - network ==2.6.3.4
   - network-anonymous-i2p ==0.10.0
   - network-anonymous-tor ==0.11.0
   - network-attoparsec ==0.12.2
@@ -1638,7 +1638,7 @@ default-package-overrides:
   - network-ip ==0.3.0.2
   - network-msgpack-rpc ==0.0.4
   - network-multicast ==0.2.0
-  - Network-NineP ==0.4.1
+  - Network-NineP ==0.4.2
   - network-simple ==0.4.0.5
   - network-transport ==0.5.2
   - network-transport-composed ==0.2.1
@@ -1704,7 +1704,7 @@ default-package-overrides:
   - opml-conduit ==0.6.0.4
   - optional-args ==1.0.2
   - options ==1.2.1.1
-  - optparse-applicative ==0.14.1.0
+  - optparse-applicative ==0.14.2.0
   - optparse-generic ==1.2.3
   - optparse-simple ==0.1.0
   - optparse-text ==0.1.1.0
@@ -1741,7 +1741,7 @@ default-package-overrides:
   - patience ==0.1.1
   - pattern-arrows ==0.0.2
   - pcf-font ==0.2.2.0
-  - pcf-font-embed ==0.1.1.0
+  - pcf-font-embed ==0.1.2.0
   - pcre-heavy ==1.0.0.2
   - pcre-light ==0.4.0.4
   - pcre-utils ==0.1.8.1.1
@@ -1750,9 +1750,9 @@ default-package-overrides:
   - pdf-toolbox-core ==0.0.4.1
   - pdf-toolbox-document ==0.0.7.1
   - pell ==0.1.1.0
-  - pem ==0.2.2
+  - pem ==0.2.4
   - perf ==0.3.0
-  - persistable-record ==0.6.0.0
+  - persistable-record ==0.6.0.1
   - persistable-types-HDBC-pg ==0.0.1.5
   - persistent ==2.7.1
   - persistent-mongoDB ==2.6.0
@@ -1771,7 +1771,7 @@ default-package-overrides:
   - pid1 ==0.1.2.0
   - pinboard ==0.9.12.8
   - pinch ==0.3.2.0
-  - pipes ==4.3.7
+  - pipes ==4.3.8
   - pipes-aeson ==0.4.1.8
   - pipes-attoparsec ==0.5.1.5
   - pipes-bytestring ==2.1.6
@@ -1836,7 +1836,7 @@ default-package-overrides:
   - prettyprinter-compat-ansi-wl-pprint ==1.0.1
   - prettyprinter-compat-wl-pprint ==1.0.0.1
   - pretty-show ==1.6.16
-  - pretty-simple ==2.0.2.0
+  - pretty-simple ==2.0.2.1
   - pretty-types ==0.2.3.1
   - prim-array ==0.2.1
   - primes ==0.2.1.0
@@ -1922,6 +1922,7 @@ default-package-overrides:
   - raw-strings-qq ==1.1
   - rdf ==0.1.0.2
   - rdtsc ==1.3.0.1
+  - re2 ==0.2
   - reactive-banana ==1.1.0.1
   - readable ==0.3.1
   - read-editor ==0.1.0.2
@@ -1980,7 +1981,7 @@ default-package-overrides:
   - rest-wai ==0.2.0.1
   - result ==0.2.6.0
   - rethinkdb-client-driver ==0.0.25
-  - retry ==0.7.6.0
+  - retry ==0.7.6.1
   - rev-state ==0.1.2
   - rfc5051 ==0.1.0.3
   - riak ==1.1.2.4
@@ -2017,16 +2018,16 @@ default-package-overrides:
   - scientific ==0.3.5.2
   - scotty ==0.11.0
   - scrypt ==0.5.0
-  - sdl2 ==2.3.0
+  - sdl2 ==2.3.0.1
   - sdl2-gfx ==0.2
   - sdl2-image ==2.0.0
   - sdl2-mixer ==0.1
   - sdl2-ttf ==2.0.2
   - search-algorithms ==0.3.0
-  - securemem ==0.1.9
+  - securemem ==0.1.10
   - SegmentTree ==0.3
-  - selda ==0.1.12
-  - selda-postgresql ==0.1.7.1
+  - selda ==0.1.12.1
+  - selda-postgresql ==0.1.7.2
   - selda-sqlite ==0.1.6.0
   - semigroupoid-extras ==5
   - semigroupoids ==5.2.1
@@ -2228,7 +2229,7 @@ default-package-overrides:
   - tagged ==0.8.5
   - tagged-binary ==0.2.0.1
   - tagged-identity ==0.1.2
-  - tagsoup ==0.14.3
+  - tagsoup ==0.14.6
   - tagstream-conduit ==0.5.5.3
   - tar ==0.5.0.3
   - tar-conduit ==0.1.1
@@ -2237,7 +2238,7 @@ default-package-overrides:
   - tasty-ant-xml ==1.1.3
   - tasty-auto ==0.2.0.0
   - tasty-dejafu ==0.7.1.1
-  - tasty-discover ==4.1.3
+  - tasty-discover ==4.1.5
   - tasty-expected-failure ==0.11.0.4
   - tasty-fail-fast ==0.0.3
   - tasty-golden ==2.3.1.2
@@ -2310,7 +2311,7 @@ default-package-overrides:
   - threads ==0.5.1.5
   - threads-extras ==0.1.0.2
   - threepenny-editors ==0.5.6
-  - threepenny-gui ==0.8.2.1
+  - threepenny-gui ==0.8.2.2
   - threepenny-gui-flexbox ==0.4.2
   - th-reify-compat ==0.0.1.3
   - th-reify-many ==0.1.8
@@ -2342,7 +2343,7 @@ default-package-overrides:
   - tinytemplate ==0.1.2.0
   - titlecase ==1.0.1
   - tldr ==0.2.5
-  - tls ==1.4.0
+  - tls ==1.4.1
   - tls-debug ==0.4.5
   - tls-session-manager ==0.0.0.2
   - tmapchan ==0.0.3
@@ -2410,8 +2411,8 @@ default-package-overrides:
   - union-find ==0.2
   - uniplate ==1.6.12
   - uniq-deep ==1.1.0.0
-  - unique ==0
   - Unique ==0.4.7.2
+  - unique ==0
   - unit-constraint ==0.0.0
   - units-parser ==0.1.1.2
   - universe ==1.0
@@ -2423,14 +2424,14 @@ default-package-overrides:
   - universum ==1.0.0
   - unix-bytestring ==0.3.7.3
   - unix-compat ==0.5.0.1
-  - unix-time ==0.3.7
+  - unix-time ==0.3.8
   - unliftio ==0.2.4.0
   - unliftio-core ==0.1.1.0
   - unlit ==0.4.0.0
   - unordered-containers ==0.2.8.0
   - unordered-intmap ==0.1.0.0
   - unsafe ==0.0
-  - uri-bytestring ==0.3.1.0
+  - uri-bytestring ==0.3.1.1
   - uri-bytestring-aeson ==0.1.0.4
   - uri-encode ==1.5.0.5
   - uri-templater ==0.3.1.0
@@ -2572,10 +2573,10 @@ default-package-overrides:
   - X11 ==1.8
   - X11-xft ==0.3.1
   - x11-xim ==0.0.9.0
-  - x509 ==1.7.2
-  - x509-store ==1.6.5
+  - x509 ==1.7.3
+  - x509-store ==1.6.6
   - x509-system ==1.6.6
-  - x509-validation ==1.6.9
+  - x509-validation ==1.6.10
   - Xauth ==0.1
   - xdg-basedir ==0.2.2
   - xeno ==0.3.2
@@ -3124,6 +3125,7 @@ dont-distribute-packages:
   assimp:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   astrds:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   astview:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  async-combinators:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   async-manager:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   asynchronous-exceptions:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   aterm-utils:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3140,6 +3142,7 @@ dont-distribute-packages:
   atp-haskell:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   ats-format:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   ats-pkg:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ats-storable:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   attic-schedule:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   AttoBencode:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   AttoJson:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3501,6 +3504,7 @@ dont-distribute-packages:
   call:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   camfort:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   campfire:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  canon:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   canonical-filepath:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   canteven-http:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   canteven-listen-http:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3642,6 +3646,7 @@ dont-distribute-packages:
   clash-multisignal:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   clash-prelude-quickcheck:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   clash-prelude:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Clash-Royale-Hack-Cheats:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   clash-systemverilog:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   clash-verilog:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   clash-vhdl:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3728,6 +3733,7 @@ dont-distribute-packages:
   colorless-http-client:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   colorless-scotty:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   colorless:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  colour-space:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   coltrane:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   columbia:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   com:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3798,6 +3804,7 @@ dont-distribute-packages:
   conduit-zstd:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   conf:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   conffmt:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  confide:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   config-parser:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   config-select:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ConfigFileTH:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3980,6 +3987,7 @@ dont-distribute-packages:
   data-accessor-monads-fd:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-accessor-monads-tf:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-base:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  data-basic:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-concurrent-queue:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-construction:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-cycle:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4208,6 +4216,7 @@ dont-distribute-packages:
   docidx:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   dockercook:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   doctest-discover-configurator:                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  doctest-discover:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   doctest-driver-gen:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   DocTest:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   docvim:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4388,6 +4397,8 @@ dont-distribute-packages:
   etc:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   Eternal10Seconds:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   eternal:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  eternity-timestamped:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  eternity:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Etherbunny:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   ethereum-analyzer-cli:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   ethereum-analyzer-webui:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4491,6 +4502,7 @@ dont-distribute-packages:
   fca:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   fcache:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   fcd:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fcg:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   fckeditor:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   fclabels-monadlib:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   FComp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5301,6 +5313,7 @@ dont-distribute-packages:
   haskus-utils:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   haslo:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasloGUI:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hasmin:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasparql-client:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasql-backend:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasql-class:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5670,6 +5683,7 @@ dont-distribute-packages:
   hPushover:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hpygments:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hpylos:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hquantlib:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hR:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   hranker:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   HRay:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6046,6 +6060,8 @@ dont-distribute-packages:
   introduction:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   intset:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   invertible-hlist:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  invertible-hxt:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  invertible:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   io-capture:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   io-reactive:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   ion:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6178,7 +6194,9 @@ dont-distribute-packages:
   JunkDB:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   JuPyTer-notebook:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   jupyter:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  jvm-batching:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   jvm-binary:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  jvm-streaming:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   JYU-Utils:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   kafka-client:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   kafka-device-glut:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6294,6 +6312,7 @@ dont-distribute-packages:
   lambdiff:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   lame-tester:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   lame:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lang:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-ats:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-bash:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-boogie:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6605,6 +6624,8 @@ dont-distribute-packages:
   manatee:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   mandulia:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   mangopay:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  manifold-random:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  manifolds:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   map-exts:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Mapping:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   mappy:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6735,6 +6756,7 @@ dont-distribute-packages:
   mmtl-base:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   mmtl:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   moan:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Mobile-Legends-Hack-Cheats:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   modelicaparser:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   modsplit:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   modular-arithmetic:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6908,6 +6930,7 @@ dont-distribute-packages:
   mystem:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   myTestlll:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   mzv:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  n-ary-functor:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   nagios-plugin-ekg:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   nakadi-client:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   namecoin-update:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7093,6 +7116,7 @@ dont-distribute-packages:
   ois-input-manager:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   old-version:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   olwrapper:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  om-elm:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   omaketex:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Omega:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   omega:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7149,6 +7173,7 @@ dont-distribute-packages:
   order-statistic-tree:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   order-statistics:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   orders:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Ordinary:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ordrea:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   organize-imports:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   orgmode:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7164,6 +7189,7 @@ dont-distribute-packages:
   oso2pdf:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ot:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   otp-authenticator:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  overload:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   overloaded-records:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   overture:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   pack:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7171,6 +7197,7 @@ dont-distribute-packages:
   package-vt:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   packed-dawg:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   packed-multikey-map:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  packed:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   packedstring:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   packman:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   packunused:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7644,6 +7671,7 @@ dont-distribute-packages:
   random-effin:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   random-hypergeometric:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   random-stream:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  random-string:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   RandomDotOrg:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   range-space:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   Range:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7672,6 +7700,7 @@ dont-distribute-packages:
   raz:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   razom-text-util:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   rbr:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  rc:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   rcu:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   rdf4h:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   rdioh:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7707,6 +7736,7 @@ dont-distribute-packages:
   recursors:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   reddit:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   redHandlers:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  redland:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   reduce-equations:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   reedsolomon:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   reenact:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8006,6 +8036,7 @@ dont-distribute-packages:
   secrm:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   sednaDBXML:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   selectors:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  SelectSequencesFromMSA:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   selenium-server:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   selenium:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   selinux:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8066,6 +8097,7 @@ dont-distribute-packages:
   servant-scotty:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-smsc-ru:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-snap:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  servant-xml:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-zeppelin-client:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-zeppelin-server:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-zeppelin-swagger:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8146,6 +8178,7 @@ dont-distribute-packages:
   simple-config:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-css:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-download:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  simple-effects:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-eval:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-firewire:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-form:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8208,6 +8241,7 @@ dont-distribute-packages:
   smartconstructor:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   smartGroup:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   smartword:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  smcdel:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   sme:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   smerdyakov:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   smiles:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8409,6 +8443,7 @@ dont-distribute-packages:
   stateful-mtl:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   static-canvas:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   static-tensor:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  static-text:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   statistics-dirichlet:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   statistics-fusion:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   statistics-hypergeometric-genvar:             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8455,6 +8490,7 @@ dont-distribute-packages:
   streaming-conduit:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   streaming-eversion:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   streaming-osm:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  streaming-pcap:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   streaming-postgresql-simple:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   streaming-utils:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   strelka:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -9070,6 +9106,7 @@ dont-distribute-packages:
   vty-menu:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   vty-ui-extras:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   vty-ui:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  vulkan-api:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   vulkan:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   wacom-daemon:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   waddle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -9128,6 +9165,7 @@ dont-distribute-packages:
   web-css:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   web-encodings:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   web-fpco:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-inv-route:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   web-mongrel2:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   web-output:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   web-push:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 55f463885bdb4..199b9c1765425 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -58,9 +58,8 @@ self: super: builtins.intersectAttrs super {
   # CUDA needs help finding the SDK headers and libraries.
   cuda = overrideCabal super.cuda (drv: {
     extraLibraries = (drv.extraLibraries or []) ++ [pkgs.linuxPackages.nvidia_x11];
-    configureFlags = (drv.configureFlags or []) ++
-      pkgs.lib.optional pkgs.stdenv.is64bit "--extra-lib-dirs=${pkgs.cudatoolkit}/lib64" ++ [
-      "--extra-lib-dirs=${pkgs.cudatoolkit}/lib"
+    configureFlags = (drv.configureFlags or []) ++ [
+      "--extra-lib-dirs=${pkgs.cudatoolkit.lib}/lib"
       "--extra-include-dirs=${pkgs.cudatoolkit}/include"
     ];
     preConfigure = ''
@@ -221,7 +220,7 @@ self: super: builtins.intersectAttrs super {
   wxcore = super.wxcore.override { wxGTK = pkgs.wxGTK30; };
 
   # Test suite wants to connect to $DISPLAY.
-  hsqml = dontCheck (addExtraLibrary (super.hsqml.override { qt5 = pkgs.qt5Full; }) pkgs.mesa);
+  hsqml = dontCheck (addExtraLibrary (super.hsqml.override { qt5 = pkgs.qt5Full; }) pkgs.libGLU_combined);
 
   # Tests attempt to use NPM to install from the network into
   # /homeless-shelter. Disabled.
@@ -350,7 +349,7 @@ self: super: builtins.intersectAttrs super {
   # https://github.com/deech/fltkhs/issues/16
   fltkhs = overrideCabal super.fltkhs (drv: {
     libraryToolDepends = (drv.libraryToolDepends or []) ++ [pkgs.autoconf];
-    librarySystemDepends = (drv.librarySystemDepends or []) ++ [pkgs.fltk13 pkgs.mesa_noglu pkgs.libjpeg];
+    librarySystemDepends = (drv.librarySystemDepends or []) ++ [pkgs.fltk13 pkgs.libGL pkgs.libjpeg];
   });
 
   # https://github.com/skogsbaer/hscurses/pull/26
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 71b2d1288a01f..a29056d965ac1 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -330,10 +330,10 @@ stdenv.mkDerivation ({
       mkdir -p "$packageConfDir"
       ${setupCommand} register --gen-pkg-config=$packageConfFile
       if [ -d "$packageConfFile" ]; then
-        mv "$packageConfFile"/* "$packageConfDir"
+        mv "$packageConfFile/"* "$packageConfDir"
         rmdir "$packageConfFile"
       fi
-      for packageConfFile in "$packageConfDir"/*; do
+      for packageConfFile in "$packageConfDir/"*; do
         local pkgId=$( ${gnused}/bin/sed -n -e 's|^id: ||p' $packageConfFile )
         mv $packageConfFile $packageConfDir/$pkgId.conf
       done
@@ -354,7 +354,7 @@ stdenv.mkDerivation ({
     ''}
 
     ${optionalString enableSeparateDocOutput ''
-    for x in ${docdir "$doc"}/html/src/*.html; do
+    for x in ${docdir "$doc"}"/html/src/"*.html; do
       remove-references-to -t $out $x
     done
     mkdir -p $doc
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 6bd18f713647a..ee1132e952d35 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -1727,16 +1727,16 @@ self: {
      }) {};
 
   "BitStringRandomMonad" = callPackage
-    ({ mkDerivation, base, bitstring, bytestring, mtl, parallel
-     , primitive, QuickCheck, transformers, vector
+    ({ mkDerivation, base, bitstring, bytestring, deepseq, mtl
+     , parallel, primitive, QuickCheck, transformers, vector
      }:
      mkDerivation {
        pname = "BitStringRandomMonad";
-       version = "1.0.0.1";
-       sha256 = "1snk8ynll0gc82gqgvnkc6zjpnaszrwc6bb1r4a63ca5vsip2r7x";
+       version = "1.1.0.2";
+       sha256 = "1g19c1dl80chmxlqqpja19y1np7xnfwspyrp895wnrzi2zydh2jm";
        libraryHaskellDepends = [
-         base bitstring bytestring mtl parallel primitive transformers
-         vector
+         base bitstring bytestring deepseq mtl parallel primitive
+         transformers vector
        ];
        testHaskellDepends = [
          base bitstring bytestring mtl parallel primitive QuickCheck
@@ -2491,22 +2491,27 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "Cabal_2_0_1_1" = callPackage
-    ({ mkDerivation, array, base, binary, bytestring, containers
-     , deepseq, directory, filepath, pretty, process, QuickCheck, tagged
-     , tasty, tasty-hunit, tasty-quickcheck, time, unix
+  "Cabal_2_2_0_0" = callPackage
+    ({ mkDerivation, array, base, base-compat, base-orphans, binary
+     , bytestring, containers, deepseq, Diff, directory, filepath
+     , integer-logarithms, mtl, optparse-applicative, parsec, pretty
+     , process, QuickCheck, tagged, tar, tasty, tasty-golden
+     , tasty-hunit, tasty-quickcheck, text, time, transformers
+     , tree-diff, unix
      }:
      mkDerivation {
        pname = "Cabal";
-       version = "2.0.1.1";
-       sha256 = "06rx6jxikqrdf7k6pmam5cvhwnagq6njmb9qm5777nrz278ccaw0";
+       version = "2.2.0.0";
+       sha256 = "0bq4zgfvwlqjgsnph61pllvwhfmn8z224ycplqziyxc3zmwb3a96";
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
-         pretty process time unix
+         mtl parsec pretty process text time transformers unix
        ];
        testHaskellDepends = [
-         array base containers directory filepath pretty QuickCheck tagged
-         tasty tasty-hunit tasty-quickcheck
+         array base base-compat base-orphans bytestring containers deepseq
+         Diff directory filepath integer-logarithms optparse-applicative
+         pretty process QuickCheck tagged tar tasty tasty-golden tasty-hunit
+         tasty-quickcheck text tree-diff
        ];
        doCheck = false;
        homepage = "http://www.haskell.org/cabal/";
@@ -2812,6 +2817,25 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "ChasingBottoms_1_3_1_4" = callPackage
+    ({ mkDerivation, array, base, containers, mtl, QuickCheck, random
+     , syb
+     }:
+     mkDerivation {
+       pname = "ChasingBottoms";
+       version = "1.3.1.4";
+       sha256 = "06cynx6hcbfpky7qq3b3mjjgwbnaxkwin3znbwq4b9ikiw0ng633";
+       libraryHaskellDepends = [
+         base containers mtl QuickCheck random syb
+       ];
+       testHaskellDepends = [
+         array base containers mtl QuickCheck random syb
+       ];
+       description = "For testing partial and infinite values";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "CheatSheet" = callPackage
     ({ mkDerivation, base, containers, directory }:
      mkDerivation {
@@ -2903,6 +2927,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "spam";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ClassLaws" = callPackage
@@ -2971,6 +2996,24 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "ClustalParser_1_2_2" = callPackage
+    ({ mkDerivation, base, cmdargs, either-unwrap, hspec, parsec, text
+     , vector
+     }:
+     mkDerivation {
+       pname = "ClustalParser";
+       version = "1.2.2";
+       sha256 = "1x6ag9knvc18pwvm3cdj936pn8k2nbd54n3ii44r7b7kjcb7cgk6";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base parsec text vector ];
+       executableHaskellDepends = [ base cmdargs either-unwrap ];
+       testHaskellDepends = [ base hspec parsec text ];
+       description = "Libary for parsing Clustal tools output";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "Coadjute" = callPackage
     ({ mkDerivation, array, base, bytestring, bytestring-csv
      , containers, directory, fgl, filepath, mtl, old-time, pretty
@@ -6065,17 +6108,18 @@ self: {
      }) {};
 
   "GLFW" = callPackage
-    ({ mkDerivation, base, libX11, mesa, OpenGL }:
+    ({ mkDerivation, base, libGL, libX11, libXext, libXfixes, OpenGL }:
      mkDerivation {
        pname = "GLFW";
        version = "0.5.2.5";
        sha256 = "029sw2sykr6plffkrmigv5mj2aklllmgi021is5ybsbqv0mxgh9p";
        libraryHaskellDepends = [ base OpenGL ];
-       librarySystemDepends = [ libX11 mesa ];
+       librarySystemDepends = [ libGL libX11 libXext libXfixes ];
        homepage = "http://haskell.org/haskellwiki/GLFW";
        description = "A Haskell binding for GLFW";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs.xorg) libX11; inherit (pkgs) mesa;};
+     }) {inherit (pkgs) libGL; inherit (pkgs.xorg) libX11; 
+         inherit (pkgs.xorg) libXext; inherit (pkgs.xorg) libXfixes;};
 
   "GLFW-OGL" = callPackage
     ({ mkDerivation, base, libX11, libXrandr, mtl, OGL }:
@@ -6142,16 +6186,16 @@ self: {
      }) {};
 
   "GLHUI" = callPackage
-    ({ mkDerivation, base, libX11, mesa }:
+    ({ mkDerivation, base, libGL, libX11 }:
      mkDerivation {
        pname = "GLHUI";
        version = "1.1.0";
        sha256 = "043xw36hrwzc6xdr5vlydbsv5m8675vnk8pfxycr7qixzwljn0aa";
        libraryHaskellDepends = [ base ];
-       librarySystemDepends = [ libX11 mesa ];
+       librarySystemDepends = [ libGL libX11 ];
        description = "Open OpenGL context windows in X11 with libX11";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs.xorg) libX11; inherit (pkgs) mesa;};
+     }) {inherit (pkgs) libGL; inherit (pkgs.xorg) libX11;};
 
   "GLM" = callPackage
     ({ mkDerivation, aeson, base, bytestring, interpolate, lens, mtl
@@ -6196,17 +6240,17 @@ self: {
      }) {};
 
   "GLURaw" = callPackage
-    ({ mkDerivation, base, freeglut, mesa, OpenGLRaw, transformers }:
+    ({ mkDerivation, base, libGL, libGLU, OpenGLRaw, transformers }:
      mkDerivation {
        pname = "GLURaw";
        version = "2.0.0.3";
        sha256 = "1vncyxaqyc7apw42wkpyxinyvzgzcnx6x858x4z15h5qq70ghb2q";
        libraryHaskellDepends = [ base OpenGLRaw transformers ];
-       librarySystemDepends = [ freeglut mesa ];
+       librarySystemDepends = [ libGL libGLU ];
        homepage = "http://www.haskell.org/haskellwiki/Opengl";
        description = "A raw binding for the OpenGL graphics system";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) freeglut; inherit (pkgs) mesa;};
+     }) {inherit (pkgs) libGL; inherit (pkgs) libGLU;};
 
   "GLUT" = callPackage
     ({ mkDerivation, array, base, containers, OpenGL, StateVar
@@ -6709,29 +6753,6 @@ self: {
      }:
      mkDerivation {
        pname = "Glob";
-       version = "0.9.1";
-       sha256 = "0rzmsknl02p332dxmm36fyrz3dpma7bchn0ymyjipxvqil20pjw0";
-       libraryHaskellDepends = [
-         base containers directory dlist filepath transformers
-         transformers-compat
-       ];
-       testHaskellDepends = [
-         base containers directory dlist filepath HUnit QuickCheck
-         test-framework test-framework-hunit test-framework-quickcheck2
-         transformers transformers-compat
-       ];
-       homepage = "http://iki.fi/matti.niemenmaa/glob/";
-       description = "Globbing library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "Glob_0_9_2" = callPackage
-    ({ mkDerivation, base, containers, directory, dlist, filepath
-     , HUnit, QuickCheck, test-framework, test-framework-hunit
-     , test-framework-quickcheck2, transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "Glob";
        version = "0.9.2";
        sha256 = "1rbwcq9w9951qsnp13vqcm9r01yax2yh1wk8s4zxa3ckk9717iwg";
        libraryHaskellDepends = [
@@ -6746,7 +6767,6 @@ self: {
        homepage = "http://iki.fi/matti.niemenmaa/glob/";
        description = "Globbing library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "GlomeTrace" = callPackage
@@ -8791,6 +8811,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "HTTP_4000_3_10" = callPackage
+    ({ mkDerivation, array, base, bytestring, case-insensitive, conduit
+     , conduit-extra, deepseq, http-types, httpd-shed, HUnit, mtl
+     , network, network-uri, parsec, pureMD5, split, test-framework
+     , test-framework-hunit, time, wai, warp
+     }:
+     mkDerivation {
+       pname = "HTTP";
+       version = "4000.3.10";
+       sha256 = "12cy8yn06cm9xqcnvvk0s0yh6w67r6bxs8wn37q97y0b6fjiwdfj";
+       libraryHaskellDepends = [
+         array base bytestring mtl network network-uri parsec time
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive conduit conduit-extra deepseq
+         http-types httpd-shed HUnit mtl network network-uri pureMD5 split
+         test-framework test-framework-hunit wai warp
+       ];
+       homepage = "https://github.com/haskell/HTTP";
+       description = "A library for client-side HTTP";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "HTTP-Simple" = callPackage
     ({ mkDerivation, base, HTTP, network }:
      mkDerivation {
@@ -10165,6 +10209,26 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {inherit (pkgs) openssl;};
 
+  "HsOpenSSL_0_11_4_13" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, integer-gmp, network
+     , openssl, time
+     }:
+     mkDerivation {
+       pname = "HsOpenSSL";
+       version = "0.11.4.13";
+       sha256 = "0izzgyjd0s9whqllwyg8gv2xnsfax9sf8j47zq1d2vmk7mpx2p0j";
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [
+         base bytestring integer-gmp network time
+       ];
+       librarySystemDepends = [ openssl ];
+       testHaskellDepends = [ base bytestring ];
+       homepage = "https://github.com/vshabanov/HsOpenSSL";
+       description = "Partial OpenSSL binding for Haskell";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) openssl;};
+
   "HsOpenSSL-x509-system" = callPackage
     ({ mkDerivation, base, bytestring, HsOpenSSL, unix }:
      mkDerivation {
@@ -10941,6 +11005,8 @@ self: {
        pname = "JuicyPixels-extra";
        version = "0.3.0";
        sha256 = "08hf3dklz3zaczbffq11z1yjk3hqf53rnz3g9n989ndw8ybkm865";
+       revision = "1";
+       editedCabalFile = "17y0d11hgdnzcgv7q7zl3wic2w2xhqn123vzfsdivncgdgqlvy0c";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base JuicyPixels ];
        testHaskellDepends = [ base hspec JuicyPixels ];
@@ -12594,6 +12660,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "spam";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "Modulo" = callPackage
@@ -13323,26 +13390,6 @@ self: {
      }:
      mkDerivation {
        pname = "Network-NineP";
-       version = "0.4.1";
-       sha256 = "0jhgjvrh9r30h0n4iq8p543dib7c455na9sy0zqpw7iccxn4aylx";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base binary bytestring containers convertible exceptions hslogger
-         monad-loops monad-peel mstate mtl network NineP regex-posix
-         stateref transformers
-       ];
-       description = "High-level abstraction over 9P protocol";
-       license = "unknown";
-     }) {};
-
-  "Network-NineP_0_4_2" = callPackage
-    ({ mkDerivation, base, binary, bytestring, containers, convertible
-     , exceptions, hslogger, monad-loops, monad-peel, mstate, mtl
-     , network, NineP, regex-posix, stateref, transformers
-     }:
-     mkDerivation {
-       pname = "Network-NineP";
        version = "0.4.2";
        sha256 = "136pqyxpjyml0hfblpj6hmhsy2i8r796shcnl0rwljmvw1mhcg6d";
        isLibrary = true;
@@ -13354,7 +13401,6 @@ self: {
        ];
        description = "High-level abstraction over 9P protocol";
        license = "unknown";
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "NewBinary" = callPackage
@@ -14033,7 +14079,7 @@ self: {
      }) {};
 
   "OpenGLRaw" = callPackage
-    ({ mkDerivation, base, bytestring, containers, fixed, half, mesa
+    ({ mkDerivation, base, bytestring, containers, fixed, half, libGL
      , text, transformers
      }:
      mkDerivation {
@@ -14043,11 +14089,11 @@ self: {
        libraryHaskellDepends = [
          base bytestring containers fixed half text transformers
        ];
-       librarySystemDepends = [ mesa ];
+       librarySystemDepends = [ libGL ];
        homepage = "http://www.haskell.org/haskellwiki/Opengl";
        description = "A raw binding for the OpenGL graphics system";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) mesa;};
+     }) {inherit (pkgs) libGL;};
 
   "OpenGLRaw21" = callPackage
     ({ mkDerivation, OpenGLRaw }:
@@ -14216,6 +14262,7 @@ self: {
        homepage = "https://github.com/MarisaKirisame/Ordinary#readme";
        description = "A Programming Language in Construction";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "PArrows" = callPackage
@@ -16671,8 +16718,8 @@ self: {
      }:
      mkDerivation {
        pname = "SelectSequencesFromMSA";
-       version = "1.0.3";
-       sha256 = "0i2nzwv0czg1igyfiyk5n748j15fcavn84dwxibiqf48wzjz9gsc";
+       version = "1.0.4";
+       sha256 = "0rr8gxkypjg347fna0q5aqjllvc95477n3xy63cvs0bn8v5vq9z5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -16683,8 +16730,9 @@ self: {
        executableHaskellDepends = [
          base cmdargs directory either-unwrap
        ];
-       description = "SelectSequences is a tool for selection of a represenative subset of sequences from a multiple sequence alignment in clustal format";
+       description = "Selects a representative subset of sequences from multiple sequence alignment";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "Semantique" = callPackage
@@ -16747,15 +16795,18 @@ self: {
      }) {};
 
   "ShellCheck" = callPackage
-    ({ mkDerivation, base, containers, directory, json, mtl, parsec
-     , process, QuickCheck, regex-tdfa
+    ({ mkDerivation, base, Cabal, containers, directory, json, mtl
+     , parsec, process, QuickCheck, regex-tdfa
      }:
      mkDerivation {
        pname = "ShellCheck";
        version = "0.4.7";
        sha256 = "0z0dlx4s0j5v627cvns5qdq1r6kcka5nif8g62hdria29lk5aj8q";
+       revision = "1";
+       editedCabalFile = "0fbrysx6wb9kmlzbfyjcb7107rnf0rjldlszaqnpib33vwd7l1hx";
        isLibrary = true;
        isExecutable = true;
+       setupHaskellDepends = [ base Cabal process ];
        libraryHaskellDepends = [
          base containers directory json mtl parsec process QuickCheck
          regex-tdfa
@@ -16766,7 +16817,7 @@ self: {
        testHaskellDepends = [
          base containers directory json mtl parsec QuickCheck regex-tdfa
        ];
-       homepage = "http://www.shellcheck.net/";
+       homepage = "https://www.shellcheck.net/";
        description = "Shell script analysis tool";
        license = stdenv.lib.licenses.gpl3;
      }) {};
@@ -18922,8 +18973,8 @@ self: {
      }:
      mkDerivation {
        pname = "Villefort";
-       version = "0.1.2.9";
-       sha256 = "1mnh2snr1pwv5nwv4g7scwmclh2nm871kqb5py0v5sx4ff04kgbi";
+       version = "0.1.2.10";
+       sha256 = "0c7i5y5h2q55nj4wv692zd8hsai998dws3mdqgj5h1065v48r6im";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -19269,12 +19320,12 @@ self: {
          shell32 = null; shfolder = null; shlwapi = null; user32 = null; 
          winmm = null;};
 
-  "Win32_2_6_2_0" = callPackage
+  "Win32_2_7_0_0" = callPackage
     ({ mkDerivation }:
      mkDerivation {
        pname = "Win32";
-       version = "2.6.2.0";
-       sha256 = "0rfp3yivwycp988rp01zgx61m7csrr7v449ksjrym1bb06ksxgjr";
+       version = "2.7.0.0";
+       sha256 = "1583c2x208bpwgvk0gyy2931604vikx57kyiiaxf7mp8shh13fhi";
        homepage = "https://github.com/haskell/win32";
        description = "A binding to Windows Win32 API";
        license = stdenv.lib.licenses.bsd3;
@@ -20618,6 +20669,33 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "accelerate-fourier_1_0_0_4" = callPackage
+    ({ mkDerivation, accelerate, accelerate-arithmetic
+     , accelerate-llvm-native, accelerate-utility, base, containers
+     , criterion, QuickCheck, transformers, utility-ht
+     }:
+     mkDerivation {
+       pname = "accelerate-fourier";
+       version = "1.0.0.4";
+       sha256 = "1263ximbciszb6cij232vxsxfj5rj7n77l88fd7vh6ayx7rrr45m";
+       libraryHaskellDepends = [
+         accelerate accelerate-arithmetic accelerate-utility base containers
+         QuickCheck transformers utility-ht
+       ];
+       testHaskellDepends = [
+         accelerate accelerate-arithmetic accelerate-utility base QuickCheck
+         utility-ht
+       ];
+       benchmarkHaskellDepends = [
+         accelerate accelerate-arithmetic accelerate-llvm-native
+         accelerate-utility base criterion utility-ht
+       ];
+       homepage = "http://hub.darcs.net/thielema/accelerate-fourier/";
+       description = "Fast Fourier transform and convolution using the Accelerate framework";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "accelerate-fourier-benchmark" = callPackage
     ({ mkDerivation, accelerate, accelerate-cuda, accelerate-cufft
      , accelerate-fftw, accelerate-fourier, base, criterion
@@ -21946,6 +22024,40 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "aeson_1_3_0_0" = callPackage
+    ({ mkDerivation, attoparsec, base, base-compat, base-orphans
+     , base16-bytestring, bytestring, containers, deepseq, directory
+     , dlist, filepath, generic-deriving, ghc-prim, hashable
+     , hashable-time, HUnit, integer-logarithms, QuickCheck
+     , quickcheck-instances, scientific, tagged, template-haskell
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, th-abstraction, time, time-locale-compat
+     , unordered-containers, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "aeson";
+       version = "1.3.0.0";
+       sha256 = "1glrwccp5hi9zn8d34761zinvpmbd4dsbgzqg2qxk6glp928phna";
+       libraryHaskellDepends = [
+         attoparsec base base-compat bytestring containers deepseq dlist
+         ghc-prim hashable scientific tagged template-haskell text
+         th-abstraction time time-locale-compat unordered-containers
+         uuid-types vector
+       ];
+       testHaskellDepends = [
+         attoparsec base base-compat base-orphans base16-bytestring
+         bytestring containers directory dlist filepath generic-deriving
+         ghc-prim hashable hashable-time HUnit integer-logarithms QuickCheck
+         quickcheck-instances scientific tagged template-haskell
+         test-framework test-framework-hunit test-framework-quickcheck2 text
+         time time-locale-compat unordered-containers uuid-types vector
+       ];
+       homepage = "https://github.com/bos/aeson";
+       description = "Fast JSON parsing and encoding";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "aeson-applicative" = callPackage
     ({ mkDerivation, aeson, base, text, unordered-containers }:
      mkDerivation {
@@ -22046,6 +22158,8 @@ self: {
        pname = "aeson-compat";
        version = "0.3.7.1";
        sha256 = "1jya3lm9imclhb8qqihv39hhb62vvs3qpws7pc5fc23vwg0hsx2r";
+       revision = "1";
+       editedCabalFile = "0zm4i3n8n2xj53ymb8cd1d7bnsgna5064198ackj1xjh8zsaarz6";
        libraryHaskellDepends = [
          aeson attoparsec attoparsec-iso8601 base base-compat bytestring
          containers exceptions hashable scientific tagged text time
@@ -22317,8 +22431,8 @@ self: {
     ({ mkDerivation, aeson, base, hspec, lens, lens-aeson, text }:
      mkDerivation {
        pname = "aeson-picker";
-       version = "0.1.0.2";
-       sha256 = "0m14ykp894s8nbg89v2f83yyb344ypxwchmyww0nq0mcpzk3v95b";
+       version = "0.1.0.3";
+       sha256 = "0ipkl5plyhbkld3i6jrlzy9y1kpvb69gy1nqb45rbnjbdxafslpk";
        libraryHaskellDepends = [ aeson base lens lens-aeson text ];
        testHaskellDepends = [ base hspec text ];
        homepage = "https://github.com/ozzzzz/aeson-picker#readme";
@@ -23507,8 +23621,8 @@ self: {
     ({ mkDerivation, base, syb, template-haskell }:
      mkDerivation {
        pname = "algebraic-classes";
-       version = "0.8";
-       sha256 = "1ihrxm3gn4558wlwlm8wagq133ipy04kc3d6wsx0an83wyrcnz1w";
+       version = "0.9";
+       sha256 = "1q850c0kaycvqw7gv0qhnssy84qh1z8avyh4kswx6n5n4swc4z4z";
        libraryHaskellDepends = [ base syb template-haskell ];
        homepage = "https://github.com/sjoerdvisscher/algebraic-classes";
        description = "Conversions between algebraic classes and F-algebras";
@@ -26655,8 +26769,8 @@ self: {
        pname = "ansi-pretty";
        version = "0.1.2.1";
        sha256 = "1ill2dlzbxn97smkzdqcjfx9z3fw7pgwvz6w36d92n8p7zwik23h";
-       revision = "3";
-       editedCabalFile = "046w5nybk8fyhicw5wy7qchbx9k4sib189afj2gysrsblj0ki864";
+       revision = "4";
+       editedCabalFile = "0yp5wihvl22vfcr0x22xdbvrk79hcahx1kyfpwpvv0jkahc5c03q";
        libraryHaskellDepends = [
          aeson ansi-wl-pprint array base bytestring containers generics-sop
          nats scientific semigroups tagged text time unordered-containers
@@ -26681,12 +26795,12 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ansi-terminal_0_8_0_1" = callPackage
+  "ansi-terminal_0_8_0_2" = callPackage
     ({ mkDerivation, base, colour }:
      mkDerivation {
        pname = "ansi-terminal";
-       version = "0.8.0.1";
-       sha256 = "0na61wyqn686qvzy5xbi3c8i1ba5ps6qlwnkkigzhj3c2xf3bm0v";
+       version = "0.8.0.2";
+       sha256 = "1yph18lklk9hrj1m5gjwygnqbmpg333zyf4bmmm1zvlzflrwj6l9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base colour ];
@@ -29151,6 +29265,7 @@ self: {
        homepage = "https://github.com/serokell/async-combinators";
        description = "Async combinators";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "async-dejafu" = callPackage
@@ -29608,6 +29723,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "atomic-primops_0_8_2" = callPackage
+    ({ mkDerivation, base, ghc-prim, primitive }:
+     mkDerivation {
+       pname = "atomic-primops";
+       version = "0.8.2";
+       sha256 = "0cyr2x6xqz6s233znrz9rnrfj56m9bmnawwnka0lsqqy1hp8gy37";
+       libraryHaskellDepends = [ base ghc-prim primitive ];
+       homepage = "https://github.com/rrnewton/haskell-lockfree/wiki";
+       description = "A safe approach to CAS and other atomic ops in Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "atomic-primops-foreign" = callPackage
     ({ mkDerivation, base, bits-atomic, HUnit, test-framework
      , test-framework-hunit, time
@@ -29743,28 +29871,28 @@ self: {
   "ats-pkg" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, binary, bytestring, bzlib
      , Cabal, cli-setup, composition-prelude, containers, dependency
-     , dhall, directory, file-embed, filemanip, http-client
-     , http-client-tls, lzma, microlens, microlens-th
-     , optparse-applicative, parallel-io, process, shake, shake-ats
-     , shake-ext, tar, temporary, text, unix, zip-archive, zlib
+     , dhall, directory, file-embed, filemanip, hashable, http-client
+     , http-client-tls, lens, lzma, mtl, optparse-applicative
+     , parallel-io, process, shake, shake-ats, shake-ext, tar, temporary
+     , text, unix, zip-archive, zlib
      }:
      mkDerivation {
        pname = "ats-pkg";
-       version = "2.6.1.16";
-       sha256 = "0wbdndrc6vwac8qyihz52cbhd6nv5sjvw7ssrl8g92gziwjbrgf3";
+       version = "2.7.1.0";
+       sha256 = "0lpyvcj5cki19fs9022yb1wzwis6a89f3i4s03rcll0lvshmxd2q";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cli-setup ];
        libraryHaskellDepends = [
          ansi-wl-pprint base binary bytestring bzlib Cabal
          composition-prelude containers dependency dhall directory
-         file-embed filemanip http-client http-client-tls lzma microlens
-         microlens-th parallel-io process shake shake-ats shake-ext tar text
-         unix zip-archive zlib
+         file-embed filemanip hashable http-client http-client-tls lens lzma
+         mtl parallel-io process shake shake-ats shake-ext tar text unix
+         zip-archive zlib
        ];
        executableHaskellDepends = [
-         base composition-prelude directory microlens optparse-applicative
-         shake shake-ats temporary text
+         base composition-prelude directory lens optparse-applicative shake
+         shake-ats temporary text
        ];
        homepage = "https://github.com/vmchale/atspkg#readme";
        description = "A build tool for ATS";
@@ -29805,6 +29933,7 @@ self: {
        homepage = "https://github.com//ats-generic#readme";
        description = "Marshal ATS types into Haskell";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "attempt" = callPackage
@@ -30167,6 +30296,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "attoparsec-uri_0_0_4" = callPackage
+    ({ mkDerivation, attoparsec, attoparsec-ip, base, bytedump, ip
+     , strict, text, vector
+     }:
+     mkDerivation {
+       pname = "attoparsec-uri";
+       version = "0.0.4";
+       sha256 = "1wzisb9xnykaxnp1jp0a3lvh1m2swynk2r2mg6nfv5jzlv52q0sf";
+       libraryHaskellDepends = [
+         attoparsec attoparsec-ip base bytedump ip strict text vector
+       ];
+       homepage = "https://github.com/athanclark/attoparsec-uri#readme";
+       description = "URI parser / printer using attoparsec";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "attosplit" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring }:
      mkDerivation {
@@ -32281,6 +32427,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "base-orphans_0_7" = callPackage
+    ({ mkDerivation, base, ghc-prim, hspec, hspec-discover, QuickCheck
+     }:
+     mkDerivation {
+       pname = "base-orphans";
+       version = "0.7";
+       sha256 = "057f9npnqk71ccfh95djfkpd54dzazphj06grwxa3fyhwcwxrb8a";
+       libraryHaskellDepends = [ base ghc-prim ];
+       testHaskellDepends = [ base hspec QuickCheck ];
+       testToolDepends = [ hspec-discover ];
+       homepage = "https://github.com/haskell-compat/base-orphans#readme";
+       description = "Backwards-compatible orphan instances for base";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base-prelude" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -32427,6 +32589,8 @@ self: {
        pname = "base64-bytestring-type";
        version = "1";
        sha256 = "0h74c0qhf4n0pamrl29ha5hgf940bay0dhl8rifaw4l03z8rn0bl";
+       revision = "1";
+       editedCabalFile = "06glza5pqw1s3xpk8va36q1b1bfcirkkrcq9pfd8x12lhjjnsxxr";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring binary bytestring cereal
          deepseq hashable QuickCheck text
@@ -32848,8 +33012,8 @@ self: {
      }:
      mkDerivation {
        pname = "bdcs";
-       version = "0.2.0";
-       sha256 = "1a7cnxfvgrwi966kfccd29s45246dspqnd1fn953xfid4zfqy5s1";
+       version = "0.2.1";
+       sha256 = "0zlzxh6ps655zryifyzz7pbypv32w6a475ighbc840awkw59qvvy";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -33059,8 +33223,8 @@ self: {
     ({ mkDerivation, base, dunai, MonadRandom, mtl, transformers }:
      mkDerivation {
        pname = "bearriver";
-       version = "0.10.4.2";
-       sha256 = "1y8ha8kllp0s6v89q8kyzhmlchrldf9rahdk3sx9qygwbq36fg09";
+       version = "0.10.4.3";
+       sha256 = "0d8yhccsg66163cjkdccdjf26rkzv4i7fv454fj9vhylxcggzjin";
        libraryHaskellDepends = [
          base dunai MonadRandom mtl transformers
        ];
@@ -34064,8 +34228,8 @@ self: {
        pname = "binary-orphans";
        version = "0.1.8.0";
        sha256 = "1k6067wn9zki7xvbslvxx8cq1wrmz3kjb3q3x8mxycc9v765fxgi";
-       revision = "1";
-       editedCabalFile = "1zgp08sikp71k9llcplkdrfhh2gn43gk7hx81nslixl5s91a1j9q";
+       revision = "2";
+       editedCabalFile = "1kvrp3dfqx49lkvjvglv18r7yzb165wisg953yih9sgksm02pxf5";
        libraryHaskellDepends = [
          aeson base binary case-insensitive hashable scientific tagged text
          text-binary time unordered-containers vector
@@ -34463,9 +34627,10 @@ self: {
      }) {esound = null;};
 
   "bindings-GLFW" = callPackage
-    ({ mkDerivation, base, bindings-DSL, HUnit, libX11, libXcursor
-     , libXext, libXfixes, libXi, libXinerama, libXrandr, libXxf86vm
-     , mesa, template-haskell, test-framework, test-framework-hunit
+    ({ mkDerivation, base, bindings-DSL, HUnit, libGL, libX11
+     , libXcursor, libXext, libXfixes, libXi, libXinerama, libXrandr
+     , libXxf86vm, template-haskell, test-framework
+     , test-framework-hunit
      }:
      mkDerivation {
        pname = "bindings-GLFW";
@@ -34473,19 +34638,19 @@ self: {
        sha256 = "1xmmwxbjpxwndiacrh2mk3lih6cs8d83ax07vg5sgyp5d7qigvik";
        libraryHaskellDepends = [ base bindings-DSL template-haskell ];
        librarySystemDepends = [
-         libX11 libXcursor libXext libXfixes libXi libXinerama libXrandr
-         libXxf86vm mesa
+         libGL libX11 libXcursor libXext libXfixes libXi libXinerama
+         libXrandr libXxf86vm
        ];
        testHaskellDepends = [
          base HUnit test-framework test-framework-hunit
        ];
        description = "Low-level bindings to GLFW OpenGL library";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXcursor; 
-         inherit (pkgs.xorg) libXext; inherit (pkgs.xorg) libXfixes; 
-         inherit (pkgs.xorg) libXi; inherit (pkgs.xorg) libXinerama; 
-         inherit (pkgs.xorg) libXrandr; inherit (pkgs.xorg) libXxf86vm; 
-         inherit (pkgs) mesa;};
+     }) {inherit (pkgs) libGL; inherit (pkgs.xorg) libX11; 
+         inherit (pkgs.xorg) libXcursor; inherit (pkgs.xorg) libXext; 
+         inherit (pkgs.xorg) libXfixes; inherit (pkgs.xorg) libXi; 
+         inherit (pkgs.xorg) libXinerama; inherit (pkgs.xorg) libXrandr; 
+         inherit (pkgs.xorg) libXxf86vm;};
 
   "bindings-K8055" = callPackage
     ({ mkDerivation, base, K8055D }:
@@ -36253,8 +36418,8 @@ self: {
     ({ mkDerivation, base-noprelude, containers, directory, text }:
      mkDerivation {
        pname = "bizzlelude";
-       version = "1.1.0";
-       sha256 = "1vpdh9fm4jrl7zkzp8wh8ng3x6glwk3h88fbjmajz6qpqw3z2w4h";
+       version = "1.2.0";
+       sha256 = "1yqp46blrllx5irn1vvvx1v2n06pdfdfmhcng8hvs7q43fcsfgcr";
        libraryHaskellDepends = [
          base-noprelude containers directory text
        ];
@@ -36445,8 +36610,8 @@ self: {
        pname = "blank-canvas";
        version = "0.6.2";
        sha256 = "1qhdvxia8wlnv0ss9dsrxdfw3qsf376ypnpsijz7vxkj9dmzyq84";
-       revision = "1";
-       editedCabalFile = "0zc84pjrmb2xpsvavvf950vrwyd6nlfj3x2hi930wq1kjm7pr4ps";
+       revision = "3";
+       editedCabalFile = "0fanap927iszy3vkymkjcmzd74gripbbp222zcmzl5gkn3l4g931";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring bytestring colour
@@ -36588,6 +36753,8 @@ self: {
        pname = "blaze-builder";
        version = "0.4.0.2";
        sha256 = "1m33y6p5xldni8p4fzg8fmsyqvkfmnimdamr1xjnsmgm3dkf9lws";
+       revision = "1";
+       editedCabalFile = "1n8z1zcvrslsa9dvflx8528hsialmnljl1zzdjf1azs24xdq2npm";
        libraryHaskellDepends = [ base bytestring deepseq text ];
        testHaskellDepends = [
          base bytestring HUnit QuickCheck test-framework
@@ -39247,6 +39414,41 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "bv-little" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, hashable, integer-gmp
+     , mono-traversable, primitive, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "bv-little";
+       version = "0.1.0.0";
+       sha256 = "0gll7czp8xcm8lcvlxqxfx1gn8wj6cvqm5c9xh0g1s445ykrs93w";
+       libraryHaskellDepends = [
+         base deepseq hashable integer-gmp mono-traversable primitive
+         QuickCheck
+       ];
+       testHaskellDepends = [
+         base hashable mono-traversable QuickCheck tasty tasty-hunit
+         tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ base criterion deepseq ];
+       homepage = "https://github.com/recursion-ninja/bv-little";
+       description = "Efficient little-endian bit vector library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "bv-sized" = callPackage
+    ({ mkDerivation, base, parameterized-utils }:
+     mkDerivation {
+       pname = "bv-sized";
+       version = "0.1.0.0";
+       sha256 = "07na5cg1w0ybydsvm4i7gdz7ghas6j7a4n8gzpd4sywfvrbirp21";
+       libraryHaskellDepends = [ base parameterized-utils ];
+       homepage = "https://github.com/benjaminselfridge/bv-sized";
+       description = "a BitVector datatype that is parameterized by the vector width";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "byline" = callPackage
     ({ mkDerivation, ansi-terminal, base, colour, containers
      , exceptions, haskeline, mtl, terminfo-hs, text, transformers
@@ -39488,8 +39690,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytestring-encodings";
-       version = "0.1.0.0";
-       sha256 = "070n1203shbfkimkrxr5xs5znpljbb61v7npwp9lgfpj4h8gyaq7";
+       version = "0.1.0.1";
+       sha256 = "09lx8d92dhd4gicz8pbpj19k2iaig1yl4lksqpxiqgxzybwqn0rc";
        libraryHaskellDepends = [ base bytestring ghc-prim ];
        testHaskellDepends = [ base bytestring hedgehog ];
        benchmarkHaskellDepends = [ base bytestring gauge text ];
@@ -39592,8 +39794,8 @@ self: {
     ({ mkDerivation, base, bytestring, terminal-progress-bar, time }:
      mkDerivation {
        pname = "bytestring-progress";
-       version = "1.0.8";
-       sha256 = "0zqb9aanlwq2ddcn7n8xar73fjb04xvfym7k5pjah2cs1lh3cv8l";
+       version = "1.0.9";
+       sha256 = "1gqcr15956zzldsc3rvds3ybd43907bv69cw3i7a1c0nfz60zg70";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring terminal-progress-bar time
@@ -39929,6 +40131,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) mosquitto;};
 
+  "c-storable" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "c-storable";
+       version = "0.2";
+       sha256 = "03ynlm6nbm2hsqp0bpcqj3kp1hbg2pnif44zrgj8rda8dmsczm9j";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base ];
+       homepage = "https://github.com/elaforge/c-storable";
+       description = "CStorable class";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "c-storable-deriving" = callPackage
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
@@ -40298,6 +40513,8 @@ self: {
        pname = "cabal-doctest";
        version = "1.0.6";
        sha256 = "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny";
+       revision = "1";
+       editedCabalFile = "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld";
        libraryHaskellDepends = [ base Cabal directory filepath ];
        homepage = "https://github.com/phadej/cabal-doctest";
        description = "A Setup.hs helper for doctests running";
@@ -40981,8 +41198,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2nix";
-       version = "2.8.2";
-       sha256 = "0m3k8prp13n6n74ghy2m05bj2c940nscjnv6h8g45ygxid8jvxc8";
+       version = "2.9";
+       sha256 = "1n6r27i4njiidij228r9fdb45pmsiidan6pxs2is2vsl8k9d65c7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -41011,8 +41228,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2spec";
-       version = "2.0.0";
-       sha256 = "16xvv9qg1rxxnb9mdymx574kx6awhrn855x59ihl27bzp2q2pa53";
+       version = "2.0.1";
+       sha256 = "13nrq3nnfvs4hlqyx2nfk3mk8gi94idival6iiby6h2n6a44lqbq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal filepath time ];
@@ -41690,6 +41907,7 @@ self: {
        homepage = "https://github.com/grandpascorpion/canon";
        description = "Massive Number Arithmetic";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "canonical-filepath" = callPackage
@@ -42301,6 +42519,18 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ jb55 ];
      }) {};
 
+  "caseof" = callPackage
+    ({ mkDerivation, base, template-haskell }:
+     mkDerivation {
+       pname = "caseof";
+       version = "0.0.1";
+       sha256 = "1j8r8ldaxgyvka3zpqfl8qp0mbwrnh1s1xl5fgx3jjzqxlisfdp3";
+       libraryHaskellDepends = [ base template-haskell ];
+       homepage = "https://github.com/chrisdone/caseof#readme";
+       description = "Combinators for casing on constructors";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "cases" = callPackage
     ({ mkDerivation, attoparsec, base, base-prelude, criterion, HTF
      , HUnit, loch-th, mwc-random, placeholders, QuickCheck, rerebase
@@ -42985,6 +43215,27 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "cayley-client_0_4_4" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, binary, bytestring
+     , exceptions, hspec, http-client, http-conduit, lens, lens-aeson
+     , mtl, text, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "cayley-client";
+       version = "0.4.4";
+       sha256 = "17463g65cylkjxpih414wfg0vqvxj81ylzp2hg04sa1h75zhdjkv";
+       libraryHaskellDepends = [
+         aeson attoparsec base binary bytestring exceptions http-client
+         http-conduit lens lens-aeson mtl text transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [ aeson base hspec unordered-containers ];
+       homepage = "https://github.com/MichelBoucey/cayley-client";
+       description = "A Haskell client for the Cayley graph database";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cayley-dickson" = callPackage
     ({ mkDerivation, base, random }:
      mkDerivation {
@@ -43228,21 +43479,23 @@ self: {
      }) {gtk2 = pkgs.gnome2.gtk;};
 
   "celtchar" = callPackage
-    ({ mkDerivation, base, directory, file-embed, filepath, hspec
-     , megaparsec, mtl, ogmarkup, optparse-generic, pandoc
-     , raw-strings-qq, shakespeare, text, yaml
+    ({ mkDerivation, base, bytestring, directory, file-embed, filepath
+     , hspec, megaparsec, mtl, ogmarkup, optparse-generic, pandoc
+     , raw-strings-qq, shakespeare, text, unordered-containers, yaml
      }:
      mkDerivation {
        pname = "celtchar";
-       version = "0.1.3.0";
-       sha256 = "1f67vi6kjjhnnr4kxnzgkva1qvcadx9968cmac3iix2g56xs26wn";
+       version = "0.1.4.0";
+       sha256 = "1bd7b1prihmxc9kbvcsgl107c0bkc56c3wz6jgxvvfrwi372s4j1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base filepath megaparsec mtl ogmarkup pandoc shakespeare text yaml
+         base filepath megaparsec mtl ogmarkup pandoc shakespeare text
+         unordered-containers yaml
        ];
        executableHaskellDepends = [
-         base directory file-embed filepath optparse-generic text
+         base bytestring directory file-embed filepath optparse-generic text
+         yaml
        ];
        testHaskellDepends = [ base hspec raw-strings-qq ];
        homepage = "https://nest.pijul.com/lthms/celtchar";
@@ -43809,6 +44062,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "changelogged" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, Cabal, cabal-doctest
+     , doctest, either, exceptions, foldl, Glob, mtl
+     , optparse-applicative, QuickCheck, system-filepath, text, turtle
+     , unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "changelogged";
+       version = "0.2.0";
+       sha256 = "05viyx641zwxf222gvhyhs5dclwbylp7s32n7h3zzja4bycf03f2";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson ansi-terminal base either exceptions foldl mtl
+         optparse-applicative system-filepath text turtle
+         unordered-containers vector yaml
+       ];
+       executableHaskellDepends = [
+         ansi-terminal base turtle unordered-containers
+       ];
+       testHaskellDepends = [
+         ansi-terminal base doctest Glob QuickCheck turtle
+         unordered-containers
+       ];
+       homepage = "https://github.com/GetShopTV/changelogged#readme";
+       description = "Changelog manager for Git projects";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "charade" = callPackage
     ({ mkDerivation, base, configurator, containers, filepath, heist
      , lens, mtl, QuickCheck, random, snap, snap-core, snap-extras
@@ -44078,6 +44361,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "chatwork_0_1_3_1" = callPackage
+    ({ mkDerivation, aeson, aeson-casing, base, bytestring, connection
+     , data-default-class, hspec, http-api-data, http-client
+     , http-client-tls, http-types, req, servant-server, text, warp
+     }:
+     mkDerivation {
+       pname = "chatwork";
+       version = "0.1.3.1";
+       sha256 = "0wsr84yk8l9s8fpb6fg4vbjyzlvy0608qply1h12zi09b5zr149i";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-casing base bytestring connection data-default-class
+         http-api-data http-client http-client-tls http-types req text
+       ];
+       executableHaskellDepends = [
+         aeson aeson-casing base bytestring connection data-default-class
+         http-api-data http-client http-client-tls http-types req text
+       ];
+       testHaskellDepends = [
+         aeson aeson-casing base bytestring connection data-default-class
+         hspec http-api-data http-client http-client-tls http-types req
+         servant-server text warp
+       ];
+       homepage = "https://github.com/matsubara0507/chatwork#readme";
+       description = "The ChatWork API in Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cheapskate" = callPackage
     ({ mkDerivation, base, blaze-html, bytestring, containers
      , data-default, deepseq, mtl, syb, text, uniplate, xss-sanitize
@@ -45322,6 +45635,20 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "clang-compilation-database_0_1_0_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, text }:
+     mkDerivation {
+       pname = "clang-compilation-database";
+       version = "0.1.0.1";
+       sha256 = "1a0wvk82k65b5lscsvg5p41shpz98rahq44d5vyf8wclfshh2ihi";
+       libraryHaskellDepends = [ aeson base bytestring text ];
+       testHaskellDepends = [ aeson base bytestring ];
+       homepage = "https://github.com/lambdageek/clang-compilation-database";
+       description = "JSON Compilation Database Format encoding and decoding";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "clang-pure" = callPackage
     ({ mkDerivation, base, bytestring, clang, containers, contravariant
      , inline-c, microlens, microlens-contra, singletons, stm
@@ -45783,6 +46110,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "clay_0_13_0" = callPackage
+    ({ mkDerivation, base, hspec, hspec-expectations, mtl, text }:
+     mkDerivation {
+       pname = "clay";
+       version = "0.13.0";
+       sha256 = "0kyg5ifrjdvd7rxzsa6jjfyv9xx8amlfzbmrfwksrqla2nxqyljl";
+       libraryHaskellDepends = [ base mtl text ];
+       testHaskellDepends = [ base hspec hspec-expectations mtl text ];
+       homepage = "http://fvisser.nl/clay";
+       description = "CSS preprocessor as embedded Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "clckwrks" = callPackage
     ({ mkDerivation, acid-state, aeson, aeson-qq, attoparsec, base
      , blaze-html, bytestring, cereal, containers, directory, filepath
@@ -47981,6 +48322,7 @@ self: {
        homepage = "https://github.com/leftaroundabout/colour-space";
        description = "Instances of the manifold-classes for colour types";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "coltrane" = callPackage
@@ -49573,22 +49915,6 @@ self: {
      }:
      mkDerivation {
        pname = "concurrent-output";
-       version = "1.10.3";
-       sha256 = "0sp5mc7pxw48k0hv17l553bcjr7s5dp9vznm2n6400nyhgmxdha8";
-       libraryHaskellDepends = [
-         ansi-terminal async base directory exceptions process stm
-         terminal-size text transformers unix
-       ];
-       description = "Ungarble output from several threads or commands";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "concurrent-output_1_10_4" = callPackage
-    ({ mkDerivation, ansi-terminal, async, base, directory, exceptions
-     , process, stm, terminal-size, text, transformers, unix
-     }:
-     mkDerivation {
-       pname = "concurrent-output";
        version = "1.10.4";
        sha256 = "0zq50g3l9f55vhwjw6s6jf1nqyi0a7f1ih7vas686ckj2z33z9ay";
        libraryHaskellDepends = [
@@ -49597,7 +49923,6 @@ self: {
        ];
        description = "Ungarble output from several threads or commands";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "concurrent-rpc" = callPackage
@@ -49810,8 +50135,8 @@ self: {
      }:
      mkDerivation {
        pname = "conduit";
-       version = "1.2.13";
-       sha256 = "1b0i6zbmp9j0km150nghmq77rz3iahkib3dd2m9hihabc6n1p793";
+       version = "1.2.13.1";
+       sha256 = "185kdjmbghpvhsvqxh9c9qsh8y987m1kgdagsbwy6c93nlqvbdkp";
        libraryHaskellDepends = [
          base exceptions lifted-base mmorph monad-control mtl primitive
          resourcet transformers transformers-base transformers-compat
@@ -50028,6 +50353,8 @@ self: {
        pname = "conduit-extra";
        version = "1.2.3.2";
        sha256 = "1xihl8zrd6jyfnlmsrqshwwqc8176whs5im4jvxvk9038wl6cnqx";
+       revision = "1";
+       editedCabalFile = "10smqv7xrjj5vhpdfj9ha89dm8nw04cv09avg58c6y8yybbz5i01";
        libraryHaskellDepends = [
          async attoparsec base blaze-builder bytestring conduit directory
          exceptions filepath monad-control network primitive process
@@ -50321,6 +50648,22 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "confide" = callPackage
+    ({ mkDerivation, base, deiko-config, exceptions, tasty, tasty-hunit
+     , text
+     }:
+     mkDerivation {
+       pname = "confide";
+       version = "0.1.0.3";
+       sha256 = "0agq5naldbs1lwpw9nf5jldzrqh6pbc1n5vn5cb3kk7rj7j1a8ik";
+       libraryHaskellDepends = [ base deiko-config exceptions text ];
+       testHaskellDepends = [ base deiko-config tasty tasty-hunit text ];
+       homepage = "https://github.com/amilkov3/confide";
+       description = "derive typeclass instances for decoding types from HOCON conf";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "config-ini" = callPackage
     ({ mkDerivation, base, containers, directory, hedgehog, ini
      , megaparsec, text, transformers, unordered-containers
@@ -50382,10 +50725,8 @@ self: {
      }:
      mkDerivation {
        pname = "config-schema";
-       version = "0.5.0.0";
-       sha256 = "108gjzafzc5hv1vilnxagf65bh2xia2rfwxcjw6axzzhw5lszgli";
-       revision = "1";
-       editedCabalFile = "03py056v8wvabykx95h5z52g0a5sxglmvvk67wvr94ig8161gbjc";
+       version = "0.5.0.1";
+       sha256 = "18zdq0w65cs2zy8p0pvb0jfqffcyxq9km1c2h5fvky8c689lp0gp";
        libraryHaskellDepends = [
          base config-value containers free kan-extensions pretty
          semigroupoids text transformers
@@ -50416,8 +50757,8 @@ self: {
     ({ mkDerivation, alex, array, base, happy, pretty, text }:
      mkDerivation {
        pname = "config-value";
-       version = "0.6.3";
-       sha256 = "0c7ghasn06m4mlhk3lg5pxpssbsr4l88ibi6vzvp8ylbqha0b3gn";
+       version = "0.6.3.1";
+       sha256 = "0gfr9qcw8a7y1y9cn6635y8fgvrpkmcqx31bn2a070rbrmk3757z";
        libraryHaskellDepends = [ array base pretty text ];
        libraryToolDepends = [ alex happy ];
        homepage = "https://github.com/glguy/config-value";
@@ -50708,6 +51049,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "connection-pool_0_2_2" = callPackage
+    ({ mkDerivation, base, between, data-default-class, monad-control
+     , network, resource-pool, streaming-commons, time
+     , transformers-base
+     }:
+     mkDerivation {
+       pname = "connection-pool";
+       version = "0.2.2";
+       sha256 = "0lvkcsd042s936fj5c9y5gg4iiq09n42adkv8q2rnwcbd6vl7kzj";
+       libraryHaskellDepends = [
+         base between data-default-class monad-control network resource-pool
+         streaming-commons time transformers-base
+       ];
+       homepage = "https://github.com/trskop/connection-pool";
+       description = "Connection pool built on top of resource-pool and streaming-commons";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "connection-string" = callPackage
     ({ mkDerivation, base, containers, doctest, megaparsec
      , parser-combinators, text
@@ -51238,8 +51598,8 @@ self: {
     ({ mkDerivation, base, criterion, hspec, recursion-schemes }:
      mkDerivation {
        pname = "continued-fraction";
-       version = "0.1.0.6";
-       sha256 = "04vv2qnpz2pfkizrx8layf3z9kfjkika15ha5kpm0av52d405fiz";
+       version = "0.1.0.7";
+       sha256 = "04cg0xb634c915mx83vx1vh3l898i27pz309nz6h4jikp99skcs9";
        libraryHaskellDepends = [ base recursion-schemes ];
        testHaskellDepends = [ base hspec ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -51308,22 +51668,6 @@ self: {
      }) {};
 
   "contravariant-extras" = callPackage
-    ({ mkDerivation, base-prelude, contravariant, template-haskell
-     , tuple-th
-     }:
-     mkDerivation {
-       pname = "contravariant-extras";
-       version = "0.3.3.1";
-       sha256 = "1mbrgjybdx8fjdck4ldwi8955w4qnmm0ql56zix7dyn0s7s9spgk";
-       libraryHaskellDepends = [
-         base-prelude contravariant template-haskell tuple-th
-       ];
-       homepage = "https://github.com/nikita-volkov/contravariant-extras";
-       description = "Extras for the \"contravariant\" package";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "contravariant-extras_0_3_4" = callPackage
     ({ mkDerivation, base, base-prelude, contravariant, semigroups
      , template-haskell, tuple-th
      }:
@@ -51338,7 +51682,6 @@ self: {
        homepage = "https://github.com/nikita-volkov/contravariant-extras";
        description = "Extras for the \"contravariant\" package";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "control-bool" = callPackage
@@ -52274,6 +52617,8 @@ self: {
        pname = "country";
        version = "0.1.4";
        sha256 = "027i4ncnsyii41wfndn369xmlbkp4vvcrx7m7cdb07n4wlcpz0bl";
+       revision = "1";
+       editedCabalFile = "0sjzrld5qa2wn66zgf25w5h41179mcmsjvndn1j8kl20bfsiwhvh";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring ghc-prim hashable primitive
          scientific text unordered-containers
@@ -53210,6 +53555,8 @@ self: {
        pname = "critbit";
        version = "0.2.0.0";
        sha256 = "1xdgaj73ffvj1q1kyi62bifbazmzgamfwzdbdz0c339axw5dga82";
+       revision = "1";
+       editedCabalFile = "0sfhyrdhnm3803v0yg4ch976nn19hpgwwrlmfdnxnc9agn8m1ja1";
        libraryHaskellDepends = [
          array base bytestring deepseq text vector
        ];
@@ -53263,7 +53610,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "criterion_1_3_0_0" = callPackage
+  "criterion_1_4_0_0" = callPackage
     ({ mkDerivation, aeson, ansi-wl-pprint, base, base-compat, binary
      , bytestring, cassava, code-page, containers, deepseq, directory
      , exceptions, filepath, Glob, HUnit, js-flot, js-jquery
@@ -53274,10 +53621,8 @@ self: {
      }:
      mkDerivation {
        pname = "criterion";
-       version = "1.3.0.0";
-       sha256 = "0csgk6njr6a3i895d10pajf7z4r9hx8aj2r0c3rj5li6vrm37f8q";
-       revision = "1";
-       editedCabalFile = "1yfv8c3azrdba8nsw9za3flklryn7490hgcjqxjal3m9xbh7g1pn";
+       version = "1.4.0.0";
+       sha256 = "0shsqq36z1q8ckic3nfb3rdbxhlb0faxl5d7ly5a4wlka4fcfrfc";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -53905,8 +54250,8 @@ self: {
      }:
      mkDerivation {
        pname = "cryptocompare";
-       version = "0.1.0";
-       sha256 = "0ghdaf5m3axxzxbq3zm9klrnzh354maf82389aryskglr9l11fv4";
+       version = "0.1.1";
+       sha256 = "1cqnhg1ww79k3f6yisdir1fqiil13niv002p5s2kir9ks5phybni";
        libraryHaskellDepends = [
          aeson base bytestring containers directory exceptions http-conduit
          MissingH text time transformers unordered-containers
@@ -53926,8 +54271,8 @@ self: {
      }:
      mkDerivation {
        pname = "cryptoconditions";
-       version = "0.2.3.0";
-       sha256 = "1gwq1527n6xf19xzcqzhgg6cl85albq3sgp25dxm3pvi45dvinas";
+       version = "0.2.4";
+       sha256 = "1mbi3h21xfzsripixkvakw4kp36n8jzwsyajjxwllq3nxq3lwgp0";
        libraryHaskellDepends = [
          aeson asn1-encoding asn1-parse asn1-types base base64-bytestring
          bytestring containers cryptonite memory text
@@ -54049,6 +54394,8 @@ self: {
        pname = "cryptohash-sha256";
        version = "0.11.101.0";
        sha256 = "1p85vajcgw9hmq8zsz9krzx0vxh7aggwbg5w9ws8w97avcsn8xaj";
+       revision = "1";
+       editedCabalFile = "19birnmwga1yh82l4jqc3fygqkqcf5y8dlldnxfswngkzc3rvwp3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring ];
@@ -54505,42 +54852,14 @@ self: {
   "csv-conduit" = callPackage
     ({ mkDerivation, array, attoparsec, base, blaze-builder, bytestring
      , conduit, conduit-extra, containers, data-default, directory
-     , ghc-prim, HUnit, mmorph, monad-control, mtl, primitive, resourcet
-     , test-framework, test-framework-hunit, text, transformers
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "csv-conduit";
-       version = "0.6.7";
-       sha256 = "0gdkxr8ww673wp25ykzv39gfnhy3bspihpqv72x803kggh5nn7jh";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array attoparsec base blaze-builder bytestring conduit
-         conduit-extra containers data-default ghc-prim mmorph monad-control
-         mtl primitive resourcet text transformers unordered-containers
-         vector
-       ];
-       testHaskellDepends = [
-         base bytestring containers directory HUnit mtl primitive
-         test-framework test-framework-hunit text transformers vector
-       ];
-       homepage = "http://github.com/ozataman/csv-conduit";
-       description = "A flexible, fast, conduit-based CSV parser library for Haskell";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "csv-conduit_0_6_8" = callPackage
-    ({ mkDerivation, array, attoparsec, base, blaze-builder, bytestring
-     , conduit, conduit-extra, containers, data-default, directory
      , exceptions, ghc-prim, HUnit, mmorph, monad-control, mtl
      , primitive, resourcet, test-framework, test-framework-hunit, text
      , transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "csv-conduit";
-       version = "0.6.8";
-       sha256 = "1rb2dkci33gmqr82a4fc74lrdvxrcn0aibh3arlylklhm15y7w7y";
+       version = "0.6.8.1";
+       sha256 = "0j1hg34h57wg7jd8n15a2plrjnn89mj4w7azg19z6vahhsdn6d5n";
        libraryHaskellDepends = [
          array attoparsec base blaze-builder bytestring conduit
          conduit-extra containers data-default exceptions ghc-prim mmorph
@@ -54554,7 +54873,6 @@ self: {
        homepage = "http://github.com/ozataman/csv-conduit";
        description = "A flexible, fast, conduit-based CSV parser library for Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "csv-enumerator" = callPackage
@@ -54811,6 +55129,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cuda_0_9_0_2" = callPackage
+    ({ mkDerivation, base, bytestring, c2hs, Cabal, directory, filepath
+     , pretty, template-haskell
+     }:
+     mkDerivation {
+       pname = "cuda";
+       version = "0.9.0.2";
+       sha256 = "0l7dpvpr6k0nm7fardga2cyc9ivvv67yndnxpmixifrhdsbm8hvc";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal directory filepath ];
+       libraryHaskellDepends = [
+         base bytestring filepath template-haskell
+       ];
+       libraryToolDepends = [ c2hs ];
+       executableHaskellDepends = [ base pretty ];
+       homepage = "https://github.com/tmcdonell/cuda";
+       description = "FFI binding to the CUDA interface for programming NVIDIA GPUs";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cudd" = callPackage
     ({ mkDerivation, array, base, c2hs, cudd, mtl, transformers }:
      mkDerivation {
@@ -54896,6 +55236,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "curl-runnings" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cmdargs
+     , directory, hspec, hspec-expectations, http-conduit, text
+     , unordered-containers, yaml
+     }:
+     mkDerivation {
+       pname = "curl-runnings";
+       version = "0.2.0";
+       sha256 = "0ss98dn39aaa3q2rvf8qf7w638hwwwb2g20p9grw2n9ki0k76i3n";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring directory hspec
+         hspec-expectations http-conduit text unordered-containers yaml
+       ];
+       executableHaskellDepends = [ base cmdargs text ];
+       testHaskellDepends = [ base directory hspec hspec-expectations ];
+       homepage = "https://github.com/aviaviavi/curl-runnings#readme";
+       description = "A framework for declaratively writing curl based API tests";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "curlhs" = callPackage
     ({ mkDerivation, base, bytestring, hspec, rtld, time }:
      mkDerivation {
@@ -56005,27 +56367,29 @@ self: {
      }) {};
 
   "data-basic" = callPackage
-    ({ mkDerivation, aeson, base, basic, binary, bytestring, cases
+    ({ mkDerivation, aeson, attoparsec, base, binary, bytestring, cases
      , containers, hssqlppp, lens, lens-aeson, mtl, overload
-     , postgresql-simple, simple-effects, string-conv, template-haskell
-     , text, time
+     , postgresql-simple, scientific, simple-effects, simple-logging
+     , string-conv, template-haskell, text, time
      }:
      mkDerivation {
        pname = "data-basic";
-       version = "0.2.0.3";
-       sha256 = "0xmc9cj22nw90c4l9ava7da14d2y3pvip81admgjx8cqgz93255k";
+       version = "0.3.0.0";
+       sha256 = "0ssixfnkgxd132pp6mlpgrkbwqbkrx5zn4ayd7br9ncjvpj2j0gr";
        libraryHaskellDepends = [
-         aeson base binary bytestring cases containers hssqlppp lens
-         lens-aeson mtl overload postgresql-simple simple-effects
-         string-conv template-haskell text time
+         aeson attoparsec base binary bytestring cases containers hssqlppp
+         lens lens-aeson mtl overload postgresql-simple scientific
+         simple-effects simple-logging string-conv template-haskell text
+         time
+       ];
+       testHaskellDepends = [
+         aeson base lens postgresql-simple string-conv time
        ];
-       testHaskellDepends = [ base basic lens postgresql-simple time ];
        homepage = "https://gitlab.com/haskell-hr/basic";
        description = "A database library with a focus on ease of use, type safety and useful error messages";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {basic = null;};
+     }) {};
 
   "data-binary-ieee754" = callPackage
     ({ mkDerivation, base, binary }:
@@ -57346,6 +57710,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "data-serializer_0_3_4" = callPackage
+    ({ mkDerivation, base, binary, bytestring, cereal, data-endian
+     , parsers, semigroups, split, tasty, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "data-serializer";
+       version = "0.3.4";
+       sha256 = "1ijy8l5lxmm8wpzx4h2vh9q21zz66xgh979s32aa4b16l9m1b4z7";
+       libraryHaskellDepends = [
+         base binary bytestring cereal data-endian parsers semigroups split
+       ];
+       testHaskellDepends = [
+         base binary bytestring cereal tasty tasty-quickcheck
+       ];
+       homepage = "https://github.com/mvv/data-serializer";
+       description = "Common API for serialization libraries";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "data-size" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, text }:
      mkDerivation {
@@ -57756,8 +58140,8 @@ self: {
      }:
      mkDerivation {
        pname = "datarobot";
-       version = "0.1.1";
-       sha256 = "1dcr0jnd7wgxplzfgbkbv79civ80iqzlz2nvp3s6hv5zyzbf2pm9";
+       version = "1.0.0";
+       sha256 = "0ia74i013drj1mwgpq2dv2ayscs2z4hd7amcbzgxrp1b1j2mkhvj";
        libraryHaskellDepends = [
          aeson base bytestring exceptions microlens network-uri safe
          scientific string-conversions text unordered-containers vector wreq
@@ -59028,6 +59412,8 @@ self: {
        pname = "deepseq";
        version = "1.4.3.0";
        sha256 = "0fjdmsd8fqqv78m7111m10pdfswnxmn02zx1fsv2k26b5jckb0bd";
+       revision = "1";
+       editedCabalFile = "0djisxi7z2xyx3wps550avgz5x56rl4xzks17j996crdsrdrcqh9";
        libraryHaskellDepends = [ array base ];
        testHaskellDepends = [
          array base ghc-prim HUnit test-framework test-framework-hunit
@@ -59288,14 +59674,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "dejafu_1_1_0_1" = callPackage
+  "dejafu_1_3_0_1" = callPackage
     ({ mkDerivation, base, concurrency, containers, deepseq, exceptions
      , leancheck, profunctors, random, ref-fd, transformers
      }:
      mkDerivation {
        pname = "dejafu";
-       version = "1.1.0.1";
-       sha256 = "0mhzij16sqgckk62n4mdwnkmrv2vp7884ivr24wnl73xwcyw6v15";
+       version = "1.3.0.1";
+       sha256 = "1qw5ab57fa3phidfzslymxxxi29vcbssc6g8rk9pv07ah6hpccn5";
        libraryHaskellDepends = [
          base concurrency containers deepseq exceptions leancheck
          profunctors random ref-fd transformers
@@ -60176,12 +60562,12 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall_1_10_0" = callPackage
+  "dhall_1_11_0" = callPackage
     ({ mkDerivation, ansi-terminal, ansi-wl-pprint, base
      , base16-bytestring, bytestring, case-insensitive, containers
-     , contravariant, cryptohash, deepseq, directory, exceptions
+     , contravariant, cryptonite, deepseq, directory, exceptions
      , filepath, haskeline, http-client, http-client-tls
-     , insert-ordered-containers, lens-family-core, mtl
+     , insert-ordered-containers, lens-family-core, memory, mtl
      , optparse-generic, parsers, prettyprinter
      , prettyprinter-ansi-terminal, repline, scientific, tasty
      , tasty-hunit, text, text-format, transformers, trifecta
@@ -60189,17 +60575,17 @@ self: {
      }:
      mkDerivation {
        pname = "dhall";
-       version = "1.10.0";
-       sha256 = "1z9z9f0qw0p7nywpgamkgfz3h3ikhkshrphsviz94vwhnrflq1wf";
+       version = "1.11.0";
+       sha256 = "1vfraj97vj6jc9ysz3svibadhwrd7q0p3wjlvp6vaackiprfbinf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-wl-pprint base base16-bytestring bytestring case-insensitive
-         containers contravariant cryptohash directory exceptions filepath
+         containers contravariant cryptonite directory exceptions filepath
          http-client http-client-tls insert-ordered-containers
-         lens-family-core parsers prettyprinter prettyprinter-ansi-terminal
-         scientific text text-format transformers trifecta
-         unordered-containers vector
+         lens-family-core memory parsers prettyprinter
+         prettyprinter-ansi-terminal scientific text text-format
+         transformers trifecta unordered-containers vector
        ];
        executableHaskellDepends = [
          ansi-terminal base haskeline mtl optparse-generic prettyprinter
@@ -60236,20 +60622,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-bash_1_0_9" = callPackage
+  "dhall-bash_1_0_10" = callPackage
     ({ mkDerivation, base, bytestring, containers, dhall
      , insert-ordered-containers, neat-interpolation, optparse-generic
-     , shell-escape, text, text-format, trifecta, vector
+     , shell-escape, text, text-format, trifecta
      }:
      mkDerivation {
        pname = "dhall-bash";
-       version = "1.0.9";
-       sha256 = "1knnljzh7gccma1xbj3ahrj6cyqfp7lisiv51nnwpxizb7vdfnx0";
+       version = "1.0.10";
+       sha256 = "0phi5z7rmbxjj83mps0lcpmcv320k8mrfpigls46smv7srmhsla1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers dhall insert-ordered-containers
-         neat-interpolation shell-escape text text-format vector
+         neat-interpolation shell-escape text text-format
        ];
        executableHaskellDepends = [
          base bytestring dhall optparse-generic text trifecta
@@ -60297,17 +60683,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-json_1_0_11" = callPackage
+  "dhall-json_1_0_12" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, dhall
-     , optparse-generic, text, trifecta, vector, yaml
+     , optparse-generic, text, trifecta, yaml
      }:
      mkDerivation {
        pname = "dhall-json";
-       version = "1.0.11";
-       sha256 = "14jkf3j9iwnhkyz4wl6lvvci8ad21s20rk9kr7hr3fcmzv39alwf";
+       version = "1.0.12";
+       sha256 = "174ssff7fcxgr13w8mcls7w4fy5xzywh8qb55zj9qragj4bkyjab";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ aeson base dhall text vector ];
+       libraryHaskellDepends = [ aeson base dhall text ];
        executableHaskellDepends = [
          aeson aeson-pretty base bytestring dhall optparse-generic text
          trifecta yaml
@@ -60339,20 +60725,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-nix_1_1_0" = callPackage
+  "dhall-nix_1_1_1" = callPackage
     ({ mkDerivation, base, containers, data-fix, dhall, hnix
      , insert-ordered-containers, neat-interpolation, optparse-generic
-     , scientific, text, text-format, trifecta, vector
+     , scientific, text, text-format, trifecta
      }:
      mkDerivation {
        pname = "dhall-nix";
-       version = "1.1.0";
-       sha256 = "0g2wyr79krbfdv1z6c8w78kz3w1y0jbx8778qgxbjp70inkwq5gl";
+       version = "1.1.1";
+       sha256 = "01cdz8kjmm0ncdyq616mg6hjq7cwq5648cnrp6ggps5zc1d71176";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base containers data-fix dhall hnix insert-ordered-containers
-         neat-interpolation scientific text text-format vector
+         neat-interpolation scientific text text-format
        ];
        executableHaskellDepends = [
          base dhall hnix optparse-generic text trifecta
@@ -60375,12 +60761,12 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-text_1_0_6" = callPackage
+  "dhall-text_1_0_7" = callPackage
     ({ mkDerivation, base, dhall, optparse-generic, text }:
      mkDerivation {
        pname = "dhall-text";
-       version = "1.0.6";
-       sha256 = "0r08x1s75qsfmn6gnfm0ikh80cq3dbgj7bp4jb8f5pz7p2azh72v";
+       version = "1.0.7";
+       sha256 = "11jp5yz11f701phzz74zf3spqhgmrdiq8ldbi96xmfjqhwnc9kmj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base dhall optparse-generic text ];
@@ -61626,6 +62012,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "dimensional_1_1" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, doctest, exact-pi, Glob
+     , hspec, ieee754, numtype-dk, QuickCheck, semigroups
+     , template-haskell, vector
+     }:
+     mkDerivation {
+       pname = "dimensional";
+       version = "1.1";
+       sha256 = "05jy0xs1nmxz7x3b589313hqk317838crhd974knm5k73jf8h99s";
+       libraryHaskellDepends = [
+         base deepseq exact-pi ieee754 numtype-dk semigroups vector
+       ];
+       testHaskellDepends = [
+         base doctest Glob hspec QuickCheck template-haskell
+       ];
+       benchmarkHaskellDepends = [ base criterion deepseq ];
+       homepage = "https://github.com/bjornbm/dimensional/";
+       description = "Statically checked physical dimensions, using Type Families and Data Kinds";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dimensional-codata" = callPackage
     ({ mkDerivation, base, dimensional, numtype-dk }:
      mkDerivation {
@@ -61898,23 +62306,6 @@ self: {
      }:
      mkDerivation {
        pname = "direct-sqlite";
-       version = "2.3.21";
-       sha256 = "101pjvldzbvavjgpzwl0xnpqp0wy7bz1ryfx4sim3w00xj7csfys";
-       libraryHaskellDepends = [ base bytestring text ];
-       testHaskellDepends = [
-         base base16-bytestring bytestring directory HUnit temporary text
-       ];
-       homepage = "https://github.com/IreneKnapp/direct-sqlite";
-       description = "Low-level binding to SQLite3. Includes UTF8 and BLOB support.";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "direct-sqlite_2_3_22" = callPackage
-    ({ mkDerivation, base, base16-bytestring, bytestring, directory
-     , HUnit, temporary, text
-     }:
-     mkDerivation {
-       pname = "direct-sqlite";
        version = "2.3.22";
        sha256 = "0fv90nm68k3vfj87kw6kfsvmk5kyvvrjcyp73s8m0pm6y7ypgg7a";
        libraryHaskellDepends = [ base bytestring text ];
@@ -61924,7 +62315,6 @@ self: {
        homepage = "https://github.com/IreneKnapp/direct-sqlite";
        description = "Low-level binding to SQLite3. Includes UTF8 and BLOB support.";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "directed-cubical" = callPackage
@@ -61944,12 +62334,12 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "directory_1_3_2_0" = callPackage
+  "directory_1_3_2_1" = callPackage
     ({ mkDerivation, base, filepath, time, unix }:
      mkDerivation {
        pname = "directory";
-       version = "1.3.2.0";
-       sha256 = "0ffhanigxrx5wpin8l0wfp7d24lpgsjwj0hxrfp8bpy2wj1snxny";
+       version = "1.3.2.1";
+       sha256 = "1hr5hvpycjkzl8cwn29xwcggf6xfgz189a57i7aahbdb8bbxzwk5";
        libraryHaskellDepends = [ base filepath time unix ];
        testHaskellDepends = [ base filepath time unix ];
        description = "Platform-agnostic library for filesystem operations";
@@ -62994,18 +63384,17 @@ self: {
 
   "distribution-nixpkgs" = callPackage
     ({ mkDerivation, aeson, base, bytestring, Cabal, containers
-     , deepseq, doctest, hspec, language-nix, lens, pretty, process
-     , split
+     , deepseq, hspec, language-nix, lens, pretty, process, split
      }:
      mkDerivation {
        pname = "distribution-nixpkgs";
-       version = "1.1";
-       sha256 = "15m881mrhpqg1xjdjz65ym8pajp1nijrcvb6dx3vv55430cjw1qx";
+       version = "1.1.1";
+       sha256 = "1694crd3l9cyc0c5xvqmx62154519g2cnpzc5qmlypwrk258bssm";
        libraryHaskellDepends = [
          aeson base bytestring Cabal containers deepseq language-nix lens
          pretty process split
        ];
-       testHaskellDepends = [ base deepseq doctest hspec lens ];
+       testHaskellDepends = [ base deepseq hspec lens ];
        homepage = "https://github.com/peti/distribution-nixpkgs#readme";
        description = "Types and functions to manipulate the Nixpkgs distribution";
        license = stdenv.lib.licenses.bsd3;
@@ -63346,6 +63735,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "dns_3_0_2" = callPackage
+    ({ mkDerivation, async, attoparsec, auto-update, base
+     , base64-bytestring, binary, bytestring, conduit, conduit-extra
+     , containers, cryptonite, doctest, hspec, iproute, mtl, network
+     , psqueues, QuickCheck, safe, time, word8
+     }:
+     mkDerivation {
+       pname = "dns";
+       version = "3.0.2";
+       sha256 = "193j67jnhxkih3gbfzdx9cpzvqryk4kzc3yhl1yagdg16shrba7i";
+       libraryHaskellDepends = [
+         async attoparsec auto-update base base64-bytestring binary
+         bytestring conduit conduit-extra containers cryptonite iproute mtl
+         network psqueues safe time
+       ];
+       testHaskellDepends = [
+         base bytestring doctest hspec iproute QuickCheck word8
+       ];
+       testTarget = "spec";
+       description = "DNS library in Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dnscache" = callPackage
     ({ mkDerivation, base, bytestring, containers, contstuff, dns
      , iproute, time
@@ -63762,6 +64175,7 @@ self: {
        homepage = "http://github.com/karun012/doctest-discover";
        description = "Easy way to run doctests via cabal";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "doctest-discover-configurator" = callPackage
@@ -65805,6 +66219,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "easytest" = callPackage
+    ({ mkDerivation, async, base, containers, mtl, random, stm, text }:
+     mkDerivation {
+       pname = "easytest";
+       version = "0.1";
+       sha256 = "0wjimph83n5fvqgh85ng255qgw3yvagvv7ky1a9lz2blhzb02hh7";
+       libraryHaskellDepends = [
+         async base containers mtl random stm text
+       ];
+       testHaskellDepends = [ base ];
+       homepage = "https://github.com/joelburget/easytest";
+       description = "Simple, expressive testing library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "ebeats" = callPackage
     ({ mkDerivation, base, time }:
      mkDerivation {
@@ -66682,23 +67111,6 @@ self: {
      }:
      mkDerivation {
        pname = "ekg-core";
-       version = "0.1.1.3";
-       sha256 = "1qw9zd4q107c4jy7k8wq3jcyh488gnxxvgk97fm7c2xzyv8f4mmc";
-       libraryHaskellDepends = [
-         base containers ghc-prim text unordered-containers
-       ];
-       benchmarkHaskellDepends = [ base ];
-       homepage = "https://github.com/tibbe/ekg-core";
-       description = "Tracking of system metrics";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ekg-core_0_1_1_4" = callPackage
-    ({ mkDerivation, base, containers, ghc-prim, text
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "ekg-core";
        version = "0.1.1.4";
        sha256 = "0dz9iv6viya7b5nx9gxj9g0d1k155pvb7i59azf9272wl369mn36";
        libraryHaskellDepends = [
@@ -66708,7 +67120,6 @@ self: {
        homepage = "https://github.com/tibbe/ekg-core";
        description = "Tracking of system metrics";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ekg-elastic" = callPackage
@@ -67549,6 +67960,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "email-validate_2_3_2_3" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, doctest, hspec
+     , QuickCheck, template-haskell
+     }:
+     mkDerivation {
+       pname = "email-validate";
+       version = "2.3.2.3";
+       sha256 = "1alz5j2bz7x3cwlksdxdynzgcrbbf7jyxmgh61n0wmqnav509y96";
+       libraryHaskellDepends = [
+         attoparsec base bytestring template-haskell
+       ];
+       testHaskellDepends = [ base bytestring doctest hspec QuickCheck ];
+       homepage = "https://github.com/Porges/email-validate-hs";
+       description = "Email address validation";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "email-validate-json" = callPackage
     ({ mkDerivation, aeson, base, email-validate, text }:
      mkDerivation {
@@ -68008,16 +68437,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "entropy_0_4" = callPackage
+  "entropy_0_4_1_1" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, directory, filepath
      , process, unix
      }:
      mkDerivation {
        pname = "entropy";
-       version = "0.4";
-       sha256 = "0h8icprikafidq4x88crz5phfgp6zgmxq4awam2dhs0z2fswd9wc";
-       revision = "1";
-       editedCabalFile = "1hx5yxzypi708zlg1almqhfasfgmaisrv44fr0i8ldvvqxf5slza";
+       version = "0.4.1.1";
+       sha256 = "1ahz5g148l6sax3dy505na2513i99c7bxix68jja5kbx4f271zcf";
        setupHaskellDepends = [ base Cabal directory filepath process ];
        libraryHaskellDepends = [ base bytestring unix ];
        homepage = "https://github.com/TomMD/entropy";
@@ -68514,16 +68941,16 @@ self: {
      }) {};
 
   "equational-reasoning" = callPackage
-    ({ mkDerivation, base, containers, singletons, template-haskell
-     , th-desugar, th-extras, void
+    ({ mkDerivation, base, containers, semigroups, singletons
+     , template-haskell, th-desugar, th-extras, void
      }:
      mkDerivation {
        pname = "equational-reasoning";
-       version = "0.5.0.0";
-       sha256 = "0qskw6dhnr6x7zpfaj246gyiml6w3196ci08i98cl8n2xkyn6n4c";
+       version = "0.5.1.0";
+       sha256 = "11203rdw4q9s5ramhmr2hdimgwin3zwjas8csxqxxldkv3x9a05l";
        libraryHaskellDepends = [
-         base containers singletons template-haskell th-desugar th-extras
-         void
+         base containers semigroups singletons template-haskell th-desugar
+         th-extras void
        ];
        description = "Proof assistant for Haskell using DataKinds & PolyKinds";
        license = stdenv.lib.licenses.bsd3;
@@ -68785,22 +69212,6 @@ self: {
      }:
      mkDerivation {
        pname = "errors";
-       version = "2.2.2";
-       sha256 = "13sflhglcm5skwrxb48fw96skdcx7ydiy4zg22200733pxhjncpn";
-       libraryHaskellDepends = [
-         base exceptions safe text transformers transformers-compat
-         unexceptionalio
-       ];
-       description = "Simplified error-handling";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "errors_2_2_4" = callPackage
-    ({ mkDerivation, base, exceptions, safe, text, transformers
-     , transformers-compat, unexceptionalio
-     }:
-     mkDerivation {
-       pname = "errors";
        version = "2.2.4";
        sha256 = "0v5jdjh6k3wys2m1ff6pgiydy6fzd0r0pn2k3bsisrj6nf6gff7a";
        libraryHaskellDepends = [
@@ -68809,7 +69220,6 @@ self: {
        ];
        description = "Simplified error-handling";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "errors-ext" = callPackage
@@ -69123,8 +69533,8 @@ self: {
      }:
      mkDerivation {
        pname = "eternity";
-       version = "0.1";
-       sha256 = "04pcfnr1vl1s85gi2bqqca3frwjljw3307mw2psh8aa9h9qrf21b";
+       version = "0.1.1";
+       sha256 = "0vl5vyysshbrb4vcf4r85w0n46vlfgpspj6nk7jl054099vsv58f";
        libraryHaskellDepends = [
          attoparsec base cereal directory foldl potoki potoki-cereal text
        ];
@@ -69135,6 +69545,7 @@ self: {
        homepage = "https://github.com/metrix-ai/eternity";
        description = "Native event-sourcing database";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "eternity-timestamped" = callPackage
@@ -69143,8 +69554,8 @@ self: {
      }:
      mkDerivation {
        pname = "eternity-timestamped";
-       version = "0.2.1";
-       sha256 = "0pqihqhq2jh1sr30wkk6sy3p5zyw62i3fqqac48lciggzpmajaa2";
+       version = "0.2.3";
+       sha256 = "1c7qil02diisnpv5vihh76l32l4c912s806z8p7p1jhv4wb13f8z";
        libraryHaskellDepends = [
          attoparsec base cereal directory eternity foldl generic-random
          hashable potoki QuickCheck text time
@@ -69152,6 +69563,7 @@ self: {
        homepage = "https://github.com/metrix-ai/eternity-timestamped";
        description = "Automatic timestamping for Eternity";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ether" = callPackage
@@ -69968,7 +70380,7 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "eventstore_1_1_1" = callPackage
+  "eventstore_1_1_2" = callPackage
     ({ mkDerivation, aeson, array, async, base, bifunctors, bytestring
      , cereal, clock, connection, containers, dns, dotnet-timespan
      , ekg-core, exceptions, fast-logger, hashable, http-client
@@ -69980,8 +70392,8 @@ self: {
      }:
      mkDerivation {
        pname = "eventstore";
-       version = "1.1.1";
-       sha256 = "1cvn53nf6igcg3a2sdvihd857vdrhrkcj1bzrbzaixkrxqcyhn9y";
+       version = "1.1.2";
+       sha256 = "1f2pqmsppln3p0zfw35hck5784np9hhs3f5f6h6j12k43gyj3847";
        libraryHaskellDepends = [
          aeson array base bifunctors bytestring cereal clock connection
          containers dns dotnet-timespan ekg-core exceptions fast-logger
@@ -70870,11 +71282,14 @@ self: {
      }:
      mkDerivation {
        pname = "expressions-z3";
-       version = "0.1.2";
-       sha256 = "0q3fnljdsqh1937a8s9a62cmcg1nc787725jp0j32jlmbwwhkfyv";
+       version = "0.1.3";
+       sha256 = "1hb44k4558lwsx3z02lgmf1i24ajjlbyqbc88lzgjh3vswfahsj8";
        libraryHaskellDepends = [
          base containers expressions singletons transformers z3
        ];
+       testHaskellDepends = [
+         base containers expressions singletons transformers z3
+       ];
        description = "Encode and Decode expressions from Z3 ASTs";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -70975,6 +71390,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "extensible_0_4_8" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cassava, comonad
+     , constraints, deepseq, ghc-prim, hashable, lens, monad-skeleton
+     , mtl, primitive, profunctors, QuickCheck, semigroups, StateVar
+     , tagged, template-haskell, text, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "extensible";
+       version = "0.4.8";
+       sha256 = "1bm7yqshaknnd50yf6bgb6qxl2lv21pqxhb674v3ifpwx1swrkm2";
+       libraryHaskellDepends = [
+         aeson base bytestring cassava comonad constraints deepseq ghc-prim
+         hashable monad-skeleton mtl primitive profunctors QuickCheck
+         semigroups StateVar tagged template-haskell text transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [ base lens QuickCheck template-haskell ];
+       homepage = "https://github.com/fumieval/extensible";
+       description = "Extensible, efficient, optics-friendly data types and effects";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "extensible-data" = callPackage
     ({ mkDerivation, base, data-lens, hashable, template-haskell
      , unordered-containers
@@ -71150,8 +71589,8 @@ self: {
      }:
      mkDerivation {
        pname = "extralife";
-       version = "0.1.0.1";
-       sha256 = "1244qnx99npwq4l6mw5ddh8qz3kcz54phhl2q0fxjmnfsfz8cs3n";
+       version = "0.1.0.2";
+       sha256 = "1ag8rpj8cyq64w9ig4dm4ssws39y5xyr1c1w0qjrv47vr0vvcpi8";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls text time
        ];
@@ -71501,8 +71940,8 @@ self: {
      }:
      mkDerivation {
        pname = "fast-arithmetic";
-       version = "0.3.3.1";
-       sha256 = "1xbhg1qvd8zilmcc58dci4kk5l44wd0shdz11ssacf0pg2hpqc3n";
+       version = "0.3.3.2";
+       sha256 = "08szj3rli8vnzl34j4x6xcydhk3k1nm12ziwqrxffbnsrvzjslvi";
        setupHaskellDepends = [ ats-pkg base Cabal ];
        libraryHaskellDepends = [ base composition-prelude gmpint ];
        librarySystemDepends = [ numbertheory ];
@@ -71840,28 +72279,29 @@ self: {
      }) {};
 
   "fay" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, bytestring, containers
-     , data-default, data-lens-light, directory, filepath, ghc-paths
-     , haskell-src-exts, language-ecmascript, mtl, mtl-compat
-     , optparse-applicative, process, safe, sourcemap, split, spoon, syb
-     , text, time, transformers, transformers-compat
+    ({ mkDerivation, aeson, base, base-compat, bytestring, Cabal
+     , containers, data-default, data-lens-light, directory, filepath
+     , ghc-paths, haskell-src-exts, language-ecmascript, mtl, mtl-compat
+     , optparse-applicative, process, safe, shakespeare, sourcemap
+     , split, spoon, syb, text, time, transformers, transformers-compat
      , traverse-with-class, uniplate, unordered-containers, utf8-string
      , vector
      }:
      mkDerivation {
        pname = "fay";
-       version = "0.23.2.0";
-       sha256 = "1fhdznpqyrgk2m239qdq6zxsdhx3qhciq8fi2ka7s6l7h9z277dw";
+       version = "0.24.0.0";
+       sha256 = "1my71a3cmd637ch5jwsdpyvfx6vsi2vnvshbrwmcx9ya1xm6x7z2";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          aeson base base-compat bytestring containers data-default
          data-lens-light directory filepath ghc-paths haskell-src-exts
-         language-ecmascript mtl mtl-compat process safe sourcemap split
-         spoon syb text time transformers transformers-compat
-         traverse-with-class uniplate unordered-containers utf8-string
-         vector
+         language-ecmascript mtl mtl-compat process safe shakespeare
+         sourcemap split spoon syb text time transformers
+         transformers-compat traverse-with-class uniplate
+         unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [ base mtl optparse-applicative split ];
        homepage = "https://github.com/faylang/fay/wiki";
@@ -71874,8 +72314,8 @@ self: {
     ({ mkDerivation, base, fay }:
      mkDerivation {
        pname = "fay-base";
-       version = "0.21.0.0";
-       sha256 = "1sj6baw63xzv6hcqmka29hvack00fal3zlp5b97qca56lbh7yhbf";
+       version = "0.21.1.0";
+       sha256 = "1i19q04a4z3aix8njw5im8ixkw7l53xfhff0rrgx3ibnf9jy752z";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base fay ];
        homepage = "https://github.com/faylang/fay/";
@@ -72045,6 +72485,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "fb_1_2_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
+     , base64-bytestring, bytestring, cereal, conduit, conduit-extra
+     , containers, crypto-api, cryptohash, cryptohash-cryptoapi
+     , data-default, hspec, http-client, http-conduit, http-types, HUnit
+     , monad-logger, old-locale, QuickCheck, resourcet, text, time
+     , transformers, transformers-base, unliftio, unliftio-core
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "fb";
+       version = "1.2.0";
+       sha256 = "04ppg1qhm93w5j6arv7ykp0vf85nfwhv6dkpyji34c0nalqzyx6l";
+       libraryHaskellDepends = [
+         aeson attoparsec base base16-bytestring base64-bytestring
+         bytestring cereal conduit conduit-extra crypto-api cryptohash
+         cryptohash-cryptoapi data-default http-client http-conduit
+         http-types monad-logger old-locale resourcet text time transformers
+         transformers-base unliftio unliftio-core unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring conduit containers data-default hspec
+         http-conduit HUnit QuickCheck resourcet text time transformers
+         unliftio
+       ];
+       homepage = "https://github.com/psibi/fb";
+       description = "Bindings to Facebook's API";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "fb-persistent" = callPackage
     ({ mkDerivation, base, cereal, fb, persistent, text, time }:
      mkDerivation {
@@ -72154,6 +72625,7 @@ self: {
        isExecutable = true;
        description = "TBA";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fckeditor" = callPackage
@@ -72177,6 +72649,8 @@ self: {
        pname = "fclabels";
        version = "2.0.3.3";
        sha256 = "1q62p41bj991s7i15ciayw1v1xq8szn4bls50p65lfy2dnj7554s";
+       revision = "1";
+       editedCabalFile = "0fs17vv85ybl3ws8k25sg758vq49l19vhn4asm8r6q5j9xic2kvl";
        libraryHaskellDepends = [ base mtl template-haskell transformers ];
        testHaskellDepends = [
          base HUnit mtl template-haskell transformers
@@ -75749,6 +76223,8 @@ self: {
        pname = "forma";
        version = "0.2.0";
        sha256 = "05rd0v908imlfvp5m3lb5mc629790yyazsj79rpx0svhnxgsgl00";
+       revision = "1";
+       editedCabalFile = "1hqay7gjhnlxya08qwmxnwriy958awafvyi7rws6wla5m1cq0wr6";
        libraryHaskellDepends = [
          aeson base containers data-default-class mtl text
          unordered-containers
@@ -76468,7 +76944,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "free_5" = callPackage
+  "free_5_0_1" = callPackage
     ({ mkDerivation, base, bifunctors, comonad, containers
      , distributive, exceptions, mtl, profunctors, semigroupoids
      , semigroups, template-haskell, transformers, transformers-base
@@ -76476,10 +76952,8 @@ self: {
      }:
      mkDerivation {
        pname = "free";
-       version = "5";
-       sha256 = "1s4avwm4lnscmxv3fy0zws3vbg61sczgxm1m3cdnqxp95bd6p4c7";
-       revision = "1";
-       editedCabalFile = "13kxrs6097cwh80hawdmdrz4l5cqmrwkxh667spx8hx390102ddf";
+       version = "5.0.1";
+       sha256 = "16b29r9f9j7wpd99zbspkxq22rm6r2shqv1isa1ipqfbzn9bap5p";
        libraryHaskellDepends = [
          base bifunctors comonad containers distributive exceptions mtl
          profunctors semigroupoids semigroups template-haskell transformers
@@ -76526,8 +77000,8 @@ self: {
      }:
      mkDerivation {
        pname = "free-functors";
-       version = "0.8.1";
-       sha256 = "0l9l7292vdwsiqynh62f277ilbill3azws6rajyjrv1lp1ll9ys0";
+       version = "0.8.3";
+       sha256 = "01qf4bbmp86c5i429fa440brb62py51afg74xrh31yzddw1iwszp";
        libraryHaskellDepends = [
          algebraic-classes base bifunctors comonad constraints contravariant
          profunctors template-haskell transformers
@@ -76687,14 +77161,15 @@ self: {
      }) {};
 
   "free-vector-spaces" = callPackage
-    ({ mkDerivation, base, lens, linear, MemoTrie, vector, vector-space
+    ({ mkDerivation, base, lens, linear, MemoTrie, pragmatic-show
+     , vector, vector-space
      }:
      mkDerivation {
        pname = "free-vector-spaces";
-       version = "0.1.4.0";
-       sha256 = "057l1fnkqyqnjbhzjz2jjlcrsmkcv2gd16gb5n3j99crw97s62xj";
+       version = "0.1.5.0";
+       sha256 = "0rf6yhjcd2x4yj2jvyl6yc8x55a2hqhj5mxzg4f24734agh720z1";
        libraryHaskellDepends = [
-         base lens linear MemoTrie vector vector-space
+         base lens linear MemoTrie pragmatic-show vector vector-space
        ];
        homepage = "https://github.com/leftaroundabout/free-vector-spaces";
        description = "Instantiate the classes from the vector-space package with types from linear";
@@ -77833,8 +78308,8 @@ self: {
        pname = "functor-classes-compat";
        version = "1";
        sha256 = "0vrnl5crr7d2wsm4ryx26g98j23dpk7x5p31xrbnckd78i7zj4gg";
-       revision = "1";
-       editedCabalFile = "04blby010250gyg0v7nwdr9hwzvkapmfy9xn5522h8jmb3yygh8l";
+       revision = "2";
+       editedCabalFile = "07ldwmqfwi2lgnmia5bb0885664a54g2q55f91swgafb11n0csqg";
        libraryHaskellDepends = [
          base containers hashable unordered-containers vector
        ];
@@ -80428,14 +80903,14 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ghc-boot_8_2_2" = callPackage
+  "ghc-boot_8_4_1" = callPackage
     ({ mkDerivation, base, binary, bytestring, directory, filepath
      , ghc-boot-th
      }:
      mkDerivation {
        pname = "ghc-boot";
-       version = "8.2.2";
-       sha256 = "0fwpfsdx584mcvavj1m961rnaryif9a0yibhlw0b2i59g3ca8f6g";
+       version = "8.4.1";
+       sha256 = "0abgzvqra66hi61bn901dlk0r0n4s2fg6y7d8w2k2a6w437vgzdd";
        libraryHaskellDepends = [
          base binary bytestring directory filepath ghc-boot-th
        ];
@@ -80444,12 +80919,12 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ghc-boot-th_8_2_2" = callPackage
+  "ghc-boot-th_8_4_1" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "ghc-boot-th";
-       version = "8.2.2";
-       sha256 = "0pdgimqqn1w04qw504bgcji74wj5wmxpwgj5w3wdrid47sr2d3kc";
+       version = "8.4.1";
+       sha256 = "0l9fv1sp4dbq1ssw0l55riw9zpcii8fz75i0yj0vlihccf10lbj9";
        libraryHaskellDepends = [ base ];
        description = "Shared functionality between GHC and the @template-haskell@ library";
        license = stdenv.lib.licenses.bsd3;
@@ -81042,6 +81517,38 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ghc-prof-aeson" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, hspec, text, vector }:
+     mkDerivation {
+       pname = "ghc-prof-aeson";
+       version = "0.1.0.0";
+       sha256 = "10vwwxiy53bacdzz0i62ashbr5snzda1v3qlb5bqk4f770fa7mpl";
+       libraryHaskellDepends = [ aeson base text vector ];
+       testHaskellDepends = [ aeson base bytestring hspec ];
+       homepage = "https://github.com/Fuuzetsu/ghc-prof-aeson#readme";
+       description = "Parser for GHC's JSON profiling output";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "ghc-prof-aeson-flamegraph" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers
+     , ghc-prof-aeson, optparse-applicative, text, vector
+     }:
+     mkDerivation {
+       pname = "ghc-prof-aeson-flamegraph";
+       version = "0.1.0.0";
+       sha256 = "1s1hgvq3lv8krxmwjj4dj2iraz86scpzxb40xj6z1yaqs4lp50rm";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson base bytestring containers ghc-prof-aeson
+         optparse-applicative text vector
+       ];
+       homepage = "https://github.com/Fuuzetsu/ghc-prof-aeson-flamegraph#readme";
+       description = "Turn GHC `-pj` profiling output into FlameGraph format";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ghc-prof-flamegraph" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -81315,15 +81822,15 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ghci_8_2_2" = callPackage
+  "ghci_8_4_1" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
      , deepseq, filepath, ghc-boot, ghc-boot-th, template-haskell
      , transformers, unix
      }:
      mkDerivation {
        pname = "ghci";
-       version = "8.2.2";
-       sha256 = "0j6aq2scjv0fpr5b60ac46r1n2hrcgbkrhv31yfnallwlwyqz5zn";
+       version = "8.4.1";
+       sha256 = "0jlnzkwj4xxs57c0zi3rcy96rksqakx65a7m8xq04055ip388sws";
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq filepath ghc-boot
          ghc-boot-th template-haskell transformers unix
@@ -81985,7 +82492,7 @@ self: {
        description = "GIRepository (gobject-introspection) bindings";
        license = stdenv.lib.licenses.lgpl21;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) gobjectIntrospection;};
+     }) {inherit (pkgs.gnome3) gobjectIntrospection;};
 
   "gi-glib" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, glib
@@ -82215,8 +82722,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtk";
-       version = "3.0.19";
-       sha256 = "1qcivdbwa3g05dzgzd3jnzha33j5jm06gp2ml9fma0d1160dqa2g";
+       version = "3.0.20";
+       sha256 = "0k3rbr8jajkhgmrdpv7fy4xk2kfx3b6cgm8wgfba8m8wkz1s1l7s";
        setupHaskellDepends = [ base Cabal haskell-gi ];
        libraryHaskellDepends = [
          base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf
@@ -82479,7 +82986,7 @@ self: {
        description = "Libsecret bindings";
        license = stdenv.lib.licenses.lgpl21;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) libsecret;};
+     }) {inherit (pkgs.gnome3) libsecret;};
 
   "gi-soup" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
@@ -83533,8 +84040,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-webhooks";
-       version = "0.9.0";
-       sha256 = "1gzks7l39il0g9maj2hkfwpz8rnrnmc05fhcsr27a6c08962gn0f";
+       version = "0.9.1";
+       sha256 = "1h4wqix0rgsq7n3dv3nraqa3sbf5hgavq5k9dymfnw68qz5ii68b";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite deepseq
          deepseq-generics memory text time vector
@@ -83892,7 +84399,7 @@ self: {
 
   "gl" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, filepath
-     , fixed, half, hxt, mesa, transformers
+     , fixed, half, hxt, libGL, transformers
      }:
      mkDerivation {
        pname = "gl";
@@ -83904,10 +84411,10 @@ self: {
        libraryHaskellDepends = [
          base containers fixed half transformers
        ];
-       librarySystemDepends = [ mesa ];
+       librarySystemDepends = [ libGL ];
        description = "Complete OpenGL raw bindings";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) mesa;};
+     }) {inherit (pkgs) libGL;};
 
   "gl-capture" = callPackage
     ({ mkDerivation, base, bytestring, OpenGL }:
@@ -84801,25 +85308,25 @@ self: {
      }) {};
 
   "gnome-keyring" = callPackage
-    ({ mkDerivation, base, bytestring, c2hs, gnome_keyring, text, time
+    ({ mkDerivation, base, bytestring, c2hs, gnome-keyring, text, time
      }:
      mkDerivation {
        pname = "gnome-keyring";
        version = "0.3.1";
        sha256 = "08fayi4ixqyzin7lxyx2s3yap377y6nrdf4fmv7bi895j2k642l8";
        libraryHaskellDepends = [ base bytestring text time ];
-       librarySystemDepends = [ gnome_keyring ];
-       libraryPkgconfigDepends = [ gnome_keyring ];
+       librarySystemDepends = [ gnome-keyring ];
+       libraryPkgconfigDepends = [ gnome-keyring ];
        libraryToolDepends = [ c2hs ];
        homepage = "https://john-millikin.com/software/haskell-gnome-keyring/";
        description = "Bindings for libgnome-keyring";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {gnome_keyring = null;};
+     }) {inherit (pkgs.gnome2) gnome-keyring;};
 
   "gnomevfs" = callPackage
-    ({ mkDerivation, array, base, containers, glib, gnome_vfs
-     , gnome_vfs_module, gtk, gtk2hs-buildtools, haskell98, mtl
+    ({ mkDerivation, array, base, containers, glib, gnome-vfs
+     , gnome-vfs_module, gtk, gtk2hs-buildtools, haskell98, mtl
      }:
      mkDerivation {
        pname = "gnomevfs";
@@ -84828,13 +85335,13 @@ self: {
        libraryHaskellDepends = [
          array base containers glib gtk haskell98 mtl
        ];
-       libraryPkgconfigDepends = [ gnome_vfs gnome_vfs_module ];
+       libraryPkgconfigDepends = [ gnome-vfs gnome-vfs_module ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        homepage = "http://www.haskell.org/gtk2hs/";
        description = "Binding to the GNOME Virtual File System library";
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs.gnome2) gnome_vfs; gnome_vfs_module = null;};
+     }) {gnome-vfs = null; gnome-vfs_module = null;};
 
   "gnss-converters" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, basic-prelude
@@ -86685,6 +87192,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "google-server-api" = callPackage
+    ({ mkDerivation, aeson, aeson-casing, base, base64-bytestring
+     , bytestring, HsOpenSSL, http-api-data, http-client
+     , http-client-tls, mime-mail, monad-control, monad-logger, mtl
+     , read-env-var, RSA, servant, servant-client, text, time
+     , transformers, transformers-base, unix-time, unordered-containers
+     , wai, wai-extra, warp
+     }:
+     mkDerivation {
+       pname = "google-server-api";
+       version = "0.1.0.1";
+       sha256 = "1mnc8s2a13ax9y5f2044bq8wvgn2zbb7g5sy1rav60g3qia0dkpq";
+       libraryHaskellDepends = [
+         aeson aeson-casing base base64-bytestring bytestring HsOpenSSL
+         http-api-data http-client http-client-tls mime-mail monad-control
+         monad-logger mtl read-env-var RSA servant servant-client text time
+         transformers transformers-base unix-time unordered-containers wai
+         wai-extra warp
+       ];
+       homepage = "https://github.com/arowM/haskell-google-server-api#readme";
+       description = "Google APIs for server to server applications";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "google-static-maps" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytedump
      , bytestring, cryptonite, double-conversion, http-client
@@ -87832,22 +88363,6 @@ self: {
      }:
      mkDerivation {
        pname = "graphs";
-       version = "0.7";
-       sha256 = "0k3g5wrznwxmlmki5z08aj4rnlilz9z83dy0mydwksljc2n5d9pf";
-       libraryHaskellDepends = [
-         array base containers transformers transformers-compat void
-       ];
-       homepage = "http://github.com/ekmett/graphs";
-       description = "A simple monadic graph library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "graphs_0_7_1" = callPackage
-    ({ mkDerivation, array, base, containers, transformers
-     , transformers-compat, void
-     }:
-     mkDerivation {
-       pname = "graphs";
        version = "0.7.1";
        sha256 = "02g21jpz8jm8j1kpszk8vglw1733z2jp32dc650z40nxlmxpmlxc";
        libraryHaskellDepends = [
@@ -87856,7 +88371,6 @@ self: {
        homepage = "http://github.com/ekmett/graphs";
        description = "A simple monadic graph library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "graphted" = callPackage
@@ -88317,6 +88831,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "groundhog_0_8_0_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
+     , blaze-builder, bytestring, containers, monad-control, mtl
+     , resourcet, safe-exceptions, scientific, text, time, transformers
+     , transformers-base, transformers-compat
+     }:
+     mkDerivation {
+       pname = "groundhog";
+       version = "0.8.0.1";
+       sha256 = "0qrv2rpw1nqn28j6mcmwn0sjmfsfg5gj68sq5dcydh247q1acp5r";
+       libraryHaskellDepends = [
+         aeson attoparsec base base64-bytestring blaze-builder bytestring
+         containers monad-control mtl resourcet safe-exceptions scientific
+         text time transformers transformers-base transformers-compat
+       ];
+       homepage = "http://github.com/lykahb/groundhog";
+       description = "Type-safe datatype-database mapping library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "groundhog-converters" = callPackage
     ({ mkDerivation, aeson, base, bimap, bytestring, containers
      , groundhog, groundhog-sqlite, groundhog-th, tasty, tasty-hunit
@@ -88377,6 +88912,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "groundhog-mysql_0_8_0_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, groundhog
+     , monad-control, monad-logger, mysql, mysql-simple, resource-pool
+     , resourcet, text, time, transformers
+     }:
+     mkDerivation {
+       pname = "groundhog-mysql";
+       version = "0.8.0.1";
+       sha256 = "0h4sckj7hrhlnrfa9639kr9id8rf11ragadsj9rxils1vn4cn35r";
+       libraryHaskellDepends = [
+         base bytestring containers groundhog monad-control monad-logger
+         mysql mysql-simple resource-pool resourcet text time transformers
+       ];
+       description = "MySQL backend for the groundhog library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "groundhog-postgresql" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
      , containers, groundhog, monad-control, postgresql-libpq
@@ -88396,6 +88949,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "groundhog-postgresql_0_8_0_3" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
+     , containers, groundhog, monad-control, postgresql-libpq
+     , postgresql-simple, resource-pool, resourcet, text, time
+     , transformers, vector
+     }:
+     mkDerivation {
+       pname = "groundhog-postgresql";
+       version = "0.8.0.3";
+       sha256 = "0iz21awiblzir01r6p77qnlvqsb8j87x5y11g1q2spnafzj4wlpl";
+       libraryHaskellDepends = [
+         aeson attoparsec base blaze-builder bytestring containers groundhog
+         monad-control postgresql-libpq postgresql-simple resource-pool
+         resourcet text time transformers vector
+       ];
+       description = "PostgreSQL backend for the groundhog library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "groundhog-sqlite" = callPackage
     ({ mkDerivation, base, bytestring, containers, direct-sqlite
      , groundhog, monad-control, resource-pool, resourcet, text
@@ -88413,6 +88986,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "groundhog-sqlite_0_8_0_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, direct-sqlite
+     , groundhog, monad-control, resource-pool, resourcet, text
+     , transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "groundhog-sqlite";
+       version = "0.8.0.1";
+       sha256 = "1y6cfnyrrq61vv793crfb7yd21yn0gqmx7j7c9sg8665l34wq2jp";
+       libraryHaskellDepends = [
+         base bytestring containers direct-sqlite groundhog monad-control
+         resource-pool resourcet text transformers unordered-containers
+       ];
+       description = "Sqlite3 backend for the groundhog library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "groundhog-th" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, groundhog
      , template-haskell, text, time, unordered-containers, yaml
@@ -90457,6 +91048,8 @@ self: {
        pname = "hackage-db";
        version = "2.0";
        sha256 = "09xza82g45nv3gxmryqd2mns4bm8hr6d7hzr7nqdi6zq46s0lfgq";
+       revision = "1";
+       editedCabalFile = "1zsdy9c0gngl8k690311zchd3lhl7h64arab77p7v9j5bradziiq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -90472,6 +91065,27 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
 
+  "hackage-db_2_0_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, Cabal, containers
+     , directory, filepath, tar, time, utf8-string
+     }:
+     mkDerivation {
+       pname = "hackage-db";
+       version = "2.0.1";
+       sha256 = "13ggj72i8dxwh3qwznnqxbr00nvsbapyyhzx5zybfacddnpw3aph";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring Cabal containers directory filepath tar time
+         utf8-string
+       ];
+       homepage = "https://github.com/peti/hackage-db#readme";
+       description = "Access Hackage's package database via Data.Map";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ peti ];
+     }) {};
+
   "hackage-diff" = callPackage
     ({ mkDerivation, ansi-terminal, async, attoparsec, base, Cabal
      , cpphs, directory, filepath, haskell-src-exts, HTTP, mtl, process
@@ -90974,8 +91588,8 @@ self: {
     ({ mkDerivation, base, filepath, haddock-api, hspec }:
      mkDerivation {
        pname = "haddock";
-       version = "2.18.1";
-       sha256 = "1gg1nl38f2h93xci4pa4zgb5wvcpwv0mab0balmzzgnd4amk3jgv";
+       version = "2.19.0.1";
+       sha256 = "1g1j9j0hf2yhyyh0gwz6bzbvfvliqz9x8a8hnkmwghm7w3xa6sb7";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base haddock-api ];
@@ -91059,16 +91673,18 @@ self: {
      }:
      mkDerivation {
        pname = "haddock-api";
-       version = "2.18.1";
-       sha256 = "1q0nf86h6b466yd3bhng8sklm0kqc8bak4k6d4dcc57j3wf2gak8";
-       revision = "1";
-       editedCabalFile = "0ncxba7bppgap3vaxv07cyq2q4wsb860xv83znj4dgksvr64xl7y";
+       version = "2.19.0.1";
+       sha256 = "0c6i7sljp7myz25d90gyw68a90i5jcrkajkxcciikp2hjirfaas3";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base bytestring Cabal containers deepseq directory filepath
          ghc ghc-boot ghc-paths haddock-library transformers xhtml
        ];
-       testHaskellDepends = [ base containers ghc hspec QuickCheck ];
+       testHaskellDepends = [
+         array base bytestring Cabal containers deepseq directory filepath
+         ghc ghc-boot ghc-paths haddock-library hspec QuickCheck
+         transformers xhtml
+       ];
        testToolDepends = [ hspec-discover ];
        homepage = "http://www.haskell.org/haddock/";
        description = "A documentation-generation tool for Haskell libraries";
@@ -91150,17 +91766,21 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "haddock-library_1_4_5" = callPackage
-    ({ mkDerivation, base, base-compat, bytestring, deepseq, hspec
-     , hspec-discover, QuickCheck, transformers
+  "haddock-library_1_5_0_1" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, containers, deepseq
+     , directory, filepath, hspec, hspec-discover, optparse-applicative
+     , QuickCheck, transformers, tree-diff
      }:
      mkDerivation {
        pname = "haddock-library";
-       version = "1.4.5";
-       sha256 = "0dmpxj6fgv9js90cxlf4yhrclh8kwmn8dm4llwhiyzmiddanjjy9";
-       libraryHaskellDepends = [ base bytestring deepseq transformers ];
+       version = "1.5.0.1";
+       sha256 = "1cmbg8l5xrwpliclwy3l057raypjqy0hsg1h1743ahaj8gq10b7z";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq transformers
+       ];
        testHaskellDepends = [
-         base base-compat bytestring deepseq hspec QuickCheck transformers
+         base base-compat bytestring containers deepseq directory filepath
+         hspec optparse-applicative QuickCheck transformers tree-diff
        ];
        testToolDepends = [ hspec-discover ];
        homepage = "http://www.haskell.org/haddock/";
@@ -92682,6 +93302,34 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hapistrano_0_3_5_3" = callPackage
+    ({ mkDerivation, aeson, async, base, directory, filepath
+     , formatting, gitrev, hspec, mtl, optparse-applicative, path
+     , path-io, process, stm, temporary, time, transformers, yaml
+     }:
+     mkDerivation {
+       pname = "hapistrano";
+       version = "0.3.5.3";
+       sha256 = "04f7fiy4zdsl2pxb6yxq91lqgvyw0qwr9ky5sxsxj4nx40inv4d1";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base filepath formatting gitrev mtl path process time transformers
+       ];
+       executableHaskellDepends = [
+         aeson async base formatting gitrev optparse-applicative path
+         path-io stm yaml
+       ];
+       testHaskellDepends = [
+         base directory filepath hspec mtl path path-io process temporary
+       ];
+       homepage = "https://github.com/stackbuilders/hapistrano";
+       description = "A deployment library for Haskell applications";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "happindicator" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, glib, gtk
      , gtk2hs-buildtools, libappindicator-gtk2, mtl
@@ -93388,8 +94036,8 @@ self: {
        pname = "happy";
        version = "1.19.9";
        sha256 = "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y";
-       revision = "1";
-       editedCabalFile = "1lm706nv64cvfi3ccg7hc3217642sg0z9f9xz2ivbpzvzwwn8gj6";
+       revision = "2";
+       editedCabalFile = "1zxi8zfwiwxidrhr0yj5srpzp32z66sld9xv0k4yz7046rkl3577";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath ];
@@ -93508,16 +94156,21 @@ self: {
      }) {};
 
   "haquil" = callPackage
-    ({ mkDerivation, base, hTensor, MonadRandom, QuickCheck
-     , template-haskell, vector
+    ({ mkDerivation, base, bv, data-binary-ieee754, data-default
+     , hTensor, MonadRandom, QuickCheck, random, template-haskell
+     , vector
      }:
      mkDerivation {
        pname = "haquil";
-       version = "0.1.7.5";
-       sha256 = "0zmwp7839b6apjakrw7iksmx4dgiap5ak4wydcn0b2xj1wff7aq4";
-       libraryHaskellDepends = [ base hTensor MonadRandom vector ];
+       version = "0.2.1.14";
+       sha256 = "1k15vvhs075b20shiz4fc7h93axk4i1smzzkkbiz7s78r0bqndr8";
+       libraryHaskellDepends = [
+         base bv data-binary-ieee754 data-default hTensor MonadRandom random
+         vector
+       ];
        testHaskellDepends = [
-         base hTensor MonadRandom QuickCheck template-haskell vector
+         base bv data-binary-ieee754 data-default hTensor MonadRandom
+         QuickCheck random template-haskell vector
        ];
        homepage = "https://bitbucket.org/functionally/haquil";
        description = "A Haskell implementation of the Quil instruction set for quantum computing";
@@ -93969,6 +94622,33 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hashable_1_2_7_0" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq, ghc-prim
+     , HUnit, integer-gmp, QuickCheck, random, siphash, test-framework
+     , test-framework-hunit, test-framework-quickcheck2, text, unix
+     }:
+     mkDerivation {
+       pname = "hashable";
+       version = "1.2.7.0";
+       sha256 = "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring deepseq ghc-prim integer-gmp text
+       ];
+       testHaskellDepends = [
+         base bytestring ghc-prim HUnit QuickCheck random test-framework
+         test-framework-hunit test-framework-quickcheck2 text unix
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion ghc-prim integer-gmp siphash text
+       ];
+       homepage = "http://github.com/tibbe/hashable";
+       description = "A class for types that can be converted to a hash value";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hashable-extras" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, directory, doctest
      , filepath, hashable, transformers, transformers-compat
@@ -94747,18 +95427,19 @@ self: {
   "haskell-docs" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring, Cabal
      , containers, cryptohash, directory, filepath, ghc, ghc-paths
-     , haddock-api, monad-loops, process, text, unordered-containers
+     , haddock-api, haddock-library, monad-loops, process, text
+     , unordered-containers
      }:
      mkDerivation {
        pname = "haskell-docs";
-       version = "4.2.7";
-       sha256 = "1mb32kxn7p7xsvs3l32bj0igrmc1563ay9v40da2fmxnx3v1aap8";
+       version = "4.2.8";
+       sha256 = "00a93rva9mpg0wf3fj0h9l4ljz566vx1dv9hh4xhc5n1zqijycpz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring Cabal containers cryptohash
-         directory filepath ghc ghc-paths haddock-api monad-loops process
-         text unordered-containers
+         directory filepath ghc ghc-paths haddock-api haddock-library
+         monad-loops process text unordered-containers
        ];
        executableHaskellDepends = [ base ghc text ];
        testHaskellDepends = [ base ];
@@ -94929,7 +95610,8 @@ self: {
        homepage = "https://github.com/haskell-gi/haskell-gi";
        description = "Generate Haskell bindings for GObject Introspection capable libraries";
        license = stdenv.lib.licenses.lgpl21;
-     }) {inherit (pkgs) glib; inherit (pkgs) gobjectIntrospection;};
+     }) {inherit (pkgs) glib; 
+         inherit (pkgs.gnome3) gobjectIntrospection;};
 
   "haskell-gi_0_21_0" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, Cabal, containers
@@ -94957,7 +95639,8 @@ self: {
        description = "Generate Haskell bindings for GObject Introspection capable libraries";
        license = stdenv.lib.licenses.lgpl21;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) glib; inherit (pkgs) gobjectIntrospection;};
+     }) {inherit (pkgs) glib; 
+         inherit (pkgs.gnome3) gobjectIntrospection;};
 
   "haskell-gi-base" = callPackage
     ({ mkDerivation, base, bytestring, containers, glib, text }:
@@ -95610,15 +96293,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "haskell-src-exts_1_20_1" = callPackage
+  "haskell-src-exts_1_20_2" = callPackage
     ({ mkDerivation, array, base, containers, cpphs, directory
      , filepath, ghc-prim, happy, mtl, pretty, pretty-show, smallcheck
      , tasty, tasty-golden, tasty-smallcheck
      }:
      mkDerivation {
        pname = "haskell-src-exts";
-       version = "1.20.1";
-       sha256 = "1jsjl9hja2dpcfq4mzlfpwyr6axwnwgacfb7aa070kz4lbygzaa8";
+       version = "1.20.2";
+       sha256 = "1sm3z4v1p5yffg01ldgavz71s3bvfhjfa13k428rk14bpkl8crlz";
        libraryHaskellDepends = [ array base cpphs ghc-prim pretty ];
        libraryToolDepends = [ happy ];
        testHaskellDepends = [
@@ -95826,6 +96509,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "haskell-tools-ast_1_0_1_1" = callPackage
+    ({ mkDerivation, base, classyplate, ghc, mtl, pretty, references
+     , template-haskell, uniplate
+     }:
+     mkDerivation {
+       pname = "haskell-tools-ast";
+       version = "1.0.1.1";
+       sha256 = "0ckszqvl843g1gywhc7sj2s4wr58ng2cqyxi0kihdbfq7xmk943b";
+       libraryHaskellDepends = [
+         base classyplate ghc mtl pretty references template-haskell
+         uniplate
+       ];
+       homepage = "https://github.com/nboldi/haskell-tools";
+       description = "Haskell AST for efficient tooling";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-tools-ast-fromghc" = callPackage
     ({ mkDerivation, base, bytestring, containers, ghc
      , haskell-tools-ast, mtl, references, safe, split, template-haskell
@@ -95898,6 +96599,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "haskell-tools-backend-ghc_1_0_1_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, ghc, ghc-boot-th
+     , haskell-tools-ast, mtl, references, safe, split, template-haskell
+     , transformers, uniplate
+     }:
+     mkDerivation {
+       pname = "haskell-tools-backend-ghc";
+       version = "1.0.1.1";
+       sha256 = "05bn79ysb2bw42hid2ksqddqidimvqsx09nr771wf1ha7qapksmq";
+       libraryHaskellDepends = [
+         base bytestring containers ghc ghc-boot-th haskell-tools-ast mtl
+         references safe split template-haskell transformers uniplate
+       ];
+       homepage = "https://github.com/nboldi/haskell-tools";
+       description = "Creating the Haskell-Tools AST from GHC's representations";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-tools-builtin-refactorings" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, either
      , filepath, ghc, ghc-paths, haskell-tools-ast
@@ -95930,6 +96650,39 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "haskell-tools-builtin-refactorings_1_0_1_1" = callPackage
+    ({ mkDerivation, aeson, base, Cabal, classyplate, containers
+     , deepseq, directory, either, filepath, ghc, ghc-paths
+     , haskell-tools-ast, haskell-tools-backend-ghc
+     , haskell-tools-prettyprint, haskell-tools-refactor
+     , haskell-tools-rewrite, minisat-solver, mtl, references, split
+     , tasty, tasty-hunit, template-haskell, time, transformers
+     , uniplate
+     }:
+     mkDerivation {
+       pname = "haskell-tools-builtin-refactorings";
+       version = "1.0.1.1";
+       sha256 = "00yp1gvfvg3c2fa9ndnqphxbnsrshifida3247yafd7q9hhgd7q8";
+       libraryHaskellDepends = [
+         aeson base Cabal classyplate containers deepseq directory filepath
+         ghc ghc-paths haskell-tools-ast haskell-tools-backend-ghc
+         haskell-tools-prettyprint haskell-tools-refactor
+         haskell-tools-rewrite minisat-solver mtl references split
+         template-haskell transformers uniplate
+       ];
+       testHaskellDepends = [
+         base Cabal containers directory either filepath ghc ghc-paths
+         haskell-tools-ast haskell-tools-backend-ghc
+         haskell-tools-prettyprint haskell-tools-refactor
+         haskell-tools-rewrite mtl references split tasty tasty-hunit
+         template-haskell time transformers uniplate
+       ];
+       homepage = "https://github.com/haskell-tools/haskell-tools";
+       description = "Refactoring Tool for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-tools-cli" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , directory, filepath, ghc, ghc-paths, Glob
@@ -95967,6 +96720,43 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "haskell-tools-cli_1_0_1_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , directory, filepath, ghc, ghc-paths, Glob
+     , haskell-tools-builtin-refactorings, haskell-tools-daemon
+     , haskell-tools-refactor, knob, mtl, optparse-applicative, process
+     , references, split, strict, tasty, tasty-hunit, time
+     }:
+     mkDerivation {
+       pname = "haskell-tools-cli";
+       version = "1.0.1.1";
+       sha256 = "1fr4hzhlbwxna326dkzc92x1scjrf2yjgx8rhn5r76afay5w0wj9";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory filepath ghc ghc-paths
+         haskell-tools-builtin-refactorings haskell-tools-daemon
+         haskell-tools-refactor mtl references split strict
+       ];
+       executableHaskellDepends = [
+         base directory filepath Glob haskell-tools-builtin-refactorings
+         haskell-tools-daemon mtl optparse-applicative process split
+       ];
+       testHaskellDepends = [
+         base bytestring directory filepath
+         haskell-tools-builtin-refactorings knob tasty tasty-hunit
+       ];
+       benchmarkHaskellDepends = [
+         aeson base bytestring criterion directory filepath
+         haskell-tools-builtin-refactorings haskell-tools-daemon knob split
+         time
+       ];
+       homepage = "https://github.com/haskell-tools/haskell-tools";
+       description = "Command-line frontend for Haskell-tools Refact";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-tools-daemon" = callPackage
     ({ mkDerivation, aeson, base, bytestring, Cabal, containers
      , deepseq, Diff, directory, filepath, fswatch, ghc, ghc-paths, Glob
@@ -96002,6 +96792,41 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "haskell-tools-daemon_1_0_1_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, Cabal, containers
+     , deepseq, Diff, directory, filepath, fswatch, ghc, ghc-paths, Glob
+     , haskell-tools-builtin-refactorings, haskell-tools-prettyprint
+     , haskell-tools-refactor, HUnit, mtl, network, optparse-applicative
+     , pretty, process, references, split, strict, tasty, tasty-hunit
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "haskell-tools-daemon";
+       version = "1.0.1.1";
+       sha256 = "0r48z9vkkgzgvlryfri6dzivf090pkjv52k517z9wvis3jxhqi7i";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring Cabal containers deepseq Diff directory
+         filepath fswatch ghc ghc-paths haskell-tools-builtin-refactorings
+         haskell-tools-prettyprint haskell-tools-refactor mtl network
+         optparse-applicative pretty process references split strict
+         template-haskell
+       ];
+       executableHaskellDepends = [
+         base directory filepath haskell-tools-builtin-refactorings
+       ];
+       testHaskellDepends = [
+         aeson base bytestring directory filepath ghc Glob
+         haskell-tools-builtin-refactorings HUnit network process tasty
+         tasty-hunit
+       ];
+       homepage = "https://github.com/haskell-tools/haskell-tools";
+       description = "Background process for Haskell-tools that editors can connect to";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-tools-debug" = callPackage
     ({ mkDerivation, base, filepath, ghc, ghc-paths, haskell-tools-ast
      , haskell-tools-backend-ghc, haskell-tools-builtin-refactorings
@@ -96027,6 +96852,32 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "haskell-tools-debug_1_0_1_1" = callPackage
+    ({ mkDerivation, base, classyplate, criterion, filepath, ghc
+     , ghc-paths, haskell-tools-ast, haskell-tools-backend-ghc
+     , haskell-tools-builtin-refactorings, haskell-tools-prettyprint
+     , haskell-tools-refactor, mtl, references, split, template-haskell
+     , uniplate
+     }:
+     mkDerivation {
+       pname = "haskell-tools-debug";
+       version = "1.0.1.1";
+       sha256 = "1ml4rbkcajgwssi1a0jgbbqnnci9f74w90zj9cxdxxkkck4fkypl";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base classyplate criterion filepath ghc ghc-paths haskell-tools-ast
+         haskell-tools-backend-ghc haskell-tools-builtin-refactorings
+         haskell-tools-prettyprint haskell-tools-refactor mtl references
+         split template-haskell uniplate
+       ];
+       executableHaskellDepends = [ base ];
+       homepage = "https://github.com/haskell-tools/haskell-tools";
+       description = "Debugging Tools for Haskell-tools";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-tools-demo" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , filepath, ghc, ghc-paths, haskell-tools-ast
@@ -96059,6 +96910,38 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "haskell-tools-demo_1_0_1_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , filepath, ghc, ghc-paths, haskell-tools-ast
+     , haskell-tools-backend-ghc, haskell-tools-builtin-refactorings
+     , haskell-tools-prettyprint, haskell-tools-refactor, http-types
+     , HUnit, mtl, network, references, tasty, tasty-hunit, transformers
+     , wai, wai-websockets, warp, websockets
+     }:
+     mkDerivation {
+       pname = "haskell-tools-demo";
+       version = "1.0.1.1";
+       sha256 = "01fkl2xkq7v3mkm5dzfpfz53i2js68xhc3gvkc1lv8mg92zymfbb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers directory filepath ghc ghc-paths
+         haskell-tools-ast haskell-tools-backend-ghc
+         haskell-tools-builtin-refactorings haskell-tools-prettyprint
+         haskell-tools-refactor http-types mtl references transformers wai
+         wai-websockets warp websockets
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         aeson base bytestring directory filepath HUnit network tasty
+         tasty-hunit websockets
+       ];
+       homepage = "https://github.com/haskell-tools/haskell-tools";
+       description = "A web-based demo for Haskell-tools Refactor";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-tools-experimental-refactorings" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, either
      , filepath, ghc, ghc-paths, haskell-tools-ast
@@ -96069,8 +96952,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-tools-experimental-refactorings";
-       version = "1.0.0.4";
-       sha256 = "0mzwvs33snv3a3dvhkd1mnidkifip21rj2y44k9dcwdhfzcz6xbl";
+       version = "1.0.1.1";
+       sha256 = "0dyiixq7rdzjczzfv57b7f2859r4nmxrk68vq0flkazjqh9w08yb";
        libraryHaskellDepends = [
          base Cabal containers directory filepath ghc ghc-paths
          haskell-tools-ast haskell-tools-backend-ghc
@@ -96107,6 +96990,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "haskell-tools-prettyprint_1_0_1_1" = callPackage
+    ({ mkDerivation, base, containers, ghc, haskell-tools-ast, mtl
+     , references, split, text, uniplate
+     }:
+     mkDerivation {
+       pname = "haskell-tools-prettyprint";
+       version = "1.0.1.1";
+       sha256 = "0j1ral0azwgxj550yf1jyyxprv0wb0cgd7sfk3dh52caqfwchi2p";
+       libraryHaskellDepends = [
+         base containers ghc haskell-tools-ast mtl references split text
+         uniplate
+       ];
+       homepage = "https://github.com/haskell-tools/haskell-tools";
+       description = "Pretty printing of Haskell-Tools AST";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-tools-refactor" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, filepath, ghc
      , ghc-paths, haskell-tools-ast, haskell-tools-backend-ghc
@@ -96128,6 +97029,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "haskell-tools-refactor_1_0_1_1" = callPackage
+    ({ mkDerivation, aeson, base, Cabal, containers, directory, either
+     , filepath, ghc, ghc-paths, haskell-tools-ast
+     , haskell-tools-backend-ghc, haskell-tools-prettyprint
+     , haskell-tools-rewrite, mtl, old-time, polyparse, references
+     , split, tasty, tasty-hunit, template-haskell, time, transformers
+     , uniplate
+     }:
+     mkDerivation {
+       pname = "haskell-tools-refactor";
+       version = "1.0.1.1";
+       sha256 = "1s0nd1swxqiip5hq13ys9f6vbj22mw1c5dh5m9360md163hvvlw2";
+       libraryHaskellDepends = [
+         aeson base Cabal containers directory filepath ghc ghc-paths
+         haskell-tools-ast haskell-tools-backend-ghc
+         haskell-tools-prettyprint haskell-tools-rewrite mtl references
+         split template-haskell transformers uniplate
+       ];
+       testHaskellDepends = [
+         base Cabal containers directory either filepath ghc ghc-paths
+         haskell-tools-ast haskell-tools-backend-ghc
+         haskell-tools-prettyprint haskell-tools-rewrite mtl old-time
+         polyparse references split tasty tasty-hunit template-haskell time
+         transformers uniplate
+       ];
+       homepage = "https://github.com/haskell-tools/haskell-tools";
+       description = "Refactoring Tool for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-tools-rewrite" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, ghc
      , haskell-tools-ast, haskell-tools-prettyprint, mtl, references
@@ -96150,6 +97082,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "haskell-tools-rewrite_1_0_1_1" = callPackage
+    ({ mkDerivation, base, containers, directory, filepath, ghc
+     , haskell-tools-ast, haskell-tools-prettyprint, mtl, references
+     , tasty, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "haskell-tools-rewrite";
+       version = "1.0.1.1";
+       sha256 = "11psrwb8hmxian29n9y9301mlkfhx3y2nb06ml9808yrzpbwg1m2";
+       libraryHaskellDepends = [
+         base containers ghc haskell-tools-ast haskell-tools-prettyprint mtl
+         references
+       ];
+       testHaskellDepends = [
+         base directory filepath haskell-tools-ast haskell-tools-prettyprint
+         tasty tasty-hunit
+       ];
+       homepage = "https://github.com/haskell-tools/haskell-tools";
+       description = "Facilities for generating new parts of the Haskell-Tools AST";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-tor" = callPackage
     ({ mkDerivation, array, asn1-encoding, asn1-types, async
      , attoparsec, base, base64-bytestring, binary, bytestring, cereal
@@ -96776,8 +97731,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskelzinc";
-       version = "0.3.1.0";
-       sha256 = "0k3rsqassxjjwxn0cs2g8jl7hl3qmvdvrfdcclc3bf9pjf93jvwh";
+       version = "0.3.1.1";
+       sha256 = "0dz9sd2i6m4d2jj76zl6yfaynnzj8ihhfis6602cqh37ngxgkxqj";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base containers directory filepath parsec pretty process
@@ -97506,6 +98461,7 @@ self: {
        homepage = "https://github.com/contivero/hasmin#readme";
        description = "CSS Minifier";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hasparql-client" = callPackage
@@ -98459,7 +99415,7 @@ self: {
      }) {};
 
   "hayland" = callPackage
-    ({ mkDerivation, base, data-flags, mesa, process, template-haskell
+    ({ mkDerivation, base, data-flags, libGL, process, template-haskell
      , time, wayland, xml
      }:
      mkDerivation {
@@ -98471,13 +99427,13 @@ self: {
        libraryHaskellDepends = [
          base data-flags process template-haskell time xml
        ];
-       librarySystemDepends = [ mesa wayland ];
+       librarySystemDepends = [ libGL wayland ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base process xml ];
        description = "Haskell bindings for the C Wayland library";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) mesa; inherit (pkgs) wayland;};
+     }) {inherit (pkgs) libGL; inherit (pkgs) wayland;};
 
   "hayoo-cli" = callPackage
     ({ mkDerivation, aeson, base, bytestring, http-conduit, http-types
@@ -100376,22 +101332,6 @@ self: {
      }:
      mkDerivation {
        pname = "here";
-       version = "1.2.12";
-       sha256 = "0kiwcknk145z7y48qgpf73f0kwz4nnqa72q14vypy21sb5bpcgxc";
-       libraryHaskellDepends = [
-         base haskell-src-meta mtl parsec template-haskell
-       ];
-       homepage = "https://github.com/tmhedberg/here";
-       description = "Here docs & interpolated strings via quasiquotation";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "here_1_2_13" = callPackage
-    ({ mkDerivation, base, haskell-src-meta, mtl, parsec
-     , template-haskell
-     }:
-     mkDerivation {
-       pname = "here";
        version = "1.2.13";
        sha256 = "001wfyvigl2xswqysnpignkl124hybf833875mkcsn8yp8krqvs0";
        libraryHaskellDepends = [
@@ -100400,7 +101340,6 @@ self: {
        homepage = "https://github.com/tmhedberg/here";
        description = "Here docs & interpolated strings via quasiquotation";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "heredoc" = callPackage
@@ -101564,6 +102503,8 @@ self: {
        pname = "hgmp";
        version = "0.1.1";
        sha256 = "1hisbcpz47x2lbqf8vzwis7qw7xhvx22lv7dcyhm9vsmsh5741dr";
+       revision = "1";
+       editedCabalFile = "14hbr8r0pjgjv2pv9any7yqrvw2qyg7z1fk89d4sh0wd6isvgjqj";
        libraryHaskellDepends = [ base ghc-prim integer-gmp ];
        testHaskellDepends = [ base QuickCheck ];
        homepage = "https://code.mathr.co.uk/hgmp";
@@ -102461,8 +103402,8 @@ self: {
        pname = "hint";
        version = "0.7.0";
        sha256 = "0mc17qdq0wb57zgh755viwcnby2jkmyv9r7fvq5jwsxx91c776i9";
-       revision = "1";
-       editedCabalFile = "07afndz6accq6g4d90xhvjh84ybhbffk5xl1qb3jrymf9vj5ad50";
+       revision = "2";
+       editedCabalFile = "1w96sfg6vlrw5q7cjdg1rz9jf2yl47fyas9qg3jfa9bcfmvs8cg2";
        libraryHaskellDepends = [
          base directory exceptions filepath ghc ghc-paths mtl random unix
        ];
@@ -103548,7 +104489,7 @@ self: {
        pname = "hlibsass";
        version = "0.1.6.1";
        sha256 = "0j88b1fm0al8w7h6sdw89jpsfs8aplj9q050k41gaib44r7hl4iy";
-       configureFlags = [ "-fexternallibsass" ];
+       configureFlags = [ "-fexternalLibsass" ];
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ libsass ];
@@ -103812,22 +104753,6 @@ self: {
      }:
      mkDerivation {
        pname = "hmatrix-gsl";
-       version = "0.18.0.1";
-       sha256 = "0mflm7zg6c6a5vy092pa429rzpyv5drc1589r3x4fbmvcyqc79gx";
-       libraryHaskellDepends = [
-         array base hmatrix process random vector
-       ];
-       libraryPkgconfigDepends = [ gsl ];
-       homepage = "https://github.com/albertoruiz/hmatrix";
-       description = "Numerical computation";
-       license = "GPL";
-     }) {inherit (pkgs) gsl;};
-
-  "hmatrix-gsl_0_18_2_0" = callPackage
-    ({ mkDerivation, array, base, gsl, hmatrix, process, random, vector
-     }:
-     mkDerivation {
-       pname = "hmatrix-gsl";
        version = "0.18.2.0";
        sha256 = "0gvghbyavlk808826qwy4r667i9mxf2ml5xjsbna5slx4sbj7jfs";
        libraryHaskellDepends = [
@@ -103837,7 +104762,6 @@ self: {
        homepage = "https://github.com/albertoruiz/hmatrix";
        description = "Numerical computation";
        license = "GPL";
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) gsl;};
 
   "hmatrix-gsl-stats" = callPackage
@@ -104517,15 +105441,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hoauth2_1_6_3" = callPackage
+  "hoauth2_1_7_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, exceptions, http-conduit
      , http-types, microlens, text, unordered-containers, uri-bytestring
      , uri-bytestring-aeson
      }:
      mkDerivation {
        pname = "hoauth2";
-       version = "1.6.3";
-       sha256 = "165xaw7k8ii9g8ig0ifvs8c76q2s760n8g0hxyhhprz1gj586913";
+       version = "1.7.1";
+       sha256 = "05l2ngns8p3jvx20iv8w4yrzn1agfxafgaynfwv0340czchl7s5s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -105419,6 +106343,8 @@ self: {
        pname = "hookup";
        version = "0.2";
        sha256 = "17sj62b78a22alq9hpsrjcri5yxz7yzxdar521yd6x7jv3xxpix2";
+       revision = "1";
+       editedCabalFile = "1g4zijk8f4rff0g2y0m0308zmnwsbx0a3swbx8i8gvfd6v1g4cf6";
        libraryHaskellDepends = [
          base bytestring HsOpenSSL HsOpenSSL-x509-system network socks
        ];
@@ -106073,8 +106999,8 @@ self: {
 
   "hp2any-graph" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
-     , freeglut, GLUT, hp2any-core, mesa, network, OpenGL, parseargs
-     , process
+     , freeglut, GLUT, hp2any-core, libGL, libGLU, network, OpenGL
+     , parseargs, process
      }:
      mkDerivation {
        pname = "hp2any-graph";
@@ -106087,12 +107013,13 @@ self: {
          base bytestring containers directory filepath GLUT hp2any-core
          network OpenGL parseargs process
        ];
-       executableSystemDepends = [ freeglut mesa ];
+       executableSystemDepends = [ freeglut libGL libGLU ];
        homepage = "http://www.haskell.org/haskellwiki/Hp2any";
        description = "Real-time heap graphing utility and profile stream server with a reusable graphing module";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) freeglut; inherit (pkgs) mesa;};
+     }) {inherit (pkgs) freeglut; inherit (pkgs) libGL; 
+         inherit (pkgs) libGLU;};
 
   "hp2any-manager" = callPackage
     ({ mkDerivation, array, base, bytestring, cairo, containers
@@ -106668,18 +107595,18 @@ self: {
 
   "hpqtypes-extras" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, containers
-     , cryptohash, exceptions, fields-json, hpqtypes, lifted-base
-     , log-base, monad-control, mtl, safe, tasty, tasty-hunit, text
-     , text-show, transformers
+     , cryptohash, data-default, exceptions, fields-json, hpqtypes
+     , lifted-base, log-base, monad-control, mtl, safe, tasty
+     , tasty-hunit, text, text-show, transformers
      }:
      mkDerivation {
        pname = "hpqtypes-extras";
-       version = "1.5.0.1";
-       sha256 = "022732jsji79a1bb805gh6pcif9ismivs2dwgwks0fb5i9hviilm";
+       version = "1.6.0.0";
+       sha256 = "1cp4dnamc0gia8xsf9f6hp8gfmhkfrfs8ijjcl9dqaka87m4hkmx";
        libraryHaskellDepends = [
-         base base16-bytestring bytestring containers cryptohash exceptions
-         fields-json hpqtypes lifted-base log-base monad-control mtl safe
-         text text-show
+         base base16-bytestring bytestring containers cryptohash
+         data-default exceptions fields-json hpqtypes lifted-base log-base
+         monad-control mtl safe text text-show
        ];
        testHaskellDepends = [
          base exceptions hpqtypes lifted-base log-base monad-control tasty
@@ -106719,6 +107646,35 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hprotoc_2_4_8" = callPackage
+    ({ mkDerivation, alex, array, base, binary, bytestring, containers
+     , directory, filepath, haskell-src-exts, mtl, parsec
+     , protocol-buffers, protocol-buffers-descriptor, utf8-string
+     }:
+     mkDerivation {
+       pname = "hprotoc";
+       version = "2.4.8";
+       sha256 = "1h3zjl1z80h7n1k1sk4a2qwsnq17c48f1lmzrdhrs9h5bnm9mjhk";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base binary bytestring containers directory filepath
+         haskell-src-exts mtl parsec protocol-buffers
+         protocol-buffers-descriptor utf8-string
+       ];
+       libraryToolDepends = [ alex ];
+       executableHaskellDepends = [
+         array base binary bytestring containers directory filepath
+         haskell-src-exts mtl parsec protocol-buffers
+         protocol-buffers-descriptor utf8-string
+       ];
+       executableToolDepends = [ alex ];
+       homepage = "https://github.com/k-bx/protocol-buffers";
+       description = "Parse Google Protocol Buffer specifications";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hprotoc-fork" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , directory, filepath, haskell-src-exts, mtl, parsec
@@ -106885,6 +107841,7 @@ self: {
        homepage = "http://github.com/paulrzcz/hquantlib.git";
        description = "HQuantLib is a port of essencial parts of QuantLib to Haskell";
        license = "LGPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hquery" = callPackage
@@ -107987,8 +108944,8 @@ self: {
     ({ mkDerivation, base, containers, directory, filepath, process }:
      mkDerivation {
        pname = "hsc2hs";
-       version = "0.68.2";
-       sha256 = "061ns6ig52pcjwi9cgdcasya4cgm3zlb5s2mzq9p01vw4iy702gn";
+       version = "0.68.3";
+       sha256 = "0q46l4mvclw7lys53zljgrcj142rbwzk5zc2djk2qj956ah1i25h";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -109163,28 +110120,6 @@ self: {
      }:
      mkDerivation {
        pname = "hslua";
-       version = "0.9.5";
-       sha256 = "1j2zk7f7nyywg2b0n6kb2yf6ljc7cn2sk9jz0h76g3ag2b70l12n";
-       configureFlags = [ "-fsystem-lua" ];
-       libraryHaskellDepends = [
-         base bytestring containers exceptions fail mtl text
-       ];
-       librarySystemDepends = [ lua5_3 ];
-       testHaskellDepends = [
-         base bytestring containers QuickCheck quickcheck-instances tasty
-         tasty-expected-failure tasty-hunit tasty-quickcheck text
-       ];
-       description = "A Lua language interpreter embedding in Haskell";
-       license = stdenv.lib.licenses.mit;
-     }) {inherit (pkgs) lua5_3;};
-
-  "hslua_0_9_5_1" = callPackage
-    ({ mkDerivation, base, bytestring, containers, exceptions, fail
-     , lua5_3, mtl, QuickCheck, quickcheck-instances, tasty
-     , tasty-expected-failure, tasty-hunit, tasty-quickcheck, text
-     }:
-     mkDerivation {
-       pname = "hslua";
        version = "0.9.5.1";
        sha256 = "1l3lkmzcal3106acw2bvky5dlblz4n331gnl1ly18j79flbzn7v8";
        configureFlags = [ "-fsystem-lua" ];
@@ -109198,7 +110133,6 @@ self: {
        ];
        description = "A Lua language interpreter embedding in Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) lua5_3;};
 
   "hslua-aeson" = callPackage
@@ -109210,6 +110144,8 @@ self: {
        pname = "hslua-aeson";
        version = "0.3.0.1";
        sha256 = "0h4l38bag7kd4d66iprv9hj36q8czqsxr5v6xgmn91wz4cadb42w";
+       revision = "1";
+       editedCabalFile = "02p97fsn7g6n0l5i9k0mrffqhw2a3y74vi0zaynsl224r4vwqsbp";
        libraryHaskellDepends = [
          aeson base hashable hslua scientific text unordered-containers
          vector
@@ -109229,6 +110165,8 @@ self: {
        pname = "hslua-module-text";
        version = "0.1.2.1";
        sha256 = "0bcfpb1dhnxp0gr376ai4w7vczr9zrjl1r3r6w7kcxivfkwq9cxf";
+       revision = "1";
+       editedCabalFile = "0vajlsd7y6pwa08635q0cx8z5c1c55bk7fvavw7g2vmyvxqjzx6n";
        libraryHaskellDepends = [ base hslua text ];
        testHaskellDepends = [ base hslua tasty tasty-hunit text ];
        homepage = "https://github.com/hslua/hslua-module-test";
@@ -109751,8 +110689,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-dirstream";
-       version = "0.3.0.0";
-       sha256 = "1gg17qx95v0widjng6sf0mf589vckixnwjl8n0kh08wpvbriqz60";
+       version = "0.4.0.0";
+       sha256 = "01090ph0njwv5cabj9f82xsiy0lk254sk3iq6l9h7dkh57sm7q9n";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base dirstream filepath hspec hspec-core pipes pipes-safe
@@ -110395,8 +111333,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspkcs11";
-       version = "0.6";
-       sha256 = "12jjz5r6pcqqlalxagi1bv1igjfwz7npbdr8vm4kznhv44bkhlp7";
+       version = "0.7";
+       sha256 = "0xbwwnj4n674c3ybxq966w6l71xfg992yig8989gbww4x21n9cy2";
        libraryHaskellDepends = [ base bytestring unix utf8-string ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [
@@ -111222,6 +112160,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hsyslog-udp_0_2_1" = callPackage
+    ({ mkDerivation, base, bytestring, hspec, hsyslog, network, text
+     , time, unix
+     }:
+     mkDerivation {
+       pname = "hsyslog-udp";
+       version = "0.2.1";
+       sha256 = "0133yr6cg7z1ix6dqskjzi36d62803549vdbpg9a29lb49kl1yv3";
+       libraryHaskellDepends = [
+         base bytestring hsyslog network text time unix
+       ];
+       testHaskellDepends = [ base hspec time ];
+       homepage = "https://github.com/ThoughtLeadr/hsyslog-udp";
+       description = "Log to syslog over a network via UDP";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hszephyr" = callPackage
     ({ mkDerivation, base, bytestring, com_err, mtl, time, zephyr }:
      mkDerivation {
@@ -111466,8 +112422,8 @@ self: {
        pname = "html-entity-map";
        version = "0.1.0.0";
        sha256 = "0k1l1pbmrfmh44v9cc9ka01bx9xm1x4jabbl675fc5c57v1h0dlq";
-       revision = "1";
-       editedCabalFile = "1y2w3jmdxwa8lfj1gr4ln98v1474bw1cjsdfpmbaphcjj9bjg0sg";
+       revision = "2";
+       editedCabalFile = "1ycg39ys6zzfi6j88l03gdyyzwjpfzzlzy7dbs6i8p1l70ywizfr";
        libraryHaskellDepends = [ base text unordered-containers ];
        benchmarkHaskellDepends = [
          base criterion text unordered-containers
@@ -112458,18 +113414,18 @@ self: {
     ({ mkDerivation, async, base, blaze-builder, bytestring
      , bytestring-lexing, case-insensitive, conduit, conduit-extra
      , connection, hspec, http-client, http-conduit, http-types, mtl
-     , network, QuickCheck, random, resourcet, text, tls, transformers
-     , vault, wai, wai-conduit, warp, warp-tls
+     , network, QuickCheck, random, resourcet, streaming-commons, text
+     , tls, transformers, vault, wai, wai-conduit, warp, warp-tls
      }:
      mkDerivation {
        pname = "http-proxy";
-       version = "0.1.0.5";
-       sha256 = "1n4l31vaq0ch4w7krycvbdycn7v6q0cnr9qm3ll4v3g0kbqy81j4";
+       version = "0.1.0.6";
+       sha256 = "0ixj9bcz8pw6rgdlzbp7p12v43vrkajbmr5b8fnsmzwcz6s3i3zg";
        libraryHaskellDepends = [
          async base blaze-builder bytestring bytestring-lexing
          case-insensitive conduit conduit-extra http-client http-conduit
-         http-types mtl network resourcet text tls transformers wai
-         wai-conduit warp warp-tls
+         http-types mtl network resourcet streaming-commons text tls
+         transformers wai wai-conduit warp warp-tls
        ];
        testHaskellDepends = [
          async base blaze-builder bytestring bytestring-lexing
@@ -112767,18 +113723,18 @@ self: {
      }) {};
 
   "http2-client" = callPackage
-    ({ mkDerivation, async, base, bytestring, connection, containers
-     , data-default-class, http2, network, optparse-applicative, time
-     , tls
+    ({ mkDerivation, async, base, bytestring, containers
+     , data-default-class, deepseq, http2, network, optparse-applicative
+     , stm, time, tls
      }:
      mkDerivation {
        pname = "http2-client";
-       version = "0.6.0.0";
-       sha256 = "09xbpasgjy7hziml68237jvxadvl3wgg6mgykfd61lb7fiq3f7kl";
+       version = "0.7.0.0";
+       sha256 = "1grcb4mbqx8dkdwal3pldfyasnlghdkzcrksl0hvj7xg8bqjs2n5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base bytestring connection containers http2 network time tls
+         async base bytestring containers deepseq http2 network stm time tls
        ];
        executableHaskellDepends = [
          async base bytestring data-default-class http2 optparse-applicative
@@ -113163,12 +114119,12 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "hunit-dejafu_1_0_1_2" = callPackage
+  "hunit-dejafu_1_1_0_1" = callPackage
     ({ mkDerivation, base, dejafu, exceptions, HUnit }:
      mkDerivation {
        pname = "hunit-dejafu";
-       version = "1.0.1.2";
-       sha256 = "1lnw8rr0lf43rzsv3c5knm96kpnsxmpijqh7njhrgbx9wzy81mg7";
+       version = "1.1.0.1";
+       sha256 = "16jaq5wxh2gzkj2kacb5zv9w8y7a75fm0acj7r2sspwg4d7kkmar";
        libraryHaskellDepends = [ base dejafu exceptions HUnit ];
        homepage = "https://github.com/barrucadu/dejafu";
        description = "Deja Fu support for the HUnit test framework";
@@ -113678,19 +114634,6 @@ self: {
     ({ mkDerivation, base, call-stack, hedgehog, hspec, HUnit }:
      mkDerivation {
        pname = "hw-hspec-hedgehog";
-       version = "0.1.0.0";
-       sha256 = "1f1yqcjdn1jbqcpm6qxajqlkirhpyshvy5zi5ccd64anz691dqdw";
-       libraryHaskellDepends = [ base call-stack hedgehog hspec HUnit ];
-       testHaskellDepends = [ base hedgehog hspec ];
-       homepage = "https://github.com/githubuser/hw-hspec-hedgehog#readme";
-       description = "Interoperability between hspec and hedgehog";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-hspec-hedgehog_0_1_0_2" = callPackage
-    ({ mkDerivation, base, call-stack, hedgehog, hspec, HUnit }:
-     mkDerivation {
-       pname = "hw-hspec-hedgehog";
        version = "0.1.0.2";
        sha256 = "1rafrpys347qc60van79y55n13pjdhdx64j495g4hhvyzf32az67";
        libraryHaskellDepends = [ base call-stack hedgehog hspec HUnit ];
@@ -113698,7 +114641,6 @@ self: {
        homepage = "https://github.com/githubuser/hw-hspec-hedgehog#readme";
        description = "Interoperability between hspec and hedgehog";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-int" = callPackage
@@ -115628,6 +116570,8 @@ self: {
        pname = "ideas";
        version = "1.6";
        sha256 = "0xl49alcsrr913yk7nj0ln86r7428arb12r1nvx2rywmrfppv9yy";
+       revision = "1";
+       editedCabalFile = "1c4l8z3pkccwhza10yry74dkji48y614i9hkx40rfz8aw3rg16ls";
        libraryHaskellDepends = [
          base cgi containers Diff directory filepath parsec QuickCheck
          random time uniplate wl-pprint
@@ -115679,8 +116623,8 @@ self: {
        pname = "identicon";
        version = "0.2.2";
        sha256 = "0qzj2063sh7phbqyxqxf96avz1zcwd1ry06jdqxwkg55q3yb8y9n";
-       revision = "2";
-       editedCabalFile = "0shj211pvba5cfgs1vy9f8jd84by8j4mprk4yvhv4ia1kl6dq4mr";
+       revision = "3";
+       editedCabalFile = "0vya6zm3nnbdv3wmj3dwqwwjgsagql8q17078knhjddv2lm8m49q";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base bytestring JuicyPixels ];
        testHaskellDepends = [
@@ -117597,6 +118541,35 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "influxdb_1_3_0_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
+     , cabal-doctest, clock, containers, doctest, foldl, http-client
+     , http-types, HUnit, lens, mtl, network, optional-args, QuickCheck
+     , scientific, tasty, tasty-hunit, tasty-quickcheck, tasty-th
+     , template-haskell, text, time, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "influxdb";
+       version = "1.3.0.1";
+       sha256 = "08i7bflcmvg5s4r5hv1xxd5niyq5irnawnjwmbz7w3ys0ink1bfl";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring clock containers foldl http-client
+         http-types lens network optional-args scientific text time
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base doctest http-client HUnit mtl QuickCheck tasty tasty-hunit
+         tasty-quickcheck tasty-th template-haskell text vector
+       ];
+       homepage = "https://github.com/maoe/influxdb-haskell";
+       description = "Haskell client library for InfluxDB";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "informative" = callPackage
     ({ mkDerivation, base, containers, csv, highlighting-kate
      , http-conduit, monad-logger, pandoc, persistent
@@ -117922,8 +118895,8 @@ self: {
        pname = "insert-ordered-containers";
        version = "0.2.1.0";
        sha256 = "1612f455dw37da9g7bsd1s5kyi84mnr1ifnjw69892amyimi47fp";
-       revision = "4";
-       editedCabalFile = "0ls5rm5hg2lqp2m6bfssa30y72x8xyyl7izvwr3w804dpa9fvwrm";
+       revision = "5";
+       editedCabalFile = "13m83jdnxxykkc8fi2fa5qmy2mpsg3w9yphbl8cxdhmj8566pr7c";
        libraryHaskellDepends = [
          aeson base base-compat hashable lens semigroupoids semigroups text
          transformers unordered-containers
@@ -118228,6 +119201,26 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "integer-logarithms_1_0_2_1" = callPackage
+    ({ mkDerivation, array, base, ghc-prim, integer-gmp, QuickCheck
+     , smallcheck, tasty, tasty-hunit, tasty-quickcheck
+     , tasty-smallcheck
+     }:
+     mkDerivation {
+       pname = "integer-logarithms";
+       version = "1.0.2.1";
+       sha256 = "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j";
+       libraryHaskellDepends = [ array base ghc-prim integer-gmp ];
+       testHaskellDepends = [
+         base QuickCheck smallcheck tasty tasty-hunit tasty-quickcheck
+         tasty-smallcheck
+       ];
+       homepage = "https://github.com/phadej/integer-logarithms";
+       description = "Integer logarithms";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "integer-pure" = callPackage
     ({ mkDerivation }:
      mkDerivation {
@@ -118352,8 +119345,8 @@ self: {
      }:
      mkDerivation {
        pname = "interlude-l";
-       version = "0.2.0.1";
-       sha256 = "0jrmxph2m0ql48k6l743dhk4hdjxpdm7qqflwk2n3pw58ffajsk8";
+       version = "0.3.0.0";
+       sha256 = "0aa26cgap70ji6qjy555039i8zrynibmfsxpdpkww6pqj3hwrc93";
        libraryHaskellDepends = [
          aeson base exceptions lens monad-control MonadRandom mtl protolude
          string-conv text transformers witherable
@@ -118369,22 +119362,6 @@ self: {
      }:
      mkDerivation {
        pname = "intern";
-       version = "0.9.1.4";
-       sha256 = "0snjar5mil9zsyy1ml13a8p1g2cvq62c5r8547i6z451w06j1zk0";
-       libraryHaskellDepends = [
-         array base bytestring hashable text unordered-containers
-       ];
-       homepage = "http://github.com/ekmett/intern/";
-       description = "Efficient hash-consing for arbitrary data types";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "intern_0_9_2" = callPackage
-    ({ mkDerivation, array, base, bytestring, hashable, text
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "intern";
        version = "0.9.2";
        sha256 = "081fyiq00cvx4nyagr34kwnag9njv65wdps5j4ydin6sjq7b58wk";
        libraryHaskellDepends = [
@@ -118393,7 +119370,6 @@ self: {
        homepage = "http://github.com/ekmett/intern/";
        description = "Efficient hash-consing for arbitrary data types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "internetmarke" = callPackage
@@ -118487,6 +119463,25 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "interpolate_0_2_0" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, haskell-src-meta
+     , hspec, QuickCheck, quickcheck-instances, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "interpolate";
+       version = "0.2.0";
+       sha256 = "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf";
+       libraryHaskellDepends = [ base haskell-src-meta template-haskell ];
+       testHaskellDepends = [
+         base base-compat bytestring haskell-src-meta hspec QuickCheck
+         quickcheck-instances template-haskell text
+       ];
+       homepage = "https://github.com/sol/interpolate#readme";
+       description = "String interpolation done right";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "interpolatedstring-perl6" = callPackage
     ({ mkDerivation, base, bytestring, haskell-src-meta
      , template-haskell, text
@@ -118765,6 +119760,8 @@ self: {
        pname = "invariant";
        version = "0.5";
        sha256 = "1zz9a5irmpma5qchvvp7qin1s7cfnhvpg3b452xxysgbxvmcmfw0";
+       revision = "1";
+       editedCabalFile = "04sxa2jfv613ff3fxpnk0cn31f6fr80gzr7va47nrc0abp34vd7y";
        libraryHaskellDepends = [
          array base bifunctors comonad containers contravariant ghc-prim
          profunctors semigroups StateVar stm tagged template-haskell
@@ -118793,6 +119790,7 @@ self: {
        testHaskellDepends = [ base QuickCheck transformers ];
        description = "bidirectional arrows, bijective functions, and invariant functors";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "invertible-hlist" = callPackage
@@ -118818,6 +119816,7 @@ self: {
        ];
        description = "invertible transformer instances for HXT Picklers";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "invertible-syntax" = callPackage
@@ -118961,7 +119960,7 @@ self: {
        pname = "io-streams";
        version = "1.5.0.1";
        sha256 = "12rcdg2d70644bvn838fxcjkssqj8pssnx5y657si5rijcbkgjsx";
-       configureFlags = [ "-fnointeractivetests" ];
+       configureFlags = [ "-fNoInteractiveTests" ];
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder network primitive
          process text time transformers vector zlib-bindings
@@ -119493,8 +120492,8 @@ self: {
        pname = "irc-core";
        version = "2.3.0";
        sha256 = "08nbdnszdakbam1x0fps3n3ziqv21d8ndhmrc7za69pm97wkicjf";
-       revision = "1";
-       editedCabalFile = "1cqc9as84bckjh6yjcfh3pkj11sw35bkj848wzcv6qwjcn8kvcv9";
+       revision = "2";
+       editedCabalFile = "1pynqcahr66yq9h0ykdv1lz7jshn8zw0n9ggmycvsybw27ci10xn";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring bytestring hashable primitive
          text time vector
@@ -119634,12 +120633,18 @@ self: {
      }:
      mkDerivation {
        pname = "ircbot";
-       version = "0.6.5.2";
-       sha256 = "06is6hbk1992brbjrrjsqbv221h9c3syq0v1bah953sczg3a99jk";
+       version = "0.6.5.3";
+       sha256 = "0i9wrnlwf51wp3xgksj451nw6rxf2qghyhcjz7ihdxmqivbc6167";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers directory filepath irc mtl network
          parsec random SafeSemaphore stm time unix
        ];
+       executableHaskellDepends = [
+         base bytestring containers directory filepath irc mtl network
+         parsec random SafeSemaphore stm time unix
+       ];
        homepage = "https://github.com/stepcut/ircbot";
        description = "A library for writing IRC bots";
        license = stdenv.lib.licenses.bsd3;
@@ -120697,13 +121702,13 @@ self: {
     ({ mkDerivation, base, Cabal }:
      mkDerivation {
        pname = "jailbreak-cabal";
-       version = "1.3.2";
-       sha256 = "1x2h54sx4ycik34q8f9g698xc2b7fai18918cd08qx7w7ny8nai1";
+       version = "1.3.3";
+       sha256 = "076h7nbf94zfwvfijcpv03r3s2nyynb2y9v354m4bxqz3anhib3b";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base Cabal ];
        homepage = "https://github.com/peti/jailbreak-cabal#readme";
-       description = "Strip version restrictions from build dependencies in Cabal files";
+       description = "Strip version restrictions from Cabal files";
        license = stdenv.lib.licenses.bsd3;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
@@ -122146,8 +123151,8 @@ self: {
        pname = "json-rpc-client";
        version = "0.2.5.0";
        sha256 = "177lrw5m9dxdk6mcay0f92rwyih8q7znwb8m6da6r3zsn30gajak";
-       revision = "3";
-       editedCabalFile = "0hi2im3k7hpz3rasap90fvik3x5ibb7dd38sr1zsy7wsjkhk7zs4";
+       revision = "4";
+       editedCabalFile = "1vdfhhbk020bpdg6x8lx21w5aykzzfk9k119cd4px9hm6r77grcy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -122194,8 +123199,8 @@ self: {
        pname = "json-rpc-server";
        version = "0.2.6.0";
        sha256 = "1xfcxbwri9a5p3xxbc4kvr1kqdnm4c1axd8kgb8dglabffbrk7hn";
-       revision = "2";
-       editedCabalFile = "1avwnzq355m14wbv76zqjp789nr3kgnk130m8m69r5icgmlal2w6";
+       revision = "3";
+       editedCabalFile = "1bn1w9vwif05hjdprc354if3mccaw9gari233x0l6p35188idmsc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -122824,28 +123829,6 @@ self: {
      }:
      mkDerivation {
        pname = "jvm";
-       version = "0.4.1";
-       sha256 = "1mwhp5a4ykwcwr7h3j6803fy558q93cdkazqhck9dg67cgx7iyjr";
-       libraryHaskellDepends = [
-         base bytestring choice constraints distributed-closure exceptions
-         jni singletons text vector
-       ];
-       testHaskellDepends = [ base bytestring hspec jni text ];
-       benchmarkHaskellDepends = [
-         base criterion deepseq jni singletons
-       ];
-       homepage = "http://github.com/tweag/inline-java/tree/master/jvm#readme";
-       description = "Call JVM methods from Haskell";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "jvm_0_4_2" = callPackage
-    ({ mkDerivation, base, bytestring, choice, constraints, criterion
-     , deepseq, distributed-closure, exceptions, hspec, jni, singletons
-     , text, vector
-     }:
-     mkDerivation {
-       pname = "jvm";
        version = "0.4.2";
        sha256 = "1z3lk2f7bmhi8bj4v32fymjr2bf9czjd73qm6gk33z4mxknddwbh";
        libraryHaskellDepends = [
@@ -122859,7 +123842,6 @@ self: {
        homepage = "http://github.com/tweag/inline-java/tree/master/jvm#readme";
        description = "Call JVM methods from Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "jvm-batching" = callPackage
@@ -122885,6 +123867,7 @@ self: {
        homepage = "http://github.com/tweag/inline-java/tree/master/jvm-batching#readme";
        description = "Provides batched marshalling of values between Java and Haskell";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "jvm-binary" = callPackage
@@ -122929,24 +123912,25 @@ self: {
   "jvm-streaming" = callPackage
     ({ mkDerivation, base, Cabal, criterion, deepseq
      , distributed-closure, hspec, inline-java, jni, jvm, jvm-batching
-     , singletons, streaming, vector
+     , singletons, streaming, text, vector
      }:
      mkDerivation {
        pname = "jvm-streaming";
-       version = "0.3";
-       sha256 = "02qnfs06knia1c2r5hglhf4ahrls7i6q352dykyns4x1ps5kks5r";
+       version = "0.3.1";
+       sha256 = "0kgr2l1gcxy2z30xr89fx1f51h5yycphhh3mpf00wahlkdz7q6wd";
        setupHaskellDepends = [ base Cabal inline-java jvm-batching ];
        libraryHaskellDepends = [
          base distributed-closure inline-java jni jvm jvm-batching
          singletons streaming vector
        ];
-       testHaskellDepends = [ base hspec inline-java jvm streaming ];
+       testHaskellDepends = [ base hspec inline-java jvm streaming text ];
        benchmarkHaskellDepends = [
-         base criterion deepseq jvm streaming vector
+         base criterion deepseq jvm streaming text vector
        ];
        homepage = "http://github.com/tweag/inline-java/tree/master/jvm-streaming#readme";
        description = "Expose Java iterators as streams from the streaming package";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "jwt" = callPackage
@@ -123250,6 +124234,37 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "kanji_3_1_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, containers, criterion
+     , deepseq, hashable, HUnit-approx, microlens, microlens-aeson
+     , microlens-platform, optparse-applicative, protolude, tasty
+     , tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "kanji";
+       version = "3.1.0";
+       sha256 = "0l1fbznzw6z8cpcrkmchabwf7zfhb3zj18s323xlxiq3537bxjz4";
+       revision = "2";
+       editedCabalFile = "0n88shf40v4jiqyj24dv1ha8m6s8mja4x5yrh8427byf2s80780c";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base containers deepseq hashable text
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty base containers microlens microlens-aeson
+         microlens-platform optparse-applicative protolude text
+       ];
+       testHaskellDepends = [
+         aeson base containers HUnit-approx tasty tasty-hunit text
+       ];
+       benchmarkHaskellDepends = [ aeson base containers criterion text ];
+       homepage = "https://github.com/fosskers/kanji";
+       description = "Perform 漢字検定 (Japan Kanji Aptitude Test) level analysis on Japanese Kanji";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "kansas-comet" = callPackage
     ({ mkDerivation, aeson, base, containers, data-default-class
      , scotty, stm, text, time, transformers, unordered-containers
@@ -123258,8 +124273,8 @@ self: {
        pname = "kansas-comet";
        version = "0.4";
        sha256 = "1q9rffh6589a5am8mvfzxzwws34vg08rdjxggfabhmg9y9jla6hz";
-       revision = "11";
-       editedCabalFile = "0l56snbdxbcwrmh7gna4237873d366dfbwp59a4wq1s51clhmb4z";
+       revision = "13";
+       editedCabalFile = "0qdj3giwfjic87xln1lkrfa9dw8yj31s7x3dsr7n1343jcap2m7n";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base containers data-default-class scotty stm text time
@@ -123419,18 +124434,18 @@ self: {
      , safe-exceptions, scientific, semigroups, stm, string-conv, tasty
      , tasty-golden, tasty-hunit, tasty-quickcheck, template-haskell
      , text, time, time-locale-compat, transformers, transformers-base
-     , transformers-compat, unix, unordered-containers
+     , transformers-compat, unix, unliftio-core, unordered-containers
      }:
      mkDerivation {
        pname = "katip";
-       version = "0.5.2.0";
-       sha256 = "1mvqrs5skv0yfza0vkapy0qi8x0xmp3aj82a86845s1zf0whly7x";
+       version = "0.5.3.0";
+       sha256 = "1v6gyk2x14nvzz0g560r7yh9wsp8r2imqgiq46m2nmx70ksfcx2b";
        libraryHaskellDepends = [
          aeson async auto-update base bytestring containers either hostname
          microlens microlens-th monad-control mtl old-locale resourcet
          safe-exceptions scientific semigroups stm string-conv
          template-haskell text time transformers transformers-base
-         transformers-compat unix unordered-containers
+         transformers-compat unix unliftio-core unordered-containers
        ];
        testHaskellDepends = [
          aeson base bytestring containers directory microlens
@@ -123480,6 +124495,39 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "katip-elasticsearch_0_4_1_0" = callPackage
+    ({ mkDerivation, aeson, async, base, bloodhound, bytestring
+     , containers, criterion, deepseq, enclosed-exceptions, exceptions
+     , http-client, http-types, katip, lens, lens-aeson
+     , quickcheck-instances, random, retry, scientific, semigroups, stm
+     , stm-chans, tagged, tasty, tasty-hunit, tasty-quickcheck, text
+     , time, transformers, unordered-containers, uuid, vector
+     }:
+     mkDerivation {
+       pname = "katip-elasticsearch";
+       version = "0.4.1.0";
+       sha256 = "19gpgxg8wz5zdx8a0sspbdk9ypjcrclni0da6sh1hz80yydcfzb1";
+       libraryHaskellDepends = [
+         aeson async base bloodhound bytestring enclosed-exceptions
+         exceptions http-client http-types katip retry scientific semigroups
+         stm stm-chans text time transformers unordered-containers uuid
+       ];
+       testHaskellDepends = [
+         aeson base bloodhound bytestring containers http-client http-types
+         katip lens lens-aeson quickcheck-instances scientific stm tagged
+         tasty tasty-hunit tasty-quickcheck text time transformers
+         unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [
+         aeson base bloodhound criterion deepseq random text
+         unordered-containers uuid
+       ];
+       homepage = "https://github.com/Soostone/katip";
+       description = "ElasticSearch scribe for the Katip logging framework";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "katip-rollbar" = callPackage
     ({ mkDerivation, aeson, async, base, hostname, http-client, katip
      , rollbar-hs, stm-chans, text, time
@@ -124193,8 +125241,8 @@ self: {
        pname = "keycode";
        version = "0.2.2";
        sha256 = "046k8d1h5wwadf5z4pppjkc3g7v2zxlzb06s1xgixc42y5y41yan";
-       revision = "1";
-       editedCabalFile = "0pyh8cadgw8pn9xdg8lbvsh108i84iaynia8j42qmgmls2zakvja";
+       revision = "2";
+       editedCabalFile = "0g19sjk2sh1w9ahn93dnvjkim4mqapq0plmdd37179qfgi49qnp8";
        libraryHaskellDepends = [
          base containers ghc-prim template-haskell
        ];
@@ -124991,6 +126039,30 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "labsat" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, conduit
+     , conduit-extra, lifted-async, lifted-base, optparse-generic
+     , preamble, scientific, tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "labsat";
+       version = "0.0.5";
+       sha256 = "02c6bx1pwjcqni8nx7899mk3mzzfrpdpxjiwnkizzianrzmwz0mw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         attoparsec base bytestring conduit conduit-extra lifted-async
+         lifted-base preamble scientific text
+       ];
+       executableHaskellDepends = [ base optparse-generic preamble text ];
+       testHaskellDepends = [
+         attoparsec base bytestring preamble tasty tasty-hunit
+       ];
+       homepage = "https://github.com/swift-nav/labsat";
+       description = "LabSat TCP Interface Wrapper";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "labyrinth" = callPackage
     ({ mkDerivation, base, containers, derive, HTF, HUnit, lens
      , monad-loops, MonadRandom, mtl, parsec, QuickCheck, random
@@ -125886,17 +126958,17 @@ self: {
      }) {mp3lame = null;};
 
   "lame-tester" = callPackage
-    ({ mkDerivation, base, bifunctors, containers, semigroups, tasty
-     , tasty-hunit, validation
+    ({ mkDerivation, base-noprelude, bizzlelude, containers, semigroups
+     , tasty, tasty-hunit, validation
      }:
      mkDerivation {
        pname = "lame-tester";
-       version = "1.2.1";
-       sha256 = "19hj6mij3ps1qc8y7ncdaqj9gw96lfljpxjzgrsya3wc7hqjjcgi";
+       version = "1.4.0";
+       sha256 = "0rlq0hmsrfvs3m3bp4whaljqxpwxs9svgmy02yg152vjmg0vv971";
        libraryHaskellDepends = [
-         base bifunctors containers semigroups validation
+         base-noprelude bizzlelude containers semigroups validation
        ];
-       testHaskellDepends = [ base containers tasty tasty-hunit ];
+       testHaskellDepends = [ bizzlelude containers tasty tasty-hunit ];
        homepage = "http://github.com/TheBizzle";
        description = "A strange and unnecessary selective test-running library";
        license = stdenv.lib.licenses.bsd3;
@@ -125907,12 +126979,13 @@ self: {
     ({ mkDerivation, base, bytestring, http-streams, Mapping }:
      mkDerivation {
        pname = "lang";
-       version = "0.2.1";
-       sha256 = "1pzj4iyrhlvgbk68d68xmfi75l2nz9ya1nm6iqz1qvmpj9rd3fsy";
+       version = "0.2.2";
+       sha256 = "1nmyirpf07q7lrgfdqxwaspa173a2g3077gy9k7rpviw8pg2az0w";
        libraryHaskellDepends = [ base bytestring http-streams Mapping ];
        homepage = "语.ml";
        description = "A Lisp";
        license = stdenv.lib.licenses.agpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "language-asn1" = callPackage
@@ -125932,17 +127005,17 @@ self: {
   "language-ats" = callPackage
     ({ mkDerivation, alex, ansi-wl-pprint, array, base
      , composition-prelude, containers, criterion, deepseq, happy, hspec
-     , hspec-dirstream, microlens, microlens-th, mtl, recursion-schemes
-     , system-filepath, transformers
+     , hspec-dirstream, lens, recursion-schemes, system-filepath
+     , transformers
      }:
      mkDerivation {
        pname = "language-ats";
-       version = "1.2.0.0";
-       sha256 = "072a37nd9ngis8m1kx7xlr13kd8v24j3cnzllval2ygy9siw4p1l";
+       version = "1.2.0.2";
+       sha256 = "1hbngljls19a9mr6gz5qm80ibx8z75ky0s5gn57nmlsf8pazkfvz";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          ansi-wl-pprint array base composition-prelude containers deepseq
-         microlens microlens-th mtl recursion-schemes transformers
+         lens recursion-schemes transformers
        ];
        libraryToolDepends = [ alex happy ];
        testHaskellDepends = [
@@ -126435,6 +127508,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "language-java_0_2_9" = callPackage
+    ({ mkDerivation, alex, array, base, directory, filepath, mtl
+     , parsec, pretty, tasty, tasty-hunit, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "language-java";
+       version = "0.2.9";
+       sha256 = "03hrj8hgyjmw2fvvk4ik30fdmbi3hndpkvf1bqcnpzqy5anwh58x";
+       libraryHaskellDepends = [ array base parsec pretty ];
+       libraryToolDepends = [ alex ];
+       testHaskellDepends = [
+         base directory filepath mtl tasty tasty-hunit tasty-quickcheck
+       ];
+       homepage = "http://github.com/vincenthz/language-java";
+       description = "Java source manipulation";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "language-java-classfile" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
      , data-binary-ieee754, data-flags, deepseq, language-java, LibZip
@@ -126722,18 +127814,17 @@ self: {
      , base16-bytestring, bytestring, case-insensitive, containers
      , cryptonite, directory, exceptions, filecache, filepath
      , formatting, Glob, hashable, hruby, hslogger, hspec
-     , hspec-megaparsec, http-api-data, http-client, HUnit, lens
-     , lens-aeson, megaparsec, memory, mtl, neat-interpolation
-     , operational, optparse-applicative, parallel-io, parsec
-     , pcre-utils, process, protolude, random, regex-pcre-builtin
-     , scientific, servant, servant-client, split, stm
-     , strict-base-types, temporary, text, time, transformers, unix
+     , hspec-megaparsec, http-api-data, http-client, lens, lens-aeson
+     , megaparsec, memory, mtl, operational, optparse-applicative
+     , parallel-io, parsec, pcre-utils, process, protolude, random
+     , regex-pcre-builtin, scientific, servant, servant-client, split
+     , stm, strict-base-types, temporary, text, time, transformers, unix
      , unordered-containers, vector, yaml
      }:
      mkDerivation {
        pname = "language-puppet";
-       version = "1.3.15";
-       sha256 = "0irlm003kkddxv26a9vjs4b6xwkjz7m2himxvz500yykmv3l0ajv";
+       version = "1.3.16";
+       sha256 = "0n0rhz4aljazfdy8057ld65sibqaipz98wmnnip2ldcqwcklawnh";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -126754,9 +127845,8 @@ self: {
          unordered-containers vector yaml
        ];
        testHaskellDepends = [
-         ansi-wl-pprint base Glob hslogger hspec hspec-megaparsec HUnit lens
-         megaparsec mtl neat-interpolation protolude scientific
-         strict-base-types temporary text transformers unix
+         base Glob hslogger hspec hspec-megaparsec lens megaparsec mtl
+         protolude scientific strict-base-types temporary text transformers
          unordered-containers vector
        ];
        homepage = "http://lpuppet.banquise.net/";
@@ -126833,6 +127923,36 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "language-rust" = callPackage
+    ({ mkDerivation, aeson, alex, array, base, bytestring, criterion
+     , deepseq, directory, filepath, happy, HUnit, prettyprinter
+     , process, statistics, template-haskell, test-framework
+     , test-framework-hunit, text, time, transformers
+     , unordered-containers, utf8-string, vector, weigh
+     }:
+     mkDerivation {
+       pname = "language-rust";
+       version = "0.1.1.26";
+       sha256 = "1f363j2kpvww0v7l13lg8a2a0v0h2zw7q3x8fyssvrw3yn5afwyn";
+       libraryHaskellDepends = [
+         array base bytestring deepseq prettyprinter template-haskell
+         transformers utf8-string
+       ];
+       libraryToolDepends = [ alex happy ];
+       testHaskellDepends = [
+         aeson base bytestring directory filepath HUnit prettyprinter
+         process test-framework test-framework-hunit text time
+         unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [
+         aeson base bytestring criterion directory filepath process
+         statistics weigh
+       ];
+       homepage = "https://github.com/harpocrates/language-rust";
+       description = "Parsing and pretty printing of Rust code";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "language-sally" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, containers, text
      }:
@@ -127268,6 +128388,8 @@ self: {
        pname = "lattices";
        version = "1.7.1";
        sha256 = "0bcv28dazaz0n166jbd579vim0hr4c20rmg0s34284fdr6p50m3x";
+       revision = "1";
+       editedCabalFile = "1h68xxzy90i7nggyh67f4744zk9a4zv4lb5ag9dwp126acvg2c9n";
        libraryHaskellDepends = [
          base base-compat containers deepseq hashable semigroupoids tagged
          universe-base universe-reverse-instances unordered-containers
@@ -128112,8 +129234,8 @@ self: {
        pname = "lens";
        version = "4.16";
        sha256 = "16wz3s62zmnmis7xs9jahyc7b75090b96ayk98c3gvzmpg7bx54z";
-       revision = "2";
-       editedCabalFile = "1iwp8shnis8gk01ys9bp3bn5khsi6mp0ji9b18qkg1mpp7nvggcq";
+       revision = "3";
+       editedCabalFile = "0zkjys731g07brc4ky29245jrdx1r8l468k5fh9hlwd0dx9d4996";
        setupHaskellDepends = [ base Cabal cabal-doctest filepath ];
        libraryHaskellDepends = [
          array base base-orphans bifunctors bytestring call-stack comonad
@@ -128183,8 +129305,8 @@ self: {
        pname = "lens-aeson";
        version = "1.0.2";
        sha256 = "1k028ycmhz7mnjlrap88fqix4nmmpyy6b88m16kv77d3r8sz04a3";
-       revision = "2";
-       editedCabalFile = "1nynlx0jyn5hfsjmzdd9pdj95hnfc6r7gfb3isdqs05ma8dihaws";
+       revision = "3";
+       editedCabalFile = "160zpz85p8qfg6scqp2cbg3w9lbv89hkxcvmyk6la34v9d439lm0";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson attoparsec base bytestring lens scientific text
@@ -129624,6 +130746,8 @@ self: {
        pname = "lift-generics";
        version = "0.1.2";
        sha256 = "0kk05dp6n93jgxq4x1lrckjrca6lrwa7qklr3vpzc6iyrlbvv7qf";
+       revision = "1";
+       editedCabalFile = "02hg33ikmwl81zsw8fgppix740rdc3h8fv6nr9b9h37vizhs50zw";
        libraryHaskellDepends = [
          base generic-deriving ghc-prim template-haskell
        ];
@@ -129657,15 +130781,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "lifted-async_0_10_0" = callPackage
+  "lifted-async_0_10_0_1" = callPackage
     ({ mkDerivation, async, base, constraints, criterion, deepseq
      , HUnit, lifted-base, monad-control, mtl, tasty, tasty-hunit
      , tasty-th, transformers-base
      }:
      mkDerivation {
        pname = "lifted-async";
-       version = "0.10.0";
-       sha256 = "0w6xgyw2d3mcv8n7wnnma5dx2slz2ngis5k45x68dh7nv1azzs37";
+       version = "0.10.0.1";
+       sha256 = "1cf44j2jr2svp8g03hzf3xfmjlh7xcd40ra1k7dv6vzyzwb5p4hd";
        libraryHaskellDepends = [
          async base constraints lifted-base monad-control transformers-base
        ];
@@ -131580,6 +132704,32 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {llvm-config = null;};
 
+  "llvm-hs_6_0_0" = callPackage
+    ({ mkDerivation, array, attoparsec, base, bytestring, Cabal
+     , containers, exceptions, llvm-config, llvm-hs-pure, mtl
+     , pretty-show, QuickCheck, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell, temporary, transformers, utf8-string
+     }:
+     mkDerivation {
+       pname = "llvm-hs";
+       version = "6.0.0";
+       sha256 = "1hll3s40bbrzyylyfnh0w907cpkbxx6qn3a6wv7kfi107zfx2rgd";
+       setupHaskellDepends = [ base Cabal containers ];
+       libraryHaskellDepends = [
+         array attoparsec base bytestring containers exceptions llvm-hs-pure
+         mtl template-haskell transformers utf8-string
+       ];
+       libraryToolDepends = [ llvm-config ];
+       testHaskellDepends = [
+         base bytestring containers llvm-hs-pure mtl pretty-show QuickCheck
+         tasty tasty-hunit tasty-quickcheck temporary transformers
+       ];
+       homepage = "http://github.com/llvm-hs/llvm-hs/";
+       description = "General purpose LLVM bindings";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {llvm-config = null;};
+
   "llvm-hs-pretty" = callPackage
     ({ mkDerivation, array, base, bytestring, directory, filepath
      , llvm-hs, llvm-hs-pure, mtl, pretty-show, tasty, tasty-golden
@@ -131624,6 +132774,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "llvm-hs-pure_6_0_0" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers, fail
+     , hspec, mtl, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell, text, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "llvm-hs-pure";
+       version = "6.0.0";
+       sha256 = "005414p1jv5nyf3awiybksc1paf092a9070x23l2y6fvd9jhy0sl";
+       revision = "1";
+       editedCabalFile = "05idczj2c9iv3kb7fyfhc0ypfsmcjkf9n46w24ivarjbs8fykrb3";
+       libraryHaskellDepends = [
+         attoparsec base bytestring containers fail mtl template-haskell
+         transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base bytestring containers hspec mtl tasty tasty-hunit
+         tasty-quickcheck text transformers unordered-containers
+       ];
+       homepage = "http://github.com/llvm-hs/llvm-hs/";
+       description = "Pure Haskell LLVM functionality (no FFI)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "llvm-ht" = callPackage
     ({ mkDerivation, base, bytestring, directory, mtl, process
      , type-level
@@ -132304,7 +133479,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "log-warper_1_8_10" = callPackage
+  "log-warper_1_8_10_1" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, async, base, containers
      , data-default, deepseq, directory, filepath, fmt, hspec
      , hspec-discover, HUnit, lifted-async, markdown-unlit, microlens
@@ -132315,8 +133490,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-warper";
-       version = "1.8.10";
-       sha256 = "0wl1i68xnvla6fzgxfkqbk6hhqx9h0yp4br30y0fzwyk8p5v4l37";
+       version = "1.8.10.1";
+       sha256 = "0chwqn8pdlfhlixl3z9a6gvx86vxmq92v325z0fsamwzb7hhcf52";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -132452,29 +133627,6 @@ self: {
      }:
      mkDerivation {
        pname = "logging-effect";
-       version = "1.2.3";
-       sha256 = "0822ifll474q3aqh5jjavhryrlz331p2zc5hh4zi47wviyfm8brk";
-       libraryHaskellDepends = [
-         async base exceptions free monad-control mtl semigroups stm
-         stm-delay text time transformers transformers-base wl-pprint-text
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion fast-logger lifted-async monad-logger
-         text time wl-pprint-text
-       ];
-       homepage = "https://github.com/ocharles/logging-effect";
-       description = "A mtl-style monad transformer for general purpose & compositional logging";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "logging-effect_1_2_4" = callPackage
-    ({ mkDerivation, async, base, bytestring, criterion, exceptions
-     , fast-logger, free, lifted-async, monad-control, monad-logger, mtl
-     , semigroups, stm, stm-delay, text, time, transformers
-     , transformers-base, wl-pprint-text
-     }:
-     mkDerivation {
-       pname = "logging-effect";
        version = "1.2.4";
        sha256 = "14j63172ml4yj7sqscjxdkxxg869w6hvnlysf9s79qzbjnw44h3h";
        libraryHaskellDepends = [
@@ -132488,7 +133640,6 @@ self: {
        homepage = "https://github.com/ocharles/logging-effect";
        description = "A mtl-style monad transformer for general purpose & compositional logging";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "logging-effect-extra" = callPackage
@@ -132549,6 +133700,26 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "logging-effect-extra-handler_1_1_3" = callPackage
+    ({ mkDerivation, base, exceptions, logging-effect, time
+     , wl-pprint-text
+     }:
+     mkDerivation {
+       pname = "logging-effect-extra-handler";
+       version = "1.1.3";
+       sha256 = "0pxsnah1v2d0zk5x3w8whifb0f78shhn0kpg5iq00ggpwg6x686i";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base exceptions logging-effect time wl-pprint-text
+       ];
+       executableHaskellDepends = [ base logging-effect wl-pprint-text ];
+       homepage = "https://github.com/jship/logging-effect-extra#readme";
+       description = "Handy logging handler combinators";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "logging-facade" = callPackage
     ({ mkDerivation, base, call-stack, hspec, transformers }:
      mkDerivation {
@@ -132974,6 +134145,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "long-double" = callPackage
+    ({ mkDerivation, base, integer-gmp }:
+     mkDerivation {
+       pname = "long-double";
+       version = "0.1";
+       sha256 = "072yfv1kv83k8qc9apks2czr9p6znk46bbbjmsdbcpzyb8byh64j";
+       libraryHaskellDepends = [ base integer-gmp ];
+       homepage = "https://code.mathr.co.uk/long-double";
+       description = "FFI bindings for C long double";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "longboi" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -134186,8 +135369,8 @@ self: {
        pname = "machines";
        version = "0.6.3";
        sha256 = "1kxypm26xxd30979yrg94pnaaj3yfn180ri3y4z2xsm2m5iyiliz";
-       revision = "4";
-       editedCabalFile = "01j29cj62fvwj8fjpqqi2f8anrpqrfnfj5mb4zwpglawljw4kzdb";
+       revision = "5";
+       editedCabalFile = "1w9z6j74vdsaiqr5jhw4zvgl2n3l6fw3x1sgvf1yysmxkx9hhhdn";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          adjunctions base comonad containers distributive mtl pointed
@@ -134404,19 +135587,20 @@ self: {
      }:
      mkDerivation {
        pname = "madlang";
-       version = "4.0.0.4";
-       sha256 = "1rfax7s4sc63943izc1r0gk848ji0kxsjgsb81i2f6dc5860xkz9";
+       version = "4.0.1.0";
+       sha256 = "08nw11l8vpazyfny3f8alyb9r268wlh3q24032q34sk1n5d92pcl";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cli-setup ];
        libraryHaskellDepends = [
          ansi-wl-pprint base binary composition-prelude containers directory
          file-embed http-client http-client-tls megaparsec MonadRandom mtl
-         optparse-applicative random-shuffle recursion-schemes
-         recursion-schemes-ext tar template-haskell text th-lift-instances
-         titlecase zip-archive zlib
+         random-shuffle recursion-schemes recursion-schemes-ext tar
+         template-haskell text th-lift-instances titlecase zip-archive zlib
+       ];
+       executableHaskellDepends = [
+         base directory megaparsec optparse-applicative text
        ];
-       executableHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec hspec-megaparsec text ];
        benchmarkHaskellDepends = [ base criterion megaparsec text ];
        homepage = "https://hub.darcs.net/vmchale/madlang";
@@ -135363,6 +136547,7 @@ self: {
        homepage = "https://github.com/leftaroundabout/manifolds";
        description = "Sampling random points on general manifolds";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "manifolds" = callPackage
@@ -135390,6 +136575,7 @@ self: {
        homepage = "https://github.com/leftaroundabout/manifolds";
        description = "Coordinate-free hypersurfaces";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "manifolds-core" = callPackage
@@ -135428,8 +136614,8 @@ self: {
        pname = "map-syntax";
        version = "0.2.0.2";
        sha256 = "12jdv9myffpkhhrwm5kzhbqzbxfb0rb4fvww33d0yq4s6sk9b3xi";
-       revision = "1";
-       editedCabalFile = "0k27w9bw4lri2nfm7s7v7gq49mr0him5g2dsc0wha5kzj4gmy87q";
+       revision = "2";
+       editedCabalFile = "12b3pbrd70xpx634ngl4dcvda5p9494wq6mc8s1wv4624hwlgja6";
        libraryHaskellDepends = [ base containers mtl ];
        testHaskellDepends = [
          base containers deepseq hspec HUnit mtl QuickCheck transformers
@@ -135691,6 +136877,25 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "markup_4_0_4" = callPackage
+    ({ mkDerivation, attoparsec-uri, base, blaze-html, blaze-markup
+     , clay, comonad, lucid, mmorph, monad-control, monad-logger, mtl
+     , path-extra, resourcet, text, transformers-base, urlpath
+     }:
+     mkDerivation {
+       pname = "markup";
+       version = "4.0.4";
+       sha256 = "1brk619d2abryvwyw9pj7g4axs1rc6p51cf4yf5q1p6f0zvi2dyb";
+       libraryHaskellDepends = [
+         attoparsec-uri base blaze-html blaze-markup clay comonad lucid
+         mmorph monad-control monad-logger mtl path-extra resourcet text
+         transformers-base urlpath
+       ];
+       description = "Abstraction for HTML-embedded content";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "markup-preview" = callPackage
     ({ mkDerivation, base, cmdargs, directory, glib, gtk
      , gtk2hs-buildtools, MissingH, mtl, pandoc, temporary, text
@@ -135899,10 +137104,10 @@ self: {
      }:
      mkDerivation {
        pname = "massiv";
-       version = "0.1.0.0";
-       sha256 = "1hy87l8jv06jmgws7r28qh44ja1a4swpaki9z8dn9lviddlhiz3d";
+       version = "0.1.1.0";
+       sha256 = "0xl6f3cxhfbyz15p4mayj0489mjgrvla7hz0sf0i58bfcl2b8r8q";
        revision = "1";
-       editedCabalFile = "0y4dyambndn36qa5v4raxi16lfr91bpj9jqksy1kkrf65wr89cma";
+       editedCabalFile = "0qymziv7s5w70z0f32l8ns8xhzn9m4qrjhr9sfiy9wc1li0q3pch";
        libraryHaskellDepends = [
          base data-default-class deepseq ghc-prim primitive vector
        ];
@@ -135920,10 +137125,10 @@ self: {
      }:
      mkDerivation {
        pname = "massiv-io";
-       version = "0.1.0.0";
-       sha256 = "1qj94ypn5yzl3pjdnpddjv926d1wjcvm1n673mg4i0x5pr71w7lw";
-       revision = "2";
-       editedCabalFile = "1bzn45kcf3j275bzj00hsvxvxi3csm08bflnsbmy8ixkqcfdlizy";
+       version = "0.1.1.0";
+       sha256 = "05sj1w06crdncibsknyrhbjwaldsixfw6qncld736ryr1sjcqv6j";
+       revision = "1";
+       editedCabalFile = "1nsi12h9jcmypim3vd9x1a5czx9cqcnpf12lbi7d1ipmnqclrj3r";
        libraryHaskellDepends = [
          base bytestring data-default deepseq directory filepath JuicyPixels
          massiv netpbm process vector
@@ -136157,7 +137362,7 @@ self: {
        description = "Matlab bindings and interface";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {eng = null; mat = null; mx = null;};
+     }) {eng = null; mat = null; inherit (pkgs) mx;};
 
   "matplotlib" = callPackage
     ({ mkDerivation, ad, aeson, base, bytestring, containers, deepseq
@@ -136293,8 +137498,8 @@ self: {
      }:
      mkDerivation {
        pname = "matterhorn";
-       version = "40600.1.0";
-       sha256 = "1cxbvs6w2iv4n2ig3hfy79gwcc76mv48q16r8w4jag0dswv5ry92";
+       version = "40700.0.0";
+       sha256 = "1knf05p9qmk51ysvp2gp718d365g9n7myycb07w8d84f4vrphg51";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -136329,8 +137534,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api";
-       version = "40600.1.0";
-       sha256 = "00c2vbf73gg14cpjdbnly0h8dszys31n5ymmf0c43zgrv3z5wb4i";
+       version = "40700.0.0";
+       sha256 = "1nhhlj6vgjndm34aw9kzmsjrkx7j3fir8rccx65d4c10labclsb9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136353,8 +137558,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api-qc";
-       version = "40600.1.0";
-       sha256 = "1n2gfq4f0lmb3hbnja49j70ryrgmwkr0h69zwls3zcd7mdx5v1fr";
+       version = "40700.0.0";
+       sha256 = "0dz254wmrxbavsjqhyn90gg6iplcgcpsw8p9fv0c5kxlafqwg0kf";
        libraryHaskellDepends = [
          base containers mattermost-api QuickCheck text time
        ];
@@ -137149,7 +138354,7 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
-  "megaparsec_6_4_0" = callPackage
+  "megaparsec_6_4_1" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , criterion, deepseq, hspec, hspec-expectations, mtl
      , parser-combinators, QuickCheck, scientific, text, transformers
@@ -137157,10 +138362,10 @@ self: {
      }:
      mkDerivation {
        pname = "megaparsec";
-       version = "6.4.0";
-       sha256 = "0h9azhs0dfrc359vrbd1jljrg3yfdbwd4p62cxqkn7mnh8913jpd";
+       version = "6.4.1";
+       sha256 = "0w0kw8g7c6c3sp0fpgfqjc2w032dv9s7jnyn1dx71hk5mifh2h6y";
        revision = "1";
-       editedCabalFile = "1jzj3gb96skggngv69wibyx27bgng78dmlgv9i3lvz46z6bx8qzd";
+       editedCabalFile = "1r7isvrj7k34bsl7snd14wjvc64vx01dmbkm17ycik3lhllscfif";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers deepseq mtl
          parser-combinators scientific text transformers
@@ -138108,6 +139313,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "microlens_0_4_9" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "microlens";
+       version = "0.4.9";
+       sha256 = "1zsisv6vlkphqw8rdi6c6phm6k3izc0n6vj1z1b6my7r8zyshlia";
+       libraryHaskellDepends = [ base ];
+       homepage = "http://github.com/aelve/microlens";
+       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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "microlens-aeson" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, microlens
      , scientific, tasty, tasty-hunit, text, unordered-containers
@@ -138130,6 +139348,33 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "microlens-aeson_2_3_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, criterion
+     , deepseq, hashable, lens, lens-aeson, microlens, scientific, tasty
+     , tasty-hunit, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "microlens-aeson";
+       version = "2.3.0";
+       sha256 = "1iahlh505jrlpd9ndkr5asfnzdpp6m6m2lm44ds15461py485wpj";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring deepseq hashable microlens
+         scientific text unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring deepseq hashable microlens tasty tasty-hunit
+         text unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [
+         aeson base bytestring criterion deepseq hashable lens lens-aeson
+         microlens text unordered-containers vector
+       ];
+       homepage = "http://github.com/fosskers/microlens-aeson/";
+       description = "Law-abiding lenses for Aeson, using microlens";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "microlens-contra" = callPackage
     ({ mkDerivation, base, contravariant, microlens }:
      mkDerivation {
@@ -138171,6 +139416,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "microlens-ghc_0_4_9" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, microlens
+     , transformers
+     }:
+     mkDerivation {
+       pname = "microlens-ghc";
+       version = "0.4.9";
+       sha256 = "0wdwra9s7gllw0i7sf7d371h6d5qwlk6jrvhdm8hafj4fxagafma";
+       libraryHaskellDepends = [
+         array base bytestring containers microlens transformers
+       ];
+       homepage = "http://github.com/aelve/microlens";
+       description = "microlens + array, bytestring, containers, transformers";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "microlens-mtl" = callPackage
     ({ mkDerivation, base, microlens, mtl, transformers
      , transformers-compat
@@ -138204,6 +139466,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "microlens-platform_0_3_10" = callPackage
+    ({ mkDerivation, base, hashable, microlens, microlens-ghc
+     , microlens-mtl, microlens-th, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "microlens-platform";
+       version = "0.3.10";
+       sha256 = "1d4nhmgf9jq0ixc7qhwm7aaw3xdr0nalw58d0ydsydgf02cyazwv";
+       libraryHaskellDepends = [
+         base hashable microlens microlens-ghc microlens-mtl microlens-th
+         text unordered-containers vector
+       ];
+       homepage = "http://github.com/aelve/microlens";
+       description = "Feature-complete microlens";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "microlens-th" = callPackage
     ({ mkDerivation, base, containers, microlens, template-haskell }:
      mkDerivation {
@@ -138218,6 +139498,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "microlens-th_0_4_2" = callPackage
+    ({ mkDerivation, base, containers, microlens, template-haskell
+     , th-abstraction, transformers
+     }:
+     mkDerivation {
+       pname = "microlens-th";
+       version = "0.4.2";
+       sha256 = "16962h9qxjw6mv7nqn2xz7kclfgllla52illrzpri738wnf2nwsd";
+       libraryHaskellDepends = [
+         base containers microlens template-haskell th-abstraction
+         transformers
+       ];
+       testHaskellDepends = [ base microlens ];
+       homepage = "http://github.com/aelve/microlens";
+       description = "Automatic generation of record lenses for microlens";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "micrologger" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, hspec, lens
      , text, text-format, time, transformers
@@ -138275,6 +139574,8 @@ self: {
        pname = "microstache";
        version = "1.0.1.1";
        sha256 = "0851sqr1ppdj6m822635pa3j6qzdf25gyrhkjs25zdry6518bsax";
+       revision = "1";
+       editedCabalFile = "1var5mgzvkxl9s78hbxylkvv67z7fnbs5rb1l9q0cqxyw85cbr6j";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq directory filepath parsec
          text transformers unordered-containers vector
@@ -139192,15 +140493,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "miso_0_13_0_0" = callPackage
+  "miso_0_14_0_0" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, http-api-data
      , http-types, lucid, network-uri, servant, servant-lucid, text
      , transformers, vector
      }:
      mkDerivation {
        pname = "miso";
-       version = "0.13.0.0";
-       sha256 = "1sv8q5f1nkvsxk365k8njmaggi1hyp47q539is2n2xhwmsysxwla";
+       version = "0.14.0.0";
+       sha256 = "16qi1wcijncjjrjdwxs90jn3xclw1cgb0j1gby1w9d457ys6hmnx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -139417,7 +140718,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "mmark_0_0_5_5" = callPackage
+  "mmark_0_0_5_6" = callPackage
     ({ mkDerivation, aeson, base, case-insensitive, containers
      , criterion, data-default-class, deepseq, dlist, email-validate
      , foldl, hashable, hspec, hspec-megaparsec, html-entity-map, lucid
@@ -139427,8 +140728,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmark";
-       version = "0.0.5.5";
-       sha256 = "1j1ci1zwnp7q6bnk1cqz5g2zx4c02yr8s87v9wf8j898bky8cgwj";
+       version = "0.0.5.6";
+       sha256 = "0d0jxxj0b1jy9mym6389dmm6biiw8kzdh06zj2j0gsjczn2n60zw";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base case-insensitive containers data-default-class deepseq
@@ -139456,6 +140757,8 @@ self: {
        pname = "mmark-cli";
        version = "0.0.3.0";
        sha256 = "0nb17k23bs21qi7a888qp81w682ax2qvih9fbvdkdh6c2n6yklrp";
+       revision = "1";
+       editedCabalFile = "0rzz4m7z02m6rmigmmpgqhik1d7kc0i4mri0gpj1i3j7a59p7s1q";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -139496,6 +140799,8 @@ self: {
        pname = "mmark-ext";
        version = "0.2.0.0";
        sha256 = "1ccfdjsn8z80x2m5p9q17r2hf14zj63nkxkrg9s7knwr1j08gj1k";
+       revision = "1";
+       editedCabalFile = "0sql0z4123v5kzqcganfaag6ijl3j7lw52d3c50r9qwwg8q2dydz";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base foldl lucid microlens mmark modern-uri skylighting text
@@ -139511,21 +140816,6 @@ self: {
     ({ mkDerivation, base, mtl, transformers, transformers-compat }:
      mkDerivation {
        pname = "mmorph";
-       version = "1.1.0";
-       sha256 = "1pklvg28hjfsq5r66x4igjrxbdq0l74g6lirrvsh6ckmc1av9g61";
-       revision = "1";
-       editedCabalFile = "0ppf6icblgrmiaa09s2plg1m2818pp2l9rd7c821q0zq266v79wi";
-       libraryHaskellDepends = [
-         base mtl transformers transformers-compat
-       ];
-       description = "Monad morphisms";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "mmorph_1_1_1" = callPackage
-    ({ mkDerivation, base, mtl, transformers, transformers-compat }:
-     mkDerivation {
-       pname = "mmorph";
        version = "1.1.1";
        sha256 = "17hhfvdr2cclrhslsph3jaly7gfn7caajbzh7xr2prgvxmjhsdg3";
        libraryHaskellDepends = [
@@ -139533,7 +140823,6 @@ self: {
        ];
        description = "Monad morphisms";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "mmtf" = callPackage
@@ -139719,8 +141008,8 @@ self: {
        pname = "modern-uri";
        version = "0.2.1.0";
        sha256 = "06lqkx91s0lvkamxxf070l990kh8g0c5f5yshh2lffjbk5zclnp6";
-       revision = "1";
-       editedCabalFile = "1rir55ccx5y377mdl7hfzk2n31nv18mdfxw6a0l2jjw7y0w5kpyi";
+       revision = "2";
+       editedCabalFile = "1xhm5vi9y9y0mzmyqac29d13pvm3d28glmqcd7ps9lf9fjrrpp6k";
        libraryHaskellDepends = [
          base bytestring containers contravariant deepseq exceptions
          megaparsec mtl profunctors QuickCheck reflection tagged
@@ -140154,22 +141443,6 @@ self: {
      }:
      mkDerivation {
        pname = "monad-control";
-       version = "1.0.2.2";
-       sha256 = "0cz4ww3vp96crdqrh7w86rzrs7gs8c1z7rq84yxxhbiz28fs4d0y";
-       libraryHaskellDepends = [
-         base stm transformers transformers-base transformers-compat
-       ];
-       homepage = "https://github.com/basvandijk/monad-control";
-       description = "Lift control operations, like exception catching, through monad transformers";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "monad-control_1_0_2_3" = callPackage
-    ({ mkDerivation, base, stm, transformers, transformers-base
-     , transformers-compat
-     }:
-     mkDerivation {
-       pname = "monad-control";
        version = "1.0.2.3";
        sha256 = "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c";
        libraryHaskellDepends = [
@@ -140178,7 +141451,6 @@ self: {
        homepage = "https://github.com/basvandijk/monad-control";
        description = "Lift control operations, like exception catching, through monad transformers";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "monad-control-aligned" = callPackage
@@ -140203,22 +141475,6 @@ self: {
      }:
      mkDerivation {
        pname = "monad-coroutine";
-       version = "0.9.0.3";
-       sha256 = "1r69cjmkgplgwf94bqm0hz4aiyp5fkn6fyqr72i128zgk62gxah8";
-       libraryHaskellDepends = [
-         base monad-parallel transformers transformers-compat
-       ];
-       homepage = "http://trac.haskell.org/SCC/wiki/monad-coroutine";
-       description = "Coroutine monad transformer for suspending and resuming monadic computations";
-       license = "GPL";
-     }) {};
-
-  "monad-coroutine_0_9_0_4" = callPackage
-    ({ mkDerivation, base, monad-parallel, transformers
-     , transformers-compat
-     }:
-     mkDerivation {
-       pname = "monad-coroutine";
        version = "0.9.0.4";
        sha256 = "1rsxzry8qk5229vx4iw4jrzbbc82m80m1nlxlq73k5k20h9gzq0k";
        libraryHaskellDepends = [
@@ -140227,7 +141483,6 @@ self: {
        homepage = "http://trac.haskell.org/SCC/wiki/monad-coroutine";
        description = "Coroutine monad transformer for suspending and resuming monadic computations";
        license = "GPL";
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "monad-dijkstra" = callPackage
@@ -140506,26 +141761,6 @@ self: {
      }:
      mkDerivation {
        pname = "monad-logger-prefix";
-       version = "0.1.7";
-       sha256 = "0k8npx31vqck3zz1kirv36ljp6i9sy7banj0xkcpw8z7siqx64vd";
-       libraryHaskellDepends = [
-         base exceptions monad-control monad-logger mtl resourcet text
-         transformers transformers-base
-       ];
-       testHaskellDepends = [ base doctest Glob hspec QuickCheck ];
-       benchmarkHaskellDepends = [ base criterion monad-logger ];
-       homepage = "https://github.com/parsonsmatt/monad-logger-prefix#readme";
-       description = "Add prefixes to your monad-logger output";
-       license = stdenv.lib.licenses.asl20;
-     }) {};
-
-  "monad-logger-prefix_0_1_8" = callPackage
-    ({ mkDerivation, base, criterion, doctest, exceptions, Glob, hspec
-     , monad-control, monad-logger, mtl, QuickCheck, resourcet, text
-     , transformers, transformers-base
-     }:
-     mkDerivation {
-       pname = "monad-logger-prefix";
        version = "0.1.8";
        sha256 = "1p8sqynxl898vf2fq5lw8j7r50jrxp8npbsw6sc2mbsi336j79xj";
        libraryHaskellDepends = [
@@ -140537,7 +141772,6 @@ self: {
        homepage = "https://github.com/parsonsmatt/monad-logger-prefix#readme";
        description = "Add prefixes to your monad-logger output";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "monad-logger-syslog" = callPackage
@@ -140646,24 +141880,6 @@ self: {
      }:
      mkDerivation {
        pname = "monad-metrics";
-       version = "0.2.1.0";
-       sha256 = "179wjbjv4lcm5y620kjgc0m26x4w51d00w581ga2h2hjxkw3zq0p";
-       libraryHaskellDepends = [
-         base clock ekg-core exceptions hashable microlens mtl text
-         transformers unordered-containers
-       ];
-       testHaskellDepends = [ base ];
-       homepage = "https://github.com/sellerlabs/monad-metrics#readme";
-       description = "A convenient wrapper around EKG metrics";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "monad-metrics_0_2_1_1" = callPackage
-    ({ mkDerivation, base, clock, ekg-core, exceptions, hashable
-     , microlens, mtl, text, transformers, unordered-containers
-     }:
-     mkDerivation {
-       pname = "monad-metrics";
        version = "0.2.1.1";
        sha256 = "11gr6ir4678alscv9m6w33l6nbn0k1xspy4lzlgdqpfq5narl5zy";
        libraryHaskellDepends = [
@@ -140674,7 +141890,6 @@ self: {
        homepage = "https://github.com/sellerlabs/monad-metrics#readme";
        description = "A convenient wrapper around EKG metrics";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "monad-mock" = callPackage
@@ -140766,21 +141981,6 @@ self: {
      }:
      mkDerivation {
        pname = "monad-parallel";
-       version = "0.7.2.2";
-       sha256 = "1czg23k9qpggj58fksi4zqyig2flqqi1fznq17iw276fivnimgb0";
-       libraryHaskellDepends = [
-         base parallel transformers transformers-compat
-       ];
-       homepage = "http://trac.haskell.org/SCC/wiki/monad-parallel";
-       description = "Parallel execution of monadic computations";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "monad-parallel_0_7_2_3" = callPackage
-    ({ mkDerivation, base, parallel, transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "monad-parallel";
        version = "0.7.2.3";
        sha256 = "12ahni860pfkdj70f9d0dg2h93gl0d9qav8llcmgh5z7dg1vi3qj";
        libraryHaskellDepends = [
@@ -140789,7 +141989,6 @@ self: {
        homepage = "http://trac.haskell.org/SCC/wiki/monad-parallel";
        description = "Parallel execution of monadic computations";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "monad-parallel-progressbar" = callPackage
@@ -141247,23 +142446,6 @@ self: {
      }:
      mkDerivation {
        pname = "monadcryptorandom";
-       version = "0.7.1";
-       sha256 = "1rxrqs52a58y4bhbhw4p5m7hznbcn3ivvl18p9zkbliwfispihw5";
-       libraryHaskellDepends = [
-         base bytestring crypto-api exceptions mtl tagged transformers
-         transformers-compat
-       ];
-       homepage = "https://github.com/TomMD/monadcryptorandom";
-       description = "A monad for using CryptoRandomGen";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "monadcryptorandom_0_7_2" = callPackage
-    ({ mkDerivation, base, bytestring, crypto-api, exceptions, mtl
-     , tagged, transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "monadcryptorandom";
        version = "0.7.2";
        sha256 = "12inwjh1smgrp62hvrca7608vjaff576503xi7ymbkq9szk8rkj9";
        libraryHaskellDepends = [
@@ -141273,7 +142455,6 @@ self: {
        homepage = "https://github.com/TomMD/monadcryptorandom";
        description = "A monad for using CryptoRandomGen";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "monadfibre" = callPackage
@@ -142740,27 +143921,12 @@ self: {
     ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "mtl";
-       version = "2.2.1";
-       sha256 = "1icdbj2rshzn0m1zz5wa7v3xvkf6qw811p4s7jgqwvx1ydwrvrfa";
-       revision = "1";
-       editedCabalFile = "0fsa965g9h23mlfjzghmmhcb9dmaq8zpm374gby6iwgdx47q0njb";
-       libraryHaskellDepends = [ base transformers ];
-       homepage = "http://github.com/ekmett/mtl";
-       description = "Monad classes, using functional dependencies";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "mtl_2_2_2" = callPackage
-    ({ mkDerivation, base, transformers }:
-     mkDerivation {
-       pname = "mtl";
        version = "2.2.2";
        sha256 = "1xmy5741h8cyy0d91ahvqdz2hykkk20l8br7lg1rccnkis5g80w8";
        libraryHaskellDepends = [ base transformers ];
        homepage = "http://github.com/haskell/mtl";
        description = "Monad classes, using functional dependencies";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "mtl-c" = callPackage
@@ -144216,8 +145382,8 @@ self: {
      }:
      mkDerivation {
        pname = "mxnet-nn";
-       version = "0.0.1.1";
-       sha256 = "16clpl3sn4cf106hjigsyhgh15l9269yg838qarvbpigppkgb2sv";
+       version = "0.0.1.2";
+       sha256 = "0w5ri77ccav65dza3a4aanzvylcwscs4rf4yqylc12w03xh0rshp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -144643,6 +145809,7 @@ self: {
        homepage = "https://github.com/gelisam/n-ary-functor";
        description = "An n-ary version of Functor";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "n-m" = callPackage
@@ -145075,8 +146242,8 @@ self: {
      }) {};
 
   "nanovg" = callPackage
-    ({ mkDerivation, base, bytestring, c2hs, containers, freeglut, GLEW
-     , hspec, inline-c, mesa, QuickCheck, text, vector
+    ({ mkDerivation, base, bytestring, c2hs, containers, GLEW, hspec
+     , inline-c, libGL, libGLU, QuickCheck, text, vector
      }:
      mkDerivation {
        pname = "nanovg";
@@ -145087,14 +146254,14 @@ self: {
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring containers text vector ];
-       librarySystemDepends = [ freeglut GLEW mesa ];
+       librarySystemDepends = [ GLEW libGL libGLU ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [ base containers hspec inline-c QuickCheck ];
        homepage = "https://github.com/cocreature/nanovg-hs";
        description = "Haskell bindings for nanovg";
        license = stdenv.lib.licenses.isc;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {GLEW = null; inherit (pkgs) freeglut; inherit (pkgs) mesa;};
+     }) {GLEW = null; inherit (pkgs) libGL; inherit (pkgs) libGLU;};
 
   "nanq" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
@@ -145982,8 +147149,8 @@ self: {
      }:
      mkDerivation {
        pname = "netlink";
-       version = "1.1.0.0";
-       sha256 = "10zhvpvf677cf660gyc299sfg8fwlg9iq7gdpawdmqxj49w9mxa8";
+       version = "1.1.1.0";
+       sha256 = "1q8sxycv93sap6dgbw70scklnpjj5vav6qlvsxm5500jlvb3jnf0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -146216,6 +147383,19 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "netwire-input_0_0_7" = callPackage
+    ({ mkDerivation, base, deepseq, netwire }:
+     mkDerivation {
+       pname = "netwire-input";
+       version = "0.0.7";
+       sha256 = "1f9xxlcpy2brqn5hv0mdc428fav402jsqa1b8h4s8b09qa3v1ii9";
+       libraryHaskellDepends = [ base deepseq netwire ];
+       homepage = "https://www.github.com/Mokosha/netwire-input";
+       description = "Input handling abstractions for netwire";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "netwire-input-glfw" = callPackage
     ({ mkDerivation, base, containers, GLFW-b, mtl, netwire-input, stm
      }:
@@ -146292,18 +147472,17 @@ self: {
      }) {};
 
   "network" = callPackage
-    ({ mkDerivation, base, bytestring, doctest, HUnit, test-framework
-     , test-framework-hunit, unix
+    ({ mkDerivation, base, bytestring, directory, doctest, HUnit
+     , test-framework, test-framework-hunit, unix
      }:
      mkDerivation {
        pname = "network";
-       version = "2.6.3.3";
-       sha256 = "1xa0jif154i26a465bp2wpvsm891zhy98y5zp9zdbl39m6q6hrkp";
-       revision = "1";
-       editedCabalFile = "0nh9sbbyj3jdm2ybffsxa3c4mdywy3wq48sg8d5ylkr2s6cmbbpz";
+       version = "2.6.3.4";
+       sha256 = "1yswp78fg7i1w1inn6p07vhz7lmfs33niavxhq60z6yv0qx2c3dw";
        libraryHaskellDepends = [ base bytestring unix ];
        testHaskellDepends = [
-         base bytestring doctest HUnit test-framework test-framework-hunit
+         base bytestring directory doctest HUnit test-framework
+         test-framework-hunit
        ];
        homepage = "https://github.com/haskell/network";
        description = "Low-level networking interface";
@@ -148537,8 +149716,8 @@ self: {
        pname = "normalization-insensitive";
        version = "2.0.1";
        sha256 = "00nbha984yg4lxnpkyd3q0gbywf7xn5z5ixy3cr9ksn05w6blm1v";
-       revision = "1";
-       editedCabalFile = "1zaqbgrfy33y2d9ix178mhyysyffsia0hbmg77gcjmvv32b44m6j";
+       revision = "2";
+       editedCabalFile = "0djclsv0vzd56139ddzhykbwb3ny9mf8k2pryp8w33h9i4hv7axc";
        libraryHaskellDepends = [
          base bytestring deepseq hashable text unicode-transforms
        ];
@@ -148949,8 +150128,8 @@ self: {
      }:
      mkDerivation {
        pname = "number-length";
-       version = "0.1.0.1";
-       sha256 = "1ig9d1rgd5k9fxqmrdxi7mq6fgnxla7ba1083di1lxcakanll0kc";
+       version = "0.2.0.0";
+       sha256 = "1jrlq7qdi7lcpkqqv9qafcgci2gc8rb3f3lv177s8narfdprx2hz";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base HUnit QuickCheck test-framework test-framework-hunit
@@ -149552,15 +150731,15 @@ self: {
   "o-clock" = callPackage
     ({ mkDerivation, base, deepseq, doctest, gauge, ghc-prim, Glob
      , hedgehog, markdown-unlit, tasty, tasty-hedgehog, tasty-hspec
-     , tiempo, time-units, transformers, type-spec
+     , tiempo, time-units, type-spec
      }:
      mkDerivation {
        pname = "o-clock";
-       version = "0.1.0";
-       sha256 = "18rqy00hkqqqbhmsgkhza9blm2fl6kb29fs78ifkr2hqsya17fh6";
+       version = "0.1.1";
+       sha256 = "1adksq9s86gqxvn74qpa22w4fciq8k8j5v3qh0cas2rwabxqdr00";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base ghc-prim transformers ];
+       libraryHaskellDepends = [ base ghc-prim ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
          base doctest Glob hedgehog markdown-unlit tasty tasty-hedgehog
@@ -149621,25 +150800,24 @@ self: {
 
   "oauthenticated" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, blaze-builder
-     , bytestring, case-insensitive, crypto-random, cryptohash
-     , exceptions, hspec, hspec-expectations, http-client
-     , http-client-tls, http-types, mtl, network, network-uri, text
-     , time, transformers
+     , bytestring, case-insensitive, cryptonite, exceptions, hspec
+     , hspec-expectations, http-client, http-client-tls, http-types
+     , memory, mtl, network, network-uri, text, time, transformers
      }:
      mkDerivation {
        pname = "oauthenticated";
-       version = "0.2.0.0";
-       sha256 = "01rfx9zc1d9pwqc66axkrl2bi0jnyw4l39kn0nh4q8j63laszc1h";
+       version = "0.2.1.0";
+       sha256 = "08njax7jchkmha1angh98v0p3haxn8zj12lajl5npcmzlihd0k6l";
        libraryHaskellDepends = [
          aeson base base64-bytestring blaze-builder bytestring
-         case-insensitive crypto-random cryptohash exceptions http-client
-         http-types mtl network network-uri text time transformers
+         case-insensitive cryptonite exceptions http-client http-types
+         memory mtl network network-uri text time transformers
        ];
        testHaskellDepends = [
          aeson base base64-bytestring blaze-builder bytestring
-         case-insensitive crypto-random cryptohash exceptions hspec
-         hspec-expectations http-client http-client-tls http-types mtl
-         network network-uri text time transformers
+         case-insensitive cryptonite exceptions hspec hspec-expectations
+         http-client http-client-tls http-types memory mtl network
+         network-uri text time transformers
        ];
        homepage = "https://github.com/tel/oauthenticated.git#readme";
        description = "Simple OAuth for http-client";
@@ -149910,8 +151088,8 @@ self: {
      }) {};
 
   "oculus" = callPackage
-    ({ mkDerivation, base, either, libX11, libXinerama, mesa, monads-tf
-     , ovr, systemd, transformers, vect-floating
+    ({ mkDerivation, base, either, libGL, libX11, libXinerama
+     , monads-tf, ovr, systemd, transformers, vect-floating
      }:
      mkDerivation {
        pname = "oculus";
@@ -149920,13 +151098,13 @@ self: {
        libraryHaskellDepends = [
          base either monads-tf transformers vect-floating
        ];
-       librarySystemDepends = [ libX11 libXinerama mesa ovr systemd ];
+       librarySystemDepends = [ libGL libX11 libXinerama ovr systemd ];
        homepage = "http://github.com/cpdurham/oculus";
        description = "Oculus Rift ffi providing head tracking data";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXinerama; 
-         inherit (pkgs) mesa; ovr = null; systemd = null;};
+     }) {inherit (pkgs) libGL; inherit (pkgs.xorg) libX11; 
+         inherit (pkgs.xorg) libXinerama; ovr = null; systemd = null;};
 
   "odbc" = callPackage
     ({ mkDerivation }:
@@ -150202,6 +151380,7 @@ self: {
        homepage = "https://github.com/owensmurray/om-elm";
        description = "Haskell utilities for building embedded Elm programs";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "omaketex" = callPackage
@@ -150379,6 +151558,20 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "one-line-aeson-text" = callPackage
+    ({ mkDerivation, aeson, base, doctest, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "one-line-aeson-text";
+       version = "0.1.0.0";
+       sha256 = "026qycb9nvc2v648p2cc74h6xqczkv9mvpawq54zx4r3vlc4lppn";
+       libraryHaskellDepends = [ aeson base text unordered-containers ];
+       testHaskellDepends = [ base doctest ];
+       homepage = "https://github.com/typeclasses/one-line-aeson-text";
+       description = "Pretty-printing short Aeson values as text";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "one-liner" = callPackage
     ({ mkDerivation, base, bifunctors, contravariant, ghc-prim, HUnit
      , profunctors, tagged, transformers
@@ -150397,6 +151590,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "one-liner_1_0" = callPackage
+    ({ mkDerivation, base, bifunctors, contravariant, ghc-prim, HUnit
+     , profunctors, tagged, transformers
+     }:
+     mkDerivation {
+       pname = "one-liner";
+       version = "1.0";
+       sha256 = "1diigbl8l0m8q1sl0kxjjqbhl3vkpf0rrzxlbqaamp3ahpmgpx67";
+       libraryHaskellDepends = [
+         base bifunctors contravariant ghc-prim profunctors tagged
+         transformers
+       ];
+       testHaskellDepends = [ base contravariant HUnit ];
+       homepage = "https://github.com/sjoerdvisscher/one-liner";
+       description = "Constraint-based generics";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "one-liner-instances" = callPackage
     ({ mkDerivation, base, one-liner }:
      mkDerivation {
@@ -150539,8 +151751,8 @@ self: {
        pname = "opaleye";
        version = "0.6.0.0";
        sha256 = "0prwlxp96qpnhdm34slwhp3j8hj961xl99xkl6fbrxgxxjngfg1q";
-       revision = "1";
-       editedCabalFile = "0hkgrksap5hn0xq86bq9rsm3h9a6vamh6la77z10fdxv7m3xjxf3";
+       revision = "2";
+       editedCabalFile = "1zhb7i4za87ixxwwh792drvydr0ln9krwkml1mmdz38a9s0zyhn6";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive
          contravariant postgresql-simple pretty product-profunctors
@@ -151703,23 +152915,6 @@ self: {
      }:
      mkDerivation {
        pname = "optparse-applicative";
-       version = "0.14.1.0";
-       sha256 = "19q1q1z2mrwqp6r2vp3q46qb2j1awzn7mawpjhp6rk36bhijp07f";
-       libraryHaskellDepends = [
-         ansi-wl-pprint base process transformers transformers-compat
-       ];
-       testHaskellDepends = [ base bytestring QuickCheck ];
-       homepage = "https://github.com/pcapriotti/optparse-applicative";
-       description = "Utilities and combinators for parsing command line options";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "optparse-applicative_0_14_2_0" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, base, bytestring, process
-     , QuickCheck, transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "optparse-applicative";
        version = "0.14.2.0";
        sha256 = "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71";
        libraryHaskellDepends = [
@@ -151729,7 +152924,6 @@ self: {
        homepage = "https://github.com/pcapriotti/optparse-applicative";
        description = "Utilities and combinators for parsing command line options";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "optparse-applicative-simple" = callPackage
@@ -152420,14 +153614,15 @@ self: {
      }:
      mkDerivation {
        pname = "overload";
-       version = "0.1.0.4";
-       sha256 = "16sry2c4wrly3y3k47gry53klxf4kvbym6fybb8f7z9hqffx18a9";
+       version = "0.1.0.5";
+       sha256 = "046lxmcrk072l08rxbbzb883gd7cffxx76l3x29h78d10aai6cac";
        libraryHaskellDepends = [
          base simple-effects template-haskell th-expand-syns
        ];
        homepage = "https://gitlab.com/LukaHorvat/overload";
        description = "Finite overloading";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "overloaded-records" = callPackage
@@ -152571,6 +153766,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "packed" = callPackage
+    ({ mkDerivation, base, containers, gauge, ghc-prim, hedgehog
+     , primitive, tasty, tasty-hedgehog, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "packed";
+       version = "0.1.0";
+       sha256 = "1isacbh8w24awsh3nn7djcnmy8am4s4i5npsidnqm5qgcqikpfh8";
+       libraryHaskellDepends = [ base ghc-prim primitive ];
+       testHaskellDepends = [
+         base containers ghc-prim hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       benchmarkHaskellDepends = [ base gauge ];
+       homepage = "https://github.com/andrewthad/bytearray#readme";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "packed-dawg" = callPackage
     ({ mkDerivation, base, binary, criterion, deepseq, HUnit, mtl
      , QuickCheck, tasty, tasty-hunit, tasty-quickcheck
@@ -152964,7 +154177,7 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
 
-  "pandoc_2_1_1" = callPackage
+  "pandoc_2_1_2" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base64-bytestring
      , binary, blaze-html, blaze-markup, bytestring, Cabal
      , case-insensitive, cmark-gfm, containers, criterion, data-default
@@ -152979,8 +154192,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc";
-       version = "2.1.1";
-       sha256 = "1dg97d74bqmq11bkh1ni92g4imcq45nh8y9ixwpk8pcafv401z7a";
+       version = "2.1.2";
+       sha256 = "0rgba2vfh2n7kh2g75hmxa6pbjk6p73a4zwj00pfsvhwyvpjc2yw";
        configureFlags = [ "-fhttps" "-f-trypandoc" ];
        isLibrary = true;
        isExecutable = true;
@@ -152999,7 +154212,7 @@ self: {
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
          base base64-bytestring bytestring containers Diff directory
-         executable-path filepath hslua pandoc-types process QuickCheck
+         executable-path filepath Glob hslua pandoc-types process QuickCheck
          tasty tasty-golden tasty-hunit tasty-quickcheck temporary text time
          xml zip-archive
        ];
@@ -154353,6 +155566,8 @@ self: {
        pname = "parsec";
        version = "3.1.13.0";
        sha256 = "1wc09pyn70p8z6llink10c8pqbh6ikyk554911yfwxv1g91swqbq";
+       revision = "1";
+       editedCabalFile = "1dpr1wfpykkl6kayp4wnyn0n1zv7pvqksax2i54dhdgjijj8qynd";
        libraryHaskellDepends = [ base bytestring mtl text ];
        testHaskellDepends = [
          base HUnit mtl test-framework test-framework-hunit
@@ -155182,13 +156397,19 @@ self: {
      }) {};
 
   "pathfindingcore" = callPackage
-    ({ mkDerivation, array, base, HUnit, split, tasty, tasty-hunit }:
+    ({ mkDerivation, array, base-noprelude, bizzlelude, split, tasty
+     , tasty-hunit, text
+     }:
      mkDerivation {
        pname = "pathfindingcore";
-       version = "1.2.1";
-       sha256 = "1q6zh1s414xw9plzapf2gwv4pk7sfnb4pmzsyzd8hxcfyy54ykyj";
-       libraryHaskellDepends = [ array base split ];
-       testHaskellDepends = [ array base HUnit tasty tasty-hunit ];
+       version = "1.3.0";
+       sha256 = "1hrq9xj7hw90v4b336awvlcvdyj2q7n87zf00vk59srdjqg41hjs";
+       libraryHaskellDepends = [
+         array base-noprelude bizzlelude split text
+       ];
+       testHaskellDepends = [
+         array base-noprelude bizzlelude tasty tasty-hunit
+       ];
        homepage = "http://github.com/TheBizzle";
        description = "A toy pathfinding library";
        license = stdenv.lib.licenses.bsd3;
@@ -155544,22 +156765,6 @@ self: {
      }:
      mkDerivation {
        pname = "pcf-font-embed";
-       version = "0.1.1.0";
-       sha256 = "0mp4kwx77vx6l2cl7kzqw4pa4wdwdm58g8imph814waygxkbrj4g";
-       libraryHaskellDepends = [
-         base bytestring pcf-font template-haskell vector
-       ];
-       homepage = "https://github.com/michael-swan/pcf-font-embed";
-       description = "Template Haskell for embedding text rendered using PCF fonts";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "pcf-font-embed_0_1_2_0" = callPackage
-    ({ mkDerivation, base, bytestring, pcf-font, template-haskell
-     , vector
-     }:
-     mkDerivation {
-       pname = "pcf-font-embed";
        version = "0.1.2.0";
        sha256 = "0lgx62ig2rvxcv9sgk53pfr8gkfimb1xm6lxpc2rr74mdzp52pf5";
        libraryHaskellDepends = [
@@ -155568,7 +156773,6 @@ self: {
        homepage = "https://github.com/michael-swan/pcf-font-embed";
        description = "Template Haskell for embedding text rendered using PCF fonts";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pcg-random" = callPackage
@@ -156071,34 +157275,15 @@ self: {
      }) {};
 
   "pem" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, HUnit, mtl
+    ({ mkDerivation, base, basement, bytestring, HUnit, memory
      , QuickCheck, test-framework, test-framework-hunit
      , test-framework-quickcheck2
      }:
      mkDerivation {
        pname = "pem";
-       version = "0.2.2";
-       sha256 = "162sk5sg22w21wqz5qv8kx6ibxp99v5p20g3nknhm1kddk3hha1p";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [ base base64-bytestring bytestring mtl ];
-       testHaskellDepends = [
-         base bytestring HUnit QuickCheck test-framework
-         test-framework-hunit test-framework-quickcheck2
-       ];
-       homepage = "http://github.com/vincenthz/hs-pem";
-       description = "Privacy Enhanced Mail (PEM) format reader and writer";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "pem_0_2_3" = callPackage
-    ({ mkDerivation, base, bytestring, HUnit, memory, mtl, QuickCheck
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     }:
-     mkDerivation {
-       pname = "pem";
-       version = "0.2.3";
-       sha256 = "1c8383b5zcwmv88qhfnqcrwpi5md89iqsrfblcdxl8czyvc5x973";
-       libraryHaskellDepends = [ base bytestring memory mtl ];
+       version = "0.2.4";
+       sha256 = "1m7qjsxrd8m88cvkqmr8kscril500j2a9y0iynvksjyjkhdlq33p";
+       libraryHaskellDepends = [ base basement bytestring memory ];
        testHaskellDepends = [
          base bytestring HUnit QuickCheck test-framework
          test-framework-hunit test-framework-quickcheck2
@@ -156106,7 +157291,6 @@ self: {
        homepage = "http://github.com/vincenthz/hs-pem";
        description = "Privacy Enhanced Mail (PEM) format reader and writer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pencil" = callPackage
@@ -156517,25 +157701,6 @@ self: {
      }:
      mkDerivation {
        pname = "persistable-record";
-       version = "0.6.0.0";
-       sha256 = "097h8hx0si5mbi7c8l0mnwwzj166hn2vlfpgkkys17jxr8h6h31x";
-       libraryHaskellDepends = [
-         array base containers dlist names-th product-isomorphic
-         template-haskell th-data-compat transformers
-       ];
-       testHaskellDepends = [ base quickcheck-simple ];
-       homepage = "http://khibino.github.io/haskell-relational-record/";
-       description = "Binding between SQL database values and haskell records";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "persistable-record_0_6_0_1" = callPackage
-    ({ mkDerivation, array, base, containers, dlist, names-th
-     , product-isomorphic, quickcheck-simple, template-haskell
-     , th-data-compat, transformers
-     }:
-     mkDerivation {
-       pname = "persistable-record";
        version = "0.6.0.1";
        sha256 = "1jjydxzjvkw3jzm968ngj0v531fly0h4f7621fjzgbkdcjfgkgm1";
        libraryHaskellDepends = [
@@ -156546,7 +157711,6 @@ self: {
        homepage = "http://khibino.github.io/haskell-relational-record/";
        description = "Binding between SQL database values and haskell records";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "persistable-types-HDBC-pg" = callPackage
@@ -157152,6 +158316,31 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
+  "persistent-template_2_5_4" = callPackage
+    ({ mkDerivation, aeson, aeson-compat, base, bytestring, containers
+     , ghc-prim, hspec, http-api-data, monad-control, monad-logger
+     , path-pieces, persistent, QuickCheck, tagged, template-haskell
+     , text, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "persistent-template";
+       version = "2.5.4";
+       sha256 = "008afcy7zbw7bzp9jww8gdldb51kfm0fg4p0x4xcp61gx4679bjc";
+       libraryHaskellDepends = [
+         aeson aeson-compat base bytestring containers ghc-prim
+         http-api-data monad-control monad-logger path-pieces persistent
+         tagged template-haskell text transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hspec persistent QuickCheck text transformers
+       ];
+       homepage = "http://www.yesodweb.com/book/persistent";
+       description = "Type-safe, non-relational, multi-backend persistence";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ psibi ];
+     }) {};
+
   "persistent-test" = callPackage
     ({ mkDerivation, aeson, aeson-compat, attoparsec, base
      , base64-bytestring, blaze-builder, blaze-html, blaze-markup
@@ -158316,29 +159505,6 @@ self: {
      }:
      mkDerivation {
        pname = "pipes";
-       version = "4.3.7";
-       sha256 = "16cxqksdpx4yrddhizmbbrw6nmwbvy52kf5r30hcc7i28d5iz81h";
-       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_8" = callPackage
-    ({ mkDerivation, base, criterion, exceptions, mmorph, mtl
-     , optparse-applicative, QuickCheck, semigroups, test-framework
-     , test-framework-quickcheck2, transformers, void
-     }:
-     mkDerivation {
-       pname = "pipes";
        version = "4.3.8";
        sha256 = "1wlppz7vlkmbrrvjv6cjrp8x39lhvdqp2sgc9w6hv25y3qirz9wi";
        libraryHaskellDepends = [
@@ -158353,7 +159519,6 @@ self: {
        ];
        description = "Compositional pipelines";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pipes-aeson" = callPackage
@@ -159994,8 +161159,8 @@ self: {
      }:
      mkDerivation {
        pname = "ploton";
-       version = "1.1.1.0";
-       sha256 = "1gxzfhzylk7i5cjnzgn4jicvbrv67w2v6fwb2x067q9c2g0b0npy";
+       version = "1.1.2.0";
+       sha256 = "11a4kij1bz38bklaanlsyzwdvps7v9c0c8w4yblmxxdwxwdfvi6g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -161334,8 +162499,8 @@ self: {
      }:
      mkDerivation {
        pname = "posix-socket";
-       version = "0.2";
-       sha256 = "0ivgvpdjwiwniw7xbmlab7myhy5a631liq4864plhkrkm3hcp44y";
+       version = "0.3";
+       sha256 = "0al0am4nnzaiknxhlfid1qafh5kh15vl13ba1w0bivcsiyfb62in";
        libraryHaskellDepends = [
          base bytestring data-default-class data-flags network-ip
          transformers-base unix
@@ -161579,11 +162744,14 @@ self: {
      }) {};
 
   "postgresql-libpq" = callPackage
-    ({ mkDerivation, base, bytestring, postgresql, unix }:
+    ({ mkDerivation, base, bytestring, Cabal, postgresql, unix }:
      mkDerivation {
        pname = "postgresql-libpq";
        version = "0.9.4.0";
        sha256 = "15laa8m6i4girhr0i3xscgsl30iqj61mx5vbl67wasb8rwx0pi82";
+       revision = "1";
+       editedCabalFile = "0s1xyl25jn3miysc7i61wf2klm7blnczb0yhnf7hmv3ilpfsqghy";
+       setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring unix ];
        librarySystemDepends = [ postgresql ];
        homepage = "https://github.com/lpsmith/postgresql-libpq";
@@ -162113,15 +163281,17 @@ self: {
     ({ mkDerivation, attoparsec, base, base-prelude, bytestring
      , directory, foldl, hashable, potoki-core, profunctors, QuickCheck
      , quickcheck-instances, random, rerebase, tasty, tasty-hunit
-     , tasty-quickcheck, text, unagi-chan, unordered-containers, vector
+     , tasty-quickcheck, text, transformers, unagi-chan
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "potoki";
-       version = "0.9";
-       sha256 = "1sxzxg1dpm3280x5vp47pc6faik9dpfn7qp4pwvbkvwq90l32pv8";
+       version = "0.10";
+       sha256 = "19sym74az3fqh81pbkcqz6vjrwiglhf4n9042kf4x1naa0g4hz7k";
        libraryHaskellDepends = [
          attoparsec base base-prelude bytestring directory foldl hashable
-         potoki-core profunctors text unagi-chan unordered-containers vector
+         potoki-core profunctors text transformers unagi-chan
+         unordered-containers vector
        ];
        testHaskellDepends = [
          attoparsec QuickCheck quickcheck-instances random rerebase tasty
@@ -162139,8 +163309,8 @@ self: {
      }:
      mkDerivation {
        pname = "potoki-cereal";
-       version = "0.1.4";
-       sha256 = "0502ipxxdlmk4akc2fpsij3y91fi6q3rhrlzm3bf4kl5jfddvz7s";
+       version = "0.1.5";
+       sha256 = "1p24iv5mymyrw8q8y4k6zhzq3qd8z62ai0sfx2mh29in4s1y508y";
        libraryHaskellDepends = [
          base base-prelude bytestring cereal potoki potoki-core text
        ];
@@ -163084,8 +164254,8 @@ self: {
      }:
      mkDerivation {
        pname = "pretty-simple";
-       version = "2.0.2.0";
-       sha256 = "1rzc9sfrw0m4aqp19zpzllkrrr6966byc06m9qcy77fbv1icsr44";
+       version = "2.0.2.1";
+       sha256 = "16hnx6ra46m9i0q12b1xlbizv0vm76sqmfgj7w2l4ghw8ddciy8f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -163098,6 +164268,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "pretty-simple_2_1_0_0" = callPackage
+    ({ mkDerivation, ansi-terminal, base, containers, criterion
+     , doctest, Glob, mtl, parsec, text, transformers
+     }:
+     mkDerivation {
+       pname = "pretty-simple";
+       version = "2.1.0.0";
+       sha256 = "1jiq9l2zlgk3yzy6mif84fdzvwx3vzzbsh9zvwdph12zxa2y4b68";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal base containers mtl parsec text transformers
+       ];
+       testHaskellDepends = [ base doctest Glob ];
+       benchmarkHaskellDepends = [ base criterion ];
+       homepage = "https://github.com/cdepillabout/pretty-simple";
+       description = "pretty printer for data types with a 'Show' instance";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "pretty-sop" = callPackage
     ({ mkDerivation, base, generics-sop, pretty-show }:
      mkDerivation {
@@ -163580,8 +164771,8 @@ self: {
      }:
      mkDerivation {
        pname = "prints";
-       version = "0.1.0.1";
-       sha256 = "09l6kvcpfjafjihcnljnhr0gi5wclbaskqh9hslig5bzldjyd331";
+       version = "0.1.0.2";
+       sha256 = "0qngdky3rj9kzn2j8aqsnrrrgx4jc375m6lipx5m8j7wxqzyc8if";
        libraryHaskellDepends = [
          base hscolour pretty-show pretty-simple text transformers
        ];
@@ -163751,7 +164942,7 @@ self: {
        libraryHaskellDepends = [
          attoparsec base bytestring network unix
        ];
-       description = "Parse /proc/net/ tcp,tcp6,udp,udp6";
+       description = "Parse /proc/net/{tcp,tcp6,udp,udp6}";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -164213,6 +165404,8 @@ self: {
        pname = "profunctors";
        version = "5.2.2";
        sha256 = "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9";
+       revision = "1";
+       editedCabalFile = "1g6fvxq2npnyi8wv9mvwy35an68lrm5bf7xmx9x61mbwdxb6d0cg";
        libraryHaskellDepends = [
          base base-orphans bifunctors comonad contravariant distributive
          semigroups tagged transformers
@@ -165019,6 +166212,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "protocol-buffers_2_4_8" = callPackage
+    ({ mkDerivation, array, base, binary, bytestring, containers
+     , directory, filepath, mtl, parsec, syb, utf8-string
+     }:
+     mkDerivation {
+       pname = "protocol-buffers";
+       version = "2.4.8";
+       sha256 = "0inwj82pqbfqbgrzbs47g51k5nkx74hvbr76qc0a7kq0ss0rgnyb";
+       libraryHaskellDepends = [
+         array base binary bytestring containers directory filepath mtl
+         parsec syb utf8-string
+       ];
+       homepage = "https://github.com/k-bx/protocol-buffers";
+       description = "Parse Google Protocol Buffer specifications";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "protocol-buffers-descriptor" = callPackage
     ({ mkDerivation, base, bytestring, containers, protocol-buffers }:
      mkDerivation {
@@ -165034,6 +166245,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "protocol-buffers-descriptor_2_4_8" = callPackage
+    ({ mkDerivation, base, bytestring, containers, protocol-buffers }:
+     mkDerivation {
+       pname = "protocol-buffers-descriptor";
+       version = "2.4.8";
+       sha256 = "1j8q6qj1gck13qxwrq2cslhw3pcc9kr6h7iqs4229lhsf73lql9a";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring containers protocol-buffers
+       ];
+       homepage = "https://github.com/k-bx/protocol-buffers";
+       description = "Text.DescriptorProto.Options and code generated from the Google Protocol Buffer specification";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "protocol-buffers-descriptor-fork" = callPackage
     ({ mkDerivation, base, bytestring, containers
      , protocol-buffers-fork
@@ -165112,8 +166339,8 @@ self: {
        pname = "protolude";
        version = "0.2.1";
        sha256 = "1r2baxx6q4z75sswirlqsnyynk4i7amfmpzajggh31fbz13hxgxx";
-       revision = "1";
-       editedCabalFile = "03kaarc0k64zrkqkh9q38919pcaya7ngzjhb3pbapbjm7np2ynpd";
+       revision = "2";
+       editedCabalFile = "03w9051jdbldbid9iyvibdhxdr73cawrvp9qdsc0czxix5ggfr75";
        libraryHaskellDepends = [
          array async base bytestring containers deepseq ghc-prim hashable
          mtl mtl-compat safe stm text transformers transformers-compat
@@ -166558,6 +167785,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "qchas_1_1_0_0" = callPackage
+    ({ mkDerivation, base, hmatrix, linear, random, tasty, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "qchas";
+       version = "1.1.0.0";
+       sha256 = "1q1i7ppgd7121xqf6f4fr798nx52cw4g50nx42shk6qzpxsah58f";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base hmatrix linear random ];
+       executableHaskellDepends = [ base hmatrix ];
+       testHaskellDepends = [ base hmatrix linear tasty tasty-hunit ];
+       homepage = "https://github.com/ardeleanasm/qchas#readme";
+       description = "A library for implementing Quantum Algorithms";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "qd" = callPackage
     ({ mkDerivation, base, floatshow, qd }:
      mkDerivation {
@@ -167369,6 +168614,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "quickcheck-instances_0_3_18" = callPackage
+    ({ mkDerivation, array, base, base-compat, bytestring
+     , case-insensitive, containers, hashable, old-time, QuickCheck
+     , scientific, tagged, text, time, transformers, transformers-compat
+     , unordered-containers, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "quickcheck-instances";
+       version = "0.3.18";
+       sha256 = "1bh1pzz5fdcqvzdcirqxna6fnjms02min5md716299g5niz46w55";
+       libraryHaskellDepends = [
+         array base base-compat bytestring case-insensitive containers
+         hashable old-time QuickCheck scientific tagged text time
+         transformers transformers-compat unordered-containers uuid-types
+         vector
+       ];
+       testHaskellDepends = [
+         base containers QuickCheck tagged uuid-types
+       ];
+       homepage = "https://github.com/phadej/qc-instances";
+       description = "Common quickcheck instances";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "quickcheck-io" = callPackage
     ({ mkDerivation, base, HUnit, QuickCheck }:
      mkDerivation {
@@ -168429,6 +169699,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "rakuten_0_1_1_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, connection, constraints
+     , data-default-class, extensible, hspec, http-api-data, http-client
+     , http-client-tls, http-types, lens, req, servant-server, text
+     , warp
+     }:
+     mkDerivation {
+       pname = "rakuten";
+       version = "0.1.1.0";
+       sha256 = "13m8rg805aw5rj2a5j16yj06k5ws99ssl89r5s62xlq6lbzhc84c";
+       libraryHaskellDepends = [
+         aeson base bytestring connection constraints data-default-class
+         extensible http-api-data http-client http-client-tls http-types
+         lens req text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring connection constraints data-default-class
+         extensible hspec http-api-data http-client http-client-tls
+         http-types lens req servant-server text warp
+       ];
+       homepage = "https://github.com/matsubara0507/rakuten#readme";
+       description = "The Rakuten API in Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ralist" = callPackage
     ({ mkDerivation, base, criterion, deepseq, hspec }:
      mkDerivation {
@@ -168733,6 +170029,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "random-string" = callPackage
+    ({ mkDerivation, base, base16-bytestring, base58-bytestring
+     , base64-bytestring, bytestring, entropy
+     }:
+     mkDerivation {
+       pname = "random-string";
+       version = "0.1.0.1";
+       sha256 = "0gmb5i5sykwfr1l4b2isn9j92pzxgalbxkf9dnhs14pj3i6ygl80";
+       libraryHaskellDepends = [
+         base base16-bytestring base58-bytestring base64-bytestring
+         bytestring entropy
+       ];
+       description = "Generate a random base 16, 58, or 64 string";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "random-strings" = callPackage
     ({ mkDerivation, base, containers, mtl, QuickCheck, random }:
      mkDerivation {
@@ -169642,6 +170955,7 @@ self: {
        homepage = "https://github.com/masterdezign/rc#readme";
        description = "Reservoir Computing, fast RNNs";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "rclient" = callPackage
@@ -170049,7 +171363,7 @@ self: {
        pname = "reactive-banana-wx";
        version = "1.1.1.0";
        sha256 = "1yzymc6qpjj8d0fal09vxy2yicbrgrg42khylbbsrzmdgqfnf3kr";
-       configureFlags = [ "-f-buildexamples" ];
+       configureFlags = [ "-f-buildExamples" ];
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -170663,8 +171977,8 @@ self: {
        pname = "recursion-schemes";
        version = "5.0.2";
        sha256 = "1lmayskniljw3lxk64apvshn9h90gwfpflgxilfivsqhrjxnaj9s";
-       revision = "1";
-       editedCabalFile = "1mmq9dx0dgws4dbmij76snj91dv6czigs1kchi0vy01hplsb0wks";
+       revision = "2";
+       editedCabalFile = "13l08kal330r1nln13q6qn60mcs0iwcz0hx23na743xllha76nnl";
        libraryHaskellDepends = [
          base base-orphans bifunctors comonad free semigroups
          template-haskell transformers transformers-compat
@@ -170893,6 +172207,7 @@ self: {
        libraryPkgconfigDepends = [ raptor2 redland ];
        description = "Redland RDF library bindings";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {raptor2 = null; redland = null;};
 
   "redo" = callPackage
@@ -173449,8 +174764,8 @@ self: {
        pname = "req";
        version = "1.0.0";
        sha256 = "1s2yd61pw316llxyap7qwi18vrqxl6hhsmbgr79chjv5g119c087";
-       revision = "1";
-       editedCabalFile = "18bs1mcr454dgczzv8ahxps5lhba8wgls34cccg5aqdfhglprphk";
+       revision = "2";
+       editedCabalFile = "08yr09gfpml94ny6jmps2hn13bsb7r37rdn92gr2kmbryb188d1l";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson authenticate-oauth base blaze-builder bytestring
@@ -174280,27 +175595,6 @@ self: {
      }:
      mkDerivation {
        pname = "retry";
-       version = "0.7.6.0";
-       sha256 = "1p6x6djd6cvsf03pxd9ky7rpzrzs0jcapmyap8z55aziasr3xk7n";
-       libraryHaskellDepends = [
-         base data-default-class exceptions ghc-prim random transformers
-       ];
-       testHaskellDepends = [
-         base data-default-class exceptions ghc-prim hedgehog HUnit mtl
-         random stm tasty tasty-hedgehog tasty-hunit time transformers
-       ];
-       homepage = "http://github.com/Soostone/retry";
-       description = "Retry combinators for monadic actions that may fail";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "retry_0_7_6_1" = callPackage
-    ({ mkDerivation, base, data-default-class, exceptions, ghc-prim
-     , hedgehog, HUnit, mtl, random, stm, tasty, tasty-hedgehog
-     , tasty-hunit, time, transformers
-     }:
-     mkDerivation {
-       pname = "retry";
        version = "0.7.6.1";
        sha256 = "052kfbfvadrp2m8l0hnwi4j1jhqcw5m93wl9868863p5bd4w7j82";
        libraryHaskellDepends = [
@@ -174313,7 +175607,6 @@ self: {
        homepage = "http://github.com/Soostone/retry";
        description = "Retry combinators for monadic actions that may fail";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "retryer" = callPackage
@@ -176580,17 +177873,16 @@ self: {
      }) {};
 
   "s-cargot" = callPackage
-    ({ mkDerivation, base, containers, parsec, QuickCheck, text }:
+    ({ mkDerivation, base, containers, HUnit, parsec, QuickCheck, text
+     }:
      mkDerivation {
        pname = "s-cargot";
-       version = "0.1.2.0";
-       sha256 = "068ysjnparlrwrppqxi91yxqpskz8nqzyypp3qnad04fyz3l36mm";
-       revision = "2";
-       editedCabalFile = "0ighpd2cnci0afxv9v873ccsd7gpkc1z1qdciqcqzzgy7n8504ik";
+       version = "0.1.4.0";
+       sha256 = "0bay3ids11acs0b95gn99s6m93x3d8hl45yf008lv4wcxwaq77sd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers parsec text ];
-       testHaskellDepends = [ base parsec QuickCheck text ];
+       testHaskellDepends = [ base HUnit parsec QuickCheck text ];
        homepage = "https://github.com/aisamanra/s-cargot";
        description = "A flexible, extensible s-expression library";
        license = stdenv.lib.licenses.bsd3;
@@ -176600,8 +177892,8 @@ self: {
     ({ mkDerivation, base, HUnit, parsec, s-cargot, text }:
      mkDerivation {
        pname = "s-cargot-letbind";
-       version = "0.2.0.0";
-       sha256 = "17ll1vlx70wmzbigzk2klsd8vzkzhwi7amq6a27wpad6xcz8lm98";
+       version = "0.2.2.0";
+       sha256 = "0yv15kqfx21qwrm4i7rkwb1iybx27314f86xqbf2yyh4ala35wr1";
        libraryHaskellDepends = [ base s-cargot text ];
        testHaskellDepends = [ base HUnit parsec s-cargot text ];
        homepage = "https://github.com/GaloisInc/s-cargot-letbind";
@@ -176654,12 +177946,12 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "safe_0_3_16" = callPackage
+  "safe_0_3_17" = callPackage
     ({ mkDerivation, base, deepseq, QuickCheck }:
      mkDerivation {
        pname = "safe";
-       version = "0.3.16";
-       sha256 = "0xar4gh32izxl2a102xpgjrhppin7hqa837pv3fswmlj51cfb2k8";
+       version = "0.3.17";
+       sha256 = "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base deepseq QuickCheck ];
        homepage = "https://github.com/ndmitchell/safe#readme";
@@ -177699,6 +178991,34 @@ self: {
        license = stdenv.lib.licenses.lgpl3;
      }) {};
 
+  "sbp_2_3_9" = callPackage
+    ({ mkDerivation, aeson, array, base, base64-bytestring
+     , basic-prelude, binary, binary-conduit, bytestring, conduit
+     , conduit-extra, data-binary-ieee754, lens, lens-aeson, monad-loops
+     , resourcet, tasty, tasty-hunit, template-haskell, text, yaml
+     }:
+     mkDerivation {
+       pname = "sbp";
+       version = "2.3.9";
+       sha256 = "180krzjl9p1apm54qnna9xkj9451kah1ndix7c7g0if492a75qd6";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson array base base64-bytestring basic-prelude binary bytestring
+         data-binary-ieee754 lens lens-aeson monad-loops template-haskell
+         text
+       ];
+       executableHaskellDepends = [
+         aeson base basic-prelude binary-conduit bytestring conduit
+         conduit-extra resourcet yaml
+       ];
+       testHaskellDepends = [ base basic-prelude tasty tasty-hunit ];
+       homepage = "https://github.com/swift-nav/libsbp";
+       description = "SwiftNav's SBP Library";
+       license = stdenv.lib.licenses.lgpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "sbp2udp" = callPackage
     ({ mkDerivation, base, basic-prelude, binary, binary-conduit
      , bytestring, conduit, conduit-extra, network, optparse-generic
@@ -178364,8 +179684,8 @@ self: {
        pname = "scientific";
        version = "0.3.5.2";
        sha256 = "0msnjz7ml0zycw9bssslxbg0nigziw7vs5km4q3vjbs8jpzpkr2w";
-       revision = "4";
-       editedCabalFile = "108m6b9w8l2q4r68mla9m5z47k6ahb0p68hypsmn140hgfr6a8la";
+       revision = "5";
+       editedCabalFile = "19rrdna5f75rc21x6wr9m6x9h7776qbmi4z1cwwipfpij8hah54n";
        libraryHaskellDepends = [
          base binary bytestring containers deepseq hashable integer-gmp
          integer-logarithms primitive text
@@ -178529,8 +179849,8 @@ self: {
        pname = "scotty";
        version = "0.11.0";
        sha256 = "1vc6lc8q1cqqq67y78c70sw2jim8ps7bgp85a2gjgwfc6z4h68l9";
-       revision = "9";
-       editedCabalFile = "0cdvv4qsda5rkdj93400i8n3lzkxmz9xci7i38pri9axmics28qa";
+       revision = "10";
+       editedCabalFile = "0y0ll3nn3n6n1ry2mvqm1g28a688hpba8kaw30m17p7fnv0m7368";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring case-insensitive
          data-default-class fail http-types monad-control mtl nats network
@@ -179014,26 +180334,6 @@ self: {
      }:
      mkDerivation {
        pname = "sdl2";
-       version = "2.3.0";
-       sha256 = "0av74p5m93c3g490pcz9042f9sfjknxbh5cvwvakhcfrkvfdlva4";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bytestring exceptions linear StateVar text transformers vector
-       ];
-       librarySystemDepends = [ SDL2 ];
-       libraryPkgconfigDepends = [ SDL2 ];
-       description = "Both high- and low-level bindings to the SDL library (version 2.0.4+).";
-       license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) SDL2;};
-
-  "sdl2_2_3_0_1" = callPackage
-    ({ mkDerivation, base, bytestring, exceptions, linear, SDL2
-     , StateVar, text, transformers, vector
-     }:
-     mkDerivation {
-       pname = "sdl2";
        version = "2.3.0.1";
        sha256 = "1cyp3afs89xsqn3hxzk1223vpbifr1w2faczqfkii3irdgpqjl6k";
        isLibrary = true;
@@ -179046,7 +180346,6 @@ self: {
        libraryPkgconfigDepends = [ SDL2 ];
        description = "Both high- and low-level bindings to the SDL library (version 2.0.4+).";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) SDL2;};
 
   "sdl2-cairo" = callPackage
@@ -179555,20 +180854,6 @@ self: {
     ({ mkDerivation, base, byteable, bytestring, ghc-prim, memory }:
      mkDerivation {
        pname = "securemem";
-       version = "0.1.9";
-       sha256 = "0dkhhjxa7njc3qbgvd5a23rkvr39vj2kn2a9nk6yjg7a8b2hvdpy";
-       libraryHaskellDepends = [
-         base byteable bytestring ghc-prim memory
-       ];
-       homepage = "http://github.com/vincenthz/hs-securemem";
-       description = "abstraction to an auto scrubbing and const time eq, memory chunk";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "securemem_0_1_10" = callPackage
-    ({ mkDerivation, base, byteable, bytestring, ghc-prim, memory }:
-     mkDerivation {
-       pname = "securemem";
        version = "0.1.10";
        sha256 = "19hnw2cfbsfjynxq1bq9f6djbxhsc1k751ml0y1ab3ah913mm29j";
        libraryHaskellDepends = [
@@ -179577,7 +180862,6 @@ self: {
        homepage = "https://github.com/vincenthz/hs-securemem";
        description = "abstraction to an auto scrubbing and const time eq, memory chunk";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "sednaDBXML" = callPackage
@@ -179603,25 +180887,6 @@ self: {
      }:
      mkDerivation {
        pname = "selda";
-       version = "0.1.12";
-       sha256 = "1pbf141p3j2gj91lz4ilfc75kf2b0mzfnzxpjn220knkzianm2d9";
-       revision = "1";
-       editedCabalFile = "06j1yv9w46nm5hrs15na1bisv63kkscifq01c8qq66li4vm79l8z";
-       libraryHaskellDepends = [
-         base bytestring exceptions hashable mtl psqueues text time
-         unordered-containers
-       ];
-       homepage = "https://selda.link";
-       description = "Multi-backend, high-level EDSL for interacting with SQL databases";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "selda_0_1_12_1" = callPackage
-    ({ mkDerivation, base, bytestring, exceptions, hashable, mtl
-     , psqueues, text, time, unordered-containers
-     }:
-     mkDerivation {
-       pname = "selda";
        version = "0.1.12.1";
        sha256 = "1iq0fnk17qn74vwl8mjv7zr1y90f3x1hwniy0dmg3h0s5clpcqa9";
        libraryHaskellDepends = [
@@ -179631,7 +180896,6 @@ self: {
        homepage = "https://selda.link";
        description = "Multi-backend, high-level EDSL for interacting with SQL databases";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "selda-postgresql" = callPackage
@@ -179640,24 +180904,6 @@ self: {
      }:
      mkDerivation {
        pname = "selda-postgresql";
-       version = "0.1.7.1";
-       sha256 = "1izc27wdi9ldhjmmhwjw99g8pgbcayldwn65p5lsad173nc2rd22";
-       revision = "1";
-       editedCabalFile = "0nkhzbkvhfcp9nsq6w45ag2l7w848iw7hfllfian16vfhqc4qpld";
-       libraryHaskellDepends = [
-         base bytestring exceptions postgresql-libpq selda text
-       ];
-       homepage = "https://github.com/valderman/selda";
-       description = "PostgreSQL backend for the Selda database EDSL";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "selda-postgresql_0_1_7_2" = callPackage
-    ({ mkDerivation, base, bytestring, exceptions, postgresql-libpq
-     , selda, text
-     }:
-     mkDerivation {
-       pname = "selda-postgresql";
        version = "0.1.7.2";
        sha256 = "06z5zrika018433p5l011wxc308zw7l9ilnkgwcykagsnmai4y7z";
        libraryHaskellDepends = [
@@ -179666,7 +180912,6 @@ self: {
        homepage = "https://github.com/valderman/selda";
        description = "PostgreSQL backend for the Selda database EDSL";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "selda-sqlite" = callPackage
@@ -179872,8 +181117,8 @@ self: {
        pname = "semigroupoids";
        version = "5.2.1";
        sha256 = "006jys6kvckkmbnhf4jc51sh64hamkz464mr8ciiakybrfvixr3r";
-       revision = "3";
-       editedCabalFile = "0wzcnpz8pyjk823vqnq5s8krsb8i6cw573hcschpd9x5ynq4li70";
+       revision = "4";
+       editedCabalFile = "0izc33v2n2321hc4ssr1b8fj85i91ca6c99w1qhdqnnp1sank7sk";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base base-orphans bifunctors comonad containers contravariant
@@ -181742,6 +182987,33 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "servant-kotlin_0_1_1_0" = callPackage
+    ({ mkDerivation, aeson, base, containers, directory, formatting
+     , hspec, http-api-data, lens, servant, servant-foreign, shelly
+     , text, time, wl-pprint-text
+     }:
+     mkDerivation {
+       pname = "servant-kotlin";
+       version = "0.1.1.0";
+       sha256 = "14z1vf4mj041ydps7nyfs0bmdpq0vb18xfscsq3i1f5hfr9swj50";
+       libraryHaskellDepends = [
+         base containers directory formatting lens servant servant-foreign
+         text time wl-pprint-text
+       ];
+       testHaskellDepends = [
+         aeson base containers directory formatting hspec http-api-data lens
+         servant servant-foreign text time wl-pprint-text
+       ];
+       benchmarkHaskellDepends = [
+         aeson base containers directory formatting http-api-data lens
+         servant servant-foreign shelly text time wl-pprint-text
+       ];
+       homepage = "https://github.com/matsubara0507/servant-kotlin#readme";
+       description = "Automatically derive Kotlin class to query servant webservices";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "servant-lucid" = callPackage
     ({ mkDerivation, base, http-media, lucid, servant }:
      mkDerivation {
@@ -182419,6 +183691,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "servant-static-th_0_2_0_1" = callPackage
+    ({ mkDerivation, base, blaze-html, bytestring, containers
+     , directory, doctest, filepath, Glob, hspec-wai, http-media
+     , semigroups, servant, servant-blaze, servant-server, tasty
+     , tasty-hspec, tasty-hunit, template-haskell, text, wai
+     }:
+     mkDerivation {
+       pname = "servant-static-th";
+       version = "0.2.0.1";
+       sha256 = "1np3sh8jcil63kd56smlkcxqg25zsn01s4dx0d1i4cmc610nb33l";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base blaze-html bytestring containers directory filepath http-media
+         semigroups servant servant-blaze servant-server template-haskell
+         text
+       ];
+       testHaskellDepends = [
+         base blaze-html bytestring directory doctest filepath Glob
+         hspec-wai servant servant-blaze servant-server tasty tasty-hspec
+         tasty-hunit wai
+       ];
+       homepage = "https://github.com/cdepillabout/servant-static-th";
+       description = "Embed a directory of static files in your Servant server";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "servant-subscriber" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, blaze-builder
      , bytestring, case-insensitive, containers, directory, filepath
@@ -182571,6 +183871,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "servant-xml" = callPackage
+    ({ mkDerivation, base, bytestring, http-media, servant, xmlbf
+     , xmlbf-xeno
+     }:
+     mkDerivation {
+       pname = "servant-xml";
+       version = "1.0.1";
+       sha256 = "09rxvrxxmj62rscvddza8rygx4zv06k975j99yz7ymggmimhwaig";
+       libraryHaskellDepends = [
+         base bytestring http-media servant xmlbf xmlbf-xeno
+       ];
+       homepage = "https://github.com/fosskers/servant-xml";
+       description = "Servant support for the XML Content-Type";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "servant-yaml" = callPackage
     ({ mkDerivation, aeson, base, base-compat, bytestring, http-media
      , servant, servant-server, wai, warp, yaml
@@ -182697,23 +184014,24 @@ self: {
      }) {};
 
   "serverless-haskell" = callPackage
-    ({ mkDerivation, aeson, aeson-casing, amazonka-core
-     , amazonka-kinesis, amazonka-s3, base, bytestring, hspec
-     , hspec-discover, lens, raw-strings-qq, text, time, unix
+    ({ mkDerivation, aeson, aeson-casing, aeson-extra, amazonka-core
+     , amazonka-kinesis, amazonka-s3, base, bytestring, case-insensitive
+     , hspec, hspec-discover, lens, raw-strings-qq, text, time, unix
      , unordered-containers
      }:
      mkDerivation {
        pname = "serverless-haskell";
-       version = "0.4.1";
-       sha256 = "1r0amp80g3lz31l1hb138dyqfh29nb7f0yq20xzh4hccr600liw1";
+       version = "0.4.2";
+       sha256 = "1cdpcin060qz5wicf8jqxayi2vjrhapybg401m3rw914s452safw";
        libraryHaskellDepends = [
-         aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
-         bytestring lens text time unix unordered-containers
+         aeson aeson-casing aeson-extra amazonka-core amazonka-kinesis
+         amazonka-s3 base bytestring case-insensitive lens text time unix
+         unordered-containers
        ];
        testHaskellDepends = [
-         aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
-         bytestring hspec hspec-discover lens raw-strings-qq text time unix
-         unordered-containers
+         aeson aeson-casing aeson-extra amazonka-core amazonka-kinesis
+         amazonka-s3 base bytestring case-insensitive hspec hspec-discover
+         lens raw-strings-qq text time unix unordered-containers
        ];
        homepage = "https://github.com/seek-oss/serverless-haskell#readme";
        description = "Deploying Haskell code onto AWS Lambda using Serverless";
@@ -182980,6 +184298,8 @@ self: {
        pname = "sessiontypes";
        version = "0.1.2";
        sha256 = "1xjf3yjapz9ipjkqhm8fljgbj6fww3iyl1mx1kjwh18s6b9ymq5s";
+       revision = "1";
+       editedCabalFile = "0qd48i92nn5yhp1lzs5vvvcmq5db785nr736y2yxgi7z4pk80r84";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -183001,6 +184321,8 @@ self: {
        pname = "sessiontypes-distributed";
        version = "0.1.1";
        sha256 = "0fi263sdpshzjwc51h9rqgg0zj7f5a6igrfj9487lbdgaz1cb1ya";
+       revision = "1";
+       editedCabalFile = "0r4xn7p21xwdimzpdd5jqjawds9mhniqzmg84bfipcpm3mwhjq5x";
        libraryHaskellDepends = [
          base binary bytestring distributed-process distributed-static
          exceptions rank1dynamic sessiontypes
@@ -183598,15 +184920,15 @@ self: {
      }) {};
 
   "shake-ats" = callPackage
-    ({ mkDerivation, base, binary, dependency, directory, hs2ats
-     , language-ats, microlens, shake, shake-ext, text
+    ({ mkDerivation, base, binary, dependency, directory, hashable
+     , hs2ats, language-ats, lens, shake, shake-ext, text
      }:
      mkDerivation {
        pname = "shake-ats";
-       version = "1.5.0.6";
-       sha256 = "166i9v8d4fdbmriakndwkjgx10c4rags141ky0nw6x2ydziyn7n0";
+       version = "1.5.0.9";
+       sha256 = "1fjbdik7a2izl8sbxnv1i36h55df0v7w23pn7ivk1p18mgljc9lf";
        libraryHaskellDepends = [
-         base binary dependency directory hs2ats language-ats microlens
+         base binary dependency directory hashable hs2ats language-ats lens
          shake shake-ext text
        ];
        homepage = "https://github.com/vmchale/shake-ats#readme";
@@ -183633,17 +184955,17 @@ self: {
      }) {};
 
   "shake-ext" = callPackage
-    ({ mkDerivation, base, Cabal, composition-prelude, directory, mtl
-     , shake, template-haskell, text
+    ({ mkDerivation, base, Cabal, composition-prelude, cpphs, directory
+     , shake, template-haskell
      }:
      mkDerivation {
        pname = "shake-ext";
-       version = "2.7.0.0";
-       sha256 = "1jv5hcmv29ynr5asc4mpz4kh4ip5gd16b8h5qlcfac2f7m7njbwl";
+       version = "2.7.0.3";
+       sha256 = "0j1558a43bz7jqbbhn0myjwd9nrd6mnn4r26ix5wqhnsgfpxcw1j";
        libraryHaskellDepends = [
-         base Cabal composition-prelude directory mtl shake template-haskell
-         text
+         base Cabal composition-prelude directory shake template-haskell
        ];
+       libraryToolDepends = [ cpphs ];
        homepage = "https://hub.darcs.net/vmchale/shake-ext";
        description = "Helper functions for linting with shake";
        license = stdenv.lib.licenses.bsd3;
@@ -183781,8 +185103,8 @@ self: {
      }:
      mkDerivation {
        pname = "shakers";
-       version = "0.0.41";
-       sha256 = "0djg61fv6g0xskk72a06kva70a6zvdwlsfhdnw6fsk69h0vlidrc";
+       version = "0.0.42";
+       sha256 = "020j1j5lpl5x0hxgscy1skx1fqw77w184h86rvgkq1kli7pp9kpk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -184265,6 +185587,37 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "shelly_1_7_1" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, directory
+     , enclosed-exceptions, exceptions, filepath, hspec, HUnit
+     , lifted-async, lifted-base, monad-control, mtl, process
+     , system-fileio, system-filepath, text, time, transformers
+     , transformers-base, unix-compat
+     }:
+     mkDerivation {
+       pname = "shelly";
+       version = "1.7.1";
+       sha256 = "068gabny23r9qs2fnn5vjyy77zi59c323ypmnmd71w7qwyfa2pl8";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base bytestring containers directory enclosed-exceptions
+         exceptions lifted-async lifted-base monad-control mtl process
+         system-fileio system-filepath text time transformers
+         transformers-base unix-compat
+       ];
+       testHaskellDepends = [
+         async base bytestring containers directory enclosed-exceptions
+         exceptions filepath hspec HUnit lifted-async lifted-base
+         monad-control mtl process system-fileio system-filepath text time
+         transformers transformers-base unix-compat
+       ];
+       homepage = "https://github.com/yesodweb/Shelly.hs";
+       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
@@ -185143,23 +186496,24 @@ self: {
      }) {};
 
   "simple-effects" = callPackage
-    ({ mkDerivation, array, base, criterion, exceptions, list-t
-     , monad-control, MonadRandom, mtl, text, transformers
-     , transformers-base
+    ({ mkDerivation, array, async, base, bytestring, criterion
+     , exceptions, list-t, monad-control, MonadRandom, mtl, text
+     , transformers, transformers-base
      }:
      mkDerivation {
        pname = "simple-effects";
-       version = "0.9.0.1";
-       sha256 = "1n5jr909g410zfy0vk4pvl5phy981hhxsx61hcm6p99f0vdybcwx";
+       version = "0.10.0.0";
+       sha256 = "00hspcdh7si0bykfdyxclklv622izl8jm6nwic4z5j15rmqa62b7";
        libraryHaskellDepends = [
-         array base exceptions list-t monad-control MonadRandom mtl text
-         transformers transformers-base
+         array async base bytestring exceptions list-t monad-control
+         MonadRandom mtl text transformers transformers-base
        ];
        testHaskellDepends = [ base ];
        benchmarkHaskellDepends = [ base criterion mtl transformers ];
        homepage = "https://gitlab.com/LukaHorvat/simple-effects";
        description = "A simple effect system that integrates with MTL";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "simple-eval" = callPackage
@@ -185326,8 +186680,8 @@ self: {
      }:
      mkDerivation {
        pname = "simple-logging";
-       version = "0.2.0.2";
-       sha256 = "1a917vvwnzmv9jqrrmk6knv8wfrxwkbal6gxp24a2xkiqcjpgbjw";
+       version = "0.2.0.3";
+       sha256 = "12ayxv1j2zzql01gka1p8m7pixjh6f87r5hamz3ydcyzn4vrl5j1";
        libraryHaskellDepends = [
          aeson base bytestring directory exceptions filepath hscolour
          iso8601-time lens mtl simple-effects string-conv text time uuid
@@ -185962,6 +187316,8 @@ self: {
        pname = "singleton-bool";
        version = "0.1.3";
        sha256 = "1i29dl0f45rk280qfrcjcfbkshb7h3y0s2ndw2d7drwlcbl4p2if";
+       revision = "1";
+       editedCabalFile = "0wpwwqgrfgzi6cf4j1jpxwi8b30s80zch2xzcgzcmjmaai7kgc1n";
        libraryHaskellDepends = [ base ];
        homepage = "https://github.com/phadej/singleton-bool#readme";
        description = "Type level booleans";
@@ -186507,24 +187863,50 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
-  "skylighting_0_6" = callPackage
+  "skylighting_0_7_0_2" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, attoparsec, base
+     , base64-bytestring, binary, blaze-html, bytestring
+     , case-insensitive, colour, containers, directory, filepath, hxt
+     , mtl, regex-pcre-builtin, safe, skylighting-core, text
+     , utf8-string
+     }:
+     mkDerivation {
+       pname = "skylighting";
+       version = "0.7.0.2";
+       sha256 = "16l7sz5a5g0x9jh6v5v8has37lc29dz142zxkidd6ri25izs5bph";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal attoparsec base base64-bytestring binary
+         blaze-html bytestring case-insensitive colour containers directory
+         filepath hxt mtl regex-pcre-builtin safe skylighting-core text
+         utf8-string
+       ];
+       homepage = "https://github.com/jgm/skylighting";
+       description = "syntax highlighting library";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "skylighting-core" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, attoparsec, base
      , base64-bytestring, binary, blaze-html, bytestring
      , case-insensitive, colour, containers, criterion, Diff, directory
      , filepath, HUnit, hxt, mtl, pretty-show, QuickCheck, random
      , regex-pcre-builtin, safe, tasty, tasty-golden, tasty-hunit
-     , tasty-quickcheck, text, utf8-string
+     , tasty-quickcheck, text, transformers, utf8-string
      }:
      mkDerivation {
-       pname = "skylighting";
-       version = "0.6";
-       sha256 = "1027rcj6zqmnwm6is5k5v28r8af8bsf6i36dwi128h5g92pg206f";
+       pname = "skylighting-core";
+       version = "0.7.0.2";
+       sha256 = "0j35rsrbnmarhnwqyd8ap64h7yjkqyc1faj599hfyymmy1vqahyf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson ansi-terminal attoparsec base base64-bytestring binary
          blaze-html bytestring case-insensitive colour containers directory
-         filepath hxt mtl regex-pcre-builtin safe text utf8-string
+         filepath hxt mtl regex-pcre-builtin safe text transformers
+         utf8-string
        ];
        testHaskellDepends = [
          aeson base bytestring containers Diff directory filepath HUnit
@@ -186536,8 +187918,7 @@ self: {
        ];
        homepage = "https://github.com/jgm/skylighting";
        description = "syntax highlighting library";
-       license = stdenv.lib.licenses.gpl2;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "skype4hs" = callPackage
@@ -186697,8 +188078,8 @@ self: {
      }:
      mkDerivation {
        pname = "slate";
-       version = "0.8.0.0";
-       sha256 = "096v0aai5c7adpa5y15yscs6w8c7c0vz667a0ibr33m0rmnyiqlm";
+       version = "0.8.1.0";
+       sha256 = "1dzk9xcif3g14qqksj7h343ka3b19fcgijbnhmivpgjdgychkyk2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -186886,8 +188267,8 @@ self: {
        pname = "slug";
        version = "0.1.7";
        sha256 = "1pkxcb2ip4mb6szmqz3g7m3m8qfrvknjr5ii0wnd0icbzm1q4vyp";
-       revision = "1";
-       editedCabalFile = "0xy0zcrnfpdbkhks15p1g2zxl7zmfb0b5511mfcsvzxl9q8salf6";
+       revision = "2";
+       editedCabalFile = "0kvx1igj6fs9wrwkh68m19f5pxw1x46d489zgj6f5ah5w8wfxp2h";
        libraryHaskellDepends = [
          aeson base exceptions http-api-data path-pieces persistent
          QuickCheck text
@@ -187138,6 +188519,7 @@ self: {
        homepage = "https://github.com/jrclogic/SMCDEL";
        description = "Symbolic Model Checking for Dynamic Epistemic Logic";
        license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "sme" = callPackage
@@ -187198,6 +188580,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "smoothie_0_4_2_8" = callPackage
+    ({ mkDerivation, aeson, base, linear, text, vector }:
+     mkDerivation {
+       pname = "smoothie";
+       version = "0.4.2.8";
+       sha256 = "0fy0rygg2r73zfcgxmamlz1xfbpfxbljxcwjx9rnp0c8v9aq2m2s";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ aeson base linear text vector ];
+       homepage = "https://github.com/phaazon/smoothie";
+       description = "Smooth curves via several interpolation modes";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "smsaero" = callPackage
     ({ mkDerivation, aeson, base, containers, http-api-data
      , http-client, servant, servant-client, servant-docs, text, time
@@ -189868,6 +191264,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "sparse-linear-algebra_0_2_9_7" = callPackage
+    ({ mkDerivation, base, containers, exceptions, hspec
+     , matrix-market-attoparsec, mtl, mwc-random, primitive, QuickCheck
+     , scientific, transformers, vector, vector-algorithms, vector-space
+     }:
+     mkDerivation {
+       pname = "sparse-linear-algebra";
+       version = "0.2.9.7";
+       sha256 = "0sskv1bbn1q19jh508wk1d898jwzlsf7662v4crrppmb6k6cq1zq";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base containers exceptions mtl transformers vector
+         vector-algorithms vector-space
+       ];
+       testHaskellDepends = [
+         base containers exceptions hspec matrix-market-attoparsec mtl
+         mwc-random primitive QuickCheck scientific vector-space
+       ];
+       homepage = "https://github.com/ocramz/sparse-linear-algebra";
+       description = "Numerical computation in native Haskell";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "sparse-linear-algebra" = callPackage
     ({ mkDerivation, base, containers, exceptions, hspec
      , matrix-market-attoparsec, mtl, mwc-random, primitive, QuickCheck
@@ -191476,8 +192896,8 @@ self: {
        pname = "stache";
        version = "1.2.1";
        sha256 = "0fqipjyin2hpklm0gaab4qhcfj9gzkpb2g948sqzf1n6alkxvyvb";
-       revision = "1";
-       editedCabalFile = "18h31a8bd7v96lc9q0ai7sblnxg3y55s1053jqdixi3y7lz3jh79";
+       revision = "3";
+       editedCabalFile = "0r7qx7h3lz6v5fvfkky7crw5ms8vszx0d8xlkr94xa9n7mxbndh3";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq directory filepath
@@ -192132,19 +193552,22 @@ self: {
      }) {};
 
   "stagen" = callPackage
-    ({ mkDerivation, aeson, base, blaze-html, bytestring, data-default
-     , directory, filemanip, lucid, markdown, mtl, optparse-applicative
-     , parallel, parsec, text
+    ({ mkDerivation, aeson, base, base-compat, blaze-html, bytestring
+     , data-default, directory, feed, filemanip, json-feed, lucid
+     , markdown, mtl, network-uri, optparse-applicative, parallel
+     , parsec, text, text-conversions, time, xml, xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "stagen";
-       version = "0.1.0";
-       sha256 = "0cd0639ms4vcdvjvhn8l0893d5nv51kzg3ky0xd9bnmjr8f0wpzm";
+       version = "0.2.1";
+       sha256 = "14gyak2gg05xbrx93bl1x7jfy2rwmzczpvip7h21bysqk964rh8j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base blaze-html bytestring data-default directory filemanip
-         lucid markdown mtl optparse-applicative parallel parsec text
+         aeson base base-compat blaze-html bytestring data-default directory
+         feed filemanip json-feed lucid markdown mtl network-uri
+         optparse-applicative parallel parsec text text-conversions time xml
+         xml-conduit xml-types
        ];
        executableHaskellDepends = [ base ];
        description = "Static site generator";
@@ -192257,8 +193680,8 @@ self: {
     ({ mkDerivation, base, fsnotify }:
      mkDerivation {
        pname = "starter";
-       version = "0.1.0";
-       sha256 = "1h3c9znrzyymd1bcgwhid6rchf9ai7nxr1ib0y70qzzrmifyh1mn";
+       version = "0.2.1";
+       sha256 = "1lghrnygc984a4ybdisp11kdcljwygx5ybiacnk7d0p1x8205zk0";
        libraryHaskellDepends = [ base fsnotify ];
        homepage = "https://github.com/rkaippully/starter#readme";
        description = "Develop applications without restarts";
@@ -192559,6 +193982,7 @@ self: {
        homepage = "https://github.com/dzhus/static-text#readme";
        description = "Lists, Texts, ByteStrings and Vectors of statically known length";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "staticanalysis" = callPackage
@@ -192583,6 +194007,8 @@ self: {
        pname = "statistics";
        version = "0.14.0.2";
        sha256 = "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l";
+       revision = "1";
+       editedCabalFile = "0gg7hq8qvbnhp7lnrykh401ggr51izffylgdmy6nip2a81q9dxi0";
        libraryHaskellDepends = [
          aeson base base-orphans binary deepseq erf math-functions monad-par
          mwc-random primitive vector vector-algorithms
@@ -192747,8 +194173,8 @@ self: {
      }:
      mkDerivation {
        pname = "staversion";
-       version = "0.2.1.2";
-       sha256 = "01ag624x240ybnapc49vcsiw5kz4n1v3csn1572phdav6dlpap35";
+       version = "0.2.1.3";
+       sha256 = "1sd36j3f7s8dlz2g6w1yir19yys4pn28arw4nlpknpm7dzm6vs1g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -193035,11 +194461,14 @@ self: {
      }) {};
 
   "stm-chans" = callPackage
-    ({ mkDerivation, base, stm }:
+    ({ mkDerivation, base, Cabal, stm }:
      mkDerivation {
        pname = "stm-chans";
        version = "3.0.0.4";
        sha256 = "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13";
+       revision = "1";
+       editedCabalFile = "0v9axxcfszqdmf3dhjxy34ybh22x3r5c48mdnbvjh5i5lp7g7vp2";
+       setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base stm ];
        homepage = "http://code.haskell.org/~wren/";
        description = "Additional types of channels for STM";
@@ -193677,15 +195106,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "stratosphere_0_17_0" = callPackage
+  "stratosphere_0_18_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , hashable, hspec, hspec-discover, lens, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.17.0";
-       sha256 = "1824fgv3jm25wa3sk53v7j76jpq8kqh9fm3jfpp8hlzwnb57zni9";
+       version = "0.18.0";
+       sha256 = "0av7ys8ysmcx51qzf9lw6pg8bn6jixm440ahds56ayxam57q4ix5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -193895,6 +195324,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "streaming_0_2_1_0" = callPackage
+    ({ mkDerivation, base, containers, ghc-prim, mmorph, mtl
+     , semigroups, transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "streaming";
+       version = "0.2.1.0";
+       sha256 = "0xah2cn12dxqc54wa5yxx0g0b9n0xy0czc0c32awql63qhw5w7g1";
+       libraryHaskellDepends = [
+         base containers ghc-prim mmorph mtl semigroups transformers
+         transformers-base
+       ];
+       homepage = "https://github.com/haskell-streaming/streaming";
+       description = "an elementary streaming prelude and general stream type";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "streaming-binary" = callPackage
     ({ mkDerivation, base, binary, bytestring, hspec, streaming
      , streaming-bytestring
@@ -193983,6 +195430,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "streaming-commons_0_2_0_0" = callPackage
+    ({ mkDerivation, array, async, base, bytestring, deepseq, directory
+     , gauge, hspec, network, process, QuickCheck, random, stm, text
+     , transformers, unix, zlib
+     }:
+     mkDerivation {
+       pname = "streaming-commons";
+       version = "0.2.0.0";
+       sha256 = "0pyfibrz30azq22zq7zl4wvbl0mm9wrqw1047p437h950d3biqpl";
+       libraryHaskellDepends = [
+         array async base bytestring directory network process random stm
+         text transformers unix zlib
+       ];
+       testHaskellDepends = [
+         array async base bytestring deepseq hspec network QuickCheck text
+         unix zlib
+       ];
+       benchmarkHaskellDepends = [ base bytestring deepseq gauge text ];
+       homepage = "https://github.com/fpco/streaming-commons";
+       description = "Common lower-level functions needed by various streaming data libraries";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "streaming-concurrency" = callPackage
     ({ mkDerivation, base, exceptions, hspec, lifted-async
      , monad-control, QuickCheck, quickcheck-instances, stm, streaming
@@ -194085,20 +195556,25 @@ self: {
      }) {};
 
   "streaming-pcap" = callPackage
-    ({ mkDerivation, base, bytestring, pcap, streaming, tasty
-     , tasty-hunit
+    ({ mkDerivation, attoparsec, base, bytestring, pcap, streaming
+     , streaming-bytestring, streaming-utils, tasty, tasty-hunit
      }:
      mkDerivation {
        pname = "streaming-pcap";
-       version = "1.0.0";
-       sha256 = "0xf7a9jpyhypfkjby2mqjv6fc4dhsl420q482nppdw7k65nsi85x";
-       libraryHaskellDepends = [ base bytestring pcap streaming ];
+       version = "1.1.0";
+       sha256 = "1pkw864pj8vb5fmcg69rahq6a0bc1fb1ql8vb9lrh34z1fyx46v3";
+       libraryHaskellDepends = [
+         attoparsec base bytestring pcap streaming streaming-bytestring
+         streaming-utils
+       ];
        testHaskellDepends = [
-         base bytestring pcap streaming tasty tasty-hunit
+         attoparsec base bytestring pcap streaming streaming-bytestring
+         streaming-utils tasty tasty-hunit
        ];
        homepage = "https://github.com/fosskers/streaming-pcap";
        description = "Stream packets via libpcap";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "streaming-png" = callPackage
@@ -194596,12 +196072,15 @@ self: {
      }) {};
 
   "string-qq" = callPackage
-    ({ mkDerivation, base, template-haskell }:
+    ({ mkDerivation, base, Cabal, process, template-haskell }:
      mkDerivation {
        pname = "string-qq";
        version = "0.0.2";
        sha256 = "0662m3i5xrdrr95w829bszkhp88mj9iy1zya54vk2sl5hz9wlmwp";
+       revision = "1";
+       editedCabalFile = "1flc6mr1nnv8mx69cy1ilwk5gxsidcns82vjdg8dcs8z5axg95kp";
        enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal process ];
        libraryHaskellDepends = [ base template-haskell ];
        description = "QuasiQuoter for non-interpolated strings, texts and bytestrings";
        license = stdenv.lib.licenses.publicDomain;
@@ -195050,6 +196529,8 @@ self: {
        pname = "structs";
        version = "0.1.1";
        sha256 = "0hdajhvd6i81dchdyd42fa17pm53jd7g3irqjfardbbmjx0sqq6z";
+       revision = "1";
+       editedCabalFile = "16ws2j3bhwawf6z1ipraiz73yvg65dg5l7hvj1lgbrqvn5lqizj3";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base deepseq ghc-prim primitive template-haskell
@@ -195280,26 +196761,26 @@ self: {
      }) {};
 
   "stylish-cabal" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, base, Cabal, containers, deepseq
-     , hlint, hspec, hspec-core, hspec-expectations-pretty-diff
-     , optparse-applicative, split
+    ({ mkDerivation, ansi-wl-pprint, base, base-compat, bytestring
+     , Cabal, containers, data-default, deepseq, haddock-library, hspec
+     , hspec-core, microlens, microlens-th, mtl, optparse-applicative
+     , split, template-haskell, utf8-string
      }:
      mkDerivation {
        pname = "stylish-cabal";
-       version = "0.2.0.0";
-       sha256 = "1ldnr0bpl0iaflng2715j02wfk8ksigzms15v7118860wyw2mvyi";
+       version = "0.4.0.0";
+       sha256 = "1357yrnzyc7rhd98dz33m84yckzs2djrlv8dmh5a2p97s31gcp03";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         ansi-wl-pprint base Cabal deepseq split
+         ansi-wl-pprint base base-compat Cabal containers data-default
+         deepseq haddock-library hspec hspec-core microlens microlens-th mtl
+         split template-haskell utf8-string
        ];
        executableHaskellDepends = [
-         ansi-wl-pprint base optparse-applicative
-       ];
-       testHaskellDepends = [
-         ansi-wl-pprint base Cabal containers hlint hspec hspec-core
-         hspec-expectations-pretty-diff
+         base base-compat bytestring optparse-applicative
        ];
+       testHaskellDepends = [ base base-compat bytestring hspec ];
        description = "Format Cabal files";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -196086,6 +197567,33 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "sv" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, attoparsec, base, bifunctors
+     , bytestring, charset, containers, contravariant, deepseq, hedgehog
+     , lens, mtl, parsec, parsers, profunctors, readable, semigroupoids
+     , semigroups, tasty, tasty-hedgehog, tasty-hunit, text
+     , transformers, trifecta, utf8-string, validation, vector, void
+     }:
+     mkDerivation {
+       pname = "sv";
+       version = "0.1";
+       sha256 = "0rd4jf4qqfc66xxddvaa37fjmpmmjzb7n928gclds0xibzm9ls7s";
+       libraryHaskellDepends = [
+         ansi-wl-pprint attoparsec base bifunctors bytestring charset
+         containers contravariant deepseq lens mtl parsec parsers
+         profunctors readable semigroupoids semigroups text transformers
+         trifecta utf8-string validation vector void
+       ];
+       testHaskellDepends = [
+         ansi-wl-pprint base bytestring contravariant hedgehog lens parsers
+         semigroupoids semigroups tasty tasty-hedgehog tasty-hunit text
+         trifecta utf8-string validation vector
+       ];
+       homepage = "https://github.com/qfpl/sv";
+       description = "Encode and decode separated values (CSV, PSV, ...)";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "svg-builder" = callPackage
     ({ mkDerivation, base, blaze-builder, bytestring, hashable, text
      , unordered-containers
@@ -196171,7 +197679,7 @@ self: {
        homepage = "http://projects.haskell.org/gtk2hs/";
        description = "Binding to the libsvg-cairo library";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) librsvg;};
+     }) {inherit (pkgs.gnome3) librsvg;};
 
   "svgutils" = callPackage
     ({ mkDerivation, base, filepath, xml }:
@@ -196455,6 +197963,33 @@ self: {
        license = "LGPL";
      }) {};
 
+  "swish_0_9_2_0" = callPackage
+    ({ mkDerivation, base, containers, directory, filepath, hashable
+     , HUnit, intern, mtl, network-uri, old-locale, polyparse
+     , semigroups, test-framework, test-framework-hunit, text, time
+     }:
+     mkDerivation {
+       pname = "swish";
+       version = "0.9.2.0";
+       sha256 = "0lgd71qa4fs9zzrapi0mkgsdlip5kxjkhz1v1xj6ifaaq8f2f8jp";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base containers directory filepath hashable intern mtl network-uri
+         old-locale polyparse semigroups text time
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base containers hashable HUnit network-uri old-locale semigroups
+         test-framework test-framework-hunit text time
+       ];
+       homepage = "https://bitbucket.org/doug_burke/swish/wiki/Home";
+       description = "A semantic web toolkit";
+       license = "LGPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "sws" = callPackage
     ({ mkDerivation, base, bytestring, cryptonite, directory, filepath
      , hourglass, http-types, network, resourcet, transformers, wai
@@ -197372,6 +198907,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "system-error" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "system-error";
+       version = "1.0.0";
+       sha256 = "1hig7m7arrj6hmgix8abkidy6wf1a4a4y72k81csq90kv5jhynxk";
+       libraryHaskellDepends = [ base ];
+       homepage = "https://github.com/heroin-moose/system-error";
+       description = "Error reporting functions";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "system-extra" = callPackage
     ({ mkDerivation, base, bytestring, directory, hspec, process
      , QuickCheck
@@ -198299,23 +199846,6 @@ self: {
      }:
      mkDerivation {
        pname = "tagsoup";
-       version = "0.14.3";
-       sha256 = "00j2rm2sx0syn16kg2402fz4k8yqfl9knmi367jsiycds1q9zzf9";
-       libraryHaskellDepends = [ base bytestring containers text ];
-       testHaskellDepends = [
-         base bytestring deepseq directory process QuickCheck time
-       ];
-       homepage = "https://github.com/ndmitchell/tagsoup#readme";
-       description = "Parsing and extracting information from (possibly malformed) HTML/XML documents";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "tagsoup_0_14_6" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, directory
-     , process, QuickCheck, text, time
-     }:
-     mkDerivation {
-       pname = "tagsoup";
        version = "0.14.6";
        sha256 = "1yv3dbyb0i1yqm796jgc4jj5kxkla1sxb3b2klw5ks182kdx8kjb";
        libraryHaskellDepends = [ base bytestring containers text ];
@@ -198325,7 +199855,6 @@ self: {
        homepage = "https://github.com/ndmitchell/tagsoup#readme";
        description = "Parsing and extracting information from (possibly malformed) HTML/XML documents";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tagsoup-ht" = callPackage
@@ -198704,6 +200233,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "tar_0_5_1_0" = callPackage
+    ({ mkDerivation, array, base, bytestring, bytestring-handle
+     , containers, criterion, deepseq, directory, filepath, QuickCheck
+     , tasty, tasty-quickcheck, time
+     }:
+     mkDerivation {
+       pname = "tar";
+       version = "0.5.1.0";
+       sha256 = "0s2brvaxg5fki2jdkccmnpssiy6a3wjh24p6a3dkkdvjcixnk7f8";
+       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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tar-conduit" = callPackage
     ({ mkDerivation, base, bytestring, conduit-combinators }:
      mkDerivation {
@@ -198914,14 +200468,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "tasty_1_0_1" = callPackage
+  "tasty_1_0_1_1" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, clock, containers, mtl
      , optparse-applicative, stm, tagged, unbounded-delays, unix
      }:
      mkDerivation {
        pname = "tasty";
-       version = "1.0.1";
-       sha256 = "1jf53dd7ilwqfj27ndx2dgs76a7s0saakqxm9cr6bb42a0jnzqij";
+       version = "1.0.1.1";
+       sha256 = "1czfvgm3wb9dlxccr7h49929m6rag7rc6q5hlj9yw0l4lm0hv4hs";
        libraryHaskellDepends = [
          ansi-terminal async base clock containers mtl optparse-applicative
          stm tagged unbounded-delays unix
@@ -198984,12 +200538,12 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "tasty-dejafu_1_0_1_1" = callPackage
+  "tasty-dejafu_1_1_0_1" = callPackage
     ({ mkDerivation, base, dejafu, random, tagged, tasty }:
      mkDerivation {
        pname = "tasty-dejafu";
-       version = "1.0.1.1";
-       sha256 = "0khdm4v22n86vz3qgv9wi6yfd3yi61br089sxffhfwvr9g3fxjlf";
+       version = "1.1.0.1";
+       sha256 = "0yqaplhwdyfg2wddz0yhzy6c7akpkhi0nkm62171wxfapzpjbbrk";
        libraryHaskellDepends = [ base dejafu random tagged tasty ];
        homepage = "https://github.com/barrucadu/dejafu";
        description = "Deja Fu support for the Tasty test framework";
@@ -199004,8 +200558,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-discover";
-       version = "4.1.3";
-       sha256 = "13w177l9ghfb9dwjwp4y1j45y2acv2ga7nw38jcqgj6a81ai9m5c";
+       version = "4.1.5";
+       sha256 = "1v2g0jyfrcv04klxicp1z6p478ppq5l3szkx4f4hjqnim6kg8pgh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -199024,15 +200578,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "tasty-discover_4_1_5" = callPackage
+  "tasty-discover_4_2_0" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, Glob
      , hedgehog, tasty, tasty-hedgehog, tasty-hspec, tasty-hunit
      , tasty-quickcheck, tasty-smallcheck
      }:
      mkDerivation {
        pname = "tasty-discover";
-       version = "4.1.5";
-       sha256 = "1v2g0jyfrcv04klxicp1z6p478ppq5l3szkx4f4hjqnim6kg8pgh";
+       version = "4.2.0";
+       sha256 = "19qs3sg28anjjajwvkd79xsh5iip59w6bwphc88sy7gyybq6q586";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -199066,6 +200620,19 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty-expected-failure_0_11_1" = callPackage
+    ({ mkDerivation, base, tagged, tasty }:
+     mkDerivation {
+       pname = "tasty-expected-failure";
+       version = "0.11.1";
+       sha256 = "1hr9fgypxz8f9hanxnq6r0gbfdfglcx0c3iqyjximy9sn6nsvndy";
+       libraryHaskellDepends = [ base tagged tasty ];
+       homepage = "http://github.com/nomeata/tasty-expected-failure";
+       description = "Mark tasty tests as failure expected";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tasty-fail-fast" = callPackage
     ({ mkDerivation, base, containers, directory, stm, tagged, tasty
      , tasty-golden, tasty-hunit, tasty-tap
@@ -200020,12 +201587,12 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "template-haskell_2_12_0_0" = callPackage
+  "template-haskell_2_13_0_0" = callPackage
     ({ mkDerivation, base, ghc-boot-th, pretty }:
      mkDerivation {
        pname = "template-haskell";
-       version = "2.12.0.0";
-       sha256 = "0lbmqagknkdrj9mwqdd5p12ay78wk0g509g75a243jrbm46i6dar";
+       version = "2.13.0.0";
+       sha256 = "0j61d0xnlsywgn33k72a6dmnp9i93zjn0gba1fhxs9qwdb1xcfk3";
        libraryHaskellDepends = [ base ghc-boot-th pretty ];
        description = "Support library for Template Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -201784,6 +203351,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "text-latin1_0_3_1" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, data-checked
+     , hashable, semigroups, text
+     }:
+     mkDerivation {
+       pname = "text-latin1";
+       version = "0.3.1";
+       sha256 = "1wxbv6m567n3330baw2k0xxd50nhn2k6w3lgmpk6zq7x1jp84x3c";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive data-checked hashable semigroups
+         text
+       ];
+       homepage = "https://github.com/mvv/text-latin1";
+       description = "Latin-1 (including ASCII) utility functions";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "text-ldap" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers, dlist
      , memory, QuickCheck, quickcheck-simple, random, transformers
@@ -201900,8 +203485,8 @@ self: {
        pname = "text-metrics";
        version = "0.3.0";
        sha256 = "18mzxwkdvjp31r720ai9bnxr638qq8x3a2v408bz0d8f0rsayx1q";
-       revision = "1";
-       editedCabalFile = "0jl0vlx9y0n7x4j5zspx6zmbbnmlf5p2bg6v9k2afdfc02fmhasm";
+       revision = "2";
+       editedCabalFile = "1371qwwmq8w4p6zg0z43qnrpf9yb8yadnw97ka56mx4jlagrdm8n";
        libraryHaskellDepends = [ base containers text vector ];
        testHaskellDepends = [ base hspec QuickCheck text ];
        benchmarkHaskellDepends = [ base criterion deepseq text weigh ];
@@ -202093,6 +203678,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "text-short_0_1_2" = callPackage
+    ({ mkDerivation, base, binary, bytestring, deepseq, ghc-prim
+     , hashable, quickcheck-instances, tasty, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "text-short";
+       version = "0.1.2";
+       sha256 = "0rqiwgjkgyfy8596swl0s0x2jqk6ddh2h02qxa32az2cs5kviwmk";
+       libraryHaskellDepends = [
+         base binary bytestring deepseq ghc-prim hashable text
+       ];
+       testHaskellDepends = [
+         base binary quickcheck-instances tasty tasty-hunit tasty-quickcheck
+         text
+       ];
+       description = "Memory-efficient representation of Unicode text strings";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "text-show" = callPackage
     ({ mkDerivation, array, base, base-compat, base-orphans, bifunctors
      , bytestring, bytestring-builder, containers, contravariant
@@ -202106,8 +203712,8 @@ self: {
        pname = "text-show";
        version = "3.7.1";
        sha256 = "0gbf3cpxz92v4jphmwvz93il7m38qkwirfnk5453517k2s84s899";
-       revision = "1";
-       editedCabalFile = "1f30i7b45hq3m1hb7b6m8kc1fwz4i697m17wwiabjsyzbx4qiv98";
+       revision = "3";
+       editedCabalFile = "1bc2ja8yciymck9bhydwhxqvdscdvj584k25bvm6hgjqy847bz2c";
        libraryHaskellDepends = [
          array base base-compat bifunctors bytestring bytestring-builder
          containers contravariant generic-deriving ghc-boot-th ghc-prim
@@ -202133,6 +203739,45 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "text-show_3_7_2" = callPackage
+    ({ mkDerivation, array, base, base-compat, base-orphans, bifunctors
+     , bytestring, bytestring-builder, containers, contravariant
+     , criterion, deepseq, deriving-compat, generic-deriving
+     , ghc-boot-th, ghc-prim, hspec, hspec-discover, integer-gmp, nats
+     , QuickCheck, quickcheck-instances, semigroups, tagged
+     , template-haskell, text, th-abstraction, th-lift, transformers
+     , transformers-compat, void
+     }:
+     mkDerivation {
+       pname = "text-show";
+       version = "3.7.2";
+       sha256 = "0gb7y83w81zvfi7szb62d17w0qi7ca7ybri81adqk141c3cxc83s";
+       libraryHaskellDepends = [
+         array base base-compat bifunctors bytestring bytestring-builder
+         containers contravariant generic-deriving ghc-boot-th ghc-prim
+         integer-gmp nats semigroups tagged template-haskell text
+         th-abstraction th-lift transformers transformers-compat void
+       ];
+       testHaskellDepends = [
+         array base base-compat base-orphans bifunctors bytestring
+         bytestring-builder containers contravariant deriving-compat
+         generic-deriving ghc-boot-th ghc-prim hspec integer-gmp nats
+         QuickCheck quickcheck-instances semigroups tagged template-haskell
+         text th-lift transformers transformers-compat void
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         array base base-compat bifunctors bytestring bytestring-builder
+         containers contravariant criterion deepseq generic-deriving
+         ghc-boot-th ghc-prim integer-gmp nats semigroups tagged
+         template-haskell text th-lift transformers transformers-compat void
+       ];
+       homepage = "https://github.com/RyanGlScott/text-show";
+       description = "Efficient conversion of values into Text";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "text-show-instances" = callPackage
     ({ mkDerivation, base, base-compat, bifunctors, binary, bytestring
      , containers, directory, generic-deriving, ghc-boot-th, ghc-prim
@@ -203136,8 +204781,8 @@ self: {
        pname = "these";
        version = "0.7.4";
        sha256 = "0jl8ippnsy5zmy52cvpn252hm2g7xqp1zb1xcrbgr00pmdxpvwyw";
-       revision = "5";
-       editedCabalFile = "1jx0p6z91nz5dagw4bcvb7lr9a15ahjnx0nhyv8cmd8p056m5515";
+       revision = "6";
+       editedCabalFile = "16dglq7aj28ag4h11m4ym8lm3jjq5kx3y0bycbhqm4q9xpnwfvfb";
        libraryHaskellDepends = [
          aeson base bifunctors binary containers data-default-class deepseq
          hashable keys mtl profunctors QuickCheck semigroupoids transformers
@@ -203417,31 +205062,6 @@ self: {
      }:
      mkDerivation {
        pname = "threepenny-gui";
-       version = "0.8.2.1";
-       sha256 = "0ky9nsrihiqbg1sizz7yhrif672l1gr5p4nqn9lxcchlf4d2hyl2";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson async base bytestring containers data-default deepseq
-         exceptions file-embed filepath hashable network-uri safe snap-core
-         snap-server stm template-haskell text transformers
-         unordered-containers vault vector websockets websockets-snap
-       ];
-       homepage = "http://wiki.haskell.org/Threepenny-gui";
-       description = "GUI framework that uses the web browser as a display";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "threepenny-gui_0_8_2_2" = callPackage
-    ({ mkDerivation, aeson, async, base, bytestring, containers
-     , data-default, deepseq, exceptions, file-embed, filepath, hashable
-     , network-uri, safe, snap-core, snap-server, stm, template-haskell
-     , text, transformers, unordered-containers, vault, vector
-     , websockets, websockets-snap
-     }:
-     mkDerivation {
-       pname = "threepenny-gui";
        version = "0.8.2.2";
        sha256 = "13s6n7pxbmr0j2g5xiqpacfnshqg0jq91y161rmmp3wix4bav6am";
        isLibrary = true;
@@ -203456,7 +205076,6 @@ self: {
        homepage = "http://wiki.haskell.org/Threepenny-gui";
        description = "GUI framework that uses the web browser as a display";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "threepenny-gui-contextmenu" = callPackage
@@ -205107,8 +206726,8 @@ self: {
      }:
      mkDerivation {
        pname = "tls";
-       version = "1.4.0";
-       sha256 = "1fhpyimmvhwfv6k4k00rlnc5lmk9bw3sckmfsdkv20q4cjb0hac3";
+       version = "1.4.1";
+       sha256 = "1y083724mym28n6xfaz7pcc7zqxdhjpaxpbvzxfbs25qq2px3smv";
        libraryHaskellDepends = [
          asn1-encoding asn1-types async base bytestring cereal cryptonite
          data-default-class memory mtl network transformers x509 x509-store
@@ -205811,6 +207430,26 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {toxcore = null;};
 
+  "toxiproxy-haskell" = callPackage
+    ({ mkDerivation, aeson, base, containers, hspec, http-client
+     , process, servant, servant-client, silently, text, time
+     }:
+     mkDerivation {
+       pname = "toxiproxy-haskell";
+       version = "0.1.0.0";
+       sha256 = "19ls808f24in0c8swgv7iqwja9f126zvcc0a7ix615i0a9hp3ks6";
+       libraryHaskellDepends = [
+         aeson base containers http-client servant servant-client text
+       ];
+       testHaskellDepends = [
+         base containers hspec http-client process servant servant-client
+         silently time
+       ];
+       homepage = "https://github.com/jpittis/toxiproxy-haskell#readme";
+       description = "Client library for Toxiproxy: a TCP failure testing proxy";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "toysolver" = callPackage
     ({ mkDerivation, array, base, bytestring, bytestring-builder, clock
      , containers, criterion, data-default, data-default-class
@@ -207729,7 +209368,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "turtle_1_5_3" = callPackage
+  "turtle_1_5_4" = callPackage
     ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
      , containers, criterion, directory, doctest, exceptions, foldl
      , hostname, managed, optional-args, optparse-applicative, process
@@ -207738,8 +209377,8 @@ self: {
      }:
      mkDerivation {
        pname = "turtle";
-       version = "1.5.3";
-       sha256 = "0pxhi3y051y8yll8bc4dv7sz2wbhf70lr8saxsassjw71hrhgs3s";
+       version = "1.5.4";
+       sha256 = "17ik8k5mp9ipkai4fn57c93ajf9ydnxcb7r8xm8pq6xaza5qh5di";
        libraryHaskellDepends = [
          ansi-wl-pprint async base bytestring clock containers directory
          exceptions foldl hostname managed optional-args
@@ -208711,6 +210350,17 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "type-interpreter" = callPackage
+    ({ mkDerivation, base, containers, template-haskell }:
+     mkDerivation {
+       pname = "type-interpreter";
+       version = "0.0.1";
+       sha256 = "0i16636dncb3k3564m5gjjgbpcvmlwnjg12wq4ndhcy5rwjp7w6b";
+       libraryHaskellDepends = [ base containers template-haskell ];
+       description = "Interpreter for Template Haskell types";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "type-iso" = callPackage
     ({ mkDerivation, base, data-default, nats, numericpeano, text }:
      mkDerivation {
@@ -209660,8 +211310,8 @@ self: {
      }:
      mkDerivation {
        pname = "udbus";
-       version = "0.2.1";
-       sha256 = "0a7kksh99nll91q41z4xgrcwc8pnfm0p71bxw6yymcd7yb0v09fk";
+       version = "0.2.3";
+       sha256 = "1ifl280n2ib26j4h7h46av6k7ms0j1n2wy4shbqk5xli5bbj3k9n";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -210030,6 +211680,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "unbound-generics_0_3_2" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, containers, contravariant
+     , criterion, deepseq, exceptions, mtl, profunctors, QuickCheck
+     , tasty, tasty-hunit, tasty-quickcheck, template-haskell
+     , transformers, transformers-compat
+     }:
+     mkDerivation {
+       pname = "unbound-generics";
+       version = "0.3.2";
+       sha256 = "1g691ijcn7yxmn7w0zmd4h9w8nr578jifg3yhlyckka2jm97f20g";
+       libraryHaskellDepends = [
+         ansi-wl-pprint base containers contravariant deepseq exceptions mtl
+         profunctors template-haskell transformers transformers-compat
+       ];
+       testHaskellDepends = [
+         base mtl QuickCheck tasty tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ base criterion deepseq ];
+       homepage = "http://github.com/lambdageek/unbound-generics";
+       description = "Support for programming with names and binders using GHC Generics";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "unbounded-delays" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -211012,6 +212686,8 @@ self: {
        pname = "unix";
        version = "2.7.2.2";
        sha256 = "1b6ygkasn5bvmdci8g3zjkahl34kfqhf5jrayibvnrcdnaqlxpcq";
+       revision = "1";
+       editedCabalFile = "0cag1vm2pmzgy0v1j27lhp37iipck06n6gjlphpl26p5xw3gwd31";
        libraryHaskellDepends = [ base bytestring time ];
        homepage = "https://github.com/haskell/unix";
        description = "POSIX functionality";
@@ -211140,22 +212816,6 @@ self: {
      }:
      mkDerivation {
        pname = "unix-time";
-       version = "0.3.7";
-       sha256 = "1qdlc9raih8s0m3x8x3n7q3ngh4faw2alv9l78sp6gnx648k0c8i";
-       libraryHaskellDepends = [ base binary bytestring old-time ];
-       testHaskellDepends = [
-         base bytestring doctest hspec old-locale old-time QuickCheck time
-       ];
-       description = "Unix time parser/formatter and utilities";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "unix-time_0_3_8" = callPackage
-    ({ mkDerivation, base, binary, bytestring, doctest, hspec
-     , old-locale, old-time, QuickCheck, time
-     }:
-     mkDerivation {
-       pname = "unix-time";
        version = "0.3.8";
        sha256 = "051slgpid5cxiaw203ky0ql3823h28fcjs08axkzd4265wrvv8fw";
        libraryHaskellDepends = [ base binary bytestring old-time ];
@@ -211164,7 +212824,6 @@ self: {
        ];
        description = "Unix time parser/formatter and utilities";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "unjson" = callPackage
@@ -211174,8 +212833,8 @@ self: {
      }:
      mkDerivation {
        pname = "unjson";
-       version = "0.15.0.0";
-       sha256 = "0ib7y7a4ham90hzy5anrhry7c1w8c847v39ygjj8556pq6j47nyg";
+       version = "0.15.1.0";
+       sha256 = "1k61lak22snr7fimpr7pjri33rg0gm1hhfn253bwlz3pvpn85vmp";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring containers free hashable invariant
          pretty primitive scientific text time unordered-containers vector
@@ -211291,6 +212950,8 @@ self: {
        pname = "unordered-containers";
        version = "0.2.8.0";
        sha256 = "1a7flszhhgyjn0nm9w7cm26jbf6vyx9ij1iij4sl11pjkwsqi8d4";
+       revision = "1";
+       editedCabalFile = "0bllj6rg1ab468ilxzhnafjx2qzqx1bshlf207rk9yhszw801awj";
        libraryHaskellDepends = [ base deepseq hashable ];
        testHaskellDepends = [
          base ChasingBottoms containers hashable HUnit QuickCheck
@@ -211743,8 +213404,8 @@ self: {
      }:
      mkDerivation {
        pname = "uri-bytestring";
-       version = "0.3.1.0";
-       sha256 = "04qjv1sgyrdg538290p9hqnvyxnahvr5cjwl8vm1rn9j0fv3ymq9";
+       version = "0.3.1.1";
+       sha256 = "1ysmwf2zqv6kky2656nk6i2azpngzl0rkgy5fab7ja3xhx998y3z";
        libraryHaskellDepends = [
          attoparsec base blaze-builder bytestring containers fail
          template-haskell th-lift-instances
@@ -211763,49 +213424,33 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "uri-bytestring_0_3_1_1" = callPackage
-    ({ mkDerivation, attoparsec, base, base-compat, blaze-builder
-     , bytestring, containers, criterion, deepseq, deepseq-generics
-     , fail, generics-sop, HUnit, network-uri, QuickCheck
-     , quickcheck-instances, semigroups, tasty, tasty-hunit
-     , tasty-quickcheck, template-haskell, th-lift-instances
-     , transformers
-     }:
+  "uri-bytestring-aeson" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, text, uri-bytestring }:
      mkDerivation {
-       pname = "uri-bytestring";
-       version = "0.3.1.1";
-       sha256 = "1ysmwf2zqv6kky2656nk6i2azpngzl0rkgy5fab7ja3xhx998y3z";
+       pname = "uri-bytestring-aeson";
+       version = "0.1.0.4";
+       sha256 = "1nm9d3xq56rrjggky28q72n8afk5nh6m1bbi6j5z538qwccyg348";
        libraryHaskellDepends = [
-         attoparsec base blaze-builder bytestring containers fail
-         template-haskell th-lift-instances
-       ];
-       testHaskellDepends = [
-         attoparsec base base-compat blaze-builder bytestring containers
-         generics-sop HUnit QuickCheck quickcheck-instances semigroups tasty
-         tasty-hunit tasty-quickcheck transformers
-       ];
-       benchmarkHaskellDepends = [
-         base blaze-builder bytestring criterion deepseq deepseq-generics
-         network-uri
+         aeson base bytestring text uri-bytestring
        ];
-       homepage = "https://github.com/Soostone/uri-bytestring";
-       description = "Haskell URI parsing as ByteStrings";
+       homepage = "https://github.com/reactormonk/uri-bytestring-aeson";
+       description = "Aeson instances for URI Bytestring";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "uri-bytestring-aeson" = callPackage
+  "uri-bytestring-aeson_0_1_0_5" = callPackage
     ({ mkDerivation, aeson, base, bytestring, text, uri-bytestring }:
      mkDerivation {
        pname = "uri-bytestring-aeson";
-       version = "0.1.0.4";
-       sha256 = "1nm9d3xq56rrjggky28q72n8afk5nh6m1bbi6j5z538qwccyg348";
+       version = "0.1.0.5";
+       sha256 = "1rcy3afmm1faapnw5y4pbxn4m0h2bp2pa51g3r8lh6gffk1xi9x3";
        libraryHaskellDepends = [
          aeson base bytestring text uri-bytestring
        ];
        homepage = "https://github.com/reactormonk/uri-bytestring-aeson";
        description = "Aeson instances for URI Bytestring";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "uri-conduit" = callPackage
@@ -212067,6 +213712,26 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "urlpath_8_0_1" = callPackage
+    ({ mkDerivation, attoparsec-uri, base, exceptions, mmorph
+     , monad-control, monad-control-aligned, monad-logger, mtl
+     , path-extra, resourcet, split, strict, text, transformers
+     , transformers-base, vector
+     }:
+     mkDerivation {
+       pname = "urlpath";
+       version = "8.0.1";
+       sha256 = "04w5ivbvfbh60jsfdsmznvm5cxracslmr1hyqhf0qdva29vcxj4z";
+       libraryHaskellDepends = [
+         attoparsec-uri base exceptions mmorph monad-control
+         monad-control-aligned monad-logger mtl path-extra resourcet split
+         strict text transformers transformers-base vector
+       ];
+       description = "Painfully simple URL deployment";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "urn" = callPackage
     ({ mkDerivation, base, hspec, parsec }:
      mkDerivation {
@@ -213778,6 +215443,8 @@ self: {
        pname = "vector-binary-instances";
        version = "0.2.4";
        sha256 = "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb";
+       revision = "1";
+       editedCabalFile = "196frl4akhfk7xf1nxzn8lmq99dxhzhsimanswn9yy7ym8zhki4i";
        libraryHaskellDepends = [ base binary vector ];
        testHaskellDepends = [ base binary tasty tasty-quickcheck vector ];
        benchmarkHaskellDepends = [
@@ -214179,6 +215846,8 @@ self: {
        pname = "vectortiles";
        version = "1.3.0";
        sha256 = "1hvnk2b3g6dm58az7wyl8bcq4h8s0fkz0v0pig9gpad5smkmgjk0";
+       revision = "1";
+       editedCabalFile = "04h85s069i8sgh382h0j4vx6zlx15yi3q7xmb7pnq8vhfamszsaq";
        libraryHaskellDepends = [
          base bytestring containers deepseq hashable protocol-buffers
          protocol-buffers-descriptor text transformers unordered-containers
@@ -214326,8 +215995,8 @@ self: {
      }:
      mkDerivation {
        pname = "vgrep";
-       version = "0.2.1.0";
-       sha256 = "0k74bpi995wqxmin6h7bx3yjiwh403c708yjp19igbw1971irxjr";
+       version = "0.2.2.0";
+       sha256 = "11kcf59c1raqj4mwwjhr9435sqilgxgmryq1kimgra2j64ldyl3k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -214421,6 +216090,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "viewprof_0_0_0_14" = callPackage
+    ({ mkDerivation, base, brick, containers, directory, ghc-prof, lens
+     , scientific, text, vector, vector-algorithms, vty
+     }:
+     mkDerivation {
+       pname = "viewprof";
+       version = "0.0.0.14";
+       sha256 = "19x112bpc7fw3dqfpgp0bi6cw01vr8csfyqixi68128ij3b6csm0";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base brick containers directory ghc-prof lens scientific text
+         vector vector-algorithms vty
+       ];
+       homepage = "https://github.com/maoe/viewprof";
+       description = "Text-based interactive GHC .prof viewer";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "views" = callPackage
     ({ mkDerivation, base, mtl }:
      mkDerivation {
@@ -214787,18 +216476,18 @@ self: {
 
   "visualize-cbn" = callPackage
     ({ mkDerivation, ansi-terminal, base, blaze-html, blaze-markup
-     , containers, data-default, mtl, optparse-applicative, parsec
-     , template-haskell
+     , containers, data-default, optparse-applicative, parsec
+     , template-haskell, text
      }:
      mkDerivation {
        pname = "visualize-cbn";
-       version = "0.1.0.0";
-       sha256 = "146rqrsmvclhykx6l2pljjl97340zx89zknwisrav9rz88rcjrx2";
+       version = "0.1.0.1";
+       sha256 = "0aj8s3gn2qha409n1sf9a5psh5mvb2qcmqax62c2miw5i79rh7ap";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          ansi-terminal base blaze-html blaze-markup containers data-default
-         mtl optparse-applicative parsec template-haskell
+         optparse-applicative parsec template-haskell text
        ];
        description = "Visualize CBN reduction";
        license = stdenv.lib.licenses.bsd3;
@@ -215022,6 +216711,8 @@ self: {
        pname = "vty";
        version = "5.19.2";
        sha256 = "158afcgzcwq7ybjw7jk28q799xzpns47m1l4sivc3wrrfklqh7xz";
+       revision = "1";
+       editedCabalFile = "16xg3m7rfg9rf2z9q0ns7f3gyi1acyw21d3bvr6fy4b9v1ngxsdq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -215057,6 +216748,8 @@ self: {
        pname = "vty";
        version = "5.20";
        sha256 = "0l9xlk4z8xlkd7qzhzkj4l0qb2gwl27mabr2hhkpz3yfv7z6j0a3";
+       revision = "1";
+       editedCabalFile = "01awxbjxls9v9jh7d7mic7lzmaabsx8g9lqks8fbrjixhka321fl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -215176,6 +216869,7 @@ self: {
        homepage = "https://github.com/achirkin/genvulkan#readme";
        description = "Low-level low-overhead vulkan api bindings";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {vulkan = null;};
 
   "wacom-daemon" = callPackage
@@ -217017,6 +218711,8 @@ self: {
        pname = "warp";
        version = "3.2.13";
        sha256 = "0964l8xcbdqnrz0mnk0b732n66i7q8grwzzax96mqbh15ps5nfcj";
+       revision = "1";
+       editedCabalFile = "0i8x4hv5j5l3lz2m0abxik05xq1lzcilw8mhw5f5paiar6csqmg7";
        libraryHaskellDepends = [
          array async auto-update base blaze-builder bytestring
          bytestring-builder case-insensitive containers ghc-prim hashable
@@ -217040,7 +218736,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "warp_3_2_17" = callPackage
+  "warp_3_2_18" = callPackage
     ({ mkDerivation, array, async, auto-update, base, blaze-builder
      , bytestring, case-insensitive, containers, directory, doctest
      , gauge, ghc-prim, hashable, hspec, http-client, http-date
@@ -217050,8 +218746,8 @@ self: {
      }:
      mkDerivation {
        pname = "warp";
-       version = "3.2.17";
-       sha256 = "1frdwc7icadizbwlp0b1gxq95h9a6ds9cdq9rzqqsn4yq2jcbirb";
+       version = "3.2.18";
+       sha256 = "0xlwbch06q9mjv36ki79z06n49na48326bawgw1vsz5afcyrlj34";
        libraryHaskellDepends = [
          array async auto-update base blaze-builder bytestring
          case-insensitive containers ghc-prim hashable http-date http-types
@@ -217471,6 +219167,7 @@ self: {
        testHaskellDepends = [ base bytestring HUnit network-uri text ];
        description = "Composable, reversible, efficient web routing based on invertible invariants and bijections";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "web-mongrel2" = callPackage
@@ -218244,6 +219941,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "websockets-simple_0_1_0" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, every, exceptions
+     , hspec, monad-control, profunctors, stm, tasty, tasty-hspec
+     , transformers, wai-transformers, websockets
+     }:
+     mkDerivation {
+       pname = "websockets-simple";
+       version = "0.1.0";
+       sha256 = "0jxqgnrmchn3sabyz0f2733cgvay0ksasc9qnil9kvj0z3n2h4zz";
+       libraryHaskellDepends = [
+         aeson async base bytestring every exceptions monad-control
+         profunctors stm transformers wai-transformers websockets
+       ];
+       testHaskellDepends = [
+         aeson async base bytestring every exceptions hspec monad-control
+         profunctors stm tasty tasty-hspec transformers wai-transformers
+         websockets
+       ];
+       homepage = "https://github.com/athanclark/websockets-simple#readme";
+       description = "Composable websockets clients";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "websockets-snap" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-builder, io-streams
      , mtl, snap-core, snap-server, websockets
@@ -218321,8 +220042,8 @@ self: {
      }:
      mkDerivation {
        pname = "weeder";
-       version = "1.0.1";
-       sha256 = "03dmyfpv5h6l1f5vag3h3v3bn6c1j3335k8rywknnliyglvb6acw";
+       version = "1.0.3";
+       sha256 = "14hmxg7p2mq3lh7ydmjk22xr95hd37q3c95d3k6rqi2jxhjs1gvp";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -219414,19 +221135,21 @@ self: {
      }:
      mkDerivation {
        pname = "wordchoice";
-       version = "0.1.2.4";
-       sha256 = "1y36bkzy7msl0dn0zfji8wh38bark4hn68znichwmashpbaymm3r";
+       version = "0.1.2.6";
+       sha256 = "16x595vv9fbq6j634a8wqnd1agmzbv09372sc99lq1a997crmq2w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base binary bytestring Chart Chart-diagrams composition-prelude
-         containers directory Glob lens optparse-applicative pandoc
-         system-filepath text transformers
+         containers directory Glob lens pandoc system-filepath text
+         transformers
+       ];
+       executableHaskellDepends = [
+         base binary bytestring containers directory lens
+         optparse-applicative text
        ];
-       executableHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        benchmarkHaskellDepends = [ base criterion pandoc text ];
-       homepage = "https://github.com/githubuser/wordchoice#readme";
        description = "Get word counts and distributions";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -220066,8 +221789,8 @@ self: {
      }:
      mkDerivation {
        pname = "ws";
-       version = "0.0.2";
-       sha256 = "1wl6ap3kv90fwi03dd7vi2qmih4irqj2lc25y8x4s2h9ks38qy9w";
+       version = "0.0.3";
+       sha256 = "01awmbs6dmf9crhp6vvwzh8pjqyjpgjgxzcy62nh52s959snwc9m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -220541,10 +222264,8 @@ self: {
      }:
      mkDerivation {
        pname = "x509";
-       version = "1.7.2";
-       sha256 = "0yyfw07bw73gkh93z653lnncc30wj3g3rf26cwxjpyxvwalia0yw";
-       revision = "1";
-       editedCabalFile = "07mphpmj4zk5mzhp5x50a7q6w134kgymf557dcgbp643cbkcmc66";
+       version = "1.7.3";
+       sha256 = "0mkk29g32fs70bqkikg83v45h9jig9c8aail3mrdqwxpkfa0yx21";
        libraryHaskellDepends = [
          asn1-encoding asn1-parse asn1-types base bytestring containers
          cryptonite hourglass memory mtl pem
@@ -220565,8 +222286,8 @@ self: {
      }:
      mkDerivation {
        pname = "x509-store";
-       version = "1.6.5";
-       sha256 = "1lg9gy0bmzjmlk4gfnzx2prfar1qha4hfjsw8yvjg33zm0fv3ahs";
+       version = "1.6.6";
+       sha256 = "0dbndqmnmyixxc7308nyq3zlkhz9dff4rbcw2a49c77rbicny9va";
        libraryHaskellDepends = [
          asn1-encoding asn1-types base bytestring containers cryptonite
          directory filepath mtl pem x509
@@ -220615,20 +222336,17 @@ self: {
      }) {};
 
   "x509-validation" = callPackage
-    ({ mkDerivation, asn1-encoding, asn1-types, base, byteable
-     , bytestring, containers, cryptonite, data-default-class, hourglass
-     , memory, mtl, pem, tasty, tasty-hunit, x509, x509-store
+    ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring
+     , containers, cryptonite, data-default-class, hourglass, memory
+     , mtl, pem, tasty, tasty-hunit, x509, x509-store
      }:
      mkDerivation {
        pname = "x509-validation";
-       version = "1.6.9";
-       sha256 = "005m5jxjz5cx3lriayv4a17xa19qc2qxw7kz2f9wvj7hgjnwww44";
-       revision = "1";
-       editedCabalFile = "02n9s0wizi4wivs6is4cyapqjjnbrx3zdk34q0cnlfsvbbvyhjax";
+       version = "1.6.10";
+       sha256 = "1ms51scawldgyfcim5a2qlgyn3rnrclyh205d6djaa1569vrs73n";
        libraryHaskellDepends = [
-         asn1-encoding asn1-types base byteable bytestring containers
-         cryptonite data-default-class hourglass memory mtl pem x509
-         x509-store
+         asn1-encoding asn1-types base bytestring containers cryptonite
+         data-default-class hourglass memory mtl pem x509 x509-store
        ];
        testHaskellDepends = [
          asn1-encoding asn1-types base bytestring cryptonite
@@ -220696,8 +222414,8 @@ self: {
     ({ mkDerivation, base, containers, mtl, pretty, xml }:
      mkDerivation {
        pname = "xcb-types";
-       version = "0.8.0";
-       sha256 = "02ym42r556ibzh7s937blgmkfpb6bqrgz100vwccyljwrwddzdbd";
+       version = "0.9.0";
+       sha256 = "14bxm6djq4571w313q0qj3v2mfrb2ji2cy0sgl5fh5bsbk2m5i3g";
        libraryHaskellDepends = [ base containers mtl pretty xml ];
        homepage = "http://community.haskell.org/~aslatter/code/xcb-types";
        description = "Parses XML files used by the XCB project";
@@ -220712,8 +222430,8 @@ self: {
      }:
      mkDerivation {
        pname = "xcffib";
-       version = "0.5.1";
-       sha256 = "13dpi3g53mj2la9n2igidcnb4376nqkv9z09nx0g2yq6hix7ng8x";
+       version = "0.6.0";
+       sha256 = "1cwwj68lfz51npkll4w024555rq9ra86xh4j9ksd1fqgadzf4rwn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -220999,12 +222717,12 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "xhtml_3000_2_2" = callPackage
+  "xhtml_3000_2_2_1" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "xhtml";
-       version = "3000.2.2";
-       sha256 = "0z34m5jfvjyzqjr81kk6mp2dyf0iay5zl8xlzwl3k5zdfl5hsz74";
+       version = "3000.2.2.1";
+       sha256 = "0939kwpinq6l4n3nyvd1gzyl7f83gymw0wzqndlgy1yc7q0nkj2w";
        libraryHaskellDepends = [ base ];
        homepage = "https://github.com/haskell/xhtml";
        description = "An XHTML combinator library";
@@ -223218,8 +224936,8 @@ self: {
        pname = "yampa-canvas";
        version = "0.2.2";
        sha256 = "0g1yvb6snnsbvy2f74lrlqff5zgnvfh2f6r8xdwxi61dk71qsz0n";
-       revision = "2";
-       editedCabalFile = "1wl5g0mrxkpkdlhjizh7m9z33pdygb460zxjm6qrcy90naywchqj";
+       revision = "3";
+       editedCabalFile = "1vh3v5hrd1y1m491g4h9p3c767h7kg3ffgi20vrafrg8i0r7hg3w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base blank-canvas stm time Yampa ];
@@ -223267,18 +224985,18 @@ self: {
      }) {};
 
   "yampa-sdl2" = callPackage
-    ({ mkDerivation, base, colour, linear, sdl2, sdl2-gfx, StateVar
-     , stm, text, Yampa
+    ({ mkDerivation, base, data-memocombinators, linear, sdl2, StateVar
+     , text, vector, Yampa
      }:
      mkDerivation {
        pname = "yampa-sdl2";
-       version = "0.0.3.1";
-       sha256 = "07wz2473i9z5rxpi6mb1m19fdps7fxl50hbp60b8ihbf2mck1br7";
+       version = "0.1.0.2";
+       sha256 = "17wcfb04dvdfcx8s21f36g4s3j3mvxgdfvm468gqqj3d3ks22zgp";
        libraryHaskellDepends = [
-         base colour linear sdl2 sdl2-gfx StateVar stm text Yampa
+         base data-memocombinators linear sdl2 StateVar text vector Yampa
        ];
        testHaskellDepends = [
-         base colour linear sdl2 sdl2-gfx StateVar stm text Yampa
+         base data-memocombinators linear sdl2 StateVar text vector Yampa
        ];
        homepage = "https://github.com/Simre1/YampaSDL2#readme";
        description = "Yampa and SDL2 made easy";
@@ -223732,7 +225450,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "yesod-auth_1_6_1" = callPackage
+  "yesod-auth_1_6_2" = callPackage
     ({ mkDerivation, aeson, authenticate, base, base16-bytestring
      , base64-bytestring, binary, blaze-builder, blaze-html
      , blaze-markup, byteable, bytestring, conduit, conduit-extra
@@ -223745,8 +225463,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth";
-       version = "1.6.1";
-       sha256 = "09mp8kb2b1wz28ks1zc3chfm7qs5k6cp1aw84p03vrdi1rj1841i";
+       version = "1.6.2";
+       sha256 = "191sniq19glv0rdrhzqs2hhsjz9y25sqf15x0wnpmrmfh7jyyv6a";
        libraryHaskellDepends = [
          aeson authenticate base base16-bytestring base64-bytestring binary
          blaze-builder blaze-html blaze-markup byteable bytestring conduit
@@ -223907,6 +225625,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "yesod-auth-fb_1_9_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, conduit, fb, http-conduit
+     , resourcet, shakespeare, text, time, transformers, unliftio, wai
+     , yesod-auth, yesod-core, yesod-fb
+     }:
+     mkDerivation {
+       pname = "yesod-auth-fb";
+       version = "1.9.0";
+       sha256 = "1hj6xb7rv28dz8jzygckqg5m5igy78zx0gpc6zmp7g5j0dvinxg8";
+       libraryHaskellDepends = [
+         aeson base bytestring conduit fb http-conduit resourcet shakespeare
+         text time transformers unliftio wai yesod-auth yesod-core yesod-fb
+       ];
+       homepage = "https://github.com/psibi/yesod-auth-fb";
+       description = "Authentication backend for Yesod using Facebook";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "yesod-auth-hashdb" = callPackage
     ({ mkDerivation, aeson, base, basic-prelude, bytestring, containers
      , hspec, http-conduit, http-types, monad-logger, network-uri
@@ -224087,26 +225824,26 @@ self: {
      }) {};
 
   "yesod-auth-oauth2" = callPackage
-    ({ mkDerivation, aeson, authenticate, base, bytestring, hoauth2
-     , hspec, http-client, http-conduit, http-types, lifted-base
-     , microlens, network-uri, random, text, transformers
-     , uri-bytestring, vector, yesod-auth, yesod-core, yesod-form
+    ({ mkDerivation, aeson, base, bytestring, errors, hoauth2, hspec
+     , http-client, http-conduit, http-types, microlens, random
+     , safe-exceptions, text, transformers, uri-bytestring, yesod-auth
+     , yesod-core
      }:
      mkDerivation {
        pname = "yesod-auth-oauth2";
-       version = "0.3.1";
-       sha256 = "0lgn72kvhvxr77243fikkvyd1gz7iw9lw7azvw2cdd6lwgn3p73i";
+       version = "0.4.0.1";
+       sha256 = "0gwl2inbjzwmxdwx51r30yd32xa17rivzmsdf6jnim5q0gyzdh4j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson authenticate base bytestring hoauth2 http-client http-conduit
-         http-types lifted-base microlens network-uri random text
-         transformers uri-bytestring vector yesod-auth yesod-core yesod-form
+         aeson base bytestring errors hoauth2 http-client http-conduit
+         http-types microlens random safe-exceptions text transformers
+         uri-bytestring yesod-auth yesod-core
        ];
        testHaskellDepends = [ base hspec uri-bytestring ];
        homepage = "http://github.com/thoughtbot/yesod-auth-oauth2";
        description = "OAuth 2.0 authentication plugins";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "yesod-auth-pam" = callPackage
@@ -224369,7 +226106,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "yesod-core_1_6_1" = callPackage
+  "yesod-core_1_6_2" = callPackage
     ({ mkDerivation, aeson, async, auto-update, base, blaze-html
      , blaze-markup, byteable, bytestring, case-insensitive, cereal
      , clientsession, conduit, conduit-extra, containers, cookie
@@ -224383,8 +226120,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-core";
-       version = "1.6.1";
-       sha256 = "1dymck6s9a1cfpp6ib2smxhb4axklj4r08m10z4zqc05s63ch81r";
+       version = "1.6.2";
+       sha256 = "0fcbp47rmljz0jas2gz9j7qswa4dab2fzf9mgs4sbk75s76i01b8";
        libraryHaskellDepends = [
          aeson auto-update base blaze-html blaze-markup byteable bytestring
          case-insensitive cereal clientsession conduit conduit-extra
@@ -224666,6 +226403,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "yesod-fb_0_5_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, conduit, crypto-api, fb
+     , http-client-tls, http-conduit, text, wai, yesod-core
+     }:
+     mkDerivation {
+       pname = "yesod-fb";
+       version = "0.5.0";
+       sha256 = "1ns113f2ylim1b3r2dgwgc65yfy6qxjh9miqfz2fx29fq4250dyy";
+       libraryHaskellDepends = [
+         aeson base bytestring conduit crypto-api fb http-client-tls
+         http-conduit text wai yesod-core
+       ];
+       homepage = "https://github.com/psibi/yesod-fb";
+       description = "Useful glue functions between the fb library and Yesod";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "yesod-form" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, blaze-builder, blaze-html
      , blaze-markup, byteable, bytestring, containers, data-default
@@ -224934,8 +226689,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-markdown";
-       version = "0.12.2";
-       sha256 = "0bakc1znfqpjmm2yw7sd1gsqkq47bpr3alz6d2fp280qdxjb7hsx";
+       version = "0.12.3";
+       sha256 = "10vnip7yifq3li4jwql5pzrdaqf1z2bb4h99rf1iqzvd3b8mqq30";
        libraryHaskellDepends = [
          base blaze-html blaze-markup bytestring directory pandoc persistent
          shakespeare text xss-sanitize yesod-core yesod-form
@@ -226578,8 +228333,8 @@ self: {
      }:
      mkDerivation {
        pname = "yst";
-       version = "0.6.0.1";
-       sha256 = "03x6f5zvmgppr1hkg0lxrapgnlk9s7i974d1gzscs1nvsi426bqb";
+       version = "0.7";
+       sha256 = "1dvny64v5v3qrahymn647jsjjdraa0mrkpvmqiwihh8n9xbnq1s7";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -227513,6 +229268,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) zlib;};
 
+  "zlib_0_6_2" = callPackage
+    ({ mkDerivation, base, bytestring, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck, zlib
+     }:
+     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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) zlib;};
+
   "zlib-bindings" = callPackage
     ({ mkDerivation, base, bytestring, hspec, QuickCheck, zlib }:
      mkDerivation {
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix
index 2a96c66dced53..33d56fa8e1ca4 100644
--- a/pkgs/development/haskell-modules/make-package-set.nix
+++ b/pkgs/development/haskell-modules/make-package-set.nix
@@ -107,7 +107,7 @@ let
     inherit packages;
   };
 
-  haskellSrc2nix = { name, src, sha256 ? null }:
+  haskellSrc2nix = { name, src, sha256 ? null, extraCabal2nixOptions ? "" }:
     let
       sha256Arg = if isNull sha256 then "--sha256=" else ''--sha256="${sha256}"'';
     in pkgs.buildPackages.stdenv.mkDerivation {
@@ -120,7 +120,7 @@ let
       installPhase = ''
         export HOME="$TMP"
         mkdir -p "$out"
-        cabal2nix --compiler=${ghc.haskellCompilerName} --system=${stdenv.system} ${sha256Arg} "${src}" > "$out/default.nix"
+        cabal2nix --compiler=${ghc.haskellCompilerName} --system=${stdenv.system} ${sha256Arg} "${src}" ${extraCabal2nixOptions} > "$out/default.nix"
       '';
   };
 
@@ -188,6 +188,52 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
         };
       in withPackages (packages ++ [ hoogle ]);
 
+    # Returns a derivation whose environment contains a GHC with only
+    # the dependencies of packages listed in `packages`, not the
+    # packages themselves. Using nix-shell on this derivation will
+    # give you an environment suitable for developing the listed
+    # packages with an incremental tool like cabal-install.
+    #
+    #     # default.nix
+    #     with import <nixpkgs> {};
+    #     haskellPackages.extend (haskell.lib.packageSourceOverrides {
+    #       frontend = ./frontend;
+    #       backend = ./backend;
+    #       common = ./common;
+    #     })
+    #
+    #     # shell.nix
+    #     (import ./.).shellFor {
+    #       packages = p: [p.frontend p.backend p.common];
+    #       withHoogle = true;
+    #     }
+    #
+    #     -- cabal.project
+    #     packages:
+    #       frontend/
+    #       backend/
+    #       common/
+    #
+    #     bash$ nix-shell --run "cabal new-build all"
+    shellFor = { packages, withHoogle ? false, ... } @ args:
+      let
+        selected = packages self;
+        packageInputs = builtins.map (p: p.override { mkDerivation = haskellLib.extractBuildInputs p.compiler; }) selected;
+        haskellInputs =
+          builtins.filter
+            (input: pkgs.lib.all (p: input.outPath != p.outPath) selected)
+            (pkgs.lib.concatMap (p: p.haskellBuildInputs) packageInputs);
+        systemInputs = pkgs.lib.concatMap (p: p.systemBuildInputs) packageInputs;
+        withPackages = if withHoogle then self.ghcWithHoogle else self.ghcWithPackages;
+        mkDrvArgs = builtins.removeAttrs args ["packages" "withHoogle"];
+      in pkgs.stdenv.mkDerivation (mkDrvArgs // {
+        name = "ghc-shell-for-packages";
+        nativeBuildInputs = [(withPackages (_: haskellInputs))] ++ mkDrvArgs.nativeBuildInputs or [];
+        buildInputs = systemInputs ++ mkDrvArgs.buildInputs or [];
+        phases = ["installPhase"];
+        installPhase = "echo $nativeBuildInputs $buildInputs > $out";
+      });
+
     ghc = ghc // {
       withPackages = self.ghcWithPackages;
       withHoogle = self.ghcWithHoogle;
diff --git a/pkgs/development/idris-modules/default.nix b/pkgs/development/idris-modules/default.nix
index 35ee20e962244..4309039f498b5 100644
--- a/pkgs/development/idris-modules/default.nix
+++ b/pkgs/development/idris-modules/default.nix
@@ -50,8 +50,6 @@
 
     lightyear = callPackage ./lightyear.nix {};
 
-    optparse = callPackage ./optparse.nix {};
-
     wl-pprint = callPackage ./wl-pprint.nix {};
 
     specdris = callPackage ./specdris.nix {};
diff --git a/pkgs/development/idris-modules/wl-pprint.nix b/pkgs/development/idris-modules/wl-pprint.nix
index 7e6d77a19a21b..9ecf059180576 100644
--- a/pkgs/development/idris-modules/wl-pprint.nix
+++ b/pkgs/development/idris-modules/wl-pprint.nix
@@ -6,14 +6,14 @@
 , idris
 }:
 build-idris-package {
-  pkName = "wl-pprint";
-  version = "2016-09-28";
+  name = "wl-pprint";
+  version = "2017-03-13";
 
   src = fetchFromGitHub {
     owner = "shayan-najd";
     repo = "wl-pprint";
-    rev = "4cc88a0865620a3b997863e4167d3b98e1a41b52";
-    sha256 = "1yxxh366k5njad75r0xci2q5c554cddvzgrwk43b0xn8rq0vm11x";
+    rev = "97590d1679b3db07bb430783988b4cba539e9947";
+    sha256 = "0ifp76cqg340jkkzanx69vg76qivv53vh1lzv9zkp5f49prkwl5d";
   };
 
   # The tests for this package fail. We should attempt to enable them when
diff --git a/pkgs/development/interpreters/erlang/generic-builder.nix b/pkgs/development/interpreters/erlang/generic-builder.nix
index eae4a50aa20ec..1d2b79074fb4a 100644
--- a/pkgs/development/interpreters/erlang/generic-builder.nix
+++ b/pkgs/development/interpreters/erlang/generic-builder.nix
@@ -2,7 +2,7 @@
 , libxml2, libxslt, ncurses, openssl, perl, autoreconfHook
 , openjdk ? null # javacSupport
 , unixODBC ? null # odbcSupport
-, mesa ? null, wxGTK ? null, wxmac ? null, xorg ? null # wxSupport
+, libGLU_combined ? null, wxGTK ? null, wxmac ? null, xorg ? null # wxSupport
 }:
 
 { baseName ? "erlang"
@@ -17,7 +17,7 @@
 , enableKernelPoll ? true
 , javacSupport ? false, javacPackages ? [ openjdk ]
 , odbcSupport ? false, odbcPackages ? [ unixODBC ]
-, wxSupport ? true, wxPackages ? [ mesa wxGTK xorg.libX11 ]
+, wxSupport ? true, wxPackages ? [ libGLU_combined wxGTK xorg.libX11 ]
 , preUnpack ? "", postUnpack ? ""
 , patches ? [], patchPhase ? "", prePatch ? "", postPatch ? ""
 , configureFlags ? [], configurePhase ? "", preConfigure ? "", postConfigure ? ""
@@ -31,7 +31,7 @@
 
 assert wxSupport -> (if stdenv.isDarwin
   then wxmac != null
-  else mesa != null && wxGTK != null && xorg != null);
+  else libGLU_combined != null && wxGTK != null && xorg != null);
 
 assert odbcSupport -> unixODBC != null;
 assert javacSupport -> openjdk != null;
diff --git a/pkgs/development/interpreters/groovy/default.nix b/pkgs/development/interpreters/groovy/default.nix
index e203a1d09f40b..6c0a9c2d37554 100644
--- a/pkgs/development/interpreters/groovy/default.nix
+++ b/pkgs/development/interpreters/groovy/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "groovy-${version}";
-  version = "2.4.12";
+  version = "2.4.14";
 
   src = fetchurl {
     url = "http://dl.bintray.com/groovy/maven/apache-groovy-binary-${version}.zip";
-    sha256 = "1dm7m221pqbgh3lp1q1nvv6qc0fpja3cgsd0mx3ghahcfsfa3fck";
+    sha256 = "0an5ddfajg8jwdi1zdkpcz1g8ij1iyp0xh7zck2bl84j3pi4dj7r";
   };
 
   buildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/development/interpreters/hy/default.nix b/pkgs/development/interpreters/hy/default.nix
index 41e5e3d93be67..3f08ca8f7c22b 100644
--- a/pkgs/development/interpreters/hy/default.nix
+++ b/pkgs/development/interpreters/hy/default.nix
@@ -2,15 +2,21 @@
 
 pythonPackages.buildPythonApplication rec {
   name = "hy-${version}";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchurl {
     url = "mirror://pypi/h/hy/${name}.tar.gz";
-    sha256 = "1fjip998k336r26i1gpri18syvfjg7z46wng1n58dmc238wm53sx";
+    sha256 = "0cbdh1q0zm00p4h7i44kir4qhw0p6sid78xf6llrx2p21llsnv98";
   };
 
   propagatedBuildInputs = with pythonPackages; [ appdirs clint astor rply ];
 
+  # The build generates a .json parser file in the home directory under .cache.
+  # This is needed to get it to not try and open files in /homeless-shelter
+  preConfigure = ''
+    export HOME=$TMP
+  '';
+
   meta = {
     description = "A LISP dialect embedded in Python";
     homepage = http://hylang.org/;
diff --git a/pkgs/development/interpreters/io/default.nix b/pkgs/development/interpreters/io/default.nix
index 773a2c86028b6..6c0568d68134a 100644
--- a/pkgs/development/interpreters/io/default.nix
+++ b/pkgs/development/interpreters/io/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, zlib, sqlite, gmp, libffi, cairo,
-  ncurses, freetype, mesa, libpng, libtiff, libjpeg, readline, libsndfile,
+  ncurses, freetype, libGLU_combined, libpng, libtiff, libjpeg, readline, libsndfile,
   libxml2, freeglut, libsamplerate, pcre, libevent, libedit, yajl,
   python3, openssl, glfw, pkgconfig, libpthreadstubs, libXdmcp, libmemcached
 }:
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   buildInputs = [
     zlib sqlite gmp libffi cairo ncurses freetype
-    mesa libpng libtiff libjpeg readline libsndfile libxml2
+    libGLU_combined libpng libtiff libjpeg readline libsndfile libxml2
     freeglut libsamplerate pcre libevent libedit yajl
     pkgconfig glfw openssl libpthreadstubs libXdmcp
     libmemcached python3
diff --git a/pkgs/development/interpreters/love/0.10.nix b/pkgs/development/interpreters/love/0.10.nix
index 255bd03512988..07ce9347cf708 100644
--- a/pkgs/development/interpreters/love/0.10.nix
+++ b/pkgs/development/interpreters/love/0.10.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, mesa, openal, luajit,
+{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, libGLU_combined, openal, luajit,
   libdevil, freetype, physfs, libmodplug, mpg123, libvorbis, libogg,
   libtheora, which, autoconf, automake, libtool
 }:
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    SDL2 mesa openal luajit libdevil freetype physfs libmodplug mpg123
+    SDL2 libGLU_combined openal luajit libdevil freetype physfs libmodplug mpg123
     libvorbis libogg libtheora autoconf which libtool automake
   ];
 
diff --git a/pkgs/development/interpreters/love/0.7.nix b/pkgs/development/interpreters/love/0.7.nix
index 114749e90da37..884225b6483ea 100644
--- a/pkgs/development/interpreters/love/0.7.nix
+++ b/pkgs/development/interpreters/love/0.7.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig
-, SDL, mesa, openal, lua
+, SDL, libGLU_combined, openal, lua
 , libdevil, freetype, physfs
 , libmodplug, mpg123, libvorbis, libogg
 }:
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    SDL mesa openal lua
+    SDL libGLU_combined openal lua
     libdevil freetype physfs libmodplug mpg123 libvorbis libogg
   ];
 
diff --git a/pkgs/development/interpreters/love/0.8.nix b/pkgs/development/interpreters/love/0.8.nix
index 4e999eca9eebc..5fbb34bf213a2 100644
--- a/pkgs/development/interpreters/love/0.8.nix
+++ b/pkgs/development/interpreters/love/0.8.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig
-, SDL, mesa, openal, lua
+, SDL, libGLU_combined, openal, lua
 , libdevil, freetype, physfs
 , libmodplug, mpg123, libvorbis, libogg
 }:
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    SDL mesa openal lua
+    SDL libGLU_combined openal lua
     libdevil freetype physfs libmodplug mpg123 libvorbis libogg
   ];
 
diff --git a/pkgs/development/interpreters/love/0.9.nix b/pkgs/development/interpreters/love/0.9.nix
index 83c485f065dd2..425239af22420 100644
--- a/pkgs/development/interpreters/love/0.9.nix
+++ b/pkgs/development/interpreters/love/0.9.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig
-, SDL2, mesa, openal, luajit
+, SDL2, libGLU_combined, openal, luajit
 , libdevil, freetype, physfs
 , libmodplug, mpg123, libvorbis, libogg
 }:
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    SDL2 mesa openal luajit
+    SDL2 libGLU_combined openal luajit
     libdevil freetype physfs libmodplug mpg123 libvorbis libogg
   ];
 
diff --git a/pkgs/development/interpreters/lush/default.nix b/pkgs/development/interpreters/lush/default.nix
index 6958bd2465f5f..9575409f9868c 100644
--- a/pkgs/development/interpreters/lush/default.nix
+++ b/pkgs/development/interpreters/lush/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, libX11, xproto, indent, readline, gsl, freeglut, mesa, SDL
+{stdenv, fetchurl, libX11, xproto, indent, readline, gsl, freeglut, libGLU_combined, SDL
 , blas, libbfd, intltool, gettext, zlib, libSM}:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    libX11 libSM xproto indent readline gsl freeglut mesa SDL blas libbfd
+    libX11 libSM xproto indent readline gsl freeglut libGLU_combined SDL blas libbfd
     intltool gettext zlib
   ];
 
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index ab1dc4b5fe1d9..c13d862267fb2 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull
-, libsndfile, portaudio, libX11, graphicsmagick, pcre, pkgconfig, mesa, fltk
+, libsndfile, portaudio, libX11, graphicsmagick, pcre, pkgconfig, libGLU_combined, fltk
 , fftw, fftwSinglePrec, zlib, curl, qrupdate, openblas, arpack, libwebp
 , qt ? null, qscintilla ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null
 , suitesparse ? null, gnuplot ? null, jdk ? null, python ? null, overridePlatforms ? null
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     ++ (stdenv.lib.optional (jdk != null) jdk)
     ++ (stdenv.lib.optional (gnuplot != null) gnuplot)
     ++ (stdenv.lib.optional (python != null) python)
-    ++ (stdenv.lib.optionals (!stdenv.isDarwin) [ mesa libX11 ])
+    ++ (stdenv.lib.optionals (!stdenv.isDarwin) [ libGLU_combined libX11 ])
     ;
 
   # makeinfo is required by Octave at runtime to display help
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index 13d77bbfb0290..e87d4e89a4617 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -319,7 +319,7 @@ let
         description = "An HTML-embedded scripting language";
         homepage = http://www.php.net/;
         license = licenses.php301;
-        maintainers = with maintainers; [ globin ];
+        maintainers = with maintainers; [ globin etu ];
         platforms = platforms.all;
         outputsToInstall = [ "out" "dev" ];
       };
@@ -338,8 +338,8 @@ let
 
 in {
   php56 = generic {
-    version = "5.6.33";
-    sha256 = "1k1ip1slk89hkp57qiqp8k2m5yrg9lx5rja542g87k8xfslrdxh7";
+    version = "5.6.34";
+    sha256 = "1kgjgkabhrm8ksmh6j3m59vm85n401mcn7inh03hnjzfijflk7z1";
   };
 
   php70 = generic {
@@ -348,8 +348,8 @@ in {
   };
 
   php71 = generic {
-    version = "7.1.14";
-    sha256 = "1x41qmq66r0ff0573ln34d3qbzwg5z20nagsn1b6frfpkq9zvck3";
+    version = "7.1.15";
+    sha256 = "1gfw3ab9pvv034l9xk7ry23xsdz9vcwksrvmzkjmsj79713sa5z1";
   };
 
   php72 = generic {
diff --git a/pkgs/development/interpreters/renpy/default.nix b/pkgs/development/interpreters/renpy/default.nix
index cc3eba52bf2d3..658c5aebe5cb8 100644
--- a/pkgs/development/interpreters/renpy/default.nix
+++ b/pkgs/development/interpreters/renpy/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pythonPackages, pkgconfig, SDL2
-, libpng, ffmpeg, freetype, glew, mesa, fribidi, zlib
+, libpng, ffmpeg, freetype, glew, libGLU_combined, fribidi, zlib
 , glib
 }:
 
@@ -26,13 +26,13 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
     python cython wrapPython
-    SDL2 libpng ffmpeg freetype glew mesa fribidi zlib pygame_sdl2 glib
+    SDL2 libpng ffmpeg freetype glew libGLU_combined fribidi zlib pygame_sdl2 glib
   ];
 
   pythonPath = [ pygame_sdl2 ];
 
   RENPY_DEPS_INSTALL = stdenv.lib.concatStringsSep "::" (map (path: "${path}") [
-    SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out mesa fribidi zlib
+    SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU_combined fribidi zlib
   ]);
 
   buildPhase = ''
diff --git a/pkgs/development/libraries/AntTweakBar/default.nix b/pkgs/development/libraries/AntTweakBar/default.nix
index dc30fee954f6b..108a11ece58b3 100644
--- a/pkgs/development/libraries/AntTweakBar/default.nix
+++ b/pkgs/development/libraries/AntTweakBar/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchurl, unzip, xlibs, mesa }:
+{ stdenv, fetchurl, unzip, xlibs, libGLU_combined }:
 
 stdenv.mkDerivation rec {
   name = "AntTweakBar-1.16";
 
-  buildInputs = [ unzip xlibs.libX11 mesa ];
+  buildInputs = [ unzip xlibs.libX11 libGLU_combined ];
 
   src = fetchurl {
     url = "mirror://sourceforge/project/anttweakbar/AntTweakBar_116.zip";
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix
index 82051854799c6..534f31ad1f473 100644
--- a/pkgs/development/libraries/SDL/default.nix
+++ b/pkgs/development/libraries/SDL/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, fetchpatch, pkgconfig, audiofile, libcap, libiconv
-, openglSupport ? false, mesa_noglu, mesa_glu
+{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, audiofile, libcap, libiconv
+, openglSupport ? false, libGL, libGLU
 , alsaSupport ? true, alsaLib
 , x11Support ? hostPlatform == buildPlatform, libXext, libICE, libXrandr
 , pulseaudioSupport ? true, libpulseaudio
@@ -7,13 +7,32 @@
 , hostPlatform, buildPlatform
 }:
 
-# OSS is no longer supported, for it's much crappier than ALSA and
-# PulseAudio.
-assert hostPlatform.isLinux -> alsaSupport || pulseaudioSupport;
+# NOTE: When editing this expression see if the same change applies to
+# SDL2 expression too
+
+with lib;
+
+assert !stdenv.isDarwin -> alsaSupport || pulseaudioSupport;
+assert openglSupport -> (stdenv.isDarwin || x11Support && libGL != null && libGLU != null);
 
 let
-  inherit (stdenv.lib) optional optionals;
+
+  configureFlagsFun = attrs: [
+    "--disable-oss"
+    "--disable-video-x11-xme"
+    "--enable-rpath"
+  # Building without this fails on Darwin with
+  #
+  #   ./src/video/x11/SDL_x11sym.h:168:17: error: conflicting types for '_XData32'
+  #   SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
+  #
+  # Please try revert the change that introduced this comment when updating SDL.
+  ] ++ optional stdenv.isDarwin "--disable-x11-shared"
+    ++ optional (!x11Support) "--without-x"
+    ++ optional alsaSupport "--with-alsa-prefix=${attrs.alsaLib.out}/lib";
+
 in
+
 stdenv.mkDerivation rec {
   name    = "SDL-${version}";
   version = "1.2.15";
@@ -28,36 +47,27 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
 
-  # Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.
-  propagatedBuildInputs =
-    optionals x11Support [ libXext libICE libXrandr ] ++
-    optional alsaSupport alsaLib ++
-    optional stdenv.isLinux libcap ++
-    optionals openglSupport [ mesa_noglu mesa_glu ] ++
-    optional pulseaudioSupport libpulseaudio ++
-    optional stdenv.isDarwin Cocoa;
-
-  buildInputs = let
-    notMingw = !hostPlatform.isMinGW;
-  in optional notMingw audiofile
-  ++ optionals stdenv.isDarwin [ OpenGL CoreAudio CoreServices AudioUnit Kernel ]
-  ++ [ libiconv ];
-
-  # XXX: By default, SDL wants to dlopen() PulseAudio, in which case
-  # we must arrange to add it to its RPATH; however, `patchelf' seems
-  # to fail at doing this, hence `--disable-pulseaudio-shared'.
-  configureFlags = [
-    "--disable-oss"
-    "--disable-video-x11-xme"
-    "--disable-x11-shared"
-    "--disable-alsa-shared"
-    "--enable-rpath"
-    "--disable-pulseaudio-shared"
-    "--disable-osmesa-shared"
-  ] ++ optional (!x11Support) "--without-x"
-    ++ optional (alsaSupport && hostPlatform != buildPlatform) "--with-alsa-prefix=${alsaLib.out}/lib";
+  propagatedBuildInputs = [ ]
+    ++ optionals x11Support [ libXext libICE libXrandr ]
+    ++ optional stdenv.isLinux libcap
+    ++ optionals openglSupport [ libGL libGLU ]
+    ++ optional alsaSupport alsaLib
+    ++ optional pulseaudioSupport libpulseaudio
+    ++ optional stdenv.isDarwin Cocoa;
+
+  buildInputs = [ libiconv ]
+    ++ optional (!hostPlatform.isMinGW) audiofile
+    ++ optionals stdenv.isDarwin [ AudioUnit CoreAudio CoreServices Kernel OpenGL ];
+
+  configureFlags = configureFlagsFun { inherit alsaLib; };
+
+  crossAttrs = {
+    configureFlags = configureFlagsFun { alsaLib = alsaLib.crossDrv; };
+  };
 
   patches = [
+    ./find-headers.patch
+
     # Fix window resizing issues, e.g. for xmonad
     # Ticket: http://bugzilla.libsdl.org/show_bug.cgi?id=1430
     (fetchpatch {
@@ -75,6 +85,11 @@ stdenv.mkDerivation rec {
       url = "http://hg.libsdl.org/SDL/raw-rev/95abff7adcc2";
       sha256 = "0i8x0kx0pw12ld5bfxhyzs466y3c0n9dscw1ijhq1b96r72xyhqq";
     })
+    # https://bugzilla.libsdl.org/show_bug.cgi?id=1769
+    (fetchpatch {
+      url = "http://hg.libsdl.org/SDL/raw-rev/91ad7b43317a";
+      sha256 = "15g537vbl2my4mfrjxfkcx9ri6bk2gjvaqj650rjdxwk2nkdkn4b";
+    })
     # Workaround X11 bug to allow changing gamma
     # Ticket: https://bugs.freedesktop.org/show_bug.cgi?id=27222
     (fetchpatch {
@@ -92,10 +107,20 @@ stdenv.mkDerivation rec {
       url = "http://hg.libsdl.org/SDL/raw-rev/bbfb41c13a87";
       sha256 = "1336g7waaf1c8yhkz11xbs500h8bmvabh4h437ax8l1xdwcppfxv";
     })
-    ./find-headers.patch
   ];
 
-  postFixup = ''moveToOutput share/aclocal "$dev" '';
+  postInstall = ''
+    moveToOutput share/aclocal "$dev"
+  '';
+
+  # See the same place in the expression for SDL2
+  postFixup = ''
+    for lib in $out/lib/*.so* ; do
+      if [[ -L "$lib" ]]; then
+        patchelf --set-rpath "$(patchelf --print-rpath $lib):${lib.makeLibraryPath propagatedBuildInputs}" "$lib"
+      fi
+    done
+  '';
 
   setupHook = ./setup-hook.sh;
 
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 6b6c9599c2821..fe19ecadd0ef0 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, pkgconfig, audiofile
-, openglSupport ? false, mesa_noglu
+, openglSupport ? false, libGL
 , alsaSupport ? true, alsaLib
 , x11Support ? true, libICE, libXi, libXScrnSaver, libXcursor, libXinerama, libXext, libXxf86vm, libXrandr
 , waylandSupport ? true, wayland, wayland-protocols, libxkbcommon
@@ -11,58 +11,56 @@
 , libiconv
 }:
 
-# OSS is no longer supported, for it's much crappier than ALSA and
-# PulseAudio.
-assert !stdenv.isDarwin -> alsaSupport || pulseaudioSupport;
+# NOTE: When editing this expression see if the same change applies to
+# SDL expression too
+
+with lib;
 
-assert openglSupport -> (stdenv.isDarwin || mesa_noglu != null && x11Support);
+assert !stdenv.isDarwin -> alsaSupport || pulseaudioSupport;
+assert openglSupport -> (stdenv.isDarwin || x11Support && libGL != null);
 
 let
+
   configureFlagsFun = attrs: [
-      "--disable-oss" "--disable-x11-shared" "--disable-wayland-shared"
-      "--disable-pulseaudio-shared" "--disable-alsa-shared"
-    ] ++ lib.optional alsaSupport "--with-alsa-prefix=${attrs.alsaLib.out}/lib"
-      ++ lib.optional (!x11Support) "--without-x";
+    "--disable-oss"
+  ] ++ optional (!x11Support) "--without-x"
+    ++ optional alsaSupport "--with-alsa-prefix=${attrs.alsaLib.out}/lib";
+
 in
+
 stdenv.mkDerivation rec {
   name = "SDL2-${version}";
-  version = "2.0.7";
+  version = "2.0.8";
 
   src = fetchurl {
     url = "http://www.libsdl.org/release/${name}.tar.gz";
-    sha256 = "0pjdpxla5kh1w1b0shxrx97a116vyy31njxi0jhyvqhk8d6cfdgf";
+    sha256 = "1v4js1gkr75hzbxzhwzzif0sf9g07234sd23x1vdaqc661bprizd";
   };
 
   outputs = [ "out" "dev" ];
+  outputBin = "dev"; # sdl-config
 
   patches = [ ./find-headers.patch ];
 
   nativeBuildInputs = [ pkgconfig ];
 
-  # Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.
-  propagatedBuildInputs = lib.optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ] ++
-    lib.optionals waylandSupport [ wayland wayland-protocols libxkbcommon ] ++
-    lib.optional pulseaudioSupport libpulseaudio
-    ++ [ libiconv ];
-
-  buildInputs = [ audiofile ] ++
-    lib.optional openglSupport mesa_noglu ++
-    lib.optional alsaSupport alsaLib ++
-    lib.optional dbusSupport dbus ++
-    lib.optional udevSupport udev ++
-    lib.optional ibusSupport ibus ++
-    lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL ];
+  propagatedBuildInputs = [ libiconv ]
+    ++ optional  dbusSupport dbus
+    ++ optional  udevSupport udev
+    ++ optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ]
+    ++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
+    ++ optional  alsaSupport alsaLib
+    ++ optional  pulseaudioSupport libpulseaudio;
 
-  # https://bugzilla.libsdl.org/show_bug.cgi?id=1431
-  dontDisableStatic = true;
+  buildInputs = [ audiofile ]
+    ++ optional  openglSupport libGL
+    ++ optional  ibusSupport ibus
+    ++ optionals stdenv.isDarwin [ AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL ];
 
   # /build/SDL2-2.0.7/src/video/wayland/SDL_waylandevents.c:41:10: fatal error:
   #   pointer-constraints-unstable-v1-client-protocol.h: No such file or directory
   enableParallelBuilding = false;
 
-  # XXX: By default, SDL wants to dlopen() PulseAudio, in which case
-  # we must arrange to add it to its RPATH; however, `patchelf' seems
-  # to fail at doing this, hence `--disable-pulseaudio-shared'.
   configureFlags = configureFlagsFun { inherit alsaLib; };
 
   crossAttrs = {
@@ -75,6 +73,28 @@ stdenv.mkDerivation rec {
     moveToOutput bin/sdl2-config "$dev"
   '';
 
+  # SDL is weird in that instead of just dynamically linking with
+  # libraries when you `--enable-*` (or when `configure` finds) them
+  # it `dlopen`s them at runtime. In principle, this means it can
+  # ignore any missing optional dependencies like alsa, pulseaudio,
+  # some x11 libs, wayland, etc if they are missing on the system
+  # and/or work with wide array of versions of said libraries. In
+  # nixpkgs, however, we don't need any of that. Moreover, since we
+  # don't have a global ld-cache we have to stuff all the propagated
+  # libraries into rpath by hand or else some applications that use
+  # SDL API that requires said libraries will fail to start.
+  #
+  # You can grep SDL sources with `grep -rE 'SDL_(NAME|.*_SYM)'` to
+  # confirm that they actually use most of the `propagatedBuildInputs`
+  # from above in this way. This is pretty weird.
+  postFixup = ''
+    for lib in $out/lib/*.so* ; do
+      if [[ -L "$lib" ]]; then
+        patchelf --set-rpath "$(patchelf --print-rpath $lib):${lib.makeLibraryPath propagatedBuildInputs}" "$lib"
+      fi
+    done
+  '';
+
   setupHook = ./setup-hook.sh;
 
   passthru = { inherit openglSupport; };
diff --git a/pkgs/development/libraries/SDL2_gfx/default.nix b/pkgs/development/libraries/SDL2_gfx/default.nix
index a630e9cead8af..04ec3f9652c2a 100644
--- a/pkgs/development/libraries/SDL2_gfx/default.nix
+++ b/pkgs/development/libraries/SDL2_gfx/default.nix
@@ -1,12 +1,13 @@
 { stdenv, darwin, fetchurl, SDL2 }:
 
 stdenv.mkDerivation rec {
-  name = "SDL2_gfx-${version}";
-  version = "1.0.1";
+  name = "${pname}-${version}";
+  pname = "SDL2_gfx";
+  version = "1.0.4";
 
   src = fetchurl {
-    url = "mirror://sourceforge/sdl2gfx/${name}.tar.gz";
-    sha256 = "16jrijzdp095qf416zvj9gs2fqqn6zkyvlxs5xqybd0ip37cp6yn";
+    url = "http://www.ferzkopp.net/Software/${pname}/${name}.tar.gz";
+    sha256 = "0qk2ax7f7grlxb13ba0ll3zlm8780s7j8fmrhlpxzjgdvldf1q33";
   };
 
   buildInputs = [ SDL2 ]
@@ -35,10 +36,9 @@ stdenv.mkDerivation rec {
       code. Its is written in plain C and can be used in C++ code.
     '';
 
-    homepage = https://sourceforge.net/projects/sdlgfx/;
+    homepage = http://www.ferzkopp.net/wordpress/2016/01/02/sdl_gfx-sdl2_gfx/;
     license = licenses.zlib;
-
-    maintainers = with maintainers; [ bjg ];
+    maintainers = with maintainers; [ cpages ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/SDL2_image/default.nix b/pkgs/development/libraries/SDL2_image/default.nix
index 91b4a563da0f1..b0f2d0e8b8d18 100644
--- a/pkgs/development/libraries/SDL2_image/default.nix
+++ b/pkgs/development/libraries/SDL2_image/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "SDL2_image-${version}";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchurl {
     url = "http://www.libsdl.org/projects/SDL_image/release/${name}.tar.gz";
-    sha256 = "1s3ciydixrgv34vlf45ak5syq5nlfaqf19wf162lbz4ixxd0gpvj";
+    sha256 = "0s13dmakn21q6yw8avl67d4zkxzl1wap6l5nwf6cvzrmlxfw441m";
   };
 
   buildInputs = [ SDL2 libpng libjpeg libtiff libungif libXpm zlib ]
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.libsdl.org/projects/SDL_image/;
     platforms = platforms.unix;
     license = licenses.zlib;
+    maintainers = with maintainers; [ cpages ];
   };
 }
diff --git a/pkgs/development/libraries/SDL2_ttf/default.nix b/pkgs/development/libraries/SDL2_ttf/default.nix
index 87436119ef477..4558317ce3e33 100644
--- a/pkgs/development/libraries/SDL2_ttf/default.nix
+++ b/pkgs/development/libraries/SDL2_ttf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, darwin, fetchurl, SDL2, freetype, mesa_noglu }:
+{ stdenv, darwin, fetchurl, SDL2, freetype, libGL }:
 
 stdenv.mkDerivation rec {
   name = "SDL2_ttf-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0xljwcpvd2knrjdfag5b257xqayplz55mqlszrqp0kpnphh5xnrl";
   };
 
-  buildInputs = [ SDL2 freetype mesa_noglu ]
+  buildInputs = [ SDL2 freetype libGL ]
     ++ stdenv.lib.optional stdenv.isDarwin darwin.libobjc;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/allegro/5.nix b/pkgs/development/libraries/allegro/5.nix
index dc2775b1979de..30e0f9a09838a 100644
--- a/pkgs/development/libraries/allegro/5.nix
+++ b/pkgs/development/libraries/allegro/5.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, texinfo, libXext, xextproto, libX11, xproto
 , libXpm, libXt, libXcursor, alsaLib, cmake, zlib, libpng, libvorbis
 , libXxf86dga, libXxf86misc, xf86dgaproto, xf86miscproto
-, xf86vidmodeproto, libXxf86vm, openal, mesa, kbproto, libjpeg, flac
+, xf86vidmodeproto, libXxf86vm, openal, libGLU_combined, kbproto, libjpeg, flac
 , inputproto, libXi, fixesproto, libXfixes, freetype, libopus, libtheora
 , physfs, enet, pkgconfig, gtk2, pcre, libpulseaudio, libpthreadstubs
 , libXdmcp
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     texinfo libXext xextproto libX11 xproto libXpm libXt libXcursor
     alsaLib cmake zlib libpng libvorbis libXxf86dga libXxf86misc
-    xf86dgaproto xf86miscproto xf86vidmodeproto libXxf86vm openal mesa
+    xf86dgaproto xf86miscproto xf86vidmodeproto libXxf86vm openal libGLU_combined
     kbproto libjpeg flac
     inputproto libXi fixesproto libXfixes
     enet libtheora freetype physfs libopus pkgconfig gtk2 pcre libXdmcp
diff --git a/pkgs/development/libraries/allegro/default.nix b/pkgs/development/libraries/allegro/default.nix
index c0451486c1443..12b2cbf07071d 100644
--- a/pkgs/development/libraries/allegro/default.nix
+++ b/pkgs/development/libraries/allegro/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, texinfo, libXext, xextproto, libX11, xproto
 , libXpm, libXt, libXcursor, alsaLib, cmake, zlib, libpng, libvorbis
 , libXxf86dga, libXxf86misc, xf86dgaproto, xf86miscproto
-, xf86vidmodeproto, libXxf86vm, openal, mesa }:
+, xf86vidmodeproto, libXxf86vm, openal, libGLU_combined }:
 
 stdenv.mkDerivation rec {
   name = "allegro-${version}";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     texinfo libXext xextproto libX11 xproto libXpm libXt libXcursor
     alsaLib cmake zlib libpng libvorbis libXxf86dga libXxf86misc
-    xf86dgaproto xf86miscproto xf86vidmodeproto libXxf86vm openal mesa
+    xf86dgaproto xf86miscproto xf86vidmodeproto libXxf86vm openal libGLU_combined
   ];
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix
index f7d3887cc180a..eb2466590beba 100644
--- a/pkgs/development/libraries/atk/default.nix
+++ b/pkgs/development/libraries/atk/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty, gobjectIntrospection }:
+{ stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty, gobjectIntrospection, gnome3 }:
 
 let
-  ver_maj = "2.26";
-  ver_min = "1";
+  pname = "atk";
+  version = "2.26.1";
 in
 stdenv.mkDerivation rec {
-  name = "atk-${ver_maj}.${ver_min}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/atk/${ver_maj}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "1jwpx8az0iifw176dc2hl4mmg6gvxzxdkd1qvg4ds7c5hdmzy07g";
   };
 
@@ -27,6 +27,12 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = {
     description = "Accessibility toolkit";
 
diff --git a/pkgs/development/libraries/beignet/default.nix b/pkgs/development/libraries/beignet/default.nix
index 2484e287016b3..02c67d7dbf8b1 100644
--- a/pkgs/development/libraries/beignet/default.nix
+++ b/pkgs/development/libraries/beignet/default.nix
@@ -12,7 +12,7 @@
 , libXext
 , python3
 , ocl-icd
-, mesa_noglu
+, libGL
 , makeWrapper
 , beignet
 }:
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     libXdmcp
     libXdamage
     ocl-icd
-    mesa_noglu
+    libGL
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/box2d/default.nix b/pkgs/development/libraries/box2d/default.nix
index 61f0fac7ffd00..e65980be320eb 100644
--- a/pkgs/development/libraries/box2d/default.nix
+++ b/pkgs/development/libraries/box2d/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, cmake, mesa, freeglut, libX11, xproto, inputproto
+{ stdenv, fetchurl, unzip, cmake, libGLU_combined, freeglut, libX11, xproto, inputproto
 , libXi, pkgconfig }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    unzip cmake mesa freeglut libX11 xproto inputproto libXi
+    unzip cmake libGLU_combined freeglut libX11 xproto inputproto libXi
   ];
 
   cmakeFlags = [ "-DBOX2D_INSTALL=ON" "-DBOX2D_BUILD_SHARED=ON" ];
diff --git a/pkgs/development/libraries/bullet/default.nix b/pkgs/development/libraries/bullet/default.nix
index 39a5a9869ba7c..4d94faa9566aa 100644
--- a/pkgs/development/libraries/bullet/default.nix
+++ b/pkgs/development/libraries/bullet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, mesa, freeglut, darwin }:
+{ stdenv, fetchFromGitHub, cmake, libGLU_combined, freeglut, darwin }:
 
 stdenv.mkDerivation rec {
   name = "bullet-${version}";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ cmake ] ++
     (if stdenv.isDarwin
      then with darwin.apple_sdk.frameworks; [ Cocoa OpenGL ]
-     else [mesa freeglut]);
+     else [libGLU_combined freeglut]);
 
   patches = [ ./gwen-narrowing.patch ];
 
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 7c0e36d40689d..6aa184e4204ea 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -2,12 +2,12 @@
 , libintlOrEmpty, expat, zlib, libpng, pixman, fontconfig, freetype, xorg
 , gobjectSupport ? true, glib
 , xcbSupport ? true # no longer experimental since 1.12
-, glSupport ? true, mesa_noglu ? null # mesa is no longer a big dependency
+, glSupport ? true, libGL ? null # libGLU_combined is no longer a big dependency
 , pdfSupport ? true
 , darwin
 }:
 
-assert glSupport -> mesa_noglu != null;
+assert glSupport -> libGL != null;
 
 let inherit (stdenv.lib) optional optionals; in
 
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     with xorg; [ libXext fontconfig expat freetype pixman zlib libpng libXrender ]
     ++ optionals xcbSupport [ libxcb xcbutil ]
     ++ optional gobjectSupport glib
-    ++ optional glSupport mesa_noglu
+    ++ optional glSupport libGL
     ; # TODO: maybe liblzo but what would it be for here?
 
   configureFlags = if stdenv.isDarwin then [
diff --git a/pkgs/development/libraries/cfitsio/default.nix b/pkgs/development/libraries/cfitsio/default.nix
index 93c187ec35ef2..dedcb80532772 100644
--- a/pkgs/development/libraries/cfitsio/default.nix
+++ b/pkgs/development/libraries/cfitsio/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
  stdenv.mkDerivation {
-  name = "cfitsio-3.41";
+  name = "cfitsio-3.43";
 
   src = fetchurl {
-    url = "ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio3410.tar.gz";
-    sha256 = "0k3knn5hz1vhzzvm46xa1y6fnpliwkwgw76lnkf4amcnl5zaqmm5";
+    url = "ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio3430.tar.gz";
+    sha256 = "1rw481bv5srfmldf1h8bqmyljjh0siqh87xh6rip67ms59ssxpn8";
   };
 
   # Shared-only build
diff --git a/pkgs/development/libraries/chipmunk/default.nix b/pkgs/development/libraries/chipmunk/default.nix
index 2c50d81380576..ad233402f1982 100644
--- a/pkgs/development/libraries/chipmunk/default.nix
+++ b/pkgs/development/libraries/chipmunk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, freeglut, mesa, glfw2, glew, libX11, xproto
+{ stdenv, fetchurl, cmake, freeglut, libGLU_combined, glfw2, glew, libX11, xproto
 , inputproto, libXi, libXmu
 }:
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
   buildInputs =
-    [ freeglut mesa glfw2 glew libX11 xproto inputproto libXi libXmu ];
+    [ freeglut libGLU_combined glfw2 glew libX11 xproto inputproto libXi libXmu ];
 
   postInstall = ''
     mkdir -p $out/bin
diff --git a/pkgs/development/libraries/cl/default.nix b/pkgs/development/libraries/cl/default.nix
index b26327dd77545..7c44c2e0ab0cf 100644
--- a/pkgs/development/libraries/cl/default.nix
+++ b/pkgs/development/libraries/cl/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchFromGitHub, SDL, mesa, rebar, erlang, opencl-headers, ocl-icd }:
+{stdenv, fetchFromGitHub, SDL, libGLU_combined, rebar, erlang, opencl-headers, ocl-icd }:
 
 stdenv.mkDerivation rec {
   version = "1.2.3";
diff --git a/pkgs/development/libraries/clutter-gst/default.nix b/pkgs/development/libraries/clutter-gst/default.nix
index 2b5f7069681c0..b2d397e3d5582 100644
--- a/pkgs/development/libraries/clutter-gst/default.nix
+++ b/pkgs/development/libraries/clutter-gst/default.nix
@@ -1,12 +1,13 @@
-{ fetchurl, stdenv, pkgconfig, clutter, gtk3, glib, cogl }:
+{ fetchurl, stdenv, pkgconfig, clutter, gtk3, glib, cogl, gnome3 }:
 
-stdenv.mkDerivation rec {
-  major = "3.0";
-  minor = "24";
-  name = "clutter-gst-${major}.${minor}";
+let
+  pname = "clutter-gst";
+  version = "3.0.24";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/clutter-gst/${major}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0v6cg0syh4vx7y7ni47jsvr2r57q0j3h1f1gjlp0ciscixywiwg9";
   };
 
@@ -15,6 +16,12 @@ stdenv.mkDerivation rec {
 
   postBuild = "rm -rf $out/share/gtk-doc";
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = {
     description = "GStreamer bindings for clutter";
 
diff --git a/pkgs/development/libraries/clutter-gtk/default.nix b/pkgs/development/libraries/clutter-gtk/default.nix
index bada2c2c709c3..71789b45a2834 100644
--- a/pkgs/development/libraries/clutter-gtk/default.nix
+++ b/pkgs/development/libraries/clutter-gtk/default.nix
@@ -1,12 +1,13 @@
-{ fetchurl, stdenv, pkgconfig, gobjectIntrospection, clutter, gtk3 }:
-
+{ fetchurl, stdenv, pkgconfig, gobjectIntrospection, clutter, gtk3, gnome3 }:
+let
+  pname = "clutter-gtk";
+  version = "1.8.4";
+in
 stdenv.mkDerivation rec {
-  major = "1.8";
-  minor = "4";
-  name = "clutter-gtk-${major}.${minor}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/clutter-gtk/${major}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j";
   };
 
@@ -15,6 +16,12 @@ stdenv.mkDerivation rec {
 
   postBuild = "rm -rf $out/share/gtk-doc";
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = {
     description = "Clutter-GTK";
     homepage = http://www.clutter-project.org/;
diff --git a/pkgs/development/libraries/clutter/default.nix b/pkgs/development/libraries/clutter/default.nix
index f30485f60cf92..eba94288e8fe0 100644
--- a/pkgs/development/libraries/clutter/default.nix
+++ b/pkgs/development/libraries/clutter/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, fetchurl, glib, pkgconfig, mesa, libX11, libXext, libXfixes
-, libXdamage, libXcomposite, libXi, libxcb, cogl, pango, atk, json-glib, 
-gobjectIntrospection, gtk3
+{ stdenv, fetchurl, glib, pkgconfig, libGLU_combined, libX11, libXext, libXfixes
+, libXdamage, libXcomposite, libXi, libxcb, cogl, pango, atk, json-glib,
+gobjectIntrospection, gtk3, gnome3
 }:
 
 let
-  ver_maj = "1.26";
-  ver_min = "2";
+  pname = "clutter";
+  version = "1.26.2";
 in
 stdenv.mkDerivation rec {
-  name = "clutter-${ver_maj}.${ver_min}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/clutter/${ver_maj}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7";
   };
 
   buildInputs = [ gtk3 ];
   nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs =
-    [ libX11 mesa libXext libXfixes libXdamage libXcomposite libXi cogl pango
+    [ libX11 libGLU_combined libXext libXfixes libXdamage libXcomposite libXi cogl pango
       atk json-glib gobjectIntrospection libxcb
     ];
 
@@ -26,6 +26,12 @@ stdenv.mkDerivation rec {
 
   #doCheck = true; # no tests possible without a display
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = {
     description = "Library for creating fast, dynamic graphical user interfaces";
 
diff --git a/pkgs/development/libraries/cmark/default.nix b/pkgs/development/libraries/cmark/default.nix
index 5fdd1edfd972c..6c73bd016031e 100644
--- a/pkgs/development/libraries/cmark/default.nix
+++ b/pkgs/development/libraries/cmark/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ];
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
   checkPhase = ''
     export LD_LIBRARY_PATH=$(readlink -f ./src)
     CTEST_OUTPUT_ON_FAILURE=1 make test
diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix
index 1ac34f7608bc3..48b38c22af59d 100644
--- a/pkgs/development/libraries/cogl/default.nix
+++ b/pkgs/development/libraries/cogl/default.nix
@@ -1,16 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, mesa_noglu, glib, gdk_pixbuf, xorg, libintlOrEmpty
-, pangoSupport ? true, pango, cairo, gobjectIntrospection, wayland
+{ stdenv, fetchurl, pkgconfig, libGL, glib, gdk_pixbuf, xorg, libintlOrEmpty
+, pangoSupport ? true, pango, cairo, gobjectIntrospection, wayland, gnome3
 , gstreamerSupport ? true, gst_all_1 }:
 
 let
-  ver_maj = "1.22";
-  ver_min = "2";
-in
-stdenv.mkDerivation rec {
-  name = "cogl-${ver_maj}.${ver_min}";
+  pname = "cogl";
+  version = "1.22.2";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/cogl/${ver_maj}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "03f0ha3qk7ca0nnkkcr1garrm1n1vvfqhkz9lwjm592fnv6ii9rr";
   };
 
@@ -26,7 +25,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = with xorg; [
       glib gdk_pixbuf gobjectIntrospection wayland
-      mesa_noglu libXrandr libXfixes libXcomposite libXdamage
+      libGL libXrandr libXfixes libXcomposite libXdamage
     ]
     ++ libintlOrEmpty
     ++ stdenv.lib.optionals gstreamerSupport [ gst_all_1.gstreamer
@@ -42,6 +41,12 @@ stdenv.mkDerivation rec {
 
   #doCheck = true; # all tests fail (no idea why)
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "A small open source library for using 3D graphics hardware for rendering";
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/development/libraries/coin3d/default.nix b/pkgs/development/libraries/coin3d/default.nix
index ce78a6fc13470..442ed2a4b9a5a 100644
--- a/pkgs/development/libraries/coin3d/default.nix
+++ b/pkgs/development/libraries/coin3d/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, mesa }:
+{ fetchurl, stdenv, libGLU_combined }:
 
 stdenv.mkDerivation rec {
   name = "coin3d-${version}";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     ./sbhashentry.patch
   ];
 
-  buildInputs = [ mesa ];
+  buildInputs = [ libGLU_combined ];
 
   meta = {
     homepage = http://www.coin3d.org/;
diff --git a/pkgs/development/libraries/double-conversion/default.nix b/pkgs/development/libraries/double-conversion/default.nix
index c656220f76094..7a33559cbc795 100644
--- a/pkgs/development/libraries/double-conversion/default.nix
+++ b/pkgs/development/libraries/double-conversion/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake }:
+{ stdenv, lib, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   name = "double-conversion-${version}";
@@ -15,6 +15,11 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
 
+  # Case sensitivity issue
+  preConfigure = lib.optionalString stdenv.isDarwin ''
+    rm BUILD
+  '';
+
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/epoxy/default.nix b/pkgs/development/libraries/epoxy/default.nix
index dfb6fe27b638f..306c5e756ec30 100644
--- a/pkgs/development/libraries/epoxy/default.nix
+++ b/pkgs/development/libraries/epoxy/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, utilmacros, python
-, mesa_noglu, libX11
+, libGL, libX11
 }:
 
 stdenv.mkDerivation rec {
@@ -16,16 +16,16 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ autoreconfHook pkgconfig utilmacros python ];
-  buildInputs = [ mesa_noglu libX11 ];
+  buildInputs = [ libGL libX11 ];
 
   preConfigure = stdenv.lib.optional stdenv.isDarwin ''
     substituteInPlace configure --replace build_glx=no build_glx=yes
     substituteInPlace src/dispatch_common.h --replace "PLATFORM_HAS_GLX 0" "PLATFORM_HAS_GLX 1"
   '';
 
-  # add mesa_nonglu to rpath because libepoxy dlopen()s libEGL
+  # add libGL to rpath because libepoxy dlopen()s libEGL
   postFixup = ''
-    patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ mesa_noglu ]}:$(patchelf --print-rpath $out/lib/libepoxy.so.0.0.0)" $out/lib/libepoxy.so.0.0.0
+    patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libGL ]}:$(patchelf --print-rpath $out/lib/libepoxy.so.0.0.0)" $out/lib/libepoxy.so.0.0.0
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/esdl/default.nix b/pkgs/development/libraries/esdl/default.nix
index af8258a019669..7b40359837a37 100644
--- a/pkgs/development/libraries/esdl/default.nix
+++ b/pkgs/development/libraries/esdl/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, SDL, mesa, rebar, erlang}:
+{stdenv, fetchurl, SDL, libGLU_combined, rebar, erlang}:
 
 stdenv.mkDerivation rec {
   name = "esdl-1.3.1";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ erlang rebar ];
-  propagatedBuildInputs = [ SDL mesa ];
+  propagatedBuildInputs = [ SDL libGLU_combined ];
 
   buildPhase = ''
     rebar compile
diff --git a/pkgs/development/libraries/ffmpeg-full/default.nix b/pkgs/development/libraries/ffmpeg-full/default.nix
index 689b13a394dc0..67e364715f096 100644
--- a/pkgs/development/libraries/ffmpeg-full/default.nix
+++ b/pkgs/development/libraries/ffmpeg-full/default.nix
@@ -102,7 +102,7 @@
 #, opencl ? null # OpenCL code
 , opencore-amr ? null # AMR-NB de/encoder & AMR-WB decoder
 #, opencv ? null # Video filtering
-, openglExtlib ? false, mesa ? null # OpenGL rendering
+, openglExtlib ? false, libGLU_combined ? null # OpenGL rendering
 #, openh264 ? null # H.264/AVC encoder
 , openjpeg_1 ? null # JPEG 2000 de/encoder
 , opensslExtlib ? false, openssl ? null
@@ -225,7 +225,7 @@ assert gnutls != null -> !opensslExtlib;
 assert libxcbshmExtlib -> libxcb != null;
 assert libxcbxfixesExtlib -> libxcb != null;
 assert libxcbshapeExtlib -> libxcb != null;
-assert openglExtlib -> mesa != null;
+assert openglExtlib -> libGLU_combined != null;
 assert opensslExtlib -> gnutls == null && openssl != null && nonfreeLicensing;
 assert nvenc -> nvidia-video-sdk != null && nonfreeLicensing;
 
@@ -406,7 +406,7 @@ stdenv.mkDerivation rec {
     libogg libopus libssh libtheora libvdpau libvorbis libvpx libwebp libX11
     libxcb libXv lzma openal openjpeg_1 libpulseaudio rtmpdump opencore-amr
     samba SDL2 soxr speex vid-stab wavpack x264 x265 xavs xvidcore zeromq4 zlib
-  ] ++ optional openglExtlib mesa
+  ] ++ optional openglExtlib libGLU_combined
     ++ optionals nonfreeLicensing [ fdk_aac openssl ]
     ++ optional ((isLinux || isFreeBSD) && libva != null) libva
     ++ optionals isLinux [ alsaLib libraw1394 libv4l ]
diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix
index 906a15c419d67..985f328a22dd9 100644
--- a/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/pkgs/development/libraries/ffmpeg/generic.nix
@@ -3,7 +3,7 @@
 , libtheora, libva, libvorbis, libvpx, lzma, libpulseaudio, soxr
 , x264, x265, xvidcore, zlib, libopus
 , hostPlatform
-, openglSupport ? false, mesa ? null
+, openglSupport ? false, libGLU_combined ? null
 # Build options
 , runtimeCpuDetectBuild ? true # Detect CPU capabilities at runtime
 , multithreadBuild ? true # Multithreading via pthreads/win32 threads
@@ -60,7 +60,7 @@ let
   vaapiSupport = reqMin "0.6" && ((isLinux || isFreeBSD) && !isArm);
 in
 
-assert openglSupport -> mesa != null;
+assert openglSupport -> libGLU_combined != null;
 
 stdenv.mkDerivation rec {
 
@@ -152,7 +152,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     bzip2 fontconfig freetype gnutls libiconv lame libass libogg libtheora
     libvdpau libvorbis lzma soxr x264 x265 xvidcore zlib libopus
-  ] ++ optional openglSupport mesa
+  ] ++ optional openglSupport libGLU_combined
     ++ optionals (!isDarwin && !isArm) [ libvpx libpulseaudio ] # Need to be fixed on Darwin and ARM
     ++ optional ((isLinux || isFreeBSD) && !isArm) libva
     ++ optional isLinux alsaLib
diff --git a/pkgs/development/libraries/fltk/default.nix b/pkgs/development/libraries/fltk/default.nix
index a1e4bb8274e05..ddc962d0aab64 100644
--- a/pkgs/development/libraries/fltk/default.nix
+++ b/pkgs/development/libraries/fltk/default.nix
@@ -1,5 +1,5 @@
 { stdenv, composableDerivation, fetchurl, pkgconfig, xlibsWrapper, inputproto, libXi
-, freeglut, mesa, libjpeg, zlib, libXinerama, libXft, libpng
+, freeglut, libGLU_combined, libjpeg, zlib, libXinerama, libXft, libpng
 , cfg ? {}
 , darwin, libtiff, freetype
 }:
@@ -29,7 +29,7 @@ composableDerivation.composableDerivation {} {
     # this could be tidied up (?).. eg why does it require freeglut without glSupport?
     edf { name = "cygwin"; }  #         use the CygWin libraries default=no
     // edf { name = "debug"; }  #          turn on debugging default=no
-    // edf { name = "gl"; enable = { buildInputs = [ mesa ]; }; }  #             turn on OpenGL support default=yes
+    // edf { name = "gl"; enable = { buildInputs = [ libGLU_combined ]; }; }  #             turn on OpenGL support default=yes
     // edf { name = "shared"; }  #         turn on shared libraries default=no
     // edf { name = "threads"; }  #        enable multi-threading support
     // edf { name = "quartz"; enable = { buildInputs = "quartz"; }; }  # don't konw yet what quartz is #         use Quartz instead of Quickdraw (default=no)
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index 45e3c964e995b..88339e8a8bf3b 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "folly-${version}";
-  version = "2017.11.06.00";
+  version = "2018.02.26.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "folly";
     rev = "v${version}";
-    sha256 = "11sn4gwqw94ygc2s4bzqy5k67v3rr20gy375brdcrl5rv0r2hhc0";
+    sha256 = "1pdb3nnly0x4x8yy1r13xgh9zhn34c9dq0b3nhxr8gwbzf643j1c";
   };
 
   nativeBuildInputs = [ autoreconfHook python pkgconfig ];
diff --git a/pkgs/development/libraries/fox/fox-1.6.nix b/pkgs/development/libraries/fox/fox-1.6.nix
index 63ec623361632..0d62656e6e74a 100644
--- a/pkgs/development/libraries/fox/fox-1.6.nix
+++ b/pkgs/development/libraries/fox/fox-1.6.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, xlibsWrapper, libpng, libjpeg, libtiff, zlib, bzip2, libXcursor
-, libXrandr, mesa, libXft, libXfixes, xinput
+, libXrandr, libGLU_combined, libXft, libXfixes, xinput
 , CoreServices }:
 
 let
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     xlibsWrapper libpng libjpeg libtiff zlib bzip2 libXcursor libXrandr
-    libXft mesa libXfixes xinput
+    libXft libGLU_combined libXfixes xinput
   ] ++ stdenv.lib.optional stdenv.isDarwin CoreServices;
 
   doCheck = true;
diff --git a/pkgs/development/libraries/freeglut/default.nix b/pkgs/development/libraries/freeglut/default.nix
index 6737e059b2120..c34d9591d3868 100644
--- a/pkgs/development/libraries/freeglut/default.nix
+++ b/pkgs/development/libraries/freeglut/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libXi, libXrandr, libXxf86vm, mesa_noglu, mesa_glu, xlibsWrapper, cmake }:
+{ stdenv, fetchurl, libXi, libXrandr, libXxf86vm, libGL, libGLU, xlibsWrapper, cmake }:
 
 let version = "3.0.0";
 in stdenv.mkDerivation {
@@ -11,12 +11,12 @@ in stdenv.mkDerivation {
 
   outputs = [ "out" "dev" ];
 
-  buildInputs = [ libXi libXrandr libXxf86vm mesa_noglu mesa_glu xlibsWrapper cmake ];
+  buildInputs = [ libXi libXrandr libXxf86vm libGL libGLU xlibsWrapper cmake ];
 
   cmakeFlags = stdenv.lib.optionals stdenv.isDarwin [
-                 "-DOPENGL_INCLUDE_DIR=${mesa_noglu}/include"
-                 "-DOPENGL_gl_LIBRARY:FILEPATH=${mesa_noglu}/lib/libGL.dylib"
-                 "-DOPENGL_glu_LIBRARY:FILEPATH=${mesa_glu}/lib/libGLU.dylib"
+                 "-DOPENGL_INCLUDE_DIR=${libGL}/include"
+                 "-DOPENGL_gl_LIBRARY:FILEPATH=${libGL}/lib/libGL.dylib"
+                 "-DOPENGL_glu_LIBRARY:FILEPATH=${libGLU}/lib/libGLU.dylib"
                  "-DFREEGLUT_BUILD_DEMOS:BOOL=OFF"
                  "-DFREEGLUT_BUILD_STATIC:BOOL=OFF"
                ];
diff --git a/pkgs/development/libraries/freenect/default.nix b/pkgs/development/libraries/freenect/default.nix
index c77c3b3640b70..d6767a4cbd3b7 100644
--- a/pkgs/development/libraries/freenect/default.nix
+++ b/pkgs/development/libraries/freenect/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, libusb, pkgconfig, freeglut, mesa, libXi, libXmu }:
+{ stdenv, fetchFromGitHub, cmake, libusb, pkgconfig, freeglut, libGLU_combined, libXi, libXmu }:
 
 stdenv.mkDerivation rec {
   name = "freenect-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0qmbagfkxjgbwd2ajn7i5lkic9gx5y02bsnmqm7cjay99zfw9ifx";
   };
 
-  buildInputs = [ libusb freeglut mesa libXi libXmu ];
+  buildInputs = [ libusb freeglut libGLU_combined libXi libXmu ];
   nativeBuildInputs = [ cmake pkgconfig ];
 
   meta = {
diff --git a/pkgs/development/libraries/ftgl/default.nix b/pkgs/development/libraries/ftgl/default.nix
index 432f518234514..8808af49f9e42 100644
--- a/pkgs/development/libraries/ftgl/default.nix
+++ b/pkgs/development/libraries/ftgl/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, freetype, mesa}:
+{stdenv, fetchurl, freetype, libGLU_combined}:
 
 let
   name = "ftgl-2.1.3-rc5";
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "0nsn4s6vnv5xcgxcw6q031amvh2zfj2smy1r5mbnjj2548hxcn2l";
   };
 
-  buildInputs = [ freetype mesa ];
+  buildInputs = [ freetype libGLU_combined ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/gdcm/default.nix b/pkgs/development/libraries/gdcm/default.nix
index 2d7e26b9e1a8f..6da29ef2a3c48 100644
--- a/pkgs/development/libraries/gdcm/default.nix
+++ b/pkgs/development/libraries/gdcm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, cmake, vtk }:
 
 stdenv.mkDerivation rec {
-  version = "2.6.4";
+  version = "2.8.4";
   name = "gdcm-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/gdcm/${name}.tar.bz2";
-    sha256 = "14bysjdldq7xb9k1ayskxijm08dy2n45v9bg379dqrcz1q5xq5mi";
+    sha256 = "1wjs9sfdi1v4bm750xl26mik5zyvmlk88jy2zf2jsm9y3qmcyfff";
   };
 
   dontUseCmakeBuildDir = true;
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index 9c4296b238642..a1a9b10fca63c 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11
+{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, gnome3
 , jasper, libintlOrEmpty, gobjectIntrospection, doCheck ? false }:
 
 let
-  ver_maj = "2.36";
-  ver_min = "7";
+  pname = "gdk-pixbuf";
+  version = "2.36.7";
   # TODO: since 2.36.8 gdk-pixbuf gets configured to use mime-type sniffing,
   # which apparently requires access to shared-mime-info files during runtime.
 in
 stdenv.mkDerivation rec {
-  name = "gdk-pixbuf-${ver_maj}.${ver_min}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "1b6e5eef09d98f05f383014ecd3503e25dfb03d7e5b5f5904e5a65b049a6a4d8";
   };
 
@@ -47,6 +47,13 @@ stdenv.mkDerivation rec {
   # The tests take an excessive amount of time (> 1.5 hours) and memory (> 6 GB).
   inherit (doCheck);
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gdk_pixbuf";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "A library for image loading and manipulation";
     homepage = http://library.gnome.org/devel/gdk-pixbuf/;
diff --git a/pkgs/development/libraries/gecode/3.nix b/pkgs/development/libraries/gecode/3.nix
index a0f3dc636f923..db2b14d71fdb7 100644
--- a/pkgs/development/libraries/gecode/3.nix
+++ b/pkgs/development/libraries/gecode/3.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl }:
+{ stdenv, fetchurl, bash, perl }:
 
 stdenv.mkDerivation rec {
   name = "gecode-${version}";
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "0k45jas6p3cyldgyir1314ja3174sayn2h2ly3z9b4dl3368pk77";
   };
 
-  buildInputs = [ perl ];
+  nativeBuildInputs = [ bash perl ];
+
+  preConfigure = "patchShebangs configure";
 
   meta = with stdenv.lib; {
     license = licenses.mit;
diff --git a/pkgs/development/libraries/gle/default.nix b/pkgs/development/libraries/gle/default.nix
index 64f51a56fd37e..1980c633474f5 100644
--- a/pkgs/development/libraries/gle/default.nix
+++ b/pkgs/development/libraries/gle/default.nix
@@ -1,7 +1,7 @@
-{stdenv, fetchurl, mesa, freeglut, libX11, libXt, libXmu, libXi, libXext}:
+{stdenv, fetchurl, libGLU_combined, freeglut, libX11, libXt, libXmu, libXi, libXext}:
 stdenv.mkDerivation {
   name = "gle-3.1.0";
-  buildInputs = [mesa freeglut libX11 libXt libXmu libXi libXext];
+  buildInputs = [libGLU_combined freeglut libX11 libXt libXmu libXi libXext];
   src = fetchurl {
     urls = [
       "mirror://sourceforge/project/gle/gle/gle-3.1.0/gle-3.1.0.tar.gz"
diff --git a/pkgs/development/libraries/glew/1.10.nix b/pkgs/development/libraries/glew/1.10.nix
index 3f8119d36d65d..fafcf82258ab1 100644
--- a/pkgs/development/libraries/glew/1.10.nix
+++ b/pkgs/development/libraries/glew/1.10.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mesa_glu, x11, libXmu, libXi
+{ stdenv, fetchurl, libGLU, x11, libXmu, libXi
 , buildPlatform, hostPlatform
 , AGL ? null
 }:
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ x11 libXmu libXi ] ++ optionals stdenv.isDarwin [ AGL ];
-  propagatedBuildInputs = [ mesa_glu ]; # GL/glew.h includes GL/glu.h
+  propagatedBuildInputs = [ libGLU ]; # GL/glew.h includes GL/glu.h
 
   patchPhase = ''
     sed -i 's|lib64|lib|' config/Makefile.linux
diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix
index 38b303bde856b..eebf4dded4ade 100644
--- a/pkgs/development/libraries/glew/default.nix
+++ b/pkgs/development/libraries/glew/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mesa_glu, xlibsWrapper, libXmu, libXi
+{ stdenv, fetchurl, libGLU, xlibsWrapper, libXmu, libXi
 , buildPlatform, hostPlatform
 }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "out" "dev" "doc" ];
 
   buildInputs = [ xlibsWrapper libXmu libXi ];
-  propagatedBuildInputs = [ mesa_glu ]; # GL/glew.h includes GL/glu.h
+  propagatedBuildInputs = [ libGLU ]; # GL/glew.h includes GL/glu.h
 
   patchPhase = ''
     sed -i 's|lib64|lib|' config/Makefile.linux
diff --git a/pkgs/development/libraries/glfw/2.x.nix b/pkgs/development/libraries/glfw/2.x.nix
index a017ff3d988c4..b1118b473b6f0 100644
--- a/pkgs/development/libraries/glfw/2.x.nix
+++ b/pkgs/development/libraries/glfw/2.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mesa_glu, mesa_noglu, libX11, libXext }:
+{ stdenv, fetchurl, libGLU, libGL, libX11, libXext }:
 
 stdenv.mkDerivation rec {
   name = "glfw-2.7.9";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "17c2msdcb7pn3p8f83805h1c216bmdqnbn9hgzr1j8wnwjcpxx6i";
   };
 
-  buildInputs = [ mesa_glu mesa_noglu libX11 libXext ];
+  buildInputs = [ libGLU libGL libX11 libXext ];
 
   buildPhase = ''
     make x11
diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index c10b3c05986a1..8d4d4d10038a2 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, mesa_noglu, libXrandr, libXinerama, libXcursor, libX11
+{ stdenv, lib, fetchFromGitHub, cmake, libGL, libXrandr, libXinerama, libXcursor, libX11
 , darwin, fixDarwinDylibNames
 }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  propagatedBuildInputs = [ mesa_noglu ];
+  propagatedBuildInputs = [ libGL ];
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/pkgs/development/libraries/glib-networking/default.nix b/pkgs/development/libraries/glib-networking/default.nix
index 1c4abe46f5106..12a8469868bd0 100644
--- a/pkgs/development/libraries/glib-networking/default.nix
+++ b/pkgs/development/libraries/glib-networking/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool, gnutls, libproxy
+{ stdenv, fetchurl, pkgconfig, glib, intltool, gnutls, libproxy, gnome3
 , gsettings-desktop-schemas }:
 
 let
-  ver_maj = "2.54";
-  ver_min = "1";
+  pname = "glib-networking";
+  version = "2.54.1";
 in
 stdenv.mkDerivation rec {
-  name = "glib-networking-${ver_maj}.${ver_min}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/glib-networking/${ver_maj}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0bq16m9nh3gcz9x2fvygr0iwxd2pxcbrm3lj3kihsnh1afv8g9za";
   };
 
@@ -31,6 +31,12 @@ stdenv.mkDerivation rec {
 
   doCheck = false; # tests need to access the certificates (among other things)
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Network-related giomodules for glib";
     license = licenses.lgpl2Plus;
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 5d60cf5e633a8..e5163e933e131 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -1,5 +1,5 @@
 { stdenv, hostPlatform, fetchurl, pkgconfig, gettext, perl, python
-, libiconv, libintlOrEmpty, zlib, libffi, pcre, libelf
+, libiconv, libintlOrEmpty, zlib, libffi, pcre, libelf, gnome3
 # use utillinuxMinimal to avoid circular dependency (utillinux, systemd, glib)
 , utillinuxMinimal ? null
 
@@ -42,15 +42,14 @@ let
     ln -sr -t "''${!outputInclude}/include/" "''${!outputInclude}"/lib/*/include/* 2>/dev/null || true
   '';
 
-  ver_maj = "2.54";
-  ver_min = "3";
+  version = "2.54.3";
 in
 
 stdenv.mkDerivation rec {
-  name = "glib-${ver_maj}.${ver_min}";
+  name = "glib-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/glib/${ver_maj}/${name}.tar.xz";
+    url = "mirror://gnome/sources/glib/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "963fdc6685dc3da8e5381dfb9f15ca4b5709b28be84d9d05a9bb8e446abac0a8";
   };
 
@@ -143,8 +142,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-     gioModuleDir = "lib/gio/modules";
-     inherit flattenInclude;
+    gioModuleDir = "lib/gio/modules";
+    inherit flattenInclude;
+    updateScript = gnome3.updateScript { packageName = "glib"; };
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/glpk/default.nix b/pkgs/development/libraries/glpk/default.nix
index d608b3af6ce7e..b9634e01900e5 100644
--- a/pkgs/development/libraries/glpk/default.nix
+++ b/pkgs/development/libraries/glpk/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "glpk-4.64";
+  name = "glpk-4.65";
 
   src = fetchurl {
     url = "mirror://gnu/glpk/${name}.tar.gz";
-    sha256 = "096cqgjc7vkq6wd8znhcxjbs1s2rym3qf753fqxrrq531vs6g4jk";
+    sha256 = "040sfaa9jclg2nqdh83w71sv9rc1sznpnfiripjdyr48cady50a2";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/glui/default.nix b/pkgs/development/libraries/glui/default.nix
index 35d97712fa40e..59357bf6fb1bd 100644
--- a/pkgs/development/libraries/glui/default.nix
+++ b/pkgs/development/libraries/glui/default.nix
@@ -1,7 +1,7 @@
-{stdenv, fetchurl, freeglut, mesa, libXmu, libXext, libX11, libXi}:
+{stdenv, fetchurl, freeglut, libGLU_combined, libXmu, libXext, libX11, libXi}:
 stdenv.mkDerivation {
   name = "glui-2.35";
-  buildInputs = [freeglut mesa libXmu libXext libX11 libXi];
+  buildInputs = [freeglut libGLU_combined libXmu libXext libX11 libXi];
   preConfigure = ''cd src'';
   installPhase = ''
     mkdir -p "$out"/{bin,lib,share/glui/doc,include}
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index 387ecc1b6cf02..825d666990711 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python
-, libintlOrEmpty, cctools, cairo
+, libintlOrEmpty, cctools, cairo, gnome3
 , substituteAll, nixStoreDir ? builtins.storeDir
 , x11Support ? true
 }:
@@ -8,15 +8,15 @@
 # In that case its about 6MB which could be separated
 
 let
-  ver_maj = "1.54";
-  ver_min = "1";
+  pname = "gobject-introspection";
+  version = "1.54.1";
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "gobject-introspection-${ver_maj}.${ver_min}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gobject-introspection/${ver_maj}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0zl7pfkzkm07733391b4f3cwjbnvb1nwvpmajf5bajh6bxgfv3dq";
   };
 
@@ -50,6 +50,13 @@ stdenv.mkDerivation rec {
       cairoLib = "${getLib cairo}/lib";
     });
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gobjectIntrospection";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "A middleware layer between C libraries and language bindings";
     homepage    = http://live.gnome.org/GObjectIntrospection;
diff --git a/pkgs/development/libraries/gsm/default.nix b/pkgs/development/libraries/gsm/default.nix
index 42d36b8406e21..57112e2825eeb 100644
--- a/pkgs/development/libraries/gsm/default.nix
+++ b/pkgs/development/libraries/gsm/default.nix
@@ -9,11 +9,11 @@ in
 
 stdenv.mkDerivation rec {
   name = "gsm-${version}";
-  version = "1.0.14";
+  version = "1.0.17";
 
   src = fetchurl {
     url = "http://www.quut.com/gsm/${name}.tar.gz";
-    sha256 = "0b1mx69jq88wva3wk0hi6fcl5a52qhnq2f9p3f3jdh5k61ma252q";
+    sha256 = "00bns0d4wwrvc60lj2w7wz4yk49q1f6rpdrwqzrxsha9d78mfnl5";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index 69ade8899195c..d4cc2f43aaa69 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -6,7 +6,7 @@
 , openjpeg, libopus, librsvg
 , wildmidi, fluidsynth, libvdpau, wayland
 , libwebp, xvidcore, gnutls, mjpegtools
-, mesa, libintlOrEmpty, libgme
+, libGLU_combined, libintlOrEmpty, libgme
 , openssl, x265, libxml2
 }:
 
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
     libmodplug mpeg2dec mpg123
     openjpeg libopus librsvg
     fluidsynth libvdpau
-    libwebp xvidcore gnutls mesa
+    libwebp xvidcore gnutls libGLU_combined
     libgme openssl x265 libxml2
   ]
     ++ libintlOrEmpty
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
index 2033c07d9527f..8351cfd65b1e9 100644
--- a/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gst-plugins-base, bzip2, libva, wayland
-, libdrm, udev, xorg, mesa, yasm, gstreamer, gst-plugins-bad, nasm
+, libdrm, udev, xorg, libGLU_combined, yasm, gstreamer, gst-plugins-bad, nasm
 , libvpx, python
 }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     gstreamer gst-plugins-base gst-plugins-bad libva wayland libdrm udev
     xorg.libX11 xorg.libXext xorg.libXv xorg.libXrandr xorg.libSM
-    xorg.libICE mesa nasm libvpx python
+    xorg.libICE libGLU_combined nasm libvpx python
   ];
 
   preConfigure = "
diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix
index 0f95cf7f3c665..189af86708ef4 100644
--- a/pkgs/development/libraries/gtk+/3.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -11,16 +11,12 @@ assert cupsSupport -> cups != null;
 
 with stdenv.lib;
 
-let
-  ver_maj = "3.22";
-  ver_min = "28";
-  version = "${ver_maj}.${ver_min}";
-in
 stdenv.mkDerivation rec {
   name = "gtk+3-${version}";
+  version = "3.22.28";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk+/${ver_maj}/gtk+-${version}.tar.xz";
+    url = "mirror://gnome/sources/gtk+/${gnome3.versionBranch version}/gtk+-${version}.tar.xz";
     sha256 = "d299612b018cfed7b2c689168ab52b668023708e17c335eb592260d186f15e1f";
   };
 
@@ -76,6 +72,13 @@ stdenv.mkDerivation rec {
     moveToOutput bin/gtk-launch "$out"
   '';
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gtk+";
+      attrPath = "gtk3";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "A multi-platform toolkit for creating graphical user interfaces";
 
diff --git a/pkgs/development/libraries/gtkmm/2.x.nix b/pkgs/development/libraries/gtkmm/2.x.nix
index 469c6adc6f765..69fd3f30e92dc 100644
--- a/pkgs/development/libraries/gtkmm/2.x.nix
+++ b/pkgs/development/libraries/gtkmm/2.x.nix
@@ -11,12 +11,14 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [pkgconfig];
+  nativeBuildInputs = [ pkgconfig ];
 
   propagatedBuildInputs = [ glibmm gtk2 atkmm cairomm pangomm ];
 
   doCheck = true;
 
+  enableParallelBuilding = true;
+
   meta = {
     description = "C++ interface to the GTK+ graphical user interface library";
 
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 22fc6cc197602..964344d68922d 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libtool
+{ stdenv, fetchurl, pkgconfig, intltool, libtool, gnome3
 , glib, dbus, udev, libgudev, udisks2, libgcrypt, libcap, polkit
 , libgphoto2, avahi, libarchive, fuse, libcdio, file, bzip2, lzma
 , libxml2, libxslt, docbook_xsl, docbook_xml_dtd_42, samba, libmtp
 , gnomeSupport ? false, gnome, makeWrapper }:
 
 let
-  ver_maj = "1.34";
-  version = "${ver_maj}.1";
+  pname = "gvfs";
+  version = "1.34.2.1";
 in
 stdenv.mkDerivation rec {
-  name = "gvfs-${version}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gvfs/${ver_maj}/${name}.tar.xz";
-    sha256 = "1d3j6f252mk316hrspwy63inrhxk6l78l4bmlmql401lqapb5yby";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "1smmzix8wqrmj10pqy3xhrlv7xza6rpmg2v052gwk9ysxdric9fm";
   };
 
   nativeBuildInputs = [
@@ -43,9 +43,16 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Virtual Filesystem support library" + optionalString gnomeSupport " (full GNOME support)";
+    license = licenses.lgpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ maintainers.lethalman ] ++ gnome3.maintainers;
   };
 }
diff --git a/pkgs/development/libraries/irrlicht/default.nix b/pkgs/development/libraries/irrlicht/default.nix
index 336f446cdf101..d28ae012e5747 100644
--- a/pkgs/development/libraries/irrlicht/default.nix
+++ b/pkgs/development/libraries/irrlicht/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, mesa, unzip, libXrandr, libX11, libXxf86vm }:
+{ stdenv, fetchzip, libGLU_combined, unzip, libXrandr, libX11, libXxf86vm }:
 
 
 stdenv.mkDerivation rec {
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     mkdir -p $out/lib
   '';
 
-  buildInputs = [ unzip mesa libXrandr libX11 libXxf86vm ];
+  buildInputs = [ unzip libGLU_combined libXrandr libX11 libXxf86vm ];
 
   meta = {
     homepage = http://irrlicht.sourceforge.net/;
diff --git a/pkgs/development/libraries/java/dbus-java/default.nix b/pkgs/development/libraries/java/dbus-java/default.nix
index 8ca3bf1cd34a0..23adfd80caac4 100644
--- a/pkgs/development/libraries/java/dbus-java/default.nix
+++ b/pkgs/development/libraries/java/dbus-java/default.nix
@@ -17,9 +17,9 @@ stdenv.mkDerivation {
     sed -i -e "s|all: bin doc man|all: bin|" \
            -e "s|install: install-bin install-man install-doc|install: install-bin|" Makefile
   '';
-  maintainers = [ stdenv.lib.maintainers.sander ];
 
   meta = {
     platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.sander ];
   };
 }
diff --git a/pkgs/development/libraries/java/libmatthew-java/default.nix b/pkgs/development/libraries/java/libmatthew-java/default.nix
index 3b28c3a2bd570..8775353316989 100644
--- a/pkgs/development/libraries/java/libmatthew-java/default.nix
+++ b/pkgs/development/libraries/java/libmatthew-java/default.nix
@@ -9,9 +9,9 @@ stdenv.mkDerivation {
   JAVA_HOME=jdk;
   PREFIX=''''${out}'';
   buildInputs = [ jdk ];
-  maintainers = [ stdenv.lib.maintainers.sander ];
 
   meta = {
     platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.sander ];
   };
 }
diff --git a/pkgs/development/libraries/java/swt/default.nix b/pkgs/development/libraries/java/swt/default.nix
index 2cf08e345758d..1a7153f99e67d 100644
--- a/pkgs/development/libraries/java/swt/default.nix
+++ b/pkgs/development/libraries/java/swt/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, unzip, jdk, pkgconfig, gtk2
-, libXt, libXtst, libXi, mesa, webkit, libsoup, xorg
+, libXt, libXtst, libXi, libGLU_combined, webkit, libsoup, xorg
 , pango, gdk_pixbuf, glib
 }:
 
@@ -36,7 +36,7 @@ in stdenv.mkDerivation rec {
   sourceRoot = ".";
 
   nativeBuildInputs = [ unzip pkgconfig ];
-  buildInputs = [ jdk gtk2 libXt libXtst libXi mesa webkit libsoup ];
+  buildInputs = [ jdk gtk2 libXt libXtst libXi libGLU_combined webkit libsoup ];
 
   NIX_LFLAGS = (map (x: "-L${lib.getLib x}/lib") [ xorg.libX11 pango gdk_pixbuf glib ]) ++
     [ "-lX11" "-lpango-1.0" "-lgdk_pixbuf-2.0" "-lglib-2.0" ];
diff --git a/pkgs/development/libraries/json-c/0.11.nix b/pkgs/development/libraries/json-c/0.11.nix
deleted file mode 100644
index 8c4eab9ede6e1..0000000000000
--- a/pkgs/development/libraries/json-c/0.11.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  name = "json-c-0.11";
-  src = fetchurl {
-    url    = "https://github.com/json-c/json-c/archive/json-c-0.11-20130402.tar.gz";
-    sha256 = "1m8fy7lbahv1r7yqbhw4pl057sxmmgjihm1fsvc3h66710s2i24r";
-  };
-
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=implicit-fallthrough" ];
-
-  meta = with stdenv.lib; {
-    description = "A JSON implementation in C";
-    homepage    = https://github.com/json-c/json-c/wiki;
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
-
-    longDescription = ''
-      JSON-C implements a reference counting object model that allows you to
-      easily construct JSON objects in C, output them as JSON formatted strings
-      and parse JSON formatted strings back into the C representation of JSON
-      objects.
-    '';
-  };
-}
diff --git a/pkgs/development/libraries/json-c/default.nix b/pkgs/development/libraries/json-c/default.nix
index 7317efc53f862..315296ea2dfb3 100644
--- a/pkgs/development/libraries/json-c/default.nix
+++ b/pkgs/development/libraries/json-c/default.nix
@@ -1,23 +1,15 @@
-{ stdenv, fetchurl, autoreconfHook }:
+{ stdenv, fetchurl, autoconf }:
 
 stdenv.mkDerivation rec {
-  name = "json-c-0.12.1";
+  name = "json-c-0.13";
   src = fetchurl {
     url    = "https://s3.amazonaws.com/json-c_releases/releases/${name}-nodoc.tar.gz";
-    sha256 = "148jkvpnxmg1fwwigp0nq9qbd5vzpnmgiw3y34w7k6fymalpsqas";
+    sha256 = "01jsr647faqrcbsrmzb52s9ppa9ll4pscz4nizk3xlp98q37cwl5";
   };
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ autoreconfHook ]; # won't configure without it, no idea why
-
-  # probably OK after update: https://github.com/json-c/json-c/pull/365
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=implicit-fallthrough" ];
-
-  # compatibility hack (for mypaint at least)
-  postInstall = ''
-    ln -s json-c.pc "$dev/lib/pkgconfig/json.pc"
-  '';
+  nativeBuildInputs = [ autoconf ];  # for autoheader
 
   meta = with stdenv.lib; {
     description = "A JSON implementation in C";
diff --git a/pkgs/development/libraries/libagar/default.nix b/pkgs/development/libraries/libagar/default.nix
index ee984a53b4c96..49e5bcdd9058e 100644
--- a/pkgs/development/libraries/libagar/default.nix
+++ b/pkgs/development/libraries/libagar/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, libtool, perl, bsdbuild, gettext, mandoc
-, libpng, libjpeg, xlibsWrapper, libXinerama, freetype, SDL, mesa
+, libpng, libjpeg, xlibsWrapper, libXinerama, freetype, SDL, libGLU_combined
 , libsndfile, portaudio, mysql, fontconfig
 }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     "--enable-nls=yes"
     "--with-gettext=${gettext}"
     "--with-jpeg=${libjpeg.dev}"
-    "--with-gl=${mesa}"
+    "--with-gl=${libGLU_combined}"
     "--with-mysql=${mysql.connector-c}"
     "--with-manpages=yes"
   ];
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig libtool gettext ];
 
   buildInputs = [
-    bsdbuild perl xlibsWrapper libXinerama SDL mesa mysql.connector-c mandoc
+    bsdbuild perl xlibsWrapper libXinerama SDL libGLU_combined mysql.connector-c mandoc
     freetype.dev libpng libjpeg.dev fontconfig portaudio libsndfile
   ];
 
diff --git a/pkgs/development/libraries/libargon2/default.nix b/pkgs/development/libraries/libargon2/default.nix
index 94e8ea05e663e..a1a04a1dd7b2e 100644
--- a/pkgs/development/libraries/libargon2/default.nix
+++ b/pkgs/development/libraries/libargon2/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     homepage = https://www.argon2.com/;
     license = with licenses; [ asl20 cc0 ];
     maintainers = with maintainers; [ taeer olynch ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/libraries/libav/default.nix b/pkgs/development/libraries/libav/default.nix
index a069894f6c8c9..317768518c391 100644
--- a/pkgs/development/libraries/libav/default.nix
+++ b/pkgs/development/libraries/libav/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, yasm, bzip2, zlib, perl
+{ stdenv, fetchurl, pkgconfig, yasm, bzip2, zlib, perl, bash
 , mp3Support    ? true,   lame      ? null
 , speexSupport  ? true,   speex     ? null
 , theoraSupport ? true,   libtheora ? null
@@ -45,7 +45,11 @@ let
       ++ optional (vpxSupport && hasPrefix "0.8." version) ./vpxenc-0.8.17-libvpx-1.5.patch
       ;
 
-    preConfigure = "patchShebangs doc/texi2pod.pl";
+    postPatch = ''
+      patchShebangs .
+      # another shebang was hidden in a here document text
+      substituteInPlace ./configure --replace "#! /bin/sh" "#!${bash}/bin/sh"
+    '';
 
     configureFlags =
       assert stdenv.lib.all (x: x!=null) buildInputs;
@@ -71,8 +75,8 @@ let
       ++ optional freetypeSupport "--enable-libfreetype"
       ;
 
-  nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ lame yasm zlib bzip2 SDL ]
+  nativeBuildInputs = [ pkgconfig perl ];
+    buildInputs = [ lame yasm zlib bzip2 SDL bash ]
       ++ [ perl ] # for install-man target
       ++ optional mp3Support lame
       ++ optional speexSupport speex
@@ -95,6 +99,7 @@ let
     # alltools to build smaller tools, incl. aviocat, ismindex, qt-faststart, etc.
     buildFlags = "all alltools install-man";
 
+
     postInstall = ''
       moveToOutput bin "$bin"
       # alltools target compiles an executable in tools/ for every C
diff --git a/pkgs/development/libraries/libcdio-paranoia/default.nix b/pkgs/development/libraries/libcdio-paranoia/default.nix
new file mode 100644
index 0000000000000..b3aa2b1990604
--- /dev/null
+++ b/pkgs/development/libraries/libcdio-paranoia/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, libcdio, pkgconfig }:
+
+stdenv.mkDerivation {
+  name = "libcdio-paranoia-0.94+2";
+
+  src = fetchFromGitHub {
+    owner = "rocky";
+    repo = "libcdio-paranoia";
+    rev = "release-10.2+0.94+2";
+    sha256 = "1wjgmmaca4baw7k5c3vdap9hnjc49ciagi5kvpvync3aqfmdvkha";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ libcdio ];
+
+  meta = with stdenv.lib; {
+    description = "CD paranoia on top of libcdio";
+    longDescription = ''
+      This is a port of xiph.org's cdda paranoia to use libcdio for CDROM
+      access. By doing this, cdparanoia runs on platforms other than GNU/Linux.
+    '';
+    license = licenses.gpl3;
+    homepage = https://github.com/rocky/libcdio-paranoia;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = [ maintainers.pbogdan ];
+  };
+}
diff --git a/pkgs/development/libraries/libcdio/0.82.nix b/pkgs/development/libraries/libcdio/0.82.nix
deleted file mode 100644
index a4b2e6078d2b3..0000000000000
--- a/pkgs/development/libraries/libcdio/0.82.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchurl, libcddb, pkgconfig, ncurses, help2man, libiconv }:
-
-stdenv.mkDerivation rec {
-  name = "libcdio-0.82";
-
-  src = fetchurl {
-    url = "mirror://gnu/libcdio/${name}.tar.gz";
-    sha256 = "0fax1dzy84dzs20bmpq2gfw6hc1x2x9mhk53wynhcycjw3l3vjqs";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libcddb ncurses help2man ]
-    ++ stdenv.lib.optional stdenv.isDarwin libiconv;
-
-  # Disabled because one test (check_paranoia.sh) fails.
-  #doCheck = true;
-
-  meta = with stdenv.lib; {
-    description = "A library for OS-independent CD-ROM and CD image access";
-    longDescription = ''
-      GNU libcdio is a library for OS-independent CD-ROM and
-      CD image access.  It includes a library for working with
-      ISO-9660 filesystems (libiso9660), as well as utility
-      programs such as an audio CD player and an extractor.
-    '';
-    license = licenses.gpl2Plus;
-    homepage = http://www.gnu.org/software/libcdio/;
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/pkgs/development/libraries/libchamplain/default.nix b/pkgs/development/libraries/libchamplain/default.nix
index 9f60e724ac423..74e5bbc952aec 100644
--- a/pkgs/development/libraries/libchamplain/default.nix
+++ b/pkgs/development/libraries/libchamplain/default.nix
@@ -1,37 +1,43 @@
-{ fetchurl, stdenv, pkgconfig, glib, gtk3, cairo, clutter, sqlite
+{ fetchurl, stdenv, pkgconfig, glib, gtk3, cairo, clutter, sqlite, gnome3
 , clutter-gtk, libsoup, gobjectIntrospection /*, libmemphis */ }:
 
+let
+  pname = "libchamplain";
+  version = "0.12.16";
+in
 stdenv.mkDerivation rec {
-  major = "0.12";
-  version = "${major}.16";
-  name = "libchamplain-${version}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libchamplain/${major}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gobjectIntrospection ];
+  nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
 
   propagatedBuildInputs = [ glib gtk3 cairo clutter-gtk sqlite libsoup ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
-    inherit version;
-    homepage = http://projects.gnome.org/libchamplain/;
+    homepage = https://wiki.gnome.org/Projects/libchamplain;
     license = licenses.lgpl2Plus;
 
     description = "C library providing a ClutterActor to display maps";
 
-    longDescription =
-      '' libchamplain is a C library providing a ClutterActor to display
-         maps.  It also provides a Gtk+ widget to display maps in Gtk+
-         applications.  Python and Perl bindings are also available.  It
-         supports numerous free map sources such as OpenStreetMap,
-         OpenCycleMap, OpenAerialMap, and Maps for free.
-      '';
+    longDescription = ''
+      libchamplain is a C library providing a ClutterActor to display
+       maps.  It also provides a Gtk+ widget to display maps in Gtk+
+       applications.  Python and Perl bindings are also available.  It
+       supports numerous free map sources such as OpenStreetMap,
+       OpenCycleMap, OpenAerialMap, and Maps for free.
+    '';
 
-     maintainers = [ ];
+     maintainers = gnome3.maintainers;
      platforms = platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/development/libraries/libcloudproviders/default.nix b/pkgs/development/libraries/libcloudproviders/default.nix
new file mode 100644
index 0000000000000..6f7a79f9eeac2
--- /dev/null
+++ b/pkgs/development/libraries/libcloudproviders/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, meson, ninja, gtk-doc, docbook_xsl, glib }:
+
+# TODO: Add installed tests once https://gitlab.gnome.org/Incubator/libcloudproviders/issues/4 is fixed
+
+let
+  pname = "libcloudproviders";
+  version = "0.2.5";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://gitlab.gnome.org/Incubator/${pname}/repository/archive.tar.gz?ref=${version}";
+    sha256 = "1c3vfg8wlsv0fmi1lm9qhsqdvp4k33yvwn6j680rh49laayf7k3g";
+  };
+
+  outputs = [ "out" "dev" "devdoc" ];
+
+  mesonFlags = [
+    "-Denable-gtk-doc=true"
+  ];
+
+  nativeBuildInputs = [ meson ninja pkgconfig gtk-doc docbook_xsl ];
+
+  buildInputs = [ glib ];
+
+  meta = with stdenv.lib; {
+    description = "DBus API that allows cloud storage sync clients to expose their services";
+    homepage = https://gitlab.gnome.org/Incubator/libcloudproviders;
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/libcue/default.nix b/pkgs/development/libraries/libcue/default.nix
index e217f5d96db14..fb0f0d3d3f9c0 100644
--- a/pkgs/development/libraries/libcue/default.nix
+++ b/pkgs/development/libraries/libcue/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "libcue-${version}";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "lipnitsk";
     repo = "libcue";
     rev = "v${version}";
-    sha256 = "14a84d6sq3yp8s8i05lxvifjpkgpjwfpchrqf3bbpbwa8gvrc0rj";
+    sha256 = "0znn9scamy1nsz1dzvsamqg46zr7ldfvpxiyzi1ss9d6gbcm0frs";
   };
 
   nativeBuildInputs = [ cmake bison flex ];
diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix
index 20e74cdc15173..f88d20bee7036 100644
--- a/pkgs/development/libraries/libdevil/default.nix
+++ b/pkgs/development/libraries/libdevil/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libjpeg, libpng, libmng, lcms1, libtiff, openexr, mesa_noglu
+{ stdenv, fetchurl, libjpeg, libpng, libmng, lcms1, libtiff, openexr, libGL
 , libX11, pkgconfig, OpenGL
 }:
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  buildInputs = [ libjpeg libpng libmng lcms1 libtiff openexr mesa_noglu libX11 ]
+  buildInputs = [ libjpeg libpng libmng lcms1 libtiff openexr libGL libX11 ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ OpenGL ];
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/development/libraries/libdvbpsi/default.nix b/pkgs/development/libraries/libdvbpsi/default.nix
index ecfa14a43c9a5..0984eb6e00bf6 100644
--- a/pkgs/development/libraries/libdvbpsi/default.nix
+++ b/pkgs/development/libraries/libdvbpsi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "libdvbpsi-${version}";
-  version = "0.2.2";
+  version = "1.3.2";
 
   src = fetchurl {
     url = "http://get.videolan.org/libdvbpsi/${version}/${name}.tar.bz2";
-    sha256 = "1lry2swxqm8mhq0a4rjnc819ngsf2pxnfjajb57lml7yr12j79ls";
+    sha256 = "1zn5hfv4qbahmydbwh59a3b480s3m5ss27r6ml35gqdip7r3jkmc";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/libexttextcat/default.nix b/pkgs/development/libraries/libexttextcat/default.nix
index a9b6394ed5bae..0ba703585bbba 100644
--- a/pkgs/development/libraries/libexttextcat/default.nix
+++ b/pkgs/development/libraries/libexttextcat/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libexttextcat-3.4.1";
+  name = "libexttextcat-3.4.5";
 
   src = fetchurl {
     url = "http://dev-www.libreoffice.org/src/libexttextcat/${name}.tar.xz";
-    sha256 = "0g1spzpsfbv3y8k9m1v53imz18437q93iq101hind7m4x00j6wpl";
+    sha256 = "1j6sjwkyhqvsgyw938bxxfwkzzi1mahk66g5342lv6j89jfvrz8k";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/libf2c/default.nix b/pkgs/development/libraries/libf2c/default.nix
index 78901e2f013ec..2de407e8f6393 100644
--- a/pkgs/development/libraries/libf2c/default.nix
+++ b/pkgs/development/libraries/libf2c/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, unzip}:
 
 stdenv.mkDerivation rec {
-  name = "libf2c-20100903";
+  name = "libf2c-20160102";
 
   src = fetchurl {
     url = http://www.netlib.org/f2c/libf2c.zip;
-    sha256 = "1mcp1lh7gay7hm186dr0wvwd2bc05xydhnc1qy3dqs4n3r102g7i";
+    sha256 = "1q78y8j8xpl8zdzdxmn5ablss56hi5a7vz3idam9l2nfx5q40h6a";
   };
 
   unpackPhase = ''
diff --git a/pkgs/development/libraries/libftdi/default.nix b/pkgs/development/libraries/libftdi/default.nix
index 2f499d3af87f8..fff760c55191b 100644
--- a/pkgs/development/libraries/libftdi/default.nix
+++ b/pkgs/development/libraries/libftdi/default.nix
@@ -14,6 +14,14 @@ stdenv.mkDerivation rec {
 
   # Hack to avoid TMPDIR in RPATHs.
   preFixup = ''rm -rf "$(pwd)" '';
+  configureFlags = [ "--with-async-mode" ];
+
+  # allow async mode. from ubuntu. see:
+  #   https://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/libftdi/trusty/view/head:/debian/patches/04_async_mode.diff
+  patchPhase = ''
+    substituteInPlace ./src/ftdi.c \
+      --replace "ifdef USB_CLASS_PTP" "if 0"
+  '';
 
   meta = {
     description = "A library to talk to FTDI chips using libusb";
diff --git a/pkgs/development/libraries/libglvnd/default.nix b/pkgs/development/libraries/libglvnd/default.nix
index cc285979c6c1e..7ea1ecdd0522e 100644
--- a/pkgs/development/libraries/libglvnd/default.nix
+++ b/pkgs/development/libraries/libglvnd/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchFromGitHub, autoreconfHook, python2, pkgconfig, mesa_noglu, libX11, libXext, glproto }:
+{stdenv, fetchFromGitHub, autoreconfHook, python2, pkgconfig, libGL_driver, libX11, libXext, glproto }:
 
 # Git version is needed for EGL and GLES handling.
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = [
     "-UDEFAULT_EGL_VENDOR_CONFIG_DIRS"
-    "-DDEFAULT_EGL_VENDOR_CONFIG_DIRS=\"${mesa_noglu.driverLink}/share/glvnd/egl_vendor.d\""
+    "-DDEFAULT_EGL_VENDOR_CONFIG_DIRS=\"${libGL_driver.driverLink}/share/glvnd/egl_vendor.d\""
   ];
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libgtop/default.nix b/pkgs/development/libraries/libgtop/default.nix
index 49cd1d163a60d..0a44eee90aa06 100644
--- a/pkgs/development/libraries/libgtop/default.nix
+++ b/pkgs/development/libraries/libgtop/default.nix
@@ -1,21 +1,32 @@
-{ stdenv, fetchurl, glib, pkgconfig, perl, intltool, gobjectIntrospection, libintlOrEmpty }:
+{ stdenv, fetchurl, glib, pkgconfig, perl, gettext, gobjectIntrospection, libintlOrEmpty, gnome3 }:
+let
+  pname = "libgtop";
+  version = "2.38.0";
+in
 stdenv.mkDerivation rec {
-  name = "libgtop-${version}";
-  major = "2.38";
-  version = "${major}.0";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgtop/${major}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "04mnxgzyb26wqk6qij4iw8cxwl82r8pcsna5dg8vz2j3pdi0wv2g";
   };
 
   propagatedBuildInputs = [ glib ];
   buildInputs = libintlOrEmpty;
-  nativeBuildInputs = [ pkgconfig perl intltool gobjectIntrospection ];
+  nativeBuildInputs = [ pkgconfig perl gettext gobjectIntrospection ];
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
 
-  meta = {
-    platforms = with stdenv.lib.platforms; linux ++ darwin;
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library that reads information about processes and the running system";
+    license = licenses.gpl2Plus;
+    maintainers = gnome3.maintainers;
+    platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/development/libraries/libgudev/default.nix b/pkgs/development/libraries/libgudev/default.nix
index a5f8f5036d046..1e1f3eeb4c73e 100644
--- a/pkgs/development/libraries/libgudev/default.nix
+++ b/pkgs/development/libraries/libgudev/default.nix
@@ -1,11 +1,13 @@
-{ stdenv, fetchurl, pkgconfig, udev, glib }:
+{ stdenv, fetchurl, pkgconfig, udev, glib, gnome3 }:
 
-stdenv.mkDerivation rec {
+let
+  pname = "libgudev";
+in stdenv.mkDerivation rec {
   name = "libgudev-${version}";
   version = "232";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgudev/${version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "ee4cb2b9c573cdf354f6ed744f01b111d4b5bed3503ffa956cefff50489c7860";
   };
 
@@ -15,9 +17,16 @@ stdenv.mkDerivation rec {
   # There's a dependency cycle with umockdev and the tests fail to LD_PRELOAD anyway.
   configureFlags = [ "--disable-umockdev" ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Projects/libgudev;
-    maintainers = [ maintainers.eelco ];
+    maintainers = [ maintainers.eelco ] ++ gnome3.maintainers;
     platforms = platforms.linux;
     license = licenses.lgpl2Plus;
   };
diff --git a/pkgs/development/libraries/libhttpseverywhere/default.nix b/pkgs/development/libraries/libhttpseverywhere/default.nix
index f5bdb2069d99d..f39cc2574c9fd 100644
--- a/pkgs/development/libraries/libhttpseverywhere/default.nix
+++ b/pkgs/development/libraries/libhttpseverywhere/default.nix
@@ -1,22 +1,21 @@
 { stdenv, fetchurl, pkgconfig, meson, ninja, valadoc
 , gnome3, glib, json-glib, libarchive, libsoup, gobjectIntrospection }:
 
-stdenv.mkDerivation rec {
-  major = "0.6";
-  minor = "5";
-  version = "${major}.${minor}";
-
-  name = "libhttpseverywhere-${version}";
+let
+  pname = "libhttpseverywhere";
+  version = "0.8.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libhttpseverywhere/${major}/libhttpseverywhere-${version}.tar.xz";
-    sha256 = "0ksf6vqjyjii29dvy5147dmgqlqsq4d70xxai0p2prkx4jrwgj3z";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0igq7g84kfczips3ywhyprxc8v67yrg3kj8lbgny4yyll67kksj3";
   };
 
   nativeBuildInputs = [ gnome3.vala gobjectIntrospection meson ninja pkgconfig valadoc ];
   buildInputs = [ glib gnome3.libgee json-glib libsoup libarchive ];
 
-  mesonFlags = "-Denable_valadoc=true";
+  mesonFlags = [ "-Denable_valadoc=true" ];
 
   doCheck = true;
 
@@ -24,11 +23,17 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "devdoc" ];
 
-  meta = {
-    description = "library to use HTTPSEverywhere in desktop applications";
-    homepage    = https://git.gnome.org/browse/libhttpseverywhere;
-    license     = stdenv.lib.licenses.lgpl3;
-    platforms   = stdenv.lib.platforms.linux;
-    maintainers = with stdenv.lib.maintainers; [ sternenseemann ];
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Library to use HTTPSEverywhere in desktop applications";
+    homepage = https://git.gnome.org/browse/libhttpseverywhere;
+    license = licenses.lgpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ sternenseemann ] ++ gnome3.maintainers;
   };
 }
diff --git a/pkgs/development/libraries/liblo/default.nix b/pkgs/development/libraries/liblo/default.nix
index 9059fe8f84531..ae1d458b0d52a 100644
--- a/pkgs/development/libraries/liblo/default.nix
+++ b/pkgs/development/libraries/liblo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "liblo-0.26";
+  name = "liblo-0.29";
 
   src = fetchurl {
-    url = "mirror://sourceforge/liblo/liblo/0.26/${name}.tar.gz";
-    sha256 = "0n124fv9m8yjxs2yxnp3l1i30b8qgg1zx51y63ax12hpz04zndm6";
+    url = "mirror://sourceforge/liblo/liblo/0.29/${name}.tar.gz";
+    sha256 = "0sn0ckc1d0845mhsaa62wf7f9v0c0ykiq796a30ja5096kib9qdc";
   };
 
   meta = { 
diff --git a/pkgs/development/libraries/libpqxx/default.nix b/pkgs/development/libraries/libpqxx/default.nix
index 51cb1c48e54c1..97fb5f27d9ddb 100644
--- a/pkgs/development/libraries/libpqxx/default.nix
+++ b/pkgs/development/libraries/libpqxx/default.nix
@@ -1,14 +1,18 @@
-{ lib, stdenv, fetchurl, postgresql, python2, gnused }:
+{ lib, stdenv, fetchFromGitHub, postgresql, doxygen, xmlto, python2, gnused }:
 
 stdenv.mkDerivation rec {
-  name = "libpqxx-4.0.1";
+  name = "libpqxx-${version}";
+  version = "6.1.0";
 
-  src = fetchurl {
-    url = "http://pqxx.org/download/software/libpqxx/${name}.tar.gz";
-    sha256 = "0f6wxspp6rx12fkasanb0z2g2gc8dhcfwnxagx8wwqbpg6ifsz09";
+  src = fetchFromGitHub {
+    owner = "jtv";
+    repo = "libpqxx";
+    rev = version;
+    sha256 = "1dv96h10njg115216n2zm6fsvi4kb502hmhhn8cjhlfbxr9vc84q";
   };
 
-  buildInputs = [ postgresql python2 gnused ];
+  nativeBuildInputs = [ gnused python2 ];
+  buildInputs = [ postgresql doxygen xmlto ];
 
   preConfigure = ''
     patchShebangs .
diff --git a/pkgs/development/libraries/libqtav/default.nix b/pkgs/development/libraries/libqtav/default.nix
index 93d8ced49cea9..b291ec2fdf0b9 100644
--- a/pkgs/development/libraries/libqtav/default.nix
+++ b/pkgs/development/libraries/libqtav/default.nix
@@ -1,6 +1,6 @@
 { mkDerivation, lib, fetchFromGitHub, extra-cmake-modules
 , qtbase, qtmultimedia, qtquick1, qttools
-, mesa, libX11
+, libGLU_combined, libX11
 , libass, openal, ffmpeg, libuchardet
 , alsaLib, libpulseaudio, libva
 }:
@@ -14,7 +14,7 @@ mkDerivation rec {
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   buildInputs = [
     qtbase qtmultimedia qtquick1
-    mesa libX11
+    libGLU_combined libX11
     libass openal ffmpeg libuchardet
     alsaLib libpulseaudio libva
   ];
@@ -28,9 +28,9 @@ mkDerivation rec {
   };
 
   # Make sure libqtav finds its libGL dependancy at both link and run time
-  # by adding mesa to rpath. Not sure why it wasn't done automatically like
-  # the other libraries as `mesa` is part of our `buildInputs`.
-  NIX_CFLAGS_LINK = [ "-Wl,-rpath,${mesa}/lib"];
+  # by adding libGLU_combined to rpath. Not sure why it wasn't done automatically like
+  # the other libraries as `libGLU_combined` is part of our `buildInputs`.
+  NIX_CFLAGS_LINK = [ "-Wl,-rpath,${libGLU_combined}/lib"];
 
   preFixup = ''
     mkdir -p "$out/bin"
diff --git a/pkgs/development/libraries/librdmacm/default.nix b/pkgs/development/libraries/librdmacm/default.nix
index 791e59cbc906a..3b84ead7cec15 100644
--- a/pkgs/development/libraries/librdmacm/default.nix
+++ b/pkgs/development/libraries/librdmacm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "librdmacm-${version}";
-  version = "1.0.21";
+  version = "1.1.0";
 
   src = fetchurl {
     url = "https://www.openfabrics.org/downloads/rdmacm/${name}.tar.gz";
-    sha256 = "0yx2wr5dvmf5apvc4f4r2f2mlvn05piwvxsqfb60p3rk4jfx56dx";
+    sha256 = "1ic0qd5ayvkybh4pxc5qx7sqvny1fv4anhxlf1nmsn0h926q844g";
   };
 
   buildInputs = [ libibverbs ];
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index cf43bb9519296..31e9e06dacb5b 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -1,21 +1,19 @@
 { lib, stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, pango, cairo, libxml2, libgsf
-, bzip2, libcroco, libintlOrEmpty, darwin, rust
+, bzip2, libcroco, libintlOrEmpty, darwin, rust, gnome3
 , withGTK ? false, gtk3 ? null
 , gobjectIntrospection ? null, enableIntrospection ? false }:
 
 # no introspection by default, it's too big
 
 let
+  pname = "librsvg";
   version = "2.42.2";
-  releaseVersion = (lib.concatStringsSep "." (lib.lists.take 2
-    (lib.splitString "." version)));
-
 in
 stdenv.mkDerivation rec {
-  name = "librsvg-${version}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url    = "mirror://gnome/sources/librsvg/${releaseVersion}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0c550a0bffef768a436286116c03d9f6cd3f97f5021c13e7f093b550fac12562";
   };
 
@@ -66,7 +64,17 @@ stdenv.mkDerivation rec {
     rm $GDK_PIXBUF/loaders.cache.tmp
   '';
 
-  meta = {
-    platforms = stdenv.lib.platforms.unix;
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "A small library to render SVG images to Cairo surfaces";
+    homepage = https://wiki.gnome.org/Projects/LibRsvg;
+    license = licenses.lgpl2Plus;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libsecret/default.nix b/pkgs/development/libraries/libsecret/default.nix
index a116e2c0babd0..4ff00d777691c 100644
--- a/pkgs/development/libraries/libsecret/default.nix
+++ b/pkgs/development/libraries/libsecret/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchurl, glib, pkgconfig, intltool, libxslt, docbook_xsl, gtk-doc
-, libgcrypt, gobjectIntrospection, vala_0_38 }:
+, libgcrypt, gobjectIntrospection, vala_0_38, gnome3 }:
 let
+  pname = "libsecret";
   version = "0.18.5";
 in
 stdenv.mkDerivation rec {
-  name = "libsecret-${version}";
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libsecret/0.18/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "1cychxc3ff8fp857iikw0n2s13s2mhw2dn1mr632f7w3sn6vvrww";
   };
 
@@ -20,6 +21,12 @@ stdenv.mkDerivation rec {
   buildInputs = [ libgcrypt gobjectIntrospection vala_0_38 ];
   # optional: build docs with gtk-doc? (probably needs a flag as well)
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = {
     description = "A library for storing and retrieving passwords and other secrets";
     homepage = https://wiki.gnome.org/Projects/Libsecret;
diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix
index b67e41a0dc6e2..46b9273094a71 100644
--- a/pkgs/development/libraries/libsoup/default.nix
+++ b/pkgs/development/libraries/libsoup/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, fetchpatch, glib, libxml2, pkgconfig
+{ stdenv, fetchurl, fetchpatch, glib, libxml2, pkgconfig, gnome3
 , gnomeSupport ? true, libgnome-keyring3, sqlite, glib-networking, gobjectIntrospection
 , valaSupport ? true, vala_0_38
 , libintlOrEmpty
 , intltool, python }:
 let
-  majorVersion = "2.60";
-  version = "${majorVersion}.2";
+  pname = "libsoup";
+  version = "2.60.2";
 in
-stdenv.mkDerivation {
-  name = "libsoup-${version}";
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libsoup/${majorVersion}/libsoup-${version}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "7263cfe18872e2e652c196f5667e514616d9c97c861dfca82a65a55f45f0da01";
   };
 
@@ -38,7 +38,6 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ glib libxml2 gobjectIntrospection ]
     ++ stdenv.lib.optionals gnomeSupport [ libgnome-keyring3 ];
-  passthru.propagatedUserEnvPackages = [ glib-networking.out ];
 
   # glib-networking is a runtime dependency, not a compile-time dependency
   configureFlags = "--disable-tls-check"
@@ -47,7 +46,17 @@ stdenv.mkDerivation {
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
 
+  passthru = {
+    propagatedUserEnvPackages = [ glib-networking.out ];
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = {
+    description = "HTTP client/server library for GNOME";
+    homepage = https://wiki.gnome.org/Projects/libsoup;
+    license = stdenv.lib.licenses.gpl2;
     inherit (glib.meta) maintainers platforms;
   };
 }
diff --git a/pkgs/development/libraries/libtcod/default.nix b/pkgs/development/libraries/libtcod/default.nix
index 0374c7f89b7a3..4e859c282276c 100644
--- a/pkgs/development/libraries/libtcod/default.nix
+++ b/pkgs/development/libraries/libtcod/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromBitbucket, cmake, SDL, mesa, upx, zlib }:
+{ stdenv, fetchFromBitbucket, cmake, SDL, libGLU_combined, upx, zlib }:
 
 stdenv.mkDerivation rec {
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags="-DLIBTCOD_SAMPLES=OFF";
 
-  buildInputs = [ cmake SDL mesa upx zlib ];
+  buildInputs = [ cmake SDL libGLU_combined upx zlib ];
 
   meta = {
     description = "API for roguelike games";
diff --git a/pkgs/development/libraries/libtxc_dxtn/default.nix b/pkgs/development/libraries/libtxc_dxtn/default.nix
index 82aba6b89f5a0..9775700501584 100644
--- a/pkgs/development/libraries/libtxc_dxtn/default.nix
+++ b/pkgs/development/libraries/libtxc_dxtn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoreconfHook, mesa }:
+{ stdenv, fetchurl, autoreconfHook, libGLU_combined }:
 
 let version = "1.0.1"; in
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ mesa ];
+  buildInputs = [ libGLU_combined ];
 
   meta = {
     homepage = http://dri.freedesktop.org/wiki/S3TC;
diff --git a/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix b/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix
index 387dbb22a8163..aad8ae00c1148 100644
--- a/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix
+++ b/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoreconfHook, mesa }:
+{ stdenv, fetchurl, autoreconfHook, libGLU_combined }:
 
 let version = "1.0"; in
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ mesa ];
+  buildInputs = [ libGLU_combined ];
 
   meta = {
     description = "A patent-free S3TC compatible implementation";
diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix
index ddc0d9e87df05..6b8c3631fb370 100644
--- a/pkgs/development/libraries/libva/default.nix
+++ b/pkgs/development/libraries/libva/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, autoreconfHook, pkgconfig
 , libXext, libdrm, libXfixes, wayland, libffi, libX11
-, mesa_noglu
+, libGL
 , minimal ? true, libva
 }:
 
@@ -21,13 +21,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
 
   buildInputs = [ libdrm ]
-    ++ lib.optionals (!minimal) [ libva libX11 libXext libXfixes wayland libffi mesa_noglu ];
+    ++ lib.optionals (!minimal) [ libva libX11 libXext libXfixes wayland libffi libGL ];
   # TODO: share libs between minimal and !minimal - perhaps just symlink them
 
   enableParallelBuilding = true;
 
   configureFlags = [
-    "--with-drivers-path=${mesa_noglu.driverLink}/lib/dri"
+    "--with-drivers-path=${libGL.driverLink}/lib/dri"
   ] ++ lib.optionals (!minimal) [ "--enable-glx" ];
 
   installFlags = [
diff --git a/pkgs/development/libraries/libvdpau-va-gl/default.nix b/pkgs/development/libraries/libvdpau-va-gl/default.nix
index 4285b05a62509..3ea0155b4f42a 100644
--- a/pkgs/development/libraries/libvdpau-va-gl/default.nix
+++ b/pkgs/development/libraries/libvdpau-va-gl/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig, libX11, libpthreadstubs, libXau, libXdmcp
-, libXext, libvdpau, glib, libva, ffmpeg, mesa_glu }:
+, libXext, libvdpau, glib, libva, ffmpeg, libGLU }:
 
 stdenv.mkDerivation rec {
   name = "libvdpau-va-gl-${version}";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = [ libX11 libpthreadstubs libXau libXdmcp libXext libvdpau glib libva ffmpeg mesa_glu ];
+  buildInputs = [ libX11 libpthreadstubs libXau libXdmcp libXext libvdpau glib libva ffmpeg libGLU ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/i-rinat/libvdpau-va-gl;
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index eccee83fa85e5..eebdc29419741 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, xorg, mesa_noglu }:
+{ stdenv, fetchurl, pkgconfig, xorg, libGL }:
 
 stdenv.mkDerivation rec {
   name = "libvdpau-1.1.1";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ xorg.libX11 ];
 
   configureFlags = stdenv.lib.optional stdenv.isLinux
-    "--with-module-dir=${mesa_noglu.driverLink}/lib/vdpau";
+    "--with-module-dir=${libGL.driverLink}/lib/vdpau";
 
   installFlags = [ "moduledir=$(out)/lib/vdpau" ];
 
diff --git a/pkgs/development/libraries/libwebp/default.nix b/pkgs/development/libraries/libwebp/default.nix
index 79a5bef30fcfa..f7d4fc3b3675a 100644
--- a/pkgs/development/libraries/libwebp/default.nix
+++ b/pkgs/development/libraries/libwebp/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl
 , threadingSupport ? true # multi-threading
-, openglSupport ? false, freeglut ? null, mesa ? null # OpenGL (required for vwebp)
+, openglSupport ? false, freeglut ? null, libGLU_combined ? null # OpenGL (required for vwebp)
 , pngSupport ? true, libpng ? null # PNG image format
 , jpegSupport ? true, libjpeg ? null # JPEG image format
 , tiffSupport ? true, libtiff ? null # TIFF image format
@@ -14,7 +14,7 @@
 , libwebpdecoderSupport ? true # Build libwebpdecoder
 }:
 
-assert openglSupport -> ((freeglut != null) && (mesa != null));
+assert openglSupport -> ((freeglut != null) && (libGLU_combined != null));
 assert pngSupport -> (libpng != null);
 assert jpegSupport -> (libjpeg != null);
 assert tiffSupport -> (libtiff != null);
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [ ]
-    ++ optionals openglSupport [ freeglut mesa ]
+    ++ optionals openglSupport [ freeglut libGLU_combined ]
     ++ optional pngSupport libpng
     ++ optional jpegSupport libjpeg
     ++ optional tiffSupport libtiff
diff --git a/pkgs/development/libraries/libwhereami/default.nix b/pkgs/development/libraries/libwhereami/default.nix
index a119ae8795bef..880ebcc1e468f 100644
--- a/pkgs/development/libraries/libwhereami/default.nix
+++ b/pkgs/development/libraries/libwhereami/default.nix
@@ -2,15 +2,18 @@
 
 stdenv.mkDerivation rec {
   name = "libwhereami-${version}";
-  version = "0.1.3";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
-    sha256 = "0mpy2rkxcm2nz1qvldih01czxlsksqfkzgh58pnrw8yva31wv9q6";
+    sha256 = "10phq4a11m8ly6b4dc2yg3dnjzg8ad5wnjv0ilvwylnw32800pxr";
     rev = version;
     repo = "libwhereami";
     owner = "puppetlabs";
   };
 
+  # post gcc7, upstream bug: https://tickets.puppetlabs.com/browse/FACT-1828
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated";
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ boost curl leatherman ];
diff --git a/pkgs/development/libraries/libzdb/default.nix b/pkgs/development/libraries/libzdb/default.nix
index a5799f79b56b6..9d9d8f54e1428 100644
--- a/pkgs/development/libraries/libzdb/default.nix
+++ b/pkgs/development/libraries/libzdb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec
 {
-  version = "3.0";
+  version = "3.1";
   name = "libzdb-${version}";
 
   src = fetchurl
   {
     url = "http://www.tildeslash.com/libzdb/dist/libzdb-${version}.tar.gz";
-    sha256 = "e334bcb9ca1410e863634a164e3b1b5784018eb6e90b6c2b527780fc29a123c8";
+    sha256 = "1596njvy518x7vsvsykmnk1ky82x8jxd6nmmp551y6hxn2qsn08g";
   };
 
   buildInputs = [ sqlite ];
diff --git a/pkgs/development/libraries/liquidfun/default.nix b/pkgs/development/libraries/liquidfun/default.nix
index a4dc7b5e93d19..9c1815f840b4e 100644
--- a/pkgs/development/libraries/liquidfun/default.nix
+++ b/pkgs/development/libraries/liquidfun/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, requireFile, cmake, mesa, libX11, libXi }:
+{ stdenv, requireFile, cmake, libGLU_combined, libX11, libXi }:
 
 let 
   sourceInfo = rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   inherit (sourceInfo) name version;
-  buildInputs = [ cmake mesa libX11 libXi ];
+  buildInputs = [ cmake libGLU_combined libX11 libXi ];
 
   sourceRoot = "liquidfun/Box2D/";
 
diff --git a/pkgs/development/libraries/mbedtls/default.nix b/pkgs/development/libraries/mbedtls/default.nix
index f84e00dfadf7f..91fcba97e184c 100644
--- a/pkgs/development/libraries/mbedtls/default.nix
+++ b/pkgs/development/libraries/mbedtls/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, perl }:
 
 stdenv.mkDerivation rec {
-  name = "mbedtls-2.6.1";
+  name = "mbedtls-2.7.1";
 
   src = fetchFromGitHub {
     owner = "ARMmbed";
     repo = "mbedtls";
     rev = name;
-    sha256 = "0d421w9bz4p1nw6kza3licv2w97y1364mcpb4fxvpgdqz48rc1vg";
+    sha256 = "0dkmhvs38sqgnfxgzrs81ghajyyzp9bb7wy9kn96q7zy4lly0gg6";
   };
 
   nativeBuildInputs = [ perl ];
diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index 90f1543676430..8b756e338e483 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, intltool, alsaLib, libpulseaudio, speex, gsm
-, libopus, ffmpeg, libX11, libXv, mesa, glew, libtheora, libvpx, SDL, libupnp
+, libopus, ffmpeg, libX11, libXv, libGLU_combined, glew, libtheora, libvpx, SDL, libupnp
 , ortp, libv4l, libpcap, srtp, fetchFromGitHub, cmake, bctoolbox, doxygen
 , python, libXext, libmatroska, openssl, fetchpatch
 }:
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     alsaLib libpulseaudio speex gsm libopus
-    ffmpeg libX11 libXv mesa glew libtheora libvpx SDL libupnp
+    ffmpeg libX11 libXv libGLU_combined glew libtheora libvpx SDL libupnp
     ortp libv4l libpcap srtp bctoolbox libXext libmatroska
     openssl
   ];
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 6ae29ccfa72c8..fbbfe44e27e83 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -14,7 +14,7 @@
 }:
 
 /** Packaging design:
-  - The basic mesa ($out) contains headers and libraries (GLU is in mesa_glu now).
+  - The basic mesa ($out) contains headers and libraries (GLU is in libGLU now).
     This or the mesa attribute (which also contains GLU) are small (~ 2 MB, mostly headers)
     and are designed to be the buildInput of other packages.
   - DRI drivers are compiled into $drivers output, which is much bigger and
diff --git a/pkgs/development/libraries/mps/default.nix b/pkgs/development/libraries/mps/default.nix
index 5a841f165cabe..aac9dc7f727a1 100644
--- a/pkgs/development/libraries/mps/default.nix
+++ b/pkgs/development/libraries/mps/default.nix
@@ -12,6 +12,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ sqlite ];
 
+  # needed for 1.116.0 to build with gcc7
+  NIX_CFLAGS_COMPILE = [
+    "-Wno-implicit-fallthrough"
+  ];
+
+
   meta = {
     description = "A flexible memory management and garbage collection library";
     homepage    = "https://www.ravenbrook.com/project/mps";
diff --git a/pkgs/development/libraries/mygui/default.nix b/pkgs/development/libraries/mygui/default.nix
index 715d2cb90f47a..f4a869255f8c1 100644
--- a/pkgs/development/libraries/mygui/default.nix
+++ b/pkgs/development/libraries/mygui/default.nix
@@ -1,5 +1,5 @@
 {  stdenv, fetchFromGitHub, libX11, unzip, cmake, ois, freetype, libuuid,
-   boost, pkgconfig, withOgre ? false, ogre ? null, mesa ? null } :
+   boost, pkgconfig, withOgre ? false, ogre ? null, libGLU_combined ? null } :
 
 let
   renderSystem = if withOgre then "3" else "4";
@@ -17,7 +17,7 @@ in stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libX11 unzip cmake ois freetype libuuid boost (if withOgre then ogre else mesa) ];
+  buildInputs = [ libX11 unzip cmake ois freetype libuuid boost (if withOgre then ogre else libGLU_combined) ];
 
   # Tools are disabled due to compilation failures.
   cmakeFlags = [ "-DMYGUI_BUILD_TOOLS=OFF" "-DMYGUI_BUILD_DEMOS=OFF" "-DMYGUI_RENDERSYSTEM=${renderSystem}" ];
diff --git a/pkgs/development/libraries/nanoflann/default.nix b/pkgs/development/libraries/nanoflann/default.nix
index 387632a890f03..b5d4ea0f4ebf7 100644
--- a/pkgs/development/libraries/nanoflann/default.nix
+++ b/pkgs/development/libraries/nanoflann/default.nix
@@ -1,14 +1,14 @@
 {stdenv, fetchFromGitHub, cmake}:
 
 stdenv.mkDerivation rec {
-  version = "1.1.9";
+  version = "1.2.3";
   name = "nanoflann-${version}";
   
   src = fetchFromGitHub {
     owner = "jlblancoc";
     repo = "nanoflann";
     rev = "v${version}";
-    sha256 = "1q588cf2aark45bp4ciqjiz3dkdv8dcijkhm1ybzs8qjdzz9fimn";
+    sha256 = "1jrh73kjvdv7s7zc1sc3z254i17lpvn77b19wx32nvzsfxs4g44i";
   };
 
   buildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/nlohmann_json/default.nix b/pkgs/development/libraries/nlohmann_json/default.nix
index 9fb614cd071ac..d4699b1c5062c 100644
--- a/pkgs/development/libraries/nlohmann_json/default.nix
+++ b/pkgs/development/libraries/nlohmann_json/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "nlohmann_json-${version}";
-  version = "2.1.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "nlohmann";
     repo = "json";
     rev = "v${version}";
-    sha256 = "116309lx77m31x4krln0g7mra900g0knk9lbkxbpxnmamkagjyl9";
+    sha256 = "0s5xiyvnvxc2k0zkyb12mm5cwn61lavyxlfpknlx5f243g1xi6f6";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/nss_wrapper/default.nix b/pkgs/development/libraries/nss_wrapper/default.nix
index 9051d96eff79b..969e7534eac43 100644
--- a/pkgs/development/libraries/nss_wrapper/default.nix
+++ b/pkgs/development/libraries/nss_wrapper/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, cmake, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "nss_wrapper-1.0.3";
+  name = "nss_wrapper-1.1.3";
 
   src = fetchurl {
     url = "mirror://samba/cwrap/${name}.tar.gz";
-    sha256 = "0bysdijvi9n0jk74iklbfhbp0kvv81a727lcfd5q03q2hkzjfm18";
+    sha256 = "18rsaw8r8xwn5003arc7xw8iliwbmzxfxgacmp6lhsdwqla4rf69";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/ocl-icd/default.nix b/pkgs/development/libraries/ocl-icd/default.nix
index 75dda07494d9b..afd2a7b12dfaa 100644
--- a/pkgs/development/libraries/ocl-icd/default.nix
+++ b/pkgs/development/libraries/ocl-icd/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, ruby, opencl-headers, mesa_noglu }:
+{stdenv, fetchurl, ruby, opencl-headers, libGL }:
 
 stdenv.mkDerivation rec {
   name = "ocl-icd-${version}";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ opencl-headers ];
 
   postPatch = ''
-    sed -i 's,"/etc/OpenCL/vendors","${mesa_noglu.driverLink}/etc/OpenCL/vendors",g' ocl_icd_loader.c
+    sed -i 's,"/etc/OpenCL/vendors","${libGL.driverLink}/etc/OpenCL/vendors",g' ocl_icd_loader.c
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/ogre/1.9.x.nix b/pkgs/development/libraries/ogre/1.9.x.nix
index b3b6e918bdeaf..694fbaa50c1c8 100644
--- a/pkgs/development/libraries/ogre/1.9.x.nix
+++ b/pkgs/development/libraries/ogre/1.9.x.nix
@@ -1,5 +1,5 @@
 { fetchFromGitHub, stdenv, lib
-, cmake, mesa
+, cmake, libGLU_combined
 , freetype, freeimage, zziplib, randrproto, libXrandr
 , libXaw, freeglut, libXt, libpng, boost, ois
 , xproto, libX11, libXmu, libSM, pkgconfig
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   buildInputs =
-   [ cmake mesa
+   [ cmake libGLU_combined
      freetype freeimage zziplib randrproto libXrandr
      libXaw freeglut libXt libpng boost ois
      xproto libX11 libXmu libSM pkgconfig
diff --git a/pkgs/development/libraries/ogre/default.nix b/pkgs/development/libraries/ogre/default.nix
index e0d6d2fa41c75..0b7202459f9ee 100644
--- a/pkgs/development/libraries/ogre/default.nix
+++ b/pkgs/development/libraries/ogre/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, lib
-, cmake, mesa
+, cmake, libGLU_combined
 , freetype, freeimage, zziplib, randrproto, libXrandr
 , libXaw, freeglut, libXt, libpng, boost, ois
 , xproto, libX11, libXmu, libSM, pkgconfig
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   buildInputs =
-   [ cmake mesa
+   [ cmake libGLU_combined
      freetype freeimage zziplib randrproto libXrandr
      libXaw freeglut libXt libpng boost ois
      xproto libX11 libXmu libSM pkgconfig
diff --git a/pkgs/development/libraries/opencascade/default.nix b/pkgs/development/libraries/opencascade/default.nix
index c2fba26ba686d..6af15d90cefda 100644
--- a/pkgs/development/libraries/opencascade/default.nix
+++ b/pkgs/development/libraries/opencascade/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, mesa, tcl, tk, file, libXmu, cmake, libtool, qt4,
+{stdenv, fetchurl, libGLU_combined, tcl, tk, file, libXmu, cmake, libtool, qt4,
 ftgl, freetype}:
 
 stdenv.mkDerivation rec {
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0vpmnb0k5y2f7lpmwx9pg9yfq24zjvnsak5alzacncfm1hv9b6cd";
   };
 
-  buildInputs = [ mesa tcl tk file libXmu libtool qt4 ftgl freetype cmake ];
+  buildInputs = [ libGLU_combined tcl tk file libXmu libtool qt4 ftgl freetype cmake ];
 
   # Fix for glibc 2.26
   postPatch = ''
diff --git a/pkgs/development/libraries/opencsg/default.nix b/pkgs/development/libraries/opencsg/default.nix
index 9b5f2c7097aec..2724976c5ae8c 100644
--- a/pkgs/development/libraries/opencsg/default.nix
+++ b/pkgs/development/libraries/opencsg/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, mesa, freeglut, glew, libXmu, libXext, libX11
+{stdenv, fetchurl, libGLU_combined, freeglut, glew, libXmu, libXext, libX11
   }:
 
 stdenv.mkDerivation rec {
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1ysazynm759gnw1rdhn9xw9nixnzrlzrc462340a6iif79fyqlnr";
   };
 
-  buildInputs = [mesa freeglut glew libXmu libXext libX11];
+  buildInputs = [libGLU_combined freeglut glew libXmu libXext libX11];
 
   doCheck = false;
 
diff --git a/pkgs/development/libraries/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix
index ff3ac3b036351..49574a4b421b5 100644
--- a/pkgs/development/libraries/opencv/3.x.nix
+++ b/pkgs/development/libraries/opencv/3.x.nix
@@ -25,6 +25,7 @@
 , enableFfmpeg    ? false, ffmpeg
 , enableGStreamer ? false, gst_all_1
 , enableTesseract ? false, tesseract, leptonica
+, enableTbb       ? false, tbb
 , enableOvis      ? false, ogre
 , enableGPhoto2   ? false, libgphoto2
 , enableDC1394    ? false, libdc1394
@@ -34,20 +35,20 @@
 }:
 
 let
-  version = "3.4.0";
+  version = "3.4.1";
 
   src = fetchFromGitHub {
     owner  = "opencv";
     repo   = "opencv";
     rev    = version;
-    sha256 = "1nc14kvsjwaisv7d1r6f0hn7na9zr2cm2zh3hd3r9qwm3g78xnac";
+    sha256 = "08yahgf427d2qbs2mw02xww6bv5yjkfc1hihihh7fhqgfz0jnj1h";
   };
 
   contribSrc = fetchFromGitHub {
     owner  = "opencv";
     repo   = "opencv_contrib";
     rev    = version;
-    sha256 = "1cxw7nra3f1hng057c6hi1ynsyqdazd69irjdgn8xjg6q9h76br0";
+    sha256 = "00x1x53qv2pnc7i56244b5nf44wm2mp77hj486i5697r6hikk8n3";
   };
 
   # Contrib must be built in order to enable Tesseract support:
@@ -151,14 +152,6 @@ stdenv.mkDerivation rec {
   name = "opencv-${version}";
   inherit version src;
 
-  patches = [
-    # Fix for: https://github.com/opencv/opencv/issues/10474
-    (fetchpatch {
-      url = "https://github.com/opencv/opencv/commit/ea5a3e557f93844fdb5e54e3e8acfc5f61c6fd9f.patch";
-      sha256 = "1w7jmqlrx73ydh9jjsnnic5xz8r04kxbjpzkcfyb91v3az9132r1";
-    })
-  ];
-
   postUnpack = lib.optionalString buildContrib ''
     cp --no-preserve=mode -r "${contribSrc}/modules" "$NIX_BUILD_TOP/opencv_contrib"
   '';
@@ -211,6 +204,7 @@ stdenv.mkDerivation rec {
     # simply enabled automatically if contrib is built, and it detects
     # tesseract & leptonica.
     ++ lib.optionals enableTesseract [ tesseract leptonica ]
+    ++ lib.optional enableTbb tbb
     ++ lib.optional enableCuda cudatoolkit
     ++ lib.optionals stdenv.isDarwin [ AVFoundation Cocoa QTKit VideoDecodeAcceleration bzip2 ]
     ++ lib.optionals enableDocs [ doxygen graphviz-nox ];
@@ -231,6 +225,7 @@ stdenv.mkDerivation rec {
     "-DOPENCV_ENABLE_NONFREE=${printEnabled enableUnfree}"
     "-DBUILD_TESTS=OFF"
     "-DBUILD_PERF_TESTS=OFF"
+    "-DBUILD_DOCS=${printEnabled enableDocs}"
     (opencvFlag "IPP" enableIpp)
     (opencvFlag "TIFF" enableTIFF)
     (opencvFlag "JASPER" enableJPEG2K)
@@ -240,6 +235,7 @@ stdenv.mkDerivation rec {
     (opencvFlag "OPENEXR" enableEXR)
     (opencvFlag "CUDA" enableCuda)
     (opencvFlag "CUBLAS" enableCuda)
+    (opencvFlag "TBB" enableTbb)
   ] ++ lib.optionals enableCuda [
     "-DCUDA_FAST_MATH=ON"
     "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
diff --git a/pkgs/development/libraries/openexrid-unstable/default.nix b/pkgs/development/libraries/openexrid-unstable/default.nix
index fcf4c2c2468f3..d8198357c641d 100644
--- a/pkgs/development/libraries/openexrid-unstable/default.nix
+++ b/pkgs/development/libraries/openexrid-unstable/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, unzip, re2, openfx, zlib, ilmbase, mesa, openexr }:
+{ stdenv, fetchFromGitHub, unzip, re2, openfx, zlib, ilmbase, libGLU_combined, openexr }:
 
 stdenv.mkDerivation rec
 {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec
                        -I${openfx.dev}/include/OpenFX
                       '';
 
-  buildInputs = [ unzip re2 openfx zlib ilmbase mesa openexr ];
+  buildInputs = [ unzip re2 openfx zlib ilmbase libGLU_combined openexr ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/opensubdiv/default.nix b/pkgs/development/libraries/opensubdiv/default.nix
index a78a584a4a52f..2886ef2b6b0f6 100644
--- a/pkgs/development/libraries/opensubdiv/default.nix
+++ b/pkgs/development/libraries/opensubdiv/default.nix
@@ -1,23 +1,23 @@
-{ lib, stdenv, fetchurl, fetchFromGitHub, cmake, pkgconfig, xorg, mesa_glu
-, mesa_noglu, glew, ocl-icd, python3
+{ lib, stdenv, fetchurl, fetchFromGitHub, cmake, pkgconfig, xorg, libGLU
+, libGL, glew, ocl-icd, python3
 , cudaSupport ? false, cudatoolkit
 }:
 
 stdenv.mkDerivation rec {
   name = "opensubdiv-${version}";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "PixarAnimationStudios";
     repo = "OpenSubdiv";
     rev = "v${lib.replaceChars ["."] ["_"] version}";
-    sha256 = "0wpjwfik4q9s4r30hndhzmfyzv968mmg5lgng0123l07mn47d2yl";
+    sha256 = "1s96038yvf8wch5gv537iigqflxx7rh9wwn3wlrk8f9yfdwv1mk1";
   };
 
   outputs = [ "out" "dev" ];
 
   buildInputs =
-    [ cmake pkgconfig mesa_glu mesa_noglu ocl-icd python3
+    [ cmake pkgconfig libGLU libGL ocl-icd python3
       # FIXME: these are not actually needed, but the configure script wants them.
       glew xorg.libX11 xorg.libXrandr xorg.libXxf86vm xorg.libXcursor
       xorg.libXinerama xorg.libXi
diff --git a/pkgs/development/libraries/openvdb/default.nix b/pkgs/development/libraries/openvdb/default.nix
index 2940ab45eaaf6..f9540d2c4d20c 100644
--- a/pkgs/development/libraries/openvdb/default.nix
+++ b/pkgs/development/libraries/openvdb/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec
 {
   name = "openvdb-${version}";
-  version = "4.0.2";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "dreamworksanimation";
     repo = "openvdb";
     rev = "v${version}";
-    sha256 = "0kqlsfa9rdpxpw7v61vfknvs11axh196ilqk6bnyyfkslmmcak45";
+    sha256 = "162l1prgdyf571bgxc621gicl40b050ny64f0jmnhz0h5xq6sfrv";
   };
 
   outputs = [ "out" ];
diff --git a/pkgs/development/libraries/pangolin/default.nix b/pkgs/development/libraries/pangolin/default.nix
index 09cbd86eb92b2..6fb123f509499 100644
--- a/pkgs/development/libraries/pangolin/default.nix
+++ b/pkgs/development/libraries/pangolin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, doxygen, mesa_noglu, glew
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, doxygen, libGL, glew
 , xorg , ffmpeg, python3 , libjpeg, libpng, libtiff, eigen
 , Carbon ? null, Cocoa ? null
 }:
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkgconfig doxygen ]; 
 
   buildInputs = [ 
-    mesa_noglu 
+    libGL 
     glew 
     xorg.libX11 
     ffmpeg 
diff --git a/pkgs/development/libraries/partio/default.nix b/pkgs/development/libraries/partio/default.nix
index 4f93ed5621151..b45ed29669162 100644
--- a/pkgs/development/libraries/partio/default.nix
+++ b/pkgs/development/libraries/partio/default.nix
@@ -1,30 +1,28 @@
-{ stdenv, fetchFromGitHub, unzip, cmake, freeglut, mesa, zlib, swig, python, doxygen, xorg }:
+{ stdenv, fetchFromGitHub, unzip, cmake, freeglut, libGLU_combined, zlib, swig, python, doxygen, xorg }:
 
 stdenv.mkDerivation rec
 {
   name = "partio-${version}";
-  version = "1.1.0";
+  version = "2018-03-01";
 
   src = fetchFromGitHub {
     owner = "wdas";
     repo = "partio";
-    rev = "v${version}";
-    sha256 = "0z7n5ay21ca7g7xb80v6jmr96x9k7vm7zawawvmx71yj32rg1n34";
+    rev = "8b6ea0d20f1ab77cd7f18390999251e60932de4a";
+    sha256 = "16sdj103v02l2dgq9y9cna9jakafabz9jxzdxsd737ir6wn10ksb";
   };
 
   outputs = [ "dev" "out" "lib" ];
 
-  buildInputs = [ unzip cmake freeglut mesa zlib swig python doxygen xorg.libXi xorg.libXmu ];
+  nativeBuildInputs = [ unzip cmake doxygen ];
+  buildInputs = [ freeglut libGLU_combined zlib swig python xorg.libXi xorg.libXmu ];
 
   enableParallelBuilding = true;
 
   buildPhase = ''
-    sed 's/ADD_LIBRARY (partio /ADD_LIBRARY (partio SHARED /' -i ../src/lib/CMakeLists.txt
-    CXXFLAGS="-std=c++11" cmake .
     make partio
 
     mkdir $dev
-    mkdir -p $lib/lib
     mkdir $out
       '';
 
@@ -32,19 +30,16 @@ stdenv.mkDerivation rec
   # Sexpr support
 
   installPhase = ''
-    mkdir $dev/lib
-    mkdir -p $dev/include/partio
-
-    mv lib/libpartio.so $lib/lib
-
-    mv ../src/lib/* $dev/include/partio
+    make install prefix=$out
+    mkdir $dev/include/partio
+    mv $dev/include/*.h $dev/include/partio
   '';
 
   meta = with stdenv.lib; {
     description = "C++ (with python bindings) library for easily reading/writing/manipulating common animation particle formats such as PDB, BGEO, PTC";
     homepage = "https://www.disneyanimation.com/technology/partio.html";
     license = licenses.bsd3;
-    platforms = platforms.all;
+    platforms = platforms.linux;
     maintainers = [ maintainers.guibou ];
   };
 }
diff --git a/pkgs/development/libraries/phonon/default.nix b/pkgs/development/libraries/phonon/default.nix
index 2cb2dde33f7e3..8e1ee8196c30e 100644
--- a/pkgs/development/libraries/phonon/default.nix
+++ b/pkgs/development/libraries/phonon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, cmake, mesa, pkgconfig, libpulseaudio
+{ stdenv, lib, fetchurl, cmake, libGLU_combined, pkgconfig, libpulseaudio
 , qt4 ? null, extra-cmake-modules ? null, qtbase ? null, qttools ? null
 , withQt5 ? false
 , debug ? false }:
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-    [ mesa libpulseaudio ]
+    [ libGLU_combined libpulseaudio ]
     ++ (if withQt5 then [ qtbase qttools ] else [ qt4 ]);
 
   nativeBuildInputs =
diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix
index 2c07c1e085801..794d0b24c7783 100644
--- a/pkgs/development/libraries/physics/geant4/default.nix
+++ b/pkgs/development/libraries/physics/geant4/default.nix
@@ -25,7 +25,7 @@
 , motif ? null # motif or lesstif
 
 # For enableQT, enableXM, enableOpenGLX11, enableRaytracerX11.
-, mesa   ? null
+, libGLU_combined   ? null
 , xlibsWrapper    ? null
 , libXmu ? null
 }:
@@ -40,7 +40,7 @@ assert enableQT -> qt != null;
 assert enableXM -> motif != null;
 
 # OpenGL/X11 User Interface and Visualisation drivers.
-assert enableQT || enableXM || enableOpenGLX11 || enableRaytracerX11 -> mesa   != null;
+assert enableQT || enableXM || enableOpenGLX11 || enableRaytracerX11 -> libGLU_combined   != null;
 assert enableQT || enableXM || enableOpenGLX11 || enableRaytracerX11 -> xlibsWrapper    != null;
 assert enableQT || enableXM || enableOpenGLX11 || enableRaytracerX11 -> libXmu != null;
 
@@ -81,8 +81,8 @@ let
       };
 
       enableParallelBuilding = true;
-      buildInputs = [ cmake clhep expat zlib xercesc qt motif mesa xlibsWrapper libXmu ];
-      propagatedBuildInputs = [ g4data clhep expat zlib xercesc qt motif mesa xlibsWrapper libXmu ];
+      buildInputs = [ cmake clhep expat zlib xercesc qt motif libGLU_combined xlibsWrapper libXmu ];
+      propagatedBuildInputs = [ g4data clhep expat zlib xercesc qt motif libGLU_combined xlibsWrapper libXmu ];
 
       setupHook = ./setup-hook.sh;
 
diff --git a/pkgs/development/libraries/plib/default.nix b/pkgs/development/libraries/plib/default.nix
index 4030be2996cc1..c9e8c632c7f18 100644
--- a/pkgs/development/libraries/plib/default.nix
+++ b/pkgs/development/libraries/plib/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchpatch, stdenv, mesa, freeglut, SDL
+{ fetchurl, fetchpatch, stdenv, libGLU_combined, freeglut, SDL
 , libXi, libSM, libXmu, libXext, libX11 }:
 
 stdenv.mkDerivation rec {
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    mesa freeglut SDL
+    libGLU_combined freeglut SDL
 
     # The following libs ought to be propagated build inputs of Mesa.
     libXi libSM libXmu libXext libX11
diff --git a/pkgs/development/libraries/postgis/2.3.nix b/pkgs/development/libraries/postgis/2.3.nix
deleted file mode 100644
index 8e6218a0d5610..0000000000000
--- a/pkgs/development/libraries/postgis/2.3.nix
+++ /dev/null
@@ -1,102 +0,0 @@
-{ fetchurl
-, stdenv
-, perl
-, libxml2
-, postgresql
-, geos
-, proj
-, flex
-, gdal
-, json_c
-, pkgconfig
-, file
-}:
-
-  /*
-
-  ### NixOS - usage:
-  ==================
-
-    services.postgresql.extraPlugins = [ (pkgs.postgis.override { postgresql = pkgs.postgresql95; }) ];
-
-
-  ### important Postgis implementation details:
-  =============================================
-
-    Postgis provides a shared library implementing many operations. They are
-    exposed to the Postgres SQL interpreter by special SQL queries eg:
-
-      CREATE FUNCTION [...]
-              AS '[..]liblwgeom', 'lwhistogram2d_in' LANGUAGE 'C' IMMUTABLE STRICT; -- WITH (isstrict);
-
-   where liblwgeom is the shared library.
-   Postgis < 1.5 used absolute paths, in NixOS $libdir is always used.
-
-   Thus if you want to use postgresql dumps which were created by non NixOS
-   systems you have to adopt the library path.
-
-
-   ### TODO:
-   =========
-   the bin commands to have gtk gui:
-  */
-
-
-let
-  version = "2.3.1";
-  sha256 = "0xd21h2k6x3i1b3z6pgm3pmkfpxm6irxd5wbx68acjndjgd6p3ac";
-in stdenv.mkDerivation rec {
-  name = "postgis-${version}";
-
-  src = fetchurl {
-    url = "http://download.osgeo.org/postgis/source/postgis-${builtins.toString version}.tar.gz";
-    inherit sha256;
-  };
-
-  # don't pass these vars to the builder
-  removeAttrs = ["sql_comments" "sql_srcs"];
-
-  # create aliases for all commands adding version information
-  postInstall = ''
-    sql_srcs=$(for sql in ${builtins.toString sql_srcs}; do echo -n "$(find $out -iname "$sql") "; done )
-
-    for prog in $out/bin/*; do # */
-      ln -s $prog $prog-${version}
-    done
-
-    cp -r doc $out
-  '';
-
-  buildInputs = [ libxml2 postgresql geos proj perl gdal json_c pkgconfig ];
-
-  sql_comments = "postgis_comments.sql";
-
-  sql_srcs = ["postgis.sql" "spatial_ref_sys.sql"];
-
-  # postgis config directory assumes /include /lib from the same root for json-c library
-  NIX_LDFLAGS = "-L${stdenv.lib.getLib json_c}/lib";
-
-  dontDisableStatic = true;
-  preConfigure = ''
-    sed -i 's@/usr/bin/file@${file}/bin/file@' configure
-    configureFlags="--datadir=$out/share --datarootdir=$out/share --bindir=$out/bin --with-gdalconfig=${gdal}/bin/gdal-config --with-jsondir=${json_c.dev}"
-    makeFlags="PERL=${perl}/bin/perl datadir=$out/share pkglibdir=$out/lib bindir=$out/bin"
-  '';
-  postConfigure = ''
-    sed -i "s|@mkdir -p \$(DESTDIR)\$(PGSQL_BINDIR)||g ;
-            s|\$(DESTDIR)\$(PGSQL_BINDIR)|$prefix/bin|g
-            " \
-        "raster/loader/Makefile";
-    sed -i "s|\$(DESTDIR)\$(PGSQL_BINDIR)|$prefix/bin|g
-            " \
-        "raster/scripts/python/Makefile";
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Geographic Objects for PostgreSQL";
-    homepage = http://postgis.refractions.net;
-    license = licenses.gpl2;
-    maintainers = [ maintainers.marcweber ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/postgis/default.nix b/pkgs/development/libraries/postgis/default.nix
index 582ebc05176bc..d201654fbb4cb 100644
--- a/pkgs/development/libraries/postgis/default.nix
+++ b/pkgs/development/libraries/postgis/default.nix
@@ -1,4 +1,5 @@
 { fetchurl
+, fetchpatch
 , stdenv
 , perl
 , libxml2
@@ -43,8 +44,8 @@
 
 
 let
-  version = "2.4.0";
-  sha256 = "02baa90f04da41e04b6c18eedfda53110c45ae943d4e65050f6d202f7de07d29";
+  version = "2.4.3";
+  sha256 = "1fg4pmla5m903m76ndjd8q5dkcykf67v1p4dcajmnr3bvg2p8lza";
 in stdenv.mkDerivation rec {
   name = "postgis-${version}";
 
@@ -53,9 +54,24 @@ in stdenv.mkDerivation rec {
     inherit sha256;
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://trac.osgeo.org/postgis/changeset/16417?format=diff&new=16417";
+      name = "json-c-0.13.patch";
+      sha256 = "1hk2fh4nsvq76ksi7z4shlgj7fik6ac3sjsb0khsypsjfhz7ic8z";
+      stripLen = 3;
+      extraPrefix = "";
+      excludes = [ "NEWS" ];
+    })
+  ];
+
   # don't pass these vars to the builder
   removeAttrs = ["sql_comments" "sql_srcs"];
 
+  preInstall = ''
+    mkdir -p $out/bin
+  '';
+
   # create aliases for all commands adding version information
   postInstall = ''
     sql_srcs=$(for sql in ${builtins.toString sql_srcs}; do echo -n "$(find $out -iname "$sql") "; done )
diff --git a/pkgs/development/libraries/postgis/pg_db_postgis_enable.sh b/pkgs/development/libraries/postgis/pg_db_postgis_enable.sh
deleted file mode 100644
index c7652e20d9f36..0000000000000
--- a/pkgs/development/libraries/postgis/pg_db_postgis_enable.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-sql_files=(@sql_srcs@)
-sql_comments=@sql_comments@
-
-do_help(){ echo "$0 [--comments] db_name1 [db_name2 ..]"; }
-
-for arg in "$@"; do
-  case "$arg" in
-    -h|--help)
-      do_help; exit 0
-      ;;
-    --comments)
-      LOAD_COMMENTS=1
-    ;;
-    *)
-      dbs=(${dbs[@]} "$arg")
-    ;;
-  esac
-done
-
-PSQL(){
-  echo ">> loading $1"
-  psql -d "$db" -f $1
-}
-
-for db in ${dbs[@]}; do
-  createlang plpgsql "$db"
-
-  # mandatory
-  for sql in $sql_files; do
-    PSQL $sql
-  done
-
-  # optionally load some comments
-  if [ -n "$LOAD_COMMENTS" ]; then
-    PSQL $sql_comments
-  fi
-done
diff --git a/pkgs/development/libraries/postgis/pg_db_postgis_fix_or_load_sql_dump.sh b/pkgs/development/libraries/postgis/pg_db_postgis_fix_or_load_sql_dump.sh
deleted file mode 100644
index 6a98c5d24ca8d..0000000000000
--- a/pkgs/development/libraries/postgis/pg_db_postgis_fix_or_load_sql_dump.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-libName=@libName@
-
-# this is a quick and dirty implementation
-
-do_help(){
-  echo "$0 --str str in-file|- [out|-|psql:db]";
-  echo "in: - = STDIN or filename";
-  echo "out: - = STDIN or filename or psql:database_name" 
-  echo "         psql:database_name will load the dump into the database" 
-  echo "         if out is omitted in is used for out (same file)"
-  echo "--str: different replacement string. Eg for Ubuntu use: '/usr/lib/postgresql/8.3/lib/liblwgeom'";
-  echo "WARNING: A postgis dump is not meant to be distributed - it still may be useful :)"
-}
-
-if [ -z "$1" -o "$1" = --help -o "$1" = -h ]; then
-  do_help; exit 1
-fi
-
-tostr='$libdir/'"$libName"
-if [ "$1" == "--str" ]; then
-  to="$2"; shift 2
-fi
-
-i=$1
-o="${2:-$1}"
-
-cmd_in(){
-  case "$i" in
-    -) cat;;
-    *) cat "$i";;
-  esac
-}
-
-cmd_out(){
-  case "$o" in
-    -) cat;;  # stdout
-    psql:*) psql "${o:5}";; # pipe into psql
-    *)
-      t=`mktemp`; cat > "$t"; mv "$t" "$o"
-      ;;
-  esac
-}
-
-cmd_replace(){
-  contents=`cat`
-  # get wrong library path:
-  fromstr=$(echo "$contents" | head -n 50 | sed -n "s/.*AS '\([^']*\)'.*/\1/p" | head -n 1)
-  echo "$contents" | sed "s@AS '$fromstr@AS '$tostr@g"
-}
-
-cmd_in | cmd_replace | cmd_out
diff --git a/pkgs/development/libraries/qpdf/default.nix b/pkgs/development/libraries/qpdf/default.nix
index 42c4b028aa836..7f6c47a9a7fc6 100644
--- a/pkgs/development/libraries/qpdf/default.nix
+++ b/pkgs/development/libraries/qpdf/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, libjpeg, zlib, perl }:
 
-let version = "7.1.1";
+let version = "8.0.0";
 in
 stdenv.mkDerivation rec {
   name = "qpdf-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/qpdf/qpdf/${version}/${name}.tar.gz";
-    sha256 = "1ypjxm74dhn9c4mj027zzkh0z4kpw9xiqwh3pjmmghm502hby3ca";
+    sha256 = "01a1d5wyrj1m35d68yj0cyqfjyrwhxq2yqwaw5an1d1p4aaid8gz";
   };
 
   nativeBuildInputs = [ perl ];
diff --git a/pkgs/development/libraries/qt-3/default.nix b/pkgs/development/libraries/qt-3/default.nix
index 1bc4fd1085e11..32841c9b93316 100644
--- a/pkgs/development/libraries/qt-3/default.nix
+++ b/pkgs/development/libraries/qt-3/default.nix
@@ -6,7 +6,7 @@
 , cursorSupport ? true, libXcursor ? null
 , threadSupport ? true
 , mysqlSupport ? false, mysql ? null
-, openglSupport ? false, mesa ? null, libXmu ? null
+, openglSupport ? false, libGLU_combined ? null, libXmu ? null
 , xlibsWrapper, xextproto, zlib, libjpeg, libpng, which
 }:
 
@@ -15,7 +15,7 @@ assert xrenderSupport -> xftSupport && libXrender != null;
 assert xrandrSupport -> libXrandr != null && randrproto != null;
 assert cursorSupport -> libXcursor != null;
 assert mysqlSupport -> mysql != null;
-assert openglSupport -> mesa != null && libXmu != null;
+assert openglSupport -> libGLU_combined != null && libXmu != null;
 
 stdenv.mkDerivation {
   name = "qt-3.3.8";
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
     -qt-gif
     -I${xextproto}/include
     ${if openglSupport then "-dlopen-opengl
-      -L${mesa}/lib -I${mesa}/include
+      -L${libGLU_combined}/lib -I${libGLU_combined}/include
       -L${libXmu.out}/lib -I${libXmu.dev}/include" else ""}
     ${if threadSupport then "-thread" else "-no-thread"}
     ${if xrenderSupport then "-xrender -L${libXrender.out}/lib -I${libXrender.dev}/include" else "-no-xrender"}
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 8b3fd8c667813..bafe36647359f 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -2,7 +2,7 @@
 , hostPlatform
 , libXrender, libXinerama, libXcursor, libXmu, libXv, libXext
 , libXfixes, libXrandr, libSM, freetype, fontconfig, zlib, libjpeg, libpng
-, libmng, which, mesaSupported, mesa, mesa_glu, openssl, dbus, cups, pkgconfig
+, libmng, which, libGLSupported, libGL, libGLU, openssl, dbus, cups, pkgconfig
 , libtiff, glib, icu, mysql, postgresql, sqlite, perl, coreutils, libXi
 , buildMultimedia ? stdenv.isLinux, alsaLib, gstreamer, gst-plugins-base
 , buildWebkit ? (stdenv.isLinux || stdenv.isDarwin)
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
         icu = icu.out;
         libXfixes = libXfixes.out;
         glibc = stdenv.cc.libc.out;
-        openglDriver = if mesaSupported then mesa.driverLink else "/no-such-path";
+        openglDriver = if libGLSupported then libGL.driverLink else "/no-such-path";
       })
       (fetchpatch {
         name = "fix-medium-font.patch";
@@ -159,7 +159,7 @@ stdenv.mkDerivation rec {
     [ libXrender libXrandr libXinerama libXcursor libXext libXfixes libXv libXi
       libSM zlib libpng openssl dbus freetype fontconfig glib ]
         # Qt doesn't directly need GLU (just GL), but many apps use, it's small and doesn't remain a runtime-dep if not used
-    ++ optional mesaSupported mesa_glu
+    ++ optional libGLSupported libGLU
     ++ optional ((buildWebkit || buildMultimedia) && stdenv.isLinux ) alsaLib
     ++ optionals (buildWebkit || buildMultimedia) [ gstreamer gst-plugins-base ];
 
diff --git a/pkgs/development/libraries/qt-5/5.10/default.nix b/pkgs/development/libraries/qt-5/5.10/default.nix
index 63d50c19a19d5..f957b7633dab9 100644
--- a/pkgs/development/libraries/qt-5/5.10/default.nix
+++ b/pkgs/development/libraries/qt-5/5.10/default.nix
@@ -18,7 +18,7 @@ top-level attribute to `top-level/all-packages.nix`.
 {
   newScope,
   stdenv, fetchurl, makeSetupHook, makeWrapper,
-  bison, cups ? null, harfbuzz, mesa, perl,
+  bison, cups ? null, harfbuzz, libGL, perl,
   gstreamer, gst-plugins-base, gtk3, dconf,
 
   # options
@@ -68,7 +68,7 @@ let
       qtbase = callPackage ../modules/qtbase.nix {
         inherit (srcs.qtbase) src version;
         patches = patches.qtbase;
-        inherit bison cups harfbuzz mesa;
+        inherit bison cups harfbuzz libGL;
         withGtk3 = true; inherit dconf gtk3;
         inherit developerBuild decryptSslTraffic;
       };
diff --git a/pkgs/development/libraries/qt-5/5.6/default.nix b/pkgs/development/libraries/qt-5/5.6/default.nix
index 8793b2bb9f01e..b9ed5eddd5cf6 100644
--- a/pkgs/development/libraries/qt-5/5.6/default.nix
+++ b/pkgs/development/libraries/qt-5/5.6/default.nix
@@ -27,7 +27,7 @@ existing packages here and modify it as necessary.
 {
   newScope,
   stdenv, fetchurl, makeSetupHook, makeWrapper,
-  bison, cups ? null, harfbuzz, mesa, perl,
+  bison, cups ? null, harfbuzz, libGL, perl,
   gstreamer, gst-plugins-base,
 
   # options
@@ -74,7 +74,7 @@ let
       inherit mkDerivation;
 
       qtbase = callPackage ../modules/qtbase.nix {
-        inherit bison cups harfbuzz mesa;
+        inherit bison cups harfbuzz libGL;
         inherit (srcs.qtbase) src version;
         patches = patches.qtbase;
         inherit developerBuild decryptSslTraffic;
diff --git a/pkgs/development/libraries/qt-5/5.9/default.nix b/pkgs/development/libraries/qt-5/5.9/default.nix
index 5afcdaa430e57..e109fe447aa23 100644
--- a/pkgs/development/libraries/qt-5/5.9/default.nix
+++ b/pkgs/development/libraries/qt-5/5.9/default.nix
@@ -18,7 +18,7 @@ top-level attribute to `top-level/all-packages.nix`.
 {
   newScope,
   stdenv, fetchurl, makeSetupHook, makeWrapper,
-  bison, cups ? null, harfbuzz, mesa, perl,
+  bison, cups ? null, harfbuzz, libGL, perl,
   gstreamer, gst-plugins-base, gtk3, dconf,
 
   # options
@@ -66,7 +66,7 @@ let
       qtbase = callPackage ../modules/qtbase.nix {
         inherit (srcs.qtbase) src version;
         patches = patches.qtbase;
-        inherit bison cups harfbuzz mesa;
+        inherit bison cups harfbuzz libGL;
         withGtk3 = true; inherit dconf gtk3;
         inherit developerBuild decryptSslTraffic;
       };
diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix
index aa4449504bb90..3a0a7326f762c 100644
--- a/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -18,8 +18,8 @@
   withGtk3 ? false, dconf ? null, gtk3 ? null,
 
   # options
-  mesaSupported ? (!stdenv.isDarwin),
-  mesa,
+  libGLSupported ? (!stdenv.isDarwin),
+  libGL,
   buildExamples ? false,
   buildTests ? false,
   developerBuild ? false,
@@ -69,7 +69,7 @@ stdenv.mkDerivation {
           libX11 libXcomposite libXext libXi libXrender libxcb libxkbcommon xcbutil
           xcbutilimage xcbutilkeysyms xcbutilrenderutil xcbutilwm
         ]
-        ++ lib.optional mesaSupported mesa
+        ++ lib.optional libGLSupported libGL
     );
 
   buildInputs =
@@ -142,11 +142,11 @@ stdenv.mkDerivation {
         # Note on the above: \x27 is a way if including a single-quote
         # character in the sed string arguments.
       else
-        lib.optionalString mesaSupported
+        lib.optionalString libGLSupported
           ''
             sed -i mkspecs/common/linux.conf \
-                -e "/^QMAKE_INCDIR_OPENGL/ s|$|${mesa.dev or mesa}/include|" \
-                -e "/^QMAKE_LIBDIR_OPENGL/ s|$|${mesa.out}/lib|"
+                -e "/^QMAKE_INCDIR_OPENGL/ s|$|${libGL.dev or libGL}/include|" \
+                -e "/^QMAKE_LIBDIR_OPENGL/ s|$|${libGL.out}/lib|"
           ''
     );
 
@@ -208,7 +208,7 @@ stdenv.mkDerivation {
           # 10.10
         ]
       else
-        lib.optional mesaSupported ''-DNIXPKGS_MESA_GL="${mesa.out}/lib/libGL"''
+        lib.optional libGLSupported ''-DNIXPKGS_MESA_GL="${libGL.out}/lib/libGL"''
         ++ lib.optionals withGtk3
           [
             ''-DNIXPKGS_QGTK3_XDG_DATA_DIRS="${gtk3}/share/gsettings-schemas/${gtk3.name}"''
diff --git a/pkgs/development/libraries/quesoglc/default.nix b/pkgs/development/libraries/quesoglc/default.nix
index 33e8d49454c1e..84be9876c1cb5 100644
--- a/pkgs/development/libraries/quesoglc/default.nix
+++ b/pkgs/development/libraries/quesoglc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mesa, glew, freetype, fontconfig, fribidi, libX11 }:
+{ stdenv, fetchurl, libGLU_combined, glew, freetype, fontconfig, fribidi, libX11 }:
 stdenv.mkDerivation rec {
   pname = "quesoglc";
   version = "0.7.2";
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/${pname}/${name}.tar.bz2";
     sha256 = "0cf9ljdzii5d4i2m23gdmf3kn521ljcldzq69lsdywjid3pg5zjl";
   };
-  buildInputs = [ mesa glew freetype fontconfig fribidi libX11 ];
+  buildInputs = [ libGLU_combined glew freetype fontconfig fribidi libX11 ];
   # FIXME: Configure fails to use system glew.
   meta = with stdenv.lib; {
     description = "A free implementation of the OpenGL Character Renderer";
diff --git a/pkgs/development/libraries/rapidjson/default.nix b/pkgs/development/libraries/rapidjson/default.nix
index 5e9a11d42512c..8e6b3b44491e1 100644
--- a/pkgs/development/libraries/rapidjson/default.nix
+++ b/pkgs/development/libraries/rapidjson/default.nix
@@ -13,6 +13,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig cmake ];
 
+  # detected by gcc7
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=implicit-fallthrough" ];
+
   meta = with lib; {
     description = "Fast JSON parser/generator for C++ with both SAX/DOM style API";
     homepage = "http://rapidjson.org/";
diff --git a/pkgs/development/libraries/science/math/blas/default.nix b/pkgs/development/libraries/science/math/blas/default.nix
index 4455a9488c00f..9955af0465970 100644
--- a/pkgs/development/libraries/science/math/blas/default.nix
+++ b/pkgs/development/libraries/science/math/blas/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "blas-${version}";
-  version = "3.7.1";
+  version = "3.8.0";
 
   src = fetchurl {
     url = "http://www.netlib.org/blas/${name}.tgz";
-    sha256 = "1hvmwp488hd6sdxdbmhjhmyrrd4s1ds1cjzh5d86l10b3wsm99n5";
+    sha256 = "1s24iry5197pskml4iygasw196bdhplj0jmbsb9jhabcjqj2mpsm";
   };
 
   buildInputs = [ gfortran ];
diff --git a/pkgs/development/libraries/science/math/caffe2/default.nix b/pkgs/development/libraries/science/math/caffe2/default.nix
index b055acba9f151..af7078599db5b 100644
--- a/pkgs/development/libraries/science/math/caffe2/default.nix
+++ b/pkgs/development/libraries/science/math/caffe2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, config, fetchFromGitHub
+{ stdenv, lib, config, fetchFromGitHub, fetchpatch
 , cmake
 , glog, google-gflags, gtest
 , protobuf, snappy
@@ -56,6 +56,8 @@ let
     };
     dst = "pybind11";
   };
+
+  ccVersion = (builtins.parseDrvName stdenv.cc.name).version;
 in
 
 stdenv.mkDerivation rec {
@@ -84,7 +86,9 @@ stdenv.mkDerivation rec {
   ;
   propagatedBuildInputs = [ numpy future six python-protobuf pydot ];
 
-  patches = lib.optional stdenv.cc.isClang [ ./update_clang_cvtsh_bugfix.patch ];
+  patches = lib.optional (stdenv.cc.isGNU && lib.versionAtLeast ccVersion "7.0.0") [
+    ./fix_compilation_on_gcc7.patch
+  ] ++ lib.optional stdenv.cc.isClang [ ./update_clang_cvtsh_bugfix.patch ];
 
   cmakeFlags = [ ''-DBUILD_TEST=OFF''
                  ''-DBUILD_PYTHON=ON''
diff --git a/pkgs/development/libraries/science/math/caffe2/fix_compilation_on_gcc7.patch b/pkgs/development/libraries/science/math/caffe2/fix_compilation_on_gcc7.patch
new file mode 100644
index 0000000000000..f319f20233a21
--- /dev/null
+++ b/pkgs/development/libraries/science/math/caffe2/fix_compilation_on_gcc7.patch
@@ -0,0 +1,46 @@
+diff --git a/caffe2/operators/recurrent_network_op.cc b/caffe2/operators/recurrent_network_op.cc
+index dd4fded..5995e8a 100644
+--- a/caffe2/operators/recurrent_network_op.cc
++++ b/caffe2/operators/recurrent_network_op.cc
+@@ -1,4 +1,4 @@
+-#include "recurrent_network_op.h"
++#include "caffe2/operators/recurrent_network_op.h"
+ #include "caffe2/core/workspace.h"
+ 
+ namespace caffe2 {
+diff --git a/caffe2/operators/recurrent_network_op.h b/caffe2/operators/recurrent_network_op.h
+index 55328e5..ea898bc 100644
+--- a/caffe2/operators/recurrent_network_op.h
++++ b/caffe2/operators/recurrent_network_op.h
+@@ -762,8 +762,8 @@ class AccumulateInputGradientOp : public Operator<Context> {
+   USE_OPERATOR_CONTEXT_FUNCTIONS;
+ 
+   bool RunOnDevice() override {
+-    const auto t =
+-        OperatorBase::Input<Tensor<CPUContext>>(0).template data<int32_t>()[0];
++    const auto& t0 = OperatorBase::Input<Tensor<CPUContext>>(0);
++    const auto t = t0.template data<int32_t>()[0];
+     auto& og = Input(1);
+     auto* g = Output(0);
+ 
+diff --git a/caffe2/queue/queue_ops.h b/caffe2/queue/queue_ops.h
+index f2c0a33..642343f 100644
+--- a/caffe2/queue/queue_ops.h
++++ b/caffe2/queue/queue_ops.h
+@@ -17,13 +17,10 @@ class CreateBlobsQueueOp final : public Operator<Context> {
+         name(operator_def.output().Get(0)) {}
+ 
+   bool RunOnDevice() override {
+-    const auto capacity =
+-        OperatorBase::template GetSingleArgument<int>("capacity", 1);
+-    const auto numBlobs =
+-        OperatorBase::template GetSingleArgument<int>("num_blobs", 1);
++    const auto capacity = GetSingleArgument("capacity", 1);
++    const auto numBlobs = GetSingleArgument("num_blobs", 1);
+     const auto enforceUniqueName =
+-        OperatorBase::template GetSingleArgument<int>(
+-            "enforce_unique_name", false);
++        GetSingleArgument("enforce_unique_name", false);
+     const auto fieldNames =
+         OperatorBase::template GetRepeatedArgument<std::string>("field_names");
+     CAFFE_ENFORCE_EQ(this->OutputSize(), 1);
diff --git a/pkgs/development/libraries/science/math/cudnn/generic.nix b/pkgs/development/libraries/science/math/cudnn/generic.nix
index 663b741e4748e..51bda19cf1391 100644
--- a/pkgs/development/libraries/science/math/cudnn/generic.nix
+++ b/pkgs/development/libraries/science/math/cudnn/generic.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
       This nix expression requires that ${name} is already part of the store.
       Register yourself to NVIDIA Accelerated Computing Developer Program, retrieve the cuDNN library
       at https://developer.nvidia.com/cudnn, and run the following command in the download directory:
-      nix-prefetch-url file://${name}
+      nix-prefetch-url file://\$PWD/${name}
     '';
   };
 
diff --git a/pkgs/development/libraries/science/math/nccl/generic.nix b/pkgs/development/libraries/science/math/nccl/generic.nix
index aa04d75b078b7..609a7df51e58a 100644
--- a/pkgs/development/libraries/science/math/nccl/generic.nix
+++ b/pkgs/development/libraries/science/math/nccl/generic.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
       This nix expression requires that ${name} is already part of the store.
       Register yourself to NVIDIA Accelerated Computing Developer Program, retrieve the NCCL library
       at https://developer.nvidia.com/nccl, and run the following command in the download directory:
-      nix-prefetch-url file://${name}
+      nix-prefetch-url file://\$PWD/${name}
     '';
   };
 
diff --git a/pkgs/development/libraries/science/math/petsc/default.nix b/pkgs/development/libraries/science/math/petsc/default.nix
index bc5527a8e9705..efedbe725af18 100644
--- a/pkgs/development/libraries/science/math/petsc/default.nix
+++ b/pkgs/development/libraries/science/math/petsc/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   name = "petsc-${version}";
-  version = "3.7.6";
+  version = "3.8.3";
 
   src = fetchurl {
     url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-${version}.tar.gz";
-    sha256 = "0jfl35lrhzvv982z6h1v5rcp39g0x16ca43rm9dx91wm6i8y13iw";
+    sha256 = "1b1yr93g6df8kx10ri2y26bp3l3w3jv10r80krnarbvyjgnw7y81";
   };
 
   nativeBuildInputs = [ blas gfortran.cc.lib liblapack python ];
diff --git a/pkgs/development/libraries/simgear/default.nix b/pkgs/development/libraries/simgear/default.nix
index d724ebbf37388..28b96d17aa602 100644
--- a/pkgs/development/libraries/simgear/default.nix
+++ b/pkgs/development/libraries/simgear/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, plib, freeglut, xproto, libX11, libXext, xextproto, libXi
-, inputproto, libICE, libSM, libXt, libXmu, mesa, boost, zlib, libjpeg, freealut
+, inputproto, libICE, libSM, libXt, libXmu, libGLU_combined, boost, zlib, libjpeg, freealut
 , openscenegraph, openal, expat, cmake, apr
 , curl
 }:
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ plib freeglut xproto libX11 libXext xextproto libXi inputproto
-                  libICE libSM libXt libXmu mesa boost zlib libjpeg freealut
+                  libICE libSM libXt libXmu libGLU_combined boost zlib libjpeg freealut
                   openscenegraph openal expat cmake apr curl ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/smpeg/default.nix b/pkgs/development/libraries/smpeg/default.nix
index f248d65e2ed60..7119f76c55fda 100644
--- a/pkgs/development/libraries/smpeg/default.nix
+++ b/pkgs/development/libraries/smpeg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchsvn, SDL, autoconf, automake, libtool, gtk2, m4, pkgconfig, mesa, makeWrapper }:
+{ stdenv, fetchsvn, SDL, autoconf, automake, libtool, gtk2, m4, pkgconfig, libGLU_combined, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "smpeg-svn${version}";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildInputs = [ SDL gtk2 mesa ];
+  buildInputs = [ SDL gtk2 libGLU_combined ];
 
   nativeBuildInputs = [ autoconf automake libtool m4 pkgconfig makeWrapper ];
 
diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix
index 01b766351c278..05ddde9ddef77 100644
--- a/pkgs/development/libraries/spice-gtk/default.nix
+++ b/pkgs/development/libraries/spice-gtk/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, pkgconfig, spice-protocol, gettext, celt_0_5_1
 , openssl, libpulseaudio, pixman, gobjectIntrospection, libjpeg_turbo, zlib
 , cyrus_sasl, python2Packages, autoreconfHook, usbredir, libsoup
+, polkit, acl, usbutils, vala
 , gtk3, epoxy }:
 
 with stdenv.lib;
@@ -18,22 +19,33 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     spice-protocol celt_0_5_1 openssl libpulseaudio pixman gobjectIntrospection
     libjpeg_turbo zlib cyrus_sasl python pygtk usbredir gtk3 epoxy
+    polkit acl usbutils
   ];
 
-  nativeBuildInputs = [ pkgconfig gettext libsoup autoreconfHook ];
+  nativeBuildInputs = [ pkgconfig gettext libsoup autoreconfHook vala ];
 
   NIX_CFLAGS_COMPILE = "-fno-stack-protector";
 
+  # put polkit action in the $out/share/polkit-1/actions
   preAutoreconf = ''
-    substituteInPlace src/Makefile.am \
-          --replace '=codegendir pygtk-2.0' '=codegendir pygobject-2.0'
+    substituteInPlace configure.ac \
+      --replace 'POLICYDIR=`''${PKG_CONFIG} polkit-gobject-1 --variable=policydir`' "POLICYDIR=$out/share/polkit-1/actions"
   '';
 
   configureFlags = [
-    "--disable-maintainer-mode"
     "--with-gtk3"
   ];
 
+  # usb redirection needs spice-client-glib-usb-acl-helper to run setuid root
+  # the helper then uses polkit to check access
+  # in nixos, enable this with
+  # security.wrappers.spice-client-glib-usb-acl-helper.source =
+  #   "${pkgs.spice_gtk}/bin/spice-client-glib-usb-acl-helper.real";
+  postFixup = ''
+    mv $out/bin/spice-client-glib-usb-acl-helper $out/bin/spice-client-glib-usb-acl-helper.real
+    ln -sf /run/wrappers/bin/spice-client-glib-usb-acl-helper $out/bin/spice-client-glib-usb-acl-helper
+  '';
+
   dontDisableStatic = true; # Needed by the coroutine test
 
   enableParallelBuilding = true;
@@ -49,7 +61,7 @@ in stdenv.mkDerivation rec {
 
     homepage = http://www.spice-space.org/;
     license = licenses.lgpl21;
-
+    maintainers = [ maintainers.xeji ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix
index a0936310c42f9..ccf5652b315c8 100644
--- a/pkgs/development/libraries/umockdev/default.nix
+++ b/pkgs/development/libraries/umockdev/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     description = "Mock hardware devices for creating unit tests";
     license = licenses.lgpl2;
     maintainers = [ maintainers.ndowens ];
+    platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/development/libraries/vaapi-intel/default.nix b/pkgs/development/libraries/vaapi-intel/default.nix
index 3f376dedbb73c..4e729db4671e1 100644
--- a/pkgs/development/libraries/vaapi-intel/default.nix
+++ b/pkgs/development/libraries/vaapi-intel/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, autoreconfHook, gnum4, pkgconfig, python2
-, intel-gpu-tools, libdrm, libva, libX11, mesa_noglu, wayland, libXext
+, intel-gpu-tools, libdrm, libva, libX11, libGL, wayland, libXext
 }:
 
 stdenv.mkDerivation rec {
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook gnum4 pkgconfig python2 ];
 
-  buildInputs = [ intel-gpu-tools libdrm libva libX11 libXext mesa_noglu wayland ];
+  buildInputs = [ intel-gpu-tools libdrm libva libX11 libXext libGL wayland ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/vaapi-vdpau/default.nix b/pkgs/development/libraries/vaapi-vdpau/default.nix
index f0089110c3c8d..013af68cb6c47 100644
--- a/pkgs/development/libraries/vaapi-vdpau/default.nix
+++ b/pkgs/development/libraries/vaapi-vdpau/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libvdpau, mesa, libva, pkgconfig }:
+{ stdenv, fetchurl, libvdpau, libGLU_combined, libva, pkgconfig }:
 let
   libvdpau08patch = (fetchurl { url = "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-libs/libva-vdpau-driver/files/libva-vdpau-driver-0.7.4-libvdpau-0.8.patch?revision=1.1";
                                 name = "libva-vdpau-driver-0.7.4-libvdpau-0.8.patch";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
                         }) ];
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libvdpau mesa libva ];
+  buildInputs = [ libvdpau libGLU_combined libva ];
 
   preConfigure = ''
     patch -p0 < ${libvdpau08patch}  # use -p0 instead of -p1
diff --git a/pkgs/development/libraries/vapoursynth/default.nix b/pkgs/development/libraries/vapoursynth/default.nix
index 24c4a50d874b7..e45337c8cf5de 100644
--- a/pkgs/development/libraries/vapoursynth/default.nix
+++ b/pkgs/development/libraries/vapoursynth/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, pkgconfig, autoreconfHook
 , zimg, libass, python3, libiconv
 , ApplicationServices, nasm
-, ocrSupport ?  false, tesseract
-, imwriSupport? true,  imagemagick7
+, ocrSupport ?  false, tesseract ? null
+, imwriSupport? true,  imagemagick7 ? null
 }:
 
 assert ocrSupport   -> tesseract != null;
@@ -12,13 +12,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "vapoursynth-${version}";
-  version = "R40";
+  version = "R43";
 
   src = fetchFromGitHub {
     owner  = "vapoursynth";
     repo   = "vapoursynth";
     rev    = version;
-    sha256 = "1ycc3fdhhryp7hap80z3qmh89br31kcswzp8ai3wlc07zfvcrfck";
+    sha256 = "01yzxggjxr6fz3wj81z6vgp9m4jqddyk73i22kz2x620cpdgb9j9";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook nasm ];
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     description = "A video processing framework with the future in mind";
     homepage    = http://www.vapoursynth.com/;
     license     = licenses.lgpl21;
-    platforms   = platforms.unix;
+    platforms   = platforms.x86_64;
     maintainers = with maintainers; [ rnhmjoj ];
   };
 
diff --git a/pkgs/development/libraries/virglrenderer/default.nix b/pkgs/development/libraries/virglrenderer/default.nix
new file mode 100644
index 0000000000000..0d9abc0247e29
--- /dev/null
+++ b/pkgs/development/libraries/virglrenderer/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, libGLU, epoxy, libX11 }:
+
+
+stdenv.mkDerivation rec {
+
+  name = "virglrenderer-${version}";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "https://www.freedesktop.org/software/virgl/${name}.tar.bz2";
+    sha256 = "a549e351e0eb2ad1df471386ddcf85f522e7202808d1616ee9ff894209066e1a";
+  };
+
+  buildInputs = [ libGLU epoxy libX11 ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = with stdenv.lib; {
+    description = "A virtual 3D GPU library that allows a qemu guest to use the host GPU for accelerated 3D rendering";
+    homepage = https://virgil3d.github.io/;
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.xeji ];
+  };
+
+}
diff --git a/pkgs/development/libraries/vrpn/default.nix b/pkgs/development/libraries/vrpn/default.nix
index 5250b78159068..ddeecce21c614 100644
--- a/pkgs/development/libraries/vrpn/default.nix
+++ b/pkgs/development/libraries/vrpn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, unzip, cmake, mesa }:
+{ stdenv, fetchFromGitHub, unzip, cmake, libGLU_combined }:
 
 stdenv.mkDerivation rec {
   name    = "${pname}-${date}";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "032q295d68w34rk5q8nfqdd29s55n00bfik84y7xzkjrpspaprlh";
   };
 
-  buildInputs = [ unzip cmake mesa ];
+  buildInputs = [ unzip cmake libGLU_combined ];
 
   doCheck = false; # FIXME: test failure
   checkTarget = "test";
diff --git a/pkgs/development/libraries/vtk/default.nix b/pkgs/development/libraries/vtk/default.nix
index 5b0bdb4ee7414..984a106236ce0 100644
--- a/pkgs/development/libraries/vtk/default.nix
+++ b/pkgs/development/libraries/vtk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, cmake, mesa, libX11, xproto, libXt
+{ stdenv, fetchurl, fetchpatch, cmake, libGLU_combined, libX11, xproto, libXt
 , qtLib ? null
 # Darwin support
 , Cocoa, CoreServices, DiskArbitration, IOKit, CFNetwork, Security, GLUT, OpenGL
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     if !stdenv.isDarwin
-    then [ cmake mesa libX11 xproto libXt ] ++ optional (qtLib != null) qtLib
+    then [ cmake libGLU_combined libX11 xproto libXt ] ++ optional (qtLib != null) qtLib
     else [ cmake qtLib xpc CoreServices DiskArbitration IOKit cf-private
            CFNetwork Security ApplicationServices CoreText IOSurface ImageIO
            OpenGL GLUT ];
diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix
index 5110dd1db6474..4bc6420305174 100644
--- a/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/pkgs/development/libraries/vulkan-loader/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchgit, fetchFromGitHub, cmake, pkgconfig, git, python3,
   python3Packages, glslang, spirv-tools, x11, libxcb, libXrandr,
-  libXext, wayland, mesa_noglu, makeWrapper }:
+  libXext, wayland, libGL, makeWrapper }:
 
 let
   version = "1.0.61.1";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DBUILD_WSI_MIR_SUPPORT=OFF"
-    "-DFALLBACK_DATA_DIRS=${mesa_noglu.driverLink}/share:/usr/local/share:/usr/share"
+    "-DFALLBACK_DATA_DIRS=${libGL.driverLink}/share:/usr/local/share:/usr/share"
   ];
 
   outputs = [ "out" "dev" "demos" ];
diff --git a/pkgs/development/libraries/webkitgtk/2.18.nix b/pkgs/development/libraries/webkitgtk/2.18.nix
index a79ef34391662..cecac45a3dc3b 100644
--- a/pkgs/development/libraries/webkitgtk/2.18.nix
+++ b/pkgs/development/libraries/webkitgtk/2.18.nix
@@ -2,7 +2,7 @@
 , pkgconfig, gettext, gobjectIntrospection, libnotify, gnutls
 , gtk3, wayland, libwebp, enchant, xlibs, libxkbcommon, epoxy, at-spi2-core
 , libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs, pcre, nettle, libtasn1, p11-kit
-, libidn, libedit, readline, mesa, libintlOrEmpty
+, libidn, libedit, readline, libGLU_combined, libintlOrEmpty
 , enableGeoLocation ? true, geoclue2, sqlite
 , enableGtk2Plugins ? false, gtk2 ? null
 , gst-plugins-base, gst-plugins-bad
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
   ] ++ optional enableGeoLocation geoclue2
     ++ optional enableGtk2Plugins gtk2
     ++ (with xlibs; [ libXdmcp libXt libXtst ])
-    ++ optionals stdenv.isDarwin [ libedit readline mesa ]
+    ++ optionals stdenv.isDarwin [ libedit readline libGLU_combined ]
     ++ optional stdenv.isLinux wayland;
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/wlc/default.nix b/pkgs/development/libraries/wlc/default.nix
index 02066253d0f9a..846e710b0a486 100644
--- a/pkgs/development/libraries/wlc/default.nix
+++ b/pkgs/development/libraries/wlc/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchpatch, cmake, pkgconfig
-, wayland, pixman, libxkbcommon, libinput, xcbutilwm, xcbutilimage, mesa_noglu
+, wayland, pixman, libxkbcommon, libinput, xcbutilwm, xcbutilimage, libGL
 , libX11, dbus_libs, wayland-protocols
 , libpthreadstubs, libXdmcp, libXext
 , withOptionalPackages ? true, zlib, valgrind, doxygen
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkgconfig ];
 
   buildInputs = [
-    wayland pixman libxkbcommon libinput xcbutilwm xcbutilimage mesa_noglu
+    wayland pixman libxkbcommon libinput xcbutilwm xcbutilimage libGL
     libX11 dbus_libs wayland-protocols
     libpthreadstubs libXdmcp libXext ]
     ++ stdenv.lib.optionals withOptionalPackages [ zlib valgrind doxygen ];
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index c32f0a3b9384f..a5ec872c3602e 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, meson, ninja, pkgconfig
-, wayland, mesa_noglu, wayland-protocols, libinput, libxkbcommon, pixman
+, wayland, libGL, wayland-protocols, libinput, libxkbcommon, pixman
 , xcbutilwm, libX11, libcap, xcbutilimage
 }:
 
@@ -24,7 +24,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson ninja pkgconfig ];
 
   buildInputs = [
-    wayland mesa_noglu wayland-protocols libinput libxkbcommon pixman
+    wayland libGL wayland-protocols libinput libxkbcommon pixman
     xcbutilwm libX11 libcap xcbutilimage
   ];
 
diff --git a/pkgs/development/libraries/wxwidgets/2.8/default.nix b/pkgs/development/libraries/wxwidgets/2.8/default.nix
index 9ce8e95d9e94c..bbb3b0faf3479 100644
--- a/pkgs/development/libraries/wxwidgets/2.8/default.nix
+++ b/pkgs/development/libraries/wxwidgets/2.8/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xf86vidmodeproto
 , gstreamer, gst-plugins-base, GConf, libX11, cairo
-, withMesa ? true, mesa_glu ? null, mesa_noglu ? null
+, withMesa ? true, libGLU ? null, libGL ? null
 , compat24 ? false, compat26 ? true, unicode ? true,
 }:
 
-assert withMesa -> mesa_glu != null && mesa_noglu != null;
+assert withMesa -> libGLU != null && libGL != null;
 
 with stdenv.lib;
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ gtk2 libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst-plugins-base GConf libX11 cairo ]
-    ++ optional withMesa mesa_glu;
+    ++ optional withMesa libGLU;
 
   nativeBuildInputs = [ pkgconfig ];
 
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     "${libXinerama.dev}/include ${libSM.dev}/include ${libXxf86vm.dev}/include";
   SEARCH_LIB =
     "${libXinerama.out}/lib ${libSM.out}/lib ${libXxf86vm.out}/lib "
-    + optionalString withMesa "${mesa_glu.out}/lib ${mesa_noglu.out}/lib ";
+    + optionalString withMesa "${libGLU.out}/lib ${libGL.out}/lib ";
 
   # Work around a bug in configure.
   NIX_CFLAGS_COMPILE = [ "-DHAVE_X11_XLIB_H=1" "-lX11" "-lcairo" "-Wno-narrowing" ];
diff --git a/pkgs/development/libraries/wxwidgets/2.9/default.nix b/pkgs/development/libraries/wxwidgets/2.9/default.nix
index 6230536b33ab9..19c3ca307c5ee 100644
--- a/pkgs/development/libraries/wxwidgets/2.9/default.nix
+++ b/pkgs/development/libraries/wxwidgets/2.9/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xf86vidmodeproto
 , gstreamer, gst-plugins-base, GConf, setfile
-, withMesa ? true, mesa_glu ? null, mesa_noglu ? null
+, withMesa ? true, libGLU ? null, libGL ? null
 , compat24 ? false, compat26 ? true, unicode ? true
 , Carbon ? null, Cocoa ? null, Kernel ? null, QuickTime ? null, AGL ? null
 }:
 
-assert withMesa -> mesa_glu != null && mesa_noglu != null;
+assert withMesa -> libGLU != null && libGL != null;
 
 with stdenv.lib;
 
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   buildInputs =
     [ gtk2 libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer
       gst-plugins-base GConf ]
-    ++ optional withMesa mesa_glu
+    ++ optional withMesa libGLU
     ++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QuickTime ];
 
   nativeBuildInputs = [ pkgconfig ];
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
       # allow building on 64-bit
       [ "--with-cocoa" "--enable-universal-binaries" "--with-macosx-version-min=10.7" ];
 
-  SEARCH_LIB = "${mesa_glu.out}/lib ${mesa_noglu.out}/lib ";
+  SEARCH_LIB = "${libGLU.out}/lib ${libGL.out}/lib ";
 
   preConfigure = "
     substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
diff --git a/pkgs/development/libraries/wxwidgets/3.0/default.nix b/pkgs/development/libraries/wxwidgets/3.0/default.nix
index 951f27f7d5473..98621bb781e86 100644
--- a/pkgs/development/libraries/wxwidgets/3.0/default.nix
+++ b/pkgs/development/libraries/wxwidgets/3.0/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, fetchurl, fetchpatch, pkgconfig
 , gtk2, gtk3, libXinerama, libSM, libXxf86vm
 , xf86vidmodeproto , gstreamer, gst-plugins-base, GConf, setfile
-, withMesa ? true, mesa_glu ? null, mesa_noglu ? null
+, withMesa ? true, libGLU ? null, libGL ? null
 , compat24 ? false, compat26 ? true, unicode ? true
 , withGtk2 ? true
 , withWebKit ? false, webkitgtk24x-gtk2 ? null, webkitgtk218x ? null
@@ -9,7 +9,7 @@
 }:
 
 
-assert withMesa -> mesa_glu != null && mesa_noglu != null;
+assert withMesa -> libGLU != null && libGL != null;
 assert withWebKit -> (if withGtk2 then webkitgtk24x-gtk2 else webkitgtk218x) != null;
 
 with stdenv.lib;
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   buildInputs =
     [ (if withGtk2 then gtk2 else gtk3) libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer
       gst-plugins-base GConf ]
-    ++ optional withMesa mesa_glu
+    ++ optional withMesa libGLU
     ++ optional withWebKit (if withGtk2 then webkitgtk24x-gtk2 else webkitgtk218x)
     ++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QTKit ];
 
@@ -62,7 +62,7 @@ stdenv.mkDerivation {
     ++ optionals withWebKit
       ["--enable-webview" "--enable-webview-webkit"];
 
-  SEARCH_LIB = "${mesa_glu.out}/lib ${mesa_noglu.out}/lib ";
+  SEARCH_LIB = "${libGLU.out}/lib ${libGL.out}/lib ";
 
   preConfigure = "
     substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
diff --git a/pkgs/development/libraries/xgboost/default.nix b/pkgs/development/libraries/xgboost/default.nix
index e37991367e6f1..6f296bb40b901 100644
--- a/pkgs/development/libraries/xgboost/default.nix
+++ b/pkgs/development/libraries/xgboost/default.nix
@@ -1,23 +1,37 @@
-{ stdenv, fetchgit }:
+{ stdenv, lib, fetchgit, cmake
+, avxSupport ? false
+, cudaSupport ? false, cudatoolkit
+, ncclSupport ? false, nccl
+}:
+
+assert ncclSupport -> cudaSupport;
 
 stdenv.mkDerivation rec {
   name = "xgboost-${version}";
-  version = "0.60";
+  version = "0.7";
 
   # needs submodules
   src = fetchgit {
     url = "https://github.com/dmlc/xgboost";
     rev = "refs/tags/v${version}";
-    sha256 = "0536vfl59n9vlagl1cpdl06c9y19dscwhwdzvi27zk5nc5qb6rdq";
+    sha256 = "1wxh020l4q037hc5z7vgxflb70l41a97anl8g6y4wxb74l5zv61l";
   };
 
   enableParallelBuilding = true;
 
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = lib.optional cudaSupport cudatoolkit
+                ++ lib.optional ncclSupport nccl;
+
+  cmakeFlags = lib.optionals cudaSupport [ "-DUSE_CUDA=ON" "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc" ]
+               ++ lib.optional ncclSupport "-DUSE_NCCL=ON";
+
   installPhase = ''
     mkdir -p $out
-    cp -r include $out
-    install -Dm755 lib/libxgboost.so $out/lib/libxgboost.so
-    install -Dm755 xgboost $out/bin/xgboost
+    cp -r ../include $out
+    install -Dm755 ../lib/libxgboost.so $out/lib/libxgboost.so
+    install -Dm755 ../xgboost $out/bin/xgboost
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/xine-lib/default.nix b/pkgs/development/libraries/xine-lib/default.nix
index 83c75dcfa8a16..9bb9f7986e6dd 100644
--- a/pkgs/development/libraries/xine-lib/default.nix
+++ b/pkgs/development/libraries/xine-lib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, xorg, alsaLib, mesa, aalib
+{ stdenv, fetchurl, pkgconfig, xorg, alsaLib, libGLU_combined, aalib
 , libvorbis, libtheora, speex, zlib, libdvdcss, perl, ffmpeg
 , flac, libcaca, libpulseaudio, libmng, libcdio, libv4l, vcdimager
 , libmpcdec
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     xorg.libX11 xorg.libXv xorg.libXinerama xorg.libxcb xorg.libXext
-    alsaLib mesa aalib libvorbis libtheora speex perl ffmpeg flac
+    alsaLib libGLU_combined aalib libvorbis libtheora speex perl ffmpeg flac
     libcaca libpulseaudio libmng libcdio libv4l vcdimager libmpcdec
   ];
 
diff --git a/pkgs/development/misc/amdapp-sdk/default.nix b/pkgs/development/misc/amdapp-sdk/default.nix
index 7775716a7122c..d0e64a16fddfe 100644
--- a/pkgs/development/misc/amdapp-sdk/default.nix
+++ b/pkgs/development/misc/amdapp-sdk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper, perl, mesa, xorg,
+{ stdenv, fetchurl, makeWrapper, perl, libGLU_combined, xorg,
   version? "2.8", # What version
   samples? false # Should samples be installed
 }:
@@ -46,7 +46,7 @@ in stdenv.mkDerivation rec {
   patches = stdenv.lib.attrByPath [version "patches"] [] src_info;
 
   patchFlags = "-p0";
-  buildInputs = [ makeWrapper perl mesa xorg.libX11 xorg.libXext xorg.libXaw xorg.libXi xorg.libXxf86vm ];
+  buildInputs = [ makeWrapper perl libGLU_combined xorg.libX11 xorg.libXext xorg.libXaw xorg.libXi xorg.libXxf86vm ];
   propagatedBuildInputs = [ stdenv.cc ];
   NIX_LDFLAGS = "-lX11 -lXext -lXmu -lXi -lXxf86vm";
   doCheck = false;
diff --git a/pkgs/development/misc/avr/gcc/default.nix b/pkgs/development/misc/avr/gcc/default.nix
index 0bfa6d1f238d0..8d1eb43c93435 100644
--- a/pkgs/development/misc/avr/gcc/default.nix
+++ b/pkgs/development/misc/avr/gcc/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation {
     description = "GNU Compiler Collection, version ${version} for AVR microcontrollers";
     homepage = http://gcc.gnu.org;
     license = licenses.gpl3Plus;
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ mguentner ];
   };
 }
diff --git a/pkgs/development/mobile/androidenv/androidsdk.nix b/pkgs/development/mobile/androidenv/androidsdk.nix
index b766d9d9c31a5..699af16cf0411 100644
--- a/pkgs/development/mobile/androidenv/androidsdk.nix
+++ b/pkgs/development/mobile/androidenv/androidsdk.nix
@@ -1,6 +1,6 @@
 { stdenv, stdenv_32bit, fetchurl, unzip, makeWrapper
 , platformTools, buildTools, support, supportRepository, platforms, sysimages, addons, sources
-, libX11, libXext, libXrender, libxcb, libXau, libXdmcp, libXtst, mesa, alsaLib
+, libX11, libXext, libXrender, libxcb, libXau, libXdmcp, libXtst, libGLU_combined, alsaLib
 , freetype, fontconfig, glib, gtk2, atk, file, jdk, coreutils, libpulseaudio, dbus
 , zlib, glxinfo, xkeyboardconfig
 , includeSources
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
         do
             wrapProgram `pwd`/$i \
               --prefix PATH : ${stdenv.lib.makeBinPath [ file glxinfo ]} \
-              --suffix LD_LIBRARY_PATH : `pwd`/lib64:`pwd`/lib64/qt/lib:${makeLibraryPath [ stdenv.cc.cc libX11 libxcb libXau libXdmcp libXext mesa alsaLib zlib libpulseaudio dbus.lib ]} \
+              --suffix LD_LIBRARY_PATH : `pwd`/lib64:`pwd`/lib64/qt/lib:${makeLibraryPath [ stdenv.cc.cc libX11 libxcb libXau libXdmcp libXext libGLU_combined alsaLib zlib libpulseaudio dbus.lib ]} \
               --suffix QT_XKB_CONFIG_ROOT : ${xkeyboardconfig}/share/X11/xkb
         done
       ''}
diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index c053712302ddd..b77cc68fa0e83 100644
--- a/pkgs/development/mobile/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
@@ -47,7 +47,7 @@ rec {
 
   androidsdk = import ./androidsdk.nix {
     inherit (pkgs) stdenv fetchurl unzip makeWrapper;
-    inherit (pkgs) zlib glxinfo freetype fontconfig glib gtk2 atk mesa file alsaLib jdk coreutils libpulseaudio dbus;
+    inherit (pkgs) zlib glxinfo freetype fontconfig glib gtk2 atk libGLU_combined file alsaLib jdk coreutils libpulseaudio dbus;
     inherit (pkgs.xorg) libX11 libXext libXrender libxcb libXau libXdmcp libXtst xkeyboardconfig;
 
     inherit platformTools buildTools support supportRepository platforms sysimages addons sources includeSources;
diff --git a/pkgs/development/mobile/genymotion/default.nix b/pkgs/development/mobile/genymotion/default.nix
index 745111171bb62..db3cb07765b9c 100644
--- a/pkgs/development/mobile/genymotion/default.nix
+++ b/pkgs/development/mobile/genymotion/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, requireFile, makeWrapper, which, zlib, mesa_noglu, glib, xorg, libxkbcommon
+{ stdenv, requireFile, makeWrapper, which, zlib, libGL, glib, xorg, libxkbcommon
 , xdg_utils
 # For glewinfo
 , libXmu, libXi, libXext }:
@@ -7,7 +7,7 @@ let
   packages = [
     stdenv.cc.cc zlib glib xorg.libX11 libxkbcommon libXmu libXi libXext
   ];
-  libPath = "${stdenv.lib.makeLibraryPath packages}:${mesa_noglu.driverLink}/lib";
+  libPath = "${stdenv.lib.makeLibraryPath packages}:${libGL.driverLink}/lib";
 in
 stdenv.mkDerivation rec {
   name = "genymotion-${version}";
diff --git a/pkgs/development/ocaml-modules/camlimages/default.nix b/pkgs/development/ocaml-modules/camlimages/default.nix
new file mode 100644
index 0000000000000..def710f3f1b06
--- /dev/null
+++ b/pkgs/development/ocaml-modules/camlimages/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchzip, findlib, jbuilder, ocaml, configurator, cppo, lablgtk }:
+stdenv.mkDerivation rec {
+  name = "camlimages-${version}";
+  version = "5.0.0";
+  src = fetchzip {
+    url = "https://bitbucket.org/camlspotter/camlimages/get/${version}.tar.gz";
+    sha256 = "00qvwxkfnhv93yi1iq7vy3p5lxyi9xigxcq464s4ii6bmp32d998";
+  };
+  buildInputs = [ findlib jbuilder ocaml configurator cppo lablgtk ];
+  buildPhase = "jbuilder build -p camlimages";
+  inherit (jbuilder) installPhase;
+  
+  meta = with stdenv.lib; {
+    branch = "5.0";
+    homepage = https://bitbucket.org/camlspotter/camlimages;
+    description = "OCaml image processing library";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vbgl maintainers.mt-caret ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/default.nix b/pkgs/development/ocaml-modules/janestreet/default.nix
index 27a65c502753a..9e3c6622e87a1 100644
--- a/pkgs/development/ocaml-modules/janestreet/default.nix
+++ b/pkgs/development/ocaml-modules/janestreet/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, lib, janePackage, ocaml, ocamlbuild, cryptokit, ctypes, magic-mime,
-  ocaml-migrate-parsetree, octavius, ounit, ppx_deriving, re, zarith, num,
-  openssl }:
+{ stdenv, lib, janePackage, ocaml, ocamlbuild, angstrom, cryptokit, ctypes,
+  magic-mime, ocaml-migrate-parsetree, octavius, ounit, ppx_deriving, re,
+  zarith, num, openssl }:
 
 rec {
 
@@ -9,56 +9,46 @@ rec {
   sexplib = janePackage {
     name = "sexplib";
     meta.description = "Automated S-expression conversion";
-    version = "0.10.0";
     hash = "1agw649n0rnf6h4y2dr1zs1970nncxgjmf90848vbxv8y9im4yy2";
-    buildInputs = [ num ];
+    propagatedBuildInputs = [ num ];
   };
 
   base = janePackage {
     name = "base";
-    version = "0.9.4";
-    hash = "0x85xi66b4zwlbdwmyc99zcmawgpp75gxqbl55rr67awavw162rw";
+    hash = "13brvkkj76syh8ws1k3lnvk88jvc6jxx16nsq5ysh558db91v5x7";
     propagatedBuildInputs = [ sexplib ];
     meta.description = "Full standard library replacement for OCaml";
   };
 
   ocaml-compiler-libs = janePackage {
     name = "ocaml-compiler-libs";
-    hash = "1jz3nfrb6295sj4xj1j0zld8mhfj0xy2k4vlp9yf9sh3748n090l";
+    hash = "0dg9jgwwir99y28bki17cqf3v30apd7cf0qdi8hfwb5pkgp9zdng";
     meta.description = "OCaml compiler libraries repackaged";
   };
 
-  ppx_ast = janePackage ({
+  ppx_ast = janePackage {
     name = "ppx_ast";
+    hash = "02jsi9b200071i4x0w358by09xabw9v13q7xrx6cdshqxw0q97kf";
     propagatedBuildInputs = [ ocaml-compiler-libs ocaml-migrate-parsetree ];
     meta.description = "OCaml AST used by Jane Street ppx rewriters";
-  } // (if lib.versionAtLeast ocaml.version "4.06"
-    then {
-      version = "0.9.2";
-      hash = "1h4qf26rg23z21rrw83fakiavw9km7174p3830pg0gg4bwakvba0";
-    } else {
-      version = "0.9.1";
-      hash = "0a9rxwavy2748k0yd4db3hg1ypq7mpqnwq9si5a5qdiclgkhcggw";
-    }
-  ));
+  };
 
   ppx_traverse_builtins = janePackage {
     name = "ppx_traverse_builtins";
-    hash = "10ajvz02ka6qimlfrq7py4ljhk8awqkga6240kn8j046b4xfyxzi";
+    hash = "0hhw565cwjlr1cwpgkfj0v2kc0lqxyjcrmi9q3hx3344biql8q17";
     meta.description = "Builtins for Ppx_traverse";
   };
 
   stdio = janePackage {
     name = "stdio";
-    version = "0.9.1";
-    hash = "13rj3ii0rvmklfim9ild0ib44ssdadig7a9ccjbz22m0pw84a1sx";
-    propagatedBuildInputs = [ base ];
+    hash = "0ydhy4f89f00n0pfgk8fanj6chzx433qnlcrxnddzg4d3dhb4254";
+    propagatedBuildInputs = [ base sexplib ];
     meta.description = "Standard IO library for OCaml";
   };
 
   ppx_core = janePackage {
     name = "ppx_core";
-    hash = "15400zxxkqdimmjpdjcs36gcbxbrhylmaczlzwd6x65v1h9aydz3";
+    hash = "0fm26bgf10gk8xl6j4xvwa5s7nmns8rlx7iblb7haj4dxc0qsjhd";
     propagatedBuildInputs = [ ppx_ast ppx_traverse_builtins stdio ];
     meta.description = "Jane Street's standard library for ppx rewriters";
   };
@@ -67,15 +57,14 @@ rec {
 
   ppx_optcomp = janePackage {
     name = "ppx_optcomp";
-    hash = "1wfj6fnh92s81yncq7yyhmax7j6zpjj1sg1f3qa1f9c5kf4kkzrd";
+    hash = "134anhlh32s5yjjbiqsrmjw51i08pyghzccmrwg1bipl64q55m6n";
     propagatedBuildInputs = [ ppx_core ];
     meta.description = "Optional compilation for OCaml";
   };
 
   ppx_driver = janePackage {
     name = "ppx_driver";
-    version = "0.9.1";
-    hash = "1amz49x6v4sh1v2my6618cah0zv5i7jmsapbk9ydps6419g5asay";
+    hash = "0kzijcsq32wf33f4spgja3w5jb9s8wnzmr6lpm8lahw05g80q8nj";
     buildInputs = [ ocamlbuild ];
     propagatedBuildInputs = [ ppx_optcomp ];
     meta.description = "Feature-full driver for OCaml AST transformers";
@@ -83,56 +72,56 @@ rec {
 
   ppx_metaquot = janePackage {
     name = "ppx_metaquot";
-    hash = "15qfd3s4x2pz006nx5316laxd3gqqi472x432qg4rfx4yh3vn31k";
+    hash = "1wb8pl5v57yy1g0g61mvgnxgn2ix2r5skiz33g8hdjvx91pbgmv4";
     propagatedBuildInputs = [ ppx_driver ];
     meta.description = "Metaquotations for ppx_ast";
   };
 
   ppx_type_conv = janePackage {
     name = "ppx_type_conv";
-    hash = "0a0gxjvjiql9vg37k0akn8xr5724nv3xb7v37xpidv7ld927ks7p";
+    hash = "0xvn00fzj8lb41slkl91p9z62byg0rlnygdxf4xvrqglg04wa9cz";
     propagatedBuildInputs = [ ppx_metaquot ppx_deriving ];
     meta.description = "Support Library for type-driven code generators";
   };
 
   ppx_sexp_conv = janePackage {
     name = "ppx_sexp_conv";
-    hash = "03cg2sym0wvpd5l7q4w9bclp589z5byygwsmnnq9h1ih56cmd55l";
+    hash = "0kvbm34wbxrcpvrrbh5wq4kzx4yb67iidzcq5x1d4bygvp8x2lzd";
     propagatedBuildInputs = [ ppx_type_conv sexplib ];
     meta.description = "Generation of S-expression conversion functions from type definitions";
   };
 
   ppx_compare = janePackage {
     name = "ppx_compare";
-    hash = "0wrszpvn1nms5sb5rb29p7z1wmqyd15gfzdj4ax8f843p5ywx3w9";
+    hash = "1fjrb7bz7wrykf4pm7s4s32030jdw65hi7kzd22ibd1afnkz3xw1";
     propagatedBuildInputs = [ ppx_type_conv ];
     meta.description = "Generation of comparison functions from types";
   };
 
   ppx_enumerate = janePackage {
     name = "ppx_enumerate";
-    hash = "1dfy86j2z12p5n9yrwaakx1ngphs5246vxy279kz6i6j34cwxm46";
+    hash = "1b4q1h19bh2xdxgqwdmn5kv95lyvpyf6mfh2fswagf2ajyfshksx";
     propagatedBuildInputs = [ ppx_type_conv ];
     meta.description = "Generate a list containing all values of a finite type";
   };
 
   ppx_hash = janePackage {
     name = "ppx_hash";
-    hash = "1w1riy2sqd9i611sc5f5z2rqqgjl2gvvkzi5xibpv309nacnl01d";
+    hash = "12yln0gpf21ifr205qxk7dn83bsj07zhmak2xsjap7xkq4k8g9gc";
     propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
     meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
   };
 
   ppx_js_style = janePackage {
     name = "ppx_js_style";
-    hash = "09k02b1l2r7svf9l3ls69h8xydsyiang2ziigxnny2i7gy7b0w59";
+    hash = "11i2cwavbbplhsl5n4zmgpr8gjc4ixa5016vc72y8h78g71jj18n";
     propagatedBuildInputs = [ ppx_metaquot octavius ];
     meta.description = "Code style checker for Jane Street Packages";
   };
 
   ppx_base = janePackage {
     name = "ppx_base";
-    hash = "0qikfzbkd2wyxfrvizz6rgi6vg4ykvxkivacj4gr178dbgfl5if3";
+    hash = "1rk7dlnhl30prda9q34ic0xv375i52j47bkr664ry3ghklxx6d8y";
     propagatedBuildInputs = [ ppx_enumerate ppx_hash ppx_js_style ];
     meta.description = "Base set of ppx rewriters";
   };
@@ -141,64 +130,63 @@ rec {
 
   fieldslib = janePackage {
     name = "fieldslib";
-    hash = "1wxh59888l1bfz9ipnbcas58gwg744icaixzdbsg4v8f7wymc501";
+    hash = "19l05d7hhc74zg48hj0m7sips8z3vpara1f0lvd8h7n46wpbs608";
     propagatedBuildInputs = [ ppx_driver ];
     meta.description = "OCaml record fields as first class values";
   };
 
   variantslib = janePackage {
     name = "variantslib";
-    hash = "0kj53n62193j58q9vip8lfhhyf6w9d25wyvxzc163hx5m68yw0fz";
+    hash = "0j1qlz7g8ny1qf3a7d38v2a7sxiis1nwcxkvz0myfsc3dkn716an";
     propagatedBuildInputs = [ ppx_driver ];
     meta.description = "OCaml variants as first class values";
   };
 
   ppx_traverse = janePackage {
     name = "ppx_traverse";
-    hash = "1sdqgwyq0w71i03vhc5jq4jk6rsbgwhvain48fnrllpkb5kj2la2";
+    hash = "1ps7s4vwvzik9wvmwd0i3a1sjgm0xx32yivc2r8ix9qqwylvjllq";
     propagatedBuildInputs = [ ppx_type_conv ];
     meta.description = "Automatic generation of open recursion classes";
   };
 
   ppx_custom_printf = janePackage {
     name = "ppx_custom_printf";
-    hash = "0cjy2c2c5g3qxqvwx1yb6p7kbmmpnpb1hll55f7a44x215lg8x19";
+    hash = "113dvmiy07lb6mf0f88avf4cfkix4q029xqi2w0h26xngp88s31p";
     propagatedBuildInputs = [ ppx_sexp_conv ppx_traverse ];
     meta.description = "Printf-style format-strings for user-defined string conversion";
   };
 
   ppx_fields_conv = janePackage {
     name = "ppx_fields_conv";
-    hash = "0qp8zgmk58iskzrkf4g06i471kg6lrh3wqpy9klrb8pp9mg0xr9z";
+    hash = "1df095qczkzclmdcs1nrm89wswnxivn9kvn6sw65jpvryfkf5v5k";
     propagatedBuildInputs = [ fieldslib ppx_type_conv ];
     meta.description = "Generation of accessor and iteration functions for OCaml records";
   };
 
   ppx_variants_conv = janePackage {
     name = "ppx_variants_conv";
-    hash = "1xayhyglgbdjqvb9123kjbwjcv0a3n3302nb0j7g8gmja8w5y834";
+    hash = "1l19rkclf65f8snw2v0yibkvk28by241dkp6jb0076dyghbln451";
     propagatedBuildInputs = [ ppx_type_conv variantslib ];
     meta.description = "Generation of accessor and iteration functions for OCaml variant types";
   };
 
   bin_prot = janePackage {
     name = "bin_prot";
-    version = "0.9.1";
-    hash = "1bgcmkgz6b5i522996x589zsaiy5b3h37887lwbqvpps8by2ayvk";
+    hash = "1yyjpwr2s5l8sm9j77a4cmr92rdx73iy3fwqyxf7dr8hfrmd938v";
     propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_variants_conv ];
     meta.description = "Binary protocol generator";
   };
 
   ppx_here = janePackage {
     name = "ppx_here";
-    hash = "0pjscw5ydxgy4fcxakgsazpp09ka057w5n2fp2dpkv2k5gil6rzh";
+    hash = "0ysx25ai7mpzxfpbswd9k38hpxhjm12bj0iw5ghvhdjnnn07kwcv";
     propagatedBuildInputs = [ ppx_driver ];
     meta.description = "Expands [%here] into its location";
   };
 
   ppx_bin_prot = janePackage {
     name = "ppx_bin_prot";
-    hash = "0qw9zqrc5yngzrzpk9awnlnd68xrb7wz5lq807c80ibxk0xvnqn3";
+    hash = "06n7gs51847p75baay9ar8n15ynqzhdbnwd8xvp8vxs6krr6wpfd";
     propagatedBuildInputs = [ ppx_here bin_prot ];
     meta.description = "Generation of bin_prot readers and writers from types";
   };
@@ -207,92 +195,91 @@ rec {
 
   ppx_assert = janePackage {
     name = "ppx_assert";
-    hash = "1s5c75wkc46nlcwmgic5h7f439s26ssrzrcil501c5kpib2hlv6z";
+    hash = "09xrcs2sk1a9vjn16bd1cpz3b52kbck7fhc7zrz24lv121wspiaj";
     propagatedBuildInputs = [ ppx_sexp_conv ppx_here ppx_compare ];
     meta.description = "Assert-like extension nodes that raise useful errors on failure";
   };
 
   ppx_inline_test = janePackage {
     name = "ppx_inline_test";
-    version = "0.9.2";
-    hash = "17j36ihiqprbpa2bk02449k93vaidid2sly5djrk848ccjq8n5aa";
+    hash = "0ar4lpl3zwb7k1f4clqsw1hyzwa104gf118a2i89c4hvj2721jwf";
     propagatedBuildInputs = [ ppx_metaquot ];
     meta.description = "Syntax extension for writing in-line tests in OCaml code";
   };
 
   typerep = janePackage {
     name = "typerep";
-    hash = "0hlc0xiznli1k6azv2mhm1s4xghhxqqd957np7828bfp7r8n2jy3";
+    hash = "11na0kag6aggckx7326zq8hh9pzymkwqfxsd25fswskk5lpnvwqv";
     propagatedBuildInputs = [ base ];
     meta.description = "Runtime types for OCaml";
   };
 
   ppx_bench = janePackage {
     name = "ppx_bench";
-    hash = "1qk4y6c2mpw7bqjppi2nam74vs2sc89wzq162j92wsqxyqsv4p93";
+    hash = "17l5shhi613l02yfipyr4hna3lj94kn6zy746rvsgcibyc7nybq6";
     propagatedBuildInputs = [ ppx_inline_test ];
     meta.description = "Syntax extension for writing in-line benchmarks in OCaml code";
   };
 
   ppx_expect = janePackage {
     name = "ppx_expect";
-    hash = "1bik53k51wcqv088f0h10n3ms9h51yvg6ha3g1s903i2bxr3xs6b";
+    hash = "0qq07iqfsbksklwn7rr1wdz79kji0iyq5qkyfwxrxm0ci9fz0h1w";
     propagatedBuildInputs = [ ppx_inline_test ppx_fields_conv ppx_custom_printf ppx_assert ppx_variants_conv re ];
     meta.description = "Cram like framework for OCaml";
   };
 
   ppx_fail = janePackage {
     name = "ppx_fail";
-    hash = "0qz0vlazasjyg7cv3iwpzxlvsah3zmn9dzd029xxqr1bji067s32";
+    hash = "0cwz16xy5s0ijm9y98lh9089ic7wd161njpdncgsxy6lgsjawap2";
     propagatedBuildInputs = [ ppx_here ppx_metaquot ];
     meta.description = "Add location to calls to failwiths";
   };
 
   ppx_let = janePackage {
     name = "ppx_let";
-    hash = "1b914a5nynwxjvfx42v61yigvjhnd548m4yqjfchf38dmqi1f4nr";
+    hash = "0smdxkjh4nxrf3mwzfvkjbymvwbz04v70k2gwxsaz5f6wvnhyvmm";
     propagatedBuildInputs = [ ppx_driver ];
     meta.description = "Monadic let-bindings";
   };
 
   ppx_optional = janePackage {
     name = "ppx_optional";
-    hash = "1vknsarxba0zcp5k2jb31wfpvqrv3bpanxbahfl5s2fwspsfdc82";
+    hash = "1qmc0yzp9jab8yndxs0ca3qx35wyhfwiknqk0gfjmar2ji87zlzn";
     propagatedBuildInputs = [ ppx_metaquot ];
     meta.description = "Pattern matching on flat options";
   };
 
   ppx_pipebang = janePackage {
     name = "ppx_pipebang";
-    hash = "1wyfyyjvyi94ds1p90l60wdr85q2v3fq1qdf3gnv9zjfy6sb0g9h";
+    hash = "0lzw6qc9f9g7zkbhhp4603b3mj3jvca4phx40f95d49y370325qx";
     propagatedBuildInputs = [ ppx_metaquot ];
     meta.description = "A ppx rewriter that inlines reverse application operators |> and |!";
   };
 
   ppx_sexp_message = janePackage {
     name = "ppx_sexp_message";
-    hash = "0r0skyr1zf2jh48xrxbs45gzywynhlivkq24xwc0qq435fmc2jqv";
+    hash = "1gddia4ry2pmnh4qj5855a044lqs23g5h038bkny73xg7w06jhrk";
     propagatedBuildInputs = [ ppx_sexp_conv ppx_here ];
     meta.description = "A ppx rewriter for easy construction of s-expressions";
   };
 
   ppx_sexp_value = janePackage {
     name = "ppx_sexp_value";
-    hash = "0hha5mmx700m8fy9g4znb8278l09chgwlpshny83vsmmzgq2jhah";
+    hash = "1xd5ln997wka8x4dba58yh525a5f36sklngg2z7iyiss7xi4yg7i";
     propagatedBuildInputs = [ ppx_sexp_conv ppx_here ];
     meta.description = "A ppx rewriter that simplifies building s-expressions from OCaml values";
   };
 
   ppx_typerep_conv = janePackage {
     name = "ppx_typerep_conv";
-    hash = "0bzgfpbqijwxm8x9jq1zb4xi5sbzymk17lw5rylri3hf84p60aq1";
+    hash = "1bk8zgagf6q5lb7icsrbzs05c8dz1gij0clzk39am40l83zs3ain";
     propagatedBuildInputs = [ ppx_type_conv typerep ];
     meta.description = "Generation of runtime types from type declarations";
   };
 
   ppx_jane = janePackage {
     name = "ppx_jane";
-    hash = "16m5iw0qyp452nqj83kd0g0x3rw40lrz7392hwpd4di1wi6v2qzc";
+    hash = "1lhzcfh129dc54bkg16rnldi97682nlzdr8a47ham3hg2kkab8kr";
     propagatedBuildInputs = [ ppx_base ppx_bench ppx_bin_prot ppx_expect ppx_fail ppx_let ppx_optional ppx_pipebang ppx_sexp_message ppx_sexp_value ppx_typerep_conv ];
     meta.description = "Standard Jane Street ppx rewriters";
   };
@@ -301,35 +288,33 @@ rec {
 
   configurator = janePackage {
     name = "configurator";
-    version = "0.9.1";
-    hash = "1q0s0ghcrcrxdj6zr9zr27g7sr4qr9l14kizjphwqwwvgbzawdix";
-    propagatedBuildInputs = [ ppx_base ];
+    hash = "0lydjj4r21ipmc91hyf91mjjvcibk4r7ipan8bqfzb5l490r95rp";
+    propagatedBuildInputs = [ base stdio ];
     meta.description = "Helper library for gathering system configuration";
   };
 
   jane-street-headers = janePackage {
     name = "jane-street-headers";
-    hash = "0cdab6sblsidjbwvyvmspykyhqh44rpsjzi2djbfd5m4vh2h14gy";
+    hash = "1sqyqzhgi52vq33i8ha2pmjg026qiqmpaqmibs3pfj4jsscwl842";
     meta.description = "Jane Street header files";
   };
 
   core_kernel = janePackage {
     name = "core_kernel";
-    hash = "05iwvggx9m81x7ijgv9gcv5znf5rmsmb76dg909bm9gkr3hbh7wh";
+    hash = "00iqd9wcana2blgdih1lq9zqd31agr6az912bhsklyarvvcn9hcb";
     propagatedBuildInputs = [ configurator jane-street-headers ppx_jane ];
     meta.description = "Jane Street's standard library overlay (kernel)";
   };
 
   spawn = janePackage {
     name = "spawn";
-    hash = "1w53b8ni06ajj62yaqjy0pkbm952l0m5fzr088yk15078qaxsnb5";
+    hash = "1av1pjkiqq3nz0rjmykiylhf0iv6d1ssvqqj6wcc3c0bzvgyih0p";
     meta.description = "Spawning sub-processes";
   };
 
   core = janePackage {
     name = "core";
-    version = "0.9.1";
-    hash = "1643r0namsgj8xwfr9niimcdwyyq4ddiwd02d73ipb4a8710aqi8";
+    hash = "06cra34rlqpmxh4f3v1vps9fs7hy90jjnipdvcf9z8cn925mdj46";
     propagatedBuildInputs = [ core_kernel spawn ];
     meta.description = "Jane Street's standard library overlay";
   };
@@ -338,7 +323,8 @@ rec {
 
   re2 = janePackage {
     name = "re2";
-    hash = "1qmhl3yd6y0lq401rz72b1bsbpglb0wighpxn3x8y1ixq415p4xi";
+    version = "0.10.1";
+    hash = "1d39brryfaj5fqp1kzw67n1bvfxv28xi058mk5il14wj40y5ldh1";
     propagatedBuildInputs = [ core_kernel ];
     meta = {
       description = "OCaml bindings for RE2";
@@ -348,14 +334,21 @@ rec {
 
   textutils = janePackage {
     name = "textutils";
-    hash = "1y6j2qw7rc8d80343lfv1dygnfrhn2qllz57mx28pl5kan743f6d";
-    propagatedBuildInputs = [ core ];
+    hash = "0mnmrp8kd443qx9gahrwr04a8q4hskcad2i1k9amiypbwy566s37";
+    propagatedBuildInputs = [ core textutils_kernel ];
     meta.description = "Text output utilities";
   };
 
+  textutils_kernel = janePackage {
+    name = "textutils_kernel";
+    hash = "0w7nf7sycffff318fxr42ss1fxa3bsy9kj7y27dl1whrajip9mb7";
+    propagatedBuildInputs = [ core_kernel ocaml-migrate-parsetree ];
+    meta.description = "The subset of textutils using only core_kernel and working in javascript";
+  };
+
   core_extended = janePackage {
     name = "core_extended";
-    hash = "05cnzzj0kigz9c9gsmd6mfar82wmkbqm9qzrydb80sy2fz5b30rk";
+    hash = "0g9adnr68l4ggayilmvz9nnf2slvnp0jzknjrxk10cab72l97rv4";
     propagatedBuildInputs = [ core re2 textutils ];
     postPatch = ''
       patchShebangs src/discover.sh
@@ -369,63 +362,63 @@ rec {
 
   async_kernel = janePackage {
     name = "async_kernel";
-    hash = "1zwxhzy7f9900rcjls2fql9cpfmwrcah3fazzdz4h2i51f41w62x";
+    hash = "09dzfyfmjf9894yimf1fpnc2l1v342f51a2wjr3d23pw6xnbcrl0";
     propagatedBuildInputs = [ core_kernel ];
     meta.description = "Jane Street Capital's asynchronous execution library (core)";
   };
 
   async_rpc_kernel = janePackage {
     name = "async_rpc_kernel";
-    hash = "1xk3s6s3xkj182p10kig2cqy8md6znif3v661h9cd02n8s57c40b";
-    propagatedBuildInputs = [ core_kernel async_kernel ];
+    hash = "1ardfr4vwbzc41qa2ccmzp15m9w3nbdl9cy4crvm87fi0ngkhixy";
+    propagatedBuildInputs = [ core_kernel async_kernel protocol_version_header ];
     meta.description = "Platform-independent core of Async RPC library";
   };
 
   async_unix = janePackage {
     name = "async_unix";
-    hash = "0yd4z28j5vdj2zxqi0fkgh2ic1s9h740is2dk0raga0zr5a1z03d";
+    hash = "151pn0543fwvi5gkdkbd05v8y9gjbxi1n69r4jxzc0bh842xx4xz";
     propagatedBuildInputs = [ core async_kernel ];
     meta.description = "Jane Street Capital's asynchronous execution library (unix)";
   };
 
   async_extra = janePackage {
     name = "async_extra";
-    hash = "0rpy5lc5dh5mir7flq1jrppd8imby8wyw191yg4nmklg28xp5sx0";
+    hash = "0vf3nfj8h7vnigs8l8m1bsg6w3szgaylaps6mbl4dsaihxdc732n";
     propagatedBuildInputs = [ async_rpc_kernel async_unix ];
     meta.description = "Jane Street's asynchronous execution library (extra)";
   };
 
   async = janePackage {
     name = "async";
-    hash = "10ykzym19srgdiikj0s74dndx5nk15hjq1r2hc61iz48f6caxkb1";
+    hash = "05ldvyw75648qrjx7q794m9llmlnqklh97lc09fv8biw515dby3d";
     propagatedBuildInputs = [ async_extra ];
     meta.description = "Jane Street Capital's asynchronous execution library";
   };
 
   async_find = janePackage {
     name = "async_find";
-    hash = "11dmhdzgf5kn4m0cm6zr28wpwhi2kr4lak9nmgxbrxsq28bcncxq";
+    hash = "05cpnz1m09h276cq6v3bh7da4iai14gmlh4cnh64v41f8hssw63s";
     propagatedBuildInputs = [ async ];
     meta.description = "Directory traversal with Async";
   };
 
   async_interactive = janePackage {
     name = "async_interactive";
-    hash = "1mmqqp6bi2wg7bmgf0sw34jn3iyl5kbm200dax8yqq6rfprcs49j";
+    hash = "1h2419l6nlqph3ipp5zdwyq55d3s602i4bv4jhsridmzy6cxxdxs";
     propagatedBuildInputs = [ async ];
     meta.description = "Utilities for building simple command-line based user interfaces";
   };
 
   async_parallel = janePackage {
     name = "async_parallel";
-    hash = "0mdprhr1pv4g65g10gr3gaifrzknsdgarwfdbjlvhzfs86075kyn";
+    hash = "0r8q73v26w3grj9n9wyrf65cq9w6pfzrmg9iswsy4jjb5r02bpr5";
     propagatedBuildInputs = [ async ];
     meta.description = "Distributed computing library";
   };
 
   async_shell = janePackage {
     name = "async_shell";
-    hash = "02clpz3xv3i5avzifwalylb9gfxzpgnr8bnlfsjixxfk2m7kvsj2";
+    hash = "1snkr944l3a627k23yh8f0lr900dpg2aym2l59fpp75s29pyk5md";
     propagatedBuildInputs = [ core_extended async ];
     meta = {
       description = "Shell helpers for Async";
@@ -434,7 +427,7 @@ rec {
 
   async_ssl = janePackage {
     name = "async_ssl";
-    hash = "01w3bg38q61lc3hfh8jsr0sy1ylyv0m6g6h9yvsk8ngj6qk70nss";
+    hash = "1cb9wpmgifa5vj9gadbav6bq6vxcm3g0jc6wxnkj3hgvnj35j2vy";
     propagatedBuildInputs = [ async ctypes openssl ];
     meta.description = "Async wrappers for SSL";
   };
@@ -443,21 +436,21 @@ rec {
 
   sexp_pretty = janePackage {
     name = "sexp_pretty";
-    hash = "1bx8va468j5b813m0vsh1jzgb6h2qnnjfmjlf2hb82sarv8lllfx";
+    hash = "106r91ahzdr8yvphs1s3ck8r89c4qhpcl9q6j5rbxrbihgb71i8d";
     propagatedBuildInputs = [ ppx_base re ];
     meta.description = "S-expression pretty-printer";
   };
 
   expect_test_helpers_kernel = janePackage {
     name = "expect_test_helpers_kernel";
-    hash = "1ycqir8sqgq5nialnrfg29nqn0cqg6jjpgv24drdycdhqf5r2zg6";
+    hash = "027pwfkdnz8rzgg9dqa4x2ir0zn8lav7gh64cih35r455xbfnvpr";
     propagatedBuildInputs = [ core_kernel sexp_pretty ];
     meta.description = "Helpers for writing expectation tests";
   };
 
   expect_test_helpers = janePackage {
     name = "expect_test_helpers";
-    hash = "0rsh6rwbqfcrqisk8jp7srlnicsadbzrs02ri6zyx0p3lmznw5r2";
+    hash = "0rzsgj8h73gx18sz1a1d3pbrjkb0vd6shl1h71n4xl05njcfb73r";
     propagatedBuildInputs = [ async expect_test_helpers_kernel ];
     meta.description = "Async helpers for writing expectation tests";
   };
@@ -466,28 +459,28 @@ rec {
 
   bignum = janePackage {
     name = "bignum";
-    hash = "0g80mzsi7vc1kq4mzha8y9nl95h6cd041vix3wjrqgkdvb1qd4f3";
-    propagatedBuildInputs = [ core_kernel zarith ];
+    hash = "0vs52aqq7pwazgv35zdd66c5v5ha1wrgrcmzc17c2qbswy8wcc37";
+    propagatedBuildInputs = [ core_kernel zarith num ];
     meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
   };
 
   cinaps = janePackage {
     name = "cinaps";
-    hash = "02fpjiwrygkpx2q4jfldhbqh0mqxmf955wizr8k4vmsq4wsis0p5";
+    hash = "1mwllcakvsirxpbwcqlglwqkiz8cks7vbjf1jvngs9703mx1xdcy";
     propagatedBuildInputs = [ re ];
     meta.description = "Trivial Metaprogramming tool using the OCaml toplevel";
   };
 
   command_rpc = janePackage {
     name = "command_rpc";
-    hash = "0w58z9jkz5qzbvf33wrzhfshzdvnrphj6dq8dmi52ykhfvxm7824";
+    hash = "0lq1vcz8qyyqabrz9isw2pw50663lwmq4w3187jp99ygar9lk5n2";
     propagatedBuildInputs = [ async ];
     meta.description = "Utilities for Versioned RPC communication with a child process over stdin and stdout";
   };
 
   core_bench = janePackage {
     name = "core_bench";
-    hash = "1m2q7217nmcsck29i59djkm0h6z3aj0i01niijzr5f6ilbnmyd3h";
+    hash = "1py68z848gj5wdmknqmzdb6zg65k5zchv6i6vzygi5nszn3zzwgc";
     propagatedBuildInputs = [ core_extended ];
     meta = {
       description = "Micro-benchmarking library for OCaml";
@@ -496,7 +489,7 @@ rec {
 
   core_profiler = janePackage {
     name = "core_profiler";
-    hash = "1ir2v3wdfbf5xzqcma16asc73mkx2q6dzq5y1bx6q1rpa7iznx44";
+    hash = "1vqkb8fzhs0k94k78whjnsznj85qa18kp0bq73mdkffz9562hdyr";
     propagatedBuildInputs = [ core_extended ];
     meta = {
       description = "Profiling library";
@@ -505,22 +498,22 @@ rec {
 
   csvfields = janePackage {
     name = "csvfields";
-    hash = "0lbvs1kwl22ryxhw6s089f6683hj2920bn518mvr22rnv7qijy0v";
-    propagatedBuildInputs = [ core ];
+    hash = "1qvcm2xkpw5ca5za2dfvz154h6kzm565wvynh7fffvrj2q719flm";
+    propagatedBuildInputs = [ core expect_test_helpers ];
     meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
   };
 
   ecaml = janePackage {
     name = "ecaml";
-    hash = "1a2534bzbwgpm71aj3sm71sm0lkcjdfjj1mk91p1pg9kxn8c5x4i";
-    propagatedBuildInputs = [ async ];
+    hash = "1h8m8nznsyc8md8f5rx3845lpl37ijqpxkpd52w92xy5hlc9bk1k";
+    propagatedBuildInputs = [ async expect_test_helpers_kernel ];
     meta.description = "Writing Emacs plugin in OCaml";
   };
 
   email_message = janePackage {
     name = "email_message";
-    hash = "0cpaf6wn5g883bxdz029bksvrfzih99m7hzbb30fhqglmpmmkniz";
-    propagatedBuildInputs = [ async core_extended cryptokit magic-mime ounit ];
+    hash = "0p56lak1ynqmimapsz529ankgdyd5yk90c0193q8fzv7fvvrzkzd";
+    propagatedBuildInputs = [ async angstrom core_extended cryptokit magic-mime ounit ];
     meta = {
       description = "E-mail message parser";
     };
@@ -528,28 +521,28 @@ rec {
 
   incremental_kernel = janePackage {
     name = "incremental_kernel";
-    hash = "0zq48wbgqcflh84n10iygi8aa3f0zzmgc7r0jwvsyg7i8zccgvf5";
+    hash = "15xw3l07fdqk5sla37fdvfnwykvq6fyrj9b2lwhc29rq0444m1yz";
     propagatedBuildInputs = [ core_kernel ];
     meta.description = "Library for incremental computations depending only on core_kernel";
   };
 
   incremental = janePackage {
     name = "incremental";
-    hash = "05sx8ia46v4dlvzcn7xgjcwxvbd0wmvv9r2bpvniapjnwr1nvcfh";
+    hash = "14hh7kxj70bpgylnx1fj3s5c40d12sgcb11cnh1xh7nwm190a9c2";
     propagatedBuildInputs = [ core incremental_kernel ];
     meta.description = "Library for incremental computations";
   };
 
   incr_map = janePackage {
     name = "incr_map";
-    hash = "0358qg9irxbbhn18laqww3mn43mdwvlbr0h2mvg3vdbb2c5jp4fv";
+    hash = "0s6c7f8a80s7bnjxcs7mdgm45i24d1j0vw4i2j884z1ssjrk33hw";
     propagatedBuildInputs = [ incremental_kernel ];
     meta.description = "Helpers for incremental operations on map like data structures";
   };
 
   ocaml_plugin = janePackage {
     name = "ocaml_plugin";
-    hash = "0q33swnlx9p1gcn1aj95501kapb7cnbzbsavid69csczwmzcxr14";
+    hash = "0b63ciajc9hcjs3pl0chlj475y60i3l5mjzaiqmyz1pryfqpri7r";
     buildInputs = [ ocamlbuild ];
     propagatedBuildInputs = [ async ];
     meta.description = "Automatically build and dynlink ocaml source files";
@@ -557,59 +550,57 @@ rec {
 
   parsexp = janePackage {
     name = "parsexp";
-    hash = "0brrifvnfqbfk873v6y5b2jixs2d73hpispj9r440kca5cfsv23b";
+    hash = "1k1z6kyp7c53l0wspz6qpvbb46bbr6aimnr06y6y1prxrpazm62w";
     propagatedBuildInputs = [ ppx_compare ppx_fields_conv ppx_js_style ppx_sexp_value ];
     meta.description = "S-expression parsing library";
   };
 
   parsexp_io = janePackage {
     name = "parsexp_io";
-    hash = "0gcmh4dg48xgszladq92yhk1hf492zf0smz462xrwknzlfdkz6a5";
+    hash = "0l9jrfm1zz0y6bfxla2s0fwjlvs9361ky83z3xwdlc48fgzks3a5";
     propagatedBuildInputs = [ parsexp ];
     meta.description = "S-expression parsing library (IO functions)";
   };
 
   patience_diff = janePackage {
     name = "patience_diff";
-    hash = "0vpx9xj1ich5qmj3m26vlmix3nsdj7pd1xzhqwbc7ad2kqwy3grg";
+    hash = "11ws6hsalmq7zc7wp37mj7zs3qaqkq4zlnwr06ybryv6vz62xj1l";
     propagatedBuildInputs = [ core_kernel ];
     meta.description = "Tool and library implementing patience diff";
   };
 
   posixat = janePackage {
     name = "posixat";
-    hash = "0ak93dyzi6sc6gb0j07fj85b24d8bv6g2hm7jj5xwb39kjwh51jl";
+    hash = "0dmjzbpbmzl94h4c1gk6k75wglnvk1kqcm4zs4nb9hy2ja8ldl9x";
     propagatedBuildInputs = [ ppx_sexp_conv ];
     meta.description = "Binding to the posix *at functions";
-    meta.broken = lib.versionAtLeast ocaml.version "4.05";
+  };
+
+  protocol_version_header = janePackage {
+    name = "protocol_version_header";
+    hash = "1vl1kfn8n1zdm3vh7228c58vprac4v7mpqks60k8rnzjj4w2mj1n";
+    propagatedBuildInputs = [ core_kernel ocaml-migrate-parsetree ];
+    meta.description = "Protocol aware version negotiation";
   };
 
   rpc_parallel = janePackage {
     name = "rpc_parallel";
-    hash = "0s72msl2p27bz0knjlpgy5qwp0w4z76cq801ps0sab35f8jjfs38";
+    hash = "01nyjqgdj351ykdaqqpaljwzac48x824lzfpma64lbp6plqmjlbf";
     propagatedBuildInputs = [ async ];
     meta.description = "Type-safe library for building parallel applications";
   };
 
   shexp = janePackage {
     name = "shexp";
-    hash = "1fkz4l9z4i0fz2kccd5blm2j9x2x4z6y1cn29wjmc3spqfxbq37y";
+    hash = "1ck5gcsdp93194bw6d1i116zplyaqrz1r36h6mvrw5x7i2549n9p";
     propagatedBuildInputs = [ posixat spawn ];
     meta.description = "Process library and s-expression based shell";
   };
 
   topological_sort = janePackage {
     name = "topological_sort";
-    hash = "1d64fyq0clsgham9p1f5rk01z8pxalglp92xmqw2iznyw0vxhvsy";
+    hash = "08w1dx30frj2bxxk8djl23cd43sassjkrmissyhagn9fmq2l904m";
     propagatedBuildInputs = [ core_kernel ];
     meta.description = "Topological sort algorithm";
   };
-
-  typerep_extended = janePackage {
-    name = "typerep_extended";
-    hash = "15gq8mrvlipd616rffr3f0wqw5d0ijnnizix610g2d5viirh0j9p";
-    propagatedBuildInputs = [ core_kernel ];
-    meta.description = "Runtime types for OCaml (Extended)";
-  };
-
 }
diff --git a/pkgs/development/ocaml-modules/janestreet/janePackage.nix b/pkgs/development/ocaml-modules/janestreet/janePackage.nix
index 6d6a4d7144229..5cf22341b88c9 100644
--- a/pkgs/development/ocaml-modules/janestreet/janePackage.nix
+++ b/pkgs/development/ocaml-modules/janestreet/janePackage.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, ocaml, jbuilder, findlib }:
+{ stdenv, fetchFromGitHub, ocaml, jbuilder, findlib, defaultVersion ? "0.10.0" }:
 
-{ name, version ? "0.9.0", buildInputs ? [], hash, meta, ...}@args:
+{ name, version ? defaultVersion, buildInputs ? [], hash, meta, ...}@args:
 
-if !stdenv.lib.versionAtLeast ocaml.version "4.03"
+if !stdenv.lib.versionAtLeast ocaml.version "4.04"
 then throw "${name}-${version} is not available for OCaml ${ocaml.version}" else
 
 stdenv.mkDerivation (args // {
diff --git a/pkgs/development/ocaml-modules/janestreet/old.nix b/pkgs/development/ocaml-modules/janestreet/old.nix
new file mode 100644
index 0000000000000..27a65c502753a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/old.nix
@@ -0,0 +1,615 @@
+{ stdenv, lib, janePackage, ocaml, ocamlbuild, cryptokit, ctypes, magic-mime,
+  ocaml-migrate-parsetree, octavius, ounit, ppx_deriving, re, zarith, num,
+  openssl }:
+
+rec {
+
+  # Jane Street packages, up to ppx_core
+
+  sexplib = janePackage {
+    name = "sexplib";
+    meta.description = "Automated S-expression conversion";
+    version = "0.10.0";
+    hash = "1agw649n0rnf6h4y2dr1zs1970nncxgjmf90848vbxv8y9im4yy2";
+    buildInputs = [ num ];
+  };
+
+  base = janePackage {
+    name = "base";
+    version = "0.9.4";
+    hash = "0x85xi66b4zwlbdwmyc99zcmawgpp75gxqbl55rr67awavw162rw";
+    propagatedBuildInputs = [ sexplib ];
+    meta.description = "Full standard library replacement for OCaml";
+  };
+
+  ocaml-compiler-libs = janePackage {
+    name = "ocaml-compiler-libs";
+    hash = "1jz3nfrb6295sj4xj1j0zld8mhfj0xy2k4vlp9yf9sh3748n090l";
+    meta.description = "OCaml compiler libraries repackaged";
+  };
+
+  ppx_ast = janePackage ({
+    name = "ppx_ast";
+    propagatedBuildInputs = [ ocaml-compiler-libs ocaml-migrate-parsetree ];
+    meta.description = "OCaml AST used by Jane Street ppx rewriters";
+  } // (if lib.versionAtLeast ocaml.version "4.06"
+    then {
+      version = "0.9.2";
+      hash = "1h4qf26rg23z21rrw83fakiavw9km7174p3830pg0gg4bwakvba0";
+    } else {
+      version = "0.9.1";
+      hash = "0a9rxwavy2748k0yd4db3hg1ypq7mpqnwq9si5a5qdiclgkhcggw";
+    }
+  ));
+
+  ppx_traverse_builtins = janePackage {
+    name = "ppx_traverse_builtins";
+    hash = "10ajvz02ka6qimlfrq7py4ljhk8awqkga6240kn8j046b4xfyxzi";
+    meta.description = "Builtins for Ppx_traverse";
+  };
+
+  stdio = janePackage {
+    name = "stdio";
+    version = "0.9.1";
+    hash = "13rj3ii0rvmklfim9ild0ib44ssdadig7a9ccjbz22m0pw84a1sx";
+    propagatedBuildInputs = [ base ];
+    meta.description = "Standard IO library for OCaml";
+  };
+
+  ppx_core = janePackage {
+    name = "ppx_core";
+    hash = "15400zxxkqdimmjpdjcs36gcbxbrhylmaczlzwd6x65v1h9aydz3";
+    propagatedBuildInputs = [ ppx_ast ppx_traverse_builtins stdio ];
+    meta.description = "Jane Street's standard library for ppx rewriters";
+  };
+
+  # Jane Street packages, up to ppx_base
+
+  ppx_optcomp = janePackage {
+    name = "ppx_optcomp";
+    hash = "1wfj6fnh92s81yncq7yyhmax7j6zpjj1sg1f3qa1f9c5kf4kkzrd";
+    propagatedBuildInputs = [ ppx_core ];
+    meta.description = "Optional compilation for OCaml";
+  };
+
+  ppx_driver = janePackage {
+    name = "ppx_driver";
+    version = "0.9.1";
+    hash = "1amz49x6v4sh1v2my6618cah0zv5i7jmsapbk9ydps6419g5asay";
+    buildInputs = [ ocamlbuild ];
+    propagatedBuildInputs = [ ppx_optcomp ];
+    meta.description = "Feature-full driver for OCaml AST transformers";
+  };
+
+  ppx_metaquot = janePackage {
+    name = "ppx_metaquot";
+    hash = "15qfd3s4x2pz006nx5316laxd3gqqi472x432qg4rfx4yh3vn31k";
+    propagatedBuildInputs = [ ppx_driver ];
+    meta.description = "Metaquotations for ppx_ast";
+  };
+
+  ppx_type_conv = janePackage {
+    name = "ppx_type_conv";
+    hash = "0a0gxjvjiql9vg37k0akn8xr5724nv3xb7v37xpidv7ld927ks7p";
+    propagatedBuildInputs = [ ppx_metaquot ppx_deriving ];
+    meta.description = "Support Library for type-driven code generators";
+  };
+
+  ppx_sexp_conv = janePackage {
+    name = "ppx_sexp_conv";
+    hash = "03cg2sym0wvpd5l7q4w9bclp589z5byygwsmnnq9h1ih56cmd55l";
+    propagatedBuildInputs = [ ppx_type_conv sexplib ];
+    meta.description = "Generation of S-expression conversion functions from type definitions";
+  };
+
+  ppx_compare = janePackage {
+    name = "ppx_compare";
+    hash = "0wrszpvn1nms5sb5rb29p7z1wmqyd15gfzdj4ax8f843p5ywx3w9";
+    propagatedBuildInputs = [ ppx_type_conv ];
+    meta.description = "Generation of comparison functions from types";
+  };
+
+  ppx_enumerate = janePackage {
+    name = "ppx_enumerate";
+    hash = "1dfy86j2z12p5n9yrwaakx1ngphs5246vxy279kz6i6j34cwxm46";
+    propagatedBuildInputs = [ ppx_type_conv ];
+    meta.description = "Generate a list containing all values of a finite type";
+  };
+
+  ppx_hash = janePackage {
+    name = "ppx_hash";
+    hash = "1w1riy2sqd9i611sc5f5z2rqqgjl2gvvkzi5xibpv309nacnl01d";
+    propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
+    meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
+  };
+
+  ppx_js_style = janePackage {
+    name = "ppx_js_style";
+    hash = "09k02b1l2r7svf9l3ls69h8xydsyiang2ziigxnny2i7gy7b0w59";
+    propagatedBuildInputs = [ ppx_metaquot octavius ];
+    meta.description = "Code style checker for Jane Street Packages";
+  };
+
+  ppx_base = janePackage {
+    name = "ppx_base";
+    hash = "0qikfzbkd2wyxfrvizz6rgi6vg4ykvxkivacj4gr178dbgfl5if3";
+    propagatedBuildInputs = [ ppx_enumerate ppx_hash ppx_js_style ];
+    meta.description = "Base set of ppx rewriters";
+  };
+
+  # Jane Street packages, up to ppx_bin_prot
+
+  fieldslib = janePackage {
+    name = "fieldslib";
+    hash = "1wxh59888l1bfz9ipnbcas58gwg744icaixzdbsg4v8f7wymc501";
+    propagatedBuildInputs = [ ppx_driver ];
+    meta.description = "OCaml record fields as first class values";
+  };
+
+  variantslib = janePackage {
+    name = "variantslib";
+    hash = "0kj53n62193j58q9vip8lfhhyf6w9d25wyvxzc163hx5m68yw0fz";
+    propagatedBuildInputs = [ ppx_driver ];
+    meta.description = "OCaml variants as first class values";
+  };
+
+  ppx_traverse = janePackage {
+    name = "ppx_traverse";
+    hash = "1sdqgwyq0w71i03vhc5jq4jk6rsbgwhvain48fnrllpkb5kj2la2";
+    propagatedBuildInputs = [ ppx_type_conv ];
+    meta.description = "Automatic generation of open recursion classes";
+  };
+
+  ppx_custom_printf = janePackage {
+    name = "ppx_custom_printf";
+    hash = "0cjy2c2c5g3qxqvwx1yb6p7kbmmpnpb1hll55f7a44x215lg8x19";
+    propagatedBuildInputs = [ ppx_sexp_conv ppx_traverse ];
+    meta.description = "Printf-style format-strings for user-defined string conversion";
+  };
+
+  ppx_fields_conv = janePackage {
+    name = "ppx_fields_conv";
+    hash = "0qp8zgmk58iskzrkf4g06i471kg6lrh3wqpy9klrb8pp9mg0xr9z";
+    propagatedBuildInputs = [ fieldslib ppx_type_conv ];
+    meta.description = "Generation of accessor and iteration functions for OCaml records";
+  };
+
+  ppx_variants_conv = janePackage {
+    name = "ppx_variants_conv";
+    hash = "1xayhyglgbdjqvb9123kjbwjcv0a3n3302nb0j7g8gmja8w5y834";
+    propagatedBuildInputs = [ ppx_type_conv variantslib ];
+    meta.description = "Generation of accessor and iteration functions for OCaml variant types";
+  };
+
+  bin_prot = janePackage {
+    name = "bin_prot";
+    version = "0.9.1";
+    hash = "1bgcmkgz6b5i522996x589zsaiy5b3h37887lwbqvpps8by2ayvk";
+    propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_variants_conv ];
+    meta.description = "Binary protocol generator";
+  };
+
+  ppx_here = janePackage {
+    name = "ppx_here";
+    hash = "0pjscw5ydxgy4fcxakgsazpp09ka057w5n2fp2dpkv2k5gil6rzh";
+    propagatedBuildInputs = [ ppx_driver ];
+    meta.description = "Expands [%here] into its location";
+  };
+
+  ppx_bin_prot = janePackage {
+    name = "ppx_bin_prot";
+    hash = "0qw9zqrc5yngzrzpk9awnlnd68xrb7wz5lq807c80ibxk0xvnqn3";
+    propagatedBuildInputs = [ ppx_here bin_prot ];
+    meta.description = "Generation of bin_prot readers and writers from types";
+  };
+
+  # Jane Street packages, up to ppx_jane
+
+  ppx_assert = janePackage {
+    name = "ppx_assert";
+    hash = "1s5c75wkc46nlcwmgic5h7f439s26ssrzrcil501c5kpib2hlv6z";
+    propagatedBuildInputs = [ ppx_sexp_conv ppx_here ppx_compare ];
+    meta.description = "Assert-like extension nodes that raise useful errors on failure";
+  };
+
+  ppx_inline_test = janePackage {
+    name = "ppx_inline_test";
+    version = "0.9.2";
+    hash = "17j36ihiqprbpa2bk02449k93vaidid2sly5djrk848ccjq8n5aa";
+    propagatedBuildInputs = [ ppx_metaquot ];
+    meta.description = "Syntax extension for writing in-line tests in OCaml code";
+  };
+
+  typerep = janePackage {
+    name = "typerep";
+    hash = "0hlc0xiznli1k6azv2mhm1s4xghhxqqd957np7828bfp7r8n2jy3";
+    propagatedBuildInputs = [ base ];
+    meta.description = "Runtime types for OCaml";
+  };
+
+  ppx_bench = janePackage {
+    name = "ppx_bench";
+    hash = "1qk4y6c2mpw7bqjppi2nam74vs2sc89wzq162j92wsqxyqsv4p93";
+    propagatedBuildInputs = [ ppx_inline_test ];
+    meta.description = "Syntax extension for writing in-line benchmarks in OCaml code";
+  };
+
+  ppx_expect = janePackage {
+    name = "ppx_expect";
+    hash = "1bik53k51wcqv088f0h10n3ms9h51yvg6ha3g1s903i2bxr3xs6b";
+    propagatedBuildInputs = [ ppx_inline_test ppx_fields_conv ppx_custom_printf ppx_assert ppx_variants_conv re ];
+    meta.description = "Cram like framework for OCaml";
+  };
+
+  ppx_fail = janePackage {
+    name = "ppx_fail";
+    hash = "0qz0vlazasjyg7cv3iwpzxlvsah3zmn9dzd029xxqr1bji067s32";
+    propagatedBuildInputs = [ ppx_here ppx_metaquot ];
+    meta.description = "Add location to calls to failwiths";
+  };
+
+  ppx_let = janePackage {
+    name = "ppx_let";
+    hash = "1b914a5nynwxjvfx42v61yigvjhnd548m4yqjfchf38dmqi1f4nr";
+    propagatedBuildInputs = [ ppx_driver ];
+    meta.description = "Monadic let-bindings";
+  };
+
+  ppx_optional = janePackage {
+    name = "ppx_optional";
+    hash = "1vknsarxba0zcp5k2jb31wfpvqrv3bpanxbahfl5s2fwspsfdc82";
+    propagatedBuildInputs = [ ppx_metaquot ];
+    meta.description = "Pattern matching on flat options";
+  };
+
+  ppx_pipebang = janePackage {
+    name = "ppx_pipebang";
+    hash = "1wyfyyjvyi94ds1p90l60wdr85q2v3fq1qdf3gnv9zjfy6sb0g9h";
+    propagatedBuildInputs = [ ppx_metaquot ];
+    meta.description = "A ppx rewriter that inlines reverse application operators |> and |!";
+  };
+
+  ppx_sexp_message = janePackage {
+    name = "ppx_sexp_message";
+    hash = "0r0skyr1zf2jh48xrxbs45gzywynhlivkq24xwc0qq435fmc2jqv";
+    propagatedBuildInputs = [ ppx_sexp_conv ppx_here ];
+    meta.description = "A ppx rewriter for easy construction of s-expressions";
+  };
+
+  ppx_sexp_value = janePackage {
+    name = "ppx_sexp_value";
+    hash = "0hha5mmx700m8fy9g4znb8278l09chgwlpshny83vsmmzgq2jhah";
+    propagatedBuildInputs = [ ppx_sexp_conv ppx_here ];
+    meta.description = "A ppx rewriter that simplifies building s-expressions from OCaml values";
+  };
+
+  ppx_typerep_conv = janePackage {
+    name = "ppx_typerep_conv";
+    hash = "0bzgfpbqijwxm8x9jq1zb4xi5sbzymk17lw5rylri3hf84p60aq1";
+    propagatedBuildInputs = [ ppx_type_conv typerep ];
+    meta.description = "Generation of runtime types from type declarations";
+  };
+
+  ppx_jane = janePackage {
+    name = "ppx_jane";
+    hash = "16m5iw0qyp452nqj83kd0g0x3rw40lrz7392hwpd4di1wi6v2qzc";
+    propagatedBuildInputs = [ ppx_base ppx_bench ppx_bin_prot ppx_expect ppx_fail ppx_let ppx_optional ppx_pipebang ppx_sexp_message ppx_sexp_value ppx_typerep_conv ];
+    meta.description = "Standard Jane Street ppx rewriters";
+  };
+
+  # Jane Street packages, up to core
+
+  configurator = janePackage {
+    name = "configurator";
+    version = "0.9.1";
+    hash = "1q0s0ghcrcrxdj6zr9zr27g7sr4qr9l14kizjphwqwwvgbzawdix";
+    propagatedBuildInputs = [ ppx_base ];
+    meta.description = "Helper library for gathering system configuration";
+  };
+
+  jane-street-headers = janePackage {
+    name = "jane-street-headers";
+    hash = "0cdab6sblsidjbwvyvmspykyhqh44rpsjzi2djbfd5m4vh2h14gy";
+    meta.description = "Jane Street header files";
+  };
+
+  core_kernel = janePackage {
+    name = "core_kernel";
+    hash = "05iwvggx9m81x7ijgv9gcv5znf5rmsmb76dg909bm9gkr3hbh7wh";
+    propagatedBuildInputs = [ configurator jane-street-headers ppx_jane ];
+    meta.description = "Jane Street's standard library overlay (kernel)";
+  };
+
+  spawn = janePackage {
+    name = "spawn";
+    hash = "1w53b8ni06ajj62yaqjy0pkbm952l0m5fzr088yk15078qaxsnb5";
+    meta.description = "Spawning sub-processes";
+  };
+
+  core = janePackage {
+    name = "core";
+    version = "0.9.1";
+    hash = "1643r0namsgj8xwfr9niimcdwyyq4ddiwd02d73ipb4a8710aqi8";
+    propagatedBuildInputs = [ core_kernel spawn ];
+    meta.description = "Jane Street's standard library overlay";
+  };
+
+  # Jane Street packages, up to core_extended
+
+  re2 = janePackage {
+    name = "re2";
+    hash = "1qmhl3yd6y0lq401rz72b1bsbpglb0wighpxn3x8y1ixq415p4xi";
+    propagatedBuildInputs = [ core_kernel ];
+    meta = {
+      description = "OCaml bindings for RE2";
+      broken = stdenv.isDarwin;
+    };
+  };
+
+  textutils = janePackage {
+    name = "textutils";
+    hash = "1y6j2qw7rc8d80343lfv1dygnfrhn2qllz57mx28pl5kan743f6d";
+    propagatedBuildInputs = [ core ];
+    meta.description = "Text output utilities";
+  };
+
+  core_extended = janePackage {
+    name = "core_extended";
+    hash = "05cnzzj0kigz9c9gsmd6mfar82wmkbqm9qzrydb80sy2fz5b30rk";
+    propagatedBuildInputs = [ core re2 textutils ];
+    postPatch = ''
+      patchShebangs src/discover.sh
+    '';
+    meta = {
+      description = "Jane Street Capital's standard library overlay";
+    };
+  };
+
+  # Jane Street async packages
+
+  async_kernel = janePackage {
+    name = "async_kernel";
+    hash = "1zwxhzy7f9900rcjls2fql9cpfmwrcah3fazzdz4h2i51f41w62x";
+    propagatedBuildInputs = [ core_kernel ];
+    meta.description = "Jane Street Capital's asynchronous execution library (core)";
+  };
+
+  async_rpc_kernel = janePackage {
+    name = "async_rpc_kernel";
+    hash = "1xk3s6s3xkj182p10kig2cqy8md6znif3v661h9cd02n8s57c40b";
+    propagatedBuildInputs = [ core_kernel async_kernel ];
+    meta.description = "Platform-independent core of Async RPC library";
+  };
+
+  async_unix = janePackage {
+    name = "async_unix";
+    hash = "0yd4z28j5vdj2zxqi0fkgh2ic1s9h740is2dk0raga0zr5a1z03d";
+    propagatedBuildInputs = [ core async_kernel ];
+    meta.description = "Jane Street Capital's asynchronous execution library (unix)";
+  };
+
+  async_extra = janePackage {
+    name = "async_extra";
+    hash = "0rpy5lc5dh5mir7flq1jrppd8imby8wyw191yg4nmklg28xp5sx0";
+    propagatedBuildInputs = [ async_rpc_kernel async_unix ];
+    meta.description = "Jane Street's asynchronous execution library (extra)";
+  };
+
+  async = janePackage {
+    name = "async";
+    hash = "10ykzym19srgdiikj0s74dndx5nk15hjq1r2hc61iz48f6caxkb1";
+    propagatedBuildInputs = [ async_extra ];
+    meta.description = "Jane Street Capital's asynchronous execution library";
+  };
+
+  async_find = janePackage {
+    name = "async_find";
+    hash = "11dmhdzgf5kn4m0cm6zr28wpwhi2kr4lak9nmgxbrxsq28bcncxq";
+    propagatedBuildInputs = [ async ];
+    meta.description = "Directory traversal with Async";
+  };
+
+  async_interactive = janePackage {
+    name = "async_interactive";
+    hash = "1mmqqp6bi2wg7bmgf0sw34jn3iyl5kbm200dax8yqq6rfprcs49j";
+    propagatedBuildInputs = [ async ];
+    meta.description = "Utilities for building simple command-line based user interfaces";
+  };
+
+  async_parallel = janePackage {
+    name = "async_parallel";
+    hash = "0mdprhr1pv4g65g10gr3gaifrzknsdgarwfdbjlvhzfs86075kyn";
+    propagatedBuildInputs = [ async ];
+    meta.description = "Distributed computing library";
+  };
+
+  async_shell = janePackage {
+    name = "async_shell";
+    hash = "02clpz3xv3i5avzifwalylb9gfxzpgnr8bnlfsjixxfk2m7kvsj2";
+    propagatedBuildInputs = [ core_extended async ];
+    meta = {
+      description = "Shell helpers for Async";
+    };
+  };
+
+  async_ssl = janePackage {
+    name = "async_ssl";
+    hash = "01w3bg38q61lc3hfh8jsr0sy1ylyv0m6g6h9yvsk8ngj6qk70nss";
+    propagatedBuildInputs = [ async ctypes openssl ];
+    meta.description = "Async wrappers for SSL";
+  };
+
+  # Jane Street packages, up to expect_test_helpers
+
+  sexp_pretty = janePackage {
+    name = "sexp_pretty";
+    hash = "1bx8va468j5b813m0vsh1jzgb6h2qnnjfmjlf2hb82sarv8lllfx";
+    propagatedBuildInputs = [ ppx_base re ];
+    meta.description = "S-expression pretty-printer";
+  };
+
+  expect_test_helpers_kernel = janePackage {
+    name = "expect_test_helpers_kernel";
+    hash = "1ycqir8sqgq5nialnrfg29nqn0cqg6jjpgv24drdycdhqf5r2zg6";
+    propagatedBuildInputs = [ core_kernel sexp_pretty ];
+    meta.description = "Helpers for writing expectation tests";
+  };
+
+  expect_test_helpers = janePackage {
+    name = "expect_test_helpers";
+    hash = "0rsh6rwbqfcrqisk8jp7srlnicsadbzrs02ri6zyx0p3lmznw5r2";
+    propagatedBuildInputs = [ async expect_test_helpers_kernel ];
+    meta.description = "Async helpers for writing expectation tests";
+  };
+
+  # Miscellaneous Jane Street packages
+
+  bignum = janePackage {
+    name = "bignum";
+    hash = "0g80mzsi7vc1kq4mzha8y9nl95h6cd041vix3wjrqgkdvb1qd4f3";
+    propagatedBuildInputs = [ core_kernel zarith ];
+    meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
+  };
+
+  cinaps = janePackage {
+    name = "cinaps";
+    hash = "02fpjiwrygkpx2q4jfldhbqh0mqxmf955wizr8k4vmsq4wsis0p5";
+    propagatedBuildInputs = [ re ];
+    meta.description = "Trivial Metaprogramming tool using the OCaml toplevel";
+  };
+
+  command_rpc = janePackage {
+    name = "command_rpc";
+    hash = "0w58z9jkz5qzbvf33wrzhfshzdvnrphj6dq8dmi52ykhfvxm7824";
+    propagatedBuildInputs = [ async ];
+    meta.description = "Utilities for Versioned RPC communication with a child process over stdin and stdout";
+  };
+
+  core_bench = janePackage {
+    name = "core_bench";
+    hash = "1m2q7217nmcsck29i59djkm0h6z3aj0i01niijzr5f6ilbnmyd3h";
+    propagatedBuildInputs = [ core_extended ];
+    meta = {
+      description = "Micro-benchmarking library for OCaml";
+    };
+  };
+
+  core_profiler = janePackage {
+    name = "core_profiler";
+    hash = "1ir2v3wdfbf5xzqcma16asc73mkx2q6dzq5y1bx6q1rpa7iznx44";
+    propagatedBuildInputs = [ core_extended ];
+    meta = {
+      description = "Profiling library";
+    };
+  };
+
+  csvfields = janePackage {
+    name = "csvfields";
+    hash = "0lbvs1kwl22ryxhw6s089f6683hj2920bn518mvr22rnv7qijy0v";
+    propagatedBuildInputs = [ core ];
+    meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
+  };
+
+  ecaml = janePackage {
+    name = "ecaml";
+    hash = "1a2534bzbwgpm71aj3sm71sm0lkcjdfjj1mk91p1pg9kxn8c5x4i";
+    propagatedBuildInputs = [ async ];
+    meta.description = "Writing Emacs plugin in OCaml";
+  };
+
+  email_message = janePackage {
+    name = "email_message";
+    hash = "0cpaf6wn5g883bxdz029bksvrfzih99m7hzbb30fhqglmpmmkniz";
+    propagatedBuildInputs = [ async core_extended cryptokit magic-mime ounit ];
+    meta = {
+      description = "E-mail message parser";
+    };
+  };
+
+  incremental_kernel = janePackage {
+    name = "incremental_kernel";
+    hash = "0zq48wbgqcflh84n10iygi8aa3f0zzmgc7r0jwvsyg7i8zccgvf5";
+    propagatedBuildInputs = [ core_kernel ];
+    meta.description = "Library for incremental computations depending only on core_kernel";
+  };
+
+  incremental = janePackage {
+    name = "incremental";
+    hash = "05sx8ia46v4dlvzcn7xgjcwxvbd0wmvv9r2bpvniapjnwr1nvcfh";
+    propagatedBuildInputs = [ core incremental_kernel ];
+    meta.description = "Library for incremental computations";
+  };
+
+  incr_map = janePackage {
+    name = "incr_map";
+    hash = "0358qg9irxbbhn18laqww3mn43mdwvlbr0h2mvg3vdbb2c5jp4fv";
+    propagatedBuildInputs = [ incremental_kernel ];
+    meta.description = "Helpers for incremental operations on map like data structures";
+  };
+
+  ocaml_plugin = janePackage {
+    name = "ocaml_plugin";
+    hash = "0q33swnlx9p1gcn1aj95501kapb7cnbzbsavid69csczwmzcxr14";
+    buildInputs = [ ocamlbuild ];
+    propagatedBuildInputs = [ async ];
+    meta.description = "Automatically build and dynlink ocaml source files";
+  };
+
+  parsexp = janePackage {
+    name = "parsexp";
+    hash = "0brrifvnfqbfk873v6y5b2jixs2d73hpispj9r440kca5cfsv23b";
+    propagatedBuildInputs = [ ppx_compare ppx_fields_conv ppx_js_style ppx_sexp_value ];
+    meta.description = "S-expression parsing library";
+  };
+
+  parsexp_io = janePackage {
+    name = "parsexp_io";
+    hash = "0gcmh4dg48xgszladq92yhk1hf492zf0smz462xrwknzlfdkz6a5";
+    propagatedBuildInputs = [ parsexp ];
+    meta.description = "S-expression parsing library (IO functions)";
+  };
+
+  patience_diff = janePackage {
+    name = "patience_diff";
+    hash = "0vpx9xj1ich5qmj3m26vlmix3nsdj7pd1xzhqwbc7ad2kqwy3grg";
+    propagatedBuildInputs = [ core_kernel ];
+    meta.description = "Tool and library implementing patience diff";
+  };
+
+  posixat = janePackage {
+    name = "posixat";
+    hash = "0ak93dyzi6sc6gb0j07fj85b24d8bv6g2hm7jj5xwb39kjwh51jl";
+    propagatedBuildInputs = [ ppx_sexp_conv ];
+    meta.description = "Binding to the posix *at functions";
+    meta.broken = lib.versionAtLeast ocaml.version "4.05";
+  };
+
+  rpc_parallel = janePackage {
+    name = "rpc_parallel";
+    hash = "0s72msl2p27bz0knjlpgy5qwp0w4z76cq801ps0sab35f8jjfs38";
+    propagatedBuildInputs = [ async ];
+    meta.description = "Type-safe library for building parallel applications";
+  };
+
+  shexp = janePackage {
+    name = "shexp";
+    hash = "1fkz4l9z4i0fz2kccd5blm2j9x2x4z6y1cn29wjmc3spqfxbq37y";
+    propagatedBuildInputs = [ posixat spawn ];
+    meta.description = "Process library and s-expression based shell";
+  };
+
+  topological_sort = janePackage {
+    name = "topological_sort";
+    hash = "1d64fyq0clsgham9p1f5rk01z8pxalglp92xmqw2iznyw0vxhvsy";
+    propagatedBuildInputs = [ core_kernel ];
+    meta.description = "Topological sort algorithm";
+  };
+
+  typerep_extended = janePackage {
+    name = "typerep_extended";
+    hash = "15gq8mrvlipd616rffr3f0wqw5d0ijnnizix610g2d5viirh0j9p";
+    propagatedBuildInputs = [ core_kernel ];
+    meta.description = "Runtime types for OCaml (Extended)";
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/lablgl/default.nix b/pkgs/development/ocaml-modules/lablgl/default.nix
index f54df0c17d408..427d0d5a0e148 100644
--- a/pkgs/development/ocaml-modules/lablgl/default.nix
+++ b/pkgs/development/ocaml-modules/lablgl/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, ocaml, lablgtk, findlib, mesa, freeglut, camlp4 } :
+{stdenv, fetchurl, ocaml, lablgtk, findlib, libGLU_combined, freeglut, camlp4 } :
 
 let
   pname = "lablgl";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ocaml findlib lablgtk freeglut camlp4];
-  propagatedBuildInputs = [ mesa ];
+  propagatedBuildInputs = [ libGLU_combined ];
 
   patches = [ ./Makefile.config.patch ./META.patch ];
 
diff --git a/pkgs/development/ocaml-modules/sawja/default.nix b/pkgs/development/ocaml-modules/sawja/default.nix
index b6c66c82811d9..92d9cef351bf4 100644
--- a/pkgs/development/ocaml-modules/sawja/default.nix
+++ b/pkgs/development/ocaml-modules/sawja/default.nix
@@ -4,7 +4,7 @@ assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "3.12";
 
 let
   pname = "sawja";
-  version = "1.5.2";
+  version = "1.5.3";
   webpage = "http://sawja.inria.fr/";
 in
 stdenv.mkDerivation rec {
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-${pname}-${version}";
 
   src = fetchurl {
-    url = https://gforge.inria.fr/frs/download.php/file/36093/sawja-1.5.2.tar.bz2;
-    sha256 = "12046arkxiy4gf1s17hyc0yzydjzpzwqxn13sbkbxl8xzvmankx4";
+    url = https://gforge.inria.fr/frs/download.php/file/37403/sawja-1.5.3.tar.bz2;
+    sha256 = "17vfknr126vfhpmr14j75sg8r47xz7pw7fba4nsdw3k7rq43vcn2";
   };
 
   buildInputs = [ which perl ocaml findlib camlp4 ];
diff --git a/pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch b/pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch
new file mode 100644
index 0000000000000..e2f604985bebe
--- /dev/null
+++ b/pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch
@@ -0,0 +1,40 @@
+commit 6d985026
+Author: Michael Brantley <limeytexan@gmail.com>
+Date:   Tue Feb 20 07:12:06 2018 -0500
+
+    Update broken Pod links in lib/POE/Filter/HTTPD.pm
+    
+    Update Pod links to refer only to the utf8 module and not its methods,
+    fix a mis-capitalized internal reference, and convert the dangling
+    "MaxContent" link into a code reference.
+    
+    Resolves bug: https://rt.cpan.org/Public/Bug/Display.html?id=124496
+
+diff --git a/lib/POE/Filter/HTTPD.pm b/lib/POE/Filter/HTTPD.pm
+index 9d4898e3..517be691 100644
+--- a/lib/POE/Filter/HTTPD.pm
++++ b/lib/POE/Filter/HTTPD.pm
+@@ -621,10 +621,10 @@ how to use these objects.
+ 
+ HTTP headers are not allowed to have UTF-8 characters; they must be
+ ISO-8859-1.  POE::Filter::HTTPD will convert all UTF-8 into the MIME encoded
+-equivalent.  It uses L<utf8::is_utf8> for detection-8 and
++equivalent.  It uses C<utf8::is_utf8> for detection-8 and
+ L<Email::MIME::RFC2047::Encoder> for convertion.  If L<utf8> is not
+ installed, no conversion happens.  If L<Email::MIME::RFC2047::Encoder> is
+-not installed, L<utf8::downgrade> is used instead.  In this last case, you will
++not installed, C<utf8::downgrade> is used instead.  In this last case, you will
+ see a warning if you try to send UTF-8 headers.
+ 
+ 
+@@ -651,8 +651,8 @@ streaming mode this filter will return either an HTTP::Request object or a
+ block of content.  The HTTP::Request object's content will return empty. 
+ The blocks of content will be parts of the request's body, up to
+ Content-Length in size.  You distinguish between request objects and content
+-blocks using C<Scalar::Util/bless> (See L</Streaming request> below).  This
+-option supersedes L</MaxContent>.
++blocks using C<Scalar::Util/bless> (See L</Streaming Request> below).  This
++option supersedes C<MaxContent>.
+ 
+ =head1 CAVEATS
+ 
diff --git a/pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch b/pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch
new file mode 100644
index 0000000000000..097a7677e5179
--- /dev/null
+++ b/pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch
@@ -0,0 +1,46 @@
+commit 32571a21
+Author: Michael Brantley <limeytexan@gmail.com>
+Date:   Tue Feb 20 07:07:22 2018 -0500
+
+    Update old URLs referenced in Pod
+    
+    Remove mention of old URLs, replace mention of canonical SVN repo with
+    the new git-based one at github.com.
+    
+    Resolves bug: https://rt.cpan.org/Public/Bug/Display.html?id=124495
+
+diff --git a/lib/POE.pm b/lib/POE.pm
+index 80e7feac..0554ff70 100644
+--- a/lib/POE.pm
++++ b/lib/POE.pm
+@@ -465,7 +465,7 @@ code snippets there as well.
+ The following command will fetch the most current version of POE into
+ the "poe" subdirectory:
+ 
+-  svn co https://poe.svn.sourceforge.net/svnroot/poe poe
++  git clone https://github.com/rcaputo/poe.git
+ 
+ =head2 SourceForge
+ 
+@@ -535,18 +535,9 @@ https://rt.cpan.org/Dist/Display.html?Status=Active&Queue=POE
+ 
+ =head2 Repositories and Changes
+ 
+-Thanks to the magic of distributed version control, POE is hosted at
+-three locations for redundancy.  You can browse the source at any one
+-of:
+-
+-https://github.com/rcaputo/poe
+-
+-https://gitorious.org/poe
+-
+-http://poe.git.sourceforge.net/git/gitweb-index.cgi
+-
+-Complete change logs can also be browsed at those sites.  They all
+-provide RSS news feeds for those who want to follow development in
++You can browse the POE source and complete change logs at
++https://github.com/rcaputo/poe. It also provides an RSS
++news feed for those who want to follow development in
+ near-realtime.
+ 
+ =head2 Other Resources
diff --git a/pkgs/development/pharo/vm/build-vm-legacy.nix b/pkgs/development/pharo/vm/build-vm-legacy.nix
index b2e37344afc33..66cef77e5a949 100644
--- a/pkgs/development/pharo/vm/build-vm-legacy.nix
+++ b/pkgs/development/pharo/vm/build-vm-legacy.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, bash, unzip, glibc, openssl, gcc, mesa, freetype, xorg, alsaLib, cairo, libuuid, makeWrapper, ... }:
+{ stdenv, fetchurl, cmake, bash, unzip, glibc, openssl, gcc, libGLU_combined, freetype, xorg, alsaLib, cairo, libuuid, makeWrapper, ... }:
 
 { name, src, ... }:
 
@@ -47,9 +47,9 @@ stdenv.mkDerivation rec {
     ln -s "${pharo-share}/lib/"*.sources $prefix/lib/$name
   '';
 
-  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ cairo mesa freetype openssl libuuid alsaLib xorg.libICE xorg.libSM ];
+  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ cairo libGLU_combined freetype openssl libuuid alsaLib xorg.libICE xorg.libSM ];
   nativeBuildInputs = [ unzip cmake gcc makeWrapper ];
-  buildInputs = [ bash glibc openssl mesa freetype xorg.libX11 xorg.libICE xorg.libSM alsaLib cairo pharo-share ];
+  buildInputs = [ bash glibc openssl libGLU_combined freetype xorg.libX11 xorg.libICE xorg.libSM alsaLib cairo pharo-share ];
 
   meta = {
     description = "Clean and innovative Smalltalk-inspired environment";
diff --git a/pkgs/development/pharo/vm/build-vm.nix b/pkgs/development/pharo/vm/build-vm.nix
index b72b1851024ac..82b3da7a37c46 100644
--- a/pkgs/development/pharo/vm/build-vm.nix
+++ b/pkgs/development/pharo/vm/build-vm.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, bash, unzip, glibc, openssl, gcc, mesa, freetype, xorg, alsaLib, cairo, libuuid, autoreconfHook, gcc48, ... }:
+{ stdenv, fetchurl, bash, unzip, glibc, openssl, gcc, libGLU_combined, freetype, xorg, alsaLib, cairo, libuuid, autoreconfHook, gcc48, ... }:
 
 { name, src, version, source-date, source-url, ... }:
 
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
     mkdir -p "$out/bin"
 
     # Note: include ELF rpath in LD_LIBRARY_PATH for finding libc.
-    libs=$out:$(patchelf --print-rpath "$out/pharo"):${cairo}/lib:${mesa}/lib:${freetype}/lib:${openssl}/lib:${libuuid}/lib:${alsaLib}/lib:${xorg.libICE}/lib:${xorg.libSM}/lib
+    libs=$out:$(patchelf --print-rpath "$out/pharo"):${cairo}/lib:${libGLU_combined}/lib:${freetype}/lib:${openssl}/lib:${libuuid}/lib:${alsaLib}/lib:${xorg.libICE}/lib:${xorg.libSM}/lib
 
     # Create the script
     cat > "$out/bin/${cmd}" <<EOF
@@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
   #
   # (stack protection is disabled above for gcc 4.8 compatibility.)
   nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ bash unzip glibc openssl gcc48 mesa freetype xorg.libX11 xorg.libICE xorg.libSM alsaLib cairo pharo-share libuuid ];
+  buildInputs = [ bash unzip glibc openssl gcc48 libGLU_combined freetype xorg.libX11 xorg.libICE xorg.libSM alsaLib cairo pharo-share libuuid ];
 
   meta = with stdenv.lib; {
     description = "Clean and innovative Smalltalk-inspired environment";
diff --git a/pkgs/development/pharo/vm/vms.nix b/pkgs/development/pharo/vm/vms.nix
index 5258f4f6e77b1..9a7a1ebd06f69 100644
--- a/pkgs/development/pharo/vm/vms.nix
+++ b/pkgs/development/pharo/vm/vms.nix
@@ -1,4 +1,4 @@
-{ cmake, stdenv, fetchurl, bash, unzip, glibc, openssl, gcc, mesa, freetype, xorg, alsaLib, cairo, libuuid, autoreconfHook, gcc48, fetchFromGitHub, makeWrapper} @args:
+{ cmake, stdenv, fetchurl, bash, unzip, glibc, openssl, gcc, libGLU_combined, freetype, xorg, alsaLib, cairo, libuuid, autoreconfHook, gcc48, fetchFromGitHub, makeWrapper} @args:
 
 let
   pharo-vm-build = import ./build-vm.nix args;
diff --git a/pkgs/development/pure-modules/gl/default.nix b/pkgs/development/pure-modules/gl/default.nix
index e3c7e6bc14a61..51c57bb5c5195 100644
--- a/pkgs/development/pure-modules/gl/default.nix
+++ b/pkgs/development/pure-modules/gl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, pure, freeglut, mesa, xlibsWrapper }:
+{ stdenv, fetchurl, pkgconfig, pure, freeglut, libGLU_combined, xlibsWrapper }:
 
 stdenv.mkDerivation rec {
   baseName = "gl";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  propagatedBuildInputs = [ pure freeglut mesa xlibsWrapper ];
+  propagatedBuildInputs = [ pure freeglut libGLU_combined xlibsWrapper ];
   makeFlags = "libdir=$(out)/lib prefix=$(out)/";
   setupHook = ../generic-setup-hook.sh;
 
diff --git a/pkgs/development/python-modules/aiohttp/cors.nix b/pkgs/development/python-modules/aiohttp/cors.nix
index 9da239b524a6f..3065bb17c05d3 100644
--- a/pkgs/development/python-modules/aiohttp/cors.nix
+++ b/pkgs/development/python-modules/aiohttp/cors.nix
@@ -1,20 +1,24 @@
-{lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder, typing, aiohttp }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder
+, typing, aiohttp
+}:
 
 buildPythonPackage rec {
   pname = "aiohttp-cors";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1r0mb4dw0dc1lpi54dk5vxqs06nyhvagp76lyrvk7rd94z5mjkd4";
+    sha256 = "0pczn54bqd32v8zhfbjfybiza6xh1szwxy6as577dn8g23bwcfad";
   };
 
-  # Requires network access
-  doCheck = false;
+  disabled = pythonOlder "3.5";
 
   propagatedBuildInputs = [ aiohttp ]
   ++ lib.optional (pythonOlder "3.5") typing;
 
+  # Requires network access
+  doCheck = false;
+
   meta = with lib; {
     description = "CORS support for aiohttp";
     homepage = "https://github.com/aio-libs/aiohttp-cors";
diff --git a/pkgs/development/python-modules/aiohttp/default.nix b/pkgs/development/python-modules/aiohttp/default.nix
index c9bc6cb781c55..5408fb7b2f2c9 100644
--- a/pkgs/development/python-modules/aiohttp/default.nix
+++ b/pkgs/development/python-modules/aiohttp/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     sha256 = "bb873da531401416acb7045a8f0bdf6555e9c6866989cd977166fae3cbbb954b";
   };
 
-  disabled = pythonOlder "3.4";
+  disabled = pythonOlder "3.5";
 
   checkInputs = [ pytest gunicorn pytest-mock ];
 
diff --git a/pkgs/development/python-modules/antlr4-python3-runtime/default.nix b/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
new file mode 100644
index 0000000000000..84f2859d50c03
--- /dev/null
+++ b/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, buildPythonPackage, isPy3k }:
+
+buildPythonPackage rec {
+  version = "4.7.1";
+  name = "antlr4-python3-runtime-${version}";
+  disabled = !isPy3k;
+
+  src = fetchurl {
+    url = "mirror://pypi/a/antlr4-python3-runtime/${name}.tar.gz";
+    sha256 = "1lrzmagawmavyw1n1z0qarvs2jmbnbv0p89dah8g7klj8hnbf9hv";
+  };
+
+  meta = {
+    description = "Runtime for ANTLR";
+    homepage = "http://www.antlr.org/";
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/asgi_ipc/default.nix b/pkgs/development/python-modules/asgi_ipc/default.nix
deleted file mode 100644
index bdb12203de679..0000000000000
--- a/pkgs/development/python-modules/asgi_ipc/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, buildPythonPackage, fetchurl,
-  asgiref, msgpack, posix_ipc
-}:
-buildPythonPackage rec {
-  version = "1.4.2";
-  pname = "asgi_ipc";
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://pypi/a/asgi_ipc/${name}.tar.gz";
-    sha256 = "2403f41184405791b05e7aee570bd6ccd47e2d91845d78fe17adcf58ef48c037";
-  };
-
-  propagatedBuildInputs = [ asgiref msgpack posix_ipc ];
-
-  meta = with stdenv.lib; {
-    description = "Posix IPC-backed ASGI channel layer implementation";
-    license = licenses.bsd3;
-    homepage = https://github.com/django/asgi_ipc/;
-  };
-}
diff --git a/pkgs/development/python-modules/asgi_redis/default.nix b/pkgs/development/python-modules/asgi_redis/default.nix
deleted file mode 100644
index d4c9388f1a7d3..0000000000000
--- a/pkgs/development/python-modules/asgi_redis/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi,
-  asgiref, asgi_ipc, msgpack, six, redis, cryptography
-}:
-buildPythonPackage rec {
-  version = "1.4.3";
-  pname = "asgi_redis";
-  name = "${pname}-${version}";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "10xk7k7mcd28nb3v93mc8xa7sa6p02jnbl8idk6scr6p75jaixzi";
-  };
-
-  # Requires a redis server available
-  doCheck = false;
-
-  propagatedBuildInputs = [ asgiref asgi_ipc msgpack six redis cryptography ];
-
-  meta = with stdenv.lib; {
-    description = "Redis-backed ASGI channel layer implementation";
-    license = licenses.bsd3;
-    homepage = https://github.com/django/asgi_redis/;
-  };
-}
diff --git a/pkgs/development/python-modules/asgiref/default.nix b/pkgs/development/python-modules/asgiref/default.nix
index 2b3be05d06087..a556cd3c87f24 100644
--- a/pkgs/development/python-modules/asgiref/default.nix
+++ b/pkgs/development/python-modules/asgiref/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, async-timeout, pytest, pytest-asyncio }:
 buildPythonPackage rec {
-  version = "2.1.6";
+  version = "2.2.0";
   pname = "asgiref";
 
   # PyPI tarball doesn't include tests directory
@@ -8,7 +8,7 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "12p1i2ai03x2hx6b3i7xgicyfi2x11is6pkbdac4jpz7fmbz3zlh";
+    sha256 = "0jsdkgwzswm1jbfm6d100yfvfzpic8v6ysydcnn798bbpwclj8ip";
   };
 
   propagatedBuildInputs = [ async-timeout ];
diff --git a/pkgs/development/python-modules/daphne/default.nix b/pkgs/development/python-modules/daphne/default.nix
index 7fafee56b422e..7ead1cacfa664 100644
--- a/pkgs/development/python-modules/daphne/default.nix
+++ b/pkgs/development/python-modules/daphne/default.nix
@@ -4,7 +4,7 @@
 }:
 buildPythonPackage rec {
   pname = "daphne";
-  version = "2.0.3";
+  version = "2.1.0";
 
   disabled = !isPy3k;
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "1rdnzpgyk5cnx4xc3c7k11v2x9xpihgjpq14fib80jfpcqggw687";
+    sha256 = "1lbpn0l796ar77amqy8dap30zxmsn6as8y2lbmp4lk8m9awscwi8";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/datashape/default.nix b/pkgs/development/python-modules/datashape/default.nix
index 9177e9f0ff481..4fcb38e7b36bc 100644
--- a/pkgs/development/python-modules/datashape/default.nix
+++ b/pkgs/development/python-modules/datashape/default.nix
@@ -31,8 +31,10 @@ in buildPythonPackage rec {
   checkInputs = [ pytest mock ];
   propagatedBuildInputs = [ numpy multipledispatch dateutil ];
 
+  # Disable several tests
+  # https://github.com/blaze/datashape/issues/232
   checkPhase = ''
-    py.test datashape/tests
+    py.test -k "not test_validate and not test_nested_iteratables and not test_validate_dicts and not test_tuples_can_be_records_too" datashape/tests
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/h11/default.nix b/pkgs/development/python-modules/h11/default.nix
new file mode 100644
index 0000000000000..097495128dbda
--- /dev/null
+++ b/pkgs/development/python-modules/h11/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildPythonPackage, fetchPypi, pytest }:
+
+buildPythonPackage rec {
+  pname = "h11";
+  version = "0.7.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1n9hsm1n2qq32j3hh9wj93w738bwa5nqyzxjwvirz03gp8fbn3qw";
+  };
+
+  buildInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "Pure-Python, bring-your-own-I/O implementation of HTTP/1.1";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/junos-eznc/default.nix b/pkgs/development/python-modules/junos-eznc/default.nix
new file mode 100644
index 0000000000000..992780ef33d3e
--- /dev/null
+++ b/pkgs/development/python-modules/junos-eznc/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, scp
+, pyserial
+, paramiko
+, netaddr
+, ncclient
+, lxml
+, jinja2
+, pyyaml
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "junos-eznc";
+  version = "2.1.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "95a037cdd05618a189517357e46a06886909a18c7923b628c6ac43d5f54b2912";
+  };
+
+
+  checkInputs = [ nose ];
+
+  propagatedBuildInputs = [
+    scp six pyserial paramiko netaddr ncclient lxml jinja2 pyyaml
+  ];
+
+  checkPhase = ''
+    nosetests -v --with-coverage --cover-package=jnpr.junos --cover-inclusive -a unit
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.github.com/Juniper/py-junos-eznc;
+    description = "Junos 'EZ' automation for non-programmers";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ xnaveira ];
+  };
+}
diff --git a/pkgs/development/python-modules/latexcodec/default.nix b/pkgs/development/python-modules/latexcodec/default.nix
new file mode 100644
index 0000000000000..3b639ee2afb9e
--- /dev/null
+++ b/pkgs/development/python-modules/latexcodec/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonPackage, fetchPypi, six }:
+
+buildPythonPackage rec {
+  pname = "latexcodec";
+  version = "1.0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0zdd1gf24i83ykadx0y30n3001j43scqr2saql3vckk5c39dj1wn";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  meta = {
+    homepage = "https://github.com/mcmtroffaes/latexcodec";
+    description = "Lexer and codec to work with LaTeX code in Python";
+    license = stdenv.lib.licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ncclient/default.nix b/pkgs/development/python-modules/ncclient/default.nix
new file mode 100644
index 0000000000000..4cc5769d8d836
--- /dev/null
+++ b/pkgs/development/python-modules/ncclient/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, paramiko
+, lxml
+, libxml2
+, libxslt
+, pytest
+, nose
+, rednose
+}:
+
+buildPythonPackage rec {
+  pname = "ncclient";
+  version = "0.5.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "fe6b9c16ed5f1b21f5591da74bfdd91a9bdf69eb4e918f1c06b3c8db307bd32b";
+  };
+
+  checkInputs = [ nose rednose ];
+
+  propagatedBuildInputs = [
+    paramiko lxml libxml2 libxslt
+  ];
+
+  checkPhase = ''
+    nosetests test --rednose --verbosity=3 --with-coverage --cover-package ncclient
+  '';
+
+  #Unfortunately the test hangs at te end
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://ncclient.org/;
+    description = "Python library for NETCONF clients";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ xnaveira ];
+  };
+}
diff --git a/pkgs/development/python-modules/odo/default.nix b/pkgs/development/python-modules/odo/default.nix
index 73b3f0be1503a..fc3747ac59aef 100644
--- a/pkgs/development/python-modules/odo/default.nix
+++ b/pkgs/development/python-modules/odo/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pytest
 , datashape
 , numpy
@@ -8,23 +8,28 @@
 , toolz
 , multipledispatch
 , networkx
+, dask
 }:
 
 buildPythonPackage rec {
   pname = "odo";
-  version= "0.5.0";
-  name = "${pname}-${version}";
+  version= "0.5.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1mh5k69d9ph9jd07jl9yqh78rbnh5cjspi1q530v3ml7ivjzz4p8";
+
+  src = fetchFromGitHub {
+    owner = "blaze";
+    repo = pname;
+    rev = version;
+    sha256 = "142f4jvaqjn0dq6rvlk7d7mzcmc255a9z4nxc1b3a862hp4gvijs";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest dask ];
   propagatedBuildInputs = [ datashape numpy pandas toolz multipledispatch networkx ];
 
+  # Disable failing tests
+  # https://github.com/blaze/odo/issues/609
   checkPhase = ''
-    py.test odo/tests
+    py.test -k "not test_numpy_asserts_type_after_dataframe" odo/tests
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/oset/default.nix b/pkgs/development/python-modules/oset/default.nix
new file mode 100644
index 0000000000000..aa435b403e8b6
--- /dev/null
+++ b/pkgs/development/python-modules/oset/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "oset";
+  version = "0.1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "017rr1m72s2fh9bmz5vrvc5mshczgzisi5894v9zkvvfr7gdf7sc";
+  };
+
+  doCheck = false;
+
+  meta = {
+    description = "Ordered set";
+    license = stdenv.lib.licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index 034748255277b..cb6008ea9a2b1 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -31,6 +31,14 @@ buildPythonPackage rec {
     ++ stdenv.lib.optionals (isPyPy) [ tk libX11 ];
 
   # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
+  # NOTE: The Pillow install script will, by default, add paths like /usr/lib
+  # and /usr/include to the search paths. This can break things when building
+  # on a non-NixOS system that has some libraries installed that are not
+  # installed in Nix (for example, Arch Linux has jpeg2000 but Nix doesn't
+  # build Pillow with this support). We patch the `disable_platform_guessing`
+  # setting here, instead of passing the `--disable-platform-guessing`
+  # command-line option, since the command-line option doesn't work when we run
+  # tests.
   preConfigure = let
     libinclude' = pkg: ''"${pkg.out}/lib", "${pkg.out}/include"'';
     libinclude = pkg: ''"${pkg.out}/lib", "${pkg.dev}/include"'';
@@ -41,7 +49,8 @@ buildPythonPackage rec {
             s|^ZLIB_ROOT =.*$|ZLIB_ROOT = ${libinclude zlib}|g ;
             s|^LCMS_ROOT =.*$|LCMS_ROOT = ${libinclude lcms2}|g ;
             s|^TIFF_ROOT =.*$|TIFF_ROOT = ${libinclude libtiff}|g ;
-            s|^TCL_ROOT=.*$|TCL_ROOT = ${libinclude' tcl}|g ;'
+            s|^TCL_ROOT=.*$|TCL_ROOT = ${libinclude' tcl}|g ;
+            s|self\.disable_platform_guessing = None|self.disable_platform_guessing = True|g ;'
     export LDFLAGS="-L${libwebp}/lib"
     export CFLAGS="-I${libwebp}/include"
   ''
diff --git a/pkgs/development/python-modules/polib/default.nix b/pkgs/development/python-modules/polib/default.nix
new file mode 100644
index 0000000000000..3b2ee20c8251c
--- /dev/null
+++ b/pkgs/development/python-modules/polib/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "polib";
+  version = "1.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16klwlswfbgmkzrra80fgzhic9447pk3mnr75r2fkz72bkvpcclb";
+  };
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A library to manipulate gettext files (po and mo files)";
+    homepage = https://bitbucket.org/izi/polib/;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/proboscis/default.nix b/pkgs/development/python-modules/proboscis/default.nix
new file mode 100644
index 0000000000000..f2373e4702f95
--- /dev/null
+++ b/pkgs/development/python-modules/proboscis/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildPythonPackage, fetchPypi, nose }:
+
+buildPythonPackage rec {
+  pname = "proboscis";
+  version = "1.2.6.0";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b822b243a7c82030fce0de97bdc432345941306d2c24ef227ca561dd019cd238";
+  };
+
+  propagatedBuildInputs = [ nose ];
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A Python test framework that extends Python's built-in unittest module and Nose with features from TestNG";
+    homepage = https://pypi.python.org/pypi/proboscis;
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/progressbar/default.nix b/pkgs/development/python-modules/progressbar/default.nix
new file mode 100644
index 0000000000000..18dfa693f5b55
--- /dev/null
+++ b/pkgs/development/python-modules/progressbar/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "progressbar";
+  version = "2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "dfee5201237ca0e942baa4d451fee8bf8a54065a337fabe7378b8585aeda56a3";
+  };
+
+  # invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/progressbar;
+    description = "Text progressbar library for python";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+}
diff --git a/pkgs/development/python-modules/publicsuffix/default.nix b/pkgs/development/python-modules/publicsuffix/default.nix
new file mode 100644
index 0000000000000..9c90161c6eaaf
--- /dev/null
+++ b/pkgs/development/python-modules/publicsuffix/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "publicsuffix";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1adx520249z2cy7ykwjr1k190mn2888wqn9jf8qm27ly4qymjxxf";
+  };
+
+
+  # fix the ASCII-mode LICENSE file read
+  # disable test_fetch and the doctests (which also invoke fetch)
+  patchPhase = stdenv.lib.optionalString isPy3k ''
+    sed -i "s/)\.read(/,encoding='utf-8'\0/" setup.py
+  '' + ''
+    sed -i -e "/def test_fetch/i\\
+    \\t@unittest.skip('requires internet')" -e "/def additional_tests():/,+1d" tests.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Allows to get the public suffix of a domain name";
+    homepage = "https://pypi.python.org/pypi/publicsuffix/";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pybtex-docutils/default.nix b/pkgs/development/python-modules/pybtex-docutils/default.nix
new file mode 100644
index 0000000000000..45d907df2233e
--- /dev/null
+++ b/pkgs/development/python-modules/pybtex-docutils/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonPackage, fetchPypi, docutils, pybtex, six }:
+
+buildPythonPackage rec {
+  version = "0.2.1";
+  pname = "pybtex-docutils";
+
+  doCheck = false;
+  buildInputs = [ docutils pybtex six ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0dqk4lplij7rbqqi4dbpw3wzr4wj08ysswvdibls6s0x3ij7bc74";
+  };
+
+  meta = {
+    description = "A docutils backend for pybtex";
+    homepage = "https://github.com/mcmtroffaes/pybtex-docutils";
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pybtex/default.nix b/pkgs/development/python-modules/pybtex/default.nix
new file mode 100644
index 0000000000000..20689255435a4
--- /dev/null
+++ b/pkgs/development/python-modules/pybtex/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonPackage, fetchPypi, latexcodec, pyyaml }:
+
+buildPythonPackage rec {
+  version = "0.21";
+  pname = "pybtex";
+
+  doCheck = false;
+  propagatedBuildInputs = [ latexcodec pyyaml ];
+
+  src = fetchPypi {
+    inherit version pname;
+    sha256 = "00300j8dn5pxq4ndxmfmbmycg2znawkqs49val2x6jlmfiy6r2mg";
+  };
+
+  meta = {
+    homepage = "https://pybtex.org/";
+    description = "A BibTeX-compatible bibliography processor written in Python";
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pychart/default.nix b/pkgs/development/python-modules/pychart/default.nix
new file mode 100644
index 0000000000000..259c87347d72e
--- /dev/null
+++ b/pkgs/development/python-modules/pychart/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "pychart";
+  version = "1.39";
+
+  disabled = ! isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "882650928776a7ca72e67054a9e0ac98f78645f279c0cfb5910db28f03f07c2e";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Library for creating high quality encapsulated Postscript, PDF, PNG, or SVG charts";
+    homepage = https://pypi.python.org/pypi/PyChart;
+    license = licenses.gpl2;
+  };
+}
diff --git a/pkgs/development/python-modules/pyftgl/default.nix b/pkgs/development/python-modules/pyftgl/default.nix
index 117169a26121b..a858374722551 100644
--- a/pkgs/development/python-modules/pyftgl/default.nix
+++ b/pkgs/development/python-modules/pyftgl/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, isPy3k
-, boost, freetype, ftgl, mesa }:
+, boost, freetype, ftgl, libGLU_combined }:
 
 buildPythonPackage rec {
   pname = "pyftgl";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     sed -i "s,'boost_python','boost_python3',g" setup.py
   '';
 
-  buildInputs = [ boost freetype ftgl mesa ];
+  buildInputs = [ boost freetype ftgl libGLU_combined ];
 
   meta = with stdenv.lib; {
     description = "Python bindings for FTGL (FreeType for OpenGL)";
diff --git a/pkgs/development/python-modules/pyglet/default.nix b/pkgs/development/python-modules/pyglet/default.nix
index 8ac066500a4c1..3fc7f8ddb6835 100644
--- a/pkgs/development/python-modules/pyglet/default.nix
+++ b/pkgs/development/python-modules/pyglet/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchPypi
-, mesa, xorg, freetype, fontconfig, future}:
+, libGLU_combined, xorg, freetype, fontconfig, future}:
 
 buildPythonPackage rec {
   version = "1.3.1";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
   };
 
   postPatch = let
-    libs = [ mesa xorg.libX11 freetype fontconfig ];
+    libs = [ libGLU_combined xorg.libX11 freetype fontconfig ];
     paths = builtins.concatStringsSep "," (map (l: "\"${l}/lib\"") libs);
   in "sed -i -e 's|directories\.extend.*lib[^]]*|&,${paths}|' pyglet/lib.py";
 
diff --git a/pkgs/development/python-modules/pyjade/default.nix b/pkgs/development/python-modules/pyjade/default.nix
new file mode 100644
index 0000000000000..ad6742f5deb3a
--- /dev/null
+++ b/pkgs/development/python-modules/pyjade/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildPythonPackage, fetchPypi, pyramid_mako, nose, django, jinja2
+, tornado, pyramid, Mako, six }:
+
+buildPythonPackage rec {
+  pname = "pyjade";
+  version = "4.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1mycn5cc9cp4fb0i2vzgkkk6d0glnkbilggwb4i99i09vr0vg5cd";
+  };
+
+  buildInputs = [ pyramid_mako nose django jinja2 tornado pyramid Mako ];
+  propagatedBuildInputs = [ six ];
+  postPatch = ''
+    sed -i 's/1.4.99/1.99/' setup.py
+  '';
+  checkPhase = ''
+    nosetests pyjade
+  '';
+  # No tests distributed. https://github.com/syrusakbary/pyjade/issues/262
+  doCheck = false;
+  meta = with stdenv.lib; {
+    description = "Jade syntax template adapter for Django, Jinja2, Mako and Tornado templates";
+    homepage    = "https://github.com/syrusakbary/pyjade";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ nand0p ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-mock/default.nix b/pkgs/development/python-modules/pytest-mock/default.nix
index 6b852583c7edd..e8f8d0a5b7670 100644
--- a/pkgs/development/python-modules/pytest-mock/default.nix
+++ b/pkgs/development/python-modules/pytest-mock/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-mock";
-  version = "1.7.0";
+  version = "1.7.1";
  
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ed6c9ac6b7565b226b4da2da48876c9198d76401ec8d9c5e4c69b45423e33f8";
+    sha256 = "0jgr1h1f0m9dl3alxiiw55as28pj2lpihz12gird9z1i3vvdyydq";
   };
 
   patches = fetchpatch {
diff --git a/pkgs/development/python-modules/python-ptrace/default.nix b/pkgs/development/python-modules/python-ptrace/default.nix
new file mode 100644
index 0000000000000..ad0a17da2ac85
--- /dev/null
+++ b/pkgs/development/python-modules/python-ptrace/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "python-ptrace";
+  version = "0.9.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "019jlpya2d2b3vbg037hnj4z0f564r7ibygayda7bm7qbpw0sa4g";
+  };
+
+  # requires distorm, which is optionally
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python binding of ptrace library";
+    homepage = https://github.com/vstinner/python-ptrace;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ mic92 ];
+  };
+}
diff --git a/pkgs/development/python-modules/scp/default.nix b/pkgs/development/python-modules/scp/default.nix
new file mode 100644
index 0000000000000..a612528d47ab4
--- /dev/null
+++ b/pkgs/development/python-modules/scp/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, paramiko
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "scp";
+  version = "0.10.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18f59e48df67fac0b069591609a0f4d50d781a101ddb8ec705f0c2e3501a8386";
+  };
+
+  propagatedBuildInputs = [
+    paramiko
+  ];
+
+  checkPhase = ''
+    SCPPY_PORT=10022 ${python.interpreter} test.py
+  '';
+
+  #The Pypi package doesn't include the test
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/jbardin/scp.py;
+    description = "SCP module for paramiko";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ xnaveira ];
+  };
+}
diff --git a/pkgs/development/python-modules/sphinx-navtree/default.nix b/pkgs/development/python-modules/sphinx-navtree/default.nix
new file mode 100644
index 0000000000000..02e5711e888f4
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx-navtree/default.nix
@@ -0,0 +1,18 @@
+{ lib, fetchPypi, buildPythonPackage, sphinx }:
+
+buildPythonPackage rec {
+  version = "0.3.0";
+  pname = "sphinx-navtree";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1nqcsbqwr8ihk1fv534i0naag1qw04f7ibcgl2j8csvkh8q90b4p";
+  };
+
+  propagatedBuildInputs = [ sphinx ];
+
+  meta = {
+    description = "Navigation tree customization for Sphinx";
+    homepage = "https://github.com/bintoro/sphinx-navtree";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
new file mode 100644
index 0000000000000..4911c982cd067
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, oset, pybtex, pybtex-docutils, sphinx
+}:
+
+buildPythonPackage rec {
+  version = "0.3.6";
+  pname = "sphinxcontrib-bibtex";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1mfl3k6axq6rzqwq62fj8y9gabim2zcvydjpqmjj27f8v1qw0kpc";
+  };
+
+  propagatedBuildInputs = [ oset pybtex pybtex-docutils sphinx ];
+
+  meta = {
+    description = "A Sphinx extension for BibTeX style citations";
+    homepage = "https://github.com/mcmtroffaes/sphinxcontrib-bibtex";
+    license = stdenv.lib.licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/wsproto/default.nix b/pkgs/development/python-modules/wsproto/default.nix
new file mode 100644
index 0000000000000..e98fcf205fd59
--- /dev/null
+++ b/pkgs/development/python-modules/wsproto/default.nix
@@ -0,0 +1,14 @@
+{ lib, buildPythonPackage, fetchPypi, h11, enum34 }:
+
+buildPythonPackage rec {
+  pname = "wsproto";
+  version = "0.11.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "092qk4pbyaxx8b81hv9p7pc3ww54bwfqybhya4madka3pgv19wh2";
+  };
+
+  propagatedBuildInputs = [ h11 enum34 ];
+
+}
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index e81ce35977e17..cc0fdfc6fd923 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -310,7 +310,7 @@ let
     rgdal = [ pkgs.proj pkgs.gdal ];
     rgeos = [ pkgs.geos ];
     rggobi = [ pkgs.ggobi pkgs.gtk2.dev pkgs.libxml2.dev ];
-    rgl = [ pkgs.mesa pkgs.xlibsWrapper ];
+    rgl = [ pkgs.libGLU_combined pkgs.xlibsWrapper ];
     Rglpk = [ pkgs.glpk ];
     RGtk2 = [ pkgs.gtk2.dev ];
     rhdf5 = [ pkgs.zlib ];
@@ -924,6 +924,13 @@ let
       NIX_CFLAGS_COMPILE = "${attrs.NIX_CFLAGS_COMPILE} -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
     });
 
+    mongolite = old.mongolite.overrideDerivation (attrs: {
+      preConfigure = ''
+        patchShebangs configure
+        '';
+      PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include -I${pkgs.cyrus_sasl.dev}/include -I${pkgs.zlib.dev}/include";
+      PKGCONFIG_LIBS = "-Wl,-rpath,${pkgs.openssl.out}/lib -L${pkgs.openssl.out}/lib -L${pkgs.cyrus_sasl.out}/lib -L${pkgs.zlib.out}/lib -lssl -lcrypto -lsasl2 -lz";
+    });
   };
 in
   self
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index ac0b2dd07f833..a442155a631b0 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -259,8 +259,9 @@ in
     ];
   };
   rugged = attrs: {
-  nativeBuildInputs = [ pkgconfig ];
+    nativeBuildInputs = [ pkgconfig ];
     buildInputs = [ cmake openssl libssh2 zlib ];
+    dontUseCmakeConfigure = true;
   };
 
   scrypt = attrs:
diff --git a/pkgs/development/ruby-modules/gem/default.nix b/pkgs/development/ruby-modules/gem/default.nix
index 5bde59eab04d2..d00ce7fccf5c1 100644
--- a/pkgs/development/ruby-modules/gem/default.nix
+++ b/pkgs/development/ruby-modules/gem/default.nix
@@ -36,7 +36,6 @@ lib.makeOverridable (
     rubyName = builtins.parseDrvName ruby.name;
   in "${rubyName.name}${rubyName.version}-")
 , buildInputs ? []
-, doCheck ? false
 , meta ? {}
 , patches ? []
 , gemPath ? []
@@ -79,7 +78,6 @@ in
 
 stdenv.mkDerivation ((builtins.removeAttrs attrs ["source"]) // {
   inherit ruby;
-  inherit doCheck;
   inherit dontBuild;
   inherit dontStrip;
   inherit type;
@@ -96,8 +94,6 @@ stdenv.mkDerivation ((builtins.removeAttrs attrs ["source"]) // {
 
   inherit src;
 
-  phases = attrs.phases or [ "unpackPhase" "patchPhase" "buildPhase" "installPhase" "fixupPhase" ];
-
   unpackPhase = attrs.unpackPhase or ''
     runHook preUnpack
 
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 91037588552c9..6043e2d289d7f 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "6.19";
+  version = "8.8";
   name = "checkstyle-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/checkstyle/${name}-bin.tar.gz";
-    sha256 = "0x899i5yamwyhv7wgii80fv5hl8bdq0b8wlx1f789l85ik8rjwk9";
+    sha256 = "0yawd6mbz6cqj0qlrh01vy33p30f4s3pfrvsxwg5l11p416zzrz4";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/cppcheck/default.nix b/pkgs/development/tools/analysis/cppcheck/default.nix
index 97bd0d6e3dff8..02f44f4bf7047 100644
--- a/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "cppcheck";
-  version = "1.80";
+  version = "1.82";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${name}.tar.bz2";
-    sha256 = "1yx06yhkqlv9849ns7p97mj09gm9j7xc51q7yvzkk8ldvx4d4h88";
+    sha256 = "0kk9injrxbv4mmmjswrh1kidal6l0sdzbp40kv8vwf5aiv8jjaz0";
   };
 
   buildInputs = [ pcre ];
diff --git a/pkgs/development/tools/analysis/include-what-you-use/default.nix b/pkgs/development/tools/analysis/include-what-you-use/default.nix
index f2481013fbbd5..ec4d19423e6d5 100644
--- a/pkgs/development/tools/analysis/include-what-you-use/default.nix
+++ b/pkgs/development/tools/analysis/include-what-you-use/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://include-what-you-use.org;
     license = licenses.bsd3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/analysis/pmd/default.nix b/pkgs/development/tools/analysis/pmd/default.nix
index e5bed62d324f0..cdf59cd867c66 100644
--- a/pkgs/development/tools/analysis/pmd/default.nix
+++ b/pkgs/development/tools/analysis/pmd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "pmd-${version}";
-  version = "5.2.3";
+  version = "6.0.1";
 
   buildInputs = [ unzip ];
 
   src = fetchurl {
     url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip";
-    sha256 = "03frkyiii7304qrcypdqcxqxjf5n3p59zjib0r802mbbx1nzcisn";
+    sha256 = "13wmmy345p8bzvxdb8ldpkv85m3m8x9qs5f0jjhn0gkn65a988iq";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 6a7992b01311c..d70332749d981 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -13,22 +13,22 @@ let
   inherit (stdenv.lib) optional;
 in
 stdenv.mkDerivation rec {
-  version = "2.3.0";
+  version = "2.4.0";
   name = "radare2-${version}";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
     rev = version;
-    sha256 = "0x5vcprqf0fnj876mdvryfvg7ymbrw1cxrr7a06v0swg7yql1lpw";
+    sha256 = "08zvxgsvc6rqpjaapcxz1wm9vzlrbsqgplfkx0lch2s67v6slr7z";
   };
 
   postPatch = let
-    cs_tip = "bdbc57de63725a98732ddc34b48de96f8ada66f2"; # version from $sourceRoot/shlr/Makefile
+    cs_tip = "4a1b580d069c82d60070d0869a87000db7cdabe2"; # version from $sourceRoot/shlr/Makefile
     capstone = fetchgit {
       url = "https://github.com/aquynh/capstone.git";
       rev = cs_tip;
-      sha256 = "1sqxpjf2dlrg87dm9p39p5d1qzahrnfnrjijpv1xg1shax439jni";
+      sha256 = "1b126npshdbwh5y7rafmb9w4dzlvxsf4ca6bx4zs2y7kbk48jyn8";
       leaveDotGit = true;
     };
   in ''
diff --git a/pkgs/development/tools/analysis/spin/default.nix b/pkgs/development/tools/analysis/spin/default.nix
index 284bf26782feb..1be5655b1e533 100644
--- a/pkgs/development/tools/analysis/spin/default.nix
+++ b/pkgs/development/tools/analysis/spin/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, makeWrapper, yacc, gcc
+{ stdenv, lib, requireFile, makeWrapper, yacc, gcc
 , withISpin ? true, tk, swarm, graphviz }:
 
 let
@@ -7,12 +7,17 @@ let
 
 in stdenv.mkDerivation rec {
   name = "spin-${version}";
-  version = "6.4.7";
+  version = "6.4.8";
   url-version = stdenv.lib.replaceChars ["."] [""] version;
 
-  src = fetchurl {
-    url = "http://spinroot.com/spin/Src/spin${url-version}.tar.gz";
-    sha256 = "17m2xaag0jns8hsa4466zxq35ylg9fnzynzvjjmx4ympbiil6mqv";
+  src = requireFile {
+    name = "spin${url-version}.tar.gz";
+    sha256 = "1rpazi5fj772121cn7r85fxypmaiv0x6x2l82b5y1xqzyf0fi4ph";
+    message = ''
+      reCAPTCHA is preventing us to download the file for you.
+      Please download it at http://spinroot.com/spin/Src/index.html
+      and add it to the nix-store using nix-prefetch-url.
+    '';
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -20,6 +25,12 @@ in stdenv.mkDerivation rec {
 
   sourceRoot = "Spin/Src${version}";
 
+  unpackPhase = ''
+    # The archive is compressed twice
+    gunzip -c $src > spin.tar.gz
+    tar -xzf spin.tar.gz
+  '';
+
   installPhase = ''
     install -Dm755 spin $out/bin/spin
     wrapProgram $out/bin/spin \
diff --git a/pkgs/development/tools/ansible-lint/default.nix b/pkgs/development/tools/ansible-lint/default.nix
new file mode 100644
index 0000000000000..16d2782b73403
--- /dev/null
+++ b/pkgs/development/tools/ansible-lint/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, pythonPackages, ansible }:
+
+pythonPackages.buildPythonPackage rec {
+  pname = "ansible-lint";
+  version = "3.4.20";
+
+  src = fetchFromGitHub {
+    owner = "willthames";
+    repo = "ansible-lint";
+    rev = "v${version}";
+    sha256 = "0wgczijrg5azn2f63hjbkas1w0f5hbvxnk3ia53w69mybk0gy044";
+  };
+
+  propagatedBuildInputs = with pythonPackages; [ pyyaml six ] ++ [ ansible ];
+
+  checkInputs = [ pythonPackages.nose ];
+
+  postPatch = ''
+    patchShebangs bin/ansible-lint
+  '';
+
+  checkPhase = ''
+    nosetests test
+  '';
+
+  meta = {
+    homepage = "https://github.com/willthames/ansible-lint";
+    description = "Best practices checker for Ansible";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.sengaya ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/bazel/0.4.nix b/pkgs/development/tools/build-managers/bazel/0.4.nix
index d131232e96d90..7fa39ef216278 100644
--- a/pkgs/development/tools/build-managers/bazel/0.4.nix
+++ b/pkgs/development/tools/build-managers/bazel/0.4.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     description = "Build tool that builds code quickly and reliably";
     license = licenses.asl20;
     maintainers = with maintainers; [ cstrahan philandstuff ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 
   name = "bazel-${version}";
diff --git a/pkgs/development/tools/build-managers/dub/default.nix b/pkgs/development/tools/build-managers/dub/default.nix
index da404a63d85fd..28894850bbd96 100644
--- a/pkgs/development/tools/build-managers/dub/default.nix
+++ b/pkgs/development/tools/build-managers/dub/default.nix
@@ -4,7 +4,7 @@ let
 
   dubBuild = stdenv.mkDerivation rec {
     name = "dubBuild-${version}";
-    version = "1.7.2";
+    version = "1.8.0";
 
     enableParallelBuilding = true;
 
@@ -12,21 +12,13 @@ let
       owner = "dlang";
       repo = "dub";
       rev = "v${version}";
-      sha256 = "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9";
+      sha256 = "0788d375sc6xdak9x6xclkkz243lb7di68yxfvl4v0n178mi22bk";
     };
 
     postUnpack = ''
         patchShebangs .
     '';
 
-    patches = [
-      # TODO Remove with next release which contains https://github.com/dlang/dub/pull/1354
-      (fetchpatch {
-        url = "https://patch-diff.githubusercontent.com/raw/dlang/dub/pull/1354.patch";
-        sha256 = "01alky8a91qwjmlnfjbrn8kiivwr69f3j4c84cjlxrzfp1ph20ah";
-      })
-    ];
-
     # Can be removed with https://github.com/dlang/dub/pull/1368
     dubvar = "\\$DUB";
     postPatch = ''
@@ -71,8 +63,6 @@ let
 
     src = dubBuild.src;
     
-    patches = dubBuild.patches;
-
     postUnpack = dubBuild.postUnpack;
     postPatch = dubBuild.postPatch;
 
diff --git a/pkgs/development/tools/build-managers/icmake/default.nix b/pkgs/development/tools/build-managers/icmake/default.nix
index 5b455f267d823..4a37ca011c281 100644
--- a/pkgs/development/tools/build-managers/icmake/default.nix
+++ b/pkgs/development/tools/build-managers/icmake/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gcc }:
+{ stdenv, fetchFromGitHub, makeWrapper, gcc, ncurses }:
 
 stdenv.mkDerivation rec {
   name = "icmake-${version}";
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
     sourceRoot=$(echo */icmake)
   '';
 
+  nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ gcc ];
 
   preConfigure = ''
@@ -30,6 +31,9 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     ./icm_install all /
+
+    wrapProgram $out/bin/icmbuild \
+     --prefix PATH : ${ncurses}/bin
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index e7c2509ce7714..5181361abf675 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl, go-bindata }:
 
 let
-  version = "10.4.0";
+  version = "10.5.0";
   # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
   docker_x86_64 = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-x86_64.tar.xz";
-    sha256 = "0fcddi1mwgj831abn628zcpwsah3mmvrbdi851pjf8vraynwr2xa";
+    sha256 = "1ywfki1599ggyq0g3r8f7pi1njvvjz41kjhssfax20ljm2c6q5v0";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/docker/prebuilt-arm.tar.xz";
-    sha256 = "1zlk3i9jzmsqz5r3kzg08z9hyhidw9dpv5ji46bnbjis8q3dlw54";
+    sha256 = "0r71zvyg17926h2vpjr3q16l1yqcb8ky21ic5arc7jh82nzywywl";
   };
 in
 buildGoPackage rec {
@@ -29,7 +29,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "0kp6h53d1q652i4wp94hydy1ixlgmqh92sjsc6pqicnfc7nvwgfq";
+    sha256 = "13c9jzqj92xf2dzk77xpsfc4dwffvjfp8bqy685shzz1lrrfhfvq";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/pkgs/development/tools/documentation/gtk-doc/default.nix b/pkgs/development/tools/documentation/gtk-doc/default.nix
index 429bbd3ae63e8..5414abff66ae4 100644
--- a/pkgs/development/tools/documentation/gtk-doc/default.nix
+++ b/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -7,11 +7,11 @@ in
 
 stdenv.mkDerivation rec {
   name = "gtk-doc-${version}";
-  version = "1.25";
+  version = "1.27";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk-doc/${version}/${name}.tar.xz";
-    sha256 = "0hpxcij9xx9ny3gs9p0iz4r8zslw8wqymbyababiyl7603a6x90y";
+    sha256 = "0vwsdl61nvnmqswlz5j9m4hg7qirhazwcikcnqf9nx0c13vx6sz2";
   };
 
   patches = [
diff --git a/pkgs/development/tools/dtools/default.nix b/pkgs/development/tools/dtools/default.nix
index d76bbb7f53a3a..d5f691b0cac57 100644
--- a/pkgs/development/tools/dtools/default.nix
+++ b/pkgs/development/tools/dtools/default.nix
@@ -2,21 +2,21 @@
 
 stdenv.mkDerivation rec {
   name = "dtools-${version}";
-  version = "2.078.2";
+  version = "2.079.0";
 
   srcs = [
     (fetchFromGitHub {
       owner = "dlang";
       repo = "dmd";
       rev = "v${version}";
-      sha256 = "0x9q4aw4jl36dz7m5111y2sm8jdaj3zg36zhj6vqg1lqpdn3bhls";
+      sha256 = "1k6cky71pqnss6h6391p1ich2mjs598f5fda018aygnxg87qgh4y";
       name = "dmd";
     })
     (fetchFromGitHub {
       owner = "dlang";
       repo = "tools";
       rev = "v${version}";
-      sha256 = "1cydhn8g0h9i9mygzi80fb5fz3z1f6m8b9gypdvmyhkkzg63kf12";
+      sha256 = "0fvpfwh3bh3fymrmis3n39x9hkfklmv81lrlqcyl8fmmk694yvad";
       name = "dtools";
     })
   ];
diff --git a/pkgs/development/tools/glslviewer/default.nix b/pkgs/development/tools/glslviewer/default.nix
index 86f78891b2fcf..7a28f86562f6b 100644
--- a/pkgs/development/tools/glslviewer/default.nix
+++ b/pkgs/development/tools/glslviewer/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, glfw, pkgconfig, libXrandr, libXdamage
 , libXext, libXrender, libXinerama, libXcursor, libXxf86vm, libXi
-, libX11, mesa_glu, Cocoa
+, libX11, libGLU, Cocoa
 }:
 
 stdenv.mkDerivation rec {
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    glfw mesa_glu glfw libXrandr libXdamage
+    glfw libGLU glfw libXrandr libXdamage
     libXext libXrender libXinerama libXcursor libXxf86vm
     libXi libX11
   ] ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix
index 54e0c53d692ce..1ea4d160b4cb9 100644
--- a/pkgs/development/tools/godot/default.nix
+++ b/pkgs/development/tools/godot/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, gcc5, scons, pkgconfig, libX11, libXcursor
 , libXinerama, libXrandr, libXrender, freetype, openssl, alsaLib
-, libpulseaudio, mesa_glu, zlib }:
+, libpulseaudio, libGLU, zlib }:
 
 stdenv.mkDerivation rec {
   name    = "godot-${version}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
     gcc5 scons libX11 libXcursor libXinerama libXrandr libXrender
-    freetype openssl alsaLib libpulseaudio mesa_glu zlib
+    freetype openssl alsaLib libpulseaudio libGLU zlib
   ];
 
   patches = [ ./pkg_config_additions.patch ];
diff --git a/pkgs/development/tools/godot/pkg_config_additions.patch b/pkgs/development/tools/godot/pkg_config_additions.patch
index c4675322e2b3b..2302710ac7e47 100644
--- a/pkgs/development/tools/godot/pkg_config_additions.patch
+++ b/pkgs/development/tools/godot/pkg_config_additions.patch
@@ -4,7 +4,7 @@
      env.ParseConfig('pkg-config xcursor --cflags --libs')
      env.ParseConfig('pkg-config xrandr --cflags --libs')
 +    env.ParseConfig('pkg-config xrender --cflags --libs')
-+    env.ParseConfig('pkg-config osmesa --cflags')
++    env.ParseConfig('pkg-config oslibGLU_combined --cflags')
 +    env.ParseConfig('pkg-config glu --cflags --libs')
 +    env.ParseConfig('pkg-config zlib --cflags --libs')
 
diff --git a/pkgs/development/tools/haskell/multi-ghc-travis/default.nix b/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
index a259fd7d76bae..2bcf13f1337df 100644
--- a/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
+++ b/pkgs/development/tools/haskell/multi-ghc-travis/default.nix
@@ -8,8 +8,8 @@ mkDerivation {
   src = fetchFromGitHub {
     owner = "haskell-CI";
     repo = "haskell-ci";
-    rev = "36b2ee58b9fd160d606608832625b2b6c32aec43";
-    sha256 = "16g99jh5bszvfvb7mmyhl95mkf1l3ydyax8d9py91hi3m8r0c2x0";
+    rev = "a4962f1478089654d138da7a3807dfcf2cef4284";
+    sha256 = "1qwknajabxcfz5w5g0yn30r8p0180wxp7pncr6nwfhszlhay0vb7";
   };
   isLibrary = true;
   isExecutable = true;
diff --git a/pkgs/development/tools/icestorm/default.nix b/pkgs/development/tools/icestorm/default.nix
index 0307027faa2eb..b277957efa937 100644
--- a/pkgs/development/tools/icestorm/default.nix
+++ b/pkgs/development/tools/icestorm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "icestorm-${version}";
-  version = "2018.02.14";
+  version = "2018.03.07";
 
   src = fetchFromGitHub {
     owner  = "cliffordwolf";
     repo   = "icestorm";
-    rev    = "edbf5fce90ff0e71922a54241a1aec914cc3e230";
-    sha256 = "01d6xv5c4x8w8lamc8n3vnqsyn7ykhh1ws7k96d6ij5fs52k94xb";
+    rev    = "535fde63613eccfeb7e5aad8ff97fbfb652a33b6";
+    sha256 = "1j2p961k1fsq1xq8fnrv0hpwrb948q12jkb479zmrfk61w6la0df";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/tools/misc/cl-launch/default.nix b/pkgs/development/tools/misc/cl-launch/default.nix
index ffd668dbdeef6..c245a32a06d9d 100644
--- a/pkgs/development/tools/misc/cl-launch/default.nix
+++ b/pkgs/development/tools/misc/cl-launch/default.nix
@@ -33,6 +33,6 @@ stdenv.mkDerivation {
     description = ''Common Lisp launcher script'';
     license = stdenv.lib.licenses.llgpl21 ;
     maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/misc/gdb/darwin-target-match.patch b/pkgs/development/tools/misc/gdb/darwin-target-match.patch
new file mode 100644
index 0000000000000..1328d919503ae
--- /dev/null
+++ b/pkgs/development/tools/misc/gdb/darwin-target-match.patch
@@ -0,0 +1,11 @@
+--- a/configure	2017-06-05 00:51:26.000000000 +0900
++++ b/configure	2018-03-06 23:12:58.000000000 +0900
+@@ -3603,7 +3603,7 @@
+     noconfigdirs="$noconfigdirs ld gprof"
+     noconfigdirs="$noconfigdirs sim target-rda"
+     ;;
+-  x86_64-*-darwin[912]*)
++  x86_64-*-darwin*)
+     noconfigdirs="$noconfigdirs ld gas gprof"
+     noconfigdirs="$noconfigdirs sim target-rda"
+     ;;
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index e068b908caf42..b5840d0746686 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -35,7 +35,8 @@ stdenv.mkDerivation rec {
     sha256 = "0d2bpqk58fqlx21rbnk8mbcjlggzc9kb5sjirrfrrrjq70ka0qdg";
   };
 
-  patches = [ ./debug-info-from-env.patch ];
+  patches = [ ./debug-info-from-env.patch ]
+    ++ stdenv.lib.optional stdenv.isDarwin ./darwin-target-match.patch;
 
   nativeBuildInputs = [ pkgconfig texinfo perl setupDebugInfoDirs ]
     # TODO(@Ericson2314) not sure if should be host or target
diff --git a/pkgs/development/tools/misc/global/default.nix b/pkgs/development/tools/misc/global/default.nix
index 35126c85d3fef..296d9673d8f15 100644
--- a/pkgs/development/tools/misc/global/default.nix
+++ b/pkgs/development/tools/misc/global/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "global-${version}";
-  version = "6.5.7";
+  version = "6.6.2";
 
   src = fetchurl {
     url = "mirror://gnu/global/${name}.tar.gz";
-    sha256 = "0cnd7a7d1pl46yk15q6mnr9i9w3xi8pxgchw4ia9njgr4jjqzh6r";
+    sha256 = "0zvi5vxwiq0dy8mq2cgs64m8harxs0fvkmsnvi0ayb0w608lgij3";
   };
 
   nativeBuildInputs = [ libtool makeWrapper ];
diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix
index 613a4fec85309..cf9057d35e2c5 100644
--- a/pkgs/development/tools/misc/hydra/default.nix
+++ b/pkgs/development/tools/misc/hydra/default.nix
@@ -79,17 +79,6 @@ in releaseTools.nixBuild rec {
       guile # optional, for Guile + Guix support
       perlDeps perl nixUnstable
       postgresql # for running the tests
-      (lib.overrideDerivation (aws-sdk-cpp.override {
-        apis = ["s3"];
-        customMemoryManagement = false;
-      }) (attrs: {
-        src = fetchFromGitHub {
-          owner = "edolstra";
-          repo = "aws-sdk-cpp";
-          rev = "local";
-          sha256 = "1vhgsxkhpai9a7dk38q4r239l6dsz2jvl8hii24c194lsga3g84h";
-        };
-      }))
     ];
 
   hydraPath = lib.makeBinPath (
diff --git a/pkgs/development/tools/misc/yodl/default.nix b/pkgs/development/tools/misc/yodl/default.nix
index 06588e60a5e4a..1f5ead84677b5 100644
--- a/pkgs/development/tools/misc/yodl/default.nix
+++ b/pkgs/development/tools/misc/yodl/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   name = "yodl-${version}";
-  version = "4.01.00";
+  version = "4.02.00";
 
   nativeBuildInputs = [ icmake ];
 
   buildInputs = [ perl ];
 
   src = fetchFromGitHub {
-    sha256 = "1aahwmj4gmf59lrij2373lkgfj77i3ghdas9c7iqrjwaizb0430p";
+    sha256 = "08i3q3h581kxr5v7wi114bng66pwwsjs5qj3ywnnrr7ra1h5rzwa";
     rev = version;
     repo = "yodl";
     owner = "fbb-git";
@@ -27,6 +27,9 @@ stdenv.mkDerivation rec {
     substituteInPlace scripts/yodl2whatever.in --replace getopt ${utillinux}/bin/getopt
   '';
 
+  # Set TERM because icmbuild calls tput.
+  TERM = "xterm";
+
   buildPhase = ''
     ./build programs
     ./build macros
diff --git a/pkgs/development/tools/mypy/default.nix b/pkgs/development/tools/mypy/default.nix
index f06f9c6828c8d..7e8725745c2e3 100644
--- a/pkgs/development/tools/mypy/default.nix
+++ b/pkgs/development/tools/mypy/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonApplication rec {
   pname = "mypy";
-  version = "0.560";
+  version = "0.570";
 
   # Tests not included in pip package.
   doCheck = false;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jja0xlwqajxzab8sabiycax8060zikg89dnl9a7lkqcrwprl35x";
+    sha256 = "09cz0h4d6xcdqlchw080nkjlwki3mgjrlvfnj5hxxwi3cgv9imw3";
   };
 
   propagatedBuildInputs = [ lxml typed-ast psutil ];
diff --git a/pkgs/development/tools/parsing/jshon/default.nix b/pkgs/development/tools/parsing/jshon/default.nix
index 5406b4e9a0e53..359daad2d517c 100644
--- a/pkgs/development/tools/parsing/jshon/default.nix
+++ b/pkgs/development/tools/parsing/jshon/default.nix
@@ -1,10 +1,10 @@
 { stdenv, lib, fetchFromGitHub, fetchpatch, jansson }:
 
 stdenv.mkDerivation rec {
-  name = "jshon-20140712";
+  name = "jshon-20160111.2";
 
   rev = "a61d7f2f85f4627bc3facdf951746f0fd62334b7";
-  sha256 = "b0365e58553b9613a5636545c5bfd4ad05ab5024f192e1cb1d1824bae4e1a380";
+  sha256 = "1053w7jbl90q3p5y34pi4i8an1ddsjzwaib5cfji75ivamc5wdmh";
 
   src = fetchFromGitHub {
     inherit rev sha256;
diff --git a/pkgs/development/tools/profiling/systemtap/default.nix b/pkgs/development/tools/profiling/systemtap/default.nix
index 7b313f3014134..55902f48bb733 100644
--- a/pkgs/development/tools/profiling/systemtap/default.nix
+++ b/pkgs/development/tools/profiling/systemtap/default.nix
@@ -5,9 +5,9 @@
 let
   ## fetchgit info
   url = git://sourceware.org/git/systemtap.git;
-  rev = "276ed27a3cc64531542ab73bb36bb04784e79bbc";
-  sha256 = "11967dx3cjs96v3ncfljw0h7blsgg9wm8g9z2270q9a90988g2c2";
-  version = "2017-02-04";
+  rev = "4051c70c9318c837981384cbb23f3e9eb1bd0892";
+  sha256 = "0sd8n3j3rishks3gyqj2jyqhps7hmlfjyz8i0w8v98cczhhh04rq";
+  version = "2017.10.18";
 
   inherit (kernel) stdenv;
   inherit (stdenv) lib;
@@ -16,7 +16,7 @@ let
   stapBuild = stdenv.mkDerivation {
     name = "systemtap-${version}";
     src = fetchgit { inherit url rev sha256; };
-  nativeBuildInputs = [ pkgconfig ];
+    nativeBuildInputs = [ pkgconfig ];
     buildInputs = [ elfutils gettext python2 python2Packages.setuptools ];
     # FIXME: Workaround for bug in kbuild, where quoted -I"/foo" flags would get mangled in out-of-tree kbuild dirs
     postPatch = ''
diff --git a/pkgs/development/tools/simavr/default.nix b/pkgs/development/tools/simavr/default.nix
index e3dda5094275e..b009d5ed601bd 100644
--- a/pkgs/development/tools/simavr/default.nix
+++ b/pkgs/development/tools/simavr/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, avrbinutils, avrgcc, avrlibc, libelf, which, git, pkgconfig, freeglut
-, mesa }:
+, libGLU_combined }:
 
 stdenv.mkDerivation rec {
   name = "simavr-${version}";
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ which git avrbinutils avrgcc avrlibc libelf freeglut mesa ];
+  buildInputs = [ which git avrbinutils avrgcc avrlibc libelf freeglut libGLU_combined ];
 
   meta = with stdenv.lib; {
     description = "A lean and mean Atmel AVR simulator";
diff --git a/pkgs/development/tools/unity3d/default.nix b/pkgs/development/tools/unity3d/default.nix
index c7ba985d0f75b..e507e3898c386 100644
--- a/pkgs/development/tools/unity3d/default.nix
+++ b/pkgs/development/tools/unity3d/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, makeWrapper, fakeroot, file, getopt
-, gtk2, gdk_pixbuf, glib, mesa_glu, postgresql, nss, nspr, udev
+, gtk2, gdk_pixbuf, glib, libGLU, postgresql, nss, nspr, udev
 , alsaLib, GConf, cups, libcap, fontconfig, freetype, pango
 , cairo, dbus, expat, zlib, libpng12, nodejs, gnutar, gcc, gcc_32bit
 , libX11, libXcursor, libXdamage, libXfixes, libXrender, libXi
@@ -9,7 +9,7 @@
 
 let
   libPath64 = lib.makeLibraryPath [
-    gcc.cc gtk2 gdk_pixbuf glib mesa_glu postgresql nss nspr
+    gcc.cc gtk2 gdk_pixbuf glib libGLU postgresql nss nspr
     alsaLib GConf cups libcap fontconfig freetype pango
     cairo dbus expat zlib libpng12 udev
     libX11 libXcursor libXdamage libXfixes libXrender libXi
diff --git a/pkgs/development/tools/vagrant/Gemfile.lock b/pkgs/development/tools/vagrant/Gemfile.lock
index 208aab0a2078c..2c63b57443ad5 100644
--- a/pkgs/development/tools/vagrant/Gemfile.lock
+++ b/pkgs/development/tools/vagrant/Gemfile.lock
@@ -11,16 +11,16 @@ GIT
 PATH
   remote: .
   specs:
-    vagrant (2.0.1)
+    vagrant (2.0.2)
       childprocess (~> 0.6.0)
       erubis (~> 2.7.0)
-      hashicorp-checkpoint (~> 0.1.1)
+      hashicorp-checkpoint (~> 0.1.5)
       i18n (>= 0.6.0, <= 0.8.0)
       listen (~> 3.1.5)
       log4r (~> 1.1.9, < 1.1.11)
       net-scp (~> 1.2.0)
       net-sftp (~> 2.1)
-      net-ssh (~> 4.1.0)
+      net-ssh (~> 4.2.0)
       rb-kqueue (~> 0.2.0)
       rest-client (>= 1.6.0, < 3.0)
       ruby_dep (<= 1.3.1)
@@ -50,7 +50,7 @@ GEM
     gyoku (1.3.1)
       builder (>= 2.1.2)
     hashdiff (0.3.7)
-    hashicorp-checkpoint (0.1.4)
+    hashicorp-checkpoint (0.1.5)
     http-cookie (1.0.3)
       domain_name (~> 0.5)
     httpclient (2.8.3)
@@ -67,17 +67,17 @@ GEM
     mime-types (3.1)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2016.0521)
-    multi_json (1.12.2)
+    multi_json (1.13.1)
     net-scp (1.2.1)
       net-ssh (>= 2.6.5)
     net-sftp (2.1.2)
       net-ssh (>= 2.6.5)
-    net-ssh (4.1.0)
+    net-ssh (4.2.0)
     netrc (0.11.0)
     nori (2.6.0)
     public_suffix (3.0.1)
     rake (12.0.0)
-    rb-fsevent (0.10.2)
+    rb-fsevent (0.10.3)
     rb-inotify (0.9.10)
       ffi (>= 0.5.0, < 2)
     rb-kqueue (0.2.5)
@@ -109,7 +109,7 @@ GEM
     thor (0.18.1)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.7.4)
+    unf_ext (0.0.7.5)
     wdm (0.1.1)
     webmock (2.3.2)
       addressable (>= 2.3.6)
@@ -127,7 +127,7 @@ GEM
     winrm-elevated (1.1.0)
       winrm (~> 2.0)
       winrm-fs (~> 1.0)
-    winrm-fs (1.1.1)
+    winrm-fs (1.2.0)
       erubis (~> 2.7)
       logging (>= 1.6.1, < 3.0)
       rubyzip (~> 1.1)
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index 7f62102621ea3..3b055d38d03f1 100644
--- a/pkgs/development/tools/vagrant/default.nix
+++ b/pkgs/development/tools/vagrant/default.nix
@@ -28,7 +28,7 @@ in buildRubyGem rec {
   gemName = "vagrant";
   inherit version;
 
-  doCheck = true;
+  doInstallCheck = true;
   dontBuild = false;
   src = fetchurl { inherit url sha256; };
 
@@ -44,6 +44,15 @@ in buildRubyGem rec {
       --prefix PATH ':' "${lib.getBin libarchive}/bin"
   '';
 
+  installCheckPhase = ''
+    if [[ "$("$out/bin/vagrant" --version)" == "Vagrant ${version}" ]]; then
+      echo 'Vagrant smoke check passed'
+    else
+      echo 'Vagrant smoke check failed'
+      return 1
+    fi
+  '';
+
   passthru = {
     inherit ruby deps;
   };
diff --git a/pkgs/development/tools/vagrant/gemset.nix b/pkgs/development/tools/vagrant/gemset.nix
index 3dd517388d213..5d3d2693d0132 100644
--- a/pkgs/development/tools/vagrant/gemset.nix
+++ b/pkgs/development/tools/vagrant/gemset.nix
@@ -104,10 +104,10 @@
   hashicorp-checkpoint = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15shgckjnxqpz1n9z6y4ax1dcnn5vdqcva29gdg2l7ny0g1w7c7m";
+      sha256 = "1z6mwzvd7p2wqhmk07dwrhvm0ncgqm7pxn0pr2k025rwsspp9bsd";
       type = "gem";
     };
-    version = "0.1.4";
+    version = "0.1.5";
   };
   http-cookie = {
     dependencies = ["domain_name"];
@@ -188,10 +188,10 @@
   multi_json = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x";
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   net-scp = {
     dependencies = ["net-ssh"];
@@ -214,10 +214,10 @@
   net-ssh = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "013p5jb4wy0cq7x7036piw2a3s1i9p752ki1srx2m289mpz4ml3q";
+      sha256 = "07c4v97zl1daabmri9zlbzs6yvkl56z1q14bw74d53jdj0c17nhx";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "4.2.0";
   };
   netrc = {
     source = {
@@ -254,10 +254,10 @@
   rb-fsevent = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf";
+      sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
       type = "gem";
     };
-    version = "0.10.2";
+    version = "0.10.3";
   };
   rb-inotify = {
     dependencies = ["ffi"];
@@ -391,10 +391,10 @@
   unf_ext = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14hr2dzqh33kqc0xchs8l05pf3kjcayvad4z1ip5rdjxrkfk8glb";
+      sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
       type = "gem";
     };
-    version = "0.0.7.4";
+    version = "0.0.7.5";
   };
   vagrant = {
     dependencies = ["childprocess" "erubis" "hashicorp-checkpoint" "i18n" "listen" "log4r" "net-scp" "net-sftp" "net-ssh" "rb-kqueue" "rest-client" "ruby_dep" "wdm" "winrm" "winrm-elevated" "winrm-fs"];
@@ -404,7 +404,7 @@
     source = {
       fetchSubmodules = false;
       rev = "7ac8b4191de578e345b29acaf62ecc72c8e73be1";
-      sha256 = "03bpxlliyiny062p8a8vxyb1hymxpgfwliky4vlqn7lbm6z7n6kr";
+      sha256 = "0qybgxdnndx7xfmhyjcj46b2mv78d98yk30d68ppmfnmm3jx590h";
       type = "git";
       url = "https://github.com/mitchellh/vagrant-spec.git";
     };
@@ -449,9 +449,9 @@
     dependencies = ["erubis" "logging" "rubyzip" "winrm"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vax34qbr3n6jifxyzr4nngaz8vrmzw6ydw21cnnrhidfkqgh7ja";
+      sha256 = "1i3w2j2rmhjqj8lynca2m1dm1m5fv1x35xwhk3vyr15dn260z56g";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "1.2.0";
   };
 }
\ No newline at end of file
diff --git a/pkgs/development/tools/vogl/default.nix b/pkgs/development/tools/vogl/default.nix
index 9230d99efcc72..e87ba2b52c143 100644
--- a/pkgs/development/tools/vogl/default.nix
+++ b/pkgs/development/tools/vogl/default.nix
@@ -3,7 +3,7 @@
 , qtbase, qtx11extras
 , libdwarf, libjpeg_turbo, libunwind, lzma, tinyxml, libX11
 , SDL2, SDL2_gfx, SDL2_image, SDL2_ttf
-, freeglut, mesa_glu
+, freeglut, libGLU
 , fetchpatch
 }:
 
@@ -33,7 +33,7 @@ mkDerivation rec {
     qtbase qtx11extras
     libdwarf libjpeg_turbo libunwind lzma tinyxml libX11
     SDL2 SDL2_gfx SDL2_image SDL2_ttf
-    freeglut mesa_glu
+    freeglut libGLU
   ];
 
   dontUseCmakeBuildDir = true;
diff --git a/pkgs/development/tools/yarn2nix/bin/yarn2nix.js b/pkgs/development/tools/yarn2nix/bin/yarn2nix.js
new file mode 100755
index 0000000000000..3eadea559032f
--- /dev/null
+++ b/pkgs/development/tools/yarn2nix/bin/yarn2nix.js
@@ -0,0 +1,144 @@
+#!/usr/bin/env node
+"use strict";
+
+const crypto = require('crypto');
+const fs = require("fs");
+const https = require("https");
+const path = require("path");
+const util = require("util");
+
+const lockfile = require("@yarnpkg/lockfile")
+const docopt = require("docopt").docopt;
+
+////////////////////////////////////////////////////////////////////////////////
+
+const USAGE = `
+Usage: yarn2nix [options]
+
+Options:
+  -h --help        Shows this help.
+  --no-nix         Hide the nix output
+  --no-patch       Don't patch the lockfile if hashes are missing
+  --lockfile=FILE  Specify path to the lockfile [default: ./yarn.lock].
+`
+
+const HEAD = `
+{fetchurl, linkFarm}: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+`.trim();
+
+////////////////////////////////////////////////////////////////////////////////
+
+function generateNix(lockedDependencies) {
+  let found = {};
+
+  console.log(HEAD)
+
+  for (var depRange in lockedDependencies) {
+    let dep = lockedDependencies[depRange];
+
+    let depRangeParts = depRange.split('@');
+    let [url, sha1] = dep["resolved"].split("#");
+    let file_name = path.basename(url)
+
+    if (found.hasOwnProperty(file_name)) {
+      continue;
+    } else {
+      found[file_name] = null;
+    }
+
+
+    console.log(`
+    {
+      name = "${file_name}";
+      path = fetchurl {
+        name = "${file_name}";
+        url  = "${url}";
+        sha1 = "${sha1}";
+      };
+    }`)
+  }
+
+  console.log("  ];")
+  console.log("}")
+}
+
+
+function getSha1(url) {
+  return new Promise((resolve, reject) => {
+    https.get(url, (res) => {
+      const { statusCode } = res;
+      const hash = crypto.createHash('sha1');
+      if (statusCode !== 200) {
+        const err = new Error('Request Failed.\n' +
+                          `Status Code: ${statusCode}`);
+        // consume response data to free up memory
+        res.resume();
+        reject(err);
+      }
+
+      res.on('data', (chunk) => { hash.update(chunk); });
+      res.on('end', () => { resolve(hash.digest('hex')) });
+      res.on('error', reject);
+    });
+  });
+};
+
+function updateResolvedSha1(pkg) {
+  // local dependency
+  if (!pkg.resolved) { return Promise.resolve(); }
+  let [url, sha1] = pkg.resolved.split("#", 2)
+  if (!sha1) {
+    return new Promise((resolve, reject) => {
+      getSha1(url).then(sha1 => {
+        pkg.resolved = `${url}#${sha1}`;
+        resolve();
+      }).catch(reject);
+    });
+  } else {
+    // nothing to do
+    return Promise.resolve();
+  };
+}
+
+function values(obj) {
+  var entries = [];
+  for (let key in obj) {
+    entries.push(obj[key]);
+  }
+  return entries;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Main
+////////////////////////////////////////////////////////////////////////////////
+
+var options = docopt(USAGE);
+
+let data = fs.readFileSync(options['--lockfile'], 'utf8')
+let json = lockfile.parse(data)
+if (json.type != "success") {
+  throw new Error("yarn.lock parse error")
+}
+
+// Check fore missing hashes in the yarn.lock and patch if necessary
+var pkgs = values(json.object);
+Promise.all(pkgs.map(updateResolvedSha1)).then(() => {
+  let newData = lockfile.stringify(json.object);
+
+  if (newData != data) {
+    console.error("found changes in the lockfile", options["--lockfile"]);
+
+    if (options["--no-patch"]) {
+      console.error("...aborting");
+      process.exit(1);
+    }
+
+    fs.writeFileSync(options['--lockfile'], newData);
+  }
+
+  if (!options['--no-nix']) {
+    generateNix(json.object);
+  }
+})
diff --git a/pkgs/development/tools/yarn2nix/default.nix b/pkgs/development/tools/yarn2nix/default.nix
new file mode 100644
index 0000000000000..e86c0aac2c994
--- /dev/null
+++ b/pkgs/development/tools/yarn2nix/default.nix
@@ -0,0 +1,199 @@
+{ stdenv, lib, fetchurl, linkFarm, runCommand, nodejs, yarn }:
+
+let
+  unlessNull = item: alt:
+    if item == null then alt else item;
+
+  yarn2nix = mkYarnPackage {
+    src = ./.;
+    yarnNix = ./yarn.nix;
+
+    passthru = {
+      inherit
+        defaultYarnFlags
+        linkNodeModulesHook
+        mkYarnModules
+        mkYarnNix
+        mkYarnPackage
+        # Export yarn again to make it easier to find out which yarn was used.
+        yarn
+        ;
+    };
+
+    meta = with lib; {
+      description = "generate nix expressions from a yarn.lock file";
+      homepage = "https://github.com/moretea/yarn2nix";
+      license = licenses.gpl3;
+      maintainers = with maintainers; [ manveru zimbatm ];
+    };
+  };
+
+  # Generates the yarn.nix from the yarn.lock file
+  mkYarnNix = yarnLock:
+    runCommand "yarn.nix" {}
+      "${yarn2nix}/bin/yarn2nix --lockfile ${yarnLock} --no-patch > $out";
+
+  # Loads the generated offline cache. This will be used by yarn as
+  # the package source.
+  importOfflineCache = yarnNix:
+    let
+      pkg = import yarnNix { inherit fetchurl linkFarm; };
+    in
+      pkg.offline_cache;
+
+  defaultYarnFlags = [
+    "--offline"
+    "--frozen-lockfile"
+    "--ignore-engines"
+    "--ignore-scripts"
+  ];
+
+  mkYarnModules = {
+    name,
+    packageJSON,
+    yarnLock,
+    yarnNix ? mkYarnNix yarnLock,
+    yarnFlags ? defaultYarnFlags,
+    pkgConfig ? {},
+    preBuild ? "",
+  }:
+    let
+      offlineCache = importOfflineCache yarnNix;
+      extraBuildInputs = (lib.flatten (builtins.map (key:
+        pkgConfig.${key} . buildInputs or []
+      ) (builtins.attrNames pkgConfig)));
+      postInstall = (builtins.map (key:
+        if (pkgConfig.${key} ? postInstall) then
+          ''
+            for f in $(find -L -path '*/node_modules/${key}' -type d); do
+              (cd "$f" && (${pkgConfig.${key}.postInstall}))
+            done
+          ''
+        else
+          ""
+      ) (builtins.attrNames pkgConfig));
+    in
+    stdenv.mkDerivation {
+      inherit name preBuild;
+      phases = ["configurePhase" "buildPhase"];
+      buildInputs = [ yarn nodejs ] ++ extraBuildInputs;
+
+      configurePhase = ''
+        # Yarn writes cache directories etc to $HOME.
+        export HOME=$PWD/yarn_home
+      '';
+
+      buildPhase = ''
+        runHook preBuild
+
+        cp ${packageJSON} ./package.json
+        cp ${yarnLock} ./yarn.lock
+        chmod +w ./yarn.lock
+
+        yarn config --offline set yarn-offline-mirror ${offlineCache}
+
+        # Do not look up in the registry, but in the offline cache.
+        # TODO: Ask upstream to fix this mess.
+        sed -i -E 's|^(\s*resolved\s*")https?://.*/|\1|' yarn.lock
+        yarn install ${lib.escapeShellArgs yarnFlags}
+
+        ${lib.concatStringsSep "\n" postInstall}
+
+        mkdir $out
+        mv node_modules $out/
+        patchShebangs $out
+      '';
+    };
+
+  # This can be used as a shellHook in mkYarnPackage. It brings the built node_modules into
+  # the shell-hook environment.
+  linkNodeModulesHook = ''
+    if [[ -d node_modules || -L node_modules ]]; then
+      echo "./node_modules is present. Replacing."
+      rm -rf node_modules
+    fi
+
+    ln -s "$node_modules" node_modules
+  '';
+
+  mkYarnPackage = {
+    name ? null,
+    src,
+    packageJSON ? src + "/package.json",
+    yarnLock ? src + "/yarn.lock",
+    yarnNix ? mkYarnNix yarnLock,
+    yarnFlags ? defaultYarnFlags,
+    yarnPreBuild ? "",
+    pkgConfig ? {},
+    extraBuildInputs ? [],
+    publishBinsFor ? null,
+    ...
+  }@attrs:
+    let
+      package = lib.importJSON packageJSON;
+      pname = package.name;
+      version = package.version;
+      deps = mkYarnModules {
+        name = "${pname}-modules-${version}";
+        preBuild = yarnPreBuild;
+        inherit packageJSON yarnLock yarnNix yarnFlags pkgConfig;
+      };
+      publishBinsFor_ = unlessNull publishBinsFor [pname];
+    in stdenv.mkDerivation (builtins.removeAttrs attrs ["pkgConfig"] // {
+      inherit src;
+
+      name = unlessNull name "${pname}-${version}";
+
+      buildInputs = [ yarn nodejs ] ++ extraBuildInputs;
+
+      node_modules = deps + "/node_modules";
+
+      configurePhase = attrs.configurePhase or ''
+        runHook preConfigure
+
+        if [ -d npm-packages-offline-cache ]; then
+          echo "npm-pacakges-offline-cache dir present. Removing."
+          rm -rf npm-packages-offline-cache
+        fi
+
+        if [[ -d node_modules || -L node_modules ]]; then
+          echo "./node_modules is present. Removing."
+          rm -rf node_modules
+        fi
+
+        mkdir -p node_modules
+        ln -s $node_modules/* node_modules/
+        ln -s $node_modules/.bin node_modules/
+
+        if [ -d node_modules/${pname} ]; then
+          echo "Error! There is already an ${pname} package in the top level node_modules dir!"
+          exit 1
+        fi
+
+        runHook postConfigure
+      '';
+
+      # Replace this phase on frontend packages where only the generated
+      # files are an interesting output.
+      installPhase = attrs.installPhase or ''
+        runHook preInstall
+
+        mkdir -p $out
+        cp -r node_modules $out/node_modules
+        cp -r . $out/node_modules/${pname}
+        rm -rf $out/node_modules/${pname}/node_modules
+
+        mkdir $out/bin
+        node ${./fixup_bin.js} $out ${lib.concatStringsSep " " publishBinsFor_}
+
+        runHook postInstall
+      '';
+
+      passthru = {
+        inherit package deps;
+      } // (attrs.passthru or {});
+
+      # TODO: populate meta automatically
+    });
+in
+  yarn2nix
diff --git a/pkgs/development/tools/yarn2nix/fixup_bin.js b/pkgs/development/tools/yarn2nix/fixup_bin.js
new file mode 100644
index 0000000000000..dab1759c2046b
--- /dev/null
+++ b/pkgs/development/tools/yarn2nix/fixup_bin.js
@@ -0,0 +1,45 @@
+#!/usr/bin/env node
+"use strict";
+
+/* Usage:
+ * node fixup_bin.js <output_dir> [<bin_pkg_1>, <bin_pkg_2> ... ]
+ */
+
+const fs = require("fs");
+const path = require("path");
+
+const output = process.argv[2];
+const packages_to_publish_bin = process.argv.slice(3);
+const derivation_bin_path = output + "/bin";
+
+function processPackage(name) {
+  console.log("Processing ", name);
+  const package_path = output + "/node_modules/" + name;
+  const package_json_path = package_path + "/package.json";
+  const package_json = JSON.parse(fs.readFileSync(package_json_path));
+
+  if (!package_json.bin) {
+    console.log("No binaries provided");
+    return;
+  }
+
+  // There are two alternative syntaxes for `bin`
+  // a) just a plain string, in which case the name of the package is the name of the binary.
+  // b) an object, where key is the name of the eventual binary, and the value the path to that binary.
+  if (typeof package_json.bin == "string") {
+    let bin_name = package_json.bin;
+    package_json.bin = { };
+    package_json.bin[package_json.name] = bin_name;
+  }
+
+  for (let binName in package_json.bin) {
+    const bin_path = package_json.bin[binName];
+    const full_bin_path = path.normalize(package_path + "/" + bin_path);
+    fs.symlinkSync(full_bin_path, derivation_bin_path + "/"+ binName);
+    console.log("Linked", binName);
+  }
+}
+
+packages_to_publish_bin.forEach((pkg) => {
+  processPackage(pkg);
+});
diff --git a/pkgs/development/tools/yarn2nix/package.json b/pkgs/development/tools/yarn2nix/package.json
new file mode 100644
index 0000000000000..130eee67c5606
--- /dev/null
+++ b/pkgs/development/tools/yarn2nix/package.json
@@ -0,0 +1,19 @@
+{
+  "name": "yarn2nix",
+  "version": "1.0.0",
+  "description": "Convert packages.json and yarn.lock into a Nix expression that downloads all the dependencies",
+  "main": "index.js",
+  "repository": ".",
+  "author": "Maarten Hoogendoorn <maarten@moretea.nl>",
+  "license": "MIT",
+  "scripts": {
+    "yarn2nix": "bin/yarn2nix.js"
+  },
+  "bin": {
+    "yarn2nix": "bin/yarn2nix.js"
+  },
+  "dependencies": {
+    "@yarnpkg/lockfile": "^1.0.0",
+    "docopt": "^0.6.2"
+  }
+}
diff --git a/pkgs/development/tools/yarn2nix/yarn.lock b/pkgs/development/tools/yarn2nix/yarn.lock
new file mode 100644
index 0000000000000..976d2c530e1e7
--- /dev/null
+++ b/pkgs/development/tools/yarn2nix/yarn.lock
@@ -0,0 +1,11 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@yarnpkg/lockfile@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.0.0.tgz#33d1dbb659a23b81f87f048762b35a446172add3"
+
+docopt@^0.6.2:
+  version "0.6.2"
+  resolved "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz#b28e9e2220da5ec49f7ea5bb24a47787405eeb11"
\ No newline at end of file
diff --git a/pkgs/development/tools/yarn2nix/yarn.nix b/pkgs/development/tools/yarn2nix/yarn.nix
new file mode 100644
index 0000000000000..a9e42e7d986c5
--- /dev/null
+++ b/pkgs/development/tools/yarn2nix/yarn.nix
@@ -0,0 +1,23 @@
+{fetchurl, linkFarm}: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+
+    {
+      name = "lockfile-1.0.0.tgz";
+      path = fetchurl {
+        name = "lockfile-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.0.0.tgz";
+        sha1 = "33d1dbb659a23b81f87f048762b35a446172add3";
+      };
+    }
+
+    {
+      name = "docopt-0.6.2.tgz";
+      path = fetchurl {
+        name = "docopt-0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz";
+        sha1 = "b28e9e2220da5ec49f7ea5bb24a47787405eeb11";
+      };
+    }
+  ];
+}
diff --git a/pkgs/development/web/grails/default.nix b/pkgs/development/web/grails/default.nix
index c447173b60877..b15109757f2c1 100644
--- a/pkgs/development/web/grails/default.nix
+++ b/pkgs/development/web/grails/default.nix
@@ -11,11 +11,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "grails-${version}";
-  version = "3.3.0";
+  version = "3.3.2";
 
   src = fetchurl {
     url = "https://github.com/grails/grails-core/releases/download/v${version}/grails-${version}.zip";
-    sha256 = "0lk9ll0x9w2akmlwkams9pxyafmgjmsr3fa45gx1r16nx563qxsg";
+    sha256 = "0rr1q84zgr8xvy40w0wq9ai9gilyn6by4j6av02aszjxciqblvzd";
   };
 
   buildInputs = [ unzip ];
diff --git a/pkgs/development/web/insomnia/default.nix b/pkgs/development/web/insomnia/default.nix
new file mode 100644
index 0000000000000..45cf993f25ed0
--- /dev/null
+++ b/pkgs/development/web/insomnia/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, lib, makeWrapper, fetchurl, dpkg,
+
+  alsaLib, atk, cairo, cups, dbus_daemon, expat, fontconfig, freetype, gdk_pixbuf, glib, gnome2, gtk2-x11,
+  nspr, nss,
+
+  libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr,
+  libXrender, libXtst, libxcb,
+
+  libudev0-shim, glibc, curl
+}:
+
+let
+  libPath = lib.makeLibraryPath [
+    alsaLib atk cairo cups dbus_daemon.lib expat fontconfig freetype gdk_pixbuf glib gnome2.GConf gnome2.pango
+    gtk2-x11 nspr nss stdenv.cc.cc.lib libX11 libXScrnSaver libXcomposite libXcursor libXdamage libXext libXfixes
+    libXi libXrandr libXrender libXtst libxcb
+  ];
+  runtimeLibs = lib.makeLibraryPath [ libudev0-shim glibc curl ];
+in stdenv.mkDerivation rec {
+  name = "insomnia-${version}";
+  version = "5.14.7";
+
+  src = fetchurl {
+    url = "https://github.com/getinsomnia/insomnia/releases/download/v${version}/insomnia_${version}_amd64.deb";
+    sha256 = "1y6bn9kaxxplzyv7jjrcsfkrjnivjqdk5mbdp8vz32hv2bmdvzzy";
+  };
+
+  nativeBuildInputs = [ makeWrapper dpkg ];
+
+  buildPhase = ":";
+
+  unpackPhase = "dpkg-deb -x $src .";
+
+  installPhase = ''
+    mkdir -p $out/share/insomnia $out/lib $out/bin
+
+    mv usr/share/* $out/share/
+    mv opt/Insomnia/* $out/share/insomnia
+    mv $out/share/insomnia/*.so $out/lib/
+
+    ln -s $out/share/insomnia/insomnia $out/bin/insomnia
+  '';
+
+  preFixup = ''
+    for lib in $out/lib/*.so; do
+      patchelf --set-rpath "$out/lib:${libPath}" $lib
+    done
+
+    for bin in $out/bin/insomnia; do
+      patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+               --set-rpath "$out/lib:${libPath}" \
+               $bin
+    done
+
+    wrapProgram "$out/bin/insomnia" --prefix LD_LIBRARY_PATH : ${runtimeLibs}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://insomnia.rest/;
+    description = "The most intuitive cross-platform REST API Client";
+    license = stdenv.lib.licenses.mit;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ markus1189 ];
+  };
+
+}
diff --git a/pkgs/development/web/nodejs/nodejs-release-keys.asc b/pkgs/development/web/nodejs/nodejs-release-keys.asc
new file mode 100644
index 0000000000000..c89b3b37f8767
--- /dev/null
+++ b/pkgs/development/web/nodejs/nodejs-release-keys.asc
@@ -0,0 +1,776 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBFKKodABCADiE7Ex8GXnQNgipqbTADO5+BfufYFeq9YLEKkuOUfnjAZ8Wzle
+4eLL4rdfFSuwuUO0rkSFOpNjkjKqxfRo0RkmlMxdHwT2auf/yrfX4EyhyKDn1Vh8
+MP2JecXQN3FVa1yR8AMGfT0zOP138MNp21tNp3Dy9r/ds6ZhttrnR+mrKnhKMmTj
+1J+MX/LKw3o9ERIz0O8dxw75pA27npX1EcSCM1Vcq1bam7xD6d3cfQtfQsidXkQ/
+nFpD7BQFU+nemYaa6Vkuy4VJ11AMLNvzoWc2iHofD0kO60am3z6x8t63m+BUSU5I
+r7B5GNbatekJqu/Qn1qrCjyuXcExEsGnCJl/ABEBAAG0ElJvZCBWYWdnIDxyQHZh
+LmdnPokBOAQTAQIAIgUCUoqh0AIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA
+CgkQwnN5L32DVF2cywf/Vws0J68vxn+ngUzq/wcWlQANfwMFUcD/8eM0N1B3OMXQ
+9+GSlsuEUvh6/oxYxn4EPIgdqsV25SB/fAUz4uN50qvc0ft+wTgh20pnMP0qLf7/
+adb/dBf/NTV4TWzHaUDAkwPXqPd4He7AI5/PZeaMGmJPJmeR8ZM0ZrvLsNTmYV6N
+byWcqYvbbRSNSn4ypb/QbYjFQZB2QKrC1LAW9jpdNnfQViYeZDmoSRaCTOv7SeSy
+TkzOhMFRZDP9NmUvnl3chWNdmBoLls3/lO1Kpuc8h+nXkgU1hUyvsPjs8zBaqUDI
+oMudExnECyEUHlZvVLlfpocznOPqlBhxjR0Q9VRYYokCHAQQAQIABgUCWL7qpAAK
+CRCVUaCxpuKXzorJEACb96lsYyavUJOsFd6w8pgOENJjxZF64JR0Dx1rSsC4VgUa
+m5zVVasJ29oAnzpeCQzt0sazTgLYrzxA4RY/guI7FBmI3p1nwhUCprG5QMuE1iZ+
+PXVvkTNnNWDlpGGSkDyiC0ER3kWVlECaJhDmSDHxVNl+IwXgd6Jmx47RHYv64rON
+FERHfMjzCUi5uLs+zoIU2V8sy3j7Hv10+/zUGBSy3wSaUlmNK+7wkI9WS3BkcQ/1
+6Afet+De5XSVdDJu2TwhESEyXHFgXv9UQAbj5e8/fG8S/kPalQKnzQxp4eYtgC7a
+cq1LGOX5BS0eFdwCnyNkZUhuHkjSYqg6GjEhmgEhUmow9FzaAD2JO8lXMYXtiXTX
+U3VeY92b7gEt76HdefuAhPFRo2DppSQB2Qh1d6+WRWjxfIcVZcMjby3cDzBYZvfj
+Jhzxv+3qSlzeYeDSLZUkyARRshLcd1LvlZiHntveiMuvehemVLcQ2XtCJh6mCfFJ
+HwkRloAswSW1XiDEaybcc/Cok5aPjk/sozVCH1g9lyeQTIQ7QCYQzA2TrfCLOvL0
+9pguTGRFC22ikZzgPD9dC5vo1MvjRczT2g3gDxqrjvt35v3+ZlQ4ZJ+U2G9Ew+XF
+Jn9bo4ZXxffj6jPnFiELZfSwIGP9EUaPXMXh/lov8IMfr37cQsE360A82RRAd4kC
+IgQTAQgADAUCVw1LygWDB4YfgAAKCRDnO8ZBzBH0yHMND/46YV031EzwZL67h+ZC
+SWka9SR+o1XHVWvjLGOcSOeBnD+8C170Q30NYVMEgSwtF8kY0M5k6GlEpIKNuOYq
+NphXkNfn00ysqJ1G8WIGmGnsA/g/4LYSGt4ttL8roW582Ps3ITAYR/OVgHBccssL
+6QdylghWW6wKYs5yoOn51pr0Ff0WyARfQxiaFNtwrZseSRrFlgCgX0+Hrfin1iHz
+l8m/I8BIywM+fW+kk6ixitkFPszvT+9sgLj5viUl7+pJzLIs3GwODkLVCWCetLfO
+XP7XDrcBQpU6OExpaC4ua4tVhfiaTJkYFB43Za0rP8egx8u7tBs9WC6rU3wygsLJ
+uD9sdahFHY4c52eBRdIvAQow1oEj3WW3JIN72TiSOFbCMiFNR1t1nezaokef89pN
+LMlJnzJ6BeKWmiSMsmOcT3Uq8cmmQpmbF3N0cZyOy2MMrnBtm0iIwY4NJ/YlLbAj
+1f4urrAWkFInzWCdE/L6VO93WwD7sHLOcq8fKWv/2/QY7kGP8Cbut59ie6wUr53S
+IEM7B21/zdcrI2ND7R9Bdo0h867NgIuve6EN/W08QbCsTAu8ukdtKOISprqBXQ7y
+7CEUGRFlHbiLfhyaNs1IHtSDVpt6Rq/U5X35Zk3MSsL44ZuTqS7HE/QMjQy8oQ2U
+tJyhZrnOkqHjT+g/kz1bKZ+JPbQXUm9kIFZhZ2cgPHJvZEB2YWdnLm9yZz6JATgE
+EwECACIFAlKKo5ACGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEMJzeS99
+g1RdocEIAJCkX71Kddk6B1HD9V80dpTVvm+YMup2qca6LqLtsiYE/O/XZHRZZ1WJ
+RdxTGqGLKLkHgea0PUaxrcUxSzibDFJqEcRBz90ojaVu2jXb8Wbr9PkNcV0ABivy
+PCpx0IFUxKj3+94akK9DOzwLpAf2QMSm0JlQhdql8K0JCRyk9ehkBCxcssVKocgZ
+TCRur475lYNDU4SiQoJJ7iFirf1SvNAoeXwXiqDAR2q/k5VrANmfzKvmQ4UMciEx
+vQaxc+q7LsBI0/EzFtWCnhPabEzhY8lzqsxlfdEbFXWFO1V6206FBYuymTE6IDxg
+trhVg6FZgmWSrxnWWasJSZxv2iWhwgKJAhwEEAECAAYFAli+6qQACgkQlVGgsabi
+l843ZRAAsPXN0qd5njBzcSMOTSwYVOX5/1NNWI4ac0kbtdgh9bvcWxL1OtR0nkiA
+6evmTtC7HuMSKtviMtpHwIHp1TVu4nuosFUJaLRkxv43U7ReQSk8nxFWBcucLIaL
+8/V89YmLH6LAWEr6zaP2KoRwDLJr5mfpU8GLaBVittGzxN9llkmPRA12uS7HHgRq
+i1D8bcZVj4EHoB4Lj5U0L/GpqgU/UitUR32fmmfvzQFMWVRMfJHP389Y2lRbcqC/
+rZXa2USH5WC+oDejhRq50S3B/v1jB8jtYtWZXmYQCk98KCUB+4ck8uSLYZGtZpt4
+lb2ZSFb3IhGAzJR5DBgZI6YrfwnBfOxdt0VWv/pU0PzNGbl/iLRWFI1aIOcIsWkV
+0+XDegde8kTdhvrlbE+Dst8sBdIKN+4BJxkGVlugKFnlLcTPiMAsz1W3b0wT3PgA
+zSYgf32KUCtxSgJO7rkKOf1vzcuH8L/MYH6X3CV9Zm4ZXXbTSyMp04LCJZMO3K/L
+4lc+sYs/KFJCl5mt7zCXs56ta522TFgg+4JV7ZyI+74ZPA+MJB647cdHiNYMIh3r
+FUiz4PJRQCu3NdeyCktChASFKag2AMIKEKeow5z+e3EE6zRy7ErBBLb9T/14BBPn
+5FRSv0A3iiQVw77i30Ds1YuROX7sWsN74sgJfytLiy9vdT3Jiz+JAiIEEwEIAAwF
+AlcNS7sFgweGH4AACgkQ5zvGQcwR9MiizBAA5IaFWe3L1TckdaIu+z/OlxEsL8jF
+NJVCXdjUoOUk4PKf2BpMbWXM9N+JrZw3kjyWX//S6Dl5Do/tO9JTMX0btwIfhZUk
+uvx7H4Oh38UKwkDl207DF9JMDeU6/h/rsWjAmzVLxMhdbEGIDQlhjYgsZbJjC5be
+ZDuYfDKOye65HUa++O6h5EOBd2qLRl/pGJHLlAiGPLtwY3jewEZlCrlO958aTkPl
+AHxh+ltRWLd2zYF0xnBaWvpFOVArjDNkTSuyYYNtBa6OmKPZ4BkPQb5Av9b9GCwJ
+2dxdlUf7GexBHlANRbAcw0kXmCJOYLxxOx8jQRnQ8TLiL9Rds4c+XlloJfYsD/Rx
+vIvUAKMqFEXmMlBnO9VJeiw4r0F7pNH6VYp7bnz1NiW3Mimk0Kjz2TTOVpfR+kht
+hMFO+oCpJShsfqq9WWX2+MM/dC11oIGfr/kGqK6DSkIbflkqFnBEVuM+uUe0OeDV
+IWrEF5O22+pGeC0Yezrzp4x+3lL8ObsFKGWwxTdmbpIcR4zT+Er3dPAdLBFcm/Le
+0Odjv1sj/LLOC6FKg7qKG7raglkQSMEF8DAtWkE2H1P2ywvky8HArk5OM0LXcxub
+Mo849kZrLhGblt8+zp32fafsQEIsNAzoqCR50XSHJhMb0zmPmvXCAfsk1wWKlgFg
+M7vo0zXSYLg8ifa5AQ0EUoqh0AEIANGUbt///24seQv1o9hgAWJ6i7sjC79jCH1m
+tPlLjAsUcGg+16fTwAlII1Z2ffXYKs9MvcGBNVdxkR8S1g+aYM/ds3hY2CglHe7z
+N+/pkYr5I1jchmCE6LQDbGA/yIfiufMkUFB1Pry34P+G3mcnENfeETns/26yCSJ9
+plysIggJiPKS3ihrPnp8qjCEByzBn70HRkliS4nnjws1aSG67aWUn0RdELrK7Mgm
+EWRacrMu308pgdn7XQ/hUUPcsOAqiI9tc0xeG2FXEg2WS7aklqAw7yjEpJK7qid0
+ntEbKy3Erlu29ZxzH/kphNJH5eQFgXJ0guhG/Sm4ljt45nn7H+8AEQEAAYkBHwQY
+AQIACQUCUoqh0AIbDAAKCRDCc3kvfYNUXVfxCAC1ajXnKPFswIU2RgJETuY1GgUH
+NL8oU3bp5oGhocKPcDPQL8rLZkAhTfKYkRoc6hLS5wcgz8FSEEz5oMesBWCXSZBS
+8xTW0vgncbrTUVnVmCAz88qeQ7SA9RVmgnpgKnVAv46azZQkB+x1FR2scSEf7uoo
+Go5zxB7LvSwRX+bgyct5TRcs37lLLaaGlgsy7yrcZYqqUXjEOGrZ78KMNDifK+X0
+XYoGY+p4sCfl4Uf46qANa4shQMZjKaWGZpiqs673aIg0MoZPCyTTO6Atfsv2Li8E
+ossDZpvJuroJFZw5zvIEy7AiDAcCZjMj8FLoLzom0A1FNxCvgzOraMITOobsmQIN
+BFM7JpoBEACmf7uB5P5QJ8X38ARQn+dr+/O+6/wzkKzUcoFvRArwZTcpdEO/0C12
+kNSpK2UkVMh4sorYwA8W0yv3spZJWU3TiIfCVryxqZaAWEIU+dwsQ0P6EAUythjd
+QEs81bG6aN0dUqE26fWjGL/mU7BPtAwfzg6lty2cwZJP5zaNCl/PjRUeTKC2oNas
+3M5dWoOqWq6HLPqnTEPHPlZ/mhkOfLOnJA6r669sQcml5R+Lhwd8wdJp+ANiDLW6
+61MmaiA4VqjEXwsXKK0KISWftEgd9WGBsHH8rn4KdKj9u6EtnDlA3vaPmADZmf7R
+VSMRoMkdiswFqEIMQuhTVbqS69vyhtByQs1fhriYrPy3OMeSMjJ/zNDCnHTBuKxo
+NHgMcznVu1tjz+ggso7Whd0IiXEaHXhF5ASWnJJa+xLxXQRQV2X1RXEK0bAySX5B
++NmxJRVY+ixpO5TVhQhzzzL9Ivz4z0odlvt5VJJIHHFIAWkgXRNAo0wgDzfe+jHO
+E7nz9uzYsqDBV25Zo22oMZURTBN87WZ1TFpDiORvvjR8QXJIBIUvMHAhG/ZlEkVo
+poNaznUOplnr/ToDpA1RDrdxeUAQ1i99EeBtXRREFgByFvETnVCkX/pvQA1yFrhG
+FgqCYBpN4IK0UcUx1MuwPBrfZxbL/cy+FhmJqutB6ufaJzatMQHu5QARAQABtClr
+ZXliYXNlLmlvL2Zpc2hyb2NrIDxmaXNocm9ja0BrZXliYXNlLmlvPokBHAQQAQIA
+BgUCVu4HLwAKCRDCc3kvfYNUXW4MB/9dLmaZaaPUPrEaUQfN6UngTKRNLOJj22FW
+2S+e7ALUcA808o80BaK/9dk6mmQCD8L8INRzsNOyBGfN3KL/hV0Zg7BtX2R5ed5p
+0S1CmJzsutV6AAsXJvu73bOCy0QosnpsJDRx51k/4+1jUt6PkTMy4YxbVDDBRQTG
+DApi2EeX5kwaw1jNiubsfOPtBbyuZbXS0IBKQREFwXtbwUmEc9amw2QopNj8N8Oh
+eXbmc6AjiZUdDjOj3tZ9oflc3t6lDVH5EypuKZbcR6fOf4AlrXnuE3uHYMW57D/h
+QL5/BMIe1fmK0HYEwg4BaLqCu9lgsYTYJtcTHHfisRDMs7F9Wxw7iQIcBBABAgAG
+BQJYvupKAAoJEJVRoLGm4pfOzKsQAMVG0EblgGmcLA+VKZkuHtOgasrBBJXkxDnG
+B5Xepg+1hOduxkO1rR5tGvejlWhcX8S17o1hdnl2LFdyzHwBU+i3BYYDkUFOWkO/
+mkUvB3SPyHuNMRxZtNne3aZ08Sl/3yxIJFiEvg9ZPS3NDS9G/jxcGzP4b9FHE170
+34BxSorHQxER7upkow1eO7dhjTCRVeDggMqWPYUjPGLDypiZHfkeItHvjTYaueQ9
+oUzFzRPLOBaGVl+aIlojkIWWv010Dk54/uisEBbFuVoX9b76dBx1INEVLEb66MvC
+BLhqsDH16fyj0tQEaTjSSdkJNul6n9DH2idjEkIf/+sZ11B7rW3FxuodtCB+se3Z
+c4xWWtuvahTV+UwNiPC10pOUZbEnqeo69VpETSVK5h3jQ7HsLiTIgAVgwEUjPpLD
+GsFbJ9VB9m/OYNmN8gtk67OVTu5IjHY06eifrHzBNXNf7A+udJgs+PSxfFd3jOuP
+uaR80cU3gbhbzu5LzDWo37Zj9o1MPmSENKEGnW576RKZ6lJYWkpD7XJlwYs9mPse
+LScqT2z09G4N0R/cgxGo1UCSuzWxc7eTFG8Q4kEBul7KjA2t3jxyzALbbcGDbnqS
+Ufvsr5jQQdwh0LU/xDL2sAm8Z+4yrU4mqQFicWHDCOQPUF/C0GCMbKfbqqCC56Vs
+sToI7UaTiQIiBBMBCAAMBQJXDUv7BYMHhh+AAAoJEOc7xkHMEfTIBaUP/jguidAV
+f1iW4N/Hk059nISZM0RbjxXJh6PbEgroTzyEEJljV4c8Yv21/wMXiCklNmVhVgcc
+OoEqZMwDAz2vu4uDwDk/z41rM6lkFNVdMvBx92de+WjYYsdIBQYfklRY3LeImrkV
+vHW9YW/yyqjh/wqVKpfMTuUUufaXgr+hbB9u5UMGY2dgq+3bTj/MqgDHa6sazam2
+uU0C95CCW/rY0GzX6azVEJkEacSlue5sX2/y2UCpCI2oCc5w1NUASSYpiBrTajnE
+loDYpgt00deEonGrhTZ4zCRdHSBaaAZbzZ5KQ7AYfRnk6C8Iawlhhm4TirQb2bXq
+Oj20E2ly7tpzeo1F0ZdOQQXuolfp7Gf5UQOitMqdUeTQQ0HelWqfOoGPBkbXcOwJ
+Kz7ptfESnBD1JjNVXtBIxyG9rCeqwJxNcTt+bWrXaqfybJFUldYwKmdITnsbjlj4
+3ArxOUm/wfxgg3uVcshZ1g6etU3t+57rTQHT32VdPSKKW2AfzZS7um6+LypnIch2
+ve16PzM22HUWpounMmKc43BNa729+3R64EJ1/0qftiFuYoF+IAIkePcLc8qxJxJ/
+TJbsmSpThLz65645wbGD/b7Bnbb80ewBFMwivtwc58WSi+0oWhbuGUSAzCZfN/7I
+hcPbWtQjN0W4Fc6KCmAiIyTML8Z1CJs83k+LiQI9BBMBCgAnAhsvBQkSzAMABQsJ
+CAcDBRUKCQgLBRYCAwEAAh4BAheABQJXBCGnAAoJEAn+RHNOt5kOLQEP+QHDbHiZ
+FTkJNwmx+3+WV9VeJanGXSjccM/yA/lS14PcD5ic3rm0ttI3xa8FmzePZyH17hQB
+R7eawYSrWNErJr3ODd+P8rgXy2PVr3nUdQP+jIgCcbLiGgcFaTtYnAiBXNVzZHrS
+xVKyzxECHQAtnkarIzMmVTpm985nwcSEUdj87cqFRwS4LIBDme8q+0lI+WMR0QaG
+18wO/70/7jnw1vP8J4Qn6W9dt1GTTBpTnIw+PF552YRQy4V+WSPVcijOp5/8+sdI
+DD+g11TtJLpoMsJtqNJS8XCal0LONqN7noXGc15BU9Y8LnhEvs7aG/7R1CEOeR75
+ifWnuUIrKj75xg96TPHhwzKKyuhoc2UYf4hhMgDaZhY6YrZ2LAie7CQneh9uWZn9
+Ku93UMWB01f/LyVnDrr0scvZG5g0T70h6woYuf3hIoUokma/cck4svcrv19gQ+UA
+gw7PbxbL32oaX5TShLh6j13O6UNqwYZbDslnuyp2TJy72TM0m1ESCZqF5BKZXvrB
+vvRwIkD5Oi+Y7EJBuT9ZCu3rPyTNoRfxKKAcNV3lSkQx32tucu3IYwYS3twi9y7/
+uC0fU8UQw4wDATi91vq6t8+nFMBfuZC4ZklG8ztSbF/G259WpsSuQsprFge3KKBU
+oIEde3zdEC5i7U/Tv84ON1iEoTyalDnfPDjoiQI9BBMBCgAnBQJTOyaaAhsvBQkS
+zAMABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEAn+RHNOt5kOgmwP/i9jLD0h
+yEyusmJaIo26TW7wlN4gc1rk43AU4WXrlar2nCbW3wd5Mq5sqZPCqmOhGxXdCVP0
+Y1bXSunSQnmGWaWRxo/H+rhWYOSwICGnc3JAjSnSHndgHPBkqyw1qGivI92xghT7
+WPAn/aBDH/VgQ0LuDPeJReDFc0KFCpnxBql/eBVS5/D25LYyNhFaZcCZJItNzieP
+dJfhGdml9NoC92AP2qHTO6UgrmPJKlxDOWIEs8ITwClZp9Y5jWnSY1xhQYPfoa2M
+87WbDJRZ9XMrhUyGuqdoADdsnSIKIr+So2QOM3dPsQ/Fq6tkK9tTBlT2n9wHgmuc
+uTuT3n27GkFIF5Npz1/TnsGM8WzIsBmfOaUh8DVcurhW0ovmq+drLV15FillcV4r
+hAMBLKYquj35BjoxXaX39NKjKe7+Ngh4gUZVeQPeQtQq0jZ4rEd26x5Pj0DH3Jkz
+OaphQjS4K1Im9fZ5EL+mJ89AMKGSmMNAGnivIt84CUd6i4sT2a1YxUkq8HKQJpgr
+nPMkWpsXpq0+xnr/43CC6vnalEUjrKsT63ToHOQGRxK7RLBbUioBVy0tWKKr3ujp
+W9iPefELT8Refw5PIXHXedb8cpr0jmblQ77DM0mXXljQuTjxE9VaakHA+RwBYy0Z
+zdMMKKTcUXcHOJJgZ22RTA+07RO5c7NLkC2ziQJABBMBCgAqAhsvBQkSzAMABQsJ
+CAcDBRUKCQgLBRYCAwEAAh4BAheABQJXBCF2AhkBAAoJEAn+RHNOt5kOABMP/2Df
+9RUECEKAoxnUQvDpdki0UTEJvgjdQVDonztdpGw7kaquH7KLQBxacIU0J3KDr5Da
+60RyKL1InGugbLRIt/iMbLn+ENPsIGOHAJNmIBXvChwUGFzGmSRKxZG921DJmI89
+qjtFbK0nSy3m5AUpPAmj3UD+JXGGc5QIxmhOZLcPcY9YGv0oQA51ukiycgy8s4uZ
+7SuT+VYk9wMA3EoDlMbh6nwJjaiz9eunlqMF2aB25Ri6SxtXLNJDhuTzEJSVZQTO
+k068wBR6271Y5gC6K9+DPqBQeVXoKrFzCFfGmaMAkiK25WFfwqJJKvejkWNi0FwE
+tlBKOc3KzCG3rV+0FYu/4rzNL5j9EQuMZIsu+drCz76/hA4j/sWOz1wqwRMf0197
+/EqnRVXHPnDIa9h5WbCGTKFbVaXth0bP0EXgCZ1IxFsZh7JjtVSUHYDSfZc61npe
+zXshg1JKEk9f4XIW4PoVpjrIKWFMJ0ILsE7GQA/MlW2gK4CpEMAxH8EuXQPXEHA0
+yJ1pKdpVfO35ChqYdVBIp/oNkAbYp+hwUe44/TJsWN7ARVioH9JK+EHef+QskZl0
+796cQLNW9I5txkOpSQ7cSbEF4SEaCGS/gHVtFo8xCEhVBt2ElBHeQ4Y7B4Zbv62e
+yM44mcJTTxP2SoZ/dwyFMUEbJ6PA8HScDLbFZL74tC5KZXJlbWlhaCBTZW5rcGll
+bCA8ZmlzaHJvY2sxMjNAcm9ja2V0bWFpbC5jb20+iQIcBBABAgAGBQJYvupKAAoJ
+EJVRoLGm4pfOpIQP/36ItdPwRczrB8eH3ifzqXCJXoeOZ8a1Ys/XWtzGp2j7+wwO
+PwL/t5YY8oxbZarQr3QX2RRCIiz2Ftjfea3/AN0J+AgFs+0t4zEuBkVX17SUrp5T
+Gc8EeyH39KHX2B42VgFmZyQPQMxbg/yTnhH6qUeUuteiZ+mFBhap/od+ORHfZzk4
+19ybLpOYPZPjSYw+XKgv+mLt+59h2Tt8fCy1mZUYuQOGb+YJ64Hi4IQAtLdL3x8d
+dhhG6pAsXDU5ezb8obHpySQkBqVUOcUWSYPU6p92nM0klXA5QvYuynxl8LRUy1Mx
+FL74o7aisQ3CKzIxXFkoAeorYWAAzBVDOIOiI3aEFMxHu0FQIebfI3ln0mCwSCKE
+IlrTWdeBFfJ1m9gTmbrA9ljnkMXaTcDWNszCjB9btcxV0nRqQGyEZ9wBFMwrLVy9
+cNiJ2qophrha5OmAN2lwVlKUTwTM7zisgpAPs60Z4OPsKUQ0wTjqLp6Xmv2xiTdX
+ezBEQPIBGRRcUSwO8dvKt0zRZqYBChIsgWxyTK2a5eeiTpqD4g0W8rSwf7i1GZUl
+ZR4PqgeEAuRw8ERz0o9lMuYYLBqnyMnoar+MPF/tewiKgQsiaVwBGsy/UFLP6fEA
+BE0cjueF3AtZscR5WU7oT1Qn8DzoVC54GG5QfGmV9bgRmeyon4ksMFl/6SDciQIi
+BBMBCAAMBQJXDUv7BYMHhh+AAAoJEOc7xkHMEfTI5dYQALdHmZ+NlBsDOrGCY/kn
+qdsDreLnmHWjoK3cMrU5jkO7PgpZybjlyx7fI0A/q5HP20ZSg6BuqEn2wmLPHW34
+Xpdcr14XXjU2fZkRDFV2X4XM30to+MViQLDxcy32qguuC6HhoZBbGGgUHZ9kJQOY
+bBb6BerpEsF+5/1kUeLuHDy5BBLHWmU+qt78Qqrp1mOWE06abKpkrdkIR91FVgmQ
+a7ILIPjXWfLq/AukgZgv/Pqxq7b8wbSAKn15t7v4NjCtMHYVSfNPyRotO08H7cME
+6KxdnIbyVBwoCx0K8CAl3vq2654Z5hy+Y7Cj+ecxXxld8RHpZqzIUaqGaG6bf2gW
+uuRpFcOqDUKT7DhHK6Pg+TkyaVoh+K0ORk1B49EPY2v29WGe2TlrUJhgmecVLdi0
+ylvHF9FkBsyqxMFFm7Ph4xqa1O6Okyng3KLX/A/Il5qlI90dRCiVUMY8zZd9B1Qm
+q2Es15bDdI13YG/9K61eoO94kD6af8w+PAPmTWok7nxr/YlZ8hgo5o8cApyDHOnI
+iKF+Kk1NUeZqLjI5Ht0dzcCyE1+Kjqh8EGQFAN4AijT2ERApj1ipRqs/KxDpoUkJ
+jkJ5V3gfIKfsTZDYLVh5aqm46A2pg8jd8rhF1dZCl8XjUYylSZCrl0bLZkV2/sFS
+Y1w5mrUJlwzd5Fp7PhWWbKR4iQI9BBMBCgAnBQJXBCFqAhsvBQkSzAMABQsJCAcD
+BRUKCQgLBRYCAwEAAh4BAheAAAoJEAn+RHNOt5kOMjkP+gL22iXwbP4B4WVRScj5
+FFjT0lm3/5nP8Mg+RYL63E66ZLcVH76B63s8le0u7IGtUpj8U4DX6EJx0ihJqROp
+o3cZrBKj0OYUz8yUDFk4BnvhqpTmACiBaVBNSlQHdTMT4PR+j3BuWpzOiwthPjYg
+tDd7Dm51hsJYg7kuFJWDYPdnP+BqwWksHx75TSLiFWzUXmFRaAvLFUIxu+9/fptd
+ITHKAOBkJRAInAd/NcAiJBjDFTYjqqztST6xv5cJgtDSpR1Nd+dw5A+y+cfcN1vm
+3prZgpKbj5F40q9kDqE5GHJB3gEMh9PF+SPdPeudkafLPU7tQ5x6yo/82NyH1Vvz
+mPJ9S5fBK5NWvhs2WIvtnU+3DiCbDX+m1lVDJzusuBAJKvR4Qku+CT2OcjONpNpv
+09MwOro075fgKmFrtssOexDPp82k28qrA14HjuRH3I0Af4KfGhU3cL4DE1GB0nib
+QSjPGp516eiQtU2YTZUDrONNfquNIbKAVmHsW8+JCXS3Mxn4ShWv4+rG3bcVMKAC
+hi0bm+/U8lFiIEmB3d+Oa5CFV483pAofbyPbC665t9rS9ihLJDI6684qnK+FmLYO
+xuhPT1U4WL9E/+09VpnafrL+vrHXNNhLf/V+uJ+DvqI744j6d3zBlxl7Re5nOGV7
+j3jsizc0PAyTfQy1SOvc+1r/iQJABBMBCgAqAhsvBQkSzAMABQsJCAcDBRUKCQgL
+BRYCAwEAAh4BAheABQJXBCGnAhkBAAoJEAn+RHNOt5kON3AP/2RfLbVPFTNaNktN
+RRBzO3AdX9F5WvvyTuISP1yPXTyirrdTyzr/mYzc9/hj3Cl0aXGmhtTMqyw2RkG4
+Xvy/Sz8XlDxDb7+6H+DnNrJvAPaspCL0Nt8xQNKqnfJaQzpWOH9BMuO2DbBSYcdH
+gbWtrj7WRVJHMrvkMb+ZxFQBoXGGK1qYRy/APqYLWEA7iwahlkfF9hLsqKxq0QQF
+kn/j3C4vir5GX2D5sE6DMTOwbk/WjbR5B7ClsLrcsJOjRQS/VR7bAfmSz5SbQaLG
+ODshpWmm02cVBSYFrFy3rI5c1XWsRPUyVMgeV4Xet3IqPIeF2V+fUAa4pAZ/Kum1
+D+2+ww04s5ClLxIDDDzQtNMs51Rysp4e+512i3PlFHThpzOdyecTUuJ4rzdlkFab
++xF+GgWb3e2RbWO7cuqsreMNKJZb1B6qLBgpzKkgdhUyh3oWvm5VCGwxyrmI/fgt
+PCfhV6W5MrZon9KJ4Bjac6YqurfEJNJNY977N7pe6+bDpCMIVTAzI5Ts0ghcticQ
+vMONTPqtEkQ8tBpGglJ5AxdyeRqC1SFinLwcRt+BjB1rgMA0/Jq2/E7ztMdKcWDH
+vdX334gTEaNZnlWcHcVh0vEoQAQCKrslnfvHktxbFvkDTC2LpSasjWkelObbVfxz
+qpGa21qQV9ZfDn1tpdG/vfz6FTxDuQINBFM7JpoBEAC8b4+YhGkK7yqWzWXMk3oJ
+HWN8wYU8GkbURn52jg1yuYS4cJOH9C3T/iKAMsUYGIjIJD384FQX+V/vOJEWo32b
+O0L44LHhQtZSxO27Zpm4dp4jGVK0vQTN7w0ov8Eve708nRK+9uHO0S8Y6/6Ex1iB
+EfU+4s8vOLMg6jW+D5rfU/y/O6iFbZDJWXDrVLmEM5yViQNR8/EpD67T9+8wBRcE
+Bxwa6zeezh3Y9p4GOqK5JLwx8LDrr/mPfgOpLlq8l+yJHSHVz5ZoJLwY8TE4+K+I
+7WqtNcuEnDqSHrOocihIwFycY5Rp9Ta+PkjQPssymMfAIQhaBx45SZGwTybp4GB7
+j2oQ11dUYQtCBV+8eB8UQQoo5EocZfuSEvFU9kvdmFCt4Q8tebveGm+MHu4FQEox
+pplg4ei2F891R38ldG3VlDbjMJJ2oaknvHWsglZZWj0QztCrTC2+7eDq28s9/zKg
+4FxDsG+LcFhg4qkABkQZp3s33vWkxWN5Vgm8tvXn3mcibBt07jZhRPjBXSjHJRO3
+HYxJGvWm2++Jc1CuQKjvhDR0IzTD+XBHYg4ajmYcpIsGXGQGNOHTWfoi/0AJYYCq
+nAm+1kqUHsub2DNccUzZY88n3LSelEMZLYiO1S+yGtbte2LCO0zmIQF4JOyWFkfO
+mAEO/Q9QYdTL344e3H0uVQARAQABiQREBBgBCgAPBQJTOyaaAhsuBQkSzAMAAikJ
+EAn+RHNOt5kOwV0gBBkBCgAGBQJTOyaaAAoJEEX17r2BPa6OgjMP/1lduIq+zHYM
+EWBfdBeOsxZPVc9zt2/XHghbblvsJarQ4blasMiAkJu5R+nnu2DsL5gUvPmOekrk
+e3y6/Ioe2SBtLS0i41pKsObpfmoLF5GG3JAoqOgpKcr4WPgZ5Kj+FZDeMnQIIPFA
+0XXcDrpiD/IPbtqlrTV/0YtoRQiISNtcvpeAudADAJwROTEcFY+WbVdPs/U4SMui
+ixZFZSLvbatrHnm71Hi5zLeZPtjcMMhuGcnl8GBSD/jFz0XaJfImqtiZHnH1nPjk
+KcXV7afBZJRJ0dCVyM9uJZmsIqE4OCXDcyTTCZY/V+A0mDxNcfHZl200grdIAmhU
+Z74McRpPAvyj0fLdmt3XJ74NaF4rooRibOf/5kwWNoSSThKbpxfdmFrzfPvBS1P6
+MtGKfJ/bCq7BUZ1wnDwxSQ2G/X1U9sW2b5XOJX59uI6KZy4qyrp4XWNSJdKiw4qH
+qy1z/6H4nk/TQLQ5LL4q7vD0FndpN7eK6DIZYoekC1AC3iXTsKFTIqh09uhpIxeI
+j5c/lyjQpm3sWCEoLsGfW20kOPvQiBuo266IPCFoeEZgHHD3RGmB1c7f7Bu2DsHY
+5SYGYvNMlU1Yju+ozMi9onLRkLBKE1IJhPUVmTST8Cw6LF7kZuGGLujwMKgBkLWc
+z7EdivTjrXc2U+znZupWTxzlM76i02APtQ0QAJB3IZr6yWl0cwtWt25tq0FUlqsf
+dZ3S9QfcFrkiv02NISmKKNGhB59sfXBJRXT8C1BjYvA7OG58UYrnE2s5U+g9Nspc
+3V9TAKS2xoQYOu/ZGmv9OJi6o6wATbpR58rvK8ppv2cRVsE+rohBGXylISqbFsoP
+3MFukjr7ZYsxb4+ck9bPl/aDc/F20Wl95V6rSjbb4vqx0YcfxC5Cr/qh3t9IHW28
+fHM9ey7Dsy9QtGgaeqHZ/ffoPMyiEFt+zauIj4iTrru44XhGss1F8NVFvk+INxMC
+4cZoO0mNSkGWsb1Y1mXCOj2TdaFRYU+FrhkqJEga9OH4LjAmYl5HnW7jU6VCMQXg
+wlOBmIZZlKdMpu/3jYW9dCkrPkOC3o1oYNzERc6PmiE/xVaUtl6XwfydyiWM0RxP
+bL5JTcLyjerTHO/qNOVlH+mLXkTGRniZ/tVB0+QvBSvCnXQcxG3ynEIGNOe8QHAx
+UvKrV+jnPdzO/cuJZbxEFi1MFn+wW/bFFxqt91V4ZjmvtkpGGWQmPovzH3peKTsP
+lv0blKIgSLpdfdk4hqJXiYN8NpUW4gic92tTQGDWOoFZBkOqMS99EdggNCl3cCHF
+u/nonTa2Xqzb2AxPl1hEUTs6FonQIKmGwfrqpw+9YiazJDc51UnsBTd+4VEVUiBD
+CiiFOkooIgZMny7WmQINBFZypZgBEADeIdm42LaylSWw5CosOAte2m6S9DgAGEBr
+g/yHSFTZWz341EZrlq1fghIC9nHh09wVlJNOOo3orB9tYoJ3LArB0MQb7Ha7dcnf
+n98O1od0T4QTlEroEeJaOfuElLD+5b9HVYqhdRtMIFiUTfSTbEXbQcvZhaLf3M8a
+I1G+poPRYNVRx30pX9PM5N8DDmW8Q/xYg3T1uHuYUmd6HlzBiESNE2WWcJoxoKuQ
+R2Lk4Wkt+qYnxdHH0vYIsk9mN0yDySpPEv+kzrAU/UuZ9Ve0GhlLsVLL3yHFUjLQ
+Ox1gV/ofrV/v0vcWM3+rRovU1cFPUUv75mzA/TJ8aseAbboAY84RyF0b4jQLOmiT
+HWdDMSZwDVR05r82JqynI0GGfXRgztNpnnebiYk5QLAqvUzzdfRMyrU0SSl6VDCX
+UQAEz3CyODwJ8GGk6PaTQ9/9vmt3OY4leEEf3SrSwH+l4E8Z59gCvAUx/ao1pIac
+PdCd/kdx1mPVcwxTjiPDMp8sIeBSdLt9Lo8jt5m/92nKoH9SnE6L4snJVvB21mfw
+RxRj1cWmeZ1+BAC7+5WfcJRM6xhr7XXeEmZO+QQYjLzKS1t+zIsv1modQMl/f2ci
+Si1RTO82mIEaCfRBXVEpewsRV+nikjsAJ9FOV+kr4NAUIg6zg9QRiHtTulm3P/c7
+iRKFnbdehQARAQABtB1FdmFuIEx1Y2FzIDxldmFubHVjYXNAbWUuY29tPokBHAQQ
+AQIABgUCVu4HGAAKCRDCc3kvfYNUXfVmB/9pxeCKnQlj56TKRyKwp1vg1UyWnse+
+OF546ILttRf7/6GE5BfmOQZ6S6SnvEr3l7+2QGlV3mPEydKpxwpn4hCWgjwosDNJ
+tBxbNLwypMkAGNxkb554Fuj7jU9qg90oX/EqEQpj2nrM1/pjsaDHOF1wH7M7k2fX
+sWMCjoC7o6EzS9OzuNlyAlb50t9eUB1ZoaqS3LHaMwoGb/Ou1emZbd2k5Z5zzp+j
+cZXHlxPCJ2OCLOtlrnQMW6QrAMF1Me5c3hOy34GhlzkIWJUv7dQk+GGM7/YRIDmY
+sSSpyllMU/oSGN8uAwVxfqWi9RAoNqHP68uRKhAJDtsARh1wS91kg65RiQEcBBAB
+CAAGBQJXyhfIAAoJEImmV2CeyUCYHYoIAImOHk6YWRJYvC1mq1qnctJuhXoZOt3j
+aeF9gIzc9qyPAxf0tChn1g4pmhmBbgZmoIjxHuB1BqgcV1Y2P/1tW8mHJdJNbhy/
+ndQl36EgMYzVEt2mbuj01BE/eW12h10KYC1Ul3rXLrhUy/Ig5KUT5aGIrDawx3kx
+xDXafsjS7R9hBhwz6M3LujgBvvsyGgN2Crh/h/hERYZ5ckXNlixbjez2cB2DZQFB
+vE4eKqBGRAj/Ij2JQljHKt/FczBBhXDCVTW7SSeGi9wPlpgj6w6NsTSiKRCi85s3
+BtVAH7zIy0YxxmECUEeqRQ91gQTcg9YqFdhIJY9/ze7xMQKTRWqR2JeJAhwEEAEC
+AAYFAli+6tAACgkQlVGgsabil87JwQ/+JT/RooAGS4d5Bg3TyZQOSfw3v4iHyV+V
+P1U2lyf4s9/xUiAMw1d6JH1Evu2K5EcS9biC7JcnRNWOGlnxTzShBm9dP+itpeLx
+hAEoWjRBYATgWn48PpiUIejWzlkp8ulNR8s3cf7Pj9osXHx4ml8I+bOfESKffilB
+a05iaJusPraZvdxkGzI3oPmFY0wMKWq0YPWDosik499ceBZvLku8a49GFPDB0yoe
+0QJnYpx7J+Gp84tXO9YiOB2hAZUiLBlEJ7DAxxiFCrzWxhKNVuh5kz9/aJnL2slY
+AuifQ3fwIBJvV0fgzwuAgQf0nX14zhlRXnKS04nKfJVcDaZ8FsMliYndvNBImQFY
+Xey7HNEZyutEnS1p1BZJRDEc/vp9jBfKyQNU8EO6WZ5gy36CRf1cd8zf3QB/7FlR
+WlDxvqrrfrjSwEm/cyA8IEoBbAhUssMMloV1pxtb9mGZZk/QXt6eZTcNTBVZjNQY
+VNwnuKPfNfgX3JQ92pwqg+pb23BPi4NRxXBAzupLpcwG1lTC5cG4PLdJtut1LJSu
+p+0Fbm0/AesHCXDSpHz/vgmlcAX8feaEzq3TDsj0ZOD/Fn9EN9127WebR41XYQk+
+Xj4V70VWy6esS5ECLioir9rIba0KhJlGBKh+AFnMM1nKiv7mzjNfssOuwKC7kSka
++VY9/qqUvFiJAiIEEwEIAAwFAlcNTBIFgweGH4AACgkQ5zvGQcwR9MitRRAAyWkY
+hvT5ctDMhxj6KgQVn2Vf+j5d49Zqu5e0piNMDtjoeudTeFFDhEHZPiP04vRre3+d
+rPdgUbm7UpFOSh82cIODf/1NhLiSjKL4BKS7UF+boD9vcRbnb9VDzsMnaxyfZ68n
+0lAm1hu2GD/At+bfOKFbdvTkDlk6byikMEKAeLROC1+07aQbtscnpJTDqEyi39gN
+65SXheghpmDZUrjt3LGlSgeEPncKhL6Dqb5CitEnX02Bs9LG/f9yk4PaiqSkkGsP
+3AXLrCRAEloq3+8JhlZI643uz2SYsQPv4PTrCuYhPua3+/nL5ONxJ04vhDwckVb/
+hupEdg0hpbWmen0149YcdkGdqnNrL8W2lDFETO1zN0vKO09L0wJ8aSshts6/sU1g
+vqDjogPhyL99XMdeaZn1b2czq3J6jTRaKV4fSub54Msm9UbggHhxZrO2LByTPzEk
+bCbK4tAwpQm/sZa0/V3ORHGZd1KuwtAn3fkQwNDsrFZl8YdgZk/TAgGR7Iq6DkYp
+UG5mtFjOrjRNEmgXDFESJsMmOMlhL/uZJfE0g5qlRkOFfqci5sc9ovy5F2OmrtSG
+g7ZTFsG8eF9Cdlem+6iwLVeccHHOjCPRiVfJEIe3VrhZVpMV/MUWjnc3ikzrw+T9
+ryio7Y3Zv7VTM9D75nHDD9CBtBjWw9EParmqWS6JAj0EEwEKACcFAlZypZgCGwMF
+CQeGH4AFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQtjtTWkwgbKmCbg//VXdM
+k2GkmI9QVg7rAfBqMIVbIj4hxTvm+yz3DTutJjzlPHpiQsiA0ezGU8xrohz2s8Ve
+M2ICtSBGdWtuDOPN4vudwarno+56nIdwBlZSgPaJDxTU7CTrdEJG7j0xs7VPvmUn
+4lJzaWO4TANH+a2VaB4NQSDkr/Y87fxI+Dz0SqIjAe39MEnkJGMl6I6tYpXGQ2CL
+pPYpencQ/Ji4HOR6CXAiyIbgVIag5RDB/9cjg6qKJwyTFEoSajmRPtV6esyesAXj
+AviBhnn6fFMiL7prU/PZdia0uY/ugyz0QuyCqKPWXHSsHV/3q1+L33ntrqKwy/7u
+uKDdaLWBHmXc+e9a6vmIqU5cqgPuJL5s8ZelbM9IW1TrJLbSzk640JGfsLuuHeFa
+XM6Jnr7KmXBE6yMMvtJZ4JDsbEHYdPOZDv14If2m0Yw5Fne28VpHTGr5n2NKHmh4
+tfzVlogWZ/DzNxBYTSDVYAoy3X8A/oByeEhWQl1plXMSHpaPZGdGcIeui1Yg4RwH
+xNnv6a/rUN+4VuUo9y4GFJUypBS+IkpXIm+hCi+wTZpkbZgw6XZ+kJOQmV490yKo
+xp6cFMoHDcZrNb79mbR6q9nT5p1SU/JM60IUB2hN8ky8nk468D5xQN9OATmhJpHQ
+mwFVfUJOlHxlex39qydECOk86S6LVTdkHJWButiJAkAEEwEKACoCGwMFCQeGH4AF
+CwkIBwMFFQoJCAsFFgIDAQACHgECF4AFAlZyph4CGQEACgkQtjtTWkwgbKnJPRAA
+qjncEbZ3/19r6nbDsYrD48b7X2+IxQtY9Pa7FnF5jqFURcaYa4l+2PhGtfqcAEnj
+B0elD9YC6WyEjFSqAcQ6dJ/derE8R+Sj3quaPcXInkQKDbm88UHRAK8ApHeeOS7+
+CtUpWEzVlGcRAhwpBxHKVANyQTmM3db5CU0u9waMdNszqw19hU19DWn9qXbjRxbE
+Nm+6dVo91yBDdGA7x0plginapUEX8WC/u6mpHdde9CC6pj2aYyLVPoy5C+3e1lzY
+CPBI/99DgcoDZ7XYFGYngeNDoM7r8nttJQh4wExdtm2w+4MnNXrQCGQoLQhYiwqK
+ayUztMApMt8HrI0UxJ8+Z/FZc/11i5ZQhDrum94liVSoB1FD+wD9xFCE0+eLAbgx
+JxxO/Ns4W2mBo3DyUAloNISkxHR580GotAmoEhJcK5vns9pCvztUekA3aPT/8ca6
+YZej6Ce5x44L4FfJLqB/zpZTdxOEmeEzhFNGvdPUASpqIpMkk7ZS/7q+ePuL+6S5
+yhaE9tSQ+UqPiVHoeolyRwyHdsns+AoGRoekrbEmbGwyencabrfkkzMqAzmblrjo
+wR8d2Yt7UjJDsz2khn71Y90j6IJ7hneLT1PaxggfX7TFv9fc7OE8/BtI+/JaJj18
+oFIiimequgSNJ/aTeOQ59pdVBhfUTfhWXQDZAsMNdkC0IUV2YW4gTHVjYXMgPGV2
+YW5sdWNhc0BrZXliYXNlLmlvPokBHAQQAQIABgUCVu4HGAAKCRDCc3kvfYNUXeF0
+CACDdJ1DfgFZGy0j6krl7GF78r6RKjixOOZHBVaVKl+K3sWqbFQxCfVGWJDaxRBO
+ACngV8pPdp7Kj3vbWE3lENaaPushB2++8PdkHSAvJohwRLNbhuRmDck/dUy/nw3r
+9lFKp2eRr4fkHRdnWelsfxqD5Eye7Id9bOaeIF7XfIcKbK9HRmfs2ZJVWX6tQGVK
+LcC6mYk2iIRTnzKBGJ1Jf9fGj+JnBhH31ct4SpNHTq0+85Bo7biG9l6jIrbl14V9
+cfIV0ZHGnIrKC4E7r/l0cYX4UPgl92A6J6DqtGi8AWXodtPnQTdZm6kq7zMCX7iN
+qkednlohGP5JhwKFvlzhn+OZiQEcBBABCAAGBQJXyhfOAAoJEImmV2CeyUCYd3QH
+/AtbL+UtD9Tqcay9nHTeM1aXP/edzjjui2+5nE8+fIWxrFRL4X7Qs9Xps0KQnrY3
+n0b7OMxk2cJgI6Bl5gVu83Oz7Pljpp1+W22BXS5a0pU1VNjjsXqW08ICRDnqBzIH
+hsoPsUcLPD5v1+cW9O/SO3ucg28sonE7fuVraLc5T3hgxe3AQFYOBsGwypNjO1VV
+fWl+PTuyZlHW5+IH1Hv0omIaauEnr81ONu3KGf+ckQW3Qt6D/Nu/DeplA/NANhT6
+tlRybWNxFDn3pLfMM0Xn/EoNZAnyd8GArE9j6aRAvVN7pWqr5AbSlhC9Um3/64nc
+gTomS+iy4H06o7qODEXlBT2JAhwEEAECAAYFAli+6tAACgkQlVGgsabil87mdQ/+
+NPKWzfFwdQVHmQVcm1jFvnQA5VNLGs0pYXwhNYXF0V78FODZi1N7P5Eag4+VvBzE
+tMuBfYUwq6ZLxsqlyGXMaHsPdtdJ2S5UBByP7UQzJmEjraUUgpaO210mekrCGSUl
+I3quCEiC0+ytaM9bvBh2EeNfupSIknXZ/0aTs+jYMTmttNU9QuFdgEVR21Vx9WC3
+0qLdiDnuBBENddGCfDWXGw+n7JulWNQhsxxqbsynRQV4rK9fCGfgLIIf5Mb0VI9p
++hDlKqNtVRQt1S6npE5SU7Ilqgj5SGE6j9ClCh3FOGxxqGhpF6fwk4tl67wmdC7/
+JR7zPAb+JtTY/ayRl0QsuqvOMFuAUEG+LE23IhLGpD8VwWdx9hYFn60C2Q/bC2WU
+pdS/ZWhkCuA1Gdi+DvLMmSIv5V+o0N2bM7Wv6JwrXIbjg//+aYN1hlTvlj2rOmp+
+5iICTLkVUvFgnJeVhES4sVchUnOpLQkTn4JsMGpqX1++UDsUb1cdLW3Br6E1jFm+
+EO8yOJJ7Xu10qvVOdhk+H1AhWFTKngsPxp+M92NPFp+ZtkXkZJX+pLzW1YYHL2OJ
+JJYxjvo0RhGNuZAzsNGOo6MP0guy0SCf9Z8vLyQxz7GcUlJb0I9xe5oclcw8KiGp
+zq5iziLImz8PBQ72FvYTft5GVm6NcEZ9c7o2KudBzkeJAiIEEwEIAAwFAlcNTBIF
+gweGH4AACgkQ5zvGQcwR9MiKAxAAlcAV4pEvw0Sj2fBJLEVblqwE+ACLR/reTP+e
+sFOCv08zr1EDNPKM3PVqP4jZrPhANa02GmzZEdslgn/PasCmgqxmnHCquyf2gkkT
+uPPgdbweYQ6wiR9PWvedNMQhgHySYSO7n4Rxd83isfoUAiwe66FH7r8+T4Z6pOS6
+XJocE88eIvh3zghBcaeg70ME0goq6TDhrpGfKhExvMXotyx3iOiqx/vUbmDTvp0g
+kQtWcBfX07cyGzgIR0NSqeKFK7F6USUc257uKRCGiaXMwIwFyN7eb+KsdA7+emNG
+ChwdIQHOjfEiq7c8LyUGY5Z1ZMMbi2F0WuWQlhpBmKCK29HXCOffkH/NIyMf8VAb
+bi56b73y2kwH5KKFb48XpIxMcV0abPCJCsbcgAUmDytTHbLBuPM8VbHWP5uIhto8
+Ff68zb75iv6F2nYHDZUJ1EGLWb8tZWacoxd/+Wx9TEAc0S/o25gOG4c1ZwF94b8M
+2jsOT2Df1JMcrrQsoIf+mN9wLS1kGbj6tyfKF+k1oWpDmaBQEVgF2vrxMJ/w7wPO
+JuHV5CRDRxQPZNbCwo6B8PXyY8oL6vLg0bDP7OLSZL9rF3u7wGShezgz42yCWeii
+ErOwBKprp+9zxA2Oahrimgi7Cl9Lhvm4Mti0zHKAXV6O/EIpZX63QAqjJkiNj1FM
+uYWsBNuJAj0EEwEKACcFAlZyphUCGwMFCQeGH4AFCwkIBwMFFQoJCAsFFgIDAQAC
+HgECF4AACgkQtjtTWkwgbKkB0g/9GcjCZXIIdEMWfqImVGQif5UN+fo2JWWiu7ZU
+URomUadJm5dpiT74u9AtvbVIkIk9TUJT88OYA4FJUparbEKiD1ZUN1Rks3fiCCoY
+ElZAUxgWaVMWtiYMetI7sU/GLj9SX/xSa88g5X6CQswkunj7hoReHZ0PWU69Y9fa
+1XFpR4ynby2kvoXVEcQdTMXuG/4STWhN9Y8gMiXrlbyne9VQ4b5UmLeIVLL9Xf9H
+/Fsj7rHiqstA+IGXFBDyddpdqpHPsLNjTG5GH1ertcbm2mJUeC8uvp+tkUFCIKfH
+ZQsMukULwX7mYRlBSmlrr27Q78RtJ/alV0jopeoU2dA24d8/655fBCQBk6NA0gfU
+eLgIcmEbiIfVMD0UuOCC/86uIyZ6JjPdo6FT28NcS928yplJWIbTcsHMRLPYsZ9E
+GO7JTs+MUwp5E3wGLJescTzBdWnSfhnqWF8JUCjVxUaJ5Tlr6FKcL1dZDXZSV+QT
+AT/tzYUNAGnDZQK6LvQ9BNi6ZY7Z0/Trv4cfuiMLJSL3i0ZBbMks5vP5/bLRMhZh
+gaDIGJ7ZdpiuQ7vWuX+/LGBdBXzMy9aSpI6m6DNb91bJE9AYTppLjrY2AiRZ526O
+uXRVmoAba9+4RuIJZf5I4RYD31FmAa8haMiQqx4ESyVC9EIsw46L0r8fQGp4yOct
+/ke7vgG5Ag0EVnKlmAEQALpPU/Kd58YIaCOGMh59cGBLH13dflRycXj4m4wbru0R
+q7VtcEC5y9sP8VkA5ziwJfUr/If4Ky+9NqbcKJXwiQkYGAiPhWRaU1uL/NC+DDX5
+vM5hFW2HnvGHnxIdQ0cimXtxwUsw6GYKNR8BqTrEL89V/Re0rXfZmP64RPwST320
+Jl+nFpm5GZGRy0h1KeXfkCOZXhZv6XhGztJV/EfwmwOm7w8gXyuwZTUk1NVy6MZq
+JPcYHm8mPM7ZCesLazc8TZMOCf2MMKz+L9Tg2BysDgEmHxB0fggi6X9TyUZ5Bxkl
+vn+K7zKAGqP5nKWku0eiULrVesUm1NvZfaYgs7A6qvIcu6LO5KRk6lMbbWGB1DgW
+eymcXrIW85e4cPVFY2BTuN6wBJgEbGkdHL+jDPB69LGq9zGe/f0/hHUEyaD1HqHH
+qd9ArrSLAibVcHVTpcVuX2akiCuJ+jit5uwZqJeDUNGFuU57uogKq84zPsN2QUKk
+LM1JsGf/ctmcOU/h/K7v/7LrRJTnmUvCnk+YLa4mSUH0tgdEq9QsrcrHlWRd+1jH
+LsOS0clOkmlT8zV2tAUNghKSJBQ4cqExid2vh/A0CBITW5DvKbd9QXgRfcWi7CHV
+bXwYvrY+RxXaLlWQT4F6/Tt0Gie6ee3OkdGpm6Wyn03Q+L/efqzu0zHyhHz2h7x7
+ABEBAAGJAiUEGAEKAA8FAlZypZgCGwwFCQeGH4AACgkQtjtTWkwgbKmagA//YZXg
+hn9XaW39IRjnhDnViFFpAcZP75y96aR8IhAsn6dY5IMUllRpmLA0XuwLdTRytcwn
+zsCKzkvETkQgWqqMqf9xtNlfhr0l3u42ihlC8bNPzbnOv3wwfwaj09l2h1xLDC0t
+/oL+A9rZVgjpfvCl18FLVFpQH1Jb49fRH+tBHq5ZXJSdPXvGT228fMXJq7EECbRR
+Z33oLcjjO8e6Osfch/tCiX59YEMxlnuUyMh35/cjH57Lf2WxpJVleJE/YabKOk+K
+Una0417UGP3ox8R6/SjCXdTPksmuFPL33NB19Q1UuBeW6+yUr9bOmk2Y5df67dfD
+hzendAv2q3JdrL22/auyLX0dQuk8TkWRm6WxxsOttQgRzIBzUJOrRLTAm9W+c821
+QiI6SIsY2VMhmlWnp7e+LXrkGbgrHsrDEQvK4TTukkm/o9seN9sPhRMYY8HEZrf3
+L+HvaeHSG/vcS/gcMNEDCBCEAuEewvV5fJzqQwzEteE1Hdb8B0GrYEMgPWqPiDXk
+WoGdWZw4snv0ABuzND7ZKHTw+Y8bDTwPSIAayq86yZZb7j5LbToQh8qXjd4t388w
+TWi34UA56lP0JeRDFoCz5kfusqaXHyaajC6PBfQJvWOmRq0eElkCypjwpSNJeoV9
+WM8eCXEvI//zLCCL8wGXBKdNO1sfIqaoPK2zU8+ZAg0EVpWOlAEQAO39kLgWyyQ8
+2QCAurbjQr4KM8nOr/Ry4TIAEl4BV5hYkVQlFxvM0cFXOvzm9bSkQolQbJPJXEZX
+U/1XOSpovlFGK6lWLALmV/jw/vx8IyARrbPgsi2eUiJacnVSUN5O8tzUOIsLFaCx
+hNFGP7HvT+wvoSYfuVoTUL/lGWeQae7EzhWCu5xPVQwexkkT+R58973k2HMm276K
+L+/fjlmoeGwY/J94lhXYKJLaJMirG/K+uWJ2tXCGqKt3UIou6/T778VjnQ7xOrjF
+vsrP20hA4O0JIGx7HbiwHZrAe3dF0LCZbt30XpkGZbJwqWUW25eM1/RsM0Ikty1U
+DLBQrbyXCOtDDzrLdU72S2ZUINKxIEl3RNuEPthSe+RqdMnNaEX68KhDBqsK4Phl
+1pYG+UtMgW/ReMntUDb5GXBG5i9M3Y+UhHMu/Gvj4mIiKi6cacEflbIBXF27p6da
+x0goIia6ObQlSq9Jcsm1j+ZTktQjJoZ73AGc4PFF5K2808JZp6GALzc0cyQ7u34C
+f3MO6aYNkXebPBRlE7w1c8CjCbD5f5i37juNQ4C6UddquOJG6ibQidbfr0kn1lSZ
+3Wb2kKahD5X9g9pDnrLmuIjPhbgcmoBqqSyHi87QkzIivdUmMEPFVHpAD1QwdXY9
+NVQAUD29hO6/3FNdXfIckV7BfjjYfrtbABEBAAG0IU15bGVzIEJvcmlucyA8bWJv
+cmluc0Bnb29nbGUuY29tPokCHAQQAQIABgUCWL7qvwAKCRCVUaCxpuKXztn0D/9k
+JpQL0eqVj7xr3vPFsBRugEuQB/sbhjVK+E9ZOq+Ssvs9QRSkJAiQrLVVDQZEIx7z
+56U67lAOIRyxNeT9eL+9MTNaWop8F9bFyAoD7s/eH6LGA+h5BLK5DfAORJbUwzBm
+fqleTgIToU7ckr/83wOyH14KItOz2JGvuo5P209pFNYZ114TCJgtg8aVZRZQCx9y
+fOI4kXHy+wHmiPHv2/shnDEISUlfgrmWJgg4fkauQbgD6G9U9Kf0rpJodidWG/dy
+TX+j5KsTKmV5XiY/5+0dkN+hjx98QZE6RAmtq58aerirYAntZYMrkknM+1bgJnEG
+yKUredZbSIVaYgc9tAUk793aCCD7Ew9JVLl1prP8a1HA+ZeRbzSw6lGmuK+YKSyt
+/01Tz6i05Bi7wdDVjiU70r8gR5ZnP/OduOSmvMoFXCq91YzePt+bJioPPIIPX6Z/
+1dTpOvBK8AlJwp79Vb/+iyuxATKk6RwRSETSDRcqA8p3yoRSMv+2/OtlyIFU5GxQ
+VimdJVHMnwnxJ0OgrqNq+Bsk70qWeqDyJKBBRDm5HkyW59XIZ9B0QEdnFTGsNS89
+hfCGyUuNJt7U+uL2cQdf5UWX4FAo8B6UIiqzul2dw8umXCHA+DxuolEoK8JsvSb1
+UKnt5qtKUtckbRzkffcQyKNClwqNuZOqahLLjZKvJIkCOQQTAQgAIwUCWJCxOAIb
+AwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEOc7xkHMEfTImAMQAJvksYVm
+iDOXoqK6eTTDiGM2DsK57v8z5UajvYhw+Dnc//fobtC13uQxGlMiLYIIWmvmMuFv
+rnl+8xiytCOmosNeuoSUcD5CC/vUObwJM7QJlvx6y00onjsdLuHAyM57dmZgFWuj
+aI//iyXkkRTCEs7X2JrgkJzE7zCn9P1qLqZ6sGuHfDKSbQs75UV9wOE33cr5O4/r
+rE1QvJtHE8kjuqLcDoRPM9to/2j3IelTQHtwKRgNevpzxLpfrdp5O2g06+VETEOB
+vriPuaSo88254NWBNEslGjABPrdnLEzRS2UNjAC3A7LKzptsb56znkGj2/I1ZNPc
+a0cmUvxao95/roP7JD6w11Oa+V3iYSV+EGYRq9UD+T5nfQPK76/PW9T/GjcFUPON
+kr2ItrEZ5vURhz1ChHUkkP9FIfDzZthwsVV8aR3ktM9YzAT6tNhanBWzMDQc/MMm
+4Zo4Idh8U1lf/rLrEIDR0RzH8d4uW8T/K0GF7XA6JUO5bFk6+E6MwV3pUtMn/pcm
+jJoNuWOJsE8LoGjkaTjIID+DA4tbmVVhegPQjiRayVkIflAFjO1bczoyxU/6J3QN
+ePLiLqp3SJSePCa9dCnm7rtRCZ3GwQOKbKMLjBcpCtQAiaMXrxCtE4580JsCZDif
+PqQRMqA+pGQgchifOfRdtxYoCJudmNyfiMkutCFNeWxlcyBCb3JpbnMgPG1ib3Jp
+bnNAdXMuaWJtLmNvbT6JARwEEAECAAYFAlbuBzsACgkQwnN5L32DVF2YRgf/Y45C
+QErahooYrXghHqN0q3Tt7iGuJr/GyLCEcQFkEeUj8G25Q6PdnAWSb5/qm1De7LY8
+UcOFDo/seVj5ANNxrVnWXXLlpEZwrtN2CWDVbWEUHxxpDESH+0FrAN1F589bT8DI
+L7Vq5z2dh+ulXnymqiGSwQkFzMlZYbrS05/O5+Ljpxv1ZYKQ3N1ulJJi+Z68GTpr
+rtkMEns4S+la0cj9Aw/S/94uGvXA82k5mvhKbsqz1nFvnde8QhPyVDTwMCJ0f++J
+n1KzPNXnHjzMes+fBuCNVV97jOoPZZF1TMJvJeAOgRqQkxNAEzb7E4W41WMsPRMB
+SsoyDiFkFXeoHbp3SYkCHAQQAQgABgUCV+ReKgAKCRAUXU4NeXB5mqlZD/sGvm6o
+pVbHlshEu3hmsEzBzWgaa94VFJ21mO5h7joDX+lSM6ozTKjCovklLGybGUj9caUw
+3DuZx472HBsATcJH70koSNJcrD5ePzK35YLtkuZq0rWr/o1GxelEzoeJgjmsZqEj
+6vGVkyZc6+NW5dBhMcKkITHMrFprq5R9do6v7dYlNbnBySMT1FOTTay1yhoHw3Az
+/afTE6DsH0s9MUJExmok1hSn5cpcWQjnY1GeL17UikO7BGaHQD9n3/4+KOX/Ga40
+dLUUtBL4sL6l31HlyTbcPO1AQPvHzUdvsBIbZKk7MilzBPz13GLcoMQEQb/UMIqB
+dc5M18oHMzckVbOoAMjKujPgP68m7+wYnaj7Xl9uYtfTgj9RtzVsh7JRoWxmPPx1
+Rx6VaHO50QkALtrgr0BXuFqjzkVqmb4nEi1OaI4Mv1grBXkoYl48P98MMVNfmtJk
+LE45NrHEsZAqOaU4eTeOmcedivTFilku6lKKdkBwLuLr+UHeVDEFCLKPY5jVdEbr
+vYnfitDFsY+x/QUKkaLrqEEFgeHCAMUp7mtDXhGgE8j3UY+U6ftrtOgbt3SUF5nB
+nFD6aPplWZW8FDlGecVjxuG3NHPCyg92GMa5pIBlnlDnZuS0u4Mc1CpzFgcrg2u4
+8kQnpHGHJ7Xo2R7F6r0CLUGayK5lAtxhX43W64kCHAQQAQgABgUCV+VoygAKCRDU
+L1Awh3AmJ1dYD/wNSDzkUZpH+5rubJROIdVnR8DNDQkqVZln/ZVWXc8bghK3OlR1
+35NmjiFrtvEEudHMxkLdoJBFuDBNR1yf4Y0nJU25El/WehqYzQe/rMNPyJ/uPOmT
+P1AQrNUBc1x4nrMJbZq/1yiTst8mJu7ZRnEvM0F1JOy+rDwySNM8918aOuX+ZqNf
+vL4oAALkLvLL0x0pj5gdgVu666X29z+wZJ3b4sJKZAuZfYWS9WS+Y7AELu5oiH97
+DJo04vgyqcJOpcrNp17B+3yoAxjTHv0jW3xPg3MLfHRx2ZSfnSV7QNc0DWj0KU1i
+MaQYRM593BFOXLwJrEw3xiCONnArgrUC7L7DsaveJtuVN8BLKZDT709Bi6p4DpQn
+IvsSztiAPapgg+e7Lt/V1f6kWcXub5ga5wTMubZYAlkk61vh5nPAwQymcKyAIMEp
+4Q7vrQhqv8/COYRnYhwIrvdPRay4lgLQ0OJz0A3X1RtRlaH7ODOapsrZn0LT5Syc
+MDIk76fnhg857jxhfnpWjc3Xp0JB/twaBdvUWWDjpIb5t3d4l4nO5DkXNKfSQEmw
+PWKUetQlMjEzPD7B1nPZrmbZNK0RXe21ZfVjHvXXvXiHXp+HT3RxAMNCH4mVX3LR
+SQzz8OOEieLFO50vNc4mxDN+AknM0Q7aC1FiEcJtEXdiFkPbtL460R62R4kCHAQQ
+AQgABgUCV/Ok/gAKCRCYZCyGIK9H1tkUD/0TnHwIF8sGbrPQWvKNrNSpuTEx8i5P
+w/To8yyrI+59abcJSHWh8uYJ/bm7Z9HQsguKF7Fdi2pwWxsjC4ND80x+a9f0DGS6
+AoIJDtYXdVInsbaAkBqLp7JMWI0gmCgnTdHRPSmJXM/l0BX0zFAGQbWGC7XBYc8M
+cBpjiVMJXyDqYFm9QEBLW9zShB3Pb8y0lEiAPmsCfsnwiOIAFJw7eBtimdYo/e9O
+5VAxFFImZ5Yk14nvyUdL80e4RX7O+lZ9JJq0wIz98fmR1aaPcKTQirTuJRLft43g
+nFdxeH43REzkqyj+9PB99ewjF16+0RGNWm+vpk5TyM80UGj7Ok/pzkxr82qzQwJi
+XDl5XmvgTAuagVeglKqh4onQHtvXTh9sVKg4zJqm/+eesjh0YrNn5qWOWOjtyfCX
+3/WlcKBbvZ1X7S0l4mkG7iKAfOB+sgs66Nq2a+sf1EUou4iz40wLfxpz1fB3SLgN
+oQQxkB4k7PDntjM6y8FiXRUvELKF46QJ8OIbEjsdDOpY8fA2M1Mwd8WgpcJpFxDj
+DYUPW8e6m1KvIwwpkcpYSSVna7KzBGtTCy+3+R/RB6c7MpJgl+sSIt3yL+S22M36
+LSW5Yh+gtm7BZS22bEB2NL0kQEDY1S+j4y6qDQmTxR/X904ofsQLj9gJ0gxsQ3w4
+cXwFJWEnG2vmZYkCHwQwAQgACQUCWJCxHgIdAAAKCRDnO8ZBzBH0yCq/EADbu9TZ
+i8AlVAgk9D1uxMuLGYrSheOlX/NJKVQmyMBLzp4oLNiSSmScUlzXQjRxHOf12pF4
+GLrvQZo2VxxoGt+WQlL64n/IT+imVM8qesHuKODtPlHRiltFtK8J+w/WnMXyAq6Y
+4WyOYly4ilTPAtkKPW4x12fItB2xB/JEKRW8oeWFe4KXJaq1hImOuSSAObfkkC9+
+9wdF39Lu6U8KECOEvCfgaQ2yxCvT6b1tDQjUP8/O3CCFz0/66QJFSNq+/Gmzvkpx
+cxpHflqS7vVZuR4lLAhlg9pSH2QEganBDcg4Pm5cZhJiOcAYfjxDtZrXmAYfbF5B
+oZZICVmv2K7eXzVdvTv7mkTjynaUehv0W7OTWWsdUHI1qiAtbK/IXfzd6fcNqtyA
+CtWIxtWocHrdkZdMS+9Hd/0FGV3aPn3ApyYDsdOmhFgSUF/bmpY0jcW88b0QJtz2
+CXl5IIrmqTfmgWWA7NmLj/F0zw3TU5M/NKBtL/wDVHEzfiFEj2uNXFrI5waxbtjk
+iwvGLsAb3TIDVBdBhKQWPflHy/kvxaRrQX5Z5HhNJKtFFbk9CfP7p/dFB0VN7FDH
+1ANbfLUOhdA5zgI2+zoLcIf54Yx5MD9NlSXMruo4x7+GkqdeDV4JxjeCpeCbjXGE
+ZJxwzBcMjR+Q9nJtwlU/FAKyDWgm8b6z5pB8G4kCIgQTAQoADAUCV9/YSAWDB4Yf
+gAAKCRCBhnRIn7wSfqyDD/48iOpq+Rm1+oHRdmz0iYdVsyt8E435PtlkW7l6NE0k
+1BgGnubLkNbDgbJBbdr3AgTAzotBqAQmAnRLdirlWeCYaTIM0Ng2lYRfWmlmHkcb
+1P/f4aBzVjsCz68IzYIrRlsSxg2Imm0klSNN8IGL9Xl7unBS8Gk+1o1/d8HY8y6x
+eWkpqcLJ4wVCwuCBbRlxOmp0n0Wk2cPi9KWzKWonb+KwYrfDLKzoxvlcs6B3PPSs
+FDyIIdLfwFAHlbJBACWVZHKCNZXG6GsqT/pW+xdcXAhG8a/Is1GCGHBURxtZeLbi
+qrcsrtIx0fEQjINKA0v00vPU7OoJF8BGrKntVqHzP6BHaqo4nZzgyOZqIBwH/YIU
+X3RJOQNAMKqK10ywYauL6YnOL1rr8DrYrXBHCCmBl6QsQPlmAhHgdPl9ZKiYDpLh
+VPSDW+4eXYm4i+IEUJ/GuNZhxjI1V7gjJ/bsKD64qAiGYjPBxfnqM5xNF0p7JiU7
+/D4FXUOllNFM8yx5vRzBwo7Q1l5yVlZ80fpcKk99QUrHBuBZ6Hd6tlNRCYiyARwe
+Ezzw0tybVpYDQ0Hhp47Mp1tMyuSo4eJwQDExDz9lFlO2uBnmC2OnUrRnpe2D2ZM7
+FJUFq+xFIVnPpDC186gDSN3w4h5+pAzokfy1xtGDFm7EUbwLlNwphNG/GE+AJw+R
+dIkCMQQTAQoAGwUCVpWOlAIbAwMLCQcDFQoIAh4BAheAAxYCAQAKCRDnO8ZBzBH0
+yHnBEACIuAutkvqNa3eWm3WjH50Mkxgvcp1ox9UT6YoUctnBvR7lbZJQIsrtBbV+
+DMwN/Z76surTP10Tj6QKDfVz4nL2zka+tlatWDDUujWuC/wSjqSJ4DZnAA9l6m+x
+8v3/s/HFB9f+iDRBGjOWXMfcdoePdyVFW0ZbPMceernITA9g5trNfeaXUI1YPVPE
++e7LDawNjB2OEUccOyUVeT3rbZoNJOk4mmlaPgYwG3u65HvlnRyTXn7bQrCBvD+P
+61/K4ZxViWVqQYwYFRXi9okhocckGynHxoa4bFnook4P8L8N3qYh/3B0s/XvHF8A
+gbTimbo7+kk655eYtG7kxziks+YGQKe0AlBqF0ztaLVjMswQXkYgy9yh5ot5sxmS
+Rle1ZJk/A+0vJghVeaE/o+886BzT4YogfYWvZX1vq90vDMqX6RhZzb459jt2L158
+APQVbnWk0pNzUAMUudj4zWBGs7LzXjo07nsicKARDO/ratkwV58u9gfYf20ZevCh
+pFbrh4WuMCh0zGtFa4Wiwksxauk05iZgYOdwWoIlyjkR4oU1fPOuulKI9qBCMwzd
+S+wvcIzdhvoEQoxck6W+DezYEfxWUG4SRcd9a49hgJixb/bZL/DsOwTFGq2arwG/
+FCRIvpcBDlazeJUbxQ61WTxGP4btqla5IClHHer9oF+XEkNWv7QlTXlsZXMgQm9y
+aW5zIDxteWxlcy5ib3JpbnNAZ21haWwuY29tPokBHAQQAQIABgUCVu4HOwAKCRDC
+c3kvfYNUXeyIB/0b87yed4qZ+YYYBGvrm68OP6zanl1XlNfJS9sUMZLlFzvP6RX7
+3LzvZTRqMsXCjiimbgU2E069xiSfpozFb/fQl5l4V2981D+rI5MGkxMK9UV8nPTK
+wXd6S12CY5Pr+k4452vHEt2lcoEBGlTxEzuvN2OKSKbgThDBVKXH4IXdWa1Bh8I4
+U5JwfQykdLeiCXUwURdfyE7Ky+4/aBPvTTIv8nbdOuj+ivrBN2V1+CBKMx4UC71x
+RyyiUUnZSOsVnrzgKYZ2ukmljJ/tbknYepZd2CY0pX3f8b1bVUXj6vOjnetPj2fH
+6ITbOwEwneHKDA0P7/+gB0Cunbet1xa2d/4FiQIcBBABAgAGBQJYvuq/AAoJEJVR
+oLGm4pfOs0MP/3IZxRCUfuwRHrO0tViAz3OH4G0BNOU3qdzKZ2/sDEaZKUbMRgyO
+XF+GhHkhAJdB+JrepdlugTKdvgZ8iGwse3ojmxgAGXPtKbi6nP1DrZ6p5vBluCdc
+z/MC+LFA2iQUKMbLcj9NUwQW+9/Hw6D/WHs2JALIi6B76sGOtQHrYCpwCtNzCoGE
+UsNd/K20FIRkmt2zEOnuDrF59U1Y6439nv+WCtYVg8T41hyKs0H4aNZOGC9CaAbN
+mxeNLbTGthsnXsNKVyw3Hvm0wIOOIo5qG7W434a2bULuZVQEHW/LRV4kXuWbg1SL
+n2gt+QZrI/eJ+qHnWMzxBFuwqYCGus0zciOmDbKnCwsZxq2kPXFyXz4rZzZoOcpN
+jFZ07hpooGzulL6oVz+1QDc1fnatbgeKMQEoRw+4Va1aiYbGQDTsww4knpejEJyS
+MlbIy71R5ZOtRKEfu01BIn0MiX+RDQTpV4oY013lkVSHYe+4JcEM4yZy++lVLfea
+rRkQi2mdT6aSeIWeb822ptt2REt5QS7MFresD30JLQRAuaJVlQ3NEWntQq+LAwcc
+uvubDGwqVLAMK6tmQ43bLEwasZ+AYawc8Q/5SjTylASdyxSJUUK63JyCYfnqdw9s
+uCLcSVS4by0NUqS8Gr3++GLlyfZ5Wt5JdjsQfbcTHLdnYJ85g/r6371/iQIcBBAB
+CAAGBQJX5F4pAAoJEBRdTg15cHmaWzQP/3TDwyDrjOaXZZrp16rvBcRoXgBmE2l1
+idK77k7dyrZ0IdzCdmAeALC0S7b5hnOJCyHj9Si7/qPwBOIdlT2E8+0WkUktsFtr
+ZqVgQFYvAWdyxiYMh6s1jvmbPQvq/u1BxZlwlLiPUo+V3NKz+hl890hc3duhIzmJ
+7X3SkW4pMFMLI/9H5ulqvvQyAbhXlQ5j50RcgGVpduAJGy37Cc6QxdxUkGXF6FPx
+Ne7lhVGmDn6cU8jpZZ05p79cDh3Qh4HsR7SHC2YzxKLIwsdgn41bGbqQOuh/ZXfz
+aGC6EsxZWo2QMkeCz9ayNNz3E2QxH7o5TajFCFAwb5HW+ufxGd3O6IY79r1R667g
+sTF+W1yo6vMMFpoP/MDEvf2cOzaiJ1JiQ7iq+XkPVDGw72+FzsyzQ+m0ajb31fIQ
+zSiW7BdnMjn7IvHOO/2/KvKCLRZMK1H4sUUsERnPOAT6gkL+WIvAboLb6sx/l35S
+aHHKIyNSjc8jTR9FxtmTZATjcz6Wj3+MR/4VRr/LZpCc4TG585emJnjoTp5JmQz4
+mnU+M1urKh8lNcoJV6oKAEJZmejWs6C1s/UF+7MqfUXh925FE3HDkLfm6R7CWUHc
+XrB9FGRwRd1kK2+f9TtQlQOC0tJH9ntufPFkfDpV/oMD5x6UIW9qEWIUlFbPYtMa
+DwNrvtY5gwg5iQIcBBABCAAGBQJX5WjFAAoJENQvUDCHcCYnJYIQALbnxsnzyh8L
+MXRH0LSM7xuCh1U+xKupAKMC19Yy9sc0HRzYwjdcqY3QbaaxOjexHRHii6hXCUjs
+woefVtg6/Xw+NiGaK3VEwK7VGMq4ZBObSJHGmZOzv/NOTOtW07xtsJ5Cta1njbHq
+znsklgFW5u/PJ1Id9EsROzm80CDK9ZAhqhT5s7bzBPV4ThDxGyaiDIVXX7TxGkp8
++BQfAzvj6QZgwXfl8pr6ReES/4qL+SyFrQkmz7ZEirhWFnN6dEa4WjHkH0NMasgM
+bB5uRuOP5BP2DKYSUpx4J3LHHW0kqhwoJ7y/k2agcMtu2VvorehsmTJYCJroCg/5
+drtyHKVu6NCDAir58c5ZLpgSyKCAa/xTUtd7+Yce0HHixwt1LW23iqC3BSKMT9OZ
+ZGTDv+khWzM0vTuIobm+KmuCJq3MOXk0OTYkRV4O1JsytQRWhw8w0zw3Ziq0eepw
+h+emUey/ammePNuaHBx0MTnV0rgnlqRgTIFK3fC1YJQQ4vi0OqiSDMnCfAO1u6ht
+GS6TDULOb3grSQnZBl1IFB1594VsZ6KaMxpA4Ko7Vc1ZlPsvfJdonDEhjZFNa3Ue
+z19ZPIKhj8vuxWFwakUVM4g3724F3bjI8H+cbF851n92LM591nR5uYddr/DVK8d6
+yW5qYmpUBsLw7CRLTQjNzI0o0iZn6dIKiQIcBBABCAAGBQJX86T5AAoJEJhkLIYg
+r0fW1fgQALygE1VC6TN3afQ+UkALedXqZ07b2ypYeL6wE5aSFI3qhTOwcrRFkwll
+iZ0Ou0xhKOUkvfMoCfujrpK1VNQQ5LK4OYu64ga5K8WU4AzePgYzPY7Nn5LoSWl7
+tXSoxFMuk8AWpIt7XJ9hQqa9PsbDLwvKgQ0ZPkp26dSzx0Epic5lqzy9/u13H6IE
+hQDhdHbQlPNSr/JxivIzhvg93k+zFbmreryVp8VN33rWnPdkv7NJs868hNztaBIa
+Wm4ZtIoQBEtSsVTJ8llSLJEfwMN0fRNM76skmK1jzmtrnngsHvvZIdU6HwAwisg4
+ZLcpsrv0M/MLXH/tjHfdMudnj6HZenkDG07mRvRuNKxFBgoPC5KWrJ63+JqhR35S
+D5HfVhl7WWeDS/bsQEWK+hu82Jl0W5uoG7TgIO1S8viKN7Zdcv8NhDjSV9VRaGgC
+Nt4KS1lhWIRQZo7hww4Ex/dh0QVbHthnvcwEdn3DbJ7NdjR3hu9howgXzhEZfTgf
+c4PyN7h9jgdtbcaL+dQzA1lkSxe0DtVNLurOlTJnUBVHOb0evz9QcqkT0abh3Itr
+vpcz8aOoI2r1Jjgtm6toDpELa/9WTHiECW3oxAUrZFrzYigVShWym1FGrz8lk3w2
+sDO+A6YqGgN7ar0PdmeaRFUYwNzQmhrKfW4a82gd70s2BEdFAR8CiQIiBBMBCgAM
+BQJX39hIBYMHhh+AAAoJEIGGdEifvBJ+SBsQAKgXFN+vYHwj+tRSLYOLU9mzM5Jl
+JUeCV1RVxb/hbTh4RdcRJ3Do7WmXt0qTQ+1yMgfvTad84y9w7QA7xI64s3uv3kD4
+vWBgw1pLqxix+FIXZTIHNe3OaNkEfcTdMoJyvuWVpOXUz8xbWFZIJke41aA3QJXK
+KLy132/NGiieKoYlGgJ4kaXzM4/17qfS1gnfiOw/sAMKna6FlV9qZwxtS3PqeYbV
+iZZ5yPIuXb2CD+nG8Fnj98KrZWOI4/YAZiIe16ccCNxcdXjROXHzBdOY1OG/6Np5
+c+BtCaG0D+Oa7U5K6ZHfu6TTCo7c+L25ekZp8YGn5Whb2HNzfRjn1NkKmDKxa5ar
+hTIHGgB3Zizcf22PwNnrUx3godC20ELTWA4MV/JB596MKp+p6j5hxhoJrZnJl33Y
+P1jALLSmO3CukOmRUgw5MPSgaloInO4yyJgL9vmZ71ikPJ4D1sEFeKAia/hvTU+Y
+dOb8jg7wtuBrwF+2vgbjbfCzIMvi/7hLJjmDF6qVs6hRjCSQVPPsBXaM4gtrhNOh
+ZwNPL70bkg0icsal1Hdua2MXoPmY3eX9g4CatuWcnVu9oL0mtAmAzP1I/gP8OPYd
+R5YA7mXSdCp2smutC1hvW/kWyv9SrU7oIu0/e1nkx4O3Xv5LbK1TRXMk4YDrVLrg
+nIuFf+gUxkeck51AiQI0BBMBCgAeBQJWlY6UAhsDAwsJBwMVCggCHgECF4ADFgIB
+AhkBAAoJEOc7xkHMEfTIB1IP/jd39peJKGZkKeK7X4fUB6CmnxWAWX7aTe4cZA9/
+Rpbts7O6LRYaErlabEqYW3RUXIiuqr34Z/2sw9JGaPCmXWBP2d6mwSaCyJW4d8+m
+rv+BzAcoWjdf6XdohLCNp/9XwAsE9Pe/i4I1oxLWYRsnlJBEK8ANpseDImiwR4D5
+HLnelCEt73Jhl0stDtlALz+4Ex5nq0PL+QYDKE6Ol6Blut3Zr0InL77PLBHcfl6C
+TKPs3jbHZVS2zve8Zz2iI73mpqzSkSqB5ZZmdPCof5a1d5Tm+hcfu9VG4xPASuAI
+GuB/wLQX9BK7t18LFH7oPej6pn97WmkchnO+SQzhVxG1OKdNNCA8/qikUAxHi+TN
+z990hQU8AaUR0LPcmoreY+QZX7EJjn1rpa4KKmxigNGFwiTLqScBekwpIv9VDOoV
+EnPJ2MjFfHTXpFED2btey4bKWneisqAgiUxLcBv8h7ibBG/TdgBxmKzofeuDSLRZ
+H206wfMhff+YAqADF/Rg8CafZBMErNM1BUNg3IBgwH/GKqsX5Qt2IyVQf3NYAkRX
+ZUHWMqB+/TEON3gAkd7ZvYDP1KEINUnVA3xDwztA+bP2tlBnJdLkBis/nOYFZtsi
+8AkityhOzVC+7dnKw1QoqwuGBxwJgX9hmqgtETJw0HabXEPosyAngh57iDVFPSaK
+4+sntCVNeWxlcyBCb3JpbnMgPG15bGVzYm9yaW5zQGdvb2dsZS5jb20+iQIcBBAB
+AgAGBQJYvuq/AAoJEJVRoLGm4pfO3mIQAIIR/5JwKuwuu1H4NYG58A3TXB8Izy2Y
+GGrwmF0YfrwLDvHsXMeMkl46PmSWz6qJcs1fnyNwTurP/3qknPEH5spdjyLECXdG
+ps1MyeYyEjVFu7cxA5qpvil+TU7tn89mwf4CaHDKi5Li/RsgQT0kcSAX0EQ690rO
+m1xOkWjpDas5tfJPXX35e6lPvlzhlRDzVuxRgRzi6CDhMy+KtYyzABpG0xt+ak++
+aonL7yWiHoKZGNUmstGR3ZfcvgYa7A/jA3/EPKxovqj5k7KzC0MkUU2OyrhmUK3m
+HnY7/hqtc7LLE2HfmBctprZ06fGkgmY+tn8E3sRCT/nncGn4Ur2ovdNtFcwSWvfK
+9uGR3N6Sa5OFCVt6Uxgt7yL3PEryDsq7x+ycbtUYr1n0GxMxPQYee0kah1RHqIKk
+JaNJuUL4pkgzAEXHZUXoEE09UjoJQRPcebFV42ssONz3ENLFMKUEd6xbzkVWa9RV
+h+CPTRLagYkfnpvJd4qSbqeo9bjtFQyqhhfeBekVxzj1bixG6tKQ/mMpqSkLHXFU
+WzbNJWBx0yG1LvW/0IfjpkNoTETGii+JeVUD4Z3N0tCXR8tgyatiptZGjp87jfxD
+KTF5A5aIZPMQzlNqZdJ6y2MAFvNLtBwqi2Rn1HFP3p5vaEe4XyuVI2QiaR4jFhnD
+lYnp2NFwjxz6iQI3BBMBCgAhBQJYkWsOAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4B
+AheAAAoJEOc7xkHMEfTI8s8QAK1qXN5jxhzPYDLiz4NvjchC5wTNZYD+g74bxyYg
+jJOA7u6HIBLwCs3xaptzlYseci9nDsPVZ1fzCDHQemjWHMlFfVeZlK9nc3qyj9BY
+woUI1eQgZMGOFYf56gnbDSHOHPzSmQfw1CzDmXHdv4h/5HMT00Q/wJXjN/F1MpjR
+fm4vIigHRcZ8cJCHjJOtr9qppRdMQqxYg2KLA/Ly6UO04chkqj643Zmv0UGwlCzA
+/yfrZd9LeKDw7WXt2S2M0AslB8J6I8LYXDx4n3ri32G3bQ/ifCIvsTuTsHpqIdAU
+CiqQErMSuw5kFQley3YkJEYDuFsNfFrizCq+1JyNlUARGKANUbjLiLgb3pDe1LCk
+dCxQTlHhLpd5H2xy6/0SVy9XYzYHR3gRVX0TId14MRspgC/TKE6GvOcu4lP0qd0x
+WxbIdO0YW3qjmkCoyAGN0S/842x1RyEbzlSguBIetGh0dpoVc9teSOaotoRO9hv1
+LkY1bUroaJLIcJE5M9eihvZIVfzCW5rMAmJ5hT+i83x+3IforsdbCRKatd/T//uQ
+8QXv4/Qu9JfhGL9fbN9r4aCR+YgrrqfxWX/5hdJnGvzdh/TqTXo2XSWhhmphiSFC
+93EojKtcrHjMuIhTdA4pYVTLkS8AXCD76Lmzxi9K/Fvvanm2WFnsLYjn/PNkbr5U
+8URriQI5BBMBCAAjBQJYngOvAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AA
+CgkQ5zvGQcwR9MjdFRAApqCfPXRkjRZRdhtCVnT15QbMPPEDyCmwwCgRvfX6+jdv
+AUnyGUStKRZ79awehoXvLQGKpaVRiJt2kqt2Y2eK9uyPlNNvkwSd0/+Qpix8pBm1
+s1nA/khNTeUpUQ8cIFlsNhBYo91AFKr/qq9DUPX+VKvpUSEwvSn9dsXL2y3baMyp
+NaJIS7rEfI5/u3r6eItwu4Gj951H/6M4QXyqLMZhlpRHt4W1GRYPkjzLyw9a2OOJ
+GZudX/Vhwk19koM27hF5XNeH2IkG3eILwdjWdQWjaJzZtnfWh3CkYut95se0vreP
+K7sFbUauVArs3CtBuAWDZ4+k0K/rY/PP4tSReXhQfZAoVEGEn4wyar1PHgggBStw
+7H/Bzb3ZLz5U6gfjThJynzLXd2xbi/Via9s7vOhuiYV5MDVNnfvWrs6q6bG0KXYH
+yCcAXHME8ftbo7dgdKzbMSnC13evbRVL9ZnajCXz4cvWEaDUBj4sJUGxfgGIEX/h
+7iqv/oGCG9JzGKYtshOFL2MskImzSOmGE8q51Lt0wBC94ZKVYlQnWy0uqhaSZC6j
+Sd0Csu2cdAX6kVG01xoiqafZk5Az4YP3U/EiUyZH+HB0rNV/pvmdzC99LZ2LTJKX
+y/nRKAG9lNsub8LZCHlVwH02iXNUeogK2hU798Pgjc+BLnYCx3HoN56rXzzKhdS0
+P015bGVzIEJvcmlucyAoTm90IHVzZWQgYWZ0ZXIgSmFudWFyeSAyMDE3KSA8bWJv
+cmluc0B1cy5pYm0uY29tPokCHAQQAQIABgUCWL7qvwAKCRCVUaCxpuKXziHaEACN
+U6bIrEP229xDXRmhcx0xQ6nJ30wBbX0uNS7WJXxmyo2AuSfxx2dIjrF3O9UDDHpl
+u3hsL6rdaIzYO0tg/Vgy1KJVYhbwpFuOWz/NRW24KbY7mnyq7rx31jmTPCMptM4P
+yYv6mC/9j0ZOH+xzOjzmXuE6fuZIB4GCqqlWPBzJiqxh++sRxMejYGe5HVfe0t17
+TJNTHk0RKViM8c3bBnQi6RLASUn9wGFI/yPbEE7R0+dPgqLe/10Hrc74vv5RDJhL
+UimiyL4hTodhsV9bcaOBio9DiB8gAC9hfYBNw4ps7HaVBnqrJNSPuIMk6boXjtTz
+XENBU15BWsyKMUQ2gpBqDcspnHZqRTzNDjplMB6d6pMoKZpLljnflBu+F/kq3TSE
+u9JthqxeevAGa+IS8ZGJ/P7HO3b5SDyh/wdIMstTgGrfB3fA0fGfGUUQIqLOZWqW
+S+Ud7k4XdydaUeGlfK+1x7/41WYDULad0UlIM/G1Z7FaEJAouBfGM0TAkQnGsA1+
+QhUOaIJqUjP2szzfzn/gswr6eYBGwvojVVClbPCvBn3RUB+Y+NgOMKhF/xJiYA38
+nYv27TW8MQASoh1prLQsci9gtwoR+MUlA8eCKcf+TyOgVz/f/N271vWSEWesqLj3
+wtx37edD10AWgzTFMsNSJMtbBpy1csDgWT7aNwclzIkCOQQTAQgAIwUCWKFlowIb
+AwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEOc7xkHMEfTIvsIQANvVntac
+LCksR8dYkAV9syIn8uHzbVTYJPPZ4kq6UW6nR3k+9dbGRL6kBk/YOn0/ib3mVz/q
+MPZLFqmoWTkRh3qCGeBLfZtOd4HjLQ5vvpFsnkWmN4BW3Ji/lSeYHyXU5Zv9Z9YO
+xbo1y9tOHvhrsre3kh31E9AN5rb9x2KVS3dwfmN4PIx+m0aC6JqfNlf78hDUbGdu
+Pm6TkHcmEVfbJT/XqqzUTcJsNVk7047rGxZGo+TxbW8Ri3CPoe7QR/LhQ/IxIPp1
+eNu6oMWycY6m7EYhNiagf76j/Jv9T7R5XmRtxZq21z4985cRNC5auooD+apdOiVj
+ft3gAbey/DZPhpY6P2Dtzq1MFXdHRfoW5an40Bg5IgnbRhqcg9EY1+182WNB2iaz
+ntR43IeNNZXXlkLIVxW4oAG3vq6DV37lwNuOYLTsdGUvbkMd/u1zmecfX9C8wU4/
+Exefk676SE1v5shA54UDUvUhaGnDbLZZ66MfiXfitE/RuG3/uFfkxeKc3/CsUKk3
+RYbtKA3Ou/0O9C6pKIVCiQhUe/HVSidkk0GAZ3Fq64Cqajd2Byz0QFDHwKv16BSY
++E4mmAWXYw2aV7pO+tivib6XXbLHU/WgJ1qbm/Qr3uo+ZYv4k7f4IwYi0kbSb9nx
+tbft90fuq3xmJk/BzY6NZ2f6FIO8aaJzTIGbuQENBFaVjpQBCAC3wjTlC5/jdi2j
+nIophctvA8XaqmrQeD6GaLugfCfy1zzU/7LbzGbb0mzPdnF1OT8htQFu+CWNrInU
+DqM2sHE0tqx2EQ82KoK9uQduFjyX33GK0FFkQh+cDHkTDSIQkoqx67FHP+jgehv8
+rAzpwc/G4QgoWppj+q1GwcPe34WMCazsfUMYyr/+iyw6PY0WZyQNMUgOItwGlvq7
+QsYqW2rF8bl6qO8KPlXxXK7f7ERm1ScLvec6W7DbaQcO3KlK+tUgsFVAkHEYwz7M
+Gy2ybNN/fHTjS0uB9ODkyRFFGsEXcg1BhJsgHNy+mWTs6dOmtKEZW41BeXL6pgpp
++xQcCfCVABEBAAGJA0QEGAEKAA8FAlaVjpQFCQ8JnAACGwwBKQkQ5zvGQcwR9MjA
+XSAEGQEKAAYFAlaVjpQACgkQ3qFjcZdAMaXgNAgAkmmQPq02lPA7cjdkWtbYF0tx
+YnnjPcIhj8metii3YseDkfJcsVc5IVDMqg3Ns6W2cudSR9cgfw+Jc5MeVtEgBerR
+w6UXAfvGK7khVXe9TFe46Fx1TEJ1rW/hc0lNKNNcJfQhYPIlsjFRiYQEvOi7A9VK
+cpatFXqHDRGSvjWnZfavJEpQL7f5eFd/GXzFTNOzKYwTRqOn3ESQEzY65lbORQwb
+wTT4V704i6x3aBhwjmqnOMFaPlU69QQgrmPZkaSk+R7NkUS/AcpDFJ5t1L/z2HiK
+F/XeG5U6lmDy/Pna0et6jnTFEkDOkMPQSpuV5kVrmYychbWiSbX2xLSnHOWh3un+
+D/9zafSr+LbYbKsp8lmSrcucZZeuD7OLJCk5MnGboNzdGuwMmxKmtRSuL+lk9L/k
+gNLRIvy4XlgnVycVUDFoKcUCNxgIwN/P7vkEbvfdYVeqcS4QWGyPYh0XdBvDWl3E
+Wt5iCyHItkRu4gYwphMuqH0HT1ukilwxwyVi7grJr+b6BAWmfLyWEuN1ewaxNoII
+q302TraoPGlbrQb3klqtkiL1i1y6zIbkwsycxkSZ6TX02hKLBB0bvAPBA6wJpL6y
+mUrKAJSynTvg0YFmT1A8qdKvpGaIjNx23d8Ak/wxOW0aBjsOXowJbWxAzsjzYWgz
+UjHxqjlu5M0L1eAgAjB7uHWM/CQvUKevn3NB/QvvSTxBKF3idebMrGBjeIIbpefM
+v4q84+6msPeNpZOAjL86uHi6+Afd/R/eZU36mAuLepEO27M+5Y1dZbtbSsSy85Xb
+DPJwdnPnZm9iASoxLdUqKYPTn3P6grmlFR6PaxSlvH4VOwOJZ/00ZocUkwev8xQF
+babOCpb8+LhtqHx+4fU36HzPl/DnFclgXwld4yxw8ui7HQahjfvkIM+wdpp/G+2+
+iGggWWZZ3aJ8AGx9NgbZg6Tt5VvS8o/B1BQR4li0Lq3qyzINz5tCrlaUXFpAJB/j
+l3Gu785wMDCEQb/ea29LIKzfYiqK6KOG9K+VaYi6STifNbkBDQRWlY6UAQgAveYL
+9Vh+G8jdNcPxr7oneutYclTxbLDAXcF1cPygn4h71dGrE3tNpbsLxG8K3C8nxQdc
+L0NwBnRp5LAF/QNLhxWLbFRnxXlULU9McWc9oUC6VFKSBGOmtdbuyzKneBIri0BT
+Xqrjmc4lI3dwvHxRRX1Bf4krbk8UTeM2P5tt6NciJ1yQliXvPk6iHVeP+LWv+k6A
+kG6KLn5TVwZjHbEflGcPrwX/1vWQPySp/36kx91t9+xbw/LW+Sa8bxyNvovH8oXQ
+aEFmHlk0BhgN1nyftutFpT7FcJfglf6ljXPx5WJynib1baAnu70VsPsL6SVlXxQn
+mfNyeS+ts2y7hqJdQwARAQABiQNEBBgBCgAPBQJWlY6UBQkPCZwAAhsiASkJEOc7
+xkHMEfTIwF0gBBkBCgAGBQJWlY6UAAoJEJM7AfQLXKlG4xgH/2rkUtqEPcpZHPHT
+6Yd6qvyQVLA4YDad7VwIHHI+XtOReq6GbEOlHUJaaQthwobO9HfZ07winb9DeMnM
+mx+QY3yrdMidS57vSp0Z1sJsA69UaOCcMO4HEZEoMC4W45YRZhMHJ5V/uL47uCHj
+be+Ss7RwGn9+1DrmFApNPQqJ/KYZC4uXJxbS8qStZtcjbEdcKYsoegAdtzXOMaI1
+G1YACZgzrPmATp5jQ7xpo4l5YCyCbqH4dDMnUiXDjl4Av2dczX0Jbd9DKpw2U9rL
+AsGTbRtEv36hWKDPW9Cb0FcqO9e8w4Mxv6teOip4+WQMgITkoVZ3BOaLi3BYi1NJ
+RajTpN60AQ/+O0ElgIoCFsHcVYI4NSWDzmmFXqeE1jllVw2wnA2rO8gp3q0fcjEd
+57LjowC3GVFBZfrwKX94G0Jtl4WHtzNUymUxnuz6z35jT6C5ijNNDgd/+uAszaGg
+Shp61pl0hFTibIx4rUT4fXYuQhwu+JsYgiE7kLjGG4wNaOP1EqtoBrhR+vud+Obi
+2K/iz2wlfbhF45Lrh/om8B795uA2kn42X+FhgYwrf2x++2jkO2McJ3VvZdv5AoVx
+zQYkkUb3pJrCPhK/l7Awgf7qpRvrrQcOX+tpnlhJ2keWUSjd1Kk1QcbFPKWQG4kU
+nMUcMWp8VG+WCLBu1MleYF5DFAwkGrGQV6pQNdMOs14Qy5xZJoVYrNuL349BYeKr
+AxPbkNhNPYxXhdNi35jmXvXIExnoe0scJgcjhcHC9rgX3NOVmD9HEY4MzAZnNLzi
+5EUsbtWV1/Sui/tjnojbnCxq7uncPvBZNiMS8voKsFIXXjewhctO+VNLRBbvM18M
+JOaK/QJVeR8lwvvsDzly9QcvA8YPpyOZVr83MXl3nk0fkGT0rjZzHzvNhvL0zWSo
+LbGK3K95XCBzNHuOUqJCMlRDcdgW43WYMzzpLvMOGSxlm36n4EyncCo4bDMl9OMP
+mp78cAZSaannJqbKrGZp4bNzIgnoupPeo3DurGIiTvr0weuQZHymNlqZAg0EV/eG
+ZgEQALphDJCKCF/WZ5TWAbw7KOV9GnsowkkebG0GO0fl9a0zwhYJ2ZmcKhSA1skc
+hgPYWfeH+KNfj9L/j3aZvKZp2ZbbgPuZh1784G4BAKZ9+PKkEJRLkaFmZkXS270O
+DhyflnH6ZyGe3ffSbtPpxSt5ZHX8KIFcg0lZDohK7A7wwNb85Iok3KtF2t/gervc
+8MGRKQcrdrBdUfId/Kl4k/jh+oFZsb6PjfvFYkUSqdVIiEyWTnL6pLtOhlOaPJur
+QDzy18xnO1K5S/oICkZVtL/PFKnJisVtJbW9kr2CWtnaomxZlgIGW3rXtbU/mdZg
+ik/pPY0s6bHoeT2iRAv5NWt84awGR0wEj8oGVX1KXFAWXAg9KPbhrt9SOmM/zYHH
+yx0StQz8NESevt6ktTzyN0vFrNbLAj7KH6sR8TgD72jGlybHAm2nM/vaxWWhaFpU
+uNYNtpIn4Au+QWv0+Y5rbufGdFi3vsPkAxa22ePKha9Lx8nkFyb43u1utUE5GqTr
+VYIkOa4r2CEKBD9icLV7s8YSHFRVh8kRT6b40gA9w4TSW/ecdJMC6d+kjMfAj1NO
+R30qPisfPG1Bb62ZOh4Y7SCGcGPqnvjWvMxh1UcRHmKy8PfpWKPdtbR/6oki0htw
+OnCI8wFQ4g8HmxpnOfu2hc0yj5+ZgA3jileTfwiadkzkXSWNABEBAAG0JUdpYnNv
+biBGYWhuZXN0b2NrIDxnaWJmYWhuQGdtYWlsLmNvbT6JAjkEEwEIACMFAlf3hmYC
+GwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCwH7uSghxYerFZD/4yuqSl
+Hdrm+1PPnen6mBT/VcBGvz88hJMgsD3r0Vlnidpc/JSlggJWdUyCziwW7tfwPkjS
+1JSZUMPXNAffn53xKDF3nYCCseDWBdrwPJzc09qYbXIPmtUH/5B2ETzfiSW+z+Ub
+9hmsBJDVWtEfrFWZ0ECcYQ/X2MnbFJAYqJ3OzejRKPc5nyAyVZFgnGbL6eeG64oZ
+lZvpT5xBc/xsxPN/hHGGCaLrqyeYvd9999rxgaD+EyJbabRtfL3+f2MBleOKHMYO
+KeA9i/pWHas7yU9b7ChVZf9L/n2ejVDuYJbskQzH68PyS55P85i+EOBcLKWpKSIP
+ORpNDO70dFMi3Q4NIhzSBXWvqsWkqgGW6gkXg9Fdu3BiIz72EdP+UWaHhFesvgq9
+u3WQ7BOEJZASJHagN3w7e/hGD+Y10eNdpJSceZMNqBkTDtAu4gCVAIBAr88g3urQ
+JWnNr8DfmuVZy6T3lHHlNhy09+BPdXMNe2rCy23HNKx54M3FJRfrNHYyoAyDw8tI
+g3izFJDkPAOgWMZ7MO3RIXP5/Wxks5fVlDq+pJ4YrhLczS2bzoxo0PcXwh7WjWD9
+PGtkdVpJh0teGmQTE4TRNbam97QSEEMuMNzqe0T+S9Kcymii7rEYDVCn8Gu2og0E
+6rXrq5muYKO67P6e6WSiv9PdFvN2TFMNluxwUrkCDQRX94ZmARAAp8o5b/A2nI5E
+BaXq1fGWWEUV8IQdlDLwZnmWCj56Bocs1c2swcsbmw4HlHDRMhIS3tHFYnpvXMwk
+hvZbKG8bkCpADRnwT6gvqmwoSiCQRaSuHrs2PbcGeYNCVjmuPMvH8yP2VWJaGxye
+rtEkNRcrradu0OdkYhtay2ppZ1EUDGG/ensm8MCuNMR01Btk/DJOpyamJTsGdfFs
+DG0mNTfYOD1EVZ2YrjO5GohWIBOy08XwxYPwPP/EF02jSgBbJ3hXA2wsc2OozLz/
+iPZA1Ok0PKpwGvfZoJq9TckzGUGHVuEBjqMoQm7MMVYC0vo1X26He8RsqU1Jby/X
+OBJS0LLmYP7+RTpEBhJcicUNrl/1Np/8NVR8U0A4LwHCDT/yctSMMZm+zQ+T6T1x
+pXtyQx/oNNGScc5rX48766q/6LNYfXTktSVEr1kPpuA8brHenT0zX1C5nTn9DTx/
+XWVvn0jVAnriR07PVLjlW2UR8L7puwKsQJZ/oWTpy8gVvfnMRuUDLdmxktIyT8yR
+ltGUAWHrkA+b7Phj3RGP5mWq0FgadOBaHsE+lyhZ8sdx4cdFXja9tDeVg3NQ9iCi
+kq0DcA3WQRyT8Y48Wpc4eF4MKiROnEudIKNotwdQS9yQwyILgGMLsoyf1ZCCercW
+OWM0pGV3xWGRcu8If3DFmPEL+e1FQl8AEQEAAYkCHwQYAQgACQUCV/eGZgIbDAAK
+CRCwH7uSghxYerY9EACRtMAzk3Ax3oFTvZi6HLemr6/ptsgppqq9XcsN9F0AEDrs
+BaYQK7kHMteX4V4oIQOxrQnZZf1/p+14CFrvhzYq35QxfoaMdV4wX1yG+wF/uhtu
+mCBHABhMMnWAZmfT6SbiAxny8FcmgW3Sf+OQeKLcTAP59tEOiUFTE39OYSPnVDxR
+dWQHAMJupxrtsdrzho5hZjlLN+asj3YU5twztHr7pk2iZzPKNw4ZBLjrj1NKi4Ly
+66KWiJyOFn5PS5texF9sCYw59kedG/kaBbxz4O/5xSYwvW7zGFAOX/cLehpoDwhh
+mwmIRJm85brDfjvXldO8ZQZi8GWdKD4WdnRXVUQyRntux2bRseiXkTfN/NTrFYPr
+gZvYmNflMdSQKqP1P0rjQpHabfWR6aSqzjtDSKdfj09HXWs3NbvpVnLBOIvInggt
+PCU7lWaeIyM0rqvCgl8pRVWWJ0/CCsuTQ71FigPd9ifvu4DIdgj+QAIOGpkEre+u
+4RAaaXzvzIRhDtELzsVp7UYGOzZ6TD1M35fmnqu8/jy4I/jOQ0H/6CKBr0tfyzjy
+luh/yZ6zHR8uYECpweWWG4T1PhbGUvq5GwB+nODHR1Ag9qk4efHq187DNJTNkGkp
+XD/6E+tsVumhHOmMNIB7Rd4+6JNxVsZkhC2OwCAmwrq36YYemlZOuL8qhmYVIpkC
+DQRYhpLWARAA6AT3VJMFQPXTVYs9sMW/nt14mkGnrEh70UXg6TqVkO8rsNsi3cXl
+Hq+iHsXKI3v4tfMfng+xRdYIvi6NidS1SEXIUwsdrxrPT9omFtYsqQkZfPQu9rKt
+Gh8+koltDgHLZORTibZTsnLmKRq2vGyqsk5PHp9e7OhMoxHL0OeBVmnK4i8+n5NW
+Z1d5gSIstNyFhDmlVMSL5rgTPDEEVF2J/wcVF9VaaNKqan/arV0e0G4lMo0zf3R1
+M978WE9uumnxLDphToHVNi8LGbDSgElJx7EczTHjKkyKKRA9zC1R9SL8bABMpZQN
+HxB1daQhCPLnuhm7359qNK/hslwGRQe6ScHkiSpxeJJry34+muaP1ARtSVkAQWRZ
+Z46QmReYS/FupXXDI9HghA9jxGxRohIq5Dc48lNbFHrEpbi7LznOH869D2BQTRgJ
+/UjU5RKuRaQrm8KbJirGQ6v1FmmPX0oLgv1IUXuqJJ7cubMCrZKeISq60z48FFUz
+f38HYIhyhfzSKL3T/r4SLZL9+KQXKhfPbnT17bAx7cqNQZte3sxV1Rl1kp8H8KfS
+nS1ZyFxmynts9XKZrzNwCNUGlqZdpwPm132BVWqx4U6fp1rOT80lFxCLQ/Sta0lG
+vVc+qEMdVqbDPWWYt6xeLCoUkXNq9VQVKHhE0Iz84ytM7EqnQOFcBgUAEQEAAbQj
+SXRhbG8gQS4gQ2FzYXMgPG1lQGl0YWxvYWNhc2FzLmNvbT6JAiIEEgEIAAwFAlia
+OQsFgweGH4AACgkQ5zvGQcwR9MjBjxAAtLf1vcDkOsYtU+RCrpfWotwaFoYLRDlc
+DIjFLO1bX2TIy1YFXDA9c0x8J5Pbt3wmhtkFojgmaGqvWpCJkb7lnudx9Qi/a2gx
+ys7HS9heaUDoYM8kgeXVHJe1UcVi4veOthg8wp/hQJDUuKba1Xw9ujVi1PqbBNCw
+5ALJK1iNcFmgjtk4Ab2rgCFHqTr/KOUNtYLs/uI9YOHGnzUAW0SrLgHQFD2B6TWv
+kFBsRkR+LrY1xGinzt2V34BWmTgIvivC/DNdibhVoU2tSEj0VFkJuyKNSEj2PLA3
+lzaDteCezITqkn0TFpWVkl0NH8c39WV9d9OE60zvTPKfWYteio7VKIQpnCIMGhwr
+ojt0RD0EEznmc5UV+RWKRcoWk7B2BqsZxFp94XRBqFjVOmWeK/hMZxoMl7I0V4gk
+NyLbPMRyi87ZrVmof+wv7B7Vs8eBKiPDQu9W53bozX4bSf2oyZ3EWSPg+GCCSFc6
+NbBfkq8kdyA5LTKGRgxYZseiKaGvAP20AgRVSYhikl1zlcnGtnjjv6PeAAb4PlQc
+ANhLLZ27XUVOWAtUdm9WQyGC7ONNKF7VbR1ikT04JaQMHb7a+cSiLlsV27B+9gk0
+bqIDSr8LOT1EDYFb4Xpw1eWCHlepbCFGl0MHOSuOzr4MXgZAjPiGrW6fCk7zCFlc
+bjfaMmOafUSJAjgEEwEIACwFAliGktYJECPv7+k8TP/+AhsDBQkeEzgAAhkBBAsH
+CQMFFQgKAgMEFgABAgAAx9IQANh9VjRLD8cLrsjVgKeC8/ncD6cpk7OqbH5vKjse
+56RK0ABpU3ZSS9rzJdT+h3vTnIgRKCUBaw2xcv7oN+GCNT3VJ7MmyF4NyDTOjBiP
+o/Wvck1C81n2t4+05INt6AL7Zn5HfeEGWVLo7zbzReCXdm3kmoifYxxwIEnPZeJa
+Ly3nJRUlTMWm59lfU88q0RCyBZdI9+muiD7voSIR5Nu6Uf/Erw+YryXcBLlRIG9k
+1nML5cAcH1qhvhyu9Fj6B2SeDcBHK37KyxiOmsIY5H1KsX7ijdR1MrLUSIbqODpi
+pN4qFHPR+IzDyAWXs2QdEAEruh33SCzYX1rcVpVQU0buARBlGK+XzxwIXUn/V1Ku
+2bTRl5eKbgvn4bB6V9fxrUvN3g/mdmB/pGLCt9imEqPcVoiApnLbTJ6HIIFT/rNe
+RomqK5iDNG27HjGxofIKbkqhFJ2j/JEBJKpG4DHrVEkup6GTxzAzCHLr6Rkmyp32
+LQUq5yrV6u7e7tV6HoyaEDo6ywafAuBTfh3DAcfMandkpFdujGVniGrj9PJ8Ux4/
+Jxu1pN151uHifMITuVCkmjrS6gfFzCoSzcQV7yjNecvnse5ipCcyo6QJ2yCkwK+f
+u+VcWy5JVw+FOvS44tgGLcsBexPPOtZPxVeZ1GCMVjPawNMjOjmB0jLBA2lmvDJk
+iSumuQINBFiGktYBEACvROrJShVGFXjlldqr+DpTMsN7HBirnM7v6esapd1HGJNB
+QNhK16vGC6NwD7fpOJ5bn0AzE1RPNKZ/CXOEoCne70M4XuzskUlqR74kwvRcxkV1
+WAHN+ABUIOXmfIVQZiQ9bM8FlUFFoW75MXDd8UeaOnMaxOMfYMQn0zCk+0w2o6UH
+KtyTJEQ6L9XfFePaxTqxpWlWgDL50JeLPcqQbF5av851xppPqRrrSMat0E4T5I4h
+W2m96A4KTCXt0TyrcziYSJ1elhiXZpgJ+ZlwEpk3lD32JDjar49gpcx2Nno4qj2i
+Mdx62D2/OxpckLoRNaj25sdgC7JZBzmGGwbuSbE1q5QTwjMInbNccsUmFNECWPBM
+vpJK/RC+/Htz8q373t/45W4d7zXNgQxlAKF99NVhZ1EBD5CSy3Q6qPqdrbdJh3Dl
+VH/KnFl+hLwxsnjV0VhXPJgsg62TzIGDlS/N6N5C62lj9cCW6biek4QULgN1/Ni0
+hedK6aBdzDtpS4CR1s1rca+rgqimrgOtl6qJW3+MSxtiLsDLLDAYsZdhWnuBhUB7
+XIyBBtNir5rFibLNjkdxUF4Ug89U99m8vNOFiTaOBjy3rTvF9XtEqY3qg/KSUf75
+Wwp4ys1LuA7RoKkNET/WXsGiU47eS0dD6DOQmSKrrAIPfqseW9phJD+hbbrPWQAR
+AQABiQI1BBgBCAApBQJYhpLWCRAj7+/pPEz//gIbDAUJHhM4AAQLBwkDBRUICgID
+BBYAAQIAAAsJD/0aaHE3/txaeMU1bfDs0nWIBmSrqhVvHEvyzIzWK30D6Nfmv7bP
+81hILfa2PfxjIgOCHtdA4xtAqV3G2/+7UeWLKlv0tuiZmx8p8mQkA6MsOnuDR4sW
+TQ8Vd0arkTyzlBOwvz/SL8YXDSxWeSAgSSbQ+Ri7XrwwE+BjcWSeKabqmgQ4Hp7L
+bQ0IvQ5f+hBWfLvugCgHI/7PRPhQbpallIdQLE7Qoavl8aDG8AqeN6tBLfjn19RR
+kottbntbUlSG+WoYk2hYiydZGRlKwkNfcsuaaNF0p9pH0HR6RrsknrqxT+l8DaLm
+4BwIMFXjnSuCEPfiJ3kV4bzRRND7iOfokdjJioj4ChrFR6461kDl7zqdkGIqU45q
+Q+aklo0WTFvfiiTrsMXLpIhrCNn8oGST0eM8u3GCfmMFbxhO897NTDYnz1wOMcXu
+MVqJ489aDKKvEV8zLljjUjJiZVDnbq0QE1abzVdmBtJRA3732buBwrzlHL5z4Bca
+Zwe1bQsPHAzyC9EpJn7PtJcdDkfBk1PsGWx9cmPvqvX1Xbm8UoVie0x+wge5SM77
+5JeDdR41lHndWw67Ry59GgQapkOoargTqKyNYMYAxZBqKvdvIhS8jdAt5ldagJpV
+quRCpSq91OAxMG0TFGCBXKjtqzsHk58WtAalk49TvO/0r0inTnfWSORiKQ==
+=jVEm
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix
index 22eb772da1f95..3f0ab5ff50672 100644
--- a/pkgs/development/web/nodejs/nodejs.nix
+++ b/pkgs/development/web/nodejs/nodejs.nix
@@ -1,11 +1,14 @@
 { stdenv, fetchurl, openssl, python2, zlib, libuv, utillinux, http-parser
 , pkgconfig, which
+# Updater dependencies
+, writeScript, coreutils, gnugrep, jq, curl, common-updater-scripts, nix
+, gnupg
 , darwin ? null
 }:
 
 with stdenv.lib;
 
-{ enableNpm ? true, version, sha256, patches }:
+{ enableNpm ? true, version, sha256, patches } @args:
 
 let
 
@@ -59,6 +62,8 @@ in
 
     setupHook = ./setup-hook.sh;
 
+    pos = builtins.unsafeGetAttrPos "version" args;
+
     inherit patches;
 
     preBuild = optionalString stdenv.isDarwin ''
@@ -84,6 +89,12 @@ in
       cp -r ${concatStringsSep " " copyLibHeaders} $out/include/node
     '';
 
+    passthru.updateScript = import ./update.nix {
+      inherit writeScript coreutils gnugrep jq curl common-updater-scripts gnupg nix;
+      inherit (stdenv) lib;
+      majorVersion = with stdenv.lib; elemAt (splitString "." version) 0;
+    };
+
     meta = {
       description = "Event-driven I/O framework for the V8 JavaScript engine";
       homepage = https://nodejs.org;
diff --git a/pkgs/development/web/nodejs/update-keyring b/pkgs/development/web/nodejs/update-keyring
new file mode 100755
index 0000000000000..39737758e7654
--- /dev/null
+++ b/pkgs/development/web/nodejs/update-keyring
@@ -0,0 +1,18 @@
+#!/usr/bin/env nix-shell
+#! nix-shell --pure -i bash -p coreutils findutils gnupg curl
+
+# https://github.com/nodejs/node#release-team
+HOME=`mktemp -d`
+keyserver="pool.sks-keyservers.net"
+cat << EOF | xargs -P 4 -n 1 gpg --keyserver $keyserver --recv-keys
+94AE36675C464D64BAFA68DD7434390BDBE9B9C5
+FD3A5288F042B6850C66B31F09FE44734EB7990E
+71DCFD284A79C3B38668286BC97EC7A07EDE3FC1
+DD8F2338BAE7501E3DD5AC78C273792F7D83545D
+C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8
+B9AE9905FFD7803F25714661B63B535A4C206CA9
+56730D5401028683275BD23C23EFEFE93C4CFFFE
+77984A986EBC2AA786BC0F66B01FBB92821C587A
+EOF
+
+gpg -a --export > nodejs-release-keys.asc
diff --git a/pkgs/development/web/nodejs/update.nix b/pkgs/development/web/nodejs/update.nix
new file mode 100644
index 0000000000000..9ff11982b6568
--- /dev/null
+++ b/pkgs/development/web/nodejs/update.nix
@@ -0,0 +1,27 @@
+{ lib
+, writeScript
+, coreutils
+, curl
+, gnugrep
+, jq
+, gnupg
+, common-updater-scripts
+, majorVersion
+, nix
+}:
+
+writeScript "update-nodejs" ''
+  PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep jq gnupg nix ]}
+
+  HOME=`mktemp -d`
+  cat ${./nodejs-release-keys.asc} | gpg --import
+
+  tags=`curl --silent https://api.github.com/repos/nodejs/node/git/refs/tags`
+  version=`echo $tags | jq -r '.[] | select(.ref | startswith("refs/tags/v${majorVersion}")) | .ref' | sort --version-sort  | tail -1 | grep -oP "^refs/tags/v\K.*"`
+
+  curl --silent -o $HOME/SHASUMS256.txt.asc https://nodejs.org/dist/v''${version}/SHASUMS256.txt.asc
+  hash_hex=`gpgv --keyring=$HOME/.gnupg/pubring.kbx --output - $HOME/SHASUMS256.txt.asc | grep -oP "^([0-9a-f]{64})(?=\s+node-v''${version}.tar.xz$)"`
+  hash=`nix-hash --type sha256 --to-base32 ''${hash_hex}`
+
+  update-source-version nodejs-${majorVersion}_x "''${version}" "''${hash}"
+''
diff --git a/pkgs/development/web/nodejs/v9.nix b/pkgs/development/web/nodejs/v9.nix
index af3a8b4d22fd2..f17c5f6d26c93 100644
--- a/pkgs/development/web/nodejs/v9.nix
+++ b/pkgs/development/web/nodejs/v9.nix
@@ -5,7 +5,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "9.6.1";
-    sha256 = "04hi7lwdizwqqbyi77f4z12gnsh673h92brmbssrmw5kjx6h4k5q";
+    version = "9.7.1";
+    sha256 = "0hlhj817s5bji2qdghxkwxjj40kwkyzgax4zyv32r5pbl6af3yh6";
     patches = lib.optionals stdenv.isDarwin [ ./no-xcode-v7.patch ];
   }
diff --git a/pkgs/games/0ad/game.nix b/pkgs/games/0ad/game.nix
index a056f5880a4c5..4d5a4fe8379c1 100644
--- a/pkgs/games/0ad/game.nix
+++ b/pkgs/games/0ad/game.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, callPackage, perl, fetchurl, python2
 , pkgconfig, spidermonkey_38, boost, icu, libxml2, libpng
 , libjpeg, zlib, curl, libogg, libvorbis, enet, miniupnpc
-, openal, mesa, xproto, libX11, libXcursor, nspr, SDL, SDL2
+, openal, libGLU_combined, xproto, libX11, libXcursor, nspr, SDL, SDL2
 , gloox, nvidia-texture-tools
 , withEditor ? true, wxGTK ? null
 }:
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     spidermonkey_38 boost icu libxml2 libpng libjpeg
     zlib curl libogg libvorbis enet miniupnpc openal
-    mesa xproto libX11 libXcursor nspr SDL2 gloox
+    libGLU_combined xproto libX11 libXcursor nspr SDL2 gloox
     nvidia-texture-tools
   ] ++ lib.optional withEditor wxGTK;
 
diff --git a/pkgs/games/adom/default.nix b/pkgs/games/adom/default.nix
index 016c965b6c0b1..fd575975fed55 100644
--- a/pkgs/games/adom/default.nix
+++ b/pkgs/games/adom/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, patchelf, zlib, libmad, libpng12, libcaca, mesa, alsaLib, libpulseaudio
+{ stdenv, fetchurl, patchelf, zlib, libmad, libpng12, libcaca, libGLU_combined, alsaLib, libpulseaudio
 , xorg }:
 
 assert stdenv.system == "x86_64-linux";
@@ -7,7 +7,7 @@ let
   inherit (xorg) libXext libX11;
 
   lpath = "${stdenv.cc.cc.lib}/lib64:" + stdenv.lib.makeLibraryPath [
-      zlib libmad libpng12 libcaca libXext libX11 mesa alsaLib libpulseaudio];
+      zlib libmad libpng12 libcaca libXext libX11 libGLU_combined alsaLib libpulseaudio];
 
 in
 stdenv.mkDerivation rec {
diff --git a/pkgs/games/alienarena/default.nix b/pkgs/games/alienarena/default.nix
index 0c95aa9889436..1b23d1ccd6d20 100644
--- a/pkgs/games/alienarena/default.nix
+++ b/pkgs/games/alienarena/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, libjpeg, libX11, libXxf86vm, curl, libogg
-, libvorbis, freetype, openal, mesa }:
+, libvorbis, freetype, openal, libGLU_combined }:
 
 stdenv.mkDerivation rec {
   name = "alienarena-7.65";
@@ -11,12 +11,12 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libjpeg libX11 curl libogg libvorbis
-                  freetype openal mesa libXxf86vm ];
+                  freetype openal libGLU_combined libXxf86vm ];
 
   patchPhase = ''
     substituteInPlace ./configure \
       --replace libopenal.so.1 ${openal}/lib/libopenal.so.1 \
-      --replace libGL.so.1 ${mesa}/lib/libGL.so.1
+      --replace libGL.so.1 ${libGLU_combined}/lib/libGL.so.1
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/amoeba/default.nix b/pkgs/games/amoeba/default.nix
index 4e5f85f7d5ae7..491b20d996908 100644
--- a/pkgs/games/amoeba/default.nix
+++ b/pkgs/games/amoeba/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, amoeba-data, alsaLib, expat, freetype, gtk2, libvorbis, mesa_glu, pkgconfig }:
+{ stdenv, fetchurl, amoeba-data, alsaLib, expat, freetype, gtk2, libvorbis, libGLU, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "amoeba-${version}-${debver}";
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ alsaLib expat freetype gtk2 libvorbis mesa_glu ];
+  buildInputs = [ alsaLib expat freetype gtk2 libvorbis libGLU ];
 
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man1/
diff --git a/pkgs/games/armagetronad/default.nix b/pkgs/games/armagetronad/default.nix
index 0fb75b3d345b7..5318108c49136 100644
--- a/pkgs/games/armagetronad/default.nix
+++ b/pkgs/games/armagetronad/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL, libxml2, SDL_image, libjpeg, libpng, mesa, zlib }:
+{ stdenv, fetchurl, SDL, libxml2, SDL_image, libjpeg, libpng, libGLU_combined, zlib }:
 
 let
   versionMajor = "0.2.8";
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   configureFlags = [ "--disable-etc" ];
-  buildInputs = [ SDL SDL_image libxml2 libjpeg libpng mesa zlib ];
+  buildInputs = [ SDL SDL_image libxml2 libjpeg libpng libGLU_combined zlib ];
 
   meta = with stdenv.lib; {
     homepage = http://armagetronad.org;
diff --git a/pkgs/games/arx-libertatis/default.nix b/pkgs/games/arx-libertatis/default.nix
index e6594adde5528..e000f743173b3 100644
--- a/pkgs/games/arx-libertatis/default.nix
+++ b/pkgs/games/arx-libertatis/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, zlib, boost,
-  openal, glm, freetype, mesa, glew, SDL2,
+  openal, glm, freetype, libGLU_combined, glew, SDL2,
   dejavu_fonts, inkscape, optipng, imagemagick }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cmake zlib boost openal glm
-    freetype mesa glew SDL2 inkscape
+    freetype libGLU_combined glew SDL2 inkscape
     optipng imagemagick
   ];
 
diff --git a/pkgs/games/astromenace/default.nix b/pkgs/games/astromenace/default.nix
index 0a7218bba72ce..737f31d6e105b 100644
--- a/pkgs/games/astromenace/default.nix
+++ b/pkgs/games/astromenace/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, cmake, xlibsWrapper, mesa, SDL, openal, freealut, libogg, libvorbis }:
+{ fetchurl, stdenv, cmake, xlibsWrapper, libGLU_combined, SDL, openal, freealut, libogg, libvorbis }:
 
 stdenv.mkDerivation rec {
   version = "1.3.2";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1rkz6lwjcd5mwv72kf07ghvx6z46kf3xs250mjbmnmjpn7r5sxwv";
   };
 
-  buildInputs = [ cmake xlibsWrapper mesa SDL openal freealut libogg libvorbis ];
+  buildInputs = [ cmake xlibsWrapper libGLU_combined SDL openal freealut libogg libvorbis ];
 
   buildPhase = ''
     cmake ./
diff --git a/pkgs/games/bitsnbots/default.nix b/pkgs/games/bitsnbots/default.nix
index 95d6365b99db6..94a1e6ee91ab6 100644
--- a/pkgs/games/bitsnbots/default.nix
+++ b/pkgs/games/bitsnbots/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL, lua, mesa }:
+{ stdenv, fetchurl, SDL, lua, libGLU_combined }:
 
 stdenv.mkDerivation rec {
   name = "bitsnbots-20111230";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     ln -s $out/share/${name}/bitsnbots $out/bin
   '';
 
-  buildInputs = [ SDL lua mesa ];
+  buildInputs = [ SDL lua libGLU_combined ];
 
   meta = {
     description = "Simple puzzle game with moving robots";
diff --git a/pkgs/games/blackshades/default.nix b/pkgs/games/blackshades/default.nix
index 42a1b19c4d7ad..4b874c954b0a2 100644
--- a/pkgs/games/blackshades/default.nix
+++ b/pkgs/games/blackshades/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchsvn, SDL, mesa, openal, libvorbis, freealut, SDL_image}:
+{stdenv, fetchsvn, SDL, libGLU_combined, openal, libvorbis, freealut, SDL_image}:
 
 stdenv.mkDerivation rec {
   name = "blackshades-svn-110";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   NIX_LDFLAGS = "-lSDL_image";
 
-  buildInputs = [ SDL SDL_image mesa openal libvorbis freealut ];
+  buildInputs = [ SDL SDL_image libGLU_combined openal libvorbis freealut ];
 
   patchPhase = ''
     sed -i -e s,Data/,$out/opt/$name/Data/,g \
diff --git a/pkgs/games/blackshadeselite/default.nix b/pkgs/games/blackshadeselite/default.nix
index d7e2cf4894dd4..2f503e02ec20d 100644
--- a/pkgs/games/blackshadeselite/default.nix
+++ b/pkgs/games/blackshadeselite/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchsvn, SDL, mesa, openal, libvorbis, freealut, SDL_image, popt}:
+{stdenv, fetchsvn, SDL, libGLU_combined, openal, libvorbis, freealut, SDL_image, popt}:
 
 stdenv.mkDerivation rec {
   name = "blackshades-elite-svn-29";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = "-lSDL_image";
   NIX_CFLAGS_COMPILE = "-fpermissive";
 
-  buildInputs = [ SDL SDL_image mesa openal libvorbis freealut popt ];
+  buildInputs = [ SDL SDL_image libGLU_combined openal libvorbis freealut popt ];
 
   patchPhase = ''
     sed -i -e s,Data/,$out/opt/$name/Data/,g \
diff --git a/pkgs/games/blobby/default.nix b/pkgs/games/blobby/default.nix
index 35f5699a231b6..35a2bfaed803f 100644
--- a/pkgs/games/blobby/default.nix
+++ b/pkgs/games/blobby/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, SDL2, SDL2_image, mesa, cmake, physfs, boost, zip, zlib
+{stdenv, fetchurl, SDL2, SDL2_image, libGLU_combined, cmake, physfs, boost, zip, zlib
 , pkgconfig, unzip}:
 stdenv.mkDerivation rec {
   version = "1.0";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [SDL2 SDL2_image mesa cmake physfs boost zip zlib
+  buildInputs = [SDL2 SDL2_image libGLU_combined cmake physfs boost zip zlib
     unzip];
 
   preConfigure=''
diff --git a/pkgs/games/btanks/default.nix b/pkgs/games/btanks/default.nix
index 3f490b2976c19..8379e1aa7bb28 100644
--- a/pkgs/games/btanks/default.nix
+++ b/pkgs/games/btanks/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, scons, pkgconfig, SDL, mesa, zlib, smpeg
+{ stdenv, fetchurl, fetchpatch, scons, pkgconfig, SDL, libGLU_combined, zlib, smpeg
 , SDL_image, libvorbis, expat, zip, lua5_1 }:
 
 stdenv.mkDerivation rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ scons pkgconfig ];
-  buildInputs = [ SDL mesa zlib smpeg SDL_image libvorbis expat zip lua5_1 ];
+  buildInputs = [ SDL libGLU_combined zlib smpeg SDL_image libvorbis expat zip lua5_1 ];
 
   NIX_CFLAGS_COMPILE = "-I${SDL_image}/include/SDL";
 
diff --git a/pkgs/games/bzflag/default.nix b/pkgs/games/bzflag/default.nix
index 9962e0e71054d..332e84402bb17 100644
--- a/pkgs/games/bzflag/default.nix
+++ b/pkgs/games/bzflag/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, pkgconfig
-, curl, SDL2, mesa, glew, ncurses, c-ares }:
+, curl, SDL2, libGLU_combined, glew, ncurses, c-ares }:
 
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ curl SDL2 mesa glew ncurses c-ares ];
+  buildInputs = [ curl SDL2 libGLU_combined glew ncurses c-ares ];
 
   meta = with lib; {
     description = "Multiplayer 3D Tank game";
diff --git a/pkgs/games/commandergenius/default.nix b/pkgs/games/commandergenius/default.nix
index b2a0b28842547..f77dfe8ba945d 100644
--- a/pkgs/games/commandergenius/default.nix
+++ b/pkgs/games/commandergenius/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, SDL2, SDL2_image, pkgconfig
-, libvorbis, mesa_noglu, boost, cmake }:
+, libvorbis, libGL, boost, cmake }:
 
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "07vxg8p1dnnkajzs5nifxpwn4mdd1hxsw05jl25gvaimpl9p2qc8";
   };
 
-  buildInputs = [ SDL2 SDL2_image mesa_noglu boost libvorbis ];
+  buildInputs = [ SDL2 SDL2_image libGL boost libvorbis ];
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
diff --git a/pkgs/games/construo/default.nix b/pkgs/games/construo/default.nix
index 0c9e83cdb9ab2..7db6413673111 100644
--- a/pkgs/games/construo/default.nix
+++ b/pkgs/games/construo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libX11, zlib, xproto, mesa ? null, freeglut ? null }:
+{ stdenv, fetchurl, libX11, zlib, xproto, libGL ? null, freeglut ? null }:
 
 stdenv.mkDerivation rec {
   name = "construo-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ libX11 zlib xproto ]
-    ++ stdenv.lib.optional (mesa != null) mesa
+    ++ stdenv.lib.optional (libGL != null) libGL
     ++ stdenv.lib.optional (freeglut != null) freeglut;
 
   preConfigure = ''
diff --git a/pkgs/games/crack-attack/default.nix b/pkgs/games/crack-attack/default.nix
index 3fceb796dde53..d8de785ef1f8f 100644
--- a/pkgs/games/crack-attack/default.nix
+++ b/pkgs/games/crack-attack/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gtk2, freeglut, SDL, mesa, libXi, libXmu}:
+{ stdenv, fetchurl, pkgconfig, gtk2, freeglut, SDL, libGLU_combined, libXi, libXmu}:
 
 stdenv.mkDerivation {
   name = "crack-attack-1.1.14";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk2 freeglut SDL mesa libXi libXmu ];
+  buildInputs = [ gtk2 freeglut SDL libGLU_combined libXi libXmu ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/pkgs/games/crawl/default.nix b/pkgs/games/crawl/default.nix
index 39d98f4f8b560..66e199a3f0d2f 100644
--- a/pkgs/games/crawl/default.nix
+++ b/pkgs/games/crawl/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, which, sqlite, lua5_1, perl, zlib, pkgconfig, ncurses
-, dejavu_fonts, libpng, SDL2, SDL2_image, mesa, freetype, pngcrush, advancecomp
+, dejavu_fonts, libpng, SDL2, SDL2_image, libGLU_combined, freetype, pngcrush, advancecomp
 , tileMode ? false
 }:
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   # Still unstable with luajit
   buildInputs = [ lua5_1 zlib sqlite ncurses ]
-                ++ lib.optionals tileMode [ libpng SDL2 SDL2_image freetype mesa ];
+                ++ lib.optionals tileMode [ libpng SDL2 SDL2_image freetype libGLU_combined ];
 
   preBuild = ''
     cd crawl-ref/source
diff --git a/pkgs/games/crrcsim/default.nix b/pkgs/games/crrcsim/default.nix
index 5d387e19928ee..98baafbb2fd27 100644
--- a/pkgs/games/crrcsim/default.nix
+++ b/pkgs/games/crrcsim/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mesa, SDL, SDL_mixer, plib, libjpeg }:
+{ stdenv, fetchurl, libGLU_combined, SDL, SDL_mixer, plib, libjpeg }:
 let
   version = "0.9.13";
 in
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    mesa SDL SDL_mixer plib libjpeg
+    libGLU_combined SDL SDL_mixer plib libjpeg
   ];
 
   patches = [
diff --git a/pkgs/games/dhewm3/default.nix b/pkgs/games/dhewm3/default.nix
index 4bae8e1d58ad8..0d0cb8a11fddf 100644
--- a/pkgs/games/dhewm3/default.nix
+++ b/pkgs/games/dhewm3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, SDL2, mesa, zlib, libjpeg, libogg, libvorbis
+{ stdenv, fetchFromGitHub, cmake, SDL2, libGLU_combined, zlib, libjpeg, libogg, libvorbis
 , openal, curl }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1s64xr1ir4d2z01fhldy577b0x80nd1k6my7y1hxp57lggr8dy5y";
   };
 
-  # Add mesa linking
+  # Add libGLU_combined linking
   patchPhase = ''
     sed -i 's/\<idlib\()\?\)$/idlib GL\1/' neo/CMakeLists.txt
   '';
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ SDL2 mesa zlib libjpeg libogg libvorbis openal curl ];
+  buildInputs = [ SDL2 libGLU_combined zlib libjpeg libogg libvorbis openal curl ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix
index ca64045b185b2..f9a61ddbf8b2c 100644
--- a/pkgs/games/dwarf-fortress/dfhack/default.nix
+++ b/pkgs/games/dwarf-fortress/dfhack/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchgit, cmake, writeScriptBin, callPackage
 , perl, XMLLibXML, XMLLibXSLT, zlib
-, enableStoneSense ? false,  allegro5, mesa
+, enableStoneSense ? false,  allegro5, libGLU_combined
 }:
 
 let
@@ -48,7 +48,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ];
   # We don't use system libraries because dfhack needs old C++ ABI.
   buildInputs = [ zlib ]
-             ++ lib.optionals enableStoneSense [ allegro5 mesa ];
+             ++ lib.optionals enableStoneSense [ allegro5 libGLU_combined ];
 
   preConfigure = ''
     # Trick build system into believing we have .git
diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
index 8cdfc426d8304..aaef90954b12f 100644
--- a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
+++ b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     description = "Tool to manage dwarves in in a running game of Dwarf Fortress";
     maintainers = with maintainers; [ the-kenny abbradar bendlas ];
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" "i686-linux" ];
     homepage = https://github.com/Dwarf-Therapist/Dwarf-Therapist;
   };
 }
diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix
index 8d7a5a0d1a9db..89e98f4b45189 100644
--- a/pkgs/games/dwarf-fortress/unfuck.nix
+++ b/pkgs/games/dwarf-fortress/unfuck.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake
-, mesa_noglu, libSM, SDL, SDL_image, SDL_ttf, glew, openalSoft
+, libGL, libSM, SDL, SDL_image, SDL_ttf, glew, openalSoft
 , ncurses, glib, gtk2, libsndfile, zlib
 }:
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake ];
   buildInputs = [
     libSM SDL SDL_image SDL_ttf glew openalSoft
-    ncurses gtk2 libsndfile zlib mesa_noglu
+    ncurses gtk2 libsndfile zlib libGL
   ];
 
   installPhase = ''
diff --git a/pkgs/games/dxx-rebirth/default.nix b/pkgs/games/dxx-rebirth/default.nix
index 9645a89b3b2c6..3b05ed142929a 100644
--- a/pkgs/games/dxx-rebirth/default.nix
+++ b/pkgs/games/dxx-rebirth/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, scons, pkgconfig
-, SDL, SDL_mixer, mesa, physfs
+{ stdenv, fetchurl, fetchpatch, scons, pkgconfig
+, SDL, SDL_mixer, libGLU_combined, physfs
 }:
 
 let
@@ -17,12 +17,34 @@ in stdenv.mkDerivation rec {
     sha256 = "0m9k34zyr8bbni9szip407mffdpwbqszgfggavgqjwq0k9c1w7ka";
   };
 
+  # TODO: drop these when upgrading to version > 0.59.100
+  patches = [
+    (fetchpatch {
+      name   = "dxx-gcc7-fix1.patch";
+      url    = "https://github.com/dxx-rebirth/dxx-rebirth/commit/1ed7cec714c623758e3418ec69eaf3b3ff03e9f6.patch";
+      sha256 = "026pn8xglmxryaj8555h5rhzkx30lxmksja1fzdlfyb1vll75gq0";
+    })
+    (fetchpatch {
+      name   = "dxx-gcc7-fix2.patch";
+      url    = "https://github.com/dxx-rebirth/dxx-rebirth/commit/73057ad8ec6977ac747637db1080686f11b4c3cc.patch";
+      sha256 = "0s506vdd2djrrm3xl0ygn9ylpg6y8qxii2nnzk3sf9133glp3swy";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig scons ];
 
-  buildInputs = [ mesa physfs SDL SDL_mixer ];
+  buildInputs = [ libGLU_combined physfs SDL SDL_mixer ];
 
   enableParallelBuilding = true;
 
+  buildPhase = ''
+    runHook preBuild
+
+    scons prefix=$out
+
+    runHook postBuild
+  '';
+
   installPhase = ''
     runHook preInstall
 
@@ -37,7 +59,7 @@ in stdenv.mkDerivation rec {
     description = "Source Port of the Descent 1 and 2 engines";
     homepage = http://www.dxx-rebirth.com/;
     license = licenses.free;
-    maintainers = with maintainers; [ viric ];
+    maintainers = with maintainers; [ viric peterhoeg ];
     platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/games/eduke32/default.nix b/pkgs/games/eduke32/default.nix
index 42a3339594a57..733b6070b1fc7 100644
--- a/pkgs/games/eduke32/default.nix
+++ b/pkgs/games/eduke32/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, flac, gtk2, libvorbis, libvpx, makeDesktopItem, mesa, nasm
+{ stdenv, fetchurl, flac, gtk2, libvorbis, libvpx, makeDesktopItem, libGLU_combined, nasm
 , pkgconfig, SDL2, SDL2_mixer }:
 
 let
@@ -14,14 +14,14 @@ in stdenv.mkDerivation rec {
     sha256 = "1nlq5jbglg00c1z1vsyl627fh0mqfxvk5qyxav5vzla2b4svik2v";
   };
 
-  buildInputs = [ flac gtk2 libvorbis libvpx mesa SDL2 SDL2_mixer ]
+  buildInputs = [ flac gtk2 libvorbis libvpx libGLU_combined SDL2 SDL2_mixer ]
     ++ stdenv.lib.optional (stdenv.system == "i686-linux") nasm;
   nativeBuildInputs = [ pkgconfig ];
 
   postPatch = ''
     substituteInPlace build/src/glbuild.c \
-      --replace libGL.so	${mesa}/lib/libGL.so \
-      --replace libGLU.so	${mesa}/lib/libGLU.so
+      --replace libGL.so	${libGLU_combined}/lib/libGL.so \
+      --replace libGLU.so	${libGLU_combined}/lib/libGLU.so
   '';
 
   NIX_CFLAGS_COMPILE = "-I${SDL2.dev}/include/SDL2 -I${SDL2_mixer}/include/SDL2";
diff --git a/pkgs/games/egoboo/default.nix b/pkgs/games/egoboo/default.nix
index 96ff52446ec4d..29ad352c31686 100644
--- a/pkgs/games/egoboo/default.nix
+++ b/pkgs/games/egoboo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mesa, SDL, SDL_mixer, SDL_image, SDL_ttf }:
+{ stdenv, fetchurl, libGLU_combined, SDL, SDL_mixer, SDL_image, SDL_ttf }:
 
 stdenv.mkDerivation rec {
   # pf5234 (a developer?) at freenode #egoboo told me that I better use 2.7.3 until
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     cp -v -Rd controls.txt setup.txt players modules basicdat $out/share/${name}
   '';
 
-  buildInputs = [ mesa SDL SDL_mixer SDL_image SDL_ttf ];
+  buildInputs = [ libGLU_combined SDL SDL_mixer SDL_image SDL_ttf ];
 
   /*
     This big commented thing may be needed for versions 2.8.0 or beyond
diff --git a/pkgs/games/eternity-engine/default.nix b/pkgs/games/eternity-engine/default.nix
index 453afe9e985b6..911308a078a56 100644
--- a/pkgs/games/eternity-engine/default.nix
+++ b/pkgs/games/eternity-engine/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, cmake, mesa_noglu, SDL, SDL_mixer, SDL_net, fetchFromGitHub, makeWrapper }:
+{ stdenv, cmake, libGL, SDL, SDL_mixer, SDL_net, fetchFromGitHub, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "eternity-engine-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake makeWrapper ];
-  buildInputs = [ mesa_noglu SDL SDL_mixer SDL_net ];
+  buildInputs = [ libGL SDL SDL_mixer SDL_net ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/games/extremetuxracer/default.nix b/pkgs/games/extremetuxracer/default.nix
index a830fa38df55a..d1bf190be574e 100644
--- a/pkgs/games/extremetuxracer/default.nix
+++ b/pkgs/games/extremetuxracer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mesa, libX11, xproto, tcl, freeglut, freetype
+{ stdenv, fetchurl, libGLU_combined, libX11, xproto, tcl, freeglut, freetype
 , sfml, libXi, inputproto
 , libXmu, libXext, xextproto, libXt, libSM, libICE
 , libpng, pkgconfig, gettext, intltool
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    mesa libX11 xproto tcl freeglut freetype
+    libGLU_combined libX11 xproto tcl freeglut freetype
     sfml libXi inputproto
     libXmu libXext xextproto libXt libSM libICE
     libpng pkgconfig gettext intltool
diff --git a/pkgs/games/ezquake/default.nix b/pkgs/games/ezquake/default.nix
index 2c544abddd07c..2684a56a82862 100644
--- a/pkgs/games/ezquake/default.nix
+++ b/pkgs/games/ezquake/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, curl, expat
-, jansson, libpng, libjpeg, mesa, pcre
+, jansson, libpng, libjpeg, libGLU_combined, pcre
 , pkgconfig, SDL2, vimNox }:
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    expat curl jansson libpng libjpeg mesa pcre SDL2 vimNox
+    expat curl jansson libpng libjpeg libGLU_combined pcre SDL2 vimNox
   ];
 
   installPhase = with stdenv.lib; let
diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix
index 6a5cea0634da8..b3319bae97339 100644
--- a/pkgs/games/factorio/default.nix
+++ b/pkgs/games/factorio/default.nix
@@ -1,5 +1,5 @@
 { stdenv, callPackage, fetchurl, makeWrapper
-, alsaLib, libX11, libXcursor, libXinerama, libXrandr, libXi, mesa_noglu
+, alsaLib, libX11, libXcursor, libXinerama, libXrandr, libXi, libGL
 , factorio-utils
 , releaseType
 , mods ? []
@@ -140,7 +140,7 @@ let
         libXinerama
         libXrandr
         libXi
-        mesa_noglu
+        libGL
       ];
 
       installPhase = base.installPhase + ''
diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix
index 7431942699176..b7a4af54929d2 100644
--- a/pkgs/games/flightgear/default.nix
+++ b/pkgs/games/flightgear/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, makeWrapper
-, freeglut, freealut, mesa, libICE, libjpeg, openal, openscenegraph, plib
+, freeglut, freealut, libGLU_combined, libICE, libjpeg, openal, openscenegraph, plib
 , libSM, libunwind, libX11, xproto, libXext, xextproto, libXi, inputproto
 , libXmu, libXt, simgear, zlib, boost, cmake, libpng, udev, fltk13, apr
 , makeDesktopItem, qtbase, qtdeclarative, glew
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     makeWrapper
-    freeglut freealut mesa libICE libjpeg openal openscenegraph plib
+    freeglut freealut libGLU_combined libICE libjpeg openal openscenegraph plib
     libSM libunwind libX11 xproto libXext xextproto libXi inputproto
     libXmu libXt simgear zlib boost cmake libpng udev fltk13 apr qtbase
     glew qtdeclarative
diff --git a/pkgs/games/freedroidrpg/default.nix b/pkgs/games/freedroidrpg/default.nix
new file mode 100644
index 0000000000000..875af8e06642b
--- /dev/null
+++ b/pkgs/games/freedroidrpg/default.nix
@@ -0,0 +1,62 @@
+{ fetchurl, stdenv, pkgconfig, gettext, python3, SDL, SDL_image, SDL_gfx, SDL_mixer, libogg, libvorbis, lua5_3, libjpeg, libpng, zlib, libiconv }:
+
+let
+  version = "0.16.1";
+in stdenv.mkDerivation rec {
+  name = "freedroidrpg-${version}";
+
+  src = fetchurl {
+    url = "ftp://ftp.osuosl.org/pub/freedroid/freedroidRPG-${stdenv.lib.versions.majorMinor version}/freedroidRPG-${version}.tar.gz";
+    sha256 = "0n4kn38ncmcy3lrxmq8fjry6c1z50z4q1zcqfig0j4jb0dsz2va2";
+  };
+
+  nativeBuildInputs = [ pkgconfig gettext python3 ];
+
+  buildInputs = [
+    SDL SDL_image SDL_gfx SDL_mixer libogg libvorbis lua5_3 libjpeg libpng zlib
+  ] ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+
+  meta = with stdenv.lib; {
+    description = "Isometric 3D RPG similar to game Diablo";
+
+    longDescription = ''
+      <para>
+        FreedroidRPG is an original isometric 3D role playing game
+        taking place in the future, on Earth. It features action and
+        dialogs.
+      </para>
+      <para>
+        The game tells the story of a world destroyed by a conflict between
+        robots and their human masters. Play as Tux in a quest to save the
+        world from the murderous rebel bots who know no mercy. You get to
+        choose which path you wish to follow, and freedom of choice is
+        everywhere in the game.
+      </para>
+      <para>
+        FreedroidRPG features a real time combat system with melee and
+        ranged weapons, fairly similar to the proprietary game Diablo.
+        There is an innovative system of programs that can be run in order
+        to take control of enemy robots, alter their behavior, or improve one's
+        characteristics. You can use over 50 different kinds of items and
+        fight countless enemies on your way to your destiny. An advanced
+        dialog system provides story background and immersive role
+        playing situations.
+      </para>
+      <para>
+        The game is complete, fully playable, and can provide about
+        12 hours of fun. It is still being actively developed, and
+        help is welcome in many areas. People having - or trying to acquire -
+        programming, map editing, or writing skills will find FreedroidRPG
+        to be an exciting, fast-moving project in which they can fully
+        express their creativity.
+      </para>
+    '';
+
+    homepage = http://www.freedroid.org/;
+
+    license = licenses.gpl2Plus;
+
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/games/freeorion/default.nix b/pkgs/games/freeorion/default.nix
index 61a1aed8178fa..3d7e132e6122e 100644
--- a/pkgs/games/freeorion/default.nix
+++ b/pkgs/games/freeorion/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, doxygen, graphviz, makeWrapper
-, boost, SDL2, python2, freetype, openal, libogg, libvorbis, zlib, libpng, libtiff, libjpeg, mesa, glew, libxslt }:
+, boost, SDL2, python2, freetype, openal, libogg, libvorbis, zlib, libpng, libtiff, libjpeg, libGLU_combined, glew, libxslt }:
 
 stdenv.mkDerivation rec {
   version = "0.4.7.1";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1m05l3a6ilqd7p2g3aqjpq89grb571cg8n9bpgz0y3sxskcym6sp";
   };
 
-  buildInputs = [ boost SDL2 python2 freetype openal libogg libvorbis zlib libpng libtiff libjpeg mesa glew ];
+  buildInputs = [ boost SDL2 python2 freetype openal libogg libvorbis zlib libpng libtiff libjpeg libGLU_combined glew ];
 
   nativeBuildInputs = [ cmake doxygen graphviz makeWrapper ];
 
diff --git a/pkgs/games/fsg/default.nix b/pkgs/games/fsg/default.nix
index 114eaa3027b0c..d7487c22e28e0 100644
--- a/pkgs/games/fsg/default.nix
+++ b/pkgs/games/fsg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk2, glib, pkgconfig, mesa, wxGTK, libX11, xproto }:
+{ stdenv, fetchurl, gtk2, glib, pkgconfig, libGLU_combined, wxGTK, libX11, xproto }:
 
 stdenv.mkDerivation {
   name = "fsg-4.4";
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   hardeningDisable = [ "format" ];
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk2 glib mesa wxGTK libX11 xproto ];
+  buildInputs = [ gtk2 glib libGLU_combined wxGTK libX11 xproto ];
 
   preBuild = ''
     sed -e '
diff --git a/pkgs/games/gl-117/default.nix b/pkgs/games/gl-117/default.nix
index 49f61a2f2bca0..f654dfc1573fa 100644
--- a/pkgs/games/gl-117/default.nix
+++ b/pkgs/games/gl-117/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl
-, mesa, SDL, freeglut, SDL_mixer, autoconf, automake, libtool
+, libGLU_combined, SDL, freeglut, SDL_mixer, autoconf, automake, libtool
 }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1yvg1rp1yijv0b45cz085b29x5x0g5fkm654xdv5qwh2l6803gb4";
   };
 
-  buildInputs = [ mesa SDL freeglut SDL_mixer autoconf automake libtool ];
+  buildInputs = [ libGLU_combined SDL freeglut SDL_mixer autoconf automake libtool ];
 
   meta = {
     description = "An air combat simulator";
diff --git a/pkgs/games/globulation/default.nix b/pkgs/games/globulation/default.nix
index 49353f5d7b5bd..4bcf6cffa1659 100644
--- a/pkgs/games/globulation/default.nix
+++ b/pkgs/games/globulation/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mesa, SDL, scons, SDL_ttf, SDL_image, zlib, SDL_net
+{ stdenv, fetchurl, libGLU_combined, SDL, scons, SDL_ttf, SDL_image, zlib, SDL_net
 , speex, libvorbis, libogg, boost, fribidi, bsdiff
 , fetchpatch
 }:
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     sed -i -e "s@env = Environment()@env = Environment( ENV = os.environ )@" SConstruct
   '';
 
-  buildInputs = [ mesa SDL scons SDL_ttf SDL_image zlib SDL_net speex libvorbis libogg boost fribidi bsdiff ];
+  buildInputs = [ libGLU_combined SDL scons SDL_ttf SDL_image zlib SDL_net speex libvorbis libogg boost fribidi bsdiff ];
 
   buildPhase = ''
     scons
diff --git a/pkgs/games/gltron/default.nix b/pkgs/games/gltron/default.nix
index 77d122b36117a..6ede118526d82 100644
--- a/pkgs/games/gltron/default.nix
+++ b/pkgs/games/gltron/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, SDL, mesa, zlib, libpng, libvorbis, libmikmod, SDL_sound } :
+{stdenv, fetchurl, SDL, libGLU_combined, zlib, libpng, libvorbis, libmikmod, SDL_sound } :
 
 stdenv.mkDerivation rec {
   name = "gltron-0.70";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   # The build fails, unless we disable the default -Wall -Werror
   configureFlags = "--disable-warn";
 
-  buildInputs = [ SDL mesa zlib libpng libvorbis libmikmod SDL_sound ];
+  buildInputs = [ SDL libGLU_combined zlib libpng libvorbis libmikmod SDL_sound ];
 
   meta = {
     homepage = http://www.gltron.org/;
diff --git a/pkgs/games/gnubg/default.nix b/pkgs/games/gnubg/default.nix
index 1527a22b4abe8..01815cade5ea6 100644
--- a/pkgs/games/gnubg/default.nix
+++ b/pkgs/games/gnubg/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, glib, python, gtk2, readline }:
 
-let version = "1.04.000"; in
+let version = "1.06.001"; in
 stdenv.mkDerivation {
   name = "gnubg-"+version;
 
   src = fetchurl {
     url = "http://gnubg.org/media/sources/gnubg-release-${version}-sources.tar.gz";
-    sha256 = "0gsfl6qbj529d1jg3bkyj9m7bvb566wd7pq5fslgg5yn6c6rbjk6";
+    sha256 = "0snz3j1bvr25ji7lg82bl2gm2s2x9lrpc7viw0hclgz0ql74cw7b";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/games/gnujump/default.nix b/pkgs/games/gnujump/default.nix
new file mode 100644
index 0000000000000..ae2cbd818417c
--- /dev/null
+++ b/pkgs/games/gnujump/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, SDL, SDL_image, SDL_mixer }:
+
+stdenv.mkDerivation rec {
+  name = "gnujump-${version}";
+  version = "1.0.8";
+  src = fetchurl {
+    url = "mirror://gnu/gnujump/${name}.tar.gz";
+    sha256 = "05syy9mzbyqcfnm0hrswlmhwlwx54f0l6zhcaq8c1c0f8dgzxhqk";
+  };
+  buildInputs = [ SDL SDL_image SDL_mixer ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://jump.gnu.sinusoid.es/";
+    description = "A clone of the simple yet addictive game Xjump";
+    longDescription = ''
+      The goal in this game is to jump to the next floor trying not to fall
+      down. As you go upper in the Falling Tower the floors will fall faster.
+      Try to survive longer get upper than anyone. It might seem too simple but
+      once you've tried you'll realize how addictive this is.
+    '';
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/gzdoom/default.nix b/pkgs/games/gzdoom/default.nix
index 2110dfee11ef4..459c75ac290e6 100644
--- a/pkgs/games/gzdoom/default.nix
+++ b/pkgs/games/gzdoom/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, zdoom, makeWrapper
-, openal, fluidsynth, soundfont-fluid, mesa_noglu, SDL2
+, openal, fluidsynth, soundfont-fluid, libGL, SDL2
 , bzip2, zlib, libjpeg, libsndfile, mpg123, game-music-emu }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake makeWrapper ];
   buildInputs = [
-    SDL2 mesa_noglu openal fluidsynth bzip2 zlib libjpeg libsndfile mpg123
+    SDL2 libGL openal fluidsynth bzip2 zlib libjpeg libsndfile mpg123
     game-music-emu
   ];
 
diff --git a/pkgs/games/hedgewars/default.nix b/pkgs/games/hedgewars/default.nix
index 2145ee0135615..2196fede32fc2 100644
--- a/pkgs/games/hedgewars/default.nix
+++ b/pkgs/games/hedgewars/default.nix
@@ -1,6 +1,6 @@
 { SDL2_image, SDL2_ttf, SDL2_net, fpc, qt4, ghcWithPackages, ffmpeg, freeglut
 , stdenv, makeWrapper, fetchurl, cmake, pkgconfig, lua5_1, SDL2, SDL2_mixer
-, zlib, libpng, mesa, physfs
+, zlib, libpng, libGLU_combined, physfs
 }:
 
 let
@@ -35,13 +35,13 @@ stdenv.mkDerivation rec {
                                      -rpath ${SDL2.out}/lib
                                      -rpath ${libpng.out}/lib
                                      -rpath ${lua5_1}/lib
-                                     -rpath ${mesa}/lib
+                                     -rpath ${libGLU_combined}/lib
                                      -rpath ${zlib.out}/lib
                                      "
   '';
 
   postInstall = ''
-    wrapProgram $out/bin/hwengine --prefix LD_LIBRARY_PATH : $LD_LIBRARY_PATH:${stdenv.lib.makeLibraryPath [ mesa freeglut physfs ]}
+    wrapProgram $out/bin/hwengine --prefix LD_LIBRARY_PATH : $LD_LIBRARY_PATH:${stdenv.lib.makeLibraryPath [ libGLU_combined freeglut physfs ]}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/kobodeluxe/default.nix b/pkgs/games/kobodeluxe/default.nix
index 2c45e1361b404..b6d14085351e1 100644
--- a/pkgs/games/kobodeluxe/default.nix
+++ b/pkgs/games/kobodeluxe/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, SDL, SDL_image, mesa} :
+{stdenv, fetchurl, SDL, SDL_image, libGLU_combined} :
 
 stdenv.mkDerivation {
   name = "kobodeluxe-0.5.1";
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
     sha256 = "0f7b910a399d985437564af8c5d81d6dcf22b96b26b01488d72baa6a6fdb5c2c";
   };
 
-  buildInputs = [ SDL SDL_image mesa ];
+  buildInputs = [ SDL SDL_image libGLU_combined ];
 
   prePatch = ''
     sed -e 's/char \*tok/const char \*tok/' -i graphics/window.cpp
diff --git a/pkgs/games/lincity/ng.nix b/pkgs/games/lincity/ng.nix
index 8004aa9931de9..a5142dba88fd8 100644
--- a/pkgs/games/lincity/ng.nix
+++ b/pkgs/games/lincity/ng.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, autoreconfHook, jam, pkgconfig
-, zlib, libxml2, libxslt, xproto, libX11, mesa, SDL
+, zlib, libxml2, libxslt, xproto, libX11, libGLU_combined, SDL
 , SDL_mixer, SDL_image, SDL_ttf, SDL_gfx, physfs
 }:
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    zlib libxml2 libxslt xproto libX11 mesa SDL SDL_mixer SDL_image
+    zlib libxml2 libxslt xproto libX11 libGLU_combined SDL SDL_mixer SDL_image
     SDL_ttf SDL_gfx physfs
   ];
 
diff --git a/pkgs/games/liquidwar/default.nix b/pkgs/games/liquidwar/default.nix
index b072fa942b86f..53556b8cd9141 100644
--- a/pkgs/games/liquidwar/default.nix
+++ b/pkgs/games/liquidwar/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, xproto, libX11, libXrender
-, gmp, mesa, libjpeg, libpng
+, gmp, libGLU_combined, libjpeg, libpng
 , expat, gettext, perl, guile
 , SDL, SDL_image, SDL_mixer, SDL_ttf
 , curl, sqlite
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     xproto libX11 gmp guile
-    mesa libjpeg libpng
+    libGLU_combined libjpeg libpng
     expat gettext perl
     SDL SDL_image SDL_mixer SDL_ttf
     curl sqlite
diff --git a/pkgs/games/mar1d/default.nix b/pkgs/games/mar1d/default.nix
index 5494e32b16b63..9e1e512d711e4 100644
--- a/pkgs/games/mar1d/default.nix
+++ b/pkgs/games/mar1d/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , fetchFromGitHub
 , cmake
-, mesa_glu
+, libGLU
 , x11
 , xorg
 , xinput_calibrator
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
       doxygen
       libao
       libpthreadstubs
-      mesa_glu
+      libGLU
       x11
       xinput_calibrator
       xorg.libXrandr
diff --git a/pkgs/games/mars/default.nix b/pkgs/games/mars/default.nix
index 57e260508246e..2d2a31dd812c4 100644
--- a/pkgs/games/mars/default.nix
+++ b/pkgs/games/mars/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, cmake, mesa, sfml, fribidi, taglib }:
+{ stdenv, fetchgit, cmake, libGLU_combined, sfml, fribidi, taglib }:
 stdenv.mkDerivation rec {
   name = "mars-${version}-${rev}";
   version = "0.7.5";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     inherit rev;
     sha256 = "1r4c5gap1z2zsv4yjd34qriqkxaq4lb4rykapyzkkdf4g36lc3nh";
   };
-  buildInputs = [ cmake mesa sfml fribidi taglib ];
+  buildInputs = [ cmake libGLU_combined sfml fribidi taglib ];
   patches = [
     ./unbind_fix.patch
     ./fix-gluortho2d.patch
diff --git a/pkgs/games/megaglest/default.nix b/pkgs/games/megaglest/default.nix
index d43904bca6ca5..de67afe45a947 100644
--- a/pkgs/games/megaglest/default.nix
+++ b/pkgs/games/megaglest/default.nix
@@ -1,6 +1,6 @@
 { stdenv, cmake, pkgconfig, git, curl, SDL2, xercesc, openal, lua, vlc
 , libjpeg, wxGTK, cppunit, ftgl, glew, libogg, libvorbis, buildEnv, libpng
-, fontconfig, freetype, xorg, makeWrapper, bash, which, gnome3, mesa_glu, glib
+, fontconfig, freetype, xorg, makeWrapper, bash, which, gnome3, libGLU, glib
 , fetchFromGitHub
 }:
 let
@@ -9,7 +9,7 @@ let
     name = "megaglest-lib-env";
     paths = [ SDL2 xorg.libSM xorg.libICE xorg.libX11 xorg.libXext
       xercesc openal libvorbis lua libjpeg libpng curl fontconfig ftgl freetype
-      stdenv.cc.cc glew mesa_glu wxGTK ];
+      stdenv.cc.cc glew libGLU wxGTK ];
   };
   path-env = buildEnv {
     name = "megaglest-path-env";
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ cmake git curl SDL2 xercesc openal lua libpng libjpeg vlc wxGTK
-    glib cppunit fontconfig freetype ftgl glew libogg libvorbis makeWrapper mesa_glu ];
+    glib cppunit fontconfig freetype ftgl glew libogg libvorbis makeWrapper libGLU ];
 
   configurePhase = ''
     cmake -DCMAKE_INSTALL_PREFIX=$out \
diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix
index ebf04ec75363f..e59181bb0fa08 100644
--- a/pkgs/games/minecraft/default.nix
+++ b/pkgs/games/minecraft/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, makeDesktopItem
 , jre, libX11, libXext, libXcursor, libXrandr, libXxf86vm
 , openjdk
-, mesa, openal
+, libGLU_combined, openal
 , useAlsa ? false, alsaOss ? null }:
 with stdenv.lib;
 
@@ -36,7 +36,7 @@ in stdenv.mkDerivation {
     cat > $out/bin/minecraft << EOF
     #!${stdenv.shell}
 
-    export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm mesa openal ]}
+    export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libGLU_combined openal ]}
     ${if useAlsa then "${alsaOss}/bin/aoss" else "" } \
       ${jre}/bin/java -jar $out/minecraft.jar
     EOF
diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix
index 49750997a9042..fee8919bb2363 100644
--- a/pkgs/games/minetest/default.nix
+++ b/pkgs/games/minetest/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, irrlicht, libpng, bzip2, curl, libogg, jsoncpp
-, libjpeg, libXxf86vm, mesa, openal, libvorbis, xlibsWrapper, sqlite, luajit
+, libjpeg, libXxf86vm, libGLU_combined, openal, libvorbis, xlibsWrapper, sqlite, luajit
 , freetype, gettext, doxygen, ncurses, leveldb
 }:
 
@@ -36,7 +36,7 @@ in stdenv.mkDerivation {
   NIX_CFLAGS_COMPILE = [ "-DluaL_reg=luaL_Reg" ]; # needed since luajit-2.1.0-beta3
 
   buildInputs = [
-    cmake irrlicht libpng bzip2 libjpeg curl libogg jsoncpp libXxf86vm mesa
+    cmake irrlicht libpng bzip2 libjpeg curl libogg jsoncpp libXxf86vm libGLU_combined
     openal libvorbis xlibsWrapper sqlite luajit freetype gettext doxygen ncurses
     leveldb
   ];
diff --git a/pkgs/games/naev/default.nix b/pkgs/games/naev/default.nix
index 3fd20e6221e67..d8a4e32faaab4 100644
--- a/pkgs/games/naev/default.nix
+++ b/pkgs/games/naev/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, SDL, openal, SDL_mixer, libxml2, pkgconfig, libvorbis
-, libpng, mesa, makeWrapper, zlib, freetype }:
+, libpng, libGLU_combined, makeWrapper, zlib, freetype }:
 
 let
   pname = "naev";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
     sha256 = "0gahi91lmpra0wvxsz49zwwb28q9w2v1s3y7r70252hq6v80kanb";
   };
 
-  buildInputs = [ SDL SDL_mixer openal libxml2 libvorbis libpng mesa zlib freetype ];
+  buildInputs = [ SDL SDL_mixer openal libxml2 libvorbis libpng libGLU_combined zlib freetype ];
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
 
diff --git a/pkgs/games/neverball/default.nix b/pkgs/games/neverball/default.nix
index 62d89c7c31e55..50f96a7ee2c8b 100644
--- a/pkgs/games/neverball/default.nix
+++ b/pkgs/games/neverball/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL2, mesa_noglu, libpng, libjpeg, SDL2_ttf, libvorbis, gettext
+{ stdenv, fetchurl, SDL2, libGL, libpng, libjpeg, SDL2_ttf, libvorbis, gettext
 , physfs }:
 
 stdenv.mkDerivation rec {
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "184gm36c6p6vaa6gwrfzmfh86klhnb03pl40ahsjsvprlk667zkk";
   };
 
-  buildInputs = [ libpng SDL2 mesa_noglu libjpeg SDL2_ttf libvorbis gettext physfs ];
+  buildInputs = [ libpng SDL2 libGL libjpeg SDL2_ttf libvorbis gettext physfs ];
 
   dontPatchElf = true;
 
diff --git a/pkgs/games/newtonwars/default.nix b/pkgs/games/newtonwars/default.nix
index 7bbc797b4f16f..0fe9d1ee0f57c 100644
--- a/pkgs/games/newtonwars/default.nix
+++ b/pkgs/games/newtonwars/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, makeWrapper, freeglut, mesa }:
+{ stdenv, fetchFromGitHub, makeWrapper, freeglut, libGLU_combined }:
 
 stdenv.mkDerivation rec {
   name = "newtonwars-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0g63fwfcdxxlnqlagj1fb8ngm385gmv8f7p8b4r1z5cny2znxdvs";
   };
 
-  buildInputs = [ makeWrapper freeglut mesa ];
+  buildInputs = [ makeWrapper freeglut libGLU_combined ];
 
   patchPhase = ''
     sed -i "s;font24.raw;$out/share/font24.raw;g" display.c
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
     wrapProgram $out/bin/nw \
       --prefix LD_LIBRARY_PATH ":" ${freeglut}/lib \
-      --prefix LD_LIBRARY_PATH ":" ${mesa}/lib
+      --prefix LD_LIBRARY_PATH ":" ${libGLU_combined}/lib
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/nexuiz/default.nix b/pkgs/games/nexuiz/default.nix
index bde567a190339..39b3ae36f506f 100644
--- a/pkgs/games/nexuiz/default.nix
+++ b/pkgs/games/nexuiz/default.nix
@@ -3,7 +3,7 @@
   unzip, zlib, curl, libjpeg, libpng, libvorbis, libtheora
 , libogg, libmodplug
 , # glx
-  libX11, mesa, libXpm, libXext, libXxf86vm, libXxf86dga, alsaLib
+  libX11, libGLU_combined, libXpm, libXext, libXxf86vm, libXxf86dga, alsaLib
 , # sdl
   SDL
 }:
@@ -24,7 +24,7 @@ in stdenv.mkDerivation {
     # required for both
     unzip
     # glx
-    libX11 mesa libXpm libXext libXxf86vm libXxf86dga alsaLib
+    libX11 libGLU_combined libXpm libXext libXxf86vm libXxf86dga alsaLib
     # sdl
     SDL
   ];
diff --git a/pkgs/games/openjk/default.nix b/pkgs/games/openjk/default.nix
index c65dad7bd4fa4..fd662fe9743e5 100644
--- a/pkgs/games/openjk/default.nix
+++ b/pkgs/games/openjk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, cmake, libjpeg, zlib, libpng, mesa_noglu, SDL2 }:
+{ stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, cmake, libjpeg, zlib, libpng, libGL, SDL2 }:
 
 let
   jamp = makeDesktopItem rec {
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ makeWrapper cmake ];
-  buildInputs = [ libjpeg zlib libpng mesa_noglu SDL2 ];
+  buildInputs = [ libjpeg zlib libpng libGL SDL2 ];
 
   # move from $out/JediAcademy to $out/opt/JediAcademy
   preConfigure = ''
diff --git a/pkgs/games/openmw/tes3mp.nix b/pkgs/games/openmw/tes3mp.nix
index cb9e296cdd4f7..aba92ac087e8f 100644
--- a/pkgs/games/openmw/tes3mp.nix
+++ b/pkgs/games/openmw/tes3mp.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, qtbase, openscenegraph, mygui, bullet, ffmpeg, boost, cmake, SDL2, unshield, openal
-, libXt, writeScriptBin, makeWrapper, symlinkJoin, ncurses, mesa_noglu, terra }:
+, libXt, writeScriptBin, makeWrapper, symlinkJoin, ncurses, libGL, terra }:
 
 let
   mygui_ = mygui.override {
@@ -58,7 +58,7 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake makeWrapper fakegit ];
   buildInputs = [ boost ffmpeg qtbase bullet mygui_ openscenegraph SDL2 unshield openal libXt
-    ncurses mesa_noglu ];
+    ncurses libGL ];
 
   buildPhase = ''
     mkdir dependencies keepers
diff --git a/pkgs/games/openrct2/default.nix b/pkgs/games/openrct2/default.nix
index 6881767cbb904..03d296d30053b 100644
--- a/pkgs/games/openrct2/default.nix
+++ b/pkgs/games/openrct2/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchFromGitHub,
   SDL2, cmake, curl, fontconfig, freetype, jansson, libiconv, libpng,
-  libpthreadstubs, libzip, mesa_glu, openssl, pkgconfig, speexdsp, zlib
+  libpthreadstubs, libzip, libGLU, openssl, pkgconfig, speexdsp, zlib
 }:
 
 let
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     libpng
     libpthreadstubs
     libzip
-    mesa_glu
+    libGLU
     openssl
     pkgconfig
     speexdsp
diff --git a/pkgs/games/openrw/default.nix b/pkgs/games/openrw/default.nix
index 6dd098ee7b8e5..5a8a8d244bf6d 100644
--- a/pkgs/games/openrw/default.nix
+++ b/pkgs/games/openrw/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, cmake, sfml, mesa, bullet, glm, libmad, x11, openal
+{ stdenv, fetchgit, cmake, sfml, libGLU_combined, bullet, glm, libmad, x11, openal
 , SDL2, boost, ffmpeg }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    cmake sfml mesa bullet glm libmad x11 openal SDL2 boost ffmpeg
+    cmake sfml libGLU_combined bullet glm libmad x11 openal SDL2 boost ffmpeg
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/openspades/default.nix b/pkgs/games/openspades/default.nix
index 6257ce484ecf4..582cafcc4d462 100644
--- a/pkgs/games/openspades/default.nix
+++ b/pkgs/games/openspades/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, fetchFromGitHub, cmake, unzip, zip, file
-, curl, glew , mesa_noglu, SDL2, SDL2_image, zlib, freetype, imagemagick
+, curl, glew , libGL, SDL2, SDL2_image, zlib, freetype, imagemagick
 , openal , opusfile, libogg
 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake imagemagick unzip zip file ];
 
   buildInputs = [
-    freetype SDL2 SDL2_image mesa_noglu zlib curl glew opusfile openal libogg
+    freetype SDL2 SDL2_image libGL zlib curl glew opusfile openal libogg
   ];
 
   cmakeFlags = [
diff --git a/pkgs/games/openxcom/default.nix b/pkgs/games/openxcom/default.nix
index bf451af9ad732..30470e98c58d0 100644
--- a/pkgs/games/openxcom/default.nix
+++ b/pkgs/games/openxcom/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchFromGitHub, fetchpatch, cmake, mesa, zlib, openssl, libyamlcpp, boost
+{stdenv, fetchFromGitHub, fetchpatch, cmake, libGLU_combined, zlib, openssl, libyamlcpp, boost
 , SDL, SDL_image, SDL_mixer, SDL_gfx }:
 
 let version = "1.0.0.2018.01.28"; in
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ SDL SDL_gfx SDL_image SDL_mixer boost libyamlcpp mesa openssl zlib ];
+  buildInputs = [ SDL SDL_gfx SDL_image SDL_mixer boost libyamlcpp libGLU_combined openssl zlib ];
 
   meta = {
     description = "Open source clone of UFO: Enemy Unknown";
diff --git a/pkgs/games/pingus/default.nix b/pkgs/games/pingus/default.nix
index 9704cb93e6b4b..e8bac9571f89b 100644
--- a/pkgs/games/pingus/default.nix
+++ b/pkgs/games/pingus/default.nix
@@ -1,5 +1,5 @@
-{stdenv, fetchurl, scons, SDL, SDL_image, boost, libpng, SDL_mixer, pkgconfig
-, mesa}:
+{stdenv, fetchurl, fetchpatch, scons, SDL, SDL_image, boost, libpng, SDL_mixer
+, pkgconfig, libGLU_combined}:
 let
   s = # Generated upstream information
   rec {
@@ -14,10 +14,17 @@ in
 stdenv.mkDerivation rec {
   inherit (s) name version;
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [scons SDL SDL_image boost libpng SDL_mixer mesa];
+  buildInputs = [scons SDL SDL_image boost libpng SDL_mixer libGLU_combined];
   src = fetchurl {
     inherit (s) url sha256;
   };
+  patches = [
+    # fix build with gcc7
+    (fetchpatch {
+      url = https://github.com/Pingus/pingus/commit/df6e2f445d3e2925a94d22faeb17be9444513e92.patch;
+      sha256 = "0nqyhznnnvpgfa6rfv8rapjfpw99b67n97jfqp9r3hpib1b3ja6p";
+    })
+  ];
   makeFlags = '' PREFIX="$(out)" '';
   meta = {
     inherit (s) version;
diff --git a/pkgs/games/pioneer/default.nix b/pkgs/games/pioneer/default.nix
index 071218c1600ea..ffe0841184b1b 100644
--- a/pkgs/games/pioneer/default.nix
+++ b/pkgs/games/pioneer/default.nix
@@ -1,5 +1,5 @@
 { fetchFromGitHub, stdenv, autoconf, automake, pkgconfig
-, curl, libsigcxx, SDL2, SDL2_image, freetype, libvorbis, libpng, assimp, mesa
+, curl, libsigcxx, SDL2, SDL2_image, freetype, libvorbis, libpng, assimp, libGLU_combined
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake pkgconfig ];
 
-  buildInputs = [ curl libsigcxx SDL2 SDL2_image freetype libvorbis libpng assimp mesa ];
+  buildInputs = [ curl libsigcxx SDL2 SDL2_image freetype libvorbis libpng assimp libGLU_combined ];
 
   NIX_CFLAGS_COMPILE = [
     "-I${SDL2}/include/SDL2"
diff --git a/pkgs/games/pioneers/default.nix b/pkgs/games/pioneers/default.nix
index 3898ddba71395..53de9fa29e2d0 100644
--- a/pkgs/games/pioneers/default.nix
+++ b/pkgs/games/pioneers/default.nix
@@ -1,16 +1,14 @@
-{stdenv, fetchurl, gtk2, pkgconfig, intltool } :
+{stdenv, fetchurl, gtk3, pkgconfig, intltool } :
 
 stdenv.mkDerivation rec {
-  name = "pioneers-0.12.3";
+  name = "pioneers-15.4";
   src = fetchurl {
     url = "mirror://sourceforge/pio/${name}.tar.gz";
-    sha256 = "1yqypk5wmia8fqyrg9mn9xw6yfd0fpkxj1355csw1hgx8mh44y1d";
+    sha256 = "1p1d18hrfmqcnghip3shkzcs5qkz6j99jvkdkqfi7pqdvjc323cs";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk2 intltool ];
-
-  hardeningDisable = [ "format" ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+  buildInputs = [ gtk3 ];
 
   meta = {
     homepage = http://pio.sourceforge.net/;
diff --git a/pkgs/games/prboom/default.nix b/pkgs/games/prboom/default.nix
index 95ad53cb1ae37..4babc1caea5ab 100644
--- a/pkgs/games/prboom/default.nix
+++ b/pkgs/games/prboom/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, SDL, SDL_mixer, SDL_net, mesa}:
+{stdenv, fetchurl, SDL, SDL_mixer, SDL_net, libGLU_combined}:
 
 stdenv.mkDerivation {
   name = "prboom-2.5.0";
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
     sha256 = "1bjb04q8dk232956k30qlpq6q0hxb904yh1nflr87jcc1x3iqv12";
   };
 
-  buildInputs = [ SDL SDL_mixer SDL_net mesa ];
+  buildInputs = [ SDL SDL_mixer SDL_net libGLU_combined ];
   crossAttrs = {
     propagatedBuildInputs = [ SDL.crossDrv SDL_mixer.crossDrv SDL_net.crossDrv ];
     configureFlags = "--disable-gl --disable-cpu-opt --without-x --disable-sdltest
diff --git a/pkgs/games/privateer/default.nix b/pkgs/games/privateer/default.nix
index e3116ae6e9da8..f6f3e6001825c 100644
--- a/pkgs/games/privateer/default.nix
+++ b/pkgs/games/privateer/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchsvn, boost, cmake, ffmpeg, freeglut, glib,
   gtk2, libjpeg, libpng, libpthreadstubs, libvorbis, libXau, libXdmcp,
-  libXmu, mesa, openal, pixman, pkgconfig, python27, SDL }:
+  libXmu, libGLU_combined, openal, pixman, pkgconfig, python27, SDL }:
 
 stdenv.mkDerivation {
   name = "privateer-1.03";
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   buildInputs =
     [ boost cmake ffmpeg freeglut glib gtk2 libjpeg libpng
-      libpthreadstubs libvorbis libXau libXdmcp libXmu mesa openal
+      libpthreadstubs libvorbis libXau libXdmcp libXmu libGLU_combined openal
       pixman pkgconfig python27 SDL ];
 
   patches = [ ./0001-fix-VSFile-constructor.patch ];
diff --git a/pkgs/games/quake3/ioquake/default.nix b/pkgs/games/quake3/ioquake/default.nix
index bae26dfbad8c6..4e3a50b37b9a2 100644
--- a/pkgs/games/quake3/ioquake/default.nix
+++ b/pkgs/games/quake3/ioquake/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, which, pkgconfig, SDL2, mesa, openalSoft
+{ stdenv, fetchFromGitHub, which, pkgconfig, SDL2, libGLU_combined, openalSoft
 , curl, speex, opusfile, libogg, libvorbis, libopus, libjpeg, mumble, freetype
 }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ which pkgconfig ];
   buildInputs = [
-    SDL2 mesa openalSoft curl speex opusfile libogg libvorbis libopus libjpeg
+    SDL2 libGLU_combined openalSoft curl speex opusfile libogg libvorbis libopus libjpeg
     freetype mumble
   ];
 
diff --git a/pkgs/games/quake3/wrapper/default.nix b/pkgs/games/quake3/wrapper/default.nix
index 5f65d26140c84..69b166664be42 100644
--- a/pkgs/games/quake3/wrapper/default.nix
+++ b/pkgs/games/quake3/wrapper/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, buildEnv, lib, fetchurl, mesa_noglu, ioquake3, makeWrapper }:
+{ stdenv, buildEnv, lib, fetchurl, libGL, ioquake3, makeWrapper }:
 
 { paks, name ? (stdenv.lib.head paks).name, description ? "" }:
 
 let
-  libPath = lib.makeLibraryPath [ mesa_noglu stdenv.cc.cc ];
+  libPath = lib.makeLibraryPath [ libGL stdenv.cc.cc ];
   env = buildEnv {
     name = "quake3-env";
     paths = [ ioquake3 ] ++ paks;
diff --git a/pkgs/games/residualvm/default.nix b/pkgs/games/residualvm/default.nix
index d916ff0d34440..d0f1d500eaf54 100644
--- a/pkgs/games/residualvm/default.nix
+++ b/pkgs/games/residualvm/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchurl, SDL, zlib, libmpeg2, libmad, libogg, libvorbis, flac, alsaLib
-, openglSupport ? false, mesa ? null
+, openglSupport ? false, libGLU_combined ? null
 }:
 
-assert openglSupport -> mesa != null;
+assert openglSupport -> libGLU_combined != null;
 
 with stdenv.lib;
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ stdenv SDL zlib libmpeg2 libmad libogg libvorbis flac alsaLib ]
-    ++ optional openglSupport mesa;
+    ++ optional openglSupport libGLU_combined;
 
   configureFlags = [ "--enable-all-engines" ];
 
diff --git a/pkgs/games/rigsofrods/default.nix b/pkgs/games/rigsofrods/default.nix
index 0d0602524e795..a038957f701ed 100644
--- a/pkgs/games/rigsofrods/default.nix
+++ b/pkgs/games/rigsofrods/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchFromGitHub, stdenv, wxGTK30, freeimage, cmake, zziplib, mesa, boost,
+{ fetchurl, fetchFromGitHub, stdenv, wxGTK30, freeimage, cmake, zziplib, libGLU_combined, boost,
   pkgconfig, libuuid, openal, ogre, ois, curl, gtk2, pixman, mygui, unzip,
   angelscript, ogrepaged, mysocketw, libxcb
   }:
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ wxGTK30 freeimage cmake zziplib mesa boost
+  buildInputs = [ wxGTK30 freeimage cmake zziplib libGLU_combined boost
     libuuid openal ogre ois curl gtk2 mygui unzip angelscript
     ogrepaged mysocketw libxcb ];
 
diff --git a/pkgs/games/sauerbraten/default.nix b/pkgs/games/sauerbraten/default.nix
index 61a9310ae212c..f48736a56d601 100644
--- a/pkgs/games/sauerbraten/default.nix
+++ b/pkgs/games/sauerbraten/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchsvn, mesa, SDL, SDL_image, SDL_mixer
+{ stdenv, fetchsvn, libGLU_combined, SDL, SDL_image, SDL_mixer
 , libpng, zlib, libjpeg, imagemagick, libX11
 }:
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    mesa SDL SDL_image SDL_mixer libpng zlib libjpeg imagemagick
+    libGLU_combined SDL SDL_image SDL_mixer libpng zlib libjpeg imagemagick
     libX11
   ];
 
diff --git a/pkgs/games/scorched3d/default.nix b/pkgs/games/scorched3d/default.nix
index 0c2952696e2c3..430b22c9ba97a 100644
--- a/pkgs/games/scorched3d/default.nix
+++ b/pkgs/games/scorched3d/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mesa, glew, pkgconfig, openalSoft, freealut, wxGTK, libogg
+{ stdenv, fetchurl, libGLU_combined, glew, pkgconfig, openalSoft, freealut, wxGTK, libogg
 , freetype, libvorbis, fftwSinglePrec, SDL, SDL_net, expat, libjpeg, libpng }:
 
 stdenv.mkDerivation rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-    [ mesa glew openalSoft freealut wxGTK libogg freetype libvorbis
+    [ libGLU_combined glew openalSoft freealut wxGTK libogg freetype libvorbis
       SDL SDL_net expat libjpeg libpng fftwSinglePrec
     ];
 
diff --git a/pkgs/games/scrolls/default.nix b/pkgs/games/scrolls/default.nix
index c2beeb13cadf2..5f1e1a17553ba 100644
--- a/pkgs/games/scrolls/default.nix
+++ b/pkgs/games/scrolls/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, gcc
-, mesa_glu, libX11, libXext, libXcursor, libpulseaudio
+, libGLU, libX11, libXext, libXcursor, libpulseaudio
 }:
 stdenv.mkDerivation {
   name = "scrolls-2015-10-13";
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
 
   libPath = stdenv.lib.makeLibraryPath [
     gcc
-    mesa_glu
+    libGLU
     libX11
     libXext
     libXcursor
diff --git a/pkgs/games/scummvm/default.nix b/pkgs/games/scummvm/default.nix
index 29b44f9d8576b..fcde5b5ea59f0 100644
--- a/pkgs/games/scummvm/default.nix
+++ b/pkgs/games/scummvm/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, nasm
-, alsaLib, flac, fluidsynth, freetype, libjpeg, libmad, libmpeg2, libogg, libvorbis, mesa, SDL2, zlib
+, alsaLib, flac, fluidsynth, freetype, libjpeg, libmad, libmpeg2, libogg, libvorbis, libGLU_combined, SDL2, zlib
 , hostPlatform
 }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ nasm ];
 
   buildInputs = [
-    alsaLib freetype flac fluidsynth libjpeg libmad libmpeg2 libogg libvorbis mesa SDL2 zlib
+    alsaLib freetype flac fluidsynth libjpeg libmad libmpeg2 libogg libvorbis libGLU_combined SDL2 zlib
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/games/soi/default.nix b/pkgs/games/soi/default.nix
index 96a38a10c6c88..8d102e98433ba 100644
--- a/pkgs/games/soi/default.nix
+++ b/pkgs/games/soi/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cmake
-, boost, eigen2, lua, luabind, mesa, SDL }:
+, boost, eigen2, lua, luabind, libGLU_combined, SDL }:
 
 stdenv.mkDerivation rec {
   name = "soi-${version}";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ boost lua luabind mesa SDL ];
+  buildInputs = [ boost lua luabind libGLU_combined SDL ];
 
   cmakeFlags = [
     "-DEIGEN_INCLUDE_DIR=${eigen2}/include/eigen2"
diff --git a/pkgs/games/space-orbit/default.nix b/pkgs/games/space-orbit/default.nix
index e41ecf16136f3..162db96726993 100644
--- a/pkgs/games/space-orbit/default.nix
+++ b/pkgs/games/space-orbit/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl
-, mesa, libXi, libXt, libXext, libX11, libXmu, freeglut
+, libGLU_combined, libXi, libXt, libXext, libX11, libXmu, freeglut
 }:
 
 stdenv.mkDerivation rec {
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "1.01";
   patchversion = "9";
 
-  buildInputs = [ mesa libXi libXt libXext libX11 libXmu freeglut ];
+  buildInputs = [ libGLU_combined libXi libXt libXext libX11 libXmu freeglut ];
 
   src = fetchurl {
     url = "mirror://debian/pool/main/s/space-orbit/space-orbit_${version}.orig.tar.gz";
diff --git a/pkgs/games/speed-dreams/default.nix b/pkgs/games/speed-dreams/default.nix
index cb7a345900af9..10ce55f4e217d 100644
--- a/pkgs/games/speed-dreams/default.nix
+++ b/pkgs/games/speed-dreams/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, mesa, freeglut, libX11, plib, openal, freealut, libXrandr, xproto,
+{ fetchurl, stdenv, libGLU_combined, freeglut, libX11, plib, openal, freealut, libXrandr, xproto,
 libXext, libSM, libICE, libXi, libXt, libXrender, libXxf86vm, openscenegraph, expat,
 libpng, zlib, bash, SDL2, enet, libjpeg, cmake, pkgconfig, libvorbis}:
 
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig cmake ];
 
-  buildInputs = [ libpng mesa freeglut libX11 plib openal freealut libXrandr xproto
+  buildInputs = [ libpng libGLU_combined freeglut libX11 plib openal freealut libXrandr xproto
     libXext libSM libICE libXi libXt libXrender libXxf86vm zlib bash expat
     SDL2 enet libjpeg openscenegraph libvorbis ];
 
diff --git a/pkgs/games/spring/default.nix b/pkgs/games/spring/default.nix
index 40e97567d3943..3bb69359f1626 100644
--- a/pkgs/games/spring/default.nix
+++ b/pkgs/games/spring/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cmake, lzma, boost, libdevil, zlib, p7zip
-, openal, libvorbis, glew, freetype, xorg, SDL2, mesa, binutils
+, openal, libvorbis, glew, freetype, xorg, SDL2, libGLU_combined, binutils
 , asciidoc, libxslt, docbook_xsl, docbook_xsl_ns, curl, makeWrapper
 , jdk ? null, python ? null, systemd, libunwind, glibc, which, minizip
 , withAI ? true # support for AI Interfaces and Skirmish AIs
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
                 "-DPREFER_STATIC_LIBS:BOOL=OFF"];
 
   buildInputs = [ cmake lzma boost libdevil zlib p7zip openal libvorbis freetype SDL2
-    xorg.libX11 xorg.libXcursor mesa glew asciidoc libxslt docbook_xsl curl makeWrapper
+    xorg.libX11 xorg.libXcursor libGLU_combined glew asciidoc libxslt docbook_xsl curl makeWrapper
     docbook_xsl_ns systemd libunwind glibc.dev glibc.static which minizip ]
     ++ stdenv.lib.optional withAI jdk
     ++ stdenv.lib.optional withAI python;
diff --git a/pkgs/games/stardust/default.nix b/pkgs/games/stardust/default.nix
index 74d9bdcb35dca..5130db6cb3c8a 100644
--- a/pkgs/games/stardust/default.nix
+++ b/pkgs/games/stardust/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, zlib, libtiff, libxml2, SDL, xproto, libX11
-, libXi, inputproto, libXmu, libXext, xextproto, mesa }:
+, libXi, inputproto, libXmu, libXext, xextproto, libGLU_combined }:
 
 stdenv.mkDerivation rec {
   name = "stardust-${version}";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     zlib libtiff libxml2 SDL xproto libX11 libXi inputproto
-    libXmu libXext xextproto mesa
+    libXmu libXext xextproto libGLU_combined
   ];
 
   installFlags = [ "bindir=\${out}/bin" ];
diff --git a/pkgs/games/steam/runtime-wrapped.nix b/pkgs/games/steam/runtime-wrapped.nix
index c5633bedf39f7..2030425ba1295 100644
--- a/pkgs/games/steam/runtime-wrapped.nix
+++ b/pkgs/games/steam/runtime-wrapped.nix
@@ -48,7 +48,7 @@ let
     # Verified games requirements
     xlibs.libXmu
     xlibs.libxcb
-    mesa_glu
+    libGLU
     libuuid
     libogg
     libvorbis
diff --git a/pkgs/games/super-tux-kart/default.nix b/pkgs/games/super-tux-kart/default.nix
index df5d7e7b4fa8d..a7b82b8913f50 100644
--- a/pkgs/games/super-tux-kart/default.nix
+++ b/pkgs/games/super-tux-kart/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig
-, openal, freealut, mesa, libvorbis, libogg, gettext, curl, freetype
+, openal, freealut, libGLU_combined, libvorbis, libogg, gettext, curl, freetype
 , fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr }:
 
 let
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     libX11 libXrandr
-    openal freealut mesa libvorbis libogg zlib freetype
+    openal freealut libGLU_combined libvorbis libogg zlib freetype
     curl fribidi bluez libjpeg libpng
   ];
 
diff --git a/pkgs/games/supertux/default.nix b/pkgs/games/supertux/default.nix
index bb297c1af4ee3..cf6ba4648687a 100644
--- a/pkgs/games/supertux/default.nix
+++ b/pkgs/games/supertux/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cmake, pkgconfig, SDL2, SDL2_image , curl
-, libogg, libvorbis, mesa, openal, boost, glew
+, libogg, libvorbis, libGLU_combined, openal, boost, glew
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig cmake ];
 
-  buildInputs = [ SDL2 SDL2_image curl libogg libvorbis mesa openal boost glew ];
+  buildInputs = [ SDL2 SDL2_image curl libogg libvorbis libGLU_combined openal boost glew ];
 
   cmakeFlags = [ "-DENABLE_BOOST_STATIC_LIBS=OFF" ];
 
diff --git a/pkgs/games/teeworlds/default.nix b/pkgs/games/teeworlds/default.nix
index bd37ba0f01fb7..7c5074c070854 100644
--- a/pkgs/games/teeworlds/default.nix
+++ b/pkgs/games/teeworlds/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, makeWrapper, python, alsaLib
-, libX11, mesa_glu, SDL, lua5, zlib, bam, freetype
+, libX11, libGLU, SDL, lua5, zlib, bam, freetype
 }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   postPatch = "rm -r other/{freetype,sdl}/{include,lib32,lib64}";
 
   buildInputs = [
-    python makeWrapper alsaLib libX11 mesa_glu SDL lua5 zlib bam freetype
+    python makeWrapper alsaLib libX11 libGLU SDL lua5 zlib bam freetype
   ];
 
   buildPhase = ''
diff --git a/pkgs/games/the-powder-toy/default.nix b/pkgs/games/the-powder-toy/default.nix
index c70feca0860fa..ce5b0b2696601 100644
--- a/pkgs/games/the-powder-toy/default.nix
+++ b/pkgs/games/the-powder-toy/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "A free 2D physics sandbox game";
     homepage = http://powdertoy.co.uk/;
-    platforms = platforms.unix;
+    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
     license = licenses.gpl3;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/games/tibia/default.nix b/pkgs/games/tibia/default.nix
index 3594a04f03bf9..e5bb211eb227e 100644
--- a/pkgs/games/tibia/default.nix
+++ b/pkgs/games/tibia/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, patchelf, glibc, libX11, mesa }:
+{ stdenv, fetchurl, patchelf, glibc, libX11, libGLU_combined }:
 
 with stdenv.lib;
 assert stdenv.isi686;
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     cp -r * $out/res
 
     patchelf --set-interpreter ${glibc.out}/lib/ld-linux.so.2 \
-             --set-rpath ${stdenv.lib.makeLibraryPath [ stdenv.cc.cc libX11 mesa ]} \
+             --set-rpath ${stdenv.lib.makeLibraryPath [ stdenv.cc.cc libX11 libGLU_combined ]} \
              "$out/res/Tibia"
 
     # We've patchelf'd the files. The main ‘Tibia’ binary is a bit
diff --git a/pkgs/games/tome4/default.nix b/pkgs/games/tome4/default.nix
index 1e529fb158173..83f34f5b04afa 100644
--- a/pkgs/games/tome4/default.nix
+++ b/pkgs/games/tome4/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, makeDesktopItem, makeWrapper, premake4, unzip
-, openal, libpng, libvorbis, mesa_glu, SDL2, SDL2_image, SDL2_ttf }:
+, openal, libpng, libvorbis, libGLU, SDL2, SDL2_image, SDL2_ttf }:
 
 let
   pname = "tome4";
@@ -29,7 +29,7 @@ in stdenv.mkDerivation rec {
 
   # tome4 vendors quite a few libraries so someone might want to look into avoiding that...
   buildInputs = [
-    mesa_glu openal libpng libvorbis SDL2 SDL2_ttf SDL2_image
+    libGLU openal libpng libvorbis SDL2 SDL2_ttf SDL2_image
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/games/torcs/default.nix b/pkgs/games/torcs/default.nix
index 26f0fe534f3f5..522a1a2857d54 100644
--- a/pkgs/games/torcs/default.nix
+++ b/pkgs/games/torcs/default.nix
@@ -1,4 +1,4 @@
-{ fetchpatch, fetchurl, stdenv, mesa_glu, freeglut, libX11, plib, openal, freealut, libXrandr, xproto,
+{ fetchpatch, fetchurl, stdenv, libGLU, freeglut, libX11, plib, openal, freealut, libXrandr, xproto,
 libXext, libSM, libICE, libXi, libXt, libXrender, libXxf86vm, libvorbis,
 libpng, zlib, bash, makeWrapper }:
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     sed -i -e s,/bin/bash,`type -P bash`, src/linux/torcs.in
   '';
 
-  buildInputs = [ mesa_glu freeglut libX11 plib openal freealut libXrandr xproto
+  buildInputs = [ libGLU freeglut libX11 plib openal freealut libXrandr xproto
     libXext libSM libICE libXi libXt libXrender libXxf86vm libpng zlib libvorbis makeWrapper ];
 
   installTargets = "install datainstall";
diff --git a/pkgs/games/trackballs/default.nix b/pkgs/games/trackballs/default.nix
index 50ffb693f70b1..19be3f64045d3 100644
--- a/pkgs/games/trackballs/default.nix
+++ b/pkgs/games/trackballs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_ttf, gettext, zlib, SDL2_mixer, SDL2_image, guile, mesa }:
+{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_ttf, gettext, zlib, SDL2_mixer, SDL2_image, guile, libGLU_combined }:
 
 with stdenv.lib;
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "0y5y8xzfsjd0rxl5wnxdq7m9n97s5xvcqyjsckz4qxrjcc3lk297";
   };
 
-  buildInputs = [ cmake zlib SDL2 SDL2_ttf SDL2_mixer SDL2_image guile gettext mesa ];
+  buildInputs = [ cmake zlib SDL2 SDL2_ttf SDL2_mixer SDL2_image guile gettext libGLU_combined ];
 
   meta = {
     homepage = https://trackballs.github.io/;
diff --git a/pkgs/games/tremulous/default.nix b/pkgs/games/tremulous/default.nix
index f62a9976fe3ea..ce30be7be0b9c 100644
--- a/pkgs/games/tremulous/default.nix
+++ b/pkgs/games/tremulous/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, mesa, libX11, SDL, openal }:
+{ stdenv, fetchurl, unzip, libGLU_combined, libX11, SDL, openal }:
 stdenv.mkDerivation rec {
   name = "tremulous-${version}";
   version = "1.1.0";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     url = "http://releases.mercenariesguild.net/tremded/mg_tremded_source_1.01.tar.gz";
     sha256 = "1njrqlhzjvy9myddzkagszwdcf3m4h08wip888w2rmbshs6kz6ql";
   };
-  buildInputs = [ unzip mesa libX11 SDL openal ];
+  buildInputs = [ unzip libGLU_combined libX11 SDL openal ];
   unpackPhase = ''
     unzip $src1
     cd tremulous
diff --git a/pkgs/games/trigger/default.nix b/pkgs/games/trigger/default.nix
index df005af39e579..fc6a45ace57ba 100644
--- a/pkgs/games/trigger/default.nix
+++ b/pkgs/games/trigger/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, SDL2, freealut, SDL2_image, openal, physfs, zlib, mesa, glew }:
+{ fetchurl, stdenv, SDL2, freealut, SDL2_image, openal, physfs, zlib, libGLU_combined, glew }:
 
 stdenv.mkDerivation rec {
   name = "trigger-rally-0.6.5";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "095s4sx0s1ijlarkh84rvzlv4nxh9llrsal1lb3m3pf0v228gnzj";
   };
 
-  buildInputs = [ SDL2 freealut SDL2_image openal physfs zlib mesa glew ];
+  buildInputs = [ SDL2 freealut SDL2_image openal physfs zlib libGLU_combined glew ];
 
   preConfigure = ''
     sed s,/usr/local,$out, -i bin/*defs
diff --git a/pkgs/games/ufoai/default.nix b/pkgs/games/ufoai/default.nix
index 0d909e1c43c13..f699a6a05c624 100644
--- a/pkgs/games/ufoai/default.nix
+++ b/pkgs/games/ufoai/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libtheora, xvidcore, mesa, SDL, SDL_ttf, SDL_mixer
+{ stdenv, fetchurl, libtheora, xvidcore, libGLU_combined, SDL, SDL_ttf, SDL_mixer
 , curl, libjpeg, libpng, gettext, cunit, enableEditor?false }:
 
 stdenv.mkDerivation rec {
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional enableEditor "--enable-uforadiant";
 
   buildInputs = [
-    libtheora xvidcore mesa SDL SDL_ttf SDL_mixer
+    libtheora xvidcore libGLU_combined SDL SDL_ttf SDL_mixer
     curl libjpeg libpng gettext cunit
   ];
 
diff --git a/pkgs/games/ultimatestunts/default.nix b/pkgs/games/ultimatestunts/default.nix
index ce0fc3f6c90f3..63da46854857f 100644
--- a/pkgs/games/ultimatestunts/default.nix
+++ b/pkgs/games/ultimatestunts/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, SDL, mesa, SDL_image, freealut, openal, libvorbis,
+{stdenv, fetchurl, SDL, libGLU_combined, SDL_image, freealut, openal, libvorbis,
 pkgconfig}:
 
 stdenv.mkDerivation rec {
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ SDL mesa SDL_image freealut openal libvorbis ];
+  buildInputs = [ SDL libGLU_combined SDL_image freealut openal libvorbis ];
 
   postPatch = ''
     sed -e '1i#include <unistd.h>' -i $(find . -name '*.c' -o -name '*.cpp')
diff --git a/pkgs/games/ultrastardx/default.nix b/pkgs/games/ultrastardx/default.nix
index 67991987c3119..2e9b3cf8d8ca2 100644
--- a/pkgs/games/ultrastardx/default.nix
+++ b/pkgs/games/ultrastardx/default.nix
@@ -1,13 +1,13 @@
 { stdenv, autoreconfHook, fetchFromGitHub, pkgconfig
 , lua, fpc, pcre, portaudio, freetype, libpng
 , SDL2, SDL2_image, SDL2_gfx, SDL2_mixer, SDL2_net, SDL2_ttf
-, ffmpeg, sqlite, zlib, libX11, mesa }:
+, ffmpeg, sqlite, zlib, libX11, libGLU_combined }:
 
 let
   sharedLibs = [
     pcre portaudio freetype
     SDL2 SDL2_image SDL2_gfx SDL2_mixer SDL2_net SDL2_ttf
-    sqlite lua zlib libX11 mesa ffmpeg
+    sqlite lua zlib libX11 libGLU_combined ffmpeg
   ];
 
 in stdenv.mkDerivation rec {
diff --git a/pkgs/games/unvanquished/default.nix b/pkgs/games/unvanquished/default.nix
index af50759fd2fe7..5ea84b9ef41f9 100644
--- a/pkgs/games/unvanquished/default.nix
+++ b/pkgs/games/unvanquished/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, mesa, SDL, libjpeg, libpng, glew, libwebp, ncurses
+{ stdenv, fetchurl, cmake, libGLU_combined, SDL, libjpeg, libpng, glew, libwebp, ncurses
 , gmp, curl, nettle, openal, speex, libogg, libvorbis, libtheora, xvidcore
 , makeWrapper }:
 stdenv.mkDerivation rec {
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     url = "https://github.com/Unvanquished/Unvanquished/archive/v${version}.tar.gz";
     sha256 = "1k7mlpwalimn6xb2s760f124xncpg455qvls6z3x0ii5x0wc1mp2";
   };
-  buildInputs = [ cmake mesa SDL libjpeg libpng glew libwebp ncurses gmp curl
+  buildInputs = [ cmake libGLU_combined SDL libjpeg libpng glew libwebp ncurses gmp curl
                   nettle openal speex libogg libvorbis libtheora xvidcore 
                   makeWrapper ];
   preConfigure = ''prefix="$prefix/opt"'';
diff --git a/pkgs/games/uqm/3dovideo.nix b/pkgs/games/uqm/3dovideo.nix
index 0eb6e02eac54e..8d1bf2b688726 100644
--- a/pkgs/games/uqm/3dovideo.nix
+++ b/pkgs/games/uqm/3dovideo.nix
@@ -46,7 +46,7 @@ in stdenv.mkDerivation {
       The reason for this is because the 3DO uses its own proprietary disk
       format.
 
-      Save the file as videos.tar and use "nix-prefetch-url file://${name}" to
+      Save the file as videos.tar and use "nix-prefetch-url file://\$PWD/${name}" to
       add it to the Nix store.
 
       [*] ${helper}/bin/uqm3donix CDIMAGE ${name}
diff --git a/pkgs/games/uqm/default.nix b/pkgs/games/uqm/default.nix
index d8dcdf6b7b607..dd60c0efb599b 100644
--- a/pkgs/games/uqm/default.nix
+++ b/pkgs/games/uqm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, pkgconfig, mesa
+{ stdenv, lib, fetchurl, pkgconfig, libGLU_combined
 , SDL, SDL_image, libpng, zlib, libvorbis, libogg, libmikmod
 
 , use3DOVideos ? false, requireFile ? null, writeText ? null
@@ -51,7 +51,7 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ SDL SDL_image libpng libvorbis libogg libmikmod mesa ];
+  buildInputs = [ SDL SDL_image libpng libvorbis libogg libmikmod libGLU_combined ];
 
   postUnpack = ''
     mkdir -p uqm-${version}/content/packages
diff --git a/pkgs/games/urbanterror/default.nix b/pkgs/games/urbanterror/default.nix
index bc293a881079f..afff5a5c9eb3e 100644
--- a/pkgs/games/urbanterror/default.nix
+++ b/pkgs/games/urbanterror/default.nix
@@ -1,21 +1,21 @@
-{ stdenv, fetchurl, unzip, SDL, mesa, openal, curl, libXxf86vm }:
+{ stdenv, fetchurl, unzip, SDL, libGLU_combined, openal, curl, libXxf86vm }:
 
 stdenv.mkDerivation rec {
   name = "urbanterror-${version}";
-  version = "4.3.2";
+  version = "4.3.3";
 
   srcs =
     [ (fetchurl {
-         url = "http://cdn.fs1.urbanterror.info/urt/43/releases/zips/UrbanTerror432_full.zip";
-         sha256 = "192jwdyfy18cg413ysaklqc8yzmdnshljqc6dnr0xkd6dxbf3pkl";
+         url = "http://cdn.fs1.urbanterror.info/urt/43/releases/zips/UrbanTerror433_full.zip";
+         sha256 = "0rrh08ypnw805gd2wrs6af34nvp02x7vggfp0ymcmbr44wcjfn63";
        })
       (fetchurl {
          url = "https://github.com/Barbatos/ioq3-for-UrbanTerror-4/archive/release-${version}.zip";
-         sha256 = "0m376hdkk8vjnbdy8zakjazyag6jiw4n8zy4lxhv2ndn9mii8lcx";
+         sha256 = "1624zsnr02nhdksmwnwmvw129lw3afd8h0hvv2j8qmcyxa7jw68b";
        })
     ];
 
-  buildInputs = [ unzip SDL mesa openal curl libXxf86vm ];
+  buildInputs = [ unzip SDL libGLU_combined openal curl libXxf86vm ];
   sourceRoot = "ioq3-for-UrbanTerror-4-release-${version}";
 
   configurePhase = ''
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   postFixup = ''
     p=$out/opt/urbanterror/Quake3-UrT
     cur_rpath=$(patchelf --print-rpath $p)
-    patchelf --set-rpath $cur_rpath:${mesa}/lib $p
+    patchelf --set-rpath $cur_rpath:${libGLU_combined}/lib $p
   '';
 
   hardeningDisable = [ "format" ];
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://www.urbanterror.net;
     license = licenses.unfreeRedistributable;
-    maintainers = with maintainers; [ astsmtl ];
+    maintainers = with maintainers; [ astsmtl fpletz ];
     platforms = platforms.linux;
     hydraPlatforms = [];
   };
diff --git a/pkgs/games/vdrift/default.nix b/pkgs/games/vdrift/default.nix
index 81b95ddb9e1cd..ce20d1b3f1779 100644
--- a/pkgs/games/vdrift/default.nix
+++ b/pkgs/games/vdrift/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, scons, mesa, SDL2, SDL2_image
+{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, scons, libGLU_combined, SDL2, SDL2_image
 , libvorbis, bullet, curl, gettext, writeTextFile, writeShellScriptBin
 
 , data ? fetchsvn {
@@ -20,7 +20,7 @@ let
     };
 
     nativeBuildInputs = [ pkgconfig ];
-    buildInputs = [ scons mesa SDL2 SDL2_image libvorbis bullet curl gettext ];
+    buildInputs = [ scons libGLU_combined SDL2 SDL2_image libvorbis bullet curl gettext ];
 
     patches = [ ./0001-Ignore-missing-data-for-installation.patch ];
 
diff --git a/pkgs/games/vessel/default.nix b/pkgs/games/vessel/default.nix
index 34b9a606fb964..62feeb97d5215 100644
--- a/pkgs/games/vessel/default.nix
+++ b/pkgs/games/vessel/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   goBuyItNow = '' 
     We cannot download the full version automatically, as you require a license.
     Once you bought a license, you need to add your downloaded version to the nix store.
-    You can do this by using "nix-prefetch-url file://${name}-bin" in the
+    You can do this by using "nix-prefetch-url file://\$PWD/${name}-bin" in the
     directory where you saved it.
   ''; 
 
diff --git a/pkgs/games/voxelands/default.nix b/pkgs/games/voxelands/default.nix
index c3ec47273d8f8..9990c9108c498 100644
--- a/pkgs/games/voxelands/default.nix
+++ b/pkgs/games/voxelands/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cmake, irrlicht, libpng, bzip2, sqlite
-, libjpeg, libXxf86vm, mesa, openal, libvorbis, xlibsWrapper, pkgconfig }:
+, libjpeg, libXxf86vm, libGLU_combined, openal, libvorbis, xlibsWrapper, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "voxelands-${version}";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cmake irrlicht libpng bzip2 libjpeg sqlite
-    libXxf86vm mesa openal libvorbis xlibsWrapper pkgconfig
+    libXxf86vm libGLU_combined openal libvorbis xlibsWrapper pkgconfig
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/warsow/default.nix b/pkgs/games/warsow/default.nix
index 85246aea2d5fe..3e1729e209151 100644
--- a/pkgs/games/warsow/default.nix
+++ b/pkgs/games/warsow/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, unzip, pkgconfig, zlib, curl, libjpeg, libpng, libvorbis
-, libtheora, libXxf86dga, libXxf86vm, libXinerama, SDL, mesa, openal, freetype
+, libtheora, libXxf86dga, libXxf86vm, libXinerama, SDL, libGLU_combined, openal, freetype
 , makeWrapper
 }:
 stdenv.mkDerivation rec {
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ unzip zlib curl libjpeg libpng libvorbis libtheora
-                  libXxf86dga libXxf86vm libXinerama SDL mesa openal makeWrapper
+                  libXxf86dga libXxf86vm libXinerama SDL libGLU_combined openal makeWrapper
                 ];
   installPhase = ''
     dest=$out/opt/warsow
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   postFixup = ''
     p=$out/opt/warsow/warsow.*
     cur_rpath=$(patchelf --print-rpath $p)
-    patchelf --set-rpath $cur_rpath:${mesa}/lib $p
+    patchelf --set-rpath $cur_rpath:${libGLU_combined}/lib $p
   '';
   meta = with stdenv.lib; {
     description = "Multiplayer FPS game designed for competitive gaming";
diff --git a/pkgs/games/worldofgoo/default.nix b/pkgs/games/worldofgoo/default.nix
index ba887d91de19c..af76e85346f79 100644
--- a/pkgs/games/worldofgoo/default.nix
+++ b/pkgs/games/worldofgoo/default.nix
@@ -1,5 +1,5 @@
 { stdenv, config, requireFile, fetchurl
-, libX11, libXext, libXau, libxcb, libXdmcp , SDL, SDL_mixer, libvorbis, mesa
+, libX11, libXext, libXau, libxcb, libXdmcp , SDL, SDL_mixer, libvorbis, libGLU_combined
 , demo ? false }:
 
 # TODO: add i686 support
@@ -15,16 +15,16 @@ stdenv.mkDerivation rec {
   goBuyItNow = '' 
     We cannot download the full version automatically, as you require a license.
     Once you bought a license, you need to add your downloaded version to the nix store.
-    You can do this by using "nix-prefetch-url file://WorldOfGooSetup.1.41.tar.gz" in the
+    You can do this by using "nix-prefetch-url file://\$PWD/WorldOfGooSetup.1.41.tar.gz" in the
     directory where you saved it.
 
     Or you can install the demo version: 'nix-env -i -A pkgs.worldofgoo_demo'. 
   ''; 
 
   getTheDemo = ''
-    We cannot download the demo version automatically, please go to
+    We cannot download the demo version automatically. Please go to
     http://worldofgoo.com/dl2.php?lk=demo, then add it to your nix store.
-    You can do this by using "nix-prefetch-url file://WorldOfGooDemo.1.41.tar.gz" in the
+    You can do this by using "nix-prefetch-url file://\$PWD/WorldOfGooDemo.1.41.tar.gz" in the
     directory where you saved it.
   '';
 
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   # XXX: stdenv.lib.makeLibraryPath doesn't pick up /lib64
   libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc ] 
-    + ":" + stdenv.lib.makeLibraryPath [libX11 libXext libXau libxcb libXdmcp SDL SDL_mixer libvorbis mesa ]
+    + ":" + stdenv.lib.makeLibraryPath [libX11 libXext libXau libxcb libXdmcp SDL SDL_mixer libvorbis libGLU_combined ]
     + ":" + stdenv.cc.cc + "/lib64";
 
   installPhase = ''
diff --git a/pkgs/games/xmoto/default.nix b/pkgs/games/xmoto/default.nix
index 29c6cba853ce3..ffb3a0227d9e9 100644
--- a/pkgs/games/xmoto/default.nix
+++ b/pkgs/games/xmoto/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, chipmunk, sqlite, curl, zlib, bzip2, libjpeg
-, libpng, freeglut, mesa, SDL, SDL_mixer, SDL_image, SDL_net
+, libpng, freeglut, libGLU_combined, SDL, SDL_mixer, SDL_image, SDL_net
 , SDL_ttf, lua5, ode, libxdg_basedir, libxml2 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     chipmunk sqlite curl zlib bzip2 libjpeg libpng
-    freeglut mesa SDL SDL_mixer SDL_image SDL_net SDL_ttf
+    freeglut libGLU_combined SDL SDL_mixer SDL_image SDL_net SDL_ttf
     lua5 ode libxdg_basedir libxml2
   ];
 
diff --git a/pkgs/games/xonotic/default.nix b/pkgs/games/xonotic/default.nix
index 531560fd309e7..7fd5612bf8868 100644
--- a/pkgs/games/xonotic/default.nix
+++ b/pkgs/games/xonotic/default.nix
@@ -2,7 +2,7 @@
 , # required for both
   unzip, libjpeg, zlib, libvorbis, curl, patchelf
 , # glx
-  libX11, mesa, libXpm, libXext, libXxf86vm, alsaLib
+  libX11, libGLU_combined, libXpm, libXext, libXxf86vm, alsaLib
 , # sdl
   SDL2
 }:
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     # required for both
     unzip libjpeg
     # glx
-    libX11 mesa libXpm libXext libXxf86vm alsaLib
+    libX11 libGLU_combined libXpm libXext libXxf86vm alsaLib
     # sdl
     SDL2
     zlib libvorbis curl
diff --git a/pkgs/games/xpilot/bloodspilot-client.nix b/pkgs/games/xpilot/bloodspilot-client.nix
index 90c1ad6f8ebc8..cd927a820aaa4 100644
--- a/pkgs/games/xpilot/bloodspilot-client.nix
+++ b/pkgs/games/xpilot/bloodspilot-client.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libX11, SDL, mesa, expat, zlib, SDL_ttf, SDL_image }:
+{ stdenv, fetchurl, libX11, SDL, libGLU_combined, expat, zlib, SDL_ttf, SDL_image }:
 
 stdenv.mkDerivation rec {
   version = "1.5.0";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    libX11 SDL SDL_ttf SDL_image mesa expat zlib
+    libX11 SDL SDL_ttf SDL_image libGLU_combined expat zlib
   ];
 
   NIX_LDFLAGS = [ "-lX11" ];
diff --git a/pkgs/games/xpilot/default.nix b/pkgs/games/xpilot/default.nix
index 514dd2f41db42..86412c0fa7684 100644
--- a/pkgs/games/xpilot/default.nix
+++ b/pkgs/games/xpilot/default.nix
@@ -1,7 +1,7 @@
-{stdenv, fetchurl, libX11, libSM, SDL, mesa, expat, SDL_ttf, SDL_image, zlib}:
+{stdenv, fetchurl, libX11, libSM, SDL, libGLU_combined, expat, SDL_ttf, SDL_image, zlib}:
 let
   buildInputs = [
-    libX11 libSM SDL SDL_ttf SDL_image mesa expat zlib
+    libX11 libSM SDL SDL_ttf SDL_image libGLU_combined expat zlib
   ];
 in
 stdenv.mkDerivation rec {
diff --git a/pkgs/games/zandronum/default.nix b/pkgs/games/zandronum/default.nix
index df58304b38d87..377741ef5447c 100644
--- a/pkgs/games/zandronum/default.nix
+++ b/pkgs/games/zandronum/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchhg, cmake, pkgconfig, makeWrapper, callPackage
-, soundfont-fluid, SDL, mesa, glew, bzip2, zlib, libjpeg, fluidsynth, openssl, gtk2, python3
+, soundfont-fluid, SDL, libGLU_combined, glew, bzip2, zlib, libjpeg, fluidsynth, openssl, gtk2, python3
 , serverOnly ? false
 }:
 
@@ -28,7 +28,7 @@ in stdenv.mkDerivation {
   # I have no idea why would SDL and libjpeg be needed for the server part!
   # But they are.
   buildInputs = [ openssl bzip2 zlib SDL libjpeg sqlite ]
-             ++ lib.optionals (!serverOnly) [ mesa glew fmod fluidsynth gtk2 ];
+             ++ lib.optionals (!serverOnly) [ libGLU_combined glew fmod fluidsynth gtk2 ];
 
   nativeBuildInputs = [ cmake pkgconfig makeWrapper python3 ];
 
diff --git a/pkgs/misc/apulse/default.nix b/pkgs/misc/apulse/default.nix
index 343dbecb22c02..58e50a50f0f96 100644
--- a/pkgs/misc/apulse/default.nix
+++ b/pkgs/misc/apulse/default.nix
@@ -1,14 +1,17 @@
-{ stdenv, fetchFromGitHub, alsaLib, cmake, pkgconfig, glib }:
+{ stdenv, fetchFromGitHub, alsaLib, cmake, pkgconfig, glib
+, tracingSupport ? true, logToStderr ? true }:
+
+let oz = x: if x then "1" else "0"; in
 
 stdenv.mkDerivation rec {
   name = "apulse-${version}";
-  version = "0.1.11";
+  version = "0.1.11.1";
 
   src = fetchFromGitHub {
     owner = "i-rinat";
     repo = "apulse";
-    rev = "v${version}";
-    sha256 = "16l278q0czca2794fj388ql6qn1zrw24a0p6k7bayrrf5h32fdzd";
+    rev = "602b3a02b4b459d4652a3a0a836fab6f892d4080";
+    sha256 = "0yk9vgb4aws8xnkhdhgpxp5c0rri8yq61yxk85j99j8ax806i3r8";
   };
 
   enableParallelBuilding = true;
@@ -17,6 +20,11 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ alsaLib glib ];
 
+  cmakeFlags = [
+    "-DWITH_TRACE=${oz tracingSupport}"
+    "-DLOG_TO_STDERR=${oz logToStderr}"
+  ];
+
   meta = with stdenv.lib; {
     description = "PulseAudio emulation for ALSA";
     homepage = https://github.com/i-rinat/apulse;
diff --git a/pkgs/misc/apulse/pressureaudio.nix b/pkgs/misc/apulse/pressureaudio.nix
index 255fca842a736..142b727845783 100644
--- a/pkgs/misc/apulse/pressureaudio.nix
+++ b/pkgs/misc/apulse/pressureaudio.nix
@@ -60,22 +60,22 @@ stdenv.mkDerivation {
   '';
 
   meta = apulse.meta // {
-    description = "libpulseaudio without any sound daemons over pure ALSA";
+    description = "libpulse without any sound daemons over pure ALSA";
     longDescription = ''
-      apulse (${apulse.meta.homepage}) implements most of libpulseaudio
+      apulse (${apulse.meta.homepage}) implements most of libpulse
       API over pure ALSA in 5% LOC of the original PulseAudio.
 
       But apulse is made to be used as a wrapper that substitutes its
       replacement libs into LD_LIBRARY_PATH. The problem with that is
-      that you still have to link against the original libpulseaudio.
+      that you still have to link against the original libpulse.
 
       pressureaudio (http://git.r-36.net/pressureaudio/) wraps apulse
-      with everything you need to replace libpulseaudio completely.
+      with everything you need to replace libpulse completely.
 
       This derivation is a reimplementation of pressureaudio in pure
       nix.
 
-      You can simply override libpulseaudio with this and most
+      You can simply override libpulse with this and most
       packages would just work.
     '';
   };
diff --git a/pkgs/misc/emulators/atari800/default.nix b/pkgs/misc/emulators/atari800/default.nix
index cc5d57ab6f9c9..9467345db1c27 100644
--- a/pkgs/misc/emulators/atari800/default.nix
+++ b/pkgs/misc/emulators/atari800/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl
-, unzip, zlib, SDL, readline, mesa, libX11 }:
+, unzip, zlib, SDL, readline, libGLU_combined, libX11 }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec{
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec{
     sha256 = "030yz5l1wyq9l0dmiimiiwpzrjr43whycd409xhhpnrdx76046wh";
   };
 
-  buildInputs = [ unzip zlib SDL readline mesa libX11 ];
+  buildInputs = [ unzip zlib SDL readline libGLU_combined libX11 ];
 
   configureFlags = "--target=default --with-video=sdl --with-sound=sdl --with-readline --with-opengl --with-x --enable-riodevice";
 
diff --git a/pkgs/misc/emulators/attract-mode/default.nix b/pkgs/misc/emulators/attract-mode/default.nix
index 4b8378368a3f0..601503dc07ec9 100644
--- a/pkgs/misc/emulators/attract-mode/default.nix
+++ b/pkgs/misc/emulators/attract-mode/default.nix
@@ -1,5 +1,5 @@
 { expat, fetchFromGitHub, ffmpeg, fontconfig, freetype, libarchive, libjpeg
-, mesa, openal, pkgconfig, sfml, stdenv, zlib
+, libGLU_combined, openal, pkgconfig, sfml, stdenv, zlib
 }:
 
 stdenv.mkDerivation rec {
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    expat ffmpeg fontconfig freetype libarchive libjpeg mesa openal sfml zlib
+    expat ffmpeg fontconfig freetype libarchive libjpeg libGLU_combined openal sfml zlib
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/misc/emulators/caprice32/default.nix b/pkgs/misc/emulators/caprice32/default.nix
new file mode 100644
index 0000000000000..5928d53d54226
--- /dev/null
+++ b/pkgs/misc/emulators/caprice32/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, libpng, pkgconfig, SDL, freetype, zlib, mesa }:
+
+stdenv.mkDerivation rec {
+
+  repo = "caprice32";
+  version = "unstable-2018-02-10";
+  rev = "53de69543300f81af85df32cbd21bb5c68cab61e";
+  name = "${repo}-${version}";
+
+  src = fetchFromGitHub {
+    inherit rev repo;
+    owner = "ColinPitrat";
+    sha256 = "12yv56blm49qmshpk4mgc802bs51wv2ra87hmcbf2wxma39c45fy";
+  };
+
+  postPatch = "substituteInPlace cap32.cfg --replace /usr/local $out";
+
+  meta = with stdenv.lib; {
+    description = "A complete emulation of CPC464, CPC664 and CPC6128";
+    homepage = https://github.com/ColinPitrat/caprice32 ;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.genesis ];
+    platforms = platforms.linux;
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libpng SDL freetype zlib ];
+  makeFlags = [ "GIT_HASH=${src.rev}" "DESTDIR=$(out)" "prefix=/"];
+}
diff --git a/pkgs/misc/emulators/citra/default.nix b/pkgs/misc/emulators/citra/default.nix
index db1de37da962f..453114e3b7a0f 100644
--- a/pkgs/misc/emulators/citra/default.nix
+++ b/pkgs/misc/emulators/citra/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = https://citra-emu.org/;
     description = "An open-source emulator for the Nintendo 3DS capable of playing many of your favorite games.";
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" "i686-linux" ];
     license = licenses.gpl2;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/misc/emulators/desmume/default.nix b/pkgs/misc/emulators/desmume/default.nix
index a919d21626b60..d177012546e9c 100644
--- a/pkgs/misc/emulators/desmume/default.nix
+++ b/pkgs/misc/emulators/desmume/default.nix
@@ -5,7 +5,7 @@
 , agg, alsaLib, soundtouch, openal
 , desktop-file-utils
 , gtk2, gtkglext, libglade, pangox_compat
-, mesa_glu, libpcap, SDL, zziplib }:
+, libGLU, libpcap, SDL, zziplib }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -26,10 +26,12 @@ stdenv.mkDerivation rec {
      })
   ];
 
+  CXXFLAGS = "-fpermissive";
+
   buildInputs =
   [ pkgconfig libtool intltool libXmu lua agg alsaLib soundtouch
     openal desktop-file-utils gtk2 gtkglext libglade pangox_compat
-    mesa_glu libpcap SDL zziplib ];
+    libGLU libpcap SDL zziplib ];
 
   configureFlags = [
     "--disable-glade"  # Failing on compile step
diff --git a/pkgs/misc/emulators/dolphin-emu/default.nix b/pkgs/misc/emulators/dolphin-emu/default.nix
index 8025cf766f07d..01e1847973c70 100644
--- a/pkgs/misc/emulators/dolphin-emu/default.nix
+++ b/pkgs/misc/emulators/dolphin-emu/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, pkgconfig, cmake, bluez, ffmpeg, libao, gtk2, glib, mesa
+{ stdenv, pkgconfig, cmake, bluez, ffmpeg, libao, gtk2, glib, libGLU_combined
 , gettext, libpthreadstubs, libXrandr, libXext, readline, openal
 , libXdmcp, portaudio, fetchFromGitHub, libusb, libevdev
 , wxGTK30, soundtouch, miniupnpc, mbedtls, curl, lzo, sfml
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake bluez ffmpeg libao mesa gtk2 glib
+  buildInputs = [ cmake bluez ffmpeg libao libGLU_combined gtk2 glib
                   gettext libpthreadstubs libXrandr libXext readline openal
                   libevdev libXdmcp portaudio libusb libpulseaudio
                   libevdev libXdmcp portaudio libusb libpulseaudio
diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix
index c18a63f720ddf..e2bac5d3884c3 100644
--- a/pkgs/misc/emulators/dolphin-emu/master.nix
+++ b/pkgs/misc/emulators/dolphin-emu/master.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, bluez, ffmpeg, libao, libGLU_combined, gtk2, glib
 , pcre, gettext, libpthreadstubs, libXrandr, libXext, libSM, readline
 , openal, libXdmcp, portaudio, libusb, libevdev
 , libpulseaudio ? null
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
-  buildInputs = [ curl ffmpeg libao mesa gtk2 glib pcre
+  buildInputs = [ curl ffmpeg libao libGLU_combined gtk2 glib pcre
                   gettext libpthreadstubs libXrandr libXext libSM readline openal
                   libXdmcp portaudio libusb libpulseaudio libpng hidapi
                 ] ++ stdenv.lib.optionals stdenv.isDarwin [ wxGTK CoreBluetooth cf-private ForceFeedback IOKit OpenGL ]
diff --git a/pkgs/misc/emulators/dosbox/default.nix b/pkgs/misc/emulators/dosbox/default.nix
index 48696f6b30085..57e76a9643769 100644
--- a/pkgs/misc/emulators/dosbox/default.nix
+++ b/pkgs/misc/emulators/dosbox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, SDL, makeDesktopItem, mesa }:
+{ stdenv, lib, fetchurl, SDL, makeDesktopItem, libGLU_combined }:
 
 stdenv.mkDerivation rec {
   name = "dosbox-0.74";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  buildInputs = [ SDL mesa ];
+  buildInputs = [ SDL libGLU_combined ];
 
   configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
 
diff --git a/pkgs/misc/emulators/dosbox/unstable.nix b/pkgs/misc/emulators/dosbox/unstable.nix
index a17dd6a775eaf..86dfd25d175f8 100644
--- a/pkgs/misc/emulators/dosbox/unstable.nix
+++ b/pkgs/misc/emulators/dosbox/unstable.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchsvn, SDL, SDL_net, SDL_sound, libpng, makeDesktopItem, mesa, autoreconfHook }:
+{ stdenv, fetchurl, fetchsvn, SDL, SDL_net, SDL_sound, libpng, makeDesktopItem, libGLU_combined, autoreconfHook }:
 
 let revision = "4025";
     revisionDate = "2017-07-02";
@@ -15,7 +15,7 @@ in stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ SDL SDL_net SDL_sound libpng mesa ];
+  buildInputs = [ SDL SDL_net SDL_sound libpng libGLU_combined ];
 
   desktopItem = makeDesktopItem {
     name = "dosbox";
diff --git a/pkgs/misc/emulators/emulationstation/default.nix b/pkgs/misc/emulators/emulationstation/default.nix
index b700b22807c4d..16cb7af3d6008 100644
--- a/pkgs/misc/emulators/emulationstation/default.nix
+++ b/pkgs/misc/emulators/emulationstation/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pkgconfig, cmake, curl, boost, eigen
-, freeimage, freetype, mesa, SDL2, alsaLib, libarchive }:
+, freeimage, freetype, libGLU_combined, SDL2, alsaLib, libarchive }:
 
 stdenv.mkDerivation rec {
   name = "emulationstation-${version}";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake alsaLib boost curl eigen freeimage freetype libarchive mesa SDL2 ];
+  buildInputs = [ cmake alsaLib boost curl eigen freeimage freetype libarchive libGLU_combined SDL2 ];
 
   buildPhase = "cmake . && make";
   installPhase = ''
diff --git a/pkgs/misc/emulators/fakenes/default.nix b/pkgs/misc/emulators/fakenes/default.nix
index 4d698563469e1..eb7964cc017d5 100644
--- a/pkgs/misc/emulators/fakenes/default.nix
+++ b/pkgs/misc/emulators/fakenes/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, allegro, openal, mesa, zlib, hawknl, freeglut, libX11,
+{stdenv, fetchurl, allegro, openal, libGLU_combined, zlib, hawknl, freeglut, libX11,
   libXxf86vm, libXcursor, libXpm }:
 
 stdenv.mkDerivation {
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "026h67s4pzc1vma59pmzk02iy379255qbai2q74wln9bxqcpniy4";
   };
 
-  buildInputs = [ allegro openal mesa zlib hawknl freeglut libX11
+  buildInputs = [ allegro openal libGLU_combined zlib hawknl freeglut libX11
     libXxf86vm libXcursor libXpm ];
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/misc/emulators/fs-uae/default.nix b/pkgs/misc/emulators/fs-uae/default.nix
index 8b2409b74c33d..6ba5290fa4243 100644
--- a/pkgs/misc/emulators/fs-uae/default.nix
+++ b/pkgs/misc/emulators/fs-uae/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig
-, gettext, gtk2, SDL2, zlib, glib, openal, mesa, lua, freetype, libmpeg2, zip }:
+, gettext, gtk2, SDL2, zlib, glib, openal, libGLU_combined, lua, freetype, libmpeg2, zip }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gettext gtk2 SDL2 zlib glib openal mesa lua freetype libmpeg2 zip ];
+  buildInputs = [ gettext gtk2 SDL2 zlib glib openal libGLU_combined lua freetype libmpeg2 zip ];
 
   meta = {
     description = "An accurate, customizable Amiga Emulator";
diff --git a/pkgs/misc/emulators/gens-gs/default.nix b/pkgs/misc/emulators/gens-gs/default.nix
index 74aa29e84ef81..f5ba2ef218d10 100644
--- a/pkgs/misc/emulators/gens-gs/default.nix
+++ b/pkgs/misc/emulators/gens-gs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gtk2, SDL, nasm, zlib, libpng, mesa }:
+{ stdenv, fetchurl, pkgconfig, gtk2, SDL, nasm, zlib, libpng, libGLU_combined }:
 
 stdenv.mkDerivation { 
   name = "gens-gs-7";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk2 SDL nasm zlib libpng mesa ];
+  buildInputs = [ gtk2 SDL nasm zlib libpng libGLU_combined ];
 
   # Work around build failures on recent GTK+.
   # See http://ubuntuforums.org/showthread.php?p=10535837
diff --git a/pkgs/misc/emulators/higan/default.nix b/pkgs/misc/emulators/higan/default.nix
index 87e619358c8cc..7b42e8d603391 100644
--- a/pkgs/misc/emulators/higan/default.nix
+++ b/pkgs/misc/emulators/higan/default.nix
@@ -2,7 +2,7 @@
 , p7zip, pkgconfig
 , libX11, libXv
 , udev
-, mesa, SDL
+, libGLU_combined, SDL
 , libao, openal, libpulseaudio
 , gtk2, gtksourceview }:
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   postPatch = "sed '1i#include <cmath>' -i higan/fc/ppu/ppu.cpp";
 
   buildInputs =
-  [ p7zip pkgconfig libX11 libXv udev mesa SDL libao openal libpulseaudio gtk2 gtksourceview ];
+  [ p7zip pkgconfig libX11 libXv udev libGLU_combined SDL libao openal libpulseaudio gtk2 gtksourceview ];
 
   unpackPhase = ''
     7z x $src
diff --git a/pkgs/misc/emulators/mednafen/default.nix b/pkgs/misc/emulators/mednafen/default.nix
index 1172a89caf325..9101c1587c257 100644
--- a/pkgs/misc/emulators/mednafen/default.nix
+++ b/pkgs/misc/emulators/mednafen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, freeglut, mesa, libcdio, libjack2
+{ stdenv, fetchurl, pkgconfig, freeglut, libGLU_combined, libcdio, libjack2
 , libsamplerate, libsndfile, libX11, SDL, SDL_net, zlib }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     freeglut
-    mesa
+    libGLU_combined
     libcdio
     libjack2
     libsamplerate
diff --git a/pkgs/misc/emulators/mess/default.nix b/pkgs/misc/emulators/mess/default.nix
index 98bd8bae3e021..65867de61a237 100644
--- a/pkgs/misc/emulators/mess/default.nix
+++ b/pkgs/misc/emulators/mess/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, pkgconfig, SDL, gtk2, GConf, mesa
+{ stdenv, fetchurl, unzip, pkgconfig, SDL, gtk2, GConf, libGLU_combined
 , expat, zlib }:
 
 let
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
   makeFlags = "TARGET=mess BUILD_EXPAT= BUILD_ZLIB= NOWERROR=1";
 
   buildInputs =
-    [ unzip pkgconfig SDL gtk2 GConf mesa expat zlib ];
+    [ unzip pkgconfig SDL gtk2 GConf libGLU_combined expat zlib ];
 
   installPhase =
     ''
diff --git a/pkgs/misc/emulators/nestopia/default.nix b/pkgs/misc/emulators/nestopia/default.nix
index fb00696b06708..8a366ba737f31 100644
--- a/pkgs/misc/emulators/nestopia/default.nix
+++ b/pkgs/misc/emulators/nestopia/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, SDL2, alsaLib, gtk3, mesa_glu
-, makeWrapper, mesa, libarchive, libao, unzip, xdg_utils, gsettings-desktop-schemas
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, SDL2, alsaLib, gtk3
+, makeWrapper, libGLU_combined, libarchive, libao, unzip, xdg_utils, gsettings-desktop-schemas
 , epoxy, gdk_pixbuf, gnome3, wrapGAppsHook
 }:
 
@@ -25,8 +25,7 @@ stdenv.mkDerivation rec {
     epoxy
     gtk3
     gdk_pixbuf
-    mesa_glu
-    mesa
+    libGLU_combined
     libarchive
     libao
     unzip
diff --git a/pkgs/misc/emulators/openmsx/default.nix b/pkgs/misc/emulators/openmsx/default.nix
index bb954582de5da..d2539cbc81717 100644
--- a/pkgs/misc/emulators/openmsx/default.nix
+++ b/pkgs/misc/emulators/openmsx/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pkgconfig
 , python
-, alsaLib, glew, mesa_noglu, libpng
+, alsaLib, glew, libGL, libpng
 , libogg, libtheora, libvorbis
 , SDL, SDL_image, SDL_ttf
 , freetype, tcl, zlib
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig python ];
 
-  buildInputs = [ alsaLib glew mesa_noglu libpng
+  buildInputs = [ alsaLib glew libGL libpng
     libogg libtheora libvorbis freetype
     SDL SDL_image SDL_ttf tcl zlib ];
 
diff --git a/pkgs/misc/emulators/qmc2/default.nix b/pkgs/misc/emulators/qmc2/default.nix
new file mode 100644
index 0000000000000..2e47cead8ec20
--- /dev/null
+++ b/pkgs/misc/emulators/qmc2/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchurl, qmake, qttools, pkgconfig
+, minizip, zlib
+, qtbase, qtsvg, qtmultimedia, qtwebkit, qttranslations, qtxmlpatterns
+, rsync, SDL2, xwininfo
+, utillinux
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  name = "qmc2-${version}";
+  version = "0.195";
+
+  src = fetchurl {
+      url = "mirror://sourceforge/project/qmc2/qmc2/${version}/${name}.tar.gz";
+      sha256 = "1dzmjlfk8pdspns6zg1jmd5fqzg8igd4q38cz4a1vf39lx74svns";
+  };
+  
+  preBuild = ''
+    patchShebangs scripts
+  '';
+
+  nativeBuildInputs = [ qttools pkgconfig ];
+  buildInputs = [ minizip qtbase qtsvg qtmultimedia qtwebkit
+                  qttranslations qtxmlpatterns rsync SDL2
+                  xwininfo zlib utillinux xorg.libxcb ];
+
+  makeFlags = [ "DESTDIR=$(out)"
+                "PREFIX=/"
+                "DATADIR=/share/"
+                "SYSCONFDIR=/etc" ];
+
+  meta = with stdenv.lib; {
+    description = "A Qt frontend for MAME/MESS";
+    homepage = https://qmc2.batcom-it.net;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.genesis ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix
index 090942371d736..d6b3b6a98706d 100644
--- a/pkgs/misc/emulators/retroarch/cores.nix
+++ b/pkgs/misc/emulators/retroarch/cores.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchgit, cmake, pkgconfig, makeWrapper, python27, retroarch
-, alsaLib, fluidsynth, curl, hidapi, mesa, gettext, glib, gtk2, portaudio, SDL
+{ stdenv, fetchgit, fetchFromGitLab, cmake, pkgconfig, makeWrapper, python27, retroarch
+, alsaLib, fluidsynth, curl, hidapi, libGLU_combined, gettext, glib, gtk2, portaudio, SDL
 , ffmpeg, pcre, libevdev, libpng, libjpeg, libudev, libvorbis
 , miniupnpc, sfml, xorg, zlib }:
 
@@ -147,7 +147,7 @@ in with stdenv.lib.licenses;
     license = gpl2Plus;
 
     extraBuildInputs = [
-      cmake curl mesa pcre pkgconfig sfml miniupnpc
+      cmake curl libGLU_combined pcre pkgconfig sfml miniupnpc
       gettext glib gtk2 hidapi
       libevdev libudev
     ] ++ (with xorg; [ libSM libX11 libXi libpthreadstubs libxcb xcbutil ]);
@@ -215,6 +215,21 @@ in with stdenv.lib.licenses;
     license = "Non-commercial";
   };
 
+  higan-sfc = (mkLibRetroCore rec {
+    core = "higan-sfc";
+    src = fetchFromGitLab {
+      owner = "higan";
+      repo = "higan";
+      rev = "d3f592013a27cb78f17d84f90a6be6cf6f6af1d1";
+      sha256 = "19d4cbwg8d085xq5lmql4v5l4ckgwqzc59ha5yfgv3w4qfp4dmij";
+    };
+    description = "Accurate SNES / Super Famicom emulator";
+    license = gpl3;
+  }).override {
+    makefile = "GNUmakefile";
+    buildPhase = "cd higan && make compiler=g++ target=libretro binary=library && cd out";
+  };
+
   mame = (mkLibRetroCore {
     core = "mame";
     src = fetchRetro {
@@ -225,7 +240,7 @@ in with stdenv.lib.licenses;
     description = "Port of MAME to libretro";
     license = gpl2Plus;
 
-    extraBuildInputs = [ alsaLib mesa portaudio python27 xorg.libX11 ];
+    extraBuildInputs = [ alsaLib libGLU_combined portaudio python27 xorg.libX11 ];
   }).override {
     postPatch = ''
       # Prevent the failure during the parallel building of:
@@ -255,7 +270,7 @@ in with stdenv.lib.licenses;
     description = "Libretro port of Mupen64 Plus, GL only";
     license = gpl2;
 
-    extraBuildInputs = [ mesa libpng ];
+    extraBuildInputs = [ libGLU_combined libpng ];
   }).override {
     buildPhase = "make WITH_DYNAREC=${if stdenv.system == "x86_64-linux" then "x86_64" else "x86"}";
   };
@@ -283,7 +298,7 @@ in with stdenv.lib.licenses;
     description = "Parallel Mupen64plus rewrite for libretro.";
     license = gpl2;
 
-    extraBuildInputs = [ mesa libpng ];
+    extraBuildInputs = [ libGLU_combined libpng ];
   }).override {
     buildPhase = "make WITH_DYNAREC=${if stdenv.system == "x86_64-linux" then "x86_64" else "x86"}";
   };
@@ -313,7 +328,7 @@ in with stdenv.lib.licenses;
     };
     description = "ppsspp libretro port";
     license = gpl2;
-    extraBuildInputs = [ mesa ffmpeg ];
+    extraBuildInputs = [ libGLU_combined ffmpeg ];
   }).override {
     buildPhase = "cd libretro && make";
   };
@@ -353,7 +368,7 @@ in with stdenv.lib.licenses;
     };
     description = "Reicast libretro port";
     license = gpl2;
-    extraBuildInputs = [ mesa ];
+    extraBuildInputs = [ libGLU_combined ];
   }).override {
     buildPhase = "make";
   };
@@ -367,7 +382,7 @@ in with stdenv.lib.licenses;
     };
     description = "Libretro port of ScummVM";
     license = gpl2;
-    extraBuildInputs = [ fluidsynth libjpeg libvorbis mesa SDL ];
+    extraBuildInputs = [ fluidsynth libjpeg libvorbis libGLU_combined SDL ];
   }).override {
     buildPhase = "cd backends/platform/libretro/build && make";
   };
diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix
index 5e5ce9edca4ba..e898a5804b061 100644
--- a/pkgs/misc/emulators/retroarch/default.nix
+++ b/pkgs/misc/emulators/retroarch/default.nix
@@ -1,61 +1,52 @@
-{ stdenv, fetchFromGitHub, makeDesktopItem, coreutils, which, pkgconfig
-, ffmpeg, mesa, freetype, libxml2, python34
+{ stdenv, fetchFromGitHub, which, pkgconfig, makeWrapper
+, ffmpeg, libGLU_combined, freetype, libxml2, python34
+, libobjc, AppKit, Foundation
+, alsaLib ? null
+, libpulseaudio ? null
+, libv4l ? null
+, libX11 ? null
+, libXdmcp ? null
+, libXext ? null
+, libXxf86vm ? null
+, SDL2 ? null
+, udev ? null
 , enableNvidiaCgToolkit ? false, nvidia_cg_toolkit ? null
-, alsaLib ? null, libv4l ? null
-, udev ? null, libX11 ? null, libXext ? null, libXxf86vm ? null
-, libXdmcp ? null, SDL ? null, libpulseaudio ? null
+, withVulkan ? stdenv.isLinux, vulkan-loader ? null
 }:
 
 with stdenv.lib;
 
-let
-  desktopItem = makeDesktopItem {
-    name = "retroarch";
-    exec = "retroarch";
-    icon = "retroarch";
-    comment = "Multi-Engine Platform";
-    desktopName = "RetroArch";
-    genericName = "Libretro Frontend";
-    categories = "Game;Emulator;";
-    #keywords = "multi;engine;emulator;xmb;";
-  };
-in
-
 stdenv.mkDerivation rec {
   name = "retroarch-bare-${version}";
-  version = "1.6.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "RetroArch";
-    sha256 = "1ym2kws58fbavkc3giz5xqaqiqqdbf7wrz7y7iw53p1bnkc3l8yi";
+    sha256 = "0qv8ci76f5kwv5b49ijgpc6jdfp6sm21fw5hq06mq6ygyiy9vdzf";
     rev = "v${version}";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ ffmpeg mesa freetype libxml2 coreutils python34 which SDL ]
-                ++ optional enableNvidiaCgToolkit nvidia_cg_toolkit
-                ++ optionals stdenv.isLinux [ udev alsaLib libX11 libXext libXxf86vm libXdmcp libv4l libpulseaudio ];
-
-  configureScript = "sh configure";
+  nativeBuildInputs = [ pkgconfig ]
+                      ++ optional withVulkan [ makeWrapper ];
 
-  patchPhase = ''
-    export GLOBAL_CONFIG_DIR=$out/etc
-    sed -e 's#/bin/true#${coreutils}/bin/true#' -i qb/qb.libs.sh
-  '';
+  buildInputs = [ ffmpeg freetype libxml2 libGLU_combined python34 SDL2 which ]
+                ++ optional enableNvidiaCgToolkit nvidia_cg_toolkit
+                ++ optional withVulkan [ vulkan-loader ]
+                ++ optionals stdenv.isDarwin [ libobjc AppKit Foundation ]
+                ++ optionals stdenv.isLinux [ alsaLib libpulseaudio libv4l libX11
+                                              libXdmcp libXext libXxf86vm udev ];
 
-  postInstall = ''
-    mkdir -p $out/share/icons/hicolor/scalable/apps
-    cp -p -T ./media/retroarch.svg $out/share/icons/hicolor/scalable/apps/retroarch.svg
+  enableParallelBuilding = true;
 
-    mkdir -p "$out/share/applications"
-    cp ${desktopItem}/share/applications/* $out/share/applications
+  postInstall = optional withVulkan ''
+    wrapProgram $out/bin/retroarch --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
   '';
 
-  enableParallelBuilding = true;
+  preFixup = "rm $out/bin/retroarch-cg2glsl";
 
   meta = {
-    homepage = http://libretro.org/;
+    homepage = https://libretro.com;
     description = "Multi-platform emulator frontend for libretro cores";
     license = licenses.gpl3;
     platforms = platforms.all;
diff --git a/pkgs/misc/emulators/vbam/default.nix b/pkgs/misc/emulators/vbam/default.nix
index 9f1cbdf390897..66ea5b1257571 100644
--- a/pkgs/misc/emulators/vbam/default.nix
+++ b/pkgs/misc/emulators/vbam/default.nix
@@ -9,7 +9,7 @@
 , libpthreadstubs
 , libXdmcp
 , libxshmfence
-, mesa
+, libGLU_combined
 , openal
 , pkgconfig
 , SDL2
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     ffmpeg
     gettext
     gtk2-x11
-    mesa
+    libGLU_combined
     openal
     pkgconfig
     SDL2
diff --git a/pkgs/misc/emulators/vice/default.nix b/pkgs/misc/emulators/vice/default.nix
index 0b56cb21dc0d0..010c4721dc2db 100644
--- a/pkgs/misc/emulators/vice/default.nix
+++ b/pkgs/misc/emulators/vice/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, bison, flex, perl, libpng, giflib, libjpeg, alsaLib, readline, mesa, libX11, libXaw
+{ stdenv, fetchurl, bison, flex, perl, libpng, giflib, libjpeg, alsaLib, readline, libGLU_combined, libX11, libXaw
 , pkgconfig, gtk2, SDL, autoreconfHook, makeDesktopItem
 }:
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0h0jbml02s2a36hr78dxv1zshmfhxp1wadpcdl09aq416fb1bf1y";
   };
 
-  buildInputs = [ bison flex perl libpng giflib libjpeg alsaLib readline mesa
+  buildInputs = [ bison flex perl libpng giflib libjpeg alsaLib readline libGLU_combined
     pkgconfig gtk2 SDL autoreconfHook libXaw ];
   dontDisableStatic = true;
   configureFlags = "--enable-fullscreen --enable-gnomeui";
diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix
index 82e2384cf0bd7..a147c986674e2 100644
--- a/pkgs/misc/emulators/wine/base.nix
+++ b/pkgs/misc/emulators/wine/base.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) {
   ++ lib.optionals openclSupport [ pkgs.opencl-headers pkgs.ocl-icd ]
   ++ lib.optionals xmlSupport    [ pkgs.libxml2 pkgs.libxslt ]
   ++ lib.optionals tlsSupport    [ pkgs.openssl pkgs.gnutls ]
-  ++ lib.optionals openglSupport [ pkgs.mesa pkgs.mesa_noglu.osmesa pkgs.libdrm ]
+  ++ lib.optionals openglSupport [ pkgs.libGLU_combined pkgs.libGL.osmesa pkgs.libdrm ]
   ++ (with pkgs.xorg; [
     libX11  libXi libXcursor libXrandr libXrender libXxf86vm libXcomposite libXext
   ])));
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index a84165ccedefb..5950310a73f75 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -39,19 +39,19 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "3.0";
-    url = "https://dl.winehq.org/wine/source/3.0/wine-${version}.tar.xz";
-    sha256 = "1v7vq9iinkscbq6wg85fb0d2137660fg2nk5iabxkl2wr850asil";
+    version = "3.3";
+    url = "https://dl.winehq.org/wine/source/3.x/wine-${version}.tar.xz";
+    sha256 = "0cx31jsll7mxd9r7v0vpahajqwb6da6cpwybv06l5ydkgfrbv505";
     inherit (stable) mono gecko32 gecko64;
   };
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-compholio/wine-staging/releases
     inherit (unstable) version;
-    # FIXME update winestaging sources, when 3.0 is released
+    # FIXME update winestaging sources, when 3.3 is released
     # FIXME then revert the staging derivation in ./default.nix
-    sha256 = "1qznp4kgss4mhk1vvr91jmszsi47xg312r64l76jkgwijhypmvb7";
-    owner = "wine-compholio";
+    sha256 = "0000000000000000000000000000000000000000000000000000000000000000";
+    owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
   };
diff --git a/pkgs/misc/emulators/wxmupen64plus/default.nix b/pkgs/misc/emulators/wxmupen64plus/default.nix
index e13abb6fe2b6f..7be9117631819 100644
--- a/pkgs/misc/emulators/wxmupen64plus/default.nix
+++ b/pkgs/misc/emulators/wxmupen64plus/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, python, wxGTK29, mupen64plus, SDL, libX11, mesa}:
+{stdenv, fetchurl, python, wxGTK29, mupen64plus, SDL, libX11, libGLU_combined}:
 
 stdenv.mkDerivation {
   name = "wxmupen64plus-0.3";
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
     sha256 = "1mnxi4k011dd300k35li2p6x4wccwi6im21qz8dkznnz397ps67c";
   };
 
-  buildInputs = [ python wxGTK29 SDL libX11 mesa ];
+  buildInputs = [ python wxGTK29 SDL libX11 libGLU_combined ];
 
   configurePhase = ''
     tar xf ${mupen64plus.src}
diff --git a/pkgs/misc/emulators/yabause/default.nix b/pkgs/misc/emulators/yabause/default.nix
index fb99421a61aeb..e7237fd4454c8 100644
--- a/pkgs/misc/emulators/yabause/default.nix
+++ b/pkgs/misc/emulators/yabause/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, pkgconfig, qtbase, mesa
+{ stdenv, fetchurl, cmake, pkgconfig, qtbase, libGLU_combined
 , freeglut ? null, openal ? null, SDL2 ? null }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = [ qtbase mesa freeglut openal SDL2 ];
+  buildInputs = [ qtbase libGLU_combined freeglut openal SDL2 ];
 
   patches = [ ./emu-compatibility.com.patch ./linkage-rwx-linux-elf.patch ];
 
diff --git a/pkgs/misc/emulators/zsnes/default.nix b/pkgs/misc/emulators/zsnes/default.nix
index ad80cb13f78c8..1ea8d7e68d3c0 100644
--- a/pkgs/misc/emulators/zsnes/default.nix
+++ b/pkgs/misc/emulators/zsnes/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchFromGitHub, nasm, SDL, zlib, libpng, ncurses, mesa
+{stdenv, fetchFromGitHub, nasm, SDL, zlib, libpng, ncurses, libGLU_combined
 , makeDesktopItem }:
 
 let
@@ -22,7 +22,7 @@ in stdenv.mkDerivation {
     sha256 = "1gy79d5wdaacph0cc1amw7mqm7i0716n6mvav16p1svi26iz193v";
   };
 
-  buildInputs = [ nasm SDL zlib libpng ncurses mesa ];
+  buildInputs = [ nasm SDL zlib libpng ncurses libGLU_combined ];
 
   prePatch = ''
     for i in $(cat debian/patches/series); do
diff --git a/pkgs/misc/gnash/default.nix b/pkgs/misc/gnash/default.nix
index d7a6cebcc5635..c0b86336163dd 100644
--- a/pkgs/misc/gnash/default.nix
+++ b/pkgs/misc/gnash/default.nix
@@ -6,7 +6,7 @@
 # renderers
 , enableAGG    ? true,  agg   ? null
 , enableCairo  ? false, cairo ? null
-, enableOpenGL ? false, mesa  ? null
+, enableOpenGL ? false, libGLU_combined  ? null
 
 # GUI toolkits
 , enableGTK ? true,  gtk2 ? null, gnome2 ? null, gnome3 ? null
@@ -49,7 +49,7 @@ in
 # renderers
 assert enableAGG    -> available agg;
 assert enableCairo  -> available cairo;
-assert enableOpenGL -> available mesa;
+assert enableOpenGL -> available libGLU_combined;
 
 # GUI toolkits
 assert enableGTK -> all available [ gtk2 gnome2.gtkglext gnome3.gconf ];
@@ -62,7 +62,7 @@ assert enableGstreamer -> all available [ gst-plugins-base gst-plugins-ugly gst-
 
 # misc
 assert enableJemalloc -> available jemalloc;
-assert enableHwAccel  -> available mesa;
+assert enableHwAccel  -> available libGLU_combined;
 assert enablePlugins  -> all available [ xulrunner npapi_sdk ];
 
 assert length toolkits  == 0 -> throw "at least one GUI toolkit must be enabled";
@@ -90,11 +90,11 @@ stdenv.mkDerivation rec {
     libpng libjpeg giflib pango atk
   ] ++ optional  enableAGG       agg
     ++ optional  enableCairo     cairo
-    ++ optional  enableOpenGL    mesa
+    ++ optional  enableOpenGL    libGLU_combined
     ++ optional  enableQt        qt4
     ++ optional  enableFFmpeg    ffmpeg_2
     ++ optional  enableJemalloc  jemalloc
-    ++ optional  enableHwAccel   mesa
+    ++ optional  enableHwAccel   libGLU_combined
     ++ optionals enablePlugins   [ xulrunner npapi_sdk ]
     ++ optionals enableGTK       [ gtk2 gnome2.gtkglext gnome3.gconf ]
     ++ optionals enableGstreamer [ gst-plugins-base gst-plugins-ugly gst-ffmpeg ];
diff --git a/pkgs/misc/jackaudio/clang.patch b/pkgs/misc/jackaudio/clang.patch
deleted file mode 100644
index 131f8c4c04dd4..0000000000000
--- a/pkgs/misc/jackaudio/clang.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/tests/test.cpp b/tests/test.cpp
-index 8a8a811..31e8459 100644
---- a/tests/test.cpp
-+++ b/tests/test.cpp
-@@ -479,7 +479,7 @@ int process4(jack_nframes_t nframes, void *arg)
- 	jack_nframes_t delta_time = cur_time - last_time;
- 
- 	Log("calling process4 callback : jack_frame_time = %ld delta_time = %ld\n", cur_time, delta_time);
--	if (delta_time > 0  && (jack_nframes_t)abs(delta_time - cur_buffer_size) > tolerance) {
-+	if (delta_time > 0  && (jack_nframes_t)fabs(delta_time - cur_buffer_size) > tolerance) {
- 		printf("!!! ERROR !!! jack_frame_time seems to return incorrect values cur_buffer_size = %d, delta_time = %d tolerance %d\n", cur_buffer_size, delta_time, tolerance);
- 	}
- 
-@@ -1064,7 +1064,7 @@ int main (int argc, char *argv[])
-     }
-     jack_sleep(1 * 1000);
-     cur_buffer_size = jack_get_buffer_size(client1);
--    if (abs((old_buffer_size * factor) - cur_buffer_size) > 5) {  // Tolerance needed for dummy driver...
-+    if (fabs((old_buffer_size * factor) - cur_buffer_size) > 5) {  // Tolerance needed for dummy driver...
-         printf("!!! ERROR !!! Buffer size has not been changed !\n");
-         printf("!!! Maybe jack was compiled without the '--enable-resize' flag...\n");
-     } else {
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index a242f0261c770..a6396fc8c28bf 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   ] ++ stdenv.lib.optionals stdenv.isDarwin [ aften AudioToolbox CoreAudio CoreFoundation ];
 
   # CoreFoundation 10.10 doesn't include CFNotificationCenter.h yet.
-  patches = stdenv.lib.optionals stdenv.isDarwin [ ./clang.patch ./darwin-cf.patch ];
+  patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin-cf.patch ];
 
   prePatch = ''
     substituteInPlace svnversion_regenerate.sh \
diff --git a/pkgs/misc/libcardiacarrest/default.nix b/pkgs/misc/libcardiacarrest/default.nix
new file mode 100644
index 0000000000000..186fcb263cae6
--- /dev/null
+++ b/pkgs/misc/libcardiacarrest/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, pkgconfig, glib, libpulseaudio }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "libcardiacarrest-${version}";
+  version = "11.0-6"; # <PA API version>-<version>
+
+  src = fetchFromGitHub {
+    owner = "oxij";
+    repo = "libcardiacarrest";
+    rev = "1220b37b3de75238fedee1a66ca703fe1c8c71c3";
+    sha256 = "0fkfiixjybac3rwcd26621hh5dw4f5gnmm230cr4g8fl0i2ikmrz";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ glib ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  postInstall = ''
+    moveToOutput $out/include $dev
+    moveToOutput $out/lib/pkgconfig $dev
+    moveToOutput $out/lib/cmake $dev
+  '';
+
+  meta = src.meta // {
+    description = "A trivial implementation of libpulse PulseAudio library API";
+    longDescription = ''
+      libcardiacarrest is a trivial implementation of libpulse
+      PulseAudio library API that unconditionally (but gracefully)
+      fails to connect to the PulseAudio daemon and does nothing else.
+
+      apulse and pressureaudio (which uses apulse internally) are an
+      inspiration for this but unlike those two projects
+      libcardiacarrest is not an emulation layer, all it does is it
+      gracefully fails to provide the requested PulseAudio service
+      hoping the application would try something else (e.g. ALSA or
+      JACK).
+    '';
+    license = libpulseaudio.meta.license; # "same as PA headers"
+    maintainers = [ maintainers.oxij ]; # also the author
+  };
+
+}
diff --git a/pkgs/misc/screensavers/electricsheep/default.nix b/pkgs/misc/screensavers/electricsheep/default.nix
index 4a51facb4aa42..17cf99d8b00ce 100644
--- a/pkgs/misc/screensavers/electricsheep/default.nix
+++ b/pkgs/misc/screensavers/electricsheep/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, autoreconfHook, wxGTK30, libav, lua5_1, curl
-, libpng, xorg, pkgconfig, flam3, libgtop, boost, tinyxml, freeglut, mesa
+, libpng, xorg, pkgconfig, flam3, libgtop, boost, tinyxml, freeglut, libGLU_combined
 , glee }:
 
 stdenv.mkDerivation rec {
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     wxGTK30 libav lua5_1 curl libpng xorg.libXrender
-    flam3 libgtop boost tinyxml freeglut mesa glee
+    flam3 libgtop boost tinyxml freeglut libGLU_combined glee
   ];
 
   preAutoreconf = ''
diff --git a/pkgs/misc/screensavers/rss-glx/default.nix b/pkgs/misc/screensavers/rss-glx/default.nix
index 7b280d770b382..e8b9346a87273 100644
--- a/pkgs/misc/screensavers/rss-glx/default.nix
+++ b/pkgs/misc/screensavers/rss-glx/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, xlibsWrapper, libXext, mesa, imagemagick, libtiff, bzip2}:
+{stdenv, fetchurl, pkgconfig, xlibsWrapper, libXext, libGLU_combined, imagemagick, libtiff, bzip2}:
 
 stdenv.mkDerivation rec {
   version = "0.9.1";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ mesa xlibsWrapper imagemagick libtiff bzip2 ];
+  buildInputs = [ libGLU_combined xlibsWrapper imagemagick libtiff bzip2 ];
 
   NIX_CFLAGS_COMPILE = "-I${imagemagick.dev}/include/ImageMagick";
   NIX_LDFLAGS= "-rpath ${libXext}/lib";
diff --git a/pkgs/misc/screensavers/xscreensaver/default.nix b/pkgs/misc/screensavers/xscreensaver/default.nix
index b07c11a23dd34..b337b6cb0e90e 100644
--- a/pkgs/misc/screensavers/xscreensaver/default.nix
+++ b/pkgs/misc/screensavers/xscreensaver/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, bc, perl, pam, libXext, libXScrnSaver, libX11
-, libXrandr, libXmu, libXxf86vm, libXrender, libXxf86misc, libjpeg, mesa, gtk2
+, libXrandr, libXmu, libXxf86vm, libXrender, libXxf86misc, libjpeg, libGLU_combined, gtk2
 , libxml2, libglade, intltool, xorg, makeWrapper, gle
 , forceInstallAllHacks ? false
 }:
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-    [ pkgconfig bc perl libjpeg mesa gtk2 libxml2 libglade pam
+    [ pkgconfig bc perl libjpeg libGLU_combined gtk2 libxml2 libglade pam
       libXext libXScrnSaver libX11 libXrandr libXmu libXxf86vm libXrender
       libXxf86misc intltool xorg.appres makeWrapper gle
     ];
diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index 2eae839c45083..78aed2aa833c0 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -1,7 +1,7 @@
 # TODO check that no license information gets lost
 { fetchurl, stdenv, python, go, cmake, vim, vimUtils, perl, ruby, unzip
 , which, fetchgit, llvmPackages
-, xkb_switch, rustracerd, fzf
+, xkb_switch, rustracerd, fzf, skim
 , python3, boost, icu
 , ycmd, makeWrapper, rake
 , pythonPackages, python3Packages
@@ -12,6 +12,8 @@
 
 let
 
+  _skim = skim;
+
 inherit (vimUtils.override {inherit vim;}) rtpPath addRtp buildVimPlugin
   buildVimPluginFrom2Nix vimHelpTags;
 in
@@ -140,6 +142,12 @@ rec {
     dependencies = [];
   };
 
+  skim = buildVimPluginFrom2Nix {
+    name = _skim.name;
+    src = _skim.vim;
+    dependencies = [];
+  };
+
   # --- generated packages bellow this line ---
 
   CSApprox = buildVimPluginFrom2Nix { # created by nix#NixDerivation
diff --git a/pkgs/os-specific/darwin/apple-source-releases/network_cmds/default.nix b/pkgs/os-specific/darwin/apple-source-releases/network_cmds/default.nix
index 357a87689a037..dc7edface9a03 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/network_cmds/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/network_cmds/default.nix
@@ -7,11 +7,13 @@ appleDerivation rec {
 
   # "spray" requires some files that aren't compiling correctly in xcbuild.
   # "rtadvd" seems to fail with some missing constants.
-  # We disable spray and rtadvd here for now.
+  # "traceroute6" and "ping6" require ipsec which doesn't build correctly
   patchPhase = ''
     substituteInPlace network_cmds.xcodeproj/project.pbxproj \
       --replace "7294F0EA0EE8BAC80052EC88 /* PBXTargetDependency */," "" \
-      --replace "7216D34D0EE89FEC00AE70E4 /* PBXTargetDependency */," ""
+      --replace "7216D34D0EE89FEC00AE70E4 /* PBXTargetDependency */," "" \
+      --replace "72CD1D9C0EE8C47C005F825D /* PBXTargetDependency */," "" \
+      --replace "7216D2C20EE89ADF00AE70E4 /* PBXTargetDependency */," ""
   '';
 
   # temporary install phase until xcodebuild has "install" support
diff --git a/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix b/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix
index f434e15794eaf..4f527acc950c8 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix
@@ -10,10 +10,12 @@ appleDerivation rec {
     # - su ('security/pam_appl.h' file not found)
     # - find (Undefined symbol '_get_date')
     # - w (Undefined symbol '_res_9_init')
+    # - expr
     substituteInPlace shell_cmds.xcodeproj/project.pbxproj \
       --replace "FCBA168714A146D000AA698B /* PBXTargetDependency */," "" \
       --replace "FCBA165914A146D000AA698B /* PBXTargetDependency */," "" \
-      --replace "FCBA169514A146D000AA698B /* PBXTargetDependency */," ""
+      --replace "FCBA169514A146D000AA698B /* PBXTargetDependency */," "" \
+      --replace "FCBA165514A146D000AA698B /* PBXTargetDependency */," ""
 
     # disable w, test install
     # get rid of permission stuff
diff --git a/pkgs/os-specific/darwin/qes/default.nix b/pkgs/os-specific/darwin/qes/default.nix
new file mode 100644
index 0000000000000..aa7bfb5c3be72
--- /dev/null
+++ b/pkgs/os-specific/darwin/qes/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, Carbon }:
+
+stdenv.mkDerivation rec {
+  name = "qes-${version}";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "koekeishiya";
+    repo = "qes";
+    rev = "ddedf008f0c38b134501ad9f328447b671423d34";  # no tag
+    sha256 = "1w9ppid7jg6f4q7pq40lhm0whg7xmnxcmf3pb9xqfkq2zj2f7dxv";
+  };
+
+  buildInputs = [ Carbon ];
+
+  makeFlags = [ "BUILD_PATH=$(out)/bin" ];
+
+  meta = with stdenv.lib; {
+    description = "Quartz Event Synthesizer";
+    homepage = https://github.com/koekeishiya/qes;
+    platforms = platforms.darwin;
+    maintainers = with maintainers; [ lnl7 ];
+    license = licenses.mit;
+  };
+}
+
diff --git a/pkgs/os-specific/darwin/skhd/default.nix b/pkgs/os-specific/darwin/skhd/default.nix
new file mode 100644
index 0000000000000..aa97a36e691e9
--- /dev/null
+++ b/pkgs/os-specific/darwin/skhd/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, Carbon }:
+
+stdenv.mkDerivation rec {
+  name = "skhd-${version}";
+  version = "0.0.10";
+
+  src = fetchFromGitHub {
+    owner = "koekeishiya";
+    repo = "skhd";
+    rev = "v${version}";
+    sha256 = "0a0r8z9bvb1pzqag7nqa84xm99n0xvg27cw11qcv65snr06bqc9w";
+  };
+
+  buildInputs = [ Carbon ];
+
+  makeFlags = [ "BUILD_PATH=$(out)/bin" ];
+
+  postInstall = ''
+    mkdir -p $out/Library/LaunchDaemons
+    cp ${./org.nixos.skhd.plist} $out/Library/LaunchDaemons/org.nixos.skhd.plist
+    substituteInPlace $out/Library/LaunchDaemons/org.nixos.skhd.plist --subst-var out
+  '';
+
+  # See https://github.com/koekeishiya/skhd/issues/28
+  hardeningDisable = [ "all" ];
+
+  meta = with stdenv.lib; {
+    description = "Simple hotkey daemon for macOS";
+    homepage = https://github.com/koekeishiya/skhd;
+    platforms = platforms.darwin;
+    maintainers = with maintainers; [ lnl7 ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/os-specific/darwin/skhd/org.nixos.skhd.plist b/pkgs/os-specific/darwin/skhd/org.nixos.skhd.plist
new file mode 100644
index 0000000000000..e6624487740bc
--- /dev/null
+++ b/pkgs/os-specific/darwin/skhd/org.nixos.skhd.plist
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>Label</key>
+  <string>org.nixos.skhd</string>
+  <key>ProgramArguments</key>
+  <array>
+    <string>@out@/bin/skhd</string>
+  </array>
+  <key>ProcessType</key>
+  <string>Interactive</string>
+  <key>EnvironmentVariables</key>
+  <dict>
+    <key>PATH</key>
+    <string>@out@/bin:/nix/var/nix/profiles/default/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
+  </dict>
+  <key>RunAtLoad</key>
+  <true/>
+  <key>KeepAlive</key>
+  <true/>
+</dict>
+</plist>
diff --git a/pkgs/os-specific/linux/amdgpu-pro/default.nix b/pkgs/os-specific/linux/amdgpu-pro/default.nix
index e7825a0ebd699..0272eccd800eb 100644
--- a/pkgs/os-specific/linux/amdgpu-pro/default.nix
+++ b/pkgs/os-specific/linux/amdgpu-pro/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, elfutils, mesa_noglu
+{ stdenv, fetchurl, elfutils, libGL
 , xorg, patchelf, openssl, libdrm, libudev
 , libxcb, libxshmfence, epoxy, perl, zlib
 , fetchFromGitHub, ncurses
@@ -13,7 +13,7 @@ let
 
   kernelDir = if libsOnly then null else kernel.dev;
 
-  inherit (mesa_noglu) driverLink;
+  inherit (libGL) driverLink;
 
   bitness = if stdenv.is64bit then "64" else "32";
 
diff --git a/pkgs/os-specific/linux/ati-drivers/builder.sh b/pkgs/os-specific/linux/ati-drivers/builder.sh
index 2b907bde10aee..6cb8cacbffac7 100644
--- a/pkgs/os-specific/linux/ati-drivers/builder.sh
+++ b/pkgs/os-specific/linux/ati-drivers/builder.sh
@@ -246,9 +246,9 @@ if test -z "$libsOnly"; then
   ( # build and install fgl_glxgears
     cd fgl_glxgears;
     gcc -DGL_ARB_texture_multisample=1 -g \
-    -I$mesa/include \
+    -I$libGLU_combined/include \
     -I$out/include \
-    -L$mesa/lib -lGL -lGLU -lX11 -lm \
+    -L$libGLU_combined/lib -lGL -lGLU -lX11 -lm \
     -o $out/bin/fgl_glxgears -Wall fgl_glxgears.c
   )
 
diff --git a/pkgs/os-specific/linux/ati-drivers/default.nix b/pkgs/os-specific/linux/ati-drivers/default.nix
index d9e6ec3cf6246..df6fa3555feee 100644
--- a/pkgs/os-specific/linux/ati-drivers/default.nix
+++ b/pkgs/os-specific/linux/ati-drivers/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, kernel ? null, which
 , xorg, makeWrapper, glibc, patchelf, unzip
-, fontconfig, freetype, mesa # for fgl_glxgears
+, fontconfig, freetype, libGLU_combined # for fgl_glxgears
 , # Whether to build the libraries only (i.e. not the kernel module or
   # driver utils). Used to support 32-bit binaries on 64-bit
   # Linux.
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
       xorg.libXrandr xorg.libXxf86vm xorg.xf86vidmodeproto xorg.imake xorg.libICE
       patchelf
       unzip
-      mesa
+      libGLU_combined
       fontconfig
       freetype
       makeWrapper
@@ -108,7 +108,7 @@ stdenv.mkDerivation rec {
   LD_LIBRARY_PATH = makeLibraryPath
     [ xorg.libXrender xorg.libXext xorg.libX11 xorg.libXinerama xorg.libSM
       xorg.libXrandr xorg.libXxf86vm xorg.xf86vidmodeproto xorg.imake xorg.libICE
-      mesa
+      libGLU_combined
       fontconfig
       freetype
       stdenv.cc.cc
@@ -122,7 +122,7 @@ stdenv.mkDerivation rec {
                    xorg.libX11.out xorg.libXinerama.out xorg.libSM.out
                    xorg.libICE.out ];
 
-  inherit mesa; # only required to build the examples
+  inherit libGLU_combined; # only required to build the examples
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/os-specific/linux/batman-adv/alfred.nix b/pkgs/os-specific/linux/batman-adv/alfred.nix
index f41278b1f7cb0..9b7484932ebdf 100644
--- a/pkgs/os-specific/linux/batman-adv/alfred.nix
+++ b/pkgs/os-specific/linux/batman-adv/alfred.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, gpsd, libcap, libnl }:
 
 let
-  ver = "2017.4";
+  ver = "2018.0";
 in
 stdenv.mkDerivation rec {
   name = "alfred-${ver}";
 
   src = fetchurl {
     url = "http://downloads.open-mesh.org/batman/releases/batman-adv-${ver}/${name}.tar.gz";
-    sha256 = "126wfmng4x19k8n4930v03qbjhwrikq9bvhl7mlng1k2fpx1msn4";
+    sha256 = "0mzjgjkmgdrrqa6fbpii9q1xqvg3kvwgq2k2kpdf0vy4xxnypky7";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/os-specific/linux/batman-adv/batctl.nix b/pkgs/os-specific/linux/batman-adv/batctl.nix
index 17776f1ad217a..ef1d51501e85a 100644
--- a/pkgs/os-specific/linux/batman-adv/batctl.nix
+++ b/pkgs/os-specific/linux/batman-adv/batctl.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, libnl }:
 
 let
-  ver = "2017.4";
+  ver = "2018.0";
 in
 stdenv.mkDerivation rec {
   name = "batctl-${ver}";
 
   src = fetchurl {
     url = "http://downloads.open-mesh.org/batman/releases/batman-adv-${ver}/${name}.tar.gz";
-    sha256 = "0r742krc9mn677wmfwbhwhqq9739n74vpw0xfasvy7d59nn6lz84";
+    sha256 = "1x7gy6agwk68s2cbhc4wfhvhdy2ccrq0vi7jzaj94pn8nqshi5ss";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/os-specific/linux/batman-adv/default.nix b/pkgs/os-specific/linux/batman-adv/default.nix
index db56c8d04125b..8f835b6d7ed02 100644
--- a/pkgs/os-specific/linux/batman-adv/default.nix
+++ b/pkgs/os-specific/linux/batman-adv/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, kernel }:
 
-let base = "batman-adv-2017.4"; in
+let base = "batman-adv-2018.0"; in
 
 stdenv.mkDerivation rec {
   name = "${base}-${kernel.version}";
 
   src = fetchurl {
     url = "http://downloads.open-mesh.org/batman/releases/${base}/${base}.tar.gz";
-    sha256 = "0k4sf52sbk39m25w6plk8spwcf4kzc3axckyk2r6anxxsangyl4a";
+    sha256 = "0v2pyy9lxyy71nr9600k9935qcpn2wpyl9fsf2a4m4d2x0wgh9j8";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
diff --git a/pkgs/os-specific/linux/bbswitch/default.nix b/pkgs/os-specific/linux/bbswitch/default.nix
index ade9b8f750f26..f5d3b4f5c4e1c 100644
--- a/pkgs/os-specific/linux/bbswitch/default.nix
+++ b/pkgs/os-specific/linux/bbswitch/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "A module for powering off hybrid GPUs";
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" "i686-linux" ];
     homepage = https://github.com/Bumblebee-Project/bbswitch;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/os-specific/linux/fwts/default.nix b/pkgs/os-specific/linux/fwts/default.nix
new file mode 100644
index 0000000000000..4c393a0f32667
--- /dev/null
+++ b/pkgs/os-specific/linux/fwts/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip, autoreconfHook, pkgconfig, glib, libtool, pcre
+, json_c, flex, bison, dtc, pciutils, dmidecode, iasl }:
+
+stdenv.mkDerivation rec {
+  name = "fwts-${version}";
+  version = "18.01.00";
+
+  src = fetchzip {
+    url = "http://fwts.ubuntu.com/release/fwts-V${version}.tar.gz";
+    sha256 = "043wkq4hz5pz79masppya67b8i5jw61p1j8dw17jwc8w6gp8csfb";
+    stripRoot = false;
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig libtool ];
+  buildInputs = [ glib pcre json_c flex bison dtc pciutils dmidecode iasl ];
+
+  postPatch = ''
+    substituteInPlace src/lib/include/fwts_binpaths.h --replace "/usr/bin/lspci"      "${pciutils}/bin/lspci"
+    substituteInPlace src/lib/include/fwts_binpaths.h --replace "/usr/sbin/dmidecode" "${dmidecode}/bin/dmidecode"
+    substituteInPlace src/lib/include/fwts_binpaths.h --replace "/usr/bin/iasl"       "${iasl}/bin/iasl"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://wiki.ubuntu.com/FirmwareTestSuite";
+    description = "Firmware Test Suite";
+    platforms = platforms.linux;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ tadfisher ];
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index f69865cdc4df3..1b8c3f76155e4 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -1,12 +1,10 @@
-{ buildPackages, runCommand, nettools, bc, bison, flex, perl, gmp, libmpc, mpfr, openssl
+{ buildPackages
 , ncurses
-, libelf
-, utillinux
-, writeTextFile, ubootTools
 , callPackage
-}:
-
-{ stdenv, buildPackages, perl, buildLinux
+, perl
+, bison ? null
+, flex ? null
+, stdenv
 
 , # The kernel source tarball.
   src
@@ -35,6 +33,12 @@
                        hostPlatform != stdenv.buildPlatform
 , extraMeta ? {}
 , hostPlatform
+
+# easy overrides to hostPlatform.platform members
+, autoModules ? hostPlatform.platform.kernelAutoModules
+, preferBuiltin ? hostPlatform.platform.kernelPreferBuiltin or false
+, kernelArch ? hostPlatform.platform.kernelArch
+
 , ...
 } @ args:
 
@@ -67,7 +71,7 @@ let
     in lib.concatStringsSep "\n" ([baseConfig] ++ configFromPatches);
 
   configfile = stdenv.mkDerivation {
-    inherit ignoreConfigErrors;
+    inherit ignoreConfigErrors autoModules preferBuiltin kernelArch;
     name = "linux-config-${version}";
 
     generateConfig = ./generate-config.pl;
@@ -83,9 +87,6 @@ let
     kernelBaseConfig = hostPlatform.platform.kernelBaseConfig;
     # e.g. "bzImage"
     kernelTarget = hostPlatform.platform.kernelTarget;
-    autoModules = hostPlatform.platform.kernelAutoModules;
-    preferBuiltin = hostPlatform.platform.kernelPreferBuiltin or false;
-    arch = hostPlatform.platform.kernelArch;
 
     prePatch = kernel.prePatch + ''
       # Patch kconfig to print "###" after every question so that
@@ -99,12 +100,12 @@ let
       export buildRoot="''${buildRoot:-build}"
 
       # Get a basic config file for later refinement with $generateConfig.
-      make HOSTCC=${buildPackages.stdenv.cc.targetPrefix}gcc -C . O="$buildRoot" $kernelBaseConfig ARCH=$arch
+      make HOSTCC=${buildPackages.stdenv.cc.targetPrefix}gcc -C . O="$buildRoot" $kernelBaseConfig ARCH=$kernelArch
 
       # Create the config file.
       echo "generating kernel configuration..."
       echo "$kernelConfig" > "$buildRoot/kernel-config"
-      DEBUG=1 ARCH=$arch KERNEL_CONFIG="$buildRoot/kernel-config" AUTO_MODULES=$autoModules \
+      DEBUG=1 ARCH=$kernelArch KERNEL_CONFIG="$buildRoot/kernel-config" AUTO_MODULES=$autoModules \
            PREFER_BUILTIN=$preferBuiltin BUILD_ROOT="$buildRoot" SRC=. perl -w $generateConfig
     '';
 
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index ab22019538641..e5ca1f6e96e10 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,13 +3,13 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.23";
+  version = "4.14.25";
 
   # branchVersion needs to be x.y
   extraMeta.branch = concatStrings (intersperse "." (take 2 (splitString "." version)));
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1jhjazzaw5m92jl7cbchzfg5fyci7fp285bilydfvaibb9avb5ws";
+    sha256 = "11z544zyq1k1x52a3wibhqgkbjn9vmccxcgd0qdirrb8q1wvzkvd";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.15.nix b/pkgs/os-specific/linux/kernel/linux-4.15.nix
index 1c48898924391..28e76fa3c38bb 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.15.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.15.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.15.7";
+  version = "4.15.8";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = concatStrings (intersperse "." (take 3 (splitString "." "${version}.0")));
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1in8gy82ccpri7xhbgim3jrh15lbfrfzjgg69g0yvq534d5xyi6d";
+    sha256 = "0nk0k6gywlvy88y0nvy55l5ivnrqs5c3r36rlrrpcvfdyz273h4a";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index 5d7f2fbfe74d3..4f42f7b81c7fc 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.119";
+  version = "4.4.120";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1rj3hk31bx9nvpx0dmwiijyixiv0dcxvp2cx4fbkbs9fddxrn7sg";
+    sha256 = "0y7li4vcvv04aqkrgl01i98pgwm9njzrb8y8wdvwaq9658vhfpx2";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 5c5363ccded71..d1bf5fb5c6228 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.85";
+  version = "4.9.86";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1hb5v5ycgg5wbv28s8vxw804blfshpf82chrwspdbl2vwkp17zl0";
+    sha256 = "11bf1jcxn5gwd1g99ml2kn65vkpciq8hdz7xc0bjy66gxysnxkx7";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-copperhead-hardened.nix b/pkgs/os-specific/linux/kernel/linux-copperhead-hardened.nix
index 85d31048ffc2f..d5660b9a99b56 100644
--- a/pkgs/os-specific/linux/kernel/linux-copperhead-hardened.nix
+++ b/pkgs/os-specific/linux/kernel/linux-copperhead-hardened.nix
@@ -3,9 +3,9 @@
 with stdenv.lib;
 
 let
-  version = "4.15.7";
+  version = "4.15.8";
   revision = "a";
-  sha256 = "19kgy1fa4flnqm3a50hilgjczqkscay10183cvkzy3vxrnf8fl0f";
+  sha256 = "0bkvg93r1j7shls29yz3zi34lx71i3ylcsdyhdc9plzwb3chnpqg";
 
   # modVersion needs to be x.y.z, will automatically add .0 if needed
   modVersion = concatStrings (intersperse "." (take 3 (splitString "." "${version}.0")));
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 2c32ba5731148..5286ecaf34ccc 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
 { stdenv, buildPackages, hostPlatform, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.16-rc1";
-  modDirVersion = "4.16.0-rc1";
+  version = "4.16-rc4";
+  modDirVersion = "4.16.0-rc4";
   extraMeta.branch = "4.16";
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "19m1scqfcslawsxci0lypy32af315by3rg10lczv0jh2j4gyggmd";
+    sha256 = "0fxs3i7rdw5mybmim0npmzqpp7i3ppy1f6f72q2w3qdbjmbqm7w6";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/pkgs/os-specific/linux/kmscon/default.nix b/pkgs/os-specific/linux/kmscon/default.nix
index bc7b254e19e9c..d3d6cfd4c58b9 100644
--- a/pkgs/os-specific/linux/kmscon/default.nix
+++ b/pkgs/os-specific/linux/kmscon/default.nix
@@ -4,7 +4,7 @@
 , systemd
 , libxkbcommon
 , libdrm
-, mesa
+, libGLU_combined
 , pango
 , pixman
 , pkgconfig
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     systemd
     libxkbcommon
     libdrm
-    mesa
+    libGLU_combined
     pango
     pixman
     pkgconfig
diff --git a/pkgs/os-specific/linux/kmscube/default.nix b/pkgs/os-specific/linux/kmscube/default.nix
index c1389f30b0598..2fb4fe93cc81f 100644
--- a/pkgs/os-specific/linux/kmscube/default.nix
+++ b/pkgs/os-specific/linux/kmscube/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchgit, autoreconfHook, libdrm, libX11, mesa_noglu, pkgconfig }:
+{ stdenv, fetchgit, autoreconfHook, libdrm, libX11, libGL, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "kmscube-2017-03-19";
 
   src = fetchgit {
-    url = git://anongit.freedesktop.org/mesa/kmscube;
+    url = git://anongit.freedesktop.org/libGLU_combined/kmscube;
     rev = "b88a44d95eceaeebc5b9c6972ffcbfe9eca00aea";
     sha256 = "029ccslfavz6jllqv980sr6mj9bdbr0kx7bi21ra0q9yl2vh0yca";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ libdrm libX11 mesa_noglu ];
+  buildInputs = [ libdrm libX11 libGL ];
 
   meta = with stdenv.lib; {
     description = "Example OpenGL app using KMS/GBM";
diff --git a/pkgs/os-specific/linux/prl-tools/default.nix b/pkgs/os-specific/linux/prl-tools/default.nix
index b120062295ad1..000d11af87d1c 100644
--- a/pkgs/os-specific/linux/prl-tools/default.nix
+++ b/pkgs/os-specific/linux/prl-tools/default.nix
@@ -2,9 +2,12 @@
 , gawk, utillinux, xorg, glib, dbus-glib, zlib
 , kernel ? null, libsOnly ? false
 , undmg, fetchurl
+, libelf
 }:
 
 assert (!libsOnly) -> kernel != null;
+# Disable for kernels 4.15 and above due to compatibility issues
+assert kernel != null -> stdenv.lib.versionOlder kernel.version "4.15";
 
 let xorgFullVer = (builtins.parseDrvName xorg.xorgserver.name).version;
     xorgVer = lib.concatStringsSep "." (lib.take 2 (lib.splitString "." xorgFullVer));
@@ -27,7 +30,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "pic" "format" ];
 
   # also maybe python2 to generate xorg.conf
-  nativeBuildInputs = [ p7zip undmg ] ++ lib.optionals (!libsOnly) [ makeWrapper ];
+  nativeBuildInputs = [ p7zip undmg ] ++ lib.optionals (!libsOnly) [ makeWrapper ] ++ kernel.moduleBuildDependencies;
 
   inherit libsOnly;
 
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 915613cb0d2da..1e4df0d3f0efe 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -17,219 +17,214 @@ assert stdenv.isLinux;
 let
   pythonLxmlEnv = buildPackages.python3Packages.python.withPackages ( ps: with ps; [ python3Packages.lxml ]);
 
-in
-
-  stdenv.mkDerivation rec {
-    version = "237";
-    name = "systemd-${version}";
-
-    src = fetchFromGitHub {
-      owner = "NixOS";
-      repo = "systemd";
-      rev = "1e8830dfa77a7dc6976509f4a6edb7e012c50792";
-      sha256 = "1cw1k0i68azmzpqzi3r8jm6mbi2wqlql78fhcg0vvnv1ly8bf7vq";
-    };
-
-    outputs = [ "out" "lib" "man" "dev" ];
-
-    nativeBuildInputs =
-      [ pkgconfig intltool gperf libxslt gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45
-        ninja meson
-        coreutils # meson calls date, stat etc.
-        glibcLocales
-        patchelf getent m4
-      ];
-    buildInputs =
-      [ linuxHeaders libcap kmod xz pam acl
-        /* cryptsetup */ libuuid glib libgcrypt libgpgerror libidn2
-        libmicrohttpd kexectools libseccomp libffi audit lz4 bzip2 libapparmor
-        iptables gnu-efi
-        # This is actually native, but we already pull it from buildPackages
-        pythonLxmlEnv
-      ];
-
-    #dontAddPrefix = true;
-
-    mesonFlags = [
-      "-Dloadkeys-path=${kbd}/bin/loadkeys"
-      "-Dsetfont-path=${kbd}/bin/setfont"
-      "-Dtty-gid=3" # tty in NixOS has gid 3
-      # "-Dtests=" # TODO
-      "-Dlz4=true"
-      "-Dhostnamed=true"
-      "-Dnetworkd=true"
-      "-Dsysusers=false"
-      "-Dtimedated=true"
-      "-Dtimesyncd=true"
-      "-Dfirstboot=false"
-      "-Dlocaled=true"
-      "-Dresolve=true"
-      "-Dsplit-usr=false"
-      "-Dlibcurl=false"
-      "-Dlibidn=false"
-      "-Dlibidn2=true"
-      "-Dquotacheck=false"
-      "-Dldconfig=false"
-      "-Dsmack=true"
-      "-Dsystem-uid-max=499" #TODO: debug why awking around in /etc/login.defs doesn't work
-      "-Dsystem-gid-max=499"
-  #    "-Dtime-epoch=1"
-
-      (if stdenv.isArm || !hostPlatform.isEfi then "-Dgnu-efi=false" else "-Dgnu-efi=true")
-      "-Defi-libdir=${toString gnu-efi}/lib"
-      "-Defi-includedir=${toString gnu-efi}/include/efi"
-      "-Defi-ldsdir=${toString gnu-efi}/lib"
-
-      "-Dsysvinit-path="
-      "-Dsysvrcnd-path="
-
-      "-Dkill-path=${coreutils}/bin/kill"
-      "-Dkmod-path=${kmod}/bin/kmod"
-      "-Dsulogin-path=${utillinux}/bin/sulogin"
-      "-Dmount-path=${utillinux}/bin/mount"
-      "-Dumount-path=${utillinux}/bin/umount"
-      ];
-
-    preConfigure =
-      ''
-        mesonFlagsArray+=(-Dntp-servers="0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org")
-        mesonFlagsArray+=(-Ddbuspolicydir=$out/etc/dbus-1/system.d)
-        mesonFlagsArray+=(-Ddbussessionservicedir=$out/share/dbus-1/services)
-        mesonFlagsArray+=(-Ddbussystemservicedir=$out/share/dbus-1/system-services)
-        mesonFlagsArray+=(-Dpamconfdir=$out/etc/pam.d)
-        mesonFlagsArray+=(-Dsysconfdir=$out/etc)
-        mesonFlagsArray+=(-Drootprefix=$out)
-        mesonFlagsArray+=(-Dlibdir=$lib/lib)
-        mesonFlagsArray+=(-Drootlibdir=$lib/lib)
-        mesonFlagsArray+=(-Dmandir=$man/lib)
-        mesonFlagsArray+=(-Dincludedir=$dev/include)
-        mesonFlagsArray+=(-Dpkgconfiglibdir=$dev/lib/pkgconfig)
-        mesonFlagsArray+=(-Dpkgconfigdatadir=$dev/share/pkgconfig)
-
-        # FIXME: Why aren't includedir and libdir picked up from mesonFlags while other options are?
-        substituteInPlace meson.build \
-          --replace "includedir = join_paths(prefixdir, get_option('includedir'))" \
-                    "includedir = '$dev/include'" \
-          --replace "libdir = join_paths(prefixdir, get_option('libdir'))" \
-                    "libdir = '$lib/lib'"
-
-        export LC_ALL="en_US.UTF-8";
-        # FIXME: patch this in systemd properly (and send upstream).
-        # already fixed in f00929ad622c978f8ad83590a15a765b4beecac9: (u)mount
-        for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c src/shared/generator.c; do
-          test -e $i
-          substituteInPlace $i \
-            --replace /usr/bin/getent ${getent}/bin/getent \
-            --replace /sbin/swapon ${utillinux.bin}/sbin/swapon \
-            --replace /sbin/swapoff ${utillinux.bin}/sbin/swapoff \
-            --replace /sbin/fsck ${utillinux.bin}/sbin/fsck \
-            --replace /bin/echo ${coreutils}/bin/echo \
-            --replace /bin/cat ${coreutils}/bin/cat \
-            --replace /sbin/sulogin ${utillinux.bin}/sbin/sulogin \
-            --replace /usr/lib/systemd/systemd-fsck $out/lib/systemd/systemd-fsck \
-            --replace /bin/plymouth /run/current-system/sw/bin/plymouth # To avoid dependency
-        done
-
-        for i in tools/xml_helper.py tools/make-directive-index.py tools/make-man-index.py test/sys-script.py; do
-          substituteInPlace $i \
-            --replace "#!/usr/bin/env python" "#!${pythonLxmlEnv}/bin/python"
-        done
-
-        for i in src/basic/generate-gperfs.py src/resolve/generate-dns_type-gperf.py src/test/generate-sym-test.py ; do
-          substituteInPlace $i \
-            --replace "#!/usr/bin/env python" "#!${buildPackages.python3Packages.python}/bin/python"
-        done
-
-        substituteInPlace src/journal/catalog.c \
-          --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
-      '';
-
-    # These defines are overridden by CFLAGS and would trigger annoying
-    # warning messages
-    postConfigure = ''
-      substituteInPlace config.h \
-        --replace "POLKIT_AGENT_BINARY_PATH" "_POLKIT_AGENT_BINARY_PATH" \
-        --replace "SYSTEMD_BINARY_PATH" "_SYSTEMD_BINARY_PATH" \
-        --replace "SYSTEMD_CGROUP_AGENT_PATH" "_SYSTEMD_CGROUP_AGENT_PATH"
-    '';
-
-    hardeningDisable = [ "stackprotector" ];
-
-    NIX_CFLAGS_COMPILE =
-      [ # Can't say ${polkit.bin}/bin/pkttyagent here because that would
-        # lead to a cyclic dependency.
-        "-UPOLKIT_AGENT_BINARY_PATH" "-DPOLKIT_AGENT_BINARY_PATH=\"/run/current-system/sw/bin/pkttyagent\""
-
-        # Set the release_agent on /sys/fs/cgroup/systemd to the
-        # currently running systemd (/run/current-system/systemd) so
-        # that we don't use an obsolete/garbage-collected release agent.
-        "-USYSTEMD_CGROUP_AGENT_PATH" "-DSYSTEMD_CGROUP_AGENT_PATH=\"/run/current-system/systemd/lib/systemd/systemd-cgroups-agent\""
-
-        "-USYSTEMD_BINARY_PATH" "-DSYSTEMD_BINARY_PATH=\"/run/current-system/systemd/lib/systemd/systemd\""
-      ];
-
-    postInstall =
-      ''
-        # sysinit.target: Don't depend on
-        # systemd-tmpfiles-setup.service. This interferes with NixOps's
-        # send-keys feature (since sshd.service depends indirectly on
-        # sysinit.target).
-        mv $out/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service $out/lib/systemd/system/multi-user.target.wants/
-
-        mkdir -p $out/example/systemd
-        mv $out/lib/{modules-load.d,binfmt.d,sysctl.d,tmpfiles.d} $out/example
-        mv $out/lib/systemd/{system,user} $out/example/systemd
-
-        rm -rf $out/etc/systemd/system
-
-        # Install SysV compatibility commands.
-        mkdir -p $out/sbin
-        ln -s $out/lib/systemd/systemd $out/sbin/telinit
-        for i in init halt poweroff runlevel reboot shutdown; do
-          ln -s $out/bin/systemctl $out/sbin/$i
-        done
-
-        # Fix reference to /bin/false in the D-Bus services.
-        for i in $out/share/dbus-1/system-services/*.service; do
-          substituteInPlace $i --replace /bin/false ${coreutils}/bin/false
-        done
-
-        rm -rf $out/etc/rpm
-
-        # "kernel-install" shouldn't be used on NixOS.
-        find $out -name "*kernel-install*" -exec rm {} \;
-
-        # Keep only libudev and libsystemd in the lib output.
-        mkdir -p $out/lib
-        mv $lib/lib/security $lib/lib/libnss* $out/lib/
-      ''; # */
-
-    enableParallelBuilding = true;
-
-    # The rpath to the shared systemd library is not added by meson. The
-    # functionality was removed by a nixpkgs patch because it would overwrite
-    # the existing rpath.
-    postFixup = ''
-      sharedLib=libsystemd-shared-${version}.so
-      for prog in `find $out -type f -executable`; do
-        (patchelf --print-needed $prog | grep $sharedLib > /dev/null) && (
-          patchelf --set-rpath `patchelf --print-rpath $prog`:"$out/lib/systemd" $prog
-        ) || true
-      done
-    '';
-
-    # The interface version prevents NixOS from switching to an
-    # incompatible systemd at runtime.  (Switching across reboots is
-    # fine, of course.)  It should be increased whenever systemd changes
-    # in a backwards-incompatible way.  If the interface version of two
-    # systemd builds is the same, then we can switch between them at
-    # runtime; otherwise we can't and we need to reboot.
-    passthru.interfaceVersion = 2;
-
-    meta = {
-      homepage = http://www.freedesktop.org/wiki/Software/systemd;
-      description = "A system and service manager for Linux";
-      platforms = stdenv.lib.platforms.linux;
-      maintainers = [ stdenv.lib.maintainers.eelco ];
-    };
+in stdenv.mkDerivation rec {
+  version = "237";
+  name = "systemd-${version}";
+
+  src = fetchFromGitHub {
+    owner = "NixOS";
+    repo = "systemd";
+    rev = "98067cc806ae0d2759cdd2334f230cd8548e5317";
+    sha256 = "077svfs2xy3g30s62q69wcv5pb9vfhzh8i7lhfri73vvhwbpzd5q";
+  };
+
+  outputs = [ "out" "lib" "man" "dev" ];
+
+  nativeBuildInputs =
+    [ pkgconfig intltool gperf libxslt gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45
+      ninja meson
+      coreutils # meson calls date, stat etc.
+      glibcLocales
+      patchelf getent m4
+    ];
+  buildInputs =
+    [ linuxHeaders libcap kmod xz pam acl
+      /* cryptsetup */ libuuid glib libgcrypt libgpgerror libidn2
+      libmicrohttpd kexectools libseccomp libffi audit lz4 bzip2 libapparmor
+      iptables gnu-efi
+      # This is actually native, but we already pull it from buildPackages
+      pythonLxmlEnv
+    ];
+
+  #dontAddPrefix = true;
+
+  mesonFlags = [
+    "-Dloadkeys-path=${kbd}/bin/loadkeys"
+    "-Dsetfont-path=${kbd}/bin/setfont"
+    "-Dtty-gid=3" # tty in NixOS has gid 3
+    # "-Dtests=" # TODO
+    "-Dlz4=true"
+    "-Dhostnamed=true"
+    "-Dnetworkd=true"
+    "-Dsysusers=false"
+    "-Dtimedated=true"
+    "-Dtimesyncd=true"
+    "-Dfirstboot=false"
+    "-Dlocaled=true"
+    "-Dresolve=true"
+    "-Dsplit-usr=false"
+    "-Dlibcurl=false"
+    "-Dlibidn=false"
+    "-Dlibidn2=true"
+    "-Dquotacheck=false"
+    "-Dldconfig=false"
+    "-Dsmack=true"
+    "-Dsystem-uid-max=499" #TODO: debug why awking around in /etc/login.defs doesn't work
+    "-Dsystem-gid-max=499"
+    # "-Dtime-epoch=1"
+
+    (if stdenv.isArm || !hostPlatform.isEfi then "-Dgnu-efi=false" else "-Dgnu-efi=true")
+    "-Defi-libdir=${toString gnu-efi}/lib"
+    "-Defi-includedir=${toString gnu-efi}/include/efi"
+    "-Defi-ldsdir=${toString gnu-efi}/lib"
+
+    "-Dsysvinit-path="
+    "-Dsysvrcnd-path="
+
+    "-Dkill-path=${coreutils}/bin/kill"
+    "-Dkmod-path=${kmod}/bin/kmod"
+    "-Dsulogin-path=${utillinux}/bin/sulogin"
+    "-Dmount-path=${utillinux}/bin/mount"
+    "-Dumount-path=${utillinux}/bin/umount"
+  ];
+
+  preConfigure = ''
+    mesonFlagsArray+=(-Dntp-servers="0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org")
+    mesonFlagsArray+=(-Ddbuspolicydir=$out/etc/dbus-1/system.d)
+    mesonFlagsArray+=(-Ddbussessionservicedir=$out/share/dbus-1/services)
+    mesonFlagsArray+=(-Ddbussystemservicedir=$out/share/dbus-1/system-services)
+    mesonFlagsArray+=(-Dpamconfdir=$out/etc/pam.d)
+    mesonFlagsArray+=(-Drootprefix=$out)
+    mesonFlagsArray+=(-Dlibdir=$lib/lib)
+    mesonFlagsArray+=(-Drootlibdir=$lib/lib)
+    mesonFlagsArray+=(-Dmandir=$man/lib)
+    mesonFlagsArray+=(-Dincludedir=$dev/include)
+    mesonFlagsArray+=(-Dpkgconfiglibdir=$dev/lib/pkgconfig)
+    mesonFlagsArray+=(-Dpkgconfigdatadir=$dev/share/pkgconfig)
+
+    # FIXME: Why aren't includedir and libdir picked up from mesonFlags while other options are?
+    substituteInPlace meson.build \
+      --replace "includedir = join_paths(prefixdir, get_option('includedir'))" \
+                "includedir = '$dev/include'" \
+      --replace "libdir = join_paths(prefixdir, get_option('libdir'))" \
+                "libdir = '$lib/lib'"
+
+    export LC_ALL="en_US.UTF-8";
+    # FIXME: patch this in systemd properly (and send upstream).
+    # already fixed in f00929ad622c978f8ad83590a15a765b4beecac9: (u)mount
+    for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c src/shared/generator.c; do
+      test -e $i
+      substituteInPlace $i \
+        --replace /usr/bin/getent ${getent}/bin/getent \
+        --replace /sbin/swapon ${utillinux.bin}/sbin/swapon \
+        --replace /sbin/swapoff ${utillinux.bin}/sbin/swapoff \
+        --replace /sbin/fsck ${utillinux.bin}/sbin/fsck \
+        --replace /bin/echo ${coreutils}/bin/echo \
+        --replace /bin/cat ${coreutils}/bin/cat \
+        --replace /sbin/sulogin ${utillinux.bin}/sbin/sulogin \
+        --replace /usr/lib/systemd/systemd-fsck $out/lib/systemd/systemd-fsck \
+        --replace /bin/plymouth /run/current-system/sw/bin/plymouth # To avoid dependency
+    done
+
+    for i in tools/xml_helper.py tools/make-directive-index.py tools/make-man-index.py test/sys-script.py; do
+      substituteInPlace $i \
+        --replace "#!/usr/bin/env python" "#!${pythonLxmlEnv}/bin/python"
+    done
+
+    for i in src/basic/generate-gperfs.py src/resolve/generate-dns_type-gperf.py src/test/generate-sym-test.py ; do
+      substituteInPlace $i \
+        --replace "#!/usr/bin/env python" "#!${buildPackages.python3Packages.python}/bin/python"
+    done
+
+    substituteInPlace src/journal/catalog.c \
+      --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
+  '';
+
+  # These defines are overridden by CFLAGS and would trigger annoying
+  # warning messages
+  postConfigure = ''
+    substituteInPlace config.h \
+      --replace "POLKIT_AGENT_BINARY_PATH" "_POLKIT_AGENT_BINARY_PATH" \
+      --replace "SYSTEMD_BINARY_PATH" "_SYSTEMD_BINARY_PATH" \
+      --replace "SYSTEMD_CGROUP_AGENT_PATH" "_SYSTEMD_CGROUP_AGENT_PATH"
+  '';
+
+  hardeningDisable = [ "stackprotector" ];
+
+  NIX_CFLAGS_COMPILE =
+    [ # Can't say ${polkit.bin}/bin/pkttyagent here because that would
+      # lead to a cyclic dependency.
+      "-UPOLKIT_AGENT_BINARY_PATH" "-DPOLKIT_AGENT_BINARY_PATH=\"/run/current-system/sw/bin/pkttyagent\""
+
+      # Set the release_agent on /sys/fs/cgroup/systemd to the
+      # currently running systemd (/run/current-system/systemd) so
+      # that we don't use an obsolete/garbage-collected release agent.
+      "-USYSTEMD_CGROUP_AGENT_PATH" "-DSYSTEMD_CGROUP_AGENT_PATH=\"/run/current-system/systemd/lib/systemd/systemd-cgroups-agent\""
+
+      "-USYSTEMD_BINARY_PATH" "-DSYSTEMD_BINARY_PATH=\"/run/current-system/systemd/lib/systemd/systemd\""
+    ];
+
+  postInstall = ''
+    # sysinit.target: Don't depend on
+    # systemd-tmpfiles-setup.service. This interferes with NixOps's
+    # send-keys feature (since sshd.service depends indirectly on
+    # sysinit.target).
+    mv $out/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service $out/lib/systemd/system/multi-user.target.wants/
+
+    mkdir -p $out/example/systemd
+    mv $out/lib/{modules-load.d,binfmt.d,sysctl.d,tmpfiles.d} $out/example
+    mv $out/lib/systemd/{system,user} $out/example/systemd
+
+    rm -rf $out/etc/systemd/system
+
+    # Install SysV compatibility commands.
+    mkdir -p $out/sbin
+    ln -s $out/lib/systemd/systemd $out/sbin/telinit
+    for i in init halt poweroff runlevel reboot shutdown; do
+      ln -s $out/bin/systemctl $out/sbin/$i
+    done
+
+    # Fix reference to /bin/false in the D-Bus services.
+    for i in $out/share/dbus-1/system-services/*.service; do
+      substituteInPlace $i --replace /bin/false ${coreutils}/bin/false
+    done
+
+    rm -rf $out/etc/rpm
+
+    # "kernel-install" shouldn't be used on NixOS.
+    find $out -name "*kernel-install*" -exec rm {} \;
+
+    # Keep only libudev and libsystemd in the lib output.
+    mkdir -p $out/lib
+    mv $lib/lib/security $lib/lib/libnss* $out/lib/
+  ''; # */
+
+  enableParallelBuilding = true;
+
+  # The rpath to the shared systemd library is not added by meson. The
+  # functionality was removed by a nixpkgs patch because it would overwrite
+  # the existing rpath.
+  postFixup = ''
+    sharedLib=libsystemd-shared-${version}.so
+    for prog in `find $out -type f -executable`; do
+      (patchelf --print-needed $prog | grep $sharedLib > /dev/null) && (
+        patchelf --set-rpath `patchelf --print-rpath $prog`:"$out/lib/systemd" $prog
+      ) || true
+    done
+  '';
+
+  # The interface version prevents NixOS from switching to an
+  # incompatible systemd at runtime.  (Switching across reboots is
+  # fine, of course.)  It should be increased whenever systemd changes
+  # in a backwards-incompatible way.  If the interface version of two
+  # systemd builds is the same, then we can switch between them at
+  # runtime; otherwise we can't and we need to reboot.
+  passthru.interfaceVersion = 2;
+
+  meta = {
+    homepage = http://www.freedesktop.org/wiki/Software/systemd;
+    description = "A system and service manager for Linux";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
 }
diff --git a/pkgs/os-specific/linux/trinity/default.nix b/pkgs/os-specific/linux/trinity/default.nix
index b69bd576ed23c..4c3a92cd87e64 100644
--- a/pkgs/os-specific/linux/trinity/default.nix
+++ b/pkgs/os-specific/linux/trinity/default.nix
@@ -11,6 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "19asyrypjhx2cgjdmwfvmgc0hk3xg00zvgkl89vwxngdb40bkwfq";
   };
 
+  # Fails on 32-bit otherwise
+  NIX_CFLAGS_COMPILE = "-Wno-error";
+
   postPatch = ''
     patchShebangs ./configure
     patchShebangs ./scripts/
diff --git a/pkgs/os-specific/linux/v4l-utils/default.nix b/pkgs/os-specific/linux/v4l-utils/default.nix
index 3adedf8c1dd16..84b31d4d516b5 100644
--- a/pkgs/os-specific/linux/v4l-utils/default.nix
+++ b/pkgs/os-specific/linux/v4l-utils/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, pkgconfig, perl
 , libjpeg, udev
 , withUtils ? true
-, withGUI ? true, alsaLib, libX11, qtbase, mesa_glu
+, withGUI ? true, alsaLib, libX11, qtbase, libGLU
 }:
 
 # See libv4l in all-packages.nix for the libs only (overrides alsa, libX11 & QT)
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig perl ];
 
-  buildInputs = [ udev ] ++ lib.optionals (withUtils && withGUI) [ alsaLib libX11 qtbase mesa_glu ];
+  buildInputs = [ udev ] ++ lib.optionals (withUtils && withGUI) [ alsaLib libX11 qtbase libGLU ];
 
   propagatedBuildInputs = [ libjpeg ];
 
diff --git a/pkgs/servers/amqp/qpid-cpp/default.nix b/pkgs/servers/amqp/qpid-cpp/default.nix
index 6c256d14fe783..ea2c0325148b8 100644
--- a/pkgs/servers/amqp/qpid-cpp/default.nix
+++ b/pkgs/servers/amqp/qpid-cpp/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
   name = "qpid-cpp-${version}";
 
-  version = "0.34";
+  version = "1.37.0";
 
   src = fetchurl {
     url = "mirror://apache/qpid/cpp/${version}/${name}.tar.gz";
-    sha256 = "07ibwvw5lm7xabv32zai5x03r7l9mxm0zk7h9lbfkzmav0f41w0w";
+    sha256 = "1s4hyi867i0lqn81c1crrk6fga1gmsv61675vjv5v41skz56lrsb";
   };
 
   buildInputs = [ cmake python2 boost libuuid ruby ];
diff --git a/pkgs/servers/ftp/bftpd/default.nix b/pkgs/servers/ftp/bftpd/default.nix
index cc1582eb9e9c3..865b6f3faba1d 100644
--- a/pkgs/servers/ftp/bftpd/default.nix
+++ b/pkgs/servers/ftp/bftpd/default.nix
@@ -2,11 +2,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "bftpd";
-  version = "4.4";
+  version = "4.8";
   # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
   src = fetchurl {
     url = "mirror://sourceforge/project/${pname}/${pname}/${name}/${name}.tar.gz";
-    sha256 = "0hgpqwv7mj1yln8ps9bbcjhl5hvs02nxjfkk9nhkr6fysfyyn1dq";
+    sha256 = "1zlsajj6wjd9wcijzngmafhy2gr3sm5rphsr5n44rlmx1jdkk00c";
   };
   buildInputs = [];
   preConfigure = ''
diff --git a/pkgs/servers/http/apache-modules/mod_wsgi/default.nix b/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
index 1e898075d191a..4d45f70a9fd46 100644
--- a/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_wsgi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "mod_wsgi-${version}";
-  version = "3.5";
+  version = "4.5.24";
 
   src = fetchurl {
     url = "https://github.com/GrahamDumpleton/mod_wsgi/archive/${version}.tar.gz";
-    sha256 = "14xz422jlakdhxzsl8xs9if86yf1fnkwdg0havjyqs7my0w4qrzh";
+    sha256 = "1anxml8i3q90x8n30xfydpmv41cxlwqrg3vr98ayzaak02maxr99";
   };
 
   buildInputs = [ apacheHttpd python2 ];
diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix
index 3ec493d67da2e..2bfe032959585 100644
--- a/pkgs/servers/http/nginx/mainline.nix
+++ b/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix (args // {
-  version = "1.13.8";
-  sha256 = "1ib4hkngj9z7pl73lnn96d85m7v2wwb56nkypwx7d6pm3z1vc444";
+  version = "1.13.9";
+  sha256 = "0hpsyxpxj89p5vrzv9p1hp7xjbnj5c1w6fdy626ycvsiay4a3bjz";
 })
diff --git a/pkgs/servers/http/openresty/default.nix b/pkgs/servers/http/openresty/default.nix
index 147e24c014d27..093f5f0e50278 100644
--- a/pkgs/servers/http/openresty/default.nix
+++ b/pkgs/servers/http/openresty/default.nix
@@ -1,25 +1,30 @@
-{ stdenv, fetchurl, fetchgit, openssl, zlib, pcre, libxml2, libxslt, gd, geoip
-, perl }:
-
-assert stdenv.isLinux;
+{ stdenv, fetchurl, fetchgit, openssl, zlib, pcre, postgresql, libxml2, libxslt,
+gd, geoip, perl }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "openresty-${version}";
-  version = "1.9.3.1";
+  version = "1.13.6.1";
 
   src = fetchurl {
-    url = "http://openresty.org/download/ngx_openresty-${version}.tar.gz";
-    sha256 = "1fw8yxjndf5gsk44l4bsixm270fxv7f5cdiwzq9ps6j3hhgx5kyv";
+    url = "http://openresty.org/download/openresty-${version}.tar.gz";
+    sha256 = "0sv93nw1j597mdpnibmgaa3nnghdk0z6k27vavm8w2c1z9n6w96i";
   };
 
-  buildInputs = [ openssl zlib pcre libxml2 libxslt gd geoip perl ];
+  buildInputs = [ openssl zlib pcre libxml2 libxslt gd geoip postgresql ];
+  nativeBuildInputs = [ perl ];
+
+  NIX_CFLAGS_COMPILE = ["-I${libxml2.dev}/include/libxml2"];
+
+  preConfigure = ''
+    patchShebangs .
+  '';
 
   configureFlags = [
     "--with-pcre-jit"
     "--with-http_ssl_module"
-    "--with-http_spdy_module"
+    "--with-http_v2_module"
     "--with-http_realip_module"
     "--with-http_addition_module"
     "--with-http_xslt_module"
@@ -36,26 +41,22 @@ stdenv.mkDerivation rec {
     "--with-http_secure_link_module"
     "--with-http_degradation_module"
     "--with-http_stub_status_module"
+    "--with-http_postgres_module"
     "--with-ipv6"
   ];
 
-  postInstall = ''
-    mv $out/nginx/sbin/nginx $out/bin
-    mv $out/luajit/bin/luajit-2.1.0-alpha $out/bin/luajit-openresty
-    ln -s $out/bin/nginx $out/bin/openresty
-  '';
+  enableParallelBuilding = true;
 
-  preConfigure = ''
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libxml2.dev}/include/libxml2 $additionalFlags"
-    export PATH="$PATH:${stdenv.cc.libc.bin}/bin"
-    patchShebangs .
+  postInstall = ''
+    ln -s $out/luajit/bin/luajit-2.1.0-beta3 $out/bin/luajit-openresty
+    ln -s $out/nginx/sbin/nginx $out/bin/nginx
   '';
 
   meta = {
     description = "A fast web application server built on Nginx";
     homepage    = http://openresty.org;
     license     = licenses.bsd2;
-    platforms   = platforms.linux;
-    maintainers = with maintainers; [ thoughtpolice ];
+    platforms   = platforms.all;
+    maintainers = with maintainers; [ thoughtpolice lblasc ];
   };
 }
diff --git a/pkgs/servers/mail/clamsmtp/default.nix b/pkgs/servers/mail/clamsmtp/default.nix
index 9386be321b45b..7214c08d2427b 100644
--- a/pkgs/servers/mail/clamsmtp/default.nix
+++ b/pkgs/servers/mail/clamsmtp/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0apr1pxifw6f1rbbsdrrwzs1dnhybg4hda3qqhqcw7p14r5xnbx5";
   };
 
+  patches = [ ./header-order.patch ];
+
   meta = with stdenv.lib; {
     description = "SMTP filter that allows to check for viruses using the ClamAV
                    anti-virus software";
diff --git a/pkgs/servers/mail/clamsmtp/header-order.patch b/pkgs/servers/mail/clamsmtp/header-order.patch
new file mode 100644
index 0000000000000..102ae0a471ddf
--- /dev/null
+++ b/pkgs/servers/mail/clamsmtp/header-order.patch
@@ -0,0 +1,25 @@
+diff --git a/common/smtppass.c b/common/smtppass.c
+index d9be1ba..4a366f4 100644
+--- a/common/smtppass.c
++++ b/common/smtppass.c
+@@ -60,15 +60,15 @@
+ 
+ #include "usuals.h"
+ 
+-#ifdef LINUX_TRANSPARENT_PROXY
+-#include <linux/netfilter_ipv4.h>
+-#endif
+-
+ #include "compat.h"
+ #include "sock_any.h"
+ #include "stringx.h"
+ #include "sppriv.h"
+ 
++#ifdef LINUX_TRANSPARENT_PROXY
++#include <linux/netfilter_ipv4.h>
++#endif
++
+ /* -----------------------------------------------------------------------
+  *  STRUCTURES
+  */
+
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index 6b2adf5721756..0060a59d80718 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -8,7 +8,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "dovecot-2.3.0";
+  name = "dovecot-2.3.0.1";
 
   nativeBuildInputs = [ perl pkgconfig ];
   buildInputs =
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://dovecot.org/releases/2.3/${name}.tar.gz";
-    sha256 = "10c5myzgys866c3x6jdr1s9x9pqnjd5vpyz8z384sph21m3wnq6y";
+    sha256 = "0lzisrdgrj5qqwjb7bv99mf2aljm568r6g108yisp0s644z2nxxb";
   };
 
   preConfigure = ''
@@ -47,16 +47,6 @@ stdenv.mkDerivation rec {
     # so we can symlink plugins from several packages there.
     # The symlinking needs to be done in NixOS.
     ./2.2.x-module_dir.patch
-    (fetchpatch {
-      name = "CVE-2017-14132_part1.patch";
-      url = https://github.com/dovecot/core/commit/1a29ed2f96da1be22fa5a4d96c7583aa81b8b060.patch;
-      sha256 = "1pcfzxr8xlwbpa7z19grp7mlvdnan6ln8zw74dj4pdmynmlk4aw9";
-    })
-    (fetchpatch {
-      name = "CVE-2017-14132_part2.patch";
-      url = https://github.com/dovecot/core/commit/a9b135760aea6d1790d447d351c56b78889dac22.patch;
-      sha256 = "0082iid5rvjmh003xi9s09jld2rb31hbvni0yai1h1ggbmd5zf8l";
-    })
   ];
 
   configureFlags = [
diff --git a/pkgs/servers/monitoring/prometheus/alertmanager.nix b/pkgs/servers/monitoring/prometheus/alertmanager.nix
index f3d6a8d877634..2f9016b749911 100644
--- a/pkgs/servers/monitoring/prometheus/alertmanager.nix
+++ b/pkgs/servers/monitoring/prometheus/alertmanager.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "alertmanager-${version}";
-  version = "0.13.0";
+  version = "0.14.0";
   rev = "v${version}";
 
   goPackagePath = "github.com/prometheus/alertmanager";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "prometheus";
     repo = "alertmanager";
-    sha256 = "170q5fynwa3g3wm77g61610n1lf5kqirhrgak6slqzn52ji870nc";
+    sha256 = "0f6yi19zffxnp3dlr4zs52b7bllks3kjxkdn9zvvi5lvpkzmba5j";
   };
 
   # Tests exist, but seem to clash with the firewall.
diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix
index da192f70bfe06..fde66a71e2e6c 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -34,7 +34,7 @@ let
   opt = stdenv.lib.optional;
   mkFlag = c: f: if c then "--enable-${f}" else "--disable-${f}";
   major = "0.20";
-  minor = "15";
+  minor = "18";
 
 in stdenv.mkDerivation rec {
   name = "mpd-${version}";
@@ -44,7 +44,7 @@ in stdenv.mkDerivation rec {
     owner  = "MusicPlayerDaemon";
     repo   = "MPD";
     rev    = "v${version}";
-    sha256 = "0idlz9y7gn1yqk5x4igp060wvspzsf446b6ybhbb0swi035qpd2x";
+    sha256 = "020vdn94fwjbldnkgr2h3dk9sm6f5k59qic568mw88yi7cr3mjsh";
   };
 
   patches = [ ./x86.patch ];
diff --git a/pkgs/servers/sabnzbd/default.nix b/pkgs/servers/sabnzbd/default.nix
index b754807dc9bd4..d46f5677b9f04 100644
--- a/pkgs/servers/sabnzbd/default.nix
+++ b/pkgs/servers/sabnzbd/default.nix
@@ -4,7 +4,7 @@ let
   pythonEnv = python2.withPackages(ps: with ps; [ cryptography cheetah yenc ]);
   path = stdenv.lib.makeBinPath [ par2cmdline unrar unzip p7zip ];
 in stdenv.mkDerivation rec {
-  version = "1.2.1";
+  version = "2.3.2";
   pname = "sabnzbd";
   name = "${pname}-${version}";
 
@@ -12,7 +12,7 @@ in stdenv.mkDerivation rec {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "1rw6f455p0n8qigzkvnlr0d6rzkx2mpzhcp7m0j8fwqdbq831q8y";
+    sha256 = "0c0ap8bygvz643fgfvvmwshcyfblq2c5jziqwgpf30g6rsbfv2v0";
   };
 
   buildInputs = [ pythonEnv makeWrapper ];
diff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix
index 90b00169a513a..187e79da43c0c 100644
--- a/pkgs/servers/samba/4.x.nix
+++ b/pkgs/servers/samba/4.x.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, python, pkgconfig, perl, libxslt, docbook_xsl
 , docbook_xml_dtd_42, docbook_xml_dtd_45, readline, talloc
 , popt, iniparser, libbsd, libarchive, libiconv, gettext
-, kerberos, zlib, openldap, cups, pam, avahi, acl, libaio, fam, libceph, glusterfs
+, krb5Full, zlib, openldap, cups, pam, avahi, acl, libaio, fam, libceph, glusterfs
 , gnutls, libgcrypt, libgpgerror
 , ncurses, libunwind, libibverbs, librdmacm, systemd
 
@@ -19,11 +19,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   name = "samba-${version}";
-  version = "4.7.4";
+  version = "4.7.5";
 
   src = fetchurl {
     url = "mirror://samba/pub/samba/stable/${name}.tar.gz";
-    sha256 = "0iw290n0q4l5s92d0f9yz27yp3rdfr6bvsmvg1xvd19g8p2d04pv";
+    sha256 = "13gyr0sk9vx6mccr2h35ca3g92kp50cqxrlzfgrddfmskzx08v9i";
   };
 
   outputs = [ "out" "dev" "man" ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ python pkgconfig perl libxslt docbook_xsl docbook_xml_dtd_42 /*
       docbook_xml_dtd_45 */ readline talloc popt iniparser
-      libbsd libarchive zlib acl fam libiconv gettext libunwind kerberos
+      libbsd libarchive zlib acl fam libiconv gettext libunwind krb5Full
     ]
     ++ optionals stdenv.isLinux [ libaio pam systemd ]
     ++ optionals (enableInfiniband && stdenv.isLinux) [ libibverbs librdmacm ]
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
     [ "--with-static-modules=NONE"
       "--with-shared-modules=ALL"
       "--with-system-mitkrb5"
+      "--with-system-mitkdc" "${krb5Full}"
       "--enable-fhs"
       "--sysconfdir=/etc"
       "--localstatedir=/var"
diff --git a/pkgs/servers/sslh/default.nix b/pkgs/servers/sslh/default.nix
index c8ac6ed9db072..bbb9b6ca51913 100644
--- a/pkgs/servers/sslh/default.nix
+++ b/pkgs/servers/sslh/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "sslh-${version}";
-  version = "1.19";
+  version = "1.19c";
 
   src = fetchurl {
     url = "http://www.rutschle.net/tech/sslh/sslh-v${version}.tar.gz";
-    sha256 = "17362d3srrr49c3vvyg69maynpxac92wvi5j0nvlnh6sjs1v377g";
+    sha256 = "1wvvqj9r293skgqi28q4ixz7zwf301h1bf514p41xbi7ifldy4dv";
   };
 
   postPatch = "patchShebangs *.sh";
diff --git a/pkgs/servers/uwsgi/default.nix b/pkgs/servers/uwsgi/default.nix
index b420c673850bd..bb3f79855330f 100644
--- a/pkgs/servers/uwsgi/default.nix
+++ b/pkgs/servers/uwsgi/default.nix
@@ -49,11 +49,11 @@ in
 
 stdenv.mkDerivation rec {
   name = "uwsgi-${version}";
-  version = "2.0.16";
+  version = "2.0.17";
 
   src = fetchurl {
     url = "http://projects.unbit.it/downloads/${name}.tar.gz";
-    sha256 = "1x61vipgzhzb6flbbgl0hq96j9d330gh0kmwv8pwh6n57j7z84d9";
+    sha256 = "1wlbaairsmhp6bx5wv282q9pgh6w7w6yrb8vxjznfaxrinsfkhix";
   };
 
   nativeBuildInputs = [ python3 pkgconfig ];
diff --git a/pkgs/servers/web-apps/pump.io/composition.nix b/pkgs/servers/web-apps/pump.io/composition.nix
deleted file mode 100644
index da8cc0e73b131..0000000000000
--- a/pkgs/servers/web-apps/pump.io/composition.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-# This file has been generated by node2nix 1.2.0. Do not edit!
-
-{pkgs ? import <nixpkgs> {
-    inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-6_x"}:
-
-let
-  nodeEnv = import ../../../development/node-packages/node-env.nix {
-    inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile;
-    inherit nodejs;
-  };
-in
-import ./node-packages.nix {
-  inherit (pkgs) fetchurl fetchgit;
-  inherit nodeEnv;
-}
diff --git a/pkgs/servers/web-apps/pump.io/default.nix b/pkgs/servers/web-apps/pump.io/default.nix
deleted file mode 100644
index f888566cad664..0000000000000
--- a/pkgs/servers/web-apps/pump.io/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ pkgs, system, stdenv, fetchurl, makeWrapper, nodejs, graphicsmagick }:
-
-with stdenv.lib;
-
-let
-  # To regenerate composition.nix, run generate.sh.
-  nodePackages = import ./composition.nix {
-    inherit pkgs system nodejs;
-  };
-in
-nodePackages.package.override (oldAttrs: {
-  buildInputs = oldAttrs.buildInputs ++ [ makeWrapper ];
-
-  postInstall = ''
-    for prog in pump pump-authorize pump-follow pump-post-note pump-register-app pump-register-user pump-stop-following; do
-      wrapProgram "$out/bin/$prog" \
-        --prefix PATH : ${graphicsmagick}/bin:$out/bin
-    done
-  '';
-
-  passthru.names = ["pump.io"];
-
-  meta = {
-    description = "Social server with an ActivityStreams API";
-    homepage = http://pump.io/;
-    license = licenses.asl20;
-    platforms = platforms.unix;
-    maintainers = [ maintainers.rvl ];
-    longDescription = ''
-      This is pump.io. It's a stream server that does most of what
-      people really want from a social network.
-
-      What's it for?
-
-      I post something and my followers see it. That's the rough idea
-      behind the pump.
-
-      There's an API defined in the API.md file. It uses
-      activitystrea.ms JSON as the main data and command format.
-
-      You can post almost anything that can be represented with
-      activity streams -- short or long text, bookmarks, images,
-      video, audio, events, geo checkins. You can follow friends,
-      create lists of people, and so on.
-
-      The software is useful for at least these scenarios:
-
-      * Mobile-first social networking
-      * Activity stream functionality for an existing app
-      * Experimenting with social software
-    '';
-  };
-})
diff --git a/pkgs/servers/web-apps/pump.io/generate.sh b/pkgs/servers/web-apps/pump.io/generate.sh
deleted file mode 100755
index 6dc91c72c09ea..0000000000000
--- a/pkgs/servers/web-apps/pump.io/generate.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#! /usr/bin/env nix-shell
-#! nix-shell -i bash -p nodePackages.node2nix curl jshon
-
-set -e
-
-# Normally, this node2nix invocation would be sufficient:
-#   exec node2nix --input node-packages.json --composition composition.nix
-#
-# But pump.io soft-depends on extra modules, which have to be *inside*
-# its own node_modules, not beside them.
-#
-# So we hack these extra deps into package.json and feed that into
-# node2nix.
-#
-# Also jshon does funny things with slashes in strings, which can be
-# fixed with sed.
-
-VERSION="3.0.0"
-URL="https://registry.npmjs.org/pump.io/-/pump.io-$VERSION.tgz"
-SHA1="ycfm7ak83xi8mgafhp9q0n6n3kzmdz16"
-
-curl https://raw.githubusercontent.com/e14n/pump.io/v$VERSION/package.json | \
-    jshon -e dependencies              \
-          -s '*' -i databank-mongodb   \
-          -s '*' -i databank-redis     \
-          -s '*' -i databank-lrucache  \
-          -p | sed 's=\\/=/=g' > full-package.json
-
-node2nix --input full-package.json --composition composition.nix --node-env ../../../development/node-packages/node-env.nix
-
-# overriding nodePackages src doesn't seem to work, so...
-sed -i "s|src = ./.|src = fetchurl { url = \"$URL\"; sha1 = \"$SHA1\"; }|" node-packages.nix
-
-# fetchgit or node2nix is having problems with submodules or something.
-# This is the sha256 for connect-auth which is a npm dep hosted on
-# github and containing submodules.
-sed -i "s|d08fecbb72aff14ecb39dc310e8965ba92228f0c0def41fbde3db5ea7a1aac19|1b052xpj10hanx21286i5w0jrwxxkiwbdzpdngg9s2j1m7a9543b|" node-packages.nix
diff --git a/pkgs/servers/web-apps/pump.io/node-packages.json b/pkgs/servers/web-apps/pump.io/node-packages.json
deleted file mode 100644
index 294da7ab2f1c8..0000000000000
--- a/pkgs/servers/web-apps/pump.io/node-packages.json
+++ /dev/null
@@ -1,7 +0,0 @@
-[
-  "pump.io",
-  "databank-mongodb",
-  "databank-redis",
-  "databank-memcached",
-  "databank-lrucache"
-]
diff --git a/pkgs/servers/web-apps/pump.io/node-packages.nix b/pkgs/servers/web-apps/pump.io/node-packages.nix
deleted file mode 100644
index ca27c79fab908..0000000000000
--- a/pkgs/servers/web-apps/pump.io/node-packages.nix
+++ /dev/null
@@ -1,4889 +0,0 @@
-# This file has been generated by node2nix 1.2.0. Do not edit!
-
-{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
-
-let
-  sources = {
-    "bcrypt-0.8.7" = {
-      name = "bcrypt";
-      packageName = "bcrypt";
-      version = "0.8.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bcrypt/-/bcrypt-0.8.7.tgz";
-        sha1 = "bc3875a9afd0a7b2cd231a6a7f218a5ce156b093";
-      };
-    };
-    "bunyan-1.8.9" = {
-      name = "bunyan";
-      packageName = "bunyan";
-      version = "1.8.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bunyan/-/bunyan-1.8.9.tgz";
-        sha1 = "2c7c9d422ea64ee2465d52b4decd72de0657401a";
-      };
-    };
-    "colors-1.1.2" = {
-      name = "colors";
-      packageName = "colors";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz";
-        sha1 = "168a4701756b6a7f51a12ce0c97bfa28c084ed63";
-      };
-    };
-    "connect-2.30.2" = {
-      name = "connect";
-      packageName = "connect";
-      version = "2.30.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/connect/-/connect-2.30.2.tgz";
-        sha1 = "8da9bcbe8a054d3d318d74dfec903b5c39a1b609";
-      };
-    };
-    "connect-auth-git://github.com/e14n/connect-auth" = {
-      name = "connect-auth";
-      packageName = "connect-auth";
-      version = "0.6.0";
-      src = fetchgit {
-        url = "git://github.com/e14n/connect-auth";
-        rev = "ae4e3c4c86a5d266be7bd91c2b99856f9a37b1ec";
-        sha256 = "1b052xpj10hanx21286i5w0jrwxxkiwbdzpdngg9s2j1m7a9543b";
-      };
-    };
-    "connect-databank-1.0.3" = {
-      name = "connect-databank";
-      packageName = "connect-databank";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/connect-databank/-/connect-databank-1.0.3.tgz";
-        sha1 = "dad24f08dc385d9c3a94f1a52730aec0c7d13b02";
-      };
-    };
-    "connect-multiparty-2.0.0" = {
-      name = "connect-multiparty";
-      packageName = "connect-multiparty";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/connect-multiparty/-/connect-multiparty-2.0.0.tgz";
-        sha1 = "57a7b61cc7b31b6eef4a62878d60d771b23699ab";
-      };
-    };
-    "crypto-cacerts-0.1.0" = {
-      name = "crypto-cacerts";
-      packageName = "crypto-cacerts";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/crypto-cacerts/-/crypto-cacerts-0.1.0.tgz";
-        sha1 = "3499c6dff949ab005d4ad4a3f09c48ced6c88a41";
-      };
-    };
-    "databank-0.19.8" = {
-      name = "databank";
-      packageName = "databank";
-      version = "0.19.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/databank/-/databank-0.19.8.tgz";
-        sha1 = "bf73d6b4fc002045793faeff2b1c3fabc9999844";
-      };
-    };
-    "dateformat-1.0.12" = {
-      name = "dateformat";
-      packageName = "dateformat";
-      version = "1.0.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz";
-        sha1 = "9f124b67594c937ff706932e4a642cca8dbbfee9";
-      };
-    };
-    "dialback-client-0.2.0" = {
-      name = "dialback-client";
-      packageName = "dialback-client";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dialback-client/-/dialback-client-0.2.0.tgz";
-        sha1 = "051806a88a6cc18ffb25adf13eda232e354ebcb6";
-      };
-    };
-    "dompurify-0.8.5" = {
-      name = "dompurify";
-      packageName = "dompurify";
-      version = "0.8.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dompurify/-/dompurify-0.8.5.tgz";
-        sha1 = "5bc591b61e222243cc827ca382d7a2e2660c1a44";
-      };
-    };
-    "emailjs-1.0.8" = {
-      name = "emailjs";
-      packageName = "emailjs";
-      version = "1.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/emailjs/-/emailjs-1.0.8.tgz";
-        sha1 = "d4240db7670dc78aff97352092d8460edc130f66";
-      };
-    };
-    "express-3.21.2" = {
-      name = "express";
-      packageName = "express";
-      version = "3.21.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-3.21.2.tgz";
-        sha1 = "0c2903ee5c54e63d65a96170764703550665a3de";
-      };
-    };
-    "express-session-1.15.2" = {
-      name = "express-session";
-      packageName = "express-session";
-      version = "1.15.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/express-session/-/express-session-1.15.2.tgz";
-        sha1 = "d98516443a4ccb8688e1725ae584c02daa4093d4";
-      };
-    };
-    "gm-1.23.0" = {
-      name = "gm";
-      packageName = "gm";
-      version = "1.23.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gm/-/gm-1.23.0.tgz";
-        sha1 = "80a2fe9cbf131515024846444658461269f52661";
-      };
-    };
-    "helmet-3.5.0" = {
-      name = "helmet";
-      packageName = "helmet";
-      version = "3.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/helmet/-/helmet-3.5.0.tgz";
-        sha1 = "e1d6de27d2e3317d3182e00d672df3d0e1e12539";
-      };
-    };
-    "jade-1.11.0" = {
-      name = "jade";
-      packageName = "jade";
-      version = "1.11.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jade/-/jade-1.11.0.tgz";
-        sha1 = "9c80e538c12d3fb95c8d9bb9559fa0cc040405fd";
-      };
-    };
-    "jankyqueue-0.1.1" = {
-      name = "jankyqueue";
-      packageName = "jankyqueue";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jankyqueue/-/jankyqueue-0.1.1.tgz";
-        sha1 = "4181b0318fb32e77aee8c54af73f97660f2e88d2";
-      };
-    };
-    "jsdom-7.2.2" = {
-      name = "jsdom";
-      packageName = "jsdom";
-      version = "7.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz";
-        sha1 = "40b402770c2bda23469096bee91ab675e3b1fc6e";
-      };
-    };
-    "method-override-2.3.8" = {
-      name = "method-override";
-      packageName = "method-override";
-      version = "2.3.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/method-override/-/method-override-2.3.8.tgz";
-        sha1 = "178234bf4bab869f89df9444b06fc6147b44828c";
-      };
-    };
-    "mkdirp-0.5.1" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "0.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
-      };
-    };
-    "oauth-evanp-0.9.10-evanp.2" = {
-      name = "oauth-evanp";
-      packageName = "oauth-evanp";
-      version = "0.9.10-evanp.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/oauth-evanp/-/oauth-evanp-0.9.10-evanp.2.tgz";
-        sha1 = "9b5fb3508cea584420855957d56531405cf53a02";
-      };
-    };
-    "octal-1.0.0" = {
-      name = "octal";
-      packageName = "octal";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz";
-        sha1 = "63e7162a68efbeb9e213588d58e989d1e5c4530b";
-      };
-    };
-    "optimist-0.6.1" = {
-      name = "optimist";
-      packageName = "optimist";
-      version = "0.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz";
-        sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
-      };
-    };
-    "rimraf-2.6.1" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "2.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz";
-        sha1 = "c2338ec643df7a1b7fe5c54fa86f57428a55f33d";
-      };
-    };
-    "sanitize-html-1.14.1" = {
-      name = "sanitize-html";
-      packageName = "sanitize-html";
-      version = "1.14.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.14.1.tgz";
-        sha1 = "730ffa2249bdf18333effe45b286173c9c5ad0b8";
-      };
-    };
-    "schlock-0.2.1" = {
-      name = "schlock";
-      packageName = "schlock";
-      version = "0.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/schlock/-/schlock-0.2.1.tgz";
-        sha1 = "2a9aaeaa209a5422eadc5dfc005e2c2f15241f99";
-      };
-    };
-    "send-0.13.2" = {
-      name = "send";
-      packageName = "send";
-      version = "0.13.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.13.2.tgz";
-        sha1 = "765e7607c8055452bba6f0b052595350986036de";
-      };
-    };
-    "showdown-1.6.4" = {
-      name = "showdown";
-      packageName = "showdown";
-      version = "1.6.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/showdown/-/showdown-1.6.4.tgz";
-        sha1 = "056bbb654ecdb8d8643ae12d6d597893ccaf46c6";
-      };
-    };
-    "sockjs-0.3.18" = {
-      name = "sockjs";
-      packageName = "sockjs";
-      version = "0.3.18";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz";
-        sha1 = "d9b289316ca7df77595ef299e075f0f937eb4207";
-      };
-    };
-    "ssl-config-0.0.9" = {
-      name = "ssl-config";
-      packageName = "ssl-config";
-      version = "0.0.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ssl-config/-/ssl-config-0.0.9.tgz";
-        sha1 = "905ed1b7ddd0564aa9395cd4ae7146907351ff2c";
-      };
-    };
-    "step-1.0.0" = {
-      name = "step";
-      packageName = "step";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/step/-/step-1.0.0.tgz";
-        sha1 = "b300e9d2ae9057d4d78633aae2303813a94bdff2";
-      };
-    };
-    "ua-parser-js-0.7.12" = {
-      name = "ua-parser-js";
-      packageName = "ua-parser-js";
-      version = "0.7.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz";
-        sha1 = "04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb";
-      };
-    };
-    "underscore-1.8.3" = {
-      name = "underscore";
-      packageName = "underscore";
-      version = "1.8.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz";
-        sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
-      };
-    };
-    "underscore-contrib-0.3.0" = {
-      name = "underscore-contrib";
-      packageName = "underscore-contrib";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz";
-        sha1 = "665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7";
-      };
-    };
-    "uuid-3.0.1" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz";
-        sha1 = "6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1";
-      };
-    };
-    "validator-4.4.0" = {
-      name = "validator";
-      packageName = "validator";
-      version = "4.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/validator/-/validator-4.4.0.tgz";
-        sha1 = "35e29555dd5f7826f970a4eaecff9e6df6df3da6";
-      };
-    };
-    "webfinger-0.4.2" = {
-      name = "webfinger";
-      packageName = "webfinger";
-      version = "0.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/webfinger/-/webfinger-0.4.2.tgz";
-        sha1 = "3477a6d97799461896039fcffc650b73468ee76d";
-      };
-    };
-    "databank-mongodb-1.0.0" = {
-      name = "databank-mongodb";
-      packageName = "databank-mongodb";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/databank-mongodb/-/databank-mongodb-1.0.0.tgz";
-        sha1 = "66f229698df1d4f7e9e3ad849a30174b2aae527b";
-      };
-    };
-    "databank-redis-0.19.6" = {
-      name = "databank-redis";
-      packageName = "databank-redis";
-      version = "0.19.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/databank-redis/-/databank-redis-0.19.6.tgz";
-        sha1 = "dd476b81b8200269ea0cc85f6b6decd05799bce9";
-      };
-    };
-    "databank-lrucache-0.1.3" = {
-      name = "databank-lrucache";
-      packageName = "databank-lrucache";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/databank-lrucache/-/databank-lrucache-0.1.3.tgz";
-        sha1 = "a68fbf6bb5f2e1dab81f5a410065484889a0eeef";
-      };
-    };
-    "bindings-1.2.1" = {
-      name = "bindings";
-      packageName = "bindings";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz";
-        sha1 = "14ad6113812d2d37d72e67b4cacb4bb726505f11";
-      };
-    };
-    "nan-2.3.5" = {
-      name = "nan";
-      packageName = "nan";
-      version = "2.3.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz";
-        sha1 = "822a0dc266290ce4cd3a12282ca3e7e364668a08";
-      };
-    };
-    "dtrace-provider-0.8.1" = {
-      name = "dtrace-provider";
-      packageName = "dtrace-provider";
-      version = "0.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.1.tgz";
-        sha1 = "cd4d174a233bea1bcf4a1fbfa5798f44f48cda9f";
-      };
-    };
-    "mv-2.1.1" = {
-      name = "mv";
-      packageName = "mv";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz";
-        sha1 = "ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2";
-      };
-    };
-    "safe-json-stringify-1.0.4" = {
-      name = "safe-json-stringify";
-      packageName = "safe-json-stringify";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz";
-        sha1 = "81a098f447e4bbc3ff3312a243521bc060ef5911";
-      };
-    };
-    "moment-2.18.1" = {
-      name = "moment";
-      packageName = "moment";
-      version = "2.18.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz";
-        sha1 = "c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f";
-      };
-    };
-    "nan-2.5.1" = {
-      name = "nan";
-      packageName = "nan";
-      version = "2.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz";
-        sha1 = "d5b01691253326a97a2bbee9e61c55d8d60351e2";
-      };
-    };
-    "ncp-2.0.0" = {
-      name = "ncp";
-      packageName = "ncp";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz";
-        sha1 = "195a21d6c46e361d2fb1281ba38b91e9df7bdbb3";
-      };
-    };
-    "rimraf-2.4.5" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "2.4.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz";
-        sha1 = "ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da";
-      };
-    };
-    "glob-6.0.4" = {
-      name = "glob";
-      packageName = "glob";
-      version = "6.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz";
-        sha1 = "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22";
-      };
-    };
-    "inflight-1.0.6" = {
-      name = "inflight";
-      packageName = "inflight";
-      version = "1.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
-        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
-      };
-    };
-    "inherits-2.0.3" = {
-      name = "inherits";
-      packageName = "inherits";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
-        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
-      };
-    };
-    "minimatch-3.0.3" = {
-      name = "minimatch";
-      packageName = "minimatch";
-      version = "3.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz";
-        sha1 = "2a4e4090b96b2db06a9d7df01055a62a77c9b774";
-      };
-    };
-    "once-1.4.0" = {
-      name = "once";
-      packageName = "once";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
-        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
-      };
-    };
-    "path-is-absolute-1.0.1" = {
-      name = "path-is-absolute";
-      packageName = "path-is-absolute";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
-      };
-    };
-    "wrappy-1.0.2" = {
-      name = "wrappy";
-      packageName = "wrappy";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
-      };
-    };
-    "brace-expansion-1.1.6" = {
-      name = "brace-expansion";
-      packageName = "brace-expansion";
-      version = "1.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz";
-        sha1 = "7197d7eaa9b87e648390ea61fc66c84427420df9";
-      };
-    };
-    "balanced-match-0.4.2" = {
-      name = "balanced-match";
-      packageName = "balanced-match";
-      version = "0.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz";
-        sha1 = "cb3f3e3c732dc0f01ee70b403f302e61d7709838";
-      };
-    };
-    "concat-map-0.0.1" = {
-      name = "concat-map";
-      packageName = "concat-map";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
-        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
-      };
-    };
-    "basic-auth-connect-1.0.0" = {
-      name = "basic-auth-connect";
-      packageName = "basic-auth-connect";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz";
-        sha1 = "fdb0b43962ca7b40456a7c2bb48fe173da2d2122";
-      };
-    };
-    "body-parser-1.13.3" = {
-      name = "body-parser";
-      packageName = "body-parser";
-      version = "1.13.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz";
-        sha1 = "c08cf330c3358e151016a05746f13f029c97fa97";
-      };
-    };
-    "bytes-2.1.0" = {
-      name = "bytes";
-      packageName = "bytes";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz";
-        sha1 = "ac93c410e2ffc9cc7cf4b464b38289067f5e47b4";
-      };
-    };
-    "cookie-0.1.3" = {
-      name = "cookie";
-      packageName = "cookie";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz";
-        sha1 = "e734a5c1417fce472d5aef82c381cabb64d1a435";
-      };
-    };
-    "cookie-parser-1.3.5" = {
-      name = "cookie-parser";
-      packageName = "cookie-parser";
-      version = "1.3.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz";
-        sha1 = "9d755570fb5d17890771227a02314d9be7cf8356";
-      };
-    };
-    "cookie-signature-1.0.6" = {
-      name = "cookie-signature";
-      packageName = "cookie-signature";
-      version = "1.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
-        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
-      };
-    };
-    "compression-1.5.2" = {
-      name = "compression";
-      packageName = "compression";
-      version = "1.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/compression/-/compression-1.5.2.tgz";
-        sha1 = "b03b8d86e6f8ad29683cba8df91ddc6ffc77b395";
-      };
-    };
-    "connect-timeout-1.6.2" = {
-      name = "connect-timeout";
-      packageName = "connect-timeout";
-      version = "1.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz";
-        sha1 = "de9a5ec61e33a12b6edaab7b5f062e98c599b88e";
-      };
-    };
-    "content-type-1.0.2" = {
-      name = "content-type";
-      packageName = "content-type";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz";
-        sha1 = "b7d113aee7a8dd27bd21133c4dc2529df1721eed";
-      };
-    };
-    "csurf-1.8.3" = {
-      name = "csurf";
-      packageName = "csurf";
-      version = "1.8.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz";
-        sha1 = "23f2a13bf1d8fce1d0c996588394442cba86a56a";
-      };
-    };
-    "debug-2.2.0" = {
-      name = "debug";
-      packageName = "debug";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz";
-        sha1 = "f87057e995b1a1f6ae6a4960664137bc56f039da";
-      };
-    };
-    "depd-1.0.1" = {
-      name = "depd";
-      packageName = "depd";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz";
-        sha1 = "80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa";
-      };
-    };
-    "errorhandler-1.4.3" = {
-      name = "errorhandler";
-      packageName = "errorhandler";
-      version = "1.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.3.tgz";
-        sha1 = "b7b70ed8f359e9db88092f2d20c0f831420ad83f";
-      };
-    };
-    "express-session-1.11.3" = {
-      name = "express-session";
-      packageName = "express-session";
-      version = "1.11.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz";
-        sha1 = "5cc98f3f5ff84ed835f91cbf0aabd0c7107400af";
-      };
-    };
-    "finalhandler-0.4.0" = {
-      name = "finalhandler";
-      packageName = "finalhandler";
-      version = "0.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz";
-        sha1 = "965a52d9e8d05d2b857548541fb89b53a2497d9b";
-      };
-    };
-    "fresh-0.3.0" = {
-      name = "fresh";
-      packageName = "fresh";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz";
-        sha1 = "651f838e22424e7566de161d8358caa199f83d4f";
-      };
-    };
-    "http-errors-1.3.1" = {
-      name = "http-errors";
-      packageName = "http-errors";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz";
-        sha1 = "197e22cdebd4198585e8694ef6786197b91ed942";
-      };
-    };
-    "morgan-1.6.1" = {
-      name = "morgan";
-      packageName = "morgan";
-      version = "1.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz";
-        sha1 = "5fd818398c6819cba28a7cd6664f292fe1c0bbf2";
-      };
-    };
-    "multiparty-3.3.2" = {
-      name = "multiparty";
-      packageName = "multiparty";
-      version = "3.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz";
-        sha1 = "35de6804dc19643e5249f3d3e3bdc6c8ce301d3f";
-      };
-    };
-    "on-headers-1.0.1" = {
-      name = "on-headers";
-      packageName = "on-headers";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz";
-        sha1 = "928f5d0f470d49342651ea6794b0857c100693f7";
-      };
-    };
-    "parseurl-1.3.1" = {
-      name = "parseurl";
-      packageName = "parseurl";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz";
-        sha1 = "c8ab8c9223ba34888aa64a297b28853bec18da56";
-      };
-    };
-    "pause-0.1.0" = {
-      name = "pause";
-      packageName = "pause";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pause/-/pause-0.1.0.tgz";
-        sha1 = "ebc8a4a8619ff0b8a81ac1513c3434ff469fdb74";
-      };
-    };
-    "qs-4.0.0" = {
-      name = "qs";
-      packageName = "qs";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz";
-        sha1 = "c31d9b74ec27df75e543a86c78728ed8d4623607";
-      };
-    };
-    "response-time-2.3.2" = {
-      name = "response-time";
-      packageName = "response-time";
-      version = "2.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz";
-        sha1 = "ffa71bab952d62f7c1d49b7434355fbc68dffc5a";
-      };
-    };
-    "serve-favicon-2.3.2" = {
-      name = "serve-favicon";
-      packageName = "serve-favicon";
-      version = "2.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.2.tgz";
-        sha1 = "dd419e268de012ab72b319d337f2105013f9381f";
-      };
-    };
-    "serve-index-1.7.3" = {
-      name = "serve-index";
-      packageName = "serve-index";
-      version = "1.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz";
-        sha1 = "7a057fc6ee28dc63f64566e5fa57b111a86aecd2";
-      };
-    };
-    "serve-static-1.10.3" = {
-      name = "serve-static";
-      packageName = "serve-static";
-      version = "1.10.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz";
-        sha1 = "ce5a6ecd3101fed5ec09827dac22a9c29bfb0535";
-      };
-    };
-    "type-is-1.6.14" = {
-      name = "type-is";
-      packageName = "type-is";
-      version = "1.6.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz";
-        sha1 = "e219639c17ded1ca0789092dd54a03826b817cb2";
-      };
-    };
-    "utils-merge-1.0.0" = {
-      name = "utils-merge";
-      packageName = "utils-merge";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz";
-        sha1 = "0294fb922bb9375153541c4f7096231f287c8af8";
-      };
-    };
-    "vhost-3.0.2" = {
-      name = "vhost";
-      packageName = "vhost";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz";
-        sha1 = "2fb1decd4c466aa88b0f9341af33dc1aff2478d5";
-      };
-    };
-    "iconv-lite-0.4.11" = {
-      name = "iconv-lite";
-      packageName = "iconv-lite";
-      version = "0.4.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz";
-        sha1 = "2ecb42fd294744922209a2e7c404dac8793d8ade";
-      };
-    };
-    "on-finished-2.3.0" = {
-      name = "on-finished";
-      packageName = "on-finished";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
-        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
-      };
-    };
-    "raw-body-2.1.7" = {
-      name = "raw-body";
-      packageName = "raw-body";
-      version = "2.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz";
-        sha1 = "adfeace2e4fb3098058014d08c072dcc59758774";
-      };
-    };
-    "ee-first-1.1.1" = {
-      name = "ee-first";
-      packageName = "ee-first";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
-        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
-      };
-    };
-    "bytes-2.4.0" = {
-      name = "bytes";
-      packageName = "bytes";
-      version = "2.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz";
-        sha1 = "7d97196f9d5baf7f6935e25985549edd2a6c2339";
-      };
-    };
-    "iconv-lite-0.4.13" = {
-      name = "iconv-lite";
-      packageName = "iconv-lite";
-      version = "0.4.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz";
-        sha1 = "1f88aba4ab0b1508e8312acc39345f36e992e2f2";
-      };
-    };
-    "unpipe-1.0.0" = {
-      name = "unpipe";
-      packageName = "unpipe";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
-        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
-      };
-    };
-    "accepts-1.2.13" = {
-      name = "accepts";
-      packageName = "accepts";
-      version = "1.2.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz";
-        sha1 = "e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea";
-      };
-    };
-    "compressible-2.0.10" = {
-      name = "compressible";
-      packageName = "compressible";
-      version = "2.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz";
-        sha1 = "feda1c7f7617912732b29bf8cf26252a20b9eecd";
-      };
-    };
-    "vary-1.0.1" = {
-      name = "vary";
-      packageName = "vary";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz";
-        sha1 = "99e4981566a286118dfb2b817357df7993376d10";
-      };
-    };
-    "mime-types-2.1.15" = {
-      name = "mime-types";
-      packageName = "mime-types";
-      version = "2.1.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz";
-        sha1 = "a4ebf5064094569237b8cf70046776d09fc92aed";
-      };
-    };
-    "negotiator-0.5.3" = {
-      name = "negotiator";
-      packageName = "negotiator";
-      version = "0.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz";
-        sha1 = "269d5c476810ec92edbe7b6c2f28316384f9a7e8";
-      };
-    };
-    "mime-db-1.27.0" = {
-      name = "mime-db";
-      packageName = "mime-db";
-      version = "1.27.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz";
-        sha1 = "820f572296bbd20ec25ed55e5b5de869e5436eb1";
-      };
-    };
-    "ms-0.7.1" = {
-      name = "ms";
-      packageName = "ms";
-      version = "0.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz";
-        sha1 = "9cd13c03adbff25b65effde7ce864ee952017098";
-      };
-    };
-    "csrf-3.0.6" = {
-      name = "csrf";
-      packageName = "csrf";
-      version = "3.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz";
-        sha1 = "b61120ddceeafc91e76ed5313bb5c0b2667b710a";
-      };
-    };
-    "rndm-1.2.0" = {
-      name = "rndm";
-      packageName = "rndm";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz";
-        sha1 = "f33fe9cfb52bbfd520aa18323bc65db110a1b76c";
-      };
-    };
-    "tsscmp-1.0.5" = {
-      name = "tsscmp";
-      packageName = "tsscmp";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz";
-        sha1 = "7dc4a33af71581ab4337da91d85ca5427ebd9a97";
-      };
-    };
-    "uid-safe-2.1.4" = {
-      name = "uid-safe";
-      packageName = "uid-safe";
-      version = "2.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz";
-        sha1 = "3ad6f38368c6d4c8c75ec17623fb79aa1d071d81";
-      };
-    };
-    "random-bytes-1.0.0" = {
-      name = "random-bytes";
-      packageName = "random-bytes";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz";
-        sha1 = "4f68a1dc0ae58bd3fb95848c30324db75d64360b";
-      };
-    };
-    "accepts-1.3.3" = {
-      name = "accepts";
-      packageName = "accepts";
-      version = "1.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz";
-        sha1 = "c3ca7434938648c3e0d9c1e328dd68b622c284ca";
-      };
-    };
-    "escape-html-1.0.3" = {
-      name = "escape-html";
-      packageName = "escape-html";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
-        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
-      };
-    };
-    "negotiator-0.6.1" = {
-      name = "negotiator";
-      packageName = "negotiator";
-      version = "0.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz";
-        sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9";
-      };
-    };
-    "crc-3.3.0" = {
-      name = "crc";
-      packageName = "crc";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz";
-        sha1 = "fa622e1bc388bf257309082d6b65200ce67090ba";
-      };
-    };
-    "uid-safe-2.0.0" = {
-      name = "uid-safe";
-      packageName = "uid-safe";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz";
-        sha1 = "a7f3c6ca64a1f6a5d04ec0ef3e4c3d5367317137";
-      };
-    };
-    "base64-url-1.2.1" = {
-      name = "base64-url";
-      packageName = "base64-url";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz";
-        sha1 = "199fd661702a0e7b7dcae6e0698bb089c52f6d78";
-      };
-    };
-    "escape-html-1.0.2" = {
-      name = "escape-html";
-      packageName = "escape-html";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz";
-        sha1 = "d77d32fa98e38c2f41ae85e9278e0e0e6ba1022c";
-      };
-    };
-    "statuses-1.3.1" = {
-      name = "statuses";
-      packageName = "statuses";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz";
-        sha1 = "faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e";
-      };
-    };
-    "basic-auth-1.0.4" = {
-      name = "basic-auth";
-      packageName = "basic-auth";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz";
-        sha1 = "030935b01de7c9b94a824b29f3fccb750d3a5290";
-      };
-    };
-    "readable-stream-1.1.14" = {
-      name = "readable-stream";
-      packageName = "readable-stream";
-      version = "1.1.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz";
-        sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
-      };
-    };
-    "stream-counter-0.2.0" = {
-      name = "stream-counter";
-      packageName = "stream-counter";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz";
-        sha1 = "ded266556319c8b0e222812b9cf3b26fa7d947de";
-      };
-    };
-    "core-util-is-1.0.2" = {
-      name = "core-util-is";
-      packageName = "core-util-is";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
-      };
-    };
-    "isarray-0.0.1" = {
-      name = "isarray";
-      packageName = "isarray";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
-        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
-      };
-    };
-    "string_decoder-0.10.31" = {
-      name = "string_decoder";
-      packageName = "string_decoder";
-      version = "0.10.31";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
-        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
-      };
-    };
-    "depd-1.1.0" = {
-      name = "depd";
-      packageName = "depd";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz";
-        sha1 = "e1bd82c6aab6ced965b97b88b17ed3e528ca18c3";
-      };
-    };
-    "etag-1.7.0" = {
-      name = "etag";
-      packageName = "etag";
-      version = "1.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz";
-        sha1 = "03d30b5f67dd6e632d2945d30d6652731a34d5d8";
-      };
-    };
-    "ms-0.7.2" = {
-      name = "ms";
-      packageName = "ms";
-      version = "0.7.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz";
-        sha1 = "ae25cf2512b3885a1d95d7f037868d8431124765";
-      };
-    };
-    "batch-0.5.3" = {
-      name = "batch";
-      packageName = "batch";
-      version = "0.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz";
-        sha1 = "3f3414f380321743bfc1042f9a83ff1d5824d464";
-      };
-    };
-    "media-typer-0.3.0" = {
-      name = "media-typer";
-      packageName = "media-typer";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
-        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
-      };
-    };
-    "oauth-0.9.7" = {
-      name = "oauth";
-      packageName = "oauth";
-      version = "0.9.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/oauth/-/oauth-0.9.7.tgz";
-        sha1 = "c2554d0368c966eb3050bec96584625577ad1ecd";
-      };
-    };
-    "openid-0.4.1" = {
-      name = "openid";
-      packageName = "openid";
-      version = "0.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/openid/-/openid-0.4.1.tgz";
-        sha1 = "de0eb5e381d34dc4aa5a77a98678bedafd11f387";
-      };
-    };
-    "async-1.5.2" = {
-      name = "async";
-      packageName = "async";
-      version = "1.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz";
-        sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
-      };
-    };
-    "node-uuid-1.4.8" = {
-      name = "node-uuid";
-      packageName = "node-uuid";
-      version = "1.4.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz";
-        sha1 = "b040eb0923968afabf8d32fb1f17f1167fdab907";
-      };
-    };
-    "set-immediate-0.1.1" = {
-      name = "set-immediate";
-      packageName = "set-immediate";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/set-immediate/-/set-immediate-0.1.1.tgz";
-        sha1 = "8986e4a773bf8ec165f24d579107673bfac141de";
-      };
-    };
-    "multiparty-4.1.3" = {
-      name = "multiparty";
-      packageName = "multiparty";
-      version = "4.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/multiparty/-/multiparty-4.1.3.tgz";
-        sha1 = "3c43c7fcb1896e17460436a9dd0b6ef1668e4f94";
-      };
-    };
-    "fd-slicer-1.0.1" = {
-      name = "fd-slicer";
-      packageName = "fd-slicer";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz";
-        sha1 = "8b5bcbd9ec327c5041bf9ab023fd6750f1177e65";
-      };
-    };
-    "pend-1.2.0" = {
-      name = "pend";
-      packageName = "pend";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz";
-        sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
-      };
-    };
-    "get-stdin-4.0.1" = {
-      name = "get-stdin";
-      packageName = "get-stdin";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz";
-        sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe";
-      };
-    };
-    "meow-3.7.0" = {
-      name = "meow";
-      packageName = "meow";
-      version = "3.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz";
-        sha1 = "72cb668b425228290abbfa856892587308a801fb";
-      };
-    };
-    "camelcase-keys-2.1.0" = {
-      name = "camelcase-keys";
-      packageName = "camelcase-keys";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz";
-        sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7";
-      };
-    };
-    "decamelize-1.2.0" = {
-      name = "decamelize";
-      packageName = "decamelize";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
-      };
-    };
-    "loud-rejection-1.6.0" = {
-      name = "loud-rejection";
-      packageName = "loud-rejection";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz";
-        sha1 = "5b46f80147edee578870f086d04821cf998e551f";
-      };
-    };
-    "map-obj-1.0.1" = {
-      name = "map-obj";
-      packageName = "map-obj";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz";
-        sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
-      };
-    };
-    "minimist-1.2.0" = {
-      name = "minimist";
-      packageName = "minimist";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz";
-        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
-      };
-    };
-    "normalize-package-data-2.3.6" = {
-      name = "normalize-package-data";
-      packageName = "normalize-package-data";
-      version = "2.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.6.tgz";
-        sha1 = "498fa420c96401f787402ba21e600def9f981fff";
-      };
-    };
-    "object-assign-4.1.1" = {
-      name = "object-assign";
-      packageName = "object-assign";
-      version = "4.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
-        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
-      };
-    };
-    "read-pkg-up-1.0.1" = {
-      name = "read-pkg-up";
-      packageName = "read-pkg-up";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
-        sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
-      };
-    };
-    "redent-1.0.0" = {
-      name = "redent";
-      packageName = "redent";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz";
-        sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde";
-      };
-    };
-    "trim-newlines-1.0.0" = {
-      name = "trim-newlines";
-      packageName = "trim-newlines";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz";
-        sha1 = "5887966bb582a4503a41eb524f7d35011815a613";
-      };
-    };
-    "camelcase-2.1.1" = {
-      name = "camelcase";
-      packageName = "camelcase";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz";
-        sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f";
-      };
-    };
-    "currently-unhandled-0.4.1" = {
-      name = "currently-unhandled";
-      packageName = "currently-unhandled";
-      version = "0.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz";
-        sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
-      };
-    };
-    "signal-exit-3.0.2" = {
-      name = "signal-exit";
-      packageName = "signal-exit";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz";
-        sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
-      };
-    };
-    "array-find-index-1.0.2" = {
-      name = "array-find-index";
-      packageName = "array-find-index";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz";
-        sha1 = "df010aa1287e164bbda6f9723b0a96a1ec4187a1";
-      };
-    };
-    "hosted-git-info-2.4.1" = {
-      name = "hosted-git-info";
-      packageName = "hosted-git-info";
-      version = "2.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.1.tgz";
-        sha1 = "4b0445e41c004a8bd1337773a4ff790ca40318c8";
-      };
-    };
-    "is-builtin-module-1.0.0" = {
-      name = "is-builtin-module";
-      packageName = "is-builtin-module";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz";
-        sha1 = "540572d34f7ac3119f8f76c30cbc1b1e037affbe";
-      };
-    };
-    "semver-5.3.0" = {
-      name = "semver";
-      packageName = "semver";
-      version = "5.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz";
-        sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
-      };
-    };
-    "validate-npm-package-license-3.0.1" = {
-      name = "validate-npm-package-license";
-      packageName = "validate-npm-package-license";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz";
-        sha1 = "2804babe712ad3379459acfbe24746ab2c303fbc";
-      };
-    };
-    "builtin-modules-1.1.1" = {
-      name = "builtin-modules";
-      packageName = "builtin-modules";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz";
-        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
-      };
-    };
-    "spdx-correct-1.0.2" = {
-      name = "spdx-correct";
-      packageName = "spdx-correct";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz";
-        sha1 = "4b3073d933ff51f3912f03ac5519498a4150db40";
-      };
-    };
-    "spdx-expression-parse-1.0.4" = {
-      name = "spdx-expression-parse";
-      packageName = "spdx-expression-parse";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz";
-        sha1 = "9bdf2f20e1f40ed447fbe273266191fced51626c";
-      };
-    };
-    "spdx-license-ids-1.2.2" = {
-      name = "spdx-license-ids";
-      packageName = "spdx-license-ids";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz";
-        sha1 = "c9df7a3424594ade6bd11900d596696dc06bac57";
-      };
-    };
-    "find-up-1.1.2" = {
-      name = "find-up";
-      packageName = "find-up";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz";
-        sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
-      };
-    };
-    "read-pkg-1.1.0" = {
-      name = "read-pkg";
-      packageName = "read-pkg";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz";
-        sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
-      };
-    };
-    "path-exists-2.1.0" = {
-      name = "path-exists";
-      packageName = "path-exists";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz";
-        sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
-      };
-    };
-    "pinkie-promise-2.0.1" = {
-      name = "pinkie-promise";
-      packageName = "pinkie-promise";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
-        sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
-      };
-    };
-    "pinkie-2.0.4" = {
-      name = "pinkie";
-      packageName = "pinkie";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz";
-        sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
-      };
-    };
-    "load-json-file-1.1.0" = {
-      name = "load-json-file";
-      packageName = "load-json-file";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz";
-        sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
-      };
-    };
-    "path-type-1.1.0" = {
-      name = "path-type";
-      packageName = "path-type";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz";
-        sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
-      };
-    };
-    "graceful-fs-4.1.11" = {
-      name = "graceful-fs";
-      packageName = "graceful-fs";
-      version = "4.1.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz";
-        sha1 = "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658";
-      };
-    };
-    "parse-json-2.2.0" = {
-      name = "parse-json";
-      packageName = "parse-json";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz";
-        sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
-      };
-    };
-    "pify-2.3.0" = {
-      name = "pify";
-      packageName = "pify";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz";
-        sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
-      };
-    };
-    "strip-bom-2.0.0" = {
-      name = "strip-bom";
-      packageName = "strip-bom";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz";
-        sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
-      };
-    };
-    "error-ex-1.3.1" = {
-      name = "error-ex";
-      packageName = "error-ex";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz";
-        sha1 = "f855a86ce61adc4e8621c3cda21e7a7612c3a8dc";
-      };
-    };
-    "is-arrayish-0.2.1" = {
-      name = "is-arrayish";
-      packageName = "is-arrayish";
-      version = "0.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
-        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
-      };
-    };
-    "is-utf8-0.2.1" = {
-      name = "is-utf8";
-      packageName = "is-utf8";
-      version = "0.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz";
-        sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
-      };
-    };
-    "indent-string-2.1.0" = {
-      name = "indent-string";
-      packageName = "indent-string";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz";
-        sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80";
-      };
-    };
-    "strip-indent-1.0.1" = {
-      name = "strip-indent";
-      packageName = "strip-indent";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz";
-        sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2";
-      };
-    };
-    "repeating-2.0.1" = {
-      name = "repeating";
-      packageName = "repeating";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz";
-        sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
-      };
-    };
-    "is-finite-1.0.2" = {
-      name = "is-finite";
-      packageName = "is-finite";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz";
-        sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa";
-      };
-    };
-    "number-is-nan-1.0.1" = {
-      name = "number-is-nan";
-      packageName = "number-is-nan";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
-        sha1 = "097b602b53422a522c1afb8790318336941a011d";
-      };
-    };
-    "underscore-1.5.2" = {
-      name = "underscore";
-      packageName = "underscore";
-      version = "1.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz";
-        sha1 = "1335c5e4f5e6d33bbb4b006ba8c86a00f556de08";
-      };
-    };
-    "step-0.0.6" = {
-      name = "step";
-      packageName = "step";
-      version = "0.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/step/-/step-0.0.6.tgz";
-        sha1 = "143e7849a5d7d3f4a088fe29af94915216eeede2";
-      };
-    };
-    "addressparser-0.3.2" = {
-      name = "addressparser";
-      packageName = "addressparser";
-      version = "0.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/addressparser/-/addressparser-0.3.2.tgz";
-        sha1 = "59873f35e8fcf6c7361c10239261d76e15348bb2";
-      };
-    };
-    "mimelib-0.2.14" = {
-      name = "mimelib";
-      packageName = "mimelib";
-      version = "0.2.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mimelib/-/mimelib-0.2.14.tgz";
-        sha1 = "2a1aa724bd190b85bd526e6317ab6106edfd6831";
-      };
-    };
-    "moment-2.11.2" = {
-      name = "moment";
-      packageName = "moment";
-      version = "2.11.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.11.2.tgz";
-        sha1 = "87968e5f95ac038c2e42ac959c75819cd3f52901";
-      };
-    };
-    "starttls-1.0.1" = {
-      name = "starttls";
-      packageName = "starttls";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/starttls/-/starttls-1.0.1.tgz";
-        sha1 = "e6081c25de6b178f5a75f8f271c1487449183b42";
-      };
-    };
-    "bufferjs-1.1.0" = {
-      name = "bufferjs";
-      packageName = "bufferjs";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bufferjs/-/bufferjs-1.1.0.tgz";
-        sha1 = "095ffa39c5e6b40a2178a1169c9effc584a73201";
-      };
-    };
-    "encoding-0.1.12" = {
-      name = "encoding";
-      packageName = "encoding";
-      version = "0.1.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz";
-        sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
-      };
-    };
-    "addressparser-0.2.1" = {
-      name = "addressparser";
-      packageName = "addressparser";
-      version = "0.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/addressparser/-/addressparser-0.2.1.tgz";
-        sha1 = "d11a5b2eeda04cfefebdf3196c10ae13db6cd607";
-      };
-    };
-    "iconv-lite-0.4.15" = {
-      name = "iconv-lite";
-      packageName = "iconv-lite";
-      version = "0.4.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz";
-        sha1 = "fe265a218ac6a57cfe854927e9d04c19825eddeb";
-      };
-    };
-    "content-disposition-0.5.0" = {
-      name = "content-disposition";
-      packageName = "content-disposition";
-      version = "0.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz";
-        sha1 = "4284fe6ae0630874639e44e80a418c2934135e9e";
-      };
-    };
-    "commander-2.6.0" = {
-      name = "commander";
-      packageName = "commander";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz";
-        sha1 = "9df7e52fb2a0cb0fb89058ee80c3104225f37e1d";
-      };
-    };
-    "merge-descriptors-1.0.0" = {
-      name = "merge-descriptors";
-      packageName = "merge-descriptors";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz";
-        sha1 = "2169cf7538e1b0cc87fb88e1502d8474bbf79864";
-      };
-    };
-    "methods-1.1.2" = {
-      name = "methods";
-      packageName = "methods";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
-        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
-      };
-    };
-    "proxy-addr-1.0.10" = {
-      name = "proxy-addr";
-      packageName = "proxy-addr";
-      version = "1.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz";
-        sha1 = "0d40a82f801fc355567d2ecb65efe3f077f121c5";
-      };
-    };
-    "range-parser-1.0.3" = {
-      name = "range-parser";
-      packageName = "range-parser";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz";
-        sha1 = "6872823535c692e2c2a0103826afd82c2e0ff175";
-      };
-    };
-    "send-0.13.0" = {
-      name = "send";
-      packageName = "send";
-      version = "0.13.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.13.0.tgz";
-        sha1 = "518f921aeb0560aec7dcab2990b14cf6f3cce5de";
-      };
-    };
-    "forwarded-0.1.0" = {
-      name = "forwarded";
-      packageName = "forwarded";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz";
-        sha1 = "19ef9874c4ae1c297bcf078fde63a09b66a84363";
-      };
-    };
-    "ipaddr.js-1.0.5" = {
-      name = "ipaddr.js";
-      packageName = "ipaddr.js";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz";
-        sha1 = "5fa78cf301b825c78abc3042d812723049ea23c7";
-      };
-    };
-    "destroy-1.0.3" = {
-      name = "destroy";
-      packageName = "destroy";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz";
-        sha1 = "b433b4724e71fd8551d9885174851c5fc377e2c9";
-      };
-    };
-    "mime-1.3.4" = {
-      name = "mime";
-      packageName = "mime";
-      version = "1.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz";
-        sha1 = "115f9e3b6b3daf2959983cb38f149a2d40eb5d53";
-      };
-    };
-    "statuses-1.2.1" = {
-      name = "statuses";
-      packageName = "statuses";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz";
-        sha1 = "dded45cc18256d51ed40aec142489d5c61026d28";
-      };
-    };
-    "cookie-0.3.1" = {
-      name = "cookie";
-      packageName = "cookie";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz";
-        sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
-      };
-    };
-    "crc-3.4.4" = {
-      name = "crc";
-      packageName = "crc";
-      version = "3.4.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz";
-        sha1 = "9da1e980e3bd44fc5c93bf5ab3da3378d85e466b";
-      };
-    };
-    "debug-2.6.3" = {
-      name = "debug";
-      packageName = "debug";
-      version = "2.6.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz";
-        sha1 = "0f7eb8c30965ec08c72accfa0130c8b79984141d";
-      };
-    };
-    "array-parallel-0.1.3" = {
-      name = "array-parallel";
-      packageName = "array-parallel";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz";
-        sha1 = "8f785308926ed5aa478c47e64d1b334b6c0c947d";
-      };
-    };
-    "array-series-0.1.5" = {
-      name = "array-series";
-      packageName = "array-series";
-      version = "0.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz";
-        sha1 = "df5d37bfc5c2ef0755e2aa4f92feae7d4b5a972f";
-      };
-    };
-    "cross-spawn-4.0.2" = {
-      name = "cross-spawn";
-      packageName = "cross-spawn";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz";
-        sha1 = "7b9247621c23adfdd3856004a823cbe397424d41";
-      };
-    };
-    "lru-cache-4.0.2" = {
-      name = "lru-cache";
-      packageName = "lru-cache";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz";
-        sha1 = "1d17679c069cda5d040991a09dbc2c0db377e55e";
-      };
-    };
-    "which-1.2.14" = {
-      name = "which";
-      packageName = "which";
-      version = "1.2.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/which/-/which-1.2.14.tgz";
-        sha1 = "9a87c4378f03e827cecaf1acdf56c736c01c14e5";
-      };
-    };
-    "pseudomap-1.0.2" = {
-      name = "pseudomap";
-      packageName = "pseudomap";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
-        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
-      };
-    };
-    "yallist-2.1.2" = {
-      name = "yallist";
-      packageName = "yallist";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
-        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
-      };
-    };
-    "isexe-2.0.0" = {
-      name = "isexe";
-      packageName = "isexe";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
-        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
-      };
-    };
-    "connect-3.6.0" = {
-      name = "connect";
-      packageName = "connect";
-      version = "3.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/connect/-/connect-3.6.0.tgz";
-        sha1 = "f09a4f7dcd17324b663b725c815bdb1c4158a46e";
-      };
-    };
-    "dns-prefetch-control-0.1.0" = {
-      name = "dns-prefetch-control";
-      packageName = "dns-prefetch-control";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz";
-        sha1 = "60ddb457774e178f1f9415f0cabb0e85b0b300b2";
-      };
-    };
-    "dont-sniff-mimetype-1.0.0" = {
-      name = "dont-sniff-mimetype";
-      packageName = "dont-sniff-mimetype";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz";
-        sha1 = "5932890dc9f4e2f19e5eb02a20026e5e5efc8f58";
-      };
-    };
-    "frameguard-3.0.0" = {
-      name = "frameguard";
-      packageName = "frameguard";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/frameguard/-/frameguard-3.0.0.tgz";
-        sha1 = "7bcad469ee7b96e91d12ceb3959c78235a9272e9";
-      };
-    };
-    "helmet-csp-2.4.0" = {
-      name = "helmet-csp";
-      packageName = "helmet-csp";
-      version = "2.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.4.0.tgz";
-        sha1 = "7e53a157167a0645aadd7177d12ae6c605c1842e";
-      };
-    };
-    "hide-powered-by-1.0.0" = {
-      name = "hide-powered-by";
-      packageName = "hide-powered-by";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.0.0.tgz";
-        sha1 = "4a85ad65881f62857fc70af7174a1184dccce32b";
-      };
-    };
-    "hpkp-2.0.0" = {
-      name = "hpkp";
-      packageName = "hpkp";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hpkp/-/hpkp-2.0.0.tgz";
-        sha1 = "10e142264e76215a5d30c44ec43de64dee6d1672";
-      };
-    };
-    "hsts-2.0.0" = {
-      name = "hsts";
-      packageName = "hsts";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hsts/-/hsts-2.0.0.tgz";
-        sha1 = "a52234c6070decf214b2b6b70bb144d07e4776c7";
-      };
-    };
-    "ienoopen-1.0.0" = {
-      name = "ienoopen";
-      packageName = "ienoopen";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ienoopen/-/ienoopen-1.0.0.tgz";
-        sha1 = "346a428f474aac8f50cf3784ea2d0f16f62bda6b";
-      };
-    };
-    "nocache-2.0.0" = {
-      name = "nocache";
-      packageName = "nocache";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz";
-        sha1 = "202b48021a0c4cbde2df80de15a17443c8b43980";
-      };
-    };
-    "referrer-policy-1.1.0" = {
-      name = "referrer-policy";
-      packageName = "referrer-policy";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.1.0.tgz";
-        sha1 = "35774eb735bf50fb6c078e83334b472350207d79";
-      };
-    };
-    "x-xss-protection-1.0.0" = {
-      name = "x-xss-protection";
-      packageName = "x-xss-protection";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.0.0.tgz";
-        sha1 = "898afb93869b24661cf9c52f9ee8db8ed0764dd9";
-      };
-    };
-    "debug-2.6.1" = {
-      name = "debug";
-      packageName = "debug";
-      version = "2.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz";
-        sha1 = "79855090ba2c4e3115cc7d8769491d58f0491351";
-      };
-    };
-    "finalhandler-1.0.0" = {
-      name = "finalhandler";
-      packageName = "finalhandler";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.0.tgz";
-        sha1 = "b5691c2c0912092f18ac23e9416bde5cd7dc6755";
-      };
-    };
-    "encodeurl-1.0.1" = {
-      name = "encodeurl";
-      packageName = "encodeurl";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz";
-        sha1 = "79e3d58655346909fe6f0f45a5de68103b294d20";
-      };
-    };
-    "camelize-1.0.0" = {
-      name = "camelize";
-      packageName = "camelize";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz";
-        sha1 = "164a5483e630fa4321e5af07020e531831b2609b";
-      };
-    };
-    "content-security-policy-builder-1.1.0" = {
-      name = "content-security-policy-builder";
-      packageName = "content-security-policy-builder";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-1.1.0.tgz";
-        sha1 = "d91f1b076236c119850c7dee9924bf55e05772b3";
-      };
-    };
-    "dasherize-2.0.0" = {
-      name = "dasherize";
-      packageName = "dasherize";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz";
-        sha1 = "6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308";
-      };
-    };
-    "lodash.reduce-4.6.0" = {
-      name = "lodash.reduce";
-      packageName = "lodash.reduce";
-      version = "4.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz";
-        sha1 = "f1ab6b839299ad48f784abbf476596f03b914d3b";
-      };
-    };
-    "platform-1.3.3" = {
-      name = "platform";
-      packageName = "platform";
-      version = "1.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/platform/-/platform-1.3.3.tgz";
-        sha1 = "646c77011899870b6a0903e75e997e8e51da7461";
-      };
-    };
-    "dashify-0.2.2" = {
-      name = "dashify";
-      packageName = "dashify";
-      version = "0.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dashify/-/dashify-0.2.2.tgz";
-        sha1 = "6a07415a01c91faf4a32e38d9dfba71f61cb20fe";
-      };
-    };
-    "character-parser-1.2.1" = {
-      name = "character-parser";
-      packageName = "character-parser";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz";
-        sha1 = "c0dde4ab182713b919b970959a123ecc1a30fcd6";
-      };
-    };
-    "clean-css-3.4.25" = {
-      name = "clean-css";
-      packageName = "clean-css";
-      version = "3.4.25";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/clean-css/-/clean-css-3.4.25.tgz";
-        sha1 = "9e9a52d5c1e6bc5123e1b2783fa65fe958946ede";
-      };
-    };
-    "constantinople-3.0.2" = {
-      name = "constantinople";
-      packageName = "constantinople";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz";
-        sha1 = "4b945d9937907bcd98ee575122c3817516544141";
-      };
-    };
-    "jstransformer-0.0.2" = {
-      name = "jstransformer";
-      packageName = "jstransformer";
-      version = "0.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz";
-        sha1 = "7aae29a903d196cfa0973d885d3e47947ecd76ab";
-      };
-    };
-    "transformers-2.1.0" = {
-      name = "transformers";
-      packageName = "transformers";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz";
-        sha1 = "5d23cb35561dd85dc67fb8482309b47d53cce9a7";
-      };
-    };
-    "uglify-js-2.8.20" = {
-      name = "uglify-js";
-      packageName = "uglify-js";
-      version = "2.8.20";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.20.tgz";
-        sha1 = "be87100fbc18de3876ed606e9d24b4568311cecf";
-      };
-    };
-    "void-elements-2.0.1" = {
-      name = "void-elements";
-      packageName = "void-elements";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz";
-        sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
-      };
-    };
-    "with-4.0.3" = {
-      name = "with";
-      packageName = "with";
-      version = "4.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/with/-/with-4.0.3.tgz";
-        sha1 = "eefd154e9e79d2c8d3417b647a8f14d9fecce14e";
-      };
-    };
-    "commander-2.8.1" = {
-      name = "commander";
-      packageName = "commander";
-      version = "2.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz";
-        sha1 = "06be367febfda0c330aa1e2a072d3dc9762425d4";
-      };
-    };
-    "source-map-0.4.4" = {
-      name = "source-map";
-      packageName = "source-map";
-      version = "0.4.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz";
-        sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
-      };
-    };
-    "graceful-readlink-1.0.1" = {
-      name = "graceful-readlink";
-      packageName = "graceful-readlink";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
-        sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
-      };
-    };
-    "amdefine-1.0.1" = {
-      name = "amdefine";
-      packageName = "amdefine";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz";
-        sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
-      };
-    };
-    "acorn-2.7.0" = {
-      name = "acorn";
-      packageName = "acorn";
-      version = "2.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz";
-        sha1 = "ab6e7d9d886aaca8b085bc3312b79a198433f0e7";
-      };
-    };
-    "is-promise-2.1.0" = {
-      name = "is-promise";
-      packageName = "is-promise";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz";
-        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
-      };
-    };
-    "promise-6.1.0" = {
-      name = "promise";
-      packageName = "promise";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz";
-        sha1 = "2ce729f6b94b45c26891ad0602c5c90e04c6eef6";
-      };
-    };
-    "asap-1.0.0" = {
-      name = "asap";
-      packageName = "asap";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz";
-        sha1 = "b2a45da5fdfa20b0496fc3768cc27c12fa916a7d";
-      };
-    };
-    "promise-2.0.0" = {
-      name = "promise";
-      packageName = "promise";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz";
-        sha1 = "46648aa9d605af5d2e70c3024bf59436da02b80e";
-      };
-    };
-    "css-1.0.8" = {
-      name = "css";
-      packageName = "css";
-      version = "1.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/css/-/css-1.0.8.tgz";
-        sha1 = "9386811ca82bccc9ee7fb5a732b1e2a317c8a3e7";
-      };
-    };
-    "uglify-js-2.2.5" = {
-      name = "uglify-js";
-      packageName = "uglify-js";
-      version = "2.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz";
-        sha1 = "a6e02a70d839792b9780488b7b8b184c095c99c7";
-      };
-    };
-    "is-promise-1.0.1" = {
-      name = "is-promise";
-      packageName = "is-promise";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz";
-        sha1 = "31573761c057e33c2e91aab9e96da08cefbe76e5";
-      };
-    };
-    "css-parse-1.0.4" = {
-      name = "css-parse";
-      packageName = "css-parse";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz";
-        sha1 = "38b0503fbf9da9f54e9c1dbda60e145c77117bdd";
-      };
-    };
-    "css-stringify-1.0.5" = {
-      name = "css-stringify";
-      packageName = "css-stringify";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz";
-        sha1 = "b0d042946db2953bb9d292900a6cb5f6d0122031";
-      };
-    };
-    "source-map-0.1.43" = {
-      name = "source-map";
-      packageName = "source-map";
-      version = "0.1.43";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz";
-        sha1 = "c24bc146ca517c1471f5dacbe2571b2b7f9e3346";
-      };
-    };
-    "optimist-0.3.7" = {
-      name = "optimist";
-      packageName = "optimist";
-      version = "0.3.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz";
-        sha1 = "c90941ad59e4273328923074d2cf2e7cbc6ec0d9";
-      };
-    };
-    "wordwrap-0.0.3" = {
-      name = "wordwrap";
-      packageName = "wordwrap";
-      version = "0.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz";
-        sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
-      };
-    };
-    "source-map-0.5.6" = {
-      name = "source-map";
-      packageName = "source-map";
-      version = "0.5.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz";
-        sha1 = "75ce38f52bf0733c5a7f0c118d81334a2bb5f412";
-      };
-    };
-    "yargs-3.10.0" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "3.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz";
-        sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
-      };
-    };
-    "uglify-to-browserify-1.0.2" = {
-      name = "uglify-to-browserify";
-      packageName = "uglify-to-browserify";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
-        sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
-      };
-    };
-    "camelcase-1.2.1" = {
-      name = "camelcase";
-      packageName = "camelcase";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz";
-        sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
-      };
-    };
-    "cliui-2.1.0" = {
-      name = "cliui";
-      packageName = "cliui";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz";
-        sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
-      };
-    };
-    "window-size-0.1.0" = {
-      name = "window-size";
-      packageName = "window-size";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz";
-        sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
-      };
-    };
-    "center-align-0.1.3" = {
-      name = "center-align";
-      packageName = "center-align";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz";
-        sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
-      };
-    };
-    "right-align-0.1.3" = {
-      name = "right-align";
-      packageName = "right-align";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz";
-        sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
-      };
-    };
-    "wordwrap-0.0.2" = {
-      name = "wordwrap";
-      packageName = "wordwrap";
-      version = "0.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
-        sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
-      };
-    };
-    "align-text-0.1.4" = {
-      name = "align-text";
-      packageName = "align-text";
-      version = "0.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz";
-        sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
-      };
-    };
-    "lazy-cache-1.0.4" = {
-      name = "lazy-cache";
-      packageName = "lazy-cache";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz";
-        sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
-      };
-    };
-    "kind-of-3.1.0" = {
-      name = "kind-of";
-      packageName = "kind-of";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz";
-        sha1 = "475d698a5e49ff5e53d14e3e732429dc8bf4cf47";
-      };
-    };
-    "longest-1.0.1" = {
-      name = "longest";
-      packageName = "longest";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
-        sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
-      };
-    };
-    "repeat-string-1.6.1" = {
-      name = "repeat-string";
-      packageName = "repeat-string";
-      version = "1.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
-        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
-      };
-    };
-    "is-buffer-1.1.5" = {
-      name = "is-buffer";
-      packageName = "is-buffer";
-      version = "1.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz";
-        sha1 = "1f3b26ef613b214b88cbca23cc6c01d87961eecc";
-      };
-    };
-    "acorn-1.2.2" = {
-      name = "acorn";
-      packageName = "acorn";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz";
-        sha1 = "c8ce27de0acc76d896d2b1fad3df588d9e82f014";
-      };
-    };
-    "acorn-globals-1.0.9" = {
-      name = "acorn-globals";
-      packageName = "acorn-globals";
-      version = "1.0.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz";
-        sha1 = "55bb5e98691507b74579d0513413217c380c54cf";
-      };
-    };
-    "abab-1.0.3" = {
-      name = "abab";
-      packageName = "abab";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz";
-        sha1 = "b81de5f7274ec4e756d797cd834f303642724e5d";
-      };
-    };
-    "cssom-0.3.2" = {
-      name = "cssom";
-      packageName = "cssom";
-      version = "0.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz";
-        sha1 = "b8036170c79f07a90ff2f16e22284027a243848b";
-      };
-    };
-    "cssstyle-0.2.37" = {
-      name = "cssstyle";
-      packageName = "cssstyle";
-      version = "0.2.37";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz";
-        sha1 = "541097234cb2513c83ceed3acddc27ff27987d54";
-      };
-    };
-    "escodegen-1.8.1" = {
-      name = "escodegen";
-      packageName = "escodegen";
-      version = "1.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz";
-        sha1 = "5a5b53af4693110bebb0867aa3430dd3b70a1018";
-      };
-    };
-    "nwmatcher-1.3.9" = {
-      name = "nwmatcher";
-      packageName = "nwmatcher";
-      version = "1.3.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.9.tgz";
-        sha1 = "8bab486ff7fa3dfd086656bbe8b17116d3692d2a";
-      };
-    };
-    "parse5-1.5.1" = {
-      name = "parse5";
-      packageName = "parse5";
-      version = "1.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz";
-        sha1 = "9b7f3b0de32be78dc2401b17573ccaf0f6f59d94";
-      };
-    };
-    "request-2.81.0" = {
-      name = "request";
-      packageName = "request";
-      version = "2.81.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/request/-/request-2.81.0.tgz";
-        sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0";
-      };
-    };
-    "sax-1.2.2" = {
-      name = "sax";
-      packageName = "sax";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz";
-        sha1 = "fd8631a23bc7826bef5d871bdb87378c95647828";
-      };
-    };
-    "symbol-tree-3.2.2" = {
-      name = "symbol-tree";
-      packageName = "symbol-tree";
-      version = "3.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz";
-        sha1 = "ae27db38f660a7ae2e1c3b7d1bc290819b8519e6";
-      };
-    };
-    "tough-cookie-2.3.2" = {
-      name = "tough-cookie";
-      packageName = "tough-cookie";
-      version = "2.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz";
-        sha1 = "f081f76e4c85720e6c37a5faced737150d84072a";
-      };
-    };
-    "webidl-conversions-2.0.1" = {
-      name = "webidl-conversions";
-      packageName = "webidl-conversions";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz";
-        sha1 = "3bf8258f7d318c7443c36f2e169402a1a6703506";
-      };
-    };
-    "whatwg-url-compat-0.6.5" = {
-      name = "whatwg-url-compat";
-      packageName = "whatwg-url-compat";
-      version = "0.6.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz";
-        sha1 = "00898111af689bb097541cd5a45ca6c8798445bf";
-      };
-    };
-    "xml-name-validator-2.0.1" = {
-      name = "xml-name-validator";
-      packageName = "xml-name-validator";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz";
-        sha1 = "4d8b8f1eccd3419aa362061becef515e1e559635";
-      };
-    };
-    "estraverse-1.9.3" = {
-      name = "estraverse";
-      packageName = "estraverse";
-      version = "1.9.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz";
-        sha1 = "af67f2dc922582415950926091a4005d29c9bb44";
-      };
-    };
-    "esutils-2.0.2" = {
-      name = "esutils";
-      packageName = "esutils";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz";
-        sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
-      };
-    };
-    "esprima-2.7.3" = {
-      name = "esprima";
-      packageName = "esprima";
-      version = "2.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz";
-        sha1 = "96e3b70d5779f6ad49cd032673d1c312767ba581";
-      };
-    };
-    "optionator-0.8.2" = {
-      name = "optionator";
-      packageName = "optionator";
-      version = "0.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz";
-        sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
-      };
-    };
-    "source-map-0.2.0" = {
-      name = "source-map";
-      packageName = "source-map";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz";
-        sha1 = "dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d";
-      };
-    };
-    "prelude-ls-1.1.2" = {
-      name = "prelude-ls";
-      packageName = "prelude-ls";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
-        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
-      };
-    };
-    "deep-is-0.1.3" = {
-      name = "deep-is";
-      packageName = "deep-is";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
-        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
-      };
-    };
-    "wordwrap-1.0.0" = {
-      name = "wordwrap";
-      packageName = "wordwrap";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
-        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
-      };
-    };
-    "type-check-0.3.2" = {
-      name = "type-check";
-      packageName = "type-check";
-      version = "0.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
-        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
-      };
-    };
-    "levn-0.3.0" = {
-      name = "levn";
-      packageName = "levn";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
-        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
-      };
-    };
-    "fast-levenshtein-2.0.6" = {
-      name = "fast-levenshtein";
-      packageName = "fast-levenshtein";
-      version = "2.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
-        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
-      };
-    };
-    "aws-sign2-0.6.0" = {
-      name = "aws-sign2";
-      packageName = "aws-sign2";
-      version = "0.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz";
-        sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f";
-      };
-    };
-    "aws4-1.6.0" = {
-      name = "aws4";
-      packageName = "aws4";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz";
-        sha1 = "83ef5ca860b2b32e4a0deedee8c771b9db57471e";
-      };
-    };
-    "caseless-0.12.0" = {
-      name = "caseless";
-      packageName = "caseless";
-      version = "0.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
-        sha1 = "1b681c21ff84033c826543090689420d187151dc";
-      };
-    };
-    "combined-stream-1.0.5" = {
-      name = "combined-stream";
-      packageName = "combined-stream";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz";
-        sha1 = "938370a57b4a51dea2c77c15d5c5fdf895164009";
-      };
-    };
-    "extend-3.0.0" = {
-      name = "extend";
-      packageName = "extend";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz";
-        sha1 = "5a474353b9f3353ddd8176dfd37b91c83a46f1d4";
-      };
-    };
-    "forever-agent-0.6.1" = {
-      name = "forever-agent";
-      packageName = "forever-agent";
-      version = "0.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
-        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
-      };
-    };
-    "form-data-2.1.2" = {
-      name = "form-data";
-      packageName = "form-data";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz";
-        sha1 = "89c3534008b97eada4cbb157d58f6f5df025eae4";
-      };
-    };
-    "har-validator-4.2.1" = {
-      name = "har-validator";
-      packageName = "har-validator";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz";
-        sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
-      };
-    };
-    "hawk-3.1.3" = {
-      name = "hawk";
-      packageName = "hawk";
-      version = "3.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz";
-        sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4";
-      };
-    };
-    "http-signature-1.1.1" = {
-      name = "http-signature";
-      packageName = "http-signature";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz";
-        sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf";
-      };
-    };
-    "is-typedarray-1.0.0" = {
-      name = "is-typedarray";
-      packageName = "is-typedarray";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
-        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
-      };
-    };
-    "isstream-0.1.2" = {
-      name = "isstream";
-      packageName = "isstream";
-      version = "0.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
-        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
-      };
-    };
-    "json-stringify-safe-5.0.1" = {
-      name = "json-stringify-safe";
-      packageName = "json-stringify-safe";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
-        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
-      };
-    };
-    "oauth-sign-0.8.2" = {
-      name = "oauth-sign";
-      packageName = "oauth-sign";
-      version = "0.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz";
-        sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43";
-      };
-    };
-    "performance-now-0.2.0" = {
-      name = "performance-now";
-      packageName = "performance-now";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz";
-        sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5";
-      };
-    };
-    "qs-6.4.0" = {
-      name = "qs";
-      packageName = "qs";
-      version = "6.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz";
-        sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233";
-      };
-    };
-    "safe-buffer-5.0.1" = {
-      name = "safe-buffer";
-      packageName = "safe-buffer";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz";
-        sha1 = "d263ca54696cd8a306b5ca6551e92de57918fbe7";
-      };
-    };
-    "stringstream-0.0.5" = {
-      name = "stringstream";
-      packageName = "stringstream";
-      version = "0.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz";
-        sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878";
-      };
-    };
-    "tunnel-agent-0.6.0" = {
-      name = "tunnel-agent";
-      packageName = "tunnel-agent";
-      version = "0.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
-        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
-      };
-    };
-    "delayed-stream-1.0.0" = {
-      name = "delayed-stream";
-      packageName = "delayed-stream";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
-        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
-      };
-    };
-    "asynckit-0.4.0" = {
-      name = "asynckit";
-      packageName = "asynckit";
-      version = "0.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
-        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
-      };
-    };
-    "ajv-4.11.5" = {
-      name = "ajv";
-      packageName = "ajv";
-      version = "4.11.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz";
-        sha1 = "b6ee74657b993a01dce44b7944d56f485828d5bd";
-      };
-    };
-    "har-schema-1.0.5" = {
-      name = "har-schema";
-      packageName = "har-schema";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz";
-        sha1 = "d263135f43307c02c602afc8fe95970c0151369e";
-      };
-    };
-    "co-4.6.0" = {
-      name = "co";
-      packageName = "co";
-      version = "4.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz";
-        sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
-      };
-    };
-    "json-stable-stringify-1.0.1" = {
-      name = "json-stable-stringify";
-      packageName = "json-stable-stringify";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz";
-        sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
-      };
-    };
-    "jsonify-0.0.0" = {
-      name = "jsonify";
-      packageName = "jsonify";
-      version = "0.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
-        sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
-      };
-    };
-    "hoek-2.16.3" = {
-      name = "hoek";
-      packageName = "hoek";
-      version = "2.16.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz";
-        sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed";
-      };
-    };
-    "boom-2.10.1" = {
-      name = "boom";
-      packageName = "boom";
-      version = "2.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz";
-        sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
-      };
-    };
-    "cryptiles-2.0.5" = {
-      name = "cryptiles";
-      packageName = "cryptiles";
-      version = "2.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz";
-        sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8";
-      };
-    };
-    "sntp-1.0.9" = {
-      name = "sntp";
-      packageName = "sntp";
-      version = "1.0.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz";
-        sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198";
-      };
-    };
-    "assert-plus-0.2.0" = {
-      name = "assert-plus";
-      packageName = "assert-plus";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz";
-        sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234";
-      };
-    };
-    "jsprim-1.4.0" = {
-      name = "jsprim";
-      packageName = "jsprim";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz";
-        sha1 = "a3b87e40298d8c380552d8cc7628a0bb95a22918";
-      };
-    };
-    "sshpk-1.11.0" = {
-      name = "sshpk";
-      packageName = "sshpk";
-      version = "1.11.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz";
-        sha1 = "2d8d5ebb4a6fab28ffba37fa62a90f4a3ea59d77";
-      };
-    };
-    "assert-plus-1.0.0" = {
-      name = "assert-plus";
-      packageName = "assert-plus";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
-        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
-      };
-    };
-    "extsprintf-1.0.2" = {
-      name = "extsprintf";
-      packageName = "extsprintf";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz";
-        sha1 = "e1080e0658e300b06294990cc70e1502235fd550";
-      };
-    };
-    "json-schema-0.2.3" = {
-      name = "json-schema";
-      packageName = "json-schema";
-      version = "0.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
-      };
-    };
-    "verror-1.3.6" = {
-      name = "verror";
-      packageName = "verror";
-      version = "1.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz";
-        sha1 = "cff5df12946d297d2baaefaa2689e25be01c005c";
-      };
-    };
-    "asn1-0.2.3" = {
-      name = "asn1";
-      packageName = "asn1";
-      version = "0.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz";
-        sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
-      };
-    };
-    "dashdash-1.14.1" = {
-      name = "dashdash";
-      packageName = "dashdash";
-      version = "1.14.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
-      };
-    };
-    "getpass-0.1.6" = {
-      name = "getpass";
-      packageName = "getpass";
-      version = "0.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz";
-        sha1 = "283ffd9fc1256840875311c1b60e8c40187110e6";
-      };
-    };
-    "jsbn-0.1.1" = {
-      name = "jsbn";
-      packageName = "jsbn";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
-        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
-      };
-    };
-    "tweetnacl-0.14.5" = {
-      name = "tweetnacl";
-      packageName = "tweetnacl";
-      version = "0.14.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
-      };
-    };
-    "jodid25519-1.0.2" = {
-      name = "jodid25519";
-      packageName = "jodid25519";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz";
-        sha1 = "06d4912255093419477d425633606e0e90782967";
-      };
-    };
-    "ecc-jsbn-0.1.1" = {
-      name = "ecc-jsbn";
-      packageName = "ecc-jsbn";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz";
-        sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505";
-      };
-    };
-    "bcrypt-pbkdf-1.0.1" = {
-      name = "bcrypt-pbkdf";
-      packageName = "bcrypt-pbkdf";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz";
-        sha1 = "63bc5dcb61331b92bc05fd528953c33462a06f8d";
-      };
-    };
-    "punycode-1.4.1" = {
-      name = "punycode";
-      packageName = "punycode";
-      version = "1.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz";
-        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
-      };
-    };
-    "tr46-0.0.3" = {
-      name = "tr46";
-      packageName = "tr46";
-      version = "0.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz";
-        sha1 = "8184fd347dac9cdc185992f3a6622e14b9d9ab6a";
-      };
-    };
-    "vary-1.1.1" = {
-      name = "vary";
-      packageName = "vary";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz";
-        sha1 = "67535ebb694c1d52257457984665323f587e8d37";
-      };
-    };
-    "minimist-0.0.8" = {
-      name = "minimist";
-      packageName = "minimist";
-      version = "0.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
-      };
-    };
-    "minimist-0.0.10" = {
-      name = "minimist";
-      packageName = "minimist";
-      version = "0.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz";
-        sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf";
-      };
-    };
-    "glob-7.1.1" = {
-      name = "glob";
-      packageName = "glob";
-      version = "7.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz";
-        sha1 = "805211df04faaf1c63a3600306cdf5ade50b2ec8";
-      };
-    };
-    "fs.realpath-1.0.0" = {
-      name = "fs.realpath";
-      packageName = "fs.realpath";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
-        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
-      };
-    };
-    "htmlparser2-3.9.2" = {
-      name = "htmlparser2";
-      packageName = "htmlparser2";
-      version = "3.9.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz";
-        sha1 = "1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338";
-      };
-    };
-    "regexp-quote-0.0.0" = {
-      name = "regexp-quote";
-      packageName = "regexp-quote";
-      version = "0.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/regexp-quote/-/regexp-quote-0.0.0.tgz";
-        sha1 = "1e0f4650c862dcbfed54fd42b148e9bb1721fcf2";
-      };
-    };
-    "xtend-4.0.1" = {
-      name = "xtend";
-      packageName = "xtend";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz";
-        sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
-      };
-    };
-    "domelementtype-1.3.0" = {
-      name = "domelementtype";
-      packageName = "domelementtype";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz";
-        sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2";
-      };
-    };
-    "domhandler-2.3.0" = {
-      name = "domhandler";
-      packageName = "domhandler";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz";
-        sha1 = "2de59a0822d5027fabff6f032c2b25a2a8abe738";
-      };
-    };
-    "domutils-1.5.1" = {
-      name = "domutils";
-      packageName = "domutils";
-      version = "1.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz";
-        sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
-      };
-    };
-    "entities-1.1.1" = {
-      name = "entities";
-      packageName = "entities";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz";
-        sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
-      };
-    };
-    "readable-stream-2.2.6" = {
-      name = "readable-stream";
-      packageName = "readable-stream";
-      version = "2.2.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz";
-        sha1 = "8b43aed76e71483938d12a8d46c6cf1a00b1f816";
-      };
-    };
-    "dom-serializer-0.1.0" = {
-      name = "dom-serializer";
-      packageName = "dom-serializer";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz";
-        sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82";
-      };
-    };
-    "domelementtype-1.1.3" = {
-      name = "domelementtype";
-      packageName = "domelementtype";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz";
-        sha1 = "bd28773e2642881aec51544924299c5cd822185b";
-      };
-    };
-    "buffer-shims-1.0.0" = {
-      name = "buffer-shims";
-      packageName = "buffer-shims";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz";
-        sha1 = "9978ce317388c649ad8793028c3477ef044a8b51";
-      };
-    };
-    "isarray-1.0.0" = {
-      name = "isarray";
-      packageName = "isarray";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
-        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
-      };
-    };
-    "process-nextick-args-1.0.7" = {
-      name = "process-nextick-args";
-      packageName = "process-nextick-args";
-      version = "1.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz";
-        sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3";
-      };
-    };
-    "util-deprecate-1.0.2" = {
-      name = "util-deprecate";
-      packageName = "util-deprecate";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
-        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
-      };
-    };
-    "destroy-1.0.4" = {
-      name = "destroy";
-      packageName = "destroy";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
-        sha1 = "978857442c44749e4206613e37946205826abd80";
-      };
-    };
-    "yargs-6.6.0" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "6.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz";
-        sha1 = "782ec21ef403345f830a808ca3d513af56065208";
-      };
-    };
-    "camelcase-3.0.0" = {
-      name = "camelcase";
-      packageName = "camelcase";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz";
-        sha1 = "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a";
-      };
-    };
-    "cliui-3.2.0" = {
-      name = "cliui";
-      packageName = "cliui";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz";
-        sha1 = "120601537a916d29940f934da3b48d585a39213d";
-      };
-    };
-    "get-caller-file-1.0.2" = {
-      name = "get-caller-file";
-      packageName = "get-caller-file";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz";
-        sha1 = "f702e63127e7e231c160a80c1554acb70d5047e5";
-      };
-    };
-    "os-locale-1.4.0" = {
-      name = "os-locale";
-      packageName = "os-locale";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz";
-        sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
-      };
-    };
-    "require-directory-2.1.1" = {
-      name = "require-directory";
-      packageName = "require-directory";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
-        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
-      };
-    };
-    "require-main-filename-1.0.1" = {
-      name = "require-main-filename";
-      packageName = "require-main-filename";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz";
-        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
-      };
-    };
-    "set-blocking-2.0.0" = {
-      name = "set-blocking";
-      packageName = "set-blocking";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
-        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
-      };
-    };
-    "string-width-1.0.2" = {
-      name = "string-width";
-      packageName = "string-width";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
-        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
-      };
-    };
-    "which-module-1.0.0" = {
-      name = "which-module";
-      packageName = "which-module";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz";
-        sha1 = "bba63ca861948994ff307736089e3b96026c2a4f";
-      };
-    };
-    "y18n-3.2.1" = {
-      name = "y18n";
-      packageName = "y18n";
-      version = "3.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz";
-        sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41";
-      };
-    };
-    "yargs-parser-4.2.1" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz";
-        sha1 = "29cceac0dc4f03c6c87b4a9f217dd18c9f74871c";
-      };
-    };
-    "strip-ansi-3.0.1" = {
-      name = "strip-ansi";
-      packageName = "strip-ansi";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
-        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
-      };
-    };
-    "wrap-ansi-2.1.0" = {
-      name = "wrap-ansi";
-      packageName = "wrap-ansi";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
-        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
-      };
-    };
-    "ansi-regex-2.1.1" = {
-      name = "ansi-regex";
-      packageName = "ansi-regex";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
-        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
-      };
-    };
-    "lcid-1.0.0" = {
-      name = "lcid";
-      packageName = "lcid";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz";
-        sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
-      };
-    };
-    "invert-kv-1.0.0" = {
-      name = "invert-kv";
-      packageName = "invert-kv";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz";
-        sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
-      };
-    };
-    "code-point-at-1.1.0" = {
-      name = "code-point-at";
-      packageName = "code-point-at";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
-        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
-      };
-    };
-    "is-fullwidth-code-point-1.0.0" = {
-      name = "is-fullwidth-code-point";
-      packageName = "is-fullwidth-code-point";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
-        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
-      };
-    };
-    "faye-websocket-0.10.0" = {
-      name = "faye-websocket";
-      packageName = "faye-websocket";
-      version = "0.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz";
-        sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
-      };
-    };
-    "uuid-2.0.3" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz";
-        sha1 = "67e2e863797215530dff318e5bf9dcebfd47b21a";
-      };
-    };
-    "websocket-driver-0.6.5" = {
-      name = "websocket-driver";
-      packageName = "websocket-driver";
-      version = "0.6.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz";
-        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
-      };
-    };
-    "websocket-extensions-0.1.1" = {
-      name = "websocket-extensions";
-      packageName = "websocket-extensions";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz";
-        sha1 = "76899499c184b6ef754377c2dbb0cd6cb55d29e7";
-      };
-    };
-    "assert-1.4.1" = {
-      name = "assert";
-      packageName = "assert";
-      version = "1.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz";
-        sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91";
-      };
-    };
-    "es6-shim-0.27.1" = {
-      name = "es6-shim";
-      packageName = "es6-shim";
-      version = "0.27.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-shim/-/es6-shim-0.27.1.tgz";
-        sha1 = "bd3f870663eac2ede8e8943e2a6d23c052d53fc6";
-      };
-    };
-    "minimum-tls-version-0.0.1" = {
-      name = "minimum-tls-version";
-      packageName = "minimum-tls-version";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimum-tls-version/-/minimum-tls-version-0.0.1.tgz";
-        sha1 = "42220187e52700e253218cfa8ad974920b73ea74";
-      };
-    };
-    "util-0.10.3" = {
-      name = "util";
-      packageName = "util";
-      version = "0.10.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/util/-/util-0.10.3.tgz";
-        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
-      };
-    };
-    "inherits-2.0.1" = {
-      name = "inherits";
-      packageName = "inherits";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
-        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
-      };
-    };
-    "underscore-1.6.0" = {
-      name = "underscore";
-      packageName = "underscore";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz";
-        sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
-      };
-    };
-    "xml2js-0.1.14" = {
-      name = "xml2js";
-      packageName = "xml2js";
-      version = "0.1.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xml2js/-/xml2js-0.1.14.tgz";
-        sha1 = "5274e67f5a64c5f92974cd85139e0332adc6b90c";
-      };
-    };
-    "databank-1.0.1" = {
-      name = "databank";
-      packageName = "databank";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/databank/-/databank-1.0.1.tgz";
-        sha1 = "ef063df1f1aaceb8507ce70f7de6cb32980e874b";
-      };
-    };
-    "mongodb-2.2.25" = {
-      name = "mongodb";
-      packageName = "mongodb";
-      version = "2.2.25";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mongodb/-/mongodb-2.2.25.tgz";
-        sha1 = "d3b25dad00eda2bdfcbc996210ba082ac686a6b6";
-      };
-    };
-    "setimmediate-1.0.5" = {
-      name = "setimmediate";
-      packageName = "setimmediate";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz";
-        sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
-      };
-    };
-    "es6-promise-3.2.1" = {
-      name = "es6-promise";
-      packageName = "es6-promise";
-      version = "3.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz";
-        sha1 = "ec56233868032909207170c39448e24449dd1fc4";
-      };
-    };
-    "mongodb-core-2.1.9" = {
-      name = "mongodb-core";
-      packageName = "mongodb-core";
-      version = "2.1.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.9.tgz";
-        sha1 = "85aa71ee4fb716196e06b787557bf139f801daf5";
-      };
-    };
-    "readable-stream-2.1.5" = {
-      name = "readable-stream";
-      packageName = "readable-stream";
-      version = "2.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz";
-        sha1 = "66fa8b720e1438b364681f2ad1a63c618448c9d0";
-      };
-    };
-    "bson-1.0.4" = {
-      name = "bson";
-      packageName = "bson";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz";
-        sha1 = "93c10d39eaa5b58415cbc4052f3e53e562b0b72c";
-      };
-    };
-    "require_optional-1.0.0" = {
-      name = "require_optional";
-      packageName = "require_optional";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/require_optional/-/require_optional-1.0.0.tgz";
-        sha1 = "52a86137a849728eb60a55533617f8f914f59abf";
-      };
-    };
-    "resolve-from-2.0.0" = {
-      name = "resolve-from";
-      packageName = "resolve-from";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz";
-        sha1 = "9480ab20e94ffa1d9e80a804c7ea147611966b57";
-      };
-    };
-    "async-0.9.2" = {
-      name = "async";
-      packageName = "async";
-      version = "0.9.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-0.9.2.tgz";
-        sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
-      };
-    };
-    "redis-0.10.3" = {
-      name = "redis";
-      packageName = "redis";
-      version = "0.10.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/redis/-/redis-0.10.3.tgz";
-        sha1 = "8927fe2110ee39617bcf3fd37b89d8e123911bb6";
-      };
-    };
-  };
-  args = {
-    name = "pump.io";
-    packageName = "pump.io";
-    version = "3.0.0";
-    src = fetchurl { url = "https://registry.npmjs.org/pump.io/-/pump.io-3.0.0.tgz"; sha1 = "ycfm7ak83xi8mgafhp9q0n6n3kzmdz16"; };
-    dependencies = [
-      (sources."bcrypt-0.8.7" // {
-        dependencies = [
-          sources."bindings-1.2.1"
-          sources."nan-2.3.5"
-        ];
-      })
-      (sources."bunyan-1.8.9" // {
-        dependencies = [
-          (sources."dtrace-provider-0.8.1" // {
-            dependencies = [
-              sources."nan-2.5.1"
-            ];
-          })
-          (sources."mv-2.1.1" // {
-            dependencies = [
-              sources."ncp-2.0.0"
-              (sources."rimraf-2.4.5" // {
-                dependencies = [
-                  (sources."glob-6.0.4" // {
-                    dependencies = [
-                      (sources."inflight-1.0.6" // {
-                        dependencies = [
-                          sources."wrappy-1.0.2"
-                        ];
-                      })
-                      sources."inherits-2.0.3"
-                      (sources."minimatch-3.0.3" // {
-                        dependencies = [
-                          (sources."brace-expansion-1.1.6" // {
-                            dependencies = [
-                              sources."balanced-match-0.4.2"
-                              sources."concat-map-0.0.1"
-                            ];
-                          })
-                        ];
-                      })
-                      (sources."once-1.4.0" // {
-                        dependencies = [
-                          sources."wrappy-1.0.2"
-                        ];
-                      })
-                      sources."path-is-absolute-1.0.1"
-                    ];
-                  })
-                ];
-              })
-            ];
-          })
-          sources."safe-json-stringify-1.0.4"
-          sources."moment-2.18.1"
-        ];
-      })
-      sources."colors-1.1.2"
-      (sources."connect-2.30.2" // {
-        dependencies = [
-          sources."basic-auth-connect-1.0.0"
-          (sources."body-parser-1.13.3" // {
-            dependencies = [
-              sources."iconv-lite-0.4.11"
-              (sources."on-finished-2.3.0" // {
-                dependencies = [
-                  sources."ee-first-1.1.1"
-                ];
-              })
-              (sources."raw-body-2.1.7" // {
-                dependencies = [
-                  sources."bytes-2.4.0"
-                  sources."iconv-lite-0.4.13"
-                  sources."unpipe-1.0.0"
-                ];
-              })
-            ];
-          })
-          sources."bytes-2.1.0"
-          sources."cookie-0.1.3"
-          sources."cookie-parser-1.3.5"
-          sources."cookie-signature-1.0.6"
-          (sources."compression-1.5.2" // {
-            dependencies = [
-              (sources."accepts-1.2.13" // {
-                dependencies = [
-                  (sources."mime-types-2.1.15" // {
-                    dependencies = [
-                      sources."mime-db-1.27.0"
-                    ];
-                  })
-                  sources."negotiator-0.5.3"
-                ];
-              })
-              (sources."compressible-2.0.10" // {
-                dependencies = [
-                  sources."mime-db-1.27.0"
-                ];
-              })
-              sources."vary-1.0.1"
-            ];
-          })
-          (sources."connect-timeout-1.6.2" // {
-            dependencies = [
-              sources."ms-0.7.1"
-            ];
-          })
-          sources."content-type-1.0.2"
-          (sources."csurf-1.8.3" // {
-            dependencies = [
-              (sources."csrf-3.0.6" // {
-                dependencies = [
-                  sources."rndm-1.2.0"
-                  sources."tsscmp-1.0.5"
-                  (sources."uid-safe-2.1.4" // {
-                    dependencies = [
-                      sources."random-bytes-1.0.0"
-                    ];
-                  })
-                ];
-              })
-            ];
-          })
-          (sources."debug-2.2.0" // {
-            dependencies = [
-              sources."ms-0.7.1"
-            ];
-          })
-          sources."depd-1.0.1"
-          (sources."errorhandler-1.4.3" // {
-            dependencies = [
-              (sources."accepts-1.3.3" // {
-                dependencies = [
-                  (sources."mime-types-2.1.15" // {
-                    dependencies = [
-                      sources."mime-db-1.27.0"
-                    ];
-                  })
-                  sources."negotiator-0.6.1"
-                ];
-              })
-              sources."escape-html-1.0.3"
-            ];
-          })
-          (sources."express-session-1.11.3" // {
-            dependencies = [
-              sources."crc-3.3.0"
-              (sources."uid-safe-2.0.0" // {
-                dependencies = [
-                  sources."base64-url-1.2.1"
-                ];
-              })
-            ];
-          })
-          (sources."finalhandler-0.4.0" // {
-            dependencies = [
-              sources."escape-html-1.0.2"
-              (sources."on-finished-2.3.0" // {
-                dependencies = [
-                  sources."ee-first-1.1.1"
-                ];
-              })
-              sources."unpipe-1.0.0"
-            ];
-          })
-          sources."fresh-0.3.0"
-          (sources."http-errors-1.3.1" // {
-            dependencies = [
-              sources."inherits-2.0.3"
-              sources."statuses-1.3.1"
-            ];
-          })
-          (sources."morgan-1.6.1" // {
-            dependencies = [
-              sources."basic-auth-1.0.4"
-              (sources."on-finished-2.3.0" // {
-                dependencies = [
-                  sources."ee-first-1.1.1"
-                ];
-              })
-            ];
-          })
-          (sources."multiparty-3.3.2" // {
-            dependencies = [
-              (sources."readable-stream-1.1.14" // {
-                dependencies = [
-                  sources."core-util-is-1.0.2"
-                  sources."isarray-0.0.1"
-                  sources."string_decoder-0.10.31"
-                  sources."inherits-2.0.3"
-                ];
-              })
-              sources."stream-counter-0.2.0"
-            ];
-          })
-          sources."on-headers-1.0.1"
-          sources."parseurl-1.3.1"
-          sources."pause-0.1.0"
-          sources."qs-4.0.0"
-          (sources."response-time-2.3.2" // {
-            dependencies = [
-              sources."depd-1.1.0"
-            ];
-          })
-          (sources."serve-favicon-2.3.2" // {
-            dependencies = [
-              sources."etag-1.7.0"
-              sources."ms-0.7.2"
-            ];
-          })
-          (sources."serve-index-1.7.3" // {
-            dependencies = [
-              (sources."accepts-1.2.13" // {
-                dependencies = [
-                  sources."negotiator-0.5.3"
-                ];
-              })
-              sources."batch-0.5.3"
-              sources."escape-html-1.0.3"
-              (sources."mime-types-2.1.15" // {
-                dependencies = [
-                  sources."mime-db-1.27.0"
-                ];
-              })
-            ];
-          })
-          (sources."serve-static-1.10.3" // {
-            dependencies = [
-              sources."escape-html-1.0.3"
-            ];
-          })
-          (sources."type-is-1.6.14" // {
-            dependencies = [
-              sources."media-typer-0.3.0"
-              (sources."mime-types-2.1.15" // {
-                dependencies = [
-                  sources."mime-db-1.27.0"
-                ];
-              })
-            ];
-          })
-          sources."utils-merge-1.0.0"
-          sources."vhost-3.0.2"
-        ];
-      })
-      (sources."connect-auth-git://github.com/e14n/connect-auth" // {
-        dependencies = [
-          sources."oauth-0.9.7"
-          sources."openid-0.4.1"
-        ];
-      })
-      (sources."connect-databank-1.0.3" // {
-        dependencies = [
-          sources."async-1.5.2"
-          sources."node-uuid-1.4.8"
-          sources."set-immediate-0.1.1"
-        ];
-      })
-      (sources."connect-multiparty-2.0.0" // {
-        dependencies = [
-          (sources."multiparty-4.1.3" // {
-            dependencies = [
-              (sources."fd-slicer-1.0.1" // {
-                dependencies = [
-                  sources."pend-1.2.0"
-                ];
-              })
-            ];
-          })
-          (sources."on-finished-2.3.0" // {
-            dependencies = [
-              sources."ee-first-1.1.1"
-            ];
-          })
-          sources."qs-4.0.0"
-          (sources."type-is-1.6.14" // {
-            dependencies = [
-              sources."media-typer-0.3.0"
-              (sources."mime-types-2.1.15" // {
-                dependencies = [
-                  sources."mime-db-1.27.0"
-                ];
-              })
-            ];
-          })
-        ];
-      })
-      sources."crypto-cacerts-0.1.0"
-      (sources."databank-0.19.8" // {
-        dependencies = [
-          sources."set-immediate-0.1.1"
-        ];
-      })
-      (sources."dateformat-1.0.12" // {
-        dependencies = [
-          sources."get-stdin-4.0.1"
-          (sources."meow-3.7.0" // {
-            dependencies = [
-              (sources."camelcase-keys-2.1.0" // {
-                dependencies = [
-                  sources."camelcase-2.1.1"
-                ];
-              })
-              sources."decamelize-1.2.0"
-              (sources."loud-rejection-1.6.0" // {
-                dependencies = [
-                  (sources."currently-unhandled-0.4.1" // {
-                    dependencies = [
-                      sources."array-find-index-1.0.2"
-                    ];
-                  })
-                  sources."signal-exit-3.0.2"
-                ];
-              })
-              sources."map-obj-1.0.1"
-              sources."minimist-1.2.0"
-              (sources."normalize-package-data-2.3.6" // {
-                dependencies = [
-                  sources."hosted-git-info-2.4.1"
-                  (sources."is-builtin-module-1.0.0" // {
-                    dependencies = [
-                      sources."builtin-modules-1.1.1"
-                    ];
-                  })
-                  sources."semver-5.3.0"
-                  (sources."validate-npm-package-license-3.0.1" // {
-                    dependencies = [
-                      (sources."spdx-correct-1.0.2" // {
-                        dependencies = [
-                          sources."spdx-license-ids-1.2.2"
-                        ];
-                      })
-                      sources."spdx-expression-parse-1.0.4"
-                    ];
-                  })
-                ];
-              })
-              sources."object-assign-4.1.1"
-              (sources."read-pkg-up-1.0.1" // {
-                dependencies = [
-                  (sources."find-up-1.1.2" // {
-                    dependencies = [
-                      sources."path-exists-2.1.0"
-                      (sources."pinkie-promise-2.0.1" // {
-                        dependencies = [
-                          sources."pinkie-2.0.4"
-                        ];
-                      })
-                    ];
-                  })
-                  (sources."read-pkg-1.1.0" // {
-                    dependencies = [
-                      (sources."load-json-file-1.1.0" // {
-                        dependencies = [
-                          sources."graceful-fs-4.1.11"
-                          (sources."parse-json-2.2.0" // {
-                            dependencies = [
-                              (sources."error-ex-1.3.1" // {
-                                dependencies = [
-                                  sources."is-arrayish-0.2.1"
-                                ];
-                              })
-                            ];
-                          })
-                          sources."pify-2.3.0"
-                          (sources."pinkie-promise-2.0.1" // {
-                            dependencies = [
-                              sources."pinkie-2.0.4"
-                            ];
-                          })
-                          (sources."strip-bom-2.0.0" // {
-                            dependencies = [
-                              sources."is-utf8-0.2.1"
-                            ];
-                          })
-                        ];
-                      })
-                      (sources."path-type-1.1.0" // {
-                        dependencies = [
-                          sources."graceful-fs-4.1.11"
-                          sources."pify-2.3.0"
-                          (sources."pinkie-promise-2.0.1" // {
-                            dependencies = [
-                              sources."pinkie-2.0.4"
-                            ];
-                          })
-                        ];
-                      })
-                    ];
-                  })
-                ];
-              })
-              (sources."redent-1.0.0" // {
-                dependencies = [
-                  (sources."indent-string-2.1.0" // {
-                    dependencies = [
-                      (sources."repeating-2.0.1" // {
-                        dependencies = [
-                          (sources."is-finite-1.0.2" // {
-                            dependencies = [
-                              sources."number-is-nan-1.0.1"
-                            ];
-                          })
-                        ];
-                      })
-                    ];
-                  })
-                  sources."strip-indent-1.0.1"
-                ];
-              })
-              sources."trim-newlines-1.0.0"
-            ];
-          })
-        ];
-      })
-      (sources."dialback-client-0.2.0" // {
-        dependencies = [
-          sources."underscore-1.5.2"
-          sources."step-0.0.6"
-        ];
-      })
-      sources."dompurify-0.8.5"
-      (sources."emailjs-1.0.8" // {
-        dependencies = [
-          sources."addressparser-0.3.2"
-          (sources."mimelib-0.2.14" // {
-            dependencies = [
-              (sources."encoding-0.1.12" // {
-                dependencies = [
-                  sources."iconv-lite-0.4.15"
-                ];
-              })
-              sources."addressparser-0.2.1"
-            ];
-          })
-          sources."moment-2.11.2"
-          sources."starttls-1.0.1"
-          sources."bufferjs-1.1.0"
-        ];
-      })
-      (sources."express-3.21.2" // {
-        dependencies = [
-          sources."basic-auth-1.0.4"
-          sources."content-disposition-0.5.0"
-          sources."content-type-1.0.2"
-          sources."commander-2.6.0"
-          sources."cookie-0.1.3"
-          sources."cookie-signature-1.0.6"
-          (sources."debug-2.2.0" // {
-            dependencies = [
-              sources."ms-0.7.1"
-            ];
-          })
-          sources."depd-1.0.1"
-          sources."escape-html-1.0.2"
-          sources."etag-1.7.0"
-          sources."fresh-0.3.0"
-          sources."merge-descriptors-1.0.0"
-          sources."methods-1.1.2"
-          sources."parseurl-1.3.1"
-          (sources."proxy-addr-1.0.10" // {
-            dependencies = [
-              sources."forwarded-0.1.0"
-              sources."ipaddr.js-1.0.5"
-            ];
-          })
-          sources."range-parser-1.0.3"
-          (sources."send-0.13.0" // {
-            dependencies = [
-              sources."destroy-1.0.3"
-              (sources."http-errors-1.3.1" // {
-                dependencies = [
-                  sources."inherits-2.0.3"
-                ];
-              })
-              sources."mime-1.3.4"
-              sources."ms-0.7.1"
-              (sources."on-finished-2.3.0" // {
-                dependencies = [
-                  sources."ee-first-1.1.1"
-                ];
-              })
-              sources."statuses-1.2.1"
-            ];
-          })
-          sources."utils-merge-1.0.0"
-          sources."vary-1.0.1"
-        ];
-      })
-      (sources."express-session-1.15.2" // {
-        dependencies = [
-          sources."cookie-0.3.1"
-          sources."cookie-signature-1.0.6"
-          sources."crc-3.4.4"
-          (sources."debug-2.6.3" // {
-            dependencies = [
-              sources."ms-0.7.2"
-            ];
-          })
-          sources."depd-1.1.0"
-          sources."on-headers-1.0.1"
-          sources."parseurl-1.3.1"
-          (sources."uid-safe-2.1.4" // {
-            dependencies = [
-              sources."random-bytes-1.0.0"
-            ];
-          })
-          sources."utils-merge-1.0.0"
-        ];
-      })
-      (sources."gm-1.23.0" // {
-        dependencies = [
-          sources."array-parallel-0.1.3"
-          sources."array-series-0.1.5"
-          (sources."cross-spawn-4.0.2" // {
-            dependencies = [
-              (sources."lru-cache-4.0.2" // {
-                dependencies = [
-                  sources."pseudomap-1.0.2"
-                  sources."yallist-2.1.2"
-                ];
-              })
-              (sources."which-1.2.14" // {
-                dependencies = [
-                  sources."isexe-2.0.0"
-                ];
-              })
-            ];
-          })
-          (sources."debug-2.2.0" // {
-            dependencies = [
-              sources."ms-0.7.1"
-            ];
-          })
-        ];
-      })
-      (sources."helmet-3.5.0" // {
-        dependencies = [
-          (sources."connect-3.6.0" // {
-            dependencies = [
-              (sources."debug-2.6.1" // {
-                dependencies = [
-                  sources."ms-0.7.2"
-                ];
-              })
-              (sources."finalhandler-1.0.0" // {
-                dependencies = [
-                  sources."encodeurl-1.0.1"
-                  sources."escape-html-1.0.3"
-                  (sources."on-finished-2.3.0" // {
-                    dependencies = [
-                      sources."ee-first-1.1.1"
-                    ];
-                  })
-                  sources."statuses-1.3.1"
-                  sources."unpipe-1.0.0"
-                ];
-              })
-              sources."parseurl-1.3.1"
-              sources."utils-merge-1.0.0"
-            ];
-          })
-          sources."dns-prefetch-control-0.1.0"
-          sources."dont-sniff-mimetype-1.0.0"
-          sources."frameguard-3.0.0"
-          (sources."helmet-csp-2.4.0" // {
-            dependencies = [
-              sources."camelize-1.0.0"
-              (sources."content-security-policy-builder-1.1.0" // {
-                dependencies = [
-                  sources."dashify-0.2.2"
-                ];
-              })
-              sources."dasherize-2.0.0"
-              sources."lodash.reduce-4.6.0"
-              sources."platform-1.3.3"
-            ];
-          })
-          sources."hide-powered-by-1.0.0"
-          sources."hpkp-2.0.0"
-          (sources."hsts-2.0.0" // {
-            dependencies = [
-              sources."core-util-is-1.0.2"
-            ];
-          })
-          sources."ienoopen-1.0.0"
-          sources."nocache-2.0.0"
-          sources."referrer-policy-1.1.0"
-          sources."x-xss-protection-1.0.0"
-        ];
-      })
-      (sources."jade-1.11.0" // {
-        dependencies = [
-          sources."character-parser-1.2.1"
-          (sources."clean-css-3.4.25" // {
-            dependencies = [
-              (sources."commander-2.8.1" // {
-                dependencies = [
-                  sources."graceful-readlink-1.0.1"
-                ];
-              })
-              (sources."source-map-0.4.4" // {
-                dependencies = [
-                  sources."amdefine-1.0.1"
-                ];
-              })
-            ];
-          })
-          sources."commander-2.6.0"
-          (sources."constantinople-3.0.2" // {
-            dependencies = [
-              sources."acorn-2.7.0"
-            ];
-          })
-          (sources."jstransformer-0.0.2" // {
-            dependencies = [
-              sources."is-promise-2.1.0"
-              (sources."promise-6.1.0" // {
-                dependencies = [
-                  sources."asap-1.0.0"
-                ];
-              })
-            ];
-          })
-          (sources."transformers-2.1.0" // {
-            dependencies = [
-              (sources."promise-2.0.0" // {
-                dependencies = [
-                  sources."is-promise-1.0.1"
-                ];
-              })
-              (sources."css-1.0.8" // {
-                dependencies = [
-                  sources."css-parse-1.0.4"
-                  sources."css-stringify-1.0.5"
-                ];
-              })
-              (sources."uglify-js-2.2.5" // {
-                dependencies = [
-                  (sources."source-map-0.1.43" // {
-                    dependencies = [
-                      sources."amdefine-1.0.1"
-                    ];
-                  })
-                  (sources."optimist-0.3.7" // {
-                    dependencies = [
-                      sources."wordwrap-0.0.3"
-                    ];
-                  })
-                ];
-              })
-            ];
-          })
-          (sources."uglify-js-2.8.20" // {
-            dependencies = [
-              sources."source-map-0.5.6"
-              (sources."yargs-3.10.0" // {
-                dependencies = [
-                  sources."camelcase-1.2.1"
-                  (sources."cliui-2.1.0" // {
-                    dependencies = [
-                      (sources."center-align-0.1.3" // {
-                        dependencies = [
-                          (sources."align-text-0.1.4" // {
-                            dependencies = [
-                              (sources."kind-of-3.1.0" // {
-                                dependencies = [
-                                  sources."is-buffer-1.1.5"
-                                ];
-                              })
-                              sources."longest-1.0.1"
-                              sources."repeat-string-1.6.1"
-                            ];
-                          })
-                          sources."lazy-cache-1.0.4"
-                        ];
-                      })
-                      (sources."right-align-0.1.3" // {
-                        dependencies = [
-                          (sources."align-text-0.1.4" // {
-                            dependencies = [
-                              (sources."kind-of-3.1.0" // {
-                                dependencies = [
-                                  sources."is-buffer-1.1.5"
-                                ];
-                              })
-                              sources."longest-1.0.1"
-                              sources."repeat-string-1.6.1"
-                            ];
-                          })
-                        ];
-                      })
-                      sources."wordwrap-0.0.2"
-                    ];
-                  })
-                  sources."decamelize-1.2.0"
-                  sources."window-size-0.1.0"
-                ];
-              })
-              sources."uglify-to-browserify-1.0.2"
-            ];
-          })
-          sources."void-elements-2.0.1"
-          (sources."with-4.0.3" // {
-            dependencies = [
-              sources."acorn-1.2.2"
-              (sources."acorn-globals-1.0.9" // {
-                dependencies = [
-                  sources."acorn-2.7.0"
-                ];
-              })
-            ];
-          })
-        ];
-      })
-      sources."jankyqueue-0.1.1"
-      (sources."jsdom-7.2.2" // {
-        dependencies = [
-          sources."abab-1.0.3"
-          sources."acorn-2.7.0"
-          sources."acorn-globals-1.0.9"
-          sources."cssom-0.3.2"
-          sources."cssstyle-0.2.37"
-          (sources."escodegen-1.8.1" // {
-            dependencies = [
-              sources."estraverse-1.9.3"
-              sources."esutils-2.0.2"
-              sources."esprima-2.7.3"
-              (sources."optionator-0.8.2" // {
-                dependencies = [
-                  sources."prelude-ls-1.1.2"
-                  sources."deep-is-0.1.3"
-                  sources."wordwrap-1.0.0"
-                  sources."type-check-0.3.2"
-                  sources."levn-0.3.0"
-                  sources."fast-levenshtein-2.0.6"
-                ];
-              })
-              (sources."source-map-0.2.0" // {
-                dependencies = [
-                  sources."amdefine-1.0.1"
-                ];
-              })
-            ];
-          })
-          sources."nwmatcher-1.3.9"
-          sources."parse5-1.5.1"
-          (sources."request-2.81.0" // {
-            dependencies = [
-              sources."aws-sign2-0.6.0"
-              sources."aws4-1.6.0"
-              sources."caseless-0.12.0"
-              (sources."combined-stream-1.0.5" // {
-                dependencies = [
-                  sources."delayed-stream-1.0.0"
-                ];
-              })
-              sources."extend-3.0.0"
-              sources."forever-agent-0.6.1"
-              (sources."form-data-2.1.2" // {
-                dependencies = [
-                  sources."asynckit-0.4.0"
-                ];
-              })
-              (sources."har-validator-4.2.1" // {
-                dependencies = [
-                  (sources."ajv-4.11.5" // {
-                    dependencies = [
-                      sources."co-4.6.0"
-                      (sources."json-stable-stringify-1.0.1" // {
-                        dependencies = [
-                          sources."jsonify-0.0.0"
-                        ];
-                      })
-                    ];
-                  })
-                  sources."har-schema-1.0.5"
-                ];
-              })
-              (sources."hawk-3.1.3" // {
-                dependencies = [
-                  sources."hoek-2.16.3"
-                  sources."boom-2.10.1"
-                  sources."cryptiles-2.0.5"
-                  sources."sntp-1.0.9"
-                ];
-              })
-              (sources."http-signature-1.1.1" // {
-                dependencies = [
-                  sources."assert-plus-0.2.0"
-                  (sources."jsprim-1.4.0" // {
-                    dependencies = [
-                      sources."assert-plus-1.0.0"
-                      sources."extsprintf-1.0.2"
-                      sources."json-schema-0.2.3"
-                      sources."verror-1.3.6"
-                    ];
-                  })
-                  (sources."sshpk-1.11.0" // {
-                    dependencies = [
-                      sources."asn1-0.2.3"
-                      sources."assert-plus-1.0.0"
-                      sources."dashdash-1.14.1"
-                      sources."getpass-0.1.6"
-                      sources."jsbn-0.1.1"
-                      sources."tweetnacl-0.14.5"
-                      sources."jodid25519-1.0.2"
-                      sources."ecc-jsbn-0.1.1"
-                      sources."bcrypt-pbkdf-1.0.1"
-                    ];
-                  })
-                ];
-              })
-              sources."is-typedarray-1.0.0"
-              sources."isstream-0.1.2"
-              sources."json-stringify-safe-5.0.1"
-              (sources."mime-types-2.1.15" // {
-                dependencies = [
-                  sources."mime-db-1.27.0"
-                ];
-              })
-              sources."oauth-sign-0.8.2"
-              sources."performance-now-0.2.0"
-              sources."qs-6.4.0"
-              sources."safe-buffer-5.0.1"
-              sources."stringstream-0.0.5"
-              sources."tunnel-agent-0.6.0"
-            ];
-          })
-          sources."sax-1.2.2"
-          sources."symbol-tree-3.2.2"
-          (sources."tough-cookie-2.3.2" // {
-            dependencies = [
-              sources."punycode-1.4.1"
-            ];
-          })
-          sources."webidl-conversions-2.0.1"
-          (sources."whatwg-url-compat-0.6.5" // {
-            dependencies = [
-              sources."tr46-0.0.3"
-            ];
-          })
-          sources."xml-name-validator-2.0.1"
-        ];
-      })
-      (sources."method-override-2.3.8" // {
-        dependencies = [
-          (sources."debug-2.6.3" // {
-            dependencies = [
-              sources."ms-0.7.2"
-            ];
-          })
-          sources."methods-1.1.2"
-          sources."parseurl-1.3.1"
-          sources."vary-1.1.1"
-        ];
-      })
-      (sources."mkdirp-0.5.1" // {
-        dependencies = [
-          sources."minimist-0.0.8"
-        ];
-      })
-      sources."oauth-evanp-0.9.10-evanp.2"
-      sources."octal-1.0.0"
-      (sources."optimist-0.6.1" // {
-        dependencies = [
-          sources."wordwrap-0.0.3"
-          sources."minimist-0.0.10"
-        ];
-      })
-      (sources."rimraf-2.6.1" // {
-        dependencies = [
-          (sources."glob-7.1.1" // {
-            dependencies = [
-              sources."fs.realpath-1.0.0"
-              (sources."inflight-1.0.6" // {
-                dependencies = [
-                  sources."wrappy-1.0.2"
-                ];
-              })
-              sources."inherits-2.0.3"
-              (sources."minimatch-3.0.3" // {
-                dependencies = [
-                  (sources."brace-expansion-1.1.6" // {
-                    dependencies = [
-                      sources."balanced-match-0.4.2"
-                      sources."concat-map-0.0.1"
-                    ];
-                  })
-                ];
-              })
-              (sources."once-1.4.0" // {
-                dependencies = [
-                  sources."wrappy-1.0.2"
-                ];
-              })
-              sources."path-is-absolute-1.0.1"
-            ];
-          })
-        ];
-      })
-      (sources."sanitize-html-1.14.1" // {
-        dependencies = [
-          (sources."htmlparser2-3.9.2" // {
-            dependencies = [
-              sources."domelementtype-1.3.0"
-              sources."domhandler-2.3.0"
-              (sources."domutils-1.5.1" // {
-                dependencies = [
-                  (sources."dom-serializer-0.1.0" // {
-                    dependencies = [
-                      sources."domelementtype-1.1.3"
-                    ];
-                  })
-                ];
-              })
-              sources."entities-1.1.1"
-              sources."inherits-2.0.3"
-              (sources."readable-stream-2.2.6" // {
-                dependencies = [
-                  sources."buffer-shims-1.0.0"
-                  sources."core-util-is-1.0.2"
-                  sources."isarray-1.0.0"
-                  sources."process-nextick-args-1.0.7"
-                  sources."string_decoder-0.10.31"
-                  sources."util-deprecate-1.0.2"
-                ];
-              })
-            ];
-          })
-          sources."regexp-quote-0.0.0"
-          sources."xtend-4.0.1"
-        ];
-      })
-      sources."schlock-0.2.1"
-      (sources."send-0.13.2" // {
-        dependencies = [
-          sources."debug-2.2.0"
-          sources."depd-1.1.0"
-          sources."destroy-1.0.4"
-          sources."escape-html-1.0.3"
-          sources."etag-1.7.0"
-          sources."fresh-0.3.0"
-          (sources."http-errors-1.3.1" // {
-            dependencies = [
-              sources."inherits-2.0.3"
-            ];
-          })
-          sources."mime-1.3.4"
-          sources."ms-0.7.1"
-          (sources."on-finished-2.3.0" // {
-            dependencies = [
-              sources."ee-first-1.1.1"
-            ];
-          })
-          sources."range-parser-1.0.3"
-          sources."statuses-1.2.1"
-        ];
-      })
-      (sources."showdown-1.6.4" // {
-        dependencies = [
-          (sources."yargs-6.6.0" // {
-            dependencies = [
-              sources."camelcase-3.0.0"
-              (sources."cliui-3.2.0" // {
-                dependencies = [
-                  (sources."strip-ansi-3.0.1" // {
-                    dependencies = [
-                      sources."ansi-regex-2.1.1"
-                    ];
-                  })
-                  sources."wrap-ansi-2.1.0"
-                ];
-              })
-              sources."decamelize-1.2.0"
-              sources."get-caller-file-1.0.2"
-              (sources."os-locale-1.4.0" // {
-                dependencies = [
-                  (sources."lcid-1.0.0" // {
-                    dependencies = [
-                      sources."invert-kv-1.0.0"
-                    ];
-                  })
-                ];
-              })
-              (sources."read-pkg-up-1.0.1" // {
-                dependencies = [
-                  (sources."find-up-1.1.2" // {
-                    dependencies = [
-                      sources."path-exists-2.1.0"
-                      (sources."pinkie-promise-2.0.1" // {
-                        dependencies = [
-                          sources."pinkie-2.0.4"
-                        ];
-                      })
-                    ];
-                  })
-                  (sources."read-pkg-1.1.0" // {
-                    dependencies = [
-                      (sources."load-json-file-1.1.0" // {
-                        dependencies = [
-                          sources."graceful-fs-4.1.11"
-                          (sources."parse-json-2.2.0" // {
-                            dependencies = [
-                              (sources."error-ex-1.3.1" // {
-                                dependencies = [
-                                  sources."is-arrayish-0.2.1"
-                                ];
-                              })
-                            ];
-                          })
-                          sources."pify-2.3.0"
-                          (sources."pinkie-promise-2.0.1" // {
-                            dependencies = [
-                              sources."pinkie-2.0.4"
-                            ];
-                          })
-                          (sources."strip-bom-2.0.0" // {
-                            dependencies = [
-                              sources."is-utf8-0.2.1"
-                            ];
-                          })
-                        ];
-                      })
-                      (sources."normalize-package-data-2.3.6" // {
-                        dependencies = [
-                          sources."hosted-git-info-2.4.1"
-                          (sources."is-builtin-module-1.0.0" // {
-                            dependencies = [
-                              sources."builtin-modules-1.1.1"
-                            ];
-                          })
-                          sources."semver-5.3.0"
-                          (sources."validate-npm-package-license-3.0.1" // {
-                            dependencies = [
-                              (sources."spdx-correct-1.0.2" // {
-                                dependencies = [
-                                  sources."spdx-license-ids-1.2.2"
-                                ];
-                              })
-                              sources."spdx-expression-parse-1.0.4"
-                            ];
-                          })
-                        ];
-                      })
-                      (sources."path-type-1.1.0" // {
-                        dependencies = [
-                          sources."graceful-fs-4.1.11"
-                          sources."pify-2.3.0"
-                          (sources."pinkie-promise-2.0.1" // {
-                            dependencies = [
-                              sources."pinkie-2.0.4"
-                            ];
-                          })
-                        ];
-                      })
-                    ];
-                  })
-                ];
-              })
-              sources."require-directory-2.1.1"
-              sources."require-main-filename-1.0.1"
-              sources."set-blocking-2.0.0"
-              (sources."string-width-1.0.2" // {
-                dependencies = [
-                  sources."code-point-at-1.1.0"
-                  (sources."is-fullwidth-code-point-1.0.0" // {
-                    dependencies = [
-                      sources."number-is-nan-1.0.1"
-                    ];
-                  })
-                  (sources."strip-ansi-3.0.1" // {
-                    dependencies = [
-                      sources."ansi-regex-2.1.1"
-                    ];
-                  })
-                ];
-              })
-              sources."which-module-1.0.0"
-              sources."y18n-3.2.1"
-              sources."yargs-parser-4.2.1"
-            ];
-          })
-        ];
-      })
-      (sources."sockjs-0.3.18" // {
-        dependencies = [
-          (sources."faye-websocket-0.10.0" // {
-            dependencies = [
-              (sources."websocket-driver-0.6.5" // {
-                dependencies = [
-                  sources."websocket-extensions-0.1.1"
-                ];
-              })
-            ];
-          })
-          sources."uuid-2.0.3"
-        ];
-      })
-      (sources."ssl-config-0.0.9" // {
-        dependencies = [
-          (sources."assert-1.4.1" // {
-            dependencies = [
-              (sources."util-0.10.3" // {
-                dependencies = [
-                  sources."inherits-2.0.1"
-                ];
-              })
-            ];
-          })
-          sources."es6-shim-0.27.1"
-          sources."minimum-tls-version-0.0.1"
-        ];
-      })
-      sources."step-1.0.0"
-      sources."ua-parser-js-0.7.12"
-      sources."underscore-1.8.3"
-      (sources."underscore-contrib-0.3.0" // {
-        dependencies = [
-          sources."underscore-1.6.0"
-        ];
-      })
-      sources."uuid-3.0.1"
-      sources."validator-4.4.0"
-      (sources."webfinger-0.4.2" // {
-        dependencies = [
-          sources."step-0.0.6"
-          (sources."xml2js-0.1.14" // {
-            dependencies = [
-              sources."sax-1.2.2"
-            ];
-          })
-        ];
-      })
-      (sources."databank-mongodb-1.0.0" // {
-        dependencies = [
-          (sources."databank-1.0.1" // {
-            dependencies = [
-              sources."setimmediate-1.0.5"
-            ];
-          })
-          (sources."debug-2.6.3" // {
-            dependencies = [
-              sources."ms-0.7.2"
-            ];
-          })
-          (sources."mongodb-2.2.25" // {
-            dependencies = [
-              sources."es6-promise-3.2.1"
-              (sources."mongodb-core-2.1.9" // {
-                dependencies = [
-                  sources."bson-1.0.4"
-                  (sources."require_optional-1.0.0" // {
-                    dependencies = [
-                      sources."semver-5.3.0"
-                      sources."resolve-from-2.0.0"
-                    ];
-                  })
-                ];
-              })
-              (sources."readable-stream-2.1.5" // {
-                dependencies = [
-                  sources."buffer-shims-1.0.0"
-                  sources."core-util-is-1.0.2"
-                  sources."inherits-2.0.3"
-                  sources."isarray-1.0.0"
-                  sources."process-nextick-args-1.0.7"
-                  sources."string_decoder-0.10.31"
-                  sources."util-deprecate-1.0.2"
-                ];
-              })
-            ];
-          })
-        ];
-      })
-      (sources."databank-redis-0.19.6" // {
-        dependencies = [
-          sources."async-0.9.2"
-          sources."redis-0.10.3"
-          sources."underscore-1.6.0"
-        ];
-      })
-      (sources."databank-lrucache-0.1.3" // {
-        dependencies = [
-          sources."databank-1.0.1"
-          (sources."lru-cache-4.0.2" // {
-            dependencies = [
-              sources."pseudomap-1.0.2"
-              sources."yallist-2.1.2"
-            ];
-          })
-          sources."setimmediate-1.0.5"
-        ];
-      })
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      homepage = http://pump.io/;
-      license = "Apache-2.0";
-    };
-    production = true;
-  };
-in
-{
-  tarball = nodeEnv.buildNodeSourceDist args;
-  package = nodeEnv.buildNodePackage args;
-  shell = nodeEnv.buildNodeShell args;
-}
\ No newline at end of file
diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix
index 93d0f4cc9805f..a1878dc01367f 100644
--- a/pkgs/stdenv/generic/check-meta.nix
+++ b/pkgs/stdenv/generic/check-meta.nix
@@ -144,7 +144,7 @@ let
     homepage = either (listOf str) str;
     downloadPage = str;
     license = either (listOf lib.types.attrs) (either lib.types.attrs str);
-    maintainers = listOf str;
+    maintainers = listOf (attrsOf str);
     priority = int;
     platforms = listOf str;
     hydraPlatforms = listOf str;
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix
index 8033d47d5db51..5522bc5dea25a 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix
@@ -88,7 +88,7 @@ in with pkgs; rec {
     '' else throw "unsupported libc for bootstrap tools")
     + ''
         # Copy coreutils, bash, etc.
-        cp ${coreutilsMinimal.out}/bin/* $out/bin
+        cp -d ${coreutilsMinimal.out}/bin/* $out/bin
         (cd $out/bin && rm vdir dir sha*sum pinky factor pathchk runcon shuf who whoami shred users)
 
         cp ${bash.out}/bin/bash $out/bin
diff --git a/pkgs/tools/X11/primus/lib.nix b/pkgs/tools/X11/primus/lib.nix
index 6aaaf83d97549..dcd50ee9158ca 100644
--- a/pkgs/tools/X11/primus/lib.nix
+++ b/pkgs/tools/X11/primus/lib.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchFromGitHub, fetchpatch
-, libX11, mesa_noglu
+, libX11, libGL
 , nvidia_x11 ? null
 , libglvnd
 }:
 
 let
   aPackage =
-    if nvidia_x11 == null then mesa_noglu
+    if nvidia_x11 == null then libGL
     else if nvidia_x11.useGLVND then libglvnd
     else nvidia_x11;
 
@@ -28,12 +28,12 @@ in stdenv.mkDerivation {
     })
   ];
 
-  buildInputs = [ libX11 mesa_noglu ];
+  buildInputs = [ libX11 libGL ];
 
   makeFlags = [ "LIBDIR=$(out)/lib"
                 "PRIMUS_libGLa=${aPackage}/lib/libGL.so"
-                "PRIMUS_libGLd=${mesa_noglu}/lib/libGL.so"
-                "PRIMUS_LOAD_GLOBAL=${mesa_noglu}/lib/libglapi.so"
+                "PRIMUS_libGLd=${libGL}/lib/libGL.so"
+                "PRIMUS_LOAD_GLOBAL=${libGL}/lib/libglapi.so"
               ];
 
   installPhase = ''
@@ -45,7 +45,7 @@ in stdenv.mkDerivation {
   meta = with stdenv.lib; {
     description = "Low-overhead client-side GPU offloading";
     homepage = https://github.com/amonakov/primus;
-    platforms = platforms.linux;
+    platforms = [ "i686-linux" "x86_64-linux" ];
     license = licenses.bsd2;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/tools/X11/virtualgl/lib.nix b/pkgs/tools/X11/virtualgl/lib.nix
index ece08fd5cd483..c552011f38446 100644
--- a/pkgs/tools/X11/virtualgl/lib.nix
+++ b/pkgs/tools/X11/virtualgl/lib.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, mesa, libX11, libXv, libjpeg_turbo, fltk }:
+{ stdenv, fetchurl, cmake, libGLU_combined, libX11, libXv, libjpeg_turbo, fltk }:
 
 stdenv.mkDerivation rec {
   name = "virtualgl-lib-${version}";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ libjpeg_turbo mesa fltk libX11 libXv ];
+  buildInputs = [ libjpeg_turbo libGLU_combined fltk libX11 libXv ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/tools/admin/gixy/default.nix b/pkgs/tools/admin/gixy/default.nix
index 77451a6bc9e36..029c09afdad4e 100644
--- a/pkgs/tools/admin/gixy/default.nix
+++ b/pkgs/tools/admin/gixy/default.nix
@@ -1,17 +1,18 @@
 { lib, fetchFromGitHub, python }:
 
 python.pkgs.buildPythonApplication rec {
-  name = "gixy-${version}";
-  version = "0.1.8";
+  pname = "gixy";
+  version = "0.1.9";
 
   # package is only compatible with python 2.7 and 3.5+
   disabled = with python.pkgs; !(pythonAtLeast "3.5" || isPy27);
 
+  # fetching from GitHub because the PyPi source is missing the tests
   src = fetchFromGitHub {
     owner = "yandex";
     repo = "gixy";
     rev = "v${version}";
-    sha256 = "0dg8j8pqlzdvmyfkphrizfqzggr64npb9mnm1dcwm6c3z6k2b0ii";
+    sha256 = "11aps8a8xg1nlw36jgrmnaf38imfz2rj67wnlalrrsqb616xipcv";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index d6425ede4f4e2..b109a835635bd 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -17,25 +17,20 @@ let
 
   baseUrl = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads";
   sources = name: system: {
-    i686-linux = {
-      url = "${baseUrl}/${name}-linux-x86.tar.gz";
-      sha256 = "0fq8zw1a5c0mnmw6f7j9j80y6kq0f0v2wn1d7b8mfq8ih5x53a85";
-    };
-
     x86_64-darwin = {
       url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
-      sha256 = "1h4m70fk3hri4lgm9lh2pm0v196nc2r3hpf42h3xx5k7sqklsns2";
+      sha256 = "0c4jj580f7z6phiw4zhd32dlf4inkrxy3cig6ng66fi4zi6vnpc9";
     };
 
     x86_64-linux = {
       url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "1ynvllxzjr3y4qflw06njj7qqcf7539mbp06rs03i8hargsgbamx";
+      sha256 = "0rblb0akwdzr5i8al0dcz482xmx1xdnjnzgqywjvwd8fzdyzq7bp";
     };
   }.${system};
 
 in stdenv.mkDerivation rec {
   name = "google-cloud-sdk-${version}";
-  version = "184.0.0";
+  version = "190.0.1";
 
   src = fetchurl (sources name stdenv.system);
 
@@ -64,7 +59,7 @@ in stdenv.mkDerivation rec {
         mkdir -p $out/bin
         ln -s $programPath $binaryPath
     done
-    
+
     # disable component updater and update check
     substituteInPlace $out/google-cloud-sdk/lib/googlecloudsdk/core/config.json \
       --replace "\"disable_updater\": false" "\"disable_updater\": true"
@@ -88,6 +83,6 @@ in stdenv.mkDerivation rec {
     license = licenses.free;
     homepage = "https://cloud.google.com/sdk/";
     maintainers = with maintainers; [ stephenmw zimbatm ];
-    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/pkgs/tools/admin/salt/pepper/default.nix b/pkgs/tools/admin/salt/pepper/default.nix
index ff9590c79a51f..24e59a3555326 100644
--- a/pkgs/tools/admin/salt/pepper/default.nix
+++ b/pkgs/tools/admin/salt/pepper/default.nix
@@ -5,10 +5,10 @@
 
 python2Packages.buildPythonApplication rec {
   name = "salt-pepper-${version}";
-  version = "0.5.0";
+  version = "0.5.5";
   src = fetchurl {
     url = "https://github.com/saltstack/pepper/releases/download/${version}/${name}.tar.gz";
-    sha256 = "0gf4v5y1kp16i1na4c9qw7cgrpsh21p8ldv9r6b8gdwcxzadxbck";
+    sha256 = "1wj1k64ly6af6qsmiizlx32jxh23a37smd9wb57l5zl0x8sfqq1n";
   };
 
   doCheck = false; # no tests available
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index e4b206f54488b..3818f361cb531 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -3,7 +3,7 @@
 , libjpeg_turbo, pixman, fltk
 , fontDirectories
 , cmake, gettext, libtool
-, glproto, mesa_glu
+, glproto, libGLU
 , gnutls, pam, nettle
 , xterm, openssh }:
 
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
     fontsproto videoproto scrnsaverproto resourceproto presentproto
     utilmacros libXtst libXext libX11 libXext libICE libXi libSM libXft
     libxkbfile libXfont2 libpciaccess xineramaproto
-    glproto mesa_glu
+    glproto libGLU
   ] ++ xorgserver.buildInputs;
 
   nativeBuildInputs = with xorg; [ cmake zlib gettext libtool utilmacros fontutil ]
diff --git a/pkgs/tools/backup/bdsync/default.nix b/pkgs/tools/backup/bdsync/default.nix
index 8ef846a8dca37..2fd67765aaf39 100644
--- a/pkgs/tools/backup/bdsync/default.nix
+++ b/pkgs/tools/backup/bdsync/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     description = "Fast block device synchronizing tool";
     homepage = https://github.com/TargetHolding/bdsync;
     license = licenses.gpl2;
-    platforms = platforms.all;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ jluttine ];
   };
 
diff --git a/pkgs/tools/backup/burp/default.nix b/pkgs/tools/backup/burp/default.nix
index 5540822c99b5b..24065f7308b7e 100644
--- a/pkgs/tools/backup/burp/default.nix
+++ b/pkgs/tools/backup/burp/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "burp-${version}";
-  version = "2.1.28";
+  version = "2.1.30";
 
   src = fetchFromGitHub {
     owner = "grke";
     repo = "burp";
     rev = version;
-    sha256 = "1i8j15pmnn9cn6cd4dnp28qbisq8cl9l4y3chsmil4xqljr9fi5x";
+    sha256 = "0l9zcw50zr081ddspl6vnh6d6cwyzgqzg7n5pq92dwbmd64qpz9p";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/backup/restic/default.nix b/pkgs/tools/backup/restic/default.nix
index 931fcea4a44e1..158d7f1d2cf14 100644
--- a/pkgs/tools/backup/restic/default.nix
+++ b/pkgs/tools/backup/restic/default.nix
@@ -32,7 +32,7 @@ buildGoPackage rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = https://restic.github.io;
+    homepage = https://restic.net;
     description = "A backup program that is fast, efficient and secure";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.bsd2;
diff --git a/pkgs/tools/backup/rsbep/default.nix b/pkgs/tools/backup/rsbep/default.nix
new file mode 100644
index 0000000000000..96bbea4791e8f
--- /dev/null
+++ b/pkgs/tools/backup/rsbep/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, coreutils, gnused, gawk, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "rsbep-${version}";
+  version = "0.1.0";
+
+  src = fetchurl {
+    url = "https://www.thanassis.space/rsbep-0.1.0-ttsiodras.tar.bz2";
+    sha256 = "1zji34kc9srxp0h1s1m7k60mvgsir1wrx1n3wc990jszfplr32zc";
+  };
+
+  postFixup = ''
+    cd $out/bin
+
+    # Move internal tool 'rsbep_chopper' to libexec
+    libexecDir=$out/libexec/rsbep
+    mkdir -p $libexecDir
+    mv rsbep_chopper $libexecDir
+
+    # Fix store dependencies in scripts
+    path="export PATH=$out/bin:$libexecDir:${lib.makeBinPath [ coreutils gnused gawk ]}"
+    sed -i "2i$path" freeze.sh
+    sed -i "2i$path" melt.sh
+
+    substituteInPlace freeze.sh --replace /bin/ls ls
+
+    # Remove unneded binary
+    rm poorZFS.py
+  '';
+
+  meta = with lib; {
+    description = "Create resilient backups with Reed-Solomon error correction and byte-spreading";
+    homepage = https://www.thanassis.space/rsbep.html;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.earvstedt ];
+  };
+}
diff --git a/pkgs/tools/cd-dvd/bchunk/default.nix b/pkgs/tools/cd-dvd/bchunk/default.nix
index a4298bf2920f2..6828ef7d61d34 100644
--- a/pkgs/tools/cd-dvd/bchunk/default.nix
+++ b/pkgs/tools/cd-dvd/bchunk/default.nix
@@ -9,9 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "12dxx98kbpc5z4dgni25280088bhlsb677rp832r82zzc1drpng7";
   };
 
+  makeFlags = stdenv.lib.optionals stdenv.cc.isClang [ "CC=cc" "LD=cc" ];
+
   installPhase = ''
     install -Dt $out/bin bchunk
-    install -Dt $out/share/man/man1 bchunk.1    
+    install -Dt $out/share/man/man1 bchunk.1
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/compression/brotli/default.nix b/pkgs/tools/compression/brotli/default.nix
index 45af74b0b3e55..707b8f0d799fb 100644
--- a/pkgs/tools/compression/brotli/default.nix
+++ b/pkgs/tools/compression/brotli/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "brotli-${version}";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "brotli";
     rev = "v" + version;
-    sha256 = "1rpg16zpr7h6vs7qr6npmqhyw4w5nkp24iq70s4dryn77m0r4mcv";
+    sha256 = "1hlkqgkm2gv6q83dswg6b19hpw8j33y6iw924j8r647pd4qg1xs7";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/filesystems/grive/default.nix b/pkgs/tools/filesystems/grive/default.nix
deleted file mode 100644
index 9f4472c27f19d..0000000000000
--- a/pkgs/tools/filesystems/grive/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchgit, cmake, libgcrypt, json_c, curl, expat, boost, libiberty }:
-
-stdenv.mkDerivation rec {
-  version = "0.3.0";
-  name = "grive-${version}";
-
-  src = fetchgit {
-    url = "https://github.com/Grive/grive.git";
-    rev = "51e42914f3666ee6e0bc16a4c78f60b117265c24";
-    sha256 = "11cqfcjl128nfg1rjvpvr9x1x2ch3kyliw4vi14n51zqp82f9ysb";
-  };
-
-  buildInputs = [cmake libgcrypt json_c curl expat stdenv libiberty boost];
-
-  # work around new libiberty headers, see
-  # http://stackoverflow.com/questions/11748035/libiberty-bfd-h-wants-config-h-now
-  prePatch = ''
-    sed -i '1i#define PACKAGE "grive"\n#define PACKAGE_VERSION "${version}"' \
-      libgrive/src/bfd/SymbolInfo.cc
-  '';
-
-  meta = {
-    description = "An open source (experimental) Linux client for Google Drive";
-    homepage = https://github.com/Grive/grive;
-    license = stdenv.lib.licenses.gpl2;
-
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/tools/filesystems/squashfuse/default.nix b/pkgs/tools/filesystems/squashfuse/default.nix
new file mode 100644
index 0000000000000..341b025b07915
--- /dev/null
+++ b/pkgs/tools/filesystems/squashfuse/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, fetchpatch, automake, autoreconfHook, libtool, fuse,
+  pkgconfig, pcre, lz4, xz, zlib, lzo, zstd }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  pname = "squashfuse";
+  version = "unstable-2018-02-20";
+  name = "${pname}-${version}";
+
+  meta = {
+    description = "FUSE filesystem to mount squashfs archives";
+    homepage = https://github.com/vasi/squashfuse;
+    maintainers = [ maintainers.genesis ];
+    platforms = platforms.linux;
+    license = "BSD-2-Clause";
+  };
+
+  # platforms.darwin should be supported : see PLATFORMS file in src.
+  # we could use a nix fuseProvider, and let the derivation choose the OS
+  # specific implementation.
+
+  src = fetchFromGitHub {
+    owner = "vasi";
+    repo  = "${pname}";
+    rev = "3f4a93f373796e88f7eee3a0c005ef60cb395d30";
+    sha256 = "07jv4qjjz9ky3mw3p5prgs19g1bna9dcd7jjdz8083s1wyipdgcq";
+  };
+
+  nativeBuildInputs = [ autoreconfHook libtool pkgconfig ];
+  buildInputs = [ lz4 xz zlib lzo zstd fuse ];
+}
diff --git a/pkgs/tools/filesystems/tmsu/default.nix b/pkgs/tools/filesystems/tmsu/default.nix
index 89e5c0f35f055..3596534650592 100644
--- a/pkgs/tools/filesystems/tmsu/default.nix
+++ b/pkgs/tools/filesystems/tmsu/default.nix
@@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
     description = "A tool for tagging your files using a virtual filesystem";
     maintainers = with maintainers; [ pSub ];
     license     = licenses.gpl3;
-    platforms   = platforms.all;
+    platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index 6c6a93dc73ac8..04863d6ce6256 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -1,6 +1,6 @@
 {stdenv, fetchurl
   , freeglut, ghostscriptX, imagemagick, fftw 
-  , boehmgc, mesa_glu, mesa_noglu, ncurses, readline, gsl, libsigsegv
+  , boehmgc, libGLU, libGL, mesa_noglu, ncurses, readline, gsl, libsigsegv
   , python, zlib, perl, texLive, texinfo, xz
 , darwin
 }:
@@ -20,7 +20,7 @@ let
    boehmgc ncurses readline gsl libsigsegv
    python zlib perl texLive texinfo xz ]
    ++ stdenv.lib.optionals stdenv.isLinux
-     [ freeglut mesa_glu mesa_noglu mesa_noglu.osmesa ]
+     [ freeglut libGLU libGL mesa_noglu.osmesa ]
    ++ stdenv.lib.optionals stdenv.isDarwin
      (with darwin.apple_sdk.frameworks; [ OpenGL GLUT Cocoa ])
    ;
diff --git a/pkgs/tools/graphics/enblend-enfuse/default.nix b/pkgs/tools/graphics/enblend-enfuse/default.nix
index d0f78f80c3e9d..2ffe4eb7f809c 100644
--- a/pkgs/tools/graphics/enblend-enfuse/default.nix
+++ b/pkgs/tools/graphics/enblend-enfuse/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl
-, boost, freeglut, glew, gsl, lcms2, libpng, libtiff, mesa, vigra
+, boost, freeglut, glew, gsl, lcms2, libpng, libtiff, libGLU_combined, vigra
 , help2man, pkgconfig, perl, texlive }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0j5x011ilalb47ssah50ag0a4phgh1b0wdgxdbbp1gcyjcjf60w7";
   };
 
-  buildInputs = [ boost freeglut glew gsl lcms2 libpng libtiff mesa vigra ];
+  buildInputs = [ boost freeglut glew gsl lcms2 libpng libtiff libGLU_combined vigra ];
 
   nativeBuildInputs = [ help2man perl pkgconfig texlive.combined.scheme-small ];
 
diff --git a/pkgs/tools/graphics/gifsicle/default.nix b/pkgs/tools/graphics/gifsicle/default.nix
index 7c5f9eaf5de6e..05ce6b6f7c9c7 100644
--- a/pkgs/tools/graphics/gifsicle/default.nix
+++ b/pkgs/tools/graphics/gifsicle/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "gifsicle-${version}";
-  version = "1.90";
+  version = "1.91";
 
   src = fetchurl {
     url = "http://www.lcdf.org/gifsicle/${name}.tar.gz";
-    sha256 = "0kc35g99fygzjj7qjcy87rdb8mbgmacr2mga9ihgln1dfnbb0wrd";
+    sha256 = "00586z1yz86qcblgmf16yly39n4lkjrscl52hvfxqk14m81fckha";
   };
 
   buildInputs = optional gifview [ xproto libXt libX11 ];
diff --git a/pkgs/tools/graphics/glee/default.nix b/pkgs/tools/graphics/glee/default.nix
index bdfecb9de735c..52f5a09972740 100644
--- a/pkgs/tools/graphics/glee/default.nix
+++ b/pkgs/tools/graphics/glee/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchgit, cmake, mesa, xorg }:
+{stdenv, fetchgit, cmake, libGLU_combined, xorg }:
 
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ mesa xorg.libX11 ];
+  buildInputs = [ libGLU_combined xorg.libX11 ];
 
   configureScript = ''
     cmake
diff --git a/pkgs/tools/graphics/glmark2/default.nix b/pkgs/tools/graphics/glmark2/default.nix
index 0d31f8f1a6f7a..8a75fea33ce8e 100644
--- a/pkgs/tools/graphics/glmark2/default.nix
+++ b/pkgs/tools/graphics/glmark2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, libjpeg, libpng, xorg, libX11, mesa, libdrm,
+{ stdenv, fetchFromGitHub, pkgconfig, libjpeg, libpng, xorg, libX11, libGLU_combined, libdrm,
   python27, wayland, libudev }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
-    libjpeg libpng xorg.libxcb libX11 mesa libdrm python27 wayland libudev
+    libjpeg libpng xorg.libxcb libX11 libGLU_combined libdrm python27 wayland libudev
   ];
 
   buildPhase = ''
diff --git a/pkgs/tools/graphics/glxinfo/default.nix b/pkgs/tools/graphics/glxinfo/default.nix
index 03be1e9093073..b4b881e6c500f 100644
--- a/pkgs/tools/graphics/glxinfo/default.nix
+++ b/pkgs/tools/graphics/glxinfo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, xlibsWrapper, mesa_noglu }:
+{ stdenv, fetchurl, xlibsWrapper, libGL }:
 
 let version = "8.3.0"; in
 
@@ -6,11 +6,11 @@ stdenv.mkDerivation {
   name = "glxinfo-${version}";
 
   src = fetchurl {
-    url = "ftp://ftp.freedesktop.org/pub/mesa/demos/${version}/mesa-demos-${version}.tar.bz2";
+    url = "ftp://ftp.freedesktop.org/pub/libGLU_combined/demos/${version}/mesa-demos-${version}.tar.bz2";
     sha256 = "1vqb7s5m3fcg2csbiz45mha1pys2xx6rhw94fcyvapqdpm5iawy1";
   };
 
-  buildInputs = [ xlibsWrapper mesa_noglu ];
+  buildInputs = [ xlibsWrapper libGL ];
 
   configurePhase = "true";
 
diff --git a/pkgs/tools/graphics/logstalgia/default.nix b/pkgs/tools/graphics/logstalgia/default.nix
index 5887c82af130b..0fa991638457c 100644
--- a/pkgs/tools/graphics/logstalgia/default.nix
+++ b/pkgs/tools/graphics/logstalgia/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, SDL2, ftgl, pkgconfig, libpng, libjpeg, pcre, SDL2_image, glew
-, mesa, boost, glm, freetype }:
+, libGLU_combined, boost, glm, freetype }:
 
 stdenv.mkDerivation rec {
   name = "logstalgia-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ glew SDL2 ftgl libpng libjpeg pcre SDL2_image mesa boost
+  buildInputs = [ glew SDL2 ftgl libpng libjpeg pcre SDL2_image libGLU_combined boost
                   glm freetype ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/graphics/maim/default.nix b/pkgs/tools/graphics/maim/default.nix
index aaf7b68d177f0..c7e8dc966e8db 100644
--- a/pkgs/tools/graphics/maim/default.nix
+++ b/pkgs/tools/graphics/maim/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig
 , zlib, libpng, libjpeg
-, mesa, glm, libX11, libXext, libXfixes, libXrandr, libXcomposite, slop, icu }:
+, libGLU_combined, glm, libX11, libXext, libXfixes, libXrandr, libXcomposite, slop, icu }:
 
 stdenv.mkDerivation rec {
   name = "maim-${version}";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs =
-    [ zlib libpng libjpeg mesa glm libX11 libXext libXfixes libXrandr
+    [ zlib libpng libjpeg libGLU_combined glm libX11 libXext libXfixes libXrandr
       libXcomposite slop icu ];
 
   doCheck = false;
diff --git a/pkgs/tools/graphics/pfstools/default.nix b/pkgs/tools/graphics/pfstools/default.nix
index a74d83e9a1e27..4c1ff50243316 100644
--- a/pkgs/tools/graphics/pfstools/default.nix
+++ b/pkgs/tools/graphics/pfstools/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cmake, pkgconfig
-, openexr, zlib, imagemagick, mesa, freeglut, fftwFloat
+, openexr, zlib, imagemagick, libGLU_combined, freeglut, fftwFloat
 , fftw, gsl, libexif, perl, opencv, qt4
 }:
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [
-    openexr zlib imagemagick mesa freeglut fftwFloat
+    openexr zlib imagemagick libGLU_combined freeglut fftwFloat
     fftw gsl libexif perl opencv qt4
   ];
 
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-uniemoji/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-uniemoji/default.nix
index 1ea7ef4251fe8..e31d1ddfaa80d 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-uniemoji/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-uniemoji/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "121zh3q0li1k537fcvbd4ns4jgl9bbb9gm9ihy8cfxgirv38lcfa";
   };
 
-  propagatedBuildInputs = with python3Packages; [ pyxdg python-Levenshtein ];
+  propagatedBuildInputs = with python3Packages; [ pyxdg python-Levenshtein pygobject3 ];
 
   nativeBuildInputs = [ python3Packages.wrapPython ];
 
diff --git a/pkgs/tools/inputmethods/libinput-gestures/default.nix b/pkgs/tools/inputmethods/libinput-gestures/default.nix
index e58cabc6791a9..31a7098e08d6b 100644
--- a/pkgs/tools/inputmethods/libinput-gestures/default.nix
+++ b/pkgs/tools/inputmethods/libinput-gestures/default.nix
@@ -5,14 +5,14 @@
 }:
 stdenv.mkDerivation rec {
   pname = "libinput-gestures";
-  version = "2.32";
+  version = "2.33";
   name = "${pname}-${version}";
 
   src = fetchFromGitHub {
     owner = "bulletmark";
     repo = "libinput-gestures";
     rev = version;
-    sha256 = "1by6sabx0s8sd9w5675gc26q7yccxnxxsjg4dqlb6nbs0vcg81s7";
+    sha256 = "0a4zq880da1rn0mxn1sq4cp6zkw4bfslr0vjczkbj4immjrj422j";
   };
   patches = [
     ./0001-hardcode-name.patch
diff --git a/pkgs/tools/inputmethods/touchegg/default.nix b/pkgs/tools/inputmethods/touchegg/default.nix
index bdcbc939a07b5..82dd387f536d7 100644
--- a/pkgs/tools/inputmethods/touchegg/default.nix
+++ b/pkgs/tools/inputmethods/touchegg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, xorg, xorgserver, qt4, mesa, geis, qmake4Hook }:
+{ stdenv, fetchurl, xorg, xorgserver, qt4, libGLU_combined, geis, qmake4Hook }:
 
 stdenv.mkDerivation rec {
   name = "touchegg-${version}";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "95734815c7219d9a71282f3144b3526f2542b4fa270a8e69d644722d024b4038";
   };
 
-  buildInputs = [ xorgserver mesa xorg.libX11 xorg.libXtst xorg.libXext qt4 geis ];
+  buildInputs = [ xorgserver libGLU_combined xorg.libX11 xorg.libXtst xorg.libXext qt4 geis ];
 
   nativeBuildInputs = [ qmake4Hook ];
 
diff --git a/pkgs/tools/misc/bonfire/default.nix b/pkgs/tools/misc/bonfire/default.nix
index 16b2169769f1f..0d6e93118d82a 100644
--- a/pkgs/tools/misc/bonfire/default.nix
+++ b/pkgs/tools/misc/bonfire/default.nix
@@ -20,7 +20,7 @@ buildPythonApplication rec {
     # https://github.com/blue-yonder/bonfire/pull/24
     substituteInPlace requirements.txt \
       --replace "arrow>=0.5.4,<0.8" "arrow>=0.5.4,<0.13" \
-      --replace "keyring>=9,<10"    "keyring>=9,<11"
+      --replace "keyring>=9,<10"    "keyring>=9,<=11"
     # pip fails when encountering the git hash for the package version
     substituteInPlace setup.py \
       --replace "version=version," "version='${version}',"
diff --git a/pkgs/tools/misc/cutecom/default.nix b/pkgs/tools/misc/cutecom/default.nix
index e3f8a4c43a598..b20e493a58559 100644
--- a/pkgs/tools/misc/cutecom/default.nix
+++ b/pkgs/tools/misc/cutecom/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     homepage = http://cutecom.sourceforge.net/;
     license = stdenv.lib.licenses.gpl2Plus;
     maintainers = [ stdenv.lib.maintainers.bennofs ];
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 418d5e38fd750..894079fad84b1 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit, python3Packages, docutils, help2man
-, acl, apktool, libbfd, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, diffutils, dtc
+, acl, apktool, binutils-unwrapped, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
 , e2fsprogs, file, findutils, fontforge-fonttools, fpc, gettext, ghc, ghostscriptX, giflib, gnupg1, gnutar
 , gzip, imagemagick, jdk, libarchive, libcaca, llvm, mono, openssh, pdftk, pgpdump, poppler_utils, sng, sqlite
 , squashfsTools, tcpdump, unoconv, unzip, xxd, xz
@@ -8,12 +8,12 @@
 
 python3Packages.buildPythonApplication rec {
   name = "diffoscope-${version}";
-  version = "90";
+  version = "91";
 
   src = fetchgit {
     url    = "git://anonscm.debian.org/reproducible/diffoscope.git";
     rev    = "refs/tags/${version}";
-    sha256 = "1w16667j6ag2iim1xcy8y9v9965mq50k64wnf693mivddll62704";
+    sha256 = "16xqy71115cj4kws6bkcjm98nlaff3a32fz82rn2l1xk9w9n3dnz";
   };
 
   patches = [
@@ -27,12 +27,12 @@ python3Packages.buildPythonApplication rec {
 
   nativeBuildInputs = [ docutils help2man ];
 
-  # Still missing these tools: docx2txt enjarify js-beautify oggDump Rscript
+  # Still missing these tools: abootimg docx2txt dumpxsb enjarify js-beautify lipo oggDump otool procyon-decompiler Rscript
   # Also these libraries: python3-guestfs
   pythonPath = with python3Packages; [ debian libarchive-c python_magic tlsh rpm ] ++ [
-      acl libbfd bzip2 cdrkit colordiff coreutils cpio diffutils dtc e2fsprogs file findutils
-      fontforge-fonttools gettext gnutar gzip libarchive libcaca pgpdump sng sqlite
-      squashfsTools unzip xxd xz
+      acl binutils-unwrapped bzip2 cdrkit colordiff coreutils cpio db diffutils
+      dtc e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
+      libarchive libcaca pgpdump sng sqlite squashfsTools unzip xxd xz
     ] ++ lib.optionals enableBloat [
       apktool cbfstool colord fpc ghc ghostscriptX giflib gnupg1 imagemagick
       llvm jdk mono openssh pdftk poppler_utils tcpdump unoconv
diff --git a/pkgs/tools/misc/diffoscope/list-tools.sh b/pkgs/tools/misc/diffoscope/list-tools.sh
new file mode 100755
index 0000000000000..9af7f0e388992
--- /dev/null
+++ b/pkgs/tools/misc/diffoscope/list-tools.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+diffoscope=$(nix-build --no-out-link -E 'with import ./. {}; diffoscope.override { enableBloat = true; }')/bin/diffoscope
+
+required=$($diffoscope --list-tools | \
+    grep '^External-Tools-Required:' | \
+    cut -d ' ' -f2- | \
+    tr -d ,)
+
+# Uber-hacky!
+pathScript=$(cat $diffoscope | grep PATH)
+
+export PATH=$(nix-build --no-out-link -A which)/bin
+eval "$pathScript"
+
+for tool in $required; do
+    if ! which $tool >/dev/null 2>&1; then
+        echo $tool
+    fi
+done | sort
diff --git a/pkgs/tools/misc/flameshot/default.nix b/pkgs/tools/misc/flameshot/default.nix
index 55aa146d301d8..5356f8ad065fb 100644
--- a/pkgs/tools/misc/flameshot/default.nix
+++ b/pkgs/tools/misc/flameshot/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "flameshot-${version}";
-  version = "0.5.0";
+  version = "0.5.1";
 
   nativeBuildInputs = [ qmake qttools ];
   buildInputs = [ qtbase ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "lupoDharkael";
     repo = "flameshot";
     rev = "v${version}";
-    sha256 = "1fy4il7rdj294l9cs642hx23bry25j9phn37274r2b87hwzy1rrv";
+    sha256 = "13h77np93r796jf289v4r687cmnpqkyqs34dm9gif4akaig74ky0";
   };
 
   enableParallelBuilding = true;
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/lupoDharkael/flameshot;
     maintainers = [ maintainers.scode ];
     license = stdenv.lib.licenses.gpl3;
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/gibo/default.nix b/pkgs/tools/misc/gibo/default.nix
index 67c8449469203..5c8bacac162c0 100644
--- a/pkgs/tools/misc/gibo/default.nix
+++ b/pkgs/tools/misc/gibo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "gibo-${version}";
-  version = "1.0.4";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "simonwhitaker";
     repo = "gibo";
     rev = version;
-    sha256 = "1vzchggxv660c1cj5v0hlmln7yda48wjy2cv0qwi619cmr5hwbgh";
+    sha256 = "07j3sv9ar9l074krajw8nfmsfmdp836irsbd053dbqk2v880gfm6";
   };
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index 8586244b4152a..e048a2800df50 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, geoipWithDatabase, ncurses, glib }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.1";
+  version = "1.2";
   name = "goaccess-${version}";
 
   src = fetchurl {
     url = "http://tar.goaccess.io/goaccess-${version}.tar.gz";
-    sha256 = "1lxnhvh4xhkgzdv0l2fiza2099phn9zs04p9cqfhhl5k6xq18wsc";
+    sha256 = "051lrprg9svl5ccc3sif8fl78vfpkrgjcxgi2wngqn7a81jzdabb";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/misc/graylog/default.nix b/pkgs/tools/misc/graylog/default.nix
index d4acc063b4dea..b9945a3afd387 100644
--- a/pkgs/tools/misc/graylog/default.nix
+++ b/pkgs/tools/misc/graylog/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "2.4.1";
+  version = "2.4.3";
   name = "graylog-${version}";
 
   src = fetchurl {
     url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz";
-    sha256 = "1dps1vvv8b154ayamhjxdgiq101qs4w0nk79j3zb41pdyn2fji4j";
+    sha256 = "0kwgg9m9sqzl4y2ri69fpi7w9961psbmfdq3avjsbgbs60ly1hn6";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/kisslicer/default.nix b/pkgs/tools/misc/kisslicer/default.nix
index 588511638beaf..2ec795e78e907 100644
--- a/pkgs/tools/misc/kisslicer/default.nix
+++ b/pkgs/tools/misc/kisslicer/default.nix
@@ -1,6 +1,6 @@
 { fetchzip
 , libX11
-, mesa
+, libGLU_combined
 , makeWrapper
 , stdenv
 }:
@@ -8,7 +8,7 @@
 let
 
   libPath = stdenv.lib.makeLibraryPath [
-    mesa
+    libGLU_combined
     stdenv.cc.cc
     libX11
   ];
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     makeWrapper
-    mesa
+    libGLU_combined
     libX11
   ];
 
diff --git a/pkgs/tools/misc/ocz-ssd-guru/default.nix b/pkgs/tools/misc/ocz-ssd-guru/default.nix
index 21786f3f15f50..afe7a81ebac80 100644
--- a/pkgs/tools/misc/ocz-ssd-guru/default.nix
+++ b/pkgs/tools/misc/ocz-ssd-guru/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, xorg, freetype, fontconfig, mesa, glibc, makeWrapper }:
+{ fetchurl, stdenv, xorg, freetype, fontconfig, libGLU_combined, glibc, makeWrapper }:
 
 let
   system = if stdenv.system == "x86_64-linux" then "linux64" else "linux32";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
       xorg.libXrender
       stdenv.cc.cc
       glibc
-      mesa
+      libGLU_combined
   ];
 
   installPhase = ''
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index e85d26fb05878..7287da2079a18 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, perl, makeWrapper, procps }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20180122";
+  name = "parallel-20180222";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "1wkbppb4mc56grl6jsp803sf0hm7mg5ff7qmxalp7sd0vxqw41p9";
+    sha256 = "1bwx1rcrqz04d8fajlllhrfkjqxg0mfvsd86wf6p067gmgdrf6g8";
   };
 
   nativeBuildInputs = [ makeWrapper perl ];
diff --git a/pkgs/tools/misc/patdiff/default.nix b/pkgs/tools/misc/patdiff/default.nix
index 908da587d4b2c..98907ad4b8295 100644
--- a/pkgs/tools/misc/patdiff/default.nix
+++ b/pkgs/tools/misc/patdiff/default.nix
@@ -4,7 +4,7 @@ with ocamlPackages;
 
 janePackage {
   name = "patdiff";
-  hash = "15b6nkmd2z07j4nnmkb2g6qn3daw2xmmz3lgswkj03v29ffib014";
+  hash = "04kl9h7j3pzpyic8p34b8i9vpf6qn7ixp077d8i44cpbymdqdn96";
   buildInputs = [ core_extended expect_test_helpers patience_diff ocaml_pcre ];
   meta = {
     description = "File Diff using the Patience Diff algorithm";
diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix
index 3493e7ffa7ba1..f39ee734d81de 100644
--- a/pkgs/tools/misc/pipelight/default.nix
+++ b/pkgs/tools/misc/pipelight/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, bash, cabextract, curl, gnupg, libX11, mesa, perl, wineStaging
+{ stdenv, fetchurl, bash, cabextract, curl, gnupg, libX11, libGLU_combined, perl, wineStaging
  }:
 
 let
@@ -9,16 +9,16 @@ let
 
 in stdenv.mkDerivation rec {
 
-  version = "0.2.8";
+  version = "0.2.8.2";
 
   name = "pipelight-${version}";
 
   src = fetchurl {
     url = "https://bitbucket.org/mmueller2012/pipelight/get/v${version}.tar.gz";
-    sha256 = "1i440rf22fmd2w86dlm1mpi3nb7410rfczc0yldnhgsvp5p3sm5f";
+    sha256 = "1kyy6knkr42k34rs661r0f5sf6l1s2jdbphdg89n73ynijqmzjhk";
   };
 
-  buildInputs = [ wine_custom libX11 mesa curl ];
+  buildInputs = [ wine_custom libX11 libGLU_combined curl ];
 
   propagatedbuildInputs = [ curl cabextract ];
 
diff --git a/pkgs/tools/misc/powerline-go/default.nix b/pkgs/tools/misc/powerline-go/default.nix
new file mode 100644
index 0000000000000..4e465e7ea1caf
--- /dev/null
+++ b/pkgs/tools/misc/powerline-go/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "powerline-go";
+  version = "1.8.2";
+  name = "${pname}-${version}";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/justjanne/powerline-go";
+
+  src = fetchFromGitHub {
+    owner = "justjanne";
+    repo = pname;
+    inherit rev;
+    sha256 = "1q45hxbrnx0mgi7z1rqkxp47dk8yf4mzy62i0027fhr65aifq6xj";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with stdenv.lib; {
+    description = "A Powerline like prompt for Bash, ZSH and Fish";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sifmelcara ];
+  };
+}
diff --git a/pkgs/tools/misc/powerline-go/deps.nix b/pkgs/tools/misc/powerline-go/deps.nix
new file mode 100644
index 0000000000000..a3276ab229bbd
--- /dev/null
+++ b/pkgs/tools/misc/powerline-go/deps.nix
@@ -0,0 +1,48 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "a9d6d1e4dc51df2130326793d49971f238839169";
+      sha256 = "1x6x5r6ijik5ardfrpncjbqvpv8j5m7yb94svzz83a15ln44ajmg";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "91a49db82a88618983a78a06c1cbd4e00ab749ab";
+      sha256 = "1xb4vlshx76xany4w60dkpz67plyfk7nr97pinf1bbha32pi36jc";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "dd2ff4accc098aceecb86b36eaa7829b2a17b1c9";
+      sha256 = "086j1kk56vm1m5m9sf3lcww9phqw6p2q3g0is1jn4ixfxd3wm2wg";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "b7ef84aaf62aa3e70962625c80a571ae7c17cb40";
+      sha256 = "0xfb515f3bmcq15sq1cm641qwgsmq1w5xjdx2mhwgns770jngndd";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "7f97868eec74b32b0982dd158a51a446d1da7eb5";
+      sha256 = "0a31jd1p00b9c82f3sfsbv2bdh7mlfy9vhcqxipll2cyvxplgfq8";
+    };
+  }
+]
diff --git a/pkgs/tools/misc/rename/default.nix b/pkgs/tools/misc/rename/default.nix
index e30c2e89349d8..450424d0f54c1 100644
--- a/pkgs/tools/misc/rename/default.nix
+++ b/pkgs/tools/misc/rename/default.nix
@@ -3,6 +3,7 @@
 buildPerlPackage rec {
   name = "rename-${version}";
   version = "1.9";
+  outputs = [ "out" ];
   src = fetchFromGitHub {
     owner = "pstray";
     repo = "rename";
diff --git a/pkgs/tools/misc/skim/default.nix b/pkgs/tools/misc/skim/default.nix
new file mode 100644
index 0000000000000..709cbbe07912f
--- /dev/null
+++ b/pkgs/tools/misc/skim/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  name = "skim-${version}";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    owner = "lotabout";
+    repo = "skim";
+    rev = "v${version}";
+    sha256 = "0spkkgjjrch1grb0115rn0wxzsh8pzmm96a7j69zy5pc1il2m5lp";
+  };
+
+  outputs = [ "out" "vim" ];
+
+  cargoSha256 = "0zbjnii8r41ih2m2vqhm3wdiwgi13kipvxx75sg4vm4maf4wpmhv";
+
+  patchPhase = ''
+    sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/skim.vim
+  '';
+
+  postInstall = ''
+    install -D -m 555 bin/sk-tmux -t $out/bin
+    install -D -m 444 shell/* -t $out/share/skim
+    install -D -m 444 plugin/skim.vim -t $vim/plugin
+
+    cat <<SCRIPT > $out/bin/sk-share
+    #! ${stdenv.shell}
+    # Run this script to find the skim shared folder where all the shell
+    # integration scripts are living.
+    echo $out/share/skim
+    SCRIPT
+    chmod +x $out/bin/sk-share
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Fuzzy Finder in rust!";
+    homepage = https://github.com/lotabout/skim;
+    license = licenses.mit;
+    maintainers = [];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/slop/default.nix b/pkgs/tools/misc/slop/default.nix
index d1e5a2451a79a..ad1c2b64e65d0 100644
--- a/pkgs/tools/misc/slop/default.nix
+++ b/pkgs/tools/misc/slop/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig
-, glew, glm, mesa, libX11, libXext, libXrender, cppcheck, icu}:
+, glew, glm, libGLU_combined, libX11, libXext, libXrender, cppcheck, icu}:
 
 stdenv.mkDerivation rec {
   name = "slop-${version}";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = [ glew glm mesa libX11 libXext libXrender icu ]
+  buildInputs = [ glew glm libGLU_combined libX11 libXext libXrender icu ]
                 ++ stdenv.lib.optional doCheck cppcheck;
 
   doCheck = false;
diff --git a/pkgs/tools/misc/uutils-coreutils/default.nix b/pkgs/tools/misc/uutils-coreutils/default.nix
index 7f6e4f760b3b6..411e0324457a1 100644
--- a/pkgs/tools/misc/uutils-coreutils/default.nix
+++ b/pkgs/tools/misc/uutils-coreutils/default.nix
@@ -34,6 +34,6 @@ rustPlatform.buildRustPackage {
     homepage = https://github.com/uutils/coreutils;
     maintainers = with maintainers; [ ma27 ];
     license = licenses.mit;
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/wyrd/default.nix b/pkgs/tools/misc/wyrd/default.nix
index d02ce41b6aa1b..1029dbb29d8ca 100644
--- a/pkgs/tools/misc/wyrd/default.nix
+++ b/pkgs/tools/misc/wyrd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ocaml, ncurses, remind, camlp4 }:
+{ stdenv, fetchurl, ocamlPackages, ncurses, remind }:
 
 stdenv.mkDerivation rec {
   version = "1.4.6";
@@ -9,7 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "0zlrg602q781q8dij62lwdprpfliyy9j1rqfqcz8p2wgndpivddj";
   };
 
-  buildInputs = [ ocaml ncurses remind camlp4 ];
+  NIX_CFLAGS_COMPILE = [ "-DNCURSES_INTERNALS=1" ];
+
+  preConfigure = ''
+    substituteInPlace curses/curses.ml --replace 'pp gcc' "pp $CC"
+  '';
+
+  buildInputs = [ ocamlPackages.ocaml ncurses remind ocamlPackages.camlp4 ];
 
   preferLocalBuild = true;
 
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 4f082f28a7d4d..03a83de11b4a5 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -16,11 +16,11 @@ with stdenv.lib;
 buildPythonApplication rec {
 
   name = "youtube-dl-${version}";
-  version = "2018.02.22";
+  version = "2018.03.03";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${name}.tar.gz";
-    sha256 = "112qmwrkd0cpyx2h20k6y07lw7iixvj8yya7r97h3k1y1py9vbz8";
+    sha256 = "1x0m5whrcs7589z8rildgy0zmxfvzbnx89pag7013qvfrpb63858";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index 06c595f7c6d4a..598557380e289 100644
--- a/pkgs/tools/networking/haproxy/default.nix
+++ b/pkgs/tools/networking/haproxy/default.nix
@@ -9,14 +9,12 @@ assert usePcre -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "haproxy";
-  majorVersion = "1.7";
-  minorVersion = "9";
-  version = "${majorVersion}.${minorVersion}";
+  version = "1.8.4";
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "https://www.haproxy.org/download/${majorVersion}/src/${name}.tar.gz";
-    sha256 = "1072337e54fa188dc6e0cfe3ba4c2200b07082e321cbfe5a0882d85d54db068e";
+    url = "https://www.haproxy.org/download/${stdenv.lib.versions.majorMinor version}/src/${name}.tar.gz";
+    sha256 = "19l4i0p92ahm3vaw42gz3rmmidfivk36mvqyhir81h6ywyjb01g3";
   };
 
   buildInputs = [ openssl zlib ]
diff --git a/pkgs/tools/networking/inadyn/default.nix b/pkgs/tools/networking/inadyn/default.nix
index 99997eb927f25..9d588f6fa5e11 100644
--- a/pkgs/tools/networking/inadyn/default.nix
+++ b/pkgs/tools/networking/inadyn/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "inadyn-${version}";
-  version = "2.3";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "troglobit";
     repo = "inadyn";
     rev = "v${version}";
-    sha256 = "1nkrvd33mnj98m86g3xs27l88l2678qjzjhwpq1k9n8v9k255pd6";
+    sha256 = "0m2lkmvklhnggv1kim0rikq1gxxc984lsg4gpn8s6lzv6y0axbya";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/networking/iperf/3.nix b/pkgs/tools/networking/iperf/3.nix
index 28b53a8c24778..ece7ea3c95e2c 100644
--- a/pkgs/tools/networking/iperf/3.nix
+++ b/pkgs/tools/networking/iperf/3.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, fetchpatch }:
 
 stdenv.mkDerivation rec {
-  name = "iperf-3.4";
+  name = "iperf-3.5";
 
   src = fetchurl {
     url = "http://downloads.es.net/pub/iperf/${name}.tar.gz";
-    sha256 = "04ciywjhklzfrnp40675ssnkqxv90ad4v56i8vh8bpsiswr86lki";
+    sha256 = "1m9cyycv70s8nlbgr1lqwr155ixk17np0nzqgwaw3f51vkndk6sk";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/networking/libreswan/default.nix b/pkgs/tools/networking/libreswan/default.nix
index b2024f55c4ea6..fd2461f517195 100644
--- a/pkgs/tools/networking/libreswan/default.nix
+++ b/pkgs/tools/networking/libreswan/default.nix
@@ -25,7 +25,12 @@ stdenv.mkDerivation {
   };
 
   # These flags were added to compile v3.18. Try to lift them when updating.
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=redundant-decls" "-Wno-error=format-nonliteral" ];
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=redundant-decls" "-Wno-error=format-nonliteral"
+    # these flags were added to build with gcc7
+    "-Wno-error=implicit-fallthrough"
+    "-Wno-error=format-truncation"
+    "-Wno-error=pointer-compare"
+  ];
 
   nativeBuildInputs = [ makeWrapper pkgconfig ];
   buildInputs = [ bash iproute iptables systemd coreutils gnused gawk gmp unbound bison flex pam libevent
diff --git a/pkgs/tools/networking/linkchecker/default.nix b/pkgs/tools/networking/linkchecker/default.nix
index 686242aa0670d..6e41de8999b9c 100644
--- a/pkgs/tools/networking/linkchecker/default.nix
+++ b/pkgs/tools/networking/linkchecker/default.nix
@@ -1,23 +1,50 @@
-{ stdenv, lib, fetchurl, python2Packages, gettext }:
-
+{ stdenv, lib, fetchFromGitHub, fetchpatch, python2, gettext }:
+let
+  # pin requests version until next release.
+  # see: https://github.com/linkcheck/linkchecker/issues/76
+  python2Packages = (python2.override {
+    packageOverrides = self: super: {   
+      requests = super.requests.overridePythonAttrs(oldAttrs: rec {
+        version = "2.14.2";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "0lyi82a0ijs1m7k9w1mqwbmq1qjsac35fazx7xqyh8ws76xanx52";
+        };
+      });
+    };
+  }).pkgs;
+in
 python2Packages.buildPythonApplication rec {
-  name = "LinkChecker-${version}";
-  version = "9.3";
+  pname = "LinkChecker";
+  version = "9.3.1";
+
+  propagatedBuildInputs = (with python2Packages; [ 
+    requests
+  ]) ++ [ gettext ];
 
-  buildInputs = with python2Packages ; [ pytest ];
-  propagatedBuildInputs = with python2Packages ; [ requests ] ++ [ gettext ];
+  checkInputs = with python2Packages; [ pytest ];
 
-  src = fetchurl {
-    url = "mirror://pypi/L/LinkChecker/${name}.tar.gz";
-    sha256 = "0v8pavf0bx33xnz1kwflv0r7lxxwj7vg3syxhy2wzza0wh6sc2pf";
+  # the original repository is abandoned, development is now happening here:
+  src = fetchFromGitHub {
+    owner = "linkcheck";
+    repo = "linkchecker";
+    rev = "v${version}";
+    sha256 = "080mv4iwvlsfnm7l9basd6i8p4q8990mdhkwick9s6javrbf1r1d";
   };
 
   # 1. upstream refuses to support ignoring robots.txt
-  # 2. work around requests version detection - can be dropped >v9.3
-  patches = [
-    ./add-no-robots-flag.patch
-    ./no-version-check.patch
-  ];
+  # 2. fix build: https://github.com/linkcheck/linkchecker/issues/10
+  patches = 
+    let
+      fix-setup-py = fetchpatch {
+        name = "fix-setup-py.patch";
+        url = https://github.com/linkcheck/linkchecker/commit/e62e630.patch;
+        sha256 = "046q1whg715w2yv33xx6rkj7fspvvz60cl978ax92lnf8j101czx";
+      };
+    in [
+      ./add-no-robots-flag.patch
+      fix-setup-py
+    ];
 
   postInstall = ''
     rm $out/bin/linkchecker-gui
@@ -35,8 +62,8 @@ python2Packages.buildPythonApplication rec {
 
   meta = {
     description = "Check websites for broken links";
-    homepage = https://wummel.github.io/linkchecker/;
+    homepage = https://linkcheck.github.io/linkchecker/;
     license = lib.licenses.gpl2;
-    maintainers = with lib.maintainers; [ peterhoeg ];
+    maintainers = with lib.maintainers; [ peterhoeg tweber ];
   };
 }
diff --git a/pkgs/tools/networking/linkchecker/no-version-check.patch b/pkgs/tools/networking/linkchecker/no-version-check.patch
deleted file mode 100644
index 49b674f373596..0000000000000
--- a/pkgs/tools/networking/linkchecker/no-version-check.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/linkcheck/__init__.py b/linkcheck/__init__.py
---- a/linkcheck/__init__.py	2014-07-16 13:34:58.000000000 +0800
-+++ b/linkcheck/__init__.py	2016-10-11 10:42:08.914085950 +0800
-@@ -26,8 +26,8 @@
-         sys.version_info < (2, 7, 2, 'final', 0)):
-     raise SystemExit("This program requires Python 2.7.2 or later.")
- import requests
--if requests.__version__ <= '2.2.0':
--    raise SystemExit("This program requires Python requests 2.2.0 or later.")
-+#if requests.__version__ <= '2.2.0':
-+#    raise SystemExit("This program requires Python requests 2.2.0 or later.")
- 
- import os
- # add the custom linkcheck_dns directory to sys.path
diff --git a/pkgs/tools/networking/megatools/default.nix b/pkgs/tools/networking/megatools/default.nix
index f6a7501128702..e2d4880250c24 100644
--- a/pkgs/tools/networking/megatools/default.nix
+++ b/pkgs/tools/networking/megatools/default.nix
@@ -1,18 +1,25 @@
-{ stdenv, fetchurl, pkgconfig, glib, fuse, curl, glib-networking
-, asciidoc, wrapGAppsHook }:
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, glib, fuse, curl, glib-networking
+, asciidoc, libxml2, docbook_xsl, docbook_xml_dtd_45, libxslt, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   name = "megatools-${version}";
-  version = "1.9.98";
+  version = "2017-10-26";
 
-  src = fetchurl {
-    url = "https://megatools.megous.com/builds/${name}.tar.gz";
-    sha256 = "0vx1farp0dpg4zwvxdbfdnzjk9qx3sn109p1r1zl3g3xsaj221cv";
+  src = fetchFromGitHub {
+    owner = "megous";
+    repo = "megatools";
+    rev = "35dfba3262f620b4701ec1975293463957e20f26";
+    sha256 = "0xphgv78j731rmhxic4fwzdr7vq5px921qifrw1y40b93nhy4d5n";
   };
 
-  nativeBuildInputs = [ pkgconfig wrapGAppsHook asciidoc ];
+  nativeBuildInputs = [
+    autoreconfHook pkgconfig wrapGAppsHook asciidoc libxml2
+    docbook_xsl docbook_xml_dtd_45 libxslt
+  ];
   buildInputs = [ glib glib-networking fuse curl ];
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "Command line client for Mega.co.nz";
     homepage = https://megatools.megous.com/;
diff --git a/pkgs/tools/networking/network-manager/l2tp.nix b/pkgs/tools/networking/network-manager/l2tp.nix
index e5626dee1d4dd..54670ff1bce75 100644
--- a/pkgs/tools/networking/network-manager/l2tp.nix
+++ b/pkgs/tools/networking/network-manager/l2tp.nix
@@ -22,6 +22,9 @@ stdenv.mkDerivation rec {
   postPatch = ''
     sed -i -e 's%"\(/usr/sbin\|/usr/pkg/sbin\|/usr/local/sbin\)/[^"]*",%%g' ./src/nm-l2tp-service.c
 
+    substituteInPlace ./Makefile.am \
+      --replace '$(sysconfdir)/dbus-1/system.d' "$out/etc/dbus-1/system.d"
+
     substituteInPlace ./src/nm-l2tp-service.c \
       --replace /sbin/ipsec  ${strongswan}/bin/ipsec \
       --replace /sbin/xl2tpd ${xl2tpd}/bin/xl2tpd
diff --git a/pkgs/tools/networking/par2cmdline/default.nix b/pkgs/tools/networking/par2cmdline/default.nix
index aa9e5483408f7..f2c92d689f350 100644
--- a/pkgs/tools/networking/par2cmdline/default.nix
+++ b/pkgs/tools/networking/par2cmdline/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name    = "par2cmdline-${version}";
-  version = "0.7.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "Parchive";
     repo = "par2cmdline";
     rev = "v${version}";
-    sha256 = "1hkb1brz70p79rv7dlzhnl1invjmkll81rcpnhwvafv1yriklfai";
+    sha256 = "0f1jsd5sw2wynjzi7yjqjaf13yhyjfdid91p8yh0jn32y03kjyrz";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/networking/pptp/default.nix b/pkgs/tools/networking/pptp/default.nix
index 6185f66b80e43..d8a633f03321f 100644
--- a/pkgs/tools/networking/pptp/default.nix
+++ b/pkgs/tools/networking/pptp/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "pptp-${version}";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/pptpclient/${name}.tar.gz";
-    sha256 = "00cj3jqj1hqri856jif4kkzan684qv1cb1zf2amzblvqqnzqq7hb";
+    sha256 = "1x2szfp96w7cag2rcvkdqbsl836ja5148zzfhaqp7kl7wjw2sjc2";
   };
 
   patchPhase =
diff --git a/pkgs/tools/networking/strongswan/default.nix b/pkgs/tools/networking/strongswan/default.nix
index 3cbff4f25ae8e..042f8bea3d62d 100644
--- a/pkgs/tools/networking/strongswan/default.nix
+++ b/pkgs/tools/networking/strongswan/default.nix
@@ -76,6 +76,11 @@ stdenv.mkDerivation rec {
          "--enable-sqlite" ]
     ++ optional enableNetworkManager "--enable-nm";
 
+  postInstall = ''
+    # this is needed for l2tp
+    echo "include /etc/ipsec.secrets" >> $out/etc/ipsec.secrets
+  '';
+
   NIX_LDFLAGS = "-lgcc_s" ;
 
   meta = {
diff --git a/pkgs/tools/networking/vpnc/default.nix b/pkgs/tools/networking/vpnc/default.nix
index 86e483114a39d..6a23c81569f0a 100644
--- a/pkgs/tools/networking/vpnc/default.nix
+++ b/pkgs/tools/networking/vpnc/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   name = "vpnc-0.5.3-post-r550";
   src = fetchsvn {
-    url = "http://svn.unix-ag.uni-kl.de/vpnc";
+    url = "https://svn.unix-ag.uni-kl.de/vpnc";
     rev = "550";
     sha256 = "0x4ckfv9lpykwmh28v1kyzz91y1j2v48fi8q5nsawrba4q0wlrls";
   };
diff --git a/pkgs/tools/networking/zssh/default.nix b/pkgs/tools/networking/zssh/default.nix
index 16c0034e46fcf..ac64e135c2fe9 100644
--- a/pkgs/tools/networking/zssh/default.nix
+++ b/pkgs/tools/networking/zssh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, readline, deepin-terminal }:
+{ stdenv, fetchurl, readline, deepin }:
 
 let
   version = "1.5c";
@@ -32,7 +32,7 @@ in stdenv.mkDerivation rec {
     description = "SSH and Telnet client with ZMODEM file transfer capability";
     homepage = http://zssh.sourceforge.net/;
     license = stdenv.lib.licenses.gpl2;
-    maintainers = deepin-terminal.meta.maintainers; # required by deepin-terminal
+    maintainers = deepin.deepin-terminal.meta.maintainers; # required by deepin-terminal
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/package-management/nix-serve/default.nix b/pkgs/tools/package-management/nix-serve/default.nix
index 1e3579b197e90..dadcab1ea4f51 100644
--- a/pkgs/tools/package-management/nix-serve/default.nix
+++ b/pkgs/tools/package-management/nix-serve/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     inherit rev sha256;
   };
 
-  buildInputs = [ bzip2 perl nix ]
+  buildInputs = [ bzip2 perl nix nix.perl-bindings ]
     ++ (with perlPackages; [ DBI DBDSQLite Plack Starman ]);
 
   dontBuild = true;
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 06696a41324c5..a768ff8480218 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -29,7 +29,7 @@ let
 
     buildInputs = [ curl openssl sqlite xz bzip2 ]
       ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
-      ++ lib.optionals fromGit [ brotli ] # Since 1.12
+      ++ lib.optionals is20 [ brotli ] # Since 1.12
       ++ lib.optional (hostPlatform.isSeccomputable) libseccomp
       ++ lib.optional ((stdenv.isLinux || stdenv.isDarwin) && is20)
           (aws-sdk-cpp.override {
@@ -116,7 +116,7 @@ in rec {
 
   nix = nixStable;
 
-  nixStable = (common rec {
+  nix1 = (common rec {
     name = "nix-1.11.16";
     src = fetchurl {
       url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
@@ -124,6 +124,16 @@ in rec {
     };
   }) // { perl-bindings = nixStable; };
 
+  nixStable = (common rec {
+    name = "nix-2.0";
+    src = fetchurl {
+      url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
+      sha256 = "7024d327314bf92c1d3e6cccd944929828a44b24093954036bfb0115a92f5a14";
+    };
+  }) // { perl-bindings = perl-bindings { nix = nixStable; }; };
+
+  nixUnstable = nix;
+/*
   nixUnstable = (lib.lowPrio (common rec {
     name = "nix-2.0${suffix}";
     suffix = "pre5968_a6c0b773";
@@ -135,5 +145,6 @@ in rec {
     };
     fromGit = true;
   })) // { perl-bindings = perl-bindings { nix = nixUnstable; }; };
+*/
 
 }
diff --git a/pkgs/tools/security/enpass/default.nix b/pkgs/tools/security/enpass/default.nix
index 1bf5a9033b99c..38104b8b213d5 100644
--- a/pkgs/tools/security/enpass/default.nix
+++ b/pkgs/tools/security/enpass/default.nix
@@ -1,5 +1,5 @@
 {stdenv, system, fetchurl, dpkg, openssl, xorg
-, glib, mesa, libpulseaudio, zlib, dbus, fontconfig, freetype
+, glib, libGLU_combined, libpulseaudio, zlib, dbus, fontconfig, freetype
 , gtk2, pango, atk, cairo, gdk_pixbuf, jasper, xkeyboardconfig
 , makeWrapper , makeDesktopItem, python, pythonPackages, lib
 , libredirect, lsof}:
@@ -18,7 +18,7 @@ let
   # used of both wrappers and libpath
   libPath = lib.makeLibraryPath (with xorg; [
     openssl
-    mesa
+    libGLU_combined
     fontconfig
     freetype
     libpulseaudio
diff --git a/pkgs/tools/security/fprintd/default.nix b/pkgs/tools/security/fprintd/default.nix
index effdaaecb18ac..52bc59abb4cbe 100644
--- a/pkgs/tools/security/fprintd/default.nix
+++ b/pkgs/tools/security/fprintd/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "fprintd-${version}";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchurl {
     url = "http://people.freedesktop.org/~hadess/${name}.tar.xz";
-    sha256 = "05915i0bv7q62fqrs5diqwr8dz3pwqa1c1ivcgggkjyw0xk4ldp5";
+    sha256 = "00i21ycaya4x2qf94mys6s94xnbj5cfm8zhhd5sc91lvqjk4r99k";
   };
 
   buildInputs = [ libfprint glib dbus-glib polkit nss pam systemd ];
diff --git a/pkgs/tools/security/hashcat/default.nix b/pkgs/tools/security/hashcat/default.nix
index 781a988619ccf..725f913734d4c 100644
--- a/pkgs/tools/security/hashcat/default.nix
+++ b/pkgs/tools/security/hashcat/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name    = "hashcat-${version}";
-  version = "4.0.1";
+  version = "4.1.0";
 
   src = fetchurl {
     url = "https://hashcat.net/files/hashcat-${version}.tar.gz";
-    sha256 = "1pafjwibppylfgs3rck6724dhd3vwwndb9lkc29gd64pxd3l98kz";
+    sha256 = "170i2y32ykgzb1qf1wz3klwn31c09bviz4x3bnrwia65adqrj8xx";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/kbfs/default.nix b/pkgs/tools/security/kbfs/default.nix
index dbd372275bc3c..9e1f664f5d846 100644
--- a/pkgs/tools/security/kbfs/default.nix
+++ b/pkgs/tools/security/kbfs/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "kbfs-${version}";
-  version = "1.0.40";
+  version = "1.0.44";
 
   goPackagePath = "github.com/keybase/kbfs";
   subPackages = [ "kbfsfuse" "kbfsgit/git-remote-keybase" ];
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner = "keybase";
     repo = "kbfs";
     rev = "v${version}";
-    sha256 = "1bgbzk3ykjb6y5sa5i9f6hwcp8b21dndq7iw9m8fdxh4n4mm6n9p";
+    sha256 = "1vjgzif8ki9xrlcghpzkvqwfwvaq63llf52s03m3d2vkyigmgp78";
   };
 
   buildFlags = [ "-tags production" ];
diff --git a/pkgs/tools/security/keybase-gui/default.nix b/pkgs/tools/security/keybase-gui/default.nix
index b0db3eea5b9e5..53b871306d7e8 100644
--- a/pkgs/tools/security/keybase-gui/default.nix
+++ b/pkgs/tools/security/keybase-gui/default.nix
@@ -37,10 +37,10 @@ let
 in
 stdenv.mkDerivation rec {
   name = "keybase-gui-${version}";
-  version = "1.0.40-20180127033950.76a4b90c9";
+  version = "1.0.44-20180223200436.9a9ccec79";
   src = fetchurl {
     url = "https://s3.amazonaws.com/prerelease.keybase.io/linux_binaries/deb/keybase_${version}_amd64.deb";
-    sha256 = "1pskmwif5nx32d53kz8vbijv61i50kpjwyy53a37rz5nx3hgj3ar";
+    sha256 = "0dmi0fw39924kpahlsk853hbmpy8a6nj78lrh1wharayjpvj6jv3";
   };
   phases = ["unpackPhase" "installPhase" "fixupPhase"];
   unpackPhase = ''
diff --git a/pkgs/tools/security/keybase/default.nix b/pkgs/tools/security/keybase/default.nix
index ee62ef3782ae2..331375273edd1 100644
--- a/pkgs/tools/security/keybase/default.nix
+++ b/pkgs/tools/security/keybase/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "keybase-${version}";
-  version = "1.0.42";
+  version = "1.0.44";
 
   goPackagePath = "github.com/keybase/client";
   subPackages = [ "go/keybase" ];
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner  = "keybase";
     repo   = "client";
     rev    = "v${version}";
-    sha256 = "0vjwyg542hiswcs89csh2vbkfyixlzk3zswjn7x7d1pifrckys0r";
+    sha256 = "1np8fk15wwqkswzcyygga52r74dp101ny63i3m1wypgfky4hvsbb";
   };
 
   buildFlags = [ "-tags production" ];
diff --git a/pkgs/tools/security/pass-otp/default.nix b/pkgs/tools/security/pass-otp/default.nix
index 327a9680f9809..7f0f44bdfa444 100644
--- a/pkgs/tools/security/pass-otp/default.nix
+++ b/pkgs/tools/security/pass-otp/default.nix
@@ -1,12 +1,13 @@
 { stdenv, pass, fetchFromGitHub, oathToolkit }:
-stdenv.mkDerivation {
-  name = "pass-otp";
+stdenv.mkDerivation rec {
+  name = "pass-otp-${version}";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "tadfisher";
     repo = "pass-otp";
-    rev = "f2feb3082324a91089782af9b7fbb71d34aa213d";
-    sha256 = "0iklvcfgw1320dggdr02lq3bc7xvnd2934l1w9kkjpbsfmhs955c";
+    rev = "v${version}";
+    sha256 = "1cgj4zc8fq88n3h6c0vkv9i5al785mdprpgpbv5m22dz9p1wqvbb";
   };
 
   buildInputs = [ pass oathToolkit ];
@@ -23,7 +24,7 @@ stdenv.mkDerivation {
     description = "A pass extension for managing one-time-password (OTP) tokens";
     homepage = https://github.com/tadfisher/pass-otp;
     license = licenses.gpl3;
-    maintainers = with maintainers; [ jwiegley ];
+    maintainers = with maintainers; [ jwiegley tadfisher ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/pass/default.nix b/pkgs/tools/security/pass/default.nix
index 24922db2e775a..ad2afa8ed912a 100644
--- a/pkgs/tools/security/pass/default.nix
+++ b/pkgs/tools/security/pass/default.nix
@@ -4,6 +4,7 @@
 
 , xclip ? null, xdotool ? null, dmenu ? null
 , x11Support ? !stdenv.isDarwin
+, tombPluginSupport ? false, tomb
 }:
 
 with lib;
@@ -17,10 +18,19 @@ let
     owner  = "roddhjav";
     repo   = "pass-${p.name}";
     inherit (p) rev sha256;
-  })) [
-    { name = "import"; rev = "491935bd275f29ceac2b876b3a288011d1ce31e7"; sha256 = "02mbh05ab8h7kc30hz718d1d1vkjz43b96c7p0xnd92610d2q66q"; }
-    { name = "update"; rev = "cf576c9036fd18efb9ed29e0e9f811207b556fde"; sha256 = "1hhbrg6a2walrvla6q4cd3pgrqbcrf9brzjkb748735shxfn52hd"; }
-  ];
+  }))
+  ([
+    { name = "import";
+      rev = "491935bd275f29ceac2b876b3a288011d1ce31e7";
+      sha256 = "02mbh05ab8h7kc30hz718d1d1vkjz43b96c7p0xnd92610d2q66q"; }
+    { name = "update";
+      rev = "cf576c9036fd18efb9ed29e0e9f811207b556fde";
+      sha256 = "1hhbrg6a2walrvla6q4cd3pgrqbcrf9brzjkb748735shxfn52hd"; }
+    ] ++ stdenv.lib.optional tombPluginSupport {
+      name = "tomb";
+      rev = "3368134898a42c1b758fabac625ec240e125c6be";
+      sha256 = "0qqmxfg4w3r088qhlkhs44036mya82vjflsjjhw2hk8y0wd2i6ds"; }
+  );
 
 in stdenv.mkDerivation rec {
   version = "1.7.1";
@@ -64,7 +74,8 @@ in stdenv.mkDerivation rec {
     tree
     which
     qrencode
-  ] ++ stdenv.lib.optional stdenv.isLinux procps
+  ] ++ optional tombPluginSupport tomb
+    ++ optional stdenv.isLinux procps
     ++ ifEnable x11Support [ dmenu xclip xdotool ]);
 
   postFixup = ''
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 4d355bd86b8b8..44c11d2814af3 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -1,13 +1,25 @@
 { stdenv, fetchurl, pkgconfig, libevent, openssl, zlib, torsocks
 , libseccomp, systemd, libcap
+
+# for update.nix
+, writeScript
+, runCommand
+, common-updater-scripts
+, bash
+, coreutils
+, curl
+, gnugrep
+, gnupg
+, gnused
+, nix
 }:
 
 stdenv.mkDerivation rec {
-  name = "tor-0.3.2.9";
+  name = "tor-0.3.2.10";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${name}.tar.gz";
-    sha256 = "03qn55c969zynnx71r82iaqnadpzq0qclq0zmjhb3n4qma8pnnj3";
+    sha256 = "1vnb2wkcmm8rnz0fqi3k7arl60mpycs8rjn8hvbgv56g3p1pgpv0";
   };
 
   outputs = [ "out" "geoip" ];
@@ -34,6 +46,22 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru.updateScript = import ./update.nix {
+    inherit (stdenv) lib;
+    inherit
+      writeScript
+      runCommand
+      common-updater-scripts
+      bash
+      coreutils
+      curl
+      gnupg
+      gnugrep
+      gnused
+      nix
+    ;
+  };
+
   meta = with stdenv.lib; {
     homepage = https://www.torproject.org/;
     repositories.git = https://git.torproject.org/git/tor;
diff --git a/pkgs/tools/security/tor/update.nix b/pkgs/tools/security/tor/update.nix
new file mode 100644
index 0000000000000..6a7682a8f5786
--- /dev/null
+++ b/pkgs/tools/security/tor/update.nix
@@ -0,0 +1,72 @@
+{ lib
+, writeScript
+, runCommand
+, common-updater-scripts
+, bash
+, coreutils
+, curl
+, gnugrep
+, gnupg
+, gnused
+, nix
+}:
+
+with lib;
+
+let
+  downloadPageUrl = "https://dist.torproject.org";
+
+  # See https://www.torproject.org/docs/signing-keys.html
+  signingKeys = [
+    # Roger Dingledine
+    "B117 2656 DFF9 83C3 042B C699 EB5A 896A 2898 8BF5"
+    "F65C E37F 04BA 5B36 0AE6 EE17 C218 5258 19F7 8451"
+    # Nick Mathewson
+    "2133 BC60 0AB1 33E1 D826 D173 FE43 009C 4607 B1FB"
+    "B117 2656 DFF9 83C3 042B C699 EB5A 896A 2898 8BF5"
+  ];
+in
+
+writeScript "update-tor" ''
+#! ${bash}/bin/bash
+
+set -eu -o pipefail
+
+export PATH=${makeBinPath [
+  common-updater-scripts
+  coreutils
+  curl
+  gnugrep
+  gnupg
+  gnused
+  nix
+]}
+
+srcBase=$(curl -L --list-only -- "${downloadPageUrl}" \
+  | grep -Eo 'tor-([[:digit:]]+\.?)+\.tar\.gz' \
+  | sort -Vu \
+  | tail -n1)
+srcFile=$srcBase
+srcUrl=${downloadPageUrl}/$srcBase
+
+srcName=''${srcBase/.tar.gz/}
+srcVers=(''${srcName//-/ })
+version=''${srcVers[1]}
+
+sigUrl=$srcUrl.asc
+sigFile=''${sigUrl##*/}
+
+# upstream does not support byte ranges ...
+[[ -e "$srcFile" ]] || curl -L -o "$srcFile" -- "$srcUrl"
+[[ -e "$sigFile" ]] || curl -L -o "$sigFile" -- "$sigUrl"
+
+export GNUPGHOME=$PWD/gnupg
+mkdir -m 700 -p "$GNUPGHOME"
+
+gpg --batch --recv-keys ${concatStringsSep " " (map (x: "'${x}'") signingKeys)}
+gpg --batch --verify "$sigFile" "$srcFile"
+
+sha256=$(nix-hash --type sha256 --flat --base32 "$srcFile")
+
+update-source-version tor "$version" "$sha256"
+''
diff --git a/pkgs/tools/system/collectd/default.nix b/pkgs/tools/system/collectd/default.nix
index e9ce2913a6cbc..bb9fa2dd877c8 100644
--- a/pkgs/tools/system/collectd/default.nix
+++ b/pkgs/tools/system/collectd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, darwin
+{ stdenv, fetchurl, fetchpatch, darwin
 # optional:
 , pkgconfig ? null  # most of the extra deps need pkgconfig to be found
 , curl ? null
@@ -65,6 +65,13 @@ stdenv.mkDerivation rec {
     darwin.apple_sdk.frameworks.ApplicationServices
   ];
 
+  # Patch fixes broken build on 18.03
+  # Should be included in the next release of this package
+  patches = fetchpatch {
+    name = "collectd_kafka_fix";
+    url = "https://github.com/collectd/collectd/commit/6c2eb3ad28f08f7e774b6eaea5ae01b0857cf884.patch";
+    sha256 = "14wsyj5xghij9lz7c61bzdyh45zg8pv5xn490cvbqiaci948zzv6";
+  };
   configureFlags = [ "--localstatedir=/var" ];
 
   # do not create directories in /var during installPhase
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index 57cbb44cebff2..9ff5f58f558a1 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -2,17 +2,16 @@
 
 stdenv.mkDerivation rec {
   name = "facter-${version}";
-  version = "3.9.3";
+  version = "3.10.0";
 
   src = fetchFromGitHub {
-    sha256 = "1qd0xsw49nbj22czddxk90di31gx43hacvnmh08gp3001a8g0qcj";
+    sha256 = "0qj23n5h98iirwhnjpcqzmirqf92sjd8mws5dky0pap359j6w792";
     rev = version;
     repo = "facter";
     owner = "puppetlabs";
   };
 
   CXXFLAGS = "-fpermissive";
-  NIX_CFLAGS_COMPILE = "-Wno-error";
   NIX_LDFLAGS = "-lblkid";
 
   cmakeFlags = [ "-DFACTER_RUBY=${ruby}/lib/libruby.so" ];
diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
index a629e493c9298..a2230503551fb 100644
--- a/pkgs/tools/system/syslog-ng/default.nix
+++ b/pkgs/tools/system/syslog-ng/default.nix
@@ -9,11 +9,11 @@ in
 
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "3.13.2";
+  version = "3.14.1";
 
   src = fetchurl {
     url = "https://github.com/balabit/${pname}/releases/download/${name}/${name}.tar.gz";
-    sha256 = "1s6kg91sb8h2w4n60v22zis6pl2rggarpjjp00c81039jggk2gcs";
+    sha256 = "0i79qib47cwg6kd5h4w277h942d6ahb1aj09243rlallr46jci82";
   };
 
   nativeBuildInputs = [ pkgconfig which ];
diff --git a/pkgs/tools/text/html-tidy/default.nix b/pkgs/tools/text/html-tidy/default.nix
index 571dd41244b2d..ccd927002464f 100644
--- a/pkgs/tools/text/html-tidy/default.nix
+++ b/pkgs/tools/text/html-tidy/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "html-tidy-${version}";
-  version = "5.4.0";
+  version = "5.6.0";
 
   src = fetchFromGitHub {
     owner = "htacg";
     repo = "tidy-html5";
     rev = version;
-    sha256 = "1q9ag2dh2j636fw9vyz6gg0kiss8p6lvj22h25nqsw0daan57c32";
+    sha256 = "0w175c5d1babq0w1zzdzw9gl6iqbgyq58v8587s7srp05y3hwy9k";
   };
 
   nativeBuildInputs = [ cmake libxslt/*manpage*/ ];
diff --git a/pkgs/tools/text/mpage/default.nix b/pkgs/tools/text/mpage/default.nix
index 4ebe62ef9a5f6..47e6766d21faa 100644
--- a/pkgs/tools/text/mpage/default.nix
+++ b/pkgs/tools/text/mpage/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec {
   name = "mpage-2.5.6";
   src = fetchurl {
-    url = "http://www.mesa.nl/pub/mpage/${name}.tgz";
+    url = "http://www.libGLU_combined.nl/pub/mpage/${name}.tgz";
     sha256 = "016w9sm06sn1d2lim4p8fzl6wbmad3wigxhflsybzi7p4zy6vrjg";
   };
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     '';
 
     license = "liberal";  # a non-copyleft license, see `Copyright' file
-    homepage = http://www.mesa.nl/pub/mpage/;
+    homepage = http://www.libGLU_combined.nl/pub/mpage/;
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index f00544c907b1b..fff5f3606e941 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -104,7 +104,6 @@ mapAliases (rec {
   inotifyTools = inotify-tools;
   joseki = apache-jena-fuseki; # added 2016-02-28
   json_glib = json-glib; # added 2018-02-25
-  jquery_ui = jquery-ui;  # added 2014-09-07
   kdiff3-qt5 = kdiff3; # added 2017-02-18
   keepassx2-http = keepassx-reboot; # added 2016-10-17
   keepassx-reboot = keepassx-community; # added 2017-02-01
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d5ac725f90d7b..0b04cf9ca1805 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -160,6 +160,12 @@ with pkgs;
 
   fetchdarcs = callPackage ../build-support/fetchdarcs { };
 
+  fetchdocker = callPackage ../build-support/fetchdocker { };
+
+  fetchDockerConfig = callPackage ../build-support/fetchdocker/fetchDockerConfig.nix { };
+
+  fetchDockerLayer = callPackage ../build-support/fetchdocker/fetchDockerLayer.nix { };
+
   fetchfossil = callPackage ../build-support/fetchfossil { };
 
   fetchgit = callPackage ../build-support/fetchgit {
@@ -492,10 +498,6 @@ with pkgs;
 
   aptly = callPackage ../tools/misc/aptly { };
 
-  apulse = callPackage ../misc/apulse { };
-
-  libpressureaudio = callPackage ../misc/apulse/pressureaudio.nix { };
-
   archivemount = callPackage ../tools/filesystems/archivemount { };
 
   arandr = callPackage ../tools/X11/arandr { };
@@ -670,6 +672,14 @@ with pkgs;
 
   reattach-to-user-namespace = callPackage ../os-specific/darwin/reattach-to-user-namespace {};
 
+  skhd = callPackage ../os-specific/darwin/skhd {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
+  qes = callPackage ../os-specific/darwin/qes {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
+
   xcodeenv = callPackage ../development/mobile/xcodeenv { };
 
   titaniumenv = callPackage ../development/mobile/titaniumenv {
@@ -1328,7 +1338,11 @@ with pkgs;
 
   ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { };
 
-  riot-web = callPackage ../applications/networking/instant-messengers/riot/riot-web.nix { };
+  riot-web = callPackage ../applications/networking/instant-messengers/riot/riot-web.nix {
+    conf = config.riot-web.conf or null;
+  };
+
+  rsbep = callPackage ../tools/backup/rsbep { };
 
   rsyslog = callPackage ../tools/system/rsyslog {
     hadoop = null; # Currently Broken
@@ -1567,9 +1581,8 @@ with pkgs;
 
   ciopfs = callPackage ../tools/filesystems/ciopfs { };
 
-  # Use Citrix Receiver 13.4.0 below if you get "A network error occured (SSL error 4)"
-  # See https://discussions.citrix.com/topic/385459-ssl-error-with-135-works-with-134/?p=1977735
-  citrix_receiver        = hiPrio citrix_receiver_13_8_0;
+  citrix_receiver        = hiPrio citrix_receiver_13_9_0;
+  citrix_receiver_13_9_0 = callPackage ../applications/networking/remote/citrix-receiver { version = "13.9.0"; };
   citrix_receiver_13_8_0 = callPackage ../applications/networking/remote/citrix-receiver { version = "13.8.0"; };
   citrix_receiver_13_7_0 = callPackage ../applications/networking/remote/citrix-receiver { version = "13.7.0"; };
   citrix_receiver_13_6_0 = callPackage ../applications/networking/remote/citrix-receiver { version = "13.6.0"; };
@@ -1949,7 +1962,8 @@ with pkgs;
     inherit (darwin) cf-private;
     wxGTK = wxGTK31;
   };
-  doomseeker = callPackage ../applications/misc/doomseeker { };
+
+  doomseeker = qt5.callPackage ../applications/misc/doomseeker { };
 
   doom-bcc = callPackage ../games/zdoom/bcc-git.nix { };
 
@@ -2310,6 +2324,8 @@ with pkgs;
 
   franz = callPackage ../applications/networking/instant-messengers/franz { };
 
+  freedroidrpg = callPackage ../games/freedroidrpg { };
+
   freeipmi = callPackage ../tools/system/freeipmi {};
 
   freetalk = callPackage ../applications/networking/instant-messengers/freetalk {
@@ -2429,6 +2445,8 @@ with pkgs;
 
   git-series = callPackage ../development/tools/git-series { };
 
+  git-sizer = callPackage ../applications/version-management/git-sizer { };
+
   git-up = callPackage ../applications/version-management/git-up { };
 
   gitfs = callPackage ../tools/filesystems/gitfs { };
@@ -2589,10 +2607,6 @@ with pkgs;
   grin = callPackage ../tools/text/grin { };
   ripgrep = callPackage ../tools/text/ripgrep { };
 
-  grive = callPackage ../tools/filesystems/grive {
-    json_c = json-c-0-11; # won't configure with 0.12; others are vulnerable
-  };
-
   grive2 = callPackage ../tools/filesystems/grive2 { };
 
   groff = callPackage ../tools/text/groff {
@@ -3138,6 +3152,8 @@ with pkgs;
 
   libscrypt = callPackage ../development/libraries/libscrypt { };
 
+  libcloudproviders = callPackage ../development/libraries/libcloudproviders { };
+
   libsmi = callPackage ../development/libraries/libsmi { };
 
   lesspipe = callPackage ../tools/misc/lesspipe { };
@@ -3791,8 +3807,6 @@ with pkgs;
 
   networkmanager_dmenu = callPackage ../tools/networking/networkmanager_dmenu  { };
 
-  newsbeuter = callPackage ../applications/networking/feedreaders/newsbeuter { };
-
   newsboat = callPackage ../applications/networking/feedreaders/newsboat { };
 
   nextcloud = callPackage ../servers/nextcloud { };
@@ -4045,9 +4059,7 @@ with pkgs;
 
   p7zip = callPackage ../tools/archivers/p7zip { };
 
-  packagekit = callPackage ../tools/package-management/packagekit {
-    nix = nixUnstable;
-  };
+  packagekit = callPackage ../tools/package-management/packagekit { };
 
   packagekit-qt = libsForQt5.callPackage ../tools/package-management/packagekit/qt.nix { };
 
@@ -4650,6 +4662,8 @@ with pkgs;
 
   sdl-jstest = callPackage ../tools/misc/sdl-jstest { };
 
+  skim = callPackage ../tools/misc/skim { };
+
   sec = callPackage ../tools/admin/sec { };
 
   seccure = callPackage ../tools/security/seccure { };
@@ -4809,6 +4823,8 @@ with pkgs;
 
   squashfsTools = callPackage ../tools/filesystems/squashfs { };
 
+  squashfuse = callPackage ../tools/filesystems/squashfuse { };
+
   srcml = callPackage ../applications/version-management/srcml { };
 
   sshfs-fuse = callPackage ../tools/filesystems/sshfs-fuse { };
@@ -5487,7 +5503,7 @@ with pkgs;
 
   wv2 = callPackage ../tools/misc/wv2 { };
 
-  inherit (ocamlPackages) wyrd;
+  wyrd = callPackage ../tools/misc/wyrd { };
 
   x86info = callPackage ../os-specific/linux/x86info { };
 
@@ -5567,7 +5583,9 @@ with pkgs;
 
   xsv = callPackage ../tools/text/xsv { };
 
-  xtreemfs = callPackage ../tools/filesystems/xtreemfs {};
+  xtreemfs = callPackage ../tools/filesystems/xtreemfs {
+    boost = boost165;
+  };
 
   xurls = callPackage ../tools/text/xurls {};
 
@@ -5583,6 +5601,9 @@ with pkgs;
 
   yarn = callPackage ../development/tools/yarn  { };
 
+  yarn2nix = callPackage ../development/tools/yarn2nix { };
+  inherit (yarn2nix) mkYarnPackage;
+
   yasr = callPackage ../applications/audio/yasr { };
 
   yank = callPackage ../tools/misc/yank { };
@@ -5768,6 +5789,7 @@ with pkgs;
     };
   };
 
+  clang_6  = llvmPackages_6.clang;
   clang_5  = llvmPackages_5.clang;
   clang_4  = llvmPackages_4.clang;
   clang_39 = llvmPackages_39.clang;
@@ -6414,13 +6436,16 @@ with pkgs;
   lld = llvmPackages.lld;
   lld_4 = llvmPackages_4.lld;
   lld_5 = llvmPackages_5.lld;
+  lld_6 = llvmPackages_6.lld;
 
   lldb = llvmPackages.lldb;
   lldb_4 = llvmPackages_4.lldb;
   lldb_5 = llvmPackages_5.lldb;
+  lldb_6 = llvmPackages_6.lldb;
 
   llvm = llvmPackages.llvm;
 
+  llvm_6  = llvmPackages_6.llvm;
   llvm_5  = llvmPackages_5.llvm;
   llvm_4  = llvmPackages_4.llvm;
   llvm_39 = llvmPackages_39.llvm;
@@ -6484,6 +6509,12 @@ with pkgs;
     stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
   });
 
+  llvmPackages_6 = callPackage ../development/compilers/llvm/6 ({
+    inherit (stdenvAdapters) overrideCC;
+  } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
+    stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
+  });
+
   manticore = callPackage ../development/compilers/manticore { };
 
   mentorToolchains = recurseIntoAttrs (
@@ -6930,8 +6961,6 @@ with pkgs;
   mujs = callPackage ../development/interpreters/mujs { };
 
   nix-exec = callPackage ../development/interpreters/nix-exec {
-    nix = nixUnstable;
-
     git = gitMinimal;
   };
 
@@ -7289,6 +7318,8 @@ with pkgs;
   ansible  = ansible_2_4;
   ansible2 = ansible_2_4;
 
+  ansible-lint = callPackage ../development/tools/ansible-lint {};
+
   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
 
   antlr3_4 = callPackage ../development/tools/parsing/antlr/3.4.nix { };
@@ -7769,7 +7800,9 @@ with pkgs;
 
   inotify-tools = callPackage ../development/tools/misc/inotify-tools { };
 
-  intel-gpu-tools = callPackage ../development/tools/misc/intel-gpu-tools {};
+  intel-gpu-tools = callPackage ../development/tools/misc/intel-gpu-tools { };
+
+  insomnia = callPackage ../development/web/insomnia { };
 
   iozone = callPackage ../development/tools/misc/iozone { };
 
@@ -8536,7 +8569,7 @@ with pkgs;
   # Multi-arch "drivers" which we want to build for i686.
   driversi686Linux = recurseIntoAttrs {
     inherit (pkgsi686Linux)
-      mesa_noglu
+      mesa_drivers
       vaapiIntel
       libvdpau-va-gl
       vaapiVdpau
@@ -9296,7 +9329,6 @@ with pkgs;
 
   json-glib = callPackage ../development/libraries/json-glib { };
 
-  json-c-0-11 = callPackage ../development/libraries/json-c/0.11.nix { }; # vulnerable
   json_c = callPackage ../development/libraries/json-c { };
 
   jsoncpp = callPackage ../development/libraries/jsoncpp { };
@@ -9464,7 +9496,7 @@ with pkgs;
   libcddb = callPackage ../development/libraries/libcddb { };
 
   libcdio = callPackage ../development/libraries/libcdio { };
-  libcdio082 = callPackage ../development/libraries/libcdio/0.82.nix { };
+  libcdio-paranoia = callPackage ../development/libraries/libcdio-paranoia { };
 
   libcdr = callPackage ../development/libraries/libcdr { lcms = lcms2; };
 
@@ -9543,7 +9575,7 @@ with pkgs;
 
   libdevil-nox = libdevil.override {
     libX11 = null;
-    mesa_noglu = null;
+    libGL = null;
   };
 
   libdigidoc = callPackage ../development/libraries/libdigidoc { };
@@ -10057,9 +10089,7 @@ with pkgs;
 
   libpfm = callPackage ../development/libraries/libpfm { };
 
-  libpqxx = callPackage ../development/libraries/libpqxx {
-    gnused = gnused_422;
-  };
+  libpqxx = callPackage ../development/libraries/libpqxx { };
 
   libproxy = callPackage ../development/libraries/libproxy {
     inherit (darwin.apple_sdk.frameworks) SystemConfiguration CoreFoundation JavaScriptCore;
@@ -10270,8 +10300,8 @@ with pkgs;
 
   libxmi = callPackage ../development/libraries/libxmi { };
 
-  libxml2 = callPackage ../development/libraries/libxml2 {
-  };
+  libxml2 = callPackage ../development/libraries/libxml2 { };
+
   libxml2Python = pkgs.buildEnv { # slightly hacky
     name = "libxml2+py-${self.libxml2.version}";
     paths = with libxml2; [ dev bin py ];
@@ -10376,9 +10406,28 @@ with pkgs;
 
   mergerfs = callPackage ../tools/filesystems/mergerfs { };
 
-  mesaSupported = lib.elem system lib.platforms.mesaPlatforms;
+  ## libGL/libGLU/Mesa stuff
+
+  # Default libGL implementation, should provide headers and libGL.so/libEGL.so/... to link agains them
+  # Default implementation is `mesa`, but can be eventually replaced with `libglvnd`,
+  # or other runtime dispatcher
+  libGL = mesa_noglu;
+
+  # Default libGLU
+  libGLU = mesa_glu;
+
+  # Combined derivation, contains both libGL and libGLU
+  # Please, avoid using this attribute.  It was meant as transitional hack
+  # for packages that assume that libGLU and libGL live in the same prefix.
+  # libGLU_combined propagates both libGL and libGLU
+  libGLU_combined = mesa;
+
+  # Default derivation with libGL.so.1 to link into /run/opengl-drivers (if need)
+  libGL_driver = mesa_drivers;
+
+  libGLSupported = lib.elem system lib.platforms.mesaPlatforms;
 
-  mesaDarwinOr = alternative: if stdenv.isDarwin
+  libGLDarwinOr = alternative: if stdenv.isDarwin
     then callPackage ../development/libraries/mesa-darwin {
       inherit (darwin.apple_sdk.frameworks) OpenGL;
       inherit (darwin.apple_sdk.libs) Xplugin;
@@ -10386,14 +10435,16 @@ with pkgs;
     }
     else alternative;
 
-  mesa_noglu = mesaDarwinOr (callPackage ../development/libraries/mesa {
+  # FIXME: should be `libGL = libGLDarwinOr mesa_nonglu` but this change cause mass rebuild,
+  # until all packages will refer to libGL/GLU/GLU combined
+  mesa_noglu = libGLDarwinOr (callPackage ../development/libraries/mesa {
     # makes it slower, but during runtime we link against just mesa_drivers
     # through /run/opengl-driver*, which is overriden according to config.grsecurity
     # grsecEnabled = true; # no more support in nixpkgs ATM
   });
 
-  mesa_glu =  mesaDarwinOr (callPackage ../development/libraries/mesa-glu { });
-  mesa_drivers = mesaDarwinOr (
+  mesa_glu =  libGLDarwinOr (callPackage ../development/libraries/mesa-glu { });
+  mesa_drivers = libGLDarwinOr (
     let mo = mesa_noglu.override {
       grsecEnabled = config.grsecurity or false;
       enableTextureFloats = true;
@@ -10405,7 +10456,7 @@ with pkgs;
   # for packages that assume that libGLU and libGL live in the same prefix.
   # Otherwise it's better to use mesa_glu or mesa_noglu, depending on whether
   # you need libGLU or not (_glu propagates _noglu).
-  mesa = mesaDarwinOr (buildEnv {
+  mesa = libGLDarwinOr (buildEnv {
     name = "mesa-${mesa_noglu.version}";
     paths = [ mesa_noglu.dev mesa_noglu.out mesa_glu mesa_glu.dev ];
     meta = {
@@ -10413,6 +10464,8 @@ with pkgs;
     };
   });
 
+  ## End libGL/libGLU/Mesa stuff
+
   meterbridge = callPackage ../applications/audio/meterbridge { };
 
   mhddfs = callPackage ../tools/filesystems/mhddfs { };
@@ -10525,8 +10578,7 @@ with pkgs;
   };
   libnghttp2 = nghttp2.lib;
 
-  nix-plugins = callPackage ../development/libraries/nix-plugins
-    { nix = nixUnstable; };
+  nix-plugins = callPackage ../development/libraries/nix-plugins { };
 
   nlohmann_json = callPackage ../development/libraries/nlohmann_json { };
 
@@ -10804,7 +10856,6 @@ with pkgs;
   };
 
   postgis = callPackage ../development/libraries/postgis { };
-  postgis_2_3 = callPackage ../development/libraries/postgis/2.3.nix { };
 
   protobuf = protobuf3_4;
 
@@ -10837,7 +10888,7 @@ with pkgs;
   qoauth = callPackage ../development/libraries/qoauth { };
 
   qt3 = callPackage ../development/libraries/qt-3 {
-    openglSupport = mesaSupported;
+    openglSupport = libGLSupported;
     libpng = libpng12;
   };
 
@@ -10845,13 +10896,13 @@ with pkgs;
 
   qt48 = callPackage ../development/libraries/qt-4.x/4.8 {
     # GNOME dependencies are not used unless gtkStyle == true
-    mesa = mesa_noglu;
     inherit (pkgs.gnome2) libgnomeui GConf gnome_vfs;
     cups = if stdenv.isLinux then cups else null;
 
     # XXX: mariadb doesn't built on fbsd as of nov 2015
     mysql = if (!stdenv.isFreeBSD) then mysql else null;
 
+    inherit libGL;
     inherit (pkgs.darwin) cf-private libobjc;
     inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices OpenGL Cocoa AGL;
   };
@@ -10876,7 +10927,7 @@ with pkgs;
       bison = bison2; # error: too few arguments to function 'int yylex(...
       inherit cups;
       harfbuzz = harfbuzz-icu;
-      mesa = mesa_noglu;
+      inherit libGL;
       inherit perl;
       inherit (gst_all_1) gstreamer gst-plugins-base;
     });
@@ -10890,7 +10941,7 @@ with pkgs;
       bison = bison2; # error: too few arguments to function 'int yylex(...
       inherit cups;
       harfbuzz = harfbuzz-icu;
-      mesa = mesa_noglu;
+      inherit libGL;
       inherit perl;
       inherit (gst_all_1) gstreamer gst-plugins-base;
       inherit (gnome3) gtk3 dconf;
@@ -10905,7 +10956,7 @@ with pkgs;
       bison = bison2; # error: too few arguments to function 'int yylex(...
       inherit cups;
       harfbuzz = harfbuzz-icu;
-      mesa = mesa_noglu;
+      inherit libGL;
       inherit perl;
       inherit (gst_all_1) gstreamer gst-plugins-base;
       inherit (gnome3) gtk3 dconf;
@@ -11156,7 +11207,7 @@ with pkgs;
   schroedinger = callPackage ../development/libraries/schroedinger { };
 
   SDL = callPackage ../development/libraries/SDL {
-    openglSupport = mesaSupported;
+    openglSupport = libGLSupported;
     alsaSupport = stdenv.isLinux;
     x11Support = !stdenv.isCygwin;
     pulseaudioSupport = config.pulseaudio or stdenv.isLinux;
@@ -11180,7 +11231,7 @@ with pkgs;
   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
 
   SDL2 = callPackage ../development/libraries/SDL2 {
-    openglSupport = mesaSupported;
+    openglSupport = libGLSupported;
     alsaSupport = stdenv.isLinux;
     x11Support = !stdenv.isCygwin;
     waylandSupport = stdenv.isLinux;
@@ -11502,11 +11553,14 @@ with pkgs;
     inherit (python2Packages) python;
   };
 
-  v8 = callPackage ../development/libraries/v8 {
+  v8 = callPackage ../development/libraries/v8 ({
     inherit (python2Packages) python gyp;
     cctools = darwin.cctools;
     icu = icu58; # v8-5.4.232 fails against icu4c-59.1
-  };
+  } // lib.optionalAttrs stdenv.isLinux {
+    # doesn't build with gcc7
+    stdenv = overrideCC stdenv gcc6;
+  });
 
   v8_static = lowPrio (self.v8.override { static = true; });
 
@@ -11677,7 +11731,9 @@ with pkgs;
 
   xalanc = callPackage ../development/libraries/xalanc {};
 
-  xgboost = callPackage ../development/libraries/xgboost { };
+  xgboost = callPackage ../development/libraries/xgboost {
+    cudaSupport = config.cudaSupport or false;
+  };
 
   xgeometry-select = callPackage ../tools/X11/xgeometry-select { };
 
@@ -11855,10 +11911,6 @@ with pkgs;
 
   ### DEVELOPMENT / LIBRARIES / JAVASCRIPT
 
-  jquery = callPackage ../development/libraries/javascript/jquery { };
-
-  jquery-ui = callPackage ../development/libraries/javascript/jquery-ui { };
-
   yuicompressor = callPackage ../development/tools/yuicompressor { };
 
   ### DEVELOPMENT / BOWER MODULES (JAVASCRIPT)
@@ -12189,7 +12241,9 @@ with pkgs;
   knot-dns = callPackage ../servers/dns/knot-dns { };
   knot-resolver = callPackage ../servers/dns/knot-resolver {
     # TODO: vimNox after it gets fixed on Darwin or something lighter
-    hexdump = if stdenv.isLinux then utillinux.bin else vim/*xxd*/;
+    hexdump = if stdenv.isLinux then utillinux.bin
+              else if stdenv.isDarwin then darwin.shell_cmds
+              else vim/*xxd*/;
   };
 
   rdkafka = callPackage ../development/libraries/rdkafka { };
@@ -12316,10 +12370,7 @@ with pkgs;
 
   pshs = callPackage ../servers/http/pshs { };
 
-  libpulseaudio = callPackage ../servers/pulseaudio {
-    libOnly = true;
-    inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
-  };
+  # PulseAudio daemons
 
   # Name is changed to prevent use in packages;
   # please use libpulseaudio instead.
@@ -12339,6 +12390,25 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
   };
 
+  # libpulse implementations
+
+  libpulseaudio-vanilla = callPackage ../servers/pulseaudio {
+    libOnly = true;
+    inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
+  };
+
+  apulse = callPackage ../misc/apulse { };
+
+  libpressureaudio = callPackage ../misc/apulse/pressureaudio.nix {
+    libpulseaudio = libpulseaudio-vanilla; # headers only
+  };
+
+  libcardiacarrest = callPackage ../misc/libcardiacarrest {
+    libpulseaudio = libpulseaudio-vanilla; # meta only
+  };
+
+  libpulseaudio = libpulseaudio-vanilla;
+
   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
 
   pies = callPackage ../servers/pies { };
@@ -12489,8 +12559,6 @@ with pkgs;
 
   psqlodbc = callPackage ../servers/sql/postgresql/psqlodbc { };
 
-  pumpio = callPackage ../servers/web-apps/pump.io { };
-
   pure-ftpd = callPackage ../servers/ftp/pure-ftpd { };
 
   pyIRCt = callPackage ../servers/xmpp/pyIRCt {};
@@ -12693,7 +12761,7 @@ with pkgs;
     inherit (buildPackages) pkgconfig xmlto asciidoc flex bison;
     inherit (darwin) apple_sdk cf-private libobjc;
     bootstrap_cmds = if stdenv.isDarwin then darwin.bootstrap_cmds else null;
-    mesa = mesa_noglu;
+    mesa = libGL;
     python = python2; # Incompatible with Python 3x
     udev = if stdenv.isLinux then udev else null;
     libdrm = if stdenv.isLinux then libdrm else null;
@@ -12854,6 +12922,8 @@ with pkgs;
 
   fwupdate = callPackage ../os-specific/linux/firmware/fwupdate { };
 
+  fwts = callPackage ../os-specific/linux/fwts { };
+
   libossp_uuid = callPackage ../development/libraries/libossp-uuid { };
 
   libuuid =
@@ -13384,7 +13454,7 @@ with pkgs;
 
   # A function to build a manually-configured kernel
   linuxManualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {});
-  buildLinux = makeOverridable (callPackage ../os-specific/linux/kernel/generic.nix {});
+  buildLinux = attrs: callPackage ../os-specific/linux/kernel/generic.nix attrs;
 
   keyutils = callPackage ../os-specific/linux/keyutils { };
 
@@ -13598,6 +13668,8 @@ with pkgs;
   qemu_xen-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen-light; });
   qemu_xen_4_8 = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_8-slim; });
   qemu_xen_4_8-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_8-light; });
+  qemu_xen_4_10 = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_10-slim; });
+  qemu_xen_4_10-light = lowPrio (qemu.override { hostCpuOnly = true; xenSupport = true; xen = xen_4_10-light; });
 
   qemu_test = lowPrio (qemu.override { hostCpuOnly = true; nixosTestRunner = true; });
 
@@ -13921,8 +13993,6 @@ with pkgs;
 
   crimson = callPackage ../data/fonts/crimson {};
 
-  deepin-icon-theme = callPackage ../data/icons/deepin-icon-theme { };
-
   dejavu_fonts = lowPrio (callPackage ../data/fonts/dejavu-fonts {
     inherit (perlPackages) FontTTF;
   });
@@ -14187,6 +14257,8 @@ with pkgs;
 
   powerline-fonts = callPackage ../data/fonts/powerline-fonts { };
 
+  powerline-go = callPackage ../tools/misc/powerline-go { };
+
   profont = callPackage ../data/fonts/profont { };
 
   proggyfonts = callPackage ../data/fonts/proggyfonts { };
@@ -14222,6 +14294,8 @@ with pkgs;
 
   qgo = libsForQt5.callPackage ../games/qgo { };
 
+  qmc2 = libsForQt5.callPackage ../misc/emulators/qmc2 { };
+
   quattrocento = callPackage ../data/fonts/quattrocento {};
 
   quattrocento-sans = callPackage ../data/fonts/quattrocento-sans {};
@@ -14379,7 +14453,6 @@ with pkgs;
   abcde = callPackage ../applications/audio/abcde {
     inherit (perlPackages) DigestSHA MusicBrainz MusicBrainzDiscID;
     inherit (pythonPackages) eyeD3;
-    libcdio = libcdio082;
   };
 
   abiword = callPackage ../applications/office/abiword {
@@ -14514,6 +14587,9 @@ with pkgs;
   dapp = self.altcoins.dapp;
   hevm = self.altcoins.hevm;
 
+  parity = self.altcoins.parity;
+  parity-beta = self.altcoins.parity-beta;
+
   stellar-core = self.altcoins.stellar-core;
 
   aumix = callPackage ../applications/audio/aumix {
@@ -14770,7 +14846,6 @@ with pkgs;
   cmus = callPackage ../applications/audio/cmus {
     inherit (darwin.apple_sdk.frameworks) CoreAudio;
     libjack = libjack2;
-    libcdio = libcdio082;
     ffmpeg = ffmpeg_2;
 
     pulseaudioSupport = config.pulseaudio or false;
@@ -17221,6 +17296,8 @@ with pkgs;
   };
   rrsync = callPackage ../applications/networking/sync/rsync/rrsync.nix {};
 
+  rtl_433 = callPackage ../applications/misc/rtl_433 { };
+
   rtl-sdr = callPackage ../applications/misc/rtl-sdr { };
 
   rtv = callPackage ../applications/misc/rtv { };
@@ -17275,6 +17352,8 @@ with pkgs;
 
   scantailor = callPackage ../applications/graphics/scantailor { };
 
+  scantailor-advanced = qt5.callPackage ../applications/graphics/scantailor/advanced.nix { };
+
   sc-im = callPackage ../applications/misc/sc-im { };
 
   scite = callPackage ../applications/editors/scite { };
@@ -17457,6 +17536,8 @@ with pkgs;
     inherit (pkgs.vamp) vampSDK;
   };
 
+  soulseekqt = callPackage ../applications/networking/p2p/soulseekqt { };
+
   sox = callPackage ../applications/misc/audio/sox {
     enableLame = config.sox.enableLame or false;
   };
@@ -17618,11 +17699,6 @@ with pkgs;
     vte = gnome3.vte;
   };
 
-  deepin-terminal = callPackage ../applications/misc/deepin-terminal {
-    inherit (gnome3) libgee vte;
-    wnck = libwnck3;
-  };
-
   termite = callPackage ../applications/misc/termite {
     vte = gnome3.vte-ng;
   };
@@ -17776,6 +17852,8 @@ with pkgs;
 
   utox = callPackage ../applications/networking/instant-messengers/utox { };
 
+  valentina = libsForQt5.callPackage ../applications/misc/valentina { };
+
   vanubi = callPackage ../applications/editors/vanubi { };
 
   vbindiff = callPackage ../applications/editors/vbindiff { };
@@ -18086,6 +18164,7 @@ with pkgs;
       ++ optional (cfg.enableFceumm or false) fceumm
       ++ optional (cfg.enableGambatte or false) gambatte
       ++ optional (cfg.enableGenesisPlusGX or false) genesis-plus-gx
+      ++ optional (cfg.enableHiganSFC or false) higan-sfc
       ++ optional (cfg.enableMAME or false) mame
       ++ optional (cfg.enableMGBA or false) mgba
       ++ optional (cfg.enableMupen64Plus or false) mupen64plus
@@ -18237,6 +18316,9 @@ with pkgs;
   xen_4_8 = xenPackages.xen_4_8-vanilla;
   xen_4_8-slim = xenPackages.xen_4_8-slim;
   xen_4_8-light = xenPackages.xen_4_8-light;
+  xen_4_10 = xenPackages.xen_4_10-vanilla;
+  xen_4_10-slim = xenPackages.xen_4_10-slim;
+  xen_4_10-light = xenPackages.xen_4_10-light;
 
   xkbset = callPackage ../tools/X11/xkbset { };
 
@@ -18539,12 +18621,13 @@ with pkgs;
   confd = callPackage ../tools/system/confd { };
 
   construoBase = lowPrio (callPackage ../games/construo {
-    mesa = null;
+    libGL = null;
     freeglut = null;
   });
 
   construo = construoBase.override {
-    inherit mesa freeglut;
+    inherit  freeglut;
+    libGL = libGLU_combined;
   };
 
   crack_attack = callPackage ../games/crack-attack { };
@@ -18692,6 +18775,8 @@ with pkgs;
 
   gnugo = callPackage ../games/gnugo { };
 
+  gnujump = callPackage ../games/gnujump { };
+
   gogui = callPackage ../games/gogui {};
 
   gtetrinet = callPackage ../games/gtetrinet {
@@ -18883,7 +18968,7 @@ with pkgs;
   racer = callPackage ../games/racer { };
 
   residualvm = callPackage ../games/residualvm {
-    openglSupport = mesaSupported;
+    openglSupport = libGLSupported;
   };
 
   rftg = callPackage ../games/rftg { };
@@ -19175,6 +19260,8 @@ with pkgs;
 
   clearlooks-phenix = callPackage ../misc/themes/clearlooks-phenix { };
 
+  deepin = recurseIntoAttrs (callPackage ../desktops/deepin { });
+
   enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment {
     callPackage = newScope pkgs.enlightenment;
   });
@@ -19242,8 +19329,6 @@ with pkgs;
 
   orion = callPackage ../misc/themes/orion {};
 
-  deepin-gtk-theme = callPackage ../misc/themes/deepin { };
-
   elementary-gtk-theme = callPackage ../misc/themes/elementary { };
 
   albatross = callPackage ../misc/themes/albatross { };
@@ -19556,6 +19641,8 @@ with pkgs;
 
   cryptoverif = callPackage ../applications/science/logic/cryptoverif { };
 
+  caprice32 = callPackage ../misc/emulators/caprice32 { };
+
   cubicle = callPackage ../applications/science/logic/cubicle { };
 
   cvc3 = callPackage ../applications/science/logic/cvc3 {
@@ -19682,6 +19769,8 @@ with pkgs;
   z3_4_5_0 = callPackage ../applications/science/logic/z3/4.5.0.nix {};
   z3 = callPackage ../applications/science/logic/z3 { python = python2; };
 
+  tlaplus = callPackage ../applications/science/logic/tlaplus {};
+
   aiger = callPackage ../applications/science/logic/aiger {};
 
   avy = callPackage ../applications/science/logic/avy {};
@@ -19793,7 +19882,9 @@ with pkgs;
 
   pcalc = callPackage ../applications/science/math/pcalc { };
 
-  bcal = callPackage ../applications/science/math/bcal { };
+  bcal = callPackage ../applications/science/math/bcal {
+    stdenv = gccStdenv;
+  };
 
   pspp = callPackage ../applications/science/math/pspp {
     inherit (gnome3) gtksourceview;
@@ -20180,6 +20271,7 @@ with pkgs;
       stateDir = config.nix.stateDir or "/nix/var";
       })
     nix
+    nix1
     nixStable
     nixUnstable;
 
@@ -20191,7 +20283,7 @@ with pkgs;
 
   nixui = callPackage ../tools/package-management/nixui { node_webkit = nwjs_0_12; };
 
-  nix-bundle = callPackage ../tools/package-management/nix-bundle { nix = nixUnstable; };
+  nix-bundle = callPackage ../tools/package-management/nix-bundle { };
 
   nix-delegate = haskell.lib.justStaticExecutables haskellPackages.nix-delegate;
   nix-deploy = haskell.lib.justStaticExecutables haskellPackages.nix-deploy;
@@ -20214,7 +20306,7 @@ with pkgs;
 
   nix-template-rpm = callPackage ../build-support/templaterpm { inherit (pythonPackages) python toposort; };
 
-  nix-repl = callPackage ../tools/package-management/nix-repl { };
+  nix-repl = callPackage ../tools/package-management/nix-repl { nix = nix1; };
 
   nix-serve = callPackage ../tools/package-management/nix-serve { };
 
@@ -20297,6 +20389,8 @@ with pkgs;
 
   pt = callPackage ../applications/misc/pt { };
 
+  protocol = python3Packages.callPackage ../applications/networking/protocol { };
+
   pykms = callPackage ../tools/networking/pykms { };
 
   pyload = callPackage ../applications/networking/pyload {};
@@ -20309,7 +20403,10 @@ with pkgs;
 
   redprl = callPackage ../applications/science/logic/redprl { };
 
-  retroarchBare = callPackage ../misc/emulators/retroarch { };
+  retroarchBare = callPackage ../misc/emulators/retroarch {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) AppKit Foundation;
+  };
 
   retroarch = wrapRetroArch { retroarch = retroarchBare; };
 
@@ -20513,6 +20610,8 @@ with pkgs;
   vips = callPackage ../tools/graphics/vips { };
   nip2 = callPackage ../tools/graphics/nip2 { };
 
+  virglrenderer = callPackage ../development/libraries/virglrenderer { };
+
   vokoscreen = libsForQt5.callPackage ../applications/video/vokoscreen { };
 
   wavegain = callPackage ../applications/audio/wavegain { };
@@ -20799,6 +20898,8 @@ with pkgs;
     cc-wrapper-libcxx-4 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_4.libcxxStdenv; };
     cc-wrapper-clang-5 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_5.stdenv; };
     cc-wrapper-libcxx-5 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_5.libcxxStdenv; };
+    cc-wrapper-clang-6 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_6.stdenv; };
+    cc-wrapper-libcxx-6 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_6.libcxxStdenv; };
     stdenv-inputs = callPackage ../test/stdenv-inputs { };
 
     cc-multilib-gcc = callPackage ../test/cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
diff --git a/pkgs/top-level/dotnet-packages.nix b/pkgs/top-level/dotnet-packages.nix
index 43182b3f2aaaa..ca4469e9e998b 100644
--- a/pkgs/top-level/dotnet-packages.nix
+++ b/pkgs/top-level/dotnet-packages.nix
@@ -888,13 +888,13 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
   Nuget = buildDotnetPackage {
     baseName = "Nuget";
-    version = "2.8.5";
+    version = "3.4.3";
 
     src = fetchFromGitHub {
       owner = "mono";
       repo = "nuget-binary";
-      rev = "da1f2102f8172df6f7a1370a4998e3f88b91c047";
-      sha256 = "1hbnckc4gvqkknf8gh1k7iwqb4vdzifdjd19i60fnczly5v8m1c3";
+      rev = "1f3025c2eb13bfcb56b47ddd77329ac3d9911d1c";
+      sha256 = "01snk05hcrp5i2ys3p1y34r05q1b460q6wb8p3vwpba2q2czdax5";
     };
 
     buildInputs = [ unzip ];
@@ -903,7 +903,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
     outputFiles = [ "*" ];
     dllFiles = [ "NuGet*.dll" ];
-    exeFiles = [ "NuGet.exe" ];
+    exeFiles = [ "nuget.exe" ];
   };
 
   Paket = buildDotnetPackage rec {
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index a589ceb7e0c95..75f2ab9e58293 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -43,6 +43,35 @@ let
     inherit lua;
   };
 
+  bit32 = buildLuaPackage rec {
+    version = "5.3.0";
+    name = "bit32-${version}";
+
+    src = fetchFromGitHub {
+      owner = "keplerproject";
+      repo = "lua-compat-5.2";
+      rev = "bitlib-${version}";
+      sha256 = "1ipqlbvb5w394qwhm2f3w6pdrgy8v4q8sps5hh3pqz14dcqwakhj";
+    };
+
+    buildPhase = ''
+      cc ${if stdenv.isDarwin then "-bundle -undefined dynamic_lookup -all_load" else "-shared"} -Ic-api lbitlib.c -o bit32.so
+    '';
+
+    installPhase = ''
+      mkdir -p $out/lib/lua/${lua.luaversion}
+      install -p bit32.so $out/lib/lua/${lua.luaversion}
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Lua 5.2 bit manipulation library";
+      homepage = "http://www.lua.org/manual/5.2/manual.html#6.7";
+      license = licenses.mit;
+      maintainers = with maintainers; [ lblasc ];
+      platforms = platforms.unix;
+    };
+  };
+
   luabitop = buildLuaPackage rec {
     version = "1.0.2";
     name = "bitop-${version}";
@@ -270,22 +299,34 @@ let
 
   luaposix = buildLuaPackage rec {
     name = "posix-${version}";
-    version = "33.4.0";
+    version = "34.0.4";
 
     src = fetchFromGitHub {
       owner = "luaposix";
       repo = "luaposix";
       rev = "release-v${version}";
-      sha256 = "0y531p54lx2yf243bcsyp6sv8fvbqidp20yry0xvb85p8zw9dlrq";
+      sha256 = "0p5583vidsm7s97zihf47c34vscwgbl86axrnj44j328v45kxb2z";
     };
 
-    buildInputs = [ perl ];
+    propagatedBuildInputs = [ std.normalize bit32 ];
+
+    buildPhase = ''
+      ${lua}/bin/lua build-aux/luke \
+        package="luaposix" \
+        version="${version}"
+    '';
+
+    installPhase = ''
+      ${lua}/bin/lua build-aux/luke install --quiet \
+        INST_LIBDIR="$out/lib/lua/${lua.luaversion}" \
+        INST_LUADIR="$out/share/lua/${lua.luaversion}"
+    '';
 
     meta = with stdenv.lib; {
       description = "Lua bindings for POSIX API";
       homepage = "https://github.com/luaposix/luaposix";
       license = licenses.mit;
-      maintainers = with maintainers; [ vyp ];
+      maintainers = with maintainers; [ vyp lblasc ];
       platforms = platforms.unix;
     };
   };
@@ -726,6 +767,64 @@ let
     };
   };
 
+  std._debug = buildLuaPackage rec {
+    name = "std._debug-${version}";
+    version = "1.0";
+
+    src = fetchFromGitHub {
+      owner = "lua-stdlib";
+      repo = "_debug";
+      rev = "v${version}";
+      sha256 = "01kfs6k9j9zy4bvk13jx18ssfsmhlciyrni1x32qmxxf4wxyi65n";
+    };
+
+    # No Makefile.
+    dontBuild = true;
+
+    installPhase = ''
+      mkdir -p $out/share/lua/${lua.luaversion}/std
+      cp -r lib/std/_debug $out/share/lua/${lua.luaversion}/std/
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Manage an overall debug state, and associated hint substates.";
+      homepage    = https://lua-stdlib.github.io/_debug;
+      license     = licenses.mit;
+      maintainers = with maintainers; [ lblasc ];
+      platforms   = platforms.unix;
+    };
+  };
+
+  std.normalize = buildLuaPackage rec {
+    name = "std.normalize-${version}";
+    version = "2.0.1";
+
+    src = fetchFromGitHub {
+      owner = "lua-stdlib";
+      repo = "normalize";
+      rev = "v${version}";
+      sha256 = "1yz96r28d2wcgky6by92a21755bf4wzpn65rdv2ps0fxywgw5rda";
+    };
+
+    propagatedBuildInputs = [ std._debug ];
+
+    # No Makefile.
+    dontBuild = true;
+
+    installPhase = ''
+      mkdir -p $out/share/lua/${lua.luaversion}/std
+      cp -r lib/std/normalize $out/share/lua/${lua.luaversion}/std/
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Normalized Lua Functions";
+      homepage    = https://lua-stdlib.github.io/normalize;
+      license     = licenses.mit;
+      maintainers = with maintainers; [ lblasc ];
+      platforms   = platforms.unix;
+    };
+  };
+
   vicious = stdenv.mkDerivation rec {
     name = "vicious-${version}";
     version = "2.3.1";
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 4a6e4e815bb60..a8111f9256e00 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -54,7 +54,9 @@ let
 
     base64 = callPackage ../development/ocaml-modules/base64 { };
 
-    bap = callPackage ../development/ocaml-modules/bap { };
+    bap = callPackage ../development/ocaml-modules/bap {
+      inherit (janeStreet_0_9_0) core_kernel ppx_jane parsexp;
+    };
 
     batteries = callPackage ../development/ocaml-modules/batteries { };
 
@@ -117,7 +119,10 @@ let
     camlimages_4_1 = callPackage ../development/ocaml-modules/camlimages/4.1.nix {
       giflib = pkgs.giflib_4_1;
     };
-    camlimages = camlimages_4_1;
+    camlimages =
+          if lib.versionOlder "4.06" ocaml.version
+          then callPackage ../development/ocaml-modules/camlimages { }
+          else camlimages_4_1;
 
     benchmark = callPackage ../development/ocaml-modules/benchmark { };
 
@@ -712,10 +717,19 @@ let
     # Jane Street
 
     janePackage = callPackage ../development/ocaml-modules/janestreet/janePackage.nix {};
-
+    
     janeStreet = import ../development/ocaml-modules/janestreet {
-      inherit lib janePackage ocaml ocamlbuild ctypes cryptokit magic-mime num;
-      inherit ocaml-migrate-parsetree octavius ounit ppx_deriving re zarith;
+      inherit lib janePackage ocaml ocamlbuild angstrom ctypes cryptokit;
+      inherit magic-mime num ocaml-migrate-parsetree octavius ounit;
+      inherit ppx_deriving re zarith;
+      inherit (pkgs) stdenv openssl;
+    };
+    
+    janeStreet_0_9_0 = import ../development/ocaml-modules/janestreet/old.nix {
+      janePackage = callPackage ../development/ocaml-modules/janestreet/janePackage.nix { defaultVersion = "0.9.0"; };
+      inherit lib ocaml ocamlbuild ctypes cryptokit;
+      inherit magic-mime num ocaml-migrate-parsetree octavius ounit;
+      inherit ppx_deriving re zarith;
       inherit (pkgs) stdenv openssl;
     };
 
@@ -955,10 +969,6 @@ let
 
     # Apps / from all-packages
 
-    wyrd = callPackage ../tools/misc/wyrd {
-      ncurses = pkgs.ncurses5;
-    };
-
     haxe = callPackage ../development/compilers/haxe { };
 
     ocamlnat = callPackage  ../development/ocaml-modules/ocamlnat { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 6a69732805137..c668829432d59 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -7816,11 +7816,11 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  libnet = buildPerlPackage rec {
-    name = "libnet-3.08";
+  libnet = buildPerlPackage {
+    name = "libnet-3.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHAY/${name}.tar.gz";
-      sha256 = "21ebae642b53336576c370989d238cbe74378944079aca6f97665158c9f1750b";
+      url = mirror://cpan/authors/id/S/SH/SHAY/libnet-3.11.tar.gz;
+      sha256 = "1lsj3a2vbryh85mbb6yddyb2zjv5vs88fdj5x3v7fp2ndr6ixarg";
     };
     meta = {
       description = "Collection of network protocol modules";
@@ -8365,18 +8365,7 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  LWPUserAgent = buildPerlPackage {
-    name = "LWP-UserAgent-6.05";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/G/GA/GAAS/libwww-perl-6.05.tar.gz;
-      sha256 = "08wgwyz7748pv5cyngxia0xl6nragfnhrp4p9s78xhgfyygpj9bv";
-    };
-    propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookies HTTPDaemon HTTPDate HTTPNegotiate HTTPMessage LWPMediaTypes NetHTTP URI WWWRobotRules ];
-    meta = {
-      description = "The World-Wide Web library for Perl";
-      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-    };
-  };
+  LWPUserAgent = LWP;
 
   LWPUserAgentDetermined = buildPerlPackage {
     name = "LWP-UserAgent-Determined-1.06";
@@ -10568,15 +10557,7 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  NetSMTP = buildPerlPackage {
-    name = "Net-SMTP-1.25";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/SH/SHAY/libnet-1.25.tar.gz;
-      sha256 = "01f3l4aj3ynl8syyrl122k4bmfds77yw5q36aafrgaq22fnb3b2a";
-    };
-    patchPhase = "chmod a-x Configure";
-    doCheck = false; # The test suite fails, because it requires network access.
-  };
+  NetSMTP = libnet;
 
   NetSMTPSSL = buildPerlPackage {
     name = "Net-SMTP-SSL-1.03";
@@ -10781,7 +10762,8 @@ let self = _self // overrides; _self = with self; {
       sha256 = "1q3lz168q081iwl9jg21fbzhp9la79gav9mv6nmh2jab83s2l3mj";
     };
 
-    buildInputs = with pkgs; [ mesa mesa_glu freeglut xorg.libX11 xorg.libXi xorg.libXmu xorg.libXext xdummy ];
+    # FIXME: try with libGL + libGLU instead of libGLU_combined
+    buildInputs = with pkgs; [ libGLU_combined libGLU freeglut xorg.libX11 xorg.libXi xorg.libXmu xorg.libXext xdummy ];
 
     patches = [ ../development/perl-modules/perl-opengl.patch ];
 
@@ -11421,6 +11403,47 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  POE = buildPerlPackage rec {
+    name = "POE-1.367";
+    patches = [
+      ../development/perl-modules/perl-POE-1.367-pod_linkcheck.patch
+      ../development/perl-modules/perl-POE-1.367-pod_no404s.patch
+    ];
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RC/RCAPUTO/POE-1.367.tar.gz";
+      sha256 = "0b9s7yxaa2lgzyi56brgygycfjk7lz33d1ddvc1wvwwvm45p4wmp";
+    };
+    # N.B. removing TestPodLinkCheck from buildInputs because tests requiring
+    # this module don't disable themselves when "run_network_tests" is
+    # not present (see below).
+    buildInputs = [
+      Curses EmailMIME HTTPMessage IOTty LWPProtocolHttps POETestLoops
+      TermReadKey TestPod TestPodCoverage TestPodNo404s YAML
+    ];
+    propagatedBuildInputs = [ pkgs.cacert IOPipely ];
+    meta = {
+      maintainers = [ maintainers.limeytexan ];
+      description = "Portable multitasking and networking framework for any event loop";
+      license = stdenv.lib.licenses.artistic2;
+    };
+    preCheck = ''
+      set -x
+
+      : Makefile.PL touches the following file as a "marker" to indicate
+      : it should perform tests which use the network. Delete this file
+      : for sandbox builds.
+      rm -f run_network_tests
+
+      : Certs are required if not running in a sandbox.
+      export SSL_CERT_FILE=${pkgs.cacert.out}/etc/ssl/certs/ca-bundle.crt
+
+      : The following flag enables extra tests not normally performed.
+      export RELEASE_TESTING=1
+
+      set +x
+    '';
+  };
+
   POETestLoops = buildPerlPackage rec {
     name = "POE-Test-Loops-1.360";
     src = fetchurl {
@@ -12365,16 +12388,17 @@ let self = _self // overrides; _self = with self; {
   };
 
   Socket = buildPerlPackage {
-    name = "Socket-2.020";
+    name = "Socket-2.027";
     src = fetchurl {
-      url = mirror://cpan/authors/id/P/PE/PEVANS/Socket-2.020.tar.gz;
-      sha256 = "9ad4174c45b4c31d5e0b8019ada1fc767093849e77f268f0d1831eeb891dfdd7";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Socket-2.027.tar.gz;
+      sha256 = "1a725fbqx6bjzjf63bgs5wvzd20kffz1f94pbmv1670p9m4i270l";
     };
     postPatch = ''
       # requires network access
-      rm t/getnameinfo.t
+      rm t/getnameinfo.t t/getaddrinfo.t
     '';
     meta = {
+      homepage = https://metacpan.org/pod/Socket;
       description = "Networking constants and support functions";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -14769,6 +14793,16 @@ let self = _self // overrides; _self = with self; {
       sha256 = "0dig1zlglm8rwm8fhnz087lx6gixj9jx10kxn1fx3swdkfblhsmf";
     };
     perlPreHook = "export LD=$CC";
+    perlPostHook = stdenv.lib.optionalString stdenv.isDarwin ''
+      oldPath="$(pwd)/btparse/src/libbtparse.dylib"
+      newPath="$out/lib/libbtparse.dylib"
+
+      install_name_tool -id "$newPath" "$newPath"
+      install_name_tool -change "$oldPath" "$newPath" "$out/bin/biblex"
+      install_name_tool -change "$oldPath" "$newPath" "$out/bin/bibparse"
+      install_name_tool -change "$oldPath" "$newPath" "$out/bin/dumpnames"
+      install_name_tool -change "$oldPath" "$newPath" "$out/lib/perl5/site_perl/5.24.3/darwin-2level/auto/Text/BibTeX/BibTeX.bundle"
+    '';
     meta = {
       description = "Interface to read and parse BibTeX files";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -16036,7 +16070,7 @@ let self = _self // overrides; _self = with self; {
       url = "mirror://cpan/authors/id/M/MB/MBARBON/${name}.tar.gz";
       sha256 = "1q4gvj4gdx4l8k4mkgiix24p9mdfy1miv7abidf0my3gy2gw5lka";
     };
-    propagatedBuildInputs = [ Wx OpenGL pkgs.mesa_glu ];
+    propagatedBuildInputs = [ Wx OpenGL pkgs.libGLU ];
     doCheck = false;
   };
 
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index 0e00783c61a30..c36cf6f921585 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -383,11 +383,11 @@ let
 
   php-cs-fixer = pkgs.stdenv.mkDerivation rec {
     name = "php-cs-fixer-${version}";
-    version = "2.10.3";
+    version = "2.10.4";
 
     src = pkgs.fetchurl {
       url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
-      sha256 = "0ir72sns8baz825dkvffr5rx1f261phhbc6d9v0ncc4xkhr5zjnh";
+      sha256 = "00i90cbd6lkq3wssp8z2b0l2q8ahajxlrzdrqcf2jnjdhv2xms4a";
     };
 
     phases = [ "installPhase" ];
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 4092628fe0e6f..4a8ebff35021b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -98,6 +98,9 @@ let
   # providing Python modules.
   makePythonPath = drvs: stdenv.lib.makeSearchPath python.sitePackages (requiredPythonModules drvs);
 
+  removePythonPrefix = name:
+    removePrefix namePrefix name;
+
   # Convert derivation to a Python module.
   toPythonModule = drv:
     drv.overrideAttrs( oldAttrs: {
@@ -109,14 +112,27 @@ let
       };
     });
 
+  # Convert a Python library to an application.
+  toPythonApplication = drv:
+    drv.overrideAttrs( oldAttrs: {
+      passthru = (oldAttrs.passthru or {}) // {
+        # Remove Python prefix from name so we have a "normal" name.
+        # While the prefix shows up in the store path, it won't be
+        # used by `nix-env`.
+        name = removePythonPrefix oldAttrs.name;
+        pythonModule = false;
+      };
+    });
+
   disabledIf = x: drv:
-    if x then throw "${removePrefix namePrefix (drv.pname or drv.name)} not supported for interpreter ${python.executable}" else drv;
+    if x then throw "${removePythonPrefix (drv.pname or drv.name)} not supported for interpreter ${python.executable}" else drv;
 
 in {
 
   inherit python bootstrapped-pip pythonAtLeast pythonOlder isPy26 isPy27 isPy33 isPy34 isPy35 isPy36 isPyPy isPy3k buildPythonPackage buildPythonApplication;
   inherit fetchPypi callPackage;
   inherit hasPythonModule requiredPythonModules makePythonPath disabledIf;
+  inherit toPythonModule toPythonApplication;
 
   # helpers
 
@@ -444,10 +460,6 @@ in {
 
   asgiref = callPackage ../development/python-modules/asgiref { };
 
-  asgi_ipc = callPackage ../development/python-modules/asgi_ipc { };
-
-  asgi_redis = callPackage ../development/python-modules/asgi_redis { };
-
   python-editor = callPackage ../development/python-modules/python-editor { };
 
   python-gnupg = callPackage ../development/python-modules/python-gnupg {};
@@ -543,6 +555,8 @@ in {
 
   amqplib = callPackage ../development/python-modules/amqplib {};
 
+  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime {};
+
   apipkg = callPackage ../development/python-modules/apipkg {};
 
   appdirs = callPackage ../development/python-modules/appdirs { };
@@ -1612,23 +1626,7 @@ in {
 
   rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; };
 
-  proboscis = buildPythonPackage rec {
-    name = "proboscis-1.2.6.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/proboscis/proboscis-1.2.6.0.tar.gz";
-      sha256 = "b822b243a7c82030fce0de97bdc432345941306d2c24ef227ca561dd019cd238";
-    };
-
-    propagatedBuildInputs = with self; [ nose ];
-    doCheck = false;
-
-    meta = {
-      description = "A Python test framework that extends Python's built-in unittest module and Nose with features from TestNG";
-      homepage = https://github.com/rackspace/python-proboscis;
-      license = licenses.asl20;
-    };
-  };
+  proboscis = callPackage ../development/python-modules/proboscis {};
 
   pyechonest = self.buildPythonPackage rec {
     name = "pyechonest-8.0.2";
@@ -3006,32 +3004,7 @@ in {
 
   pydub = callPackage ../development/python-modules/pydub {};
 
-  pyjade = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "pyjade";
-    version = "4.0.0";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/${pname}/${name}.tar.gz";
-      sha256 = "1mycn5cc9cp4fb0i2vzgkkk6d0glnkbilggwb4i99i09vr0vg5cd";
-    };
-    buildInputs = with self; [ pyramid_mako nose django jinja2 tornado pyramid Mako ];
-    propagatedBuildInputs = with self; [ six ];
-    patchPhase = ''
-      sed -i 's/1.4.99/1.99/' setup.py
-    '';
-    checkPhase = ''
-      nosetests pyjade
-    '';
-    # No tests distributed. https://github.com/syrusakbary/pyjade/issues/262
-    doCheck = false;
-    meta = {
-      description = "Jade syntax template adapter for Django, Jinja2, Mako and Tornado templates";
-      homepage    = "http://github.com/syrusakbary/pyjade";
-      license     = licenses.mit;
-      maintainers = with maintainers; [ nand0p ];
-      platforms   = platforms.all;
-    };
-  };
+  pyjade = callPackage ../development/python-modules/pyjade {};
 
   PyLD = callPackage ../development/python-modules/PyLD { };
 
@@ -5251,6 +5224,8 @@ in {
     };
   };
 
+  latexcodec = callPackage ../development/python-modules/latexcodec {};
+
   libsexy = callPackage ../development/python-modules/libsexy {
     libsexy = pkgs.libsexy;
   };
@@ -5487,6 +5462,25 @@ in {
     };
   };
 
+  mt-940 = buildPythonPackage rec {
+    version = "4.10.0";
+    name = "mt-940-${version}";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/m/mt-940/mt-940-${version}.tar.gz";
+      sha256 = "1gyqf1k2r2ml45x08bk69ws865yrpcph514mn4xvjz779mlgh67j";
+    };
+
+    buildInputs = with self; [ pytestrunner pyyaml pytest ];
+    doCheck = false; # Can't find data files
+
+    meta = {
+      description = "A library to parse MT940 files and returns smart Python collections for statistics and manipulation";
+      homepage = "http://pythonhosted.org/mt-940/";
+      license = licenses.bsd3;
+    };
+  };
+
   mwlib = let
     pyparsing = buildPythonPackage rec {
       name = "pyparsing-1.5.7";
@@ -5595,6 +5589,8 @@ in {
     };
   };
 
+  ncclient = callPackage ../development/python-modules/ncclient {};
+
   logfury = callPackage ../development/python-modules/logfury { };
 
   ndg-httpsclient = buildPythonPackage rec {
@@ -5656,6 +5652,7 @@ in {
 
   odfpy = callPackage ../development/python-modules/odfpy { };
 
+  oset = callPackage ../development/python-modules/oset { };
 
   pamela = buildPythonPackage rec {
     name = "pamela-${version}";
@@ -5899,6 +5896,10 @@ in {
     };
   };
 
+  pybtex = callPackage ../development/python-modules/pybtex {};
+
+  pybtex-docutils = callPackage ../development/python-modules/pybtex-docutils {};
+
   pycallgraph = buildPythonPackage rec {
     name = "pycallgraph-${version}";
     version = "1.0.1";
@@ -6227,6 +6228,8 @@ in {
     };
   };
 
+  junos-eznc = callPackage ../development/python-modules/junos-eznc {};
+
   raven = callPackage ../development/python-modules/raven { };
 
   rethinkdb = buildPythonPackage rec {
@@ -12403,25 +12406,7 @@ in {
 
   plumbum = callPackage ../development/python-modules/plumbum { };
 
-
-  polib = buildPythonPackage rec {
-    name = "polib-${version}";
-    version = "1.0.4";
-
-    src = pkgs.fetchurl {
-      url = "http://bitbucket.org/izi/polib/downloads/${name}.tar.gz";
-      sha256 = "16klwlswfbgmkzrra80fgzhic9447pk3mnr75r2fkz72bkvpcclb";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      description = "A library to manipulate gettext files (po and mo files)";
-      homepage = "http://bitbucket.org/izi/polib/";
-      license = licenses.mit;
-    };
-  };
+  polib = callPackage ../development/python-modules/polib {};
 
   posix_ipc = buildPythonPackage rec {
     name = "posix_ipc-${version}";
@@ -12565,31 +12550,7 @@ in {
 
   ptpython = callPackage ../development/python-modules/ptpython {};
 
-  publicsuffix = buildPythonPackage rec {
-    name = "publicsuffix-${version}";
-    version = "1.1.0";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/publicsuffix/${name}.tar.gz";
-      sha256 = "1adx520249z2cy7ykwjr1k190mn2888wqn9jf8qm27ly4qymjxxf";
-    };
-
-    # fix the ASCII-mode LICENSE file read
-    # disable test_fetch and the doctests (which also invoke fetch)
-    patchPhase = optionalString isPy3k ''
-      sed -i "s/)\.read(/,encoding='utf-8'\0/" setup.py
-    '' + ''
-      sed -i -e "/def test_fetch/i\\
-      \\t@unittest.skip('requires internet')" -e "/def additional_tests():/,+1d" tests.py
-    '';
-
-    meta = {
-      description = "Allows to get the public suffix of a domain name";
-      homepage = "http://pypi.python.org/pypi/publicsuffix/";
-      license = licenses.mit;
-    };
-  };
-
+  publicsuffix = callPackage ../development/python-modules/publicsuffix {};
 
   py = callPackage ../development/python-modules/py { };
 
@@ -12909,17 +12870,15 @@ in {
 
 
   pycdio = buildPythonPackage rec {
-    name = "pycdio-0.21";
+    name = "pycdio-2.0.0";
     disabled = !isPy27;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/p/pycdio/${name}.tar.gz";
-      sha256 = "1bkcmg838l2yffsw5lln93ap5f8ks3vmqwg02mygmdmay647rc3v";
+      sha256 = "1a1h0lmfl56a2a9xqhacnjclv81nv3906vdylalybxrk4bhrm3hj";
     };
 
-    prePatch = ''
-      sed -i -e "s|if type(driver_id)==int|if type(driver_id) in (int, long)|g" cdio.py
-    '';
+    prePatch = "sed -i -e '/DRIVER_BSDI/d' pycdio.py";
 
     preConfigure = ''
       patchShebangs .
@@ -12942,7 +12901,6 @@ in {
       maintainers = with maintainers; [ rycee ];
       license = licenses.gpl3Plus;
     };
-
   };
 
   pycosat = callPackage ../development/python-modules/pycosat { };
@@ -13814,24 +13772,7 @@ in {
     };
   };
 
-  progressbar = buildPythonPackage (rec {
-    name = "progressbar-2.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/progressbar/${name}.tar.gz";
-      sha256 = "dfee5201237ca0e942baa4d451fee8bf8a54065a337fabe7378b8585aeda56a3";
-    };
-
-    # invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      homepage = http://code.google.com/p/python-progressbar/;
-      description = "Text progressbar library for python";
-      license = licenses.lgpl3Plus;
-      maintainers = with maintainers; [ domenkozar ];
-    };
-  });
+  progressbar = callPackage ../development/python-modules/progressbar {};
 
   progressbar2 = callPackage ../development/python-modules/progressbar2 { };
 
@@ -14011,11 +13952,11 @@ in {
       url = "mirror://pypi/P/PyOpenGL/PyOpenGL-${version}.tar.gz";
       sha256 = "9b47c5c3a094fa518ca88aeed35ae75834d53e4285512c61879f67a48c94ddaf";
     };
-    propagatedBuildInputs = [ pkgs.mesa pkgs.freeglut self.pillow ];
+    propagatedBuildInputs = [ pkgs.libGLU_combined pkgs.freeglut self.pillow ];
     patchPhase = ''
       sed -i "s|util.find_library( name )|name|" OpenGL/platform/ctypesloader.py
       sed -i "s|'GL',|'libGL.so',|" OpenGL/platform/glx.py
-      sed -i "s|'GLU',|'${pkgs.mesa}/lib/libGLU.so',|" OpenGL/platform/glx.py
+      sed -i "s|'GLU',|'${pkgs.libGLU_combined}/lib/libGLU.so',|" OpenGL/platform/glx.py
       sed -i "s|'glut',|'${pkgs.freeglut}/lib/libglut.so',|" OpenGL/platform/glx.py
     '';
     meta = {
@@ -14259,6 +14200,8 @@ in {
     };
   };
 
+  python-ptrace = callPackage ../development/python-modules/python-ptrace { };
+
   python-wifi = buildPythonPackage rec {
     name = "python-wifi-${version}";
     version = "0.6.0";
@@ -15150,6 +15093,8 @@ in {
     inherit (pkgs) gfortran glibcLocales;
   };
 
+  scp = callPackage ../development/python-modules/scp {};
+
   scripttest = buildPythonPackage rec {
     version = "1.3";
     name = "scripttest-${version}";
@@ -16064,6 +16009,8 @@ in {
 
   sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
 
+  sphinxcontrib-bibtex = callPackage ../development/python-modules/sphinxcontrib-bibtex {};
+
   sphinxcontrib-blockdiag = buildPythonPackage (rec {
     name = "${pname}-${version}";
     pname = "sphinxcontrib-blockdiag";
@@ -16126,6 +16073,8 @@ in {
     };
   });
 
+  sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree {};
+
   sphinxcontrib_newsfeed = buildPythonPackage (rec {
     name = "sphinxcontrib-newsfeed-${version}";
     version = "0.1.4";
@@ -19372,21 +19321,7 @@ EOF
     };
   };
 
-  pychart = buildPythonPackage rec {
-    name = "pychart-1.39";
-    disabled = ! isPy27;
-
-    src = pkgs.fetchurl {
-      url = "http://download.gna.org/pychart/PyChart-1.39.tar.gz";
-      sha256 = "882650928776a7ca72e67054a9e0ac98f78645f279c0cfb5910db28f03f07c2e";
-    };
-
-    meta = {
-      description = "Library for creating high quality encapsulated Postscript, PDF, PNG, or SVG charts";
-      homepage = http://home.gna.org/pychart/;
-      license = licenses.gpl2;
-    };
-  };
+  pychart = callPackage ../development/python-modules/pychart {};
 
   parsimonious = buildPythonPackage rec {
     version = "0.7.0";
@@ -20019,7 +19954,7 @@ EOF
     inherit (pkgs.xgboost) version src meta;
 
     propagatedBuildInputs = with self; [ scipy ];
-    buildInputs = with self; [ nose ];
+    checkInputs = with self; [ nose ];
 
     postPatch = ''
       cd python-package
@@ -20112,8 +20047,6 @@ EOF
 
   trezor = callPackage ../development/python-modules/trezor { };
 
-  protocol = callPackage ../development/python-modules/protocol { };
-
   trezor_agent = buildPythonPackage rec{
     name = "${pname}-${version}";
     pname = "trezor_agent";
@@ -20751,7 +20684,7 @@ EOF
       sha256 = "18n14ha2d3j3ghg2f2aqnf2mks94nn7ma9ii7vkiwcay93zm82cf";
     };
     disabled = isPy3k; # Judging from SyntaxError
-    buildInputs = with self; [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.mesa pkgs.xorg.libXi ];
+    buildInputs = with self; [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.libGLU_combined pkgs.xorg.libXi ];
   };
 
   smugpy = callPackage ../development/python-modules/smugpy { };
@@ -20944,6 +20877,10 @@ EOF
   pysigset = callPackage ../development/python-modules/pysigset { };
 
   us = callPackage ../development/python-modules/us { };
+
+  wsproto = callPackage ../development/python-modules/wsproto { };
+
+  h11 = callPackage ../development/python-modules/h11 { };
 });
 
 in fix' (extends overrides packages)
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index e7f8d3f2e4cae..aee73f2066962 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -119,7 +119,11 @@ let
               jobs.tests.cc-wrapper-clang-5.x86_64-linux
               jobs.tests.cc-wrapper-clang-5.x86_64-darwin
               jobs.tests.cc-wrapper-libcxx-5.x86_64-linux
-              jobs.tests.cc-wrapper-libcxx-5.x86_64-darwin
+              jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
+              jobs.tests.cc-wrapper-clang-6.x86_64-linux
+              jobs.tests.cc-wrapper-clang-6.x86_64-darwin
+              jobs.tests.cc-wrapper-libcxx-6.x86_64-linux
+              jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
               jobs.tests.cc-multilib-gcc.x86_64-linux
               jobs.tests.cc-multilib-clang.x86_64-linux
               jobs.tests.stdenv-inputs.x86_64-linux