summary refs log tree commit diff
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@mailbox.org>2017-05-22 13:49:07 -0500
committerThomas Tuegel <ttuegel@mailbox.org>2017-06-18 08:44:45 -0500
commitfaf0d3e91d7a08a95a9dd8a7faa4d2f5ee5cb4eb (patch)
tree494e37aed0ec56df26ae359a4adad7dee117420d
parent087f20e8c66372bdba86fa309dd4e1be3f35d821 (diff)
downloadnixpkgs-faf0d3e91d7a08a95a9dd8a7faa4d2f5ee5cb4eb.tar
nixpkgs-faf0d3e91d7a08a95a9dd8a7faa4d2f5ee5cb4eb.tar.gz
nixpkgs-faf0d3e91d7a08a95a9dd8a7faa4d2f5ee5cb4eb.tar.bz2
nixpkgs-faf0d3e91d7a08a95a9dd8a7faa4d2f5ee5cb4eb.tar.lz
nixpkgs-faf0d3e91d7a08a95a9dd8a7faa4d2f5ee5cb4eb.tar.xz
nixpkgs-faf0d3e91d7a08a95a9dd8a7faa4d2f5ee5cb4eb.tar.zst
nixpkgs-faf0d3e91d7a08a95a9dd8a7faa4d2f5ee5cb4eb.zip
kdeFrameworks: fixup inputs and outputs
- Reduce environment pollution with a separate $bin output containing programs,
  plugins, and shared data. Libraries remain in $out and are not installed into
  the environment.
- Only propagate build inputs as required.
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix4
-rw-r--r--pkgs/applications/kde/akonadi-contacts.nix8
-rw-r--r--pkgs/applications/kde/akonadi-mime.nix5
-rw-r--r--pkgs/applications/kde/ark/default.nix9
-rw-r--r--pkgs/applications/kde/baloo-widgets.nix1
-rw-r--r--pkgs/applications/kde/dolphin.nix1
-rw-r--r--pkgs/applications/kde/gwenview.nix5
-rw-r--r--pkgs/applications/kde/kcontacts.nix6
-rw-r--r--pkgs/applications/kde/kmime.nix4
-rw-r--r--pkgs/applications/kde/kwalletmanager.nix5
-rw-r--r--pkgs/applications/kde/okular.nix11
-rw-r--r--pkgs/applications/kde/spectacle.nix3
-rw-r--r--pkgs/desktops/plasma-5/bluedevil.nix3
-rw-r--r--pkgs/desktops/plasma-5/breeze-qt5.nix6
-rw-r--r--pkgs/desktops/plasma-5/kactivitymanagerd.nix2
-rw-r--r--pkgs/desktops/plasma-5/kde-cli-tools.nix10
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/default.nix2
-rw-r--r--pkgs/desktops/plasma-5/kdeplasma-addons.nix16
-rw-r--r--pkgs/desktops/plasma-5/kgamma5.nix8
-rw-r--r--pkgs/desktops/plasma-5/khotkeys.nix6
-rw-r--r--pkgs/desktops/plasma-5/kinfocenter.nix2
-rw-r--r--pkgs/desktops/plasma-5/kscreen.nix6
-rw-r--r--pkgs/desktops/plasma-5/kscreenlocker.nix5
-rw-r--r--pkgs/desktops/plasma-5/ksshaskpass.nix8
-rw-r--r--pkgs/desktops/plasma-5/kwallet-pam.nix1
-rw-r--r--pkgs/desktops/plasma-5/kwayland-integration.nix8
-rw-r--r--pkgs/desktops/plasma-5/kwrited.nix8
-rw-r--r--pkgs/desktops/plasma-5/milou.nix14
-rw-r--r--pkgs/desktops/plasma-5/oxygen.nix7
-rw-r--r--pkgs/desktops/plasma-5/plasma-integration.nix14
-rw-r--r--pkgs/desktops/plasma-5/plasma-nm/default.nix19
-rw-r--r--pkgs/desktops/plasma-5/plasma-pa.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/attica.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/baloo.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks/bluez-qt.nix5
-rw-r--r--pkgs/development/libraries/kde-frameworks/breeze-icons.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/default.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/setup-hook.sh14
-rw-r--r--pkgs/development/libraries/kde-frameworks/frameworkintegration.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kactivities-stats.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kactivities.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kapidox.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/karchive.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kauth/default.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/kbookmarks.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcmutils/default.nix9
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcodecs.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcompletion.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kconfig.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcoreaddons.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcrash.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdbusaddons.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdeclarative.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kded.nix11
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix29
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix8
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdesu.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdnssd.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdoctools/default.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks/kemoticons.nix5
-rw-r--r--pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kglobalaccel.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kguiaddons.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/khtml.nix9
-rw-r--r--pkgs/development/libraries/kde-frameworks/ki18n.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix8
-rw-r--r--pkgs/development/libraries/kde-frameworks/kidletime.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kimageformats.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/default.nix18
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/default.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kitemmodels.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kitemviews.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjobwidgets.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjs.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjsembed.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kmediaplayer.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/knewstuff.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks/knotifications.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/knotifyconfig.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/default.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/kparts.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpeople.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/kplotting.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpty.nix5
-rw-r--r--pkgs/development/libraries/kde-frameworks/kross.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/krunner.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/default.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/ktexteditor.nix16
-rw-r--r--pkgs/development/libraries/kde-frameworks/ktextwidgets.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kunitconversion.nix5
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwallet.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwayland.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix12
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kxmlgui.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix4
-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.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/plasma-framework.nix17
-rw-r--r--pkgs/development/libraries/kde-frameworks/prison.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/solid.nix8
-rw-r--r--pkgs/development/libraries/kde-frameworks/sonnet.nix5
-rw-r--r--pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix5
-rw-r--r--pkgs/development/libraries/kde-frameworks/threadweaver.nix9
106 files changed, 533 insertions, 338 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 0a64429c24f..f099117f477 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -52,8 +52,8 @@ in
       };
 
       security.wrappers = {
-        kcheckpass.source = "${plasma5.plasma-workspace.out}/lib/libexec/kcheckpass";
-        "start_kdeinit".source = "${pkgs.kinit.out}/lib/libexec/kf5/start_kdeinit";
+        kcheckpass.source = "${lib.getBin plasma5.plasma-workspace}/lib/libexec/kcheckpass";
+        "start_kdeinit".source = "${lib.getBin pkgs.kinit}/lib/libexec/kf5/start_kdeinit";
       };
 
       environment.systemPackages = with pkgs; with qt5; with libsForQt5; with plasma5; with kdeApplications;
diff --git a/pkgs/applications/kde/akonadi-contacts.nix b/pkgs/applications/kde/akonadi-contacts.nix
index 7d017f6496f..3f410b7b8b9 100644
--- a/pkgs/applications/kde/akonadi-contacts.nix
+++ b/pkgs/applications/kde/akonadi-contacts.nix
@@ -1,8 +1,8 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  akonadi-mime, grantlee, kcontacts, kio, kitemmodels, kmime, qtwebengine,
-  akonadi
+  akonadi, akonadi-mime, grantlee, kcontacts, kdbusaddons, ki18n, kiconthemes,
+  kio, kitemmodels, kmime, ktextwidgets, qtwebengine,
 }:
 
 mkDerivation {
@@ -13,7 +13,9 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
-    akonadi-mime grantlee kcontacts kio kitemmodels kmime qtwebengine
+    akonadi-mime grantlee kcontacts kdbusaddons ki18n kiconthemes kio
+    kitemmodels kmime ktextwidgets qtwebengine
   ];
   propagatedBuildInputs = [ akonadi ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/akonadi-mime.nix b/pkgs/applications/kde/akonadi-mime.nix
index 390ef373528..1fb50756665 100644
--- a/pkgs/applications/kde/akonadi-mime.nix
+++ b/pkgs/applications/kde/akonadi-mime.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  akonadi, kdbusaddons, kio, kitemmodels, kmime
+  akonadi, kdbusaddons, ki18n, kio, kitemmodels, kmime
 }:
 
 mkDerivation {
@@ -11,5 +11,6 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ akonadi kdbusaddons kio kitemmodels kmime ];
+  buildInputs = [ akonadi kdbusaddons ki18n kio kitemmodels kmime ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/ark/default.nix b/pkgs/applications/kde/ark/default.nix
index f2976c38c39..df15f6b0f18 100644
--- a/pkgs/applications/kde/ark/default.nix
+++ b/pkgs/applications/kde/ark/default.nix
@@ -3,8 +3,8 @@
 
   extra-cmake-modules, kdoctools,
 
-  karchive, kconfig, kcrash, kdbusaddons, ki18n, kiconthemes, khtml, kio,
-  kservice, kpty, kwidgetsaddons, libarchive, kitemmodels,
+  karchive, kconfig, kcrash, kdbusaddons, ki18n, kiconthemes, kitemmodels,
+  khtml, kio, kparts, kpty, kservice, kwidgetsaddons, libarchive,
 
   # Archive tools
   p7zip, unzipNLS, zip,
@@ -17,9 +17,10 @@ mkDerivation {
   name = "ark";
   nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
   propagatedBuildInputs = [
-    khtml ki18n kio karchive kconfig kcrash kdbusaddons kiconthemes kservice
-    kpty kwidgetsaddons libarchive kitemmodels
+    karchive kconfig kcrash kdbusaddons khtml ki18n kiconthemes kio kitemmodels
+    kparts kpty kservice kwidgetsaddons libarchive
   ];
+  outputs = [ "out" "dev" ];
   postFixup =
     let
       PATH =
diff --git a/pkgs/applications/kde/baloo-widgets.nix b/pkgs/applications/kde/baloo-widgets.nix
index 17ae75cc479..3479b6600fc 100644
--- a/pkgs/applications/kde/baloo-widgets.nix
+++ b/pkgs/applications/kde/baloo-widgets.nix
@@ -14,4 +14,5 @@ mkDerivation {
   propagatedBuildInputs = [
     baloo kconfig kdelibs4support kfilemetadata ki18n kio kservice
   ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/dolphin.nix b/pkgs/applications/kde/dolphin.nix
index ff5be6fdd88..2570e37bf2c 100644
--- a/pkgs/applications/kde/dolphin.nix
+++ b/pkgs/applications/kde/dolphin.nix
@@ -20,4 +20,5 @@ mkDerivation {
     kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
     phonon solid
   ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/gwenview.nix b/pkgs/applications/kde/gwenview.nix
index 99be13ba7f8..233566c1bda 100644
--- a/pkgs/applications/kde/gwenview.nix
+++ b/pkgs/applications/kde/gwenview.nix
@@ -13,9 +13,8 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ exiv2 lcms2 ];
-  propagatedBuildInputs = [
-    baloo kactivities kdelibs4support kio libkdcraw libkipi phonon
+  buildInputs = [
+    baloo exiv2 kactivities kdelibs4support kio libkdcraw lcms2 libkipi phonon
     qtimageformats qtsvg qtx11extras
   ];
   propagatedUserEnvPkgs = [ kipi-plugins ];
diff --git a/pkgs/applications/kde/kcontacts.nix b/pkgs/applications/kde/kcontacts.nix
index e7876d0d43e..96828af9d17 100644
--- a/pkgs/applications/kde/kcontacts.nix
+++ b/pkgs/applications/kde/kcontacts.nix
@@ -1,8 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  ki18n,
-  kcoreaddons, kconfig, kcodecs
+  kcoreaddons, kconfig, kcodecs, ki18n, qtbase,
 }:
 
 mkDerivation {
@@ -12,6 +11,5 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ ki18n ];
-  propagatedBuildInputs = [ kcoreaddons kconfig kcodecs ];
+  buildInputs = [ kcoreaddons kconfig kcodecs ki18n qtbase ];
 }
diff --git a/pkgs/applications/kde/kmime.nix b/pkgs/applications/kde/kmime.nix
index 5bd8762391c..b14e0abcc3f 100644
--- a/pkgs/applications/kde/kmime.nix
+++ b/pkgs/applications/kde/kmime.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, ki18n,
-  kcodecs
+  kcodecs, qtbase,
 }:
 
 mkDerivation {
@@ -11,5 +11,5 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
   };
   nativeBuildInputs = [ extra-cmake-modules ki18n ];
-  buildInputs = [ kcodecs ];
+  buildInputs = [ kcodecs qtbase ];
 }
diff --git a/pkgs/applications/kde/kwalletmanager.nix b/pkgs/applications/kde/kwalletmanager.nix
index 75420b6600f..e39e7e5157d 100644
--- a/pkgs/applications/kde/kwalletmanager.nix
+++ b/pkgs/applications/kde/kwalletmanager.nix
@@ -8,6 +8,7 @@
 , kcoreaddons
 , kdbusaddons
 , kdelibs4support
+, kwallet
 , kxmlgui
 }:
 
