about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@gmail.com>2015-06-18 14:25:51 -0500
committerThomas Tuegel <ttuegel@gmail.com>2015-06-25 09:03:40 -0500
commit8862d8d9c98cf4d8ee66f8bf94f51294af74090d (patch)
tree8f746e374fae79f9db6c358aa63ea0c95aa0b2c1
parent0aa8e649673d802f8c315b88254812bf826ec672 (diff)
downloadnixlib-8862d8d9c98cf4d8ee66f8bf94f51294af74090d.tar
nixlib-8862d8d9c98cf4d8ee66f8bf94f51294af74090d.tar.gz
nixlib-8862d8d9c98cf4d8ee66f8bf94f51294af74090d.tar.bz2
nixlib-8862d8d9c98cf4d8ee66f8bf94f51294af74090d.tar.lz
nixlib-8862d8d9c98cf4d8ee66f8bf94f51294af74090d.tar.xz
nixlib-8862d8d9c98cf4d8ee66f8bf94f51294af74090d.tar.zst
nixlib-8862d8d9c98cf4d8ee66f8bf94f51294af74090d.zip
autonix: JSON manifest format
-rw-r--r--pkgs/applications/kde-apps-15.04/default.nix510
-rw-r--r--pkgs/applications/kde-apps-15.04/setup-hook.sh11
-rw-r--r--pkgs/build-support/autonix/default.nix323
-rw-r--r--pkgs/desktops/plasma-5.3/default.nix76
-rw-r--r--pkgs/development/libraries/kde-frameworks-5.10/default.nix116
-rw-r--r--pkgs/top-level/all-packages.nix8
6 files changed, 518 insertions, 526 deletions
diff --git a/pkgs/applications/kde-apps-15.04/default.nix b/pkgs/applications/kde-apps-15.04/default.nix
index e325c5ccfc22..7910046d774e 100644
--- a/pkgs/applications/kde-apps-15.04/default.nix
+++ b/pkgs/applications/kde-apps-15.04/default.nix
@@ -12,23 +12,23 @@
 #  make a copy of this directory first. After copying, be sure to delete ./tmp
 #  if it exists. Then follow the minor update instructions.
 
-{ autonix, symlinkJoin, kde4, kf5, pkgs, qt4, qt5, stdenv, newScope, debug ? false }:
+{ pkgs, newScope, kf5 ? null, plasma5 ? null, qt5 ? null, debug ? false }:
 
-with autonix;
+let inherit (pkgs) autonix kde4 stdenv symlinkJoin; in
 
-let inherit (stdenv) lib; in
-
-let kf5Orig = kf5; in
+with autonix; let inherit (stdenv) lib; in
 
 let
+  kf5_ = if kf5 != null then kf5 else pkgs.kf510;
+  plasma5_ = if plasma5 != null then plasma5 else pkgs.plasma53;
+  qt5_ = if qt5 != null then qt5 else pkgs.qt54;
+in
 
-  kf5 = kf5Orig.override { inherit debug qt5; };
+let
 
-  kdePackage = pkg:
-    (kf5.kdePackage pkg).override {
-      inherit (stdenv) mkDerivation;
-      inherit scope;
-    };
+  kf5 = kf5_.override { inherit debug qt5; };
+  plasma5 = plasma5_.override { inherit debug kf5 qt5; };
+  qt5 = qt5_;
 
   kdeOrL10nPackage = name: pkg:
     assert (builtins.isAttrs pkg);
@@ -124,53 +124,58 @@ let
       (lib.mapAttrs mirrorUrl)
     ];
 
