summary refs log tree commit diff
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@mailbox.org>2017-05-26 15:44:36 -0500
committerThomas Tuegel <ttuegel@mailbox.org>2017-06-18 08:44:45 -0500
commit8538d75734e4776807203b66f91a281f4da4e801 (patch)
tree9c019aa8f56873c38b9267d56dce05a07570dc1e
parent7f95d4834f772607fb4c9b2ffa4611ccd0a1006f (diff)
downloadnixpkgs-8538d75734e4776807203b66f91a281f4da4e801.tar
nixpkgs-8538d75734e4776807203b66f91a281f4da4e801.tar.gz
nixpkgs-8538d75734e4776807203b66f91a281f4da4e801.tar.bz2
nixpkgs-8538d75734e4776807203b66f91a281f4da4e801.tar.lz
nixpkgs-8538d75734e4776807203b66f91a281f4da4e801.tar.xz
nixpkgs-8538d75734e4776807203b66f91a281f4da4e801.tar.zst
nixpkgs-8538d75734e4776807203b66f91a281f4da4e801.zip
plasma5: fixup inputs and outputs
-rw-r--r--pkgs/desktops/plasma-5/breeze-grub.nix1
-rw-r--r--pkgs/desktops/plasma-5/breeze-gtk.nix2
-rw-r--r--pkgs/desktops/plasma-5/breeze-plymouth/default.nix1
-rw-r--r--pkgs/desktops/plasma-5/breeze-qt4.nix1
-rw-r--r--pkgs/desktops/plasma-5/breeze-qt5.nix1
-rw-r--r--pkgs/desktops/plasma-5/default.nix40
-rw-r--r--pkgs/desktops/plasma-5/kactivitymanagerd.nix9
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/default.nix19
-rw-r--r--pkgs/desktops/plasma-5/kdecoration.nix1
-rw-r--r--pkgs/desktops/plasma-5/khotkeys.nix10
-rw-r--r--pkgs/desktops/plasma-5/kmenuedit.nix2
-rw-r--r--pkgs/desktops/plasma-5/kscreen.nix8
-rw-r--r--pkgs/desktops/plasma-5/kscreenlocker.nix3
-rw-r--r--pkgs/desktops/plasma-5/ksysguard.nix5
-rw-r--r--pkgs/desktops/plasma-5/kwin/default.nix45
-rw-r--r--pkgs/desktops/plasma-5/libkscreen/default.nix13
-rw-r--r--pkgs/desktops/plasma-5/libksysguard/default.nix3
-rw-r--r--pkgs/desktops/plasma-5/milou.nix4
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/default.nix46
-rw-r--r--pkgs/desktops/plasma-5/plasma-nm/default.nix16
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace-wallpapers.nix9
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/default.nix35
-rw-r--r--pkgs/desktops/plasma-5/powerdevil.nix12
-rw-r--r--pkgs/desktops/plasma-5/systemsettings.nix3
24 files changed, 162 insertions, 127 deletions
diff --git a/pkgs/desktops/plasma-5/breeze-grub.nix b/pkgs/desktops/plasma-5/breeze-grub.nix
index e8ac5c1e208..eed396b5437 100644
--- a/pkgs/desktops/plasma-5/breeze-grub.nix
+++ b/pkgs/desktops/plasma-5/breeze-grub.nix
@@ -4,7 +4,6 @@
 
 mkDerivation {
   name = "breeze-grub";
-  outputs = [ "out" ];
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/desktops/plasma-5/breeze-gtk.nix b/pkgs/desktops/plasma-5/breeze-gtk.nix
index f2d76fe19e6..cc51c4b0471 100644
--- a/pkgs/desktops/plasma-5/breeze-gtk.nix
+++ b/pkgs/desktops/plasma-5/breeze-gtk.nix
@@ -5,10 +5,10 @@ let inherit (lib) getLib; in
 mkDerivation {
   name = "breeze-gtk";
   nativeBuildInputs = [ extra-cmake-modules ];
-  cmakeFlags = [ "-DWITH_GTK3_VERSION=3.22" ];
   buildInputs = [ qtbase ];
   postPatch = ''
     sed -i cmake/FindGTKEngine.cmake \
       -e "s|\''${KDE_INSTALL_FULL_LIBDIR}|${getLib gtk2}/lib|"
   '';
+  cmakeFlags = [ "-DWITH_GTK3_VERSION=3.22" ];
 }
diff --git a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
index 898d9cd78a5..41a4dd66b2c 100644
--- a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
+++ b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
@@ -8,7 +8,6 @@ mkDerivation {
   name = "breeze-plymouth";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ plymouth ];
-  outputs = [ "out" ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   postPatch = ''
       substituteInPlace cmake/FindPlymouth.cmake --subst-var out
diff --git a/pkgs/desktops/plasma-5/breeze-qt4.nix b/pkgs/desktops/plasma-5/breeze-qt4.nix
index 6c9d0c5c4ce..6c31398037b 100644
--- a/pkgs/desktops/plasma-5/breeze-qt4.nix
+++ b/pkgs/desktops/plasma-5/breeze-qt4.nix
@@ -9,6 +9,7 @@ mkDerivation {
   sname = "breeze";
   buildInputs = [ kdelibs4 qt4 xproto ];
   nativeBuildInputs = [ automoc4 cmake perl pkgconfig ];
+  outputs = [ "out" "dev" ];
   cmakeFlags = [
     "-DUSE_KDE4=ON"
     "-DQT_QMAKE_EXECUTABLE=${qt4}/bin/qmake"
diff --git a/pkgs/desktops/plasma-5/breeze-qt5.nix b/pkgs/desktops/plasma-5/breeze-qt5.nix
index b1cb3b7f8fc..c0e55dec76d 100644
--- a/pkgs/desktops/plasma-5/breeze-qt5.nix
+++ b/pkgs/desktops/plasma-5/breeze-qt5.nix
@@ -15,5 +15,6 @@ mkDerivation {
     kguiaddons ki18n kwayland kwindowsystem plasma-framework qtdeclarative
     qtx11extras
   ];
+  outputs = [ "out" "dev" "bin" ];
   cmakeFlags = [ "-DUSE_Qt4=OFF" ];
 }
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index 10d5a152f13..e101d4e14c5 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -36,21 +36,44 @@ let
     mirror = "mirror://kde";
   };
 
+  mkDerivation = libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {};
+
   packages = self: with self;
     let
+
+      propagate = out:
+        let setupHook = { writeScript }:
+              writeScript "setup-hook.sh" ''
+                # Propagate $${out} output
+                propagatedUserEnvPkgs+=" @${out}@"
+
+                # Propagate $dev so that this setup hook is propagated
+                # But only if there is a separate $dev output
+                if [ "$outputDev" != out ]; then
+                    if [ -n "$crossConfig" ]; then
+                      propagatedBuildInputs+=" @dev@"
+                    else
+                      propagatedNativeBuildInputs+=" @dev@"
+                    fi
+                fi
+              '';
+        in callPackage setupHook {};
+
+      propagateBin = propagate "bin";
+
       callPackage = self.newScope {
         mkDerivation = args:
           let
             inherit (args) name;
             sname = args.sname or name;
             inherit (srcs."${sname}") src version;
-            mkDerivation = libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {};
-          in
-          mkDerivation (args // {
-            name = "${name}-${version}";
-            inherit src;
 
-            outputs = args.outputs or [ "out" "dev" ];
+            outputs = args.outputs or [ "out" ];
+            hasBin = lib.elem "bin" outputs;
+            hasDev = lib.elem "dev" outputs;
+
+            defaultSetupHook = if hasBin && hasDev then propagateBin else null;
+            setupHook = args.setupHook or defaultSetupHook;
 
             meta = {
               license = with lib.licenses; [
@@ -60,8 +83,13 @@ let
               maintainers = with lib.maintainers; [ ttuegel ];
               homepage = "http://www.kde.org";
             } // (args.meta or {});
+          in
+          mkDerivation (args // {
+            name = "${name}-${version}";
+            inherit meta outputs setupHook src;
           });
       };
+
     in {
       bluedevil = callPackage ./bluedevil.nix {};
       breeze-gtk = callPackage ./breeze-gtk.nix {};
diff --git a/pkgs/desktops/plasma-5/kactivitymanagerd.nix b/pkgs/desktops/plasma-5/kactivitymanagerd.nix
index 629718ab5a0..ae2736fde11 100644
--- a/pkgs/desktops/plasma-5/kactivitymanagerd.nix
+++ b/pkgs/desktops/plasma-5/kactivitymanagerd.nix
@@ -1,7 +1,8 @@
-{ mkDerivation
-, extra-cmake-modules
-, boost, kconfig, kcoreaddons, kdbusaddons, ki18n, kio, kglobalaccel
-, kwindowsystem, kxmlgui
+{
+  mkDerivation,
+  extra-cmake-modules,
+  boost, kconfig, kcoreaddons, kdbusaddons, ki18n, kio, kglobalaccel,
+  kwindowsystem, kxmlgui
 }:
 
 mkDerivation {
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
index 5e959ac8b79..38bab58c829 100644
--- a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
@@ -1,25 +1,18 @@
-{ mkDerivation
-, extra-cmake-modules
-, glib
-, gtk2
-, gtk3
-, karchive
-, kcmutils
-, kconfigwidgets
-, ki18n
-, kiconthemes
-, kio
-, knewstuff
+{
+  mkDerivation,
+  extra-cmake-modules,
+  glib, gtk2, gtk3, karchive, kcmutils, kconfigwidgets, ki18n, kiconthemes, kio,
+  knewstuff
 }:
 
 mkDerivation {
   name = "kde-gtk-config";
-  patches = [ ./0001-follow-symlinks.patch ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     ki18n kio glib gtk2 gtk3 karchive kcmutils kconfigwidgets kiconthemes
     knewstuff
   ];
+  patches = [ ./0001-follow-symlinks.patch ];
   cmakeFlags = [
     "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
     "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
diff --git a/pkgs/desktops/plasma-5/kdecoration.nix b/pkgs/desktops/plasma-5/kdecoration.nix
index 9efdb8cff81..d8f996421ac 100644
--- a/pkgs/desktops/plasma-5/kdecoration.nix
+++ b/pkgs/desktops/plasma-5/kdecoration.nix
@@ -4,4 +4,5 @@ mkDerivation {
   name = "kdecoration";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/desktops/plasma-5/khotkeys.nix b/pkgs/desktops/plasma-5/khotkeys.nix
index be4ccc7b230..abfb85a867c 100644
--- a/pkgs/desktops/plasma-5/khotkeys.nix
+++ b/pkgs/desktops/plasma-5/khotkeys.nix
@@ -1,7 +1,8 @@
-{ mkDerivation, extra-cmake-modules, kdoctools, kcmutils
-, kdbusaddons, kdelibs4support, kglobalaccel, ki18n, kio, kxmlgui
-, plasma-framework, plasma-workspace, qtx11extras
-, fetchpatch
+{
+  mkDerivation,
+  extra-cmake-modules, kdoctools,
+  kcmutils, kdbusaddons, kdelibs4support, kglobalaccel, ki18n, kio, kxmlgui,
+  plasma-framework, plasma-workspace, qtx11extras
 }:
 
 mkDerivation {
@@ -11,4 +12,5 @@ mkDerivation {
     kcmutils kdbusaddons kdelibs4support kglobalaccel ki18n kio kxmlgui
     plasma-framework plasma-workspace qtx11extras
   ];
+  outputs = [ "out" "dev" "bin" ];
 }
diff --git a/pkgs/desktops/plasma-5/kmenuedit.nix b/pkgs/desktops/plasma-5/kmenuedit.nix
index 164c378a60d..016ea940d99 100644
--- a/pkgs/desktops/plasma-5/kmenuedit.nix
+++ b/pkgs/desktops/plasma-5/kmenuedit.nix
@@ -8,7 +8,7 @@
 mkDerivation {
   name = "kmenuedit";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kdbusaddons kdelibs4support khotkeys ki18n kiconthemes kio kxmlgui sonnet
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kscreen.nix b/pkgs/desktops/plasma-5/kscreen.nix
index fcdc922ff94..7fdaedbb78d 100644
--- a/pkgs/desktops/plasma-5/kscreen.nix
+++ b/pkgs/desktops/plasma-5/kscreen.nix
@@ -1,6 +1,8 @@
-{ mkDerivation, extra-cmake-modules, kconfig, kconfigwidgets
-, kdbusaddons, kglobalaccel, ki18n, kwidgetsaddons, kxmlgui
-, libkscreen, qtdeclarative, qtgraphicaleffects
+{
+  mkDerivation,
+  extra-cmake-modules,
+  kconfig, kconfigwidgets, kdbusaddons, kglobalaccel, ki18n, kwidgetsaddons,
+  kxmlgui, libkscreen, qtdeclarative, qtgraphicaleffects
 }:
 
 mkDerivation {
diff --git a/pkgs/desktops/plasma-5/kscreenlocker.nix b/pkgs/desktops/plasma-5/kscreenlocker.nix
index 631719fb535..e748121132c 100644
--- a/pkgs/desktops/plasma-5/kscreenlocker.nix
+++ b/pkgs/desktops/plasma-5/kscreenlocker.nix
@@ -9,8 +9,9 @@
 mkDerivation {
   name = "kscreenlocker";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kcmutils kcrash kdeclarative kdelibs4support kglobalaccel kidletime kwayland
     libXcursor pam plasma-framework qtdeclarative qtx11extras wayland
   ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/desktops/plasma-5/ksysguard.nix b/pkgs/desktops/plasma-5/ksysguard.nix
index 63aeda685ba..150b97be50d 100644
--- a/pkgs/desktops/plasma-5/ksysguard.nix
+++ b/pkgs/desktops/plasma-5/ksysguard.nix
@@ -9,9 +9,8 @@
 mkDerivation {
   name = "ksysguard";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ lm_sensors ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kconfig kcoreaddons kitemviews knewstuff kiconthemes libksysguard
-    kdelibs4support ki18n qtwebkit
+    kdelibs4support ki18n lm_sensors qtwebkit
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kwin/default.nix b/pkgs/desktops/plasma-5/kwin/default.nix
index 08f0e346855..09708b65487 100644
--- a/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/pkgs/desktops/plasma-5/kwin/default.nix
@@ -1,29 +1,34 @@
 {
   mkDerivation, lib, copyPathsToStore,
   extra-cmake-modules, kdoctools,
-  breeze-qt5, epoxy, kactivities, kcompletion, kcmutils, kconfig,
-  kconfigwidgets, kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel,
-  ki18n, kiconthemes, kidletime, kinit, kio, knewstuff, knotifications,
-  kpackage, kscreenlocker, kservice, kwayland, kwidgetsaddons, kwindowsystem,
-  kxmlgui, libICE, libSM, libinput, libxkbcommon, plasma-framework,
-  qtdeclarative, qtmultimedia, qtscript, qtx11extras, udev, wayland,
-  xcb-util-cursor, xwayland
+
+  epoxy,libICE, libSM, libinput, libxkbcommon, udev, wayland, xcb-util-cursor,
+  xwayland,
+
+  qtdeclarative, qtmultimedia, qtscript, qtx11extras,
+
+  breeze-qt5, kactivities, kcompletion, kcmutils, kconfig, kconfigwidgets,
+  kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n,
+  kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage,
+  kscreenlocker, kservice, kwayland, kwidgetsaddons, kwindowsystem, kxmlgui,
+  plasma-framework,
 }:
 
 mkDerivation {
   name = "kwin";
-  nativeBuildInputs = [
-    extra-cmake-modules
-    kdoctools
-  ];
-  propagatedBuildInputs = [
-    breeze-qt5 epoxy kactivities kcmutils kcompletion kconfig kconfigwidgets
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    epoxy libICE libSM libinput libxkbcommon udev wayland xcb-util-cursor
+    xwayland
+
+    qtdeclarative qtmultimedia qtscript qtx11extras
+
+    breeze-qt5 kactivities kcmutils kcompletion kconfig kconfigwidgets
     kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes
     kidletime kinit kio knewstuff knotifications kpackage kscreenlocker kservice
-    kwayland kwidgetsaddons kwindowsystem kxmlgui libICE libSM libxkbcommon
-    libinput plasma-framework qtdeclarative qtmultimedia qtscript qtx11extras
-    udev wayland xcb-util-cursor xwayland
+    kwayland kwidgetsaddons kwindowsystem kxmlgui plasma-framework
   ];
+  outputs = [ "out" "dev" "bin" ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   NIX_CFLAGS_COMPILE = [
     ''-DNIXPKGS_XWAYLAND="${lib.getBin xwayland}/bin/Xwayland"''
@@ -32,9 +37,9 @@ mkDerivation {
   postInstall = ''
     # Some package(s) refer to these service types by the wrong name.
     # I would prefer to patch those packages, but I cannot find them!
-    ln -s $out/share/kservicetypes5/kwineffect.desktop \
-          $out/share/kservicetypes5/kwin-effect.desktop
-    ln -s $out/share/kservicetypes5/kwinscript.desktop \
-          $out/share/kservicetypes5/kwin-script.desktop
+    ln -s ''${!outputBin}/share/kservicetypes5/kwineffect.desktop \
+          ''${!outputBin}/share/kservicetypes5/kwin-effect.desktop
+    ln -s ''${!outputBin}/share/kservicetypes5/kwinscript.desktop \
+          ''${!outputBin}/share/kservicetypes5/kwin-script.desktop
   '';
 }
diff --git a/pkgs/desktops/plasma-5/libkscreen/default.nix b/pkgs/desktops/plasma-5/libkscreen/default.nix
index 82a254c3a37..b81755ed757 100644
--- a/pkgs/desktops/plasma-5/libkscreen/default.nix
+++ b/pkgs/desktops/plasma-5/libkscreen/default.nix
@@ -1,15 +1,16 @@
-{ mkDerivation, lib, copyPathsToStore
-, extra-cmake-modules
-, kwayland, libXrandr
-, qtx11extras
+{
+  mkDerivation, lib, copyPathsToStore,
+  extra-cmake-modules,
+  kwayland, libXrandr, qtx11extras
 }:
 
 mkDerivation {
   name = "libkscreen";
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [ kwayland libXrandr qtx11extras ];
+  buildInputs = [ kwayland libXrandr qtx11extras ];
+  outputs = [ "out" "dev" ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   preConfigure = ''
-    NIX_CFLAGS_COMPILE+=" -DNIXPKGS_LIBKSCREEN_BACKENDS=\"''${!outputLib}/$qtPluginPrefix/kf5/kscreen\""
+    NIX_CFLAGS_COMPILE+=" -DNIXPKGS_LIBKSCREEN_BACKENDS=\"''${!outputBin}/$qtPluginPrefix/kf5/kscreen\""
   '';
 }
diff --git a/pkgs/desktops/plasma-5/libksysguard/default.nix b/pkgs/desktops/plasma-5/libksysguard/default.nix
index e7cdf28a728..4e88cd3df0e 100644
--- a/pkgs/desktops/plasma-5/libksysguard/default.nix
+++ b/pkgs/desktops/plasma-5/libksysguard/default.nix
@@ -12,9 +12,10 @@ mkDerivation {
     ./0001-qdiriterator-follow-symlinks.patch
   ];
   nativeBuildInputs = [ extra-cmake-modules ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kauth kconfig ki18n kiconthemes kwindowsystem kcompletion kconfigwidgets
     kcoreaddons kservice kwidgetsaddons plasma-framework qtscript qtx11extras
     qtwebkit
   ];
+  outputs = [ "out" "dev" "bin" ];
 }
diff --git a/pkgs/desktops/plasma-5/milou.nix b/pkgs/desktops/plasma-5/milou.nix
index 7f38b74423c..fa4ad3fcd29 100644
--- a/pkgs/desktops/plasma-5/milou.nix
+++ b/pkgs/desktops/plasma-5/milou.nix
@@ -7,9 +7,7 @@
 
 mkDerivation {
   name = "milou";
-  nativeBuildInputs = [
-    extra-cmake-modules
-  ];
+  nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kcoreaddons kdeclarative ki18n krunner kservice plasma-framework
     qtdeclarative qtscript
diff --git a/pkgs/desktops/plasma-5/plasma-desktop/default.nix b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index 377bc4cdd14..18675159df6 100644
--- a/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -1,35 +1,37 @@
 {
   mkDerivation, lib, copyPathsToStore,
   extra-cmake-modules, kdoctools,
-  attica, baloo, boost, fontconfig, ibus, kactivities, kactivities-stats, kauth,
-  kcmutils, kdbusaddons, kdeclarative, kded, kdelibs4support, kemoticons,
-  kglobalaccel, ki18n, kitemmodels, knewstuff, knotifications, knotifyconfig,
-  kpeople, krunner, ksysguard, kwallet, kwin, libXcursor, libXft,
-  libcanberra_kde, libpulseaudio, libxkbfile, phonon, plasma-framework,
-  plasma-workspace, qtdeclarative, qtquickcontrols, qtquickcontrols2, qtsvg,
-  qtx11extras, xf86inputevdev, xf86inputsynaptics, xinput, xkeyboard_config,
-  xorgserver,
-  utillinux
+
+  boost, fontconfig, ibus, libXcursor, libXft, libcanberra_kde, libpulseaudio,
+  libxkbfile, xf86inputevdev, xf86inputsynaptics, xinput, xkeyboard_config,
+  xorgserver, utillinux,
+
+  qtdeclarative, qtquickcontrols, qtquickcontrols2, qtsvg, qtx11extras,
+
+  attica, baloo, kactivities, kactivities-stats, kauth, kcmutils, kdbusaddons,
+  kdeclarative, kded, kdelibs4support, kemoticons, kglobalaccel, ki18n,
+  kitemmodels, knewstuff, knotifications, knotifyconfig, kpeople, krunner,
+  kscreenlocker, ksysguard, kwallet, kwin, phonon, plasma-framework,
+  plasma-workspace,
 }:
 
 mkDerivation rec {
   name = "plasma-desktop";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    attica boost fontconfig ibus kcmutils kdbusaddons kded kitemmodels knewstuff
-    knotifications knotifyconfig kwallet libcanberra_kde libXcursor
-    libpulseaudio libXft libxkbfile phonon qtsvg xf86inputevdev
-    xf86inputsynaptics xkeyboard_config xinput baloo kactivities
-    kactivities-stats kauth kdeclarative kdelibs4support kemoticons kglobalaccel
-    ki18n kpeople krunner kwin plasma-framework plasma-workspace qtdeclarative
-    qtquickcontrols qtquickcontrols2 qtx11extras ksysguard
+    boost fontconfig ibus libcanberra_kde libpulseaudio libXcursor libXft
+    libxkbfile phonon xf86inputevdev xf86inputsynaptics xinput xkeyboard_config
+
+    qtdeclarative qtquickcontrols qtquickcontrols2 qtsvg qtx11extras
+
+    attica baloo kactivities kactivities-stats kauth kcmutils kdbusaddons
+    kdeclarative kded kdelibs4support kemoticons kglobalaccel ki18n kitemmodels
+    knewstuff knotifications knotifyconfig kpeople krunner kscreenlocker
+    ksysguard kwallet kwin plasma-framework plasma-workspace
   ];
 
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   postPatch = ''
-    substituteInPlace kcms/dateandtime/helper.cpp \
-        --subst-var hwclock "${utillinux}/sbin/hwclock"
-
     sed '1i#include <cmath>' -i kcms/touchpad/src/backends/x11/synapticstouchpad.cpp
   '';
   NIX_CFLAGS_COMPILE = [
@@ -37,12 +39,12 @@ mkDerivation rec {
     ''-DNIXPKGS_HWCLOCK="${lib.getBin utillinux}/sbin/hwclock"''
   ];
   cmakeFlags = [
-    "-DEvdev_INCLUDE_DIRS=${xf86inputevdev.dev}/include/xorg"
-    "-DSynaptics_INCLUDE_DIRS=${xf86inputsynaptics.dev}/include/xorg"
+    "-DEvdev_INCLUDE_DIRS=${lib.getDev xf86inputevdev}/include/xorg"
+    "-DSynaptics_INCLUDE_DIRS=${lib.getDev xf86inputsynaptics}/include/xorg"
   ];
   postInstall = ''
     # Display ~/Desktop contents on the desktop by default.
-    sed -i "$out/share/plasma/shells/org.kde.plasma.desktop/contents/defaults" \
+    sed -i "''${!outputBin}/share/plasma/shells/org.kde.plasma.desktop/contents/defaults" \
         -e 's/Containment=org.kde.desktopcontainment/Containment=org.kde.plasma.folder/'
   '';
 }
diff --git a/pkgs/desktops/plasma-5/plasma-nm/default.nix b/pkgs/desktops/plasma-5/plasma-nm/default.nix
index 8ff98ecfc1d..cc1dcb7ee9f 100644
--- a/pkgs/desktops/plasma-5/plasma-nm/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-nm/default.nix
@@ -10,6 +10,14 @@
 
 mkDerivation {
   name = "plasma-nm";
+  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
+    mobile_broadband_provider_info modemmanager-qt networkmanager-qt openconnect
+    qca-qt5 solid
+  ];
   patches = [
     (substituteAll {
       src = ./0001-mobile-broadband-provider-info-path.patch;
@@ -20,12 +28,4 @@ mkDerivation {
       inherit openvpn;
     })
   ];
-  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
-    mobile_broadband_provider_info modemmanager-qt networkmanager-qt openconnect
-    qca-qt5 solid
-  ];
 }
diff --git a/pkgs/desktops/plasma-5/plasma-workspace-wallpapers.nix b/pkgs/desktops/plasma-5/plasma-workspace-wallpapers.nix
index fb0830eb59a..cb068166c1d 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace-wallpapers.nix
+++ b/pkgs/desktops/plasma-5/plasma-workspace-wallpapers.nix
@@ -1,11 +1,6 @@
-{ mkDerivation
-, extra-cmake-modules
-}:
+{ mkDerivation , extra-cmake-modules }:
 
 mkDerivation {
   name = "plasma-workspace-wallpapers";
-  outputs = [ "out" ];
-  nativeBuildInputs = [
-    extra-cmake-modules
-  ];
+  nativeBuildInputs = [ extra-cmake-modules ];
 }
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/default.nix b/pkgs/desktops/plasma-5/plasma-workspace/default.nix
index 175a80fcb4c..29d92f9a9df 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-workspace/default.nix
@@ -3,13 +3,15 @@
 
   extra-cmake-modules, kdoctools,
 
+  isocodes, libdbusmenu, libSM, libXcursor, pam, wayland,
+
   baloo, kactivities, kcmutils, kconfig, kcrash, kdbusaddons, kdeclarative,
   kdelibs4support, kdesu, kglobalaccel, kidletime, kjsembed, knewstuff,
-  knotifyconfig, kpackage, krunner, ktexteditor, ktextwidgets, kwallet,
-  kwayland, kwin, kxmlrpcclient, libkscreen, libksysguard, networkmanager-qt,
-  phonon, plasma-framework, qtgraphicaleffects, qtquickcontrols,
-  qtquickcontrols2, qtscript, qtx11extras, solid, isocodes, libdbusmenu, libSM,
-  libXcursor, pam, wayland
+  knotifyconfig, kpackage, krunner, kscreenlocker, ktexteditor, ktextwidgets,
+  kwallet, kwayland, kwin, kxmlrpcclient, libkscreen, libksysguard,
+  networkmanager-qt, phonon, plasma-framework, prison, solid,
+
+  qtgraphicaleffects, qtquickcontrols, qtquickcontrols2, qtscript, qtx11extras,
 }:
 
 mkDerivation {
@@ -18,27 +20,28 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     isocodes libdbusmenu libSM libXcursor pam wayland
-  ];
-  propagatedBuildInputs = [
+
     baloo kactivities kcmutils kconfig kcrash kdbusaddons kdeclarative
     kdelibs4support kdesu kglobalaccel kidletime kjsembed knewstuff
-    knotifyconfig kpackage krunner ktexteditor ktextwidgets kwallet kwayland
-    kwin kxmlrpcclient libkscreen libksysguard networkmanager-qt phonon
-    plasma-framework solid qtgraphicaleffects qtquickcontrols qtquickcontrols2
-    qtscript qtx11extras
+    knotifyconfig kpackage krunner kscreenlocker ktexteditor ktextwidgets
+    kwallet kwayland kwin kxmlrpcclient libkscreen libksysguard
+    networkmanager-qt phonon plasma-framework prison solid
+
+    qtgraphicaleffects qtquickcontrols qtquickcontrols2 qtscript qtx11extras
   ];
+  outputs = [ "out" "dev" "bin" ];
 
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
 
   postPatch = ''
     substituteInPlace startkde/kstartupconfig/kstartupconfig.cpp \
-        --replace kdostartupconfig5 $out/bin/kdostartupconfig5
+        --replace kdostartupconfig5 ''${!outputBin}/bin/kdostartupconfig5
   '';
 
   postInstall = ''
-    rm "$out/bin/startkde"
-    rm "$out/bin/startplasmacompositor"
-    rm "$out/lib/libexec/startplasma"
-    rm -r "$out/share/wayland-sessions"
+    rm "''${!outputBin}/bin/startkde"
+    rm "''${!outputBin}/bin/startplasmacompositor"
+    rm "''${!outputLib}/lib/libexec/startplasma"
+    rm -r "''${!outputBin}/share/wayland-sessions"
   '';
 }
diff --git a/pkgs/desktops/plasma-5/powerdevil.nix b/pkgs/desktops/plasma-5/powerdevil.nix
index 4660efd66ab..65fc5446c16 100644
--- a/pkgs/desktops/plasma-5/powerdevil.nix
+++ b/pkgs/desktops/plasma-5/powerdevil.nix
@@ -1,13 +1,15 @@
-{ mkDerivation, extra-cmake-modules, kdoctools, bluez-qt, kactivities
-, kauth, kconfig, kdbusaddons, kdelibs4support, kglobalaccel, ki18n
-, kidletime, kio, knotifyconfig, kwayland, libkscreen, networkmanager-qt
-, plasma-workspace, qtx11extras, solid, udev
+{
+  mkDerivation,
+  extra-cmake-modules, kdoctools,
+  bluez-qt, kactivities, kauth, kconfig, kdbusaddons, kdelibs4support,
+  kglobalaccel, ki18n, kidletime, kio, knotifyconfig, kwayland, libkscreen,
+  networkmanager-qt, plasma-workspace, qtx11extras, solid, udev
 }:
 
 mkDerivation {
   name = "powerdevil";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kconfig kdbusaddons knotifyconfig solid udev bluez-qt kactivities kauth
     kdelibs4support kglobalaccel ki18n kio kidletime kwayland libkscreen
     networkmanager-qt plasma-workspace qtx11extras
diff --git a/pkgs/desktops/plasma-5/systemsettings.nix b/pkgs/desktops/plasma-5/systemsettings.nix
index 10fc7a3a5b7..a24eabc39f3 100644
--- a/pkgs/desktops/plasma-5/systemsettings.nix
+++ b/pkgs/desktops/plasma-5/systemsettings.nix
@@ -7,8 +7,9 @@
 mkDerivation {
   name = "systemsettings";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  propagatedBuildInputs = [
+  buildInputs = [
     kcmutils kconfig kdbusaddons khtml ki18n kiconthemes kio kitemviews kservice
     kwindowsystem kxmlgui qtquickcontrols qtquickcontrols2
   ];
+  outputs = [ "out" "dev" "bin" ];
 }