about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@gmail.com>2016-07-28 19:14:37 -0500
committerThomas Tuegel <ttuegel@gmail.com>2016-07-28 19:14:37 -0500
commit173d668456fabfe2383c6181e4f84ca8f56d032e (patch)
tree034dd5187db59a45977f37490615905906ebce3a /pkgs/development
parent83f783c00fe7c71c48eef93afdf9a3fd3cb9319e (diff)
parent1db8808b2df405c6dec4ed8942b332635678479c (diff)
downloadnixlib-173d668456fabfe2383c6181e4f84ca8f56d032e.tar
nixlib-173d668456fabfe2383c6181e4f84ca8f56d032e.tar.gz
nixlib-173d668456fabfe2383c6181e4f84ca8f56d032e.tar.bz2
nixlib-173d668456fabfe2383c6181e4f84ca8f56d032e.tar.lz
nixlib-173d668456fabfe2383c6181e4f84ca8f56d032e.tar.xz
nixlib-173d668456fabfe2383c6181e4f84ca8f56d032e.tar.zst
nixlib-173d668456fabfe2383c6181e4f84ca8f56d032e.zip
Merge branch 'kde-frameworks-qt55'
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/kde-frameworks/attica.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/baloo.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks/bluez-qt.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks/breeze-icons.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/default.nix119
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix20
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/nix-lib-path.patch37
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/setup-hook.sh99
-rw-r--r--pkgs/development/libraries/kde-frameworks/frameworkintegration.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kactivities-stats.nix9
-rw-r--r--pkgs/development/libraries/kde-frameworks/kactivities.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kapidox.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/karchive.nix9
-rw-r--r--pkgs/development/libraries/kde-frameworks/kauth/cmake-install-paths.patch17
-rw-r--r--pkgs/development/libraries/kde-frameworks/kauth/default.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kauth/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kbookmarks.nix18
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcmutils/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcmutils/default.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcodecs.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcompletion.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/kconfig.nix9
-rw-r--r--pkgs/development/libraries/kde-frameworks/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcoreaddons.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcrash.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdbusaddons.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdeclarative.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks/kded.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix31
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/nix-kde-include-dir.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/setup-hook.sh1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix26
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdesu.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdnssd.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdoctools/default.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdoctools/kdoctools-no-find-docbook-xml.patch12
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdoctools/setup-hook.sh5
-rw-r--r--pkgs/development/libraries/kde-frameworks/kemoticons.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kfilemetadata/cmake-install-paths.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kfilemetadata/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kglobalaccel.nix18
-rw-r--r--pkgs/development/libraries/kde-frameworks/kguiaddons.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/khtml.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks/ki18n.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks/kiconthemes/default-theme-breeze.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/kiconthemes/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kidletime.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/kimageformats.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/default.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/kinit-libpath.patch34
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/start_kdeinit-path.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/default.nix21
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch28
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kitemmodels.nix9
-rw-r--r--pkgs/development/libraries/kde-frameworks/kitemviews.nix9
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjobwidgets.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjs.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjsembed.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kmediaplayer.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/knewstuff.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/knotifications.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks/knotifyconfig.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/allow-external-paths.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/default.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/qdiriterator-follow-symlinks.patch26
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kparts.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpeople.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/kplotting.nix9
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpty.nix8
-rw-r--r--pkgs/development/libraries/kde-frameworks/kross.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/krunner.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/default.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/no-canonicalize-path.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/qdiriterator-follow-symlinks.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks/ktexteditor/default.nix18
-rw-r--r--pkgs/development/libraries/kde-frameworks/ktexteditor/no-qcoreapplication.patch36
-rw-r--r--pkgs/development/libraries/kde-frameworks/ktexteditor/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/ktextwidgets.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kunitconversion.nix8
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwallet.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwayland.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix9
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/kxmlgui.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix8
-rw-r--r--pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/plasma-framework.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks/solid.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/sonnet.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/srcs.nix581
-rw-r--r--pkgs/development/libraries/kde-frameworks/threadweaver.nix9
-rw-r--r--pkgs/development/libraries/qt-5/5.5/default.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh5
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtbase/cmake-paths.patch321
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtbase/default.nix45
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtbase/series1
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix4
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix6
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtenginio.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtlocation.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix4
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtscript/default.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtsensors.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtsvg.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qttools.nix6
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtx11extras.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix3
122 files changed, 2431 insertions, 86 deletions
diff --git a/pkgs/development/libraries/kde-frameworks/attica.nix b/pkgs/development/libraries/kde-frameworks/attica.nix
new file mode 100644
index 000000000000..98721876c120
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/attica.nix
@@ -0,0 +1,11 @@
+{ 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/baloo.nix b/pkgs/development/libraries/kde-frameworks/baloo.nix
new file mode 100644
index 000000000000..825a125c8a79
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/baloo.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib, extra-cmake-modules, kauth, kconfig
+, kcoreaddons, kcrash, kdbusaddons, kfilemetadata, ki18n, kidletime
+, kio, lmdb, qtbase, solid
+}:
+
+kdeFramework {
+  name = "baloo";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    kauth kconfig kcoreaddons kcrash kdbusaddons kfilemetadata ki18n kio
+    kidletime lmdb qtbase solid
+  ];
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/development/libraries/kde-frameworks/bluez-qt.nix b/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
new file mode 100644
index 000000000000..26490167dbdb
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtdeclarative
+}:
+
+kdeFramework {
+  name = "bluez-qt";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ 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/breeze-icons.nix b/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
new file mode 100644
index 000000000000..258955c2a943
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
@@ -0,0 +1,12 @@
+{ kdeFramework
+, extra-cmake-modules
+, qtsvg
+}:
+
+kdeFramework {
+  name = "breeze-icons";
+  outputs = [ "out" ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ qtsvg ];
+  propagatedUserEnvPkgs = [ qtsvg.out ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/default.nix b/pkgs/development/libraries/kde-frameworks/default.nix
new file mode 100644
index 000000000000..bff2b394038b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/default.nix
@@ -0,0 +1,119 @@
+/*
+
+# Updates
+
+1. Update the URL in `maintainers/scripts/generate-kde-frameworks.sh` and
+   run that script from the top of the Nixpkgs tree.
+2. Check that the new packages build correctly.
+3. Commit the changes and open a pull request.
+
+*/
+
+{ 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;
+
+        outputs = args.outputs or [ "dev" "out" ];
+
+        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 {};
+    kactivities-stats = callPackage ./kactivities-stats.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 {};
+    kdesignerplugin = callPackage ./kdesignerplugin.nix {};
+    kdesu = callPackage ./kdesu.nix {};
+    kdnssd = callPackage ./kdnssd.nix {};
+    kdoctools = callPackage ./kdoctools {};
+    kemoticons = callPackage ./kemoticons.nix {};
+    kfilemetadata = callPackage ./kfilemetadata {};
+    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 {};
+    kwayland = callPackage ./kwayland.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.nix {};
+    solid = callPackage ./solid.nix {};
+    sonnet = callPackage ./sonnet.nix {};
+    threadweaver = callPackage ./threadweaver.nix {};
+  };
+
+in packages
diff --git a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
new file mode 100644
index 000000000000..1c2ea70442d3
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
@@ -0,0 +1,20 @@
+{ kdeFramework, lib, copyPathsToStore, cmake, pkgconfig, qttools }:
+
+kdeFramework {
+  name = "extra-cmake-modules";
+
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+
+  outputs = [ "out" ];  # this package has no runtime components
+  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 = with lib; {
+    license = licenses.bsd2;
+    maintainers = [ maintainers.ttuegel ];
+  };
+}
diff --git a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/nix-lib-path.patch b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/nix-lib-path.patch
new file mode 100644
index 000000000000..a74340a6dc96
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/nix-lib-path.patch
@@ -0,0 +1,37 @@
+Index: extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake
+===================================================================
+--- extra-cmake-modules-5.18.0.orig/kde-modules/KDEInstallDirs.cmake
++++ extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake
+@@ -200,32 +200,6 @@
+ # GNUInstallDirs code deals with re-configuring, but that is dealt with
+ # by the _define_* macros in this module).
+ 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
diff --git a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series
new file mode 100644
index 000000000000..b4569e50a5f7
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series
@@ -0,0 +1 @@
+nix-lib-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/setup-hook.sh b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/setup-hook.sh
new file mode 100644
index 000000000000..5363f4e30fdc
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/setup-hook.sh
@@ -0,0 +1,99 @@
+_ecmSetXdgDirs() {
+    addToSearchPathOnce XDG_DATA_DIRS "$1/share"
+    addToSearchPathOnce XDG_CONFIG_DIRS "$1/etc/xdg"
+    addToSearchPathOnce RUNTIME_XDG_CONFIG_DIRS "$1/etc/xdg"
+}
+
+_ecmSharePaths=( \
+    "appdata" \
+    "applications" \
+    "config.cfg" \
+    "dbus-1" \
+    "desktop-directories" \
+    "doc" \
+    "icons" \
+    "kconf_update" \
+    "kservices5" \
+    "kservicetypes5" \
+    "knotifications5" \
+    "kxmlgui5" \
+    "locale" \
+    "mime" \
+    "polkit-1" \
+    "sounds" \
+    "templates" \
+    "wallpapers" \
+    )
+
+_ecmPropagateNative() {
+    for dir in ${_ecmSharePaths[@]}; do
+        if [ -d "$1/share/$dir" ]; then
+            propagateOnce propagatedNativeBuildInputs "$1"
+            if [ -z "$crossConfig" ]; then
+                propagateOnce propagatedUserEnvPkgs "$1"
+                addToSearchPathOnce RUNTIME_XDG_DATA_DIRS "$1/share"
+            fi
+            break
+        fi
+    done
+}
+
+envHooks+=(_ecmSetXdgDirs _ecmPropagate)
+
+_ecmPropagate() {
+    for dir in ${_ecmSharePaths[@]}; do
+        if [ -d "$1/share/$dir" ]; then
+            propagateOnce propagatedBuildInputs "$1"
+            propagateOnce propagatedUserEnvPkgs "$1"
+            addToSearchPathOnce RUNTIME_XDG_DATA_DIRS "$1/share"
+            break
+        fi
+    done
+}
+
+crossEnvHooks+=(_ecmPropagate)
+
+_ecmConfig() {
+    # Because we need to use absolute paths here, we must set *all* the paths.
+    cmakeFlags+=" -DKDE_INSTALL_EXECROOTDIR=${!outputBin}"
+    cmakeFlags+=" -DKDE_INSTALL_BINDIR=${!outputBin}/bin"
+    cmakeFlags+=" -DKDE_INSTALL_SBINDIR=${!outputBin}/sbin"
+    cmakeFlags+=" -DKDE_INSTALL_LIBDIR=${!outputLib}/lib"
+    cmakeFlags+=" -DKDE_INSTALL_LIBEXECDIR=${!outputLib}/lib/libexec"
+    cmakeFlags+=" -DKDE_INSTALL_CMAKEPACKAGEDIR=${!outputDev}/lib/cmake"
+    cmakeFlags+=" -DKDE_INSTALL_QTPLUGINDIR=${!outputLib}/lib/qt5/plugins"
+    cmakeFlags+=" -DKDE_INSTALL_PLUGINDIR=${!outputLib}/lib/qt5/plugins"
+    cmakeFlags+=" -DKDE_INSTALL_QTQUICKIMPORTSDIR=${!outputLib}/lib/qt5/imports"
+    cmakeFlags+=" -DKDE_INSTALL_QMLDIR=${!outputLib}/lib/qt5/qml"
+    cmakeFlags+=" -DKDE_INSTALL_INCLUDEDIR=${!outputInclude}/include"
+    cmakeFlags+=" -DKDE_INSTALL_LOCALSTATEDIR=/var"
+    cmakeFlags+=" -DKDE_INSTALL_DATAROOTDIR=${!outputLib}/share"
+    cmakeFlags+=" -DKDE_INSTALL_DATADIR=${!outputLib}/share"
+    cmakeFlags+=" -DKDE_INSTALL_DOCBUNDLEDIR=${!outputLib}/share/doc/HTML"
+    cmakeFlags+=" -DKDE_INSTALL_KCFGDIR=${!outputLib}/share/config.kcfg"
+    cmakeFlags+=" -DKDE_INSTALL_KCONFUPDATEDIR=${!outputLib}/share/kconf_update"
+    cmakeFlags+=" -DKDE_INSTALL_KSERVICES5DIR=${!outputLib}/share/kservices5"
+    cmakeFlags+=" -DKDE_INSTALL_KSERVICETYPES5DIR=${!outputLib}/share/kservicetypes5"
+    cmakeFlags+=" -DKDE_INSTALL_KXMLGUI5DIR=${!outputLib}/share/kxmlgui5"
+    cmakeFlags+=" -DKDE_INSTALL_KNOTIFY5RCDIR=${!outputLib}/share/knotifications5"
+    cmakeFlags+=" -DKDE_INSTALL_ICONDIR=${!outputLib}/share/icons"
+    cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputLib}/share/locale"
+    cmakeFlags+=" -DKDE_INSTALL_SOUNDDIR=${!outputLib}/share/sounds"
+    cmakeFlags+=" -DKDE_INSTALL_TEMPLATEDIR=${!outputLib}/share/templates"
+    cmakeFlags+=" -DKDE_INSTALL_WALLPAPERDIR=${!outputLib}/share/wallpapers"
+    cmakeFlags+=" -DKDE_INSTALL_APPDIR=${!outputLib}/share/applications"
+    cmakeFlags+=" -DKDE_INSTALL_DESKTOPDIR=${!outputLib}/share/desktop-directories"
+    cmakeFlags+=" -DKDE_INSTALL_MIMEDIR=${!outputLib}/share/mime/packages"
+    cmakeFlags+=" -DKDE_INSTALL_METAINFODIR=${!outputLib}/share/appdata"
+    cmakeFlags+=" -DKDE_INSTALL_MANDIR=${!outputLib}/share/man"
+    cmakeFlags+=" -DKDE_INSTALL_INFODIR=${!outputLib}/share/info"
+    cmakeFlags+=" -DKDE_INSTALL_DBUSDIR=${!outputLib}/share/dbus-1"
+    cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputLib}/share/dbus-1/interfaces"
+    cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputLib}/share/dbus-1/services"
+    cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputLib}/share/dbus-1/system-services"
+    cmakeFlags+=" -DKDE_INSTALL_SYSCONFDIR=${!outputLib}/etc"
+    cmakeFlags+=" -DKDE_INSTALL_CONFDIR=${!outputLib}/etc/xdg"
+    cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputLib}/etc/xdg/autostart"
+}
+
+preConfigureHooks+=(_ecmConfig)
diff --git a/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix b/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
new file mode 100644
index 000000000000..ee1b188d4073
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, kbookmarks, kcompletion
+, kconfig, kconfigwidgets, ki18n, kiconthemes, kio, knotifications
+, kwidgetsaddons, libXcursor, qtx11extras
+}:
+
+kdeFramework {
+  name = "frameworkintegration";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    kbookmarks kcompletion kconfig kconfigwidgets knotifications ki18n kio
+    kiconthemes kwidgetsaddons libXcursor qtx11extras
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix b/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
new file mode 100644
index 000000000000..0080c5c31649
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
@@ -0,0 +1,9 @@
+{ kdeFramework, lib, extra-cmake-modules
+, boost, kactivities, kconfig }:
+
+kdeFramework {
+  name = "kactivities-stats";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ boost kactivities kconfig ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kactivities.nix b/pkgs/development/libraries/kde-frameworks/kactivities.nix
new file mode 100644
index 000000000000..167c3f15bbda
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kactivities.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, boost, kcmutils, kconfig
+, kcoreaddons, kdbusaddons, kdeclarative, kglobalaccel, ki18n
+, kio, kservice, kwindowsystem, kxmlgui, qtdeclarative
+}:
+
+kdeFramework {
+  name = "kactivities";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    boost kcmutils kconfig kcoreaddons kdbusaddons kdeclarative kglobalaccel
+    ki18n kio kservice kwindowsystem kxmlgui qtdeclarative
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kapidox.nix b/pkgs/development/libraries/kde-frameworks/kapidox.nix
new file mode 100644
index 000000000000..f78a5ea08a49
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kapidox.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, python
+}:
+
+kdeFramework {
+  name = "kapidox";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules python ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/karchive.nix b/pkgs/development/libraries/kde-frameworks/karchive.nix
new file mode 100644
index 000000000000..bec44a6d6874
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/karchive.nix
@@ -0,0 +1,9 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "karchive";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kauth/cmake-install-paths.patch b/pkgs/development/libraries/kde-frameworks/kauth/cmake-install-paths.patch
new file mode 100644
index 000000000000..c66f5ecd008f
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kauth/cmake-install-paths.patch
@@ -0,0 +1,17 @@
+Index: kauth-5.18.0/KF5AuthConfig.cmake.in
+===================================================================
+--- kauth-5.18.0.orig/KF5AuthConfig.cmake.in
++++ kauth-5.18.0/KF5AuthConfig.cmake.in
+@@ -4,9 +4,9 @@ set(KAUTH_STUB_FILES_DIR "@PACKAGE_KDE_I
+ 
+ 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_HELPER_INSTALL_DIR "@KAUTH_HELPER_INSTALL_DIR@")
+-set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@")
++set(KAUTH_POLICY_FILES_INSTALL_DIR "${KDE_INSTALL_DATADIR}/polkit-1/actions")
++set(KAUTH_HELPER_INSTALL_DIR "${KDE_INSTALL_LIBEXECDIR}")
++set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "${KDE_INSTALL_LIBEXECDIR}")
+ 
+ find_dependency(KF5CoreAddons "@KF5_DEP_VERSION@")
+ 
diff --git a/pkgs/development/libraries/kde-frameworks/kauth/default.nix b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
new file mode 100644
index 000000000000..4bdba88bc3bb
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules
+, kcoreaddons
+, polkit-qt
+}:
+
+kdeFramework {
+  name = "kauth";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ kcoreaddons polkit-qt ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kauth/series b/pkgs/development/libraries/kde-frameworks/kauth/series
new file mode 100644
index 000000000000..d2689425c387
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kauth/series
@@ -0,0 +1 @@
+cmake-install-paths.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kbookmarks.nix b/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
new file mode 100644
index 000000000000..7348e591d9cb
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
@@ -0,0 +1,18 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcodecs
+, kconfig
+, kconfigwidgets
+, kcoreaddons
+, kiconthemes
+, kxmlgui
+}:
+
+kdeFramework {
+  name = "kbookmarks";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    kcodecs kconfig kconfigwidgets kcoreaddons kiconthemes kxmlgui
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kcmutils/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks/kcmutils/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..0d861fa95012
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kcmutils/0001-qdiriterator-follow-symlinks.patch
@@ -0,0 +1,25 @@
+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/kcmutils/default.nix b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
new file mode 100644
index 000000000000..fdf55174548e
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
@@ -0,0 +1,15 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfigwidgets
+, kcoreaddons, kdeclarative, ki18n, kiconthemes, kitemviews
+, kpackage, kservice, kxmlgui
+}:
+
+kdeFramework {
+  name = "kcmutils";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    kconfigwidgets kcoreaddons kdeclarative ki18n kiconthemes kitemviews
+    kpackage kservice kxmlgui
+  ];
+  patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kcodecs.nix b/pkgs/development/libraries/kde-frameworks/kcodecs.nix
new file mode 100644
index 000000000000..53a69a69b69c
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kcodecs.nix
@@ -0,0 +1,11 @@
+{ 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/kcompletion.nix b/pkgs/development/libraries/kde-frameworks/kcompletion.nix
new file mode 100644
index 000000000000..8c45bed25856
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kcompletion.nix
@@ -0,0 +1,12 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kconfig
+, kwidgetsaddons
+}:
+
+kdeFramework {
+  name = "kcompletion";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ kconfig kwidgetsaddons ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kconfig.nix b/pkgs/development/libraries/kde-frameworks/kconfig.nix
new file mode 100644
index 000000000000..154329d0e98e
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kconfig.nix
@@ -0,0 +1,9 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "kconfig";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..7a6c0ee90534
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch
@@ -0,0 +1,25 @@
+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/kconfigwidgets/default.nix b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
new file mode 100644
index 000000000000..f507abe29916
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, kauth, kcodecs, kconfig
+, kdoctools, kguiaddons, ki18n, kwidgetsaddons
+}:
+
+kdeFramework {
+  name = "kconfigwidgets";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [ kauth kconfig kcodecs kguiaddons ki18n kwidgetsaddons ];
+  patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
+  postInstall = ''
+    moveToOutput "bin/preparetips5" "$dev"
+  '';
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix b/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
new file mode 100644
index 000000000000..94b4136df3da
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, shared_mime_info
+}:
+
+kdeFramework {
+  name = "kcoreaddons";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ shared_mime_info ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kcrash.nix b/pkgs/development/libraries/kde-frameworks/kcrash.nix
new file mode 100644
index 000000000000..133a81c60c18
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kcrash.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcoreaddons
+, kwindowsystem
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kcrash";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ kcoreaddons kwindowsystem qtx11extras ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix b/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
new file mode 100644
index 000000000000..eadd645fb99a
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kdbusaddons";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ qtx11extras ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kdeclarative.nix b/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
new file mode 100644
index 000000000000..8db1b73c91a7
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
@@ -0,0 +1,15 @@
+{ kdeFramework, lib, extra-cmake-modules, epoxy, kconfig
+, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kpackage
+, kwidgetsaddons, kwindowsystem, pkgconfig
+, qtdeclarative
+}:
+
+kdeFramework {
+  name = "kdeclarative";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    epoxy kconfig kglobalaccel kguiaddons ki18n kiconthemes kio kpackage
+    kwidgetsaddons kwindowsystem qtdeclarative
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kded.nix b/pkgs/development/libraries/kde-frameworks/kded.nix
new file mode 100644
index 000000000000..fd286accb9ff
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kded.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kconfig
+, kcoreaddons
+, kcrash
+, kdbusaddons
+, kdoctools
+, kinit
+, kservice
+}:
+
+kdeFramework {
+  name = "kded";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [ kconfig kcoreaddons kcrash kdbusaddons kinit kservice ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
new file mode 100644
index 000000000000..1765ffa9a39f
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
@@ -0,0 +1,31 @@
+{ kdeFramework, lib, copyPathsToStore
+, 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";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  outputs = [ "dev" "out" ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  setupHook = ./setup-hook.sh;
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    kauth karchive kcompletion kconfig kconfigwidgets kcoreaddons kcrash
+    kdbusaddons kded kdesignerplugin kemoticons kglobalaccel kguiaddons ki18n
+    kio kiconthemes kitemmodels kinit knotifications kparts kservice
+    ktextwidgets kunitconversion kwidgetsaddons kwindowsystem kxmlgui
+    networkmanager qtsvg qtx11extras xlibs.libSM
+  ];
+  cmakeFlags = [
+    "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook"
+    "-DDocBookXML4_DTD_VERSION=4.5"
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/nix-kde-include-dir.patch b/pkgs/development/libraries/kde-frameworks/kdelibs4support/nix-kde-include-dir.patch
new file mode 100644
index 000000000000..eabb70254483
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdelibs4support/nix-kde-include-dir.patch
@@ -0,0 +1,13 @@
+Index: kdelibs4support-5.18.0/src/kdecore/kstandarddirs.cpp
+===================================================================
+--- kdelibs4support-5.18.0.orig/src/kdecore/kstandarddirs.cpp
++++ kdelibs4support-5.18.0/src/kdecore/kstandarddirs.cpp
+@@ -292,7 +292,7 @@ static QString relativeInstallPath(const
+             return QFile::decodeName(ICON_INSTALL_DIR "/");
+         }
+         if (strcmp("include", type) == 0) {
+-            return QFile::decodeName(INCLUDE_INSTALL_DIR "/");
++            return QFile::decodeName(qgetenv("NIX_KDE_INCLUDE_DIR"));
+         }
+         break;
+     case 'l':
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/series b/pkgs/development/libraries/kde-frameworks/kdelibs4support/series
new file mode 100644
index 000000000000..9b08ab208774
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdelibs4support/series
@@ -0,0 +1 @@
+nix-kde-include-dir.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/setup-hook.sh b/pkgs/development/libraries/kde-frameworks/kdelibs4support/setup-hook.sh
new file mode 100644
index 000000000000..21ac2e83b5da
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdelibs4support/setup-hook.sh
@@ -0,0 +1 @@
+export NIX_KDE_INCLUDE_DIR="@dev@/include/"  # trailing slash is required!
diff --git a/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix b/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
new file mode 100644
index 000000000000..8e17a1a60c8d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
@@ -0,0 +1,26 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcompletion
+, kconfig
+, kconfigwidgets
+, kcoreaddons
+, kdoctools
+, kiconthemes
+, kio
+, kitemviews
+, kplotting
+, ktextwidgets
+, kwidgetsaddons
+, kxmlgui
+, sonnet
+}:
+
+kdeFramework {
+  name = "kdesignerplugin";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    kcompletion kconfig kconfigwidgets kcoreaddons kiconthemes kio
+    kitemviews kplotting ktextwidgets kwidgetsaddons kxmlgui sonnet
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kdesu.nix b/pkgs/development/libraries/kde-frameworks/kdesu.nix
new file mode 100644
index 000000000000..fcccea9161f1
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdesu.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n, kpty
+, kservice
+}:
+
+kdeFramework {
+  name = "kdesu";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ kcoreaddons ki18n kpty kservice ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kdnssd.nix b/pkgs/development/libraries/kde-frameworks/kdnssd.nix
new file mode 100644
index 000000000000..8fda4e63e3a6
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdnssd.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, avahi
+}:
+
+kdeFramework {
+  name = "kdnssd";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ avahi ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix b/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
new file mode 100644
index 000000000000..99fc4c7d023c
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib, extra-cmake-modules, docbook_xml_dtd_45
+, docbook5_xsl, karchive, ki18n, perl, perlPackages
+}:
+
+kdeFramework {
+  name = "kdoctools";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ karchive ki18n ];
+  propagatedNativeBuildInputs = [ 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 ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kdoctools/kdoctools-no-find-docbook-xml.patch b/pkgs/development/libraries/kde-frameworks/kdoctools/kdoctools-no-find-docbook-xml.patch
new file mode 100644
index 000000000000..4e3a33efab32
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdoctools/kdoctools-no-find-docbook-xml.patch
@@ -0,0 +1,12 @@
+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/kdoctools/setup-hook.sh b/pkgs/development/libraries/kde-frameworks/kdoctools/setup-hook.sh
new file mode 100644
index 000000000000..5cfffbd622d1
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdoctools/setup-hook.sh
@@ -0,0 +1,5 @@
+addXdgData() {
+    addToSearchPath XDG_DATA_DIRS "$1/share"
+}
+
+envHooks+=(addXdgData)
diff --git a/pkgs/development/libraries/kde-frameworks/kemoticons.nix b/pkgs/development/libraries/kde-frameworks/kemoticons.nix
new file mode 100644
index 000000000000..1e31277172d7
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kemoticons.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, karchive
+, kconfig
+, kcoreaddons
+, kservice
+}:
+
+kdeFramework {
+  name = "kemoticons";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ karchive kconfig kcoreaddons kservice ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kfilemetadata/cmake-install-paths.patch b/pkgs/development/libraries/kde-frameworks/kfilemetadata/cmake-install-paths.patch
new file mode 100644
index 000000000000..732f7b69c828
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kfilemetadata/cmake-install-paths.patch
@@ -0,0 +1,13 @@
+Index: kfilemetadata-5.18.0/src/CMakeLists.txt
+===================================================================
+--- kfilemetadata-5.18.0.orig/src/CMakeLists.txt
++++ kfilemetadata-5.18.0/src/CMakeLists.txt
+@@ -49,7 +49,7 @@ install(TARGETS KF5FileMetaData EXPORT K
+ 
+ install(EXPORT KF5FileMetaDataTargets
+         NAMESPACE KF5::
+-        DESTINATION ${LIB_INSTALL_DIR}/cmake/KF5FileMetaData
++        DESTINATION ${KDE_INSTALL_FULL_CMAKEPACKAGEDIR}/KF5FileMetaData
+         FILE KF5FileMetaDataTargets.cmake)
+ 
+ install(FILES
diff --git a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
new file mode 100644
index 000000000000..bc7349e7453f
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib, copyPathsToStore, extra-cmake-modules
+, attr, ebook_tools, exiv2, ffmpeg, karchive, ki18n, poppler, qtbase, taglib
+}:
+
+kdeFramework {
+  name = "kfilemetadata";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    attr ebook_tools exiv2 ffmpeg karchive ki18n poppler qtbase taglib
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kfilemetadata/series b/pkgs/development/libraries/kde-frameworks/kfilemetadata/series
new file mode 100644
index 000000000000..d2689425c387
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kfilemetadata/series
@@ -0,0 +1 @@
+cmake-install-paths.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix b/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
new file mode 100644
index 000000000000..4743d0b8f1b0
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
@@ -0,0 +1,18 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kconfig
+, kcoreaddons
+, kcrash
+, kdbusaddons
+, kwindowsystem
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kglobalaccel";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    kconfig kcoreaddons kcrash kdbusaddons kwindowsystem qtx11extras
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kguiaddons.nix b/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
new file mode 100644
index 000000000000..6ebfd1104f70
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kguiaddons";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ qtx11extras ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/khtml.nix b/pkgs/development/libraries/kde-frameworks/khtml.nix
new file mode 100644
index 000000000000..99f6fe31e0d7
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/khtml.nix
@@ -0,0 +1,16 @@
+{ 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";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules perl ];
+  propagatedBuildInputs = [
+    giflib karchive kcodecs kglobalaccel ki18n kiconthemes kio kjs
+    knotifications kparts ktextwidgets kwallet kwidgetsaddons kwindowsystem
+    kxmlgui phonon qtx11extras sonnet
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/ki18n.nix b/pkgs/development/libraries/kde-frameworks/ki18n.nix
new file mode 100644
index 000000000000..2698a97fd33f
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/ki18n.nix
@@ -0,0 +1,15 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, gettext
+, python
+, qtdeclarative
+, qtscript
+}:
+
+kdeFramework {
+  name = "ki18n";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ qtdeclarative qtscript ];
+  propagatedNativeBuildInputs = [ gettext python ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kiconthemes/default-theme-breeze.patch b/pkgs/development/libraries/kde-frameworks/kiconthemes/default-theme-breeze.patch
new file mode 100644
index 000000000000..f7cb0ea3aacc
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kiconthemes/default-theme-breeze.patch
@@ -0,0 +1,13 @@
+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("hicolor");
++    return QStringLiteral("breeze");
+ }
+ 
+ void KIconTheme::assignIconsToContextMenu(ContextMenus type,
diff --git a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
new file mode 100644
index 000000000000..6102bb0d4b56
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
@@ -0,0 +1,12 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules
+, karchive, kconfigwidgets, ki18n, breeze-icons, kitemviews, qtsvg
+}:
+
+kdeFramework {
+  name = "kiconthemes";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ breeze-icons kconfigwidgets karchive ki18n kitemviews qtsvg ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kiconthemes/series b/pkgs/development/libraries/kde-frameworks/kiconthemes/series
new file mode 100644
index 000000000000..ab5cc8a3edb2
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kiconthemes/series
@@ -0,0 +1 @@
+default-theme-breeze.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kidletime.nix b/pkgs/development/libraries/kde-frameworks/kidletime.nix
new file mode 100644
index 000000000000..758260517e7d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kidletime.nix
@@ -0,0 +1,12 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtbase
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kidletime";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ qtbase qtx11extras ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kimageformats.nix b/pkgs/development/libraries/kde-frameworks/kimageformats.nix
new file mode 100644
index 000000000000..fbc8d092f865
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kimageformats.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, ilmbase
+}:
+
+kdeFramework {
+  name = "kimageformats";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/default.nix b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
new file mode 100644
index 000000000000..b965f761e922
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
@@ -0,0 +1,15 @@
+{
+  kdeFramework, lib, copyPathsToStore,
+  extra-cmake-modules, kdoctools,
+  kconfig, kcrash, ki18n, kio, kservice, kwindowsystem
+}:
+
+kdeFramework {
+  name = "kinit";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    kconfig kcrash ki18n kio kservice kwindowsystem
+  ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/kinit-libpath.patch b/pkgs/development/libraries/kde-frameworks/kinit/kinit-libpath.patch
new file mode 100644
index 000000000000..a5c76fca2481
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kinit/kinit-libpath.patch
@@ -0,0 +1,34 @@
+Index: kinit-5.24.0/src/kdeinit/kinit.cpp
+===================================================================
+--- kinit-5.24.0.orig/src/kdeinit/kinit.cpp
++++ kinit-5.24.0/src/kdeinit/kinit.cpp
+@@ -672,19 +672,16 @@ static pid_t launch(int argc, const char
+ 
+         if (!libpath.isEmpty()) {
+             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 "/");
+-                QString orig_libpath = libpath;
+-                libpath = install_lib_dir + libpath;
+-                l.setFileName(libpath);
+-                if (!l.load()) {
+-                    libpath = orig_libpath;
+-                    l.setFileName(libpath);
+-                    l.load();
++                // Try to load the library relative to the active profiles.
++                QByteArrayList profiles = qgetenv("NIX_PROFILES").split(' ');
++                // Reverse the profile list.
++                std::reverse(profiles.begin(), profiles.end());
++                const QString libdir = QString::fromLatin1("/lib/");
++                Q_FOREACH (const QByteArray &profile, profiles) {
++                    if (!profile.isEmpty()) {
++                        l.setFileName(QFile::decodeName(profile) + libdir + libpath);
++                        if (l.load()) break;
++                    }
+                 }
+             } else {
+                 l.load();
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/series b/pkgs/development/libraries/kde-frameworks/kinit/series
new file mode 100644
index 000000000000..576b8a935bf1
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kinit/series
@@ -0,0 +1,2 @@
+kinit-libpath.patch
+start_kdeinit-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/start_kdeinit-path.patch b/pkgs/development/libraries/kde-frameworks/kinit/start_kdeinit-path.patch
new file mode 100644
index 000000000000..fbecf9433f69
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kinit/start_kdeinit-path.patch
@@ -0,0 +1,13 @@
+Index: kinit-5.24.0/src/start_kdeinit/start_kdeinit_wrapper.c
+===================================================================
+--- kinit-5.24.0.orig/src/start_kdeinit/start_kdeinit_wrapper.c
++++ kinit-5.24.0/src/start_kdeinit/start_kdeinit_wrapper.c
+@@ -23,7 +23,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ 
+-#define EXECUTE CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/start_kdeinit"
++#define EXECUTE "/var/setuid-wrappers/start_kdeinit"
+ 
+ #if KDEINIT_OOM_PROTECT
+ 
diff --git a/pkgs/development/libraries/kde-frameworks/kio/default.nix b/pkgs/development/libraries/kde-frameworks/kio/default.nix
new file mode 100644
index 000000000000..cb67c8459034
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kio/default.nix
@@ -0,0 +1,21 @@
+{ 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
+, qtscript, qtx11extras, solid
+}:
+
+kdeFramework {
+  name = "kio";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    acl karchive kbookmarks kcompletion kconfig kconfigwidgets kcoreaddons
+    kdbusaddons ki18n kiconthemes kitemviews kjobwidgets knotifications kservice
+    ktextwidgets kwallet kwidgetsaddons kwindowsystem kxmlgui solid qtscript
+    qtx11extras
+  ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch b/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
new file mode 100644
index 000000000000..c9ad46b41bb7
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
@@ -0,0 +1,28 @@
+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/kio/series b/pkgs/development/libraries/kde-frameworks/kio/series
new file mode 100644
index 000000000000..77ca15450047
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kio/series
@@ -0,0 +1 @@
+samba-search-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kitemmodels.nix b/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
new file mode 100644
index 000000000000..7dff10b7fe06
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
@@ -0,0 +1,9 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "kitemmodels";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kitemviews.nix b/pkgs/development/libraries/kde-frameworks/kitemviews.nix
new file mode 100644
index 000000000000..77f4b6621604
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kitemviews.nix
@@ -0,0 +1,9 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "kitemviews";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix b/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
new file mode 100644
index 000000000000..2692458b8be7
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
@@ -0,0 +1,13 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcoreaddons
+, kwidgetsaddons
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kjobwidgets";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ kcoreaddons kwidgetsaddons qtx11extras ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kjs.nix b/pkgs/development/libraries/kde-frameworks/kjs.nix
new file mode 100644
index 000000000000..abdc15ce8df6
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kjs.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kdoctools
+}:
+
+kdeFramework {
+  name = "kjs";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kjsembed.nix b/pkgs/development/libraries/kde-frameworks/kjsembed.nix
new file mode 100644
index 000000000000..95bc02422f1b
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kjsembed.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib, extra-cmake-modules, kdoctools, ki18n, kjs
+, qtsvg
+}:
+
+kdeFramework {
+  name = "kjsembed";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [ ki18n kjs qtsvg ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix b/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
new file mode 100644
index 000000000000..93a6b450f762
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
@@ -0,0 +1,12 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kparts
+, kxmlgui
+}:
+
+kdeFramework {
+  name = "kmediaplayer";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ kparts kxmlgui ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/knewstuff.nix b/pkgs/development/libraries/kde-frameworks/knewstuff.nix
new file mode 100644
index 000000000000..002418c65ad0
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/knewstuff.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, attica, karchive
+, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes, kio
+, kitemviews, kservice, ktextwidgets, kwidgetsaddons, kxmlgui
+}:
+
+kdeFramework {
+  name = "knewstuff";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    attica karchive kcompletion kconfig kcoreaddons ki18n kiconthemes kio
+    kitemviews kservice ktextwidgets kwidgetsaddons kxmlgui
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/knotifications.nix b/pkgs/development/libraries/kde-frameworks/knotifications.nix
new file mode 100644
index 000000000000..7196832495f3
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/knotifications.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, kcodecs, kconfig, kcoreaddons, kwindowsystem
+, libdbusmenu
+, phonon
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "knotifications";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    kcodecs kconfig kcoreaddons kwindowsystem libdbusmenu phonon qtx11extras
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix b/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix
new file mode 100644
index 000000000000..0e357aecb999
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix
@@ -0,0 +1,10 @@
+{ kdeFramework, lib, extra-cmake-modules, kcompletion, kconfig
+, ki18n, kio, phonon
+}:
+
+kdeFramework {
+  name = "knotifyconfig";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ kcompletion kconfig ki18n kio phonon ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/allow-external-paths.patch b/pkgs/development/libraries/kde-frameworks/kpackage/allow-external-paths.patch
new file mode 100644
index 000000000000..e9d744448148
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/allow-external-paths.patch
@@ -0,0 +1,13 @@
+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/kpackage/default.nix b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
new file mode 100644
index 000000000000..a39a672574bb
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
@@ -0,0 +1,16 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules
+, karchive
+, kconfig
+, kcoreaddons
+, kdoctools
+, ki18n
+}:
+
+kdeFramework {
+  name = "kpackage";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [ karchive kconfig kcoreaddons ki18n ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks/kpackage/qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..ddbf17d00064
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/qdiriterator-follow-symlinks.patch
@@ -0,0 +1,26 @@
+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/kpackage/series b/pkgs/development/libraries/kde-frameworks/kpackage/series
new file mode 100644
index 000000000000..9b7f076efc70
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/series
@@ -0,0 +1,2 @@
+allow-external-paths.patch
+qdiriterator-follow-symlinks.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kparts.nix b/pkgs/development/libraries/kde-frameworks/kparts.nix
new file mode 100644
index 000000000000..ad6ea2dbc305
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kparts.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, ki18n, kiconthemes, kio, kjobwidgets, knotifications, kservice
+, ktextwidgets, kwidgetsaddons, kxmlgui
+}:
+
+kdeFramework {
+  name = "kparts";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    kconfig kcoreaddons ki18n kiconthemes kio kjobwidgets knotifications
+    kservice ktextwidgets kwidgetsaddons kxmlgui
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kpeople.nix b/pkgs/development/libraries/kde-frameworks/kpeople.nix
new file mode 100644
index 000000000000..6acb5e2eed51
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kpeople.nix
@@ -0,0 +1,12 @@
+{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n
+, kitemviews, kservice, kwidgetsaddons, qtdeclarative
+}:
+
+kdeFramework {
+  name = "kpeople";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    kcoreaddons ki18n kitemviews kservice kwidgetsaddons qtdeclarative
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kplotting.nix b/pkgs/development/libraries/kde-frameworks/kplotting.nix
new file mode 100644
index 000000000000..601f1778db7d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kplotting.nix
@@ -0,0 +1,9 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "kplotting";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kpty.nix b/pkgs/development/libraries/kde-frameworks/kpty.nix
new file mode 100644
index 000000000000..8bdaacb85f82
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kpty.nix
@@ -0,0 +1,8 @@
+{ kdeFramework, lib, extra-cmake-modules, kcoreaddons, ki18n }:
+
+kdeFramework {
+  name = "kpty";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ kcoreaddons ki18n ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kross.nix b/pkgs/development/libraries/kde-frameworks/kross.nix
new file mode 100644
index 000000000000..0e66d95b5cce
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kross.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, kcompletion, kcoreaddons
+, kdoctools, ki18n, kiconthemes, kio, kparts, kwidgetsaddons
+, kxmlgui, qtscript
+}:
+
+kdeFramework {
+  name = "kross";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    kcompletion kcoreaddons ki18n kiconthemes kio kparts kwidgetsaddons kxmlgui
+    qtscript
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/krunner.nix b/pkgs/development/libraries/kde-frameworks/krunner.nix
new file mode 100644
index 000000000000..ec9ab7abe9f9
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/krunner.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kcoreaddons
+, ki18n, kio, kservice, plasma-framework, solid
+, threadweaver
+}:
+
+kdeFramework {
+  name = "krunner";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    kconfig kcoreaddons ki18n kio kservice plasma-framework solid
+    threadweaver
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/default.nix b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
new file mode 100644
index 000000000000..484be4087943
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
@@ -0,0 +1,12 @@
+{ kdeFramework, lib, copyPathsToStore, extra-cmake-modules, kconfig, kcoreaddons
+, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem
+}:
+
+kdeFramework {
+  name = "kservice";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  propagatedNativeBuildInputs = [ extra-cmake-modules ];
+  nativeBuildInputs = [ kdoctools ];
+  propagatedBuildInputs = [ kconfig kcoreaddons kcrash kdbusaddons ki18n kwindowsystem ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/no-canonicalize-path.patch b/pkgs/development/libraries/kde-frameworks/kservice/no-canonicalize-path.patch
new file mode 100644
index 000000000000..cf98ffb9067f
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kservice/no-canonicalize-path.patch
@@ -0,0 +1,13 @@
+Index: kservice-5.21.0/src/sycoca/vfolder_menu.cpp
+===================================================================
+--- kservice-5.21.0.orig/src/sycoca/vfolder_menu.cpp
++++ kservice-5.21.0/src/sycoca/vfolder_menu.cpp
+@@ -415,7 +415,7 @@ VFolderMenu::absoluteDir(const QString &
+     }
+ 
+     if (!relative) {
+-        QString resolved = QDir(dir).canonicalPath();
++      QString resolved = QDir::cleanPath(dir);
+         if (!resolved.isEmpty()) {
+             dir = resolved;
+         }
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks/kservice/qdiriterator-follow-symlinks.patch
new file mode 100644
index 000000000000..cbe13b709508
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kservice/qdiriterator-follow-symlinks.patch
@@ -0,0 +1,13 @@
+Index: kservice-5.21.0/src/sycoca/kbuildsycoca.cpp
+===================================================================
+--- kservice-5.21.0.orig/src/sycoca/kbuildsycoca.cpp
++++ kservice-5.21.0/src/sycoca/kbuildsycoca.cpp
+@@ -203,7 +203,7 @@ bool KBuildSycoca::build()
+         QSet<QString> 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...
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/series b/pkgs/development/libraries/kde-frameworks/kservice/series
new file mode 100644
index 000000000000..3ce22dbd35a0
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kservice/series
@@ -0,0 +1,2 @@
+qdiriterator-follow-symlinks.patch
+no-canonicalize-path.patch
\ No newline at end of file
diff --git a/pkgs/development/libraries/kde-frameworks/ktexteditor/default.nix b/pkgs/development/libraries/kde-frameworks/ktexteditor/default.nix
new file mode 100644
index 000000000000..a35af2e7fbfd
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/ktexteditor/default.nix
@@ -0,0 +1,18 @@
+{ kdeFramework, lib, copyPathsToStore
+, extra-cmake-modules, perl
+, karchive, kconfig, kguiaddons, kiconthemes, kparts
+, libgit2
+, qtscript, qtxmlpatterns
+, ki18n, kio, sonnet
+}:
+
+kdeFramework {
+  name = "ktexteditor";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules perl ];
+  propagatedBuildInputs = [
+    karchive kconfig kguiaddons ki18n kiconthemes kio kparts libgit2 qtscript
+    qtxmlpatterns sonnet
+  ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+}
diff --git a/pkgs/development/libraries/kde-frameworks/ktexteditor/no-qcoreapplication.patch b/pkgs/development/libraries/kde-frameworks/ktexteditor/no-qcoreapplication.patch
new file mode 100644
index 000000000000..19ab1e1e5513
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/ktexteditor/no-qcoreapplication.patch
@@ -0,0 +1,36 @@
+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/ktexteditor/series b/pkgs/development/libraries/kde-frameworks/ktexteditor/series
new file mode 100644
index 000000000000..46cd23829a2f
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/ktexteditor/series
@@ -0,0 +1 @@
+no-qcoreapplication.patch
diff --git a/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix b/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
new file mode 100644
index 000000000000..25954c603971
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, kcompletion, kconfig
+, kconfigwidgets, ki18n, kiconthemes, kservice, kwindowsystem
+, sonnet
+}:
+
+kdeFramework {
+  name = "ktextwidgets";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    kcompletion kconfig kconfigwidgets ki18n kiconthemes kservice kwindowsystem
+    sonnet
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kunitconversion.nix b/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
new file mode 100644
index 000000000000..c04ded722aa4
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
@@ -0,0 +1,8 @@
+{ kdeFramework, lib, extra-cmake-modules, ki18n }:
+
+kdeFramework {
+  name = "kunitconversion";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ ki18n ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kwallet.nix b/pkgs/development/libraries/kde-frameworks/kwallet.nix
new file mode 100644
index 000000000000..f02c6138df77
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kwallet.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, kconfig, kconfigwidgets
+, kcoreaddons , kdbusaddons, kdoctools, ki18n, kiconthemes
+, knotifications , kservice, kwidgetsaddons, kwindowsystem, libgcrypt
+}:
+
+kdeFramework {
+  name = "kwallet";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    kconfig kconfigwidgets kcoreaddons kdbusaddons ki18n kiconthemes
+    knotifications kservice kwidgetsaddons kwindowsystem libgcrypt
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kwayland.nix b/pkgs/development/libraries/kde-frameworks/kwayland.nix
new file mode 100644
index 000000000000..db3328413082
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kwayland.nix
@@ -0,0 +1,14 @@
+{ kdeFramework
+, extra-cmake-modules
+, wayland
+}:
+
+kdeFramework {
+  name = "kwayland";
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  propagatedBuildInputs = [
+    wayland
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix b/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
new file mode 100644
index 000000000000..7f2b35d8f7b5
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
@@ -0,0 +1,9 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "kwidgetsaddons";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem.nix b/pkgs/development/libraries/kde-frameworks/kwindowsystem.nix
new file mode 100644
index 000000000000..6acab52d1353
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtx11extras
+}:
+
+kdeFramework {
+  name = "kwindowsystem";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ qtx11extras ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kxmlgui.nix b/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
new file mode 100644
index 000000000000..ea800bf58ae0
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
@@ -0,0 +1,14 @@
+{ kdeFramework, lib, extra-cmake-modules, attica, kconfig
+, kconfigwidgets, kglobalaccel, ki18n, kiconthemes, kitemviews
+, ktextwidgets, kwindowsystem, sonnet
+}:
+
+kdeFramework {
+  name = "kxmlgui";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    attica kconfig kconfigwidgets kglobalaccel ki18n kiconthemes kitemviews
+    ktextwidgets kwindowsystem sonnet
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix b/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
new file mode 100644
index 000000000000..f20f4a223945
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
@@ -0,0 +1,8 @@
+{ kdeFramework, lib, extra-cmake-modules, ki18n, kio }:
+
+kdeFramework {
+  name = "kxmlrpcclient";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ ki18n kio ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix b/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
new file mode 100644
index 000000000000..e03254a71edd
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, modemmanager
+}:
+
+kdeFramework {
+  name = "modemmanager-qt";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ modemmanager ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix b/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
new file mode 100644
index 000000000000..0515509a77c5
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, networkmanager
+}:
+
+kdeFramework {
+  name = "networkmanager-qt";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ networkmanager ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix b/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
new file mode 100644
index 000000000000..0b5c75b960d3
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
@@ -0,0 +1,14 @@
+{ kdeFramework
+, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "oxygen-icons5";
+  meta = {
+    license = lib.licenses.lgpl3Plus;
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  outputs = [ "out" ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/plasma-framework.nix b/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
new file mode 100644
index 000000000000..a41381486538
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
@@ -0,0 +1,17 @@
+{ kdeFramework, lib, extra-cmake-modules, kactivities, karchive
+, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kdeclarative
+, kdoctools, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio
+, knotifications, kpackage, kservice, kwindowsystem, kxmlgui
+, qtscript, qtx11extras
+}:
+
+kdeFramework {
+  name = "plasma-framework";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    kactivities karchive kconfig kconfigwidgets kcoreaddons kdbusaddons
+    kdeclarative kglobalaccel kguiaddons ki18n kiconthemes kio knotifications
+    kpackage kservice kwindowsystem kxmlgui qtscript qtx11extras
+  ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/solid.nix b/pkgs/development/libraries/kde-frameworks/solid.nix
new file mode 100644
index 000000000000..c4f580fe1c2d
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/solid.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, qtdeclarative
+}:
+
+kdeFramework {
+  name = "solid";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ qtdeclarative ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/sonnet.nix b/pkgs/development/libraries/kde-frameworks/sonnet.nix
new file mode 100644
index 000000000000..28c24302abc4
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/sonnet.nix
@@ -0,0 +1,11 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+, hunspell
+}:
+
+kdeFramework {
+  name = "sonnet";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ hunspell ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/srcs.nix b/pkgs/development/libraries/kde-frameworks/srcs.nix
new file mode 100644
index 000000000000..5c48ece1e99e
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -0,0 +1,581 @@
+# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh
+{ fetchurl, mirror }:
+
+{
+  attica = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/attica-5.24.0.tar.xz";
+      sha256 = "0d368gmds7m7k5pnn625wqsij38cvxk1gkm4zv24phnk9f67v7cw";
+      name = "attica-5.24.0.tar.xz";
+    };
+  };
+  baloo = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/baloo-5.24.0.tar.xz";
+      sha256 = "1ayfdg6j9lvas17ryjdv4a0kaj6vw3bxfy2x9nadl0gkc9pak4nh";
+      name = "baloo-5.24.0.tar.xz";
+    };
+  };
+  bluez-qt = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/bluez-qt-5.24.0.tar.xz";
+      sha256 = "0gy0m7lcwwklf021l5i3v7j0cl7qz7cgvzrwpj87ix3kyw5xs80z";
+      name = "bluez-qt-5.24.0.tar.xz";
+    };
+  };
+  breeze-icons = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/breeze-icons-5.24.0.tar.xz";
+      sha256 = "1dh7bijx99sdb3vn6394wmm5cq0fvvmz8h17sx4hakmbga849cx2";
+      name = "breeze-icons-5.24.0.tar.xz";
+    };
+  };
+  extra-cmake-modules = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/extra-cmake-modules-5.24.0.tar.xz";
+      sha256 = "01m12ml529pwr2sal951r5z6yb1rwbpid1y4k14nlk3xqgmdakwa";
+      name = "extra-cmake-modules-5.24.0.tar.xz";
+    };
+  };
+  frameworkintegration = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/frameworkintegration-5.24.0.tar.xz";
+      sha256 = "0brqgq05m06d98qqvyh30727f5z7hlzxgqysfhfvqzcf3x7f6yzj";
+      name = "frameworkintegration-5.24.0.tar.xz";
+    };
+  };
+  kactivities = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kactivities-5.24.0.tar.xz";
+      sha256 = "0s8g43zk6h35bq1am1nnhj0qvmhd6kz42gs8l7ybga0367jghzhf";
+      name = "kactivities-5.24.0.tar.xz";
+    };
+  };
+  kactivities-stats = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kactivities-stats-5.24.0.tar.xz";
+      sha256 = "1z3xvpifxbd05b2xaxxyiypcpid7jgjb1qpwiyjj1gnfp4rjmzpc";
+      name = "kactivities-stats-5.24.0.tar.xz";
+    };
+  };
+  kapidox = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kapidox-5.24.0.tar.xz";
+      sha256 = "19a7alvn71nxflsyi7y3hghx1iw04qqc77qy54mcxcpkiyvpsggf";
+      name = "kapidox-5.24.0.tar.xz";
+    };
+  };
+  karchive = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/karchive-5.24.0.tar.xz";
+      sha256 = "1n5nfhrfvqnrdjgjjy7arqik4fya5bp3dvxa16mlhqr19azkavzq";
+      name = "karchive-5.24.0.tar.xz";
+    };
+  };
+  kauth = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kauth-5.24.0.tar.xz";
+      sha256 = "14sjjfgl3arqyqcr77w9qhpnd8mrnh53r5rfss6bvlk26bmihs49";
+      name = "kauth-5.24.0.tar.xz";
+    };
+  };
+  kbookmarks = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kbookmarks-5.24.0.tar.xz";
+      sha256 = "10d8dnhvbrwp0dbmz93cqfdff6ir8iy3yiwaf9ihj6ma124qlyjn";
+      name = "kbookmarks-5.24.0.tar.xz";
+    };
+  };
+  kcmutils = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kcmutils-5.24.0.tar.xz";
+      sha256 = "0aws1c76s6wbp0xpr6qv6cfwq8dw82v00pkf9gy84sbxknwjnizk";
+      name = "kcmutils-5.24.0.tar.xz";
+    };
+  };
+  kcodecs = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kcodecs-5.24.0.tar.xz";
+      sha256 = "1qpzjh3qc2zz80j2bmlinipbispms14k9bmqw8v61zhi6in9z14c";
+      name = "kcodecs-5.24.0.tar.xz";
+    };
+  };
+  kcompletion = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kcompletion-5.24.0.tar.xz";
+      sha256 = "1qln0v31gn86kzwhnkijr1ydf129n32jmiybbckrp4w6hyx6xfxv";
+      name = "kcompletion-5.24.0.tar.xz";
+    };
+  };
+  kconfig = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kconfig-5.24.0.tar.xz";
+      sha256 = "1dc2i6icyigw1j6qxgdza6j2g8afh390qmxsa2a54mwl84fkfmxv";
+      name = "kconfig-5.24.0.tar.xz";
+    };
+  };
+  kconfigwidgets = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kconfigwidgets-5.24.0.tar.xz";
+      sha256 = "0v25r50gh5i984lzlv0rradghglcfqf0gsfmnkn23h87b86fm9l2";
+      name = "kconfigwidgets-5.24.0.tar.xz";
+    };
+  };
+  kcoreaddons = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kcoreaddons-5.24.0.tar.xz";
+      sha256 = "06sx7by3nvaridnavj5p0bxv4nh47n708jlacfw8ydaikmd9i03h";
+      name = "kcoreaddons-5.24.0.tar.xz";
+    };
+  };
+  kcrash = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kcrash-5.24.0.tar.xz";
+      sha256 = "1lahgfwlp9b5rsl244kzp7rsl4ybv1q4qlvpv0xxz5ygssk48l0w";
+      name = "kcrash-5.24.0.tar.xz";
+    };
+  };
+  kdbusaddons = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kdbusaddons-5.24.0.tar.xz";
+      sha256 = "183nxqrhz4qk4qfp1w4an0scp2dvfqcaqbpg4cgbgk0z590q0pkk";
+      name = "kdbusaddons-5.24.0.tar.xz";
+    };
+  };
+  kdeclarative = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kdeclarative-5.24.0.tar.xz";
+      sha256 = "00ik9q1r6y6g5rkdq96yczgrxmcg85x00lipyljvc3x6xw6bixbz";
+      name = "kdeclarative-5.24.0.tar.xz";
+    };
+  };
+  kded = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kded-5.24.0.tar.xz";
+      sha256 = "0ngpxdxb596myn5r4kjxahx195bwklq33yvgjvcbxi2clg2wccaj";
+      name = "kded-5.24.0.tar.xz";
+    };
+  };
+  kdelibs4support = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/portingAids/kdelibs4support-5.24.0.tar.xz";
+      sha256 = "12sis63mq6i372bhx64x8y0pw6czrv64hdhjscx27cx65a4ir451";
+      name = "kdelibs4support-5.24.0.tar.xz";
+    };
+  };
+  kdesignerplugin = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kdesignerplugin-5.24.0.tar.xz";
+      sha256 = "0i0s8pwwhwh5hyyvkv0cnj0yyv0g5bnm5xw18knv2yagiy4bvb2j";
+      name = "kdesignerplugin-5.24.0.tar.xz";
+    };
+  };
+  kdesu = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kdesu-5.24.0.tar.xz";
+      sha256 = "1ivcnhgvq75xvl0w9g7m45qzallz42ijaq0n1ap09lpdfmjbnrxk";
+      name = "kdesu-5.24.0.tar.xz";
+    };
+  };
+  kdewebkit = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kdewebkit-5.24.0.tar.xz";
+      sha256 = "1xq36zv7vnllhqbisl6kcna8z6qzlvy29a47g0hbzgl8rc93qskf";
+      name = "kdewebkit-5.24.0.tar.xz";
+    };
+  };
+  kdnssd = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kdnssd-5.24.0.tar.xz";
+      sha256 = "01b650g031apxc3vd2m91g2fxqk9l8ap67z6rafniphfwy8i0d5m";
+      name = "kdnssd-5.24.0.tar.xz";
+    };
+  };
+  kdoctools = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kdoctools-5.24.0.tar.xz";
+      sha256 = "1r129kpq0d11b9l87cqbal6fm5ycwhsps1g3r1a7jsxz70scz4ri";
+      name = "kdoctools-5.24.0.tar.xz";
+    };
+  };
+  kemoticons = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kemoticons-5.24.0.tar.xz";
+      sha256 = "0gmc52k5jb553jvzxwsq79v5y87kgav8i5qqv4bqc9yl7p866zhn";
+      name = "kemoticons-5.24.0.tar.xz";
+    };
+  };
+  kfilemetadata = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kfilemetadata-5.24.0.tar.xz";
+      sha256 = "02n9qhpr0jlwdgdbid0k34abhs3bzhlsa56ybl5dq1aib6izk1sy";
+      name = "kfilemetadata-5.24.0.tar.xz";
+    };
+  };
+  kglobalaccel = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kglobalaccel-5.24.0.tar.xz";
+      sha256 = "123v0ld1q88hbm3d0mqgq6lcivfkqh7pbz4hb4n76ab5v43qc15c";
+      name = "kglobalaccel-5.24.0.tar.xz";
+    };
+  };
+  kguiaddons = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kguiaddons-5.24.0.tar.xz";
+      sha256 = "0ig96ah20ybg5rwpswj9va2klvkh2q4amwxmgy3z4niwfsm2g3ic";
+      name = "kguiaddons-5.24.0.tar.xz";
+    };
+  };
+  khtml = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/portingAids/khtml-5.24.0.tar.xz";
+      sha256 = "0f19m8ycaa41p61i0j43gafn364abral8dbiqhr0qcj33nsa4134";
+      name = "khtml-5.24.0.tar.xz";
+    };
+  };
+  ki18n = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/ki18n-5.24.0.tar.xz";
+      sha256 = "0cw24spmwsqa3ppkw03cm6yjd3sfll0dbbk2ya76fd4nw9hb00dv";
+      name = "ki18n-5.24.0.tar.xz";
+    };
+  };
+  kiconthemes = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kiconthemes-5.24.0.tar.xz";
+      sha256 = "1k5zig2n6wzfyv6pc8dpas2862mxjyxxza00m31myrfw5i1a1h6m";
+      name = "kiconthemes-5.24.0.tar.xz";
+    };
+  };
+  kidletime = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kidletime-5.24.0.tar.xz";
+      sha256 = "09jsj0pj27h93nr8v46savs6b93h8frydinfr7wlijkvpsl02jb4";
+      name = "kidletime-5.24.0.tar.xz";
+    };
+  };
+  kimageformats = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kimageformats-5.24.0.tar.xz";
+      sha256 = "12mhgckmhnvcnm8k7mk15mipxrnm7i9ip7ykbjh8nxjiwyk1pmwc";
+      name = "kimageformats-5.24.0.tar.xz";
+    };
+  };
+  kinit = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kinit-5.24.0.tar.xz";
+      sha256 = "1i7l6gid5hrrfglw1c461gpjg51dwz7cl4lx7ll8vz2ha8mz4d3n";
+      name = "kinit-5.24.0.tar.xz";
+    };
+  };
+  kio = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kio-5.24.0.tar.xz";
+      sha256 = "0zncj9yf8zaylazlwvirylpk9vki3j889b1x2s0aav54vvj7vdi5";
+      name = "kio-5.24.0.tar.xz";
+    };
+  };
+  kitemmodels = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kitemmodels-5.24.0.tar.xz";
+      sha256 = "1s1p4nw1pqdzbdwvjnka17p9avf00wadr437p4f96md1lvh3sh69";
+      name = "kitemmodels-5.24.0.tar.xz";
+    };
+  };
+  kitemviews = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kitemviews-5.24.0.tar.xz";
+      sha256 = "0y3fx9hk1x27arrmwfzq783a44cs7p8dpmhxrwzh0di4mwa8jafw";
+      name = "kitemviews-5.24.0.tar.xz";
+    };
+  };
+  kjobwidgets = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kjobwidgets-5.24.0.tar.xz";
+      sha256 = "1mcvrz66xcqjgbp08zpqsf943cm462wbqm5gh719p9s25hx8hwrc";
+      name = "kjobwidgets-5.24.0.tar.xz";
+    };
+  };
+  kjs = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/portingAids/kjs-5.24.0.tar.xz";
+      sha256 = "1qd5sdfrdg7id0g5mwf3ijwlfvh3g36kwnckw6kwns1nf4q6gwlz";
+      name = "kjs-5.24.0.tar.xz";
+    };
+  };
+  kjsembed = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/portingAids/kjsembed-5.24.0.tar.xz";
+      sha256 = "1nx8ch8mzd1jyx8pd46364ij0bsbsclbipbgr6jm9aak3n13b0nw";
+      name = "kjsembed-5.24.0.tar.xz";
+    };
+  };
+  kmediaplayer = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/portingAids/kmediaplayer-5.24.0.tar.xz";
+      sha256 = "147xrffkvkyv3h8ighc1vlwksysfrqc0g55k8zrd72l6r0kjjh0p";
+      name = "kmediaplayer-5.24.0.tar.xz";
+    };
+  };
+  knewstuff = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/knewstuff-5.24.0.tar.xz";
+      sha256 = "0xdv3wh3100vzsx8p2zihy1dvh0wzfmrjkjq71v8igwz5d291zsj";
+      name = "knewstuff-5.24.0.tar.xz";
+    };
+  };
+  knotifications = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/knotifications-5.24.0.tar.xz";
+      sha256 = "0qryp41phnpx4r9wa6rfhmnzy7nxl0ijnyrafadf2n2xb53ipkpa";
+      name = "knotifications-5.24.0.tar.xz";
+    };
+  };
+  knotifyconfig = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/knotifyconfig-5.24.0.tar.xz";
+      sha256 = "1dij841fnqia4p44x2wnpdvl8cn3nkj833y0fah50fmipjc8r70b";
+      name = "knotifyconfig-5.24.0.tar.xz";
+    };
+  };
+  kpackage = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kpackage-5.24.0.tar.xz";
+      sha256 = "03aqzkpqz3c1v4qgwfbs3ncdbapiyg7psrkhxqv3z48rklavk1ri";
+      name = "kpackage-5.24.0.tar.xz";
+    };
+  };
+  kparts = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kparts-5.24.0.tar.xz";
+      sha256 = "0z7qr93aq02i7g7cxgypx2rzlnsvbsx9cjblb0ijmad1nb8w3mix";
+      name = "kparts-5.24.0.tar.xz";
+    };
+  };
+  kpeople = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kpeople-5.24.0.tar.xz";
+      sha256 = "0iknzkj23y927xh24kw5sjxyirhy6pkmfcmmgwzd78rba8a54qp2";
+      name = "kpeople-5.24.0.tar.xz";
+    };
+  };
+  kplotting = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kplotting-5.24.0.tar.xz";
+      sha256 = "0gpypq9kh4b5s6dc7py3m117k3nbxczsfkxgxd9zxvr35kig7ya2";
+      name = "kplotting-5.24.0.tar.xz";
+    };
+  };
+  kpty = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kpty-5.24.0.tar.xz";
+      sha256 = "1ybvdzqpa53kkki9p5da0ff9x3c63rmksk7865wqwlgy8apzi2fs";
+      name = "kpty-5.24.0.tar.xz";
+    };
+  };
+  kross = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/portingAids/kross-5.24.0.tar.xz";
+      sha256 = "0f29dpmfcj173vqnmrbpvdmfmzzbfsds1lbl546qfx9a5acdpf2p";
+      name = "kross-5.24.0.tar.xz";
+    };
+  };
+  krunner = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/krunner-5.24.0.tar.xz";
+      sha256 = "0ff87ijjd47jxf6zw2ggqgngnbyx1rj59wdfgy5wbi3acws6bafl";
+      name = "krunner-5.24.0.tar.xz";
+    };
+  };
+  kservice = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kservice-5.24.0.tar.xz";
+      sha256 = "0w0nsg64d6xhgijr2vh0j5p544qi0q55jpqa9v9mv956zrrdssdk";
+      name = "kservice-5.24.0.tar.xz";
+    };
+  };
+  ktexteditor = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/ktexteditor-5.24.0.tar.xz";
+      sha256 = "1ykj1kvm7k1vxb1w235d5hp2swwdqjyp2y4c3pxbvkn999h9x5q5";
+      name = "ktexteditor-5.24.0.tar.xz";
+    };
+  };
+  ktextwidgets = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/ktextwidgets-5.24.0.tar.xz";
+      sha256 = "1q10xav2gkii6s3m31c9xvxf1988l7k2lpib6pyhgsidflmwjm02";
+      name = "ktextwidgets-5.24.0.tar.xz";
+    };
+  };
+  kunitconversion = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kunitconversion-5.24.0.tar.xz";
+      sha256 = "03dfjn4lm6sl2zcdrvw0b9irzvkyc2w2j5xixag5j8nw373742h8";
+      name = "kunitconversion-5.24.0.tar.xz";
+    };
+  };
+  kwallet = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kwallet-5.24.0.tar.xz";
+      sha256 = "0zad5h4vsvcl2xv3vxsjwh42b71xbp6x6rj8cvmw8szr2rzz9gsx";
+      name = "kwallet-5.24.0.tar.xz";
+    };
+  };
+  kwayland = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kwayland-5.24.0.tar.xz";
+      sha256 = "1h5anbqrxcl1s8kx1l53vcsfr8ifamcjqd47dk8a7lwr1ga6myq2";
+      name = "kwayland-5.24.0.tar.xz";
+    };
+  };
+  kwidgetsaddons = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kwidgetsaddons-5.24.0.tar.xz";
+      sha256 = "1kppx0ppfhnb6q6sijs2dffyar86wkkx8miqavsjsgw1l2wiymcx";
+      name = "kwidgetsaddons-5.24.0.tar.xz";
+    };
+  };
+  kwindowsystem = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kwindowsystem-5.24.0.tar.xz";
+      sha256 = "0w5ym8msl80v3q65253pdpj9f1fmb658rnndlbkrgpmm1rv1n6dz";
+      name = "kwindowsystem-5.24.0.tar.xz";
+    };
+  };
+  kxmlgui = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kxmlgui-5.24.0.tar.xz";
+      sha256 = "1qhixldhhcbklmrpjh67440h1rrzqy70h57hw6ialjdsr3pl6ihp";
+      name = "kxmlgui-5.24.0.tar.xz";
+    };
+  };
+  kxmlrpcclient = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/kxmlrpcclient-5.24.0.tar.xz";
+      sha256 = "06ap6ipzqimz1rfrcr7z8zc7idy7sg4a97dws7h52i34ms7jqnc8";
+      name = "kxmlrpcclient-5.24.0.tar.xz";
+    };
+  };
+  modemmanager-qt = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/modemmanager-qt-5.24.0.tar.xz";
+      sha256 = "0khz5bf84xxa8aqpzwb6x839xx6dbiadwqhyj7cvgha65fh2xinh";
+      name = "modemmanager-qt-5.24.0.tar.xz";
+    };
+  };
+  networkmanager-qt = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/networkmanager-qt-5.24.0.tar.xz";
+      sha256 = "11wy0ds0hqbba900ggkcxjfqc9n65xlzc3h1zv9433nn5d75v6fy";
+      name = "networkmanager-qt-5.24.0.tar.xz";
+    };
+  };
+  oxygen-icons5 = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/oxygen-icons5-5.24.0.tar.xz";
+      sha256 = "1c7spjbzk04725vv0ly7vmyvwa96mfa5ki2pm146ld4888a896wm";
+      name = "oxygen-icons5-5.24.0.tar.xz";
+    };
+  };
+  plasma-framework = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/plasma-framework-5.24.0.tar.xz";
+      sha256 = "0981vm00541dzihlr1fsax05biwp2ddpwjrmvnfysx5jagdc65cb";
+      name = "plasma-framework-5.24.0.tar.xz";
+    };
+  };
+  solid = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/solid-5.24.0.tar.xz";
+      sha256 = "00wvsxcnvhdx7ijzpcz5wny2ypkxr1drdpr4yvawgpwa678l1107";
+      name = "solid-5.24.0.tar.xz";
+    };
+  };
+  sonnet = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/sonnet-5.24.0.tar.xz";
+      sha256 = "152xz7fb1iwhb5w1n4xqvc648iaxi0inrl4kavxcsir61das1xyl";
+      name = "sonnet-5.24.0.tar.xz";
+    };
+  };
+  threadweaver = {
+    version = "5.24.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.24/threadweaver-5.24.0.tar.xz";
+      sha256 = "02g60zr9cc4bg1p90giich4n0qvqaiakz0y94qrnyj9f7fg0yksl";
+      name = "threadweaver-5.24.0.tar.xz";
+    };
+  };
+}
diff --git a/pkgs/development/libraries/kde-frameworks/threadweaver.nix b/pkgs/development/libraries/kde-frameworks/threadweaver.nix
new file mode 100644
index 000000000000..b8f2939e8b59
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/threadweaver.nix
@@ -0,0 +1,9 @@
+{ kdeFramework, lib
+, extra-cmake-modules
+}:
+
+kdeFramework {
+  name = "threadweaver";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+}
diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix
index 24b4c749853d..8401e9f0d3de 100644
--- a/pkgs/development/libraries/qt-5/5.5/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/default.nix
@@ -42,7 +42,7 @@ let
       inherit src;
 
       propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []);