-  overrideDerivation = pkg: f:
-    let mkDerivation = super: drv: super.mkDerivation (drv // f drv);
-    in pkg.override (super: super // { mkDerivation = mkDerivation super; });
+  kde4Package = pkg: overrideScope pkg (with kde4; {
+    inherit akonadi baloo kactivities libkdegames libkmahjongg;
+    kde4 = self.kdelibs;
+  });
 
   scope =
+    # KDE Frameworks 5
+    kf5 //
     # packages in this collection
     self //
     {
+      kf5baloo = plasma5.baloo;
+      kf5kdcraw = self.libkdcraw;
       kf5kdegames = self.libkdegames;
+      kf5kipi = self.libkipi;
       libkonq = self.kde-baseapps;
     } //
-    # packages from KDE Frameworks 5
-    kf5.scope //
     # packages requiring same Qt 5
     (with pkgs; {
       accountsqt5 = accounts-qt.override { inherit qt5; };
       dbusmenuqt = libdbusmenu_qt;
       grantlee5 = grantlee5.override { inherit qt5; };
       mlt = pkgs.mlt-qt5.override { inherit qt5; };
+      phonon4qt5 = pkgs.phonon_qt5.override { inherit qt5; };
       qca-qt5 = qca-qt5.override { inherit qt5; };
+      qt5script = qt5.script;
+      qt5x11extras = qt5.x11extras;
       signonqt5 = signon.override { inherit qt5; };
       telepathyqt5 = telepathy_qt5.override { inherit qt5; };
     }) //
-    # packages from KDE 4
-    (with kde4; {
-      inherit akonadi baloo kactivities libkdegames libkmahjongg;
-      kde4 = self.kdelibs;
-    }) //
     # packages from nixpkgs
     (with pkgs; {
-      inherit acl attr automoc4 avahi bison cdparanoia cfitsio cups
+      inherit acl attr automoc4 avahi bison cdparanoia cfitsio cmake cups
               djvulibre docbook_xml_dtd_42 docbook_xsl enchant eigen2
               exiv2 fam ffmpeg flac flex freetype gmp gettext gpgme
               grantlee gsl hunspell ilmbase intltool jasper lcms2
-              libgcrypt libraw libssh libspectre libvncserver libical
-              networkmanager openal opencv openexr phonon pkgconfig
-              polkit_qt4 prison python qca2 qimageblitz qjson qt4
-              samba saneBackends soprano
-              speechd strigi taglib udev xplanet xscreensaver xz;
+              libaccounts-glib libgcrypt libotr libraw libssh libspectre
+              libvncserver libical networkmanager openal opencv
+              openexr perl phonon pkgconfig polkit_qt4 prison python qca2
+              qimageblitz qjson qt4 samba saneBackends soprano speechd
+              strigi taglib udev xlibs xplanet xscreensaver xz;
       alsa = alsaLib;
       assuan = libassuan;
       boost = boost156;
       canberra = libcanberra;
+      eigen3 = eigen;
       epub = ebook_tools;
+      gif = giflib;
       gphoto2 = libgphoto2;
       hupnp = herqq;
       indi = indilib;
+      jpeg = libjpeg;
       ldap = openldap;
       libattica = attica;
       musicbrainz3 = libmusicbrainz;
@@ -180,6 +185,7 @@ let
       qalculate = libqalculate;
       sasl2 = cyrus_sasl;
       shareddesktopontologies = shared_desktop_ontologies;
+      sharedmimeinfo = shared_mime_info;
       sndfile = libsndfile;
       tiff = libtiff;
       telepathyqt4 = telepathy_qt;
@@ -189,212 +195,330 @@ let
     });
 
   self =
-    (builtins.removeAttrs super [ "artikulate" # build failure; wrong boost?
+    (builtins.removeAttrs super [
+      "artikulate" # build failure; wrong boost?
       "kde-dev-scripts" "kde-dev-utils" # docbook errors
       "kdewebdev" # unknown build failure
+      "kde-l10n-sr" # missing CMake command
     ]) // {
-      inherit kdePackage qt5 scope;
+      audiocd-kio = kde4Package super.audiocd-kio;
 
-      ark = overrideDerivation super.ark (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ pkgs.makeWrapper ];
+      amor = kde4Package super.amor;
+
+      ark = extendDerivation (kde4Package super.ark) {
+        buildInputs = [ pkgs.makeWrapper ];
         # runtime dependency
-        postInstall = (drv.postInstall or "") + ''
+        postInstall = ''
           wrapProgram $out/bin/ark --prefix PATH : "${pkgs.unzipNLS}/bin"
         '';
-      });
+      };
+
+      cervisia = kde4Package super.cervisia;
+
+      dolphin-plugins = kde4Package super.dolphin-plugins;
 
-      ffmpegthumbs = overrideDerivation super.ffmpegthumbs (drv: {
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
-      });
+      dragon = kde4Package super.dragon;
 
-      kaccounts-providers = overrideDerivation super.kaccounts-providers (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ pkgs.libaccounts-glib ];
+      ffmpegthumbs = extendDerivation (kde4Package super.ffmpegthumbs) {
+        nativeBuildInputs = [ scope.pkgconfig ];
+      };
+
+      juk = kde4Package super.juk;
+
+      jovie = kde4Package super.jovie;
+
+      kaccessible = kde4Package super.kaccessible;
+
+      kaccounts-providers = extendDerivation super.kaccounts-providers {
+        buildInputs = [ pkgs.libaccounts-glib ];
         # hard-coded install path
-        preConfigure = (drv.preConfigure or "") + ''
+        preConfigure = ''
           substituteInPlace webkit-options/CMakeLists.txt \
             --replace "/etc/signon-ui/webkit-options.d/" \
                       "$out/etc/signon-ui/webkit-options.d/"
         '';
-      });
-
-      kalzium = overrideDerivation super.kalzium (drv: {
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
-      });
-
-      kate = overrideDerivation super.kate (drv: {
-        buildInputs =
-          (drv.buildInputs or [])
-          ++ (with kf5; [ kconfig kguiaddons kiconthemes ki18n kinit kjobwidgets
-                          kio kparts ktexteditor kwindowsystem kxmlgui ]);
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ ([ kf5.kdoctools ]);
-      });
-
-      /*
-      kde-baseapps = overrideDerivation super.kde-baseapps (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ scope.qt4 ];
-      });
-      */
-
-      kde-runtime = overrideDerivation super.kde-runtime (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ scope.canberra ];
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
+      };
+
+      kajongg = kde4Package super.kajongg;
+
+      kalzium = extendDerivation (kde4Package super.kalzium) {
+        nativeBuildInputs = [ scope.pkgconfig ];
+      };
+
+      kamera = kde4Package super.kamera;
+
+      kate = extendDerivation super.kate {
+        buildInputs = with scope; [
+          kconfig kguiaddons kiconthemes ki18n kinit kjobwidgets kio
+          kparts ktexteditor kwindowsystem kxmlgui
+        ];
+        nativeBuildInputs = [ scope.kdoctools ];
+      };
+
+      kcachegrind = kde4Package super.kcachegrind;
+
+      kcolorchooser = kde4Package super.kcolorchooser;
+
+      kde-base-artwork = kde4Package super.kde-base-artwork;
+
+      kde-baseapps = kde4Package super.kde-baseapps;
+
+      kde-runtime = extendDerivation (kde4Package super.kde-runtime) {
+        buildInputs = [ scope.canberra ];
+        nativeBuildInputs = [ scope.pkgconfig ];
         # cmake does not detect path to `ilmbase`
-        NIX_CFLAGS_COMPILE =
-          (drv.NIX_CFLAGS_COMPILE or "") + " -I${scope.ilmbase}/include/OpenEXR";
+        NIX_CFLAGS_COMPILE = "-I${scope.ilmbase}/include/OpenEXR";
         # some components of this package have been replaced in other packages
         meta = { priority = 10; };
-      });
+      };
+
+      kde-wallpapers = kde4Package super.kde-wallpapers;
 
-      kde-workspace = overrideDerivation super.kde-workspace (drv: {
-        buildInputs =
-          (drv.buildInputs or []) ++
-          (with pkgs.xlibs; [
+      kde-workspace = extendDerivation (kde4Package super.kde-workspace) {
+        buildInputs = with scope.xlibs; [
             libxkbfile libXcomposite xcbutilimage xcbutilkeysyms xcbutilrenderutil
-          ]);
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
+        ];
+        nativeBuildInputs = [ scope.pkgconfig ];
         # some components of this package have been replaced in other packages
         meta = { priority = 10; };
-      });
+      };
 
