summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/default.nix2
-rw-r--r--lib/maintainers-list.nix6
-rw-r--r--lib/versions.nix47
-rw-r--r--nixos/doc/manual/installation/installing-from-other-distro.xml297
-rw-r--r--nixos/doc/manual/installation/installing.xml1
-rw-r--r--nixos/doc/manual/release-notes/rl-1803.xml7
-rw-r--r--nixos/modules/hardware/opengl.nix11
-rw-r--r--nixos/modules/installer/tools/nixos-enter.sh4
-rw-r--r--nixos/modules/misc/ids.nix4
-rw-r--r--nixos/modules/module-list.nix1
-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/x11/display-managers/lightdm.nix21
-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/networkd.nix6
-rw-r--r--nixos/modules/tasks/network-interfaces-scripted.nix11
-rw-r--r--nixos/release.nix2
-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/pump.io.nix89
-rw-r--r--pkgs/applications/altcoins/dcrd.nix33
-rw-r--r--pkgs/applications/altcoins/dcrwallet.nix42
-rw-r--r--pkgs/applications/altcoins/default.nix6
-rw-r--r--pkgs/applications/altcoins/dero.nix4
-rw-r--r--pkgs/applications/altcoins/primecoin.nix58
-rw-r--r--pkgs/applications/audio/abcde/default.nix4
-rw-r--r--pkgs/applications/audio/cmus/default.nix4
-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/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/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/eclipse/plugins.nix6
-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/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/misc/airtame/default.nix4
-rw-r--r--pkgs/applications/misc/blender/default.nix4
-rw-r--r--pkgs/applications/misc/cpp-ethereum/default.nix4
-rw-r--r--pkgs/applications/misc/googleearth/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/llpp/default.nix7
-rw-r--r--pkgs/applications/misc/mupdf/default.nix6
-rw-r--r--pkgs/applications/misc/navit/default.nix4
-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/slic3r-prusa3d/default.nix4
-rw-r--r--pkgs/applications/misc/valentina/default.nix67
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix4
-rw-r--r--pkgs/applications/networking/browsers/falkon/default.nix11
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix4
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/nomad/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/hipchat/default.nix4
-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/viber/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/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.nix4
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/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/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/math/giac/default.nix6
-rw-r--r--pkgs/applications/science/math/glsurf/default.nix4
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix6
-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/gitkraken/default.nix41
-rw-r--r--pkgs/applications/version-management/gource/default.nix4
-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.nix4
-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/seabios/default.nix4
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix4
-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/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.nix11
-rw-r--r--pkgs/build-support/kernel/make-initrd.sh6
-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/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/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/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.nix2
-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/development/compilers/cudatoolkit/default.nix2
-rw-r--r--pkgs/development/compilers/factor-lang/default.nix8
-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/oraclejdk/jdk-linux-base.nix4
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk9-linux.nix4
-rw-r--r--pkgs/development/compilers/zulu/8.nix4
-rw-r--r--pkgs/development/compilers/zulu/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml102
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix4
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix6
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix1772
-rw-r--r--pkgs/development/interpreters/erlang/generic-builder.nix6
-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.nix4
-rw-r--r--pkgs/development/libraries/SDL2/default.nix6
-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/cogl/default.nix23
-rw-r--r--pkgs/development/libraries/coin3d/default.nix4
-rw-r--r--pkgs/development/libraries/epoxy/default.nix4
-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/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/gdk-pixbuf/default.nix17
-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/glui/default.nix4
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix17
-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.nix13
-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/swt/default.nix4
-rw-r--r--pkgs/development/libraries/libagar/default.nix6
-rw-r--r--pkgs/development/libraries/libargon2/default.nix2
-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/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/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/mygui/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.nix6
-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.nix4
-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/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/science/math/blas/default.nix4
-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/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/vaapi-intel/default.nix4
-rw-r--r--pkgs/development/libraries/vaapi-vdpau/default.nix4
-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/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/lablgl/default.nix4
-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/h11/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/pytest-mock/default.nix4
-rw-r--r--pkgs/development/python-modules/python-ptrace/default.nix24
-rw-r--r--pkgs/development/python-modules/wsproto/default.nix14
-rw-r--r--pkgs/development/r-modules/default.nix2
-rw-r--r--pkgs/development/tools/analysis/pmd/default.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2-cutter/default.nix25
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-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/misc/hydra/default.nix11
-rw-r--r--pkgs/development/tools/simavr/default.nix4
-rw-r--r--pkgs/development/tools/unity3d/default.nix4
-rw-r--r--pkgs/development/tools/vogl/default.nix4
-rw-r--r--pkgs/development/web/insomnia/default.nix66
-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/unfuck.nix4
-rw-r--r--pkgs/games/dxx-rebirth/default.nix4
-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/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.nix4
-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/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/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/desmume/default.nix4
-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/retroarch/cores.nix16
-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/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/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/fwts/default.nix30
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.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-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/v4l-utils/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/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/sslh/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/tools/X11/primus/lib.nix10
-rw-r--r--pkgs/tools/X11/virtualgl/lib.nix4
-rw-r--r--pkgs/tools/admin/gixy/default.nix7
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix4
-rw-r--r--pkgs/tools/backup/burp/default.nix4
-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/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/touchegg/default.nix4
-rw-r--r--pkgs/tools/misc/flameshot/default.nix6
-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/pipelight/default.nix4
-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/slop/default.nix4
-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/pptp/default.nix4
-rw-r--r--pkgs/tools/security/enpass/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/tor/default.nix32
-rw-r--r--pkgs/tools/security/tor/update.nix72
-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/all-packages.nix115
-rw-r--r--pkgs/top-level/perl-packages.nix15
-rw-r--r--pkgs/top-level/python-packages.nix38
569 files changed, 4438 insertions, 8299 deletions
diff --git a/lib/default.nix b/lib/default.nix
index 7716fe34dbaba..4c36f3b0d790e 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -24,7 +24,7 @@ let
     maintainers = import ./maintainers-list.nix;
     meta = callLibs ./meta.nix;
     sources = callLibs ./sources.nix;
-
+    versions = callLibs ./versions.nix;
 
     # module system
     modules = callLibs ./modules.nix;
diff --git a/lib/maintainers-list.nix b/lib/maintainers-list.nix
index f397ee0ddb8c9..608c36e91d2a0 100644
--- a/lib/maintainers-list.nix
+++ b/lib/maintainers-list.nix
@@ -470,7 +470,7 @@
     name = "Pascal Bach";
   };
   backuitist = {
-    email = null;
+    email = "biethb@gmail.com";
     github = "backuitist";
     name = "Bruno Bieth";
   };
@@ -2691,9 +2691,9 @@
     name = "Pierre Carrier";
   };
   periklis = {
-    email = null;
+    email = "theopompos@gmail.com";
     github = "periklis";
-    name = "theopompos@gmail.com";
+    name = "Periklis Tsirakidis";
   };
   pesterhazy = {
     email = "pesterhazy@gmail.com";
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/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..5562389882748
--- /dev/null
+++ b/nixos/doc/manual/installation/installing-from-other-distro.xml
@@ -0,0 +1,297 @@
+<!-- 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>
+
+            <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/release-notes/rl-1803.xml b/nixos/doc/manual/release-notes/rl-1803.xml
index ee4a54aa46c8f..b755245a69fbb 100644
--- a/nixos/doc/manual/release-notes/rl-1803.xml
+++ b/nixos/doc/manual/release-notes/rl-1803.xml
@@ -315,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/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/tools/nixos-enter.sh b/nixos/modules/installer/tools/nixos-enter.sh
index 122d9fdcd29b0..6793911896123 100644
--- a/nixos/modules/installer/tools/nixos-enter.sh
+++ b/nixos/modules/installer/tools/nixos-enter.sh
@@ -15,8 +15,8 @@ else
 fi
 
 mountPoint=/mnt
-command=("bash" "--login")
 system=/nix/var/nix/profiles/system
+command=($system/sw/bin/bash "--login")
 
 while [ "$#" -gt 0 ]; do
     i="$1"; shift 1
@@ -32,7 +32,7 @@ while [ "$#" -gt 0 ]; do
             exit 1
             ;;
         --command|-c)
-            command=("bash" "-c" "$1")
+            command=($system/sw/bin/bash "-c" "$1")
             shift 1
             ;;
         --)
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/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/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/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/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/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/release.nix b/nixos/release.nix
index 256f7d6fb0f77..1db2da511441f 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -274,6 +274,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 {};
@@ -340,7 +341,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 {};
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/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/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..a4caf8d4ef5d4 100644
--- a/pkgs/applications/altcoins/default.nix
+++ b/pkgs/applications/altcoins/default.nix
@@ -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 { };
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/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/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/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/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/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/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/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/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/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/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/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/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/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/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..b0d8ba3bb08ee 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
@@ -53,14 +53,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/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/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/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index f5ec42974c74a..1291e5c4e917e 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 ]
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..12cf5c30df431 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -31,7 +31,7 @@
 , libgnome
 , libgnomeui
 , defaultIconTheme
-, mesa
+, libGLU_combined
 , nspr
 , nss
 , pango
@@ -118,7 +118,7 @@ stdenv.mkDerivation {
       libcanberra-gtk2
       libgnome
       libgnomeui
-      mesa
+      libGLU_combined
       nspr
       nss
       pango
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/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..ae7165a867ce1 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -3,7 +3,7 @@
 , 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
 }:
