summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/kde/minuet.nix6
-rw-r--r--pkgs/applications/networking/weather/meteo/default.nix5
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix3
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/breeze-gtk.nix4
-rw-r--r--pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch141
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix360
-rw-r--r--pkgs/development/compilers/gcc/7/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/libstdc++-netbsd-ctypes.patch141
-rw-r--r--pkgs/development/compilers/llvm/6/llvm.nix3
-rw-r--r--pkgs/development/compilers/rust/bootstrap.nix16
-rw-r--r--pkgs/development/compilers/rust/default.nix6
-rw-r--r--pkgs/development/compilers/rust/patches/net-tcp-disable-tests.patch32
-rw-r--r--pkgs/development/libraries/SDL/default.nix16
-rw-r--r--pkgs/development/libraries/SDL2/default.nix21
-rw-r--r--pkgs/development/libraries/cairo/default.nix3
-rw-r--r--pkgs/development/libraries/glib/default.nix24
-rw-r--r--pkgs/development/libraries/gtk+/3.x.nix7
-rw-r--r--pkgs/development/libraries/libarchive/default.nix15
-rw-r--r--pkgs/development/libraries/libglvnd/default.nix6
-rw-r--r--pkgs/development/libraries/libvdpau/default.nix6
-rw-r--r--pkgs/development/libraries/mesa-glu/default.nix1
-rw-r--r--pkgs/development/libraries/openssl/default.nix4
-rw-r--r--pkgs/development/libraries/pixman/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtbase.nix4
-rw-r--r--pkgs/development/libraries/sqlite/analyzer.nix6
-rw-r--r--pkgs/development/libraries/sqlite/default.nix6
-rw-r--r--pkgs/development/python-modules/numpy/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/waf/default.nix4
-rw-r--r--pkgs/os-specific/bsd/netbsd/builder.sh122
-rw-r--r--pkgs/os-specific/bsd/netbsd/default.nix730
-rw-r--r--pkgs/os-specific/linux/apparmor/default.nix4
-rw-r--r--pkgs/servers/x11/xorg/default.nix74
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix13
-rw-r--r--pkgs/servers/x11/xorg/tarballs.list18
-rw-r--r--pkgs/tools/filesystems/securefs/default.nix4
-rw-r--r--pkgs/tools/misc/file/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix22
40 files changed, 1091 insertions, 762 deletions
diff --git a/pkgs/applications/kde/minuet.nix b/pkgs/applications/kde/minuet.nix
index efe850ab414..cd98d56b86d 100644
--- a/pkgs/applications/kde/minuet.nix
+++ b/pkgs/applications/kde/minuet.nix
@@ -2,17 +2,17 @@
 , lib, extra-cmake-modules, gettext, python
 , drumstick, fluidsynth
 , kcoreaddons, kcrash, kdoctools
-, qtquickcontrols2, qtsvg, qttools
+, qtquickcontrols2, qtsvg, qttools, qtdeclarative
 }:
 
 mkDerivation {
   name = "minuet";
   meta = with lib; {
     license = with licenses; [ lgpl21 gpl3 ];
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = with maintainers; [ peterhoeg HaoZeke ];
   };
 
-  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
+  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python qtdeclarative ];
 
   propagatedBuildInputs = [
     drumstick fluidsynth
diff --git a/pkgs/applications/networking/weather/meteo/default.nix b/pkgs/applications/networking/weather/meteo/default.nix
index b5b8445df45..74a1b571406 100644
--- a/pkgs/applications/networking/weather/meteo/default.nix
+++ b/pkgs/applications/networking/weather/meteo/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, gtk3
 , json-glib, libsoup, clutter, clutter-gtk, libchamplain, webkitgtk, geocode-glib
-, libappindicator, desktop-file-utils, appstream, gobject-introspection, wrapGAppsHook, hicolor-icon-theme }:
+, libappindicator, desktop-file-utils, appstream, gobject-introspection, wrapGAppsHook
+, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "meteo";
@@ -25,8 +26,6 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    clutter
-    clutter-gtk
     geocode-glib
     gtk3
     hicolor-icon-theme
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 142f5255caa..fca79636384 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -53,6 +53,7 @@ let
     /**/ if libc == null then null
     else if targetPlatform.libc == "musl"             then "${libc_lib}/lib/ld-musl-*"
     else if targetPlatform.libc == "bionic"           then "/system/bin/linker"
+    else if targetPlatform.libc == "nblibc"           then "${libc_lib}/libexec/ld.elf_so"
     else if targetPlatform.system == "i686-linux"     then "${libc_lib}/lib/ld-linux.so.2"
     else if targetPlatform.system == "x86_64-linux"   then "${libc_lib}/lib/ld-linux-x86-64.so.2"
     # ARM with a wildcard, which can be "" or "-armhf".
@@ -188,7 +189,7 @@ stdenv.mkDerivation {
       else if targetPlatform.isSparc then "sparc"
       else if targetPlatform.isAvr then "avr"
       else if targetPlatform.isAlpha then "alpha"
-      else throw "unknown emulation for platform: " + targetPlatform.config;
+      else throw "unknown emulation for platform: ${targetPlatform.config}";
     in targetPlatform.platform.bfdEmulation or (fmt + sep + arch);
 
   strictDeps = true;
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 176df51cbd9..f05b9fb2255 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -291,6 +291,10 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" stackprotector pic"
     ''
 
+    + optionalString targetPlatform.isNetBSD ''
+      hardening_unsupported_flags+=" stackprotector fortify"
+    ''
+
     + optionalString (targetPlatform.libc == "newlib") ''
       hardening_unsupported_flags+=" stackprotector fortify pie pic"
     ''
diff --git a/pkgs/desktops/plasma-5/breeze-gtk.nix b/pkgs/desktops/plasma-5/breeze-gtk.nix
index cc51c4b0471..1be3fe1c309 100644
--- a/pkgs/desktops/plasma-5/breeze-gtk.nix
+++ b/pkgs/desktops/plasma-5/breeze-gtk.nix
@@ -1,10 +1,10 @@
-{ mkDerivation, lib, extra-cmake-modules, gtk2, qtbase, }:
+{ mkDerivation, lib, extra-cmake-modules, gtk2, qtbase, sassc, python3, breeze-qt5 }:
 
 let inherit (lib) getLib; in
 
 mkDerivation {
   name = "breeze-gtk";
-  nativeBuildInputs = [ extra-cmake-modules ];
+  nativeBuildInputs = [ extra-cmake-modules sassc python3 python3.pkgs.pycairo breeze-qt5 ];
   buildInputs = [ qtbase ];
   postPatch = ''
     sed -i cmake/FindGTKEngine.cmake \
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index 814795499a9..510ebf69fff 100644
--- a/pkgs/desktops/plasma-5/fetch.sh
+++ b/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.14.5/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.15.2/ -A '*.tar.xz' )
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch b/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch
index dde4a3c819f..139c2fcbd1f 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch
+++ b/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch
@@ -9,12 +9,12 @@ index 69d30705..52e91028 100644
 -background=${CMAKE_INSTALL_PREFIX}/${WALLPAPER_INSTALL_DIR}/Next/contents/images/3200x2000.png
 +background=${NIXPKGS_WALLPAPER_INSTALL_DIR}/Next/contents/images/3200x2000.png
 diff --git a/startkde/CMakeLists.txt b/startkde/CMakeLists.txt
-index cb75aeca..247db953 100644
+index 6a1a2121..f03fd349 100644
 --- a/startkde/CMakeLists.txt
 +++ b/startkde/CMakeLists.txt
-@@ -3,11 +3,6 @@ add_subdirectory(kstartupconfig)
- add_subdirectory(ksyncdbusenv)
+@@ -4,11 +4,6 @@ add_subdirectory(ksyncdbusenv)
  add_subdirectory(waitforname)
+ add_subdirectory(kcheckrunning)
  
 -#FIXME: reconsider, looks fishy
 -if(NOT CMAKE_INSTALL_PREFIX STREQUAL "/usr")
@@ -36,7 +36,7 @@ index 493218ea..d507aa55 100644
 +    return system( NIXPKGS_KDOSTARTUPCONFIG5 );
      }
 diff --git a/startkde/startkde.cmake b/startkde/startkde.cmake
-index 714a9bf1..9733c612 100644
+index b68f0c68..a18efd96 100644
 --- a/startkde/startkde.cmake
 +++ b/startkde/startkde.cmake
 @@ -1,22 +1,31 @@
@@ -185,6 +185,7 @@ index 714a9bf1..9733c612 100644
 -ksplashrc KSplash Theme Breeze
 +ksplashrc KSplash Theme org.kde.breeze.desktop
  ksplashrc KSplash Engine KSplashQML
+ kdeglobals KScreen ScaleFactor ''
  kdeglobals KScreen ScreenScaleFactors ''
  kcmfonts General forceFontDPI 0
 +kcmfonts General dontChangeAASettings true
@@ -253,7 +254,7 @@ index 714a9bf1..9733c612 100644
  
  #Do not sync any of this section with the wayland versions as there scale factors are
  #sent properly over wl_output
-@@ -99,26 +180,33 @@ fi
+@@ -104,26 +185,33 @@ fi
  #otherwise apps that manually opt in for high DPI get auto scaled by the developer AND manually scaled by us
  export QT_AUTO_SCREEN_SCALE_FACTOR=0
  
@@ -300,7 +301,7 @@ index 714a9bf1..9733c612 100644
  Xft.dpi: $kcmfonts_general_forcefontdpi
  EOF
  fi
-@@ -127,11 +215,11 @@ dl=$DESKTOP_LOCKED
+@@ -132,11 +220,11 @@ dl=$DESKTOP_LOCKED
  unset DESKTOP_LOCKED # Don't want it in the environment
  
  ksplash_pid=
@@ -314,7 +315,7 @@ index 714a9bf1..9733c612 100644
        ;;
      None)
        ;;
-@@ -140,69 +228,6 @@ if test -z "$dl"; then
+@@ -145,27 +233,6 @@ if test -z "$dl"; then
    esac
  fi
  
@@ -339,52 +340,10 @@ index 714a9bf1..9733c612 100644
 -  done
 -done
 -
--# Activate the kde font directories.
--#
--# There are 4 directories that may be used for supplying fonts for KDE.
--#
--# There are two system directories. These belong to the administrator.
--# There are two user directories, where the user may add her own fonts.
--#
--# The 'override' versions are for fonts that should come first in the list,
--# i.e. if you have a font in your 'override' directory, it will be used in
--# preference to any other.
--#
--# The preference order looks like this:
--# user override, system override, X, user, system
--#
--# Where X is the original font database that was set up before this script
--# runs.
--
--usr_odir=$HOME/.fonts/kde-override
--usr_fdir=$HOME/.fonts
--
--if test -n "$KDEDIRS"; then
--  kdedirs_first=`echo "$KDEDIRS"|sed -e 's/:.*//'`
--  sys_odir=$kdedirs_first/share/fonts/override
--  sys_fdir=$kdedirs_first/share/fonts
--else
--  sys_odir=$KDEDIR/share/fonts/override
--  sys_fdir=$KDEDIR/share/fonts
--fi
--
--# We run mkfontdir on the user's font dirs (if we have permission) to pick
--# up any new fonts they may have installed. If mkfontdir fails, we still
--# add the user's dirs to the font path, as they might simply have been made
--# read-only by the administrator, for whatever reason.
--
--test -d "$sys_odir" && xset +fp "$sys_odir"
--test -d "$usr_odir" && (mkfontdir "$usr_odir" ; xset +fp "$usr_odir")
--test -d "$usr_fdir" && (mkfontdir "$usr_fdir" ; xset fp+ "$usr_fdir")
--test -d "$sys_fdir" && xset fp+ "$sys_fdir"
--
--# Ask X11 to rebuild its font list.
--xset fp rehash
--
  # Set a left cursor instead of the standard X11 "X" cursor, since I've heard
  # from some users that they're confused and don't know what to do. This is
  # especially necessary on slow machines, where starting KDE takes one or two
-@@ -257,44 +282,65 @@ export XDG_DATA_DIRS
+@@ -221,44 +288,65 @@ export XDG_DATA_DIRS
  #
  KDE_FULL_SESSION=true
  export KDE_FULL_SESSION
@@ -463,7 +422,7 @@ index 714a9bf1..9733c612 100644
  
  # finally, give the session control to the session manager
  # see kdebase/ksmserver for the description of the rest of the startup sequence
-@@ -306,12 +352,16 @@ qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit &
+@@ -270,12 +358,16 @@ qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit &
  # We only check for 255 which means that the ksmserver process could not be
  # started, any problems thereafter, e.g. ksmserver failing to initialize,
  # will remain undetected.
@@ -483,7 +442,7 @@ index 714a9bf1..9733c612 100644
  if test $? -eq 255; then
    # Startup error
    echo 'startkde: Could not start ksmserver. Check your installation.'  1>&2
-@@ -322,36 +372,36 @@ fi
+@@ -286,36 +378,36 @@ fi
  #Anything after here is logout
  #It is not called after shutdown/restart
  
@@ -534,7 +493,7 @@ index 714a9bf1..9733c612 100644
  
  echo 'startkde: Done.'  1>&2
 diff --git a/startkde/startplasma.cmake b/startkde/startplasma.cmake
-index de98541c..39c0b521 100644
+index 1fe41c59..39c0b521 100644
 --- a/startkde/startplasma.cmake
 +++ b/startkde/startplasma.cmake
 @@ -1,6 +1,6 @@
@@ -582,62 +541,14 @@ index de98541c..39c0b521 100644
        ;;
      None)
        ;;
-@@ -50,48 +48,6 @@ fi
- #In wayland we want Plasma to use Qt's scaling
- export PLASMA_USE_QT_SCALING=1
- 
--# Activate the kde font directories.
--#
--# There are 4 directories that may be used for supplying fonts for KDE.
--#
--# There are two system directories. These belong to the administrator.
--# There are two user directories, where the user may add her own fonts.
--#
--# The 'override' versions are for fonts that should come first in the list,
--# i.e. if you have a font in your 'override' directory, it will be used in
--# preference to any other.
--#
--# The preference order looks like this:
--# user override, system override, X, user, system
--#
--# Where X is the original font database that was set up before this script
--# runs.
--
--usr_odir=$HOME/.fonts/kde-override
--usr_fdir=$HOME/.fonts
--
--if test -n "$KDEDIRS"; then
--  kdedirs_first=`echo "$KDEDIRS"|sed -e 's/:.*//'`
--  sys_odir=$kdedirs_first/share/fonts/override
--  sys_fdir=$kdedirs_first/share/fonts
--else
--  sys_odir=$KDEDIR/share/fonts/override
--  sys_fdir=$KDEDIR/share/fonts
--fi
--
--# We run mkfontdir on the user's font dirs (if we have permission) to pick
--# up any new fonts they may have installed. If mkfontdir fails, we still
--# add the user's dirs to the font path, as they might simply have been made
--# read-only by the administrator, for whatever reason.
--
--test -d "$sys_odir" && xset +fp "$sys_odir"
--test -d "$usr_odir" && (mkfontdir "$usr_odir" ; xset +fp "$usr_odir")
--test -d "$usr_fdir" && (mkfontdir "$usr_fdir" ; xset fp+ "$usr_fdir")
--test -d "$sys_fdir" && xset fp+ "$sys_fdir"
--
--# Ask X11 to rebuild its font list.
--xset fp rehash
--
- # Set a left cursor instead of the standard X11 "X" cursor, since I've heard
- # from some users that they're confused and don't know what to do. This is
- # especially necessary on slow machines, where starting KDE takes one or two
-@@ -100,22 +56,13 @@ xset fp rehash
+@@ -58,23 +56,13 @@ export PLASMA_USE_QT_SCALING=1
  # If the user has overwritten fonts, the cursor font may be different now
  # so don't move this up.
  #
 -xsetroot -cursor_name left_ptr
 -
 -# Get Ghostscript to look into user's KDE fonts dir for additional Fontmap
+-usr_fdir=$HOME/.fonts
 -if test -n "$GS_LIB" ; then
 -    GS_LIB=$usr_fdir:$GS_LIB
 -    export GS_LIB
@@ -657,7 +568,7 @@ index de98541c..39c0b521 100644
  
  # At this point all environment variables are set, let's send it to the DBus session server to update the activation environment
  if which dbus-update-activation-environment >/dev/null 2>/dev/null ; then
-@@ -131,16 +78,15 @@ fi
+@@ -90,16 +78,15 @@ fi
  
  # We set LD_BIND_NOW to increase the efficiency of kdeinit.
  # kdeinit unsets this variable before loading applications.
@@ -676,7 +587,7 @@ index de98541c..39c0b521 100644
  
  # finally, give the session control to the session manager
  # see kdebase/ksmserver for the description of the rest of the startup sequence
-@@ -166,19 +112,19 @@ fi
+@@ -125,19 +112,19 @@ fi
  #Anything after here is logout
  #It is not called after shutdown/restart
  
@@ -704,7 +615,7 @@ index de98541c..39c0b521 100644
              done
              break
          fi
-@@ -187,15 +133,17 @@ fi
+@@ -146,15 +133,17 @@ fi
  
  echo 'startplasma: Shutting down...'  1>&2
  # just in case