-      kdelibs = overrideDerivation super.kdelibs (drv: {
-        buildInputs =
-          (drv.buildInputs or []) ++ (with scope; [ attr polkit_qt4 xsltproc xz ]);
+      kdeartwork = kde4Package super.kdeartwork;
 
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
+      kdegraphics-mobipocket = kde4Package super.kdegraphics-mobipocket;
 
-        # cmake does not detect path to `ilmbase`
-        NIX_CFLAGS_COMPILE =
-          (drv.NIX_CFLAGS_COMPILE or "") + " -I${scope.ilmbase}/include/OpenEXR";
+      kdegraphics-strigi-analyzer = kde4Package super.kdegraphics-strigi-analyzer;
+
+      kdegraphics-thumbnailers = kde4Package super.kdegraphics-thumbnailers;
 
-        propagatedBuildInputs =
-          (drv.propagatedBuildInputs or [])
-          ++ (with scope; [ qt4 soprano phonon strigi ]);
+      kdelibs = extendDerivation super.kdelibs {
+        buildInputs = with scope; [ attr polkit_qt4 xsltproc xz ];
+        propagatedBuildInputs = with scope; [ qt4 soprano phonon strigi ];
+        nativeBuildInputs = [ scope.pkgconfig ];
+        propagatedNativeBuildInputs = with scope; [
+          automoc4 cmake perl sharedmimeinfo
+        ];
 
-        propagatedNativeBuildInputs =
-          (drv.propagatedNativeBuildInputs or [])
-          ++ (with scope; [ automoc4 cmake perl sharedmimeinfo ]);
+        patches = [ ./kdelibs/polkit-install.patch ];
 
-        patches = (drv.patches or []) ++ [ ./kdelibs/polkit-install.patch ];
+        # cmake does not detect path to `ilmbase`
+        NIX_CFLAGS_COMPILE = "-I${scope.ilmbase}/include/OpenEXR";
 
-        cmakeFlags = (drv.cmakeFlags or []) ++ [
+        cmakeFlags = [
           "-DDOCBOOKXML_CURRENTDTD_DIR=${scope.docbook_xml_dtd_42}/xml/dtd/docbook"
           "-DDOCBOOKXSL_DIR=${scope.docbook_xsl}/xml/xsl/docbook"
           "-DHUPNP_ENABLED=ON"
           "-DWITH_SOLID_UDISKS2=ON"
           "-DKDE_DEFAULT_HOME=.kde"
         ];
-      });
-
-      kdenlive = overrideDerivation super.kdenlive (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ scope.mlt ];
-      });
-
-      kdepim = overrideDerivation super.kdepim (drv: {
-        buildInputs = (drv.buildInputs or []) ++ (with scope; [ gpgme assuan ]);
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
-      });
-
-      kdepimlibs = overrideDerivation super.kdepimlibs (drv: {
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
-      });
-
-      kdesdk-thumbnailers = overrideDerivation super.kdesdk-thumbnailers (drv: {
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.gettext ];
-      });
-
-      kgpg = overrideDerivation super.kgpg (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ scope.boost ];
-      });
-
-      khangman = overrideDerivation super.khangman (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ kf5.kio ];
-      });
-
-      kmix = overrideDerivation super.kmix (drv: {
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
-        cmakeFlags = (drv.cmakeFlags or []) ++ [ "-DKMIX_KF5_BUILD=ON" ];
-      });
-
-      kmousetool = overrideDerivation super.kmousetool (drv: {
-        buildInputs = (drv.buildInputs or []) ++ (with pkgs.xlibs; [ libXtst libXt ]);
-      });
-
-      kremotecontrol = overrideDerivation super.kremotecontrol (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ pkgs.xlibs.libXtst ];
-      });
-
-      krfb = overrideDerivation super.krfb (drv: {
-        buildInputs =
-          (drv.buildInputs or [])
-          ++ [ pkgs.xlibs.libXtst scope.ktp-common-internals ];
-      });
-
-      kstars = overrideDerivation super.kstars (drv: {
-        buildInputs = (drv.buildInputs or []) ++ (with scope; [ kparts cfitsio ]);
-      });
-
-      ktp-accounts-kcm = overrideDerivation super.ktp-accounts-kcm (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ pkgs.libaccounts-glib ];
-      });
-
-      ktp-common-internals = overrideDerivation super.ktp-common-internals (drv: {
-        buildInputs =
-          (drv.buildInputs or [])
-          ++ (with scope; [ kdelibs4support kparts ])
-          ++ [ pkgs.libotr ]; # needed for ktp-text-ui
-      });
-
-      ktp-text-ui = overrideDerivation super.ktp-text-ui (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ scope.kdbusaddons ];
-      });
-
-      lokalize = overrideDerivation super.lokalize (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ scope.kdbusaddons ];
-      });
-
-      libkdcraw = overrideDerivation super.libkdcraw (drv: {
-        buildInputs = (drv.buildInputs or []) ++ (with scope; [ kdelibs libraw ]);
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
-      });
-
-      libkexiv2 = overrideDerivation super.libkexiv2 (drv: {
-        buildInputs = (drv.buildInputs or []) ++ (with scope; [ exiv2 kdelibs ]);
-      });
-
-      libkface = overrideDerivation super.libkface (drv: {
-        buildInputs = (drv.buildInputs or []) ++ (with scope; [ kdelibs opencv ]);
-      });
-
-      libkgeomap = overrideDerivation super.libkgeomap (drv: {
+      };
+
+      kdenetwork-filesharing = kde4Package super.kdenetwork-filesharing;
+
+      kdenetwork-strigi-analyzers = kde4Package super.kdenetwork-strigi-analyzers;
+
+      kdenlive = extendDerivation super.kdenlive { buildInputs = [ scope.mlt ]; };
+
+      kdepim = extendDerivation (kde4Package super.kdepim) {
+        buildInputs = with scope; [ gpgme assuan ];
+        nativeBuildInputs = [ scope.pkgconfig ];
+      };
+
+      kdepim-runtime = kde4Package super.kdepim-runtime;
+
+      kdepimlibs = extendDerivation (kde4Package super.kdepimlibs) {
+        nativeBuildInputs = [ scope.pkgconfig ];
+      };
+
+      kdesdk-kioslaves = kde4Package super.kdesdk-kioslaves;
+
+      kdesdk-strigi-analyzers = kde4Package super.kdesdk-strigi-analyzers;
+
+      kdesdk-thumbnailers =
+        extendDerivation (kde4Package super.kdesdk-thumbnailers) {
+          nativeBuildInputs = [ scope.gettext ];
+        };
+
+      kdf = kde4Package super.kdf;
+
+      kfloppy = kde4Package super.kfloppy;
+
+      kgamma = kde4Package super.kgamma;
+
+      kget = kde4Package super.kget;
+
+      kgoldrunner = kde4Package super.kgoldrunner;
+
+      kgpg = extendDerivation (kde4Package super.kgpg) {
+        buildInputs = [ scope.boost ];
+      };
+
+      khangman = extendDerivation super.khangman { buildInputs = [ scope.kio ]; };
+
+      kigo = kde4Package super.kigo;
+
+      kiriki = kde4Package super.kiriki;
+
+      klickety = kde4Package super.klickety;
+
+      kmag = kde4Package super.kmag;
+
+      kmahjongg = kde4Package super.kmahjongg;
+
+      kmix = extendDerivation super.kmix {
+        nativeBuildInputs = [ scope.pkgconfig ];
+        cmakeFlags = [ "-DKMIX_KF5_BUILD=ON" ];
+      };
+
+      kmousetool = extendDerivation (kde4Package super.kmousetool) {
+        buildInputs = with scope.xlibs; [ libXtst libXt ];
+      };
+
+      kmouth = kde4Package super.kmouth;
+
+      knavalbattle = kde4Package super.knavalbattle;
+
+      kolf = kde4Package super.kolf;
+
+      kolourpaint = kde4Package super.kolourpaint;
+
+      konquest = kde4Package super.konquest;
+
+      kopete = kde4Package super.kopete;
+
+      kppp = kde4Package super.kppp;
+
+      kqtquickcharts = kde4Package super.kqtquickcharts;
+
+      krdc = kde4Package super.krdc;
+
+      kremotecontrol = extendDerivation (kde4Package super.kremotecontrol) {
+        buildInputs = [ scope.xlibs.libXtst ];
+      };
+
+      kreversi = kde4Package super.kreversi;
+
+      krfb = extendDerivation (kde4Package super.krfb) {
+        buildInputs = with scope; [ xlibs.libXtst ktp-common-internals ];
+      };
+
+      ksaneplugin = kde4Package super.ksaneplugin;
+
+      kscd = kde4Package super.kscd;
+
+      ksirk = kde4Package super.ksirk;
+
+      ksnakeduel = kde4Package super.ksnakeduel;
+
+      ksnapshot = kde4Package super.ksnapshot;
+
+      kspaceduel = kde4Package super.kspaceduel;
+
+      kstars = extendDerivation super.kstars {
+        buildInputs = with scope; [ kparts cfitsio ];
+      };
+
+      ksudoku = kde4Package super.ksudoku;
+
+      ksystemlog = kde4Package super.ksystemlog;
+
+      ktp-accounts-kcm = extendDerivation super.ktp-accounts-kcm {
+        buildInputs = [ scope.libaccounts-glib ];
+      };
+
+      ktp-common-internals = extendDerivation super.ktp-common-internals {
+        buildInputs = with scope; [ kdelibs4support kparts libotr ];
+      };
+
+      ktp-text-ui = extendDerivation super.ktp-text-ui {
+        buildInputs = [ scope.kdbusaddons ];
+      };
+
+      ktuberling = kde4Package super.ktuberling;
+
+      ktux = kde4Package super.ktux;
+
+      kubrick = kde4Package super.kubrick;
+
+      kuser = kde4Package super.kuser;
+
+      kwalletmanager = kde4Package super.kwalletmanager;
+
+      lokalize = extendDerivation super.lokalize {
+        buildInputs = [ scope.kdbusaddons ];
+      };
+
+      libkcddb = kde4Package super.libkcddb;
+
+      libkcompactdisc = kde4Package super.libkcompactdisc;
+
+      libkdcraw = extendDerivation super.libkdcraw {
+        buildInputs = with scope; [ kdelibs libraw ];
+        nativeBuildInputs = [ scope.pkgconfig ];
+      };
+
+      libkdeedu = kde4Package super.libkdeedu;
+
+      libkexiv2 = extendDerivation super.libkexiv2 {
+        buildInputs = with scope; [ exiv2 kdelibs ];
+      };
+
+      libkface = extendDerivation super.libkface {
+        buildInputs = with scope; [ kdelibs opencv ];
+      };
+
+      libkgeomap = extendDerivation (kde4Package super.libkgeomap) {
         cmakeFlags =
-          (drv.cmakeFlags or [])
-          ++ [ "-DCMAKE_MODULE_PATH=${scope.marble}/share/apps/cmake/modules" ];
-      });
+          [ "-DCMAKE_MODULE_PATH=${scope.marble}/share/apps/cmake/modules" ];
+      };
 