@@ -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/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/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/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/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..e2b023cc2a8bc 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 */
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 81859eb1fe33a..424c1926f35a9 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -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,7 +20,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "0n3g28hrhifnchlz4av0blq4ykm4zaxwwxbzdm9wsba27677b6h4";
+    sha256 = "1mvgy67rvnwj2kbc43s4il81jvz5ai0bx2j3j2js7x50zclyrcmk";
   };
 
   cmakeFlags = [
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/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/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/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..96b800661a764 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -1,5 +1,5 @@
 { 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
 
@@ -15,8 +15,8 @@ stdenv.mkDerivation {
   # 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/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/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/gource/default.nix b/pkgs/applications/version-management/gource/default.nix
index 13852261e863d..e201add472bfe 100644
--- a/pkgs/applications/version-management/gource/default.nix
+++ b/pkgs/applications/version-management/gource/default.nix
@@ -1,5 +1,5 @@
 { 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 {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   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..de2394cd4a141 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
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/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/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/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 a4d162dc8b519..262bee608eddf 100644
--- a/pkgs/build-support/kernel/make-initrd.nix
+++ b/pkgs/build-support/kernel/make-initrd.nix
@@ -12,7 +12,7 @@
 # `contents = {object = ...; symlink = /init;}' is a typical
 # argument.
 
-{ stdenv, closureInfo, cpio, contents, compressor, prepend, ubootTools
+{ stdenv, perl, cpio, contents, compressor, prepend, ubootTools
 , hostPlatform
 }:
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   makeUInitrd = hostPlatform.platform.kernelTarget == "uImage";
 
-  nativeBuildInputs = [ cpio ]
+  nativeBuildInputs = [ perl cpio ]
     ++ stdenv.lib.optional makeUInitrd ubootTools;
 
   # !!! should use XML.
@@ -30,7 +30,12 @@ stdenv.mkDerivation rec {
   symlinks = map (x: x.symlink) contents;
   suffices = map (x: if x ? suffix then x.suffix else "none") contents;
 
-  closure = closureInfo { rootPaths = (map (x: x.object) 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;
 
   inherit compressor prepend;
 }
diff --git a/pkgs/build-support/kernel/make-initrd.sh b/pkgs/build-support/kernel/make-initrd.sh
index 2e64eeb81c1b1..0aeaedeb37243 100644
--- a/pkgs/build-support/kernel/make-initrd.sh
+++ b/pkgs/build-support/kernel/make-initrd.sh
@@ -25,9 +25,13 @@ for ((n = 0; n < ${#objects[*]}; n++)); do
 done
 
 
+# Get the paths in the closure of `object'.
+storePaths=$(perl $pathsFromGraph closure-*)
+
+
 # Paths in cpio archives *must* be relative, otherwise the kernel
 # won't unpack 'em.
-(cd root && cp -prd --parents $(cat $closure/store-paths) .)
+(cd root && cp -prd --parents $storePaths .)
 
 
 # Put the closure in a gzipped cpio archive.
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..7cf4988771a25 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/30eca1c57b9358eff984ab93dbfd213d6b08706b.tar.gz";
+  sha256 = "0kd5y2jlydbr1jv2ckdpsn2ialbxk2aj19c8i0brzz0wwzirg7q5";
 }
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/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix
index 1119cf86a4c95..a1586754dbddb 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.5";
 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 = "1j748f3407zavrh3bqw0mpf8f1i6b788kfjvwkk5bg7mm3c65n2g";
   };
 
-  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..388553976f88a 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.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${gnome3.versionBranch version}/${name}.tar.xz";
-    sha256 = "63b1ae5f76be818862f455bf841b5ebb1ec3e1f4df6d3a16dc2be348b7e0a1c5";
+    sha256 = "0m0y4l5wrdxpb6bs929ml7ayicwygfvngrzxf88hn0vkw0crfa9z";
   };
 
   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/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..b79b04565fee4 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
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/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/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/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/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/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/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index db92fb3108184..08443de111dd2 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -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;
 
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 827c5d72a3428..179578a0e643c 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
@@ -1359,12 +1360,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 +1388,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 +1450,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 +1539,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 +1547,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 +1558,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 +1590,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 +1628,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 +1639,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 +1705,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 +1742,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 +1751,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 +1772,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 +1837,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 +1923,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 +1982,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 +2019,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 +2230,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 +2239,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 +2312,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 +2344,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 +2412,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 +2425,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 +2574,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
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 55f463885bdb4..28ccb81f2dc21 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -221,7 +221,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 +350,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..6a54b9df52e04 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
@@ -2500,6 +2500,8 @@ self: {
        pname = "Cabal";
        version = "2.0.1.1";
        sha256 = "06rx6jxikqrdf7k6pmam5cvhwnagq6njmb9qm5777nrz278ccaw0";
+       revision = "1";
+       editedCabalFile = "17ydppw8x5cx5whrs44yxirh7xgcaa6gzvxmlgqnbalcf8wkj23l";
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
          pretty process time unix
@@ -6075,7 +6077,7 @@ self: {
        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.xorg) libX11; mesa = null;};
 
   "GLFW-OGL" = callPackage
     ({ mkDerivation, base, libX11, libXrandr, mtl, OGL }:
@@ -6151,7 +6153,7 @@ self: {
        librarySystemDepends = [ libX11 mesa ];
        description = "Open OpenGL context windows in X11 with libX11";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs.xorg) libX11; inherit (pkgs) mesa;};
+     }) {inherit (pkgs.xorg) libX11; mesa = null;};
 
   "GLM" = callPackage
     ({ mkDerivation, aeson, base, bytestring, interpolate, lens, mtl
@@ -6206,7 +6208,7 @@ self: {
        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) freeglut; mesa = null;};
 
   "GLUT" = callPackage
     ({ mkDerivation, array, base, containers, OpenGL, StateVar
@@ -6709,29 +6711,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 +6725,6 @@ self: {
        homepage = "http://iki.fi/matti.niemenmaa/glob/";
        description = "Globbing library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "GlomeTrace" = callPackage
@@ -13323,26 +13301,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 +13312,6 @@ self: {
        ];
        description = "High-level abstraction over 9P protocol";
        license = "unknown";
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "NewBinary" = callPackage
@@ -14047,7 +14004,7 @@ self: {
        homepage = "http://www.haskell.org/haskellwiki/Opengl";
        description = "A raw binding for the OpenGL graphics system";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) mesa;};
+     }) {mesa = null;};
 
   "OpenGLRaw21" = callPackage
     ({ mkDerivation, OpenGLRaw }:
@@ -18922,8 +18879,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 +19226,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;
@@ -23507,8 +23464,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";
@@ -26681,12 +26638,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 ];
@@ -29750,8 +29707,8 @@ self: {
      }:
      mkDerivation {
        pname = "ats-pkg";
-       version = "2.6.1.16";
-       sha256 = "0wbdndrc6vwac8qyihz52cbhd6nv5sjvw7ssrl8g92gziwjbrgf3";
+       version = "2.7.0.10";
+       sha256 = "15snn30g5hkwp0yv5iz84qx363d26lsy4via9l5h7qr2dahy8rkx";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cli-setup ];
@@ -30167,6 +30124,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 {
@@ -32848,8 +32822,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 +33033,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
        ];
@@ -34485,7 +34459,7 @@ self: {
          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;};
+         mesa = null;};
 
   "bindings-K8055" = callPackage
     ({ mkDerivation, base, K8055D }:
@@ -36253,8 +36227,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
        ];
@@ -39247,6 +39221,29 @@ 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;
+     }) {};
+
   "byline" = callPackage
     ({ mkDerivation, ansi-terminal, base, colour, containers
      , exceptions, haskeline, mtl, terminfo-hs, text, transformers
@@ -41011,8 +41008,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 ];
@@ -42985,6 +42982,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 +43246,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 +43829,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.1.0";
+       sha256 = "1krf1wkb4khmwvapnhh0shvf51475j9i2g22fcfl1hjahyqmk6lj";
+       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 = "Tool to manage project publishing history";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "charade" = callPackage
     ({ mkDerivation, base, configurator, containers, filepath, heist
      , lens, mtl, QuickCheck, random, snap, snap-core, snap-extras
@@ -49573,22 +49623,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 +49631,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 +49843,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 +50061,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
@@ -50708,6 +50743,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
@@ -51308,22 +51362,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 +51376,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
@@ -53263,7 +53300,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 +53311,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;
@@ -53926,8 +53961,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
@@ -54505,42 +54540,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 +54561,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
@@ -54896,6 +54902,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "curl-runnings" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cmdargs
+     , http-conduit, text, unordered-containers, yaml
+     }:
+     mkDerivation {
+       pname = "curl-runnings";
+       version = "0.1.0";
+       sha256 = "055hislas8i417482x40ldvlwif9dihhrspb2fnwv0017gmhbjvf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring http-conduit text
+         unordered-containers
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring cmdargs text yaml
+       ];
+       testHaskellDepends = [ base ];
+       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 {
@@ -59028,6 +59057,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 +59319,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "dejafu_1_1_0_1" = callPackage
+  "dejafu_1_1_0_2" = 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.1.0.2";
+       sha256 = "11gkiy3dh7a9qjg53zilmll0hk61bq68j76s7b31ylwadv437jcm";
        libraryHaskellDepends = [
          base concurrency containers deepseq exceptions leancheck
          profunctors random ref-fd transformers
@@ -61898,23 +61929,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 +61938,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 +61957,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";
@@ -66682,23 +66695,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 +66704,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
@@ -68785,22 +68780,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 +68788,6 @@ self: {
        ];
        description = "Simplified error-handling";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "errors-ext" = callPackage
@@ -69143,8 +69121,8 @@ self: {
      }:
      mkDerivation {
        pname = "eternity-timestamped";
-       version = "0.2.1";
-       sha256 = "0pqihqhq2jh1sr30wkk6sy3p5zyw62i3fqqac48lciggzpmajaa2";
+       version = "0.2.2";
+       sha256 = "0lijphsgfjgpqxg5qfy50fds8vpjd9yywzlz5yqmi1q8q5yyh02f";
        libraryHaskellDepends = [
          attoparsec base cereal directory eternity foldl generic-random
          hashable potoki QuickCheck text time
@@ -71150,8 +71128,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 +71479,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 ];
@@ -76526,8 +76504,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
@@ -81042,6 +81020,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 {
@@ -83907,7 +83917,7 @@ self: {
        librarySystemDepends = [ mesa ];
        description = "Complete OpenGL raw bindings";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) mesa;};
+     }) {mesa = null;};
 
   "gl-capture" = callPackage
     ({ mkDerivation, base, bytestring, OpenGL }:
@@ -84801,25 +84811,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 +84838,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
@@ -87832,22 +87842,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 +87850,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
@@ -93508,16 +93501,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";
@@ -98477,7 +98475,7 @@ self: {
        description = "Haskell bindings for the C Wayland library";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) mesa; inherit (pkgs) wayland;};
+     }) {mesa = null; inherit (pkgs) wayland;};
 
   "hayoo-cli" = callPackage
     ({ mkDerivation, aeson, base, bytestring, http-conduit, http-types
@@ -100376,22 +100374,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 +100382,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
@@ -102461,8 +102442,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
        ];
@@ -103812,22 +103793,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 +103802,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 +104481,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 = [
@@ -106092,7 +106056,7 @@ self: {
        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; mesa = null;};
 
   "hp2any-manager" = callPackage
     ({ mkDerivation, array, base, bytestring, cairo, containers
@@ -106719,6 +106683,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
@@ -109163,28 +109156,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 +109169,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
@@ -109751,8 +109721,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 +110365,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspkcs11";
-       version = "0.6";
-       sha256 = "12jjz5r6pcqqlalxagi1bv1igjfwz7npbdr8vm4kznhv44bkhlp7";
+       version = "0.7";
+       sha256 = "0xbwwnj4n674c3ybxq966w6l71xfg992yig8989gbww4x21n9cy2";
        libraryHaskellDepends = [ base bytestring unix utf8-string ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [
@@ -112767,18 +112737,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
@@ -113678,19 +113648,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 +113655,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 +115584,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
@@ -117597,6 +117555,35 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "influxdb_1_3_0" = 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";
+       sha256 = "1spvddqc3p9c292bcpp92xx4xzw8qc91y9jg63lzpdm0fmfx8k0l";
+       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
@@ -118369,22 +118356,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 +118364,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
@@ -119634,12 +119604,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;
@@ -122824,28 +122800,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 +122813,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
@@ -122929,20 +122882,20 @@ 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";
@@ -123250,6 +123203,35 @@ 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";
+       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
@@ -123419,18 +123401,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
@@ -124991,6 +124973,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.0";
+       sha256 = "0ps5m31bwfrm7398i7kngrbvsjva7zvyb3cbj7sqk828j72abg9y";
+       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 +125892,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,8 +125913,8 @@ 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";
@@ -125937,8 +125943,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-ats";
-       version = "1.2.0.0";
-       sha256 = "072a37nd9ngis8m1kx7xlr13kd8v24j3cnzllval2ygy9siw4p1l";
+       version = "1.2.0.1";
+       sha256 = "000jhj5jjsccn7x6j76wl07y6ydszy3gcn4mg6bcg2p0spdvc0vr";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          ansi-wl-pprint array base composition-prelude containers deepseq
@@ -126722,18 +126728,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 +126759,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 +126837,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
      }:
@@ -132452,29 +132486,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 +132499,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
@@ -134186,8 +134196,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
@@ -135691,6 +135701,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 +135928,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 +135949,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 +136186,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 +136322,8 @@ self: {
      }:
      mkDerivation {
        pname = "matterhorn";
-       version = "40600.1.0";
-       sha256 = "1cxbvs6w2iv4n2ig3hfy79gwcc76mv48q16r8w4jag0dswv5ry92";
+       version = "40700.0.0";
+       sha256 = "1knf05p9qmk51ysvp2gp718d365g9n7myycb07w8d84f4vrphg51";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -136329,8 +136358,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 +136382,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 +137178,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 +137186,8 @@ self: {
      }:
      mkDerivation {
        pname = "megaparsec";
-       version = "6.4.0";
-       sha256 = "0h9azhs0dfrc359vrbd1jljrg3yfdbwd4p62cxqkn7mnh8913jpd";
-       revision = "1";
-       editedCabalFile = "1jzj3gb96skggngv69wibyx27bgng78dmlgv9i3lvz46z6bx8qzd";
+       version = "6.4.1";
+       sha256 = "0w0kw8g7c6c3sp0fpgfqjc2w032dv9s7jnyn1dx71hk5mifh2h6y";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers deepseq mtl
          parser-combinators scientific text transformers
@@ -139496,6 +139523,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 +139540,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 +139547,6 @@ self: {
        ];
        description = "Monad morphisms";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "mmtf" = callPackage
@@ -140154,22 +140167,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 +140175,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 +140199,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 +140207,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 +140485,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 +140496,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 +140604,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 +140614,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 +140705,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 +140713,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 +141170,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 +141179,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 +142645,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
@@ -145094,7 +144984,7 @@ self: {
        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) freeglut; mesa = null;};
 
   "nanq" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
@@ -145982,8 +145872,8 @@ self: {
      }:
      mkDerivation {
        pname = "netlink";
-       version = "1.1.0.0";
-       sha256 = "10zhvpvf677cf660gyc299sfg8fwlg9iq7gdpawdmqxj49w9mxa8";
+       version = "1.1.1.0";
+       sha256 = "1q8sxycv93sap6dgbw70scklnpjj5vav6qlvsxm5500jlvb3jnf0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -146292,18 +146182,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";
@@ -149926,7 +149815,7 @@ self: {
        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;};
+         mesa = null; ovr = null; systemd = null;};
 
   "odbc" = callPackage
     ({ mkDerivation }:
@@ -150397,6 +150286,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 {
@@ -151703,23 +151611,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 +151620,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
@@ -152964,7 +152854,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 +152869,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 +152889,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 +154243,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 +155074,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 +155442,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 +155450,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 +155952,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 +155968,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 +156378,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 +156388,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
@@ -158316,29 +158157,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 +158171,6 @@ self: {
        ];
        description = "Compositional pipelines";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pipes-aeson" = callPackage
@@ -159994,8 +159811,8 @@ self: {
      }:
      mkDerivation {
        pname = "ploton";
-       version = "1.1.1.0";
-       sha256 = "1gxzfhzylk7i5cjnzgn4jicvbrv67w2v6fwb2x067q9c2g0b0npy";
+       version = "1.1.2.0";
+       sha256 = "11a4kij1bz38bklaanlsyzwdvps7v9c0c8w4yblmxxdwxwdfvi6g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -163084,8 +162901,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 = [
@@ -163580,8 +163397,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
        ];
@@ -165019,6 +164836,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 +164869,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 +164963,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 +166409,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 {
@@ -174280,27 +174149,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 +174161,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 +176427,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 +176446,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";
@@ -178364,8 +178210,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
@@ -179014,26 +178860,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 +178872,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 +179380,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 +179388,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 +179413,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 +179422,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 +179430,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 +179438,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
@@ -183603,8 +183374,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake-ats";
-       version = "1.5.0.6";
-       sha256 = "166i9v8d4fdbmriakndwkjgx10c4rags141ky0nw6x2ydziyn7n0";
+       version = "1.5.0.7";
+       sha256 = "07ipqnzgk7ligq4xsddv7ab5z3gn67vsba6p2lkf9faqhwx91bi9";
        libraryHaskellDepends = [
          base binary dependency directory hs2ats language-ats microlens
          shake shake-ext text
@@ -183638,8 +183409,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake-ext";
-       version = "2.7.0.0";
-       sha256 = "1jv5hcmv29ynr5asc4mpz4kh4ip5gd16b8h5qlcfac2f7m7njbwl";
+       version = "2.7.0.2";
+       sha256 = "1r9grv3r06w7ldddn1gq8dbylfi2nnq0xg66ks9z6r0c087l4xp1";
        libraryHaskellDepends = [
          base Cabal composition-prelude directory mtl shake template-haskell
          text
@@ -186507,24 +186278,50 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
-  "skylighting_0_6" = callPackage
+  "skylighting_0_7_0_1" = 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.1";
+       sha256 = "0f1527pjfgmb9dxlgrs2wl0zq9vbxishjm7m3h4gyajk2nfw5dw3";
+       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.1";
+       sha256 = "06kfpb49wql0b11c2cqypccw75l5vj1a6dck333p6bds2xbk83qn";
        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 +186333,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
@@ -192257,8 +192053,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";
@@ -193983,6 +193779,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,16 +193905,20 @@ 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";
@@ -198299,23 +198123,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 +198132,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
@@ -199004,8 +198810,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 +198830,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 +198872,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
@@ -202093,6 +201912,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
@@ -203417,31 +203257,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 +203271,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 +204921,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
@@ -207729,7 +207543,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 +207552,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 +208525,17 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "type-interpreter" = callPackage
+    ({ mkDerivation, base, containers, template-haskell }:
+     mkDerivation {
+       pname = "type-interpreter";
+       version = "0.0.0";
+       sha256 = "1nma1zrk11p5i6xbnsnlhb9h0xvixq784lymbb6i3ijabl4v2ksg";
+       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 {
@@ -211012,6 +210837,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 +210967,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 +210975,6 @@ self: {
        ];
        description = "Unix time parser/formatter and utilities";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "unjson" = callPackage
@@ -211743,36 +211553,6 @@ self: {
      }:
      mkDerivation {
        pname = "uri-bytestring";
-       version = "0.3.1.0";
-       sha256 = "04qjv1sgyrdg538290p9hqnvyxnahvr5cjwl8vm1rn9j0fv3ymq9";
-       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
-       ];
-       homepage = "https://github.com/Soostone/uri-bytestring";
-       description = "Haskell URI parsing as ByteStrings";
-       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
-     }:
-     mkDerivation {
-       pname = "uri-bytestring";
        version = "0.3.1.1";
        sha256 = "1ysmwf2zqv6kky2656nk6i2azpngzl0rkgy5fab7ja3xhx998y3z";
        libraryHaskellDepends = [
@@ -211791,7 +211571,6 @@ self: {
        homepage = "https://github.com/Soostone/uri-bytestring";
        description = "Haskell URI parsing as ByteStrings";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "uri-bytestring-aeson" = callPackage
@@ -212067,6 +211846,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 {
@@ -214787,18 +214586,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;
@@ -218321,8 +218120,8 @@ self: {
      }:
      mkDerivation {
        pname = "weeder";
-       version = "1.0.1";
-       sha256 = "03dmyfpv5h6l1f5vag3h3v3bn6c1j3335k8rywknnliyglvb6acw";
+       version = "1.0.3";
+       sha256 = "14hmxg7p2mq3lh7ydmjk22xr95hd37q3c95d3k6rqi2jxhjs1gvp";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -220541,10 +220340,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 +220362,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 +220412,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
@@ -223732,7 +223526,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 +223539,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
@@ -224369,7 +224163,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 +224177,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
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/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..a752fbcbcdd5e 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
+, openglSupport ? false, libGL, libGLU
 , alsaSupport ? true, alsaLib
 , x11Support ? hostPlatform == buildPlatform, libXext, libICE, libXrandr
 , pulseaudioSupport ? true, libpulseaudio
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     optionals x11Support [ libXext libICE libXrandr ] ++
     optional alsaSupport alsaLib ++
     optional stdenv.isLinux libcap ++
-    optionals openglSupport [ mesa_noglu mesa_glu ] ++
+    optionals openglSupport [ libGL libGLU ] ++
     optional pulseaudioSupport libpulseaudio ++
     optional stdenv.isDarwin Cocoa;
 
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 6b6c9599c2821..f87e1d5067dab 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
@@ -15,7 +15,7 @@
 # PulseAudio.
 assert !stdenv.isDarwin -> alsaSupport || pulseaudioSupport;
 
-assert openglSupport -> (stdenv.isDarwin || mesa_noglu != null && x11Support);
+assert openglSupport -> (stdenv.isDarwin || libGL != null && x11Support);
 
 let
   configureFlagsFun = attrs: [
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     ++ [ libiconv ];
 
   buildInputs = [ audiofile ] ++
-    lib.optional openglSupport mesa_noglu ++
+    lib.optional openglSupport libGL ++
     lib.optional alsaSupport alsaLib ++
     lib.optional dbusSupport dbus ++
     lib.optional udevSupport udev ++
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/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/epoxy/default.nix b/pkgs/development/libraries/epoxy/default.nix
index 18ce05af07a8f..483300b13f571 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, libX11
+, libGLU_combined, libX11
 }:
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ autoreconfHook pkgconfig utilmacros python ];
-  buildInputs = [ mesa libX11 ];
+  buildInputs = [ libGLU_combined libX11 ];
 
   preConfigure = stdenv.lib.optional stdenv.isDarwin ''
     substituteInPlace configure --replace build_glx=no build_glx=yes
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/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/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/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/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 870f77686b3e7..474899d60d774 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
 }:
 # now that gobjectIntrospection creates large .gir files (eg gtk3 case)
@@ -7,15 +7,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 {
     })
   ];
 
+  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/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 742106ed695d7..d2b32502d1df4 100644
--- a/pkgs/development/libraries/gtk+/3.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -12,15 +12,13 @@ assert cupsSupport -> cups != null;
 with stdenv.lib;
 
 let
-  ver_maj = "3.22";
-  ver_min = "26";
-  version = "${ver_maj}.${ver_min}";
+  version = "3.22.26";
 in
 stdenv.mkDerivation rec {
   name = "gtk+3-${version}";
 
   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 = "61eef0d320e541976e2dfe445729f12b5ade53050ee9de6184235cb60cd4b967";
   };
 
@@ -76,6 +74,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/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 22fc6cc197602..0f8c9f3d34340 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";
 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 = "0scn7bmfi27dnn764m090cj999dhda05pd9hnd9pcsfwygmcglv0";
   };
 
   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/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/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/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/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 dca548a6f9d06..7979eaec77425 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
 }:
 
@@ -20,13 +20,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/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 fa3336c4cea00..3f873022f7ac4 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/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/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..712deff844487 100644
--- a/pkgs/development/libraries/opensubdiv/default.nix
+++ b/pkgs/development/libraries/opensubdiv/default.nix
@@ -1,5 +1,5 @@
-{ 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
 }:
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   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 16a987f15e20f..b45ed29669162 100644
--- a/pkgs/development/libraries/partio/default.nix
+++ b/pkgs/development/libraries/partio/default.nix
@@ -1,4 +1,4 @@
-{ 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
 {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec
   outputs = [ "dev" "out" "lib" ];
 
   nativeBuildInputs = [ unzip cmake doxygen ];
-  buildInputs = [ freeglut mesa zlib swig python xorg.libXi xorg.libXmu ];
+  buildInputs = [ freeglut libGLU_combined zlib swig python xorg.libXi xorg.libXmu ];
 
   enableParallelBuilding = true;
 
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/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 eeff345683323..2ff9a46bc7725 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
@@ -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/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/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/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/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/vaapi-intel/default.nix b/pkgs/development/libraries/vaapi-intel/default.nix
index 7bd036cf2e5a1..a784461c96bc6 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/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/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/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/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/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/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/pytest-mock/default.nix b/pkgs/development/python-modules/pytest-mock/default.nix
index 51ec2a1f4cbce..2694e9c1ea054 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";
   };
 
   propagatedBuildInputs = [ pytest ] ++ lib.optional (!isPy3k) mock;
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/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..62382a1f72d49 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 ];
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-cutter/default.nix b/pkgs/development/tools/analysis/radare2-cutter/default.nix
index 2f82dc0fb8b58..3cd1d309e15dd 100644
--- a/pkgs/development/tools/analysis/radare2-cutter/default.nix
+++ b/pkgs/development/tools/analysis/radare2-cutter/default.nix
@@ -1,18 +1,39 @@
 { stdenv, fetchFromGitHub, fetchpatch, qmake, pkgconfig, qtbase, qtsvg, radare2 }:
 
+
 stdenv.mkDerivation rec {
   name = "radare2-cutter-${version}";
-  version = "1.2";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "radareorg";
     repo = "cutter";
     rev = "v${version}";
-    sha256 = "1ph8kvpai7kr7kcqfp0aagvrm098bbh9ygzg5fp8z8y51mwq898g";
+    sha256 = "02m5sf45n455hn34y7hrqanj830rc5xhz2ppp1z3mzbz0s515pfl";
   };
 
   postUnpack = "export sourceRoot=$sourceRoot/src";
 
+  patches = [
+    # Fixup version number :D
+    (fetchpatch {
+      url = "https://github.com/radareorg/cutter/commit/69506b64600df632afdca8b680baa7d946c78644.patch";
+      sha256 = "0ks3ixz8bycjcfi26bd0p6z7qaplhq00alw44hsfzpdm4bmr01x0";
+    })
+    (fetchpatch {
+      url = "https://github.com/radareorg/cutter/commit/8b52c66f4f0091cd9d97389b32aa519c2c602e2b.patch";
+      sha256 = "0wcdn35lx2943pfzm7mkg4sr82pm0qz3yxf74m8fxbd70s3w0gkm";
+    })
+
+    # case-insensitive filtering
+    (fetchpatch {
+      url = "https://github.com/radareorg/cutter/commit/0ebd34370bcaed00000168147572bb78106eeab1.patch";
+      sha256 = "0sc50jwhncfnd2i5mlyld4dbdzi2ws7nh4yglkhlap9l9h1jxn20";
+    })
+  ];
+
+  patchFlags = [ "-p2" ];
+
   nativeBuildInputs = [ qmake pkgconfig ];
   buildInputs = [ qtbase qtsvg radare2 ];
 
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/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/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/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/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/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/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/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..cea07d873ab48 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
+, SDL, SDL_mixer, libGLU_combined, physfs
 }:
 
 let
@@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig scons ];
 
-  buildInputs = [ mesa physfs SDL SDL_mixer ];
+  buildInputs = [ libGLU_combined physfs SDL SDL_mixer ];
 
   enableParallelBuilding = true;
 
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/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..68257fc9e9e48 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}:
+, libGLU_combined}:
 let
   s = # Generated upstream information
   rec {
@@ -14,7 +14,7 @@ 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;
   };
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/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/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/desmume/default.nix b/pkgs/misc/emulators/desmume/default.nix
index ebd2dcf41aecb..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 {
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   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/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix
index 4b5e118a319bc..d6b3b6a98706d 100644
--- a/pkgs/misc/emulators/retroarch/cores.nix
+++ b/pkgs/misc/emulators/retroarch/cores.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, fetchFromGitLab, cmake, pkgconfig, makeWrapper, python27, retroarch
-, alsaLib, fluidsynth, curl, hidapi, mesa, gettext, glib, gtk2, portaudio, SDL
+, 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 ]);
@@ -240,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:
@@ -270,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"}";
   };
@@ -298,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"}";
   };
@@ -328,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";
   };
@@ -368,7 +368,7 @@ in with stdenv.lib.licenses;
     };
     description = "Reicast libretro port";
     license = gpl2;
-    extraBuildInputs = [ mesa ];
+    extraBuildInputs = [ libGLU_combined ];
   }).override {
     buildPhase = "make";
   };
@@ -382,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/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/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/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/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index ab22019538641..4b8515a86d33d 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.24";
 
   # 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 = "00cqhc8198f4gj6cpz7nblpgi5zh2145arjx1yp0p4gmswdjslds";
   };
 } // (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-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/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/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/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/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/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/tools/X11/primus/lib.nix b/pkgs/tools/X11/primus/lib.nix
index 6aaaf83d97549..d9bebf6055f63 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 = ''
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/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/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/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/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/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/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/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/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix
index 3493e7ffa7ba1..f5c15775777fd 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
@@ -18,7 +18,7 @@ in stdenv.mkDerivation rec {
     sha256 = "1i440rf22fmd2w86dlm1mpi3nb7410rfczc0yldnhgsvp5p3sm5f";
   };
 
-  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/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/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/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/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/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/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/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/all-packages.nix b/pkgs/top-level/all-packages.nix
index fc1c05e6a4f42..f54b163c1305b 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 {
@@ -1332,7 +1338,9 @@ 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 { };
 
@@ -2317,6 +2325,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 {
@@ -3145,6 +3155,8 @@ with pkgs;
 
   libscrypt = callPackage ../development/libraries/libscrypt { };
 
+  libcloudproviders = callPackage ../development/libraries/libcloudproviders { };
+
   libsmi = callPackage ../development/libraries/libsmi { };
 
   lesspipe = callPackage ../tools/misc/lesspipe { };
@@ -7818,7 +7830,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 { };
 
@@ -8585,7 +8599,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
@@ -9513,7 +9527,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; };
 
@@ -9592,7 +9606,7 @@ with pkgs;
 
   libdevil-nox = libdevil.override {
     libX11 = null;
-    mesa_noglu = null;
+    libGL = null;
   };
 
   libdigidoc = callPackage ../development/libraries/libdigidoc { };
@@ -10106,9 +10120,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;
@@ -10425,9 +10437,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;
 
-  mesaDarwinOr = alternative: if stdenv.isDarwin
+  libGLSupported = lib.elem system lib.platforms.mesaPlatforms;
+
+  libGLDarwinOr = alternative: if stdenv.isDarwin
     then callPackage ../development/libraries/mesa-darwin {
       inherit (darwin.apple_sdk.frameworks) OpenGL;
       inherit (darwin.apple_sdk.libs) Xplugin;
@@ -10435,14 +10466,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;
@@ -10454,7 +10487,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 = {
@@ -10462,6 +10495,8 @@ with pkgs;
     };
   });
 
+  ## End libGL/libGLU/Mesa stuff
+
   meterbridge = callPackage ../applications/audio/meterbridge { };
 
   mhddfs = callPackage ../tools/filesystems/mhddfs { };
@@ -10886,7 +10921,7 @@ with pkgs;
   qoauth = callPackage ../development/libraries/qoauth { };
 
   qt3 = callPackage ../development/libraries/qt-3 {
-    openglSupport = mesaSupported;
+    openglSupport = libGLSupported;
     libpng = libpng12;
   };
 
@@ -10894,13 +10929,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;
   };
@@ -10925,7 +10960,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;
     });
@@ -10939,7 +10974,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;
@@ -10954,7 +10989,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;
@@ -11205,7 +11240,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;
@@ -11229,7 +11264,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;
@@ -11726,7 +11761,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 { };
 
@@ -12536,8 +12573,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 {};
@@ -12740,7 +12775,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;
@@ -12901,6 +12936,8 @@ with pkgs;
 
   fwupdate = callPackage ../os-specific/linux/firmware/fwupdate { };
 
+  fwts = callPackage ../os-specific/linux/fwts { };
+
   libossp_uuid = callPackage ../development/libraries/libossp-uuid { };
 
   libuuid =
@@ -14232,6 +14269,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 { };
@@ -14424,7 +14463,6 @@ with pkgs;
   abcde = callPackage ../applications/audio/abcde {
     inherit (perlPackages) DigestSHA MusicBrainz MusicBrainzDiscID;
     inherit (pythonPackages) eyeD3;
-    libcdio = libcdio082;
   };
 
   abiword = callPackage ../applications/office/abiword {
@@ -14815,7 +14853,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;
@@ -17322,6 +17359,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 { };
@@ -17818,6 +17857,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 { };
@@ -18582,12 +18623,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 { };
@@ -18735,6 +18777,8 @@ with pkgs;
 
   gnugo = callPackage ../games/gnugo { };
 
+  gnujump = callPackage ../games/gnujump { };
+
   gogui = callPackage ../games/gogui {};
 
   gtetrinet = callPackage ../games/gtetrinet {
@@ -18926,7 +18970,7 @@ with pkgs;
   racer = callPackage ../games/racer { };
 
   residualvm = callPackage ../games/residualvm {
-    openglSupport = mesaSupported;
+    openglSupport = libGLSupported;
   };
 
   rftg = callPackage ../games/rftg { };
@@ -19599,6 +19643,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 {
@@ -20260,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 { };
 
@@ -20357,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; };
 
@@ -20561,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 { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 815bf73210f66..123e0c64c48dd 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -10735,7 +10735,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 ];
 
@@ -14722,6 +14723,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 ];
@@ -15989,7 +16000,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/python-packages.nix b/pkgs/top-level/python-packages.nix
index 4a1b672724d13..370fe91f99835 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -5531,6 +5531,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";
@@ -13034,12 +13053,12 @@ 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 = ''
@@ -13067,7 +13086,6 @@ in {
       maintainers = with maintainers; [ rycee ];
       license = licenses.gpl3Plus;
     };
-
   };
 
   pycosat = callPackage ../development/python-modules/pycosat { };
@@ -14156,11 +14174,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 = {
@@ -14404,6 +14422,8 @@ in {
     };
   };
 
+  python-ptrace = callPackage ../development/python-modules/python-ptrace { };
+
   python-wifi = buildPythonPackage rec {
     name = "python-wifi-${version}";
     version = "0.6.0";
@@ -20287,7 +20307,7 @@ EOF
     inherit (pkgs.xgboost) version src meta;
 
     propagatedBuildInputs = with self; [ scipy ];
-    buildInputs = with self; [ nose ];
+    checkInputs = with self; [ nose ];
 
     postPatch = ''
       cd python-package
@@ -21047,7 +21067,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 { };
@@ -21248,6 +21268,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)