about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2016-02-19 21:16:14 +0000
committerRobin Gloster <mail@glob.in>2016-02-19 21:16:14 +0000
commitbc21db36925af6b79b070d6259c942b5b51239de (patch)
tree5489c46ac6a1f101cff9e9b46febcf7bead80404 /pkgs/development
parentea84b3a915987edea0fca8545b0136867da16844 (diff)
parent5ea21d69f5312db17f9a9d98e439ad1f22d80f73 (diff)
downloadnixlib-bc21db36925af6b79b070d6259c942b5b51239de.tar
nixlib-bc21db36925af6b79b070d6259c942b5b51239de.tar.gz
nixlib-bc21db36925af6b79b070d6259c942b5b51239de.tar.bz2
nixlib-bc21db36925af6b79b070d6259c942b5b51239de.tar.lz
nixlib-bc21db36925af6b79b070d6259c942b5b51239de.tar.xz
nixlib-bc21db36925af6b79b070d6259c942b5b51239de.tar.zst
nixlib-bc21db36925af6b79b070d6259c942b5b51239de.zip
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/elm/packages/elm-compiler.nix4
-rw-r--r--pkgs/development/compilers/elm/packages/elm-make.nix4
-rw-r--r--pkgs/development/compilers/elm/packages/elm-reactor.nix4
-rwxr-xr-xpkgs/development/compilers/elm/update-elm.rb1
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix6
-rw-r--r--pkgs/development/compilers/gcc/builder.sh2
-rw-r--r--pkgs/development/compilers/gcc/gfortran-darwin-NXConstStr.patch27
-rw-r--r--pkgs/development/compilers/ghcjs/default.nix9
-rw-r--r--pkgs/development/compilers/ghcjs/ghcjs-boot.nix42
-rw-r--r--pkgs/development/compilers/ghcjs/shims.nix4
-rw-r--r--pkgs/development/compilers/kotlin/default.nix8
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix41
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix9
-rw-r--r--pkgs/development/haskell-modules/ghcjs/gen-stage2.rb53
-rw-r--r--pkgs/development/haskell-modules/ghcjs/stage2.nix344
-rw-r--r--pkgs/development/interpreters/love/0.10.nix38
-rw-r--r--pkgs/development/interpreters/love/0.8.nix (renamed from pkgs/development/interpreters/love/default.nix)0
-rw-r--r--pkgs/development/interpreters/ruby/bundler-env/default.nix24
-rw-r--r--pkgs/development/libraries/SDL/default.nix61
-rw-r--r--pkgs/development/libraries/aws-sdk-cpp/default.nix50
-rw-r--r--pkgs/development/libraries/dirac/default.nix29
-rw-r--r--pkgs/development/libraries/dirac/dirac-1.0.2.patch362
-rw-r--r--pkgs/development/libraries/fontconfig-ultimate/confd.nix19
-rw-r--r--pkgs/development/libraries/fontconfig/make-fonts-cache.nix27
-rw-r--r--pkgs/development/libraries/fontconfig/make-fonts-conf.xsl10
-rw-r--r--pkgs/development/libraries/freetype/default.nix29
-rw-r--r--pkgs/development/libraries/freetype/enable-validation.patch22
-rw-r--r--pkgs/development/libraries/freetype/fix-pcf.patch132
-rw-r--r--pkgs/development/libraries/gettext/absolute-paths.diff21
-rw-r--r--pkgs/development/libraries/gettext/default.nix4
-rw-r--r--pkgs/development/libraries/glibc/common.nix1
-rw-r--r--pkgs/development/libraries/glibc/cve-2015-7547.patch573
-rw-r--r--pkgs/development/libraries/gnutls/generic.nix1
-rw-r--r--pkgs/development/libraries/hwloc/default.nix12
-rw-r--r--pkgs/development/libraries/ijs/default.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/attica.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/baloo.nix25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/bluez-qt.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/default.nix112
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch74
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix18
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh27
-rwxr-xr-xpkgs/development/libraries/kde-frameworks-5.18/fetchsrcs.sh57
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/frameworkintegration.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kactivities.nix22
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kapidox.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/karchive.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kauth/default.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kbookmarks.nix25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcmutils/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcmutils/default.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcodecs.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcompletion.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kconfig.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/default.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcoreaddons.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kcrash.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdbusaddons.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdeclarative.nix22
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kded.nix19
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix32
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdesignerplugin.nix34
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdesu.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdewebkit.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdnssd.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdoctools/default.nix20
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdoctools/kdoctools-no-find-docbook-xml.patch12
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh5
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kemoticons.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kglobalaccel.nix23
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kguiaddons.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/khtml.nix21
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/ki18n.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default-theme-breeze.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default.nix18
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kidletime.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kimageformats.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kinit/0001-kinit-libpath.patch42
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kinit/default.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kio/default.nix33
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kio/samba-search-path.patch28
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kio/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kitemmodels.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kitemviews.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kjobwidgets.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kjs.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kjsembed.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kmediaplayer.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/knewstuff.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/knotifications.nix21
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/knotifyconfig.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpackage/allow-external-paths.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpackage/default.nix23
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpackage/qdiriterator-follow-symlinks.patch26
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpackage/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kparts.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpeople.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kplotting.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kpty.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kross.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/krunner.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kservice/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kservice/0002-no-canonicalize-path.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix19
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh43
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/default.nix22
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/no-qcoreapplication.patch36
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/ktextwidgets.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kunitconversion.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kwallet.nix21
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kwidgetsaddons.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kwindowsystem.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kxmlgui.nix18
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/kxmlrpcclient.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/modemmanager-qt.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/networkmanager-qt.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/oxygen-icons5.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/plasma-framework/default.nix25
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/solid.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/sonnet.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/srcs.nix565
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.18/threadweaver.nix11
-rw-r--r--pkgs/development/libraries/libspectre/default.nix2
-rw-r--r--pkgs/development/libraries/libspectre/libspectre-0.2.7-gs918.patch42
-rw-r--r--pkgs/development/libraries/libva/default.nix21
-rw-r--r--pkgs/development/libraries/libvdpau-va-gl/default.nix27
-rw-r--r--pkgs/development/libraries/libvdpau/default.nix7
-rw-r--r--pkgs/development/libraries/libxslt/default.nix13
-rw-r--r--pkgs/development/libraries/live555/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/default.nix6
-rw-r--r--pkgs/development/libraries/openssl/1.0.2.x.nix91
-rw-r--r--pkgs/development/libraries/openssl/default.nix178
-rw-r--r--pkgs/development/libraries/openssl/use-etc-ssl-certs.patch13
-rw-r--r--pkgs/development/libraries/pcre/cve-2015-3210.patch87
-rw-r--r--pkgs/development/libraries/pcre/cve-2015-5073.patch68
-rw-r--r--pkgs/development/libraries/pcre/default.nix8
-rw-r--r--pkgs/development/libraries/qpdf/default.nix5
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtbase/default.nix10
-rw-r--r--pkgs/development/libraries/vcg/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/containers/default.nix47
-rw-r--r--pkgs/development/ocaml-modules/gen/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/sequence/default.nix38
-rw-r--r--pkgs/development/perl-modules/lwp-protocol-https-cert-file.patch17
-rw-r--r--pkgs/development/pharo/vm/default.nix4
-rw-r--r--pkgs/development/python-modules/generic/default.nix4
-rw-r--r--pkgs/development/python-modules/matplotlib/default.nix13
-rw-r--r--pkgs/development/tools/build-managers/apache-ant/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/leiningen/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix7
-rw-r--r--pkgs/development/tools/misc/msitools/default.nix21
-rw-r--r--pkgs/development/tools/misc/pkgconfig/default.nix9
-rw-r--r--pkgs/development/tools/misc/rolespec/default.nix48
-rw-r--r--pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix2
161 files changed, 2202 insertions, 2988 deletions
diff --git a/pkgs/development/compilers/elm/packages/elm-compiler.nix b/pkgs/development/compilers/elm/packages/elm-compiler.nix
index 2c390ee406f3..d602193f226c 100644
--- a/pkgs/development/compilers/elm/packages/elm-compiler.nix
+++ b/pkgs/development/compilers/elm/packages/elm-compiler.nix
@@ -10,8 +10,8 @@ mkDerivation {
   version = "0.16";
   src = fetchgit {
     url = "https://github.com/elm-lang/elm-compiler";
-    sha256 = "696413b69fa5e66f878ed189094be5f74dfaced42121c82ac88bbab1c2bb9861";
-    rev = "cb1bad3b6ebaa02d5af47e9b98eab7d475a3a48d";
+    sha256 = "b3bcdca469716f3a4195469549a9e9bc53a6030aff132ec620b9c93958a5ffe6";
+    rev = "df86c1c9b3cf06de3ccb78f26b4d2fac0129ce5a";
   };
   isLibrary = true;
   isExecutable = true;
diff --git a/pkgs/development/compilers/elm/packages/elm-make.nix b/pkgs/development/compilers/elm/packages/elm-make.nix
index 953039ec0a83..923caf8e4c86 100644
--- a/pkgs/development/compilers/elm/packages/elm-make.nix
+++ b/pkgs/development/compilers/elm/packages/elm-make.nix
@@ -8,8 +8,8 @@ mkDerivation {
   version = "0.16";
   src = fetchgit {
     url = "https://github.com/elm-lang/elm-make";
-    sha256 = "bae1206c8066fb4e191345a3da79b89a5ec488929370b210203c8b4dcb35cebc";
-    rev = "e3bfc3e3d04c9b47e18fac289c796caec88d4fef";
+    sha256 = "fc0a6ed08b236dfab43e9af73f8e83a3b88a155695a9671a2b291dc596a75116";
+    rev = "54e0b33fea0cd72400ac6a3dec7643bf1b900741";
   };
   isLibrary = false;
   isExecutable = true;
diff --git a/pkgs/development/compilers/elm/packages/elm-reactor.nix b/pkgs/development/compilers/elm/packages/elm-reactor.nix
index 7715523a88c0..90fdb68480ca 100644
--- a/pkgs/development/compilers/elm/packages/elm-reactor.nix
+++ b/pkgs/development/compilers/elm/packages/elm-reactor.nix
@@ -8,8 +8,8 @@ mkDerivation {
   version = "0.16";
   src = fetchgit {
     url = "https://github.com/elm-lang/elm-reactor";
-    sha256 = "dbf881808ff00772d464675f1dd88a40273569ab0e9298805133a3b8f3ed4f26";
-    rev = "ff4ad13ea6b55c63b2d2099b738fd1d5ec2d29b4";
+    sha256 = "55605b8443dad20c78e297ce35a603cb107b0c1e57bf1c4710faaebc60396de0";
+    rev = "b03166296d11e240fa04cdb748e1f3c4af7afc83";
   };
   isLibrary = false;
   isExecutable = true;
diff --git a/pkgs/development/compilers/elm/update-elm.rb b/pkgs/development/compilers/elm/update-elm.rb
index 4a8001059c98..363655415a95 100755
--- a/pkgs/development/compilers/elm/update-elm.rb
+++ b/pkgs/development/compilers/elm/update-elm.rb
@@ -14,6 +14,7 @@ for pkg, ver in $elm_packages
 end
 
 File.open("release.nix", 'w') do |file|
+  file.puts "{ callPackage }:"
   file.puts "{"
   file.puts "  version = \"#{$elm_version}\";"
   file.puts "  packages = {"
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index 1d97a66008cd..f58daaa5377a 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -71,8 +71,10 @@ let version = "4.9.3";
       # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
       # target libraries and tools.
       ++ optional langAda ../gnat-cflags.patch
-      ++ optional langFortran ../gfortran-driving.patch;
-
+      ++ optional langFortran ../gfortran-driving.patch
+      # The NXConstStr.patch can be removed at 4.9.4
+      ++ optional stdenv.isDarwin ../gfortran-darwin-NXConstStr.patch; 
+	  
     javaEcj = fetchurl {
       # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
       # `configure' time.
diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh
index dd77c67a023e..6d9e93138737 100644
--- a/pkgs/development/compilers/gcc/builder.sh
+++ b/pkgs/development/compilers/gcc/builder.sh
@@ -24,7 +24,7 @@ if test "$noSysDirs" = "1"; then
         # Figure out what extra flags to pass to the gcc compilers
         # being generated to make sure that they use our glibc.
         extraFlags="$(cat $NIX_CC/nix-support/libc-cflags)"
-        extraLDFlags="$(cat $NIX_CC/nix-support/libc-ldflags) $(cat $NIX_CC/nix-support/libc-ldflags-before)"
+        extraLDFlags="$(cat $NIX_CC/nix-support/libc-ldflags) $(cat $NIX_CC/nix-support/libc-ldflags-before || true)"
 
         # Use *real* header files, otherwise a limits.h is generated
         # that does not include Glibc's limits.h (notably missing
diff --git a/pkgs/development/compilers/gcc/gfortran-darwin-NXConstStr.patch b/pkgs/development/compilers/gcc/gfortran-darwin-NXConstStr.patch
new file mode 100644
index 000000000000..a7e158ca364b
--- /dev/null
+++ b/pkgs/development/compilers/gcc/gfortran-darwin-NXConstStr.patch
@@ -0,0 +1,27 @@
+From 82f81877458ea372176eabb5de36329431dce99b Mon Sep 17 00:00:00 2001
+From: Iain Sandoe <iain@codesourcery.com>
+Date: Sat, 21 Dec 2013 00:30:18 +0000
+Subject: [PATCH] don't try to mark local symbols as no-dead-strip
+
+---
+ gcc/config/darwin.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
+index 40804b8..0080299 100644
+--- a/gcc/config/darwin.c
++++ b/gcc/config/darwin.c
+@@ -1259,6 +1259,11 @@ darwin_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED)
+ void
+ darwin_mark_decl_preserved (const char *name)
+ {
++  /* Actually we shouldn't mark any local symbol this way, but for now
++     this only happens with ObjC meta-data.  */
++  if (darwin_label_is_anonymous_local_objc_name (name))
++    return;
++
+   fprintf (asm_out_file, "\t.no_dead_strip ");
+   assemble_name (asm_out_file, name);
+   fputc ('\n', asm_out_file);
+-- 
+2.2.1
diff --git a/pkgs/development/compilers/ghcjs/default.nix b/pkgs/development/compilers/ghcjs/default.nix
index 5ddfdc419179..81a8c90b53a7 100644
--- a/pkgs/development/compilers/ghcjs/default.nix
+++ b/pkgs/development/compilers/ghcjs/default.nix
@@ -23,6 +23,7 @@
 , ghc, gmp
 , jailbreak-cabal
 
+, runCommand
 , nodejs, stdenv, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm
 , time
 , zlib, aeson, attoparsec, bzlib, hashable
@@ -37,7 +38,7 @@
 , coreutils
 , libiconv
 
-, ghcjsBoot ? import ./ghcjs-boot.nix { inherit fetchgit; }
+, ghcjsBoot ? import ./ghcjs-boot.nix { inherit fetchgit runCommand; }
 , shims ? import ./shims.nix { inherit fetchFromGitHub; }
 }:
 let version = "0.2.0"; in
@@ -100,10 +101,14 @@ mkDerivation (rec {
       sed -i -e 's@ \(a\|b\)/boot/[^/]\+@ \1@g' $patch
     done
   '';
+  # We build with --quick so we can build stage 2 packages separately.
+  # This is necessary due to: https://github.com/haskell/cabal/commit/af19fb2c2d231d8deff1cb24164a2bf7efb8905a
+  # Cabal otherwise fails to build: http://hydra.nixos.org/build/31824079/nixlog/1/raw
   postInstall = ''
     PATH=$out/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${stdenv.cc}/lib64:$LD_LIBRARY_PATH \
       env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot \
         --dev \
+        --quick \
         --with-cabal ${cabal-install}/bin/cabal \
         --with-gmp-includes ${gmp}/include \
         --with-gmp-libraries ${gmp}/lib
@@ -111,7 +116,7 @@ mkDerivation (rec {
   passthru = {
     isGhcjs = true;
     nativeGhc = ghc;
-    inherit nodejs;
+    inherit nodejs ghcjsBoot;
   };
 
   homepage = "https://github.com/ghcjs/ghcjs";
diff --git a/pkgs/development/compilers/ghcjs/ghcjs-boot.nix b/pkgs/development/compilers/ghcjs/ghcjs-boot.nix
index cbf21cb8f5bc..add39a35242b 100644
--- a/pkgs/development/compilers/ghcjs/ghcjs-boot.nix
+++ b/pkgs/development/compilers/ghcjs/ghcjs-boot.nix
@@ -1,7 +1,35 @@
-{ fetchgit }:
-fetchgit {
-  url = git://github.com/ghcjs/ghcjs-boot.git;
-  rev = "97dea5c4145bf80a1e7cffeb1ecd4d0ecacd5a2f";
-  sha256 = "1cgjzm595l2dx6fibzbkyv23bp1857qia0hb9d8aghf006al558j";
-  fetchSubmodules = true;
-}
+{ runCommand, fetchgit }:
+
+let
+  src = fetchgit {
+    url = git://github.com/ghcjs/ghcjs-boot.git;
+    rev = "97dea5c4145bf80a1e7cffeb1ecd4d0ecacd5a2f";
+    sha256 = "1cgjzm595l2dx6fibzbkyv23bp1857qia0hb9d8aghf006al558j";
+    fetchSubmodules = true;
+  };
+
+in
+
+# we remove the patches so ghcjs-boot doesn't try to apply them again.
+runCommand "${src.name}-patched" {} ''
+  cp -r ${src} $out
+  chmod -R +w $out
+
+  # Make the patches be relative their corresponding package's directory.
+  # See: https://github.com/ghcjs/ghcjs-boot/pull/12
+  for patch in $out/patches/*.patch; do
+    echo ">> fixing patch: $patch"
+    sed -i -e 's@ \(a\|b\)/boot/[^/]\+@ \1@g' $patch
+  done
+
+  for package in $(cd $out/boot; echo *); do
+    patch=$out/patches/$package.patch
+    if [[ -e $patch ]]; then
+      echo ">> patching package: $package"
+      pushd $out/boot/$package
+      patch -p1 < $patch
+      rm $patch
+      popd
+    fi
+  done
+''
diff --git a/pkgs/development/compilers/ghcjs/shims.nix b/pkgs/development/compilers/ghcjs/shims.nix
index dbbf15de6c8b..2d68ea075515 100644
--- a/pkgs/development/compilers/ghcjs/shims.nix
+++ b/pkgs/development/compilers/ghcjs/shims.nix
@@ -2,6 +2,6 @@
 fetchFromGitHub {
   owner = "ghcjs";
   repo = "shims";
-  rev = "45f44f5f027ec03264b61b8049951e765cc0b23a";
-  sha256 = "090pz4rzwlcrjavbbzxhf6c7rq7rzmr10g89hmhw4c65c4fyyykp";
+  rev = "4df1808d03117ddcd45f276f0ddd85c73e59506a";
+  sha256 = "0nay4pmq3yqqvpz23709i3729840idpcc2ii2jd0xvaj1z61adda";
 }
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index a6f5dcc21592..2433f5ab5797 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, makeWrapper, jre, unzip }:
+{ stdenv, fetchurl, makeWrapper, jre, unzip, which }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.0-rc-1036";
+  version = "1.0.0";
   name = "kotlin-${version}";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/build-${version}/kotlin-compiler-${version}.zip";
-    sha256 = "8d72ff925678a2172fbbefcb6f0c5a195a300dccf240e5add16c3e8d86e13d67";
+    sha256 = "0dp5mab35sv3nsgj488ibyn6x6xw2rka76s7kygbhqhjc429kpgy";
   };
 
   propagatedBuildInputs = [ jre ] ;
-  buildInputs = [ makeWrapper unzip ] ;
+  buildInputs = [ makeWrapper unzip which ] ;
 
   installPhase = ''
     mkdir -p $out
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index dd51b99bf930..ac7a30d4cfb0 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -7,54 +7,53 @@ in
 
 with import ./lib.nix { inherit pkgs; };
 
-self: super: {
+self: super:
+  # The stage 2 packages. Regenerate with ./ghcjs/gen-stage2.rb
+  let stage2 =
+    (import ./ghcjs/stage2.nix {
+       inherit (self) callPackage;
+       inherit (self.ghc) ghcjsBoot;
+    }); in stage2 // {
+
+  old-time = overrideCabal stage2.old-time (drv: {
+    postPatch = ''
+      ${pkgs.autoconf}/bin/autoreconf --install --force --verbose
+    '';
+  });
 
   # LLVM is not supported on this GHC; use the latest one.
   inherit (pkgs) llvmPackages;
 
   inherit (pkgs.haskell.packages.ghc7103) jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
 
-  # This is the list of packages that are built into a booted ghcjs installation
+  # This is the list of the Stage 1 packages that are built into a booted ghcjs installation
   # It can be generated with the command:
   # nix-shell -p haskell.packages.ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^    \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1 = null;/'"
-  Cabal = null;
-  aeson = null;
   array = null;
-  async = null;
-  attoparsec = null;
   base = null;
   binary = null;
   rts = null;
   bytestring = null;
-  case-insensitive = null;
   containers = null;
   deepseq = null;
   directory = null;
-  dlist = null;
-  extensible-exceptions = null;
   filepath = null;
   ghc-prim = null;
-  ghcjs-base = null;
   ghcjs-prim = null;
-  hashable = null;
   integer-gmp = null;
-  mtl = null;
   old-locale = null;
-  old-time = null;
-  parallel = null;
   pretty = null;
   primitive = null;
   process = null;
-  scientific = null;
-  stm = null;
-  syb = null;
   template-haskell = null;
-  text = null;
   time = null;
   transformers = null;
   unix = null;
-  unordered-containers = null;
-  vector = null;
+
+  # Don't set integer-simple to null!
+  # GHCJS uses integer-gmp, so any package expression that depends on
+  # integer-simple is wrong.
+  #integer-simple = null;
 
   # These packages are core libraries in GHC 7.10.x, but not here.
   bin-package-db = null;
@@ -105,7 +104,7 @@ self: super: {
      }) {};
 
   ghcjs-dom = overrideCabal super.ghcjs-dom (drv: {
-    libraryHaskellDepends =
+    libraryHaskellDepends = [ self.ghcjs-base ] ++
       removeLibraryHaskellDepends [
         "glib" "gtk" "gtk3" "webkitgtk" "webkitgtk3"
       ] drv.libraryHaskellDepends;
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index fd94d9d67a63..fb8781bd7504 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -36,6 +36,7 @@
 , testDepends ? [], testHaskellDepends ? [], testSystemDepends ? []
 , testTarget ? ""
 , broken ? false
+, preCompileBuildDriver ? "", postCompileBuildDriver ? ""
 , preUnpack ? "", postUnpack ? ""
 , patches ? [], patchPhase ? "", prePatch ? "", postPatch ? ""
 , preConfigure ? "", postConfigure ? ""
@@ -57,6 +58,7 @@ let
                        concatStringsSep enableFeature optionalAttrs toUpper;
 
   isGhcjs = ghc.isGhcjs or false;
+  nativeGhc = if isGhcjs then ghc.nativeGhc else ghc;
 
   newCabalFileUrl = "http://hackage.haskell.org/package/${pname}-${version}/revision/${revision}.cabal";
   newCabalFile = fetchurl {
@@ -124,7 +126,8 @@ let
 
   ghcEnv = ghc.withPackages (p: haskellBuildInputs);
 
-  setupCommand = if isGhcjs then "${ghc.nodejs}/bin/node ./Setup.jsexe/all.js" else "./Setup";
+  setupBuilder = if isGhcjs then "${nativeGhc}/bin/ghc" else ghcCommand;
+  setupCommand = "./Setup";
   ghcCommand = if isGhcjs then "ghcjs" else "ghc";
   ghcCommandCaps = toUpper ghcCommand;
 
@@ -200,7 +203,7 @@ stdenv.mkDerivation ({
     done
 
     echo setupCompileFlags: $setupCompileFlags
-    ${ghcCommand} $setupCompileFlags --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i
+    ${setupBuilder} $setupCompileFlags --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i
 
     runHook postCompileBuildDriver
   '';
@@ -296,6 +299,8 @@ stdenv.mkDerivation ({
          ;
 
 }
+// optionalAttrs (preCompileBuildDriver != "")  { inherit preCompileBuildDriver; }
+// optionalAttrs (postCompileBuildDriver != "") { inherit postCompileBuildDriver; }
 // optionalAttrs (preUnpack != "")      { inherit preUnpack; }
 // optionalAttrs (postUnpack != "")     { inherit postUnpack; }
 // optionalAttrs (configureFlags != []) { inherit configureFlags; }
diff --git a/pkgs/development/haskell-modules/ghcjs/gen-stage2.rb b/pkgs/development/haskell-modules/ghcjs/gen-stage2.rb
new file mode 100644
index 000000000000..c801dbe3e4b7
--- /dev/null
+++ b/pkgs/development/haskell-modules/ghcjs/gen-stage2.rb
@@ -0,0 +1,53 @@
+#!/usr/bin/env ruby
+
+require 'pathname'
+
+# from boot.yaml in ghcjs/ghcjs
+stage2_packages = [
+  "boot/async",
+  "boot/aeson",
+  "boot/attoparsec",
+  "boot/case-insensitive",
+  "boot/dlist",
+  "boot/extensible-exceptions",
+  "boot/hashable",
+  "boot/mtl",
+  "boot/old-time",
+  "boot/parallel",
+  "boot/scientific",
+  "boot/stm",
+  "boot/syb",
+  "boot/text",
+  "boot/unordered-containers",
+  "boot/vector",
+  "ghcjs/ghcjs-base",
+  # not listed under stage2, but needed when "quick booting".
+  "boot/cabal/Cabal"
+]
+
+nixpkgs = File.expand_path("../../../../..", __FILE__)
+boot = `nix-build #{nixpkgs} -A haskell.packages.ghcjs.ghc.ghcjsBoot`.chomp
+
+out = "".dup
+out << "{ ghcjsBoot, callPackage }:\n"
+out << "\n"
+out << "{\n"
+
+stage2_packages.each do |package|
+  name = Pathname.new(package).basename
+  nix = `cabal2nix file://#{boot}/#{package}  --jailbreak`
+  nix.sub!(/src =.*?$/, "src = \"${ghcjsBoot}/#{package}\";")
+  nix.sub!("libraryHaskellDepends", "doCheck = false;\n  libraryHaskellDepends")
+  # cabal2nix somehow generates the deps for 'text' as if it had selected flag
+  # 'integer-simple' (despite not passing the flag within the generated
+  # expression). We want integer-gmp instead.
+  nix.gsub!(/integer-simple/, "integer-gmp")
+  nix = nix.split("\n").join("\n      ")
+
+  out << "  #{name} = callPackage\n"
+  out << "    (#{nix}) {};\n"
+end
+
+out << "}"
+
+puts out
diff --git a/pkgs/development/haskell-modules/ghcjs/stage2.nix b/pkgs/development/haskell-modules/ghcjs/stage2.nix
new file mode 100644
index 000000000000..f84ddbdefa45
--- /dev/null
+++ b/pkgs/development/haskell-modules/ghcjs/stage2.nix
@@ -0,0 +1,344 @@
+{ ghcjsBoot, callPackage }:
+
+{
+  async = callPackage
+    ({ mkDerivation, base, HUnit, stdenv, stm, test-framework
+      , test-framework-hunit
+      }:
+      mkDerivation {
+        pname = "async";
+        version = "2.0.1.6";
+        src = "${ghcjsBoot}/boot/async";
+        doCheck = false;
+        libraryHaskellDepends = [ base stm ];
+        testHaskellDepends = [
+          base HUnit test-framework test-framework-hunit
+        ];
+        jailbreak = true;
+        homepage = "https://github.com/simonmar/async";
+        description = "Run IO operations asynchronously and wait for their results";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  aeson = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers, deepseq
+      , dlist, ghc-prim, hashable, HUnit, mtl, QuickCheck, scientific
+      , stdenv, syb, template-haskell, test-framework
+      , test-framework-hunit, test-framework-quickcheck2, text, time
+      , transformers, unordered-containers, vector
+      }:
+      mkDerivation {
+        pname = "aeson";
+        version = "0.9.0.1";
+        src = "${ghcjsBoot}/boot/aeson";
+        doCheck = false;
+        libraryHaskellDepends = [
+          attoparsec base bytestring containers deepseq dlist ghc-prim
+          hashable mtl scientific syb template-haskell text time transformers
+          unordered-containers vector
+        ];
+        testHaskellDepends = [
+          attoparsec base bytestring containers ghc-prim HUnit QuickCheck
+          template-haskell test-framework test-framework-hunit
+          test-framework-quickcheck2 text time unordered-containers vector
+        ];
+        jailbreak = true;
+        homepage = "https://github.com/bos/aeson";
+        description = "Fast JSON parsing and encoding";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  attoparsec = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, deepseq
+      , QuickCheck, quickcheck-unicode, scientific, stdenv
+      , test-framework, test-framework-quickcheck2, text, transformers
+      , vector
+      }:
+      mkDerivation {
+        pname = "attoparsec";
+        version = "0.13.0.1";
+        src = "${ghcjsBoot}/boot/attoparsec";
+        doCheck = false;
+        libraryHaskellDepends = [
+          array base bytestring containers deepseq scientific text
+          transformers
+        ];
+        testHaskellDepends = [
+          array base bytestring containers deepseq QuickCheck
+          quickcheck-unicode scientific test-framework
+          test-framework-quickcheck2 text transformers vector
+        ];
+        jailbreak = true;
+        homepage = "https://github.com/bos/attoparsec";
+        description = "Fast combinator parsing for bytestrings and text";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  case-insensitive = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, hashable, HUnit, stdenv
+      , test-framework, test-framework-hunit, text
+      }:
+      mkDerivation {
+        pname = "case-insensitive";
+        version = "1.2.0.4";
+        src = "${ghcjsBoot}/boot/case-insensitive";
+        doCheck = false;
+        libraryHaskellDepends = [ base bytestring deepseq hashable text ];
+        testHaskellDepends = [
+          base bytestring HUnit test-framework test-framework-hunit text
+        ];
+        jailbreak = true;
+        homepage = "https://github.com/basvandijk/case-insensitive";
+        description = "Case insensitive string comparison";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  dlist = callPackage
+    ({ mkDerivation, base, Cabal, deepseq, QuickCheck, stdenv }:
+      mkDerivation {
+        pname = "dlist";
+        version = "0.7.1.1";
+        src = "${ghcjsBoot}/boot/dlist";
+        doCheck = false;
+        libraryHaskellDepends = [ base deepseq ];
+        testHaskellDepends = [ base Cabal QuickCheck ];
+        jailbreak = true;
+        homepage = "https://github.com/spl/dlist";
+        description = "Difference lists";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  extensible-exceptions = callPackage
+    ({ mkDerivation, base, stdenv }:
+      mkDerivation {
+        pname = "extensible-exceptions";
+        version = "0.1.1.4";
+        src = "${ghcjsBoot}/boot/extensible-exceptions";
+        doCheck = false;
+        libraryHaskellDepends = [ base ];
+        jailbreak = true;
+        description = "Extensible exceptions";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  hashable = callPackage
+    ({ mkDerivation, base, bytestring, ghc-prim, HUnit, integer-gmp
+      , QuickCheck, random, stdenv, test-framework, test-framework-hunit
+      , test-framework-quickcheck2, text, unix
+      }:
+      mkDerivation {
+        pname = "hashable";
+        version = "1.2.3.2";
+        src = "${ghcjsBoot}/boot/hashable";
+        doCheck = false;
+        libraryHaskellDepends = [
+          base bytestring ghc-prim integer-gmp text
+        ];
+        testHaskellDepends = [
+          base bytestring ghc-prim HUnit QuickCheck random test-framework
+          test-framework-hunit test-framework-quickcheck2 text unix
+        ];
+        jailbreak = true;
+        homepage = "http://github.com/tibbe/hashable";
+        description = "A class for types that can be converted to a hash value";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  mtl = callPackage
+    ({ mkDerivation, base, stdenv, transformers }:
+      mkDerivation {
+        pname = "mtl";
+        version = "2.2.1";
+        src = "${ghcjsBoot}/boot/mtl";
+        doCheck = false;
+        libraryHaskellDepends = [ base transformers ];
+        jailbreak = true;
+        homepage = "http://github.com/ekmett/mtl";
+        description = "Monad classes, using functional dependencies";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  old-time = callPackage
+    ({ mkDerivation, base, old-locale, stdenv }:
+      mkDerivation {
+        pname = "old-time";
+        version = "1.1.0.3";
+        src = "${ghcjsBoot}/boot/old-time";
+        doCheck = false;
+        libraryHaskellDepends = [ base old-locale ];
+        jailbreak = true;
+        description = "Time library";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  parallel = callPackage
+    ({ mkDerivation, array, base, containers, deepseq, stdenv }:
+      mkDerivation {
+        pname = "parallel";
+        version = "3.2.0.6";
+        src = "${ghcjsBoot}/boot/parallel";
+        doCheck = false;
+        libraryHaskellDepends = [ array base containers deepseq ];
+        jailbreak = true;
+        description = "Parallel programming library";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  scientific = callPackage
+    ({ mkDerivation, array, base, bytestring, deepseq, ghc-prim
+      , hashable, integer-gmp, QuickCheck, smallcheck, stdenv, tasty
+      , tasty-ant-xml, tasty-hunit, tasty-quickcheck, tasty-smallcheck
+      , text
+      }:
+      mkDerivation {
+        pname = "scientific";
+        version = "0.3.3.8";
+        src = "${ghcjsBoot}/boot/scientific";
+        doCheck = false;
+        libraryHaskellDepends = [
+          array base bytestring deepseq ghc-prim hashable integer-gmp text
+        ];
+        testHaskellDepends = [
+          base bytestring QuickCheck smallcheck tasty tasty-ant-xml
+          tasty-hunit tasty-quickcheck tasty-smallcheck text
+        ];
+        jailbreak = true;
+        homepage = "https://github.com/basvandijk/scientific";
+        description = "Numbers represented using scientific notation";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  stm = callPackage
+    ({ mkDerivation, array, base, stdenv }:
+      mkDerivation {
+        pname = "stm";
+        version = "2.4.4";
+        src = "${ghcjsBoot}/boot/stm";
+        doCheck = false;
+        libraryHaskellDepends = [ array base ];
+        jailbreak = true;
+        description = "Software Transactional Memory";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  syb = callPackage
+    ({ mkDerivation, base, containers, HUnit, mtl, stdenv }:
+      mkDerivation {
+        pname = "syb";
+        version = "0.5.1";
+        src = "${ghcjsBoot}/boot/syb";
+        doCheck = false;
+        libraryHaskellDepends = [ base ];
+        testHaskellDepends = [ base containers HUnit mtl ];
+        jailbreak = true;
+        homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB";
+        description = "Scrap Your Boilerplate";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  text = callPackage
+    ({ mkDerivation, array, base, binary, bytestring, deepseq, directory
+      , ghc-prim, HUnit, integer-gmp, QuickCheck, quickcheck-unicode
+      , random, stdenv, test-framework, test-framework-hunit
+      , test-framework-quickcheck2
+      }:
+      mkDerivation {
+        pname = "text";
+        version = "1.2.1.1";
+        src = "${ghcjsBoot}/boot/text";
+        doCheck = false;
+        libraryHaskellDepends = [
+          array base binary bytestring deepseq ghc-prim integer-gmp
+        ];
+        testHaskellDepends = [
+          array base binary bytestring deepseq directory ghc-prim HUnit
+          integer-gmp QuickCheck quickcheck-unicode random test-framework
+          test-framework-hunit test-framework-quickcheck2
+        ];
+        jailbreak = true;
+        homepage = "https://github.com/bos/text";
+        description = "An efficient packed Unicode text type";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  unordered-containers = callPackage
+    ({ mkDerivation, base, ChasingBottoms, containers, deepseq, hashable
+      , HUnit, QuickCheck, stdenv, test-framework, test-framework-hunit
+      , test-framework-quickcheck2
+      }:
+      mkDerivation {
+        pname = "unordered-containers";
+        version = "0.2.5.1";
+        src = "${ghcjsBoot}/boot/unordered-containers";
+        doCheck = false;
+        libraryHaskellDepends = [ base deepseq hashable ];
+        testHaskellDepends = [
+          base ChasingBottoms containers hashable HUnit QuickCheck
+          test-framework test-framework-hunit test-framework-quickcheck2
+        ];
+        jailbreak = true;
+        homepage = "https://github.com/tibbe/unordered-containers";
+        description = "Efficient hashing-based container types";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  vector = callPackage
+    ({ mkDerivation, base, deepseq, ghc-prim, primitive, QuickCheck
+      , random, stdenv, template-haskell, test-framework
+      , test-framework-quickcheck2, transformers
+      }:
+      mkDerivation {
+        pname = "vector";
+        version = "0.11.0.0";
+        src = "${ghcjsBoot}/boot/vector";
+        doCheck = false;
+        libraryHaskellDepends = [ base deepseq ghc-prim primitive ];
+        testHaskellDepends = [
+          base QuickCheck random template-haskell test-framework
+          test-framework-quickcheck2 transformers
+        ];
+        jailbreak = true;
+        homepage = "https://github.com/haskell/vector";
+        description = "Efficient Arrays";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+  ghcjs-base = callPackage
+    ({ mkDerivation, aeson, array, attoparsec, base, bytestring
+      , containers, deepseq, directory, dlist, ghc-prim, ghcjs-prim
+      , hashable, HUnit, integer-gmp, primitive, QuickCheck
+      , quickcheck-unicode, random, scientific, stdenv, test-framework
+      , test-framework-hunit, test-framework-quickcheck2, text, time
+      , transformers, unordered-containers, vector
+      }:
+      mkDerivation {
+        pname = "ghcjs-base";
+        version = "0.2.0.0";
+        src = "${ghcjsBoot}/ghcjs/ghcjs-base";
+        doCheck = false;
+        libraryHaskellDepends = [
+          aeson attoparsec base bytestring containers deepseq dlist ghc-prim
+          ghcjs-prim hashable integer-gmp primitive scientific text time
+          transformers unordered-containers vector
+        ];
+        testHaskellDepends = [
+          array base bytestring deepseq directory ghc-prim ghcjs-prim HUnit
+          primitive QuickCheck quickcheck-unicode random test-framework
+          test-framework-hunit test-framework-quickcheck2 text
+        ];
+        jailbreak = true;
+        homepage = "http://github.com/ghcjs/ghcjs-base";
+        description = "base library for GHCJS";
+        license = stdenv.lib.licenses.mit;
+      }) {};
+  Cabal = callPackage
+    ({ mkDerivation, array, base, binary, bytestring, containers
+      , deepseq, directory, extensible-exceptions, filepath, HUnit
+      , old-time, pretty, process, QuickCheck, regex-posix, stdenv
+      , test-framework, test-framework-hunit, test-framework-quickcheck2
+      , time, unix
+      }:
+      mkDerivation {
+        pname = "Cabal";
+        version = "1.22.4.0";
+        src = "${ghcjsBoot}/boot/cabal/Cabal";
+        doCheck = false;
+        libraryHaskellDepends = [
+          array base binary bytestring containers deepseq directory filepath
+          pretty process time unix
+        ];
+        testHaskellDepends = [
+          base bytestring containers directory extensible-exceptions filepath
+          HUnit old-time process QuickCheck regex-posix test-framework
+          test-framework-hunit test-framework-quickcheck2 unix
+        ];
+        jailbreak = true;
+        homepage = "http://www.haskell.org/cabal/";
+        description = "A framework for packaging Haskell software";
+        license = stdenv.lib.licenses.bsd3;
+      }) {};
+}
diff --git a/pkgs/development/interpreters/love/0.10.nix b/pkgs/development/interpreters/love/0.10.nix
new file mode 100644
index 000000000000..ed5aa1e60de3
--- /dev/null
+++ b/pkgs/development/interpreters/love/0.10.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromBitbucket, pkgconfig, SDL2, mesa, openal, luajit,
+  libdevil, freetype, physfs, libmodplug, mpg123, libvorbis, libogg,
+  libtheora, which, autoconf, automake, libtool
+}:
+
+let
+  pname = "love";
+  version = "0.10.1";
+in
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  src = fetchFromBitbucket {
+    owner = "rude";
+    repo = "love";
+    rev = "${version}";
+    sha256 = "10a2kkyx7x9jkcj9xrqgmvp0b6gbapjqjx9fib9f6a0nbz0xaswj";
+  };
+
+  buildInputs = [
+    pkgconfig SDL2 mesa openal luajit libdevil freetype physfs libmodplug mpg123
+    libvorbis libogg libtheora autoconf which libtool automake
+  ];
+
+  preConfigure = "$shell ./platform/unix/automagic";
+
+  configureFlags = [
+    "--with-lua=luajit"
+  ];
+
+  meta = {
+    homepage = "http://love2d.org";
+    description = "A Lua-based 2D game engine/scripting language";
+    license = stdenv.lib.licenses.zlib;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+  };
+}
diff --git a/pkgs/development/interpreters/love/default.nix b/pkgs/development/interpreters/love/0.8.nix
index fc1f01cb3730..fc1f01cb3730 100644
--- a/pkgs/development/interpreters/love/default.nix
+++ b/pkgs/development/interpreters/love/0.8.nix
diff --git a/pkgs/development/interpreters/ruby/bundler-env/default.nix b/pkgs/development/interpreters/ruby/bundler-env/default.nix
index c7570d815e3b..0c9ed40d3f82 100644
--- a/pkgs/development/interpreters/ruby/bundler-env/default.nix
+++ b/pkgs/development/interpreters/ruby/bundler-env/default.nix
@@ -65,8 +65,24 @@ let
         "${bundler}/${ruby.gemPath}" \
         ${shellEscape (toString envPaths)}
     '' + lib.optionalString (postBuild != null) postBuild;
-    passthru = {
+    passthru = rec {
       inherit ruby bundler meta gems;
+
+      wrappedRuby = stdenv.mkDerivation {
+        name = "wrapped-ruby-${name}";
+        nativeBuildInputs = [ makeWrapper ];
+        buildCommand = ''
+          mkdir -p $out/bin
+          for i in ${ruby}/bin/*; do
+            makeWrapper "$i" $out/bin/$(basename "$i") \
+              --set BUNDLE_GEMFILE ${confFiles}/Gemfile \
+              --set BUNDLE_PATH ${bundlerEnv}/${ruby.gemPath} \
+              --set GEM_HOME ${bundlerEnv}/${ruby.gemPath} \
+              --set GEM_PATH ${bundlerEnv}/${ruby.gemPath}
+          done
+        '';
+      };
+
       env = let
         irbrc = builtins.toFile "irbrc" ''
           if !(ENV["OLD_IRBRC"].nil? || ENV["OLD_IRBRC"].empty?)
@@ -77,12 +93,8 @@ let
         '';
         in stdenv.mkDerivation {
           name = "interactive-${name}-environment";
-          nativeBuildInputs = [ ruby bundlerEnv ];
+          nativeBuildInputs = [ wrappedRuby bundlerEnv ];
           shellHook = ''
-            export BUNDLE_GEMFILE=${confFiles}/Gemfile
-            export BUNDLE_PATH=${bundlerEnv}/${ruby.gemPath}
-            export GEM_HOME=${bundlerEnv}/${ruby.gemPath}
-            export GEM_PATH=${bundlerEnv}/${ruby.gemPath}
             export OLD_IRBRC="$IRBRC"
             export IRBRC=${irbrc}
           '';
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix
index 1c7d13471ff6..7ca594e9bc4a 100644
--- a/pkgs/development/libraries/SDL/default.nix
+++ b/pkgs/development/libraries/SDL/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, audiofile, libcap
+{ stdenv, fetchurl, fetchpatch, pkgconfig, audiofile, libcap
 , openglSupport ? false, mesa ? null
 , alsaSupport ? true, alsaLib ? null
 , x11Support ? true, xlibsWrapper ? null, libXrandr ? null
@@ -60,34 +60,49 @@ stdenv.mkDerivation rec {
     "--without-x"
   ] ++ stdenv.lib.optional alsaSupport "--with-alsa-prefix=${alsaLib}/lib");
 
-  # Fix a build failure on OS X Mavericks
-  # Ticket: https://bugzilla.libsdl.org/show_bug.cgi?id=2085
-  patches = stdenv.lib.optional stdenv.isDarwin [ (fetchurl {
-    url = "http://bugzilla-attachments.libsdl.org/attachment.cgi?id=1320";
-    sha1 = "3137feb503a89a8d606405373905b92dcf7e293b";
-  }) ];
+  patches = [
+    # Fix window resizing issues, e.g. for xmonad
+    # Ticket: http://bugzilla.libsdl.org/show_bug.cgi?id=1430
+    (fetchpatch {
+      name = "fix_window_resizing.diff";
+      url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=10;filename=fix_window_resizing.diff;att=2;bug=665779";
+      sha256 = "1z35azc73vvi19pzi6byck31132a8w1vzrghp1x3hy4a4f9z4gc6";
+    })
+    # Fix drops of keyboard events for SDL_EnableUNICODE
+    (fetchpatch {
+      url = "http://hg.libsdl.org/SDL/raw-rev/0aade9c0203f";
+      sha256 = "1y9izncjlqvk1mkz1pkl9lrk9s452cmg2izjjlqqrhbn8279xy50";
+    })
+    # Ignore insane joystick axis events
+    (fetchpatch {
+      url = "http://hg.libsdl.org/SDL/raw-rev/95abff7adcc2";
+      sha256 = "0i8x0kx0pw12ld5bfxhyzs466y3c0n9dscw1ijhq1b96r72xyhqq";
+    })
+    # Workaround X11 bug to allow changing gamma
+    # Ticket: https://bugs.freedesktop.org/show_bug.cgi?id=27222
+    (fetchpatch {
+      url = "http://pkgs.fedoraproject.org/cgit/rpms/SDL.git/plain/SDL-1.2.15-x11-Bypass-SetGammaRamp-when-changing-gamma.patch?id=04a3a7b1bd88c2d5502292fad27e0e02d084698d";
+      sha256 = "0x52s4328kilyq43i7psqkqg7chsfwh0aawr50j566nzd7j51dlv";
+    })
+    # Fix a build failure on OS X Mavericks
+    # Ticket: https://bugzilla.libsdl.org/show_bug.cgi?id=2085
+    (fetchpatch {
+      url = "http://hg.libsdl.org/SDL/raw-rev/e9466ead70e5";
+      sha256 = "0mpwdi09h89df2wxqw87m1rdz7pr46k0w6alk691k8kwv970z6pl";
+    })
+    (fetchpatch {
+      url = "http://hg.libsdl.org/SDL/raw-rev/bbfb41c13a87";
+      sha256 = "1336g7waaf1c8yhkz11xbs500h8bmvabh4h437ax8l1xdwcppfxv";
+    })
+  ];
 
-  crossAttrs =stdenv.lib.optionalAttrs (stdenv.cross.libc == "libSystem") {
-    patches = let
-      f = rev: sha256: fetchurl {
-        url = "http://hg.libsdl.org/SDL/raw-rev/${rev}";
-        inherit sha256;
-      };
-    in [
-      (f "e9466ead70e5" "0ygir3k83d0vxp7s3k48jn3j8n2bnv9wm6613wpx3ybnjrxabrip")
-      (f "bbfb41c13a87" "17v29ybjifvka19m8qf14rjc43nfdwk9v9inaizznarhb17amlnv")
-    ];
-    postPatch = ''
-      sed -i -e 's/ *-fpascal-strings//' configure
-    '';
-  };
-
-  passthru = {inherit openglSupport;};
+  passthru = { inherit openglSupport; };
 
   meta = with stdenv.lib; {
     description = "A cross-platform multimedia library";
     homepage    = http://www.libsdl.org/;
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.unix;
+    license     = licenses.lgpl21;
   };
 }
diff --git a/pkgs/development/libraries/aws-sdk-cpp/default.nix b/pkgs/development/libraries/aws-sdk-cpp/default.nix
new file mode 100644
index 000000000000..6a881e4245aa
--- /dev/null
+++ b/pkgs/development/libraries/aws-sdk-cpp/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchFromGitHub, cmake, curl
+, # Allow building a limited set of APIs, e.g. ["s3" "ec2"].
+  apis ? ["*"]
+, # Whether to enable AWS' custom memory management.
+  customMemoryManagement ? true
+}:
+
+stdenv.mkDerivation rec {
+  name = "aws-sdk-cpp-${version}";
+  version = "0.9.6";
+
+  src = fetchFromGitHub {
+    owner = "awslabs";
+    repo = "aws-sdk-cpp";
+    rev = version;
+    sha256 = "022v7naa5vjvq3wfn4mcp99li61ffsk2fnc8qqi52cb1pyxz9sk1";
+  };
+
+  buildInputs = [ cmake curl ];
+
+  cmakeFlags =
+    lib.optional (!customMemoryManagement) "-DCUSTOM_MEMORY_MANAGEMENT=0"
+    ++ lib.optional (apis != ["*"])
+      "-DBUILD_ONLY=${lib.concatMapStringsSep ";" (api: "aws-cpp-sdk-" + api) apis}";
+
+  enableParallelBuilding = true;
+
+  preBuild =
+    ''
+      # Ensure that the unit tests can find the *.so files.
+      for i in testing-resources aws-cpp-sdk-*; do
+        export LD_LIBRARY_PATH=$(pwd)/$i:$LD_LIBRARY_PATH
+      done
+    '';
+
+  postInstall =
+    ''
+      # Move the .so files to a more reasonable location.
+      mv $out/lib/linux/*/Release/*.so $out/lib
+      rm -rf $out/lib/linux
+    '';
+
+  meta = {
+    description = "A C++ interface for Amazon Web Services";
+    homepage = https://github.com/awslabs/aws-sdk-cpp;
+    license = lib.licenses.asl20;
+    platforms = lib.platforms.linux;
+    maintainers = [ lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/development/libraries/dirac/default.nix b/pkgs/development/libraries/dirac/default.nix
new file mode 100644
index 000000000000..ac94e077b9a6
--- /dev/null
+++ b/pkgs/development/libraries/dirac/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, doxygen }:
+
+stdenv.mkDerivation rec {
+  version = "1.0.2";
+  name = "dirac-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/dirac/${name}.tar.gz";
+    sha256 = "1z803yzp17cj69wn11iyb13swqdd9xdzr58dsk6ghpr3ipqicsw1";
+  };
+
+  buildInputs = [ doxygen ];
+  enableParallelBuilding = true;
+
+  patches = [ ./dirac-1.0.2.patch ];
+
+  postInstall = ''
+    # keep only necessary binaries
+    find $out/bin \( -name '*RGB*' -or -name '*YUV*' -or -name create_dirac_testfile.pl \) -delete
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://sourceforge.net/projects/dirac;
+    description = "A general-purpose video codec based on wavelets";
+    platforms = platforms.all;
+    license = with licenses; [ mpl11 gpl2 lgpl21 ];
+    maintainer = maintainers.igsha;
+  };
+}
diff --git a/pkgs/development/libraries/dirac/dirac-1.0.2.patch b/pkgs/development/libraries/dirac/dirac-1.0.2.patch
new file mode 100644
index 000000000000..3d253b8f6d67
--- /dev/null
+++ b/pkgs/development/libraries/dirac/dirac-1.0.2.patch
@@ -0,0 +1,362 @@
+diff -aur dirac-1.0.2/libdirac_byteio/parseunit_byteio.cpp dirac-1.0.2-modif/libdirac_byteio/parseunit_byteio.cpp
+--- dirac-1.0.2/libdirac_byteio/parseunit_byteio.cpp	2008-05-02 09:57:19.000000000 +0400
++++ dirac-1.0.2-modif/libdirac_byteio/parseunit_byteio.cpp	2016-02-10 19:39:09.838443767 +0300
+@@ -124,12 +124,9 @@
+ 
+     if(prefix==PU_PREFIX)
+     {
+-        unsigned char next_parse_code;
+-
+-        next_parse_code = InputUnByte();
++        (void)InputUnByte();
+         // input next unit parse-offsets
+-        int next_unit_next_parse_offset;
+-        next_unit_next_parse_offset = ReadUintLit(PU_NEXT_PARSE_OFFSET_SIZE);
++        (void)ReadUintLit(PU_NEXT_PARSE_OFFSET_SIZE);
+ 
+         int next_unit_previous_parse_offset;
+         next_unit_previous_parse_offset = ReadUintLit(PU_PREVIOUS_PARSE_OFFSET_SIZE);
+diff -aur dirac-1.0.2/libdirac_common/mot_comp.cpp dirac-1.0.2-modif/libdirac_common/mot_comp.cpp
+--- dirac-1.0.2/libdirac_common/mot_comp.cpp	2008-10-01 05:26:47.000000000 +0400
++++ dirac-1.0.2-modif/libdirac_common/mot_comp.cpp	2016-02-10 19:50:18.453051800 +0300
+@@ -1064,10 +1064,10 @@
+         // We're doing bounds checking because we'll fall off the edge of the reference otherwise.
+ 
+         //weights for doing linear interpolation, calculated from the remainder values
+-        const ValueType linear_wts[4] = {  (2 - rmdr.x) * (2 - rmdr.y),    //tl
+-                                           rmdr.x * (2 - rmdr.y),          //tr
+-                                           (2 - rmdr.x) * rmdr.y,          //bl
+-                                           rmdr.x * rmdr.y };              //br
++        const ValueType linear_wts[4] = {  ValueType((2 - rmdr.x) * (2 - rmdr.y)),    //tl
++                                           ValueType(rmdr.x * (2 - rmdr.y)),          //tr
++                                           ValueType((2 - rmdr.x) * rmdr.y),          //bl
++                                           ValueType(rmdr.x * rmdr.y) };              //br
+ 
+ 
+        for(int c = 0, uY = ref_start.y,BuY=BChk(uY,trueRefYlen),BuY1=BChk(uY+1,trueRefYlen);
+@@ -1116,10 +1116,10 @@
+     const ImageCoords ref_start( ( start_pos.x<<1 ) + roundvec.x ,( start_pos.y<<1 ) + roundvec.y );
+ 
+     //weights for doing linear interpolation, calculated from the remainder values
+-    const ValueType linear_wts[4] = {  (4 - rmdr.x) * (4 - rmdr.y),    //tl
+-                                    rmdr.x * (4 - rmdr.y),          //tr
+-                                    (4 - rmdr.x) * rmdr.y,          //bl
+-                                    rmdr.x * rmdr.y };              //br
++    const ValueType linear_wts[4] = {  ValueType((4 - rmdr.x) * (4 - rmdr.y)),    //tl
++                                    ValueType(rmdr.x * (4 - rmdr.y)),          //tr
++                                    ValueType((4 - rmdr.x) * rmdr.y),          //bl
++                                    ValueType(rmdr.x * rmdr.y) };              //br
+ 
+     //An additional stage to make sure the block to be copied does not fall outside
+     //the reference image.
+diff -aur dirac-1.0.2/libdirac_common/mot_comp_mmx.cpp dirac-1.0.2-modif/libdirac_common/mot_comp_mmx.cpp
+--- dirac-1.0.2/libdirac_common/mot_comp_mmx.cpp	2008-01-09 13:50:23.000000000 +0300
++++ dirac-1.0.2-modif/libdirac_common/mot_comp_mmx.cpp	2016-02-10 19:59:51.792793538 +0300
+@@ -244,10 +244,10 @@
+         // We're 2doing bounds checking because we'll fall off the edge of the reference otherwise.
+ 
+         //weights for doing linear interpolation, calculated from the remainder values
+-        const ValueType linear_wts[4] = {  (2 - rmdr.x) * (2 - rmdr.y),    //tl
+-                                           rmdr.x * (2 - rmdr.y),          //tr
+-                                           (2 - rmdr.x) * rmdr.y,          //bl
+-                                           rmdr.x * rmdr.y };              //br
++        const ValueType linear_wts[4] = {  ValueType((2 - rmdr.x) * (2 - rmdr.y)),    //tl
++                                           ValueType(rmdr.x * (2 - rmdr.y)),          //tr
++                                           ValueType((2 - rmdr.x) * rmdr.y),          //bl
++                                           ValueType(rmdr.x * rmdr.y) };              //br
+ 
+         ValueType act_cols1[4], act_cols2[4];
+         int uX, uY, c, l;
+diff -aur dirac-1.0.2/libdirac_common/mv_codec.cpp dirac-1.0.2-modif/libdirac_common/mv_codec.cpp
+--- dirac-1.0.2/libdirac_common/mv_codec.cpp	2008-10-01 05:26:47.000000000 +0400
++++ dirac-1.0.2-modif/libdirac_common/mv_codec.cpp	2016-02-10 19:51:57.634838245 +0300
+@@ -159,7 +159,7 @@
+ // Main code function
+ void PredModeCodec::DoWorkCode( MvData& in_data )
+ {
+-    int step,max; 
++    int step; 
+     int split_depth;  
+ 
+     for (m_sb_yp = 0, m_sb_tlb_y = 0;  m_sb_yp < in_data.SBSplit().LengthY();  ++m_sb_yp, m_sb_tlb_y += 4)
+@@ -169,7 +169,7 @@
+             split_depth = in_data.SBSplit()[m_sb_yp][m_sb_xp]; 
+ 
+             step = 4  >>  (split_depth); 
+-            max = (1 << split_depth); 
++            //max = (1 << split_depth); 
+                         
+             //now do all the block modes and mvs in the mb            
+             for (m_b_yp = m_sb_tlb_y; m_b_yp < m_sb_tlb_y+4; m_b_yp += step)
+@@ -334,7 +334,7 @@
+ // Main code function
+ void VectorElementCodec::DoWorkCode( MvData& in_data )
+ {
+-    int step,max;
++    int step;
+     int split_depth;
+ 
+     for (m_sb_yp = 0, m_sb_tlb_y = 0;  m_sb_yp < in_data.SBSplit().LengthY();  ++m_sb_yp, m_sb_tlb_y += 4)
+@@ -344,7 +344,7 @@
+             split_depth = in_data.SBSplit()[m_sb_yp][m_sb_xp];
+ 
+             step = 4  >>  (split_depth);
+-            max = (1 << split_depth);
++            //max = (1 << split_depth);
+                         
+             //now do all the block modes and mvs in the mb            
+             for (m_b_yp = m_sb_tlb_y; m_b_yp < m_sb_tlb_y+4; m_b_yp += step)
+@@ -500,7 +500,7 @@
+ // Main code function
+ void DCCodec::DoWorkCode( MvData& in_data )
+ {
+-    int step,max; 
++    int step; 
+     int split_depth;  
+     
+     for (m_sb_yp = 0, m_sb_tlb_y = 0;  m_sb_yp < in_data.SBSplit().LengthY();  ++m_sb_yp, m_sb_tlb_y += 4)
+@@ -510,7 +510,7 @@
+             split_depth = in_data.SBSplit()[m_sb_yp][m_sb_xp]; 
+ 
+             step = 4  >>  (split_depth); 
+-            max = (1 << split_depth); 
++            //max = (1 << split_depth); 
+                         
+             //now do all the block modes and mvs in the mb            
+             for (m_b_yp = m_sb_tlb_y; m_b_yp < m_sb_tlb_y+4; m_b_yp += step)
+diff -aur dirac-1.0.2/libdirac_common/wavelet_utils.cpp dirac-1.0.2-modif/libdirac_common/wavelet_utils.cpp
+--- dirac-1.0.2/libdirac_common/wavelet_utils.cpp	2008-10-20 08:21:02.000000000 +0400
++++ dirac-1.0.2-modif/libdirac_common/wavelet_utils.cpp	2016-02-10 19:58:16.205006445 +0300
+@@ -198,7 +198,6 @@
+     const bool field_coding = encparams.FieldCoding();
+     const ChromaFormat cformat = pparams.CFormat();
+     const float cpd = encparams.CPD()*cpd_scale_factor;
+-    const PictureSort psort = pparams.PicSort();
+ 
+     int xlen, ylen, xl, yl, xp, yp;
+     float xfreq, yfreq;
+diff -aur dirac-1.0.2/libdirac_encoder/picture_compress.cpp dirac-1.0.2-modif/libdirac_encoder/picture_compress.cpp
+--- dirac-1.0.2/libdirac_encoder/picture_compress.cpp	2009-01-21 08:20:57.000000000 +0300
++++ dirac-1.0.2-modif/libdirac_encoder/picture_compress.cpp	2016-02-10 20:08:17.935731263 +0300
+@@ -413,14 +413,12 @@
+ 
+         const int depth=m_encparams.TransformDepth();
+ 
+-        PicArray* comp_data[3];
+         CoeffArray* coeff_data[3];
+         OneDArray<unsigned int>* est_bits[3];
+         float lambda[3];
+ 
+         // Construction and definition of objects
+         for (int c=0;c<3;++c){
+-            comp_data[c] = &my_picture.Data((CompSort) c );
+ 	    coeff_data[c] = &my_picture.WltData((CompSort) c );
+             est_bits[c] =  new OneDArray<unsigned int>( Range( 1, 3*depth+1 ) );
+         }// c
+diff -aur dirac-1.0.2/libdirac_encoder/quant_chooser.cpp dirac-1.0.2-modif/libdirac_encoder/quant_chooser.cpp
+--- dirac-1.0.2/libdirac_encoder/quant_chooser.cpp	2009-01-21 08:22:05.000000000 +0300
++++ dirac-1.0.2-modif/libdirac_encoder/quant_chooser.cpp	2016-02-10 20:15:43.792954708 +0300
+@@ -340,7 +340,7 @@
+     {
+         for (int i=cblock.Xstart(); i<cblock.Xend(); ++i )
+         {
+-            if ( (std::abs(m_coeff_data[j][i])<<2) >= u_threshold )
++            if ( (int(std::abs(m_coeff_data[j][i]))<<2) >= u_threshold )
+                 can_skip = false;
+         }   
+     }
+@@ -349,13 +349,13 @@
+ 
+ CoeffType QuantChooser::BlockAbsMax( const Subband& node )
+ {
+-    int val( 0 );
++    CoeffType val( 0 );
+ 
+     for (int j=node.Yp() ; j<node.Yp()+node.Yl(); ++j)
+     {
+         for (int i=node.Xp() ; i<node.Xp()+node.Xl(); ++i)
+         {    
+-            val = std::max( val , std::abs(m_coeff_data[j][i]) );
++            val = std::max( val , CoeffType(std::abs(m_coeff_data[j][i])) );
+         }// i
+     }// j
+ 
+diff -aur dirac-1.0.2/libdirac_encoder/seq_compress.cpp dirac-1.0.2-modif/libdirac_encoder/seq_compress.cpp
+--- dirac-1.0.2/libdirac_encoder/seq_compress.cpp	2008-10-29 05:42:06.000000000 +0300
++++ dirac-1.0.2-modif/libdirac_encoder/seq_compress.cpp	2016-02-10 20:16:24.108885403 +0300
+@@ -663,7 +663,6 @@
+ 
+ int FrameSequenceCompressor::CodedToDisplay( const int cnum )
+ {
+-    int div;
+ 
+     if (m_L1_sep>0)
+     {
+@@ -672,7 +671,6 @@
+             return 0;
+         else if ((cnum-1)% m_L1_sep==0)
+         {//we have L1 or subsequent I pictures
+-            div=(cnum-1)/m_L1_sep;
+             return cnum+m_L1_sep-1;
+         }
+         else//we have L2 pictures
+diff -aur dirac-1.0.2/libdirac_motionest/me_utils.cpp dirac-1.0.2-modif/libdirac_motionest/me_utils.cpp
+--- dirac-1.0.2/libdirac_motionest/me_utils.cpp	2008-10-21 08:55:46.000000000 +0400
++++ dirac-1.0.2-modif/libdirac_motionest/me_utils.cpp	2016-02-10 20:04:40.068175649 +0300
+@@ -684,10 +684,10 @@
+         // We're doing bounds checking because we'll fall off the edge of the reference otherwise.
+ 
+        // weights for doing linear interpolation, calculated from the remainder values
+-        const ValueType linear_wts[4] = {  (2 - rmdr.x) * (2 - rmdr.y),    //tl
+-                                           rmdr.x * (2 - rmdr.y),          //tr
+-                                           (2 - rmdr.x) * rmdr.y,          //bl
+-                                           rmdr.x * rmdr.y };              //br
++        const ValueType linear_wts[4] = {  ValueType((2 - rmdr.x) * (2 - rmdr.y)),    //tl
++                                           ValueType(rmdr.x * (2 - rmdr.y)),          //tr
++                                           ValueType((2 - rmdr.x) * rmdr.y),          //bl
++                                           ValueType(rmdr.x * rmdr.y) };              //br
+ 
+         const int refXlen( m_ref_data.LengthX() );
+         const int refYlen( m_ref_data.LengthY() );
+@@ -848,10 +848,10 @@
+         // We're doing bounds checking because we'll fall off the edge of the reference otherwise.
+ 
+        // weights for doing linear interpolation, calculated from the remainder values
+-        const ValueType linear_wts[4] = {  (2 - rmdr.x) * (2 - rmdr.y),    //tl
+-                                           rmdr.x * (2 - rmdr.y),          //tr
+-                                           (2 - rmdr.x) * rmdr.y,          //bl
+-                                           rmdr.x * rmdr.y };              //br
++        const ValueType linear_wts[4] = {  ValueType((2 - rmdr.x) * (2 - rmdr.y)),    //tl
++                                           ValueType(rmdr.x * (2 - rmdr.y)),          //tr
++                                           ValueType((2 - rmdr.x) * rmdr.y),          //bl
++                                           ValueType(rmdr.x * rmdr.y) };              //br
+ 
+         const int refXlen( m_ref_data.LengthX() );
+         const int refYlen( m_ref_data.LengthY() );
+@@ -908,10 +908,10 @@
+     const int pic_next( m_pic_data.LengthX() - dparams.Xl() );// go down a row and back up
+ 
+     //weights for doing linear interpolation, calculated from the remainder values
+-    const ValueType linear_wts[4] = {  (4 - rmdr.x) * (4 - rmdr.y),    //tl
+-                                       rmdr.x * (4 - rmdr.y),          //tr
+-                                       (4 - rmdr.x) * rmdr.y,          //bl
+-                                       rmdr.x * rmdr.y };              //br
++    const ValueType linear_wts[4] = {  ValueType((4 - rmdr.x) * (4 - rmdr.y)),    //tl
++                                       ValueType(rmdr.x * (4 - rmdr.y)),          //tr
++                                       ValueType((4 - rmdr.x) * rmdr.y),          //bl
++                                       ValueType(rmdr.x * rmdr.y) };              //br
+ 
+     bool bounds_check( false );
+ 
+@@ -1039,10 +1039,10 @@
+     const int pic_next( m_pic_data.LengthX() - dparams.Xl() );// go down a row and back up
+ 
+     //weights for doing linear interpolation, calculated from the remainder values
+-    const ValueType linear_wts[4] = {  (4 - rmdr.x) * (4 - rmdr.y),    //tl
+-                                       rmdr.x * (4 - rmdr.y),          //tr
+-                                       (4 - rmdr.x) * rmdr.y,          //bl
+-                                       rmdr.x * rmdr.y };              //br
++    const ValueType linear_wts[4] = {  ValueType((4 - rmdr.x) * (4 - rmdr.y)),    //tl
++                                       ValueType(rmdr.x * (4 - rmdr.y)),          //tr
++                                       ValueType((4 - rmdr.x) * rmdr.y),          //bl
++                                       ValueType(rmdr.x * rmdr.y) };              //br
+ 
+     bool bounds_check( false );
+ 
+@@ -1403,10 +1403,10 @@
+     }
+     else
+     {
+-        const ValueType linear_wts[4] = {  (2 - rmdr1.x) * (2 - rmdr1.y),    //tl
+-                                           rmdr1.x * (2 - rmdr1.y),          //tr
+-                                           (2 - rmdr1.x) * rmdr1.y,          //bl
+-                                           rmdr1.x * rmdr1.y };              //br
++        const ValueType linear_wts[4] = {  ValueType((2 - rmdr1.x) * (2 - rmdr1.y)),    //tl
++                                           ValueType(rmdr1.x * (2 - rmdr1.y)),          //tr
++                                           ValueType((2 - rmdr1.x) * rmdr1.y),          //bl
++                                           ValueType(rmdr1.x * rmdr1.y) };              //br
+ 
+         // We're doing bounds checking because we'll fall off the edge of the reference otherwise.
+         for( int y=dparams.Yl(), ry=ref_start1.y, by=BChk(ry,m_ref_data1.LengthY()), by1=BChk(ry+1,m_ref_data1.LengthY()); 
+@@ -1513,10 +1513,10 @@
+     }
+     else
+     {
+-        const ValueType linear_wts[4] = {  (2 - rmdr2.x) * (2 - rmdr2.y),    //tl
+-                                           rmdr2.x * (2 - rmdr2.y),          //tr
+-                                           (2 - rmdr2.x) * rmdr2.y,          //bl
+-                                           rmdr2.x * rmdr2.y };              //br
++        const ValueType linear_wts[4] = {  ValueType((2 - rmdr2.x) * (2 - rmdr2.y)),    //tl
++                                           ValueType(rmdr2.x * (2 - rmdr2.y)),          //tr
++                                           ValueType((2 - rmdr2.x) * rmdr2.y),          //bl
++                                           ValueType(rmdr2.x * rmdr2.y) };              //br
+ 
+         // We're doing bounds checking because we'll fall off the edge of the reference otherwise.
+         for( int y=dparams.Yl(), ry=ref_start2.y, by=BChk(ry,m_ref_data2.LengthY()),by1=BChk(ry+1,m_ref_data2.LengthY()); 
+@@ -1564,14 +1564,14 @@
+     const MVector rmdr2( mv2.x & 3 , mv2.y & 3 );
+ 
+     //weights for doing linear interpolation, calculated from the remainder values
+-    const ValueType linear_wts1[4] = {  (4 - rmdr1.x) * (4 - rmdr1.y),    //tl
+-                                       rmdr1.x * (4 - rmdr1.y),          //tr
+-                                       (4 - rmdr1.x) * rmdr1.y,          //bl
+-                                       rmdr1.x * rmdr1.y };              //br
+-    const ValueType linear_wts2[4] = {  (4 - rmdr2.x) * (4 - rmdr2.y),    //tl
+-                                       rmdr2.x * (4 - rmdr2.y),          //tr
+-                                       (4 - rmdr2.x) * rmdr2.y,          //bl
+-                                       rmdr2.x * rmdr2.y };              //br
++    const ValueType linear_wts1[4] = {  ValueType((4 - rmdr1.x) * (4 - rmdr1.y)),    //tl
++                                        ValueType(rmdr1.x * (4 - rmdr1.y)),          //tr
++                                        ValueType((4 - rmdr1.x) * rmdr1.y),          //bl
++                                        ValueType(rmdr1.x * rmdr1.y) };              //br
++    const ValueType linear_wts2[4] = {  ValueType((4 - rmdr2.x) * (4 - rmdr2.y)),    //tl
++                                        ValueType(rmdr2.x * (4 - rmdr2.y)),          //tr
++                                        ValueType((4 - rmdr2.x) * rmdr2.y),          //bl
++                                        ValueType(rmdr2.x * rmdr2.y) };              //br
+ 
+     //Where to start in the upconverted images
+     const ImageCoords ref_start1( ( dparams.Xp()<<1 ) + roundvec1.x ,( dparams.Yp()<<1 ) + roundvec1.y );
+diff -aur dirac-1.0.2/util/conversion/common/bitmap.cpp dirac-1.0.2-modif/util/conversion/common/bitmap.cpp
+--- dirac-1.0.2/util/conversion/common/bitmap.cpp	2004-06-30 20:44:52.000000000 +0400
++++ dirac-1.0.2-modif/util/conversion/common/bitmap.cpp	2016-02-10 20:19:58.355494888 +0300
+@@ -142,14 +142,9 @@
+         char signature[2];
+         int fileSize;
+         int dataOffset;
+-        int size;
+         int planes;
+         int bitCount;
+         int compression;
+-        int imageSize;
+-        int xPixelsPerM, yPixelsPerM;
+-        int coloursUsed;
+-        int coloursImportant;
+         //Define buffer to read bytes into.
+         const int bufferSize = 54;
+         char buffer[bufferSize];
+@@ -175,7 +170,7 @@
+         //Reposition input buffer to skip over extra header data if necessary
+         //Should check success of operation (see The C++ Stand Lib, Josuttis, p665)
+         if (dataOffset>54) inbuf.pubseekoff(dataOffset-54, std::ios_base::cur, std::ios_base::in);
+-        size = read4bytes(buffer+14);
++        (void)read4bytes(buffer+14); // size
+         w = read4bytes(buffer+18);
+         h = read4bytes(buffer+22);
+         if ( fileSize != (dataOffset + height()*lineBufferSize()) ) input.setstate(std::ios::failbit);
+@@ -185,11 +180,11 @@
+         if ( bitCount != 24 ) input.setstate(std::ios::failbit);
+         compression = read4bytes(buffer+30);
+         if ( compression != 0 ) input.setstate(std::ios::failbit);
+-        imageSize = read4bytes(buffer+34);
+-        xPixelsPerM = read4bytes(buffer+38);
+-        yPixelsPerM = read4bytes(buffer+42);
+-        coloursUsed = read4bytes(buffer+46);
+-        coloursImportant = read4bytes(buffer+50);
++        (void)read4bytes(buffer+34); // imageSize
++        (void)read4bytes(buffer+38); // xPixelsPerM
++        (void)read4bytes(buffer+42); // yPixelsPerM
++        (void)read4bytes(buffer+46); // coloursUsed
++        (void)read4bytes(buffer+50); // coloursImportant
+         return input; }
+ 
+ }  // end namespace dirac_vu
diff --git a/pkgs/development/libraries/fontconfig-ultimate/confd.nix b/pkgs/development/libraries/fontconfig-ultimate/confd.nix
index e522cead8220..160fef5f07e5 100644
--- a/pkgs/development/libraries/fontconfig-ultimate/confd.nix
+++ b/pkgs/development/libraries/fontconfig-ultimate/confd.nix
@@ -1,13 +1,18 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchFromGitHub }:
 
+let version = "2015-12-06"; in
 stdenv.mkDerivation {
-  name = "fontconfig-ultimate-20141123";
-  src = fetchurl {
-    url = "https://github.com/bohoomil/fontconfig-ultimate/archive/2014-11-23.tar.gz";
-    sha256 = "0czfm3hxc41x5mscwrba7p1vhm2w62j1qg7z8kfdrf21z8fvgznw";
+  name = "fontconfig-ultimate-${version}";
+
+  src = fetchFromGitHub {
+    sha256 = "02a811szxkq4q088nxfpdzp6rv0brvgkdhwigk09qffygxd776g6";
+    rev = version;
+    repo = "fontconfig-ultimate";
+    owner = "bohoomil";
   };
 
   phases = "$prePhases unpackPhase installPhase $postPhases";
+
   installPhase = ''
     mkdir -p $out/etc/fonts/conf.d
     cp conf.d.infinality/*.conf $out/etc/fonts/conf.d
@@ -22,8 +27,8 @@ stdenv.mkDerivation {
     rm $out/etc/fonts/conf.d/83-*.conf
 
     # Inclusion of local and user configs handled by global configuration
-    rm $out/etc/fonts/conf.d/97-local.conf
-    rm $out/etc/fonts/conf.d/98-user.conf
+    rm $out/etc/fonts/conf.d/29-local.conf
+    rm $out/etc/fonts/conf.d/28-user.conf
 
     cp fontconfig_patches/fonts-settings/*.conf $out/etc/fonts/conf.d
 
diff --git a/pkgs/development/libraries/fontconfig/make-fonts-cache.nix b/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
new file mode 100644
index 000000000000..1321948c3c81
--- /dev/null
+++ b/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
@@ -0,0 +1,27 @@
+{ runCommand, lib, writeText, fontconfig, fontbhttf, fontDirectories }:
+
+runCommand "fc-cache"
+  rec {
+    buildInputs = [ fontconfig ];
+    passAsFile = [ "fontDirs" ];
+    fontDirs = ''
+      <!-- Font directories -->
+      ${lib.concatStringsSep "\n" (map (font: "<dir>${font}</dir>") fontDirectories)}
+    '';
+  }
+  ''
+    export FONTCONFIG_FILE=$(pwd)/fonts.conf
+
+    cat > fonts.conf << EOF
+    <?xml version='1.0'?>
+    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+    <fontconfig>
+      <include>${fontconfig}/etc/fonts/fonts.conf</include>
+      <cachedir>$out</cachedir>
+    EOF
+    cat "$fontDirsPath" >> fonts.conf
+    echo "</fontconfig>" >> fonts.conf
+
+    mkdir -p $out
+    fc-cache -sv
+  ''
diff --git a/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl b/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
index 1b79834c894e..b59fcd0187b8 100644
--- a/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
+++ b/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
@@ -23,16 +23,16 @@
     <fontconfig>
       <xsl:apply-templates select="child::node()[name() != 'dir' and name() != 'cachedir' and name() != 'include']" />
 
-      <!-- fontconfig distribution conf.d -->
-      <include><xsl:value-of select="$fontconfig" />/etc/fonts/conf.d</include>
-      <!-- versioned system-wide config -->
-      <include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include>
-
       <!-- the first cachedir will be used to store the cache -->
       <cachedir prefix="xdg">fontconfig</cachedir>
       <!-- /var/cache/fontconfig is useful for non-nixos systems -->
       <cachedir>/var/cache/fontconfig</cachedir>
 
+      <!-- fontconfig distribution conf.d -->
+      <include><xsl:value-of select="$fontconfig" />/etc/fonts/conf.d</include>
+      <!-- versioned system-wide config -->
+      <include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include>
+
       <dir prefix="xdg">fonts</dir>
       <xsl:for-each select="str:tokenize($fontDirectories)">
         <dir><xsl:value-of select="." /></dir>
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index e9e393075b3e..61d8cb582a01 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -1,16 +1,18 @@
 { stdenv, fetchurl, fetchpatch, pkgconfig, which, zlib, bzip2, libpng, gnumake
+, glib /* passthru only */
+
   # FreeType supports sub-pixel rendering.  This is patented by
   # Microsoft, so it is disabled by default.  This option allows it to
   # be enabled.  See http://www.freetype.org/patents.html.
-, glib/*passthru only*/
 , useEncumberedCode ? true
 }:
 
 let
-  version = "2.5.4";
+  version = "2.6.2";
 
-  fetch_bohoomil = name: sha256: fetchpatch {
-    url = https://raw.githubusercontent.com/bohoomil/fontconfig-ultimate/e4c99bcf5ac9595e2c64393c0661377685c0ad24/01_freetype2-iu/ + name;
+  # Don't use fetchpatch. It mangles them. That's an hour I'll never get back.
+  fetchbohoomil = name: sha256: fetchurl {
+    url = https://raw.githubusercontent.com/bohoomil/fontconfig-ultimate/254b688f96d4a37f78fb594303a43160fc15c7cd/freetype/ + name;
     inherit sha256;
   };
 in
@@ -20,15 +22,17 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/freetype/${name}.tar.bz2";
-    sha256 = "1fxsbk4lp6ymifldzrb86g3x6mz771jmrzphkz92mcrkddk2qkiv";
+    sha256 = "14mqrfgl18q2by1yzv6vcxi97zjy4kppcgsqf312mhfwgkpvvxms";
   };
 
-  patches = [ ./enable-validation.patch ] # from Gentoo, bohoomil has the same patch as well
-    ++ [ ./fix-pcf.patch ]
+  patches = []
     ++ optionals useEncumberedCode [
-      (fetch_bohoomil "02-ftsmooth-2.5.4.patch" "11w4wb7gwgpijc788mpkxj92d7rfdwrdv7jzrpxwv5w5cgpx9iw9")
-      (fetch_bohoomil "03-upstream-2014.12.07.patch" "0gq7y63mg3gc5z69nfkv2kl7xad0bjzsvnl6j1j9q79jjbvaqdq0")
-      (fetch_bohoomil "04-infinality-2.5.4-2014.12.07.patch" "1gph7z9s2221gy5dxn01v3lga0m9yib8yqsaqj5km74bqx1vlalh")
+      (fetchbohoomil "01-freetype-2.6.2-enable-valid.patch"
+        "1szq0zha7n41f4pq179wgfkam034mp2xn0xc36sdl5sjp9s9hv08")
+      (fetchbohoomil "02-upstream-2015.12.05.patch"
+        "0781r9n35kpn8db8nma0l47cpkzh0hbp84ziii5sald90dnrqdj4")
+      (fetchbohoomil "03-infinality-2.6.2-2015.12.05.patch"
+        "0wcjf9hiymplgqm3szla633i417pb57vpzzs2dyl1dnmcxgqa2y8")
     ];
 
   propagatedBuildInputs = [ zlib bzip2 libpng ]; # needed when linking against freetype
@@ -46,10 +50,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  # compat hacks
-  postInstall = glib.flattenInclude + ''
-    ln -s . "$out"/include/freetype
-  '';
+  postInstall = glib.flattenInclude;
 
   crossAttrs = {
     # Somehow it calls the unwrapped gcc, "i686-pc-linux-gnu-gcc", instead
diff --git a/pkgs/development/libraries/freetype/enable-validation.patch b/pkgs/development/libraries/freetype/enable-validation.patch
deleted file mode 100644
index 44f3bf6e1c94..000000000000
--- a/pkgs/development/libraries/freetype/enable-validation.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Enables gxvalid and otvalid modules for use with ftvalid.
-
---- freetype-2.2.1/modules.cfg.orig	2006-07-07 21:01:09.000000000 -0400
-+++ freetype-2.2.1/modules.cfg	2006-07-07 21:01:54.000000000 -0400
-@@ -110,7 +110,7 @@
- AUX_MODULES += cache
- 
- # TrueType GX/AAT table validation.  Needs ftgxval.c below.
--# AUX_MODULES += gxvalid
-+AUX_MODULES += gxvalid
- 
- # Support for streams compressed with gzip (files with suffix .gz).
- #
-@@ -124,7 +124,7 @@
- 
- # OpenType table validation.  Needs ftotval.c below.
- #
--# AUX_MODULES += otvalid
-+AUX_MODULES += otvalid
- 
- # Auxiliary PostScript driver component to share common code.
- #
diff --git a/pkgs/development/libraries/freetype/fix-pcf.patch b/pkgs/development/libraries/freetype/fix-pcf.patch
deleted file mode 100644
index bb301bcd9caa..000000000000
--- a/pkgs/development/libraries/freetype/fix-pcf.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-Upstream fixes for pcf fonts.
-
-http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=74af85c4b62b35e55b0ce9dec55ee10cbc4962a2
-http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=06842c7b49c21f13c0ab61201daab6ff5a358fcc
-
-diff --git a/src/pcf/pcfread.c b/src/pcf/pcfread.c
-index 998cbed..e3caf82 100644
---- a/src/pcf/pcfread.c
-+++ b/src/pcf/pcfread.c
-@@ -2,7 +2,7 @@
- 
-     FreeType font driver for pcf fonts
- 
--  Copyright 2000-2010, 2012, 2013 by
-+  Copyright 2000-2010, 2012-2014 by
-   Francesco Zappa Nardelli
- 
- Permission is hereby granted, free of charge, to any person obtaining a copy
-@@ -78,7 +78,7 @@ THE SOFTWARE.
-     FT_FRAME_START( 16  ),
-       FT_FRAME_ULONG_LE( type ),
-       FT_FRAME_ULONG_LE( format ),
--      FT_FRAME_ULONG_LE( size ),
-+      FT_FRAME_ULONG_LE( size ),   /* rounded up to a multiple of 4 */
-       FT_FRAME_ULONG_LE( offset ),
-     FT_FRAME_END
-   };
-@@ -95,9 +95,11 @@ THE SOFTWARE.
-     FT_Memory  memory = FT_FACE( face )->memory;
-     FT_UInt    n;
- 
-+    FT_ULong   size;
- 
--    if ( FT_STREAM_SEEK ( 0 )                          ||
--         FT_STREAM_READ_FIELDS ( pcf_toc_header, toc ) )
-+
-+    if ( FT_STREAM_SEEK( 0 )                          ||
-+         FT_STREAM_READ_FIELDS( pcf_toc_header, toc ) )
-       return FT_THROW( Cannot_Open_Resource );
- 
-     if ( toc->version != PCF_FILE_VERSION                 ||
-@@ -154,14 +156,35 @@ THE SOFTWARE.
-         break;
-     }
- 
--    /* we now check whether the `size' and `offset' values are reasonable: */
--    /* `offset' + `size' must not exceed the stream size                   */
-+    /*
-+     *  We now check whether the `size' and `offset' values are reasonable:
-+     *  `offset' + `size' must not exceed the stream size.
-+     *
-+     *  Note, however, that X11's `pcfWriteFont' routine (used by the
-+     *  `bdftopcf' program to create PDF font files) has two special
-+     *  features.
-+     *
-+     *  - It always assigns the accelerator table a size of 100 bytes in the
-+     *    TOC, regardless of its real size, which can vary between 34 and 72
-+     *    bytes.
-+     *
-+     *  - Due to the way the routine is designed, it ships out the last font
-+     *    table with its real size, ignoring the TOC's size value.  Since
-+     *    the TOC size values are always rounded up to a multiple of 4, the
-+     *    difference can be up to three bytes for all tables except the
-+     *    accelerator table, for which the difference can be as large as 66
-+     *    bytes.
-+     *
-+     */
-+
-     tables = face->toc.tables;
--    for ( n = 0; n < toc->count; n++ )
-+    size   = stream->size;
-+
-+    for ( n = 0; n < toc->count - 1; n++ )
-     {
-       /* we need two checks to avoid overflow */
--      if ( ( tables->size   > stream->size                ) ||
--           ( tables->offset > stream->size - tables->size ) )
-+      if ( ( tables->size   > size                ) ||
-+           ( tables->offset > size - tables->size ) )
-       {
-         error = FT_THROW( Invalid_Table );
-         goto Exit;
-@@ -169,6 +192,15 @@ THE SOFTWARE.
-       tables++;
-     }
- 
-+    /* no check of `tables->size' for last table element ... */
-+    if ( ( tables->offset > size ) )
-+    {
-+      error = FT_THROW( Invalid_Table );
-+      goto Exit;
-+    }
-+    /* ... instead, we adjust `tables->size' to the real value */
-+    tables->size = size - tables->offset;
-+
- #ifdef FT_DEBUG_LEVEL_TRACE
- 
-     {
-@@ -733,8 +765,8 @@ THE SOFTWARE.
- 
-     FT_TRACE4(( "  number of bitmaps: %d\n", nbitmaps ));
- 
--    /* XXX: PCF_Face->nmetrics is singed FT_Long, see pcf.h */
--    if ( face->nmetrics < 0 || nbitmaps != ( FT_ULong )face->nmetrics )
-+    /* XXX: PCF_Face->nmetrics is signed FT_Long, see pcf.h */
-+    if ( face->nmetrics < 0 || nbitmaps != (FT_ULong)face->nmetrics )
-       return FT_THROW( Invalid_File_Format );
- 
-     if ( FT_NEW_ARRAY( offsets, nbitmaps ) )
-diff --git a/src/pcf/pcfread.c b/src/pcf/pcfread.c
-index e3caf82..a29a9e3 100644
---- a/src/pcf/pcfread.c
-+++ b/src/pcf/pcfread.c
-@@ -192,14 +192,15 @@ THE SOFTWARE.
-       tables++;
-     }
- 
--    /* no check of `tables->size' for last table element ... */
-+    /* only check `tables->offset' for last table element ... */
-     if ( ( tables->offset > size ) )
-     {
-       error = FT_THROW( Invalid_Table );
-       goto Exit;
-     }
--    /* ... instead, we adjust `tables->size' to the real value */
--    tables->size = size - tables->offset;
-+    /* ... and adjust `tables->size' to the real value if necessary */
-+    if ( tables->size > size - tables->offset )
-+      tables->size = size - tables->offset;
- 
- #ifdef FT_DEBUG_LEVEL_TRACE
- 
diff --git a/pkgs/development/libraries/gettext/absolute-paths.diff b/pkgs/development/libraries/gettext/absolute-paths.diff
new file mode 100644
index 000000000000..6d5cf1c1ba24
--- /dev/null
+++ b/pkgs/development/libraries/gettext/absolute-paths.diff
@@ -0,0 +1,21 @@
+diff --git a/gettext-runtime/src/gettext.sh.in b/gettext-runtime/src/gettext.sh.in
+index 1dfa3bb..d6ef8a8 100644
+--- a/gettext-runtime/src/gettext.sh.in
++++ b/gettext-runtime/src/gettext.sh.in
+@@ -86,14 +86,14 @@ fi
+ # looks up the translation of MSGID and substitutes shell variables in the
+ # result.
+ eval_gettext () {
+-  gettext "$1" | (export PATH `envsubst --variables "$1"`; envsubst "$1")
++  @out@/bin/gettext "$1" | (export PATH `envsubst --variables "$1"`; envsubst "$1")
+ }
+ 
+ # eval_ngettext MSGID MSGID-PLURAL COUNT
+ # looks up the translation of MSGID / MSGID-PLURAL for COUNT and substitutes
+ # shell variables in the result.
+ eval_ngettext () {
+-  ngettext "$1" "$2" "$3" | (export PATH `envsubst --variables "$1 $2"`; envsubst "$1 $2")
++  @out@/bin/ngettext "$1" "$2" "$3" | (export PATH `envsubst --variables "$1 $2"`; envsubst "$1 $2")
+ }
+ 
+ # Note: This use of envsubst is much safer than using the shell built-in 'eval'
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index 566263c15ed0..ff7e9bc5bfd0 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -7,6 +7,7 @@ stdenv.mkDerivation (rec {
     url = "mirror://gnu/gettext/${name}.tar.gz";
     sha256 = "0pb9vp4ifymvdmc31ks3xxcnfqgzj8shll39czmk8c1splclqjzd";
   };
+  patches = [ ./absolute-paths.diff ];
 
   outputs = [ "out" "doc" ];
 
@@ -30,7 +31,8 @@ stdenv.mkDerivation (rec {
         "gt_cv_func_CFLocaleCopyCurrent=no"
       ]);
 
-  patchPhase = ''
+  postPatch = ''
+   substituteAllInPlace gettext-runtime/src/gettext.sh.in
    substituteInPlace gettext-tools/projects/KDE/trigger --replace "/bin/pwd" pwd
    substituteInPlace gettext-tools/projects/GNOME/trigger --replace "/bin/pwd" pwd
    substituteInPlace gettext-tools/src/project-id --replace "/bin/pwd" pwd
diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index 2c13ac59146f..7c7f8602bab4 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation ({
       ./security-bdf1ff05.patch
       ./cve-2014-8121.patch
       ./cve-2015-1781.patch
+      ./cve-2015-7547.patch
 
       ./glibc-locale-incompatibility.patch
     ];
diff --git a/pkgs/development/libraries/glibc/cve-2015-7547.patch b/pkgs/development/libraries/glibc/cve-2015-7547.patch
new file mode 100644
index 000000000000..9bf0bcc388cb
--- /dev/null
+++ b/pkgs/development/libraries/glibc/cve-2015-7547.patch
@@ -0,0 +1,573 @@
+
+CVE-2015-7547
+
+2016-02-15  Carlos O'Donell  <carlos@redhat.com>
+
+	[BZ #18665]
+	* resolv/nss_dns/dns-host.c (gaih_getanswer_slice): Always set
+	*herrno_p.
+	(gaih_getanswer): Document functional behviour. Return tryagain
+	if any result is tryagain.
+	* resolv/res_query.c (__libc_res_nsearch): Set buffer size to zero
+	when freed.
+	* resolv/res_send.c: Add copyright text.
+	(__libc_res_nsend): Document that MAXPACKET is expected.
+	(send_vc): Document. Remove buffer reuse.
+	(send_dg): Document. Remove buffer reuse. Set *thisanssizp to set the
+	size of the buffer. Add Dprint for truncated UDP buffer.
+
+diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
+index a255d5e..47cfe27 100644
+--- a/resolv/nss_dns/dns-host.c
++++ b/resolv/nss_dns/dns-host.c
+@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
+   int h_namelen = 0;
+ 
+   if (ancount == 0)
+-    return NSS_STATUS_NOTFOUND;
++    {
++      *h_errnop = HOST_NOT_FOUND;
++      return NSS_STATUS_NOTFOUND;
++    }
+ 
+   while (ancount-- > 0 && cp < end_of_message && had_error == 0)
+     {
+@@ -1208,7 +1211,14 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
+   /* Special case here: if the resolver sent a result but it only
+      contains a CNAME while we are looking for a T_A or T_AAAA record,
+      we fail with NOTFOUND instead of TRYAGAIN.  */
+-  return canon == NULL ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
++  if (canon != NULL)
++    {
++      *h_errnop = HOST_NOT_FOUND;
++      return NSS_STATUS_NOTFOUND;
++    }
++
++  *h_errnop = NETDB_INTERNAL;
++  return NSS_STATUS_TRYAGAIN;
+ }
+ 
+ 
+@@ -1222,11 +1232,101 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2,
+ 
+   enum nss_status status = NSS_STATUS_NOTFOUND;
+ 
++  /* Combining the NSS status of two distinct queries requires some
++     compromise and attention to symmetry (A or AAAA queries can be
++     returned in any order).  What follows is a breakdown of how this
++     code is expected to work and why. We discuss only SUCCESS,
++     TRYAGAIN, NOTFOUND and UNAVAIL, since they are the only returns
++     that apply (though RETURN and MERGE exist).  We make a distinction
++     between TRYAGAIN (recoverable) and TRYAGAIN' (not-recoverable).
++     A recoverable TRYAGAIN is almost always due to buffer size issues
++     and returns ERANGE in errno and the caller is expected to retry
++     with a larger buffer.
++
++     Lastly, you may be tempted to make significant changes to the
++     conditions in this code to bring about symmetry between responses.
++     Please don't change anything without due consideration for
++     expected application behaviour.  Some of the synthesized responses
++     aren't very well thought out and sometimes appear to imply that
++     IPv4 responses are always answer 1, and IPv6 responses are always
++     answer 2, but that's not true (see the implemetnation of send_dg
++     and send_vc to see response can arrive in any order, particlarly
++     for UDP). However, we expect it holds roughly enough of the time
++     that this code works, but certainly needs to be fixed to make this
++     a more robust implementation.
++
++     ----------------------------------------------
++     | Answer 1 Status /   | Synthesized | Reason |
++     | Answer 2 Status     | Status      |        |
++     |--------------------------------------------|
++     | SUCCESS/SUCCESS     | SUCCESS     | [1]    |
++     | SUCCESS/TRYAGAIN    | TRYAGAIN    | [5]    |
++     | SUCCESS/TRYAGAIN'   | SUCCESS     | [1]    |
++     | SUCCESS/NOTFOUND    | SUCCESS     | [1]    |
++     | SUCCESS/UNAVAIL     | SUCCESS     | [1]    |
++     | TRYAGAIN/SUCCESS    | TRYAGAIN    | [2]    |
++     | TRYAGAIN/TRYAGAIN   | TRYAGAIN    | [2]    |
++     | TRYAGAIN/TRYAGAIN'  | TRYAGAIN    | [2]    |
++     | TRYAGAIN/NOTFOUND   | TRYAGAIN    | [2]    |
++     | TRYAGAIN/UNAVAIL    | TRYAGAIN    | [2]    |
++     | TRYAGAIN'/SUCCESS   | SUCCESS     | [3]    |
++     | TRYAGAIN'/TRYAGAIN  | TRYAGAIN    | [3]    |
++     | TRYAGAIN'/TRYAGAIN' | TRYAGAIN'   | [3]    |
++     | TRYAGAIN'/NOTFOUND  | TRYAGAIN'   | [3]    |
++     | TRYAGAIN'/UNAVAIL   | UNAVAIL     | [3]    |
++     | NOTFOUND/SUCCESS    | SUCCESS     | [3]    |
++     | NOTFOUND/TRYAGAIN   | TRYAGAIN    | [3]    |
++     | NOTFOUND/TRYAGAIN'  | TRYAGAIN'   | [3]    |
++     | NOTFOUND/NOTFOUND   | NOTFOUND    | [3]    |
++     | NOTFOUND/UNAVAIL    | UNAVAIL     | [3]    |
++     | UNAVAIL/SUCCESS     | UNAVAIL     | [4]    |
++     | UNAVAIL/TRYAGAIN    | UNAVAIL     | [4]    |
++     | UNAVAIL/TRYAGAIN'   | UNAVAIL     | [4]    |
++     | UNAVAIL/NOTFOUND    | UNAVAIL     | [4]    |
++     | UNAVAIL/UNAVAIL     | UNAVAIL     | [4]    |
++     ----------------------------------------------
++
++     [1] If the first response is a success we return success.
++         This ignores the state of the second answer and in fact
++         incorrectly sets errno and h_errno to that of the second
++	 answer.  However because the response is a success we ignore
++	 *errnop and *h_errnop (though that means you touched errno on
++         success).  We are being conservative here and returning the
++         likely IPv4 response in the first answer as a success.
++
++     [2] If the first response is a recoverable TRYAGAIN we return
++	 that instead of looking at the second response.  The
++	 expectation here is that we have failed to get an IPv4 response
++	 and should retry both queries.
++
++     [3] If the first response was not a SUCCESS and the second
++	 response is not NOTFOUND (had a SUCCESS, need to TRYAGAIN,
++	 or failed entirely e.g. TRYAGAIN' and UNAVAIL) then use the
++	 result from the second response, otherwise the first responses
++	 status is used.  Again we have some odd side-effects when the
++	 second response is NOTFOUND because we overwrite *errnop and
++	 *h_errnop that means that a first answer of NOTFOUND might see
++	 its *errnop and *h_errnop values altered.  Whether it matters
++	 in practice that a first response NOTFOUND has the wrong
++	 *errnop and *h_errnop is undecided.
++
++     [4] If the first response is UNAVAIL we return that instead of
++	 looking at the second response.  The expectation here is that
++	 it will have failed similarly e.g. configuration failure.
++
++     [5] Testing this code is complicated by the fact that truncated
++	 second response buffers might be returned as SUCCESS if the
++	 first answer is a SUCCESS.  To fix this we add symmetry to
++	 TRYAGAIN with the second response.  If the second response
++	 is a recoverable error we now return TRYAGIN even if the first
++	 response was SUCCESS.  */
++
+   if (anslen1 > 0)
+     status = gaih_getanswer_slice(answer1, anslen1, qname,
+ 				  &pat, &buffer, &buflen,
+ 				  errnop, h_errnop, ttlp,
+ 				  &first);
++
+   if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND
+        || (status == NSS_STATUS_TRYAGAIN
+ 	   /* We want to look at the second answer in case of an
+@@ -1242,8 +1342,15 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2,
+ 						     &pat, &buffer, &buflen,
+ 						     errnop, h_errnop, ttlp,
+ 						     &first);
++      /* Use the second response status in some cases.  */
+       if (status != NSS_STATUS_SUCCESS && status2 != NSS_STATUS_NOTFOUND)
+ 	status = status2;
++      /* Do not return a truncated second response (unless it was
++         unavoidable e.g. unrecoverable TRYAGAIN).  */
++      if (status == NSS_STATUS_SUCCESS
++	  && (status2 == NSS_STATUS_TRYAGAIN
++	      && *errnop == ERANGE && *h_errnop != NO_RECOVERY))
++	status = NSS_STATUS_TRYAGAIN;
+     }
+ 
+   return status;
+diff --git a/resolv/res_query.c b/resolv/res_query.c
+index 4a9b3b3..95470a9 100644
+--- a/resolv/res_query.c
++++ b/resolv/res_query.c
+@@ -396,6 +396,7 @@ __libc_res_nsearch(res_state statp,
+ 		  {
+ 		    free (*answerp2);
+ 		    *answerp2 = NULL;
++		    *nanswerp2 = 0;
+ 		    *answerp2_malloced = 0;
+ 		  }
+ 	}
+@@ -447,6 +448,7 @@ __libc_res_nsearch(res_state statp,
+ 			  {
+ 			    free (*answerp2);
+ 			    *answerp2 = NULL;
++			    *nanswerp2 = 0;
+ 			    *answerp2_malloced = 0;
+ 			  }
+ 
+@@ -521,6 +523,7 @@ __libc_res_nsearch(res_state statp,
+ 	  {
+ 	    free (*answerp2);
+ 	    *answerp2 = NULL;
++	    *nanswerp2 = 0;
+ 	    *answerp2_malloced = 0;
+ 	  }
+ 	if (saved_herrno != -1)
+diff --git a/resolv/res_send.c b/resolv/res_send.c
+index a968b95..21843f1 100644
+--- a/resolv/res_send.c
++++ b/resolv/res_send.c
+@@ -1,3 +1,20 @@
++/* Copyright (C) 2016 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
+ /*
+  * Copyright (c) 1985, 1989, 1993
+  *    The Regents of the University of California.  All rights reserved.
+@@ -355,6 +372,8 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen,
+ #ifdef USE_HOOKS
+ 	if (__glibc_unlikely (statp->qhook || statp->rhook))       {
+ 		if (anssiz < MAXPACKET && ansp) {
++			/* Always allocate MAXPACKET, callers expect
++			   this specific size.  */
+ 			u_char *buf = malloc (MAXPACKET);
+ 			if (buf == NULL)
+ 				return (-1);
+@@ -630,6 +649,77 @@ get_nsaddr (res_state statp, int n)
+     return (struct sockaddr *) (void *) &statp->nsaddr_list[n];
+ }
+ 
++/* The send_vc function is responsible for sending a DNS query over TCP
++   to the nameserver numbered NS from the res_state STATP i.e.
++   EXT(statp).nssocks[ns].  The function supports sending both IPv4 and
++   IPv6 queries at the same serially on the same socket.
++
++   Please note that for TCP there is no way to disable sending both
++   queries, unlike UDP, which honours RES_SNGLKUP and RES_SNGLKUPREOP
++   and sends the queries serially and waits for the result after each
++   sent query.  This implemetnation should be corrected to honour these
++   options.
++
++   Please also note that for TCP we send both queries over the same
++   socket one after another.  This technically violates best practice
++   since the server is allowed to read the first query, respond, and
++   then close the socket (to service another client).  If the server
++   does this, then the remaining second query in the socket data buffer
++   will cause the server to send the client an RST which will arrive
++   asynchronously and the client's OS will likely tear down the socket
++   receive buffer resulting in a potentially short read and lost
++   response data.  This will force the client to retry the query again,
++   and this process may repeat until all servers and connection resets
++   are exhausted and then the query will fail.  It's not known if this
++   happens with any frequency in real DNS server implementations.  This
++   implementation should be corrected to use two sockets by default for
++   parallel queries.
++
++   The query stored in BUF of BUFLEN length is sent first followed by
++   the query stored in BUF2 of BUFLEN2 length.  Queries are sent
++   serially on the same socket.
++
++   Answers to the query are stored firstly in *ANSP up to a max of
++   *ANSSIZP bytes.  If more than *ANSSIZP bytes are needed and ANSCP
++   is non-NULL (to indicate that modifying the answer buffer is allowed)
++   then malloc is used to allocate a new response buffer and ANSCP and
++   ANSP will both point to the new buffer.  If more than *ANSSIZP bytes
++   are needed but ANSCP is NULL, then as much of the response as
++   possible is read into the buffer, but the results will be truncated.
++   When truncation happens because of a small answer buffer the DNS
++   packets header feild TC will bet set to 1, indicating a truncated
++   message and the rest of the socket data will be read and discarded.
++
++   Answers to the query are stored secondly in *ANSP2 up to a max of
++   *ANSSIZP2 bytes, with the actual response length stored in
++   *RESPLEN2.  If more than *ANSSIZP bytes are needed and ANSP2
++   is non-NULL (required for a second query) then malloc is used to
++   allocate a new response buffer, *ANSSIZP2 is set to the new buffer
++   size and *ANSP2_MALLOCED is set to 1.
++
++   The ANSP2_MALLOCED argument will eventually be removed as the
++   change in buffer pointer can be used to detect the buffer has
++   changed and that the caller should use free on the new buffer.
++
++   Note that the answers may arrive in any order from the server and
++   therefore the first and second answer buffers may not correspond to
++   the first and second queries.
++
++   It is not supported to call this function with a non-NULL ANSP2
++   but a NULL ANSCP.  Put another way, you can call send_vc with a
++   single unmodifiable buffer or two modifiable buffers, but no other
++   combination is supported.
++
++   It is the caller's responsibility to free the malloc allocated
++   buffers by detecting that the pointers have changed from their
++   original values i.e. *ANSCP or *ANSP2 has changed.
++
++   If errors are encountered then *TERRNO is set to an appropriate
++   errno value and a zero result is returned for a recoverable error,
++   and a less-than zero result is returned for a non-recoverable error.
++
++   If no errors are encountered then *TERRNO is left unmodified and
++   a the length of the first response in bytes is returned.  */
+ static int
+ send_vc(res_state statp,
+ 	const u_char *buf, int buflen, const u_char *buf2, int buflen2,
+@@ -639,11 +729,7 @@ send_vc(res_state statp,
+ {
+ 	const HEADER *hp = (HEADER *) buf;
+ 	const HEADER *hp2 = (HEADER *) buf2;
+-	u_char *ans = *ansp;
+-	int orig_anssizp = *anssizp;
+-	// XXX REMOVE
+-	// int anssiz = *anssizp;
+-	HEADER *anhp = (HEADER *) ans;
++	HEADER *anhp = (HEADER *) *ansp;
+	struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns];
+ 	int truncating, connreset, n;
+ 	/* On some architectures compiler might emit a warning indicating
+@@ -731,6 +817,8 @@ send_vc(res_state statp,
+ 	 * Receive length & response
+ 	 */
+ 	int recvresp1 = 0;
++	/* Skip the second response if there is no second query.
++           To do that we mark the second response as received.  */
+ 	int recvresp2 = buf2 == NULL;
+ 	uint16_t rlen16;
+  read_len:
+@@ -767,40 +855,14 @@ send_vc(res_state statp,
+ 	u_char **thisansp;
+ 	int *thisresplenp;
+ 	if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) {
++		/* We have not received any responses
++		   yet or we only have one response to
++		   receive.  */
+ 		thisanssizp = anssizp;
+ 		thisansp = anscp ?: ansp;
+ 		assert (anscp != NULL || ansp2 == NULL);
+ 		thisresplenp = &resplen;
+ 	} else {
+-		if (*anssizp != MAXPACKET) {
+-			/* No buffer allocated for the first
+-			   reply.  We can try to use the rest
+-			   of the user-provided buffer.  */
+-#if __GNUC_PREREQ (4, 7)
+-			DIAG_PUSH_NEEDS_COMMENT;
+-			DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+-#endif
+-#if _STRING_ARCH_unaligned
+-			*anssizp2 = orig_anssizp - resplen;
+-			*ansp2 = *ansp + resplen;
+-#else
+-			int aligned_resplen
+-			  = ((resplen + __alignof__ (HEADER) - 1)
+-			     & ~(__alignof__ (HEADER) - 1));
+-			*anssizp2 = orig_anssizp - aligned_resplen;
+-			*ansp2 = *ansp + aligned_resplen;
+-#endif
+-#if __GNUC_PREREQ (4, 7)
+-			DIAG_POP_NEEDS_COMMENT;
+-#endif
+-		} else {
+-			/* The first reply did not fit into the
+-			   user-provided buffer.  Maybe the second
+-			   answer will.  */
+-			*anssizp2 = orig_anssizp;
+-			*ansp2 = *ansp;
+-		}
+-
+ 		thisanssizp = anssizp2;
+ 		thisansp = ansp2;
+ 		thisresplenp = resplen2;
+@@ -804,10 +870,14 @@ send_vc(res_state statp,
+ 	anhp = (HEADER *) *thisansp;
+ 
+ 	*thisresplenp = rlen;
+-	if (rlen > *thisanssizp) {
+-		/* Yes, we test ANSCP here.  If we have two buffers
+-		   both will be allocatable.  */
+-		if (__glibc_likely (anscp != NULL))       {
++	/* Is the answer buffer too small?  */
++	if (*thisanssizp < rlen) {
++		/* If the current buffer is not the the static
++		   user-supplied buffer then we can reallocate
++		   it.  */
++		if (thisansp != NULL && thisansp != ansp) {
++			/* Always allocate MAXPACKET, callers expect
++			   this specific size.  */
+ 			u_char *newp = malloc (MAXPACKET);
+ 			if (newp == NULL) {
+ 				*terrno = ENOMEM;
+@@ -819,6 +889,9 @@ send_vc(res_state statp,
+ 			if (thisansp == ansp2)
+ 			  *ansp2_malloced = 1;
+ 			anhp = (HEADER *) newp;
++			/* A uint16_t can't be larger than MAXPACKET
++			   thus it's safe to allocate MAXPACKET but
++			   read RLEN bytes instead.  */
+ 			len = rlen;
+ 		} else {
+ 			Dprint(statp->options & RES_DEBUG,
+@@ -948,6 +1021,66 @@ reopen (res_state statp, int *terrno, int ns)
+ 	return 1;
+ }
+ 
++/* The send_dg function is responsible for sending a DNS query over UDP
++   to the nameserver numbered NS from the res_state STATP i.e.
++   EXT(statp).nssocks[ns].  The function supports IPv4 and IPv6 queries
++   along with the ability to send the query in parallel for both stacks
++   (default) or serially (RES_SINGLKUP).  It also supports serial lookup
++   with a close and reopen of the socket used to talk to the server
++   (RES_SNGLKUPREOP) to work around broken name servers.
++
++   The query stored in BUF of BUFLEN length is sent first followed by
++   the query stored in BUF2 of BUFLEN2 length.  Queries are sent
++   in parallel (default) or serially (RES_SINGLKUP or RES_SNGLKUPREOP).
++
++   Answers to the query are stored firstly in *ANSP up to a max of
++   *ANSSIZP bytes.  If more than *ANSSIZP bytes are needed and ANSCP
++   is non-NULL (to indicate that modifying the answer buffer is allowed)
++   then malloc is used to allocate a new response buffer and ANSCP and
++   ANSP will both point to the new buffer.  If more than *ANSSIZP bytes
++   are needed but ANSCP is NULL, then as much of the response as
++   possible is read into the buffer, but the results will be truncated.
++   When truncation happens because of a small answer buffer the DNS
++   packets header feild TC will bet set to 1, indicating a truncated
++   message, while the rest of the UDP packet is discarded.
++
++   Answers to the query are stored secondly in *ANSP2 up to a max of
++   *ANSSIZP2 bytes, with the actual response length stored in
++   *RESPLEN2.  If more than *ANSSIZP bytes are needed and ANSP2
++   is non-NULL (required for a second query) then malloc is used to
++   allocate a new response buffer, *ANSSIZP2 is set to the new buffer
++   size and *ANSP2_MALLOCED is set to 1.
++
++   The ANSP2_MALLOCED argument will eventually be removed as the
++   change in buffer pointer can be used to detect the buffer has
++   changed and that the caller should use free on the new buffer.
++
++   Note that the answers may arrive in any order from the server and
++   therefore the first and second answer buffers may not correspond to
++   the first and second queries.
++
++   It is not supported to call this function with a non-NULL ANSP2
++   but a NULL ANSCP.  Put another way, you can call send_vc with a
++   single unmodifiable buffer or two modifiable buffers, but no other
++   combination is supported.
++
++   It is the caller's responsibility to free the malloc allocated
++   buffers by detecting that the pointers have changed from their
++   original values i.e. *ANSCP or *ANSP2 has changed.
++
++   If an answer is truncated because of UDP datagram DNS limits then
++   *V_CIRCUIT is set to 1 and the return value non-zero to indicate to
++   the caller to retry with TCP.  The value *GOTSOMEWHERE is set to 1
++   if any progress was made reading a response from the nameserver and
++   is used by the caller to distinguish between ECONNREFUSED and
++   ETIMEDOUT (the latter if *GOTSOMEWHERE is 1).
++
++   If errors are encountered then *TERRNO is set to an appropriate
++   errno value and a zero result is returned for a recoverable error,
++   and a less-than zero result is returned for a non-recoverable error.
++
++   If no errors are encountered then *TERRNO is left unmodified and
++   a the length of the first response in bytes is returned.  */
+ static int
+ send_dg(res_state statp,
+ 	const u_char *buf, int buflen, const u_char *buf2, int buflen2,
+@@ -957,8 +1090,6 @@ send_dg(res_state statp,
+ {
+ 	const HEADER *hp = (HEADER *) buf;
+ 	const HEADER *hp2 = (HEADER *) buf2;
+-	u_char *ans = *ansp;
+-	int orig_anssizp = *anssizp;
+ 	struct timespec now, timeout, finish;
+ 	struct pollfd pfd[1];
+ 	int ptimeout;
+@@ -991,6 +1122,8 @@ send_dg(res_state statp,
+ 	int need_recompute = 0;
+ 	int nwritten = 0;
+ 	int recvresp1 = 0;
++	/* Skip the second response if there is no second query.
++           To do that we mark the second response as received.  */
+ 	int recvresp2 = buf2 == NULL;
+ 	pfd[0].fd = EXT(statp).nssocks[ns];
+ 	pfd[0].events = POLLOUT;
+@@ -1154,55 +1287,56 @@ send_dg(res_state statp,
+ 		int *thisresplenp;
+ 
+ 		if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) {
++			/* We have not received any responses
++			   yet or we only have one response to
++			   receive.  */
+ 			thisanssizp = anssizp;
+ 			thisansp = anscp ?: ansp;
+ 			assert (anscp != NULL || ansp2 == NULL);
+ 			thisresplenp = &resplen;
+ 		} else {
+-			if (*anssizp != MAXPACKET) {
+-				/* No buffer allocated for the first
+-				   reply.  We can try to use the rest
+-				   of the user-provided buffer.  */
+-#if _STRING_ARCH_unaligned
+-				*anssizp2 = orig_anssizp - resplen;
+-				*ansp2 = *ansp + resplen;
+-#else
+-				int aligned_resplen
+-				  = ((resplen + __alignof__ (HEADER) - 1)
+-				     & ~(__alignof__ (HEADER) - 1));
+-				*anssizp2 = orig_anssizp - aligned_resplen;
+-				*ansp2 = *ansp + aligned_resplen;
+-#endif
+-			} else {
+-				/* The first reply did not fit into the
+-				   user-provided buffer.  Maybe the second
+-				   answer will.  */
+-				*anssizp2 = orig_anssizp;
+-				*ansp2 = *ansp;
+-			}
+-
+ 			thisanssizp = anssizp2;
+ 			thisansp = ansp2;
+ 			thisresplenp = resplen2;
+ 		}
+ 
+ 		if (*thisanssizp < MAXPACKET
+-		    /* Yes, we test ANSCP here.  If we have two buffers
+-		       both will be allocatable.  */
+-		    && anscp
++		    /* If the current buffer is not the the static
++		       user-supplied buffer then we can reallocate
++		       it.  */
++		    && (thisansp != NULL && thisansp != ansp)
+ #ifdef FIONREAD
++		    /* Is the size too small?  */
+ 		    && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0
+ 			|| *thisanssizp < *thisresplenp)
+ #endif
+                     ) {
++			/* Always allocate MAXPACKET, callers expect
++			   this specific size.  */
+ 			u_char *newp = malloc (MAXPACKET);
+ 			if (newp != NULL) {
+-				*anssizp = MAXPACKET;
+-				*thisansp = ans = newp;
++				*thisanssizp = MAXPACKET;
++				*thisansp = newp;
+ 				if (thisansp == ansp2)
+ 				  *ansp2_malloced = 1;
+ 			}
+ 		}
++		/* We could end up with truncation if anscp was NULL
++		   (not allowed to change caller's buffer) and the
++		   response buffer size is too small.  This isn't a
++		   reliable way to detect truncation because the ioctl
++		   may be an inaccurate report of the UDP message size.
++		   Therefore we use this only to issue debug output.
++		   To do truncation accurately with UDP we need
++		   MSG_TRUNC which is only available on Linux.  We
++		   can abstract out the Linux-specific feature in the
++		   future to detect truncation.  */
++		if (__glibc_unlikely (*thisanssizp < *thisresplenp)) {
++			Dprint(statp->options & RES_DEBUG,
++			       (stdout, ";; response may be truncated (UDP)\n")
++			);
++		}
++
+ 		HEADER *anhp = (HEADER *) *thisansp;
+ 		socklen_t fromlen = sizeof(struct sockaddr_in6);
+ 		assert (sizeof(from) <= fromlen);
+
diff --git a/pkgs/development/libraries/gnutls/generic.nix b/pkgs/development/libraries/gnutls/generic.nix
index ebaef47ca140..e51b77eb5b07 100644
--- a/pkgs/development/libraries/gnutls/generic.nix
+++ b/pkgs/development/libraries/gnutls/generic.nix
@@ -16,7 +16,6 @@ stdenv.mkDerivation {
   outputs = [ "out" "man" ];
 
   configureFlags =
-    # FIXME: perhaps use $SSL_CERT_FILE instead
     lib.optional stdenv.isLinux "--with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt"
   ++ [
     "--disable-dependency-tracking"
diff --git a/pkgs/development/libraries/hwloc/default.nix b/pkgs/development/libraries/hwloc/default.nix
index c357d808cac4..5d07cfe3a2bb 100644
--- a/pkgs/development/libraries/hwloc/default.nix
+++ b/pkgs/development/libraries/hwloc/default.nix
@@ -2,11 +2,11 @@
 , pciutils, numactl }:
 
 stdenv.mkDerivation rec {
-  name = "hwloc-1.6";
+  name = "hwloc-1.11.2";
 
   src = fetchurl {
-    url = "http://www.open-mpi.org/software/hwloc/v1.6/downloads/${name}.tar.bz2";
-    sha256 = "0y561bryiqp1f5af5lm432dcw93xwp1jw55si7wa6skxnd6ch25w";
+    url = "http://www.open-mpi.org/software/hwloc/v1.11/downloads/${name}.tar.bz2";
+    sha1 = "3d68de060808f04349538be4e63cde501cd53b0a";
   };
 
   # XXX: libX11 is not directly needed, but needed as a propagated dep of Cairo.
@@ -39,9 +39,9 @@ stdenv.mkDerivation rec {
              -e "s|-lnuma|-L$numalibdir -lnuma|g"
       '';
 
-  # XXX: A test hangs on Cygwin, see
-  # <http://hydra.bordeaux.inria.fr/build/51474/nixlog/1/raw>.
-  doCheck = !stdenv.isCygwin;
+  # Checks disabled because they're impure (hardware dependent) and
+  # fail on some build machines.
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Portable abstraction of hierarchical architectures for high-performance computing";
diff --git a/pkgs/development/libraries/ijs/default.nix b/pkgs/development/libraries/ijs/default.nix
index fbba11c10c93..0c7d412fee65 100644
--- a/pkgs/development/libraries/ijs/default.nix
+++ b/pkgs/development/libraries/ijs/default.nix
@@ -1,16 +1,25 @@
-{ stdenv, fetchurl, autoreconfHook }:
+{ stdenv, fetchurl, fetchpatch, autoreconfHook }:
 
-let version = "9.16";
+let version = "9.18";
 in
 stdenv.mkDerivation {
   name = "ijs-${version}";
 
   src = fetchurl {
     url = "http://downloads.ghostscript.com/public/ghostscript-${version}.tar.bz2";
-    sha256 = "0vdqbjkickb0109lk6397bb2zjmg1s46dac5p5j4gfxa4pwl8b9y";
+    sha256 = "18ad90za28dxybajqwf3y3dld87cgkx1ljllmcnc7ysspfxzbnl3";
   };
 
-  prePatch = "cd ijs";
+  patches = [
+    # http://bugs.ghostscript.com/show_bug.cgi?id=696246
+    (fetchpatch {
+      name = "devijs-account-for-device-subclassing.patch";
+      url = "http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=b68e05c3";
+      sha256 = "1c3fzfjzvf15z533vpw3l3da8wcxw98qi3p1lc6lf13940a57c7n";
+    })
+  ];
+
+  postPatch = "cd ijs";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/attica.nix b/pkgs/development/libraries/kde-frameworks-5.18/attica.nix
deleted file mode 100644
index 98721876c120..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/attica.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-}:
-
-kdeFramework {
-  name = "attica";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/baloo.nix b/pkgs/development/libraries/kde-frameworks-5.18/baloo.nix
deleted file mode 100644
index 38c41d9271d8..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/baloo.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kauth, kconfig
-, kcoreaddons, kcrash, kdbusaddons, kfilemetadata, ki18n, kidletime
-, kio, lmdb, makeQtWrapper, qtbase, qtquick1, solid
-}:
-
-kdeFramework {
-  name = "baloo";
-  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
-  buildInputs = [
-    kconfig kcrash kdbusaddons lmdb qtquick1 solid
-  ];
-  propagatedBuildInputs = [
-    kauth kcoreaddons kfilemetadata ki18n kio kidletime qtbase
-  ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/baloo_file"
-    wrapQtProgram "$out/bin/baloo_file_extractor"
-    wrapQtProgram "$out/bin/balooctl"
-    wrapQtProgram "$out/bin/baloosearch"
-    wrapQtProgram "$out/bin/balooshow"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/bluez-qt.nix b/pkgs/development/libraries/kde-frameworks-5.18/bluez-qt.nix
deleted file mode 100644
index f981b0516f72..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/bluez-qt.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, qtdeclarative
-}:
-
-kdeFramework {
-  name = "bluez-qt";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtdeclarative ];
-  preConfigure = ''
-    substituteInPlace CMakeLists.txt \
-      --replace /lib/udev/rules.d "$out/lib/udev/rules.d"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix b/pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix
deleted file mode 100644
index 879262c56a41..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kdeFramework
-, extra-cmake-modules
-, qtsvg
-}:
-
-kdeFramework {
-  name = "breeze-icons";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedUserEnvPkgs = [ qtsvg ];
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/default.nix
deleted file mode 100644
index f41aebcb59d3..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/default.nix
+++ /dev/null
@@ -1,112 +0,0 @@
-# Maintainer's Notes:
-#
-# How To Update
-#  1. Edit the URL in ./manifest.sh
-#  2. Run ./manifest.sh
-#  3. Fix build errors.
-
-{ pkgs, debug ? false }:
-
-let
-
-  inherit (pkgs) lib makeSetupHook stdenv;
-
-  mirror = "mirror://kde";
-  srcs = import ./srcs.nix { inherit (pkgs) fetchurl; inherit mirror; };
-
-  packages = self: with self; {
-    kdeFramework = args:
-      let
-        inherit (args) name;
-        inherit (srcs."${name}") src version;
-      in stdenv.mkDerivation (args // {
-        name = "${name}-${version}";
-        inherit src;
-
-        cmakeFlags =
-          (args.cmakeFlags or [])
-          ++ [ "-DBUILD_TESTING=OFF" ]
-          ++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug";
-
-        meta = {
-          license = with lib.licenses; [
-            lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12
-          ];
-          platforms = lib.platforms.linux;
-          homepage = "http://www.kde.org";
-        } // (args.meta or {});
-      });
-
-    attica = callPackage ./attica.nix {};
-    baloo = callPackage ./baloo.nix {};
-    bluez-qt = callPackage ./bluez-qt.nix {};
-    breeze-icons = callPackage ./breeze-icons.nix {};
-    extra-cmake-modules = callPackage ./extra-cmake-modules {};
-    frameworkintegration = callPackage ./frameworkintegration.nix {};
-    kactivities = callPackage ./kactivities.nix {};
-    kapidox = callPackage ./kapidox.nix {};
-    karchive = callPackage ./karchive.nix {};
-    kauth = callPackage ./kauth {};
-    kbookmarks = callPackage ./kbookmarks.nix {};
-    kcmutils = callPackage ./kcmutils {};
-    kcodecs = callPackage ./kcodecs.nix {};
-    kcompletion = callPackage ./kcompletion.nix {};
-    kconfig = callPackage ./kconfig.nix {};
-    kconfigwidgets = callPackage ./kconfigwidgets {};
-    kcoreaddons = callPackage ./kcoreaddons.nix {};
-    kcrash = callPackage ./kcrash.nix {};
-    kdbusaddons = callPackage ./kdbusaddons.nix {};
-    kdeclarative = callPackage ./kdeclarative.nix {};
-    kded = callPackage ./kded.nix {};
-    kdelibs4support = callPackage ./kdelibs4support.nix {};
-    kdesignerplugin = callPackage ./kdesignerplugin.nix {};
-    kdewebkit = callPackage ./kdewebkit.nix {};
-    kdesu = callPackage ./kdesu.nix {};
-    kdnssd = callPackage ./kdnssd.nix {};
-    kdoctools = callPackage ./kdoctools {};
-    kemoticons = callPackage ./kemoticons.nix {};
-    kfilemetadata = callPackage ./kfilemetadata.nix {};
-    kglobalaccel = callPackage ./kglobalaccel.nix {};
-    kguiaddons = callPackage ./kguiaddons.nix {};
-    khtml = callPackage ./khtml.nix {};
-    ki18n = callPackage ./ki18n.nix {};
-    kiconthemes = callPackage ./kiconthemes {};
-    kidletime = callPackage ./kidletime.nix {};
-    kimageformats = callPackage ./kimageformats.nix {};
-    kinit = callPackage ./kinit {};
-    kio = callPackage ./kio {};
-    kitemmodels = callPackage ./kitemmodels.nix {};
-    kitemviews = callPackage ./kitemviews.nix {};
-    kjobwidgets = callPackage ./kjobwidgets.nix {};
-    kjs = callPackage ./kjs.nix {};
-    kjsembed = callPackage ./kjsembed.nix {};
-    kmediaplayer = callPackage ./kmediaplayer.nix {};
-    knewstuff = callPackage ./knewstuff.nix {};
-    knotifications = callPackage ./knotifications.nix {};
-    knotifyconfig = callPackage ./knotifyconfig.nix {};
-    kpackage = callPackage ./kpackage {};
-    kparts = callPackage ./kparts.nix {};
-    kpeople = callPackage ./kpeople.nix {};
-    kplotting = callPackage ./kplotting.nix {};
-    kpty = callPackage ./kpty.nix {};
-    kross = callPackage ./kross.nix {};
-    krunner = callPackage ./krunner.nix {};
-    kservice = callPackage ./kservice {};
-    ktexteditor = callPackage ./ktexteditor {};
-    ktextwidgets = callPackage ./ktextwidgets.nix {};
-    kunitconversion = callPackage ./kunitconversion.nix {};
-    kwallet = callPackage ./kwallet.nix {};
-    kwidgetsaddons = callPackage ./kwidgetsaddons.nix {};
-    kwindowsystem = callPackage ./kwindowsystem.nix {};
-    kxmlgui = callPackage ./kxmlgui.nix {};
-    kxmlrpcclient = callPackage ./kxmlrpcclient.nix {};
-    modemmanager-qt = callPackage ./modemmanager-qt.nix {};
-    networkmanager-qt = callPackage ./networkmanager-qt.nix {};
-    oxygen-icons5 = callPackage ./oxygen-icons5.nix {};
-    plasma-framework = callPackage ./plasma-framework {};
-    solid = callPackage ./solid.nix {};
-    sonnet = callPackage ./sonnet.nix {};
-    threadweaver = callPackage ./threadweaver.nix {};
-  };
-
-in packages
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch
deleted file mode 100644
index 9717716faf5b..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 3cc148e878b69fc3e0228f3e3bf1bbe689dad87c Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Fri, 20 Feb 2015 23:17:39 -0600
-Subject: [PATCH] extra-cmake-modules paths
-
----
- kde-modules/KDEInstallDirs.cmake | 37 ++++---------------------------------
- 1 file changed, 4 insertions(+), 33 deletions(-)
-
-diff --git a/kde-modules/KDEInstallDirs.cmake b/kde-modules/KDEInstallDirs.cmake
-index b7cd34d..2f868ac 100644
---- a/kde-modules/KDEInstallDirs.cmake
-+++ b/kde-modules/KDEInstallDirs.cmake
-@@ -193,37 +193,8 @@
- # (To distribute this file outside of extra-cmake-modules, substitute the full
- #  License text for the above reference.)
- 
--# Figure out what the default install directory for libraries should be.
--# This is based on the logic in GNUInstallDirs, but simplified (the
--# GNUInstallDirs code deals with re-configuring, but that is dealt with
--# by the _define_* macros in this module).
-+# The default library directory on NixOS is *always* /lib.
- set(_LIBDIR_DEFAULT "lib")
--# Override this default 'lib' with 'lib64' iff:
--#  - we are on a Linux, kFreeBSD or Hurd system but NOT cross-compiling
--#  - we are NOT on debian
--#  - we are on a 64 bits system
--# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
--# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
--# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
--# See http://wiki.debian.org/Multiarch
--if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
--   AND NOT CMAKE_CROSSCOMPILING)
--  if (EXISTS "/etc/debian_version") # is this a debian system ?
--    if(CMAKE_LIBRARY_ARCHITECTURE)
--      set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
--    endif()
--  else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
--    if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
--      message(AUTHOR_WARNING
--        "Unable to determine default LIB_INSTALL_LIBDIR directory because no target architecture is known. "
--        "Please enable at least one language before including KDEInstallDirs.")
--    else()
--      if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
--        set(_LIBDIR_DEFAULT "lib64")
--      endif()
--    endif()
--  endif()
--endif()
- 
- set(_gnu_install_dirs_vars
-     BINDIR
-@@ -445,15 +416,15 @@ if(KDE_INSTALL_USE_QT_SYS_PATHS)
-         "QtQuick2 imports"
-         QML_INSTALL_DIR)
- else()
--    _define_relative(QTPLUGINDIR LIBDIR "plugins"
-+    _define_relative(QTPLUGINDIR LIBDIR "qt5/plugins"
-         "Qt plugins"
-         QT_PLUGIN_INSTALL_DIR)
- 
--    _define_relative(QTQUICKIMPORTSDIR QTPLUGINDIR "imports"
-+    _define_relative(QTQUICKIMPORTSDIR QTPLUGINDIR "qt5/imports"
-         "QtQuick1 imports"
-         IMPORTS_INSTALL_DIR)
- 
--    _define_relative(QMLDIR LIBDIR "qml"
-+    _define_relative(QMLDIR LIBDIR "qt5/qml"
-         "QtQuick2 imports"
-         QML_INSTALL_DIR)
- endif()
--- 
-2.3.0
-
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix
deleted file mode 100644
index 4e1b1aff3bd1..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ kdeFramework, lib, stdenv, cmake, pkgconfig, qttools }:
-
-kdeFramework {
-  name = "extra-cmake-modules";
-  patches = [ ./0001-extra-cmake-modules-paths.patch ];
-
-  setupHook = ./setup-hook.sh;
-
-  # It is OK to propagate these inputs as long as
-  # extra-cmake-modules is never a propagated input
-  # of some other derivation.
-  propagatedNativeBuildInputs = [ cmake pkgconfig qttools ];
-
-  meta = {
-    license = stdenv.lib.licenses.bsd2;
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh
deleted file mode 100644
index a6fa6189240b..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-addMimePkg() {
-    local propagated
-
-    if [[ -d "$1/share/mime" ]]; then
-        propagated=
-        for pkg in $propagatedBuildInputs; do
-            if [[ "z$pkg" == "z$1" ]]; then
-                propagated=1
-            fi
-        done
-        if [[ -z $propagated ]]; then
-            propagatedBuildInputs="$propagatedBuildInputs $1"
-        fi
-
-        propagated=
-        for pkg in $propagatedUserEnvPkgs; do
-            if [[ "z$pkg" == "z$1" ]]; then
-                propagated=1
-            fi
-        done
-        if [[ -z $propagated ]]; then
-            propagatedUserEnvPkgs="$propagatedUserEnvPkgs $1"
-        fi
-    fi
-}
-
-envHooks+=(addMimePkg)
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/fetchsrcs.sh b/pkgs/development/libraries/kde-frameworks-5.18/fetchsrcs.sh
deleted file mode 100755
index 84b882a0a075..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/fetchsrcs.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#! /usr/bin/env nix-shell
-#! nix-shell -i bash -p coreutils findutils gnused nix wget
-
-set -x
-
-# The trailing slash at the end is necessary!
-RELEASE_URL="http://download.kde.org/stable/frameworks/5.18/"
-EXTRA_WGET_ARGS='-A *.tar.xz'
-
-mkdir tmp; cd tmp
-
-rm -f ../srcs.csv
-
-wget -nH -r -c --no-parent $RELEASE_URL $EXTRA_WGET_ARGS
-
-find . | while read src; do
-    if [[ -f "${src}" ]]; then
-        # Sanitize file name
-        filename=$(basename "$src" | tr '@' '_')
-        nameVersion="${filename%.tar.*}"
-        name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,')
-        version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
-        echo "$name,$version,$src,$filename" >>../srcs.csv
-    fi
-done
-
-cat >../srcs.nix <<EOF
-# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
-{ fetchurl, mirror }:
-
-{
-EOF
-
-gawk -F , "{ print \$1 }" ../srcs.csv | sort | uniq | while read name; do
-    versions=$(gawk -F , "/^$name,/ { print \$2 }" ../srcs.csv)
-    latestVersion=$(echo "$versions" | sort -rV | head -n 1)
-    src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" ../srcs.csv)
-    filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" ../srcs.csv)
-    url="${src:2}"
-    sha256=$(nix-hash --type sha256 --base32 --flat "$src")
-    cat >>../srcs.nix <<EOF
-  $name = {
-    version = "$latestVersion";
-    src = fetchurl {
-      url = "\${mirror}/$url";
-      sha256 = "$sha256";
-      name = "$filename";
-    };
-  };
-EOF
-done
-
-echo "}" >>../srcs.nix
-
-rm -f ../srcs.csv
-
-cd ..
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/frameworkintegration.nix b/pkgs/development/libraries/kde-frameworks-5.18/frameworkintegration.nix
deleted file mode 100644
index 26987c385ad5..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/frameworkintegration.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kbookmarks, kcompletion
-, kconfig, kconfigwidgets, ki18n, kiconthemes, kio, knotifications
-, kwidgetsaddons, libXcursor, qtx11extras
-}:
-
-kdeFramework {
-  name = "frameworkintegration";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kbookmarks kcompletion kconfig knotifications kwidgetsaddons
-    libXcursor
-  ];
-  propagatedBuildInputs = [ kconfigwidgets ki18n kio kiconthemes qtx11extras ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kactivities.nix b/pkgs/development/libraries/kde-frameworks-5.18/kactivities.nix
deleted file mode 100644
index 3225098f4398..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kactivities.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, boost, kcmutils, kconfig
-, kcoreaddons, kdbusaddons, kdeclarative, kglobalaccel, ki18n
-, kio, kservice, kwindowsystem, kxmlgui, makeQtWrapper, qtdeclarative
-}:
-
-kdeFramework {
-  name = "kactivities";
-  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
-  buildInputs = [
-    boost kcmutils kconfig kcoreaddons kdbusaddons kservice
-    kxmlgui
-  ];
-  propagatedBuildInputs = [
-    kdeclarative kglobalaccel ki18n kio kwindowsystem qtdeclarative
-  ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kactivitymanagerd"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kapidox.nix b/pkgs/development/libraries/kde-frameworks-5.18/kapidox.nix
deleted file mode 100644
index 647be8f052c3..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kapidox.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, python
-}:
-
-kdeFramework {
-  name = "kapidox";
-  nativeBuildInputs = [ extra-cmake-modules python ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/karchive.nix b/pkgs/development/libraries/kde-frameworks-5.18/karchive.nix
deleted file mode 100644
index a8d9a0003c3b..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/karchive.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-}:
-
-kdeFramework {
-  name = "karchive";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kauth/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kauth/default.nix
deleted file mode 100644
index 2b000ff3c041..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kauth/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, kcoreaddons
-, polkit-qt
-}:
-
-kdeFramework {
-  name = "kauth";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ polkit-qt ];
-  propagatedBuildInputs = [ kcoreaddons ];
-  patches = [ ./kauth-policy-install.patch ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch b/pkgs/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch
deleted file mode 100644
index 340155256f28..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/KF5AuthConfig.cmake.in b/KF5AuthConfig.cmake.in
-index e859ec7..9a8ab18 100644
---- a/KF5AuthConfig.cmake.in
-+++ b/KF5AuthConfig.cmake.in
-@@ -4,7 +4,7 @@ set(KAUTH_STUB_FILES_DIR "${PACKAGE_PREFIX_DIR}/@KF5_DATA_INSTALL_DIR@/kauth/")
- 
- set(KAUTH_BACKEND_NAME "@KAUTH_BACKEND_NAME@")
- set(KAUTH_HELPER_BACKEND_NAME "@KAUTH_HELPER_BACKEND_NAME@")
--set(KAUTH_POLICY_FILES_INSTALL_DIR "@KAUTH_POLICY_FILES_INSTALL_DIR@")
-+set(KAUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions")
- set(KAUTH_HELPER_INSTALL_DIR "@KAUTH_HELPER_INSTALL_DIR@")
- 
- find_dependency(KF5CoreAddons "@KF5_DEP_VERSION@")
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kbookmarks.nix b/pkgs/development/libraries/kde-frameworks-5.18/kbookmarks.nix
deleted file mode 100644
index 1a469ab4db6d..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kbookmarks.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, kcodecs
-, kconfig
-, kconfigwidgets
-, kcoreaddons
-, kiconthemes
-, kxmlgui
-}:
-
-kdeFramework {
-  name = "kbookmarks";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kcodecs
-    kconfig
-    kconfigwidgets
-    kcoreaddons
-    kiconthemes
-    kxmlgui
-  ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kcmutils/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.18/kcmutils/0001-qdiriterator-follow-symlinks.patch
deleted file mode 100644
index 0d861fa95012..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kcmutils/0001-qdiriterator-follow-symlinks.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From f14d2a275323a47104b33eb61c5b6910ae1a9f59 Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Wed, 14 Oct 2015 06:43:53 -0500
-Subject: [PATCH] qdiriterator follow symlinks
-
----
- src/kpluginselector.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/kpluginselector.cpp b/src/kpluginselector.cpp
-index 9c3431d..d6b1ee2 100644
---- a/src/kpluginselector.cpp
-+++ b/src/kpluginselector.cpp
-@@ -305,7 +305,7 @@ void KPluginSelector::addPlugins(const QString &componentName,
-     QStringList desktopFileNames;
-     const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, componentName + QStringLiteral("/kpartplugins"), QStandardPaths::LocateDirectory);
-     Q_FOREACH (const QString &dir, dirs) {
--        QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories);
-+      QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
-         while (it.hasNext()) {
-             desktopFileNames.append(it.next());
-         }
--- 
-2.5.2
-
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kcmutils/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kcmutils/default.nix
deleted file mode 100644
index dbbb783ac615..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kcmutils/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kconfigwidgets
-, kcoreaddons, kdeclarative, ki18n, kiconthemes, kitemviews
-, kpackage, kservice, kxmlgui
-}:
-
-kdeFramework {
-  name = "kcmutils";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kcoreaddons kiconthemes kitemviews kpackage kxmlgui
-  ];
-  propagatedBuildInputs = [ kconfigwidgets kdeclarative ki18n kservice ];
-  patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kcodecs.nix b/pkgs/development/libraries/kde-frameworks-5.18/kcodecs.nix
deleted file mode 100644
index 53a69a69b69c..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kcodecs.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-}:
-
-kdeFramework {
-  name = "kcodecs";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kcompletion.nix b/pkgs/development/libraries/kde-frameworks-5.18/kcompletion.nix
deleted file mode 100644
index e393774f16a5..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kcompletion.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, kconfig
-, kwidgetsaddons
-}:
-
-kdeFramework {
-  name = "kcompletion";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ kconfig kwidgetsaddons ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kconfig.nix b/pkgs/development/libraries/kde-frameworks-5.18/kconfig.nix
deleted file mode 100644
index e132afe59886..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kconfig.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, makeQtWrapper
-}:
-
-kdeFramework {
-  name = "kconfig";
-  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kreadconfig5"
-    wrapQtProgram "$out/bin/kwriteconfig5"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch
deleted file mode 100644
index 7a6c0ee90534..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 4f84780893d505b2d62a14633dd983baa8ec6e28 Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Wed, 14 Oct 2015 06:47:01 -0500
-Subject: [PATCH] qdiriterator follow symlinks
-
----
- src/khelpclient.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/khelpclient.cpp b/src/khelpclient.cpp
-index 53a331e..80fbb01 100644
---- a/src/khelpclient.cpp
-+++ b/src/khelpclient.cpp
-@@ -48,7 +48,7 @@ void KHelpClient::invokeHelp(const QString &anchor, const QString &_appname)
-     QString docPath;
-     const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-     Q_FOREACH (const QString &dir, desktopDirs) {
--        QDirIterator it(dir, QStringList() << appname + QLatin1String(".desktop"), QDir::NoFilter, QDirIterator::Subdirectories);
-+        QDirIterator it(dir, QStringList() << appname + QLatin1String(".desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
-         while (it.hasNext()) {
-             const QString desktopPath(it.next());
-             KDesktopFile desktopFile(desktopPath);
--- 
-2.5.2
-
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/default.nix
deleted file mode 100644
index 0e14d06edd36..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kconfigwidgets/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kauth, kcodecs, kconfig
-, kdoctools, kguiaddons, ki18n, kwidgetsaddons, makeQtWrapper
-}:
-
-kdeFramework {
-  name = "kconfigwidgets";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
-  buildInputs = [ kguiaddons ];
-  propagatedBuildInputs = [ kauth kconfig kcodecs ki18n kwidgetsaddons ];
-  patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/preparetips5"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kcoreaddons.nix b/pkgs/development/libraries/kde-frameworks-5.18/kcoreaddons.nix
deleted file mode 100644
index f3a1db7bd484..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kcoreaddons.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kdeFramework, lib, makeQtWrapper
-, extra-cmake-modules
-, shared_mime_info
-}:
-
-kdeFramework {
-  name = "kcoreaddons";
-  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
-  buildInputs = [ shared_mime_info ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/desktoptojson"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kcrash.nix b/pkgs/development/libraries/kde-frameworks-5.18/kcrash.nix
deleted file mode 100644
index bbab78ccb409..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kcrash.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, kcoreaddons
-, kwindowsystem
-, qtx11extras
-}:
-
-kdeFramework {
-  name = "kcrash";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ kcoreaddons ];
-  propagatedBuildInputs = [ kwindowsystem qtx11extras ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdbusaddons.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdbusaddons.nix
deleted file mode 100644
index d2ceab31d14b..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kdbusaddons.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, makeQtWrapper
-, qtx11extras
-}:
-
-kdeFramework {
-  name = "kdbusaddons";
-  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
-  propagatedBuildInputs = [ qtx11extras ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kquitapp5"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdeclarative.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdeclarative.nix
deleted file mode 100644
index 74d107466cfc..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kdeclarative.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, epoxy, kconfig
-, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kpackage
-, kwidgetsaddons, kwindowsystem, makeQtWrapper, pkgconfig
-, qtdeclarative
-}:
-
-kdeFramework {
-  name = "kdeclarative";
-  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
-  buildInputs = [
-    epoxy kguiaddons kiconthemes kwidgetsaddons
-  ];
-  propagatedBuildInputs = [
-    kconfig kglobalaccel ki18n kio kpackage kwindowsystem qtdeclarative
-  ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kpackagelauncherqml"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kded.nix b/pkgs/development/libraries/kde-frameworks-5.18/kded.nix
deleted file mode 100644
index 47ae2d68c68e..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kded.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, kconfig
-, kcoreaddons
-, kcrash
-, kdbusaddons
-, kdoctools
-, kinit
-, kservice
-}:
-
-kdeFramework {
-  name = "kded";
-  buildInputs = [ kconfig kcoreaddons kcrash kdbusaddons kinit kservice ];
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix
deleted file mode 100644
index e61c4bb86e7c..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, docbook_xml_dtd_45, kauth
-, karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons
-, kcrash, kdbusaddons, kded, kdesignerplugin, kdoctools, kemoticons
-, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kitemmodels
-, kinit, knotifications, kparts, kservice, ktextwidgets
-, kunitconversion, kwidgetsaddons, kwindowsystem, kxmlgui
-, networkmanager, qtsvg, qtx11extras, xlibs
-}:
-
-# TODO: debug docbook detection
-
-kdeFramework {
-  name = "kdelibs4support";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [
-    kcompletion kconfig kded kservice kwidgetsaddons
-    kxmlgui networkmanager qtsvg qtx11extras xlibs.libSM
-  ];
-  propagatedBuildInputs = [
-    kauth karchive kconfigwidgets kcoreaddons kcrash kdbusaddons
-    kdesignerplugin kemoticons kglobalaccel kguiaddons ki18n kio
-    kiconthemes kitemmodels kinit knotifications kparts ktextwidgets
-    kunitconversion kwindowsystem
-  ];
-  cmakeFlags = [
-    "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook"
-    "-DDocBookXML4_DTD_VERSION=4.5"
-  ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdesignerplugin.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdesignerplugin.nix
deleted file mode 100644
index cbc114ccca03..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kdesignerplugin.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ kdeFramework, lib, makeQtWrapper
-, extra-cmake-modules
-, kcompletion
-, kconfig
-, kconfigwidgets
-, kcoreaddons
-, kdewebkit
-, kdoctools
-, kiconthemes
-, kio
-, kitemviews
-, kplotting
-, ktextwidgets
-, kwidgetsaddons
-, kxmlgui
-, sonnet
-}:
-
-kdeFramework {
-  name = "kdesignerplugin";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
-  buildInputs = [
-    kcompletion kconfig kconfigwidgets kcoreaddons kdewebkit
-    kiconthemes kitemviews kplotting ktextwidgets kwidgetsaddons
-    kxmlgui
-  ];
-  propagatedBuildInputs = [ kio sonnet ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kgendesignerplugin"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdesu.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdesu.nix
deleted file mode 100644
index 364fbd6a720b..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kdesu.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n, kpty
-, kservice
-}:
-
-kdeFramework {
-  name = "kdesu";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ kcoreaddons kservice ];
-  propagatedBuildInputs = [ ki18n kpty ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdewebkit.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdewebkit.nix
deleted file mode 100644
index d361313d1d49..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kdewebkit.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
-, ki18n, kio, kjobwidgets, kparts, kservice, kwallet, qtwebkit
-}:
-
-kdeFramework {
-  name = "kdewebkit";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ kconfig kcoreaddons kjobwidgets kparts kservice kwallet ];
-  propagatedBuildInputs = [ ki18n kio qtwebkit ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdnssd.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdnssd.nix
deleted file mode 100644
index f00432b0c9ce..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kdnssd.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, avahi
-}:
-
-kdeFramework {
-  name = "kdnssd";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ avahi ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/default.nix
deleted file mode 100644
index 138c3fc33b94..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, docbook_xml_dtd_45
-, docbook5_xsl, karchive, ki18n, makeQtWrapper, perl, perlPackages
-}:
-
-kdeFramework {
-  name = "kdoctools";
-  setupHook = ./setup-hook.sh;
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ karchive ];
-  propagatedBuildInputs = [ ki18n ];
-  propagatedNativeBuildInputs = [ makeQtWrapper perl perlPackages.URI ];
-  cmakeFlags = [
-    "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook"
-    "-DDocBookXSL_DIR=${docbook5_xsl}/xml/xsl/docbook"
-  ];
-  patches = [ ./kdoctools-no-find-docbook-xml.patch ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/kdoctools-no-find-docbook-xml.patch b/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/kdoctools-no-find-docbook-xml.patch
deleted file mode 100644
index 4e3a33efab32..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/kdoctools-no-find-docbook-xml.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5c4863c..f731775 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -46,7 +46,6 @@ set_package_properties(LibXml2 PROPERTIES
-                       )
- 
- 
--find_package(DocBookXML4 "4.5")
- 
- set_package_properties(DocBookXML4 PROPERTIES
-                        TYPE REQUIRED
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh
deleted file mode 100644
index 5cfffbd622d1..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-addXdgData() {
-    addToSearchPath XDG_DATA_DIRS "$1/share"
-}
-
-envHooks+=(addXdgData)
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kemoticons.nix b/pkgs/development/libraries/kde-frameworks-5.18/kemoticons.nix
deleted file mode 100644
index d165f84e3a2d..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kemoticons.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, karchive
-, kconfig
-, kcoreaddons
-, kservice
-}:
-
-kdeFramework {
-  name = "kemoticons";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ karchive kconfig kcoreaddons ];
-  propagatedBuildInputs = [ kservice ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata.nix b/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata.nix
deleted file mode 100644
index be99c58d5504..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, attr, ebook_tools, exiv2
-, ffmpeg, karchive, ki18n, poppler, qtbase, taglib
-}:
-
-kdeFramework {
-  name = "kfilemetadata";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ attr ebook_tools exiv2 ffmpeg karchive poppler taglib ];
-  propagatedBuildInputs = [ qtbase ki18n ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kglobalaccel.nix b/pkgs/development/libraries/kde-frameworks-5.18/kglobalaccel.nix
deleted file mode 100644
index c535b3590a38..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kglobalaccel.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, kconfig
-, kcoreaddons
-, kcrash
-, kdbusaddons
-, kwindowsystem
-, makeQtWrapper
-, qtx11extras
-}:
-
-kdeFramework {
-  name = "kglobalaccel";
-  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
-  buildInputs = [ kconfig kcoreaddons kcrash kdbusaddons ];
-  propagatedBuildInputs = [ kwindowsystem qtx11extras ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kglobalaccel5"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kguiaddons.nix b/pkgs/development/libraries/kde-frameworks-5.18/kguiaddons.nix
deleted file mode 100644
index bc4e9ab11843..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kguiaddons.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, qtx11extras
-}:
-
-kdeFramework {
-  name = "kguiaddons";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtx11extras ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/khtml.nix b/pkgs/development/libraries/kde-frameworks-5.18/khtml.nix
deleted file mode 100644
index d40df466ebbd..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/khtml.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, giflib, karchive
-, kcodecs, kglobalaccel, ki18n, kiconthemes, kio, kjs
-, knotifications, kparts, ktextwidgets, kwallet, kwidgetsaddons
-, kwindowsystem, kxmlgui, perl, phonon, qtx11extras, sonnet
-}:
-
-kdeFramework {
-  name = "khtml";
-  nativeBuildInputs = [ extra-cmake-modules perl ];
-  buildInputs = [
-    giflib karchive kiconthemes knotifications kwallet kwidgetsaddons
-    kxmlgui phonon
-  ];
-  propagatedBuildInputs = [
-    kcodecs kglobalaccel ki18n kio kjs kparts ktextwidgets
-    kwindowsystem qtx11extras sonnet
-  ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/ki18n.nix b/pkgs/development/libraries/kde-frameworks-5.18/ki18n.nix
deleted file mode 100644
index 268006512e7c..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/ki18n.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, gettext
-, python
-, qtdeclarative
-, qtscript
-}:
-
-kdeFramework {
-  name = "ki18n";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtdeclarative qtscript ];
-  propagatedNativeBuildInputs = [ gettext python ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default-theme-breeze.patch b/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default-theme-breeze.patch
deleted file mode 100644
index 5b3b15d5d5b5..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default-theme-breeze.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: kiconthemes-5.17.0/src/kicontheme.cpp
-===================================================================
---- kiconthemes-5.17.0.orig/src/kicontheme.cpp
-+++ kiconthemes-5.17.0/src/kicontheme.cpp
-@@ -557,7 +557,7 @@ void KIconTheme::reconfigure()
- // static
- QString KIconTheme::defaultThemeName()
- {
--    return QStringLiteral("oxygen");
-+    return QStringLiteral("breeze");
- }
- 
- void KIconTheme::assignIconsToContextMenu(ContextMenus type,
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default.nix
deleted file mode 100644
index b78b25582beb..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ kdeFramework, lib, copyPathsToStore
-, extra-cmake-modules, makeQtWrapper
-, kconfigwidgets, ki18n, breeze-icons, kitemviews, qtsvg
-}:
-
-kdeFramework {
-  name = "kiconthemes";
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
-  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
-  buildInputs = [ kconfigwidgets kitemviews qtsvg ];
-  propagatedBuildInputs = [ breeze-icons ki18n ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kiconfinder5"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/series b/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/series
deleted file mode 100644
index ab5cc8a3edb2..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kiconthemes/series
+++ /dev/null
@@ -1 +0,0 @@
-default-theme-breeze.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kidletime.nix b/pkgs/development/libraries/kde-frameworks-5.18/kidletime.nix
deleted file mode 100644
index fc0865600239..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kidletime.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, qtbase
-, qtx11extras
-}:
-
-kdeFramework {
-  name = "kidletime";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtx11extras ];
-  propagatedBuildInputs = [ qtbase ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kimageformats.nix b/pkgs/development/libraries/kde-frameworks-5.18/kimageformats.nix
deleted file mode 100644
index 49d66bbcc2c6..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kimageformats.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, ilmbase
-}:
-
-kdeFramework {
-  name = "kimageformats";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kinit/0001-kinit-libpath.patch b/pkgs/development/libraries/kde-frameworks-5.18/kinit/0001-kinit-libpath.patch
deleted file mode 100644
index 9c76079a382a..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kinit/0001-kinit-libpath.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 723c9b1268a04127647a1c20eebe9804150566dd Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Sat, 13 Jun 2015 08:57:55 -0500
-Subject: [PATCH] kinit libpath
-
----
- src/kdeinit/kinit.cpp | 18 ++++++++++--------
- 1 file changed, 10 insertions(+), 8 deletions(-)
-
-diff --git a/src/kdeinit/kinit.cpp b/src/kdeinit/kinit.cpp
-index 9e775b6..0ac5646 100644
---- a/src/kdeinit/kinit.cpp
-+++ b/src/kdeinit/kinit.cpp
-@@ -660,15 +660,17 @@ static pid_t launch(int argc, const char *_name, const char *args,
-         if (!libpath.isEmpty()) {
-             if (!l.load()) {
-                 if (libpath_relative) {
--                    // NB: Because Qt makes the actual dlopen() call, the
--                    //     RUNPATH of kdeinit is *not* respected - see
--                    //     https://sourceware.org/bugzilla/show_bug.cgi?id=13945
--                    //     - so we try hacking it in ourselves
--                    QString install_lib_dir = QFile::decodeName(
--                            CMAKE_INSTALL_PREFIX "/" LIB_INSTALL_DIR "/");
--                    libpath = install_lib_dir + libpath;
--                    l.setFileName(libpath);
-+                  // Use QT_PLUGIN_PATH to find shared library directories
-+                  // For KF5, the plugin path is /lib/qt5/plugins/, so kdeinit5
-+                  // shared libraries should be in /lib/qt5/plugins/../../
-+                  const QRegExp pathSepRegExp(QString::fromLatin1("[:\b]"));
-+                  const QString up = QString::fromLocal8Bit("/../../");
-+                  const QStringList paths = QString::fromLocal8Bit(qgetenv("QT_PLUGIN_PATH")).split(pathSepRegExp, QString::KeepEmptyParts);
-+                  Q_FOREACH (const QString &path, paths) {
-+                    l.setFileName(path + up + libpath);
-                     l.load();
-+                    if (l.isLoaded()) break;
-+                  }
-                 }
-             }
-             if (!l.isLoaded()) {
--- 
-2.4.2
-
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kinit/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kinit/default.nix
deleted file mode 100644
index 5f644d7c424e..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kinit/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kconfig, kcrash
-, kdoctools, ki18n, kio, kservice, kwindowsystem, libcap
-, libcap_progs
-}:
-
-# TODO: setuid wrapper
-
-kdeFramework {
-  name = "kinit";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools libcap_progs ];
-  buildInputs = [ kconfig kcrash kservice libcap ];
-  propagatedBuildInputs = [ ki18n kio kwindowsystem ];
-  patches = [ ./0001-kinit-libpath.patch ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kio/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kio/default.nix
deleted file mode 100644
index a2131ff33850..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kio/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ kdeFramework, lib, copyPathsToStore
-, extra-cmake-modules, acl, karchive
-, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons
-, kdbusaddons, kdoctools, ki18n, kiconthemes, kitemviews
-, kjobwidgets, knotifications, kservice, ktextwidgets, kwallet
-, kwidgetsaddons, kwindowsystem, kxmlgui, makeQtWrapper
-, qtscript, qtx11extras, solid
-}:
-
-kdeFramework {
-  name = "kio";
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
-  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
-  buildInputs = [
-    acl karchive kconfig kcoreaddons kdbusaddons kiconthemes
-    knotifications ktextwidgets kwallet kwidgetsaddons
-    qtscript
-  ];
-  propagatedBuildInputs = [
-    kbookmarks kcompletion kconfigwidgets ki18n kitemviews kjobwidgets
-    kservice kwindowsystem kxmlgui solid qtx11extras
-  ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kcookiejar5"
-    wrapQtProgram "$out/bin/ktelnetservice5"
-    wrapQtProgram "$out/bin/ktrash5"
-    wrapQtProgram "$out/bin/kmailservice5"
-    wrapQtProgram "$out/bin/protocoltojson"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kio/samba-search-path.patch b/pkgs/development/libraries/kde-frameworks-5.18/kio/samba-search-path.patch
deleted file mode 100644
index c9ad46b41bb7..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kio/samba-search-path.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Index: kio-5.17.0/src/core/ksambashare.cpp
-===================================================================
---- kio-5.17.0.orig/src/core/ksambashare.cpp
-+++ kio-5.17.0/src/core/ksambashare.cpp
-@@ -67,13 +67,18 @@ KSambaSharePrivate::~KSambaSharePrivate(
- 
- bool KSambaSharePrivate::isSambaInstalled()
- {
--    if (QFile::exists(QStringLiteral("/usr/sbin/smbd"))
--            || QFile::exists(QStringLiteral("/usr/local/sbin/smbd"))) {
--        return true;
-+    const QByteArray pathEnv = qgetenv("PATH");
-+    if (!pathEnv.isEmpty()) {
-+        QLatin1Char pathSep(':');
-+        QStringList paths = QFile::decodeName(pathEnv).split(pathSep, QString::SkipEmptyParts);
-+        for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) {
-+            it->append("/smbd");
-+            if (QFile::exists(*it)) {
-+                return true;
-+            }
-+        }
-     }
- 
--    //qDebug() << "Samba is not installed!";
--
-     return false;
- }
- 
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kio/series b/pkgs/development/libraries/kde-frameworks-5.18/kio/series
deleted file mode 100644
index 77ca15450047..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kio/series
+++ /dev/null
@@ -1 +0,0 @@
-samba-search-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kitemmodels.nix b/pkgs/development/libraries/kde-frameworks-5.18/kitemmodels.nix
deleted file mode 100644
index a9024d771cc3..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kitemmodels.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-}:
-
-kdeFramework {
-  name = "kitemmodels";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kitemviews.nix b/pkgs/development/libraries/kde-frameworks-5.18/kitemviews.nix
deleted file mode 100644
index 931019ce495d..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kitemviews.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-}:
-
-kdeFramework {
-  name = "kitemviews";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kjobwidgets.nix b/pkgs/development/libraries/kde-frameworks-5.18/kjobwidgets.nix
deleted file mode 100644
index 746edf12eea0..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kjobwidgets.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, kcoreaddons
-, kwidgetsaddons
-, qtx11extras
-}:
-
-kdeFramework {
-  name = "kjobwidgets";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ kcoreaddons kwidgetsaddons ];
-  propagatedBuildInputs = [ qtx11extras ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kjs.nix b/pkgs/development/libraries/kde-frameworks-5.18/kjs.nix
deleted file mode 100644
index 768720f178c8..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kjs.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, kdoctools
-, makeQtWrapper
-}:
-
-kdeFramework {
-  name = "kjs";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kjs5"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kjsembed.nix b/pkgs/development/libraries/kde-frameworks-5.18/kjsembed.nix
deleted file mode 100644
index 22eef2d47bde..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kjsembed.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kdoctools, ki18n, kjs
-, makeQtWrapper, qtsvg
-}:
-
-kdeFramework {
-  name = "kjsembed";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
-  buildInputs = [ qtsvg ];
-  propagatedBuildInputs = [ ki18n kjs ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kjscmd5"
-    wrapQtProgram "$out/bin/kjsconsole"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kmediaplayer.nix b/pkgs/development/libraries/kde-frameworks-5.18/kmediaplayer.nix
deleted file mode 100644
index 460458b22323..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kmediaplayer.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, kparts
-, kxmlgui
-}:
-
-kdeFramework {
-  name = "kmediaplayer";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ kxmlgui ];
-  propagatedBuildInputs = [ kparts ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/knewstuff.nix b/pkgs/development/libraries/kde-frameworks-5.18/knewstuff.nix
deleted file mode 100644
index 5bcd6f301462..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/knewstuff.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, attica, karchive
-, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes, kio
-, kitemviews, kservice, ktextwidgets, kwidgetsaddons, kxmlgui
-}:
-
-kdeFramework {
-  name = "knewstuff";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    karchive kcompletion kconfig kcoreaddons kiconthemes
-    kitemviews ktextwidgets kwidgetsaddons
-  ];
-  propagatedBuildInputs = [ attica ki18n kio kservice kxmlgui ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/knotifications.nix b/pkgs/development/libraries/kde-frameworks-5.18/knotifications.nix
deleted file mode 100644
index 7e301dd0f268..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/knotifications.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, kcodecs
-, kconfig
-, kcoreaddons
-, kwindowsystem
-, phonon
-, qtx11extras
-}:
-
-kdeFramework {
-  name = "knotifications";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kcodecs kconfig kcoreaddons phonon
-  ];
-  propagatedBuildInputs = [ kwindowsystem qtx11extras ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/knotifyconfig.nix b/pkgs/development/libraries/kde-frameworks-5.18/knotifyconfig.nix
deleted file mode 100644
index dd99d2d4f1e5..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/knotifyconfig.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kcompletion, kconfig
-, ki18n, kio, phonon
-}:
-
-kdeFramework {
-  name = "knotifyconfig";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ kcompletion kconfig phonon ];
-  propagatedBuildInputs = [ ki18n kio ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kpackage/allow-external-paths.patch b/pkgs/development/libraries/kde-frameworks-5.18/kpackage/allow-external-paths.patch
deleted file mode 100644
index e9d744448148..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kpackage/allow-external-paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: kpackage-5.18.0/src/kpackage/package.cpp
-===================================================================
---- kpackage-5.18.0.orig/src/kpackage/package.cpp
-+++ kpackage-5.18.0/src/kpackage/package.cpp
-@@ -808,7 +808,7 @@ PackagePrivate::PackagePrivate()
-     : QSharedData(),
-       fallbackPackage(0),
-       metadata(0),
--      externalPaths(false),
-+      externalPaths(true),
-       valid(false),
-       checkedValid(false)
- {
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kpackage/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kpackage/default.nix
deleted file mode 100644
index aea1b0d31a0d..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kpackage/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ kdeFramework, lib, copyPathsToStore
-, extra-cmake-modules
-, karchive
-, kconfig
-, kcoreaddons
-, kdoctools
-, ki18n
-, makeQtWrapper
-}:
-
-kdeFramework {
-  name = "kpackage";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
-  buildInputs = [ karchive kconfig ];
-  propagatedBuildInputs = [ kcoreaddons ki18n ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
-  postInstall = ''
-    wrapQtProgram "$out/bin/kpackagetool5"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kpackage/qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.18/kpackage/qdiriterator-follow-symlinks.patch
deleted file mode 100644
index ddbf17d00064..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kpackage/qdiriterator-follow-symlinks.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Index: kpackage-5.18.0/src/kpackage/packageloader.cpp
-===================================================================
---- kpackage-5.18.0.orig/src/kpackage/packageloader.cpp
-+++ kpackage-5.18.0/src/kpackage/packageloader.cpp
-@@ -241,7 +241,7 @@ QList<KPluginMetaData> PackageLoader::li
-         } else {
-             //qDebug() << "Not cached";
-             // If there's no cache file, fall back to listing the directory
--            const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories;
-+            const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories | QDirIterator::FollowSymlinks;
-             const QStringList nameFilters = QStringList(QStringLiteral("metadata.desktop")) << QStringLiteral("metadata.json");
- 
-             QDirIterator it(plugindir, nameFilters, QDir::Files, flags);
-Index: kpackage-5.18.0/src/kpackage/private/packagejobthread.cpp
-===================================================================
---- kpackage-5.18.0.orig/src/kpackage/private/packagejobthread.cpp
-+++ kpackage-5.18.0/src/kpackage/private/packagejobthread.cpp
-@@ -146,7 +146,7 @@ bool indexDirectory(const QString& dir,
- 
-     QJsonArray plugins;
- 
--    QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories);
-+    QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
-     while (it.hasNext()) {
-         it.next();
-         const QString path = it.fileInfo().absoluteFilePath();
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kpackage/series b/pkgs/development/libraries/kde-frameworks-5.18/kpackage/series
deleted file mode 100644
index 9b7f076efc70..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kpackage/series
+++ /dev/null
@@ -1,2 +0,0 @@
-allow-external-paths.patch
-qdiriterator-follow-symlinks.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kparts.nix b/pkgs/development/libraries/kde-frameworks-5.18/kparts.nix
deleted file mode 100644
index 1c3e0b2cbc51..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kparts.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
-, ki18n, kiconthemes, kio, kjobwidgets, knotifications, kservice
-, ktextwidgets, kwidgetsaddons, kxmlgui
-}:
-
-kdeFramework {
-  name = "kparts";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kconfig kcoreaddons kiconthemes kjobwidgets knotifications
-    kservice kwidgetsaddons
-  ];
-  propagatedBuildInputs = [ ki18n kio ktextwidgets kxmlgui ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kpeople.nix b/pkgs/development/libraries/kde-frameworks-5.18/kpeople.nix
deleted file mode 100644
index 4c3877e7efd2..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kpeople.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n
-, kitemviews, kservice, kwidgetsaddons, qtdeclarative
-}:
-
-kdeFramework {
-  name = "kpeople";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kcoreaddons kitemviews kservice kwidgetsaddons
-  ];
-  propagatedBuildInputs = [ ki18n qtdeclarative ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kplotting.nix b/pkgs/development/libraries/kde-frameworks-5.18/kplotting.nix
deleted file mode 100644
index c16f51b5ac3c..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kplotting.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-}:
-
-kdeFramework {
-  name = "kplotting";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kpty.nix b/pkgs/development/libraries/kde-frameworks-5.18/kpty.nix
deleted file mode 100644
index 2e34e6f674ce..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kpty.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n }:
-
-kdeFramework {
-  name = "kpty";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ kcoreaddons ki18n ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kross.nix b/pkgs/development/libraries/kde-frameworks-5.18/kross.nix
deleted file mode 100644
index 7c6f079feaa7..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kross.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kcompletion, kcoreaddons
-, kdoctools, ki18n, kiconthemes, kio, kparts, kwidgetsaddons
-, kxmlgui, qtscript
-}:
-
-kdeFramework {
-  name = "kross";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ kcompletion kcoreaddons kxmlgui ];
-  propagatedBuildInputs = [ ki18n kiconthemes kio kparts kwidgetsaddons qtscript ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/krunner.nix b/pkgs/development/libraries/kde-frameworks-5.18/krunner.nix
deleted file mode 100644
index 12d2b54d0eb3..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/krunner.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
-, ki18n, kio, kservice, plasma-framework, qtquick1, solid
-, threadweaver
-}:
-
-kdeFramework {
-  name = "krunner";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kconfig kcoreaddons kservice qtquick1 solid threadweaver
-  ];
-  propagatedBuildInputs = [ ki18n kio plasma-framework ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks-5.18/kservice/0001-qdiriterator-follow-symlinks.patch
deleted file mode 100644
index 3d8397d8ee2d..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kservice/0001-qdiriterator-follow-symlinks.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From ae8919eb81abad369e4a26ffcd845b140983398d Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Wed, 14 Oct 2015 06:28:57 -0500
-Subject: [PATCH 1/2] qdiriterator follow symlinks
-
----
- src/sycoca/kbuildsycoca.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/sycoca/kbuildsycoca.cpp b/src/sycoca/kbuildsycoca.cpp
-index 1deae14..250baa8 100644
---- a/src/sycoca/kbuildsycoca.cpp
-+++ b/src/sycoca/kbuildsycoca.cpp
-@@ -208,7 +208,7 @@ bool KBuildSycoca::build()
-         QStringList relFiles;
-         const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, m_resourceSubdir, QStandardPaths::LocateDirectory);
-         Q_FOREACH (const QString &dir, dirs) {
--            QDirIterator it(dir, QDirIterator::Subdirectories);
-+            QDirIterator it(dir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
-             while (it.hasNext()) {
-                 const QString filePath = it.next();
-                 Q_ASSERT(filePath.startsWith(dir)); // due to the line below...
--- 
-2.5.2
-
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/0002-no-canonicalize-path.patch b/pkgs/development/libraries/kde-frameworks-5.18/kservice/0002-no-canonicalize-path.patch
deleted file mode 100644
index 685c68526119..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kservice/0002-no-canonicalize-path.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 46d124da602d84b7611a7ff0ac0862168d451cdb Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Wed, 14 Oct 2015 06:31:29 -0500
-Subject: [PATCH 2/2] no canonicalize path
-
----
- src/sycoca/vfolder_menu.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/sycoca/vfolder_menu.cpp b/src/sycoca/vfolder_menu.cpp
-index d3e31c3..d15d743 100644
---- a/src/sycoca/vfolder_menu.cpp
-+++ b/src/sycoca/vfolder_menu.cpp
-@@ -415,7 +415,7 @@ VFolderMenu::absoluteDir(const QString &_dir, const QString &baseDir, bool keepR
-     }
- 
-     if (!relative) {
--        QString resolved = QDir(dir).canonicalPath();
-+      QString resolved = QDir::cleanPath(dir);
-         if (!resolved.isEmpty()) {
-             dir = resolved;
-         }
--- 
-2.5.2
-
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix
deleted file mode 100644
index 03b7c7c2f51d..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
-, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem
-}:
-
-kdeFramework {
-  name = "kservice";
-  setupHook = ./setup-hook.sh;
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ kcrash kdbusaddons ];
-  propagatedBuildInputs = [ kconfig kcoreaddons ki18n kwindowsystem ];
-  propagatedUserEnvPkgs = [ kcoreaddons ];
-  patches = [
-    ./0001-qdiriterator-follow-symlinks.patch
-    ./0002-no-canonicalize-path.patch
-  ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh
deleted file mode 100644
index c28e862ff8ae..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-addServicePkg() {
-    local propagated
-    for dir in "share/kservices5" "share/kservicetypes5"; do
-        if [[ -d "$1/$dir" ]]; then
-            propagated=
-            for pkg in $propagatedBuildInputs; do
-                if [[ "z$pkg" == "z$1" ]]; then
-                    propagated=1
-                    break
-                fi
-            done
-            if [[ -z $propagated ]]; then
-                propagatedBuildInputs="$propagatedBuildInputs $1"
-            fi
-
-            propagated=
-            for pkg in $propagatedUserEnvPkgs; do
-                if [[ "z$pkg" == "z$1" ]]; then
-                    propagated=1
-                    break
-                fi
-            done
-            if [[ -z $propagated ]]; then
-                propagatedUserEnvPkgs="$propagatedUserEnvPkgs $1"
-            fi
-
-            break
-        fi
-    done
-}
-
-envHooks+=(addServicePkg)
-
-local propagated
-for pkg in $propagatedBuildInputs; do
-    if [[ "z$pkg" == "z@out@" ]]; then
-        propagated=1
-        break
-    fi
-done
-if [[ -z $propagated ]]; then
-    propagatedBuildInputs="$propagatedBuildInputs @out@"
-fi
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/default.nix
deleted file mode 100644
index b8df6a5f4c0d..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ kdeFramework, lib, copyPathsToStore
-, extra-cmake-modules, makeQtWrapper, perl
-, karchive, kconfig, kguiaddons, kiconthemes, kparts
-, libgit2
-, qtscript, qtxmlpatterns
-, ki18n, kio, sonnet
-}:
-
-kdeFramework {
-  name = "ktexteditor";
-  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper perl ];
-  buildInputs = [
-    karchive kconfig kguiaddons kiconthemes kparts
-    libgit2
-    qtscript qtxmlpatterns
-  ];
-  propagatedBuildInputs = [ ki18n kio sonnet ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/no-qcoreapplication.patch b/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/no-qcoreapplication.patch
deleted file mode 100644
index 19ab1e1e5513..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/no-qcoreapplication.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Index: ktexteditor-5.18.0/src/syntax/data/katehighlightingindexer.cpp
-===================================================================
---- ktexteditor-5.18.0.orig/src/syntax/data/katehighlightingindexer.cpp
-+++ ktexteditor-5.18.0/src/syntax/data/katehighlightingindexer.cpp
-@@ -55,19 +55,16 @@ QStringList readListing(const QString &f
- 
- int main(int argc, char *argv[])
- {
--    // get app instance
--    QCoreApplication app(argc, argv);
--
-     // ensure enough arguments are passed
--    if (app.arguments().size() < 3)
-+    if (argc < 3)
-         return 1;
- 
-     // open schema
-     QXmlSchema schema;
--    if (!schema.load(QUrl::fromLocalFile(app.arguments().at(2))))
-+    if (!schema.load(QUrl::fromLocalFile(QString::fromLocal8Bit(argv[2]))))
-         return 2;
- 
--    const QString hlFilenamesListing = app.arguments().value(3);
-+    const QString hlFilenamesListing = QString::fromLocal8Bit(argv[3]);
-     if (hlFilenamesListing.isEmpty()) {
-         return 1;
-     }
-@@ -152,7 +149,7 @@ int main(int argc, char *argv[])
-         return anyError;
- 
-     // create outfile, after all has worked!
--    QFile outFile(app.arguments().at(1));
-+    QFile outFile(QString::fromLocal8Bit(argv[1]));
-     if (!outFile.open(QIODevice::WriteOnly | QIODevice::Truncate))
-         return 7;
- 
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/series b/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/series
deleted file mode 100644
index 46cd23829a2f..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/ktexteditor/series
+++ /dev/null
@@ -1 +0,0 @@
-no-qcoreapplication.patch
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/ktextwidgets.nix b/pkgs/development/libraries/kde-frameworks-5.18/ktextwidgets.nix
deleted file mode 100644
index e332d4ff9a83..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/ktextwidgets.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kcompletion, kconfig
-, kconfigwidgets, ki18n, kiconthemes, kservice, kwindowsystem
-, sonnet
-}:
-
-kdeFramework {
-  name = "ktextwidgets";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kcompletion kconfig kconfigwidgets kiconthemes kservice
-  ];
-  propagatedBuildInputs = [ ki18n kwindowsystem sonnet ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kunitconversion.nix b/pkgs/development/libraries/kde-frameworks-5.18/kunitconversion.nix
deleted file mode 100644
index 3cf0f847d83d..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kunitconversion.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, ki18n }:
-
-kdeFramework {
-  name = "kunitconversion";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ ki18n ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kwallet.nix b/pkgs/development/libraries/kde-frameworks-5.18/kwallet.nix
deleted file mode 100644
index 7c4177e009d2..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kwallet.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
-, kdbusaddons, kdoctools, ki18n, kiconthemes, knotifications
-, kservice, kwidgetsaddons, kwindowsystem, libgcrypt, makeQtWrapper
-}:
-
-kdeFramework {
-  name = "kwallet";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
-  buildInputs = [
-    kconfig kcoreaddons kdbusaddons kiconthemes knotifications
-    kservice kwidgetsaddons libgcrypt
-  ];
-  propagatedBuildInputs = [ ki18n kwindowsystem ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/kwalletd5"
-    wrapQtProgram "$out/bin/kwallet-query"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kwidgetsaddons.nix b/pkgs/development/libraries/kde-frameworks-5.18/kwidgetsaddons.nix
deleted file mode 100644
index d95f44d3fecf..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kwidgetsaddons.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-}:
-
-kdeFramework {
-  name = "kwidgetsaddons";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kwindowsystem.nix b/pkgs/development/libraries/kde-frameworks-5.18/kwindowsystem.nix
deleted file mode 100644
index 09ab1f2200de..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kwindowsystem.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, qtx11extras
-}:
-
-kdeFramework {
-  name = "kwindowsystem";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtx11extras ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kxmlgui.nix b/pkgs/development/libraries/kde-frameworks-5.18/kxmlgui.nix
deleted file mode 100644
index f081d5f9170e..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kxmlgui.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, attica, kconfig
-, kconfigwidgets, kglobalaccel, ki18n, kiconthemes, kitemviews
-, ktextwidgets, kwindowsystem, sonnet
-}:
-
-kdeFramework {
-  name = "kxmlgui";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    attica kconfig kiconthemes kitemviews ktextwidgets
-  ];
-  propagatedBuildInputs = [
-    kconfigwidgets kglobalaccel ki18n kwindowsystem sonnet
-  ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kxmlrpcclient.nix b/pkgs/development/libraries/kde-frameworks-5.18/kxmlrpcclient.nix
deleted file mode 100644
index 20a300b68bc8..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/kxmlrpcclient.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, ki18n, kio }:
-
-kdeFramework {
-  name = "kxmlrpcclient";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ ki18n kio ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/modemmanager-qt.nix b/pkgs/development/libraries/kde-frameworks-5.18/modemmanager-qt.nix
deleted file mode 100644
index 7d7f769d6a9b..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/modemmanager-qt.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, modemmanager
-}:
-
-kdeFramework {
-  name = "modemmanager-qt";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ modemmanager ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/networkmanager-qt.nix b/pkgs/development/libraries/kde-frameworks-5.18/networkmanager-qt.nix
deleted file mode 100644
index 333378bd1431..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/networkmanager-qt.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, networkmanager
-}:
-
-kdeFramework {
-  name = "networkmanager-qt";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ networkmanager ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/oxygen-icons5.nix b/pkgs/development/libraries/kde-frameworks-5.18/oxygen-icons5.nix
deleted file mode 100644
index ee350f8e1536..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/oxygen-icons5.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework
-, lib
-, extra-cmake-modules
-}:
-
-kdeFramework {
-  name = "oxygen-icons5";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  meta = {
-    license = lib.licenses.lgpl3Plus;
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/plasma-framework/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/plasma-framework/default.nix
deleted file mode 100644
index d8846f777231..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/plasma-framework/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ kdeFramework, lib, extra-cmake-modules, kactivities, karchive
-, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kdeclarative
-, kdoctools, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio
-, knotifications, kpackage, kservice, kwindowsystem, kxmlgui
-, makeQtWrapper, qtscript, qtx11extras
-}:
-
-kdeFramework {
-  name = "plasma-framework";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
-  buildInputs = [
-    karchive kconfig kconfigwidgets kcoreaddons kdbusaddons kguiaddons
-    kiconthemes knotifications kxmlgui qtscript
-  ];
-  propagatedBuildInputs = [
-    kactivities kdeclarative kglobalaccel ki18n kio kpackage kservice kwindowsystem
-    qtx11extras
-  ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/plasmapkg2"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/solid.nix b/pkgs/development/libraries/kde-frameworks-5.18/solid.nix
deleted file mode 100644
index afd125e3c597..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/solid.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, makeQtWrapper
-, qtdeclarative
-}:
-
-kdeFramework {
-  name = "solid";
-  nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ];
-  buildInputs = [ qtdeclarative ];
-  postInstall = ''
-    wrapQtProgram "$out/bin/solid-hardware5"
-  '';
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/sonnet.nix b/pkgs/development/libraries/kde-frameworks-5.18/sonnet.nix
deleted file mode 100644
index 943fe04a1c92..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/sonnet.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-, hunspell
-}:
-
-kdeFramework {
-  name = "sonnet";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ hunspell ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/srcs.nix b/pkgs/development/libraries/kde-frameworks-5.18/srcs.nix
deleted file mode 100644
index 12c5c30a2471..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/srcs.nix
+++ /dev/null
@@ -1,565 +0,0 @@
-# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
-{ fetchurl, mirror }:
-
-{
-  attica = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/attica-5.18.0.tar.xz";
-      sha256 = "1n6pkaak9xf7nyi0b1wr8fm5qkv7mgpsws9igd7g2xqvvqzyp5xw";
-      name = "attica-5.18.0.tar.xz";
-    };
-  };
-  baloo = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/baloo-5.18.0.tar.xz";
-      sha256 = "0sdnd6v01rcgq7v2jny0655jrghfamwyj0win7xfhx1622dfi8l8";
-      name = "baloo-5.18.0.tar.xz";
-    };
-  };
-  bluez-qt = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/bluez-qt-5.18.0.tar.xz";
-      sha256 = "17vx77w4fwdi7y394s2pqph2vmfs8n0107rmz4q7aa62q9iwdrbr";
-      name = "bluez-qt-5.18.0.tar.xz";
-    };
-  };
-  breeze-icons = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/breeze-icons-5.18.0.tar.xz";
-      sha256 = "0a4iqr5zrb56aln5hdsk5zrl23w8w8y5nmrxb093h205r36hfw4z";
-      name = "breeze-icons-5.18.0.tar.xz";
-    };
-  };
-  extra-cmake-modules = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/extra-cmake-modules-5.18.0.tar.xz";
-      sha256 = "1kp0pysa154cbp1ysgyqk03w8s335v3wmfrx4pshyfpg1s24k83y";
-      name = "extra-cmake-modules-5.18.0.tar.xz";
-    };
-  };
-  frameworkintegration = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/frameworkintegration-5.18.0.tar.xz";
-      sha256 = "06hw885mk0i2173lfdqz3hyp1fx2bndpj00hk32s3i2ggnn2y1rv";
-      name = "frameworkintegration-5.18.0.tar.xz";
-    };
-  };
-  kactivities = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kactivities-5.18.0.tar.xz";
-      sha256 = "0nqa63ds7vj87zg2gz1mx42c30l3ypfk4ghhgxwziab315bpcpmr";
-      name = "kactivities-5.18.0.tar.xz";
-    };
-  };
-  kapidox = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kapidox-5.18.0.tar.xz";
-      sha256 = "1hackjnpxijqqpn9cvnwcn9yc0jni21qgjccj74025ihdgigp70s";
-      name = "kapidox-5.18.0.tar.xz";
-    };
-  };
-  karchive = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/karchive-5.18.0.tar.xz";
-      sha256 = "0ph59w8y49b3znaj9c1qk0zwkg0pmjjcyr4jlv5w56mh0zkq37h5";
-      name = "karchive-5.18.0.tar.xz";
-    };
-  };
-  kauth = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kauth-5.18.0.tar.xz";
-      sha256 = "14kvy7cbw31sc48f0aldpi52wxhwd69prwadvjhqwy912s8kr04n";
-      name = "kauth-5.18.0.tar.xz";
-    };
-  };
-  kbookmarks = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kbookmarks-5.18.0.tar.xz";
-      sha256 = "0qi2f612s756qh5ldibscfhcq8q802vgr2497fm9xl95kfqmcg1n";
-      name = "kbookmarks-5.18.0.tar.xz";
-    };
-  };
-  kcmutils = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kcmutils-5.18.0.tar.xz";
-      sha256 = "1m53308icq1x1877afcxlhygl56dsl50fiwmfjf0g5pfmnql3qfp";
-      name = "kcmutils-5.18.0.tar.xz";
-    };
-  };
-  kcodecs = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kcodecs-5.18.0.tar.xz";
-      sha256 = "1injdpz7kdf2j6is2w3v3xgd9ahgls0j632q03q7qa48xp4wx64h";
-      name = "kcodecs-5.18.0.tar.xz";
-    };
-  };
-  kcompletion = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kcompletion-5.18.0.tar.xz";
-      sha256 = "0gkj4gplm7qwx4nqhhph5h3jp4h8b22ssmw0vvv6bpsnq7idk76b";
-      name = "kcompletion-5.18.0.tar.xz";
-    };
-  };
-  kconfig = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kconfig-5.18.0.tar.xz";
-      sha256 = "1s7fvhflsvv8zwb9cr50m3hxh0d4z5grh0nkri5ngzqb123wi91n";
-      name = "kconfig-5.18.0.tar.xz";
-    };
-  };
-  kconfigwidgets = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kconfigwidgets-5.18.0.tar.xz";
-      sha256 = "08i12040prs2nxybxbbf3w0n91c9p0c64j8fz18axi4yszrmv8im";
-      name = "kconfigwidgets-5.18.0.tar.xz";
-    };
-  };
-  kcoreaddons = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kcoreaddons-5.18.0.tar.xz";
-      sha256 = "05y8pan8hdn6qj2si9v9igjrx00l7bqzhdm2qq9vbjrv5xj8axzf";
-      name = "kcoreaddons-5.18.0.tar.xz";
-    };
-  };
-  kcrash = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kcrash-5.18.0.tar.xz";
-      sha256 = "0rk27zr0mb4jlicm1s175x139avzi0q4jk3mlczfg4rkrxzgbx5w";
-      name = "kcrash-5.18.0.tar.xz";
-    };
-  };
-  kdbusaddons = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kdbusaddons-5.18.0.tar.xz";
-      sha256 = "0l9ww3zaz1x6bk9axmm6zlj1dcn0gr0z61v9lw5y31rypxclhza8";
-      name = "kdbusaddons-5.18.0.tar.xz";
-    };
-  };
-  kdeclarative = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kdeclarative-5.18.0.tar.xz";
-      sha256 = "0mpvwn26msg3sc9z1r1vnw32rkl842jxpvpx2vg8kwcd9snwx9a6";
-      name = "kdeclarative-5.18.0.tar.xz";
-    };
-  };
-  kded = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kded-5.18.0.tar.xz";
-      sha256 = "0y5sn7yxalylcwcz2j4h349lll2vkf44bw3n6w2cbqqf5wnr2za5";
-      name = "kded-5.18.0.tar.xz";
-    };
-  };
-  kdelibs4support = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/portingAids/kdelibs4support-5.18.0.tar.xz";
-      sha256 = "0flhhjnnm2wh6869q8gxk45wlpq0679xlklzqlxvqx7a4kxdl8d8";
-      name = "kdelibs4support-5.18.0.tar.xz";
-    };
-  };
-  kdesignerplugin = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kdesignerplugin-5.18.0.tar.xz";
-      sha256 = "163lfx8vxxdhxbn090k5r4m9vy940kfwvsyjsi8v0pp9ww49g13n";
-      name = "kdesignerplugin-5.18.0.tar.xz";
-    };
-  };
-  kdesu = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kdesu-5.18.0.tar.xz";
-      sha256 = "0dqjmvi440p4n62w9y3qw4n7fcivyg3d54fv9nrf1sx87vdw7r83";
-      name = "kdesu-5.18.0.tar.xz";
-    };
-  };
-  kdewebkit = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kdewebkit-5.18.0.tar.xz";
-      sha256 = "1ahr62xfk085kb9p2axx04gf7bpnr0vv2d4kpc4s0xrj3xi0alnl";
-      name = "kdewebkit-5.18.0.tar.xz";
-    };
-  };
-  kdnssd = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kdnssd-5.18.0.tar.xz";
-      sha256 = "12vplqfsc3zks1grmb5i4hdww0g51lv54nb1drpj42mzyi1q1v1l";
-      name = "kdnssd-5.18.0.tar.xz";
-    };
-  };
-  kdoctools = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kdoctools-5.18.0.tar.xz";
-      sha256 = "10h74lb4597fs1h88x60ykpkz47pgfa4k04h4i5l0qb5vb1jlw7d";
-      name = "kdoctools-5.18.0.tar.xz";
-    };
-  };
-  kemoticons = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kemoticons-5.18.0.tar.xz";
-      sha256 = "0lba6rzmij20ndkq0vw9zkxbjq6g98may3ypyj0kc82d3sw9hkhs";
-      name = "kemoticons-5.18.0.tar.xz";
-    };
-  };
-  kfilemetadata = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kfilemetadata-5.18.0.tar.xz";
-      sha256 = "19b8nh5x8c0w516afh8ln72vi5dk91wl8bcsqd84h3s6gw55rsm4";
-      name = "kfilemetadata-5.18.0.tar.xz";
-    };
-  };
-  kglobalaccel = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kglobalaccel-5.18.0.tar.xz";
-      sha256 = "1v22rh8c103zl63cgg4gx430qw29f9yn9k5219pcw5n57jx0n5c1";
-      name = "kglobalaccel-5.18.0.tar.xz";
-    };
-  };
-  kguiaddons = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kguiaddons-5.18.0.tar.xz";
-      sha256 = "153mjbiwg4p65c2msj8j3pycn5gys39ahg9ik7jqg7w4cjcl2jxz";
-      name = "kguiaddons-5.18.0.tar.xz";
-    };
-  };
-  khtml = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/portingAids/khtml-5.18.0.tar.xz";
-      sha256 = "0kgin1bhbx95kypsg1k318qjxz3258x3a6kkdbky3cvfmq8r5ka5";
-      name = "khtml-5.18.0.tar.xz";
-    };
-  };
-  ki18n = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/ki18n-5.18.0.tar.xz";
-      sha256 = "14vlq49a0bp1vpjb2zxkgqsd5yjmb0azri2iq9sgxxx1v6gyy9h9";
-      name = "ki18n-5.18.0.tar.xz";
-    };
-  };
-  kiconthemes = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kiconthemes-5.18.0.tar.xz";
-      sha256 = "10pj2q28y57ng26xg2211v9vy91hqqmcyxh90q1qj89clykimwid";
-      name = "kiconthemes-5.18.0.tar.xz";
-    };
-  };
-  kidletime = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kidletime-5.18.0.tar.xz";
-      sha256 = "0726nq508rpzjxvfp354jd8n14m49grv6nfv09q2zyw02cf6n9bi";
-      name = "kidletime-5.18.0.tar.xz";
-    };
-  };
-  kimageformats = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kimageformats-5.18.0.tar.xz";
-      sha256 = "1y6zc04sx4sqyfavr8nf05a1p4kyb8ic335iy5s869r6zrvljpnc";
-      name = "kimageformats-5.18.0.tar.xz";
-    };
-  };
-  kinit = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kinit-5.18.0.tar.xz";
-      sha256 = "142xm7yglssw771340bs0lk1xgsr53218zh87v6n9hchrd34zg08";
-      name = "kinit-5.18.0.tar.xz";
-    };
-  };
-  kio = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kio-5.18.0.tar.xz";
-      sha256 = "020gvxs5xp9v4pra814200nv79c9b9j59skbrxq9cazhnywnnlns";
-      name = "kio-5.18.0.tar.xz";
-    };
-  };
-  kitemmodels = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kitemmodels-5.18.0.tar.xz";
-      sha256 = "0r5r7ia1lwqll6bz92k4qgj737hsg6pfhxmycr6g88b9fiab1qw4";
-      name = "kitemmodels-5.18.0.tar.xz";
-    };
-  };
-  kitemviews = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kitemviews-5.18.0.tar.xz";
-      sha256 = "10pbh0fpzrh0ijbadjx81690p9iw34rs2waks99fc0jy3hamny3b";
-      name = "kitemviews-5.18.0.tar.xz";
-    };
-  };
-  kjobwidgets = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kjobwidgets-5.18.0.tar.xz";
-      sha256 = "0gxvh9wxnfkrxm9zc7yx579vlxs3xmihfyqs92fpkjhy2shfd2sg";
-      name = "kjobwidgets-5.18.0.tar.xz";
-    };
-  };
-  kjs = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/portingAids/kjs-5.18.0.tar.xz";
-      sha256 = "0z89l2yhs3vld1qbd6v506lksmxvwrzgdq77aghy3mbkfgz3jd62";
-      name = "kjs-5.18.0.tar.xz";
-    };
-  };
-  kjsembed = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/portingAids/kjsembed-5.18.0.tar.xz";
-      sha256 = "0mpq7aywspm6l13afrr2dis8ygyld5il21g90ij0fc1jwp95zk3d";
-      name = "kjsembed-5.18.0.tar.xz";
-    };
-  };
-  kmediaplayer = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/portingAids/kmediaplayer-5.18.0.tar.xz";
-      sha256 = "07m3agz73yzmfn8ykg0f6a2c39rkzchzqc1iam2zfydqxyvh4bxb";
-      name = "kmediaplayer-5.18.0.tar.xz";
-    };
-  };
-  knewstuff = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/knewstuff-5.18.0.tar.xz";
-      sha256 = "0mda1n0py6nm9wp89z5hkhhk9ah5sjrkzl1dshd4lq77f7p7i1g4";
-      name = "knewstuff-5.18.0.tar.xz";
-    };
-  };
-  knotifications = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/knotifications-5.18.0.tar.xz";
-      sha256 = "1npir2v4irhm6xmzf60aj5388slq6fw7jbcwjjscldrwk2ca06hz";
-      name = "knotifications-5.18.0.tar.xz";
-    };
-  };
-  knotifyconfig = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/knotifyconfig-5.18.0.tar.xz";
-      sha256 = "0q2735m2m1wrnp7g4ycnbjy7qgpjxc5fvx9zrwnd0jl5rmdw4sbb";
-      name = "knotifyconfig-5.18.0.tar.xz";
-    };
-  };
-  kpackage = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kpackage-5.18.0.tar.xz";
-      sha256 = "14q2ssf3g7ljakzpq7q9q2zbm8jqk01ybjx4s16qpw9gakcrbli9";
-      name = "kpackage-5.18.0.tar.xz";
-    };
-  };
-  kparts = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kparts-5.18.0.tar.xz";
-      sha256 = "1q4xd4dy40mh4a8vgpvdamy1242isjy9ma94cf95qqc6qgjnqxhy";
-      name = "kparts-5.18.0.tar.xz";
-    };
-  };
-  kpeople = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kpeople-5.18.0.tar.xz";
-      sha256 = "0d0mp2qz3f1bki6rfw8x6zc0rmv4n43mi06k3vh30qpiaj7crl5k";
-      name = "kpeople-5.18.0.tar.xz";
-    };
-  };
-  kplotting = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kplotting-5.18.0.tar.xz";
-      sha256 = "1jiqx9gdv69frfh8vanphp6lzc3vxn2q1lhibi7v03qkc2qaw5cc";
-      name = "kplotting-5.18.0.tar.xz";
-    };
-  };
-  kpty = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kpty-5.18.0.tar.xz";
-      sha256 = "1baz1xs22r4qli74sqwpcjmxnfrd0iqyyzg1fmljr8fvs4pdy1x1";
-      name = "kpty-5.18.0.tar.xz";
-    };
-  };
-  kross = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/portingAids/kross-5.18.0.tar.xz";
-      sha256 = "1ky13yqxhkghxqd21jrnrpjfnrkgspv0p3dfij994rkaqq8rm1r6";
-      name = "kross-5.18.0.tar.xz";
-    };
-  };
-  krunner = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/portingAids/krunner-5.18.0.tar.xz";
-      sha256 = "14c51kiwr49dbdxg8y6ivmmfr9h6p8jjd32k35pi4gpi2vlh29pf";
-      name = "krunner-5.18.0.tar.xz";
-    };
-  };
-  kservice = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kservice-5.18.0.tar.xz";
-      sha256 = "0pbs1n2i7vjgjh7j87ps8gkzmj5igw1aib1aq089m4hfrl8pbrq8";
-      name = "kservice-5.18.0.tar.xz";
-    };
-  };
-  ktexteditor = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/ktexteditor-5.18.0.tar.xz";
-      sha256 = "0fx82s5y1wya3v36qq3agmfrnff9a7v94fhifvfiwmhk2ddwwg3v";
-      name = "ktexteditor-5.18.0.tar.xz";
-    };
-  };
-  ktextwidgets = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/ktextwidgets-5.18.0.tar.xz";
-      sha256 = "1wflqfmgqa3lh3apf22sami6caclvyv7li6qiskwfkzkb0a6x373";
-      name = "ktextwidgets-5.18.0.tar.xz";
-    };
-  };
-  kunitconversion = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kunitconversion-5.18.0.tar.xz";
-      sha256 = "0gpmndyly977dzfyfhrd0q434c0qr1sinh75dwf9clmqw576jl6i";
-      name = "kunitconversion-5.18.0.tar.xz";
-    };
-  };
-  kwallet = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kwallet-5.18.0.tar.xz";
-      sha256 = "0w69y0xdvvrvcydv160z7s03y1n5vxjj3sfk530zc6bjszplvxis";
-      name = "kwallet-5.18.0.tar.xz";
-    };
-  };
-  kwidgetsaddons = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kwidgetsaddons-5.18.0.tar.xz";
-      sha256 = "06fqz7cwczp5sahg54zi46rf9jf2si88w5yizp61z8yv57kvpvk1";
-      name = "kwidgetsaddons-5.18.0.tar.xz";
-    };
-  };
-  kwindowsystem = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kwindowsystem-5.18.0.tar.xz";
-      sha256 = "01hzd4r8y4hdpynnh32qf418hxzbd67fkdq6a4vabl384aipnmk7";
-      name = "kwindowsystem-5.18.0.tar.xz";
-    };
-  };
-  kxmlgui = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kxmlgui-5.18.0.tar.xz";
-      sha256 = "0yimy0r73sv8z4wq0mkdx24icjrzmy5bciblwlnzagd61f8j8qri";
-      name = "kxmlgui-5.18.0.tar.xz";
-    };
-  };
-  kxmlrpcclient = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/kxmlrpcclient-5.18.0.tar.xz";
-      sha256 = "0h88pc3h5z3q58b7qxdn69klwr0p9ffbirzncyvxjrhr7dq36nv9";
-      name = "kxmlrpcclient-5.18.0.tar.xz";
-    };
-  };
-  modemmanager-qt = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/modemmanager-qt-5.18.0.tar.xz";
-      sha256 = "09k07wxkn511sa4hwmrs6jfx4lnnw3zcac5dzz43hhsmw74yj9az";
-      name = "modemmanager-qt-5.18.0.tar.xz";
-    };
-  };
-  networkmanager-qt = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/networkmanager-qt-5.18.0.tar.xz";
-      sha256 = "11j818ws5jz23hyilfpf3npk893hs388v1xpwhh0lkjwm60wkzln";
-      name = "networkmanager-qt-5.18.0.tar.xz";
-    };
-  };
-  oxygen-icons5 = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/oxygen-icons5-5.18.0.tar.xz";
-      sha256 = "11zmxc9n7x6iwdckwxwjji0497yjcsjli7pzr8d049lbc7xsjvi8";
-      name = "oxygen-icons5-5.18.0.tar.xz";
-    };
-  };
-  plasma-framework = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/plasma-framework-5.18.0.tar.xz";
-      sha256 = "1lxhlzx3jcqzx90kjl8w8p53nrgrkjiz1xf92ah3mygjyvi5rlh8";
-      name = "plasma-framework-5.18.0.tar.xz";
-    };
-  };
-  solid = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/solid-5.18.0.tar.xz";
-      sha256 = "0ilki4s3f3gjsdj6z41a8k4h2b52w8xrh2api0sqj0ifk2yhx6wh";
-      name = "solid-5.18.0.tar.xz";
-    };
-  };
-  sonnet = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/sonnet-5.18.0.tar.xz";
-      sha256 = "1780jvsfkasabdbk9xjhjcihcc6mxxipi2rsq2001flxnnx4kykg";
-      name = "sonnet-5.18.0.tar.xz";
-    };
-  };
-  threadweaver = {
-    version = "5.18.0";
-    src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.18/threadweaver-5.18.0.tar.xz";
-      sha256 = "00c9vvyhyysg0cdlmvpls0h3pdbbhhwfxlm9l9i9r3j8x6rigm54";
-      name = "threadweaver-5.18.0.tar.xz";
-    };
-  };
-}
diff --git a/pkgs/development/libraries/kde-frameworks-5.18/threadweaver.nix b/pkgs/development/libraries/kde-frameworks-5.18/threadweaver.nix
deleted file mode 100644
index 52817921cc72..000000000000
--- a/pkgs/development/libraries/kde-frameworks-5.18/threadweaver.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kdeFramework, lib
-, extra-cmake-modules
-}:
-
-kdeFramework {
-  name = "threadweaver";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
-}
diff --git a/pkgs/development/libraries/libspectre/default.nix b/pkgs/development/libraries/libspectre/default.nix
index 0e5f976c1224..5c10fff50ad3 100644
--- a/pkgs/development/libraries/libspectre/default.nix
+++ b/pkgs/development/libraries/libspectre/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1v63lqc6bhhxwkpa43qmz8phqs8ci4dhzizyy16d3vkb20m846z8";
   };
 