-      libkipi = overrideDerivation super.libkipi (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ scope.kdelibs ];
-      });
+      libkipi = extendDerivation super.libkipi {
+        buildInputs = [ scope.kdelibs ];
+      };
 
-      libksane = overrideDerivation super.libksane (drv: {
-        buildInputs = (drv.buildInputs or []) ++ (with scope; [ kdelibs saneBackends]);
-      });
+      libksane = extendDerivation super.libksane {
+        buildInputs = with scope; [ kdelibs saneBackends];
+      };
 
-      okular = overrideDerivation super.okular (drv: {
-        nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
-      });
+      lskat = kde4Package super.lskat;
 
-      rocs = overrideDerivation super.rocs (drv: {
-        buildInputs = (drv.buildInputs or []) ++ [ scope.kdelibs4support ];
-      });
+      marble = kde4Package super.marble;
 
-      signon-kwallet-extension =
-        overrideDerivation super.signon-kwallet-extension (drv: {
-          buildInputs = (drv.buildInputs or []) ++ [ scope.signonqt5 ];
-          preConfigure = (drv.preConfigure or "") + ''
-            sed -i src/CMakeLists.txt \
-                -e "s,\''${SIGNONEXTENSION_PLUGINDIR},$out/lib/signon/extensions,"
-          '';
-        });
+      mplayerthumbs = kde4Package super.mplayerthumbs;
+
+      okular = extendDerivation (kde4Package super.okular) {
+        nativeBuildInputs = [ scope.pkgconfig ];
+      };
+
+      pairs = kde4Package super.pairs;
+
+      palapeli = kde4Package super.palapeli;
+
+      picmi = kde4Package super.picmi;
+
+      poxml = kde4Package super.poxml;
+
+      rocs = extendDerivation super.rocs {
+        buildInputs = [ scope.kdelibs4support ];
+      };
+
+      signon-kwallet-extension = extendDerivation super.signon-kwallet-extension {
+        buildInputs = [ scope.signonqt5 ];
+        preConfigure = ''
+          sed -i src/CMakeLists.txt \
+              -e "s,\''${SIGNONEXTENSION_PLUGINDIR},$out/lib/signon/extensions,"
+        '';
+      };
+
+      superkaramba = kde4Package super.superkaramba;
+
+      svgpart = kde4Package super.svgpart;
+
+      sweeper = kde4Package super.sweeper;
+
+      umbrello = kde4Package super.umbrello;
+
+      zeroconf-ioslave = kde4Package super.zeroconf-ioslave;
 
     };
 
diff --git a/pkgs/applications/kde-apps-15.04/setup-hook.sh b/pkgs/applications/kde-apps-15.04/setup-hook.sh
index a8d9b7e0e36f..636669d4c622 100644
--- a/pkgs/applications/kde-apps-15.04/setup-hook.sh
+++ b/pkgs/applications/kde-apps-15.04/setup-hook.sh
@@ -1 +1,12 @@
 addToSearchPath XDG_DATA_DIRS @out@/share
+
+addQt4Plugins() {
+  if [[ -d "$1/lib/qt4/plugins" ]]; then
+      propagatedUserEnvPkgs+=" $1"
+  fi
+
+  if [[ -d "$1/lib/kde4/plugins" ]]; then
+      propagatedUserEnvPkgs+=" $1"
+  fi
+}
+envHooks+=(addQt4Plugins)
diff --git a/pkgs/build-support/autonix/default.nix b/pkgs/build-support/autonix/default.nix
index 5aba2620cdab..1f71d2cbb3bb 100644
--- a/pkgs/build-support/autonix/default.nix
+++ b/pkgs/build-support/autonix/default.nix
@@ -1,5 +1,8 @@
-{ bash, callPackage, coreutils, fetchurl, findutils, nix, runCommand, stdenv
-, substituteAll, wget, writeText }:
+{ pkgs }:
+
+let inherit (pkgs) bash coreutils findutils nix wget;
+    inherit (pkgs) callPackage fetchurl runCommand stdenv substituteAll writeText;
+in
 
 /* autonix is a collection of tools to automate packaging large collections
  * of software, particularly KDE. It consists of three components:
@@ -10,10 +13,18 @@
  *      expressions from the output of the previous steps.
  */
 
-with stdenv.lib;
+let inherit (stdenv) lib; in
 
 let
 
+  resolveDeps = scope: deps:
+    let resolve = dep:
+          let res = scope."${dep}" or [];
+          in if lib.isList res then res else [res];
+    in lib.concatMap resolve deps;
+
+in rec {
+
   /* Download the packages into the Nix store, compute their hashes,
    * and generate a package manifest in ./manifest.nix.
    */
@@ -32,240 +43,94 @@ let
           chmod +x $out
         '';
 
-  /* Convert a manifest.nix file to XML to be read by autonix-deps. */
-  writeManifestXML = filename:
-    let
-      generateStores = mapAttrs (n: pkg: pkg.store);
-      manifest = importManifest filename { mirror = ""; };
-      stores = generateStores manifest;
-    in
-      writeText "manifest.xml" (builtins.toXML stores);
-
-  /* Generate a set of Nix expressions for the collection, given a
-   * manifest.nix, dependencies.nix, and renames.nix in the same directory.
-   */
-  generateCollection = dir: # path to directory
-    { mirror # mirror to download packages from
-    , mkDerivation ? mkDerivation
-    , preResolve ? id # modify package set before dependency resolution
-    , postResolve ? id # modify package set after dependency resolution
-    , renames ? {}
-    , scope ? {}
-    }:
-    let
-
-      fix = f: let x = f x; in x;
-
-      resolvePkg = name:
-        mapAttrs (attr: if isDepAttr attr then resolveDeps scope else id);
-
-      resolve = mapAttrs resolvePkg;
-
-      derive = mapAttrs (name: mkDerivation);
-
-      renames_ =
-        if renames == {} then (import (dir + "/renames.nix") {}) else renames;
-
-      packages = importPackages dir renames_ { inherit mirror; };
-
-    in derive (postResolve (resolve (preResolve packages)));
-
-  pkgAttrName = pkg: (builtins.parseDrvName pkg.name).name;
-  pkgVersion = pkg: (builtins.parseDrvName pkg.name).version;
-
-  depAttrNames = [
-    "buildInputs" "nativeBuildInputs"
-    "propagatedBuildInputs" "propagatedNativeBuildInputs"
-    "propagatedUserEnvPkgs"
-  ];
-
-  isDepAttr = name: builtins.elem name depAttrNames;
-
-  removePkgDeps = deps:
-    let removeDepsIfDepAttr = attr: value:
-          if isDepAttr attr then fold remove value deps else value;
-    in mapAttrs removeDepsIfDepAttr;
-
-  hasDep = dep: pkg:
-    let depAttrs = attrValues (filterAttrs (n: v: isDepAttr n) pkg);
-        allDeps = concatLists depAttrs;
-    in elem dep allDeps;
-
-  importManifest = path: { mirror }:
-    let
-      uniqueNames = manifest:
-        unique (map pkgAttrName manifest);
-
-      versionsOf = manifest: name:
-        filter (pkg: pkgAttrName pkg == name) manifest;
-
-      bestVersions = manifest:
-        let best = versions:
-              let
-                strictlyLess = a: b:
-                  builtins.compareVersions (pkgVersion a) (pkgVersion b) > 0;
-                sorted = sort strictlyLess versions;
-              in head sorted;
-        in map (name: best (versionsOf manifest name)) (uniqueNames manifest);
-
-      withNames = manifest:
-        builtins.listToAttrs
-          (map (p: nameValuePair (toLower (pkgAttrName p)) p) manifest);
-
-      orig = import path { inherit stdenv fetchurl mirror; };
-    in
-      fold (f: x: f x) orig [ withNames bestVersions ];
-
-  importPackages = path: renames: manifestScope:
-    let
-
-      # Do not allow any package to depend on itself.
-      breakRecursion =
-        let removeSelfDep = pkg:
-              mapAttrs
-                (n: if isDepAttr n
-                      then filter (dep: dep != pkg && renamed dep != pkg)
-                    else id);
-        in mapAttrs removeSelfDep;
-
-      renamed = dep: renames."${dep}" or dep;
-
-      manifest = importManifest (path + "/manifest.nix") manifestScope;
-
-      deps = import (path + "/dependencies.nix") {};
-
-      mkPkg = name: manifest:
-        {
-          inherit (manifest) name src;
-          inherit (deps."${name}")
-            buildInputs nativeBuildInputs propagatedBuildInputs
-            propagatedNativeBuildInputs propagatedUserEnvPkgs;
-        };
-
-    in breakRecursion (mapAttrs mkPkg manifest);
-
-  mkDerivation = drv: stdenv.mkDerivation (drv // { src = fetchurl drv.src; });
-
-  resolveDeps = scope: deps:
-    let resolve = dep:
-          let res = scope."${dep}" or [];
-          in if lib.isList res then res else [res];
-    in lib.concatMap resolve deps;
-
-  userEnvPkg = dep:
-    mapAttrs
-      (name: pkg: pkg // {
-        propagatedUserEnvPkgs =
-          (pkg.propagatedUserEnvPkgs or [])
-          ++ optional (hasDep dep pkg) dep;
-      });
-
-in
-{
-  inherit generateCollection;
-  inherit importManifest;
-  inherit isDepAttr;
-  inherit manifest;
-  inherit removePkgDeps;
-  inherit resolveDeps;
-  inherit userEnvPkg;
-  inherit writeManifestXML;
-
-  blacklist = names: pkgs:
-    let
-      removeDeps = deps: mapAttrs (name: removePkgDeps deps);
-      removePkgs = names: pkgs: builtins.removeAttrs pkgs names;
-    in removeDeps names (removePkgs names pkgs);
-
-  lib = rec {
-    mkPackage = callPackage: defaultOverride: name: pkg: let drv =
-      { mkDerivation, fetchurl, scope }:
-
-      mkDerivation (defaultOverride {
-        inherit (pkg) name;
+  mkPackage = callPackage: defaultOverride: name: pkg: let drv =
+    { mkDerivation, fetchurl, scope }:
 
-        src = fetchurl pkg.src;
+    mkDerivation (defaultOverride {
+      inherit (pkg) name;
 
-        buildInputs = resolveDeps scope pkg.buildInputs;
-        nativeBuildInputs = resolveDeps scope pkg.nativeBuildInputs;
-        propagatedBuildInputs = resolveDeps scope pkg.propagatedBuildInputs;
-        propagatedNativeBuildInputs =
-          resolveDeps scope pkg.propagatedNativeBuildInputs;
-        propagatedUserEnvPkgs = resolveDeps scope pkg.propagatedUserEnvPkgs;
+      src = fetchurl pkg.src;
 
-        enableParallelBuilding = true;
-      });
-    in callPackage drv {};
+      buildInputs = resolveDeps scope pkg.buildInputs;
+      nativeBuildInputs = resolveDeps scope pkg.nativeBuildInputs;
+      propagatedBuildInputs = resolveDeps scope pkg.propagatedBuildInputs;
+      propagatedNativeBuildInputs =
+        resolveDeps scope pkg.propagatedNativeBuildInputs;
+      propagatedUserEnvPkgs = resolveDeps scope pkg.propagatedUserEnvPkgs;
 
-    renameDeps = renames: lib.mapAttrs (name: pkg:
-      let breakCycles = lib.filter (dep: dep != name);
-          rename = dep: renames."${dep}" or dep;
-      in pkg // {
-        buildInputs = breakCycles (map rename pkg.buildInputs);
-        nativeBuildInputs = breakCycles (map rename pkg.nativeBuildInputs);
-        propagatedBuildInputs = breakCycles (map rename pkg.propagatedBuildInputs);
-        propagatedNativeBuildInputs = breakCycles (map rename pkg.propagatedNativeBuildInputs);
-        propagatedUserEnvPkgs = breakCycles (map rename pkg.propagatedUserEnvPkgs);
-      });
-
-    propagateDeps = propagated: lib.mapAttrs (name: pkg:
-      let isPropagated = dep: lib.elem dep propagated;
-          isNotPropagated = dep: !(isPropagated dep);
-      in pkg // {
-        buildInputs = lib.filter isNotPropagated pkg.buildInputs;
-        nativeBuildInputs = lib.filter isNotPropagated pkg.nativeBuildInputs;
-        propagatedBuildInputs =
-          pkg.propagatedBuildInputs
-          ++ lib.filter isPropagated pkg.buildInputs;
-        propagatedNativeBuildInputs =
-          pkg.propagatedNativeBuildInputs
-          ++ lib.filter isPropagated pkg.nativeBuildInputs;
-      });
+      enableParallelBuilding = true;
+    });
+  in callPackage drv {};
+
+  renameDeps = renames: lib.mapAttrs (name: pkg:
+    let breakCycles = lib.filter (dep: dep != name);
+        rename = dep: renames."${dep}" or dep;
+    in pkg // {
+      buildInputs = breakCycles (map rename pkg.buildInputs);
+      nativeBuildInputs = breakCycles (map rename pkg.nativeBuildInputs);
+      propagatedBuildInputs = breakCycles (map rename pkg.propagatedBuildInputs);
+      propagatedNativeBuildInputs =
+        breakCycles (map rename pkg.propagatedNativeBuildInputs);
+      propagatedUserEnvPkgs = breakCycles (map rename pkg.propagatedUserEnvPkgs);
+    });
 