@@ -727,7 +638,7 @@ index de98541c..39c0b521 100644
  
  echo 'startplasma: Done.'  1>&2
 diff --git a/startkde/startplasmacompositor.cmake b/startkde/startplasmacompositor.cmake
-index dd9e304d..12132f9e 100644
+index dcb473a4..48dbf465 100644
 --- a/startkde/startplasmacompositor.cmake
 +++ b/startkde/startplasmacompositor.cmake
 @@ -1,118 +1,174 @@
@@ -940,18 +851,18 @@ index dd9e304d..12132f9e 100644
  #otherwise apps that manually opt in for high DPI get auto scaled by the developer AND scaled by the wl_output
  export QT_AUTO_SCREEN_SCALE_FACTOR=0
  
--# XCursor mouse theme needs to be applied here to work even for kded or ksmserver
--if test -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" ; then
--    @EXPORT_XCURSOR_PATH@
 +XCURSOR_PATH=~/.icons
 +IFS=":" read -r -a xdgDirs <<< "$XDG_DATA_DIRS"
 +for xdgDir in "${xdgDirs[@]}"; do
 +    XCURSOR_PATH="$XCURSOR_PATH:$xdgDir/icons"
 +done
 +export XCURSOR_PATH
- 
++
+ # XCursor mouse theme needs to be applied here to work even for kded or ksmserver
+-if test -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" ; then
+-    @EXPORT_XCURSOR_PATH@
+-
 -    # TODO: is kapplymousetheme a core app?
-+# XCursor mouse theme needs to be applied here to work even for kded or ksmserver
 +if [ -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" ]; then
      #kapplymousetheme "$kcminputrc_mouse_cursortheme" "$kcminputrc_mouse_cursorsize"
 -    if test $? -eq 10; then
@@ -1036,7 +947,7 @@ index dd9e304d..12132f9e 100644
      : # ok
  else
      echo 'startplasmacompositor: Could not start D-Bus. Can you call qdbus?'  1>&2
-@@ -212,26 +228,47 @@ export KDE_FULL_SESSION
+@@ -212,7 +228,7 @@ export KDE_FULL_SESSION
  KDE_SESSION_VERSION=5
  export KDE_SESSION_VERSION
  
@@ -1045,7 +956,9 @@ index dd9e304d..12132f9e 100644
  export KDE_SESSION_UID
  
  XDG_CURRENT_DESKTOP=KDE
- export XDG_CURRENT_DESKTOP
+@@ -221,20 +237,41 @@ export XDG_CURRENT_DESKTOP
+ XDG_SESSION_TYPE=wayland
+ export XDG_SESSION_TYPE
  
 +# Source scripts found in <config locations>/plasma-workspace/env/*.sh
 +# (where <config locations> correspond to the system and user's configuration
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index 0842034f0d8..0a0a9015de3 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -3,363 +3,363 @@
 
 {
   bluedevil = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/bluedevil-5.14.5.tar.xz";
-      sha256 = "1khqw11apvcf5g5m9z111rvk4scxh3z3yhcpwqws1h0s5c5lr7z7";
-      name = "bluedevil-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/bluedevil-5.15.2.tar.xz";
+      sha256 = "1d6dq7kgxni7hj5cdfqlb2ff3ddy30a82w80nxfwshzp1xbdljzw";
+      name = "bluedevil-5.15.2.tar.xz";
     };
   };
   breeze = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/breeze-5.14.5.tar.xz";
-      sha256 = "15hphz2mm2m3j0a0hwj7m65rggyaxdxy08yqs73bg3yg67n6x3p7";
-      name = "breeze-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/breeze-5.15.2.tar.xz";
+      sha256 = "0m2fpcbi3fsj9a3j3ry7l7f38whm38mpprap86v40m4zcv3wcav8";
+      name = "breeze-5.15.2.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/breeze-grub-5.14.5.tar.xz";
-      sha256 = "0bkaaxfl1ds58qcdrxswaacir7wcc65a960lwdkmpdl16g9f4gix";
-      name = "breeze-grub-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/breeze-grub-5.15.2.tar.xz";
+      sha256 = "18rm4h395w8x3yrirl53402qiiz7yc4i3iw5ncmd0184jhl6n7z5";
+      name = "breeze-grub-5.15.2.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/breeze-gtk-5.14.5.tar.xz";
-      sha256 = "0bysq83xbqmhb4wld51zd6lllr66b8w7pinizc99k8z1yz5jdb0m";
-      name = "breeze-gtk-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/breeze-gtk-5.15.2.tar.xz";
+      sha256 = "0fbxfsjyxjk9shrjiz5w9x3v5jk3f4csw2rryk7kdk5q1m5ppfjw";
+      name = "breeze-gtk-5.15.2.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/breeze-plymouth-5.14.5.tar.xz";
-      sha256 = "1rbdpz9vlami7217v3dk8ljz0fgjz9zi1l0gwkhslayz5sybld96";
-      name = "breeze-plymouth-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/breeze-plymouth-5.15.2.tar.xz";
+      sha256 = "0n6pr4k9jc3ivi0dhrrfv9xhf0p4irxbpghx3m3b860jwmm5d4zh";
+      name = "breeze-plymouth-5.15.2.tar.xz";
     };
   };
   discover = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/discover-5.14.5.tar.xz";
-      sha256 = "0gxhl2cv5yz3jw8fp8g8idi1k5hlhnvwbnvvg0dgnlzz6jb1s8dd";
-      name = "discover-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/discover-5.15.2.tar.xz";
+      sha256 = "0v9wnsgqxa4vbvgdsgpm54hnw8dsxahapl42vkf0xjfx101f3y62";
+      name = "discover-5.15.2.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/drkonqi-5.14.5.tar.xz";
-      sha256 = "0xgym368f9r21wjh9fpv16m90dcj87g9p5df850fnn2k5n8x38z8";
-      name = "drkonqi-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/drkonqi-5.15.2.tar.xz";
+      sha256 = "085dv4ga7gvycs470v594i5j8s55aygalx52fcbbncji8r1x0zdv";
+      name = "drkonqi-5.15.2.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kactivitymanagerd-5.14.5.tar.xz";
-      sha256 = "0zms9npis0rklnbz93c69h4yg7dkrmfkzvzsfvkg90w37ap3vyl7";
-      name = "kactivitymanagerd-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kactivitymanagerd-5.15.2.tar.xz";
+      sha256 = "1bldpay46gww1m0087bdrl64paw2466mnnr10w3qv1c2g3w4aiky";
+      name = "kactivitymanagerd-5.15.2.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kde-cli-tools-5.14.5.tar.xz";
-      sha256 = "01mrnjqla4q07cnb1p51nq2pvj9vaamic3dsyj3b7hqky9fna9ln";
-      name = "kde-cli-tools-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kde-cli-tools-5.15.2.tar.xz";
+      sha256 = "1b178szx0ansd9srkj1rzqcc1ijfvs92vg870plzqy4ygg94yc32";
+      name = "kde-cli-tools-5.15.2.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kdecoration-5.14.5.tar.xz";
-      sha256 = "115pli0qpa8lx0jasg1886fcg7gb2kk8v6k8r8l8c820l97sq7in";
-      name = "kdecoration-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kdecoration-5.15.2.tar.xz";
+      sha256 = "1gyy55j0bs1adglqq8wjy284pdp3vm9bj51q7h7q7yz2khk8kc3r";
+      name = "kdecoration-5.15.2.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kde-gtk-config-5.14.5.tar.xz";
-      sha256 = "12467wkjh2nmcf6r7n8qin1rryd39g0dg7gn43sdg6vdwpyl2kdm";
-      name = "kde-gtk-config-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kde-gtk-config-5.15.2.tar.xz";
+      sha256 = "07ng7nynmfn23zssbawn4xjnj8sqkqsdv1nv29pkhda82bpji5a4";
+      name = "kde-gtk-config-5.15.2.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kdeplasma-addons-5.14.5.tar.xz";
-      sha256 = "18sph3719d9pq2j5k7swiv9xbrpj659a3q66zvhz3dmh11y73f0m";
-      name = "kdeplasma-addons-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kdeplasma-addons-5.15.2.tar.xz";
+      sha256 = "0c1j9830n5vyqjmyclljkxhgmgyhhzm4ck9zm5cnjf1s5x9hqdly";
+      name = "kdeplasma-addons-5.15.2.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kgamma5-5.14.5.tar.xz";
-      sha256 = "17smrdwyalknb3f6ckqs7kglfpqwajbiyd212wlsmqbva4by0fy0";
-      name = "kgamma5-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kgamma5-5.15.2.tar.xz";
+      sha256 = "06qp20dnvqg0bcf09iwhwcqbkyz85z27cp811vg72nq6vqpd98sy";
+      name = "kgamma5-5.15.2.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/khotkeys-5.14.5.tar.xz";
-      sha256 = "0572jpgbhacx4gy40m594rbnxy3zaq5w3lcrfd8i2750ljswcq24";
-      name = "khotkeys-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/khotkeys-5.15.2.tar.xz";
+      sha256 = "18hjlvvbnid6j77pnr515kglllsidx8dgrx5sbvy9myvsd47wlki";
+      name = "khotkeys-5.15.2.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kinfocenter-5.14.5.tar.xz";
-      sha256 = "1z1i9g923cbdni5gfa6dpv46z1p2v40rfcvhy7i9h5nf49aw2rnc";
-      name = "kinfocenter-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kinfocenter-5.15.2.tar.xz";
+      sha256 = "0wag0md22dvnz897s535qigsimmcis7i9fsngq1hbqz22rx7x5pw";
+      name = "kinfocenter-5.15.2.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kmenuedit-5.14.5.tar.xz";
-      sha256 = "1aa4a35s5h44fc88hmmfdpzy26zc47h9n448cd4vbm4bm411551d";
-      name = "kmenuedit-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kmenuedit-5.15.2.tar.xz";
+      sha256 = "1xjnj40m86sdyna9xm5bj0m4mnmqrpkpg9gnhr1naqwqxaahvvyk";
+      name = "kmenuedit-5.15.2.tar.xz";
     };
   };
   kscreen = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kscreen-5.14.5.tar.xz";
-      sha256 = "1nb1ysgcx49galbf16mxbawybfik92bpr9vbwgg5ycsdx1f9q8yi";
-      name = "kscreen-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kscreen-5.15.2.tar.xz";
+      sha256 = "1vzp98cjhpbp565rfa1id1pcyir4hagmrz020jjn0gb2dfk6wrsv";
+      name = "kscreen-5.15.2.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kscreenlocker-5.14.5.tar.xz";
-      sha256 = "16amr7pz0k6w5vkk1dwn2qi3s1mln0jypwmjazqq2lbwimn8k56m";
-      name = "kscreenlocker-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kscreenlocker-5.15.2.tar.xz";
+      sha256 = "09b3zb95psg3gwg1lcnqsrw6llg7bdlq97zsg373gs4ljlmdgwms";
+      name = "kscreenlocker-5.15.2.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/ksshaskpass-5.14.5.tar.xz";
-      sha256 = "0skr247k4ky7lpbdwlmkrnr3mj1pa6pxl96pyxwsw7za784qg6dj";
-      name = "ksshaskpass-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/ksshaskpass-5.15.2.tar.xz";
+      sha256 = "1nf8s8vdgbak8sys9fw53xfcjpy1hnq1jjyxfyw22fhz2qnx4a7p";
+      name = "ksshaskpass-5.15.2.tar.xz";
     };
   };
   ksysguard = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/ksysguard-5.14.5.tar.xz";
-      sha256 = "0ybxh6ll080rkrrr4b5ydl06x8zi97702661cajvbv00lhq4vp8b";
-      name = "ksysguard-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/ksysguard-5.15.2.tar.xz";
+      sha256 = "1n38kc9m7jkimxrh0lqff9zz82jap0qv69l3490zsl70pgbhgwdn";
+      name = "ksysguard-5.15.2.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kwallet-pam-5.14.5.tar.xz";
-      sha256 = "1mkjjc88kqf5x313nifla9pzrgzqm4v92150dbs1f89bsn673pk8";
-      name = "kwallet-pam-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kwallet-pam-5.15.2.tar.xz";
+      sha256 = "12hjg6cwgh4h85hfyw3mdpci9p6s6h6z7i6s2hhnsvfr2zm6nq6z";
+      name = "kwallet-pam-5.15.2.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kwayland-integration-5.14.5.tar.xz";
-      sha256 = "0rd0xhb53iixv9i8x0gh3rr1082lj7zdymsqdmi7sfgb66g8c03l";
-      name = "kwayland-integration-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kwayland-integration-5.15.2.tar.xz";
+      sha256 = "1j076lmkgm1m1ymrpkmzh7yq4sk8qv12ggrczb9ri2gimklghmav";
+      name = "kwayland-integration-5.15.2.tar.xz";
     };
   };
   kwin = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kwin-5.14.5.tar.xz";
-      sha256 = "0ifdlnzw3ydrbidzk256vks66d1rxyilhqi09csygx17jqk7szj4";
-      name = "kwin-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kwin-5.15.2.tar.xz";
+      sha256 = "112xysqgffw718272praaym86kbbq01rwjf9w1sv3b8i1lbrfjfy";
+      name = "kwin-5.15.2.tar.xz";
     };
   };
   kwrited = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/kwrited-5.14.5.tar.xz";
-      sha256 = "0115qscr8a54h7h8w4xw4fjzp7qipyw3d3jswhii7axnzp6q6qnh";
-      name = "kwrited-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/kwrited-5.15.2.tar.xz";
+      sha256 = "0inm1ry62p23ivad0k3p5cwk8hwirrk7incpx8znd755pr5905hy";
+      name = "kwrited-5.15.2.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/libkscreen-5.14.5.tar.xz";
-      sha256 = "1vyaml5ap9siw9idiny92li2bykd0nwjsmwmg0c7ad912j4g1s7y";
-      name = "libkscreen-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/libkscreen-5.15.2.tar.xz";
+      sha256 = "051carpksbh3n25cvd6i504jjjzmqzh0dj9p5chqmyfcp7m0lvm4";
+      name = "libkscreen-5.15.2.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/libksysguard-5.14.5.tar.xz";
-      sha256 = "11nz0g7dqvpvgsv0a7sai445vgfsfi25plj7jb1i46n7zf8i8mya";
-      name = "libksysguard-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/libksysguard-5.15.2.tar.xz";
+      sha256 = "058yajija7d7zvyv9vfyxbmj2y5amrv96mkbypqcdmzx69x5ig4c";
+      name = "libksysguard-5.15.2.tar.xz";
     };
   };
   milou = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/milou-5.14.5.tar.xz";
-      sha256 = "1776441mhmwcvrzmdqg531md79azbkbhng51kyq6i9cvkhxyf583";
-      name = "milou-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/milou-5.15.2.tar.xz";
+      sha256 = "0y7dbjhwbk7gnjpxsn2rddp3i3a02hfwiyx9070lm6am3lvlj8r8";
+      name = "milou-5.15.2.tar.xz";
     };
   };
   oxygen = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/oxygen-5.14.5.tar.xz";
-      sha256 = "0h70k7af69zdky0g6napd1kdnvbxhnw3nrwr9jqv1fq5762xnkk8";
-      name = "oxygen-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/oxygen-5.15.2.tar.xz";
+      sha256 = "1vrcdj61ii391swqxjbsfccmv854vg8zsbvjxb78a6fp6k11wivj";
+      name = "oxygen-5.15.2.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plasma-browser-integration-5.14.5.tar.xz";
-      sha256 = "1260h5sh0gkbkhcj17ss0n0y48i1pxh3f4p5dcbgbz775g1dhi2s";
-      name = "plasma-browser-integration-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plasma-browser-integration-5.15.2.tar.xz";
+      sha256 = "00mp7wwk0jz7wrkii5yq58amsw54dyjcprp3w58phvydam2d3n79";
+      name = "plasma-browser-integration-5.15.2.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plasma-desktop-5.14.5.tar.xz";
-      sha256 = "0pr07p36jrpvkk4fp14fb4minnwj5gnmvdg9jf7bi8sjjz6jpnnl";
-      name = "plasma-desktop-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plasma-desktop-5.15.2.tar.xz";
+      sha256 = "1axlkjmgf3chg9wl13j91vmfik0va8lngq45y0xr15lc88w6qms0";
+      name = "plasma-desktop-5.15.2.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plasma-integration-5.14.5.tar.xz";
-      sha256 = "15nhrliri4cjx712f1rxbq2f87lj4wxsqgbhw9p02z12h3n9z3ds";
-      name = "plasma-integration-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plasma-integration-5.15.2.tar.xz";
+      sha256 = "0glj6gsah96xbgcdijqjfpn7dj0yh05dvpvjhk6wmrb30z63hykx";
+      name = "plasma-integration-5.15.2.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plasma-nm-5.14.5.tar.xz";
-      sha256 = "1hf98c9llcff0h2w4l45nw0vysxvnanf7hczhj93z4562qrafxm2";
-      name = "plasma-nm-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plasma-nm-5.15.2.tar.xz";
+      sha256 = "12fahsqs54k8b5g9ipzisvaq1lmmgmyh3xbdixn1bxqdfdc50jax";
+      name = "plasma-nm-5.15.2.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plasma-pa-5.14.5.tar.xz";
-      sha256 = "0z74qg7m4y1ifzni1877hiil3rn6ad3x4fvgv4bib4jhg7ckaiqg";
-      name = "plasma-pa-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plasma-pa-5.15.2.tar.xz";
+      sha256 = "1cw3c84spl2y6fzp0mn986xl7j60z28acga95x5zr2xiaig1p1q3";
+      name = "plasma-pa-5.15.2.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plasma-sdk-5.14.5.tar.xz";
-      sha256 = "0v90nk6yhrapdszh8sd3m0wffkjgnrhdy1sz1vl9s0ab5sdpmxr1";
-      name = "plasma-sdk-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plasma-sdk-5.15.2.tar.xz";
+      sha256 = "0kq5h2zfg1f11cmfzmsn4vlfvj1jfkz1pnc67zgs7f70bap4k8zr";
+      name = "plasma-sdk-5.15.2.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plasma-tests-5.14.5.tar.xz";
-      sha256 = "03h889xn6i067d1sdymn6fgj8xik3pa75lljl8kj3vl6bks24jyh";
-      name = "plasma-tests-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plasma-tests-5.15.2.tar.xz";
+      sha256 = "1bsplrmvw73lsdiqwiznbxicyl36vf30mm34bfib8ii0rpx4cn2i";
+      name = "plasma-tests-5.15.2.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plasma-vault-5.14.5.tar.xz";
-      sha256 = "17r44n0mkcwc2fkjf397ks8xv82m59gvnawbj9713c5l31ln5mi3";
-      name = "plasma-vault-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plasma-vault-5.15.2.tar.xz";
+      sha256 = "0gmch0s9vy72qbxk0bshxd2hmx6dwdad0pk29glpq7l3av3nirlp";
+      name = "plasma-vault-5.15.2.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plasma-workspace-5.14.5.tar.xz";
-      sha256 = "14d3wnsm4bi1izx5qlpk0mnqmxwx18bqypa3wwmhn1535kfz8glh";
-      name = "plasma-workspace-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plasma-workspace-5.15.2.tar.xz";
+      sha256 = "1ncd0mc3y8j3r8m9hrq3b07lmcccq7xz76b19rilba1a7qyd03az";
+      name = "plasma-workspace-5.15.2.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plasma-workspace-wallpapers-5.14.5.tar.xz";
-      sha256 = "17q0685i4267ihlrii3b8764ak458kzs0inqfcj9x25m338xz19q";
-      name = "plasma-workspace-wallpapers-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plasma-workspace-wallpapers-5.15.2.tar.xz";
+      sha256 = "00c19b3clgcjcvafmiwb2mdkkzcq8dvwpaqaajr54c3xn9fa5vss";
+      name = "plasma-workspace-wallpapers-5.15.2.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/plymouth-kcm-5.14.5.tar.xz";
-      sha256 = "1cwmkprhc4496x4a38l2x7hnifnp4daw8g1gic0ik2sm0a6xn77k";
-      name = "plymouth-kcm-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/plymouth-kcm-5.15.2.tar.xz";
+      sha256 = "1bkrkym2kjj7knhqzzcd6qhd1nmzvwah45hqvvnaja8kd82vjlzi";
+      name = "plymouth-kcm-5.15.2.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.14.5";
+    version = "1-5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/polkit-kde-agent-1-5.14.5.tar.xz";
-      sha256 = "1lzw4zq2ysnva5g1v85k9k6yck30wfgcy0sn1ncxy183vm36b2ag";
-      name = "polkit-kde-agent-1-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/polkit-kde-agent-1-5.15.2.tar.xz";
+      sha256 = "1i0hf77ms0k3q4r4cmfjcv2jnml5cig15biwfkh3jyafz8q8miha";
+      name = "polkit-kde-agent-1-5.15.2.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/powerdevil-5.14.5.tar.xz";
-      sha256 = "0rdrj6k7bb1cisz1g8akxxn68c8rj0zddim1afvcq1iqr727wqj5";
-      name = "powerdevil-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/powerdevil-5.15.2.tar.xz";
+      sha256 = "0gl5wh8s7bmjprbv9gph83qhviv87pmdadrlrnbm5n1nwb1h7kd9";
+      name = "powerdevil-5.15.2.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/sddm-kcm-5.14.5.tar.xz";
-      sha256 = "0aix2grc2h2w8qxcbdwxhvq09ispblnisl017bvb19apkvs0w8m1";
-      name = "sddm-kcm-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/sddm-kcm-5.15.2.tar.xz";
+      sha256 = "1l8ma0kpqq7hcg4addm2c47w33dc12q8inii0aw4yq0syhqgzq9s";
+      name = "sddm-kcm-5.15.2.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/systemsettings-5.14.5.tar.xz";
-      sha256 = "1q1ih74vkdhss64ayc3qmbrw4hhvfl3axlkhh63rky09qn83x9zw";
-      name = "systemsettings-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/systemsettings-5.15.2.tar.xz";
+      sha256 = "0rx3av1by04551y88y5f1lm1rvvxkxqjdjw04fjdnpx7qipv0l6l";
+      name = "systemsettings-5.15.2.tar.xz";
     };
   };
   user-manager = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/user-manager-5.14.5.tar.xz";
-      sha256 = "0aw2s029547rzx3xg9nib5w30d25978fpv7xyshxmp3z8rmzgcjv";
-      name = "user-manager-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/user-manager-5.15.2.tar.xz";
+      sha256 = "09xlnzdsk94p95s1zms8li0q0pv8z66hkla8ns27im21rrnrz6l0";
+      name = "user-manager-5.15.2.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.14.5";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.14.5/xdg-desktop-portal-kde-5.14.5.tar.xz";
-      sha256 = "0h6hdk9fkf98jfjaza773k37369ayvwmwrgxn6al2pma6n07vddq";
-      name = "xdg-desktop-portal-kde-5.14.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.15.2/xdg-desktop-portal-kde-5.15.2.tar.xz";
+      sha256 = "1zzy01lgznc7z3hz9yhbspx3zg8lala7zzcsxsly4jwx4666ixp4";
+      name = "xdg-desktop-portal-kde-5.15.2.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix
index 956f357f84c..68c05d28978 100644
--- a/pkgs/development/compilers/gcc/7/default.nix
+++ b/pkgs/development/compilers/gcc/7/default.nix
@@ -48,6 +48,9 @@ let version = "7.4.0";
         ./riscv-no-relax.patch
       ]
       ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
+      ++ optionals targetPlatform.isNetBSD [
+        ../libstdc++-netbsd-ctypes.patch
+      ]
       ++ optional noSysDirs ../no-sys-dirs.patch
       ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
         url = "https://git.busybox.net/buildroot/plain/package/gcc/7.1.0/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