-      nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ self.fixQtModuleCMakeConfig self.qmakeHook ];
+      nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ self.qmakeHook ];
 
       NIX_QT_SUBMODULE = args.NIX_QT_SUBMODULE or true;
 
@@ -113,7 +113,6 @@ let
       ];
 
       makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh;
-      fixQtModuleCMakeConfig = makeSetupHook { } ./fix-qt-module-cmake-config.sh;
       qmakeHook = makeSetupHook { substitutions = { qt_dev = qtbase.dev; lndir = pkgs.xorg.lndir; }; } ./qmake-hook.sh;
 
     };
diff --git a/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh b/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh
deleted file mode 100644
index 7ca3e33b613c..000000000000
--- a/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-fixQtModuleCMakeConfig() {
-    local module="$1"
-    sed -e "/set(imported_location/ s@\\\${_qt5${module}_install_prefix}@${!outputLib}@" \
-        -i "${!outputDev}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake"
-}
diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/cmake-paths.patch b/pkgs/development/libraries/qt-5/5.5/qtbase/cmake-paths.patch
new file mode 100644
index 000000000000..63c4ab7256a6
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.5/qtbase/cmake-paths.patch
@@ -0,0 +1,321 @@
+Index: qtbase-opensource-src-5.6.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.6.0.orig/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
++++ qtbase-opensource-src-5.6.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+@@ -9,30 +9,6 @@ if (CMAKE_VERSION VERSION_LESS 3.0.0)
+ endif()
+ !!ENDIF
+ 
+-!!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND)
+-!!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+-!!ELSE
+-get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH)
+-# Use original install prefix when loaded through a
+-# cross-prefix symbolic link such as /lib -> /usr/lib.
+-get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH)
+-get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5$${CMAKE_MODULE_NAME}\" REALPATH)
+-if(_realCurr STREQUAL _realOrig)
+-    get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR/$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}\" ABSOLUTE)
+-else()
+-    get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+-endif()
+-unset(_realOrig)
+-unset(_realCurr)
+-unset(_IMPORT_PREFIX)
+-!!ENDIF
+-!!ELIF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+-!!ELSE
+-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+-!!ENDIF
+-
+ !!IF !equals(TEMPLATE, aux)
+ # For backwards compatibility only. Use Qt5$${CMAKE_MODULE_NAME}_VERSION instead.
+ set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.MAJOR_VERSION).$$eval(QT.$${MODULE}.MINOR_VERSION).$$eval(QT.$${MODULE}.PATCH_VERSION)")
+@@ -59,7 +35,10 @@ macro(_populate_$${CMAKE_MODULE_NAME}_ta
+     set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    set(imported_location \"@NIX_OUT@/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    if(NOT EXISTS \"${imported_location}\")
++        set(imported_location \"@NIX_DEV@/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    endif()
+ !!ELSE
+     set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ENDIF
+@@ -74,45 +53,18 @@ macro(_populate_$${CMAKE_MODULE_NAME}_ta
+         \"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}\" \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\"
+     )
+ 
+-!!IF !isEmpty(CMAKE_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+-!!ELSE
+-    set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+-!!ENDIF
+-    _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_implib})
+-    if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\")
+-        set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
+-        \"IMPORTED_IMPLIB_${Configuration}\" ${imported_implib}
+-        )
+-    endif()
+-!!ENDIF
+ endmacro()
+ !!ENDIF
+ 
+ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ 
+ !!IF !no_module_headers
+-!!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK)
+-    set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS
+-      \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework\"
+-      \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Headers\"
+-    )
+-!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+-    set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\"
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}Qt$${CMAKE_MODULE_NAME}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
+-    )
+-!!ELSE
+-    set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+-!!ENDIF
+-!!ELSE
+ !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
+-    set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
++    set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"@NIX_DEV@/$$CMAKE_INCLUDE_DIR\" \"@NIX_DEV@/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
+ !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\"
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\"
++        \"@NIX_DEV@/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\"
++        \"@NIX_DEV@/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\"
+     )
+ !!ELSE
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+@@ -128,7 +80,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+ !!ENDIF
+ !!ENDIF
+-!!ENDIF
++
+ !!IF !isEmpty(CMAKE_ADD_SOURCE_INCLUDE_DIRS)
+     include(\"${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake\" OPTIONAL)
+ !!ENDIF
+@@ -253,28 +205,19 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME
+ 
+ !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
+ !!IF isEmpty(CMAKE_DEBUG_TYPE)
+-!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
+-    if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
+-        _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" )
+-!!ELSE // CMAKE_STATIC_WINDOWS_BUILD
+     if (EXISTS
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
++        \"@NIX_OUT@/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
+ !!ELSE
+         \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
+ !!ENDIF
+       AND EXISTS
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
++        \"@NIX_DEV@/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+ !!ELSE
+         \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+ !!ENDIF
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+     endif()
+ !!ENDIF // CMAKE_DEBUG_TYPE
+ !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD
+@@ -282,36 +225,23 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME
+ !!ENDIF // CMAKE_RELEASE_TYPE
+ 
+ !!IF !isEmpty(CMAKE_DEBUG_TYPE)
+-!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-    _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" )
+-!!ELSE
+     _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+ 
+ !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
+ !!IF isEmpty(CMAKE_RELEASE_TYPE)
+-!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
+-    if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
+-        _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" )
+-!!ELSE // CMAKE_STATIC_WINDOWS_BUILD
+     if (EXISTS
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
++        \"@NIX_OUT@/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
+ !!ELSE
+         \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
+ !!ENDIF
+       AND EXISTS
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
++        \"@NIX_DEV@/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+ !!ELSE
+         \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+ !!ENDIF
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+     endif()
+ !!ENDIF // CMAKE_RELEASE_TYPE
+ !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD
+@@ -329,7 +259,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME
+         set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+ !!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE)
+-        set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
++        set(imported_location \"@NIX_OUT@/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
+ !!ELSE
+         set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.6.0/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.6.0.orig/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in
++++ qtbase-opensource-src-5.6.0/qtbase/src/gui/Qt5GuiConfigExtras.cmake.in
+@@ -2,7 +2,7 @@
+ !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE)
+ 
+ !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
+-set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR/QtANGLE\")
++set(Qt5Gui_EGL_INCLUDE_DIRS \"@NIX_DEV@/$$CMAKE_INCLUDE_DIR/QtANGLE\")
+ !!ELSE
+ set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR/QtANGLE\")
+ !!ENDIF
+@@ -17,13 +17,13 @@ macro(_populate_qt5gui_gl_target_propert
+     set_property(TARGET Qt5::${TargetName} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Gui_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    set(imported_location \"@NIX_OUT@/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ENDIF
+ 
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_implib \"${_qt5Gui_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
++    set(imported_implib \"@NIX_DEV@/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+ !!ELSE
+     set(imported_implib \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.6.0/qtbase/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.6.0.orig/qtbase/src/widgets/Qt5WidgetsConfigExtras.cmake.in
++++ qtbase-opensource-src-5.6.0/qtbase/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::uic)
+     add_executable(Qt5::uic IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.6.0/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.6.0.orig/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in
++++ qtbase-opensource-src-5.6.0/qtbase/src/corelib/Qt5CoreConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::qmake)
+     add_executable(Qt5::qmake IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -18,7 +18,7 @@ if (NOT TARGET Qt5::moc)
+     add_executable(Qt5::moc IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -35,7 +35,7 @@ if (NOT TARGET Qt5::rcc)
+     add_executable(Qt5::rcc IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -131,7 +131,7 @@ if (NOT TARGET Qt5::WinMain)
+ !!IF !isEmpty(CMAKE_RELEASE_TYPE)
+     set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
+ !!ENDIF
+@@ -145,7 +145,7 @@ if (NOT TARGET Qt5::WinMain)
+     set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+ 
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.6.0/qtbase/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.6.0.orig/qtbase/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
++++ qtbase-opensource-src-5.6.0/qtbase/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
+@@ -1,6 +1,6 @@
+ 
+ !!IF isEmpty(CMAKE_INSTALL_DATA_DIR_IS_ABSOLUTE)
+-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
++set(_qt5_corelib_extra_includes \"@NIX_DEV@/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
+ !!ELSE
+ set(_qt5_corelib_extra_includes \"$${CMAKE_INSTALL_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.6.0/qtbase/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.6.0.orig/qtbase/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
++++ qtbase-opensource-src-5.6.0/qtbase/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
+@@ -1,6 +1,6 @@
+ 
+ !!IF isEmpty(CMAKE_HOST_DATA_DIR_IS_ABSOLUTE)
+-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
++set(_qt5_corelib_extra_includes \"@NIX_DEV@/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
+ !!ELSE
+ set(_qt5_corelib_extra_includes \"$${CMAKE_HOST_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
+ !!ENDIF
+Index: qtbase-opensource-src-5.6.0/src/qtbase/dbus/Qt5DBusConfigExtras.cmake.in
+===================================================================
+--- qtbase-opensource-src-5.6.0.orig/qtbase/src/dbus/Qt5DBusConfigExtras.cmake.in
++++ qtbase-opensource-src-5.6.0/qtbase/src/dbus/Qt5DBusConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml)
+     add_executable(Qt5::qdbuscpp2xml IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -18,7 +18,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp)
+     add_executable(Qt5::qdbusxml2cpp IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"@NIX_DEV@/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
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 fcd870163074..ef64a87d0e28 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, copyPathsToStore, fixQtModuleCMakeConfig
+{ stdenv, lib, fetchurl, copyPathsToStore
 , srcs
 
 , xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi
@@ -213,11 +213,19 @@ stdenv.mkDerivation {
     # FIXME: move to the main list on rebuild.
     ++ [gnome_vfs.out libgnomeui.out gtk GConf];
 
-  nativeBuildInputs = [ fixQtModuleCMakeConfig lndir patchelf perl pkgconfig python ];
+  nativeBuildInputs = [ lndir patchelf perl pkgconfig python ];
 
   # freetype-2.5.4 changed signedness of some struct fields
   NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare";
 
+  postInstall = ''
+    find "$out" -name "*.cmake" | while read file; do
+        substituteInPlace "$file" \
+            --subst-var-by NIX_OUT "$out" \
+            --subst-var-by NIX_DEV "$dev"
+    done
+  '';
+
   preFixup = ''
     # We cannot simply set these paths in configureFlags because libQtCore retains
     # references to the paths it was built with.
@@ -229,17 +237,6 @@ stdenv.mkDerivation {
     mkdir -p "$dev/share"
     moveToOutput "share/doc" "$dev"
 
-    # Move libtool archives and qmake projects
-    if [ "z''${!outputLib}" != "z''${!outputDev}" ]; then
-        pushd "''${!outputLib}"
-        find lib -name '*.a' -o -name '*.la' -o -name '*.prl' | \
-            while read -r file; do
-                mkdir -p "''${!outputDev}/$(dirname "$file")"
-                mv "''${!outputLib}/$file" "''${!outputDev}/$file"
-            done
-        popd
-    fi
-
     # Move the QGtkStyle plugin to the gtk output
     mkdir -p "$gtk/lib/qt5/plugins/platformthemes"
     mv "$out/lib/qt5/plugins/platformthemes/libqgtk2.so" "$gtk/lib/qt5/plugins/platformthemes"
@@ -262,18 +259,16 @@ stdenv.mkDerivation {
       # Don't retain build-time dependencies like gdb and ruby.
       sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $dev/mkspecs/qconfig.pri
 
-      fixQtModuleCMakeConfig "Concurrent"
-      fixQtModuleCMakeConfig "Core"
-      fixQtModuleCMakeConfig "DBus"
-      fixQtModuleCMakeConfig "Gui"
-      fixQtModuleCMakeConfig "Network"
-      fixQtModuleCMakeConfig "OpenGL"
-      fixQtModuleCMakeConfig "OpenGLExtensions"
-      fixQtModuleCMakeConfig "PrintSupport"
-      fixQtModuleCMakeConfig "Sql"
-      fixQtModuleCMakeConfig "Test"
-      fixQtModuleCMakeConfig "Widgets"
-      fixQtModuleCMakeConfig "Xml"
+      # Move libtool archives and qmake projects
+      if [ "z''${!outputLib}" != "z''${!outputDev}" ]; then
+          pushd "''${!outputLib}"
+          find lib -name '*.a' -o -name '*.la' -o -name '*.prl' | \
+              while read -r file; do
+                  mkdir -p "''${!outputDev}/$(dirname "$file")"
+                  mv "''${!outputLib}/$file" "''${!outputDev}/$file"
+              done
+          popd
+      fi
     '';
 
   inherit lndir;
diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/series b/pkgs/development/libraries/qt-5/5.5/qtbase/series
index 2196d8383752..1dfd8ac2683c 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtbase/series
+++ b/pkgs/development/libraries/qt-5/5.5/qtbase/series
@@ -7,3 +7,4 @@ xdg-config-dirs.patch
 nix-profiles-library-paths.patch
 compose-search-path.patch
 libressl.patch
+cmake-paths.patch
\ No newline at end of file
diff --git a/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix b/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix
index 35538c7261f1..95cd6fea79b4 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix
@@ -3,8 +3,4 @@
 qtSubmodule {
   name = "qtconnectivity";
   qtInputs = [ qtbase qtdeclarative ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "Bluetooth"
-    fixQtModuleCMakeConfig "Nfc"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix b/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix
index 407513f78498..328d8aee72bd 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix
@@ -5,10 +5,4 @@ qtSubmodule {
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   qtInputs = [ qtbase qtsvg qtxmlpatterns ];
   nativeBuildInputs = [ python ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "Qml"
-    fixQtModuleCMakeConfig "Quick"
-    fixQtModuleCMakeConfig "QuickTest"
-    fixQtModuleCMakeConfig "QuickWidgets"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtenginio.nix b/pkgs/development/libraries/qt-5/5.5/qtenginio.nix
index 503a0f7ce4f5..b860a73ef890 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtenginio.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtenginio.nix
@@ -3,7 +3,4 @@
 qtSubmodule {
   name = "qtenginio";
   qtInputs = [ qtdeclarative ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "Enginio"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtlocation.nix b/pkgs/development/libraries/qt-5/5.5/qtlocation.nix
index bd11d4816ff3..1e134057c4b4 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtlocation.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtlocation.nix
@@ -3,7 +3,4 @@
 qtSubmodule {
   name = "qtlocation";
   qtInputs = [ qtbase qtmultimedia ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "Positioning"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix b/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix
index 9eb68ba6b5ba..7c1cc5da07e3 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix
@@ -9,8 +9,4 @@ qtSubmodule {
     pkgconfig alsaLib gstreamer gst-plugins-base libpulseaudio
   ];
   qmakeFlags = [ "GST_VERSION=1.0" ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "Multimedia"
-    fixQtModuleCMakeConfig "MultimediaWidgets"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix b/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix
index 4bf92fa01473..64937b3dcd37 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix
@@ -4,7 +4,4 @@ qtSubmodule {
   name = "qtquick1";
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   qtInputs = [ qtscript qtsvg qtwebkit qtxmlpatterns ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "Declarative"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix b/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix
index b81a43aeadb0..127766e2ebd6 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix
@@ -4,7 +4,4 @@ qtSubmodule {
   name = "qtscript";
   qtInputs = [ qtbase qttools ];
   patches = [ ./0001-glib-2.32.patch ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "Script"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtsensors.nix b/pkgs/development/libraries/qt-5/5.5/qtsensors.nix
index 5776f45a7068..61e64dc47e4d 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtsensors.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtsensors.nix
@@ -3,7 +3,4 @@
 qtSubmodule {
   name = "qtsensors";
   qtInputs = [ qtbase qtdeclarative ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "Sensors"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix b/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix
index 3f409f9c0e08..32549c95344a 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix
@@ -9,7 +9,4 @@ qtSubmodule {
       libudev = libudev.out;
     })
   ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "SerialPort"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtsvg.nix b/pkgs/development/libraries/qt-5/5.5/qtsvg.nix
index a460d6da4c2a..b9ccac7cf933 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtsvg.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtsvg.nix
@@ -3,7 +3,4 @@
 qtSubmodule {
   name = "qtsvg";
   qtInputs = [ qtbase ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "Svg"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qttools.nix b/pkgs/development/libraries/qt-5/5.5/qttools.nix
index 1472691c5254..47ebd17c08f6 100644
--- a/pkgs/development/libraries/qt-5/5.5/qttools.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qttools.nix
@@ -6,11 +6,5 @@ qtSubmodule {
   postFixup = ''
     moveToOutput "bin/qdbus" "$out"
     moveToOutput "bin/qtpaths" "$out"
-
-    fixQtModuleCMakeConfig "Designer"
-    fixQtModuleCMakeConfig "Help"
-    fixQtModuleCMakeConfig "LinguistTools"
-    fixQtModuleCMakeConfig "UiPlugin"
-    fixQtModuleCMakeConfig "UiTools"
   '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix b/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix
index b441a2448d76..2e92391f4c08 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix
@@ -31,8 +31,4 @@ qtSubmodule {
         };
     in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ]
     ++ [ dlopen-webkit-udev ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "WebKit"
-    fixQtModuleCMakeConfig "WebKitWidgets"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix b/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix
index c0d0f9e7d714..fbdfbbcf0dbe 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix
@@ -3,7 +3,4 @@
 qtSubmodule {
   name = "qtwebsockets";
   qtInputs = [ qtbase qtdeclarative ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "WebSockets"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix b/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix
index db92f1353627..a765161e2d7e 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix
@@ -3,7 +3,4 @@
 qtSubmodule {
   name = "qtx11extras";
   qtInputs = [ qtbase ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "X11Extras"
-  '';
 }
diff --git a/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix b/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix
index 3b22132e4c38..9a8ddbba2bd2 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix
@@ -3,7 +3,4 @@
 qtSubmodule {
   name = "qtxmlpatterns";
   qtInputs = [ qtbase ];
-  postFixup = ''
-    fixQtModuleCMakeConfig "XmlPatterns"
-  '';
 }