-    nativeDeps = native: lib.mapAttrs (name: pkg:
-      let isNative = dep: lib.elem dep native;
-          isNotNative = dep: !(isNative dep);
-      in pkg // {
-        buildInputs = lib.filter isNotNative pkg.buildInputs;
-        nativeBuildInputs =
-          pkg.nativeBuildInputs
-          ++ lib.filter isNative pkg.buildInputs;
-        propagatedBuildInputs = lib.filter isNotNative pkg.propagatedBuildInputs;
-        propagatedNativeBuildInputs =
-          pkg.propagatedNativeBuildInputs
-          ++ lib.filter isNative pkg.propagatedBuildInputs;
-      });
+  propagateDeps = propagated: lib.mapAttrs (name: pkg:
+    let isPropagated = dep: lib.elem dep propagated;
+        isNotPropagated = dep: !(isPropagated dep);
+    in pkg // {
+      buildInputs = lib.filter isNotPropagated pkg.buildInputs;
+      nativeBuildInputs = lib.filter isNotPropagated pkg.nativeBuildInputs;
+      propagatedBuildInputs =
+        pkg.propagatedBuildInputs
+        ++ lib.filter isPropagated pkg.buildInputs;
+      propagatedNativeBuildInputs =
+        pkg.propagatedNativeBuildInputs
+        ++ lib.filter isPropagated pkg.nativeBuildInputs;
+    });
 
-    userEnvDeps = user: lib.mapAttrs (name: pkg:
-      let allDeps = with pkg; lib.concatLists [
-            buildInputs
-            nativeBuildInputs
-            propagatedBuildInputs
-            propagatedNativeBuildInputs
-          ];
-      in assert (lib.isList allDeps); pkg // {
-        propagatedUserEnvPkgs = lib.filter (dep: lib.elem dep user) allDeps;
-      });
+  nativeDeps = native: lib.mapAttrs (name: pkg:
+    let isNative = dep: lib.elem dep native;
+        isNotNative = dep: !(isNative dep);
+    in pkg // {
+      buildInputs = lib.filter isNotNative pkg.buildInputs;
+      nativeBuildInputs =
+        pkg.nativeBuildInputs
+        ++ lib.filter isNative pkg.buildInputs;
+      propagatedBuildInputs = lib.filter isNotNative pkg.propagatedBuildInputs;
+      propagatedNativeBuildInputs =
+        pkg.propagatedNativeBuildInputs
+        ++ lib.filter isNative pkg.propagatedBuildInputs;
+    });
 
-    overrideDerivation = pkg: f: pkg.override (super: super // {
-      mkDerivation = drv: super.mkDerivation (drv // f drv);
+  userEnvDeps = user: lib.mapAttrs (name: pkg:
+    let allDeps = with pkg; lib.concatLists [
+          buildInputs
+          nativeBuildInputs
+          propagatedBuildInputs
+          propagatedNativeBuildInputs
+        ];
+    in assert (lib.isList allDeps); pkg // {
+      propagatedUserEnvPkgs = lib.filter (dep: lib.elem dep user) allDeps;
     });
 
-    extendDerivation = pkg: attrs:
-      let mergeAttrBy = lib.mergeAttrBy // {
-            propagatedNativeBuildInputs = a: b: a ++ b;
-            NIX_CFLAGS_COMPILE = a: b: "${a} ${b}";
-            cmakeFlags = a: b: a ++ b;
-          };
-          mergeAttrsByFunc = sets:
-            let merged = lib.foldl lib.mergeAttrByFunc { inherit mergeAttrBy; } sets;
-            in builtins.removeAttrs merged ["mergeAttrBy"];
-      in overrideDerivation pkg (drv: mergeAttrsByFunc [ drv attrs ]);
+  overrideDerivation = pkg: f: pkg.override (super: super // {
+    mkDerivation = drv: super.mkDerivation (drv // f drv);
+  });
 
-    overrideScope = pkg: fnOrSet: pkg.override (super: super // {
-      scope = if builtins.isFunction fnOrSet
-                then super.scope // fnOrSet super.scope
-              else super.scope // fnOrSet;
-    });
-  };
+  extendDerivation = pkg: attrs:
+    let mergeAttrBy = lib.mergeAttrBy // {
+          propagatedNativeBuildInputs = a: b: a ++ b;
+          NIX_CFLAGS_COMPILE = a: b: "${a} ${b}";
+          cmakeFlags = a: b: a ++ b;
+        };
+        mergeAttrsByFunc = sets:
+          let merged = lib.foldl lib.mergeAttrByFunc { inherit mergeAttrBy; } sets;
+          in builtins.removeAttrs merged ["mergeAttrBy"];
+    in overrideDerivation pkg (drv: mergeAttrsByFunc [ drv attrs ]);
+
+  overrideScope = pkg: fnOrSet: pkg.override (super: super // {
+    scope = if builtins.isFunction fnOrSet
+              then super.scope // fnOrSet super.scope
+            else super.scope // fnOrSet;
+  });
 }
diff --git a/pkgs/desktops/plasma-5.3/default.nix b/pkgs/desktops/plasma-5.3/default.nix
index ba1c1b78fc70..33165afd03e6 100644
--- a/pkgs/desktops/plasma-5.3/default.nix
+++ b/pkgs/desktops/plasma-5.3/default.nix
@@ -16,7 +16,7 @@
 
 let inherit (pkgs) autonix stdenv symlinkJoin; in
 
-let kf5Orig = kf5; in
+with autonix; let inherit (stdenv) lib; in
 
 let
   kf5_ = if kf5 != null then kf5 else pkgs.kf510;
@@ -26,7 +26,7 @@ in
 let
 
   qt5 = qt5_;
-  kf5 = kf5_.override { inherit qt5; };
+  kf5 = kf5_.override { inherit debug qt5; };
 
   kdePackage = name: pkg:
     let defaultOverride = drv: drv // {
@@ -106,7 +106,7 @@ let
               modemmanager openconnect openexr pam pango qt4 samba
               socat substituteAll taglib utillinux wayland xapian
               xkeyboard_config xlibs xorg;
-      boost = boost155;
+      boost = boost156;
       canberra = libcanberra;
       epub = ebook_tools;
       fontforge_executable = fontforge;
@@ -153,7 +153,7 @@ let
         });
       in symlinkJoin "breeze-${version}" [ breeze-qt4 breeze-qt5 ];
 
-    kde-gtk-config = overrideDerivation super.kde-gtk-config (drv: {
+    kde-gtk-config = extendDerivation super.kde-gtk-config {
       NIX_CFLAGS_COMPILE = with scope;
         lib.concatStringsSep " " [
           "-I${cairo}/include/cairo"
@@ -163,55 +163,51 @@ let
           "-I${glib}/lib/glib-2.0/include"
           "-I${pango}/include/pango-1.0"
         ];
-    });
+    };
 
-    kfilemetadata = overrideDerivation super.kfilemetadata (drv: {
-      buildInputs = drv.buildInputs ++ [ pkgs.attr ];
-    });
+    kfilemetadata = extendDerivation super.kfilemetadata {
+      buildInputs = [ scope.attr ];
+    };
 
-    kwin = overrideDerivation super.kwin (drv: {
-      buildInputs =
-        drv.buildInputs ++ (with pkgs.xlibs; [ libICE libSM libXcursor ]);
+    kwin = extendDerivation super.kwin {
+      buildInputs = with scope.xlibs; [ libICE libSM libXcursor ];
       patches = [ ./kwin/kwin-import-plugin-follow-symlinks.patch ];
-    });
+    };
 
-    libkscreen = overrideDerivation super.libkscreen (drv: {
-      buildInputs = drv.buildInputs ++ [ pkgs.xlibs.libXrandr];
-    });
+    libkscreen = extendDerivation super.libkscreen {
+      buildInputs = [ scope.xlibs.libXrandr];
+    };
 
-    plasma-desktop = overrideDerivation super.plasma-desktop (drv: {
-      buildInputs =
-        drv.buildInputs
-        ++ [ pkgs.libcanberra ]
-        ++ (with pkgs.xlibs; [ libxkbfile libXcursor libXft ]);
+    plasma-desktop = extendDerivation super.plasma-desktop {
+      buildInputs = with scope;
+        [ canberra ]
+        ++ (with xlibs; [ libxkbfile libXcursor libXft ]);
       patches = [
         ./plasma-desktop/plasma-desktop-hwclock.patch
         ./plasma-desktop/plasma-desktop-zoneinfo.patch
-        (pkgs.substituteAll {
+        (scope.substituteAll {
           src = ./plasma-desktop/plasma-desktop-xkb-rules.patch;
-          xkb = pkgs.xkeyboard_config;
+          xkb = scope.xkeyboard_config;
         })
       ];
       preConfigure = ''
         substituteInPlace kcms/dateandtime/helper.cpp \
           --subst-var-by hwclock "${scope.utillinux}/sbin/hwclock"
       '';
-    });
+    };
 
-    plasma-workspace = overrideDerivation super.plasma-workspace (drv: {
+    plasma-workspace = extendDerivation super.plasma-workspace {
       patches = [
-        (pkgs.substituteAll {
+        (scope.substituteAll {
           src = ./plasma-workspace/0001-startkde-NixOS-patches.patch;
-          inherit (pkgs) bash gnused gnugrep socat;
-          inherit (kf5) kconfig kinit kservice;
-          inherit (pkgs.xorg) mkfontdir xmessage xprop xrdb xset xsetroot;
-          qt5tools = qt5.tools;
-          dbus_tools = pkgs.dbus.tools;
+          inherit (scope) bash gnused gnugrep socat;
+          inherit (scope) kconfig kinit kservice;
+          inherit (scope.xorg) mkfontdir xmessage xprop xrdb xset xsetroot;
+          qt5tools = scope.qt5tools;
+          dbus_tools = scope.dbus.tools;
         })
       ];
-      buildInputs =
-        (drv.buildInputs or [])
-        ++ (with pkgs.xlibs; [ libSM libXcursor scope.pam ]);
+      buildInputs = with scope.xlibs; [ libSM libXcursor scope.pam ];
       postPatch = ''
         substituteInPlace startkde/kstartupconfig/kstartupconfig.cpp \
           --replace kdostartupconfig5 $out/bin/kdostartupconfig5
@@ -220,15 +216,15 @@ let
         substituteInPlace startkde/startkde.cmake \
           --subst-var-by plasmaWorkspace "$out"
       '';
-    });
+    };
 
-    powerdevil = overrideDerivation super.powerdevil (drv: {
-      buildInputs = drv.buildInputs ++ [pkgs.xlibs.libXrandr];
-    });
+    powerdevil = extendDerivation super.powerdevil {
+      buildInputs = [ scope.xlibs.libXrandr ];
+    };
 
-    sddm-kcm = overrideDerivation super.sddm-kcm (drv: {
-      buildInputs = drv.buildInputs ++ [pkgs.xlibs.libXcursor];
-    });
+    sddm-kcm = extendDerivation super.sddm-kcm {
+      buildInputs = [ scope.xlibs.libXcursor ];
+    };
 
   };
 
diff --git a/pkgs/development/libraries/kde-frameworks-5.10/default.nix b/pkgs/development/libraries/kde-frameworks-5.10/default.nix
index abcae401423e..b473a3453f34 100644
--- a/pkgs/development/libraries/kde-frameworks-5.10/default.nix
+++ b/pkgs/development/libraries/kde-frameworks-5.10/default.nix
@@ -12,13 +12,19 @@
 #  make a copy of this directory first. After copying, be sure to delete ./tmp
 #  if it exists. Then follow the minor update instructions.
 
-{ autonix, fetchurl, pkgs, qt5, stdenv, newScope, debug ? false }:
+{ pkgs, newScope, qt5 ? null, debug ? false }:
 
-with autonix;
+let inherit (pkgs) autonix stdenv symlinkJoin; in
 
-let inherit (stdenv) lib; in
+with autonix; let inherit (stdenv) lib; in
 
 let
+  qt5_ = if qt5 != null then qt5 else pkgs.qt54;
+in
+
+let
+
+  qt5 = qt5_;
 
   super =
     let json = builtins.fromJSON (builtins.readFile ./packages.json);
@@ -114,8 +120,6 @@ let
     );
 
   self = super // {
-    inherit kdePackage scope;
-
     extra-cmake-modules = overrideDerivation super.extra-cmake-modules (drv: {
       buildInputs = [];
       nativeBuildInputs = [];
@@ -132,78 +136,72 @@ let
       };
     });
 
-    frameworkintegration = overrideDerivation super.frameworkintegration (drv: {
-      buildInputs = drv.buildInputs ++ [ pkgs.xlibs.libXcursor ];
-    });
+    frameworkintegration = extendDerivation super.frameworkintegration {
+      buildInputs = [ scope.xlibs.libXcursor ];
+    };
 
-    kauth = overrideDerivation super.kauth (drv: {
-      buildInputs = drv.buildInputs ++ [ scope.polkit_qt5 ];
-      patches = [./kauth/kauth-policy-install.patch];
-    });
+    kauth = extendDerivation super.kauth {
+      buildInputs = [ scope.polkit_qt5 ];
+      patches = [ ./kauth/kauth-policy-install.patch ];
+    };
 
-    kcmutils = overrideDerivation super.kcmutils (drv: {
-      patches = [./kcmutils/kcmutils-pluginselector-follow-symlinks.patch];
-    });
-
-    kconfigwidgets = overrideDerivation super.kconfigwidgets (drv: {
-      patches = [./kconfigwidgets/kconfigwidgets-helpclient-follow-symlinks.patch];
-    });
+    kcmutils = extendDerivation super.kcmutils {
+      patches = [ ./kcmutils/kcmutils-pluginselector-follow-symlinks.patch ];
+    };
 
-    kdelibs4support = overrideDerivation super.kdelibs4support (drv: {
-      buildInputs = drv.buildInputs ++ [ scope.networkmanager pkgs.xlibs.libSM ];
-      cmakeFlags =
-        drv.cmakeFlags
-        ++ [
-          "-DDocBookXML4_DTD_DIR=${pkgs.docbook_xml_dtd_45}/xml/dtd/docbook"
-          "-DDocBookXML4_DTD_VERSION=4.5"
-        ];
-    });
+    kconfigwidgets = extendDerivation super.kconfigwidgets {
+      patches = [ ./kconfigwidgets/kconfigwidgets-helpclient-follow-symlinks.patch ];
+    };
 
-    kdoctools = overrideDerivation super.kdoctools (drv: {
-      propagatedNativeBuildInputs =
-        drv.propagatedNativeBuildInputs ++ [ scope.perl scope.perlPackages.URI ];
-      cmakeFlags =
-        drv.cmakeFlags
-        ++ [
-          "-DDocBookXML4_DTD_DIR=${pkgs.docbook_xml_dtd_45}/xml/dtd/docbook"
-          "-DDocBookXML4_DTD_VERSION=4.5"
-          "-DDocBookXSL_DIR=${pkgs.docbook5_xsl}/xml/xsl/docbook"
-        ];
-      patches = [./kdoctools/kdoctools-no-find-docbook-xml.patch];
-    });
+    kdelibs4support = extendDerivation super.kdelibs4support {
+      buildInputs = [ scope.networkmanager scope.xlibs.libSM ];
+      cmakeFlags = [
+        "-DDocBookXML4_DTD_DIR=${pkgs.docbook_xml_dtd_45}/xml/dtd/docbook"
+        "-DDocBookXML4_DTD_VERSION=4.5"
+      ];
+    };
+
+    kdoctools = extendDerivation super.kdoctools {
+      propagatedNativeBuildInputs = [ scope.perl scope.perlPackages.URI ];
+      cmakeFlags = [
+        "-DDocBookXML4_DTD_DIR=${scope.docbook_xml_dtd_45}/xml/dtd/docbook"
+        "-DDocBookXML4_DTD_VERSION=4.5"
+        "-DDocBookXSL_DIR=${scope.docbook5_xsl}/xml/xsl/docbook"
+      ];
+      patches = [ ./kdoctools/kdoctools-no-find-docbook-xml.patch ];
+    };
 
-    ki18n = overrideDerivation super.ki18n (drv: {
-      propagatedNativeBuildInputs =
-        drv.propagatedNativeBuildInputs ++ [ scope.libintl scope.pythoninterp ];
-    });
+    ki18n = extendDerivation super.ki18n {
+      propagatedNativeBuildInputs = with scope; [ libintl pythoninterp ];
+    };
 
-    kimageformats = overrideDerivation super.kimageformats (drv: {
+    kimageformats = extendDerivation super.kimageformats {
       NIX_CFLAGS_COMPILE = "-I${pkgs.ilmbase}/include/OpenEXR";
-    });
+    };
 
-    kinit = overrideDerivation super.kinit (drv: {
+    kinit = extendDerivation super.kinit {
       patches = [./kinit/0001-kinit-libpath.patch];
-    });
+    };
 
-    kpackage = overrideDerivation super.kpackage (drv: {
-      patches = [./kpackage/0001-allow-external-paths.patch];
-    });
+    kpackage = extendDerivation super.kpackage {
+      patches = [ ./kpackage/0001-allow-external-paths.patch ];
+    };
 
-    kservice = overrideDerivation super.kservice (drv: {
-      buildInputs = drv.buildInputs ++ [ self.kwindowsystem ];
+    kservice = extendDerivation super.kservice {
+      buildInputs = [ scope.kwindowsystem ];
       patches = [
         ./kservice/kservice-kbuildsycoca-follow-symlinks.patch
         ./kservice/kservice-kbuildsycoca-no-canonicalize-path.patch
       ];
-    });
+    };
 
-    ktexteditor = overrideDerivation super.ktexteditor (drv: {
+    ktexteditor = extendDerivation super.ktexteditor {
       patches = [ ./ktexteditor/0001-no-qcoreapplication.patch ];
-    });
+    };
 
-    networkmanager-qt = overrideDerivation super.networkmanager-qt (drv: {
-      propagatedBuildInputs = drv.propagatedBuildInputs ++ [ scope.networkmanager ];
-    });
+    networkmanager-qt = extendDerivation super.networkmanager-qt {
+      propagatedBuildInputs = [ scope.networkmanager ];
+    };
   };
 
 in self
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1b21df48daeb..696d10e4c885 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -251,7 +251,7 @@ let
     theAttrSet = arg;
   };
 
-  autonix = callPackage ../build-support/autonix {};
+  autonix = import ../build-support/autonix { inherit pkgs; };
 
   autoreconfHook = makeSetupHook
     { substitutions = { inherit autoconf automake libtool gettext; }; }
@@ -11658,9 +11658,7 @@ let
     boost = boost155;
   };
 
-  kdeApps_15_04 = recurseIntoAttrs (callPackage ../applications/kde-apps-15.04 {
-    kf5 = kf510;
-  });
+  kdeApps_15_04 = recurseIntoAttrs (callPackage ../applications/kde-apps-15.04 {});
   kdeApps_stable = kdeApps_15_04;
   kdeApps_latest = kdeApps_15_04;
 
@@ -13940,7 +13938,7 @@ let
 
   numix-gtk-theme = callPackage ../misc/themes/gtk3/numix-gtk-theme { };
 
-  plasma53 = recurseIntoAttrs (import ../desktops/plasma-5.3 { inherit pkgs newScope; });
+  plasma53 = recurseIntoAttrs (callPackage ../desktops/plasma-5.3 { inherit pkgs newScope; });
   plasma5_latest = plasma53;
   plasma5_stable = plasma53;