@@ -302,6 +305,7 @@ stdenv.mkDerivation ({
       "--disable-gnu-indirect-function"
     ]
     ++ optional (targetPlatform.isAarch64) "--enable-fix-cortex-a53-843419"
+    ++ optional targetPlatform.isNetBSD "--disable-libcilkrts"
   ;
 
   targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
diff --git a/pkgs/development/compilers/gcc/libstdc++-netbsd-ctypes.patch b/pkgs/development/compilers/gcc/libstdc++-netbsd-ctypes.patch
new file mode 100644
index 00000000000..28fff80b786
--- /dev/null
+++ b/pkgs/development/compilers/gcc/libstdc++-netbsd-ctypes.patch
@@ -0,0 +1,141 @@
+diff --git a/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h b/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
+index ff3ec893974..21eccf9fde1 100644
+--- a/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
++++ b/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
+@@ -38,40 +38,46 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+   /// @brief  Base class for ctype.
+   struct ctype_base
+   {
+-    // Non-standard typedefs.
+-    typedef const unsigned char*	__to_type;
+ 
+     // NB: Offsets into ctype<char>::_M_table force a particular size
+     // on the mask type. Because of this, we don't use an enum.
+-    typedef unsigned char      	mask;
+ 
+ #ifndef _CTYPE_U
+-    static const mask upper    	= _U;
+-    static const mask lower 	= _L;
+-    static const mask alpha 	= _U | _L;
+-    static const mask digit 	= _N;
+-    static const mask xdigit 	= _N | _X;
+-    static const mask space 	= _S;
+-    static const mask print 	= _P | _U | _L | _N | _B;
+-    static const mask graph 	= _P | _U | _L | _N;
+-    static const mask cntrl 	= _C;
+-    static const mask punct 	= _P;
+-    static const mask alnum 	= _U | _L | _N;
++    // Non-standard typedefs.
++    typedef const unsigned char*	__to_type;
++
++    typedef unsigned char	mask;
++
++    static const mask upper	= _U;
++    static const mask lower	= _L;
++    static const mask alpha	= _U | _L;
++    static const mask digit	= _N;
++    static const mask xdigit	= _N | _X;
++    static const mask space	= _S;
++    static const mask print	= _P | _U | _L | _N | _B;
++    static const mask graph	= _P | _U | _L | _N;
++    static const mask cntrl	= _C;
++    static const mask punct	= _P;
++    static const mask alnum	= _U | _L | _N;
+ #else
+-    static const mask upper    	= _CTYPE_U;
+-    static const mask lower 	= _CTYPE_L;
+-    static const mask alpha 	= _CTYPE_U | _CTYPE_L;
+-    static const mask digit 	= _CTYPE_N;
+-    static const mask xdigit 	= _CTYPE_N | _CTYPE_X;
+-    static const mask space 	= _CTYPE_S;
+-    static const mask print 	= _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N | _CTYPE_B;
+-    static const mask graph 	= _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N;
+-    static const mask cntrl 	= _CTYPE_C;
+-    static const mask punct 	= _CTYPE_P;
+-    static const mask alnum 	= _CTYPE_U | _CTYPE_L | _CTYPE_N;
++    typedef const unsigned short*	__to_type;
++
++    typedef unsigned short	mask;
++
++    static const mask upper	= _CTYPE_U;
++    static const mask lower	= _CTYPE_L;
++    static const mask alpha	= _CTYPE_A;
++    static const mask digit	= _CTYPE_D;
++    static const mask xdigit	= _CTYPE_X;
++    static const mask space	= _CTYPE_S;
++    static const mask print	= _CTYPE_R;
++    static const mask graph	= _CTYPE_G;
++    static const mask cntrl	= _CTYPE_C;
++    static const mask punct	= _CTYPE_P;
++    static const mask alnum	= _CTYPE_A | _CTYPE_D;
+ #endif
+ #if __cplusplus >= 201103L
+-    static const mask blank 	= space;
++    static const mask blank	= space;
+ #endif
+   };
+ 
+diff --git a/libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc b/libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
+index ed3b7cd0d6a..33358e8f5d8 100644
+--- a/libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
++++ b/libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
+@@ -38,11 +38,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ 
+ // Information as gleaned from /usr/include/ctype.h
+ 
+-  extern "C" const u_int8_t _C_ctype_[];
+-
+   const ctype_base::mask*
+   ctype<char>::classic_table() throw()
+-  { return _C_ctype_ + 1; }
++  { return _C_ctype_tab_ + 1; }
+ 
+   ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+ 		     size_t __refs)
+@@ -69,14 +67,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ 
+   char
+   ctype<char>::do_toupper(char __c) const
+-  { return ::toupper((int) __c); }
++  { return ::toupper((int)(unsigned char) __c); }
+ 
+   const char*
+   ctype<char>::do_toupper(char* __low, const char* __high) const
+   {
+     while (__low < __high)
+       {
+-	*__low = ::toupper((int) *__low);
++	*__low = ::toupper((int)(unsigned char) *__low);
+ 	++__low;
+       }
+     return __high;
+@@ -84,14 +82,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ 
+   char
+   ctype<char>::do_tolower(char __c) const
+-  { return ::tolower((int) __c); }
++  { return ::tolower((int)(unsigned char) __c); }
+ 
+   const char*
+   ctype<char>::do_tolower(char* __low, const char* __high) const
+   {
+     while (__low < __high)
+       {
+-	*__low = ::tolower((int) *__low);
++	*__low = ::tolower((int)(unsigned char) *__low);
+ 	++__low;
+       }
+     return __high;
+diff --git a/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h b/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
+index ace1120fba2..3234ce17c70 100644
+--- a/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
++++ b/libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
+@@ -48,7 +48,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+   is(const char* __low, const char* __high, mask* __vec) const
+   {
+     while (__low < __high)
+-      *__vec++ = _M_table[*__low++];
++      *__vec++ = _M_table[(unsigned char)*__low++];
+     return __high;
+   }
+ 
diff --git a/pkgs/development/compilers/llvm/6/llvm.nix b/pkgs/development/compilers/llvm/6/llvm.nix
index 16a716d32fa..1d96513a0ec 100644
--- a/pkgs/development/compilers/llvm/6/llvm.nix
+++ b/pkgs/development/compilers/llvm/6/llvm.nix
@@ -14,9 +14,6 @@
 , debugVersion ? false
 , enableManpages ? false
 , enableSharedLibraries ? true
-# Mesa requires AMDGPU target
-# BPF is used by bcc
-, enableTargets ? [ stdenv.hostPlatform stdenv.targetPlatform "AMDGPU" "BPF" ]
 }:
 
 let
diff --git a/pkgs/development/compilers/rust/bootstrap.nix b/pkgs/development/compilers/rust/bootstrap.nix
index ddef4adf0a0..b44c7815e90 100644
--- a/pkgs/development/compilers/rust/bootstrap.nix
+++ b/pkgs/development/compilers/rust/bootstrap.nix
@@ -3,16 +3,16 @@
 let
   # Note: the version MUST be one version prior to the version we're
   # building
-  version = "1.31.1";
+  version = "1.32.0";
 
-  # fetch hashes by running `print-hashes.sh 1.31.1`
+  # fetch hashes by running `print-hashes.sh 1.32.0`
   hashes = {
-    i686-unknown-linux-gnu = "1e77e5e8c745320faad9ce6f319a77b4a2e75d972eb68a195acd081ad910ab6d";
-    x86_64-unknown-linux-gnu = "a64685535d0c457f49a8712a096a5c21564cd66fd2f7da739487f028192ebe3c";
-    armv7-unknown-linux-gnueabihf = "11c717b781a7af5bdc829894139f8f45d4c12a061f7f9e39481f21426a04eb21";
-    aarch64-unknown-linux-gnu = "29a7c6eb536fefd0ca459e48dfaea006aa8bff8a87aa82a9b7d483487033632a";
-    i686-apple-darwin = "46566dc25fcbd8badc9950b8c9f9b0faeca065b5a09cd96258e4f4b10d686aed";
-    x86_64-apple-darwin = "8398b1b303bdf0e7605d08b87070a514a4f588797c6fb3593718cb9cec233ad6";
+    i686-unknown-linux-gnu = "4ce3a6a656669fa86606074b43fadeac7465ef48394249407e21106ed714c8db";
+    x86_64-unknown-linux-gnu = "e024698320d76b74daf0e6e71be3681a1e7923122e3ebd03673fcac3ecc23810";
+    armv7-unknown-linux-gnueabihf = "d7b69f60689d2905d8d3c2829b0f1cd0f86265a255ff88ea0deb601aebac6428";
+    aarch64-unknown-linux-gnu = "60def40961728212da4b3a9767d5a2ddb748400e150a5f8a6d5aa0e1b8ba1cee";
+    i686-apple-darwin = "76cc1280f6b61bf7cf1fddd5202cc236db7573ee05f39fc8cd12ddda8f39a7c3";
+    x86_64-apple-darwin = "f0dfba507192f9b5c330b5984ba71d57d434475f3d62bd44a39201e36fa76304";
   };
 
   platform =
diff --git a/pkgs/development/compilers/rust/default.nix b/pkgs/development/compilers/rust/default.nix
index 9640cd9b577..df64fff04dd 100644
--- a/pkgs/development/compilers/rust/default.nix
+++ b/pkgs/development/compilers/rust/default.nix
@@ -7,11 +7,11 @@
 
 let
   rustPlatform = recurseIntoAttrs (makeRustPlatform (callPackage ./bootstrap.nix {}));
-  version = "1.32.0";
-  cargoVersion = "1.32.0";
+  version = "1.33.0";
+  cargoVersion = "1.33.0";
   src = fetchurl {
     url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz";
-    sha256 = "0ji2l9xv53y27xy72qagggvq47gayr5lcv2jwvmfirx029vlqnac";
+    sha256 = "152x91mg7bz4ygligwjb05fgm1blwy2i70s2j03zc9jiwvbsh0as";
   };
 in rec {
   rustc = callPackage ./rustc.nix {
diff --git a/pkgs/development/compilers/rust/patches/net-tcp-disable-tests.patch b/pkgs/development/compilers/rust/patches/net-tcp-disable-tests.patch
index 10713b6b7aa..1bb9a98f7b6 100644
--- a/pkgs/development/compilers/rust/patches/net-tcp-disable-tests.patch
+++ b/pkgs/development/compilers/rust/patches/net-tcp-disable-tests.patch
@@ -1,8 +1,8 @@
 diff --git a/src/libstd/net/tcp.rs b/src/libstd/net/tcp.rs
-index 0f60b5b3e..9b08415e7 100644
+index 86ecb10edf..626be0a52d 100644
 --- a/src/libstd/net/tcp.rs
 +++ b/src/libstd/net/tcp.rs
-@@ -962,6 +962,7 @@ mod tests {
+@@ -955,6 +955,7 @@ mod tests {
          }
      }
  
@@ -10,7 +10,7 @@ index 0f60b5b3e..9b08415e7 100644
      #[test]
      fn listen_localhost() {
          let socket_addr = next_test_ip4();
-@@ -1020,6 +1021,7 @@ mod tests {
+@@ -1013,6 +1014,7 @@ mod tests {
          })
      }
  
@@ -18,7 +18,7 @@ index 0f60b5b3e..9b08415e7 100644
      #[test]
      fn read_eof() {
          each_ip(&mut |addr| {
-@@ -1039,6 +1041,7 @@ mod tests {
+@@ -1032,6 +1034,7 @@ mod tests {
          })
      }
  
@@ -26,7 +26,7 @@ index 0f60b5b3e..9b08415e7 100644
      #[test]
      fn write_close() {
          each_ip(&mut |addr| {
-@@ -1065,6 +1068,7 @@ mod tests {
+@@ -1058,6 +1061,7 @@ mod tests {
          })
      }
  
@@ -34,7 +34,7 @@ index 0f60b5b3e..9b08415e7 100644
      #[test]
      fn multiple_connect_serial() {
          each_ip(&mut |addr| {
-@@ -1087,6 +1091,7 @@ mod tests {
+@@ -1080,6 +1084,7 @@ mod tests {
          })
      }
  
@@ -42,7 +42,7 @@ index 0f60b5b3e..9b08415e7 100644
      #[test]
      fn multiple_connect_interleaved_greedy_schedule() {
          const MAX: usize = 10;
-@@ -1123,6 +1128,7 @@ mod tests {
+@@ -1116,6 +1121,7 @@ mod tests {
      }
  
      #[test]
@@ -50,7 +50,7 @@ index 0f60b5b3e..9b08415e7 100644
      fn multiple_connect_interleaved_lazy_schedule() {
          const MAX: usize = 10;
          each_ip(&mut |addr| {
-@@ -1401,6 +1407,7 @@ mod tests {
+@@ -1394,6 +1400,7 @@ mod tests {
      }
  
      #[test]
@@ -58,7 +58,7 @@ index 0f60b5b3e..9b08415e7 100644
      fn clone_while_reading() {
          each_ip(&mut |addr| {
              let accept = t!(TcpListener::bind(&addr));
-@@ -1421,7 +1422,10 @@ mod tests {
+@@ -1504,7 +1511,10 @@ mod tests {
  
      // FIXME: re-enabled bitrig/openbsd tests once their socket timeout code
      //        no longer has rounding errors.
@@ -70,7 +70,7 @@ index 0f60b5b3e..9b08415e7 100644
      #[test]
      fn timeouts() {
          let addr = next_test_ip4();
-@@ -1596,6 +1603,7 @@ mod tests {
+@@ -1591,6 +1601,7 @@ mod tests {
          drop(listener);
      }
  
@@ -78,7 +78,7 @@ index 0f60b5b3e..9b08415e7 100644
      #[test]
      fn nodelay() {
          let addr = next_test_ip4();
-@@ -1610,6 +1618,7 @@ mod tests {
+@@ -1605,6 +1616,7 @@ mod tests {
          assert_eq!(false, t!(stream.nodelay()));
      }
  
@@ -86,7 +86,7 @@ index 0f60b5b3e..9b08415e7 100644
      #[test]
      fn ttl() {
          let ttl = 100;
-@@ -1647,6 +1656,7 @@ mod tests {
+@@ -1642,6 +1654,7 @@ mod tests {
          }
      }
  
@@ -94,11 +94,3 @@ index 0f60b5b3e..9b08415e7 100644
      #[test]
      fn peek() {
          each_ip(&mut |addr| {
-@@ -1679,6 +1689,7 @@ mod tests {
-     }
- 
-     #[test]
-+    #[cfg_attr(any(target_os = "linux", target_os = "macos"), ignore)]
-     fn connect_timeout_unroutable() {
-         // this IP is unroutable, so connections should always time out,
-         // provided the network is reachable to begin with.
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix
index e2ff66a4708..007cd02957b 100644
--- a/pkgs/development/libraries/SDL/default.nix
+++ b/pkgs/development/libraries/SDL/default.nix
@@ -1,8 +1,9 @@
 { stdenv, config, libGLSupported, fetchurl, fetchpatch, pkgconfig, audiofile, libcap, libiconv
 , openglSupport ? libGLSupported, libGL, libGLU
-, alsaSupport ? stdenv.isLinux, alsaLib
-, x11Support ? !stdenv.isCygwin, libXext, libICE, libXrandr
-, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio
+, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsaLib
+, x11Support ? !stdenv.isCygwin && !stdenv.hostPlatform.isAndroid
+, libXext, libICE, libXrandr
+, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux && !stdenv.hostPlatform.isAndroid, libpulseaudio
 , OpenGL, CoreAudio, CoreServices, AudioUnit, Kernel, Cocoa
 , cf-private
 }:
@@ -12,9 +13,6 @@
 
 with stdenv.lib;
 
-assert !stdenv.isDarwin -> alsaSupport || pulseaudioSupport;
-assert openglSupport -> (stdenv.isDarwin || x11Support && libGL != null && libGLU != null);
-
 stdenv.mkDerivation rec {
   name    = "SDL-${version}";
   version = "1.2.15";
@@ -30,18 +28,18 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
   outputBin = "dev"; # sdl-config
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ]
+    ++ optional stdenv.isLinux libcap;
 
   propagatedBuildInputs = [ libiconv ]
     ++ optionals x11Support [ libXext libICE libXrandr ]
-    ++ optional stdenv.isLinux libcap
     ++ optionals openglSupport [ libGL libGLU ]
     ++ optional alsaSupport alsaLib
     ++ optional pulseaudioSupport libpulseaudio
     ++ optional stdenv.isDarwin Cocoa;
 
   buildInputs = [ ]
-    ++ optional (!stdenv.hostPlatform.isMinGW) audiofile
+    ++ optional (!stdenv.hostPlatform.isMinGW && alsaSupport) audiofile
     ++ optionals stdenv.isDarwin [
       AudioUnit CoreAudio CoreServices Kernel OpenGL
       # Needed for NSDefaultRunLoopMode symbols.
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index d82b25fb892..8f1b7d93d00 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -1,12 +1,16 @@
 { stdenv, config, libGLSupported, fetchurl, pkgconfig
 , openglSupport ? libGLSupported, libGL
-, alsaSupport ? stdenv.isLinux, alsaLib
-, x11Support ? !stdenv.isCygwin, libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor, libXinerama, libXext, libXxf86vm, libXrandr
-, waylandSupport ? stdenv.isLinux, wayland, wayland-protocols, libxkbcommon
-, dbusSupport ? stdenv.isLinux, dbus
+, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsaLib
+, x11Support ? !stdenv.isCygwin && !stdenv.hostPlatform.isAndroid
+, libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor
+, libXinerama, libXext, libXxf86vm, libXrandr
+, waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
+, wayland, wayland-protocols, libxkbcommon
+, dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, dbus
 , udevSupport ? false, udev
 , ibusSupport ? false, ibus
-, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio
+, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux && !stdenv.hostPlatform.isAndroid
+, libpulseaudio
 , AudioUnit, Cocoa, CoreAudio, CoreServices, ForceFeedback, OpenGL
 , audiofile, cf-private, libiconv
 }:
@@ -16,9 +20,6 @@
 
 with stdenv.lib;
 
-assert !stdenv.isDarwin -> alsaSupport || pulseaudioSupport;
-assert openglSupport -> (stdenv.isDarwin || x11Support && libGL != null);
-
 stdenv.mkDerivation rec {
   name = "SDL2-${version}";
   version = "2.0.9";
@@ -44,14 +45,14 @@ stdenv.mkDerivation rec {
     ++ optionals x11Support [ libX11 xorgproto ];
 
   dlopenBuildInputs = [ ]
-    ++ optional  alsaSupport alsaLib
+    ++ optionals  alsaSupport [ alsaLib audiofile ]
     ++ optional  dbusSupport dbus
     ++ optional  pulseaudioSupport libpulseaudio
     ++ optional  udevSupport udev
     ++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
     ++ optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ];
 
-  buildInputs = [ audiofile libiconv ]
+  buildInputs = [ libiconv ]
     ++ dlopenBuildInputs
     ++ optional  ibusSupport ibus
     ++ optionals stdenv.isDarwin [
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 845b09053ad..a761b8bd3f2 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -40,6 +40,9 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     pkgconfig
+  ];
+
+  buildInputs = [
     libiconv
     libintl
   ] ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index e0255be666e..7209bdb3df6 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -46,7 +46,7 @@ let
   '';
 
   binPrograms = optional (!stdenv.isDarwin) "gapplication" ++ [ "gdbus" "gio" "gsettings" ];
-  version = "2.58.2";
+  version = "2.58.3";
 in
 
 stdenv.mkDerivation rec {
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0jrxfm4gn1qz3y1450z709v74ys2bkjr8yffkgy106kgagb4xcn7";
+    sha256 = "10blprf5djbwxq8dqmjvcsdc9vqz63rl0ammfbd2b2p8cwbw6hwg";
   };
 
   patches = optional stdenv.isDarwin ./darwin-compilation.patch
@@ -66,26 +66,6 @@ stdenv.mkDerivation rec {
       ./schema-override-variable.patch
       # Require substituteInPlace in postPatch
       ./fix-gio-launch-desktop-path.patch
-      # https://gitlab.gnome.org/GNOME/glib/issues/1626
-      # https://gitlab.gnome.org/GNOME/glib/merge_requests/557
-      (fetchpatch {
-        url = https://gitlab.gnome.org/GNOME/glib/commit/85c4031696add9797e2334ced20678edcd96c869.patch;
-        sha256 = "1hmyvhx89wip2a26gk1rvd87k0pjfia51s0ysybjyzf5f1pzw877";
-      })
-      # https://gitlab.gnome.org/GNOME/glib/issues/1645
-      (fetchpatch {
-        url = https://gitlab.gnome.org/GNOME/glib/commit/e695ca9f310c393d8f39694f77471dbcb06daa9e.diff;
-        sha256 = "1jkb2bdnni0xdyn86xrx9z0fdwxrm7y08lagz8x5x01wglkwa26w";
-      })
-      # https://gitlab.gnome.org/GNOME/glib/issues/1643
-      (fetchpatch {
-        url = https://gitlab.gnome.org/GNOME/glib/commit/c792e5adaa8ae3a45e6ff3ff71168ad8d040a0d4.patch;
-        sha256 = "022x70qfn5wlv5gz3nlg0bwiwjxcd7l11j3qvbms2y8d1ffh5rfd";
-      })
-      (fetchpatch {
-        url = https://gitlab.gnome.org/GNOME/glib/commit/30ccbc386026cecac6ef3a77d8fa4f3c24ac68d7.patch;
-        sha256 = "04y3pxgzlx92cppwibx4rlsyvwxb37aq52x2lr6ajfgykv2nzpr3";
-      })
     ];
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix
index 579fca06ffb..19abca1cabb 100644
--- a/pkgs/development/libraries/gtk+/3.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -40,6 +40,13 @@ stdenv.mkDerivation rec {
       url = https://github.com/gnome/gtk/compare/3.24.5..47e4a111c2666961ab47b6df48460d3c9075d92d.patch;
       sha256 = "0ky4kmgcywg0qlwndn9aw083bkwnkr49bnlsz0ii93fxzvbiqglr";
     })
+    (fetchpatch {
+      # https://gitlab.gnome.org/GNOME/gtk/merge_requests/505 already merged
+      # but isn't in 3.24.5
+      name = "export-missing-symbols.patch";
+      url = https://gitlab.gnome.org/GNOME/gtk/commit/95c0f07295fd300ab7f3416a39290ae33585ea6c.patch;
+      sha256 = "0z9w7f39xcn1cbcd8jhx731vq64nvi5q6kyc86bq8r00daysjwnl";
+    })
   ] ++ optionals stdenv.isDarwin [
     # X11 module requires <gio/gdesktopappinfo.h> which is not installed on Darwin
     # let’s drop that dependency in similar way to how other parts of the library do it
diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix
index 029be971ac1..f2a1c500a8b 100644
--- a/pkgs/development/libraries/libarchive/default.nix
+++ b/pkgs/development/libraries/libarchive/default.nix
@@ -17,6 +17,21 @@ stdenv.mkDerivation rec {
     sha256 = "0bhfncid058p7n1n8v29l6wxm3mhdqfassscihbsxfwz3iwb2zms";
   };
 
+  patches = [
+    (fetchpatch {
+      # details: https://github.com/libarchive/libarchive/pull/1105
+      name = "cve-2018-1000877.diff"; # CVE-2018-1000877..80
+      url = "https://github.com/libarchive/libarchive/pull/1105.diff";
+      sha256 = "0mxcawfdy9m40mykzwhkl39a6vnh4ypgy0ipcz74qm4bi72x0gyf";
+    })
+    (fetchpatch {
+      # details: https://github.com/libarchive/libarchive/pull/1120
+      name = "cve-2019-1000019_cve-2019-1000020.diff";
+      url = "https://github.com/libarchive/libarchive/pull/1120.diff";
+      sha256 = "1mgx92v8hm7hw9j34nbfriqfkxshh3cy25rhavr7kl7lz4x5a6g4";
+    })
+  ];
+
   outputs = [ "out" "lib" "dev" ];
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/libglvnd/default.nix b/pkgs/development/libraries/libglvnd/default.nix
index 15efdd4fd4e..c7b76497fa8 100644
--- a/pkgs/development/libraries/libglvnd/default.nix
+++ b/pkgs/development/libraries/libglvnd/default.nix
@@ -38,7 +38,11 @@ in stdenv.mkDerivation rec {
       url = "https://github.com/NVIDIA/libglvnd/commit/0177ade40262e31a80608a8e8e52d3da7163dccf.patch";
       sha256 = "1rnz5jw2gvx4i1lcp0k85jz9xgr3dgzsd583m2dlxkaf2a09j89d";
     })
-  ];
+  ] ++ stdenv.lib.optional stdenv.isDarwin
+    (fetchpatch {
+      url = "https://github.com/NVIDIA/libglvnd/commit/294ccb2f49107432567e116e13efac586580a4cc.patch";
+      sha256 = "01339wg27cypv93221rhk3885vxbsg8kvbfyia77jmjdcnwrdwm2";
+    });
   outputs = [ "out" "dev" ];
 
   passthru = { inherit driverLink; };
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index 52359a3a4cd..a61b3c3f2ac 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "libvdpau-${version}";
-  version = "1.1.1";
+  version = "1.2";
 
   src = fetchurl {
-    url = "https://people.freedesktop.org/~aplattner/vdpau/${name}.tar.bz2";
-    sha256 = "857a01932609225b9a3a5bf222b85e39b55c08787d0ad427dbd9ec033d58d736";
+    url = "https://gitlab.freedesktop.org/vdpau/libvdpau/uploads/14b620084c027d546fa0b3f083b800c6/${name}.tar.bz2";
+    sha256 = "6a499b186f524e1c16b4f5b57a6a2de70dfceb25c4ee546515f26073cd33fa06";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/mesa-glu/default.nix b/pkgs/development/libraries/mesa-glu/default.nix
index 4e35d6ed24d..cb238a6a5ae 100644
--- a/pkgs/development/libraries/mesa-glu/default.nix
+++ b/pkgs/development/libraries/mesa-glu/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = https://cgit.freedesktop.org/mesa/glu/;
     license = stdenv.lib.licenses.sgi-b-20;
     platforms = stdenv.lib.platforms.unix;
+    broken = stdenv.hostPlatform.isAndroid;
   };
 }
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 3e0202355ea..133e9ae8cb8 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -132,8 +132,8 @@ in {
   };
 
   openssl_1_1 = common {
-    version = "1.1.1a";
-    sha256 = "0hcz7znzznbibpy3iyyhvlqrq44y88plxwdj32wjzgbwic7i687w";
+    version = "1.1.1b";
+    sha256 = "0jza8cmznnyiia43056dij1jdmz62dx17wsn0zxksh9h6817nmaw";
     patches = [
       ./1.1/nix-ssl-cert-file.patch
 
diff --git a/pkgs/development/libraries/pixman/default.nix b/pkgs/development/libraries/pixman/default.nix
index 61af6e7fdab..639d6266b5a 100644
--- a/pkgs/development/libraries/pixman/default.nix
+++ b/pkgs/development/libraries/pixman/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "pixman-${version}";
-  version = "0.36.0";
+  version = "0.38.0";
 
   src = fetchurl {
     url = "mirror://xorg/individual/lib/${name}.tar.bz2";
-    sha256 = "1p40fygy9lcn6ypkzh14azksi570brcpr3979bjpff8qk76c14px";
+    sha256 = "1a1nnkjv0rqdj26847r0saly0kzckjfp4y3ly30bvpjxi7vy6s5p";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix
index f5f5c69455f..92ac8a24201 100644
--- a/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -301,7 +301,6 @@ stdenv.mkDerivation {
       then
         [
           "-platform macx-clang"
-          "-no-use-gold-linker"
           "-no-fontconfig"
           "-qt-freetype"
           "-qt-libpng"
@@ -329,9 +328,6 @@ stdenv.mkDerivation {
           "-glib"
           "-system-libjpeg"
           "-system-libpng"
-          # gold linker of binutils 2.28 generates duplicate symbols
-          # TODO: remove for newer version of binutils
-          "-no-use-gold-linker"
         ]
         ++ lib.optional withGtk3 "-gtk"
         ++ lib.optional (compareVersion "5.9.0" >= 0) "-inotify"
diff --git a/pkgs/development/libraries/sqlite/analyzer.nix b/pkgs/development/libraries/sqlite/analyzer.nix
index 0a63f5e778a..5c42f729469 100644
--- a/pkgs/development/libraries/sqlite/analyzer.nix
+++ b/pkgs/development/libraries/sqlite/analyzer.nix
@@ -6,11 +6,11 @@ in
 
 stdenv.mkDerivation rec {
   name = "sqlite-analyzer-${version}";
-  version = "3.26.0";
+  version = "3.27.2";
 
   src = assert version == sqlite.version; fetchurl {
-    url = "https://sqlite.org/2018/sqlite-src-${archiveVersion version}.zip";
-    sha256 = "0ysgi2jrl348amdfifsl3cx90d04bijm4pn4xnvivmi3m1dq4hp0";
+    url = "https://sqlite.org/2019/sqlite-src-${archiveVersion version}.zip";
+    sha256 = "02nz1y22wyb8101d9y6wfdrvp855wvch67js12p5y3riya345g8m";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index 100f7fec06a..bacba396c25 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -10,12 +10,12 @@ in
 
 stdenv.mkDerivation rec {
   name = "sqlite-${version}";
-  version = "3.26.0";
+  version = "3.27.2";
 
   # NB! Make sure to update analyzer.nix src (in the same directory).
   src = fetchurl {
-    url = "https://sqlite.org/2018/sqlite-autoconf-${archiveVersion version}.tar.gz";
-    sha256 = "0pdzszb4sp73hl36siiv3p300jvfvbcdxi2rrmkwgs6inwznmajx";
+    url = "https://sqlite.org/2019/sqlite-autoconf-${archiveVersion version}.tar.gz";
+    sha256 = "0vpgwszs19pwks2b4dhqwa0n6q5sx6pn1s7rngyyrd98xa2rxhsh";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index 291a80a521b..b74bbf581d8 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -16,12 +16,12 @@ let
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.16.1";
+  version = "1.16.2";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "31d3fe5b673e99d33d70cfee2ea8fe8dccd60f265c3ed990873a88647e3dd288";
+    sha256 = "1c4inssky16p6ab63n1gass6dik1dzxrp3y7kmxbdq6xg4w2wsbc";
   };
 
   disabled = isPyPy;
diff --git a/pkgs/development/tools/build-managers/waf/default.nix b/pkgs/development/tools/build-managers/waf/default.nix
index 1b884307273..05e11ad63a7 100644
--- a/pkgs/development/tools/build-managers/waf/default.nix
+++ b/pkgs/development/tools/build-managers/waf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "waf-${version}";
-  version = "2.0.13";
+  version = "2.0.14";
 
   src = fetchFromGitLab {
     owner = "ita1024";
     repo = "waf";
     rev = name;
-    sha256 = "1r4nyxpf07w98bx9zx0xii97rwsc27s6898xi9ph25p0n6hsdxxg";
+    sha256 = "006a4wb9i569pahs8ji86hrv58g2hm8xikgchnll3bdqgxllhnrs";
   };
 
   buildInputs = [ python ensureNewerSourcesForZipFilesHook ];
diff --git a/pkgs/os-specific/bsd/netbsd/builder.sh b/pkgs/os-specific/bsd/netbsd/builder.sh
new file mode 100644
index 00000000000..925001567f7
--- /dev/null
+++ b/pkgs/os-specific/bsd/netbsd/builder.sh
@@ -0,0 +1,122 @@
+source $stdenv/setup
+
+# NetBSD makefiles should be able to detect this
+# but without they end up using gcc on Darwin stdenv
+addMakeFlags() {
+  export setOutputFlags=
+
+  export LIBCRT0=
+  export LIBCRTI=
+  export LIBCRTEND=
+  export LIBCRTBEGIN=
+  export LIBC=
+  export LIBUTIL=
+  export LIBSSL=
+  export LIBCRYPTO=
+  export LIBCRYPT=
+  export LIBCURSES=
+  export LIBTERMINFO=
+  export LIBM=
+  export LIBL=
+
+  export _GCC_CRTBEGIN=
+  export _GCC_CRTBEGINS=
+  export _GCC_CRTEND=
+  export _GCC_CRTENDS=
+  export _GCC_LIBGCCDIR=
+  export _GCC_CRTI=
+  export _GCC_CRTN=
+  export _GCC_CRTDIR=
+
+  # Definitions passed to share/mk/*.mk. Should be pretty simple -
+  # eventually maybe move it to a configure script.
+  export DESTDIR=
+  export USETOOLS=never
+  export NOCLANGERROR=yes
+  export NOGCCERROR=yes
+  export LEX=flex
+  export MKUNPRIVED=yes
+  export EXTERNAL_TOOLCHAIN=yes
+
+  export INSTALL_FILE="install -U -c"
+  export INSTALL_DIR="xinstall -U -d"
+  export INSTALL_LINK="install -U -l h"
+  export INSTALL_SYMLINK="install -U -l s"
+
+  makeFlags="MACHINE=$MACHINE $makeFlags"
+  makeFlags="MACHINE_ARCH=$MACHINE_ARCH $makeFlags"
+  makeFlags="AR=$AR $makeFlags"
+  makeFlags="CC=$CC $makeFlags"
+  makeFlags="CPP=$CPP $makeFlags"
+  makeFlags="CXX=$CXX $makeFlags"
+  makeFlags="LD=$LD $makeFlags"
+  makeFlags="STRIP=$STRIP $makeFlags"
+
+  makeFlags="BINDIR=${!outputBin}/bin $makeFlags"
+  makeFlags="LIBDIR=${!outputLib}/lib $makeFlags"
+  makeFlags="SHLIBDIR=${!outputLib}/lib $makeFlags"
+  makeFlags="MANDIR=${!outputMan}/share/man $makeFlags"
+  makeFlags="INFODIR=${!outputInfo}/share/info $makeFlags"
+  makeFlags="DOCDIR=${!outputDoc}/share/doc $makeFlags"
+  makeFlags="LOCALEDIR=${!outputLib}/share/locale $makeFlags"
+
+  # Parallel building. Needs the space.
+  makeFlags="-j $NIX_BUILD_CORES $makeFlags"
+}
+
+setNetBSDSourceDir() {
+  # merge together all extra paths
+  # there should be a better way to do this
+  sourceRoot=$PWD/$sourceRoot
+  export NETBSDSRCDIR=$sourceRoot
+  export BSDSRCDIR=$NETBSDSRCDIR
+  export _SRC_TOP_=$NETBSDSRCDIR
+  chmod -R u+w $sourceRoot
+  for path in $extraPaths; do
+    cd $path
+    find . -type d -exec mkdir -p $sourceRoot/\{} \;
+    find . -type f -exec cp -pr \{} $sourceRoot/\{} \;
+    chmod -R u+w $sourceRoot
+  done
+
+  cd $sourceRoot
+  if [ -d "$NETBSD_PATH" ]
+    then sourceRoot=$sourceRoot/$NETBSD_PATH
+  fi
+}
+
+includesPhase() {
+  if [ -z "${skipIncludesPhase:-}" ]; then
+
+    local flagsArray=(
+         $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
+         DESTDIR=${!outputInclude} includes
+    )
+
+    echoCmd 'includes flags' "${flagsArray[@]}"
+    make ${makefile:+-f $makefile} "${flagsArray[@]}"
+
+    moveUsrDir
+
+  fi
+}
+
+moveUsrDir() {
+  if [ -d $prefix ]; then
+    # Remove lingering /usr references
+    if [ -d $prefix/usr ]; then
+      cd $prefix/usr
+      find . -type d -exec mkdir -p $out/\{} \;
+      find . \( -type f -o -type l \) -exec mv \{} $out/\{} \;
+    fi
+
+    find $prefix -type d -empty -delete
+  fi
+}
+
+postUnpackHooks+=(setNetBSDSourceDir)
+preConfigureHooks+=(addMakeFlags)
+preInstallHooks+=(includesPhase)
+fixupOutputHooks+=(moveUsrDir)
+
+genericBuild
diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix
index d7f7c64fc2d..46bac37f4e8 100644
--- a/pkgs/os-specific/bsd/netbsd/default.nix
+++ b/pkgs/os-specific/bsd/netbsd/default.nix
@@ -1,272 +1,83 @@
-{ stdenv, fetchcvs, lib, groff, mandoc, zlib, buildPackages
-, yacc, flex, libressl, bash, less, writeText }:
+{ stdenv, stdenvNoCC, fetchcvs, lib, groff, mandoc, zlib, yacc, flex, bash
+, writeText, buildPackages, splicePackages, symlinkJoin }:
 
 let
-  inherit (lib) optionalString replaceStrings;
-  inherit (stdenv) hostPlatform;
-
   fetchNetBSD = path: version: sha256: fetchcvs {
     cvsRoot = ":pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot";
     module = "src/${path}";
     inherit sha256;
-    tag = "netbsd-${builtins.replaceStrings ["."] ["-"] version}-RELEASE";
+    tag = "netbsd-${lib.replaceStrings ["."] ["-"] version}-RELEASE";
   };
 
-  # Needed to support cross correctly. Splicing only happens when we
-  # do callPackage, but sense everything is here, it needs to be done
-  # by hand. All native build inputs should come from here.
-  nbBuildPackages = buildPackages.netbsd;
-
-  MACHINE_ARCH = {
-    "i686" = "i386";
-  }.${hostPlatform.parsed.cpu.name} or hostPlatform.parsed.cpu.name;
+  # Splice packages so we get the correct package when using
+  # nativeBuildInputs...
+  nbSplicedPackages = splicePackages {
+    pkgsBuildBuild = buildPackages.buildPackages.netbsd;
+    pkgsBuildHost = buildPackages.netbsd;
+    pkgsBuildTarget = {};
+    pkgsHostHost = {};
+    pkgsHostTarget = netbsd;
+    pkgsTargetTarget = {};
+  };
 
-  MACHINE = {
-    "x86_64" = "amd64";
-    "aarch64" = "evbarm64";
-    "i686" = "i386";
-  }.${hostPlatform.parsed.cpu.name} or hostPlatform.parsed.cpu.name;
+  netbsd = with nbSplicedPackages; {
 
-  netBSDDerivation = attrs: stdenv.mkDerivation ((rec {
-    name = "netbsd-${attrs.pname or (baseNameOf attrs.path)}-${attrs.version}";
+  mkDerivation = lib.makeOverridable (attrs: let
+    stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
+  in stdenv'.mkDerivation ({
+    name = "${attrs.pname or (baseNameOf attrs.path)}-netbsd-${attrs.version}";
     src = attrs.src or fetchNetBSD attrs.path attrs.version attrs.sha256;
 
     extraPaths = [ ];
-    setOutputFlags = false;
-
-    nativeBuildInputs = [ yacc flex mandoc groff
-                          nbBuildPackages.makeMinimal
-                          nbBuildPackages.stat
-                          nbBuildPackages.install
-                          nbBuildPackages.tsort
-                          nbBuildPackages.lorder ];
-    buildInputs = [ nbPackages.compat ];
-    installFlags = [ "includes" ];
-    # TODO: eventually move this to a make.conf
-    makeFlags = [
-      "MACHINE=${MACHINE}"
-      "MACHINE_ARCH=${MACHINE_ARCH}"
-
-      "AR=${stdenv.cc.targetPrefix}ar"
-      "CC=${stdenv.cc.targetPrefix}cc"
-      "CPP=${stdenv.cc.targetPrefix}cpp"
-      "CXX=${stdenv.cc.targetPrefix}c++"
-      "LD=${stdenv.cc.targetPrefix}ld"
-      "STRIP=${stdenv.cc.targetPrefix}strip"
-    ] ++ (attrs.makeFlags or []);
-
-    # Definitions passed to share/mk/*.mk. Should be pretty simple -
-    # eventually maybe move it to a configure script.
-    # TODO: don’t rely on DESTDIR, instead use prefix
-    DESTDIR = "$(out)";
-    TOOLDIR = "$(out)";
-    USETOOLS = "never";
-    NOCLANGERROR = "yes";
-    NOGCCERROR = "yes";
-    LEX = "flex";
-    MKUNPRIVED = "yes";
-    HOST_SH = "${buildPackages.bash}/bin/sh";
+
+    nativeBuildInputs = [ makeMinimal install tsort lorder mandoc groff stat ];
+    buildInputs = [ compat ];
+    # depsBuildBuild = [ buildPackages.stdenv.cc ];
+
     OBJCOPY = if stdenv.isDarwin then "true" else "objcopy";
-    RPCGEN_CPP = "${stdenv.cc.targetPrefix}cpp";
-
-    MKPIC = if stdenv.isDarwin then "no" else "yes";
-    MKRELRO = if stdenv.isDarwin then "no" else "yes";
-
-    INSTALL_FILE = "install -U -c";
-    INSTALL_DIR = "xinstall -U -d";
-    INSTALL_LINK = "install -U -l h";
-    INSTALL_SYMLINK = "install -U -l s";
-
-    HOST_CC = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc";
-    HOST_CXX  = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
-
-    # libs will be provided by cc-wrapper
-    LIBCRT0 = "";
-    LIBCRTI = "";
-    LIBCRTEND = "";
-    LIBCRTBEGIN = "";
-    LIBC = "";
-    LIBUTIL = "";
-    LIBSSL = "";
-    LIBCRYPTO = "";
-    LIBCRYPT = "";
-    LIBCURSES = "";
-    LIBTERMINFO = "";
-    LIBM = "";
-    LIBL = "";
-    _GCC_CRTBEGIN = "";
-    _GCC_CRTBEGINS = "";
-    _GCC_CRTEND = "";
-    _GCC_CRTENDS = "";
-    _GCC_LIBGCCDIR = "";
-    _GCC_CRTI = "";
-    _GCC_CRTDIR = "";
-    _GCC_CRTN = "";
-
-    "LIBDO.terminfo" = "_external";
-    "LIBDO.curses" = "_external";
-
-    # all dirs will be prefixed with DESTDIR
-    BINDIR = "/bin";
-    LIBDIR = "/lib";
-    SHLIBDIR = "/lib";
-    INCSDIR = "/include";
-    MANDIR = "/share/man";
-    INFODIR = "/share/info";
-    DOCDIR = "/share/doc";
-    LOCALEDIR = "/share/locale";
-    X11BINDIR = "/bin";
-    X11USRLIBDIR = "/lib";
-    X11MANDIR = "/share/man";
-
-    # NetBSD makefiles should be able to detect this
-    # but without they end up using gcc on Darwin stdenv
-    preConfigure = ''
-      export HAVE_${if stdenv.cc.isClang then "LLVM" else "GCC"}=${lib.head (lib.splitString "." (lib.getVersion stdenv.cc.cc))}
-
-      # Parallel building. Needs the space.
-      export makeFlags+=" -j $NIX_BUILD_CORES"
-    '';
+    HOST_SH = "${buildPackages.bash}/bin/sh";
 
-    postUnpack = ''
-      # merge together all extra paths
-      # there should be a better way to do this
-      sourceRoot=$PWD/$sourceRoot
-      export NETBSDSRCDIR=$sourceRoot
-      export BSDSRCDIR=$NETBSDSRCDIR
-      export _SRC_TOP_=$NETBSDSRCDIR
-      chmod -R u+w $sourceRoot
-      for path in $extraPaths; do
-        cd $path
-        find . -type d -exec mkdir -p $sourceRoot/\{} \;
-        find . -type f -exec cp -pr \{} $sourceRoot/\{} \;
-        chmod -R u+w $sourceRoot
-      done
-
-      cd $sourceRoot
-      if [ -d ${attrs.path} ]
-        then sourceRoot=$sourceRoot/${attrs.path}
-      fi
-    '';
+    MACHINE_ARCH = {
+      "i686" = "i386";
+    }.${stdenv'.hostPlatform.parsed.cpu.name}
+      or stdenv'.hostPlatform.parsed.cpu.name;
 
-    preFixup = ''
-      # Remove lingering /usr references
-      if [ -d $out/usr ]; then
-        cd $out/usr
-        find . -type d -exec mkdir -p $out/\{} \;
-        find . -type f -exec mv \{} $out/\{} \;
-      fi
+    MACHINE = {
+      "x86_64" = "amd64";
+      "aarch64" = "evbarm64";
+      "i686" = "i386";
+    }.${stdenv'.hostPlatform.parsed.cpu.name}
+      or stdenv'.hostPlatform.parsed.cpu.name;
 
-      find $out -type d -empty -delete
-    '';
+    AR = "${stdenv'.cc.targetPrefix or ""}ar";
+    CC = "${stdenv'.cc.targetPrefix or ""}cc";
+    CPP = if (stdenv'.cc.isClang or false) then "clang-cpp" else "cpp";
+    CXX = "${stdenv'.cc.targetPrefix or ""}c++";
+    LD = "${stdenv'.cc.targetPrefix or ""}ld";
+    STRIP = "${stdenv'.cc.targetPrefix or ""}strip";
+
+    NETBSD_PATH = attrs.path;
+
+    builder = ./builder.sh;
 
     meta = with lib; {
       maintainers = with maintainers; [matthewbauer];
       platforms = platforms.unix;
       license = licenses.bsd2;
     };
-  }) // (removeAttrs attrs ["makeFlags"]));
-
-  libutil = netBSDDerivation {
-    path = "lib/libutil";
-    version = "8.0";
-    sha256 = "077syyxd303m4x7avs5nxzk4c9n13d5lyk5aicsacqjvx79qrk3i";
-    extraPaths = [
-      (fetchNetBSD "common/lib/libutil" "8.0" "0q3ixrf36lip1dx0gafs0a03qfs5cs7n0myqq7af4jpjd6kh1831")
-    ];
-  };
-
-  libc = netBSDDerivation {
-    path = "lib/libc";
-    version = "8.0";
-    sha256 = "0lgbc58qgn8kwm3l011x1ml1kgcf7jsgq7hbf0hxhlbvxq5bljl3";
-    extraPaths = [
-      (fetchNetBSD "common/lib/libc" "8.0" "1kbhj0vxixvdy9fvsr5y70ri4mlkmim1v9m98sqjlzc1vdiqfqc8")
-    ];
-  };
-
-  make = netBSDDerivation {
-    path = "usr.bin/make";
-    sha256 = "103643qs3w5kiahir6cca2rkm5ink81qbg071qyzk63qvspfq10c";
-    version = "8.0";
-    postPatch = ''
-      # make needs this to pick up our sys make files
-      export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
-
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.prog.mk \
-        --replace '-Wl,-dynamic-linker=''${_SHLINKER}' "" \
-        --replace '-Wl,-rpath,''${SHLIBDIR}' ""
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.lib.mk \
-        --replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB='
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.kinc.mk \
-        --replace /bin/rm rm
-    '' + lib.optionalString stdenv.isDarwin ''
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.sys.mk \
-        --replace '-Wl,--fatal-warnings' "" \
-        --replace '-Wl,--warn-shared-textrel' ""
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.lib.mk \
-        --replace '-Wl,-soname,''${_LIB}.so.''${SHLIB_SOVERSION}' "" \
-        --replace '-Wl,--whole-archive' "" \
-        --replace '-Wl,--no-whole-archive' "" \
-        --replace '-Wl,--warn-shared-textrel' "" \
-        --replace '-Wl,-Map=''${_LIB}.so.''${SHLIB_SOVERSION}.map' "" \
-        --replace '-Wl,-rpath,''${SHLIBDIR}' ""
-    '';
-    postInstall = ''
-      make -C $NETBSDSRCDIR/share/mk FILESDIR=/share/mk install
-    '';
-    extraPaths = [
-      (fetchNetBSD "share/mk" "8.0" "033q4w3rmvwznz6m7fn9xcf13chyhwwl8ijj3a9mrn80fkwm55qs")
-    ];
-  };
-
-  libcurses = netBSDDerivation {
-    path = "lib/libcurses";
-    version = "8.0";
-    sha256 = "0azhzh1910v24dqx45zmh4z4dl63fgsykajrbikx5xfvvmkcq7xs";
-    buildInputs = [ nbPackages.libterminfo ];
-    makeFlags = [ "INCSDIR=/include" ];
-    NIX_CFLAGS_COMPILE = [
-      "-D__scanflike(a,b)="
-      "-D__va_list=va_list"
-      "-D__warn_references(a,b)="
-    ] ++ lib.optional stdenv.isDarwin "-D__strong_alias(a,b)=";
-    propagatedBuildInputs = [ nbPackages.compat ];
-    MKDOC = "no"; # missing vfontedpr
-    postPatch = ''
-      substituteInPlace printw.c \
-        --replace "funopen2(win, NULL, winwrite, NULL, NULL, NULL)" NULL \
-        --replace "__strong_alias(vwprintw, vw_printw)" 'extern int vwprintw(WINDOW*, const char*, va_list) __attribute__ ((alias ("vw_printw")));'
-      substituteInPlace scanw.c \
-        --replace "__strong_alias(vwscanw, vw_scanw)" 'extern int vwscanw(WINDOW*, const char*, va_list) __attribute__ ((alias ("vw_scanw")));'
-    '';
-  };
-
-  libedit = netBSDDerivation {
-    path = "lib/libedit";
-    buildInputs = [ nbPackages.libterminfo libcurses ];
-    propagatedBuildInputs = [ nbPackages.compat ];
-    makeFlags = [ "INCSDIR=/include" ];
-    postPatch = ''
-      sed -i '1i #undef bool_t' el.h
-      substituteInPlace config.h \
-        --replace "#define HAVE_STRUCT_DIRENT_D_NAMLEN 1" ""
-    '';
-    NIX_CFLAGS_COMPILE = [
-      "-D__noinline="
-      "-D__scanflike(a,b)="
-      "-D__va_list=va_list"
-    ];
-    version = "8.0";
-    sha256 = "0pmqh2mkfp70bwchiwyrkdyq9jcihx12g1awd6alqi9bpr3f9xmd";
-  };
-
-  nbPackages = rec {
+  } // lib.optionalAttrs (stdenv'.cc.isClang or false) {
+    HAVE_LLVM = lib.head (lib.splitString "." (lib.getVersion stdenv'.cc.cc));
+  } // lib.optionalAttrs (stdenv'.cc.isGNU or false) {
+    HAVE_GCC = lib.head (lib.splitString "." (lib.getVersion stdenv'.cc.cc));
+  } // lib.optionalAttrs (attrs.headersOnly or false) {
+    installPhase = "includesPhase";
+    dontBuild = true;
+  } // attrs));
 
   ##
-  ## BOOTSTRAPPING
+  ## START BOOTSTRAPPING
   ##
-  makeMinimal = netBSDDerivation rec {
+  makeMinimal = mkDerivation rec {
     path = "tools/make";
     sha256 = "1xbzfd4i7allrkk1if74a8ymgpizyj0gkvdigzzj37qar7la7nc1";
     version = "8.0";
@@ -274,6 +85,8 @@ let
     buildInputs = [];
     nativeBuildInputs = [];
 
+    skipIncludesPhase = true;
+
     postPatch = ''
       patchShebangs configure
       ${make.postPatch}
@@ -298,7 +111,7 @@ let
     extraPaths = [ make.src ] ++ make.extraPaths;
   };
 
-  compat = if hostPlatform.isNetBSD then null else netBSDDerivation rec {
+  compat = if stdenv.hostPlatform.isNetBSD then stdenv else mkDerivation rec {
     path = "tools/compat";
     sha256 = "050449lq5gpxqsripdqip5ks49g5ypjga188nd3ss8dg1zf7ydz3";
     version = "8.0";
@@ -309,13 +122,15 @@ let
     ];
 
     # override defaults to prevent infinite recursion
-    nativeBuildInputs = [ nbBuildPackages.makeMinimal ];
+    nativeBuildInputs = [ makeMinimal ];
     buildInputs = [ zlib ];
 
     # temporarily use gnuinstall for bootstrapping
     # bsdinstall will be built later
-    makeFlags = [ "INSTALL=${buildPackages.coreutils}/bin/install" ];
-    installFlags = [];
+    makeFlags = [
+      "INSTALL=${buildPackages.coreutils}/bin/install"
+      "TOOLDIR=$(out)"
+    ];
     RENAME = "-D";
 
     patches = [ ./compat.patch ];
@@ -352,15 +167,6 @@ let
       substitute ${./libbsd-overlay.pc} $out/lib/pkgconfig/libbsd-overlay.pc \
         --subst-var-by out $out \
         --subst-var-by version ${version}
-
-      # Remove lingering /usr references
-      if [ -d $out/usr ]; then
-        cd $out/usr
-        find . -type d -exec mkdir -p $out/\{} \;
-        find . -type f -exec mv \{} $out/\{} \;
-      fi
-
-      find $out -type d -empty -delete
     '';
     extraPaths = [ libc.src libutil.src
       (fetchNetBSD "include" "8.0" "128m77k16i7frvk8kifhmxzk7a37m7z1s0bbmja3ywga6sx6v6sq")
@@ -369,19 +175,20 @@ let
     ] ++ libutil.extraPaths ++ libc.extraPaths;
   };
 
-  # HACK to ensure parent directories exist. This emulates GNU
+  # HACK: to ensure parent directories exist. This emulates GNU
   # install’s -D option. No alternative seems to exist in BSD install.
   install = let binstall = writeText "binstall" ''
     #!${stdenv.shell}
     for last in $@; do true; done
     mkdir -p $(dirname $last)
     xinstall "$@"
-  ''; in netBSDDerivation {
+  ''; in mkDerivation {
     path = "usr.bin/xinstall";
     version = "8.0";
     sha256 = "1f6pbz3qv1qcrchdxif8p5lbmnwl8b9nq615hsd3cyl4avd5bfqj";
     extraPaths = [ mtree.src make.src ];
-    nativeBuildInputs = [ nbBuildPackages.makeMinimal mandoc groff ];
+    nativeBuildInputs = [ makeMinimal mandoc groff ];
+    skipIncludesPhase = true;
     buildInputs = [ compat fts ];
     installPhase = ''
       runHook preInstall
@@ -395,7 +202,7 @@ let
     '';
   };
 
-  fts = netBSDDerivation {
+  fts = mkDerivation {
     pname = "fts";
     path = "include/fts.h";
     sha256 = "01d4fpxvz1pgzfk5xznz5dcm0x0gdzwcsfm1h3d0xc9kc6hj2q77";
@@ -407,6 +214,7 @@ let
       (fetchNetBSD "lib/libc/include/namespace.h" "8.0" "1sjvh9nw3prnk4rmdwrfsxh6gdb9lmilkn46jcfh3q5c8glqzrd7")
       (fetchNetBSD "lib/libc/gen/fts.3" "8.0" "1asxw0n3fhjdadwkkq3xplfgqgl3q32w1lyrvbakfa3gs0wz5zc1")
     ];
+    skipIncludesPhase = true;
     buildPhase = ''
       cc  -c -Iinclude -Ilib/libc/include lib/libc/gen/fts.c \
           -o lib/libc/gen/fts.o
@@ -428,132 +236,434 @@ let
     ];
   };
 
-  stat = netBSDDerivation {
+  stat = mkDerivation {
     path = "usr.bin/stat";
     version = "8.0";
     sha256 = "0z4r96id2r4cfy443rw2s1n52n186xm0lqvs8s3qjf4314z7r7yh";
-    nativeBuildInputs = [ nbBuildPackages.makeMinimal nbBuildPackages.install
-                          mandoc groff ];
+    nativeBuildInputs = [ makeMinimal install mandoc groff ];
   };
 
-  tsort = netBSDDerivation {
+  tsort = mkDerivation {
     path = "usr.bin/tsort";
     version = "8.0";
     sha256 = "1dqvf9gin29nnq3c4byxc7lfd062pg7m84843zdy6n0z63hnnwiq";
-    nativeBuildInputs = [ nbBuildPackages.makeMinimal nbBuildPackages.install
-                          mandoc groff ];
+    nativeBuildInputs = [ makeMinimal install mandoc groff ];
   };
 
-  lorder = netBSDDerivation {
+  lorder = mkDerivation {
     path = "usr.bin/lorder";
     version = "8.0";
     sha256 = "0rjf9blihhm0n699vr2bg88m4yjhkbxh6fxliaay3wxkgnydjwn2";
-    nativeBuildInputs = [ nbBuildPackages.makeMinimal nbBuildPackages.install
-                          mandoc groff ];
+    nativeBuildInputs = [ makeMinimal install mandoc groff ];
   };
   ##
   ## END BOOTSTRAPPING
   ##
 
-  mtree = netBSDDerivation {
+  ##
+  ## START COMMAND LINE TOOLS
+  ##
+  make = mkDerivation {
+    path = "usr.bin/make";
+    sha256 = "103643qs3w5kiahir6cca2rkm5ink81qbg071qyzk63qvspfq10c";
+    version = "8.0";
+    postPatch = ''
+      # make needs this to pick up our sys make files
+      export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
+
+      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.lib.mk \
+        --replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB='
+      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.kinc.mk \
+        --replace /bin/rm rm
+    '' + lib.optionalString stdenv.isDarwin ''
+      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.sys.mk \
+        --replace '-Wl,--fatal-warnings' "" \
+        --replace '-Wl,--warn-shared-textrel' ""
+    '';
+    postInstall = ''
+      make -C $NETBSDSRCDIR/share/mk FILESDIR=$out/share/mk install
+    '';
+    extraPaths = [
+      (fetchNetBSD "share/mk" "8.0" "033q4w3rmvwznz6m7fn9xcf13chyhwwl8ijj3a9mrn80fkwm55qs")
+    ];
+  };
+
+  mtree = mkDerivation {
     path = "usr.sbin/mtree";
     version = "8.0";
     sha256 = "0hanmzm8bgwz2bhsinmsgfmgy6nbdhprwmgwbyjm6bl17vgn7vid";
     extraPaths = [ mknod.src ];
   };
 
-  mknod = netBSDDerivation {
+  mknod = mkDerivation {
     path = "sbin/mknod";
     version = "8.0";
     sha256 = "0vq66v0hj0r4z2r2z2d3l3c5vh48pvcdmddc8bhm8hzq2civ5df2";
   };
 
-  getent = netBSDDerivation {
+  getent = mkDerivation {
     path = "usr.bin/getent";
     sha256 = "1ylhw4dnpyrmcy8n5kjcxywm8qc9p124dqnm17x4magiqx1kh9iz";
     version = "8.0";
     patches = [ ./getent.patch ];
   };
 
-  getconf = netBSDDerivation {
+  getconf = mkDerivation {
     path = "usr.bin/getconf";
     sha256 = "122vslz4j3h2mfs921nr2s6m078zcj697yrb75rwp2hnw3qz4s8q";
     version = "8.0";
   };
 
-  dict = netBSDDerivation {
-    path = "share/dict";
+  locale = mkDerivation {
+    path = "usr.bin/locale";
     version = "8.0";
-    sha256 = "1pk0y3xc5ihc2k89wjkh33qqx3w9q34k03k2qcffvbqh1l6wm36l";
-    makeFlags = [ "BINDIR=/share" ];
+    sha256 = "0kk6v9k2bygq0wf9gbinliqzqpzs9bgxn0ndyl2wcv3hh2bmsr9p";
+    patches = [ ./locale.patch ];
+    NIX_CFLAGS_COMPILE = "-DYESSTR=__YESSTR -DNOSTR=__NOSTR";
   };
 
-  fingerd = netBSDDerivation {
-    path = "libexec/fingerd";
-    sha256 = "0blcahhgyj1lm0mimrbvgmq3wkjvqk5wy85sdvbs99zxg7da1190";
+  rpcgen = mkDerivation {
+    path = "usr.bin/rpcgen";
     version = "8.0";
+    sha256 = "1kfgfx54jg98wbg0d95p0rvf4w0302v8fz724b0bdackdsrd4988";
   };
 
-  libterminfo = netBSDDerivation {
-    path = "lib/libterminfo";
+  genassym = mkDerivation {
+    path = "usr.bin/genassym";
     version = "8.0";
-    sha256 = "14gp0d6fh6zjnbac2yjhyq5m6rca7gm6q1s9gilhzpdgl9m7vb9r";
-    buildInputs = [ compat tic nbperf ];
-    makeFlags = [ "INCSDIR=/include" ];
-    postPatch = ''
-      substituteInPlace term.c --replace /usr/share $out/share
-      substituteInPlace setupterm.c --replace '#include <curses.h>' 'void use_env(bool);'
+    sha256 = "1acl1dz5kvh9h5806vkz2ap95rdsz7phmynh5i3x5y7agbki030c";
+  };
 
-    '';
-    postInstall = ''
-      make -C $NETBSDSRCDIR/share/terminfo BINDIR=/share
-      make -C $NETBSDSRCDIR/share/terminfo BINDIR=/share install
-    '';
-    extraPaths = [
-      (fetchNetBSD "share/terminfo" "8.0" "18db0fk1dw691vk6lsm6dksm4cf08g8kdm0gc4052ysdagg2m6sm")
-    ];
+  gencat = mkDerivation {
+    path = "usr.bin/gencat";
+    version = "8.0";
+    sha256 = "1696lgh2lhz93247lklvpvkd0f5asg6z27w2g4bmpfijlgw2h698";
   };
 
-  nbperf = netBSDDerivation {
+  nbperf = mkDerivation {
     path = "usr.bin/nbperf";
     version = "8.0";
     sha256 = "0gzm0zv2400lasnsswnjw9bwzyizhxzdbrcjwcl1k65aj86aqyqb";
   };
 
-  tic = netBSDDerivation {
+  tic = mkDerivation {
     path = "tools/tic";
     version = "8.0";
     sha256 = "092y7db7k4kh2jq8qc55126r5qqvlb8lq8mhmy5ipbi36hwb4zrz";
     HOSTPROG = "tic";
-    buildInputs = [ compat nbperf ];
+    buildInputs = [ compat ];
+    nativeBuildInputs = [ makeMinimal install mandoc groff nbperf ];
+    makeFlags = [ "TOOLDIR=$(out)" ];
     extraPaths = [
       libterminfo.src
       (fetchNetBSD "usr.bin/tic" "8.0" "0diirnzmdnpc5bixyb34c9rid9paw2a4zfczqrpqrfvjsf1nnljf")
       (fetchNetBSD "tools/Makefile.host" "8.0" "1p23dsc4qrv93vc6gzid9w2479jwswry9qfn88505s0pdd7h6nvp")
     ];
   };
+  ##
+  ## END COMMAND LINE TOOLS
+  ##
+
+  ##
+  ## START HEADERS
+  ##
+  include = mkDerivation {
+    path = "include";
+    version = "8.0";
+    sha256 = "128m77k16i7frvk8kifhmxzk7a37m7z1s0bbmja3ywga6sx6v6sq";
+    nativeBuildInputs = [ makeMinimal install mandoc groff nbperf rpcgen ];
+    extraPaths = [ common.src ];
+    headersOnly = true;
+    noCC = true;
+    # meta.platforms = lib.platforms.netbsd;
+    makeFlags = [ "RPCGEN_CPP=${buildPackages.gcc-unwrapped}/bin/cpp" ];
+  };
+
+  common = mkDerivation {
+    path = "common";
+    version = "8.0";
+    sha256 = "1fsm2b7p7zkhiz523jw75088cq2h39iknp0fp3di9a64bikwbhi1";
+  };
+
+  # The full kernel
+  sys = mkDerivation {
+    path = "sys";
+    version = "8.0";
+    sha256 = "123ilg8fqmp69bw6bs6nh98fpi1v2n9lamrzar61p27ji6sj7g0w";
+    propagatedBuildInputs = [ include ];
+    #meta.platforms = lib.platforms.netbsd;
+    extraPaths = [ common.src ];
+    MKKMOD = "no";
+  };
+
+  headers = symlinkJoin {
+    name = "netbsd-headers-8.0";
+    paths = [ include ] ++ map (pkg: pkg.override (_: {
+      installPhase = "includesPhase";
+      dontBuild = true;
+      noCC = true;
+      meta.platforms = lib.platforms.all;
+    })) [ sys libpthread ];
+  };
+  ##
+  ## END HEADERS
+  ##
+
+  ##
+  ## START LIBRARIES
+  ##
+  libutil = mkDerivation {
+    path = "lib/libutil";
+    version = "8.0";
+    sha256 = "077syyxd303m4x7avs5nxzk4c9n13d5lyk5aicsacqjvx79qrk3i";
+    extraPaths = [ common.src ];
+  };
+
+  libedit = mkDerivation {
+    path = "lib/libedit";
+    version = "8.0";
+    sha256 = "0pmqh2mkfp70bwchiwyrkdyq9jcihx12g1awd6alqi9bpr3f9xmd";
+    buildInputs = [ libterminfo libcurses ];
+    propagatedBuildInputs = [ compat ];
+    postPatch = ''
+      sed -i '1i #undef bool_t' el.h
+      substituteInPlace config.h \
+        --replace "#define HAVE_STRUCT_DIRENT_D_NAMLEN 1" ""
+      substituteInPlace readline/Makefile --replace /usr/include "$out/include"
+    '';
+    NIX_CFLAGS_COMPILE = [
+      "-D__noinline="
+      "-D__scanflike(a,b)="
+      "-D__va_list=va_list"
+    ];
+  };
 
-  misc = netBSDDerivation {
-    path = "share/misc";
+  libterminfo = mkDerivation {
+    path = "lib/libterminfo";
     version = "8.0";
-    sha256 = "0d34b3irjbqsqfk8v8aaj36fjyvwyx410igl26jcx2ryh3ispch8";
-    makeFlags = [ "BINDIR=/share" ];
+    sha256 = "14gp0d6fh6zjnbac2yjhyq5m6rca7gm6q1s9gilhzpdgl9m7vb9r";
+    buildInputs = [ compat ];
+    postPatch = ''
+      substituteInPlace term.c --replace /usr/share $out/share
+      substituteInPlace setupterm.c \
+        --replace '#include <curses.h>' 'void use_env(bool);'
+    '';
+    postInstall = ''
+      make -C $NETBSDSRCDIR/share/terminfo BINDIR=$out/share install
+    '';
+    extraPaths = [
+      (fetchNetBSD "share/terminfo" "8.0" "18db0fk1dw691vk6lsm6dksm4cf08g8kdm0gc4052ysdagg2m6sm")
+    ];
   };
 
-  locale = netBSDDerivation {
-    path = "usr.bin/locale";
+  libcurses = mkDerivation {
+    path = "lib/libcurses";
     version = "8.0";
-    sha256 = "0kk6v9k2bygq0wf9gbinliqzqpzs9bgxn0ndyl2wcv3hh2bmsr9p";
-    patches = [ ./locale.patch ];
-    NIX_CFLAGS_COMPILE = "-DYESSTR=__YESSTR -DNOSTR=__NOSTR";
+    sha256 = "0azhzh1910v24dqx45zmh4z4dl63fgsykajrbikx5xfvvmkcq7xs";
+    buildInputs = [ libterminfo ];
+    NIX_CFLAGS_COMPILE = [
+      "-D__scanflike(a,b)="
+      "-D__va_list=va_list"
+      "-D__warn_references(a,b)="
+    ] ++ lib.optional stdenv.isDarwin "-D__strong_alias(a,b)=";
+    propagatedBuildInputs = [ compat ];
+    MKDOC = "no"; # missing vfontedpr
+    postPatch = lib.optionalString (!stdenv.isDarwin) ''
+      substituteInPlace printw.c \
+        --replace "funopen(win, NULL, __winwrite, NULL, NULL)" NULL \
+        --replace "__strong_alias(vwprintw, vw_printw)" 'extern int vwprintw(WINDOW*, const char*, va_list) __attribute__ ((alias ("vw_printw")));'
+      substituteInPlace scanw.c \
+        --replace "__strong_alias(vwscanw, vw_scanw)" 'extern int vwscanw(WINDOW*, const char*, va_list) __attribute__ ((alias ("vw_scanw")));'
+    '';
   };
 
-  column = netBSDDerivation {
+  libkern = mkDerivation {
+    path = "lib/libkern";
+    version = "8.0";
+    sha256 = "1wirqr9bms69n4b5sr32g1b1k41hcamm7c9n7i8c440m73r92yv4";
+    meta.platforms = lib.platforms.netbsd;
+  };
+
+  column = mkDerivation {
     path = "usr.bin/column";
     version = "8.0";
     sha256 = "0r6b0hjn5ls3j3sv6chibs44fs32yyk2cg8kh70kb4cwajs4ifyl";
   };
 
+  libossaudio = mkDerivation {
+    path = "lib/libossaudio";
+    version = "8.0";
+    sha256 = "03azp5anavhjr15sinjlik9792lyf7w4zmkcihlkksrywhs05axh";
+    meta.platforms = lib.platforms.netbsd;
+    postPatch = ''
+      substituteInPlace rpc/Makefile --replace /usr $out
+    '';
+  };
+
+  librpcsvc = mkDerivation {
+    path = "lib/librpcsvc";
+    version = "8.0";
+    sha256 = "14ri9w6gdhsm4id5ck133syyvbmkbknfa8w0xkklm726nskhfkj7";
+    makeFlags = [ "INCSDIR=$(out)/include/rpcsvc" ];
+    meta.platforms = lib.platforms.netbsd;
+  };
+
+  librt = mkDerivation {
+    path = "lib/librt";
+    version = "8.0";
+    sha256 = "078qsi4mg1hyyxr1awvjs9b0c2gicg3zw4vl603g1m9vm8gfxw9l";
+    meta.platforms = lib.platforms.netbsd;
+  };
+
+  libcrypt = mkDerivation {
+    path = "lib/libcrypt";
+    version = "8.0";
+    sha256 = "0siqan1wdqmmhchh2n8w6a8x1abbff8n4yb6jrqxap3hqn8ay54g";
+    meta.platforms = lib.platforms.netbsd;
+  };
+
+  libpthread = mkDerivation {
+    path = "lib/libpthread";
+    version = "8.0";
+    sha256 = "0pcz61klc3ijf5z2zf8s78nj7bwjfblzjllx7vr4z5qv3m0sdb3j";
+    meta.platforms = lib.platforms.netbsd;
+  };
+
+  libresolv = mkDerivation {
+    path = "lib/libresolv";
+    version = "8.0";
+    sha256 = "11vpb3p2343wyrhw4v9gwz7i0lcpb9ysmfs9gsx56b5gkgipdy4v";
+    meta.platforms = lib.platforms.netbsd;
+  };
+
+  libm = mkDerivation {
+    path = "lib/libm";
+    version = "8.0";
+    sha256 = "0i22603cgj6n00gn2m446v4kn1pk109qs1g6ylrslmihfmiy2h1d";
+    meta.platforms = lib.platforms.netbsd;
+  };
+
+  i18n_module = mkDerivation {
+    path = "lib/i18n_module";
+    version = "8.0";
+    sha256 = "0w6y5v3binm7gf2kn7y9jja8k18rhnyl55cvvfnfipjqdxvxd9jd";
+    meta.platforms = lib.platforms.netbsd;
+  };
+
+  csu = mkDerivation {
+    path = "lib/csu";
+    version = "8.0";
+    sha256 = "0630lbvz6v4ic13bfg8ccwfhqkgcv76bfdw9f36rfsnwfgpxqsmq";
+    meta.platforms = lib.platforms.netbsd;
+    nativeBuildInputs = [ makeMinimal install mandoc groff flex
+                          yacc genassym gencat lorder tsort stat ];
+    extraPaths = [ sys.src ld_elf_so.src ];
+  };
+
+  ld_elf_so = mkDerivation {
+    path  = "libexec/ld.elf_so";
+    version = "8.0";
+    sha256 = "1jmqpi0kg2daiqnvpwdyfy8rpnszxsm70sxizz0r7wn53xjr5hva";
+    meta.platforms = lib.platforms.netbsd;
+    USE_FORT = "yes";
+    extraPaths = [ libc.src ] ++ libc.extraPaths;
+  };
+
+  libc = mkDerivation {
+    path = "lib/libc";
+    version = "8.0";
+    sha256 = "0lgbc58qgn8kwm3l011x1ml1kgcf7jsgq7hbf0hxhlbvxq5bljl3";
+    USE_FORT = "yes";
+    MKPROFILE = "no";
+    extraPaths = [ common.src i18n_module.src sys.src
+                   ld_elf_so.src libpthread.src libm.src libresolv.src
+                   librpcsvc.src libutil.src librt.src libcrypt.src ];
+    buildInputs = [ buildPackages.netbsd.headers csu ];
+    nativeBuildInputs = [ makeMinimal install mandoc groff flex
+                          yacc genassym gencat lorder tsort stat ];
+    NIX_CFLAGS_COMPILE = "-B${csu}/lib";
+    meta.platforms = lib.platforms.netbsd;
+    SHLIBINSTALLDIR = "$(out)/lib";
+    NLSDIR = "$(out)/share/nls";
+    makeFlags = [ "FILESDIR=$(out)/var/db"];
+    postInstall = ''
+      pushd ${buildPackages.netbsd.headers}
+      find . -type d -exec mkdir -p $out/\{} \;
+      find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
+      popd
+
+      pushd ${csu}
+      find . -type d -exec mkdir -p $out/\{} \;
+      find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
+      popd
+
+      NIX_CFLAGS_COMPILE+=" -B$out/lib"
+      NIX_CFLAGS_COMPILE+=" -I$out/include"
+      NIX_LDFLAGS+=" -L$out/lib"
+
+      make -C $NETBSDSRCDIR/lib/libpthread $makeFlags
+      make -C $NETBSDSRCDIR/lib/libpthread $makeFlags install
+
+      make -C $NETBSDSRCDIR/lib/libm $makeFlags
+      make -C $NETBSDSRCDIR/lib/libm $makeFlags install
+
+      make -C $NETBSDSRCDIR/lib/libresolv $makeFlags
+      make -C $NETBSDSRCDIR/lib/libresolv $makeFlags install
+
+      make -C $NETBSDSRCDIR/lib/librpcsv $makeFlags
+      make -C $NETBSDSRCDIR/lib/librpcsv $makeFlags install
+
+      make -C $NETBSDSRCDIR/lib/i18n_module $makeFlags
+      make -C $NETBSDSRCDIR/lib/i18n_module $makeFlags install
+
+      make -C $NETBSDSRCDIR/lib/libutil $makeFlags
+      make -C $NETBSDSRCDIR/lib/libutil $makeFlags install
+
+      make -C $NETBSDSRCDIR/lib/librt $makeFlags
+      make -C $NETBSDSRCDIR/lib/librt $makeFlags install
+
+      make -C $NETBSDSRCDIR/lib/libcrypt $makeFlags
+      make -C $NETBSDSRCDIR/lib/libcrypt $makeFlags install
+    '';
+    postPatch = ''
+      substituteInPlace sys/Makefile.inc \
+        --replace /usr/include/sys/syscall.h ${buildPackages.netbsd.headers}/include/sys/syscall.h
+    '';
+  };
+  #
+  # END LIBRARIES
+  #
+
+  #
+  # START MISCELLANEOUS
+  #
+  dict = mkDerivation {
+    path = "share/dict";
+    noCC = true;
+    version = "8.0";
+    sha256 = "1pk0y3xc5ihc2k89wjkh33qqx3w9q34k03k2qcffvbqh1l6wm36l";
+    makeFlags = [ "BINDIR=$(out)/share" ];
+  };
+
+  misc = mkDerivation {
+    path = "share/misc";
+    noCC = true;
+    version = "8.0";
+    sha256 = "0d34b3irjbqsqfk8v8aaj36fjyvwyx410igl26jcx2ryh3ispch8";
+    makeFlags = [ "BINDIR=$(out)/share" ];
+  };
+
+  man = mkDerivation {
+    path = "share/man";
+    noCC = true;
+    version = "8.0";
+    sha256 = "0d34b3irjbqsqfk8v8aaj36fjyvwyx410igl26jcx2ryh3ispch0";
+    makeFlags = [ "FILESDIR=$(out)/share" ];
+  };
+  #
+  # END MISCELLANEOUS
+  #
+
   };
 
-in nbPackages
+in netbsd
diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix
index 6cb0c123406..ccad9795301 100644
--- a/pkgs/os-specific/linux/apparmor/default.nix
+++ b/pkgs/os-specific/linux/apparmor/default.nix
@@ -82,8 +82,8 @@ let
     prePatch = prePatchCommon + ''
       substituteInPlace ./libraries/libapparmor/swig/perl/Makefile.am --replace install_vendor install_site
       substituteInPlace ./libraries/libapparmor/swig/perl/Makefile.in --replace install_vendor install_site
-      substituteInPlace ./libraries/libapparmor/src/Makefile.am --replace "/usr/include/netinet/in.h" "${stdenv.cc.libc.dev}/include/netinet/in.h"
-      substituteInPlace ./libraries/libapparmor/src/Makefile.in --replace "/usr/include/netinet/in.h" "${stdenv.cc.libc.dev}/include/netinet/in.h"
+      substituteInPlace ./libraries/libapparmor/src/Makefile.am --replace "/usr/include/netinet/in.h" "${stdenv.lib.getDev stdenv.cc.libc}/include/netinet/in.h"
+      substituteInPlace ./libraries/libapparmor/src/Makefile.in --replace "/usr/include/netinet/in.h" "${stdenv.lib.getDev stdenv.cc.libc}/include/netinet/in.h"
     '';
     inherit patches;
 
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 88e183bc3f2..d51b4eeb427 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1106,11 +1106,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   libfontenc = callPackage ({ stdenv, pkgconfig, fetchurl, xorgproto, zlib }: stdenv.mkDerivation {
-    name = "libfontenc-1.1.3";
+    name = "libfontenc-1.1.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libfontenc-1.1.3.tar.bz2;
-      sha256 = "08gxmrhgw97mv0pvkfmd46zzxrn6zdw4g27073zl55gwwqq8jn3h";
+      url = mirror://xorg/individual/lib/libfontenc-1.1.4.tar.bz2;
+      sha256 = "0y90170dp8wsidr1dzza0grxr1lfh30ji3b5vkjz4j6x1n0wxz1c";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkgconfig ];
@@ -1535,11 +1535,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xclock = callPackage ({ stdenv, pkgconfig, fetchurl, libX11, libXaw, libXft, libxkbfile, libXmu, xorgproto, libXrender, libXt }: stdenv.mkDerivation {
-    name = "xclock-1.0.7";
+    name = "xclock-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xclock-1.0.7.tar.bz2;
-      sha256 = "1l3xv4bsca6bwxx73jyjz0blav86i7vwffkhdb1ac81y9slyrki3";
+      url = mirror://xorg/individual/app/xclock-1.0.8.tar.bz2;
+      sha256 = "0m92zhamh15my9f2rqa14q41d6k2cn468azm3g7g3w9n7942024k";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkgconfig ];
@@ -1652,11 +1652,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xev = callPackage ({ stdenv, pkgconfig, fetchurl, libX11, xorgproto, libXrandr }: stdenv.mkDerivation {
-    name = "xev-1.2.2";
+    name = "xev-1.2.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xev-1.2.2.tar.bz2;
-      sha256 = "0krivhrxpq6719103r541xpi3i3a0y15f7ypc4lnrx8sdhmfcjnr";
+      url = mirror://xorg/individual/app/xev-1.2.3.tar.bz2;
+      sha256 = "02ddsdx138g7szhwklpbzi0cxr34871iay3k28kdcihrz8f4zg36";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkgconfig ];
@@ -2379,6 +2379,19 @@ lib.makeScope newScope (self: with self; {
     meta.platforms = stdenv.lib.platforms.unix;
   }) {};
 
+  xfsinfo = callPackage ({ stdenv, pkgconfig, fetchurl, libFS, xorgproto }: stdenv.mkDerivation {
+    name = "xfsinfo-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = mirror://xorg/individual/app/xfsinfo-1.0.6.tar.bz2;
+      sha256 = "1mmir5i7gm71xc0ba8vnizi4744vsd31hknhi4cmgvg6kadqngla";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ libFS xorgproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
+  }) {};
+
   xgamma = callPackage ({ stdenv, pkgconfig, fetchurl, libX11, xorgproto, libXxf86vm }: stdenv.mkDerivation {
     name = "xgamma-1.0.6";
     builder = ./builder.sh;
@@ -2406,11 +2419,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xhost = callPackage ({ stdenv, pkgconfig, fetchurl, libX11, libXau, libXmu, xorgproto }: stdenv.mkDerivation {
-    name = "xhost-1.0.7";
+    name = "xhost-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xhost-1.0.7.tar.bz2;
-      sha256 = "16n26xw6l01zq31d4qvsaz50misvizhn7iihzdn5f7s72pp1krlk";
+      url = mirror://xorg/individual/app/xhost-1.0.8.tar.bz2;
+      sha256 = "15n3mnd4i5kh4z32qv11580qjgvnng0wry2y753ljrqkkrbkrp52";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkgconfig ];
@@ -2536,11 +2549,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xlsatoms = callPackage ({ stdenv, pkgconfig, fetchurl, libxcb }: stdenv.mkDerivation {
-    name = "xlsatoms-1.1.2";
+    name = "xlsatoms-1.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xlsatoms-1.1.2.tar.bz2;
-      sha256 = "196yjik910xsr7dwy8daa0amr0r22ynfs360z0ndp9mx7mydrra7";
+      url = mirror://xorg/individual/app/xlsatoms-1.1.3.tar.bz2;
+      sha256 = "10m3a046jvaw5ywx4y65kl84lsxqan70gww1g1r7cf96ijaqz1jp";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkgconfig ];
@@ -2601,11 +2614,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xmodmap = callPackage ({ stdenv, pkgconfig, fetchurl, libX11, xorgproto }: stdenv.mkDerivation {
-    name = "xmodmap-1.0.9";
+    name = "xmodmap-1.0.10";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xmodmap-1.0.9.tar.bz2;
-      sha256 = "0y649an3jqfq9klkp9y5gj20xb78fw6g193f5mnzpl0hbz6fbc5p";
+      url = mirror://xorg/individual/app/xmodmap-1.0.10.tar.bz2;
+      sha256 = "0z28331i2pm16x671fa9qwsfqdmr6a43bzwmp0dm17a3sx0hjgs7";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkgconfig ];
@@ -2718,11 +2731,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xrdb = callPackage ({ stdenv, pkgconfig, fetchurl, libX11, libXmu, xorgproto }: stdenv.mkDerivation {
-    name = "xrdb-1.1.1";
+    name = "xrdb-1.2.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xrdb-1.1.1.tar.bz2;
-      sha256 = "1dqp486nd5sagbg572kl0k839nwvpqnb7jvppyb7jj5vrpkss8rd";
+      url = mirror://xorg/individual/app/xrdb-1.2.0.tar.bz2;
+      sha256 = "0ik9gh6363c47pr0dp7q22nfs8vmavjg2v4bsr0604ppl77nafpj";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkgconfig ];
@@ -2782,6 +2795,19 @@ lib.makeScope newScope (self: with self; {
     meta.platforms = stdenv.lib.platforms.unix;
   }) {};
 
+  xstdcmap = callPackage ({ stdenv, pkgconfig, fetchurl, libX11, libXmu, xorgproto }: stdenv.mkDerivation {
+    name = "xstdcmap-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = mirror://xorg/individual/app/xstdcmap-1.0.4.tar.bz2;
+      sha256 = "12vgzsxv4rw25frkgjyli6w6hy10lgpvsx9wzw2v5l5a3qzqp286";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ libX11 libXmu xorgproto ];
+    meta.platforms = stdenv.lib.platforms.unix;
+  }) {};
+
   xtrans = callPackage ({ stdenv, pkgconfig, fetchurl }: stdenv.mkDerivation {
     name = "xtrans-1.3.5";
     builder = ./builder.sh;
@@ -2809,11 +2835,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xvinfo = callPackage ({ stdenv, pkgconfig, fetchurl, libX11, xorgproto, libXv }: stdenv.mkDerivation {
-    name = "xvinfo-1.1.3";
+    name = "xvinfo-1.1.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xvinfo-1.1.3.tar.bz2;
-      sha256 = "1sz5wqhxd1fqsfi1w5advdlwzkizf2fgl12hdpk66f7mv9l8pflz";
+      url = mirror://xorg/individual/app/xvinfo-1.1.4.tar.bz2;
+      sha256 = "0gz7fvxavqlrqynpfbrm2nc9yx8h0ksnbnv34fj7n1q6cq6j4lq3";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 96d002e6331..886de897db8 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -350,11 +350,6 @@ self: super:
   });
 
   xf86inputlibinput = super.xf86inputlibinput.overrideAttrs (attrs: rec {
-    name = "xf86-input-libinput-0.28.0";
-    src = fetchurl {
-      url = "mirror://xorg/individual/driver/${name}.tar.bz2";
-      sha256 = "189h8vl0005yizwrs4d0sng6j8lwkd3xi1zwqg8qavn2bw34v691";
-    };
     outputs = [ "out" "dev" ];
     buildInputs = attrs.buildInputs ++ [ libinput ];
     installFlags = "sdkdir=\${dev}/include/xorg";
@@ -611,8 +606,16 @@ self: super:
       }));
 
   lndir = super.lndir.overrideAttrs (attrs: {
+    buildInputs = [];
     preConfigure = ''
+      export XPROTO_CFLAGS=" "
+      export XPROTO_LIBS=" "
       substituteInPlace lndir.c \
+        --replace '<X11/Xos.h>' '<string.h>' \
+        --replace '<X11/Xfuncproto.h>' '<unistd.h>' \
+        --replace '_X_ATTRIBUTE_PRINTF(1,2)' '__attribute__((__format__(__printf__,1,2)))' \
+        --replace '_X_ATTRIBUTE_PRINTF(2,3)' '__attribute__((__format__(__printf__,2,3)))' \
+        --replace '_X_NORETURN' '__attribute__((noreturn))' \
         --replace 'n_dirs--;' ""
     '';
   });
diff --git a/pkgs/servers/x11/xorg/tarballs.list b/pkgs/servers/x11/xorg/tarballs.list
index 06f7c2b93a8..854063dd307 100644
--- a/pkgs/servers/x11/xorg/tarballs.list
+++ b/pkgs/servers/x11/xorg/tarballs.list
@@ -30,7 +30,7 @@ mirror://xorg/individual/app/x11perf-1.6.0.tar.bz2
 mirror://xorg/individual/app/xauth-1.0.10.tar.bz2
 mirror://xorg/individual/app/xbacklight-1.2.2.tar.bz2
 mirror://xorg/individual/app/xcalc-1.0.7.tar.bz2
-mirror://xorg/individual/app/xclock-1.0.7.tar.bz2
+mirror://xorg/individual/app/xclock-1.0.8.tar.bz2
 mirror://xorg/individual/app/xcmsdb-1.0.5.tar.bz2
 mirror://xorg/individual/app/xcompmgr-1.1.7.tar.bz2
 mirror://xorg/individual/app/xconsole-1.0.7.tar.bz2
@@ -38,13 +38,14 @@ mirror://xorg/individual/app/xcursorgen-1.0.7.tar.bz2
 mirror://xorg/individual/app/xdm-1.1.12.tar.bz2
 mirror://xorg/individual/app/xdpyinfo-1.3.2.tar.bz2
 mirror://xorg/individual/app/xdriinfo-1.0.6.tar.bz2
-mirror://xorg/individual/app/xev-1.2.2.tar.bz2
+mirror://xorg/individual/app/xev-1.2.3.tar.bz2
 mirror://xorg/individual/app/xeyes-1.1.2.tar.bz2
 mirror://xorg/individual/app/xfontsel-1.0.6.tar.bz2
 mirror://xorg/individual/app/xfs-1.2.0.tar.bz2
+mirror://xorg/individual/app/xfsinfo-1.0.6.tar.bz2
 mirror://xorg/individual/app/xgamma-1.0.6.tar.bz2
 mirror://xorg/individual/app/xgc-1.0.5.tar.bz2
-mirror://xorg/individual/app/xhost-1.0.7.tar.bz2
+mirror://xorg/individual/app/xhost-1.0.8.tar.bz2
 mirror://xorg/individual/app/xinit-1.4.1.tar.bz2
 mirror://xorg/individual/app/xinput-1.6.2.tar.bz2
 mirror://xorg/individual/app/xkbcomp-1.4.2.tar.bz2
@@ -53,22 +54,23 @@ mirror://xorg/individual/app/xkbprint-1.0.4.tar.bz2
 mirror://xorg/individual/app/xkbutils-1.0.4.tar.bz2
 mirror://xorg/individual/app/xkill-1.0.5.tar.bz2
 mirror://xorg/individual/app/xload-1.1.3.tar.bz2
-mirror://xorg/individual/app/xlsatoms-1.1.2.tar.bz2
+mirror://xorg/individual/app/xlsatoms-1.1.3.tar.bz2
 mirror://xorg/individual/app/xlsclients-1.1.4.tar.bz2
 mirror://xorg/individual/app/xlsfonts-1.0.6.tar.bz2
 mirror://xorg/individual/app/xmag-1.0.6.tar.bz2
 mirror://xorg/individual/app/xmessage-1.0.5.tar.bz2
-mirror://xorg/individual/app/xmodmap-1.0.9.tar.bz2
+mirror://xorg/individual/app/xmodmap-1.0.10.tar.bz2
 mirror://xorg/individual/app/xpr-1.0.5.tar.bz2
 mirror://xorg/individual/app/xprop-1.2.3.tar.bz2
 mirror://xorg/individual/app/xrandr-1.5.0.tar.bz2
-mirror://xorg/individual/app/xrdb-1.1.1.tar.bz2
+mirror://xorg/individual/app/xrdb-1.2.0.tar.bz2
 mirror://xorg/individual/app/xrefresh-1.0.6.tar.bz2
 mirror://xorg/individual/app/xset-1.2.4.tar.bz2
 mirror://xorg/individual/app/xsetroot-1.1.2.tar.bz2
 mirror://xorg/individual/app/xsm-1.0.4.tar.bz2
+mirror://xorg/individual/app/xstdcmap-1.0.4.tar.bz2
 mirror://xorg/individual/app/xtrap-1.0.3.tar.bz2
-mirror://xorg/individual/app/xvinfo-1.1.3.tar.bz2
+mirror://xorg/individual/app/xvinfo-1.1.4.tar.bz2
 mirror://xorg/individual/app/xwd-1.0.7.tar.bz2
 mirror://xorg/individual/app/xwininfo-1.1.4.tar.bz2
 mirror://xorg/individual/app/xwud-1.0.5.tar.bz2
@@ -168,7 +170,7 @@ mirror://xorg/individual/font/font-winitzki-cyrillic-1.0.3.tar.bz2
 mirror://xorg/individual/font/font-xfree86-type1-1.0.4.tar.bz2
 mirror://xorg/individual/lib/libAppleWM-1.4.1.tar.bz2
 mirror://xorg/individual/lib/libdmx-1.1.4.tar.bz2
-mirror://xorg/individual/lib/libfontenc-1.1.3.tar.bz2
+mirror://xorg/individual/lib/libfontenc-1.1.4.tar.bz2
 mirror://xorg/individual/lib/libFS-1.0.7.tar.bz2
 mirror://xorg/individual/lib/libICE-1.0.9.tar.bz2
 mirror://xorg/individual/lib/libpciaccess-0.14.tar.bz2
diff --git a/pkgs/tools/filesystems/securefs/default.nix b/pkgs/tools/filesystems/securefs/default.nix
index 37eb8b9aa72..a21aacb7e6b 100644
--- a/pkgs/tools/filesystems/securefs/default.nix
+++ b/pkgs/tools/filesystems/securefs/default.nix
@@ -4,10 +4,10 @@
 
 stdenv.mkDerivation rec {
   name = "securefs-${version}";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
-    sha256 = "0m3nv748g31b5nzxbwqqqjvygmz41x9vmhrjh655086g26gzrfib";
+    sha256 = "0nf0bd163gz844mikqab2mh7xjlj31ixa6hi85qxdifyjpfjv7y4";
     rev = version;
     repo = "securefs";
     owner = "netheril96";
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index cefddbd65ef..ed31d01f09d 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   name = "file-${version}";
-  version = "5.35";
+  version = "5.36";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.astron.com/pub/file/${name}.tar.gz"
       "https://distfiles.macports.org/file/${name}.tar.gz"
     ];
-    sha256 = "0ijm1fabm68ykr1zbx0bxnka5jr3n42sj8y5mbkrnxs0fj0mxi1h";
+    sha256 = "0ya330cdkvfi2d28h8gvhghj4gnhysmifmryysl0a97xq2884q7v";
   };
 
   nativeBuildInputs = stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file;
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index 48848c0ead7..f18e8ad9f5c 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -9,11 +9,11 @@ let
   pname = "NetworkManager";
 in stdenv.mkDerivation rec {
   name = "network-manager-${version}";
-  version = "1.14.4";
+  version = "1.14.6";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "064cgj9za0kzarks0lrv0qw2ysdphb5l97iw0c964bfiqzjfv8rm";
+    sha256 = "0p9s6b1z9bdmzdjw2gnjsar1671vvcyy9inb0rxg1izf2nnwsfv9";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5f4b1e3c4de..43ef84ccdf4 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6876,6 +6876,7 @@ in
     libcCross1 =
       if stdenv.targetPlatform.libc == "msvcrt" then targetPackages.windows.mingw_w64_headers
       else if stdenv.targetPlatform.libc == "libSystem" then darwin.xcode
+      else if stdenv.targetPlatform.libc == "nblibc" then netbsd.headers
       else null;
     binutils1 = wrapBintoolsWith {
       bintools = binutils-unwrapped;
@@ -10074,6 +10075,7 @@ in
     else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
     else if stdenv.targetPlatform.useiOSPrebuilt then targetPackages.darwin.iosSdkPkgs.libraries or darwin.iosSdkPkgs.libraries
     else if name == "libSystem" then targetPackages.darwin.xcode
+    else if name == "nblibc" then targetPackages.netbsdCross.libc
     else throw "Unknown libc";
 
   libcCross = assert stdenv.targetPlatform != stdenv.buildPlatform; libcCrossChooser stdenv.targetPlatform.libc;
@@ -11697,8 +11699,11 @@ in
 
   ## libGL/libGLU/Mesa stuff
 
-  # Default libGL implementation, should provide headers and libGL.so/libEGL.so/... to link agains them
-  libGL = mesa_noglu.stubs;
+  # Default libGL implementation, should provide headers and
+  # libGL.so/libEGL.so/... to link agains them. Android NDK provides
+  # an OpenGL implementation, we can just use that.
+  libGL = if stdenv.hostPlatform.useAndroidPrebuilt then stdenv
+          else mesa_noglu.stubs;
 
   # Default libGLU
   libGLU = mesa_glu;
@@ -12506,10 +12511,13 @@ in
 
   schroedinger = callPackage ../development/libraries/schroedinger { };
 
-  SDL = callPackage ../development/libraries/SDL {
+  SDL = callPackage ../development/libraries/SDL ({
     inherit (darwin) cf-private;
     inherit (darwin.apple_sdk.frameworks) OpenGL CoreAudio CoreServices AudioUnit Kernel Cocoa;
-  };
+  } // lib.optionalAttrs stdenv.hostPlatform.isAndroid {
+    # libGLU doesn’t work with Android’s SDL
+    libGLU = null;
+  });
 
   SDL_sixel = callPackage ../development/libraries/SDL_sixel { };
 
@@ -23350,8 +23358,10 @@ in
 
   fts = if stdenv.hostPlatform.isMusl then netbsd.fts else null;
 
-  inherit (recurseIntoAttrs (callPackages ../os-specific/bsd { }))
-          netbsd;
+  netbsd = callPackages ../os-specific/bsd/netbsd {};
+  netbsdCross = callPackages ../os-specific/bsd/netbsd {
+    stdenv = crossLibcStdenv;
+  };
 
   yrd = callPackage ../tools/networking/yrd { };