+  patches = [ ./libspectre-0.2.7-gs918.patch ];
+
   buildInputs = [
     # Need `libgs.so'.
     pkgconfig ghostscript cairo /*for tests*/
diff --git a/pkgs/development/libraries/libspectre/libspectre-0.2.7-gs918.patch b/pkgs/development/libraries/libspectre/libspectre-0.2.7-gs918.patch
new file mode 100644
index 000000000000..e9a4eda192ba
--- /dev/null
+++ b/pkgs/development/libraries/libspectre/libspectre-0.2.7-gs918.patch
@@ -0,0 +1,42 @@
+Fixed error namespace for >=ghostscript-gpl-9.18
+
+https://bugs.gentoo.org/563540
+
+--- libspectre-0.2.7/libspectre/spectre-gs.c
++++ libspectre-0.2.7/libspectre/spectre-gs.c
+@@ -43,12 +43,12 @@
+ 	
+ 	if (code <= -100) {
+ 		switch (code) {
+-			case e_Fatal:
++			case gs_error_Fatal:
+ 				fprintf (stderr, "fatal internal error %d", code);
+ 				return TRUE;
+ 				break;
+ 
+-			case e_ExecStackUnderflow:
++			case gs_error_ExecStackUnderflow:
+ 				fprintf (stderr, "stack overflow %d", code);
+ 				return TRUE;
+ 				break;
+@@ -109,9 +109,9 @@
+ 		set = _spectre_strdup_printf ("%d %d translate\n", -x, -y);
+ 		error = gsapi_run_string_continue (ghostscript_instance, set, strlen (set),
+ 						   0, &exit_code);
+-		error = error == e_NeedInput ? 0 : error;
++		error = error == gs_error_NeedInput ? 0 : error;
+ 		free (set);
+-		if (error != e_NeedInput && critic_error_code (error)) {
++		if (error != gs_error_NeedInput && critic_error_code (error)) {
+ 			fclose (fd);
+ 			return FALSE;
+ 		}
+@@ -126,7 +126,7 @@
+ 		read = fread (buf, sizeof (char), to_read, fd);
+ 		error = gsapi_run_string_continue (ghostscript_instance,
+ 						   buf, read, 0, &exit_code);
+-		error = error == e_NeedInput ? 0 : error;
++		error = error == gs_error_NeedInput ? 0 : error;
+ 		left -= read;
+ 	}
+ 	
diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix
index 12de07ced32d..557d0f591553 100644
--- a/pkgs/development/libraries/libva/default.nix
+++ b/pkgs/development/libraries/libva/default.nix
@@ -1,18 +1,25 @@
-{ stdenv, fetchurl, libX11, pkgconfig, libXext, libdrm, libXfixes, wayland, libffi
-, mesa ? null
+{ stdenv, lib, fetchurl, libX11, pkgconfig, libXext, libdrm, libXfixes, wayland, libffi
+, mesa_noglu ? null
 }:
 
-stdenv.mkDerivation rec {
-  name = "libva-1.6.1";
+let
+  withMesa = mesa_noglu != null;
+in stdenv.mkDerivation rec {
+  name = "libva-1.6.2";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/vaapi/releases/libva/${name}.tar.bz2";
-    sha256 = "0bjfb5s8dk3lql843l91ffxzlq47isqks5sj19cxh7j3nhzw58kz";
+    sha256 = "1l4bij21shqbfllbxicmqgmay4v509v9hpxyyia9wm7gvsfg05y4";
   };
 
-  buildInputs = [ libX11 libXext pkgconfig libdrm libXfixes wayland libffi mesa ];
+  buildInputs = [ libX11 libXext pkgconfig libdrm libXfixes wayland libffi mesa_noglu ];
 
-  configureFlags = stdenv.lib.optional (mesa != null) "--enable-glx";
+  configureFlags = lib.optionals withMesa [
+    "--with-drivers-path=${mesa_noglu.driverLink}/lib/dri"
+    "--enable-glx"
+  ];
+
+  installFlags = [ "dummy_drv_video_ladir=$(out)/lib/dri" ];
 
   meta = with stdenv.lib; {
     homepage = http://www.freedesktop.org/wiki/Software/vaapi;
diff --git a/pkgs/development/libraries/libvdpau-va-gl/default.nix b/pkgs/development/libraries/libvdpau-va-gl/default.nix
new file mode 100644
index 000000000000..51fb858d8bef
--- /dev/null
+++ b/pkgs/development/libraries/libvdpau-va-gl/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, libX11, libpthreadstubs, libvdpau, glib
+, libva, ffmpeg, mesa_glu }:
+
+let
+  version = "0.3.4";
+
+in stdenv.mkDerivation rec {
+  name = "libvdpau-va-gl-${version}";
+
+  src = fetchFromGitHub {
+    owner = "i-rinat";
+    repo = "libvdpau-va-gl";
+    rev = "v${version}";
+    sha256 = "1909f3srm2iy2hv4m6jxg1nxrh9xgsnjs07wfzw3ais1fww0i2nn";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ libX11 libpthreadstubs libvdpau glib libva ffmpeg mesa_glu ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/i-rinat/libvdpau-va-gl;
+    description = "VDPAU driver with OpenGL/VAAPI backend";
+    license = licenses.lgpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index 6c5d5a91ad88..446f2917fe71 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, xorg }:
+{ stdenv, fetchurl, pkgconfig, xorg, mesa_noglu }:
 
 stdenv.mkDerivation rec {
   name = "libvdpau-1.1.1";
@@ -12,6 +12,11 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ xorg.libX11 ];
 
+  configureFlags = stdenv.lib.optional stdenv.isLinux
+    "--with-module-dir=${mesa_noglu.driverLink}/lib/vdpau";
+
+  installFlags = [ "moduledir=$(out)/lib/vdpau" ];
+
   meta = with stdenv.lib; {
     homepage = http://people.freedesktop.org/~aplattner/vdpau/;
     description = "Library to use the Video Decode and Presentation API for Unix (VDPAU)";
diff --git a/pkgs/development/libraries/libxslt/default.nix b/pkgs/development/libraries/libxslt/default.nix
index 3579e99ec7a8..9aa70ea04716 100644
--- a/pkgs/development/libraries/libxslt/default.nix
+++ b/pkgs/development/libraries/libxslt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libxml2, findXMLCatalogs }:
+{ stdenv, fetchurl, fetchpatch, libxml2, findXMLCatalogs }:
 
 stdenv.mkDerivation rec {
   name = "libxslt-1.1.28";
@@ -8,14 +8,21 @@ stdenv.mkDerivation rec {
     sha256 = "13029baw9kkyjgr7q3jccw2mz38amq7mmpr5p3bh775qawd1bisz";
   };
 
+  patches = stdenv.lib.optional stdenv.isSunOS ./patch-ah.patch
+    ++ [
+      (fetchpatch {
+        name = "CVE-2015-7995.patch";
+        url = "http://git.gnome.org/browse/libxslt/patch/?id=7ca19df892ca22";
+        sha256 = "1xzg0q94dzbih9nvqp7g9ihz0a3qb0w23l1158m360z9smbi8zbd";
+      })
+    ];
+
   outputs = [ "out" "doc" ];
 
   buildInputs = [ libxml2 ];
 
   propagatedBuildInputs = [ findXMLCatalogs ];
 
-  patches = stdenv.lib.optionals stdenv.isSunOS [ ./patch-ah.patch ];
-
   configureFlags = [
     "--with-libxml-prefix=${libxml2}"
     "--without-python"
diff --git a/pkgs/development/libraries/live555/default.nix b/pkgs/development/libraries/live555/default.nix
index f61f2723752d..de4d295ebe3b 100644
--- a/pkgs/development/libraries/live555/default.nix
+++ b/pkgs/development/libraries/live555/default.nix
@@ -2,14 +2,14 @@
 
 # Based on https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD
 let
-  version = "2015.10.12";
+  version = "2016.02.09";
 in
 stdenv.mkDerivation {
   name = "live555-${version}";
 
   src = fetchurl { # the upstream doesn't provide a stable URL
     url = "mirror://sourceforge/slackbuildsdirectlinks/live.${version}.tar.gz";
-    sha256 = "05qwws4hda4x3l4ym22k55cc9j07w7g5vj3r18dancgf0fla40j4";
+    sha256 = "02z2f8z5cy0ajnh9pgar40lsxdknfw5cbyw52138hxnpr6adrvak";
   };
 
   postPatch = "sed 's,/bin/rm,rm,g' -i genMakefiles";
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index f2b53fc2e595..94eed4193c35 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -22,7 +22,7 @@ else
 */
 
 let
-  version = "11.0.8";
+  version = "11.1.1";
   # this is the default search path for DRI drivers
   driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
 in
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
         + head (splitString "." version) + ''.x/${version}/mesa-${version}.tar.xz'')
       "https://launchpad.net/mesa/trunk/${version}/+download/mesa-${version}.tar.xz"
     ];
-    sha256 = "5696e4730518b6805d2ed5def393c4293f425a2c2c01bd5ed4bdd7ad62f7ad75";
+    sha256 = "087xlxl8dzmhzjilpsdiy19dn106spq120c9ndgnn4qlqm7hgnv4";
   };
 
   prePatch = "patchShebangs .";
@@ -158,8 +158,6 @@ stdenv.mkDerivation {
     done
   '' + /* set the default search path for DRI drivers; used e.g. by X server */ ''
     substituteInPlace "$out/lib/pkgconfig/dri.pc" --replace '$(drivers)' "${driverLink}"
-  '' + /* move vdpau drivers to $drivers/lib, so they are found */ ''
-    mv "$drivers"/lib/vdpau/* "$drivers"/lib/ && rmdir "$drivers"/lib/vdpau
   '';
   #ToDo: @vcunat isn't sure if drirc will be found when in $out/etc/, but it doesn't seem important ATM
 
diff --git a/pkgs/development/libraries/openssl/1.0.2.x.nix b/pkgs/development/libraries/openssl/1.0.2.x.nix
deleted file mode 100644
index c94033d0fefd..000000000000
--- a/pkgs/development/libraries/openssl/1.0.2.x.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-{ stdenv, fetchurl, perl
-, withCryptodev ? false, cryptodevHeaders }:
-
-with stdenv.lib;
-let
-  opensslCrossSystem = attrByPath [ "openssl" "system" ]
-    (throw "openssl needs its platform name cross building" null)
-    stdenv.cross;
-in
-stdenv.mkDerivation rec {
-  name = "openssl-1.0.2f";
-
-  src = fetchurl {
-    urls = [
-      "http://www.openssl.org/source/${name}.tar.gz"
-      "http://openssl.linux-mirror.org/source/${name}.tar.gz"
-    ];
-    sha256 = "932b4ee4def2b434f85435d9e3e19ca8ba99ce9a065a61524b429a9d5e9b2e9c";
-  };
-
-  patches = optional stdenv.isCygwin ./1.0.1-cygwin64.patch;
-
-  nativeBuildInputs = [ perl ];
-  buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders;
-
-  # On x86_64-darwin, "./config" misdetects the system as
-  # "darwin-i386-cc".  So specify the system type explicitly.
-  configureScript =
-    if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc"
-    else if stdenv.system == "x86_64-solaris" then "./Configure solaris64-x86_64-gcc"
-    else "./config";
-
-  configureFlags = [
-    "shared"
-    "--libdir=lib"
-    "--openssldir=etc/ssl"
-  ] ++ stdenv.lib.optionals withCryptodev [
-    "-DHAVE_CRYPTODEV"
-    "-DUSE_CRYPTODEV_DIGESTS"
-  ];
-
-  makeFlags = [
-    "MANDIR=$(out)/share/man"
-  ];
-
-  # Parallel building is broken in OpenSSL.
-  enableParallelBuilding = false;
-
-  postInstall = ''
-    # If we're building dynamic libraries, then don't install static
-    # libraries.
-    if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then
-        rm "$out/lib/"*.a
-    fi
-
-    # remove dependency on Perl at runtime
-    rm -r $out/etc/ssl/misc $out/bin/c_rehash
-  '';
-
-  postFixup = ''
-    # Check to make sure we don't depend on perl
-    if grep -r '${perl}' $out; then
-      echo "Found an erroneous dependency on perl ^^^" >&2
-      exit 1
-    fi
-  '';
-
-  crossAttrs = {
-    # upstream patch: https://rt.openssl.org/Ticket/Display.html?id=2558
-    postPatch = ''
-       sed -i -e 's/[$][(]CROSS_COMPILE[)]windres/$(WINDRES)/' Makefile.shared
-    '';
-    preConfigure=''
-      # It's configure does not like --build or --host
-      export configureFlags="${concatStringsSep " " (configureFlags ++ [ opensslCrossSystem ])}"
-      # WINDRES and RANLIB need to be prefixed when cross compiling;
-      # the openssl configure script doesn't do that for us
-      export WINDRES=${stdenv.cross.config}-windres
-      export RANLIB=${stdenv.cross.config}-ranlib
-    '';
-    configureScript = "./Configure";
-  };
-
-  meta = {
-    homepage = http://www.openssl.org/;
-    description = "A cryptographic library that implements the SSL and TLS protocols";
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.simons ];
-    priority = 10; # resolves collision with ‘man-pages’
-  };
-}
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 21e7706be8cb..6300068f09fe 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -2,93 +2,109 @@
 , withCryptodev ? false, cryptodevHeaders }:
 
 with stdenv.lib;
+
 let
-  opensslCrossSystem = attrByPath [ "openssl" "system" ]
-    (throw "openssl needs its platform name cross building" null)
-    stdenv.cross;
-in
-stdenv.mkDerivation rec {
-  name = "openssl-1.0.1q";
-
-  src = fetchurl {
-    urls = [
-      "http://www.openssl.org/source/${name}.tar.gz"
-      "http://openssl.linux-mirror.org/source/${name}.tar.gz"
+
+  opensslCrossSystem = stdenv.cross.openssl.system or 
+    (throw "openssl needs its platform name cross building");
+
+  common = { version, sha256 }: stdenv.mkDerivation rec {
+    name = "openssl-${version}";
+
+    src = fetchurl {
+      url = "http://www.openssl.org/source/${name}.tar.gz";
+      inherit sha256;
+    };
+
+    outputs = [ "out" "man" ];
+
+    patches =
+      [ ./use-etc-ssl-certs.patch ]
+      ++ optional stdenv.isCygwin ./1.0.1-cygwin64.patch
+      ++ optional (stdenv.isDarwin || (stdenv ? cross && stdenv.cross.libc == "libSystem")) ./darwin-arch.patch;
+
+    nativeBuildInputs = [ perl ];
+    buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders;
+
+    # On x86_64-darwin, "./config" misdetects the system as
+    # "darwin-i386-cc".  So specify the system type explicitly.
+    configureScript =
+      if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc"
+      else if stdenv.system == "x86_64-solaris" then "./Configure solaris64-x86_64-gcc"
+      else "./config";
+
+    configureFlags = [
+      "shared"
+      "--libdir=lib"
+      "--openssldir=etc/ssl"
+    ] ++ stdenv.lib.optionals withCryptodev [
+      "-DHAVE_CRYPTODEV"
+      "-DUSE_CRYPTODEV_DIGESTS"
     ];
-    sha256 = "1dvz0hx7fjxag06b51pawy154y6d2xajm5rwxmfnlq7ax628nrdk";
-  };
 
-  outputs = [ "out" "man" ];
-
-  patches = optional stdenv.isCygwin ./1.0.1-cygwin64.patch
-    ++ optional (stdenv.isDarwin || (stdenv ? cross && stdenv.cross.libc == "libSystem")) ./darwin-arch.patch;
-
-  nativeBuildInputs = [ perl ];
-  buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders;
-
-  # On x86_64-darwin, "./config" misdetects the system as
-  # "darwin-i386-cc".  So specify the system type explicitly.
-  configureScript =
-    if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc"
-    else if stdenv.system == "x86_64-solaris" then "./Configure solaris64-x86_64-gcc"
-    else "./config";
-
-  configureFlags = [
-    "shared"
-    "--libdir=lib"
-    "--openssldir=etc/ssl"
-  ] ++ stdenv.lib.optionals withCryptodev [
-    "-DHAVE_CRYPTODEV"
-    "-DUSE_CRYPTODEV_DIGESTS"
-  ];
-
-  makeFlags = [
-    "MANDIR=$(out)/share/man"
-  ];
-
-  # Parallel building is broken in OpenSSL.
-  enableParallelBuilding = false;
-
-  postInstall = ''
-    # If we're building dynamic libraries, then don't install static
-    # libraries.
-    if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then
-        rm "$out/lib/"*.a
-    fi
-
-    # remove dependency on Perl at runtime
-    rm -r $out/etc/ssl/misc $out/bin/c_rehash
-  '';
-
-  postFixup = ''
-    # Check to make sure we don't depend on perl
-    if grep -r '${perl}' $out; then
-      echo "Found an erroneous dependency on perl ^^^" >&2
-      exit 1
-    fi
-  '';
-
-  crossAttrs = {
-    # upstream patch: https://rt.openssl.org/Ticket/Display.html?id=2558
-    postPatch = ''
-       sed -i -e 's/[$][(]CROSS_COMPILE[)]windres/$(WINDRES)/' Makefile.shared
+    makeFlags = [
+      "MANDIR=$(out)/share/man"
+    ];
+
+    # Parallel building is broken in OpenSSL.
+    enableParallelBuilding = false;
+
+    postInstall = ''
+      # If we're building dynamic libraries, then don't install static
+      # libraries.
+      if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then
+          rm "$out/lib/"*.a
+      fi
+
+      # remove dependency on Perl at runtime
+      rm -r $out/etc/ssl/misc $out/bin/c_rehash
+
+      rmdir $out/etc/ssl/{certs,private}
     '';
-    preConfigure=''
-      # It's configure does not like --build or --host
-      export configureFlags="${concatStringsSep " " (configureFlags ++ [ opensslCrossSystem ])}"
-      # WINDRES and RANLIB need to be prefixed when cross compiling;
-      # the openssl configure script doesn't do that for us
-      export WINDRES=${stdenv.cross.config}-windres
-      export RANLIB=${stdenv.cross.config}-ranlib
+
+    postFixup = ''
+      # Check to make sure we don't depend on perl
+      if grep -r '${perl}' $out; then
+        echo "Found an erroneous dependency on perl ^^^" >&2
+        exit 1
+      fi
     '';
-    configureScript = "./Configure";
+
+    crossAttrs = {
+      # upstream patch: https://rt.openssl.org/Ticket/Display.html?id=2558
+      postPatch = ''
+         sed -i -e 's/[$][(]CROSS_COMPILE[)]windres/$(WINDRES)/' Makefile.shared
+      '';
+      preConfigure=''
+        # It's configure does not like --build or --host
+        export configureFlags="${concatStringsSep " " (configureFlags ++ [ opensslCrossSystem ])}"
+        # WINDRES and RANLIB need to be prefixed when cross compiling;
+        # the openssl configure script doesn't do that for us
+        export WINDRES=${stdenv.cross.config}-windres
+        export RANLIB=${stdenv.cross.config}-ranlib
+      '';
+      configureScript = "./Configure";
+    };
+
+    meta = {
+      homepage = http://www.openssl.org/;
+      description = "A cryptographic library that implements the SSL and TLS protocols";
+      platforms = stdenv.lib.platforms.all;
+      maintainers = [ stdenv.lib.maintainers.simons ];
+      priority = 10; # resolves collision with ‘man-pages’
+    };
   };
 
-  meta = {
-    homepage = http://www.openssl.org/;
-    description = "A cryptographic library that implements the SSL and TLS protocols";
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.simons ];
-    priority = 10; # resolves collision with ‘man-pages’
+in {
+
+  openssl_1_0_1 = common {
+    version = "1.0.1r";
+    sha256 = "0iik7a3b0mrfrxzngdf7ywfscg9inbw77y0jp2ccw0gdap9xhjvq";
   };
+
+  openssl_1_0_2 = common {
+    version = "1.0.2f";
+    sha256 = "932b4ee4def2b434f85435d9e3e19ca8ba99ce9a065a61524b429a9d5e9b2e9c";
+  };
+
 }
diff --git a/pkgs/development/libraries/openssl/use-etc-ssl-certs.patch b/pkgs/development/libraries/openssl/use-etc-ssl-certs.patch
new file mode 100644
index 000000000000..813c6bdf44ab
--- /dev/null
+++ b/pkgs/development/libraries/openssl/use-etc-ssl-certs.patch
@@ -0,0 +1,13 @@
+diff -ru -x '*~' openssl-1.0.1r-orig/crypto/cryptlib.h openssl-1.0.1r/crypto/cryptlib.h
+--- openssl-1.0.1r-orig/crypto/cryptlib.h	2016-01-28 14:38:30.000000000 +0100
++++ openssl-1.0.1r/crypto/cryptlib.h	2016-02-03 12:54:29.193165176 +0100
+@@ -81,8 +81,8 @@
+ 
+ # ifndef OPENSSL_SYS_VMS
+ #  define X509_CERT_AREA          OPENSSLDIR
+ #  define X509_CERT_DIR           OPENSSLDIR "/certs"
+-#  define X509_CERT_FILE          OPENSSLDIR "/cert.pem"
++#  define X509_CERT_FILE          "/etc/ssl/certs/ca-certificates.crt"
+ #  define X509_PRIVATE_DIR        OPENSSLDIR "/private"
+ # else
+ #  define X509_CERT_AREA          "SSLROOT:[000000]"
diff --git a/pkgs/development/libraries/pcre/cve-2015-3210.patch b/pkgs/development/libraries/pcre/cve-2015-3210.patch
deleted file mode 100644
index c97849fb70c7..000000000000
--- a/pkgs/development/libraries/pcre/cve-2015-3210.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 68ff1beb43bb3d4d8838f3285c97023d1e50513a Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Fri, 15 May 2015 17:17:03 +0000
-Subject: [PATCH] Fix buffer overflow for named recursive back reference when
- the name is duplicated.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream commit ported to pcre-8.37:
-
-commit 4b79af6b4cbeb5326ae5e4d83f3e935e00286c19
-Author: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date:   Fri May 15 17:17:03 2015 +0000
-
-    Fix buffer overflow for named recursive back reference when the name is
-    duplicated.
-
-    git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1558 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-This fixes CVE-2015-3210.
-
-Signed-off-by: Petr Písař <ppisar@redhat.com>
----
- pcre_compile.c       | 16 ++++++++++++++--
- testdata/testinput2  |  2 ++
- testdata/testoutput2 |  2 ++
- 3 files changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/pcre_compile.c b/pcre_compile.c
-index 0efad26..6f06912 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -7173,14 +7173,26 @@ for (;; ptr++)
-           number. If the name is not found, set the value to 0 for a forward
-           reference. */
- 
-+          recno = 0;
-           ng = cd->named_groups;
-           for (i = 0; i < cd->names_found; i++, ng++)
-             {
-             if (namelen == ng->length &&
-                 STRNCMP_UC_UC(name, ng->name, namelen) == 0)
--              break;
-+              {
-+              open_capitem *oc;
-+              recno = ng->number;
-+              if (is_recurse) break;
-+              for (oc = cd->open_caps; oc != NULL; oc = oc->next)         
-+                {          
-+                if (oc->number == recno)                                     
-+                  {               
-+                  oc->flag = TRUE;                                      
-+                  break;
-+                  }                                                         
-+                }                          
-+              }    
-             }
--          recno = (i < cd->names_found)? ng->number : 0;
- 
-           /* Count named back references. */
- 
-diff --git a/testdata/testinput2 b/testdata/testinput2
-index 58fe53b..83bb471 100644
---- a/testdata/testinput2
-+++ b/testdata/testinput2
-@@ -4152,4 +4152,6 @@ backtracking verbs. --/
- 
- /((?2){73}(?2))((?1))/
- 
-+"(?J)(?'d'(?'d'\g{d}))"
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index b718df0..7dff52a 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -14423,4 +14423,6 @@ Failed: lookbehind assertion is not fixed length at offset 17
- 
- /((?2){73}(?2))((?1))/
- 
-+"(?J)(?'d'(?'d'\g{d}))"
-+
- /-- End of testinput2 --/
--- 
-2.4.3
-
diff --git a/pkgs/development/libraries/pcre/cve-2015-5073.patch b/pkgs/development/libraries/pcre/cve-2015-5073.patch
deleted file mode 100644
index 16fd45c87b1d..000000000000
--- a/pkgs/development/libraries/pcre/cve-2015-5073.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 354e1f8e921dcb9cf2f3a5eac93cd826d01a7d8a Mon Sep 17 00:00:00 2001
-From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date: Tue, 23 Jun 2015 16:34:53 +0000
-Subject: [PATCH] Fix buffer overflow for forward reference within backward
- assertion with excess closing parenthesis. Bugzilla 1651.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This is upstream commit ported to 8.37:
-
-commit 764692f9aea9eab50fdba6cb537441d8b34c6c37
-Author: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
-Date:   Tue Jun 23 16:34:53 2015 +0000
-
-    Fix buffer overflow for forward reference within backward assertion with excess
-    closing parenthesis. Bugzilla 1651.
-
-    git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1571 2f5784b3-3f2a-0410-8824-cb99058d5e15
-
-It fixes CVE-2015-5073.
-
-Signed-off-by: Petr Písař <ppisar@redhat.com>
----
- pcre_compile.c       | 2 +-
- testdata/testinput2  | 2 ++
- testdata/testoutput2 | 3 +++
- 3 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/pcre_compile.c b/pcre_compile.c
-index 6f06912..b66b1f6 100644
---- a/pcre_compile.c
-+++ b/pcre_compile.c
-@@ -9392,7 +9392,7 @@ OP_RECURSE that are not fixed length get a diagnosic with a useful offset. The
- exceptional ones forgo this. We scan the pattern to check that they are fixed
- length, and set their lengths. */
- 
--if (cd->check_lookbehind)
-+if (errorcode == 0 && cd->check_lookbehind)
-   {
-   pcre_uchar *cc = (pcre_uchar *)codestart;
- 
-diff --git a/testdata/testinput2 b/testdata/testinput2
-index 83bb471..5cc9ce6 100644
---- a/testdata/testinput2
-+++ b/testdata/testinput2
-@@ -4154,4 +4154,6 @@ backtracking verbs. --/
- 
- "(?J)(?'d'(?'d'\g{d}))"
- 
-+/(?=di(?<=(?1))|(?=(.))))/
-+
- /-- End of testinput2 --/
-diff --git a/testdata/testoutput2 b/testdata/testoutput2
-index 7dff52a..4decb8d 100644
---- a/testdata/testoutput2
-+++ b/testdata/testoutput2
-@@ -14425,4 +14425,7 @@ Failed: lookbehind assertion is not fixed length at offset 17
- 
- "(?J)(?'d'(?'d'\g{d}))"
- 
-+/(?=di(?<=(?1))|(?=(.))))/
-+Failed: unmatched parentheses at offset 23
-+
- /-- End of testinput2 --/
--- 
-2.4.3
-
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index 3370e910565e..92f53b067204 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -5,17 +5,15 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "pcre-8.37";
+  name = "pcre-8.38";
 
   src = fetchurl {
     url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
-    sha256 = "17bqykp604p7376wj3q2nmjdhrb6v1ny8q08zdwi7qvc02l9wrsi";
+    sha256 = "1pvra19ljkr5ky35y2iywjnsckrs9ch2anrf5b0dc91hw8v2vq5r";
   };
 
   patches =
-    [ ./cve-2015-3210.patch
-      ./cve-2015-5073.patch
-    ];
+    [ ];
 
   outputs = [ "out" "doc" "man" ];
 
diff --git a/pkgs/development/libraries/qpdf/default.nix b/pkgs/development/libraries/qpdf/default.nix
index 340f4558f819..8f886421d55b 100644
--- a/pkgs/development/libraries/qpdf/default.nix
+++ b/pkgs/development/libraries/qpdf/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, pcre, zlib, perl }:
 
-let version = "5.1.3";
+let version = "6.0.0";
 in
 stdenv.mkDerivation rec {
   name = "qpdf-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/qpdf/qpdf/${version}/${name}.tar.gz";
-    sha256 = "1lq1v7xghvl6p4hgrwbps3a13ad6lh4ib3myimb83hxgsgd4n5nm";
+    sha256 = "0csj2p2gkxrc0rk8ykymlsdgfas96vzf1dip3y1x7z1q9plwgzd9";
   };
 
   nativeBuildInputs = [ perl ];
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   doCheck = true;
+  enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     homepage = http://qpdf.sourceforge.net/; 
diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
index 24e5ccb36f37..e6927ffb9ca4 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
@@ -26,6 +26,12 @@
 let
   inherit (srcs.qt5) version;
   system-x86_64 = lib.elem stdenv.system lib.platforms.x86_64;
+
+  dontInvalidateBacking = fetchurl {
+    url = "https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=0f68f8920573cdce1729a285a92ac8582df32841;hp=24c50f8dcf7fa61ac3c3d4d6295c259a104a2b8c";
+    name = "qtbug-48321-dont-invalidate-backing-store.patch";
+    sha256 = "07vnndmvri73psz0nrs2hg0zw2i4b1k1igy2al6kwjbp7d5xpglr";
+  };
 in
 
 stdenv.mkDerivation {
@@ -49,6 +55,10 @@ stdenv.mkDerivation {
 
   postPatch =
     ''
+      cd qtbase
+      patch -p1 <${dontInvalidateBacking}
+      cd ..
+
       substituteInPlace configure --replace /bin/pwd pwd
       substituteInPlace qtbase/configure --replace /bin/pwd pwd
       substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
diff --git a/pkgs/development/libraries/vcg/default.nix b/pkgs/development/libraries/vcg/default.nix
new file mode 100644
index 000000000000..59fadbbbc1f8
--- /dev/null
+++ b/pkgs/development/libraries/vcg/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchsvn, eigen }:
+
+stdenv.mkDerivation rec {
+  name = "vcg-2016-02-14";
+
+  src = fetchsvn {
+    url = "svn://svn.code.sf.net/p/vcg/code/trunk/vcglib";
+    rev = 5688;
+    sha256 = "0hkvz2d8prrjdcc7h0xhfd9hq86lmqg17ml045x4bkiciimx0w5s";
+  };
+
+  propagatedBuildInputs = [ eigen ];
+
+  installPhase = ''
+    mkdir -p $out/include
+    cp -r vcg wrap $out/include
+    find $out -name \*.h -exec sed -i 's,<eigenlib/,<eigen3/,g' {} \;
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://vcg.isti.cnr.it/vcglib/install.html;
+    description = "C++ library for manipulation, processing and displaying with OpenGL of triangle and tetrahedral meshes";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/containers/default.nix b/pkgs/development/ocaml-modules/containers/default.nix
new file mode 100644
index 000000000000..5c2447614ada
--- /dev/null
+++ b/pkgs/development/ocaml-modules/containers/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib, cppo, gen, sequence, qtest, ounit }:
+
+let version = "0.15"; in
+
+stdenv.mkDerivation {
+  name = "ocaml-containers-${version}";
+
+  src = fetchFromGitHub {
+    owner = "c-cube";
+    repo = "ocaml-containers";
+    rev = "${version}";
+    sha256 = "13mdl8jp4ymg1wip7lqmh4224x4jnji3frm1ik55vvm3ac8caqng";
+  };
+
+  buildInputs = [ ocaml findlib cppo gen sequence qtest ounit ];
+
+  configureFlags = [
+    "--enable-unix"
+    "--enable-thread"
+    "--enable-bigarray"
+    "--enable-advanced"
+    "--enable-tests"
+    "--disable-bench"
+  ];
+
+  doCheck = true;
+  checkTarget = "test";
+
+  createFindlibDestdir = true;
+
+  meta = {
+    homepage = https://github.com/c-cube/ocaml-containers;
+    description = "A modular standard library focused on data structures";
+    longDescription = ''
+      Containers is a standard library (BSD license) focused on data structures,
+      combinators and iterators, without dependencies on unix. Every module is
+      independent and is prefixed with 'CC' in the global namespace. Some modules
+      extend the stdlib (e.g. CCList provides safe map/fold_right/append, and
+      additional functions on lists).
+
+      It also features optional libraries for dealing with strings, and
+      helpers for unix and threads.
+    '';
+    license = stdenv.lib.licenses.bsd2;
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/gen/default.nix b/pkgs/development/ocaml-modules/gen/default.nix
new file mode 100644
index 000000000000..0b8f4253e76c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/gen/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib, qtest, ounit }:
+
+let version = "0.3"; in
+
+stdenv.mkDerivation {
+  name = "ocaml-gen-${version}";
+
+  src = fetchFromGitHub {
+    owner = "c-cube";
+    repo = "gen";
+    rev = "${version}";
+    sha256 = "0xrnkcfa5q86ammf49j5hynw5563x5sa2mk7vqf7g097j1szif72";
+  };
+
+  buildInputs = [ ocaml findlib qtest ounit ];
+
+  createFindlibDestdir = true;
+
+  meta = {
+    homepage = https://github.com/c-cube/gen;
+    description = "Simple, efficient iterators for OCaml";
+    license = stdenv.lib.licenses.bsd3;
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/sequence/default.nix b/pkgs/development/ocaml-modules/sequence/default.nix
new file mode 100644
index 000000000000..d9c49ece60d7
--- /dev/null
+++ b/pkgs/development/ocaml-modules/sequence/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib, qtest, ounit }:
+
+let version = "0.6"; in
+
+stdenv.mkDerivation {
+  name = "ocaml-sequence-${version}";
+
+  src = fetchFromGitHub {
+    owner = "c-cube";
+    repo = "sequence";
+    rev = "${version}";
+    sha256 = "0mky5qas3br2x4y14dzcky212z624ydqnx8mw8w00x0c1xjpafkb";
+  };
+
+  buildInputs = [ ocaml findlib qtest ounit ];
+
+  configureFlags = [
+    "--enable-tests"
+  ];
+
+  doCheck = true;
+  checkTarget = "test";
+
+  createFindlibDestdir = true;
+
+  meta = {
+    homepage = https://github.com/c-cube/sequence;
+    description = "Simple sequence (iterator) datatype and combinators";
+    longDescription = ''
+      Simple sequence datatype, intended to transfer a finite number of
+      elements from one data structure to another. Some transformations on sequences,
+      like `filter`, `map`, `take`, `drop` and `append` can be performed before the
+      sequence is iterated/folded on.
+    '';
+    license = stdenv.lib.licenses.bsd2;
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/development/perl-modules/lwp-protocol-https-cert-file.patch b/pkgs/development/perl-modules/lwp-protocol-https-cert-file.patch
deleted file mode 100644
index 4a4b49a829d2..000000000000
--- a/pkgs/development/perl-modules/lwp-protocol-https-cert-file.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Use $SSL_CERT_FILE to get the CA certificates.
-
-diff -ru -x '*~' LWP-Protocol-https-6.02-orig/lib/LWP/Protocol/https.pm LWP-Protocol-https-6.02/lib/LWP/Protocol/https.pm
---- LWP-Protocol-https-6.02-orig/lib/LWP/Protocol/https.pm	2011-03-27 13:54:01.000000000 +0200
-+++ LWP-Protocol-https-6.02/lib/LWP/Protocol/https.pm	2011-10-07 13:23:41.398628375 +0200
-@@ -21,6 +21,11 @@
-     }
-     if ($ssl_opts{SSL_verify_mode}) {
- 	unless (exists $ssl_opts{SSL_ca_file} || exists $ssl_opts{SSL_ca_path}) {
-+            if (defined $ENV{'SSL_CERT_FILE'}) {
-+                $ssl_opts{SSL_ca_file} = $ENV{'SSL_CERT_FILE'};
-+            }
-+        }
-+	unless (exists $ssl_opts{SSL_ca_file} || exists $ssl_opts{SSL_ca_path}) {
- 	    eval {
- 		require Mozilla::CA;
- 	    };
diff --git a/pkgs/development/pharo/vm/default.nix b/pkgs/development/pharo/vm/default.nix
index 9af1b5ad5ba1..0628e8545e73 100644
--- a/pkgs/development/pharo/vm/default.nix
+++ b/pkgs/development/pharo/vm/default.nix
@@ -16,12 +16,12 @@ rec {
   };
 
   pharo-spur = pharo-vm-build rec {
-    version = "2016.01.14";
+    version = "2016.02.15";
     name = "pharo-vm-spur-i386-${version}";
     binary-basename = "pharo-spur-vm";
     src = fetchurl {
       url = "${base-url}/pharo-vm-spur-${version}.tar.bz2";
-      sha256 = "1746kisa3wkhg1kwgjs544s3f17r8h99kr728qc4nk035dxkjfbx";
+      sha256 = "1lyz6wkxg9cmhgbg32a27kyj1syvk3p3015ga83z98353xlz91rx";
     };
   };
 }
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index dab20b2f7447..15f369a44f2d 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -3,7 +3,8 @@
    (http://pypi.python.org/pypi/setuptools/), which represents a large
    number of Python packages nowadays.  */
 
-{ python, setuptools, unzip, wrapPython, lib, bootstrapped-pip }:
+{ python, setuptools, unzip, wrapPython, lib, bootstrapped-pip
+, ensureNewerSourcesHook }:
 
 { name
 
@@ -60,6 +61,7 @@ python.stdenv.mkDerivation (builtins.removeAttrs attrs ["disabled" "doCheck"] //
   name = namePrefix + name;
 
   buildInputs = [ wrapPython bootstrapped-pip ] ++ buildInputs ++ pythonPath
+    ++ [ (ensureNewerSourcesHook { year = "1980"; }) ]
     ++ (lib.optional (lib.hasSuffix "zip" attrs.src.name or "") unzip);
 
   # propagate python/setuptools to active setup-hook in nix-shell
diff --git a/pkgs/development/python-modules/matplotlib/default.nix b/pkgs/development/python-modules/matplotlib/default.nix
index 152330beac5a..1ebba52ff6f4 100644
--- a/pkgs/development/python-modules/matplotlib/default.nix
+++ b/pkgs/development/python-modules/matplotlib/default.nix
@@ -12,11 +12,11 @@ assert enableGtk2 -> pygtk != null;
 
 buildPythonPackage rec {
   name = "matplotlib-${version}";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchurl {
     url = "https://pypi.python.org/packages/source/m/matplotlib/${name}.tar.gz";
-    sha256 = "67b08b1650a00a6317d94b76a30a47320087e5244920604c5462188cba0c2646";
+    sha256 = "3ab8d968eac602145642d0db63dd8d67c85e9a5444ce0e2ecb2a8fedc7224d40";
   };
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
@@ -37,6 +37,14 @@ buildPythonPackage rec {
 
   patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin-stdenv.patch ];
 
+  checkPhase = ''
+    ${python.interpreter} tests.py
+  '';
+
+  # The entry point for running tests, tests.py, is not included in the release.
+  # https://github.com/matplotlib/matplotlib/issues/6017
+  doCheck = false;
+
   prePatch = ''
     # Failing test: ERROR: matplotlib.tests.test_style.test_use_url
     sed -i 's/test_use_url/fails/' lib/matplotlib/tests/test_style.py
@@ -52,4 +60,5 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.unix;
   };
+
 }
diff --git a/pkgs/development/tools/build-managers/apache-ant/default.nix b/pkgs/development/tools/build-managers/apache-ant/default.nix
index b15c9065e0ec..8816a005ca0f 100644
--- a/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -23,9 +23,14 @@ stdenv.mkDerivation {
       mv * $out/lib/ant/
 
       # Get rid of the manual (35 MiB).  Maybe we should put this in a
-      # separate output.  Also get rid of the Ant scripts since we
-      # provide our own.
+      # separate output.  Keep the antRun script since it's vanilla sh
+      # and needed for the <exec/> task (but since we set ANT_HOME to
+      # a weird value, we have to move antRun to a weird location).
+      # Get rid of the other Ant scripts since we provide our own.
+      mv $out/lib/ant/bin/antRun $out/bin/
       rm -rf $out/lib/ant/{manual,bin,WHATSNEW}
+      mkdir $out/lib/ant/bin
+      mv $out/bin/antRun $out/lib/ant/bin/
 
       # Install ant-contrib.
       unpackFile $contrib
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index 09e54d3dfa63..c8ed91b96fb0 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -11,7 +11,7 @@ assert wantPS -> (ps != null);
 let
   os = stdenv.lib.optionalString;
   majorVersion = "3.4";
-  minorVersion = "0";
+  minorVersion = "3";
   version = "${majorVersion}.${minorVersion}";
 in
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz";
-    sha256 = "1shwim3gfdybjx9f11ykxz5l09rh58vmvz8ip76q3i76mkv2pf55";
+    sha256 = "1yl0z422gr7zfc638chifv343vx0ig5gasvrh7nzf7b15488qgxp";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/tools/build-managers/leiningen/default.nix b/pkgs/development/tools/build-managers/leiningen/default.nix
index f4f18dac487c..8a8ab9ba91f1 100644
--- a/pkgs/development/tools/build-managers/leiningen/default.nix
+++ b/pkgs/development/tools/build-managers/leiningen/default.nix
@@ -3,18 +3,18 @@
 
 stdenv.mkDerivation rec {
   pname = "leiningen";
-  version = "2.5.3";
+  version = "2.6.1";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://raw.github.com/technomancy/leiningen/${version}/bin/lein-pkg";
-    sha256 = "0xbfg6v6f3qyi99dbqragh3za2a0agrcq9c0qbkshvp5yd0fx4h1";
+    sha256 = "1ndirl36gbba12cs5vw22k2zrbpqdmnpi1gciwqb1zbib2s1akg8";
   };
 
   jarsrc = fetchurl {
     # NOTE: This is actually a .jar, Github has issues
     url = "https://github.com/technomancy/leiningen/releases/download/${version}/${name}-standalone.zip";
-    sha256 = "1p93j03v02mf1cnli6lv9qqnx7gwxr571g8z7y06p0d4nq31c32b";
+    sha256 = "1533msarx6gb3xc2sp2nmspllnqy7anpnv9a0ifl0psxm3xph06p";
   };
 
   patches = [ ./lein-fix-jar-path.patch ];
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index e18d2dd4b475..1427e25fb939 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "jenkins-${version}";
-  version = "1.643";
+  version = "1.647";
 
   src = fetchurl {
     url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war";
-    sha256 = "b8c6387e56d04a0a4a7ec8d9dacd379fbd5d4001d01fdfcd443f9864809f9293";
+    sha256 = "03r0wic5y8yhpa353s5px7l6m63p7jkb56sh6k4k5dacsc4qcxsj";
   };
   meta = with stdenv.lib; {
     description = "An extendable open source continuous integration server";
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 547f7a81ab6c..cdef2ee58ca9 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -3,6 +3,8 @@
 , python ? null
 , guile ? null
 , target ? null
+# Support all known targets in one gdb binary.
+, multitarget ? false
 # Additional dependencies for GNU/Hurd.
 , mig ? null, hurd ? null
 
@@ -47,6 +49,7 @@ stdenv.mkDerivation rec {
       "--with-separate-debug-dir=/run/current-system/sw/lib/debug"
     ]
     ++ optional (target != null) "--target=${target.config}"
+    ++ optional multitarget "--enable-targets=all"
     ++ optional (elem stdenv.system platforms.cygwin) "--without-python";
 
   crossAttrs = {
@@ -54,7 +57,9 @@ stdenv.mkDerivation rec {
     configureFlags = with stdenv.lib;
       [ "--with-gmp=${gmp.crossDrv}" "--with-mpfr=${mpfr.crossDrv}" "--with-system-readline"
         "--with-system-zlib" "--with-expat" "--with-libexpat-prefix=${expat.crossDrv}" "--without-python"
-      ] ++ optional (target != null) "--target=${target.config}";
+      ]
+      ++ optional (target != null) "--target=${target.config}"
+      ++ optional multitarget "--enable-targets=all";
   };
 
   postInstall =
diff --git a/pkgs/development/tools/misc/msitools/default.nix b/pkgs/development/tools/misc/msitools/default.nix
new file mode 100644
index 000000000000..bdc7f4f04148
--- /dev/null
+++ b/pkgs/development/tools/misc/msitools/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, intltool, glib, pkgconfig, libgsf, libuuid, gcab, bzip2}:
+
+stdenv.mkDerivation rec {
+  version = "0.94";
+  name = "msitools-${version}";
+
+  src = fetchurl {
+    url = "http://ftp.gnome.org/pub/GNOME/sources/msitools/0.94/${name}.tar.xz";
+    sha256 = "0bndnm3mgcqkw5dhwy5l1zri4lqvjbhbn5rxz651fkxlkhab8bhm";
+  };
+
+  buildInputs = [intltool glib pkgconfig libgsf libuuid gcab bzip2];
+
+  meta = with stdenv.lib; {
+    description = "Set of programs to inspect and build Windows Installer (.MSI) files";
+    homepage = https://wiki.gnome.org/msitools;
+    license = [licenses.gpl2 licenses.lgpl21];
+    maintainer = [maintainers.vcunat];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/misc/pkgconfig/default.nix b/pkgs/development/tools/misc/pkgconfig/default.nix
index c82a626336f6..d7246d22ca73 100644
--- a/pkgs/development/tools/misc/pkgconfig/default.nix
+++ b/pkgs/development/tools/misc/pkgconfig/default.nix
@@ -2,11 +2,14 @@
 
 stdenv.mkDerivation (rec {
   name = "pkg-config-0.29";
-  
+
   setupHook = ./setup-hook.sh;
-  
+
   src = fetchurl {
-    url = "http://pkgconfig.freedesktop.org/releases/${name}.tar.gz";
+    urls = [
+      "https://pkgconfig.freedesktop.org/releases/${name}.tar.gz"
+      "http://fossies.org/linux/misc/${name}.tar.gz"
+    ];
     sha256 = "0sq09a39wj4cxf8l2jvkq067g08ywfma4v6nhprnf351s82pfl68";
   };
 
diff --git a/pkgs/development/tools/misc/rolespec/default.nix b/pkgs/development/tools/misc/rolespec/default.nix
new file mode 100644
index 000000000000..ccfe19496c15
--- /dev/null
+++ b/pkgs/development/tools/misc/rolespec/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, makeWrapper }:
+
+stdenv.mkDerivation rec {
+
+  name = "rolespec-${meta.version}";
+
+  src = fetchFromGitHub {
+    owner = "nickjj";
+    repo = "rolespec";
+    rev = "64a2092773b77f7a888522ceddd815e97b129321";
+    sha256 = "1867acxy18a3cgi84iwsp37sxglaljn1dq50amahp5zkmd8x8vnz";
+    inherit name;
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  # The default build phase (`make`) runs the test code. It's difficult to do
+  # the test in the build environment because it depends on the system package
+  # managers (apt/yum/pacman). We simply skip this phase since RoleSpec is
+  # shell based.
+  dontBuild = true;
+
+  # Wrap the program because `ROLESPEC_LIB` defaults to
+  # `/usr/local/lib/rolespec`.
+  installPhase = ''
+    make install PREFIX=$out
+    wrapProgram $out/bin/rolespec --set ROLESPEC_LIB $out/lib/rolespec
+  '';
+
+  # Since RoleSpec installs the shell script files in `lib` directory, the
+  # fixup phase shows some warnings. Disable these actions.
+  dontPatchELF = true;
+  dontStrip = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/nickjj/rolespec";
+    description = "A test library for testing Ansible roles";
+    longDescription = ''
+      A shell based test library for Ansible that works both locally and over
+      Travis-CI.
+    '';
+    downloadPage = "https://github.com/nickjj/rolespec";
+    license = licenses.gpl3;
+    version = "20160105";
+    maintainers = [ maintainers.dochang ];
+  };
+
+}
diff --git a/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix b/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
index 986bd4609d5c..40188734a996 100644
--- a/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
+++ b/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "${webpage}/downloads/${pname}-${version}.tar.gz";
+    url = "http://pkgs.fedoraproject.org/repo/pkgs/ocaml-omake/${pname}-${version}.tar.gz/fe39a476ef4e33b7ba2ca77a6bcaded2/${pname}-${version}.tar.gz";
     sha256 = "1sas02pbj56m7wi5vf3vqrrpr4ynxymw2a8ybvfj2dkjf7q9ii13";
   };
   patchFlags = "-p0";