@@ -18,8 +19,8 @@ mkDerivation {
     maintainers = with lib.maintainers; [ fridh ];
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kauth kcmutils kconfigwidgets kcoreaddons kdbusaddons kdelibs4support
-    kxmlgui
+    kwallet kxmlgui
   ];
 }
diff --git a/pkgs/applications/kde/okular.nix b/pkgs/applications/kde/okular.nix
index 8cfd946b810..99b69f45e1e 100644
--- a/pkgs/applications/kde/okular.nix
+++ b/pkgs/applications/kde/okular.nix
@@ -4,18 +4,17 @@
   djvulibre, ebook_tools, kactivities, karchive, kbookmarks, kcompletion,
   kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kdegraphics-mobipocket,
   kiconthemes, kjs, khtml, kio, kparts, kpty, kwallet, kwindowsystem, libkexiv2,
-  libspectre, poppler, qca-qt5, qtdeclarative, qtsvg, threadweaver
+  libspectre, phonon, poppler, qca-qt5, qtdeclarative, qtsvg, threadweaver
 }:
 
 mkDerivation {
   name = "okular";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ djvulibre ebook_tools ];
-  propagatedBuildInputs = [
-    kactivities karchive kbookmarks kcompletion kconfig kconfigwidgets
+  buildInputs = [
+    djvulibre ebook_tools kactivities karchive kbookmarks kcompletion kconfig kconfigwidgets
     kcoreaddons kdbusaddons kdegraphics-mobipocket kiconthemes kjs khtml kio
-    kparts kpty kwallet kwindowsystem libkexiv2 libspectre poppler qca-qt5
-    qtdeclarative qtsvg threadweaver
+    kparts kpty kwallet kwindowsystem libkexiv2 libspectre phonon poppler
+    qca-qt5 qtdeclarative qtsvg threadweaver
   ];
   meta = {
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/kde/spectacle.nix b/pkgs/applications/kde/spectacle.nix
index 7fa18289ae1..db1bf2aee65 100644
--- a/pkgs/applications/kde/spectacle.nix
+++ b/pkgs/applications/kde/spectacle.nix
@@ -4,6 +4,7 @@
   ki18n, xcb-util-cursor,
   kconfig, kcoreaddons, kdbusaddons, kdeclarative, kio, kipi-plugins,
   knotifications, kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi,
+  qtx11extras
 }:
 
 mkDerivation {
@@ -13,7 +14,7 @@ mkDerivation {
   buildInputs = [ ki18n xcb-util-cursor ];
   propagatedBuildInputs = [
     kconfig kcoreaddons kdbusaddons kdeclarative kio knotifications
-    kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi
+    kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi qtx11extras
   ];
   propagatedUserEnvPkgs = [ kipi-plugins ];
 }
diff --git a/pkgs/desktops/plasma-5/bluedevil.nix b/pkgs/desktops/plasma-5/bluedevil.nix
index 6db3e787911..44e8a26eee1 100644
--- a/pkgs/desktops/plasma-5/bluedevil.nix
+++ b/pkgs/desktops/plasma-5/bluedevil.nix
@@ -7,11 +7,10 @@
 mkDerivation {
   name = "bluedevil";
   nativeBuildInputs = [ extra-cmake-modules shared_mime_info ];
-  propagatedBuildInputs = [
+  buildInputs = [
     bluez-qt ki18n kio kwindowsystem plasma-framework qtdeclarative kcoreaddons
     kdbusaddons kded kiconthemes knotifications kwidgetsaddons
   ];
-  propagatedUserEnvPkgs = [ bluez-qt.out ];
   postInstall = ''
     # Fix the location of logic.js for the plasmoid
     ln -s $out/share/plasma/plasmoids/org.kde.plasma.bluetooth/contents/code/logic.js $out/share/plasma/plasmoids/org.kde.plasma.bluetooth/contents/ui/logic.js
diff --git a/pkgs/desktops/plasma-5/breeze-qt5.nix b/pkgs/desktops/plasma-5/breeze-qt5.nix
index 11af6fff04b..b1cb3b7f8fc 100644
--- a/pkgs/desktops/plasma-5/breeze-qt5.nix
+++ b/pkgs/desktops/plasma-5/breeze-qt5.nix
@@ -2,7 +2,8 @@
   mkDerivation,
   extra-cmake-modules,
   frameworkintegration, kcmutils, kconfigwidgets, kcoreaddons, kdecoration,
-  kguiaddons, ki18n, kwayland, kwindowsystem, plasma-framework, qtx11extras
+  kguiaddons, ki18n, kwayland, kwindowsystem, plasma-framework, qtdeclarative,
+  qtx11extras
 }:
 
 mkDerivation {
@@ -11,7 +12,8 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [
     frameworkintegration kcmutils kconfigwidgets kcoreaddons kdecoration
-    kguiaddons ki18n kwayland kwindowsystem plasma-framework qtx11extras
+    kguiaddons ki18n kwayland kwindowsystem plasma-framework qtdeclarative
+    qtx11extras
   ];
   cmakeFlags = [ "-DUSE_Qt4=OFF" ];
 }
diff --git a/pkgs/desktops/plasma-5/kactivitymanagerd.nix b/pkgs/desktops/plasma-5/kactivitymanagerd.nix
index 27f977ea785..629718ab5a0 100644
--- a/pkgs/desktops/plasma-5/kactivitymanagerd.nix
+++ b/pkgs/desktops/plasma-5/kactivitymanagerd.nix
@@ -7,7 +7,7 @@
 mkDerivation {
   name = "kactivitymanagerd";
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
+  buildInputs = [
     boost kconfig kcoreaddons kdbusaddons kglobalaccel ki18n kio kwindowsystem
     kxmlgui
   ];
diff --git a/pkgs/desktops/plasma-5/kde-cli-tools.nix b/pkgs/desktops/plasma-5/kde-cli-tools.nix
index e18481d6da9..6bcafc5813a 100644
--- a/pkgs/desktops/plasma-5/kde-cli-tools.nix
+++ b/pkgs/desktops/plasma-5/kde-cli-tools.nix
@@ -1,14 +1,14 @@
 {
-  mkDerivation, extra-cmake-modules,
-  kcmutils, kconfig, kdelibs4support, kdesu, kdoctools, ki18n, kiconthemes,
-  kwindowsystem, qtsvg, qtx11extras
+  mkDerivation, extra-cmake-modules, kdoctools,
+  kcmutils, kconfig, kdesu, ki18n, kiconthemes, kinit, kio, kwindowsystem,
+  qtsvg, qtx11extras,
 }:
 
 mkDerivation {
   name = "kde-cli-tools";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
-    kcmutils kconfig kdesu kdelibs4support ki18n kiconthemes kwindowsystem qtsvg
+  buildInputs = [
+    kcmutils kconfig kdesu ki18n kiconthemes kinit kio kwindowsystem qtsvg
     qtx11extras
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
index eaa2a906f82..5e959ac8b79 100644
--- a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
@@ -16,7 +16,7 @@ mkDerivation {
   name = "kde-gtk-config";
   patches = [ ./0001-follow-symlinks.patch ];
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
+  buildInputs = [
     ki18n kio glib gtk2 gtk3 karchive kcmutils kconfigwidgets kiconthemes
     knewstuff
   ];
diff --git a/pkgs/desktops/plasma-5/kdeplasma-addons.nix b/pkgs/desktops/plasma-5/kdeplasma-addons.nix
index e3526d56c37..b9f40563ef6 100644
--- a/pkgs/desktops/plasma-5/kdeplasma-addons.nix
+++ b/pkgs/desktops/plasma-5/kdeplasma-addons.nix
@@ -1,17 +1,17 @@
-{ mkDerivation, extra-cmake-modules, kdoctools
-, kconfig, kconfigwidgets, kcoreaddons, kcmutils, kdelibs4support, ki18n
-, kio, knewstuff, kross, krunner, kservice, ksysguard, kunitconversion
-, plasma-framework, plasma-workspace, qtdeclarative, qtx11extras
-, ibus
+{
+  mkDerivation,
+  extra-cmake-modules, kdoctools,
+  kconfig, kconfigwidgets, kcoreaddons, kcmutils, kdelibs4support, ki18n, kio,
+  knewstuff, kross, krunner, kservice, ksysguard, kunitconversion, ibus,
+  plasma-framework, plasma-workspace, qtdeclarative, qtx11extras,
 }:
 
 mkDerivation {
   name = "kdeplasma-addons";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kconfig kconfigwidgets kcoreaddons kcmutils kdelibs4support kio knewstuff
-    kross krunner kservice ksysguard kunitconversion plasma-framework
+    kross krunner kservice ksysguard kunitconversion ibus plasma-framework
     plasma-workspace qtdeclarative qtx11extras
-    ibus
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kgamma5.nix b/pkgs/desktops/plasma-5/kgamma5.nix
index 8199b5d0330..ea58cad12ae 100644
--- a/pkgs/desktops/plasma-5/kgamma5.nix
+++ b/pkgs/desktops/plasma-5/kgamma5.nix
@@ -1,9 +1,11 @@
-{ mkDerivation, extra-cmake-modules, kdoctools, kdelibs4support
-, qtx11extras
+{
+  mkDerivation,
+  extra-cmake-modules, kdoctools,
+  kconfig, kconfigwidgets, ki18n, qtx11extras,
 }:
 
 mkDerivation {
   name = "kgamma5";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [ kdelibs4support qtx11extras ];
+  buildInputs = [ kconfig kconfigwidgets ki18n qtx11extras ];
 }
diff --git a/pkgs/desktops/plasma-5/khotkeys.nix b/pkgs/desktops/plasma-5/khotkeys.nix
index 32d9c14ddef..be4ccc7b230 100644
--- a/pkgs/desktops/plasma-5/khotkeys.nix
+++ b/pkgs/desktops/plasma-5/khotkeys.nix
@@ -7,8 +7,8 @@
 mkDerivation {
   name = "khotkeys";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
-    kdelibs4support kglobalaccel ki18n kio plasma-framework plasma-workspace
-    qtx11extras kcmutils kdbusaddons kxmlgui
+  buildInputs = [
+    kcmutils kdbusaddons kdelibs4support kglobalaccel ki18n kio kxmlgui
+    plasma-framework plasma-workspace qtx11extras
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kinfocenter.nix b/pkgs/desktops/plasma-5/kinfocenter.nix
index ee6aa6aebda..d366aa4b36e 100644
--- a/pkgs/desktops/plasma-5/kinfocenter.nix
+++ b/pkgs/desktops/plasma-5/kinfocenter.nix
@@ -9,7 +9,7 @@
 mkDerivation {
   name = "kinfocenter";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kcmutils kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
     kdeclarative kdelibs4support ki18n kiconthemes kio kpackage kservice
     kwayland kwidgetsaddons kxmlgui libraw1394 mesa_glu pciutils solid
diff --git a/pkgs/desktops/plasma-5/kscreen.nix b/pkgs/desktops/plasma-5/kscreen.nix
index 93dd0e71050..fcdc922ff94 100644
--- a/pkgs/desktops/plasma-5/kscreen.nix
+++ b/pkgs/desktops/plasma-5/kscreen.nix
@@ -6,8 +6,8 @@
 mkDerivation {
   name = "kscreen";
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
-    kglobalaccel ki18n libkscreen qtdeclarative qtgraphicaleffects kconfig
-    kconfigwidgets kdbusaddons kwidgetsaddons kxmlgui
+  buildInputs = [
+    kconfig kconfigwidgets kdbusaddons kglobalaccel ki18n kwidgetsaddons kxmlgui
+    libkscreen qtdeclarative qtgraphicaleffects
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kscreenlocker.nix b/pkgs/desktops/plasma-5/kscreenlocker.nix
index 64ea4690513..631719fb535 100644
--- a/pkgs/desktops/plasma-5/kscreenlocker.nix
+++ b/pkgs/desktops/plasma-5/kscreenlocker.nix
@@ -2,7 +2,8 @@
   mkDerivation,
   extra-cmake-modules, kdoctools,
   kcmutils, kcrash, kdeclarative, kdelibs4support, kglobalaccel, kidletime,
-  kwayland, libXcursor, pam, plasma-framework, qtdeclarative, wayland
+  kwayland, libXcursor, pam, plasma-framework, qtdeclarative, qtx11extras,
+  wayland,
 }:
 
 mkDerivation {
@@ -10,6 +11,6 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
     kcmutils kcrash kdeclarative kdelibs4support kglobalaccel kidletime kwayland
-    libXcursor pam plasma-framework qtdeclarative wayland
+    libXcursor pam plasma-framework qtdeclarative qtx11extras wayland
   ];
 }
diff --git a/pkgs/desktops/plasma-5/ksshaskpass.nix b/pkgs/desktops/plasma-5/ksshaskpass.nix
index 94bc5a35da0..39e260f6c70 100644
--- a/pkgs/desktops/plasma-5/ksshaskpass.nix
+++ b/pkgs/desktops/plasma-5/ksshaskpass.nix
@@ -1,9 +1,11 @@
-{ mkDerivation, extra-cmake-modules, kdoctools, kcoreaddons
-, ki18n, kwallet, kwidgetsaddons
+{
+  mkDerivation,
+  extra-cmake-modules, kdoctools,
+  kcoreaddons, ki18n, kwallet, kwidgetsaddons, qtbase,
 }:
 
 mkDerivation {
   name = "ksshaskpass";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [ kcoreaddons ki18n kwallet kwidgetsaddons ];
+  buildInputs = [ kcoreaddons ki18n kwallet kwidgetsaddons qtbase ];
 }
diff --git a/pkgs/desktops/plasma-5/kwallet-pam.nix b/pkgs/desktops/plasma-5/kwallet-pam.nix
index d555701c76d..1cbfb87ea56 100644
--- a/pkgs/desktops/plasma-5/kwallet-pam.nix
+++ b/pkgs/desktops/plasma-5/kwallet-pam.nix
@@ -2,7 +2,6 @@
 
 mkDerivation {
   name = "kwallet-pam";
-
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ pam socat libgcrypt qtbase ];
   postPatch = ''
diff --git a/pkgs/desktops/plasma-5/kwayland-integration.nix b/pkgs/desktops/plasma-5/kwayland-integration.nix
index e5d00eb0800..1344b477f73 100644
--- a/pkgs/desktops/plasma-5/kwayland-integration.nix
+++ b/pkgs/desktops/plasma-5/kwayland-integration.nix
@@ -1,7 +1,11 @@
-{ mkDerivation , extra-cmake-modules , kidletime , kwayland , kwindowsystem }:
+{
+  mkDerivation,
+  extra-cmake-modules,
+  kidletime, kwayland, kwindowsystem, qtbase,
+}:
 
 mkDerivation {
   name = "kwayland-integration";
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ kidletime kwindowsystem kwayland ];
+  buildInputs = [ kidletime kwindowsystem kwayland qtbase ];
 }
diff --git a/pkgs/desktops/plasma-5/kwrited.nix b/pkgs/desktops/plasma-5/kwrited.nix
index 18c4a4af8db..f6f6187e946 100644
--- a/pkgs/desktops/plasma-5/kwrited.nix
+++ b/pkgs/desktops/plasma-5/kwrited.nix
@@ -1,9 +1,11 @@
-{ mkDerivation, extra-cmake-modules, kcoreaddons, ki18n, kpty
-, knotifications, kdbusaddons
+{
+  mkDerivation,
+  extra-cmake-modules,
+  kcoreaddons, kdbusaddons, ki18n, knotifications, kpty, qtbase,
 }:
 
 mkDerivation {
   name = "kwrited";
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ kcoreaddons ki18n kpty knotifications kdbusaddons ];
+  buildInputs = [ kcoreaddons kdbusaddons ki18n knotifications kpty qtbase ];
 }
diff --git a/pkgs/desktops/plasma-5/milou.nix b/pkgs/desktops/plasma-5/milou.nix
index abc35279aba..7f38b74423c 100644
--- a/pkgs/desktops/plasma-5/milou.nix
+++ b/pkgs/desktops/plasma-5/milou.nix
@@ -1,6 +1,8 @@
-{ mkDerivation, extra-cmake-modules, qtscript, qtdeclarative
-, kcoreaddons, ki18n, kdeclarative, kservice, plasma-framework
-, krunner
+{
+  mkDerivation,
+  extra-cmake-modules,
+  kcoreaddons, kdeclarative, ki18n, krunner, kservice, plasma-framework,
+  qtscript, qtdeclarative,
 }:
 
 mkDerivation {
@@ -8,8 +10,8 @@ mkDerivation {
   nativeBuildInputs = [
     extra-cmake-modules
   ];
-  propagatedBuildInputs = [
-    kdeclarative ki18n krunner plasma-framework qtdeclarative qtscript
-    kcoreaddons kservice
+  buildInputs = [
+    kcoreaddons kdeclarative ki18n krunner kservice plasma-framework
+    qtdeclarative qtscript
   ];
 }
diff --git a/pkgs/desktops/plasma-5/oxygen.nix b/pkgs/desktops/plasma-5/oxygen.nix
index 483d987686a..97421191d90 100644
--- a/pkgs/desktops/plasma-5/oxygen.nix
+++ b/pkgs/desktops/plasma-5/oxygen.nix
@@ -2,7 +2,8 @@
   mkDerivation,
   extra-cmake-modules,
   frameworkintegration, kcmutils, kcompletion, kconfig, kdecoration, kguiaddons,
-  ki18n, kwidgetsaddons, kservice, kwayland, kwindowsystem, qtx11extras
+  ki18n, kwidgetsaddons, kservice, kwayland, kwindowsystem, qtdeclarative,
+  qtx11extras
 }:
 
 mkDerivation {
@@ -10,6 +11,8 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [
     frameworkintegration kcmutils kcompletion kconfig kdecoration kguiaddons
-    ki18n kservice kwayland kwidgetsaddons kwindowsystem qtx11extras
+    ki18n kservice kwayland kwidgetsaddons kwindowsystem qtdeclarative
+    qtx11extras
   ];
+  outputs = [ "out" "dev" "bin" ];
 }
diff --git a/pkgs/desktops/plasma-5/plasma-integration.nix b/pkgs/desktops/plasma-5/plasma-integration.nix
index 2bca3943c34..de46bb4373c 100644
--- a/pkgs/desktops/plasma-5/plasma-integration.nix
+++ b/pkgs/desktops/plasma-5/plasma-integration.nix
@@ -1,17 +1,17 @@
-{ mkDerivation, extra-cmake-modules
-, breeze-qt5, kconfig, kconfigwidgets, kiconthemes, kio, kwayland
-, libXcursor
+{
+  mkDerivation,
+  extra-cmake-modules,
+  breeze-qt5, kconfig, kconfigwidgets, kiconthemes, kio, knotifications,
+  kwayland, libXcursor
 }:
 
 # TODO: install Noto Sans and Oxygen Mono fonts with plasma-integration
 
 mkDerivation {
   name = "plasma-integration";
-  nativeBuildInputs = [
-    extra-cmake-modules
-  ];
+  nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
-    breeze-qt5 kconfig kconfigwidgets kiconthemes kio kwayland
+    breeze-qt5 kconfig kconfigwidgets kiconthemes kio knotifications kwayland
     libXcursor
   ];
 }
diff --git a/pkgs/desktops/plasma-5/plasma-nm/default.nix b/pkgs/desktops/plasma-5/plasma-nm/default.nix
index 5c343548fcf..8ff98ecfc1d 100644
--- a/pkgs/desktops/plasma-5/plasma-nm/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-nm/default.nix
@@ -1,10 +1,11 @@
-{ mkDerivation, substituteAll, extra-cmake-modules, kdoctools
-, kcompletion, kconfigwidgets, kcoreaddons, kdbusaddons, kdeclarative
-, kdelibs4support, ki18n, kiconthemes, kinit, kio, kitemviews
-, knotifications, kservice, kwallet, kwidgetsaddons, kwindowsystem
-, kxmlgui, mobile_broadband_provider_info
-, modemmanager-qt, networkmanager-qt, openconnect, plasma-framework
-, qca-qt5, qtdeclarative, solid, openvpn
+{
+  mkDerivation, substituteAll,
+  extra-cmake-modules, kdoctools,
+  kcompletion, kconfigwidgets, kcoreaddons, kdbusaddons, kdeclarative,
+  kdelibs4support, ki18n, kiconthemes, kinit, kio, kitemviews, knotifications,
+  kservice, kwallet, kwidgetsaddons, kwindowsystem, kxmlgui,
+  mobile_broadband_provider_info, modemmanager-qt, networkmanager-qt,
+  openconnect, openvpn, plasma-framework, qca-qt5, qtdeclarative, qttools, solid
 }:
 
 mkDerivation {
@@ -19,8 +20,8 @@ mkDerivation {
       inherit openvpn;
     })
   ];
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  nativeBuildInputs = [ extra-cmake-modules kdoctools qttools ];
+  buildInputs = [
     kdeclarative kdelibs4support ki18n kio kwindowsystem plasma-framework
     qtdeclarative kcompletion kconfigwidgets kcoreaddons kdbusaddons kiconthemes
     kinit kitemviews knotifications kservice kwallet kwidgetsaddons kxmlgui
diff --git a/pkgs/desktops/plasma-5/plasma-pa.nix b/pkgs/desktops/plasma-5/plasma-pa.nix
index ec40ffb9630..50f53d70a98 100644
--- a/pkgs/desktops/plasma-5/plasma-pa.nix
+++ b/pkgs/desktops/plasma-5/plasma-pa.nix
@@ -1,15 +1,15 @@
 {
   mkDerivation,
-  extra-cmake-modules,
-  gconf, glib, kdoctools, kconfigwidgets, kcoreaddons, kdeclarative, kglobalaccel,
-  ki18n, libcanberra_gtk3, libpulseaudio, plasma-framework
+  extra-cmake-modules, kdoctools,
+  gconf, glib, kconfigwidgets, kcoreaddons, kdeclarative, kglobalaccel, ki18n,
+  libcanberra_gtk3, libpulseaudio, plasma-framework, qtdeclarative
 }:
 
 mkDerivation {
   name = "plasma-pa";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
-    gconf glib kconfigwidgets kcoreaddons kdeclarative
-    kglobalaccel ki18n libcanberra_gtk3 libpulseaudio plasma-framework
+  buildInputs = [
+    gconf glib kconfigwidgets kcoreaddons kdeclarative kglobalaccel ki18n
+    libcanberra_gtk3 libpulseaudio plasma-framework qtdeclarative
   ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/attica.nix b/pkgs/development/libraries/kde-frameworks/attica.nix
index c70be1b877d..3c725223979 100644
--- a/pkgs/development/libraries/kde-frameworks/attica.nix
+++ b/pkgs/development/libraries/kde-frameworks/attica.nix
@@ -8,4 +8,5 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/baloo.nix b/pkgs/development/libraries/kde-frameworks/baloo.nix
index 9bbb9a1101b..d5da9f5af17 100644
--- a/pkgs/development/libraries/kde-frameworks/baloo.nix
+++ b/pkgs/development/libraries/kde-frameworks/baloo.nix
@@ -1,14 +1,17 @@
-{ mkDerivation, lib, extra-cmake-modules, kauth, kconfig
-, kcoreaddons, kcrash, kdbusaddons, kfilemetadata, ki18n, kidletime
-, kio, lmdb, qtbase, solid
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  kauth, kconfig, kcoreaddons, kcrash, kdbusaddons, kfilemetadata, ki18n,
+  kidletime, kio, lmdb, qtbase, qtdeclarative, solid,
 }:
 
 mkDerivation {
   name = "baloo";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
-    kauth kconfig kcoreaddons kcrash kdbusaddons kfilemetadata ki18n kio
-    kidletime lmdb qtbase solid
+  buildInputs = [
+    kauth kconfig kcrash kdbusaddons ki18n kio kidletime lmdb qtdeclarative
+    solid
   ];
+  propagatedBuildInputs = [ kcoreaddons kfilemetadata qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/bluez-qt.nix b/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
index 2f3b960f3bd..ec4deae6cb4 100644
--- a/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
+++ b/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
@@ -10,9 +10,10 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ qtdeclarative ];
+  buildInputs = [ qtdeclarative ];
+  propagatedBuildInputs = [ qtbase ];
   preConfigure = ''
     substituteInPlace CMakeLists.txt \
-      --replace /lib/udev/rules.d "$out/lib/udev/rules.d"
+      --replace /lib/udev/rules.d "$bin/lib/udev/rules.d"
   '';
 }
diff --git a/pkgs/development/libraries/kde-frameworks/breeze-icons.nix b/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
index 1c4ed2a9909..9e4a40b22ab 100644
--- a/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
+++ b/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
@@ -3,8 +3,7 @@
 mkDerivation {
   name = "breeze-icons";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  outputs = [ "out" ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtsvg ];
-  propagatedUserEnvPkgs = [ qtsvg.out ];
+  outputs = [ "out" ]; # only runtime outputs
 }
diff --git a/pkgs/development/libraries/kde-frameworks/default.nix b/pkgs/development/libraries/kde-frameworks/default.nix
index 71b24a0da6b..8ab1d1b99b6 100644
--- a/pkgs/development/libraries/kde-frameworks/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/default.nix
@@ -39,11 +39,11 @@ let
     # SUPPORT
     let
 
-      propagateBin =
+      propagate = out:
         let setupHook = { writeScript }:
               writeScript "setup-hook.sh" ''
-                # Propagate $bin output
-                propagatedUserEnvPkgs+=" @bin@"
+                # Propagate $${out} output
+                propagatedUserEnvPkgs+=" @${out}@"
 
                 # Propagate $dev so that this setup hook is propagated
                 # But only if there is a separate $dev output
@@ -57,9 +57,11 @@ let
               '';
         in callPackage setupHook {};
 
+      propagateBin = propagate "bin";
+
       callPackage = self.newScope {
 
-        inherit propagateBin;
+        inherit propagate propagateBin;
 
         mkDerivation = args:
           let
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
index a550cda1fa2..c1b1e21852c 100644
--- a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/setup-hook.sh
+++ b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/setup-hook.sh
@@ -1,17 +1,16 @@
-_ecmSetXdgDirs() {
+_ecmEnvHook() {
     addToSearchPath XDG_DATA_DIRS "$1/share"
     addToSearchPath XDG_CONFIG_DIRS "$1/etc/xdg"
 }
+envHooks+=(_ecmEnvHook)
 
-envHooks+=(_ecmSetXdgDirs)
-
-_ecmConfig() {
+_ecmPreConfigureHook() {
     # 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=${!outputBin}/lib/libexec"
+    cmakeFlags+=" -DKDE_INSTALL_LIBEXECDIR=${!outputLib}/lib/libexec"
     cmakeFlags+=" -DKDE_INSTALL_CMAKEPACKAGEDIR=${!outputDev}/lib/cmake"
     cmakeFlags+=" -DKDE_INSTALL_INCLUDEDIR=${!outputInclude}/include"
     cmakeFlags+=" -DKDE_INSTALL_LOCALSTATEDIR=/var"
@@ -25,7 +24,7 @@ _ecmConfig() {
     cmakeFlags+=" -DKDE_INSTALL_KXMLGUI5DIR=${!outputBin}/share/kxmlgui5"
     cmakeFlags+=" -DKDE_INSTALL_KNOTIFY5RCDIR=${!outputBin}/share/knotifications5"
     cmakeFlags+=" -DKDE_INSTALL_ICONDIR=${!outputBin}/share/icons"
-    cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputBin}/share/locale"
+    cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputLib}/share/locale"
     cmakeFlags+=" -DKDE_INSTALL_SOUNDDIR=${!outputBin}/share/sounds"
     cmakeFlags+=" -DKDE_INSTALL_TEMPLATEDIR=${!outputBin}/share/templates"
     cmakeFlags+=" -DKDE_INSTALL_WALLPAPERDIR=${!outputBin}/share/wallpapers"
@@ -52,5 +51,4 @@ _ecmConfig() {
         cmakeFlags+=" -DKDE_INSTALL_QMLDIR=${!outputBin}/$qtQmlPrefix"
     fi
 }
-
-preConfigureHooks+=(_ecmConfig)
+preConfigureHooks+=(_ecmPreConfigureHook)
diff --git a/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix b/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
index 8f2d1446fcf..58b064806e5 100644
--- a/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
+++ b/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
@@ -9,8 +9,9 @@ mkDerivation {
   name = "frameworkintegration";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
-    kbookmarks kcompletion kconfig kconfigwidgets ki18n kio kiconthemes
-    knewstuff knotifications kpackage kwidgetsaddons libXcursor qtx11extras
+  buildInputs = [
+    kbookmarks kcompletion kconfig ki18n kio knewstuff knotifications kpackage
+    kwidgetsaddons libXcursor qtx11extras
   ];
+  propagatedBuildInputs = [ kconfigwidgets kiconthemes ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix b/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
index 99737ea2b83..b558306248a 100644
--- a/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
+++ b/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
@@ -1,8 +1,14 @@
-{ mkDerivation, lib, extra-cmake-modules, boost, kactivities, kconfig }:
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  boost, kactivities, kconfig, qtbase,
+}:
 
 mkDerivation {
   name = "kactivities-stats";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ boost kactivities kconfig ];
+  buildInputs = [ boost kactivities kconfig ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kactivities.nix b/pkgs/development/libraries/kde-frameworks/kactivities.nix
index 59b5639c24f..eabac6aadd7 100644
--- a/pkgs/development/libraries/kde-frameworks/kactivities.nix
+++ b/pkgs/development/libraries/kde-frameworks/kactivities.nix
@@ -1,14 +1,15 @@
-{ mkDerivation, lib, extra-cmake-modules, boost, kcmutils, kconfig
-, kcoreaddons, kdbusaddons, kdeclarative, kglobalaccel, ki18n
-, kio, kservice, kwindowsystem, kxmlgui, qtdeclarative
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  boost, kconfig, kcoreaddons, kio, kwindowsystem, qtbase, qtdeclarative,
 }:
 
 mkDerivation {
   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
+  buildInputs = [
+    boost kconfig kcoreaddons kio kwindowsystem qtdeclarative
   ];
+  propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kapidox.nix b/pkgs/development/libraries/kde-frameworks/kapidox.nix
index 0d3ccc276fc..ca5e773a45b 100644
--- a/pkgs/development/libraries/kde-frameworks/kapidox.nix
+++ b/pkgs/development/libraries/kde-frameworks/kapidox.nix
@@ -4,4 +4,7 @@ mkDerivation {
   name = "kapidox";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules python ];
+  postFixup = ''
+    moveToOutput bin $bin
+  '';
 }
diff --git a/pkgs/development/libraries/kde-frameworks/karchive.nix b/pkgs/development/libraries/kde-frameworks/karchive.nix
index 5f725a75d56..1f90db2bc02 100644
--- a/pkgs/development/libraries/kde-frameworks/karchive.nix
+++ b/pkgs/development/libraries/kde-frameworks/karchive.nix
@@ -1,4 +1,8 @@
-{ mkDerivation, lib, extra-cmake-modules, qtbase }:
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  bzip2, lzma, qtbase, zlib,
+}:
 
 mkDerivation {
   name = "karchive";
@@ -7,5 +11,7 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtbase ];
+  buildInputs = [ bzip2 lzma zlib ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kauth/default.nix b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
index 25cdb7f4a19..c94c8b91ecd 100644
--- a/pkgs/development/libraries/kde-frameworks/kauth/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
@@ -1,12 +1,17 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib, copyPathsToStore, propagate,
   extra-cmake-modules, kcoreaddons, polkit-qt, qttools
 }:
 
 mkDerivation {
   name = "kauth";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
-  propagatedBuildInputs = [ kcoreaddons polkit-qt ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ polkit-qt qttools ];
+  propagatedBuildInputs = [ kcoreaddons ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  # library stores reference to plugin path,
+  # separating $out from $bin would create a reference cycle
+  outputs = [ "out" "dev" ];
+  setupHook = propagate "out";
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kbookmarks.nix b/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
index 0873094af3d..dc2339632e4 100644
--- a/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
+++ b/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
@@ -1,13 +1,17 @@
 {
-  mkDerivation, lib, extra-cmake-modules,
-  kcodecs, kconfig, kconfigwidgets, kcoreaddons, kiconthemes, kxmlgui
+  mkDerivation, lib,
+  extra-cmake-modules, qttools,
+  kcodecs, kconfig, kconfigwidgets, kcoreaddons, kiconthemes, kwidgetsaddons,
+  kxmlgui, qtbase,
 }:
 
 mkDerivation {
   name = "kbookmarks";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
+  nativeBuildInputs = [ extra-cmake-modules qttools ];
+  buildInputs = [
     kcodecs kconfig kconfigwidgets kcoreaddons kiconthemes kxmlgui
   ];
+  propagatedBuildInputs = [ kwidgetsaddons qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
index fb5779e10bc..023a5b5c003 100644
--- a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
@@ -2,16 +2,17 @@
   mkDerivation, lib,
   extra-cmake-modules,
   kconfigwidgets, kcoreaddons, kdeclarative, ki18n, kiconthemes, kitemviews,
-  kpackage, kservice, kxmlgui
+  kpackage, kservice, kxmlgui, qtdeclarative,
 }:
 
 mkDerivation {
   name = "kcmutils";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
-    kconfigwidgets kcoreaddons kdeclarative ki18n kiconthemes kitemviews
-    kpackage kservice kxmlgui
+  buildInputs = [
+    kcoreaddons kdeclarative ki18n kiconthemes kitemviews kpackage kxmlgui
+    qtdeclarative
   ];
+  propagatedBuildInputs = [ kconfigwidgets kservice ];
   patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kcodecs.nix b/pkgs/development/libraries/kde-frameworks/kcodecs.nix
index f66c422a638..90c9a963a60 100644
--- a/pkgs/development/libraries/kde-frameworks/kcodecs.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcodecs.nix
@@ -6,6 +6,8 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
-  buildInputs = [ qtbase ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qttools ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kcompletion.nix b/pkgs/development/libraries/kde-frameworks/kcompletion.nix
index bf7556e94a6..fdfe28db6c0 100644
--- a/pkgs/development/libraries/kde-frameworks/kcompletion.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcompletion.nix
@@ -7,6 +7,8 @@
 mkDerivation {
   name = "kcompletion";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
-  propagatedBuildInputs = [ kconfig kwidgetsaddons qtbase ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kconfig kwidgetsaddons qttools ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kconfig.nix b/pkgs/development/libraries/kde-frameworks/kconfig.nix
index f95b50f9de5..78b554017ee 100644
--- a/pkgs/development/libraries/kde-frameworks/kconfig.nix
+++ b/pkgs/development/libraries/kde-frameworks/kconfig.nix
@@ -6,6 +6,7 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qttools ];
   propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
index 2b91e003764..3943e5d6d49 100644
--- a/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
@@ -1,17 +1,20 @@
 {
   mkDerivation, lib, extra-cmake-modules,
-  kauth, kcodecs, kconfig, kdoctools, kguiaddons, ki18n, kwidgetsaddons
+  kauth, kcodecs, kconfig, kdoctools, kguiaddons, ki18n, kwidgetsaddons, qtbase,
 }:
 
 mkDerivation {
   name = "kconfigwidgets";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
-    kauth kconfig kcodecs kguiaddons ki18n kwidgetsaddons
-  ];
+  buildInputs = [ kguiaddons ki18n qtbase ];
+  propagatedBuildInputs = [ kauth kcodecs kconfig kwidgetsaddons ];
   patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
+  outputs = [ "out" "dev" ];
+  preConfigure = ''
+    outputBin=dev
+  '';
   postInstall = ''
-    moveToOutput "bin/preparetips5" "$dev"
+    moveToOutput share/man $dev
   '';
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix b/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
index 8fa10bd767b..34073d64f89 100644
--- a/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
@@ -1,4 +1,8 @@
-{ mkDerivation, lib, fetchurl, extra-cmake-modules, qtbase, qttools, shared_mime_info }:
+{
+  mkDerivation, lib, fetchurl, writeScript,
+  extra-cmake-modules,
+  qtbase, qttools, shared_mime_info
+}:
 
 mkDerivation {
   name = "kcoreaddons";
@@ -6,6 +10,7 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
-  propagatedBuildInputs = [ qtbase shared_mime_info ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qttools shared_mime_info ];
+  propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kcrash.nix b/pkgs/development/libraries/kde-frameworks/kcrash.nix
index c8e674c88c5..d45d73d33e4 100644
--- a/pkgs/development/libraries/kde-frameworks/kcrash.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcrash.nix
@@ -1,8 +1,14 @@
-{ mkDerivation, lib, extra-cmake-modules, kcoreaddons, kwindowsystem, qtx11extras }:
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  kcoreaddons, kwindowsystem, qtbase, qtx11extras,
+}:
 
 mkDerivation {
   name = "kcrash";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ kcoreaddons kwindowsystem qtx11extras ];
+  buildInputs = [ kcoreaddons kwindowsystem qtx11extras ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix b/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
index 8169c89b5ba..d0c744da886 100644
--- a/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
@@ -1,4 +1,8 @@
-{ mkDerivation, lib, extra-cmake-modules, qtbase, qttools, qtx11extras }:
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  qtbase, qttools, qtx11extras
+}:
 
 mkDerivation {
   name = "kdbusaddons";
@@ -6,6 +10,7 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
-  propagatedBuildInputs = [ qtx11extras ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qttools qtx11extras ];
+  propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kdeclarative.nix b/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
index 4b9522ffa5d..7aabeb02154 100644
--- a/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
@@ -8,8 +8,9 @@ mkDerivation {
   name = "kdeclarative";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
-    epoxy kconfig kglobalaccel kguiaddons ki18n kiconthemes kio kpackage
-    kwidgetsaddons kwindowsystem qtdeclarative
+  buildInputs = [
+    epoxy kglobalaccel kguiaddons ki18n kiconthemes kio kwidgetsaddons
+    kwindowsystem
   ];
+  propagatedBuildInputs = [ kconfig kpackage qtdeclarative ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kded.nix b/pkgs/development/libraries/kde-frameworks/kded.nix
index 18b8ccd0fb6..65377789582 100644
--- a/pkgs/development/libraries/kde-frameworks/kded.nix
+++ b/pkgs/development/libraries/kde-frameworks/kded.nix
@@ -1,13 +1,16 @@
 {
-  mkDerivation, lib, extra-cmake-modules,
-  kconfig, kcoreaddons, kcrash, kdbusaddons, kdoctools, kinit, kservice
+  mkDerivation, lib, propagate,
+  extra-cmake-modules, kdoctools,
+  kconfig, kcoreaddons, kcrash, kdbusaddons, kinit, kservice, qtbase,
 }:
 
 mkDerivation {
   name = "kded";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
-    kconfig kcoreaddons kcrash kdbusaddons kinit kservice
+  buildInputs = [
+    kconfig kcoreaddons kcrash kdbusaddons kinit kservice qtbase
   ];
+  outputs = [ "out" "dev" ];
+  setupHook = propagate "out";
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
index cf94a706167..6937a4056b2 100644
--- a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
@@ -1,12 +1,11 @@
 {
   mkDerivation, lib, copyPathsToStore,
-  extra-cmake-modules, kdoctools,
-  docbook_xml_dtd_45, kauth, karchive, kcompletion, kconfig, kconfigwidgets,
-  kcoreaddons, kcrash, kdbusaddons, kded, kdesignerplugin, kemoticons,
-  kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kitemmodels, kinit,
-  knotifications, kparts, kservice, ktextwidgets, kunitconversion,
-  kwidgetsaddons, kwindowsystem, kxmlgui, networkmanager, qtsvg, qtx11extras,
-  xlibs
+  docbook_xml_dtd_45, extra-cmake-modules, kdoctools,
+  kauth, karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kcrash,
+  kdbusaddons, kded, kdesignerplugin, kemoticons, kglobalaccel, kguiaddons,
+  ki18n, kiconthemes, kio, kitemmodels, kinit, knotifications, kparts, kservice,
+  ktextwidgets, kunitconversion, kwidgetsaddons, kwindowsystem, kxmlgui,
+  networkmanager, qtbase, qtsvg, qttools, qtx11extras, xlibs
 }:
 
 mkDerivation {
@@ -14,16 +13,20 @@ mkDerivation {
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   setupHook = ./setup-hook.sh;
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  nativeBuildInputs = [ extra-cmake-modules qttools ];
+  propagatedNativeBuildInputs = [ kdoctools ];
+  buildInputs = [
+    kcompletion kconfig kded kglobalaccel ki18n kio kservice kwidgetsaddons
+    kxmlgui networkmanager qtsvg qtx11extras xlibs.libSM
+  ];
   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
+    kauth karchive kconfigwidgets kcoreaddons kcrash kdbusaddons kdesignerplugin
+    kemoticons kguiaddons kiconthemes kitemmodels kinit knotifications kparts
+    ktextwidgets kunitconversion kwindowsystem qtbase
   ];
   cmakeFlags = [
     "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook"
     "-DDocBookXML4_DTD_VERSION=4.5"
   ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix b/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
index c732a6be22e..91b596cc4d3 100644
--- a/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
@@ -2,15 +2,15 @@
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kcompletion, kconfig, kconfigwidgets, kcoreaddons, kiconthemes, kio,
-  kitemviews, kplotting, ktextwidgets, kwidgetsaddons, kxmlgui, sonnet
+  kitemviews, kplotting, ktextwidgets, kwidgetsaddons, kxmlgui, qttools, sonnet,
 }:
 
 mkDerivation {
   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
+  buildInputs = [
+    kcompletion kconfig kconfigwidgets kcoreaddons kiconthemes kio kitemviews
+    kplotting ktextwidgets kwidgetsaddons kxmlgui qttools sonnet
   ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kdesu.nix b/pkgs/development/libraries/kde-frameworks/kdesu.nix
index e8d72008507..df60511b511 100644
--- a/pkgs/development/libraries/kde-frameworks/kdesu.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdesu.nix
@@ -1,10 +1,14 @@
-{ mkDerivation, lib, extra-cmake-modules, kcoreaddons, ki18n, kpty
-, kservice
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  kcoreaddons, ki18n, kpty, kservice, qtbase,
 }:
 
 mkDerivation {
   name = "kdesu";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ kcoreaddons ki18n kpty kservice ];
+  buildInputs = [ kcoreaddons ki18n kpty kservice qtbase ];
+  propagatedBuildInputs = [ kpty ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kdnssd.nix b/pkgs/development/libraries/kde-frameworks/kdnssd.nix
index 1d7553090fc..9382db43e2d 100644
--- a/pkgs/development/libraries/kde-frameworks/kdnssd.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdnssd.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
-  extra-cmake-modules, qttools,
-  avahi, qtbase
+  extra-cmake-modules,
+  avahi, qtbase, qttools,
 }:
 
 mkDerivation {
@@ -10,6 +10,8 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
-  propagatedBuildInputs = [ avahi qtbase ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ avahi qttools ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix b/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
index 991717cce8c..55d719e8d8c 100644
--- a/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
@@ -1,18 +1,28 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, docbook_xml_dtd_45, docbook5_xsl,
-  karchive, ki18n, perl, perlPackages
+  karchive, ki18n, qtbase,
+  perl, perlPackages
 }:
 
 mkDerivation {
   name = "kdoctools";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ karchive ki18n ];
   propagatedNativeBuildInputs = [ perl perlPackages.URI ];
+  buildInputs = [ karchive ki18n ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
+  patches = [ ./kdoctools-no-find-docbook-xml.patch ];
+  preConfigure = ''
+    outputBin=dev
+  '';
   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 ];
+  postFixup = ''
+    moveToOutput "share/doc" "$dev"
+    moveToOutput "share/man" "$dev"
+  '';
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kemoticons.nix b/pkgs/development/libraries/kde-frameworks/kemoticons.nix
index c2060e9c919..b7f4f036db5 100644
--- a/pkgs/development/libraries/kde-frameworks/kemoticons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kemoticons.nix
@@ -1,12 +1,13 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  karchive, kconfig, kcoreaddons, kservice
+  karchive, kcoreaddons, kservice, qtbase,
 }:
 
 mkDerivation {
   name = "kemoticons";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ karchive kconfig kcoreaddons kservice ];
+  buildInputs = [ karchive kcoreaddons ];
+  propagatedBuildInputs = [ kservice qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
index 3fb81c28a7b..7f325c88049 100644
--- a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
@@ -7,9 +7,10 @@
 mkDerivation {
   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
+  buildInputs = [
+    attr ebook_tools exiv2 ffmpeg karchive ki18n poppler taglib
   ];
+  propagatedBuildInputs = [ qtbase ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix b/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
index cfe767b4d55..05fde45f17d 100644
--- a/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
+++ b/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
@@ -2,14 +2,19 @@
   mkDerivation, lib,
   extra-cmake-modules,
   kconfig, kcoreaddons, kcrash, kdbusaddons, kservice, kwindowsystem,
-  qtx11extras
+  qtbase, qttools, qtx11extras,
 }:
 
 mkDerivation {
   name = "kglobalaccel";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
-    kconfig kcoreaddons kcrash kdbusaddons kservice kwindowsystem qtx11extras
+  buildInputs = [
+    kconfig kcoreaddons kcrash kdbusaddons kservice kwindowsystem qttools
+    qtx11extras
   ];
+  propagatedBuildInputs = [ qtbase ];
+  postPatch = ''
+    sed -i src/runtime/org.kde.kglobalaccel.service.in \
+        -e "s|@CMAKE_INSTALL_PREFIX@|''${!outputBin}|"
+  '';
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kguiaddons.nix b/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
index 2b4e28ca492..5cc7e360782 100644
--- a/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
@@ -11,5 +11,7 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ qtx11extras ];
+  buildInputs = [ qtx11extras ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/khtml.nix b/pkgs/development/libraries/kde-frameworks/khtml.nix
index d6ec1ab901f..3724d078aff 100644
--- a/pkgs/development/libraries/kde-frameworks/khtml.nix
+++ b/pkgs/development/libraries/kde-frameworks/khtml.nix
@@ -10,9 +10,10 @@ mkDerivation {
   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
+  buildInputs = [
+    giflib karchive kcodecs kglobalaccel ki18n kiconthemes kio knotifications
+    kparts ktextwidgets kwallet kwidgetsaddons kwindowsystem kxmlgui phonon
+    qtx11extras sonnet
   ];
+  propagatedBuildInputs = [ kjs ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/ki18n.nix b/pkgs/development/libraries/kde-frameworks/ki18n.nix
index 649f1db3952..805cb201bd7 100644
--- a/pkgs/development/libraries/kde-frameworks/ki18n.nix
+++ b/pkgs/development/libraries/kde-frameworks/ki18n.nix
@@ -12,5 +12,5 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedNativeBuildInputs = [ gettext python ];
-  propagatedBuildInputs = [ qtdeclarative qtscript ];
+  buildInputs = [ qtdeclarative qtscript ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
index f1d8503804e..4b8e0059377 100644
--- a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
@@ -1,7 +1,8 @@
 {
   mkDerivation, lib, copyPathsToStore,
   extra-cmake-modules,
-  karchive, kconfigwidgets, ki18n, breeze-icons, kitemviews, qtsvg
+  breeze-icons, karchive, kcoreaddons, kconfigwidgets, ki18n, kitemviews,
+  qtbase, qtsvg,
 }:
 
 mkDerivation {
@@ -9,5 +10,8 @@ mkDerivation {
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ breeze-icons kconfigwidgets karchive ki18n kitemviews qtsvg ];
+  buildInputs = [
+    breeze-icons karchive kcoreaddons kconfigwidgets ki18n kitemviews
+  ];
+  propagatedBuildInputs = [ qtbase qtsvg ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kidletime.nix b/pkgs/development/libraries/kde-frameworks/kidletime.nix
index 4139674cd39..69d83eb0ff5 100644
--- a/pkgs/development/libraries/kde-frameworks/kidletime.nix
+++ b/pkgs/development/libraries/kde-frameworks/kidletime.nix
@@ -11,5 +11,6 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ qtbase qtx11extras ];
+  buildInputs = [ qtx11extras ];
+  propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kimageformats.nix b/pkgs/development/libraries/kde-frameworks/kimageformats.nix
index b711328cf89..26a8637bafc 100644
--- a/pkgs/development/libraries/kde-frameworks/kimageformats.nix
+++ b/pkgs/development/libraries/kde-frameworks/kimageformats.nix
@@ -1,14 +1,16 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  ilmbase, karchive, qtbase
+  ilmbase, karchive, openexr, qtbase
 }:
 
+let inherit (lib) getDev; in
+
 mkDerivation {
   name = "kimageformats";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ ilmbase qtbase ];
-  propagatedBuildInputs = [ karchive ];
-  NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
+  buildInputs = [ karchive openexr qtbase ];
+  outputs = [ "out" ]; # plugins only
+  NIX_CFLAGS_COMPILE = "-I${getDev ilmbase}/include/OpenEXR";
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/default.nix b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
index 51c0e40617a..1036ea27745 100644
--- a/pkgs/development/libraries/kde-frameworks/kinit/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib, copyPathsToStore, writeScript,
   extra-cmake-modules, kdoctools,
   kconfig, kcrash, ki18n, kio, kparts, kservice, kwindowsystem, plasma-framework
 }:
@@ -10,7 +10,7 @@ mkDerivation {
   name = "kinit";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kconfig kcrash ki18n kio kservice kwindowsystem
   ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
@@ -19,4 +19,18 @@ mkDerivation {
     ''-DNIXPKGS_KF5_PARTS="${getLib kparts}/lib/libKF5Parts.so.5"''
     ''-DNIXPKGS_KF5_PLASMA="${getLib plasma-framework}/lib/libKF5Plasma.so.5"''
   ];
+  postFixup = ''
+    moveToOutput "lib/libexec/kf5/start_kdeinit" "$bin"
+  '';
+  setupHook = writeScript "setup-hook.sh" ''
+    kinitFixupOutputHook() {
+        if [ $prefix != ''${!outputBin} ] && [ -d $prefix/lib ]; then
+            mkdir -p ''${!outputBin}/lib
+            find $prefix/lib -maxdepth 1 -name 'libkdeinit5_*.so' -exec ln -s \{\} ''${!outputBin}/lib \;
+            rmdir --ignore-fail-on-non-empty ''${!outputBin}/lib
+        fi
+    }
+
+    fixupOutputHooks+=(kinitFixupOutputHook)
+  '';
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kio/default.nix b/pkgs/development/libraries/kde-frameworks/kio/default.nix
index 86cb72707a5..e4e4c90bfe1 100644
--- a/pkgs/development/libraries/kde-frameworks/kio/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kio/default.nix
@@ -1,21 +1,23 @@
 {
   mkDerivation, lib, copyPathsToStore,
   extra-cmake-modules, kdoctools,
-  acl, karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
+  karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
   kdbusaddons, ki18n, kiconthemes, kitemviews, kjobwidgets, knotifications,
   kservice, ktextwidgets, kwallet, kwidgetsaddons, kwindowsystem, kxmlgui,
-  qtscript, qtx11extras, solid, fetchpatch
+  qtbase, qtscript, qtx11extras, solid,
 }:
 
 mkDerivation {
   name = "kio";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    karchive kconfigwidgets kdbusaddons ki18n kiconthemes knotifications
+    ktextwidgets kwallet kwidgetsaddons kwindowsystem qtscript qtx11extras
+  ];
   propagatedBuildInputs = [
-    acl karchive kbookmarks kcompletion kconfig kconfigwidgets kcoreaddons
-    kdbusaddons ki18n kiconthemes kitemviews kjobwidgets knotifications kservice
-    ktextwidgets kwallet kwidgetsaddons kwindowsystem kxmlgui solid qtscript
-    qtx11extras
+    kbookmarks kcompletion kconfig kcoreaddons kitemviews kjobwidgets kservice
+    kxmlgui qtbase solid
   ];
   patches = (copyPathsToStore (lib.readPathsFromFile ./. ./series));
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kitemmodels.nix b/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
index a769d30b3c3..faeb5b16c34 100644
--- a/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
+++ b/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
@@ -12,4 +12,5 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kitemviews.nix b/pkgs/development/libraries/kde-frameworks/kitemviews.nix
index 7e317deef58..c4c0e804e2d 100644
--- a/pkgs/development/libraries/kde-frameworks/kitemviews.nix
+++ b/pkgs/development/libraries/kde-frameworks/kitemviews.nix
@@ -10,6 +10,8 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qttools ];
   propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix b/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
index 048f1290a99..810e2bf8c84 100644
--- a/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
+++ b/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
@@ -8,5 +8,5 @@ mkDerivation {
   name = "kjobwidgets";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules qttools ];
-  propagatedBuildInputs = [ kcoreaddons kwidgetsaddons qtx11extras ];
+  buildInputs = [ kcoreaddons kwidgetsaddons qtx11extras ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kjs.nix b/pkgs/development/libraries/kde-frameworks/kjs.nix
index 20459498c3e..62bcc0065b3 100644
--- a/pkgs/development/libraries/kde-frameworks/kjs.nix
+++ b/pkgs/development/libraries/kde-frameworks/kjs.nix
@@ -1,10 +1,12 @@
 {
   mkDerivation, lib,
-  extra-cmake-modules, kdoctools
+  extra-cmake-modules, kdoctools,
+  qtbase,
 }:
 
 mkDerivation {
   name = "kjs";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kjsembed.nix b/pkgs/development/libraries/kde-frameworks/kjsembed.nix
index 3a52761e259..e8cd5070ae5 100644
--- a/pkgs/development/libraries/kde-frameworks/kjsembed.nix
+++ b/pkgs/development/libraries/kde-frameworks/kjsembed.nix
@@ -1,11 +1,13 @@
 {
-  mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kjs
-, qtsvg
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, qttools,
+  ki18n, kjs, qtsvg,
 }:
 
 mkDerivation {
   name = "kjsembed";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [ ki18n kjs qtsvg ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools qttools ];
+  buildInputs = [ ki18n qtsvg ];
+  propagatedBuildInputs = [ kjs ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix b/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
index 278a4240ab9..a4714c9e4ad 100644
--- a/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
+++ b/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
@@ -8,5 +8,5 @@ mkDerivation {
   name = "kmediaplayer";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ kparts kxmlgui ];
+  buildInputs = [ kparts kxmlgui ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/knewstuff.nix b/pkgs/development/libraries/kde-frameworks/knewstuff.nix
index b32a073fb33..70f3cbb3c37 100644
--- a/pkgs/development/libraries/kde-frameworks/knewstuff.nix
+++ b/pkgs/development/libraries/kde-frameworks/knewstuff.nix
@@ -1,14 +1,18 @@
-{ mkDerivation, lib, extra-cmake-modules, attica, karchive
-, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes, kio
-, kitemviews, kservice, ktextwidgets, kwidgetsaddons, kxmlgui
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  attica, karchive, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes,
+  kio, kitemviews, kservice, ktextwidgets, kwidgetsaddons, kxmlgui, qtbase,
+  qtdeclarative,
 }:
 
 mkDerivation {
   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
+  buildInputs = [
+    karchive kcompletion kconfig kcoreaddons ki18n kiconthemes kio kitemviews
+    ktextwidgets kwidgetsaddons qtbase qtdeclarative
   ];
+  propagatedBuildInputs = [ attica kservice kxmlgui ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/knotifications.nix b/pkgs/development/libraries/kde-frameworks/knotifications.nix
index 2532f5b4b4f..964e1b44115 100644
--- a/pkgs/development/libraries/kde-frameworks/knotifications.nix
+++ b/pkgs/development/libraries/kde-frameworks/knotifications.nix
@@ -10,7 +10,7 @@ mkDerivation {
   name = "knotifications";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules qttools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     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
index 29c779e6598..6739f96183c 100644
--- a/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix
+++ b/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix
@@ -1,10 +1,14 @@
-{ mkDerivation, lib, extra-cmake-modules, kcompletion, kconfig
-, ki18n, kio, phonon
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  kcompletion, kconfig, ki18n, kio, phonon, qtbase,
 }:
 
 mkDerivation {
   name = "knotifyconfig";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ kcompletion kconfig ki18n kio phonon ];
+  buildInputs = [ kcompletion kconfig ki18n kio phonon ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/default.nix b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
index e83afaa8e82..c0b4b631286 100644
--- a/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
@@ -1,13 +1,13 @@
 {
   mkDerivation, fetchurl, lib, copyPathsToStore,
   extra-cmake-modules, kdoctools,
-  karchive, kconfig, kcoreaddons, ki18n
+  karchive, kconfig, kcoreaddons, ki18n, qtbase,
 }:
 
 mkDerivation {
   name = "kpackage";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [ karchive kconfig kcoreaddons ki18n ];
+  buildInputs = [ karchive kconfig kcoreaddons ki18n qtbase ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kparts.nix b/pkgs/development/libraries/kde-frameworks/kparts.nix
index db0eb6c2a2c..f657569277a 100644
--- a/pkgs/development/libraries/kde-frameworks/kparts.nix
+++ b/pkgs/development/libraries/kde-frameworks/kparts.nix
@@ -1,14 +1,17 @@
-{ mkDerivation, lib, extra-cmake-modules, kconfig, kcoreaddons
-, ki18n, kiconthemes, kio, kjobwidgets, knotifications, kservice
-, ktextwidgets, kwidgetsaddons, kxmlgui
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  kconfig, kcoreaddons, ki18n, kiconthemes, kio, kjobwidgets, knotifications,
+  kservice, ktextwidgets, kwidgetsaddons, kxmlgui
 }:
 
 mkDerivation {
   name = "kparts";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
-    kconfig kcoreaddons ki18n kiconthemes kio kjobwidgets knotifications
-    kservice ktextwidgets kwidgetsaddons kxmlgui
+  buildInputs = [
+    kconfig kcoreaddons ki18n kiconthemes kjobwidgets knotifications kservice
+    kwidgetsaddons
   ];
+  propagatedBuildInputs = [ kio ktextwidgets kxmlgui ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kpeople.nix b/pkgs/development/libraries/kde-frameworks/kpeople.nix
index e10abf6ab62..04181fd3e13 100644
--- a/pkgs/development/libraries/kde-frameworks/kpeople.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpeople.nix
@@ -1,12 +1,16 @@
-{ mkDerivation, lib, extra-cmake-modules, kcoreaddons, ki18n
-, kitemviews, kservice, kwidgetsaddons, qtdeclarative
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  kcoreaddons, ki18n, kitemviews, kservice, kwidgetsaddons, qtbase,
+  qtdeclarative,
 }:
 
 mkDerivation {
   name = "kpeople";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kcoreaddons ki18n kitemviews kservice kwidgetsaddons qtdeclarative
   ];
+  propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kplotting.nix b/pkgs/development/libraries/kde-frameworks/kplotting.nix
index a0d6b4625d9..5ff37fb1db1 100644
--- a/pkgs/development/libraries/kde-frameworks/kplotting.nix
+++ b/pkgs/development/libraries/kde-frameworks/kplotting.nix
@@ -9,5 +9,6 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtbase ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kpty.nix b/pkgs/development/libraries/kde-frameworks/kpty.nix
index 27acf536c36..150c5b3d2b2 100644
--- a/pkgs/development/libraries/kde-frameworks/kpty.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpty.nix
@@ -1,8 +1,9 @@
-{ mkDerivation, lib, extra-cmake-modules, kcoreaddons, ki18n }:
+{ mkDerivation, lib, extra-cmake-modules, kcoreaddons, ki18n, qtbase, }:
 
 mkDerivation {
   name = "kpty";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ kcoreaddons ki18n ];
+  buildInputs = [ kcoreaddons ki18n qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kross.nix b/pkgs/development/libraries/kde-frameworks/kross.nix
index 6b37c118183..f45fb5ecd1d 100644
--- a/pkgs/development/libraries/kde-frameworks/kross.nix
+++ b/pkgs/development/libraries/kde-frameworks/kross.nix
@@ -1,14 +1,14 @@
 { mkDerivation, lib, extra-cmake-modules, kcompletion, kcoreaddons
 , kdoctools, ki18n, kiconthemes, kio, kparts, kwidgetsaddons
-, kxmlgui, qtscript
+, kxmlgui, qtbase, qtscript, qtxmlpatterns,
 }:
 
 mkDerivation {
   name = "kross";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ kcompletion kcoreaddons kxmlgui ];
   propagatedBuildInputs = [
-    kcompletion kcoreaddons ki18n kiconthemes kio kparts kwidgetsaddons kxmlgui
-    qtscript
+    ki18n kiconthemes kio kparts kwidgetsaddons qtbase qtscript qtxmlpatterns
   ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/krunner.nix b/pkgs/development/libraries/kde-frameworks/krunner.nix
index 2f542591e49..9782320a487 100644
--- a/pkgs/development/libraries/kde-frameworks/krunner.nix
+++ b/pkgs/development/libraries/kde-frameworks/krunner.nix
@@ -1,14 +1,17 @@
-{ mkDerivation, lib, extra-cmake-modules, kconfig, kcoreaddons
-, ki18n, kio, kservice, plasma-framework, solid
-, threadweaver
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  kconfig, kcoreaddons, ki18n, kio, kservice, plasma-framework, qtbase,
+  qtdeclarative, solid, threadweaver
 }:
 
 mkDerivation {
   name = "krunner";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
-    kconfig kcoreaddons ki18n kio kservice plasma-framework solid
+  buildInputs = [
+    kconfig kcoreaddons ki18n kio kservice qtdeclarative solid
     threadweaver
   ];
+  propagatedBuildInputs = [ plasma-framework qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/default.nix b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
index 2730cf53677..e6822dc2afb 100644
--- a/pkgs/development/libraries/kde-frameworks/kservice/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
@@ -1,14 +1,18 @@
 {
   mkDerivation, lib, copyPathsToStore,
   bison, extra-cmake-modules, flex,
-  kconfig, kcoreaddons, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem
+  kconfig, kcoreaddons, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem,
+  qtbase,
 }:
 
 mkDerivation {
   name = "kservice";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  propagatedNativeBuildInputs = [ bison extra-cmake-modules flex ];
-  nativeBuildInputs = [ kdoctools ];
-  propagatedBuildInputs = [ kconfig kcoreaddons kcrash kdbusaddons ki18n kwindowsystem ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedNativeBuildInputs = [ bison flex ];
+  buildInputs = [
+    kcrash kdbusaddons ki18n kwindowsystem qtbase
+  ];
+  propagatedBuildInputs = [ kconfig kcoreaddons ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
 }
diff --git a/pkgs/development/libraries/kde-frameworks/ktexteditor.nix b/pkgs/development/libraries/kde-frameworks/ktexteditor.nix
index bc4dcf6916b..ae4d3a71d53 100644
--- a/pkgs/development/libraries/kde-frameworks/ktexteditor.nix
+++ b/pkgs/development/libraries/kde-frameworks/ktexteditor.nix
@@ -1,17 +1,17 @@
-{ mkDerivation, lib, copyPathsToStore
-, extra-cmake-modules, perl
-, karchive, kconfig, kguiaddons, kiconthemes, kparts
-, libgit2
-, qtscript, qtxmlpatterns
-, ki18n, kio, sonnet, syntax-highlighting
+{
+  mkDerivation, lib, copyPathsToStore,
+  extra-cmake-modules, perl,
+  karchive, kconfig, kguiaddons, ki18n, kiconthemes, kio, kparts, libgit2,
+  qtscript, qtxmlpatterns, sonnet, syntax-highlighting
 }:
 
 mkDerivation {
   name = "ktexteditor";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules perl ];
-  propagatedBuildInputs = [
-    karchive kconfig kguiaddons ki18n kiconthemes kio kparts libgit2 qtscript
+  buildInputs = [
+    karchive kconfig kguiaddons ki18n kiconthemes kio libgit2 qtscript
     qtxmlpatterns sonnet syntax-highlighting
   ];
+  propagatedBuildInputs = [ kparts ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix b/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
index 695e7b991e7..8b082f7f365 100644
--- a/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
+++ b/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
@@ -1,14 +1,16 @@
-{ mkDerivation, lib, extra-cmake-modules, kcompletion, kconfig
-, kconfigwidgets, ki18n, kiconthemes, kservice, kwindowsystem
-, sonnet
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  kcompletion, kconfig, kconfigwidgets, ki18n, kiconthemes, kservice,
+  kwindowsystem, qtbase, sonnet,
 }:
 
 mkDerivation {
   name = "ktextwidgets";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
-    kcompletion kconfig kconfigwidgets ki18n kiconthemes kservice kwindowsystem
-    sonnet
+  buildInputs = [
+    kcompletion kconfig kconfigwidgets kiconthemes kservice kwindowsystem
   ];
+  propagatedBuildInputs = [ ki18n qtbase sonnet ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kunitconversion.nix b/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
index e793bb8828f..d6c079fd83b 100644
--- a/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
+++ b/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
@@ -1,8 +1,9 @@
-{ mkDerivation, lib, extra-cmake-modules, ki18n }:
+{ mkDerivation, lib, extra-cmake-modules, ki18n, qtbase, }:
 
 mkDerivation {
   name = "kunitconversion";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ ki18n ];
+  buildInputs = [ ki18n qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kwallet.nix b/pkgs/development/libraries/kde-frameworks/kwallet.nix
index 31a29dbff92..fca0dedd083 100644
--- a/pkgs/development/libraries/kde-frameworks/kwallet.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwallet.nix
@@ -1,14 +1,18 @@
-{ mkDerivation, lib, extra-cmake-modules, kconfig, kconfigwidgets
-, kcoreaddons , kdbusaddons, kdoctools, ki18n, kiconthemes
-, knotifications , kservice, kwidgetsaddons, kwindowsystem, libgcrypt, gpgme
+{
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools,
+  kconfig, kconfigwidgets, kcoreaddons , kdbusaddons, ki18n,
+  kiconthemes, knotifications, kservice, kwidgetsaddons, kwindowsystem,
+  libgcrypt, qgpgme, qtbase,
 }:
 
 mkDerivation {
   name = "kwallet";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kconfig kconfigwidgets kcoreaddons kdbusaddons ki18n kiconthemes
-    knotifications kservice kwidgetsaddons kwindowsystem libgcrypt gpgme
+    knotifications kservice kwidgetsaddons kwindowsystem libgcrypt qgpgme
   ];
+  propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kwayland.nix b/pkgs/development/libraries/kde-frameworks/kwayland.nix
index 87c0bf84706..096100980d6 100644
--- a/pkgs/development/libraries/kde-frameworks/kwayland.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwayland.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation, lib, propagateBin,
   extra-cmake-modules,
   qtbase, wayland
 }:
@@ -11,6 +11,7 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtbase ];
-  propagatedBuildInputs = [ wayland ];
+  buildInputs = [ wayland ];
+  propagatedBuildInputs = [ qtbase ];
+  setupHook = propagateBin; # XDG_CONFIG_DIRS
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix b/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
index 4375cf064e1..e607f90de8d 100644
--- a/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
@@ -1,5 +1,7 @@
-{ mkDerivation, lib
-, extra-cmake-modules, qtbase, qttools
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  qtbase, qttools
 }:
 
 mkDerivation {
@@ -8,6 +10,8 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
-  buildInputs = [ qtbase ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qttools ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
index 6fe57449b89..ba43a5668a7 100644
--- a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
@@ -10,10 +10,11 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
-  propagatedBuildInputs = [ qtx11extras ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ qttools qtx11extras ];
+  propagatedBuildInputs = [ qtbase ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   preConfigure = ''
-    NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QT_PLUGIN_PATH=\"$out/$qtPluginPrefix\""
+    NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QT_PLUGIN_PATH=\"''${!outputBin}/$qtPluginPrefix\""
   '';
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kxmlgui.nix b/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
index 80df93c61b8..b9aede81f9a 100644
--- a/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
+++ b/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
@@ -1,14 +1,17 @@
-{ mkDerivation, lib, extra-cmake-modules, attica, kconfig
-, kconfigwidgets, kglobalaccel, ki18n, kiconthemes, kitemviews
-, ktextwidgets, kwindowsystem, sonnet
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  attica, kconfig, kconfigwidgets, kglobalaccel, ki18n, kiconthemes, kitemviews,
+  ktextwidgets, kwindowsystem, qtbase, sonnet,
 }:
 
 mkDerivation {
   name = "kxmlgui";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
-    attica kconfig kconfigwidgets kglobalaccel ki18n kiconthemes kitemviews
-    ktextwidgets kwindowsystem sonnet
+  buildInputs = [
+    attica kglobalaccel ki18n kiconthemes kitemviews ktextwidgets kwindowsystem
+    sonnet
   ];
+  propagatedBuildInputs = [ kconfig kconfigwidgets qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix b/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
index 714d768742e..acffde6a7cf 100644
--- a/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
+++ b/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
@@ -4,5 +4,7 @@ mkDerivation {
   name = "kxmlrpcclient";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ ki18n kio ];
+  buildInputs = [ ki18n ];
+  propagatedBuildInputs = [ kio ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix b/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
index c4edfeca5a3..cdf09a48b4f 100644
--- a/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
+++ b/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
@@ -1,6 +1,7 @@
-{ mkDerivation, lib
-, extra-cmake-modules
-, modemmanager, qtbase
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  modemmanager, qtbase
 }:
 
 mkDerivation {
@@ -10,6 +11,6 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtbase ];
-  propagatedBuildInputs = [ modemmanager ];
+  propagatedBuildInputs = [ modemmanager qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix b/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
index 340c76ef778..3ed56bbf718 100644
--- a/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
+++ b/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
@@ -1,6 +1,7 @@
-{ mkDerivation, lib
-, extra-cmake-modules
-, qtbase, networkmanager
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  networkmanager, qtbase,
 }:
 
 mkDerivation {
@@ -10,6 +11,6 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtbase ];
-  propagatedBuildInputs = [ networkmanager ];
+  propagatedBuildInputs = [ networkmanager qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix b/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
index 919c4f36b15..2d795bfc50c 100644
--- a/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
+++ b/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
@@ -9,7 +9,7 @@ mkDerivation {
     license = lib.licenses.lgpl3Plus;
     maintainers = [ lib.maintainers.ttuegel ];
   };
-  outputs = [ "out" ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ];
+  outputs = [ "out" ]; # only runtime outputs
 }
diff --git a/pkgs/development/libraries/kde-frameworks/plasma-framework.nix b/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
index f47750145b5..d3a81b50bf1 100644
--- a/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
+++ b/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
@@ -1,17 +1,20 @@
-{ mkDerivation, lib, fetchurl, extra-cmake-modules, kactivities, karchive
-, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kdeclarative
-, kdoctools, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio
-, knotifications, kpackage, kservice, kwayland, kwindowsystem, kxmlgui
-, qtscript, qtx11extras
+{
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools,
+  kactivities, karchive, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
+  kdeclarative, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio,
+  knotifications, kpackage, kservice, kwayland, kwindowsystem, kxmlgui,
+  qtbase, qtdeclarative, qtscript, qtx11extras,
 }:
 
 mkDerivation {
   name = "plasma-framework";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kactivities karchive kconfig kconfigwidgets kcoreaddons kdbusaddons
     kdeclarative kglobalaccel kguiaddons ki18n kiconthemes kio knotifications
-    kpackage kservice kwayland kwindowsystem kxmlgui qtscript qtx11extras
+    kwayland kwindowsystem kxmlgui qtdeclarative qtscript qtx11extras
   ];
+  propagatedBuildInputs = [ kpackage kservice qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/prison.nix b/pkgs/development/libraries/kde-frameworks/prison.nix
index 905321235c7..2d86f3fbf05 100644
--- a/pkgs/development/libraries/kde-frameworks/prison.nix
+++ b/pkgs/development/libraries/kde-frameworks/prison.nix
@@ -8,5 +8,7 @@ mkDerivation {
   name = "prison";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ libdmtx qrencode qtbase ];
+  buildInputs = [ libdmtx qrencode ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/solid.nix b/pkgs/development/libraries/kde-frameworks/solid.nix
index f64b9936046..24705d6c114 100644
--- a/pkgs/development/libraries/kde-frameworks/solid.nix
+++ b/pkgs/development/libraries/kde-frameworks/solid.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   bison, extra-cmake-modules, flex,
-  qtbase, qtdeclarative, qttools
+  media-player-info, qtbase, qtdeclarative, qttools
 }:
 
 mkDerivation {
@@ -10,6 +10,8 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ bison extra-cmake-modules flex qttools ];
-  propagatedBuildInputs = [ qtdeclarative ];
+  nativeBuildInputs = [ bison extra-cmake-modules flex ];
+  buildInputs = [ qtdeclarative qttools ];
+  propagatedBuildInputs = [ qtbase ];
+  propagatedUserEnvPkgs = [ media-player-info ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/sonnet.nix b/pkgs/development/libraries/kde-frameworks/sonnet.nix
index 06165a57c3a..90e2169c166 100644
--- a/pkgs/development/libraries/kde-frameworks/sonnet.nix
+++ b/pkgs/development/libraries/kde-frameworks/sonnet.nix
@@ -9,6 +9,7 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ extra-cmake-modules qttools ];
-  buildInputs = [ hunspell qtbase ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ hunspell qttools ];
+  propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix b/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
index ebc33a8346e..82c8f323a0d 100644
--- a/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
+++ b/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
@@ -8,6 +8,7 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
-  nativeBuildInputs = [ extra-cmake-modules perl qttools ];
-  buildInputs = [ qtbase ];
+  nativeBuildInputs = [ extra-cmake-modules perl ];
+  buildInputs = [ qttools ];
+  propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/threadweaver.nix b/pkgs/development/libraries/kde-frameworks/threadweaver.nix
index 3afedf18ecb..8861d2853ba 100644
--- a/pkgs/development/libraries/kde-frameworks/threadweaver.nix
+++ b/pkgs/development/libraries/kde-frameworks/threadweaver.nix
@@ -1,5 +1,7 @@
-{ mkDerivation, lib
-, extra-cmake-modules, qtbase
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  qtbase
 }:
 
 mkDerivation {
@@ -9,5 +11,6 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.6.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ qtbase ];
+  propagatedBuildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }